diff --git a/georegistry-server/pom.xml b/georegistry-server/pom.xml index 5bbe91b94..1d565b362 100644 --- a/georegistry-server/pom.xml +++ b/georegistry-server/pom.xml @@ -35,7 +35,7 @@ 5.0.2 - 0.17.1-SNAPSHOT + 0.17.1 diff --git a/georegistry-web/src/main/webapp/dist/0.chunk.js b/georegistry-web/src/main/webapp/dist/0.chunk.js index 0f6fa190a..a57a0bc3e 100644 --- a/georegistry-web/src/main/webapp/dist/0.chunk.js +++ b/georegistry-web/src/main/webapp/dist/0.chunk.js @@ -1,2 +1,2 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{111:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.components=void 0;var a=n(206),i=n(122),l=n(86),s=n(68),c=n(164),u=n(97),d=n(165),p=n(166),m=n(155),f=n(167),g=n(88),v=n(124),h=n(156),y=n(168);t.components=[a.ErrorHandler,i.CgrHeaderComponent,l.LoadingBarComponent,s.LocalizeComponent,c.ErrorMessageComponent,u.MessageComponent,d.ConfirmModalComponent,y.GenericModalComponent,p.ErrorModalComponent,m.ModalStepIndicatorComponent,f.SuccessModalComponent,g.PasswordStrengthBarComponent,v.ProfileComponent,h.ProgressBarComponent],o(n(206),t),o(n(122),t),o(n(86),t),o(n(68),t),o(n(164),t),o(n(97),t),o(n(165),t),o(n(168),t),o(n(166),t),o(n(155),t),o(n(167),t),o(n(88),t),o(n(124),t),o(n(156),t)},112:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DateService=void 0;var r=n(0),o=(n(114),n(209)),a=n(203),i=n(258),l=n(0),s=n(114),c=function(){function e(e){this.localizationService=e,this.overlapMessage={severity:"ERROR",message:this.localizationService.decode("manage.versions.overlap.message"),type:i.ConflictType.TIME_RANGE},this.mergeContiguousMessage={severity:"ERROR",message:this.localizationService.decode("manage.versions.mergeContiguousRanges.message"),type:i.ConflictType.TIME_RANGE},this.gapMessage={severity:"WARNING",message:this.localizationService.decode("manage.versions.gap.message"),type:i.ConflictType.TIME_RANGE},this.outsideExistsMessage={severity:"ERROR",message:this.localizationService.decode("manage.versions.outsideExists.message"),type:i.ConflictType.OUTSIDE_EXISTS},this.missingReference={severity:"ERROR",message:this.localizationService.decode("changeovertime.manageVersions.missingReference"),type:i.ConflictType.MISSING_REFERENCE},this.startDateLaterEndDate={severity:"ERROR",message:this.localizationService.decode("manage.versions.startdate.later.enddate.message"),type:i.ConflictType.TIME_RANGE}}return e.prototype.getPresentDate=function(){return new Date(5e3,11,31,0,0,0)},e.prototype.formatDateForDisplay=function(e){return e?e===a.PRESENT?this.localizationService.localize("changeovertime","present"):e instanceof Date?this.getDateString(e):e.split("T")[0]:""},e.prototype.getDateFromDateString=function(e){return new Date(+e.split("-")[0],+e.split("-")[1]-1,+e.split("-")[2])},e.prototype.getDateString=function(e){if(e instanceof Date){var t=e.getFullYear(),n=e.getMonth()+1,r=e.getDate();return r<10&&(r="0"+r),n<10&&(n="0"+n),t+"-"+n+"-"+r}return null},e.prototype.checkRanges=function(e,t){var n=this,r=!1;t.forEach((function(e){e.conflictMessages||(e.conflictMessages=new Set),e.conflictMessages.delete(n.overlapMessage),e.conflictMessages.delete(n.mergeContiguousMessage),e.conflictMessages.delete(n.gapMessage),e.conflictMessages.delete(n.startDateLaterEndDate)}));for(var a=t.filter((function(e){return!e.isDelete()})),i=0;i0&&f.endDate&&g.startDate){c=new Date(f.endDate),p=new Date(g.startDate);o.default.hasGap(c.getTime(),p.getTime())&&(g.conflictMessages.add(this.gapMessage),f.conflictMessages.add(this.gapMessage))}f=g}return this.sort(t),r},e.prototype.between=function(e,t,n){if(null==e||null==t||null==n)return!1;var r=e instanceof Date?e:this.getDateFromDateString(e),o=this.getDateFromDateString(t),a=this.getDateFromDateString(n);return r>=o&&r<=a},e.prototype.addDay=function(e,t){var n=this.getDateFromDateString(t);return n.setDate(n.getDate()+e),this.getDateString(n)},e.prototype.sort=function(e){e.sort((function(e,t){return null==e.startDate||""===e.startDate?1:null==t.startDate||""===t.startDate?-1:new Date(e.startDate)-new Date(t.startDate)}))},e.prototype.checkExistRanges=function(e,t){var n=this,r=!1;e.forEach((function(e){e.conflictMessages||(e.conflictMessages=new Set),e.conflictMessages.delete(n.outsideExistsMessage)}));for(var a=e.filter((function(e){return!e.isDelete()})),i=t.filter((function(e){return!e.isDelete()})),l=0;lo&&(r.valid=!1,r.message=this.localizationService.decode("date.inpu.data.in.future.error.message")):t&&(r.valid=!1,r.message=this.localizationService.decode("manage.versions.date.required.message")),r},e.ɵfac=function(t){return new(t||e)(l.ɵɵinject(s.LocalizationService))},e.ɵprov=l.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.DateService=c,("undefined"==typeof ngDevMode||ngDevMode)&&l.ɵsetClassMetadata(c,[{type:r.Injectable}],(function(){return[{type:s.LocalizationService}]}),null)},113:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LocalizePipe=void 0;var r=n(0),o=(n(16),n(0)),a=n(16),i=function(){function e(e){this.service=e}return e.prototype.transform=function(e){return this.service.decode(e)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.LocalizationService))},e.ɵpipe=o.ɵɵdefinePipe({name:"localize",type:e,pure:!0}),e}();t.LocalizePipe=i,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(i,[{type:r.Pipe,args:[{name:"localize"}]}],(function(){return[{type:a.LocalizationService}]}),null)},114:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LocalizationService=void 0;var r=n(0),o=n(0),a=function(){function e(){this.locales=[],this.parser=Globalize.numberParser(),this.formatter=Globalize.numberFormatter(),this.locales=registry.locales,this.locale=registry.locale}return e.prototype.addLocale=function(e){for(var t=!1,n=0;n0?this.parser(e):null},e.prototype.formatNumber=function(e){if(null!=e){var t=e;if("string"==typeof t){if(!(t.length>0&&Number(t)))return"";t=Number(e)}return this.formatter(t)}return null},e.prototype.localize=function(e,t){return com.runwaysdk.Localize.localize(e,t)},e.prototype.get=function(e){return com.runwaysdk.Localize.get(e)},e.prototype.decode=function(e){var t=e.lastIndexOf(".");if(-1!==t){var n=[e.slice(0,t),e.slice(t+1)];return this.localize(n[0],n[1])}return this.get(e)},e.ɵfac=function(t){return new(t||e)},e.ɵprov=o.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.LocalizationService=a,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(a,[{type:r.Injectable}],(function(){return[]}),null)},115:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EventService=void 0;var r=n(0),o=n(0),a=function(){function e(){this.listeners=[]}return e.prototype.registerListener=function(e){this.listeners.push(e)},e.prototype.deregisterListener=function(e){var t=this.listeners.indexOf(e);return-1!==t&&(this.listeners.splice(t,1),!0)},e.prototype.start=function(){for(var e=0,t=this.listeners;e0)}}function b(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"ul",7),i.ɵɵelementStart(1,"li",8),i.ɵɵelementStart(2,"a",9),i.ɵɵlistener("click",(function(){return i.ɵɵrestoreView(n),i.ɵɵnextContext().account()})),i.ɵɵelementStart(3,"div"),i.ɵɵtext(4),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(5,"li",10),i.ɵɵelementStart(6,"a",11),i.ɵɵelement(7,"span",12),i.ɵɵelementEnd(),i.ɵɵtemplate(8,C,16,10,"ul",13),i.ɵɵelementEnd(),i.ɵɵelementEnd()}if(2&e){var r=i.ɵɵnextContext();i.ɵɵadvance(4),i.ɵɵtextInterpolate(r.getUsername())}}var M=function(){function e(e,t,n,r){this.modalService=e,this.profileService=t,this.service=n,this.loggedIn=!0,this.context=acp,this.isAdmin=n.isAdmin(),this.isMaintainer=this.isAdmin||n.isMaintainer(),this.isContributor=this.isAdmin||this.isMaintainer||n.isContributer(),r.getLocales()?(this.locales=r.getLocales().filter((function(e){return"defaultLocale"!==e.toString})),this.defaultLocaleView=r.getLocales().filter((function(e){return"defaultLocale"===e.toString}))[0]):(this.locales=[],this.defaultLocaleView=null),this.locale=r.getLocale();for(var o=!1,a=0;a0&&n.assigned),o.ɵɵadvance(1),o.ɵɵproperty("ngIf","RA"!==n.type&&n.orgCode.length>0&&n.assigned),o.ɵɵadvance(1),o.ɵɵproperty("ngIf","RA"!==n.type&&n.orgCode.length>0&&n.assigned)}}var I=function(){return["password","certainPassword"]};function x(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div"),o.ɵɵelement(1,"message"),o.ɵɵelementStart(2,"form",1,2),o.ɵɵlistener("ngSubmit",(function(){o.ɵɵrestoreView(n);var e=o.ɵɵreference(3),t=o.ɵɵnextContext();return e.valid&&t.onSubmit()})),o.ɵɵelementStart(4,"fieldset"),o.ɵɵelementStart(5,"div",3),o.ɵɵelementStart(6,"h1"),o.ɵɵelement(7,"localize",4),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(8,"div",5),o.ɵɵelementStart(9,"div",6),o.ɵɵelementStart(10,"label"),o.ɵɵelement(11,"localize",7),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(12,"div",8),o.ɵɵelementStart(13,"span",9),o.ɵɵelementStart(14,"input",10),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext()._profile.firstName=e})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(15,"div",5),o.ɵɵelementStart(16,"div",6),o.ɵɵelementStart(17,"label"),o.ɵɵelement(18,"localize",11),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(19,"div",8),o.ɵɵelementStart(20,"span",9),o.ɵɵelementStart(21,"input",12),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext()._profile.lastName=e})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(22,"div",5),o.ɵɵelementStart(23,"div",6),o.ɵɵelementStart(24,"label"),o.ɵɵelement(25,"localize",13),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(26,"div",8),o.ɵɵelementStart(27,"span",9),o.ɵɵelementStart(28,"input",14),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext()._profile.altFirstName=e})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(29,"div",5),o.ɵɵelementStart(30,"div",6),o.ɵɵelementStart(31,"label"),o.ɵɵelement(32,"localize",15),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(33,"div",8),o.ɵɵelementStart(34,"span",9),o.ɵɵelementStart(35,"input",16),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext()._profile.altLastName=e})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(36,"div",5),o.ɵɵelementStart(37,"div",6),o.ɵɵelementStart(38,"label"),o.ɵɵelement(39,"localize",17),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(40,"div",8),o.ɵɵelementStart(41,"span",9),o.ɵɵelementStart(42,"input",18),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext()._profile.phoneNumber=e})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(43,"div",5),o.ɵɵelementStart(44,"div",6),o.ɵɵelementStart(45,"label"),o.ɵɵelement(46,"localize",19),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(47,"div",8),o.ɵɵelementStart(48,"span",9),o.ɵɵelementStart(49,"input",20),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext()._profile.altPhoneNumber=e})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(50,"div",5),o.ɵɵelementStart(51,"div",6),o.ɵɵelementStart(52,"label"),o.ɵɵelement(53,"localize",21),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(54,"div",8),o.ɵɵelementStart(55,"span",9),o.ɵɵelementStart(56,"input",22,23),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext()._profile.email=e})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵtemplate(58,l,2,0,"div",24),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(59,"div",5),o.ɵɵelementStart(60,"div",6),o.ɵɵelementStart(61,"label"),o.ɵɵelement(62,"localize",25),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(63,"div",8),o.ɵɵelementStart(64,"span",9),o.ɵɵelementStart(65,"input",26),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext()._profile.position=e})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(66,"div",5),o.ɵɵelementStart(67,"div",6),o.ɵɵelementStart(68,"label"),o.ɵɵelement(69,"localize",27),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(70,"div",8),o.ɵɵelementStart(71,"span",9),o.ɵɵelementStart(72,"input",28),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext()._profile.department=e})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(73,"div",3),o.ɵɵelementStart(74,"h1"),o.ɵɵelement(75,"localize",29),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(76,"div",5),o.ɵɵelementStart(77,"div",6),o.ɵɵelementStart(78,"label"),o.ɵɵelement(79,"localize",30),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(80,"div",8),o.ɵɵelementStart(81,"span",9),o.ɵɵelementStart(82,"input",31),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext()._profile.username=e})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵtemplate(83,s,7,0,"div",32),o.ɵɵtemplate(84,d,6,2,"div",32),o.ɵɵtemplate(85,m,19,3,"div",0),o.ɵɵelementStart(86,"div",5),o.ɵɵelementStart(87,"div",6),o.ɵɵelementStart(88,"label"),o.ɵɵelement(89,"localize",33),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(90,"div",8),o.ɵɵelementStart(91,"table",34),o.ɵɵelementStart(92,"thead"),o.ɵɵelementStart(93,"tr"),o.ɵɵelementStart(94,"th"),o.ɵɵelement(95,"localize",35),o.ɵɵelementEnd(),o.ɵɵelementStart(96,"th"),o.ɵɵelement(97,"localize",36),o.ɵɵelementEnd(),o.ɵɵelementStart(98,"th"),o.ɵɵelement(99,"localize",37),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(100,"tbody"),o.ɵɵtemplate(101,E,10,9,"tr",38),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(102,"div",39),o.ɵɵelementStart(103,"div",40),o.ɵɵelementStart(104,"div",41),o.ɵɵelementStart(105,"input",42),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext().cancel()})),o.ɵɵpipe(106,"localize"),o.ɵɵelementEnd(),o.ɵɵelement(107,"input",43),o.ɵɵpipe(108,"localize"),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵreference(3),a=o.ɵɵreference(57),i=o.ɵɵnextContext();o.ɵɵadvance(2),o.ɵɵproperty("mustMatch",o.ɵɵpureFunction0(23,I)),o.ɵɵadvance(12),o.ɵɵproperty("ngModel",i._profile.firstName),o.ɵɵadvance(7),o.ɵɵproperty("ngModel",i._profile.lastName),o.ɵɵadvance(7),o.ɵɵproperty("ngModel",i._profile.altFirstName),o.ɵɵadvance(7),o.ɵɵproperty("ngModel",i._profile.altLastName),o.ɵɵadvance(7),o.ɵɵproperty("ngModel",i._profile.phoneNumber),o.ɵɵadvance(7),o.ɵɵproperty("ngModel",i._profile.altPhoneNumber),o.ɵɵadvance(7),o.ɵɵproperty("ngModel",i._profile.email),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",null==a.errors?null:a.errors.email),o.ɵɵadvance(7),o.ɵɵproperty("ngModel",i._profile.position),o.ɵɵadvance(7),o.ɵɵproperty("ngModel",i._profile.department),o.ɵɵadvance(10),o.ɵɵproperty("ngModel",i._profile.username),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",null!=i._profile.externalSystemOid&&""!==i._profile.externalSystemOid),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",null==i._profile.externalSystemOid||""===i._profile.externalSystemOid),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",i._profile.changePassword),o.ɵɵadvance(16),o.ɵɵproperty("ngForOf",i.roles),o.ɵɵadvance(4),o.ɵɵproperty("value",o.ɵɵpipeBind1(106,19,"dataset.cancel")),o.ɵɵadvance(2),o.ɵɵproperty("value",o.ɵɵpipeBind1(108,21,"dataset.submit"))("disabled",!r.valid)}}var D=function(){function e(e,t,n){this.service=e,this.bsModalRef=t,this.authService=n,this._profile={oid:"",username:"",password:"",firstName:"",lastName:"",email:"",changePassword:!1},this.roles=[]}return Object.defineProperty(e.prototype,"profile",{set:function(e){this._profile=e,this.getRoles()},enumerable:!1,configurable:!0}),e.prototype.getRoles=function(){var e=this;this.service.getRolesForUser(this._profile.oid).then((function(t){e.roles=t}))},e.prototype.onSubmit=function(){var e=this;this._profile.changePassword||delete this._profile.password,this.service.apply(this._profile).then((function(t){e.bsModalRef.hide()}))},e.prototype.onChangePassword=function(){this._profile.changePassword=!this._profile.changePassword},e.prototype.getRolesArray=function(){return this.authService.getRoles()},e.prototype.cancel=function(){var e=this;this.service.unlock(this._profile.oid).then((function(t){e.bsModalRef.hide()}))},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.ProfileService),o.ɵɵdirectiveInject(i.BsModalRef),o.ɵɵdirectiveInject(a.AuthService))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["profile"]],inputs:{profile:"profile"},decls:1,vars:1,consts:[[4,"ngIf"],[1,"modal-form",2,"background","none","border","none",3,"mustMatch","ngSubmit"],["form","ngForm"],[1,"heading","text-center"],["key","profile.heading"],[1,"row-holder"],[1,"label-holder"],["key","account.firstname"],[1,"holder"],[1,"text"],["type","text","name","firstname","required","",3,"ngModel","ngModelChange"],["key","account.lastname"],["type","text","name","lastname","required","",3,"ngModel","ngModelChange"],["key","account.altFirstname"],["type","text","name","altFirstname",3,"ngModel","ngModelChange"],["key","account.altLastname"],["type","text","name","altLastname",3,"ngModel","ngModelChange"],["key","account.phonenumber"],["type","text","name","phoneNumber",3,"ngModel","ngModelChange"],["key","account.altPhonenumber"],["type","text","name","altPhoneNumber",3,"ngModel","ngModelChange"],["key","account.email"],["type","text","name","email","required","","email","",3,"ngModel","ngModelChange"],["aemail","ngModel"],["style","float:none;","class","inline-error-message",4,"ngIf"],["key","account.position"],["type","text","name","position",3,"ngModel","ngModelChange"],["key","account.department"],["type","text","name","department",3,"ngModel","ngModelChange"],["key","account.info.heading"],["key","account.profile.username"],["type","text","name","username","required","",3,"ngModel","ngModelChange"],["class","row-holder",4,"ngIf"],["key","com.runwaysdk.ui.userstable.UsersTable.adminRoles"],[1,"table"],["key","profile.roles.role.table.heading"],["key","profile.roles.organization.table.heading"],["key","profile.roles.geoobjecttype.table.heading"],[4,"ngFor","ngForOf"],[1,"row"],[1,"col-md-12"],[1,"button-holder"],["type","button",1,"btn","btn-default",3,"value","click"],["type","submit",1,"btn","btn-primary",3,"value","disabled"],[1,"inline-error-message",2,"float","none"],["key","account.email.validation"],["key","account.profile.oauth"],["key","account.profile.isOauth"],[2,"text-align","left"],["type","button","class","btn btn-primary",3,"value","click",4,"ngIf"],["type","button","class","btn btn-default",3,"value","click",4,"ngIf"],["type","button",1,"btn","btn-primary",3,"value","click"],["key","account.password"],["type","password","name","password","required","","minlength","5","maxlength","50",3,"ngModel","ngModelChange"],["password","ngModel"],[3,"passwordToCheck"],["key","account.certainPassword"],["type","password","ngModel","","name","certainPassword"],["certainPassword","ngModel"],["key","account.certainPassword.validation"]],template:function(e,t){1&e&&o.ɵɵtemplate(0,x,109,24,"div",0),2&e&&o.ɵɵproperty("ngIf",t._profile)},styles:[".modal-form[_ngcontent-%COMP%] .check-block[_ngcontent-%COMP%] .chk-area[_ngcontent-%COMP%] { margin: 10px 0px 0 0;}"]}),e}();t.ProfileComponent=D,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(D,[{type:r.Component,args:[{selector:"profile",templateUrl:"./profile.component.html",styles:[".modal-form .check-block .chk-area { margin: 10px 0px 0 0;}"]}]}],(function(){return[{type:a.ProfileService},{type:i.BsModalRef},{type:a.AuthService}]}),{profile:[{type:r.Input,args:["profile"]}]})},153:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RegistryRoleType=t.RegistryRole=t.RoleBuilder=t.LocalizedValue=t.PageResult=t.OAuthServer=t.ExternalSystem=t.Organization=t.LocaleView=t.LocaleValue=void 0;var r=function(e,t){this.locale=e,this.value=t};t.LocaleValue=r;var o=function(e){this.label=e.create(),this.toString="",this.tag="",this.isDefaultLocale=!1,this.language={label:"",code:""},this.country={label:"",code:""},this.variant={label:"",code:""}};t.LocaleView=o;var a=function(){};t.Organization=a;var i=function(){};t.ExternalSystem=i;var l=function(){};t.OAuthServer=l;var s=function(){};t.PageResult=s;var c=function(){function e(e,t){this.localizedValue=e,this.localeValues=t}return e.prototype.getValue=function(e){for(var t=this.localeValues.length,n=0;n0))},directives:[i.NgIf,i.NgForOf,i.NgClass],styles:[".step-indicator[_ngcontent-%COMP%] .nav-item[_ngcontent-%COMP%] {\n height: 50px;\n background: white;\n text-align: center;\n vertical-align: middle;\n border-bottom: 4px solid lightgrey;\n font-size: 18px;\n color: lightgrey;\n padding: 10px;\n}\n.step-indicator[_ngcontent-%COMP%] .nav-item.active[_ngcontent-%COMP%]{\n \n cursor: pointer;\n}\n.step-indicator[_ngcontent-%COMP%] .nav-item.active.enabled[_ngcontent-%COMP%]{\n \n border-bottom: 4px solid black;\n font-weight: bold;\n color: black;\n}\n\n.nav.nav-justified[_ngcontent-%COMP%] {\n margin-top: 5px;\n}"]}),e}();t.ModalStepIndicatorComponent=u,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(u,[{type:r.Component,args:[{selector:"modal-step-indicator",templateUrl:"./modal-step-indicator.component.html",styleUrls:["./modal-step-indicator.css"]}]}],(function(){return[{type:a.ModalStepIndicatorService}]}),null)},156:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ProgressBarComponent=void 0;var r=n(0),o=(n(16),n(0)),a=n(16),i=n(1),l=n(126);function s(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",1),o.ɵɵelementStart(1,"div",2),o.ɵɵelementStart(2,"progressbar",3),o.ɵɵelementStart(3,"i"),o.ɵɵtext(4),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext();o.ɵɵadvance(2),o.ɵɵproperty("max",n.prog.total)("value",n.prog.current),o.ɵɵadvance(2),o.ɵɵtextInterpolate(n.prog.description)}}var c=function(){function e(e){this.service=e,this.showIndicator=!0,this.prog={current:0,total:1,description:"Initializing"}}return e.prototype.ngOnInit=function(){this.service.registerListener(this)},e.prototype.ngOnDestroy=function(){this.service.deregisterListener(this)},e.prototype.start=function(){this.prog={current:0,total:1,description:"Initializing"},this.showIndicator=!0},e.prototype.progress=function(e){this.prog=e},e.prototype.complete=function(){this.showIndicator=!1},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.ProgressService))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["progress-bar"]],decls:1,vars:1,consts:[["class","progress-overlay","style","height: 100%; width: 100%;",4,"ngIf"],[1,"progress-overlay",2,"height","100%","width","100%"],[1,"progress-div"],[1,"progress-striped","active",3,"max","value"]],template:function(e,t){1&e&&o.ɵɵtemplate(0,s,5,3,"div",0),2&e&&o.ɵɵproperty("ngIf",t.showIndicator)},directives:[i.NgIf,l.ProgressbarComponent],styles:[".progress-overlay[_ngcontent-%COMP%] { background-color: #CCCCCC; position: absolute; display: block;opacity: 0.8;z-index: 99999 !important;}",".progress-div[_ngcontent-%COMP%] { width: 100%; margin-left: 0; padding-left: 25%; padding-right: 25%; margin-top: 30% }"]}),e}();t.ProgressBarComponent=c,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(c,[{type:r.Component,args:[{selector:"progress-bar",templateUrl:"./progress-bar.component.html",styles:[".progress-overlay { background-color: #CCCCCC; position: absolute; display: block;opacity: 0.8;z-index: 99999 !important;}",".progress-div { width: 100%; margin-left: 0; padding-left: 25%; padding-right: 25%; margin-top: 30% }"]}]}],(function(){return[{type:a.ProgressService}]}),null)},157:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ExternalSystemService=void 0;var r=n(0),o=n(34),a=n(32),i=(n(16),n(0)),l=n(34),s=n(16),c=function(){function e(e,t){this.http=e,this.eventService=t}return e.prototype.getExternalSystems=function(e,t){var n=this,r=new o.HttpParams;return r=(r=r.set("pageNumber",e.toString())).set("pageSize",t.toString()),this.eventService.start(),this.http.get(acp+"/external-system/get-all",{params:r}).pipe(a.finalize((function(){n.eventService.complete()}))).toPromise()},e.prototype.getExternalSystem=function(e){var t=this,n=new o.HttpParams;return n=n.set("oid",e),this.eventService.start(),this.http.get(acp+"/external-system/get",{params:n}).pipe(a.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.applyExternalSystem=function(e){var t=this,n=new o.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/external-system/apply",JSON.stringify({system:e}),{headers:n}).pipe(a.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.getSystemCapabilities=function(e){var t=this,n=new o.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/external-system/system-capabilities",JSON.stringify({system:e}),{headers:n}).pipe(a.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.removeExternalSystem=function(e){var t=this,n=new o.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/external-system/remove",JSON.stringify({oid:e}),{headers:n}).pipe(a.finalize((function(){t.eventService.complete()}))).toPromise()},e.ɵfac=function(t){return new(t||e)(i.ɵɵinject(l.HttpClient),i.ɵɵinject(s.EventService))},e.ɵprov=i.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.ExternalSystemService=c,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(c,[{type:r.Injectable}],(function(){return[{type:l.HttpClient},{type:s.EventService}]}),null)},158:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ModalStepIndicatorService=void 0;var r=n(0),o=n(31),a=n(0),i=function(){function e(){this.modalStepChangedSource=new o.Subject,this.modalStepChange=this.modalStepChangedSource.asObservable()}return e.prototype.getStepConfig=function(){return this.stepConfig},e.prototype.setStepConfig=function(e){this.stepConfig=e,this.modalStepChangedSource.next(this.stepConfig)},e.prototype.getStep=function(){return this.step},e.prototype.setStep=function(e){this.step=e},e.ɵfac=function(t){return new(t||e)},e.ɵprov=a.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.ModalStepIndicatorService=i,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(i,[{type:r.Injectable}],(function(){return[]}),null)},159:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OrganizationService=void 0;var r=n(0),o=n(34),a=n(32),i=(n(16),n(0)),l=n(34),s=n(16),c=function(){function e(e,t){this.http=e,this.eventService=t}return e.prototype.getOrganizations=function(){var e=this;return this.eventService.start(),this.http.get(acp+"/cgr/organizations/get-all").pipe(a.finalize((function(){e.eventService.complete()}))).toPromise()},e.prototype.updateOrganization=function(e){var t=this,n=new o.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/cgr/orgainization/update",JSON.stringify({json:e}),{headers:n}).pipe(a.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.newOrganization=function(e){var t=this,n=new o.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/cgr/orgainization/create",JSON.stringify({json:e}),{headers:n}).pipe(a.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.removeOrganization=function(e){var t=this,n=new o.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/cgr/orgainization/delete",JSON.stringify({code:e}),{headers:n}).pipe(a.finalize((function(){t.eventService.complete()}))).toPromise()},e.ɵfac=function(t){return new(t||e)(i.ɵɵinject(l.HttpClient),i.ɵɵinject(s.EventService))},e.ɵprov=i.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.OrganizationService=c,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(c,[{type:r.Injectable}],(function(){return[{type:l.HttpClient},{type:s.EventService}]}),null)},16:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.services=void 0;var a=n(87),i=n(115),l=n(157),s=n(123),c=n(114),u=n(158),d=n(159),p=n(160),m=n(161),f=n(162),g=n(163),v=n(112);t.services=[a.AuthService,i.EventService,l.ExternalSystemService,s.AdminGuard,s.AuthGuard,s.ContributerGuard,s.MaintainerGuard,c.LocalizationService,u.ModalStepIndicatorService,d.OrganizationService,p.PendingChangesGuard,m.ProfileService,f.ProgressService,g.SessionService,v.DateService],o(n(87),t),o(n(115),t),o(n(157),t),o(n(123),t),o(n(114),t),o(n(158),t),o(n(159),t),o(n(160),t),o(n(161),t),o(n(162),t),o(n(163),t),o(n(112),t)},160:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PendingChangesGuard=void 0;var r=n(0),o=n(0),a=function(){function e(){}return e.prototype.canDeactivate=function(e){if(!e.canDeactivate()){var t=confirm("WARNING: You have unsaved changes. Press Cancel to go back and save these changes, or OK to lose these changes.");return e.afterDeactivate(t),t}return!0},e.ɵfac=function(t){return new(t||e)},e.ɵprov=o.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.PendingChangesGuard=a,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(a,[{type:r.Injectable}],null,null)},161:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ProfileService=void 0;var r=n(0),o=n(34),a=n(0),i=n(34),l=function(){function e(e){this.http=e}return e.prototype.get=function(){var e=new o.HttpHeaders({"Content-Type":"application/json"});return this.http.post(acp+"/registryaccount/get",{headers:e}).toPromise()},e.prototype.apply=function(e){var t=new o.HttpHeaders({"Content-Type":"application/json"});return this.http.post(acp+"/registryaccount/apply",JSON.stringify({account:e}),{headers:t}).toPromise()},e.prototype.unlock=function(e){var t=new o.HttpHeaders({"Content-Type":"application/json"});return this.http.post(acp+"/registryaccount/unlock",JSON.stringify({oid:e}),{headers:t}).toPromise()},e.prototype.setLocale=function(e){var t=new o.HttpHeaders({"Content-Type":"application/json"});return this.http.post(acp+"/localization/set-locale",JSON.stringify({locale:e}),{headers:t}).toPromise()},e.prototype.getRolesForUser=function(e){var t=new o.HttpHeaders({"Content-Type":"application/json"});return this.http.post(acp+"/registryaccount/getRolesForUser",{userOID:e},{headers:t}).toPromise()},e.ɵfac=function(t){return new(t||e)(a.ɵɵinject(i.HttpClient))},e.ɵprov=a.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.ProfileService=l,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(l,[{type:r.Injectable}],(function(){return[{type:i.HttpClient}]}),null)},162:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ProgressService=void 0;var r=n(0),o=n(0),a=function(){function e(){this.listeners=[]}return e.prototype.registerListener=function(e){this.listeners.push(e)},e.prototype.deregisterListener=function(e){var t=this.listeners.indexOf(e);return-1!==t&&(this.listeners.splice(t,1),!0)},e.prototype.start=function(){for(var e=0,t=this.listeners;e0)return"status"===r.code?a.default.removeStatuses(o):o}}return null},e}();t.GeoObjectType=c;var u=function(){};t.Task=u;var d=function(){function e(e,t){this.geoObjectType=e,this.attributes=t}return e.prototype.getVotAtDate=function(e,t,n){for(var r={startDate:e,endDate:null,value:null},o=e.getTime(),a=function(e){var a=i.geoObjectType.attributes[e];if(a.code===t){if("local"===a.type&&(r.value=n.create()),a.isChangeOverTime)i.attributes[a.code].values.forEach((function(e){var t=Date.parse(e.startDate),n=Date.parse(e.endDate);o>=t&&o<=n&&("local"===a.type?r.value=JSON.parse(JSON.stringify(e.value)):"term"===a.type&&null!=e.value&&Array.isArray(e.value)&&e.value.length>0?r.value=e.value[0]:r.value=e.value)}));else r.value=i.attributes[a.code];return"break"}},i=this,l=0;lr},e.dateEndBeforeStart=function(e,t){return t864e5},e.areValuesEqual=function(e,t,n){if("boolean"===e.type)return t===n;if(""===t&&null==n||""===n&&null==t)return!0;if(!t&&!n)return!0;if(!t&&n||!n&&t)return!1;if("term"===e.type){if(null!=t&&null!=n)return t.length===n.length&&t[0]===n[0]}else{if("geometry"===e.type)return o.default(t,n);if("date"===e.type)return("string"==typeof t?parseInt(t):t)===("string"==typeof n?parseInt(n):n);if("local"===e.type){if(!t.localeValues||!n.localeValues||t.localeValues.length!==n.localeValues.length)return!1;for(var r=t.localeValues.length,a=0;a0),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",t.localizeLabelKey.length>0),i.ɵɵadvance(1),i.ɵɵproperty("hidden",t.valueIsPresent),i.ɵɵadvance(2),i.ɵɵstyleMap(t.customStyles?t.customStyles:""),i.ɵɵclassMap(t.classNames?t.classNames+" date-input-element":"date-input-element"),i.ɵɵpropertyInterpolate("name",t.inputName),i.ɵɵpropertyInterpolate("placement",t.placement),i.ɵɵpropertyInterpolate("title",t.title),i.ɵɵproperty("bsValue",t._value)("value",i.ɵɵpipeBind2(6,21,t._value,"yyyy-MM-dd"))("bsConfig",i.ɵɵpureFunction1(24,y,t.returnFocusToInput))("outsideClick",!0)("maxDate",t.allowFutureDates?null:t.today)("isDisabled",t.disable)("disabled",t.disable),i.ɵɵadvance(4),i.ɵɵproperty("ngIf",t.message),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",t.oldDate),i.ɵɵadvance(1),i.ɵɵproperty("hidden",!t.valueIsPresent),i.ɵɵadvance(2),i.ɵɵproperty("ngIf",t.allowInfinity))},styles:['.disabled[_ngcontent-%COMP%]{\n cursor: not-allowed;\n}\n\nlabel.disabled[_ngcontent-%COMP%]{\n color: lightgrey;\n}\n\ninput[type="date"][_ngcontent-%COMP%] {\n\tmin-width: 173px;\n}\n\np.warning-text.display-current-value[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n\n.wrapper[_ngcontent-%COMP%] input[type="text"][_ngcontent-%COMP%] {\n position: relative; \n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n.date-input-element[_ngcontent-%COMP%] {\n\twidth: auto;\n}\n.date-input-element.full-width[_ngcontent-%COMP%] {\n\twidth: 100%;\n}\n\n.date-input-element[_ngcontent-%COMP%]:hover {\n\n}\n\n\n .bs-datepicker-body table td span.disabled, .bs-datepicker-body[_ngcontent-%COMP%] table[_ngcontent-%COMP%] td.disabled[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n color: lightgrey;\n cursor: not-allowed;\n}']}),e}();t.DateFieldComponent=S,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(S,[{type:r.Component,args:[{selector:"date-field",templateUrl:"./date-field.component.html",styleUrls:["./date-field.css"]}]}],(function(){return[{type:l.LocalizationService},{type:s.BsDatepickerConfig},{type:i.ChangeDetectorRef},{type:c.DateService}]}),{datepicker:[{type:r.ViewChild,args:[o.BsDatepickerDirective,{static:!1}]}],allowFutureDates:[{type:r.Input}],allowInfinity:[{type:r.Input}],inputName:[{type:r.Input}],classNames:[{type:r.Input}],customStyles:[{type:r.Input}],localizeLabelKey:[{type:r.Input}],label:[{type:r.Input}],disable:[{type:r.Input}],required:[{type:r.Input}],placement:[{type:r.Input}],oldDate:[{type:r.Input}],title:[{type:r.Input}],value:[{type:r.Input}],valueChange:[{type:r.Output}],change:[{type:r.Output}],valid:[{type:r.Input}],validChange:[{type:r.Output}]})},261:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Step=t.StepConfig=t.ModalTypes=void 0,function(e){e.warning="WARNING",e.danger="DANGER"}(t.ModalTypes||(t.ModalTypes={}));var r=function(){};t.StepConfig=r;var o=function(){};t.Step=o},262:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BooleanFieldComponent=void 0;var r=n(0),o=n(0),a=n(1),i=n(68);function l(e,t){if(1&e&&(o.ɵɵelementStart(0,"label",3),o.ɵɵtext(1),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext();o.ɵɵadvance(1),o.ɵɵtextInterpolate(n.label)}}function s(e,t){if(1&e&&(o.ɵɵelementStart(0,"label",3),o.ɵɵelement(1,"localize",4),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext();o.ɵɵadvance(1),o.ɵɵpropertyInterpolate("key",n.localizeLabelKey)}}var c=function(e){return{dizabled:e}},u=function(e){return{"chk-checked":e}},d=function(){function e(){this.value=!1,this.valueChange=new r.EventEmitter,this.localizeLabelKey="",this.label="",this.disable=!1,this.change=new r.EventEmitter}return e.prototype.toggle=function(){this.disable||(this.value=!this.value,this.valueChange.emit(this.value),this.change.emit(this.value))},e.ɵfac=function(t){return new(t||e)},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["boolean-field"]],inputs:{value:"value",localizeLabelKey:"localizeLabelKey",label:"label",disable:"disable"},outputs:{valueChange:"valueChange",change:"change"},decls:5,vars:8,consts:[[1,"check-block",3,"ngClass","click"],["ng-style","chkstyle",1,"chk-area",3,"ngClass"],["class","checkbox-label",4,"ngIf"],[1,"checkbox-label"],[3,"key"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵlistener("click",(function(){return t.toggle()})),o.ɵɵelementStart(1,"div",1),o.ɵɵelement(2,"span"),o.ɵɵelementEnd(),o.ɵɵtemplate(3,l,2,1,"label",2),o.ɵɵtemplate(4,s,2,1,"label",2),o.ɵɵelementEnd()),2&e&&(o.ɵɵproperty("ngClass",o.ɵɵpureFunction1(4,c,t.disable)),o.ɵɵadvance(1),o.ɵɵproperty("ngClass",o.ɵɵpureFunction1(6,u,t.value)),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",t.label.length>0),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",t.localizeLabelKey.length>0))},directives:[a.NgClass,a.NgIf,i.LocalizeComponent],styles:[".modal-form[_ngcontent-%COMP%] .holder[_ngcontent-%COMP%] .check-block[_ngcontent-%COMP%] .chk-area[_ngcontent-%COMP%] {\n margin: 10px 0px 0 0;\n}\n\n.dizabled[_ngcontent-%COMP%]{\n cursor: not-allowed;\n}\n\nlabel.dizabled[_ngcontent-%COMP%]{\n color: lightgrey;\n}\n\n.check-block[_ngcontent-%COMP%] {\n\t cursor: pointer;\n}\n\n.check-block[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n cursor: pointer;\n \n -webkit-touch-callout: none; \n -webkit-user-select: none; \n -khtml-user-select: none; \n -moz-user-select: none; \n -ms-user-select: none; \n user-select: none; \n}\n\n.dizabled[_ngcontent-%COMP%] {\n cursor: not-allowed;\n}\n\n.dizabled[_ngcontent-%COMP%] > label[_ngcontent-%COMP%] {\n cursor: not-allowed;\n}\n\n.dizabled[_ngcontent-%COMP%] > div[_ngcontent-%COMP%] {\n cursor: not-allowed;\n}\n\n.dizabled[_ngcontent-%COMP%] > span[_ngcontent-%COMP%] {\n cursor: not-allowed;\n}\n\n.dizabled[_ngcontent-%COMP%] > div.chk-area[_ngcontent-%COMP%] {\n cursor: not-allowed;\n}"]}),e}();t.BooleanFieldComponent=d,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(d,[{type:r.Component,args:[{selector:"boolean-field",templateUrl:"./boolean-field.component.html",styleUrls:["./boolean-field.css"]}]}],(function(){return[]}),{value:[{type:r.Input}],valueChange:[{type:r.Output}],localizeLabelKey:[{type:r.Input}],label:[{type:r.Input}],disable:[{type:r.Input}],change:[{type:r.Output}]})},265:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OnlyNumber=void 0;var r=n(0),o=n(0),a=function(){function e(e){this.el=e}return e.prototype.onKeyDown=function(e){var t=e;if(this.OnlyNumber){if(-1!==[46,8,9,27,13,110,190].indexOf(t.keyCode)||65===t.keyCode&&!0===t.ctrlKey||67===t.keyCode&&!0===t.ctrlKey||88===t.keyCode&&!0===t.ctrlKey||t.keyCode>=35&&t.keyCode<=39)return;(t.shiftKey||t.keyCode<48||t.keyCode>57)&&(t.keyCode<96||t.keyCode>105)&&t.preventDefault()}},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(o.ElementRef))},e.ɵdir=o.ɵɵdefineDirective({type:e,selectors:[["","OnlyNumber",""]],hostBindings:function(e,t){1&e&&o.ɵɵlistener("keydown",(function(e){return t.onKeyDown(e)}))},inputs:{OnlyNumber:"OnlyNumber"}}),e}();t.OnlyNumber=a,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(a,[{type:r.Directive,args:[{selector:"[OnlyNumber]"}]}],(function(){return[{type:o.ElementRef}]}),{OnlyNumber:[{type:r.Input}],onKeyDown:[{type:r.HostListener,args:["keydown",["$event"]]}]})},266:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MustMatchDirective=t.MustMatch=void 0;var r=n(0),o=n(22),a=n(0);function i(e,t){return function(n){var r=n.controls[e],o=n.controls[t];return r&&o?o.errors&&!o.errors.mustMatch?null:void(r.value!==o.value?o.setErrors({mustMatch:!0}):o.setErrors(null)):null}}t.MustMatch=i;var l=function(){function e(){this.mustMatch=[]}return e.prototype.validate=function(e){return i(this.mustMatch[0],this.mustMatch[1])(e)},e.ɵfac=function(t){return new(t||e)},e.ɵdir=a.ɵɵdefineDirective({type:e,selectors:[["","mustMatch",""]],inputs:{mustMatch:"mustMatch"},features:[a.ɵɵProvidersFeature([{provide:o.NG_VALIDATORS,useExisting:e,multi:!0}])]}),e}();t.MustMatchDirective=l,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(l,[{type:r.Directive,args:[{selector:"[mustMatch]",providers:[{provide:o.NG_VALIDATORS,useExisting:l,multi:!0}]}]}],null,{mustMatch:[{type:r.Input,args:["mustMatch"]}]})},267:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Profile=void 0;var r=function(){};t.Profile=r},268:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PhonePipe=void 0;var r=n(0),o=n(272),a=n(0),i=function(){function e(){}return e.prototype.transform=function(e,t){return e?o.formatNumber({country:"US",phone:e.toString()},"International"):e},e.ɵfac=function(t){return new(t||e)},e.ɵpipe=a.ɵɵdefinePipe({name:"phone",type:e,pure:!0}),e}();t.PhonePipe=i,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(i,[{type:r.Pipe,args:[{name:"phone"}]}],null,null)},68:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LocalizeComponent=void 0;var r=n(0),o=(n(16),n(0)),a=n(16),i=function(){function e(e){this.service=e,this.params=null}return e.prototype.ngOnInit=function(){var e=this;(this.text=this.service.decode(this.key),null!=this.params)&&Object.keys(this.params).forEach((function(t){null!=e.params[t]&&(e.text=e.text.replace(t,e.params[t]))}))},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.LocalizationService))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["localize"]],inputs:{key:"key",params:"params"},decls:1,vars:1,consts:[[3,"innerHtml"]],template:function(e,t){1&e&&o.ɵɵelement(0,"span",0),2&e&&o.ɵɵproperty("innerHtml",t.text,o.ɵɵsanitizeHtml)},encapsulation:2}),e}();t.LocalizeComponent=i,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(i,[{type:r.Component,args:[{selector:"localize",templateUrl:"./localize.component.html",styleUrls:[]}]}],(function(){return[{type:a.LocalizationService}]}),{key:[{type:r.Input}],params:[{type:r.Input}]})},86:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LoadingBarComponent=void 0;var r=n(0),o=(n(16),n(0)),a=n(16),i=n(1);function l(e,t){1&e&&o.ɵɵelement(0,"div",1)}var s=function(){function e(e){this.service=e,this.showIndicator=!1}return e.prototype.ngOnInit=function(){this.service.registerListener(this)},e.prototype.ngOnDestroy=function(){this.service.deregisterListener(this)},e.prototype.start=function(){this.showIndicator=!0},e.prototype.complete=function(){this.showIndicator=!1},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.EventService))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["loading-bar"]],decls:1,vars:1,consts:[["class","standby-overlay",4,"ngIf"],[1,"standby-overlay"]],template:function(e,t){1&e&&o.ɵɵtemplate(0,l,1,0,"div",0),2&e&&o.ɵɵproperty("ngIf",t.showIndicator)},directives:[i.NgIf],styles:[".standby-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n height: 100%; \n width: 100%; \n z-index: 100;\n}"]}),e}();t.LoadingBarComponent=s,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(s,[{type:r.Component,args:[{selector:"loading-bar",templateUrl:"./loading-bar.component.html",styleUrls:["./loading-bar.css"]}]}],(function(){return[{type:a.EventService}]}),null)},87:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AuthService=void 0;var r=n(0),o=(n(170),n(153)),a=n(0),i=n(170),l=function(){function e(e){this.service=e,this.user={loggedIn:!1,userName:"",roles:[],roleDisplayLabels:[],version:"0",installedLocales:[]};var t=e.get("user");if(this.service.check("user")&&null!=t&&t.length>0){var n=this.service.get("user"),r=JSON.parse(n);this.buildFromCookieJson(r)}this.loadLocales()}return e.prototype.buildFromCookieJson=function(e){this.user.userName=e.userName,this.buildRolesFromCookie(e),this.user.loggedIn=e.loggedIn,this.user.roleDisplayLabels=e.roleDisplayLabels,this.user.version=e.version.replaceAll("+"," ")},e.prototype.buildRolesFromCookie=function(e){this.user.roles=[];for(var t=e.roles,n=0;n90?t=4:e>70?t=3:e>=40?t=2:e>=20&&(t=1),{idx:t+1,col:this.colors[t]}},e.prototype.ngOnChanges=function(t){var n=t.passwordToCheck.currentValue;if(this.setBarColors(5,"#DDD"),n){var r=this.getColor(e.measureStrength(n));this.setBarColors(r.idx,r.col)}},e.prototype.setBarColors=function(e,t){for(var n=0;n0&&f.endDate&&g.startDate){c=new Date(f.endDate),p=new Date(g.startDate);o.default.hasGap(c.getTime(),p.getTime())&&(g.conflictMessages.add(this.gapMessage),f.conflictMessages.add(this.gapMessage))}f=g}return this.sort(t),r},e.prototype.between=function(e,t,n){if(null==e||null==t||null==n)return!1;var r=e instanceof Date?e:this.getDateFromDateString(e),o=this.getDateFromDateString(t),a=this.getDateFromDateString(n);return r>=o&&r<=a},e.prototype.after=function(e,t){return null!=e&&null!=t&&(e instanceof Date?e:this.getDateFromDateString(e))>(t instanceof Date?t:this.getDateFromDateString(t))},e.prototype.addDay=function(e,t){var n=this.getDateFromDateString(t);return n.setDate(n.getDate()+e),this.getDateString(n)},e.prototype.sort=function(e){e.sort((function(e,t){return null==e.startDate||""===e.startDate?1:null==t.startDate||""===t.startDate?-1:new Date(e.startDate)-new Date(t.startDate)}))},e.prototype.checkExistRanges=function(e,t){var n=this,r=!1;e.forEach((function(e){e.conflictMessages||(e.conflictMessages=new Set),e.conflictMessages.delete(n.outsideExistsMessage)}));for(var a=e.filter((function(e){return!e.isDelete()})),i=t.filter((function(e){return!e.isDelete()})),l=0;lo&&(r.valid=!1,r.message=this.localizationService.decode("date.inpu.data.in.future.error.message")):t&&(r.valid=!1,r.message=this.localizationService.decode("manage.versions.date.required.message")),r},e.ɵfac=function(t){return new(t||e)(l.ɵɵinject(s.LocalizationService))},e.ɵprov=l.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.DateService=c,("undefined"==typeof ngDevMode||ngDevMode)&&l.ɵsetClassMetadata(c,[{type:r.Injectable}],(function(){return[{type:s.LocalizationService}]}),null)},113:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LocalizePipe=void 0;var r=n(0),o=(n(16),n(0)),a=n(16),i=function(){function e(e){this.service=e}return e.prototype.transform=function(e){return this.service.decode(e)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.LocalizationService))},e.ɵpipe=o.ɵɵdefinePipe({name:"localize",type:e,pure:!0}),e}();t.LocalizePipe=i,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(i,[{type:r.Pipe,args:[{name:"localize"}]}],(function(){return[{type:a.LocalizationService}]}),null)},114:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LocalizationService=void 0;var r=n(0),o=n(0),a=function(){function e(){this.locales=[],this.parser=Globalize.numberParser(),this.formatter=Globalize.numberFormatter(),this.locales=registry.locales,this.locale=registry.locale}return e.prototype.addLocale=function(e){for(var t=!1,n=0;n0?this.parser(e):null},e.prototype.formatNumber=function(e){if(null!=e){var t=e;if("string"==typeof t){if(!(t.length>0&&Number(t)))return"";t=Number(e)}return this.formatter(t)}return null},e.prototype.localize=function(e,t){return com.runwaysdk.Localize.localize(e,t)},e.prototype.get=function(e){return com.runwaysdk.Localize.get(e)},e.prototype.decode=function(e){var t=e.lastIndexOf(".");if(-1!==t){var n=[e.slice(0,t),e.slice(t+1)];return this.localize(n[0],n[1])}return this.get(e)},e.ɵfac=function(t){return new(t||e)},e.ɵprov=o.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.LocalizationService=a,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(a,[{type:r.Injectable}],(function(){return[]}),null)},115:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EventService=void 0;var r=n(0),o=n(0),a=function(){function e(){this.listeners=[]}return e.prototype.registerListener=function(e){this.listeners.push(e)},e.prototype.deregisterListener=function(e){var t=this.listeners.indexOf(e);return-1!==t&&(this.listeners.splice(t,1),!0)},e.prototype.start=function(){for(var e=0,t=this.listeners;e0)}}function b(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"ul",7),i.ɵɵelementStart(1,"li",8),i.ɵɵelementStart(2,"a",9),i.ɵɵlistener("click",(function(){return i.ɵɵrestoreView(n),i.ɵɵnextContext().account()})),i.ɵɵelementStart(3,"div"),i.ɵɵtext(4),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(5,"li",10),i.ɵɵelementStart(6,"a",11),i.ɵɵelement(7,"span",12),i.ɵɵelementEnd(),i.ɵɵtemplate(8,C,16,10,"ul",13),i.ɵɵelementEnd(),i.ɵɵelementEnd()}if(2&e){var r=i.ɵɵnextContext();i.ɵɵadvance(4),i.ɵɵtextInterpolate(r.getUsername())}}var M=function(){function e(e,t,n,r){this.modalService=e,this.profileService=t,this.service=n,this.loggedIn=!0,this.context=acp,this.isAdmin=n.isAdmin(),this.isMaintainer=this.isAdmin||n.isMaintainer(),this.isContributor=this.isAdmin||this.isMaintainer||n.isContributer(),r.getLocales()?(this.locales=r.getLocales().filter((function(e){return"defaultLocale"!==e.toString})),this.defaultLocaleView=r.getLocales().filter((function(e){return"defaultLocale"===e.toString}))[0]):(this.locales=[],this.defaultLocaleView=null),this.locale=r.getLocale();for(var o=!1,a=0;a0&&n.assigned),o.ɵɵadvance(1),o.ɵɵproperty("ngIf","RA"!==n.type&&n.orgCode.length>0&&n.assigned),o.ɵɵadvance(1),o.ɵɵproperty("ngIf","RA"!==n.type&&n.orgCode.length>0&&n.assigned)}}var I=function(){return["password","certainPassword"]};function x(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div"),o.ɵɵelement(1,"message"),o.ɵɵelementStart(2,"form",1,2),o.ɵɵlistener("ngSubmit",(function(){o.ɵɵrestoreView(n);var e=o.ɵɵreference(3),t=o.ɵɵnextContext();return e.valid&&t.onSubmit()})),o.ɵɵelementStart(4,"fieldset"),o.ɵɵelementStart(5,"div",3),o.ɵɵelementStart(6,"h1"),o.ɵɵelement(7,"localize",4),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(8,"div",5),o.ɵɵelementStart(9,"div",6),o.ɵɵelementStart(10,"label"),o.ɵɵelement(11,"localize",7),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(12,"div",8),o.ɵɵelementStart(13,"span",9),o.ɵɵelementStart(14,"input",10),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext()._profile.firstName=e})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(15,"div",5),o.ɵɵelementStart(16,"div",6),o.ɵɵelementStart(17,"label"),o.ɵɵelement(18,"localize",11),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(19,"div",8),o.ɵɵelementStart(20,"span",9),o.ɵɵelementStart(21,"input",12),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext()._profile.lastName=e})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(22,"div",5),o.ɵɵelementStart(23,"div",6),o.ɵɵelementStart(24,"label"),o.ɵɵelement(25,"localize",13),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(26,"div",8),o.ɵɵelementStart(27,"span",9),o.ɵɵelementStart(28,"input",14),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext()._profile.altFirstName=e})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(29,"div",5),o.ɵɵelementStart(30,"div",6),o.ɵɵelementStart(31,"label"),o.ɵɵelement(32,"localize",15),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(33,"div",8),o.ɵɵelementStart(34,"span",9),o.ɵɵelementStart(35,"input",16),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext()._profile.altLastName=e})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(36,"div",5),o.ɵɵelementStart(37,"div",6),o.ɵɵelementStart(38,"label"),o.ɵɵelement(39,"localize",17),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(40,"div",8),o.ɵɵelementStart(41,"span",9),o.ɵɵelementStart(42,"input",18),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext()._profile.phoneNumber=e})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(43,"div",5),o.ɵɵelementStart(44,"div",6),o.ɵɵelementStart(45,"label"),o.ɵɵelement(46,"localize",19),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(47,"div",8),o.ɵɵelementStart(48,"span",9),o.ɵɵelementStart(49,"input",20),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext()._profile.altPhoneNumber=e})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(50,"div",5),o.ɵɵelementStart(51,"div",6),o.ɵɵelementStart(52,"label"),o.ɵɵelement(53,"localize",21),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(54,"div",8),o.ɵɵelementStart(55,"span",9),o.ɵɵelementStart(56,"input",22,23),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext()._profile.email=e})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵtemplate(58,l,2,0,"div",24),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(59,"div",5),o.ɵɵelementStart(60,"div",6),o.ɵɵelementStart(61,"label"),o.ɵɵelement(62,"localize",25),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(63,"div",8),o.ɵɵelementStart(64,"span",9),o.ɵɵelementStart(65,"input",26),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext()._profile.position=e})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(66,"div",5),o.ɵɵelementStart(67,"div",6),o.ɵɵelementStart(68,"label"),o.ɵɵelement(69,"localize",27),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(70,"div",8),o.ɵɵelementStart(71,"span",9),o.ɵɵelementStart(72,"input",28),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext()._profile.department=e})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(73,"div",3),o.ɵɵelementStart(74,"h1"),o.ɵɵelement(75,"localize",29),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(76,"div",5),o.ɵɵelementStart(77,"div",6),o.ɵɵelementStart(78,"label"),o.ɵɵelement(79,"localize",30),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(80,"div",8),o.ɵɵelementStart(81,"span",9),o.ɵɵelementStart(82,"input",31),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext()._profile.username=e})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵtemplate(83,s,7,0,"div",32),o.ɵɵtemplate(84,d,6,2,"div",32),o.ɵɵtemplate(85,m,19,3,"div",0),o.ɵɵelementStart(86,"div",5),o.ɵɵelementStart(87,"div",6),o.ɵɵelementStart(88,"label"),o.ɵɵelement(89,"localize",33),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(90,"div",8),o.ɵɵelementStart(91,"table",34),o.ɵɵelementStart(92,"thead"),o.ɵɵelementStart(93,"tr"),o.ɵɵelementStart(94,"th"),o.ɵɵelement(95,"localize",35),o.ɵɵelementEnd(),o.ɵɵelementStart(96,"th"),o.ɵɵelement(97,"localize",36),o.ɵɵelementEnd(),o.ɵɵelementStart(98,"th"),o.ɵɵelement(99,"localize",37),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(100,"tbody"),o.ɵɵtemplate(101,E,10,9,"tr",38),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(102,"div",39),o.ɵɵelementStart(103,"div",40),o.ɵɵelementStart(104,"div",41),o.ɵɵelementStart(105,"input",42),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext().cancel()})),o.ɵɵpipe(106,"localize"),o.ɵɵelementEnd(),o.ɵɵelement(107,"input",43),o.ɵɵpipe(108,"localize"),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵreference(3),a=o.ɵɵreference(57),i=o.ɵɵnextContext();o.ɵɵadvance(2),o.ɵɵproperty("mustMatch",o.ɵɵpureFunction0(23,I)),o.ɵɵadvance(12),o.ɵɵproperty("ngModel",i._profile.firstName),o.ɵɵadvance(7),o.ɵɵproperty("ngModel",i._profile.lastName),o.ɵɵadvance(7),o.ɵɵproperty("ngModel",i._profile.altFirstName),o.ɵɵadvance(7),o.ɵɵproperty("ngModel",i._profile.altLastName),o.ɵɵadvance(7),o.ɵɵproperty("ngModel",i._profile.phoneNumber),o.ɵɵadvance(7),o.ɵɵproperty("ngModel",i._profile.altPhoneNumber),o.ɵɵadvance(7),o.ɵɵproperty("ngModel",i._profile.email),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",null==a.errors?null:a.errors.email),o.ɵɵadvance(7),o.ɵɵproperty("ngModel",i._profile.position),o.ɵɵadvance(7),o.ɵɵproperty("ngModel",i._profile.department),o.ɵɵadvance(10),o.ɵɵproperty("ngModel",i._profile.username),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",null!=i._profile.externalSystemOid&&""!==i._profile.externalSystemOid),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",null==i._profile.externalSystemOid||""===i._profile.externalSystemOid),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",i._profile.changePassword),o.ɵɵadvance(16),o.ɵɵproperty("ngForOf",i.roles),o.ɵɵadvance(4),o.ɵɵproperty("value",o.ɵɵpipeBind1(106,19,"dataset.cancel")),o.ɵɵadvance(2),o.ɵɵproperty("value",o.ɵɵpipeBind1(108,21,"dataset.submit"))("disabled",!r.valid)}}var D=function(){function e(e,t,n){this.service=e,this.bsModalRef=t,this.authService=n,this._profile={oid:"",username:"",password:"",firstName:"",lastName:"",email:"",changePassword:!1},this.roles=[]}return Object.defineProperty(e.prototype,"profile",{set:function(e){this._profile=e,this.getRoles()},enumerable:!1,configurable:!0}),e.prototype.getRoles=function(){var e=this;this.service.getRolesForUser(this._profile.oid).then((function(t){e.roles=t}))},e.prototype.onSubmit=function(){var e=this;this._profile.changePassword||delete this._profile.password,this.service.apply(this._profile).then((function(t){e.bsModalRef.hide()}))},e.prototype.onChangePassword=function(){this._profile.changePassword=!this._profile.changePassword},e.prototype.getRolesArray=function(){return this.authService.getRoles()},e.prototype.cancel=function(){var e=this;this.service.unlock(this._profile.oid).then((function(t){e.bsModalRef.hide()}))},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.ProfileService),o.ɵɵdirectiveInject(i.BsModalRef),o.ɵɵdirectiveInject(a.AuthService))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["profile"]],inputs:{profile:"profile"},decls:1,vars:1,consts:[[4,"ngIf"],[1,"modal-form",2,"background","none","border","none",3,"mustMatch","ngSubmit"],["form","ngForm"],[1,"heading","text-center"],["key","profile.heading"],[1,"row-holder"],[1,"label-holder"],["key","account.firstname"],[1,"holder"],[1,"text"],["type","text","name","firstname","required","",3,"ngModel","ngModelChange"],["key","account.lastname"],["type","text","name","lastname","required","",3,"ngModel","ngModelChange"],["key","account.altFirstname"],["type","text","name","altFirstname",3,"ngModel","ngModelChange"],["key","account.altLastname"],["type","text","name","altLastname",3,"ngModel","ngModelChange"],["key","account.phonenumber"],["type","text","name","phoneNumber",3,"ngModel","ngModelChange"],["key","account.altPhonenumber"],["type","text","name","altPhoneNumber",3,"ngModel","ngModelChange"],["key","account.email"],["type","text","name","email","required","","email","",3,"ngModel","ngModelChange"],["aemail","ngModel"],["style","float:none;","class","inline-error-message",4,"ngIf"],["key","account.position"],["type","text","name","position",3,"ngModel","ngModelChange"],["key","account.department"],["type","text","name","department",3,"ngModel","ngModelChange"],["key","account.info.heading"],["key","account.profile.username"],["type","text","name","username","required","",3,"ngModel","ngModelChange"],["class","row-holder",4,"ngIf"],["key","com.runwaysdk.ui.userstable.UsersTable.adminRoles"],[1,"table"],["key","profile.roles.role.table.heading"],["key","profile.roles.organization.table.heading"],["key","profile.roles.geoobjecttype.table.heading"],[4,"ngFor","ngForOf"],[1,"row"],[1,"col-md-12"],[1,"button-holder"],["type","button",1,"btn","btn-default",3,"value","click"],["type","submit",1,"btn","btn-primary",3,"value","disabled"],[1,"inline-error-message",2,"float","none"],["key","account.email.validation"],["key","account.profile.oauth"],["key","account.profile.isOauth"],[2,"text-align","left"],["type","button","class","btn btn-primary",3,"value","click",4,"ngIf"],["type","button","class","btn btn-default",3,"value","click",4,"ngIf"],["type","button",1,"btn","btn-primary",3,"value","click"],["key","account.password"],["type","password","name","password","required","","minlength","5","maxlength","50",3,"ngModel","ngModelChange"],["password","ngModel"],[3,"passwordToCheck"],["key","account.certainPassword"],["type","password","ngModel","","name","certainPassword"],["certainPassword","ngModel"],["key","account.certainPassword.validation"]],template:function(e,t){1&e&&o.ɵɵtemplate(0,x,109,24,"div",0),2&e&&o.ɵɵproperty("ngIf",t._profile)},styles:[".modal-form[_ngcontent-%COMP%] .check-block[_ngcontent-%COMP%] .chk-area[_ngcontent-%COMP%] { margin: 10px 0px 0 0;}"]}),e}();t.ProfileComponent=D,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(D,[{type:r.Component,args:[{selector:"profile",templateUrl:"./profile.component.html",styles:[".modal-form .check-block .chk-area { margin: 10px 0px 0 0;}"]}]}],(function(){return[{type:a.ProfileService},{type:i.BsModalRef},{type:a.AuthService}]}),{profile:[{type:r.Input,args:["profile"]}]})},153:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RegistryRoleType=t.RegistryRole=t.RoleBuilder=t.LocalizedValue=t.PageResult=t.OAuthServer=t.ExternalSystem=t.Organization=t.LocaleView=t.LocaleValue=void 0;var r=function(e,t){this.locale=e,this.value=t};t.LocaleValue=r;var o=function(e){this.label=e.create(),this.toString="",this.tag="",this.isDefaultLocale=!1,this.language={label:"",code:""},this.country={label:"",code:""},this.variant={label:"",code:""}};t.LocaleView=o;var a=function(){};t.Organization=a;var i=function(){};t.ExternalSystem=i;var l=function(){};t.OAuthServer=l;var s=function(){};t.PageResult=s;var c=function(){function e(e,t){this.localizedValue=e,this.localeValues=t}return e.prototype.getValue=function(e){for(var t=this.localeValues.length,n=0;n0))},directives:[i.NgIf,i.NgForOf,i.NgClass],styles:[".step-indicator[_ngcontent-%COMP%] .nav-item[_ngcontent-%COMP%] {\n height: 50px;\n background: white;\n text-align: center;\n vertical-align: middle;\n border-bottom: 4px solid lightgrey;\n font-size: 18px;\n color: lightgrey;\n padding: 10px;\n}\n.step-indicator[_ngcontent-%COMP%] .nav-item.active[_ngcontent-%COMP%]{\n \n cursor: pointer;\n}\n.step-indicator[_ngcontent-%COMP%] .nav-item.active.enabled[_ngcontent-%COMP%]{\n \n border-bottom: 4px solid black;\n font-weight: bold;\n color: black;\n}\n\n.nav.nav-justified[_ngcontent-%COMP%] {\n margin-top: 5px;\n}"]}),e}();t.ModalStepIndicatorComponent=u,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(u,[{type:r.Component,args:[{selector:"modal-step-indicator",templateUrl:"./modal-step-indicator.component.html",styleUrls:["./modal-step-indicator.css"]}]}],(function(){return[{type:a.ModalStepIndicatorService}]}),null)},156:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ProgressBarComponent=void 0;var r=n(0),o=(n(16),n(0)),a=n(16),i=n(1),l=n(126);function s(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",1),o.ɵɵelementStart(1,"div",2),o.ɵɵelementStart(2,"progressbar",3),o.ɵɵelementStart(3,"i"),o.ɵɵtext(4),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext();o.ɵɵadvance(2),o.ɵɵproperty("max",n.prog.total)("value",n.prog.current),o.ɵɵadvance(2),o.ɵɵtextInterpolate(n.prog.description)}}var c=function(){function e(e){this.service=e,this.showIndicator=!0,this.prog={current:0,total:1,description:"Initializing"}}return e.prototype.ngOnInit=function(){this.service.registerListener(this)},e.prototype.ngOnDestroy=function(){this.service.deregisterListener(this)},e.prototype.start=function(){this.prog={current:0,total:1,description:"Initializing"},this.showIndicator=!0},e.prototype.progress=function(e){this.prog=e},e.prototype.complete=function(){this.showIndicator=!1},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.ProgressService))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["progress-bar"]],decls:1,vars:1,consts:[["class","progress-overlay","style","height: 100%; width: 100%;",4,"ngIf"],[1,"progress-overlay",2,"height","100%","width","100%"],[1,"progress-div"],[1,"progress-striped","active",3,"max","value"]],template:function(e,t){1&e&&o.ɵɵtemplate(0,s,5,3,"div",0),2&e&&o.ɵɵproperty("ngIf",t.showIndicator)},directives:[i.NgIf,l.ProgressbarComponent],styles:[".progress-overlay[_ngcontent-%COMP%] { background-color: #CCCCCC; position: absolute; display: block;opacity: 0.8;z-index: 99999 !important;}",".progress-div[_ngcontent-%COMP%] { width: 100%; margin-left: 0; padding-left: 25%; padding-right: 25%; margin-top: 30% }"]}),e}();t.ProgressBarComponent=c,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(c,[{type:r.Component,args:[{selector:"progress-bar",templateUrl:"./progress-bar.component.html",styles:[".progress-overlay { background-color: #CCCCCC; position: absolute; display: block;opacity: 0.8;z-index: 99999 !important;}",".progress-div { width: 100%; margin-left: 0; padding-left: 25%; padding-right: 25%; margin-top: 30% }"]}]}],(function(){return[{type:a.ProgressService}]}),null)},157:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ExternalSystemService=void 0;var r=n(0),o=n(34),a=n(32),i=(n(16),n(0)),l=n(34),s=n(16),c=function(){function e(e,t){this.http=e,this.eventService=t}return e.prototype.getExternalSystems=function(e,t){var n=this,r=new o.HttpParams;return r=(r=r.set("pageNumber",e.toString())).set("pageSize",t.toString()),this.eventService.start(),this.http.get(acp+"/external-system/get-all",{params:r}).pipe(a.finalize((function(){n.eventService.complete()}))).toPromise()},e.prototype.getExternalSystem=function(e){var t=this,n=new o.HttpParams;return n=n.set("oid",e),this.eventService.start(),this.http.get(acp+"/external-system/get",{params:n}).pipe(a.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.applyExternalSystem=function(e){var t=this,n=new o.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/external-system/apply",JSON.stringify({system:e}),{headers:n}).pipe(a.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.getSystemCapabilities=function(e){var t=this,n=new o.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/external-system/system-capabilities",JSON.stringify({system:e}),{headers:n}).pipe(a.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.removeExternalSystem=function(e){var t=this,n=new o.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/external-system/remove",JSON.stringify({oid:e}),{headers:n}).pipe(a.finalize((function(){t.eventService.complete()}))).toPromise()},e.ɵfac=function(t){return new(t||e)(i.ɵɵinject(l.HttpClient),i.ɵɵinject(s.EventService))},e.ɵprov=i.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.ExternalSystemService=c,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(c,[{type:r.Injectable}],(function(){return[{type:l.HttpClient},{type:s.EventService}]}),null)},158:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ModalStepIndicatorService=void 0;var r=n(0),o=n(31),a=n(0),i=function(){function e(){this.modalStepChangedSource=new o.Subject,this.modalStepChange=this.modalStepChangedSource.asObservable()}return e.prototype.getStepConfig=function(){return this.stepConfig},e.prototype.setStepConfig=function(e){this.stepConfig=e,this.modalStepChangedSource.next(this.stepConfig)},e.prototype.getStep=function(){return this.step},e.prototype.setStep=function(e){this.step=e},e.ɵfac=function(t){return new(t||e)},e.ɵprov=a.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.ModalStepIndicatorService=i,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(i,[{type:r.Injectable}],(function(){return[]}),null)},159:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OrganizationService=void 0;var r=n(0),o=n(34),a=n(32),i=(n(16),n(0)),l=n(34),s=n(16),c=function(){function e(e,t){this.http=e,this.eventService=t}return e.prototype.getOrganizations=function(){var e=this;return this.eventService.start(),this.http.get(acp+"/cgr/organizations/get-all").pipe(a.finalize((function(){e.eventService.complete()}))).toPromise()},e.prototype.updateOrganization=function(e){var t=this,n=new o.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/cgr/orgainization/update",JSON.stringify({json:e}),{headers:n}).pipe(a.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.newOrganization=function(e){var t=this,n=new o.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/cgr/orgainization/create",JSON.stringify({json:e}),{headers:n}).pipe(a.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.removeOrganization=function(e){var t=this,n=new o.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/cgr/orgainization/delete",JSON.stringify({code:e}),{headers:n}).pipe(a.finalize((function(){t.eventService.complete()}))).toPromise()},e.ɵfac=function(t){return new(t||e)(i.ɵɵinject(l.HttpClient),i.ɵɵinject(s.EventService))},e.ɵprov=i.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.OrganizationService=c,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(c,[{type:r.Injectable}],(function(){return[{type:l.HttpClient},{type:s.EventService}]}),null)},16:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.services=void 0;var a=n(87),i=n(115),l=n(157),s=n(123),c=n(114),u=n(158),d=n(159),p=n(160),m=n(161),f=n(162),g=n(163),v=n(112);t.services=[a.AuthService,i.EventService,l.ExternalSystemService,s.AdminGuard,s.AuthGuard,s.ContributerGuard,s.MaintainerGuard,c.LocalizationService,u.ModalStepIndicatorService,d.OrganizationService,p.PendingChangesGuard,m.ProfileService,f.ProgressService,g.SessionService,v.DateService],o(n(87),t),o(n(115),t),o(n(157),t),o(n(123),t),o(n(114),t),o(n(158),t),o(n(159),t),o(n(160),t),o(n(161),t),o(n(162),t),o(n(163),t),o(n(112),t)},160:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PendingChangesGuard=void 0;var r=n(0),o=n(0),a=function(){function e(){}return e.prototype.canDeactivate=function(e){if(!e.canDeactivate()){var t=confirm("WARNING: You have unsaved changes. Press Cancel to go back and save these changes, or OK to lose these changes.");return e.afterDeactivate(t),t}return!0},e.ɵfac=function(t){return new(t||e)},e.ɵprov=o.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.PendingChangesGuard=a,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(a,[{type:r.Injectable}],null,null)},161:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ProfileService=void 0;var r=n(0),o=n(34),a=n(0),i=n(34),l=function(){function e(e){this.http=e}return e.prototype.get=function(){var e=new o.HttpHeaders({"Content-Type":"application/json"});return this.http.post(acp+"/registryaccount/get",{headers:e}).toPromise()},e.prototype.apply=function(e){var t=new o.HttpHeaders({"Content-Type":"application/json"});return this.http.post(acp+"/registryaccount/apply",JSON.stringify({account:e}),{headers:t}).toPromise()},e.prototype.unlock=function(e){var t=new o.HttpHeaders({"Content-Type":"application/json"});return this.http.post(acp+"/registryaccount/unlock",JSON.stringify({oid:e}),{headers:t}).toPromise()},e.prototype.setLocale=function(e){var t=new o.HttpHeaders({"Content-Type":"application/json"});return this.http.post(acp+"/localization/set-locale",JSON.stringify({locale:e}),{headers:t}).toPromise()},e.prototype.getRolesForUser=function(e){var t=new o.HttpHeaders({"Content-Type":"application/json"});return this.http.post(acp+"/registryaccount/getRolesForUser",{userOID:e},{headers:t}).toPromise()},e.ɵfac=function(t){return new(t||e)(a.ɵɵinject(i.HttpClient))},e.ɵprov=a.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.ProfileService=l,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(l,[{type:r.Injectable}],(function(){return[{type:i.HttpClient}]}),null)},162:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ProgressService=void 0;var r=n(0),o=n(0),a=function(){function e(){this.listeners=[]}return e.prototype.registerListener=function(e){this.listeners.push(e)},e.prototype.deregisterListener=function(e){var t=this.listeners.indexOf(e);return-1!==t&&(this.listeners.splice(t,1),!0)},e.prototype.start=function(){for(var e=0,t=this.listeners;e0)return"status"===r.code?a.default.removeStatuses(o):o}}return null},e}();t.GeoObjectType=c;var u=function(){};t.Task=u;var d=function(){function e(e,t){this.geoObjectType=e,this.attributes=t}return e.prototype.getVotAtDate=function(e,t,n){for(var r={startDate:e,endDate:null,value:null},o=e.getTime(),a=function(e){var a=i.geoObjectType.attributes[e];if(a.code===t){if("local"===a.type&&(r.value=n.create()),a.isChangeOverTime)i.attributes[a.code].values.forEach((function(e){var t=Date.parse(e.startDate),n=Date.parse(e.endDate);o>=t&&o<=n&&("local"===a.type?r.value=JSON.parse(JSON.stringify(e.value)):"term"===a.type&&null!=e.value&&Array.isArray(e.value)&&e.value.length>0?r.value=e.value[0]:r.value=e.value)}));else r.value=i.attributes[a.code];return"break"}},i=this,l=0;lr},e.dateEndBeforeStart=function(e,t){return t864e5},e.areValuesEqual=function(e,t,n){if("boolean"===e.type)return t===n;if(""===t&&null==n||""===n&&null==t)return!0;if(!t&&!n)return!0;if(!t&&n||!n&&t)return!1;if("term"===e.type){if(null!=t&&null!=n)return t.length===n.length&&t[0]===n[0]}else{if("geometry"===e.type)return o.default(t,n);if("date"===e.type)return("string"==typeof t?parseInt(t):t)===("string"==typeof n?parseInt(n):n);if("local"===e.type){if(!t.localeValues||!n.localeValues||t.localeValues.length!==n.localeValues.length)return!1;for(var r=t.localeValues.length,a=0;a0),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",t.localizeLabelKey.length>0),i.ɵɵadvance(1),i.ɵɵproperty("hidden",t.valueIsPresent),i.ɵɵadvance(2),i.ɵɵstyleMap(t.customStyles?t.customStyles:""),i.ɵɵclassMap(t.classNames?t.classNames+" date-input-element":"date-input-element"),i.ɵɵpropertyInterpolate("name",t.inputName),i.ɵɵpropertyInterpolate("placement",t.placement),i.ɵɵpropertyInterpolate("title",t.title),i.ɵɵproperty("bsValue",t._value)("value",i.ɵɵpipeBind2(6,21,t._value,"yyyy-MM-dd"))("bsConfig",i.ɵɵpureFunction1(24,y,t.returnFocusToInput))("outsideClick",!0)("maxDate",t.allowFutureDates?null:t.today)("isDisabled",t.disable)("disabled",t.disable),i.ɵɵadvance(4),i.ɵɵproperty("ngIf",t.message),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",t.oldDate),i.ɵɵadvance(1),i.ɵɵproperty("hidden",!t.valueIsPresent),i.ɵɵadvance(2),i.ɵɵproperty("ngIf",t.allowInfinity))},styles:['.disabled[_ngcontent-%COMP%]{\n cursor: not-allowed;\n}\n\nlabel.disabled[_ngcontent-%COMP%]{\n color: lightgrey;\n}\n\ninput[type="date"][_ngcontent-%COMP%] {\n\tmin-width: 173px;\n}\n\np.warning-text.display-current-value[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n\n.wrapper[_ngcontent-%COMP%] input[type="text"][_ngcontent-%COMP%] {\n position: relative; \n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n.date-input-element[_ngcontent-%COMP%] {\n\twidth: auto;\n}\n.date-input-element.full-width[_ngcontent-%COMP%] {\n\twidth: 100%;\n}\n\n.date-input-element[_ngcontent-%COMP%]:hover {\n\n}\n\n\n .bs-datepicker-body table td span.disabled, .bs-datepicker-body[_ngcontent-%COMP%] table[_ngcontent-%COMP%] td.disabled[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n color: lightgrey;\n cursor: not-allowed;\n}']}),e}();t.DateFieldComponent=S,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(S,[{type:r.Component,args:[{selector:"date-field",templateUrl:"./date-field.component.html",styleUrls:["./date-field.css"]}]}],(function(){return[{type:l.LocalizationService},{type:s.BsDatepickerConfig},{type:i.ChangeDetectorRef},{type:c.DateService}]}),{datepicker:[{type:r.ViewChild,args:[o.BsDatepickerDirective,{static:!1}]}],allowFutureDates:[{type:r.Input}],allowInfinity:[{type:r.Input}],inputName:[{type:r.Input}],classNames:[{type:r.Input}],customStyles:[{type:r.Input}],localizeLabelKey:[{type:r.Input}],label:[{type:r.Input}],disable:[{type:r.Input}],required:[{type:r.Input}],placement:[{type:r.Input}],oldDate:[{type:r.Input}],title:[{type:r.Input}],value:[{type:r.Input}],valueChange:[{type:r.Output}],change:[{type:r.Output}],valid:[{type:r.Input}],validChange:[{type:r.Output}]})},261:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Step=t.StepConfig=t.ModalTypes=void 0,function(e){e.warning="WARNING",e.danger="DANGER"}(t.ModalTypes||(t.ModalTypes={}));var r=function(){};t.StepConfig=r;var o=function(){};t.Step=o},262:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BooleanFieldComponent=void 0;var r=n(0),o=n(0),a=n(1),i=n(68);function l(e,t){if(1&e&&(o.ɵɵelementStart(0,"label",3),o.ɵɵtext(1),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext();o.ɵɵadvance(1),o.ɵɵtextInterpolate(n.label)}}function s(e,t){if(1&e&&(o.ɵɵelementStart(0,"label",3),o.ɵɵelement(1,"localize",4),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext();o.ɵɵadvance(1),o.ɵɵpropertyInterpolate("key",n.localizeLabelKey)}}var c=function(e){return{dizabled:e}},u=function(e){return{"chk-checked":e}},d=function(){function e(){this.value=!1,this.valueChange=new r.EventEmitter,this.localizeLabelKey="",this.label="",this.disable=!1,this.change=new r.EventEmitter}return e.prototype.toggle=function(){this.disable||(this.value=!this.value,this.valueChange.emit(this.value),this.change.emit(this.value))},e.ɵfac=function(t){return new(t||e)},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["boolean-field"]],inputs:{value:"value",localizeLabelKey:"localizeLabelKey",label:"label",disable:"disable"},outputs:{valueChange:"valueChange",change:"change"},decls:5,vars:8,consts:[[1,"check-block",3,"ngClass","click"],["ng-style","chkstyle",1,"chk-area",3,"ngClass"],["class","checkbox-label",4,"ngIf"],[1,"checkbox-label"],[3,"key"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵlistener("click",(function(){return t.toggle()})),o.ɵɵelementStart(1,"div",1),o.ɵɵelement(2,"span"),o.ɵɵelementEnd(),o.ɵɵtemplate(3,l,2,1,"label",2),o.ɵɵtemplate(4,s,2,1,"label",2),o.ɵɵelementEnd()),2&e&&(o.ɵɵproperty("ngClass",o.ɵɵpureFunction1(4,c,t.disable)),o.ɵɵadvance(1),o.ɵɵproperty("ngClass",o.ɵɵpureFunction1(6,u,t.value)),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",t.label.length>0),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",t.localizeLabelKey.length>0))},directives:[a.NgClass,a.NgIf,i.LocalizeComponent],styles:[".modal-form[_ngcontent-%COMP%] .holder[_ngcontent-%COMP%] .check-block[_ngcontent-%COMP%] .chk-area[_ngcontent-%COMP%] {\n margin: 10px 0px 0 0;\n}\n\n.dizabled[_ngcontent-%COMP%]{\n cursor: not-allowed;\n}\n\nlabel.dizabled[_ngcontent-%COMP%]{\n color: lightgrey;\n}\n\n.check-block[_ngcontent-%COMP%] {\n\t cursor: pointer;\n}\n\n.check-block[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n cursor: pointer;\n \n -webkit-touch-callout: none; \n -webkit-user-select: none; \n -khtml-user-select: none; \n -moz-user-select: none; \n -ms-user-select: none; \n user-select: none; \n}\n\n.dizabled[_ngcontent-%COMP%] {\n cursor: not-allowed;\n}\n\n.dizabled[_ngcontent-%COMP%] > label[_ngcontent-%COMP%] {\n cursor: not-allowed;\n}\n\n.dizabled[_ngcontent-%COMP%] > div[_ngcontent-%COMP%] {\n cursor: not-allowed;\n}\n\n.dizabled[_ngcontent-%COMP%] > span[_ngcontent-%COMP%] {\n cursor: not-allowed;\n}\n\n.dizabled[_ngcontent-%COMP%] > div.chk-area[_ngcontent-%COMP%] {\n cursor: not-allowed;\n}"]}),e}();t.BooleanFieldComponent=d,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(d,[{type:r.Component,args:[{selector:"boolean-field",templateUrl:"./boolean-field.component.html",styleUrls:["./boolean-field.css"]}]}],(function(){return[]}),{value:[{type:r.Input}],valueChange:[{type:r.Output}],localizeLabelKey:[{type:r.Input}],label:[{type:r.Input}],disable:[{type:r.Input}],change:[{type:r.Output}]})},265:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OnlyNumber=void 0;var r=n(0),o=n(0),a=function(){function e(e){this.el=e}return e.prototype.onKeyDown=function(e){var t=e;if(this.OnlyNumber){if(-1!==[46,8,9,27,13,110,190].indexOf(t.keyCode)||65===t.keyCode&&!0===t.ctrlKey||67===t.keyCode&&!0===t.ctrlKey||88===t.keyCode&&!0===t.ctrlKey||t.keyCode>=35&&t.keyCode<=39)return;(t.shiftKey||t.keyCode<48||t.keyCode>57)&&(t.keyCode<96||t.keyCode>105)&&t.preventDefault()}},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(o.ElementRef))},e.ɵdir=o.ɵɵdefineDirective({type:e,selectors:[["","OnlyNumber",""]],hostBindings:function(e,t){1&e&&o.ɵɵlistener("keydown",(function(e){return t.onKeyDown(e)}))},inputs:{OnlyNumber:"OnlyNumber"}}),e}();t.OnlyNumber=a,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(a,[{type:r.Directive,args:[{selector:"[OnlyNumber]"}]}],(function(){return[{type:o.ElementRef}]}),{OnlyNumber:[{type:r.Input}],onKeyDown:[{type:r.HostListener,args:["keydown",["$event"]]}]})},266:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MustMatchDirective=t.MustMatch=void 0;var r=n(0),o=n(22),a=n(0);function i(e,t){return function(n){var r=n.controls[e],o=n.controls[t];return r&&o?o.errors&&!o.errors.mustMatch?null:void(r.value!==o.value?o.setErrors({mustMatch:!0}):o.setErrors(null)):null}}t.MustMatch=i;var l=function(){function e(){this.mustMatch=[]}return e.prototype.validate=function(e){return i(this.mustMatch[0],this.mustMatch[1])(e)},e.ɵfac=function(t){return new(t||e)},e.ɵdir=a.ɵɵdefineDirective({type:e,selectors:[["","mustMatch",""]],inputs:{mustMatch:"mustMatch"},features:[a.ɵɵProvidersFeature([{provide:o.NG_VALIDATORS,useExisting:e,multi:!0}])]}),e}();t.MustMatchDirective=l,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(l,[{type:r.Directive,args:[{selector:"[mustMatch]",providers:[{provide:o.NG_VALIDATORS,useExisting:l,multi:!0}]}]}],null,{mustMatch:[{type:r.Input,args:["mustMatch"]}]})},267:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Profile=void 0;var r=function(){};t.Profile=r},268:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PhonePipe=void 0;var r=n(0),o=n(272),a=n(0),i=function(){function e(){}return e.prototype.transform=function(e,t){return e?o.formatNumber({country:"US",phone:e.toString()},"International"):e},e.ɵfac=function(t){return new(t||e)},e.ɵpipe=a.ɵɵdefinePipe({name:"phone",type:e,pure:!0}),e}();t.PhonePipe=i,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(i,[{type:r.Pipe,args:[{name:"phone"}]}],null,null)},68:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LocalizeComponent=void 0;var r=n(0),o=(n(16),n(0)),a=n(16),i=function(){function e(e){this.service=e,this.params=null}return e.prototype.ngOnInit=function(){var e=this;(this.text=this.service.decode(this.key),null!=this.params)&&Object.keys(this.params).forEach((function(t){null!=e.params[t]&&(e.text=e.text.replace(t,e.params[t]))}))},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.LocalizationService))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["localize"]],inputs:{key:"key",params:"params"},decls:1,vars:1,consts:[[3,"innerHtml"]],template:function(e,t){1&e&&o.ɵɵelement(0,"span",0),2&e&&o.ɵɵproperty("innerHtml",t.text,o.ɵɵsanitizeHtml)},encapsulation:2}),e}();t.LocalizeComponent=i,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(i,[{type:r.Component,args:[{selector:"localize",templateUrl:"./localize.component.html",styleUrls:[]}]}],(function(){return[{type:a.LocalizationService}]}),{key:[{type:r.Input}],params:[{type:r.Input}]})},86:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LoadingBarComponent=void 0;var r=n(0),o=(n(16),n(0)),a=n(16),i=n(1);function l(e,t){1&e&&o.ɵɵelement(0,"div",1)}var s=function(){function e(e){this.service=e,this.showIndicator=!1}return e.prototype.ngOnInit=function(){this.service.registerListener(this)},e.prototype.ngOnDestroy=function(){this.service.deregisterListener(this)},e.prototype.start=function(){this.showIndicator=!0},e.prototype.complete=function(){this.showIndicator=!1},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.EventService))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["loading-bar"]],decls:1,vars:1,consts:[["class","standby-overlay",4,"ngIf"],[1,"standby-overlay"]],template:function(e,t){1&e&&o.ɵɵtemplate(0,l,1,0,"div",0),2&e&&o.ɵɵproperty("ngIf",t.showIndicator)},directives:[i.NgIf],styles:[".standby-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n height: 100%; \n width: 100%; \n z-index: 100;\n}"]}),e}();t.LoadingBarComponent=s,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(s,[{type:r.Component,args:[{selector:"loading-bar",templateUrl:"./loading-bar.component.html",styleUrls:["./loading-bar.css"]}]}],(function(){return[{type:a.EventService}]}),null)},87:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AuthService=void 0;var r=n(0),o=(n(170),n(153)),a=n(0),i=n(170),l=function(){function e(e){this.service=e,this.user={loggedIn:!1,userName:"",roles:[],roleDisplayLabels:[],version:"0",installedLocales:[]};var t=e.get("user");if(this.service.check("user")&&null!=t&&t.length>0){var n=this.service.get("user"),r=JSON.parse(n);this.buildFromCookieJson(r)}this.loadLocales()}return e.prototype.buildFromCookieJson=function(e){this.user.userName=e.userName,this.buildRolesFromCookie(e),this.user.loggedIn=e.loggedIn,this.user.roleDisplayLabels=e.roleDisplayLabels,this.user.version=e.version.replaceAll("+"," ")},e.prototype.buildRolesFromCookie=function(e){this.user.roles=[];for(var t=e.roles,n=0;n90?t=4:e>70?t=3:e>=40?t=2:e>=20&&(t=1),{idx:t+1,col:this.colors[t]}},e.prototype.ngOnChanges=function(t){var n=t.passwordToCheck.currentValue;if(this.setBarColors(5,"#DDD"),n){var r=this.getColor(e.measureStrength(n));this.setBarColors(r.idx,r.col)}},e.prototype.setBarColors=function(e,t){for(var n=0;n {\n if (!range.conflictMessages) {\n range.conflictMessages = new Set();\n }\n\n range.conflictMessages.delete(this.overlapMessage);\n range.conflictMessages.delete(this.mergeContiguousMessage);\n range.conflictMessages.delete(this.gapMessage);\n range.conflictMessages.delete(this.startDateLaterEndDate);\n });\n\n // Filter DELETE entries from consideration\n const filtered: ValueOverTimeCREditor[] = ranges.filter(range => !range.isDelete());\n\n // Check for overlaps\n for (let j = 0; j < filtered.length; j++) {\n const h1: ValueOverTimeCREditor = filtered[j];\n\n if (h1.startDate && h1.endDate) {\n let s1: any = this.getDateFromDateString(h1.startDate);\n let e1: any = this.getDateFromDateString(h1.endDate);\n\n if (Utils.dateEndBeforeStart(s1, e1)) {\n h1.conflictMessages.add(this.startDateLaterEndDate);\n\n hasConflict = true;\n }\n\n for (let i = 0; i < filtered.length; i++) {\n if (j !== i) {\n const h2: ValueOverTimeCREditor = filtered[i];\n\n // If all dates set\n if (h2.startDate && h2.endDate) {\n let s2: Date = this.getDateFromDateString(h2.startDate);\n let e2: Date = this.getDateFromDateString(h2.endDate);\n\n // Determine if there is an overlap\n if (Utils.dateRangeOverlaps(s1.getTime(), e1.getTime(), s2.getTime(), e2.getTime())) {\n h1.conflictMessages.add(this.overlapMessage);\n\n if (s2.getTime() === e2.getTime()) {\n h2.conflictMessages.add(this.overlapMessage);\n }\n\n hasConflict = true;\n } else if (this.addDay(1, h1.endDate) === h2.startDate && Utils.areValuesEqual(attributeType, h1.value, h2.value)) {\n h1.conflictMessages.add(this.mergeContiguousMessage);\n h2.conflictMessages.add(this.mergeContiguousMessage);\n hasConflict = true;\n }\n } else if ((i === j - 1 || i === j + 1) && e1 && h2.startDate) {\n // If 1st end date and current start date\n\n let s2: Date = this.getDateFromDateString(h2.startDate);\n\n if (s2.getTime() <= e1) {\n h1.conflictMessages.add(this.overlapMessage);\n h2.conflictMessages.add(this.overlapMessage);\n\n hasConflict = true;\n }\n }\n }\n }\n }\n }\n\n this.sort(filtered);\n\n // Check for gaps\n let current = null;\n for (let j = 0; j < filtered.length; j++) {\n let next = filtered[j];\n\n if (j > 0) {\n if (current.endDate && next.startDate) {\n let e1: any = new Date(current.endDate);\n let s2: any = new Date(next.startDate);\n\n if (Utils.hasGap(e1.getTime(), s2.getTime())) {\n next.conflictMessages.add(this.gapMessage);\n\n current.conflictMessages.add(this.gapMessage);\n }\n }\n }\n\n current = next;\n }\n\n this.sort(ranges);\n\n return hasConflict;\n }\n\n public between(test: string | Date, startDate: string, endDate: string) {\n if (test == null || startDate == null || endDate == null) {\n return false;\n }\n\n let dTest: Date = test instanceof Date ? test : this.getDateFromDateString(test);\n let dStart: Date = this.getDateFromDateString(startDate);\n let dEnd: Date = this.getDateFromDateString(endDate);\n\n return dTest >= dStart && dTest <= dEnd;\n }\n\n public addDay(amount: number, date: string): string {\n var plus1: Date = this.getDateFromDateString(date);\n plus1.setDate(plus1.getDate() + amount);\n let splus1: string = this.getDateString(plus1);\n return splus1;\n }\n\n public sort(votArr: TimeRangeEntry[]): void {\n // Sort the data by start date\n votArr.sort(function(a, b) {\n if (a.startDate == null || a.startDate === \"\") {\n return 1;\n } else if (b.startDate == null || b.startDate === \"\") {\n return -1;\n }\n\n let first: any = new Date(a.startDate);\n let next: any = new Date(b.startDate);\n return first - next;\n });\n }\n\n checkExistRanges(ranges: ValueOverTimeCREditor[], existEntries: ValueOverTimeCREditor[]): boolean {\n let hasConflict = false;\n\n // clear all messages\n ranges.forEach(range => {\n if (!range.conflictMessages) {\n range.conflictMessages = new Set();\n }\n\n range.conflictMessages.delete(this.outsideExistsMessage);\n });\n\n // Filter DELETE entries from consideration\n const filtered: ValueOverTimeCREditor[] = ranges.filter(range => !range.isDelete());\n\n const filteredExists = existEntries.filter(range => !range.isDelete());\n\n // Check for outside exists range\n for (let j = 0; j < filtered.length; j++) {\n const h1 = filtered[j];\n\n if (h1.startDate && h1.endDate) {\n let s1: any = this.getDateFromDateString(h1.startDate);\n let e1: any = this.getDateFromDateString(h1.endDate);\n\n let inRange = false;\n\n for (let i = 0; i < filteredExists.length; i++) {\n const h2 = filteredExists[i];\n\n // If all dates set\n if (h2.value && h2.startDate && h2.endDate) {\n let s2: Date = this.getDateFromDateString(h2.startDate);\n let e2: Date = this.getDateFromDateString(h2.endDate);\n\n if (!Utils.dateRangeOutside(s1.getTime(), e1.getTime(), s2.getTime(), e2.getTime())) {\n inRange = true;\n }\n }\n }\n\n if (!inRange) {\n h1.conflictMessages.add(this.outsideExistsMessage);\n hasConflict = true;\n }\n }\n }\n\n return hasConflict;\n }\n\n validateDate(date: Date, required: boolean, allowFutureDates: boolean): {message: string, valid: boolean} {\n let valid = { message: \"\", valid: true };\n let today: Date = new Date();\n\n if (date != null) {\n if (!(date instanceof Date) || (date instanceof Date && isNaN(date.getTime()))) {\n valid.valid = false;\n valid.message = this.localizationService.decode(\"date.inpu.data.invalid.error.message\");\n } else if (!allowFutureDates && date > today) {\n valid.valid = false;\n valid.message = this.localizationService.decode(\"date.inpu.data.in.future.error.message\");\n }\n } else if (required) {\n valid.valid = false;\n valid.message = this.localizationService.decode(\"manage.versions.date.required.message\");\n }\n\n return valid;\n }\n\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { LocalizationService } from \"@shared/service\";\n\n@Pipe({ name: \"localize\" })\nexport class LocalizePipe implements PipeTransform {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: LocalizationService) { }\n\n transform(value: string): string {\n return this.service.decode(value);\n }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { LocalizedValue, LocaleView } from \"@shared/model/core\";\n\ndeclare let Globalize: any;\ndeclare let com: any;\ndeclare let registry: any;\n\n@Injectable()\nexport class LocalizationService {\n\n locales: LocaleView[] = [];\n locale: string;\n\n private parser: any = Globalize.numberParser();\n private formatter: any = Globalize.numberFormatter();\n\n constructor() {\n this.locales = registry.locales;\n this.locale = registry.locale;\n }\n\n addLocale(locale: LocaleView): void {\n let exists: boolean = false;\n\n for (let i = 0; i < this.locales.length; ++i) {\n if (this.locales[i].tag === locale.tag) {\n exists = true;\n this.locales[i] = locale;\n }\n }\n\n if (!exists) {\n this.locales.push(locale);\n }\n }\n\n setLocales(locales: LocaleView[]): void {\n this.locales = locales;\n }\n\n getLocale(): string {\n return this.locale;\n }\n\n getLocales(): LocaleView[] {\n return this.locales;\n }\n\n create(): LocalizedValue {\n const value = { localizedValue: \"\", localeValues: [] } as LocalizedValue;\n\n this.locales.forEach(locale => {\n // if (!locale.isDefaultLocale)\n // {\n value.localeValues.push({ locale: locale.toString, value: \"\" });\n // }\n });\n\n return value;\n }\n\n remove(locale: LocaleView): void {\n for (let i = 0; i < this.locales.length; ++i) {\n if (this.locales[i].tag === locale.tag) {\n this.locales.splice(i, 1);\n return;\n }\n }\n\n // eslint-disable-next-line no-console\n console.log(\"Could not remove locale from array because we could not find it.\", locale, this.locales);\n }\n\n public parseNumber(value: string): number {\n if (value != null && value.length > 0) {\n // convert data from view format to model format\n let number = this.parser(value);\n\n return number;\n }\n\n return null;\n }\n\n public formatNumber(value: any): string {\n if (value != null) {\n let number = value;\n\n if (typeof number === \"string\") {\n if (number.length > 0 && Number(number)) {\n number = Number(value);\n } else {\n return \"\";\n }\n }\n\n // convert data from model format to view format\n return this.formatter(number);\n }\n\n return null;\n }\n\n public localize(bundle: string, key: string): string {\n return com.runwaysdk.Localize.localize(bundle, key);\n }\n\n public get(key: string): string {\n return com.runwaysdk.Localize.get(key);\n }\n\n public decode(key: string): string {\n let index = key.lastIndexOf(\".\");\n\n if (index !== -1) {\n let temp = [key.slice(0, index), key.slice(index + 1)];\n\n return this.localize(temp[0], temp[1]);\n } else {\n return this.get(key);\n }\n }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\ndeclare let acp;\n\nexport interface IEventListener {\n start(): void;\n complete(): void;\n}\n\n@Injectable()\nexport class EventService {\n\n private listeners: IEventListener[] = [];\n\n public registerListener(listener: IEventListener): void {\n this.listeners.push(listener);\n }\n\n public deregisterListener(listener: IEventListener): boolean {\n let indexOfItem = this.listeners.indexOf(listener);\n\n if (indexOfItem === -1) {\n return false;\n }\n\n this.listeners.splice(indexOfItem, 1);\n\n return true;\n }\n\n public start(): void {\n for (const listener of this.listeners) {\n listener.start();\n }\n }\n\n public complete(): void {\n for (const listener of this.listeners) {\n listener.complete();\n }\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { ProfileComponent } from \"../profile/profile.component\";\n\nimport { AuthService, ProfileService, LocalizationService } from \"@shared/service\";\n\nimport { RegistryRoleType, LocaleView } from \"@shared/model/core\";\n\ndeclare let acp: string;\ndeclare let registry: any;\n\n@Component({\n\n selector: \"cgr-header\",\n templateUrl: \"./header.component.html\",\n styleUrls: []\n})\nexport class CgrHeaderComponent {\n\n context: string;\n isAdmin: boolean;\n isMaintainer: boolean;\n isContributor: boolean;\n bsModalRef: BsModalRef;\n\n defaultLocaleView: LocaleView;\n locales: LocaleView[];\n locale: string;\n\n @Input() loggedIn: boolean = true;\n\n constructor(\n private modalService: BsModalService,\n private profileService: ProfileService,\n private service: AuthService,\n localizationService: LocalizationService\n ) {\n this.context = acp;\n this.isAdmin = service.isAdmin();\n this.isMaintainer = this.isAdmin || service.isMaintainer();\n this.isContributor = this.isAdmin || this.isMaintainer || service.isContributer();\n\n if (localizationService.getLocales()) {\n this.locales = localizationService.getLocales().filter(locale => locale.toString !== \"defaultLocale\");\n this.defaultLocaleView = localizationService.getLocales().filter(locale => locale.toString === \"defaultLocale\")[0];\n } else {\n this.locales = [];\n this.defaultLocaleView = null;\n }\n this.locale = localizationService.getLocale();\n\n let found: boolean = false;\n\n for (let i = 0; i < this.locales.length; ++i) {\n if (this.locales[i].toString === this.locale) {\n found = true;\n }\n }\n\n if (!found) {\n this.locale = \"\";\n }\n }\n\n shouldShowMenuItem(item: string): boolean {\n if (item === \"HIERARCHIES\") {\n return true;\n } else if (item === \"LISTS\") {\n // return this.service.hasExactRole(RegistryRoleType.SRA) || this.service.hasExactRole(RegistryRoleType.RA) || this.service.hasExactRole(RegistryRoleType.RM) || this.service.hasExactRole(RegistryRoleType.RC) || this.service.hasExactRole(RegistryRoleType.AC);\n return true;\n } else if (this.service.hasExactRole(RegistryRoleType.SRA)) {\n return true;\n } else if (item === \"IMPORT\") {\n return this.service.hasExactRole(RegistryRoleType.RA) || this.service.hasExactRole(RegistryRoleType.RM);\n } else if (item === \"SCHEDULED-JOBS\") {\n return this.service.hasExactRole(RegistryRoleType.RA) || this.service.hasExactRole(RegistryRoleType.RM);\n } else if (item === \"NAVIGATOR\") {\n return this.service.hasExactRole(RegistryRoleType.SRA) || this.service.hasExactRole(RegistryRoleType.RA) || this.service.hasExactRole(RegistryRoleType.RM) || this.service.hasExactRole(RegistryRoleType.RC);\n } else if (item === \"CHANGE-REQUESTS\") {\n return this.service.hasExactRole(RegistryRoleType.RA) || this.service.hasExactRole(RegistryRoleType.RM) || this.service.hasExactRole(RegistryRoleType.RC);\n } else if (item === \"TASKS\") {\n return this.service.hasExactRole(RegistryRoleType.SRA) || this.service.hasExactRole(RegistryRoleType.RA) || this.service.hasExactRole(RegistryRoleType.RM);\n } else if (item === \"EVENTS\") {\n return this.service.hasExactRole(RegistryRoleType.SRA) || this.service.hasExactRole(RegistryRoleType.RA) || this.service.hasExactRole(RegistryRoleType.RM);\n } else if (item === \"CONFIGS\") {\n return this.service.hasExactRole(RegistryRoleType.RA);\n } else if (item === \"SETTINGS\") {\n return true;\n } else {\n return false;\n }\n }\n\n logout(): void {\n sessionStorage.removeItem(\"locales\");\n\n window.location.href = acp + \"/session/logout\";\n\n // this.sessionService.logout().then( response => {\n // this.router.navigate( ['/login'] );\n // } );\n }\n\n getUsername() {\n let name: string = this.service.getUsername();\n\n return name;\n }\n\n setLocale() {\n this.profileService.setLocale(this.locale).then(() => {\n // Refresh the page\n window.location.reload();\n });\n }\n\n account(): void {\n this.profileService.get().then(profile => {\n this.bsModalRef = this.modalService.show(ProfileComponent, { backdrop: \"static\", class: \"gray modal-lg\" });\n this.bsModalRef.content.profile = profile;\n });\n }\n\n}\n","\n
\n \n
\n","import { Injectable } from \"@angular/core\";\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from \"@angular/router\";\nimport { AuthService } from \"./auth.service\";\n\n@Injectable()\nexport class AdminGuard implements CanActivate {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: AuthService, private router: Router) { }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n if (this.service.isAdmin()) {\n return true;\n }\n\n this.router.navigate([\"/export\"]);\n\n return false;\n }\n\n}\n\n@Injectable()\nexport class MaintainerGuard implements CanActivate {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: AuthService, private router: Router) { }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n if (this.service.isAdmin() || this.service.isMaintainer()) {\n return true;\n }\n\n this.router.navigate([\"/export\"]);\n\n return false;\n }\n\n}\n\n@Injectable()\nexport class ContributerGuard implements CanActivate {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: AuthService, private router: Router) { }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n if (this.service.isAdmin() || this.service.isMaintainer() || this.service.isContributer()) {\n return true;\n }\n\n this.router.navigate([\"/export\"]);\n\n return false;\n }\n\n}\n\n@Injectable()\nexport class AuthGuard implements CanActivate {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: AuthService, private router: Router) { }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n if (this.service.isLoggedIn()) {\n return true;\n }\n\n this.router.navigate([\"/login\"]);\n\n return false;\n }\n\n}\n\n","import { Component, Input } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Profile } from \"@shared/model/profile\";\nimport { AuthService, ProfileService } from \"@shared/service\";\nimport { Role } from \"../../../admin/model/account\";\n\n@Component({\n selector: \"profile\",\n templateUrl: \"./profile.component.html\",\n styles: [\".modal-form .check-block .chk-area { margin: 10px 0px 0 0;}\"]\n})\nexport class ProfileComponent {\n\n public _profile: Profile = {\n oid: \"\",\n username: \"\",\n password: \"\",\n firstName: \"\",\n lastName: \"\",\n email: \"\",\n changePassword: false\n };\n\n // eslint-disable-next-line accessor-pairs\n @Input(\"profile\")\n set profile(value: Profile) {\n this._profile = value;\n this.getRoles();\n }\n\n roles: Role[] = [];\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: ProfileService, public bsModalRef: BsModalRef, private authService: AuthService) { }\n\n getRoles(): void {\n this.service.getRolesForUser(this._profile.oid).then(roles => {\n this.roles = roles;\n });\n }\n\n onSubmit(): void {\n if (!this._profile.changePassword) {\n delete this._profile.password;\n }\n\n this.service.apply(this._profile).then(profile => {\n this.bsModalRef.hide();\n });\n }\n\n onChangePassword(): void {\n this._profile.changePassword = !this._profile.changePassword;\n }\n\n // getRoles():string {\n // return this.authService.getRoleDisplayLabels();\n // }\n\n getRolesArray(): any {\n return this.authService.getRoles();\n }\n\n cancel(): void {\n this.service.unlock(this._profile.oid).then(profile => {\n this.bsModalRef.hide();\n });\n }\n\n}\n","
\n \n\n
\n
\n
\n

\n \n

\n
\n\n
\n
\n \n
\n
\n \n \n \n
\n
\n \n
\n
\n \n
\n
\n \n \n \n
\n
\n \n
\n
\n \n
\n
\n \n \n \n
\n
\n
\n
\n \n
\n
\n \n \n \n
\n
\n\n
\n
\n \n
\n
\n \n \n \n
\n
\n
\n
\n \n
\n
\n \n \n \n
\n
\n\n \n
\n
\n \n
\n
\n \n \n \n
\n \n
\n
\n
\n\n
\n
\n \n
\n
\n \n \n \n
\n
\n
\n
\n \n
\n
\n \n \n \n
\n
\n \n\n
\n

\n \n

\n
\n\n
\n
\n \n
\n
\n \n \n \n
\n
\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n
\n \n
\n
\n \n \n \n \n \n
\n
\n
\n
\n \n
\n
\n \n \n \n
\n \n
\n
\n
\n
\n\n\n
\n
\n \n
\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n \n
\n {{role.label.localizedValue}}\n \n \n \n \n \n {{role.label.localizedValue}}\n \n {{role.orgLabel.localizedValue}}\n \n \n 0 && role.assigned\">\n {{role.label.localizedValue}}\n 0 && role.assigned\">\n {{role.orgLabel.localizedValue}}\n 0 && role.assigned\">\n {{role.geoObjectTypeLabel.localizedValue}}\n
\n \n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n","/* eslint-disable no-use-before-define */\n/* eslint-disable no-unused-vars */\nimport { LocalizationService } from \"@shared/service/localization.service\";\n\nexport interface MessageContainer {\n setMessage(message: string);\n}\n\nexport class LocaleValue {\n\n locale: string;\n value: string;\n\n constructor(locale: string, value: string) {\n this.locale = locale;\n this.value = value;\n }\n\n}\n\nexport class LocaleView {\n\n constructor(lService: LocalizationService) {\n this.label = lService.create();\n this.toString = \"\";\n this.tag = \"\";\n this.isDefaultLocale = false;\n this.language = { label: \"\", code: \"\" };\n this.country = { label: \"\", code: \"\" };\n this.variant = { label: \"\", code: \"\" };\n }\n\n label: LocalizedValue;\n toString: string;\n tag: string;\n isDefaultLocale: boolean;\n language: { label: string, code: string };\n country: { label: string, code: string };\n variant: { label: string, code: string };\n\n}\n\nexport class Organization {\n\n code: string;\n label: any;\n contactInfo: any;\n\n}\n\nexport class ExternalSystem {\n\toid?: string;\n\tid: string;\n\ttype: string;\n\torganization: string;\n\tlabel: LocalizedValue;\n\tdescription: LocalizedValue;\n\tusername?: string;\n\tpassword?: string;\n\turl?: string;\n\tsystem?: string;\n\tversion?: string;\n\toAuthServer?: OAuthServer;\n}\n\nexport class OAuthServer {\n\n keyName?: string;\n label?: LocalizedValue;\n url?: string;\n authorizationLocation: string;\n tokenLocation: string;\n profileLocation: string;\n clientId: string;\n secretKey: string;\n serverType: string;\n\n}\n\nexport class PageResult {\n\n count: number;\n pageNumber: number;\n pageSize: number;\n resultSet: T[];\n externalSystems?: ExternalSystem[];\n\n}\n\nexport class LocalizedValue {\n\n localizedValue: string;\n localeValues: LocaleValue[];\n\n constructor(localizedValue: string, localeValues: LocaleValue[]) {\n this.localizedValue = localizedValue;\n this.localeValues = localeValues;\n }\n\n public getValue(localeToString: string): string {\n let len = this.localeValues.length;\n\n for (let i = 0; i < len; ++i) {\n let lv = this.localeValues[i];\n\n if (lv.locale === localeToString) {\n return lv.value;\n }\n }\n\n return this.localizedValue;\n }\n\n /*\n * Populates lv1 with all values contained in lv2\n */\n public static populate(lv1: LocalizedValue, lv2: LocalizedValue) {\n if (lv1 == null || lv2 == null) {\n return;\n }\n\n lv1.localizedValue = lv2.localizedValue;\n\n if (lv2.localeValues != null) {\n lv2.localeValues.forEach(lv2lv => {\n if (lv1.localeValues) {\n let found = false;\n\n lv1.localeValues.forEach(lv1lv => {\n if (!found && lv1lv.locale === lv2lv.locale) {\n lv1lv.value = lv2lv.value;\n found = true;\n }\n });\n\n if (!found) {\n lv1.localeValues.push(JSON.parse(JSON.stringify(lv2lv)));\n }\n } else {\n lv1.localeValues = lv2.localeValues;\n }\n });\n }\n }\n\n}\n\nexport class RoleBuilder {\n\n static buildFromRoleName(roleName: string): RegistryRole {\n if (roleName === \"cgr.SRA\") {\n return new RegistryRole(RegistryRoleType.SRA, \"\", \"\", \"cgr.SRA\");\n }\n\n let roleSplit = roleName.split(\".\");\n\n let orgCode: string = roleSplit[2];\n\n if (roleSplit.length === 4) {\n return new RegistryRole(RegistryRoleType.RA, orgCode, \"\", roleName);\n } else if (roleSplit.length === 5) {\n let roleSuffix: string = roleSplit[4];\n\n let gotCode: string = roleSplit[3];\n\n if (roleSuffix === \"RM\") {\n return new RegistryRole(RegistryRoleType.RM, orgCode, gotCode, roleName);\n } else if (roleSuffix === \"RC\") {\n return new RegistryRole(RegistryRoleType.RC, orgCode, gotCode, roleName);\n } else if (roleSuffix === \"AC\") {\n return new RegistryRole(RegistryRoleType.AC, orgCode, gotCode, roleName);\n }\n } else {\n return null;\n }\n }\n\n}\n\nexport class RegistryRole {\n\n type: RegistryRoleType;\n orgCode: string;\n geoObjectTypeCode: string;\n roleName: string;\n displayLabel: string;\n\n constructor(type: RegistryRoleType, orgCode: string, geoObjectTypeCode: string, roleName: string) {\n this.type = type;\n this.orgCode = orgCode;\n this.geoObjectTypeCode = geoObjectTypeCode;\n this.roleName = roleName;\n }\n\n}\n\nexport enum RegistryRoleType {\n SRA,\n RA,\n RM,\n RC,\n AC\n}\n","import { Component } from \"@angular/core\";\nimport { ModalStepIndicatorService } from \"@shared/service\";\n\nimport { Step, StepConfig } from \"@shared/model/modal\";\nimport { Subscription } from \"rxjs\";\n\n@Component({\n selector: \"modal-step-indicator\",\n templateUrl: \"./modal-step-indicator.component.html\",\n styleUrls: [\"./modal-step-indicator.css\"]\n})\nexport class ModalStepIndicatorComponent {\n\n stepConfig: StepConfig;\n step: Step;\n stepSubscription: Subscription;\n\n constructor(private modalStepIndicatorService: ModalStepIndicatorService) {\n this.stepSubscription = modalStepIndicatorService.modalStepChange.subscribe(stepConfig => {\n this.stepConfig = stepConfig;\n });\n }\n\n ngOnInit(): void {\n }\n\n ngOnDestroy() {\n this.stepSubscription.unsubscribe();\n }\n\n}\n","
\n
    0\" class=\"nav nav-justified\">\n
  • {{step.label}}
  • \n
\n
","import { Component, OnInit } from \"@angular/core\";\n\nimport { Progress } from \"@shared/model/progress\";\nimport { ProgressService, IProgressListener } from \"@shared/service\";\n\n@Component({\n\n selector: \"progress-bar\",\n templateUrl: \"./progress-bar.component.html\",\n styles: [\n \".progress-overlay { background-color: #CCCCCC; position: absolute; display: block;opacity: 0.8;z-index: 99999 !important;}\",\n \".progress-div { width: 100%; margin-left: 0; padding-left: 25%; padding-right: 25%; margin-top: 30% }\"\n ]\n})\nexport class ProgressBarComponent implements OnInit, IProgressListener {\n\n public showIndicator: boolean = true;\n\n public prog: Progress = {\n current: 0,\n total: 1,\n description: \"Initializing\"\n };\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: ProgressService) { }\n\n ngOnInit(): void {\n this.service.registerListener(this);\n }\n\n ngOnDestroy(): void {\n this.service.deregisterListener(this);\n }\n\n start(): void {\n this.prog = {\n current: 0,\n total: 1,\n description: \"Initializing\"\n };\n\n this.showIndicator = true;\n }\n\n progress(progress: Progress): void {\n this.prog = progress;\n }\n\n complete(): void {\n this.showIndicator = false;\n }\n\n}\n","
\n
\n {{prog.description}}\n
\n
\n","import { Injectable } from \"@angular/core\";\nimport { HttpHeaders, HttpClient, HttpParams } from \"@angular/common/http\";\nimport { finalize } from \"rxjs/operators\";\nimport { EventService } from \"@shared/service\";\nimport { ExternalSystem, PageResult } from \"@shared/model/core\";\n\ndeclare let acp: any;\n\n@Injectable()\nexport class ExternalSystemService {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private http: HttpClient, private eventService: EventService) { }\n\n getExternalSystems(pageNumber: number, pageSize: number): Promise> {\n let params: HttpParams = new HttpParams();\n params = params.set(\"pageNumber\", pageNumber.toString());\n params = params.set(\"pageSize\", pageSize.toString());\n\n this.eventService.start();\n\n return this.http\n .get>(acp + \"/external-system/get-all\", { params: params })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n getExternalSystem(oid: string): Promise {\n let params: HttpParams = new HttpParams();\n params = params.set(\"oid\", oid);\n\n this.eventService.start();\n\n return this.http\n .get(acp + \"/external-system/get\", { params: params })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n applyExternalSystem(system: ExternalSystem): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/external-system/apply\", JSON.stringify({ system: system }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n getSystemCapabilities(system: ExternalSystem): Promise<{ oauth: boolean }> {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post<{ oauth: boolean }>(acp + \"/external-system/system-capabilities\", JSON.stringify({ system: system }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n removeExternalSystem(oid: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/external-system/remove\", JSON.stringify({ oid: oid }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { Step, StepConfig } from \"@shared/model/modal\";\n\ndeclare let acp: string;\n\n@Injectable()\nexport class ModalStepIndicatorService {\n\n stepConfig: StepConfig;\n step: Step;\n private modalStepChangedSource = new Subject();\n modalStepChange = this.modalStepChangedSource.asObservable();\n\n\n // eslint-disable-next-line no-useless-constructor\n constructor() { }\n\n public getStepConfig(): StepConfig {\n return this.stepConfig;\n }\n\n public setStepConfig(config: StepConfig): void {\n this.stepConfig = config;\n\n this.modalStepChangedSource.next(this.stepConfig);\n }\n\n getStep(): Step {\n return this.step;\n }\n\n setStep(step: Step): void {\n this.step = step;\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpHeaders, HttpClient } from \"@angular/common/http\";\n\nimport { finalize } from \"rxjs/operators\";\n\nimport { EventService } from \"@shared/service\";\n\nimport { Organization } from \"@shared/model/core\";\n\ndeclare var acp: any;\n\n@Injectable()\nexport class OrganizationService {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private http: HttpClient, private eventService: EventService) { }\n\n getOrganizations(): Promise {\n this.eventService.start();\n\n return this.http\n .get(acp + \"/cgr/organizations/get-all\")\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n updateOrganization(json: any): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/cgr/orgainization/update\", JSON.stringify({ json: json }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n newOrganization(json: any): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/cgr/orgainization/create\", JSON.stringify({ json: json }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n removeOrganization(code: any): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/cgr/orgainization/delete\", JSON.stringify({ code: code }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n}\n","import { AuthService } from \"./auth.service\";\nimport { EventService } from \"./event.service\";\nimport { ExternalSystemService } from \"./external-system.service\";\nimport { AdminGuard, AuthGuard, ContributerGuard, MaintainerGuard } from \"./guard.service\";\nimport { LocalizationService } from \"./localization.service\";\nimport { ModalStepIndicatorService } from \"./modal-step-indicator.service\";\nimport { OrganizationService } from \"./organization.service\";\nimport { PendingChangesGuard } from \"./pending-changes-guard\";\nimport { ProfileService } from \"./profile.service\";\nimport { ProgressService } from \"./progress.service\";\nimport { SessionService } from \"./session.service\";\nimport { DateService } from \"./date.service\";\n\nexport const services: any[] = [\n AuthService,\n EventService,\n ExternalSystemService,\n AdminGuard,\n AuthGuard,\n ContributerGuard,\n MaintainerGuard,\n LocalizationService,\n ModalStepIndicatorService,\n OrganizationService,\n PendingChangesGuard,\n ProfileService,\n ProgressService,\n SessionService,\n DateService\n];\n\nexport * from \"./auth.service\";\nexport * from \"./event.service\";\nexport * from \"./external-system.service\";\nexport * from \"./guard.service\";\nexport * from \"./localization.service\";\nexport * from \"./modal-step-indicator.service\";\nexport * from \"./organization.service\";\nexport * from \"./pending-changes-guard\";\nexport * from \"./profile.service\";\nexport * from \"./progress.service\";\nexport * from \"./session.service\";\nexport * from \"./date.service\";\n","import { CanDeactivate } from \"@angular/router\";\nimport { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\n\n// Thanks to : https://stackoverflow.com/a/41187919/219843\n\nexport interface ComponentCanDeactivate {\n canDeactivate: () => boolean | Observable;\n afterDeactivate: (arg: boolean) => void;\n}\n\n@Injectable()\nexport class PendingChangesGuard implements CanDeactivate {\n\n canDeactivate(component: ComponentCanDeactivate): boolean | Observable {\n if (!component.canDeactivate()) {\n // NOTE: this warning message will only be shown when navigating elsewhere within your angular app;\n // when navigating away from your angular app, the browser will show a generic warning message\n // see http://stackoverflow.com/a/42207299/7307355\n let confirmRet = confirm(\"WARNING: You have unsaved changes. Press Cancel to go back and save these changes, or OK to lose these changes.\");\n\n component.afterDeactivate(confirmRet);\n\n return confirmRet;\n }\n\n return true;\n }\n}","import { Injectable } from \"@angular/core\";\nimport { HttpHeaders, HttpClient } from \"@angular/common/http\";\n\n// import 'rxjs/add/operator/toPromise';\n\nimport { Profile } from \"@shared/model/profile\";\n\ndeclare let acp: any;\n\n@Injectable()\nexport class ProfileService {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private http: HttpClient) { }\n\n get(): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n return this.http\n .post(acp + \"/registryaccount/get\", { headers: headers })\n .toPromise();\n }\n\n\n apply(profile: Profile): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n return this.http\n .post(acp + \"/registryaccount/apply\", JSON.stringify({ account: profile }), { headers: headers })\n .toPromise();\n }\n\n unlock(oid: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n return this.http\n .post(acp + \"/registryaccount/unlock\", JSON.stringify({ oid: oid }), { headers: headers })\n .toPromise()\n }\n\n setLocale(locale: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n return this.http\n .post(acp + \"/localization/set-locale\", JSON.stringify({ locale: locale }), { headers: headers })\n .toPromise();\n }\n\n getRolesForUser(userOID: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n\n return this.http\n .post(acp + \"/registryaccount/getRolesForUser\", { userOID: userOID }, { headers: headers })\n .toPromise();\n }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { Progress } from \"@shared/model/progress\";\n\nexport interface IProgressListener {\n start(): void;\n progress(progress: Progress): void;\n complete(): void;\n}\n\n@Injectable()\nexport class ProgressService {\n\n private listeners: IProgressListener[] = [];\n\n // eslint-disable-next-line no-useless-constructor\n public constructor() { }\n\n public registerListener(listener: IProgressListener): void {\n this.listeners.push(listener);\n }\n\n public deregisterListener(listener: IProgressListener): boolean {\n let indexOfItem = this.listeners.indexOf(listener);\n\n if (indexOfItem === -1) {\n return false;\n }\n\n this.listeners.splice(indexOfItem, 1);\n\n return true;\n }\n\n public start(): void {\n for (const listener of this.listeners) {\n listener.start();\n }\n }\n\n public progress(progress: Progress): void {\n for (const listener of this.listeners) {\n listener.progress(progress);\n }\n }\n\n public complete(): void {\n for (const listener of this.listeners) {\n listener.complete();\n }\n }\n}","import { Injectable } from \"@angular/core\";\nimport { HttpHeaders, HttpClient } from \"@angular/common/http\";\n\n// import 'rxjs/add/operator/toPromise';\nimport { finalize } from \"rxjs/operators\";\n\nimport { EventService } from \"./event.service\";\n\nimport { AuthService } from \"./auth.service\";\nimport { User } from \"@shared/model/user\";\n\ndeclare let acp: any;\n\n@Injectable()\nexport class SessionService {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: EventService, private http: HttpClient, private authService: AuthService) { }\n\n login(username: string, password: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.service.start();\n\n return this.http\n .post(acp + \"/cgrsession/login\", JSON.stringify({ username: username, password: password }), { headers: headers })\n .pipe(finalize(() => {\n this.service.complete();\n }))\n .toPromise()\n .then((logInResponse: any) => {\n this.authService.afterLogIn(logInResponse);\n\n return logInResponse;\n })\n }\n\n logout(): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.service.start();\n\n\n return this.http\n .post(acp + \"/session/logout\", { headers: headers })\n .pipe(finalize(() => {\n this.service.complete();\n }))\n .toPromise()\n .then((response: any) => {\n this.authService.afterLogOut();\n\n return response;\n })\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { LocalizationService } from \"@shared/service\";\n\n@Component({\n selector: \"error-message\",\n templateUrl: \"./error-message.component.html\",\n styleUrls: [\"./error-message.css\"]\n})\nexport class ErrorMessageComponent {\n\n /*\n * Message\n */\n @Input() message: string = this.localizeService.decode(\"error.modal.default.message\");\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private localizeService: LocalizationService) { }\n\n}\n","
\n
\n \n \n \n
\n
\n
\n

{{message}}

\n
\n
\n
","import { Component, Input } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Subject } from \"rxjs\";\nimport { LocalizationService } from \"@shared/service\";\nimport { ModalTypes } from \"@shared/model/modal\";\n\n@Component({\n selector: \"confirm-modal\",\n templateUrl: \"./confirm-modal.component.html\",\n styleUrls: [\"./modal.css\"]\n})\nexport class ConfirmModalComponent {\n\n /*\n * Message\n */\n @Input() message: string = this.localizeService.decode(\"confirm.modal.default.message\");\n\n @Input() data: any;\n\n @Input() submitText: string = this.localizeService.decode(\"modal.button.submit\");\n\n @Input() cancelText: string = this.localizeService.decode(\"modal.button.cancel\");\n\n @Input() type: ModalTypes = ModalTypes.warning;\n\n /*\n * Called on confirm\n */\n public onConfirm: Subject;\n\n /*\n * Called on cancel\n */\n public onCancel: Subject;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef, private localizeService: LocalizationService) { }\n\n ngOnInit(): void {\n this.onConfirm = new Subject();\n this.onCancel = new Subject();\n }\n\n confirm(): void {\n this.bsModalRef.hide();\n this.onConfirm.next(this.data);\n }\n\n cancel(): void {\n this.bsModalRef.hide();\n this.onCancel.next(this.data);\n }\n\n}\n","
\n
\n\n
\n
\n

{{message}}

\n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n
\n
","import { Component, Input } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { LocalizationService } from \"@shared/service\";\n\n@Component({\n selector: \"error-modal\",\n templateUrl: \"./error-modal.component.html\",\n styleUrls: [\"./error-modal.css\"]\n})\nexport class ErrorModalComponent {\n\n /*\n * Message\n */\n @Input() message: string = this.localizeService.decode(\"error.modal.default.message\");\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef, private localizeService: LocalizationService) { }\n\n}\n","
\n\t
\n\n\t\t
\n\t\t\t
\n\t\t\t\t

{{message}}

\n\t\t\t
\n\t\t
\n\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
\n
\n","import { Component, Input, OnInit } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Subject } from \"rxjs\";\nimport { LocalizationService } from \"@shared/service\";\n\n@Component({\n selector: \"success-modal\",\n templateUrl: \"./success-modal.component.html\",\n styleUrls: [\"./success-modal.css\"]\n})\nexport class SuccessModalComponent implements OnInit {\n\n /*\n * Message\n */\n @Input() message: string;\n\n @Input() submitText: string = this.localizeService.decode(\"modal.button.close\");\n\n public onConfirm: Subject;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef, private localizeService: LocalizationService) { }\n\n ngOnInit(): void {\n this.message = this.message ? this.message : this.localizeService.decode(\"success.modal.default.message\");\n this.onConfirm = new Subject();\n }\n\n confirm(): void {\n this.bsModalRef.hide();\n this.onConfirm.next();\n }\n\n}\n","
\n\t
\n\n\t\t
\n\t\t\t
\n\t\t\t\t

{{message}}

\n\t\t\t
\n\t\t
\n\n\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
\n\n
\n","import { Component } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { LocalizationService } from \"@shared/service\";\n\nexport class GenericButton {\n\n label: string;\n onClick: Function;\n shouldClose: boolean;\n class: string;\n\n}\n\n@Component({\n selector: \"generic-modal\",\n templateUrl: \"./generic-modal.component.html\",\n styleUrls: [\"./modal.css\"]\n})\nexport class GenericModalComponent {\n\n /*\n * Message\n */\n message: string = this.localizeService.decode(\"confirm.modal.default.message\");\n\n buttons: GenericButton[] = [];\n\n data: any;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef, private localizeService: LocalizationService) { }\n\n init(message: string, buttons: GenericButton[]): void {\n this.message = message;\n this.buttons = buttons;\n }\n\n onClick(button: GenericButton): void {\n if (button.shouldClose) {\n this.bsModalRef.hide();\n }\n\n button.onClick(this.data);\n }\n\n}\n","
\n
\n\n
\n
\n

{{message}}

\n
\n
\n\n
\n
\n
\n \n
\n
\n
\n
\n
","/* eslint-disable no-use-before-define */\n/* eslint-disable padded-blocks */\nimport { LocalizedValue } from \"@shared/model/core\";\nimport { LocalizationService } from \"@shared/service\";\nimport { ImportConfiguration } from \"./io\";\nimport { GovernanceStatus, ConflictType } from \"./constants\";\nimport Utils from \"@registry/utility/Utils\";\n\nexport const PRESENT: string = \"5000-12-31\";\n\nexport class TreeEntity {\n id: string;\n name: string;\n hasChildren: boolean;\n}\n\nexport class Term {\n code: string;\n label: LocalizedValue;\n description: LocalizedValue;\n\n constructor(code: string, label: LocalizedValue, description: LocalizedValue) {\n this.code = code;\n this.label = label;\n this.description = description;\n }\n\n children: Term[] = [];\n\n addChild(term: Term) {\n this.children.push(term);\n }\n}\n\nexport class GeoObject {\n type: string;\n geometry: any;\n properties: {\n uid: string,\n code: string,\n displayLabel: LocalizedValue,\n type: string,\n status: string[],\n sequence: string\n createDate: string,\n lastUpdateDate: string,\n invalid: boolean,\n writable?: boolean\n };\n}\n\nexport class GeoObjectType {\n code: string;\n label: LocalizedValue;\n description: LocalizedValue;\n geometryType?: string;\n isLeaf: boolean;\n isGeometryEditable: boolean;\n organizationCode: string;\n attributes: Array = [];\n relatedHierarchies?: string[];\n superTypeCode?: string;\n isAbstract?: boolean;\n isPrivate?: boolean;\n canDrag?: boolean;\n permissions?: string[];\n\n public static getAttribute(type: GeoObjectType, name: string) {\n let len = type.attributes.length;\n for (let i = 0; i < len; i++) {\n let attr: any = type.attributes[i];\n\n if (attr.code === name) {\n return attr;\n }\n }\n\n return null;\n }\n\n public static getGeoObjectTypeTermAttributeOptions(geoObjectType: GeoObjectType, termAttributeCode: string) {\n for (let i = 0; i < geoObjectType.attributes.length; i++) {\n let attr: any = geoObjectType.attributes[i];\n\n if (attr.type === \"term\" && attr.code === termAttributeCode) {\n attr = attr;\n let attrOpts = attr.rootTerm.children;\n\n // only remove status of the required status type\n if (attrOpts.length > 0) {\n if (attr.code === \"status\") {\n return Utils.removeStatuses(attrOpts);\n } else {\n return attrOpts;\n }\n }\n }\n }\n\n return null;\n }\n}\n\nexport class Task {\n id: string;\n templateKey: string;\n msg: string;\n title: string;\n status: string;\n createDate: number;\n completedDate: number;\n}\n\nexport class GeoObjectOverTime {\n\n geoObjectType: GeoObjectType;\n\n attributes: any;\n\n public constructor(geoObjectType: GeoObjectType, attributes: any) {\n this.geoObjectType = geoObjectType;\n this.attributes = attributes;\n }\n\n public getVotAtDate(date: Date, attrCode: string, lService: LocalizationService) {\n let retVot = { startDate: date, endDate: null, value: null };\n\n const time = date.getTime();\n\n for (let i = 0; i < this.geoObjectType.attributes.length; ++i) {\n let attr = this.geoObjectType.attributes[i];\n\n if (attr.code === attrCode) {\n if (attr.type === \"local\") {\n retVot.value = lService.create();\n }\n\n if (attr.isChangeOverTime) {\n let values = this.attributes[attr.code].values;\n\n values.forEach(vot => {\n\n const startDate = Date.parse(vot.startDate);\n const endDate = Date.parse(vot.endDate);\n\n if (time >= startDate && time <= endDate) {\n\n if (attr.type === \"local\") {\n retVot.value = JSON.parse(JSON.stringify(vot.value));\n } else if (attr.type === \"term\" && vot.value != null && Array.isArray(vot.value) && vot.value.length > 0) {\n retVot.value = vot.value[0];\n } else {\n retVot.value = vot.value;\n }\n }\n });\n } else {\n retVot.value = this.attributes[attr.code];\n }\n\n break;\n }\n }\n\n return retVot;\n }\n}\n\nexport class ConflictMessage {\n message: string;\n severity: string;\n type: ConflictType;\n}\n\nexport interface TimeRangeEntry {\n startDate: string;\n endDate: string;\n oid?: string;\n value?: any;\n}\n\nexport class ValueOverTime implements TimeRangeEntry {\n oid: string;\n startDate: string;\n endDate: string;\n value: any;\n removable?: boolean;\n}\n\nexport class AttributeOverTime {\n name: string;\n type: string;\n values: ValueOverTime[];\n}\n\nexport class AttributeType {\n code: string; // On the back-end this is referred to as the AttributeType's 'name'. They are the same concept.\n type: string;\n label: LocalizedValue;\n description: LocalizedValue;\n isDefault: boolean;\n required: boolean;\n unique: boolean;\n governanceStatus: GovernanceStatus;\n isChangeOverTime?: boolean;\n precision?: number;\n scale?: number;\n isValid?: boolean;\n isValidReason?: {timeConflict: boolean, existConflict: boolean, dateField: boolean};\n isValidReasonHierarchy?: any;\n\n constructor(code: string, type: string, label: LocalizedValue, description: LocalizedValue, isDefault: boolean, required: boolean, unique: boolean, isChangeOverTime: boolean) {\n\n this.code = code;\n this.type = type;\n this.label = label;\n this.description = description;\n this.isDefault = isDefault;\n this.required = false; // Hardcoded to false because this functionality is disabled until later evaluation.\n this.unique = unique;\n this.isChangeOverTime = isChangeOverTime;\n }\n\n}\n\nexport class AttributeTermType extends AttributeType {\n\n // descendants: Attribute[];\n\n // eslint-disable-next-line no-useless-constructor\n constructor(code: string, type: string, label: LocalizedValue, description: LocalizedValue, isDefault: boolean, required: boolean, unique: boolean, isChange: boolean) {\n super(code, type, label, description, isDefault, required, unique, isChange);\n }\n\n rootTerm: Term = new Term(null, null, null);\n\n termOptions: Term[] = [];\n\n setRootTerm(term: Term) {\n this.rootTerm = term;\n }\n}\n\nexport class AttributeDecimalType extends AttributeType {\n constructor(code: string, type: string, label: LocalizedValue, description: LocalizedValue, isDefault: boolean, required: boolean, unique: boolean, isChange: boolean) {\n super(code, type, label, description, isDefault, required, unique, isChange);\n\n this.precision = 32;\n this.scale = 8;\n }\n}\n\nexport class TreeNode {\n geoObject: GeoObject;\n hierarchyType: string;\n}\n\nexport class ChildTreeNode extends TreeNode {\n children: ChildTreeNode[];\n}\n\nexport class ParentTreeNode extends TreeNode {\n parents: ParentTreeNode[];\n}\n\nexport class ManageGeoObjectTypeModalState {\n state: string;\n attribute: any;\n termOption: any;\n}\n\nexport class PaginationPage {\n pageNumber: number;\n count: number;\n pageSize: number;\n results: any[];\n}\n\nexport class AbstractScheduledJob {\n jobId: string;\n historyId: string;\n stage: string;\n status: string;\n author: string;\n createDate: string;\n lastUpdateDate: string;\n workProgress: number;\n workTotal: number;\n startDate: string;\n endDate: string;\n}\n\nexport class ScheduledJob extends AbstractScheduledJob {\n importedRecords: number;\n exportedRecords: number;\n configuration: ImportConfiguration;\n importErrors: PaginationPage;\n exportErrors: PaginationPage;\n problems: PaginationPage;\n fileName: string;\n}\n\nexport class ScheduledJobOverview extends ScheduledJob {\n stepConfig: StepConfig;\n}\n\n// export class ScheduledJobDetail extends ScheduledJob {\n// // failedRowCount: number;\n// importErrors: PaginationPage\n// }\n\nexport class ImportError {\n exception: ServerException;\n object: ImportErrorObject;\n objectType: string;\n id: string;\n resolution: string;\n selected?: boolean;\n}\n\nexport class ServerException {\n attributes: ServerExceptionAttribute[];\n type: string;\n message: string;\n}\n\nexport class ServerExceptionAttribute {\n value: string;\n key: string;\n}\n\nexport class ImportErrorObject {\n geoObject: GeoObjectOverTime;\n parents: HierarchyOverTime[];\n isNew: boolean;\n}\n\nexport class StepConfig {\n steps: Step[];\n}\n\nexport class Step {\n label: string;\n complete?: boolean;\n enabled?: boolean;\n status?: string;\n}\n\nexport class MasterList {\n oid: string;\n typeCode: string;\n typeLabel?: LocalizedValue;\n displayLabel: LocalizedValue;\n code: string;\n representativityDate: string;\n publishingStartDate?: string;\n publishDate: string;\n descriptionLocal: LocalizedValue;\n processLocal: LocalizedValue;\n progressLocal: LocalizedValue;\n accessConstraintsLocal: LocalizedValue;\n useConstraintsLocal: LocalizedValue;\n acknowledgementsLocal: LocalizedValue;\n disclaimerLocal: LocalizedValue;\n contactName: string;\n organization: string;\n telephoneNumber: string;\n email: string;\n hierarchies: { label: string, code: string, parents: { label: string, code: string }[] }[];\n leaf: boolean;\n frequency: string;\n isMaster: boolean;\n visibility: string;\n write?: boolean;\n read?: boolean;\n exploratory?: boolean;\n versions?: MasterListVersion[];\n subtypes?: { label: string, code: string }[];\n subtypeHierarchies?: any[];\n}\n\nexport class MasterListVersion {\n displayLabel: string;\n oid: string;\n typeCode: string;\n orgCode: string;\n masterlist: string;\n forDate: string;\n createDate: string;\n publishDate: string;\n attributes: any[];\n isGeometryEditable: boolean;\n locales?: string[];\n shapefile?: boolean;\n isAbstract?: boolean;\n superTypeCode?: string;\n refreshProgress?: any;\n subtypes?: { label: string, code: string }[];\n}\n\nexport class HierarchyOverTime {\n code: string;\n label: string;\n types: {\n code: string;\n label: string;\n }[];\n\n entries: HierarchyOverTimeEntry[];\n}\n\nexport class HierarchyOverTimeEntry implements TimeRangeEntry {\n startDate: string;\n endDate: string;\n oid: string;\n parents: { [k: string]: HierarchyOverTimeEntryParent };\n loading?: any;\n conflictType?: string;\n conflictMessage?: any[];\n}\n\nexport class HierarchyOverTimeEntryParent {\n text: string;\n geoObject: GeoObject;\n goCode?: string;\n}\n\nexport class MasterListView {\n label: string;\n oid: string;\n createDate: string;\n lastUpdateDate: string;\n isMaster: boolean;\n write: boolean;\n read: boolean;\n visibility: string;\n}\n\nexport class MasterListByOrg {\n oid: string;\n code: string;\n label: string;\n write: boolean;\n lists: MasterListView[];\n}\n\nexport class SynchronizationConfig {\n oid?: string;\n type?: string;\n systemLabel?: string;\n isImport?: boolean;\n organization: string;\n system: string;\n hierarchy: string;\n label: LocalizedValue;\n configuration: any;\n}\n\nexport class OrgSyncInfo {\n label: string;\n code: string;\n hierarchies: { label: string, code: string }[];\n systems: { label: string, oid: string, type: string }[];\n}\n\nexport class ExportScheduledJob extends AbstractScheduledJob {\n stepConfig?: StepConfig;\n}\n\nexport class ContextLayer {\n oid: string;\n displayLabel: string;\n active: boolean;\n enabled: boolean;\n}\n\nexport class ContextLayerGroup {\n oid: string;\n displayLabel: string;\n contextLayers: ContextLayer[];\n}\n","\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { BsModalRef, BsModalService } from \"ngx-bootstrap/modal\";\nimport { ErrorModalComponent } from \"@shared/component\";\n\nexport class ErrorHandler {\n\n static getMessageFromError(err: any): string {\n let unspecified = \"An unspecified error has occurred. Please try your operation again. If the problem continues, alert your technical support staff.\";\n\n if (err == null) {\n return unspecified;\n } else {\n console.log(\"An error has occurred: \", err);\n }\n\n let msg = null;\n\n if (err.error != null && (typeof err.error === \"object\")) {\n msg = err.error.localizedMessage || err.error.message;\n }\n\n if (msg == null) {\n msg = err.message || err.msg || err.localizedMessage;\n }\n\n if (msg != null && msg.includes(\"##tferrormsg##\")) {\n let split = msg.split(\"##tferrormsg##\");\n return split[2];\n }\n\n if (msg == null) {\n msg = unspecified;\n }\n\n return msg;\n }\n\n static showErrorAsDialog(err: any, modalService: BsModalService): BsModalRef {\n if (err instanceof HttpErrorResponse && err.status === 401) {\n return null;\n }\n\n let bsModalRef = modalService.show(ErrorModalComponent, { backdrop: true, class: \"error-white-space-pre\" });\n\n bsModalRef.content.message = ErrorHandler.getMessageFromError(err);\n\n return bsModalRef;\n }\n\n}\n","import { AttributeType, GeoObject } from \"@registry/model/registry\";\nimport { LocalizedValue } from \"@shared/model/core\";\n// eslint-disable-next-line camelcase\nimport turf_booleanequal from \"@turf/boolean-equal\";\n\nexport default class Utils {\n\n /**\n *\n * @param arr\n */\n static removeStatuses(arr: any[]): any[] {\n var newArray = [];\n\n for (var i = 0; i < arr.length; ++i) {\n if (!(arr[i].code === \"CGR:Status-New\" ||\n arr[i].code === \"CGR:Status-Pending\")) {\n newArray.push(arr[i]);\n }\n }\n\n return newArray;\n }\n\n /**\n *\n * @param dateObj\n */\n static formatDateString(dateObj: Date): string {\n const day = dateObj.getUTCDate();\n const month = dateObj.getUTCMonth() + 1;\n\n return dateObj.getUTCFullYear() + \"-\" + (month < 10 ? \"0\" : \"\") + month + \"-\" + (day < 10 ? \"0\" : \"\") + day;\n }\n\n static dateRangeOverlaps(aStart: number, aEnd: number, bStart: number, bEnd: number): boolean {\n if (aStart <= bStart && bStart <= aEnd) return true; // b starts in a\n if (aStart <= bEnd && bEnd <= aEnd) return true; // b ends in a\n if (bStart < aStart && aEnd < bEnd) return true; // a in b\n return false;\n }\n\n static dateRangeOutside(aStart: number, aEnd: number, bStart: number, bEnd: number): boolean {\n if (aStart < bStart) return true;\n if (aEnd > bEnd) return true;\n return false;\n }\n\n static dateEndBeforeStart(start: number, end: number): boolean {\n if (end < start) return true; // end date is before start date\n return false;\n }\n\n static hasGap(aEnd: number, bStart: number): boolean {\n return (bStart - aEnd) > (1000 * 60 * 60 * 24);\n }\n\n public static areValuesEqual(attributeType: AttributeType, val1: any, val2: any): boolean {\n if (attributeType.type === \"boolean\") {\n return val1 === val2;\n }\n\n if ((val1 === \"\" && val2 == null) || (val2 === \"\" && val1 == null)) {\n return true;\n }\n\n if (!val1 && !val2) {\n return true;\n } else if ((!val1 && val2) || (!val2 && val1)) {\n return false;\n }\n\n if (attributeType.type === \"term\") {\n if (val1 != null && val2 != null) {\n return val1.length === val2.length && val1[0] === val2[0];\n }\n } else if (attributeType.type === \"geometry\") {\n return turf_booleanequal(val1, val2);\n } else if (attributeType.type === \"date\") {\n let casted1 = (typeof val1 === \"string\") ? parseInt(val1) : val1;\n let casted2 = (typeof val2 === \"string\") ? parseInt(val2) : val2;\n\n return casted1 === casted2;\n } else if (attributeType.type === \"local\") {\n if ((!val1.localeValues || !val2.localeValues) || val1.localeValues.length !== val2.localeValues.length) {\n return false;\n }\n\n let len = val1.localeValues.length;\n for (let i = 0; i < len; ++i) {\n let localeValue = val1.localeValues[i];\n\n let lv2 = this.getValueAtLocale(val2, localeValue.locale);\n let lv1 = localeValue.value;\n\n if ((lv1 === \"\" && lv2 == null) || (lv2 === \"\" && lv1 == null)) {\n continue;\n } else if (lv1 !== lv2) {\n return false;\n }\n }\n\n return true;\n } else if (attributeType.type === \"_PARENT_\" && val1.parents && val2.parents) {\n for (const [gotCode, data] of Object.entries(val1.parents)) {\n let parentData: {text: string, geoObject: GeoObject} = data as {text: string, geoObject: GeoObject};\n\n if (val2.parents[gotCode]) {\n let parentData2: {text: string, geoObject: GeoObject} = val2.parents[gotCode];\n\n if (parentData.geoObject == null && parentData2.geoObject == null) {\n // equal, keep looping\n } else if ((parentData.geoObject == null && parentData2.geoObject != null) || (parentData2.geoObject == null && parentData.geoObject != null)) {\n return false;\n } else if (parentData.geoObject.properties.code !== parentData2.geoObject.properties.code) {\n return false;\n }\n }\n }\n\n return true;\n } else if (attributeType.type === \"integer\") {\n let casted1 = (typeof val1 === \"string\") ? parseInt(val1) : val1;\n let casted2 = (typeof val2 === \"string\") ? parseInt(val2) : val2;\n\n return casted1 === casted2;\n } else if (attributeType.type === \"float\") {\n let casted1 = (typeof val1 === \"string\") ? parseFloat(val1) : val1;\n let casted2 = (typeof val2 === \"string\") ? parseFloat(val2) : val2;\n\n return casted1 === casted2;\n }\n\n return val1 === val2;\n }\n\n public static getValueAtLocale(lv: LocalizedValue, locale: string) {\n return new LocalizedValue(lv.localizedValue, lv.localeValues).getValue(locale);\n }\n\n}\n","import { NgModule, ModuleWithProviders } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { RouterModule } from \"@angular/router\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { TreeModule } from \"@circlon/angular-tree-component\";\nimport { ContextMenuModule } from \"ngx-contextmenu\";\nimport { ModalModule } from \"ngx-bootstrap/modal\";\nimport { BsDropdownModule } from \"ngx-bootstrap/dropdown\";\nimport { ButtonsModule } from \"ngx-bootstrap/buttons\";\nimport { TypeaheadModule } from \"ngx-bootstrap/typeahead\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { FileUploadModule } from \"ng2-file-upload\";\nimport { NgxPaginationModule } from \"ngx-pagination\";\nimport { ProgressbarModule } from \"ngx-bootstrap/progressbar\";\nimport { CollapseModule } from \"ngx-bootstrap/collapse\";\nimport { BsDatepickerModule } from \"ngx-bootstrap/datepicker\";\n\nimport { ErrorModalComponent } from \"./component/modals/error-modal.component\";\nimport { SuccessModalComponent } from \"./component/modals/success-modal.component\";\nimport { ConfirmModalComponent } from \"./component/modals/confirm-modal.component\";\nimport { GenericModalComponent } from \"./component/modals/generic-modal.component\";\nimport { ErrorMessageComponent } from \"./component/message/error-message.component\";\nimport { MessageComponent } from \"./component/message/message.component\";\nimport { BooleanFieldComponent } from \"./component/form-fields/boolean-field/boolean-field.component\";\nimport { DateFieldComponent } from \"./component/form-fields/date-field/date-field.component\";\nimport { LoadingBarComponent } from \"./component/loading-bar/loading-bar.component\";\nimport { PasswordStrengthBarComponent } from \"./component/password-strength-bar/password-strength-bar.component\";\n\nimport { AdminGuard, MaintainerGuard, ContributerGuard, AuthGuard } from \"./service/guard.service\";\nimport { PendingChangesGuard } from \"./service/pending-changes-guard\";\n\nimport { AuthService } from \"./service/auth.service\";\nimport { ProfileService } from \"./service/profile.service\";\nimport { OrganizationService } from \"./service/organization.service\";\nimport { ExternalSystemService } from \"./service/external-system.service\";\nimport { LocalizationService } from \"./service/localization.service\";\nimport { ProgressService } from \"./service/progress.service\";\nimport { EventService } from \"./service/event.service\";\nimport { ModalStepIndicatorService } from \"./service/modal-step-indicator.service\";\nimport { SessionService } from \"./service/session.service\";\nimport { DateService } from \"./service/date.service\";\n\nimport { LocalizePipe } from \"./pipe/localize.pipe\";\nimport { PhonePipe } from \"./pipe/phone.pipe\";\n\nimport { OnlyNumber } from \"./directive/number-only.directive\";\nimport { MustMatchDirective } from \"./directive/must-match.directive\";\n\nimport { CgrHeaderComponent } from \"./component/header/header.component\";\nimport { ProgressBarComponent } from \"./component/progress-bar/progress-bar.component\";\nimport { LocalizeComponent } from \"./component/localize/localize.component\";\nimport { ConvertKeyLabel } from \"./component/localize/convert-key-label.component\";\nimport { ModalStepIndicatorComponent } from \"./component/modals/modal-step-indicator.component\";\nimport { ProfileComponent } from \"./component/profile/profile.component\";\n\nimport \"../rxjs-extensions\";\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n FormsModule,\n ReactiveFormsModule,\n FileUploadModule,\n ModalModule.forRoot(),\n TreeModule,\n ContextMenuModule,\n BsDropdownModule,\n ButtonsModule,\n TypeaheadModule,\n ProgressbarModule,\n CollapseModule,\n NgxPaginationModule,\n BsDatepickerModule.forRoot()\n ],\n declarations: [\n LocalizeComponent,\n ConvertKeyLabel,\n BooleanFieldComponent,\n DateFieldComponent,\n LoadingBarComponent,\n ErrorMessageComponent,\n MessageComponent,\n ConfirmModalComponent,\n GenericModalComponent,\n ErrorModalComponent,\n SuccessModalComponent,\n PasswordStrengthBarComponent,\n OnlyNumber,\n MustMatchDirective,\n ProgressBarComponent,\n ModalStepIndicatorComponent,\n CgrHeaderComponent,\n ProfileComponent,\n LocalizePipe,\n PhonePipe\n ],\n exports: [\n LocalizeComponent,\n ConvertKeyLabel,\n BooleanFieldComponent,\n DateFieldComponent,\n LoadingBarComponent,\n ErrorMessageComponent,\n MessageComponent,\n ConfirmModalComponent,\n GenericModalComponent,\n ErrorModalComponent,\n SuccessModalComponent,\n PasswordStrengthBarComponent,\n OnlyNumber,\n MustMatchDirective,\n ProgressBarComponent,\n ModalStepIndicatorComponent,\n CgrHeaderComponent,\n ProfileComponent,\n LocalizePipe,\n PhonePipe,\n CommonModule,\n FormsModule,\n ReactiveFormsModule\n ],\n entryComponents: [\n ErrorModalComponent,\n SuccessModalComponent,\n ConfirmModalComponent,\n GenericModalComponent,\n ModalStepIndicatorComponent,\n ErrorMessageComponent,\n LoadingBarComponent,\n ProfileComponent\n ]\n})\nexport class SharedModule {\n\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: SharedModule,\n providers: [\n CookieService,\n AuthService,\n SessionService,\n ProfileService,\n OrganizationService,\n ExternalSystemService,\n LocalizationService,\n DateService,\n ModalStepIndicatorService,\n EventService,\n ProgressService,\n AdminGuard,\n MaintainerGuard,\n ContributerGuard,\n AuthGuard,\n PendingChangesGuard\n ]\n };\n }\n\n}\n","export enum ActionTypes {\n \"CREATEGEOOBJECTACTION\" = \"CreateGeoObjectAction\",\n \"UPDATEATTRIBUTETACTION\" = \"UpdateAttributeAction\",\n \"UPDATEGEOOBJECTACTION\" = \"UpdateGeoObjectAction\" // Deprecated DO NOT USE\n}\n\nexport enum GovernanceStatus {\n \"PENDING\" = \"PENDING\",\n \"ACCEPTED\" = \"ACCEPTED\",\n \"REJECTED\" = \"REJECTED\"\n}\n\nexport enum GeoObjectTypeModalStates {\n \"manageAttributes\" = \"MANAGE-ATTRIBUTES\",\n \"editAttribute\" = \"EDIT-ATTRIBUTE\",\n \"defineAttribute\" = \"DEFINE-ATTRIBUTE\",\n \"manageTermOption\" = \"MANAGE-TERM-OPTION\",\n \"editTermOption\" = \"EDIT-TERM-OPTION\",\n \"manageGeoObjectType\" = \"MANAGE-GEO-OBJECT-TYPE\"\n}\n\nexport enum ImportStrategy {\n \"NEW_AND_UPDATE\" = \"NEW_AND_UPDATE\",\n \"NEW_ONLY\" = \"NEW_ONLY\",\n \"UPDATE_ONLY\" = \"UPDATE_ONLY\"\n}\n\nexport enum ConflictType {\n MISSING_REFERENCE = \"MISSING_REFERENCE\",\n TIME_RANGE = \"TIME_RANGE\",\n OUTSIDE_EXISTS = \"OUTSIDE_EXISTS\"\n}\n\nexport enum ChangeType\n{\n END_DATE = \"endDate\",\n START_DATE = \"startDate\",\n VALUE = \"value\",\n REMOVE = \"remove\",\n ADD = \"add\"\n}\n\nexport enum LayerColor {\n \"OLD\" = \"#A4A4A4\",\n \"NEW\" = \"#0062AA\"\n}\n","import { Input, Component, OnInit } from \"@angular/core\";\n\nimport { LocalizationService, AuthService } from \"@shared/service\";\nimport { LocaleView, LocalizedValue } from \"@shared/model/core\";\n\n@Component({\n\n selector: \"convert-key-label\",\n templateUrl: \"./convert-key-label.component.html\",\n styleUrls: []\n})\nexport class ConvertKeyLabel implements OnInit {\n\n @Input() key: any;\n text: string;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: LocalizationService, private authService: AuthService) { }\n\n ngOnInit(): void {\n if (this.key != null && this.key.label != null && this.key.label.localizedValue != null) {\n this.text = this.key.label.localizedValue;\n return;\n }\n\n let locales: LocaleView[] = this.authService.getLocales();\n\n let len = locales.length;\n for (let i = 0; i < len; ++i) {\n let locale: LocaleView = locales[i];\n\n if (locale.toString === this.key) {\n this.text = this.getValue(locale.label, this.service.getLocale());\n\n return;\n }\n }\n\n if (this.key === \"defaultLocale\") {\n this.text = this.service.decode(\"localization.defaultLocal\");\n } else {\n this.text = this.key;\n }\n }\n\n public getValue(lv: LocalizedValue, localeToString: string): string {\n let len = lv.localeValues.length;\n\n for (let i = 0; i < len; ++i) {\n let value = lv.localeValues[i];\n\n if (value.locale === localeToString) {\n return value.value;\n }\n }\n\n return lv.localizedValue;\n }\n\n}\n","{{text}}","import { Component, Input, Output, EventEmitter, ChangeDetectorRef, ViewChild } from \"@angular/core\";\nimport { LocalizationService } from \"@shared/service\";\nimport { DateService } from \"@shared/service/date.service\";\n\nimport { BsDatepickerConfig, BsDatepickerDirective } from \"ngx-bootstrap/datepicker\";\n\nimport { PRESENT } from \"@registry/model/registry\";\n\ndeclare let acp: string;\n\n@Component({\n selector: \"date-field\",\n templateUrl: \"./date-field.component.html\",\n styleUrls: [\"./date-field.css\"],\n})\n\nexport class DateFieldComponent {\n\n @ViewChild(BsDatepickerDirective, { static: false }) datepicker: BsDatepickerDirective;\n\n @Input() allowFutureDates: boolean = true;\n @Input() allowInfinity: boolean = false;\n @Input() inputName: string = this.idGenerator();\n @Input() classNames: string = \"\";\n @Input() customStyles: string = \"\";\n @Input() localizeLabelKey: string = \"\"; // localization key used to localize in the component template\n @Input() label: string = \"\"; // raw string input\n @Input() disable: boolean = false;\n @Input() required: boolean = false;\n @Input() placement: string = \"bottom\";\n @Input() oldDate: string = null;\n @Input() title: string = \"\";\n\n _value: Date;\n // eslint-disable-next-line accessor-pairs\n @Input() set value(value) {\n if (value) {\n this.setValue(value ? value : null);\n }\n }\n\n @Output() public valueChange = new EventEmitter();\n\n /* You can pass a function in with (change)='function()' */\n @Output() public change = new EventEmitter();\n\n today: Date = new Date();\n message: string;\n returnFocusToInput: boolean = false;\n valueIsPresent: boolean = false;\n\n @Input() valid: boolean = true;\n @Output() public validChange = new EventEmitter();\n\n constructor(private localizationService: LocalizationService, private bsDatepickerConfig: BsDatepickerConfig, private changeDetectorRef: ChangeDetectorRef, private dateService: DateService) {\n this.bsDatepickerConfig.dateInputFormat = \"YYYY-MM-DD\";\n }\n\n\n private setValue(value: string | number): void {\n // @ts-ignore\n if (!isNaN(value)) {\n // @ts-ignore\n value = parseInt(value);\n }\n\n if (value && typeof value === \"string\") {\n let date = new Date(+value.split(\"-\")[0], +value.split(\"-\")[1] - 1, +value.split(\"-\")[2]);\n\n if (value === PRESENT) {\n this.valueIsPresent = true;\n }\n\n this._value = date;\n } else if (value && typeof value === \"number\") {\n // Custom attributes of date type come through as UTC time\n this._value = new Date(new Date(value).getUTCFullYear(), new Date(value).getUTCMonth(), new Date(value).getUTCDate());\n } else {\n this._value = null;\n }\n }\n\n public getValue(): Date {\n return this._value;\n }\n\n public setInvalid(message: string) {\n this.valid = false;\n this.message = message;\n }\n\n idGenerator() {\n let S4 = function() {\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\n };\n return (S4() + S4() + \"-\" + S4() + \"-\" + S4() + \"-\" + S4() + \"-\" + S4() + S4() + S4());\n }\n\n isEqual(date1: Date, date2: Date): boolean {\n let equal = false;\n\n if (date1 && date2) {\n // if(date1.toISOString().substr(0, 10) === PRESENT && date2.toISOString().substr(0, 10) === PRESENT){\n if (date1.getTime() === date2.getTime()) {\n return true;\n }\n }\n\n return equal;\n }\n\n toggleInfinity(): void {\n let date = this.getValue();\n\n if (date && this.isEqual(date, this.dateService.getPresentDate())) {\n this.setValue(null); // clear the date picker\n this.valueChange.emit(null);\n this.valueIsPresent = false;\n } else {\n this.setValue(PRESENT);\n this.valueChange.emit(this.dateService.getDateString(this.getValue()));\n this.valueIsPresent = true;\n }\n\n this.change.emit();\n }\n\n toggle(event: Date): void {\n setTimeout(() => {\n let validity = this.dateService.validateDate(event, this.required, this.allowFutureDates);\n this.valid = validity.valid;\n this.message = validity.message;\n\n if (this.valid) {\n // Must adhere to the ISO 8601 format\n let formattedDate = this.dateService.getDateString(event);\n\n if (formattedDate === PRESENT) {\n this.valueIsPresent = true;\n } else {\n this.valueIsPresent = false;\n }\n\n this.valueChange.emit(formattedDate);\n } else {\n // hack to avoid ngx-datepicker from putting \"invalid date\" in the input\n this.setValue(null);\n\n this.valueChange.emit(null);\n }\n\n this.change.emit();\n this.validChange.emit(this.valid);\n }, 0)\n }\n\n}","\n\n\n\n\n\n
\n \n \n \n \n
\n

{{message}}

\n
\n
\n\n
\n

\n \n {{ oldDate }}\n

\n
\n\n

\n\n
\n \n \n
\n\n","export enum ModalTypes {\n \"warning\" = \"WARNING\",\n \"danger\" = \"DANGER\"\n}\n\nexport class StepConfig {\n steps: Step[];\n}\n\nexport class Step {\n label: string;\n active: boolean;\n enabled: boolean;\n}","import { Component, Input, Output, EventEmitter } from \"@angular/core\";\n\ndeclare let acp: string;\n\n@Component({\n selector: \"boolean-field\",\n templateUrl: \"./boolean-field.component.html\",\n styleUrls: [\"./boolean-field.css\"]\n})\nexport class BooleanFieldComponent {\n\n @Input() value: boolean = false;\n @Output() public valueChange = new EventEmitter();\n\n @Input() localizeLabelKey: string = \"\"; // localization key used to localize in the component template\n @Input() label: string = \"\"; // raw string input\n\n @Input() disable: boolean = false;\n\n /* You can pass a function in with (change)='function()' */\n @Output() public change = new EventEmitter();\n\n // eslint-disable-next-line no-useless-constructor\n constructor() { }\n\n toggle(): void {\n if (!this.disable) {\n this.value = !this.value;\n\n this.valueChange.emit(this.value);\n this.change.emit(this.value);\n }\n }\n}","
\n
\n \n
\n \n \n \n
","import { Directive, ElementRef, HostListener, Input } from \"@angular/core\";\n\n@Directive({\n selector: \"[OnlyNumber]\"\n})\nexport class OnlyNumber {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private el: ElementRef) { }\n\n @Input() OnlyNumber: boolean;\n\n @HostListener(\"keydown\", [\"$event\"]) onKeyDown(event: any) {\n let e = event;\n if (this.OnlyNumber) {\n if ([46, 8, 9, 27, 13, 110, 190].indexOf(e.keyCode) !== -1 ||\n // Allow: Ctrl+A\n (e.keyCode === 65 && e.ctrlKey === true) ||\n // Allow: Ctrl+C\n (e.keyCode === 67 && e.ctrlKey === true) ||\n // Allow: Ctrl+X\n (e.keyCode === 88 && e.ctrlKey === true) ||\n // Allow: home, end, left, right\n (e.keyCode >= 35 && e.keyCode <= 39)) {\n // let it happen, don't do anything\n return;\n }\n // Ensure that it is a number and stop the keypress\n if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {\n e.preventDefault();\n }\n }\n }\n\n}\n","import { Directive, Input } from \"@angular/core\";\nimport { NG_VALIDATORS, Validator, ValidationErrors, FormGroup } from \"@angular/forms\";\n\n// custom validator to check that two fields match\nexport function MustMatch(controlName: string, matchingControlName: string) {\n return (formGroup: FormGroup) => {\n const control = formGroup.controls[controlName];\n const matchingControl = formGroup.controls[matchingControlName];\n\n // return null if controls haven't initialised yet\n if (!control || !matchingControl) {\n return null;\n }\n\n // return null if another validator has already found an error on the matchingControl\n if (matchingControl.errors && !matchingControl.errors.mustMatch) {\n return null;\n }\n\n // set error on matchingControl if validation fails\n if (control.value !== matchingControl.value) {\n matchingControl.setErrors({ mustMatch: true });\n } else {\n matchingControl.setErrors(null);\n }\n };\n}\n\n@Directive({\n selector: \"[mustMatch]\",\n providers: [{ provide: NG_VALIDATORS, useExisting: MustMatchDirective, multi: true }]\n})\nexport class MustMatchDirective implements Validator {\n\n @Input(\"mustMatch\") mustMatch: string[] = [];\n\n validate(formGroup: FormGroup): ValidationErrors {\n return MustMatch(this.mustMatch[0], this.mustMatch[1])(formGroup);\n }\n\n}\n","/* eslint-disable padded-blocks */\nexport class Profile {\n oid: string;\n username: string;\n password: string;\n firstName: string;\n lastName: string;\n email: string;\n changePassword?: boolean;\n phoneNumber?: string;\n altFirstName?: string;\n altLastName?: string;\n altPhoneNumber?: string;\n position?: string;\n department?: string;\n externalSystemOid?: string;\n}","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { formatNumber, ParsedNumber } from \"libphonenumber-js\";\n\n@Pipe({\n name: \"phone\"\n})\nexport class PhonePipe implements PipeTransform {\n\n transform(value: ParsedNumber, args?: string): any {\n if (!value) {\n return value;\n }\n\n return formatNumber({ country: \"US\", phone: value.toString() }, \"International\");\n }\n\n}\n","import { Input, Component, OnInit } from \"@angular/core\";\n\nimport { LocalizationService } from \"@shared/service\";\n\n@Component({\n\n selector: \"localize\",\n templateUrl: \"./localize.component.html\",\n styleUrls: []\n})\nexport class LocalizeComponent implements OnInit {\n\n @Input() key: string;\n @Input() params: { [key: string]: string } = null;\n\n text: string;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: LocalizationService) { }\n\n ngOnInit(): void {\n this.text = this.service.decode(this.key);\n\n if (this.params != null) {\n const keys = Object.keys(this.params);\n\n keys.forEach((key) => {\n if (this.params[key] != null) {\n this.text = this.text.replace(key, this.params[key]);\n }\n });\n }\n }\n\n}\n","","import { Component, OnInit } from \"@angular/core\";\n\nimport { EventService, IEventListener } from \"@shared/service\";\n\n@Component({\n\n selector: \"loading-bar\",\n templateUrl: \"./loading-bar.component.html\",\n styleUrls: [\"./loading-bar.css\"]\n})\nexport class LoadingBarComponent implements OnInit, IEventListener {\n\n showIndicator: boolean = false;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: EventService) { }\n\n ngOnInit(): void {\n this.service.registerListener(this);\n }\n\n ngOnDestroy(): void {\n this.service.deregisterListener(this);\n }\n\n start(): void {\n this.showIndicator = true;\n }\n\n complete(): void {\n this.showIndicator = false;\n }\n\n}\n","
\n\n
","import { Injectable } from \"@angular/core\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { User } from \"@shared/model/user\";\nimport { RoleBuilder, RegistryRole, RegistryRoleType, LocaleView } from \"@shared/model/core\";\n\n@Injectable()\nexport class AuthService {\n\n private user: User = {\n loggedIn: false,\n userName: \"\",\n roles: [],\n roleDisplayLabels: [],\n version: \"0\",\n installedLocales: []\n };\n\n constructor(private service: CookieService) {\n let cookie = service.get(\"user\");\n\n if (this.service.check(\"user\") && cookie != null && cookie.length > 0) {\n let cookieData: string = this.service.get(\"user\");\n let cookieDataJSON: any = JSON.parse(cookieData);\n\n this.buildFromCookieJson(cookieDataJSON);\n }\n\n this.loadLocales();\n }\n\n buildFromCookieJson(cookieDataJSON: any) {\n this.user.userName = cookieDataJSON.userName;\n this.buildRolesFromCookie(cookieDataJSON);\n this.user.loggedIn = cookieDataJSON.loggedIn;\n this.user.roleDisplayLabels = cookieDataJSON.roleDisplayLabels;\n this.user.version = cookieDataJSON.version.replaceAll(\"+\", \" \");\n // this.user.installedLocales = cookieDataJSON.installedLocales;\n }\n\n buildRolesFromCookie(cookieDataJSON: any) {\n this.user.roles = [];\n let roles: string[] = cookieDataJSON.roles;\n\n for (let i = 0; i < roles.length; ++i) {\n let role: RegistryRole = RoleBuilder.buildFromRoleName(roles[i]);\n\n if (role != null) {\n this.user.roles.push(role);\n }\n }\n }\n\n isLoggedIn(): boolean {\n return this.user.loggedIn;\n }\n\n afterLogIn(logInResponse: any): void {\n this.buildFromCookieJson(JSON.parse(this.service.get(\"user\")));\n\n this.setLocales(logInResponse.installedLocales);\n this.user.installedLocales = logInResponse.installedLocales;\n }\n\n afterLogOut(): void {\n this.user = null;\n sessionStorage.removeItem(\"locales\");\n }\n\n loadLocales() {\n let storageLocales = window.sessionStorage.getItem(\"locales\");\n\n if (storageLocales != null) {\n this.user.installedLocales = JSON.parse(storageLocales);\n }\n }\n\n setLocales(locales: LocaleView[]) {\n window.sessionStorage.setItem(\"locales\", JSON.stringify(locales));\n }\n\n removeUser(): void {\n this.user = {\n loggedIn: false,\n userName: \"\",\n roles: [],\n roleDisplayLabels: [],\n version: \"0\",\n installedLocales: []\n };\n }\n\n // Legacy Accessors:\n isAdmin(): boolean {\n return this.isSRA() || this.isRA();\n }\n\n isMaintainer(): boolean {\n return this.isSRA() || this.isRM();\n }\n\n isContributer(): boolean {\n return this.isSRA() || this.isRC(false);\n }\n\n isContributerOnly(): boolean {\n return this.isRC(true);\n }\n\n // Used to exactly identify a role. I.e. if we say we need RC, SRA doesn't count.\n hasExactRole(roleType: RegistryRoleType) {\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === roleType) {\n return true;\n }\n }\n\n return false;\n }\n\n isSRA(): boolean {\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === RegistryRoleType.SRA) {\n return true;\n }\n }\n\n return false;\n }\n\n isRA(): boolean {\n if (this.isSRA()) {\n return true;\n }\n\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === RegistryRoleType.RA) {\n return true;\n } else if (role.roleName.indexOf(\"commongeoregistry.RegistryAdministrator\") !== -1 || role.roleName.indexOf(\"cgr.RegistryAdministrator\") !== -1) {\n // Legacy support\n return true;\n }\n }\n }\n\n isRM(): boolean {\n if (this.isSRA()) {\n return true;\n }\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === RegistryRoleType.RM) {\n return true;\n } else if (role.roleName.indexOf(\"commongeoregistry.RegistryMaintainer\") !== -1 || role.roleName.indexOf(\"cgr.RegistryMaintainer\") !== -1) {\n // Legacy support\n return true;\n }\n }\n\n return false;\n }\n\n isOrganizationRA(orgCode: string): boolean {\n if (this.isSRA()) {\n return true;\n }\n\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.orgCode === orgCode && role.type === RegistryRoleType.RA) {\n return true;\n }\n }\n\n return false; // this.isSRA();\n }\n\n isGeoObjectTypeRM(orgCode: string, gotCode: string): boolean {\n if (this.isSRA()) {\n return true;\n }\n\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === RegistryRoleType.RM && role.orgCode === orgCode && role.geoObjectTypeCode === gotCode) {\n return true;\n }\n }\n\n return this.isOrganizationRA(orgCode);\n }\n\n isGeoObjectTypeOrSuperRM(got: { organizationCode: string, superTypeCode?: string, code: string }, allowRoleSuper: boolean = true): boolean {\n if (this.isGeoObjectTypeRM(got.organizationCode, got.code)) {\n return true;\n } else if (got.superTypeCode != null) {\n return this.isGeoObjectTypeRM(got.organizationCode, got.superTypeCode);\n }\n }\n\n isGeoObjectTypeRC(orgCode: string, gotCode: string): boolean {\n if (this.isSRA()) {\n return true;\n }\n\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === RegistryRoleType.RC && role.orgCode === orgCode && role.geoObjectTypeCode === gotCode) {\n return true;\n }\n }\n\n return this.isGeoObjectTypeRM(orgCode, gotCode);\n }\n\n isGeoObjectTypeOrSuperRC(got: { organizationCode: string, superTypeCode?: string, code: string }, allowRoleSuper: boolean = true): boolean {\n if (this.isGeoObjectTypeRC(got.organizationCode, got.code)) {\n return true;\n } else if (got.superTypeCode != null) {\n return this.isGeoObjectTypeRC(got.organizationCode, got.superTypeCode);\n }\n }\n\n isRC(isRCOnly: boolean): boolean {\n if (this.isSRA() && !isRCOnly) {\n return true;\n }\n\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === RegistryRoleType.RC) {\n return true;\n } else if (role.roleName.indexOf(\"commongeoregistry.RegistryContributor\") !== -1 || role.roleName.indexOf(\"cgr.RegistryContributor\") !== -1) {\n // Legacy support\n return true;\n }\n }\n\n return false;\n }\n\n // Returns all organization codes that the current user participates in.\n // If the user is an SRA then this method will return an empty string array.\n getMyOrganizations(): string[] {\n let orgCodes: string[] = [];\n\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === RegistryRoleType.SRA || role.type === RegistryRoleType.RC || role.type === RegistryRoleType.RM || role.type === RegistryRoleType.RA) {\n orgCodes.push(role.orgCode);\n }\n }\n\n return orgCodes;\n }\n\n __getRoleFromRoleName(roleName: string): string {\n let nameArr = roleName.split(\".\");\n\n return nameArr[nameArr.length - 1];\n }\n\n getUsername(): string {\n return this.user.userName;\n }\n\n getRoles(): any {\n return this.user.roles;\n }\n\n getRoleDisplayLabelsArray(): any {\n return this.user.roleDisplayLabels;\n }\n\n getRoleDisplayLabels(): string {\n let str = \"\";\n for (let i = 0; i < this.user.roleDisplayLabels.length; ++i) {\n let displayLabel = this.user.roleDisplayLabels[i];\n\n if (displayLabel === \"Administrator\") {\n continue;\n // It's OK to hardcode to a display label here because the end user can't change it anyway.\n // Is it ideal? No. But sometimes it's better to get software out quicker than to spend forever\n // on something that nobody will ever see.\n }\n\n str = str + displayLabel;\n\n if (i < this.user.roleDisplayLabels.length - 1) {\n str = str + \",\";\n }\n }\n\n return str;\n }\n\n getVersion(): string {\n return this.user.version;\n }\n\n getLocales(): LocaleView[] {\n return this.user.installedLocales;\n }\n\n addLocale(locale: LocaleView): void {\n let exists: boolean = false;\n\n for (let i = 0; i < this.user.installedLocales.length; ++i) {\n if (this.user.installedLocales[i].tag === locale.tag) {\n exists = true;\n this.user.installedLocales[i] = locale;\n }\n }\n\n if (!exists) {\n this.user.installedLocales.push(locale);\n }\n\n this.setLocales(this.user.installedLocales);\n }\n\n removeLocale(locale: LocaleView): void {\n for (let i = 0; i < this.user.installedLocales.length; ++i) {\n if (this.user.installedLocales[i].tag === locale.tag) {\n this.user.installedLocales.splice(i, 1);\n this.setLocales(this.user.installedLocales);\n return;\n }\n }\n\n // eslint-disable-next-line no-console\n console.log(\"Could not remove locale from array because we could not find it.\", locale, this.user.installedLocales);\n }\n\n}\n","import { Component, OnChanges, Input, SimpleChange } from \"@angular/core\";\n\n@Component({\n selector: \"password-strength-bar\",\n templateUrl: \"./password-strength-bar.component.html\",\n styleUrls: [\"./password-strength-bar.component.css\"]\n})\nexport class PasswordStrengthBarComponent implements OnChanges {\n\n @Input() passwordToCheck: string;\n bar0: string;\n bar1: string;\n bar2: string;\n bar3: string;\n bar4: string;\n\n private colors = [\"#F00\", \"#F90\", \"#FF0\", \"#9F0\", \"#0F0\"];\n\n private static measureStrength(pass: string) {\n let score = 0;\n // award every unique letter until 5 repetitions\n let letters = {};\n for (let i = 0; i < pass.length; i++) {\n letters[pass[i]] = (letters[pass[i]] || 0) + 1;\n score += 5.0 / letters[pass[i]];\n }\n // bonus points for mixing it up\n let variations = {\n digits: /\\d/.test(pass),\n lower: /[a-z]/.test(pass),\n upper: /[A-Z]/.test(pass),\n nonWords: /\\W/.test(pass)\n };\n\n let variationCount = 0;\n for (let check in variations) {\n variationCount += (variations[check]) ? 1 : 0;\n }\n score += (variationCount - 1) * 10;\n return Math.trunc(score);\n }\n\n private getColor(score: number) {\n let idx = 0;\n if (score > 90) {\n idx = 4;\n } else if (score > 70) {\n idx = 3;\n } else if (score >= 40) {\n idx = 2;\n } else if (score >= 20) {\n idx = 1;\n }\n return {\n idx: idx + 1,\n col: this.colors[idx]\n };\n }\n\n ngOnChanges(changes: { [propName: string]: SimpleChange }): void {\n let password = changes[\"passwordToCheck\"].currentValue;\n this.setBarColors(5, \"#DDD\");\n if (password) {\n let c = this.getColor(PasswordStrengthBarComponent.measureStrength(password));\n this.setBarColors(c.idx, c.col);\n }\n }\n\n private setBarColors(count, col) {\n for (let _n = 0; _n < count; _n++) {\n this[\"bar\" + _n] = col;\n }\n }\n\n}\n","
\n
    \n
  • \n
  • \n
  • \n
  • \n
  • \n
\n
\n","import { Component, OnInit } from \"@angular/core\";\n\nimport { EventService, IEventListener } from \"@shared/service\";\n\n@Component({\n\n selector: \"message\",\n templateUrl: \"./message.component.html\",\n styles: [\n \".error-container { text-align: center; border-width: 1px; border-color: #8c0000; border-style: solid; color: #8c0000; font-size: 17px; background: white;}\",\n \".message-container { text-align: center; border-width: 1px; border-color: #106828; border-style: solid; margin-left: 10%; margin-right: 10%; color: #106828; }\"\n ]\n})\nexport class MessageComponent implements OnInit, IEventListener {\n\n error: any = null;\n\n message: string = \"\";\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: EventService) { }\n\n ngOnInit(): void {\n this.service.registerListener(this);\n }\n\n ngOnDestroy(): void {\n this.service.deregisterListener(this);\n }\n\n start(): void {\n this.error = null;\n }\n\n complete(): void {\n }\n\n onError(error: any): void {\n this.error = error;\n }\n\n onMessage(msg: string): void {\n this.message = msg;\n }\n\n}\n","\n
\n
\n
\n \n
\n
\n
\n

{{message}}

\n
\n
\n
\n
\n
\n \n
\n
\n
\n

{{error.localizedMessage}}

\n

\n
\n
\n
\n
\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./src/app/shared/component/index.ts","webpack:///./src/app/shared/service/date.service.ts","webpack:///./src/app/shared/pipe/localize.pipe.ts","webpack:///./src/app/shared/service/localization.service.ts","webpack:///./src/app/shared/service/event.service.ts","webpack:///./src/app/shared/component/header/header.component.ts","webpack:///./src/app/shared/component/header/header.component.html","webpack:///./src/app/shared/service/guard.service.ts","webpack:///./src/app/shared/component/profile/profile.component.ts","webpack:///./src/app/shared/component/profile/profile.component.html","webpack:///./src/app/shared/model/core.ts","webpack:///./src/app/shared/component/modals/modal-step-indicator.component.ts","webpack:///./src/app/shared/component/modals/modal-step-indicator.component.html","webpack:///./src/app/shared/component/progress-bar/progress-bar.component.ts","webpack:///./src/app/shared/component/progress-bar/progress-bar.component.html","webpack:///./src/app/shared/service/external-system.service.ts","webpack:///./src/app/shared/service/modal-step-indicator.service.ts","webpack:///./src/app/shared/service/organization.service.ts","webpack:///./src/app/shared/service/index.ts","webpack:///./src/app/shared/service/pending-changes-guard.ts","webpack:///./src/app/shared/service/profile.service.ts","webpack:///./src/app/shared/service/progress.service.ts","webpack:///./src/app/shared/service/session.service.ts","webpack:///./src/app/shared/component/message/error-message.component.ts","webpack:///./src/app/shared/component/message/error-message.component.html","webpack:///./src/app/shared/component/modals/confirm-modal.component.ts","webpack:///./src/app/shared/component/modals/confirm-modal.component.html","webpack:///./src/app/shared/component/modals/error-modal.component.ts","webpack:///./src/app/shared/component/modals/error-modal.component.html","webpack:///./src/app/shared/component/modals/success-modal.component.ts","webpack:///./src/app/shared/component/modals/success-modal.component.html","webpack:///./src/app/shared/component/modals/generic-modal.component.ts","webpack:///./src/app/shared/component/modals/generic-modal.component.html","webpack:///./src/app/registry/model/registry.ts","webpack:///./src/app/shared/component/error-handler/error-handler.ts","webpack:///./src/app/registry/utility/Utils.ts","webpack:///./src/app/shared/shared.module.ts","webpack:///./src/app/registry/model/constants.ts","webpack:///./src/app/shared/component/localize/convert-key-label.component.ts","webpack:///./src/app/shared/component/localize/convert-key-label.component.html","webpack:///./src/app/shared/component/form-fields/date-field/date-field.component.ts","webpack:///./src/app/shared/component/form-fields/date-field/date-field.component.html","webpack:///./src/app/shared/model/modal.ts","webpack:///./src/app/shared/component/form-fields/boolean-field/boolean-field.component.ts","webpack:///./src/app/shared/component/form-fields/boolean-field/boolean-field.component.html","webpack:///./src/app/shared/directive/number-only.directive.ts","webpack:///./src/app/shared/directive/must-match.directive.ts","webpack:///./src/app/shared/model/profile.ts","webpack:///./src/app/shared/pipe/phone.pipe.ts","webpack:///./src/app/shared/component/localize/localize.component.ts","webpack:///./src/app/shared/component/localize/localize.component.html","webpack:///./src/app/shared/component/loading-bar/loading-bar.component.ts","webpack:///./src/app/shared/component/loading-bar/loading-bar.component.html","webpack:///./src/app/shared/service/auth.service.ts","webpack:///./src/app/shared/component/password-strength-bar/password-strength-bar.component.ts","webpack:///./src/app/shared/component/password-strength-bar/password-strength-bar.component.html","webpack:///./src/app/shared/component/message/message.component.ts","webpack:///./src/app/shared/component/message/message.component.html"],"names":["components","ErrorHandler","CgrHeaderComponent","LoadingBarComponent","LocalizeComponent","ErrorMessageComponent","MessageComponent","ConfirmModalComponent","GenericModalComponent","ErrorModalComponent","ModalStepIndicatorComponent","SuccessModalComponent","PasswordStrengthBarComponent","ProfileComponent","ProgressBarComponent","localizationService","overlapMessage","severity","message","this","decode","type","ConflictType","TIME_RANGE","mergeContiguousMessage","gapMessage","outsideExistsMessage","OUTSIDE_EXISTS","missingReference","MISSING_REFERENCE","startDateLaterEndDate","getPresentDate","Date","formatDateForDisplay","date","PRESENT","localize","getDateString","split","getDateFromDateString","value","year","getFullYear","month","getMonth","dt","getDate","checkRanges","attributeType","ranges","hasConflict","forEach","range","conflictMessages","Set","delete","filtered","filter","isDelete","j","length","h1","startDate","endDate","s1","e1","dateEndBeforeStart","add","i","h2","s2","e2","dateRangeOverlaps","getTime","addDay","areValuesEqual","sort","current","next","hasGap","between","test","dTest","dStart","dEnd","after","in1","in2","amount","plus1","setDate","votArr","a","b","checkExistRanges","existEntries","filteredExists","inRange","dateRangeOutside","validateDate","required","allowFutureDates","valid","today","isNaN","DateService","Injectable","service","transform","LocalizePipe","Pipe","name","locales","parser","Globalize","numberParser","formatter","numberFormatter","registry","locale","addLocale","exists","tag","push","setLocales","getLocale","getLocales","create","localizedValue","localeValues","toString","remove","splice","console","log","parseNumber","formatNumber","number","Number","bundle","key","com","runwaysdk","Localize","get","index","lastIndexOf","temp","slice","LocalizationService","listeners","registerListener","listener","deregisterListener","indexOfItem","indexOf","start","complete","EventService","modalService","profileService","loggedIn","context","acp","isAdmin","isMaintainer","isContributor","isContributer","defaultLocaleView","found","shouldShowMenuItem","item","hasExactRole","RegistryRoleType","SRA","RA","RM","RC","logout","sessionStorage","removeItem","window","location","href","getUsername","setLocale","then","reload","account","profile","bsModalRef","show","backdrop","class","content","Component","selector","templateUrl","styleUrls","Input","router","canActivate","route","state","navigate","AdminGuard","MaintainerGuard","ContributerGuard","isLoggedIn","AuthGuard","authService","_profile","oid","username","password","firstName","lastName","email","changePassword","roles","getRoles","getRolesForUser","onSubmit","apply","hide","onChangePassword","getRolesArray","cancel","unlock","styles","LocaleValue","lService","label","isDefaultLocale","language","code","country","variant","LocaleView","Organization","ExternalSystem","OAuthServer","PageResult","getValue","localeToString","len","lv","populate","lv1","lv2","lv2lv","lv1lv","JSON","parse","stringify","LocalizedValue","buildFromRoleName","roleName","RegistryRole","roleSplit","orgCode","roleSuffix","gotCode","AC","RoleBuilder","geoObjectTypeCode","modalStepIndicatorService","stepSubscription","modalStepChange","subscribe","stepConfig","ngOnInit","ngOnDestroy","unsubscribe","showIndicator","prog","total","description","progress","http","eventService","getExternalSystems","pageNumber","pageSize","params","HttpParams","set","pipe","finalize","toPromise","getExternalSystem","applyExternalSystem","system","headers","HttpHeaders","post","getSystemCapabilities","removeExternalSystem","ExternalSystemService","modalStepChangedSource","Subject","asObservable","getStepConfig","setStepConfig","config","getStep","step","setStep","ModalStepIndicatorService","getOrganizations","updateOrganization","json","newOrganization","removeOrganization","OrganizationService","services","AuthService","PendingChangesGuard","ProfileService","ProgressService","SessionService","canDeactivate","component","confirmRet","confirm","afterDeactivate","userOID","login","logInResponse","afterLogIn","response","afterLogOut","localizeService","submitText","cancelText","ModalTypes","warning","onConfirm","onCancel","data","GenericButton","buttons","init","onClick","button","shouldClose","TreeEntity","children","addChild","term","Term","GeoObject","attributes","getAttribute","attr","getGeoObjectTypeTermAttributeOptions","geoObjectType","termAttributeCode","attrOpts","rootTerm","removeStatuses","GeoObjectType","Task","getVotAtDate","attrCode","retVot","time","isChangeOverTime","values","vot","Array","isArray","GeoObjectOverTime","ConflictMessage","ValueOverTime","AttributeOverTime","isDefault","unique","AttributeType","isChange","termOptions","setRootTerm","AttributeTermType","precision","scale","AttributeDecimalType","TreeNode","ChildTreeNode","ParentTreeNode","ManageGeoObjectTypeModalState","PaginationPage","AbstractScheduledJob","ScheduledJob","ScheduledJobOverview","ImportError","ServerException","ServerExceptionAttribute","ImportErrorObject","StepConfig","Step","MasterList","MasterListVersion","HierarchyOverTime","HierarchyOverTimeEntry","HierarchyOverTimeEntryParent","MasterListView","MasterListByOrg","SynchronizationConfig","OrgSyncInfo","ExportScheduledJob","ContextLayer","ContextLayerGroup","getMessageFromError","err","unspecified","msg","error","localizedMessage","includes","showErrorAsDialog","HttpErrorResponse","status","arr","newArray","formatDateString","dateObj","day","getUTCDate","getUTCMonth","getUTCFullYear","aStart","aEnd","bStart","bEnd","end","val1","val2","parseInt","localeValue","getValueAtLocale","parents","Object","entries","parentData","parentData2","geoObject","properties","parseFloat","forRoot","ngModule","SharedModule","providers","CookieService","CommonModule","RouterModule","FormsModule","ReactiveFormsModule","FileUploadModule","ModalModule","TreeModule","ContextMenuModule","BsDropdownModule","ButtonsModule","TypeaheadModule","ProgressbarModule","CollapseModule","NgxPaginationModule","BsDatepickerModule","ConvertKeyLabel","BooleanFieldComponent","DateFieldComponent","OnlyNumber","MustMatchDirective","PhonePipe","NgModule","imports","declarations","exports","entryComponents","ActionTypes","GovernanceStatus","GeoObjectTypeModalStates","ImportStrategy","ChangeType","LayerColor","text","title","bsDatepickerConfig","changeDetectorRef","dateService","allowInfinity","inputName","idGenerator","classNames","customStyles","localizeLabelKey","disable","placement","oldDate","valueChange","EventEmitter","change","returnFocusToInput","valueIsPresent","validChange","dateInputFormat","setValue","_value","setInvalid","S4","Math","random","substring","isEqual","date1","date2","toggleInfinity","emit","toggle","event","setTimeout","validity","formattedDate","BsDatepickerDirective","datepicker","ViewChild","static","Output","el","onKeyDown","e","keyCode","ctrlKey","shiftKey","preventDefault","Directive","HostListener","MustMatch","controlName","matchingControlName","formGroup","control","controls","matchingControl","errors","mustMatch","setErrors","validate","provide","NG_VALIDATORS","useExisting","multi","Profile","args","phone","keys","replace","user","userName","roleDisplayLabels","version","installedLocales","cookie","check","cookieData","cookieDataJSON","buildFromCookieJson","loadLocales","buildRolesFromCookie","replaceAll","role","storageLocales","getItem","setItem","removeUser","isSRA","isRA","isRM","isRC","isContributerOnly","roleType","isOrganizationRA","isGeoObjectTypeRM","isGeoObjectTypeOrSuperRM","got","allowRoleSuper","organizationCode","superTypeCode","isGeoObjectTypeRC","isGeoObjectTypeOrSuperRC","isRCOnly","getMyOrganizations","orgCodes","__getRoleFromRoleName","nameArr","getRoleDisplayLabelsArray","getRoleDisplayLabels","str","displayLabel","getVersion","removeLocale","colors","measureStrength","pass","score","letters","variations","digits","lower","upper","nonWords","variationCount","trunc","getColor","idx","col","ngOnChanges","changes","currentValue","setBarColors","c","count","_n","passwordToCheck","onError","onMessage"],"mappings":"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DAIA,8DAGA,8DAGA,8DAIA,kFAGA,kFAGA,mF,0GA7PrB,0BACE,yBAEA,+BAA+E,kIAC7E,+BACE,4BACE,yBACE,4BACF,iBACF,iBAEA,4BACE,4BACE,6BACE,6BACF,iBACF,iBACA,6BACE,8BACE,gCAAmB,8GAAnB,iBACF,iBACF,iBACF,iBAEA,6BACE,6BACE,6BACE,8BACF,iBACF,iBACA,6BACE,8BACE,gCAAmB,6GAAnB,iBACF,iBACF,iBACF,iBAEE,6BACE,6BACE,6BACE,8BACF,iBACF,iBACA,6BACE,8BACE,gCAAmB,iHAAnB,iBACF,iBACF,iBACF,iBACA,6BACE,6BACE,6BACE,8BACF,iBACF,iBACA,6BACE,8BACE,gCAAmB,gHAAnB,iBACF,iBACF,iBACF,iBAEA,6BACE,6BACE,6BACE,8BACF,iBACF,iBACA,6BACE,8BACE,gCAAmB,gHAAnB,iBACF,iBACF,iBACF,iBACA,6BACE,6BACE,6BACE,8BACF,iBACF,iBACA,6BACE,8BACE,gCAAmB,mHAAnB,iBACF,iBACF,iBACF,iBAGF,6BACE,6BACE,6BACE,8BACF,iBACF,iBACA,6BACE,8BACE,mCAAmB,0GAAnB,iBACF,iBACA,gCAGF,iBACF,iBAEE,6BACE,6BACE,6BACE,8BACF,iBACF,iBACA,6BACE,8BACE,gCAAmB,6GAAnB,iBACF,iBACF,iBACF,iBACA,6BACE,6BACE,6BACE,8BACF,iBACF,iBACA,6BACE,8BACE,gCAAmB,+GAAnB,iBACF,iBACF,iBACF,iBAGF,6BACE,0BACE,8BACF,iBACF,iBAEA,6BACE,6BACE,6BACE,8BACF,iBACF,iBACA,6BACE,8BACE,gCAAmB,6GAAnB,iBACF,iBACF,iBACF,iBAEA,gCAaA,gCAaA,gCAkCA,6BACE,6BACE,6BACE,8BACF,iBACF,iBACA,6BAEE,gCACE,6BACE,0BACI,0BAAI,8BAA4D,iBAChE,0BAAI,8BAAoE,iBACxE,0BAAI,8BAAqE,iBAC7E,iBACF,iBACA,8BACE,iCA+BF,iBACF,iBAIF,iBACF,iBAEA,+BACE,+B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","file":"0.chunk.js","sourcesContent":["import { ErrorHandler } from \"./error-handler/error-handler\";\nimport { CgrHeaderComponent } from \"./header/header.component\";\nimport { LoadingBarComponent } from \"./loading-bar/loading-bar.component\";\nimport { LocalizeComponent } from \"./localize/localize.component\";\nimport { ErrorMessageComponent } from \"./message/error-message.component\";\nimport { MessageComponent } from \"./message/message.component\";\nimport { ConfirmModalComponent } from \"./modals/confirm-modal.component\";\nimport { ErrorModalComponent } from \"./modals/error-modal.component\";\nimport { ModalStepIndicatorComponent } from \"./modals/modal-step-indicator.component\";\nimport { SuccessModalComponent } from \"./modals/success-modal.component\";\nimport { PasswordStrengthBarComponent } from \"./password-strength-bar/password-strength-bar.component\";\nimport { ProfileComponent } from \"./profile/profile.component\";\nimport { ProgressBarComponent } from \"./progress-bar/progress-bar.component\";\nimport { GenericModalComponent } from \"./modals/generic-modal.component\";\n\nexport const components: any[] = [\n ErrorHandler,\n CgrHeaderComponent,\n LoadingBarComponent,\n LocalizeComponent,\n ErrorMessageComponent,\n MessageComponent,\n ConfirmModalComponent,\n GenericModalComponent,\n ErrorModalComponent,\n ModalStepIndicatorComponent,\n SuccessModalComponent,\n PasswordStrengthBarComponent,\n ProfileComponent,\n ProgressBarComponent\n];\n\nexport * from \"./error-handler/error-handler\";\nexport * from \"./header/header.component\";\nexport * from \"./loading-bar/loading-bar.component\";\nexport * from \"./localize/localize.component\";\nexport * from \"./message/error-message.component\";\nexport * from \"./message/message.component\";\nexport * from \"./modals/confirm-modal.component\";\nexport * from \"./modals/generic-modal.component\";\nexport * from \"./modals/error-modal.component\";\nexport * from \"./modals/modal-step-indicator.component\";\nexport * from \"./modals/success-modal.component\";\nexport * from \"./password-strength-bar/password-strength-bar.component\";\nexport * from \"./profile/profile.component\";\nexport * from \"./progress-bar/progress-bar.component\";\n","import { Injectable } from \"@angular/core\";\nimport { LocalizationService } from \"./localization.service\";\nimport Utils from \"../../registry/utility/Utils\";\nimport { PRESENT, ConflictMessage, TimeRangeEntry, AttributeType } from \"@registry/model/registry\";\nimport { SummaryKey } from \"@registry/model/crtable\";\nimport { ConflictType } from \"@registry/model/constants\";\nimport { ValueOverTimeCREditor } from \"@registry/component/geoobject-shared-attribute-editor/ValueOverTimeCREditor\";\n\n@Injectable()\nexport class DateService {\n\n public overlapMessage: ConflictMessage = {\n severity: \"ERROR\",\n message: this.localizationService.decode(\"manage.versions.overlap.message\"),\n type: ConflictType.TIME_RANGE\n }\n\n public mergeContiguousMessage: ConflictMessage = {\n severity: \"ERROR\",\n message: this.localizationService.decode(\"manage.versions.mergeContiguousRanges.message\"),\n type: ConflictType.TIME_RANGE\n }\n\n public gapMessage: ConflictMessage = {\n severity: \"WARNING\",\n message: this.localizationService.decode(\"manage.versions.gap.message\"),\n type: ConflictType.TIME_RANGE\n }\n\n public outsideExistsMessage: ConflictMessage = {\n severity: \"ERROR\",\n message: this.localizationService.decode(\"manage.versions.outsideExists.message\"),\n type: ConflictType.OUTSIDE_EXISTS\n }\n\n public missingReference: ConflictMessage = {\n severity: \"ERROR\",\n message: this.localizationService.decode(\"changeovertime.manageVersions.missingReference\"),\n type: ConflictType.MISSING_REFERENCE\n }\n\n public startDateLaterEndDate: ConflictMessage = {\n severity: \"ERROR\",\n message: this.localizationService.decode(\"manage.versions.startdate.later.enddate.message\"),\n type: ConflictType.TIME_RANGE\n };\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private localizationService: LocalizationService) { }\n\n // Get infinity date (called 'present' in the UI)\n public getPresentDate(): Date {\n // NOTE: Month is 0 indexed so 11 = December\n let dt = new Date(5000, 11, 31, 0, 0, 0);\n\n return dt;\n }\n\n public formatDateForDisplay(date: string | Date): string {\n if (!date) {\n return \"\";\n }\n\n if (date === PRESENT) {\n return this.localizationService.localize(\"changeovertime\", \"present\");\n }\n\n if (date instanceof Date) {\n return this.getDateString(date);\n } else {\n return date.split(\"T\")[0];\n }\n }\n\n // @param value as yyyy-mm-dd\n getDateFromDateString(value: string) {\n return new Date(+value.split(\"-\")[0], +value.split(\"-\")[1] - 1, +value.split(\"-\")[2]);\n }\n\n getDateString(date: Date): string {\n if (date instanceof Date) {\n let year = date.getFullYear();\n let month: number | string = date.getMonth() + 1;\n let dt: number | string = date.getDate();\n\n if (dt < 10) {\n dt = \"0\" + dt;\n }\n if (month < 10) {\n month = \"0\" + month;\n }\n\n return year + \"-\" + month + \"-\" + dt;\n }\n\n return null;\n }\n\n checkRanges(attributeType: AttributeType, ranges: ValueOverTimeCREditor[]): boolean {\n let hasConflict = false;\n\n // clear all messages\n ranges.forEach(range => {\n if (!range.conflictMessages) {\n range.conflictMessages = new Set();\n }\n\n range.conflictMessages.delete(this.overlapMessage);\n range.conflictMessages.delete(this.mergeContiguousMessage);\n range.conflictMessages.delete(this.gapMessage);\n range.conflictMessages.delete(this.startDateLaterEndDate);\n });\n\n // Filter DELETE entries from consideration\n const filtered: ValueOverTimeCREditor[] = ranges.filter(range => !range.isDelete());\n\n // Check for overlaps\n for (let j = 0; j < filtered.length; j++) {\n const h1: ValueOverTimeCREditor = filtered[j];\n\n if (h1.startDate && h1.endDate) {\n let s1: any = this.getDateFromDateString(h1.startDate);\n let e1: any = this.getDateFromDateString(h1.endDate);\n\n if (Utils.dateEndBeforeStart(s1, e1)) {\n h1.conflictMessages.add(this.startDateLaterEndDate);\n\n hasConflict = true;\n }\n\n for (let i = 0; i < filtered.length; i++) {\n if (j !== i) {\n const h2: ValueOverTimeCREditor = filtered[i];\n\n // If all dates set\n if (h2.startDate && h2.endDate) {\n let s2: Date = this.getDateFromDateString(h2.startDate);\n let e2: Date = this.getDateFromDateString(h2.endDate);\n\n // Determine if there is an overlap\n if (Utils.dateRangeOverlaps(s1.getTime(), e1.getTime(), s2.getTime(), e2.getTime())) {\n h1.conflictMessages.add(this.overlapMessage);\n\n if (s2.getTime() === e2.getTime()) {\n h2.conflictMessages.add(this.overlapMessage);\n }\n\n hasConflict = true;\n } else if (this.addDay(1, h1.endDate) === h2.startDate && Utils.areValuesEqual(attributeType, h1.value, h2.value)) {\n h1.conflictMessages.add(this.mergeContiguousMessage);\n h2.conflictMessages.add(this.mergeContiguousMessage);\n hasConflict = true;\n }\n } else if ((i === j - 1 || i === j + 1) && e1 && h2.startDate) {\n // If 1st end date and current start date\n\n let s2: Date = this.getDateFromDateString(h2.startDate);\n\n if (s2.getTime() <= e1) {\n h1.conflictMessages.add(this.overlapMessage);\n h2.conflictMessages.add(this.overlapMessage);\n\n hasConflict = true;\n }\n }\n }\n }\n }\n }\n\n this.sort(filtered);\n\n // Check for gaps\n let current = null;\n for (let j = 0; j < filtered.length; j++) {\n let next = filtered[j];\n\n if (j > 0) {\n if (current.endDate && next.startDate) {\n let e1: any = new Date(current.endDate);\n let s2: any = new Date(next.startDate);\n\n if (Utils.hasGap(e1.getTime(), s2.getTime())) {\n next.conflictMessages.add(this.gapMessage);\n\n current.conflictMessages.add(this.gapMessage);\n }\n }\n }\n\n current = next;\n }\n\n this.sort(ranges);\n\n return hasConflict;\n }\n\n public between(test: string | Date, startDate: string, endDate: string) {\n if (test == null || startDate == null || endDate == null) {\n return false;\n }\n\n let dTest: Date = test instanceof Date ? test : this.getDateFromDateString(test);\n let dStart: Date = this.getDateFromDateString(startDate);\n let dEnd: Date = this.getDateFromDateString(endDate);\n\n return dTest >= dStart && dTest <= dEnd;\n }\n\n public after(in1: string | Date, in2: string | Date) {\n if (in1 == null || in2 == null) {\n return false;\n }\n\n let date1: Date = in1 instanceof Date ? in1 : this.getDateFromDateString(in1);\n let date2: Date = in2 instanceof Date ? in2 : this.getDateFromDateString(in2);\n\n return date1 > date2;\n }\n\n public addDay(amount: number, date: string): string {\n var plus1: Date = this.getDateFromDateString(date);\n plus1.setDate(plus1.getDate() + amount);\n let splus1: string = this.getDateString(plus1);\n return splus1;\n }\n\n public sort(votArr: TimeRangeEntry[]): void {\n // Sort the data by start date\n votArr.sort(function(a, b) {\n if (a.startDate == null || a.startDate === \"\") {\n return 1;\n } else if (b.startDate == null || b.startDate === \"\") {\n return -1;\n }\n\n let first: any = new Date(a.startDate);\n let next: any = new Date(b.startDate);\n return first - next;\n });\n }\n\n checkExistRanges(ranges: ValueOverTimeCREditor[], existEntries: ValueOverTimeCREditor[]): boolean {\n let hasConflict = false;\n\n // clear all messages\n ranges.forEach(range => {\n if (!range.conflictMessages) {\n range.conflictMessages = new Set();\n }\n\n range.conflictMessages.delete(this.outsideExistsMessage);\n });\n\n // Filter DELETE entries from consideration\n const filtered: ValueOverTimeCREditor[] = ranges.filter(range => !range.isDelete());\n\n const filteredExists = existEntries.filter(range => !range.isDelete());\n\n // Check for outside exists range\n for (let j = 0; j < filtered.length; j++) {\n const h1 = filtered[j];\n\n if (h1.startDate && h1.endDate) {\n let s1: any = this.getDateFromDateString(h1.startDate);\n let e1: any = this.getDateFromDateString(h1.endDate);\n\n let inRange = false;\n\n for (let i = 0; i < filteredExists.length; i++) {\n const h2 = filteredExists[i];\n\n // If all dates set\n if (h2.value && h2.startDate && h2.endDate) {\n let s2: Date = this.getDateFromDateString(h2.startDate);\n let e2: Date = this.getDateFromDateString(h2.endDate);\n\n if (!Utils.dateRangeOutside(s1.getTime(), e1.getTime(), s2.getTime(), e2.getTime())) {\n inRange = true;\n }\n }\n }\n\n if (!inRange) {\n h1.conflictMessages.add(this.outsideExistsMessage);\n hasConflict = true;\n }\n }\n }\n\n return hasConflict;\n }\n\n validateDate(date: Date, required: boolean, allowFutureDates: boolean): {message: string, valid: boolean} {\n let valid = { message: \"\", valid: true };\n let today: Date = new Date();\n\n if (date != null) {\n if (!(date instanceof Date) || (date instanceof Date && isNaN(date.getTime()))) {\n valid.valid = false;\n valid.message = this.localizationService.decode(\"date.inpu.data.invalid.error.message\");\n } else if (!allowFutureDates && date > today) {\n valid.valid = false;\n valid.message = this.localizationService.decode(\"date.inpu.data.in.future.error.message\");\n }\n } else if (required) {\n valid.valid = false;\n valid.message = this.localizationService.decode(\"manage.versions.date.required.message\");\n }\n\n return valid;\n }\n\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { LocalizationService } from \"@shared/service\";\n\n@Pipe({ name: \"localize\" })\nexport class LocalizePipe implements PipeTransform {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: LocalizationService) { }\n\n transform(value: string): string {\n return this.service.decode(value);\n }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { LocalizedValue, LocaleView } from \"@shared/model/core\";\n\ndeclare let Globalize: any;\ndeclare let com: any;\ndeclare let registry: any;\n\n@Injectable()\nexport class LocalizationService {\n\n locales: LocaleView[] = [];\n locale: string;\n\n private parser: any = Globalize.numberParser();\n private formatter: any = Globalize.numberFormatter();\n\n constructor() {\n this.locales = registry.locales;\n this.locale = registry.locale;\n }\n\n addLocale(locale: LocaleView): void {\n let exists: boolean = false;\n\n for (let i = 0; i < this.locales.length; ++i) {\n if (this.locales[i].tag === locale.tag) {\n exists = true;\n this.locales[i] = locale;\n }\n }\n\n if (!exists) {\n this.locales.push(locale);\n }\n }\n\n setLocales(locales: LocaleView[]): void {\n this.locales = locales;\n }\n\n getLocale(): string {\n return this.locale;\n }\n\n getLocales(): LocaleView[] {\n return this.locales;\n }\n\n create(): LocalizedValue {\n const value = { localizedValue: \"\", localeValues: [] } as LocalizedValue;\n\n this.locales.forEach(locale => {\n // if (!locale.isDefaultLocale)\n // {\n value.localeValues.push({ locale: locale.toString, value: \"\" });\n // }\n });\n\n return value;\n }\n\n remove(locale: LocaleView): void {\n for (let i = 0; i < this.locales.length; ++i) {\n if (this.locales[i].tag === locale.tag) {\n this.locales.splice(i, 1);\n return;\n }\n }\n\n // eslint-disable-next-line no-console\n console.log(\"Could not remove locale from array because we could not find it.\", locale, this.locales);\n }\n\n public parseNumber(value: string): number {\n if (value != null && value.length > 0) {\n // convert data from view format to model format\n let number = this.parser(value);\n\n return number;\n }\n\n return null;\n }\n\n public formatNumber(value: any): string {\n if (value != null) {\n let number = value;\n\n if (typeof number === \"string\") {\n if (number.length > 0 && Number(number)) {\n number = Number(value);\n } else {\n return \"\";\n }\n }\n\n // convert data from model format to view format\n return this.formatter(number);\n }\n\n return null;\n }\n\n public localize(bundle: string, key: string): string {\n return com.runwaysdk.Localize.localize(bundle, key);\n }\n\n public get(key: string): string {\n return com.runwaysdk.Localize.get(key);\n }\n\n public decode(key: string): string {\n let index = key.lastIndexOf(\".\");\n\n if (index !== -1) {\n let temp = [key.slice(0, index), key.slice(index + 1)];\n\n return this.localize(temp[0], temp[1]);\n } else {\n return this.get(key);\n }\n }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\ndeclare let acp;\n\nexport interface IEventListener {\n start(): void;\n complete(): void;\n}\n\n@Injectable()\nexport class EventService {\n\n private listeners: IEventListener[] = [];\n\n public registerListener(listener: IEventListener): void {\n this.listeners.push(listener);\n }\n\n public deregisterListener(listener: IEventListener): boolean {\n let indexOfItem = this.listeners.indexOf(listener);\n\n if (indexOfItem === -1) {\n return false;\n }\n\n this.listeners.splice(indexOfItem, 1);\n\n return true;\n }\n\n public start(): void {\n for (const listener of this.listeners) {\n listener.start();\n }\n }\n\n public complete(): void {\n for (const listener of this.listeners) {\n listener.complete();\n }\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { ProfileComponent } from \"../profile/profile.component\";\n\nimport { AuthService, ProfileService, LocalizationService } from \"@shared/service\";\n\nimport { RegistryRoleType, LocaleView } from \"@shared/model/core\";\n\ndeclare let acp: string;\ndeclare let registry: any;\n\n@Component({\n\n selector: \"cgr-header\",\n templateUrl: \"./header.component.html\",\n styleUrls: []\n})\nexport class CgrHeaderComponent {\n\n context: string;\n isAdmin: boolean;\n isMaintainer: boolean;\n isContributor: boolean;\n bsModalRef: BsModalRef;\n\n defaultLocaleView: LocaleView;\n locales: LocaleView[];\n locale: string;\n\n @Input() loggedIn: boolean = true;\n\n constructor(\n private modalService: BsModalService,\n private profileService: ProfileService,\n private service: AuthService,\n localizationService: LocalizationService\n ) {\n this.context = acp;\n this.isAdmin = service.isAdmin();\n this.isMaintainer = this.isAdmin || service.isMaintainer();\n this.isContributor = this.isAdmin || this.isMaintainer || service.isContributer();\n\n if (localizationService.getLocales()) {\n this.locales = localizationService.getLocales().filter(locale => locale.toString !== \"defaultLocale\");\n this.defaultLocaleView = localizationService.getLocales().filter(locale => locale.toString === \"defaultLocale\")[0];\n } else {\n this.locales = [];\n this.defaultLocaleView = null;\n }\n this.locale = localizationService.getLocale();\n\n let found: boolean = false;\n\n for (let i = 0; i < this.locales.length; ++i) {\n if (this.locales[i].toString === this.locale) {\n found = true;\n }\n }\n\n if (!found) {\n this.locale = \"\";\n }\n }\n\n shouldShowMenuItem(item: string): boolean {\n if (item === \"HIERARCHIES\") {\n return true;\n } else if (item === \"LISTS\") {\n // return this.service.hasExactRole(RegistryRoleType.SRA) || this.service.hasExactRole(RegistryRoleType.RA) || this.service.hasExactRole(RegistryRoleType.RM) || this.service.hasExactRole(RegistryRoleType.RC) || this.service.hasExactRole(RegistryRoleType.AC);\n return true;\n } else if (this.service.hasExactRole(RegistryRoleType.SRA)) {\n return true;\n } else if (item === \"IMPORT\") {\n return this.service.hasExactRole(RegistryRoleType.RA) || this.service.hasExactRole(RegistryRoleType.RM);\n } else if (item === \"SCHEDULED-JOBS\") {\n return this.service.hasExactRole(RegistryRoleType.RA) || this.service.hasExactRole(RegistryRoleType.RM);\n } else if (item === \"NAVIGATOR\") {\n return this.service.hasExactRole(RegistryRoleType.SRA) || this.service.hasExactRole(RegistryRoleType.RA) || this.service.hasExactRole(RegistryRoleType.RM) || this.service.hasExactRole(RegistryRoleType.RC);\n } else if (item === \"CHANGE-REQUESTS\") {\n return this.service.hasExactRole(RegistryRoleType.RA) || this.service.hasExactRole(RegistryRoleType.RM) || this.service.hasExactRole(RegistryRoleType.RC);\n } else if (item === \"TASKS\") {\n return this.service.hasExactRole(RegistryRoleType.SRA) || this.service.hasExactRole(RegistryRoleType.RA) || this.service.hasExactRole(RegistryRoleType.RM);\n } else if (item === \"EVENTS\") {\n return this.service.hasExactRole(RegistryRoleType.SRA) || this.service.hasExactRole(RegistryRoleType.RA) || this.service.hasExactRole(RegistryRoleType.RM);\n } else if (item === \"CONFIGS\") {\n return this.service.hasExactRole(RegistryRoleType.RA);\n } else if (item === \"SETTINGS\") {\n return true;\n } else {\n return false;\n }\n }\n\n logout(): void {\n sessionStorage.removeItem(\"locales\");\n\n window.location.href = acp + \"/session/logout\";\n\n // this.sessionService.logout().then( response => {\n // this.router.navigate( ['/login'] );\n // } );\n }\n\n getUsername() {\n let name: string = this.service.getUsername();\n\n return name;\n }\n\n setLocale() {\n this.profileService.setLocale(this.locale).then(() => {\n // Refresh the page\n window.location.reload();\n });\n }\n\n account(): void {\n this.profileService.get().then(profile => {\n this.bsModalRef = this.modalService.show(ProfileComponent, { backdrop: \"static\", class: \"gray modal-lg\" });\n this.bsModalRef.content.profile = profile;\n });\n }\n\n}\n","\n
\n \n
\n","import { Injectable } from \"@angular/core\";\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from \"@angular/router\";\nimport { AuthService } from \"./auth.service\";\n\n@Injectable()\nexport class AdminGuard implements CanActivate {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: AuthService, private router: Router) { }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n if (this.service.isAdmin()) {\n return true;\n }\n\n this.router.navigate([\"/export\"]);\n\n return false;\n }\n\n}\n\n@Injectable()\nexport class MaintainerGuard implements CanActivate {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: AuthService, private router: Router) { }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n if (this.service.isAdmin() || this.service.isMaintainer()) {\n return true;\n }\n\n this.router.navigate([\"/export\"]);\n\n return false;\n }\n\n}\n\n@Injectable()\nexport class ContributerGuard implements CanActivate {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: AuthService, private router: Router) { }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n if (this.service.isAdmin() || this.service.isMaintainer() || this.service.isContributer()) {\n return true;\n }\n\n this.router.navigate([\"/export\"]);\n\n return false;\n }\n\n}\n\n@Injectable()\nexport class AuthGuard implements CanActivate {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: AuthService, private router: Router) { }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n if (this.service.isLoggedIn()) {\n return true;\n }\n\n this.router.navigate([\"/login\"]);\n\n return false;\n }\n\n}\n\n","import { Component, Input } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Profile } from \"@shared/model/profile\";\nimport { AuthService, ProfileService } from \"@shared/service\";\nimport { Role } from \"../../../admin/model/account\";\n\n@Component({\n selector: \"profile\",\n templateUrl: \"./profile.component.html\",\n styles: [\".modal-form .check-block .chk-area { margin: 10px 0px 0 0;}\"]\n})\nexport class ProfileComponent {\n\n public _profile: Profile = {\n oid: \"\",\n username: \"\",\n password: \"\",\n firstName: \"\",\n lastName: \"\",\n email: \"\",\n changePassword: false\n };\n\n // eslint-disable-next-line accessor-pairs\n @Input(\"profile\")\n set profile(value: Profile) {\n this._profile = value;\n this.getRoles();\n }\n\n roles: Role[] = [];\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: ProfileService, public bsModalRef: BsModalRef, private authService: AuthService) { }\n\n getRoles(): void {\n this.service.getRolesForUser(this._profile.oid).then(roles => {\n this.roles = roles;\n });\n }\n\n onSubmit(): void {\n if (!this._profile.changePassword) {\n delete this._profile.password;\n }\n\n this.service.apply(this._profile).then(profile => {\n this.bsModalRef.hide();\n });\n }\n\n onChangePassword(): void {\n this._profile.changePassword = !this._profile.changePassword;\n }\n\n // getRoles():string {\n // return this.authService.getRoleDisplayLabels();\n // }\n\n getRolesArray(): any {\n return this.authService.getRoles();\n }\n\n cancel(): void {\n this.service.unlock(this._profile.oid).then(profile => {\n this.bsModalRef.hide();\n });\n }\n\n}\n","
\n \n\n
\n
\n
\n

\n \n

\n
\n\n
\n
\n \n
\n
\n \n \n \n
\n
\n \n
\n
\n \n
\n
\n \n \n \n
\n
\n \n
\n
\n \n
\n
\n \n \n \n
\n
\n
\n
\n \n
\n
\n \n \n \n
\n
\n\n
\n
\n \n
\n
\n \n \n \n
\n
\n
\n
\n \n
\n
\n \n \n \n
\n
\n\n \n
\n
\n \n
\n
\n \n \n \n
\n \n
\n
\n
\n\n
\n
\n \n
\n
\n \n \n \n
\n
\n
\n
\n \n
\n
\n \n \n \n
\n
\n \n\n
\n

\n \n

\n
\n\n
\n
\n \n
\n
\n \n \n \n
\n
\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n
\n \n
\n
\n \n \n \n \n \n
\n
\n
\n
\n \n
\n
\n \n \n \n
\n \n
\n
\n
\n
\n\n\n
\n
\n \n
\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n \n
\n {{role.label.localizedValue}}\n \n \n \n \n \n {{role.label.localizedValue}}\n \n {{role.orgLabel.localizedValue}}\n \n \n 0 && role.assigned\">\n {{role.label.localizedValue}}\n 0 && role.assigned\">\n {{role.orgLabel.localizedValue}}\n 0 && role.assigned\">\n {{role.geoObjectTypeLabel.localizedValue}}\n
\n \n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n","/* eslint-disable no-use-before-define */\n/* eslint-disable no-unused-vars */\nimport { LocalizationService } from \"@shared/service/localization.service\";\n\nexport interface MessageContainer {\n setMessage(message: string);\n}\n\nexport class LocaleValue {\n\n locale: string;\n value: string;\n\n constructor(locale: string, value: string) {\n this.locale = locale;\n this.value = value;\n }\n\n}\n\nexport class LocaleView {\n\n constructor(lService: LocalizationService) {\n this.label = lService.create();\n this.toString = \"\";\n this.tag = \"\";\n this.isDefaultLocale = false;\n this.language = { label: \"\", code: \"\" };\n this.country = { label: \"\", code: \"\" };\n this.variant = { label: \"\", code: \"\" };\n }\n\n label: LocalizedValue;\n toString: string;\n tag: string;\n isDefaultLocale: boolean;\n language: { label: string, code: string };\n country: { label: string, code: string };\n variant: { label: string, code: string };\n\n}\n\nexport class Organization {\n\n code: string;\n label: any;\n contactInfo: any;\n\n}\n\nexport class ExternalSystem {\n\toid?: string;\n\tid: string;\n\ttype: string;\n\torganization: string;\n\tlabel: LocalizedValue;\n\tdescription: LocalizedValue;\n\tusername?: string;\n\tpassword?: string;\n\turl?: string;\n\tsystem?: string;\n\tversion?: string;\n\toAuthServer?: OAuthServer;\n}\n\nexport class OAuthServer {\n\n keyName?: string;\n label?: LocalizedValue;\n url?: string;\n authorizationLocation: string;\n tokenLocation: string;\n profileLocation: string;\n clientId: string;\n secretKey: string;\n serverType: string;\n\n}\n\nexport class PageResult {\n\n count: number;\n pageNumber: number;\n pageSize: number;\n resultSet: T[];\n externalSystems?: ExternalSystem[];\n\n}\n\nexport class LocalizedValue {\n\n localizedValue: string;\n localeValues: LocaleValue[];\n\n constructor(localizedValue: string, localeValues: LocaleValue[]) {\n this.localizedValue = localizedValue;\n this.localeValues = localeValues;\n }\n\n public getValue(localeToString: string): string {\n let len = this.localeValues.length;\n\n for (let i = 0; i < len; ++i) {\n let lv = this.localeValues[i];\n\n if (lv.locale === localeToString) {\n return lv.value;\n }\n }\n\n return this.localizedValue;\n }\n\n /*\n * Populates lv1 with all values contained in lv2\n */\n public static populate(lv1: LocalizedValue, lv2: LocalizedValue) {\n if (lv1 == null || lv2 == null) {\n return;\n }\n\n lv1.localizedValue = lv2.localizedValue;\n\n if (lv2.localeValues != null) {\n lv2.localeValues.forEach(lv2lv => {\n if (lv1.localeValues) {\n let found = false;\n\n lv1.localeValues.forEach(lv1lv => {\n if (!found && lv1lv.locale === lv2lv.locale) {\n lv1lv.value = lv2lv.value;\n found = true;\n }\n });\n\n if (!found) {\n lv1.localeValues.push(JSON.parse(JSON.stringify(lv2lv)));\n }\n } else {\n lv1.localeValues = lv2.localeValues;\n }\n });\n }\n }\n\n}\n\nexport class RoleBuilder {\n\n static buildFromRoleName(roleName: string): RegistryRole {\n if (roleName === \"cgr.SRA\") {\n return new RegistryRole(RegistryRoleType.SRA, \"\", \"\", \"cgr.SRA\");\n }\n\n let roleSplit = roleName.split(\".\");\n\n let orgCode: string = roleSplit[2];\n\n if (roleSplit.length === 4) {\n return new RegistryRole(RegistryRoleType.RA, orgCode, \"\", roleName);\n } else if (roleSplit.length === 5) {\n let roleSuffix: string = roleSplit[4];\n\n let gotCode: string = roleSplit[3];\n\n if (roleSuffix === \"RM\") {\n return new RegistryRole(RegistryRoleType.RM, orgCode, gotCode, roleName);\n } else if (roleSuffix === \"RC\") {\n return new RegistryRole(RegistryRoleType.RC, orgCode, gotCode, roleName);\n } else if (roleSuffix === \"AC\") {\n return new RegistryRole(RegistryRoleType.AC, orgCode, gotCode, roleName);\n }\n } else {\n return null;\n }\n }\n\n}\n\nexport class RegistryRole {\n\n type: RegistryRoleType;\n orgCode: string;\n geoObjectTypeCode: string;\n roleName: string;\n displayLabel: string;\n\n constructor(type: RegistryRoleType, orgCode: string, geoObjectTypeCode: string, roleName: string) {\n this.type = type;\n this.orgCode = orgCode;\n this.geoObjectTypeCode = geoObjectTypeCode;\n this.roleName = roleName;\n }\n\n}\n\nexport enum RegistryRoleType {\n SRA,\n RA,\n RM,\n RC,\n AC\n}\n","import { Component } from \"@angular/core\";\nimport { ModalStepIndicatorService } from \"@shared/service\";\n\nimport { Step, StepConfig } from \"@shared/model/modal\";\nimport { Subscription } from \"rxjs\";\n\n@Component({\n selector: \"modal-step-indicator\",\n templateUrl: \"./modal-step-indicator.component.html\",\n styleUrls: [\"./modal-step-indicator.css\"]\n})\nexport class ModalStepIndicatorComponent {\n\n stepConfig: StepConfig;\n step: Step;\n stepSubscription: Subscription;\n\n constructor(private modalStepIndicatorService: ModalStepIndicatorService) {\n this.stepSubscription = modalStepIndicatorService.modalStepChange.subscribe(stepConfig => {\n this.stepConfig = stepConfig;\n });\n }\n\n ngOnInit(): void {\n }\n\n ngOnDestroy() {\n this.stepSubscription.unsubscribe();\n }\n\n}\n","
\n
    0\" class=\"nav nav-justified\">\n
  • {{step.label}}
  • \n
\n
","import { Component, OnInit } from \"@angular/core\";\n\nimport { Progress } from \"@shared/model/progress\";\nimport { ProgressService, IProgressListener } from \"@shared/service\";\n\n@Component({\n\n selector: \"progress-bar\",\n templateUrl: \"./progress-bar.component.html\",\n styles: [\n \".progress-overlay { background-color: #CCCCCC; position: absolute; display: block;opacity: 0.8;z-index: 99999 !important;}\",\n \".progress-div { width: 100%; margin-left: 0; padding-left: 25%; padding-right: 25%; margin-top: 30% }\"\n ]\n})\nexport class ProgressBarComponent implements OnInit, IProgressListener {\n\n public showIndicator: boolean = true;\n\n public prog: Progress = {\n current: 0,\n total: 1,\n description: \"Initializing\"\n };\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: ProgressService) { }\n\n ngOnInit(): void {\n this.service.registerListener(this);\n }\n\n ngOnDestroy(): void {\n this.service.deregisterListener(this);\n }\n\n start(): void {\n this.prog = {\n current: 0,\n total: 1,\n description: \"Initializing\"\n };\n\n this.showIndicator = true;\n }\n\n progress(progress: Progress): void {\n this.prog = progress;\n }\n\n complete(): void {\n this.showIndicator = false;\n }\n\n}\n","
\n
\n {{prog.description}}\n
\n
\n","import { Injectable } from \"@angular/core\";\nimport { HttpHeaders, HttpClient, HttpParams } from \"@angular/common/http\";\nimport { finalize } from \"rxjs/operators\";\nimport { EventService } from \"@shared/service\";\nimport { ExternalSystem, PageResult } from \"@shared/model/core\";\n\ndeclare let acp: any;\n\n@Injectable()\nexport class ExternalSystemService {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private http: HttpClient, private eventService: EventService) { }\n\n getExternalSystems(pageNumber: number, pageSize: number): Promise> {\n let params: HttpParams = new HttpParams();\n params = params.set(\"pageNumber\", pageNumber.toString());\n params = params.set(\"pageSize\", pageSize.toString());\n\n this.eventService.start();\n\n return this.http\n .get>(acp + \"/external-system/get-all\", { params: params })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n getExternalSystem(oid: string): Promise {\n let params: HttpParams = new HttpParams();\n params = params.set(\"oid\", oid);\n\n this.eventService.start();\n\n return this.http\n .get(acp + \"/external-system/get\", { params: params })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n applyExternalSystem(system: ExternalSystem): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/external-system/apply\", JSON.stringify({ system: system }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n getSystemCapabilities(system: ExternalSystem): Promise<{ oauth: boolean }> {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post<{ oauth: boolean }>(acp + \"/external-system/system-capabilities\", JSON.stringify({ system: system }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n removeExternalSystem(oid: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/external-system/remove\", JSON.stringify({ oid: oid }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { Step, StepConfig } from \"@shared/model/modal\";\n\ndeclare let acp: string;\n\n@Injectable()\nexport class ModalStepIndicatorService {\n\n stepConfig: StepConfig;\n step: Step;\n private modalStepChangedSource = new Subject();\n modalStepChange = this.modalStepChangedSource.asObservable();\n\n\n // eslint-disable-next-line no-useless-constructor\n constructor() { }\n\n public getStepConfig(): StepConfig {\n return this.stepConfig;\n }\n\n public setStepConfig(config: StepConfig): void {\n this.stepConfig = config;\n\n this.modalStepChangedSource.next(this.stepConfig);\n }\n\n getStep(): Step {\n return this.step;\n }\n\n setStep(step: Step): void {\n this.step = step;\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpHeaders, HttpClient } from \"@angular/common/http\";\n\nimport { finalize } from \"rxjs/operators\";\n\nimport { EventService } from \"@shared/service\";\n\nimport { Organization } from \"@shared/model/core\";\n\ndeclare var acp: any;\n\n@Injectable()\nexport class OrganizationService {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private http: HttpClient, private eventService: EventService) { }\n\n getOrganizations(): Promise {\n this.eventService.start();\n\n return this.http\n .get(acp + \"/cgr/organizations/get-all\")\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n updateOrganization(json: any): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/cgr/orgainization/update\", JSON.stringify({ json: json }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n newOrganization(json: any): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/cgr/orgainization/create\", JSON.stringify({ json: json }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n removeOrganization(code: any): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/cgr/orgainization/delete\", JSON.stringify({ code: code }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n}\n","import { AuthService } from \"./auth.service\";\nimport { EventService } from \"./event.service\";\nimport { ExternalSystemService } from \"./external-system.service\";\nimport { AdminGuard, AuthGuard, ContributerGuard, MaintainerGuard } from \"./guard.service\";\nimport { LocalizationService } from \"./localization.service\";\nimport { ModalStepIndicatorService } from \"./modal-step-indicator.service\";\nimport { OrganizationService } from \"./organization.service\";\nimport { PendingChangesGuard } from \"./pending-changes-guard\";\nimport { ProfileService } from \"./profile.service\";\nimport { ProgressService } from \"./progress.service\";\nimport { SessionService } from \"./session.service\";\nimport { DateService } from \"./date.service\";\n\nexport const services: any[] = [\n AuthService,\n EventService,\n ExternalSystemService,\n AdminGuard,\n AuthGuard,\n ContributerGuard,\n MaintainerGuard,\n LocalizationService,\n ModalStepIndicatorService,\n OrganizationService,\n PendingChangesGuard,\n ProfileService,\n ProgressService,\n SessionService,\n DateService\n];\n\nexport * from \"./auth.service\";\nexport * from \"./event.service\";\nexport * from \"./external-system.service\";\nexport * from \"./guard.service\";\nexport * from \"./localization.service\";\nexport * from \"./modal-step-indicator.service\";\nexport * from \"./organization.service\";\nexport * from \"./pending-changes-guard\";\nexport * from \"./profile.service\";\nexport * from \"./progress.service\";\nexport * from \"./session.service\";\nexport * from \"./date.service\";\n","import { CanDeactivate } from \"@angular/router\";\nimport { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\n\n// Thanks to : https://stackoverflow.com/a/41187919/219843\n\nexport interface ComponentCanDeactivate {\n canDeactivate: () => boolean | Observable;\n afterDeactivate: (arg: boolean) => void;\n}\n\n@Injectable()\nexport class PendingChangesGuard implements CanDeactivate {\n\n canDeactivate(component: ComponentCanDeactivate): boolean | Observable {\n if (!component.canDeactivate()) {\n // NOTE: this warning message will only be shown when navigating elsewhere within your angular app;\n // when navigating away from your angular app, the browser will show a generic warning message\n // see http://stackoverflow.com/a/42207299/7307355\n let confirmRet = confirm(\"WARNING: You have unsaved changes. Press Cancel to go back and save these changes, or OK to lose these changes.\");\n\n component.afterDeactivate(confirmRet);\n\n return confirmRet;\n }\n\n return true;\n }\n}","import { Injectable } from \"@angular/core\";\nimport { HttpHeaders, HttpClient } from \"@angular/common/http\";\n\n// import 'rxjs/add/operator/toPromise';\n\nimport { Profile } from \"@shared/model/profile\";\n\ndeclare let acp: any;\n\n@Injectable()\nexport class ProfileService {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private http: HttpClient) { }\n\n get(): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n return this.http\n .post(acp + \"/registryaccount/get\", { headers: headers })\n .toPromise();\n }\n\n\n apply(profile: Profile): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n return this.http\n .post(acp + \"/registryaccount/apply\", JSON.stringify({ account: profile }), { headers: headers })\n .toPromise();\n }\n\n unlock(oid: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n return this.http\n .post(acp + \"/registryaccount/unlock\", JSON.stringify({ oid: oid }), { headers: headers })\n .toPromise()\n }\n\n setLocale(locale: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n return this.http\n .post(acp + \"/localization/set-locale\", JSON.stringify({ locale: locale }), { headers: headers })\n .toPromise();\n }\n\n getRolesForUser(userOID: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n\n return this.http\n .post(acp + \"/registryaccount/getRolesForUser\", { userOID: userOID }, { headers: headers })\n .toPromise();\n }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { Progress } from \"@shared/model/progress\";\n\nexport interface IProgressListener {\n start(): void;\n progress(progress: Progress): void;\n complete(): void;\n}\n\n@Injectable()\nexport class ProgressService {\n\n private listeners: IProgressListener[] = [];\n\n // eslint-disable-next-line no-useless-constructor\n public constructor() { }\n\n public registerListener(listener: IProgressListener): void {\n this.listeners.push(listener);\n }\n\n public deregisterListener(listener: IProgressListener): boolean {\n let indexOfItem = this.listeners.indexOf(listener);\n\n if (indexOfItem === -1) {\n return false;\n }\n\n this.listeners.splice(indexOfItem, 1);\n\n return true;\n }\n\n public start(): void {\n for (const listener of this.listeners) {\n listener.start();\n }\n }\n\n public progress(progress: Progress): void {\n for (const listener of this.listeners) {\n listener.progress(progress);\n }\n }\n\n public complete(): void {\n for (const listener of this.listeners) {\n listener.complete();\n }\n }\n}","import { Injectable } from \"@angular/core\";\nimport { HttpHeaders, HttpClient } from \"@angular/common/http\";\n\n// import 'rxjs/add/operator/toPromise';\nimport { finalize } from \"rxjs/operators\";\n\nimport { EventService } from \"./event.service\";\n\nimport { AuthService } from \"./auth.service\";\nimport { User } from \"@shared/model/user\";\n\ndeclare let acp: any;\n\n@Injectable()\nexport class SessionService {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: EventService, private http: HttpClient, private authService: AuthService) { }\n\n login(username: string, password: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.service.start();\n\n return this.http\n .post(acp + \"/cgrsession/login\", JSON.stringify({ username: username, password: password }), { headers: headers })\n .pipe(finalize(() => {\n this.service.complete();\n }))\n .toPromise()\n .then((logInResponse: any) => {\n this.authService.afterLogIn(logInResponse);\n\n return logInResponse;\n })\n }\n\n logout(): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.service.start();\n\n\n return this.http\n .post(acp + \"/session/logout\", { headers: headers })\n .pipe(finalize(() => {\n this.service.complete();\n }))\n .toPromise()\n .then((response: any) => {\n this.authService.afterLogOut();\n\n return response;\n })\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { LocalizationService } from \"@shared/service\";\n\n@Component({\n selector: \"error-message\",\n templateUrl: \"./error-message.component.html\",\n styleUrls: [\"./error-message.css\"]\n})\nexport class ErrorMessageComponent {\n\n /*\n * Message\n */\n @Input() message: string = this.localizeService.decode(\"error.modal.default.message\");\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private localizeService: LocalizationService) { }\n\n}\n","
\n
\n \n \n \n
\n
\n
\n

{{message}}

\n
\n
\n
","import { Component, Input } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Subject } from \"rxjs\";\nimport { LocalizationService } from \"@shared/service\";\nimport { ModalTypes } from \"@shared/model/modal\";\n\n@Component({\n selector: \"confirm-modal\",\n templateUrl: \"./confirm-modal.component.html\",\n styleUrls: [\"./modal.css\"]\n})\nexport class ConfirmModalComponent {\n\n /*\n * Message\n */\n @Input() message: string = this.localizeService.decode(\"confirm.modal.default.message\");\n\n @Input() data: any;\n\n @Input() submitText: string = this.localizeService.decode(\"modal.button.submit\");\n\n @Input() cancelText: string = this.localizeService.decode(\"modal.button.cancel\");\n\n @Input() type: ModalTypes = ModalTypes.warning;\n\n /*\n * Called on confirm\n */\n public onConfirm: Subject;\n\n /*\n * Called on cancel\n */\n public onCancel: Subject;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef, private localizeService: LocalizationService) { }\n\n ngOnInit(): void {\n this.onConfirm = new Subject();\n this.onCancel = new Subject();\n }\n\n confirm(): void {\n this.bsModalRef.hide();\n this.onConfirm.next(this.data);\n }\n\n cancel(): void {\n this.bsModalRef.hide();\n this.onCancel.next(this.data);\n }\n\n}\n","
\n
\n\n
\n
\n

{{message}}

\n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n
\n
","import { Component, Input } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { LocalizationService } from \"@shared/service\";\n\n@Component({\n selector: \"error-modal\",\n templateUrl: \"./error-modal.component.html\",\n styleUrls: [\"./error-modal.css\"]\n})\nexport class ErrorModalComponent {\n\n /*\n * Message\n */\n @Input() message: string = this.localizeService.decode(\"error.modal.default.message\");\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef, private localizeService: LocalizationService) { }\n\n}\n","
\n\t
\n\n\t\t
\n\t\t\t
\n\t\t\t\t

{{message}}

\n\t\t\t
\n\t\t
\n\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
\n
\n","import { Component, Input, OnInit } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Subject } from \"rxjs\";\nimport { LocalizationService } from \"@shared/service\";\n\n@Component({\n selector: \"success-modal\",\n templateUrl: \"./success-modal.component.html\",\n styleUrls: [\"./success-modal.css\"]\n})\nexport class SuccessModalComponent implements OnInit {\n\n /*\n * Message\n */\n @Input() message: string;\n\n @Input() submitText: string = this.localizeService.decode(\"modal.button.close\");\n\n public onConfirm: Subject;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef, private localizeService: LocalizationService) { }\n\n ngOnInit(): void {\n this.message = this.message ? this.message : this.localizeService.decode(\"success.modal.default.message\");\n this.onConfirm = new Subject();\n }\n\n confirm(): void {\n this.bsModalRef.hide();\n this.onConfirm.next();\n }\n\n}\n","
\n\t
\n\n\t\t
\n\t\t\t
\n\t\t\t\t

{{message}}

\n\t\t\t
\n\t\t
\n\n\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
\n\n
\n","import { Component } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { LocalizationService } from \"@shared/service\";\n\nexport class GenericButton {\n\n label: string;\n onClick: Function;\n shouldClose: boolean;\n class: string;\n\n}\n\n@Component({\n selector: \"generic-modal\",\n templateUrl: \"./generic-modal.component.html\",\n styleUrls: [\"./modal.css\"]\n})\nexport class GenericModalComponent {\n\n /*\n * Message\n */\n message: string = this.localizeService.decode(\"confirm.modal.default.message\");\n\n buttons: GenericButton[] = [];\n\n data: any;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef, private localizeService: LocalizationService) { }\n\n init(message: string, buttons: GenericButton[]): void {\n this.message = message;\n this.buttons = buttons;\n }\n\n onClick(button: GenericButton): void {\n if (button.shouldClose) {\n this.bsModalRef.hide();\n }\n\n button.onClick(this.data);\n }\n\n}\n","
\n
\n\n
\n
\n

{{message}}

\n
\n
\n\n
\n
\n
\n \n
\n
\n
\n
\n
","/* eslint-disable no-use-before-define */\n/* eslint-disable padded-blocks */\nimport { LocalizedValue } from \"@shared/model/core\";\nimport { LocalizationService } from \"@shared/service\";\nimport { ImportConfiguration } from \"./io\";\nimport { GovernanceStatus, ConflictType } from \"./constants\";\nimport Utils from \"@registry/utility/Utils\";\n\nexport const PRESENT: string = \"5000-12-31\";\n\nexport class TreeEntity {\n id: string;\n name: string;\n hasChildren: boolean;\n}\n\nexport class Term {\n code: string;\n label: LocalizedValue;\n description: LocalizedValue;\n\n constructor(code: string, label: LocalizedValue, description: LocalizedValue) {\n this.code = code;\n this.label = label;\n this.description = description;\n }\n\n children: Term[] = [];\n\n addChild(term: Term) {\n this.children.push(term);\n }\n}\n\nexport class GeoObject {\n type: string;\n geometry: any;\n properties: {\n uid: string,\n code: string,\n displayLabel: LocalizedValue,\n type: string,\n status: string[],\n sequence: string\n createDate: string,\n lastUpdateDate: string,\n invalid: boolean,\n writable?: boolean\n };\n}\n\nexport class GeoObjectType {\n code: string;\n label: LocalizedValue;\n description: LocalizedValue;\n geometryType?: string;\n isLeaf: boolean;\n isGeometryEditable: boolean;\n organizationCode: string;\n attributes: Array = [];\n relatedHierarchies?: string[];\n superTypeCode?: string;\n isAbstract?: boolean;\n isPrivate?: boolean;\n canDrag?: boolean;\n permissions?: string[];\n\n public static getAttribute(type: GeoObjectType, name: string) {\n let len = type.attributes.length;\n for (let i = 0; i < len; i++) {\n let attr: any = type.attributes[i];\n\n if (attr.code === name) {\n return attr;\n }\n }\n\n return null;\n }\n\n public static getGeoObjectTypeTermAttributeOptions(geoObjectType: GeoObjectType, termAttributeCode: string) {\n for (let i = 0; i < geoObjectType.attributes.length; i++) {\n let attr: any = geoObjectType.attributes[i];\n\n if (attr.type === \"term\" && attr.code === termAttributeCode) {\n attr = attr;\n let attrOpts = attr.rootTerm.children;\n\n // only remove status of the required status type\n if (attrOpts.length > 0) {\n if (attr.code === \"status\") {\n return Utils.removeStatuses(attrOpts);\n } else {\n return attrOpts;\n }\n }\n }\n }\n\n return null;\n }\n}\n\nexport class Task {\n id: string;\n templateKey: string;\n msg: string;\n title: string;\n status: string;\n createDate: number;\n completedDate: number;\n}\n\nexport class GeoObjectOverTime {\n\n geoObjectType: GeoObjectType;\n\n attributes: any;\n\n public constructor(geoObjectType: GeoObjectType, attributes: any) {\n this.geoObjectType = geoObjectType;\n this.attributes = attributes;\n }\n\n public getVotAtDate(date: Date, attrCode: string, lService: LocalizationService) {\n let retVot = { startDate: date, endDate: null, value: null };\n\n const time = date.getTime();\n\n for (let i = 0; i < this.geoObjectType.attributes.length; ++i) {\n let attr = this.geoObjectType.attributes[i];\n\n if (attr.code === attrCode) {\n if (attr.type === \"local\") {\n retVot.value = lService.create();\n }\n\n if (attr.isChangeOverTime) {\n let values = this.attributes[attr.code].values;\n\n values.forEach(vot => {\n\n const startDate = Date.parse(vot.startDate);\n const endDate = Date.parse(vot.endDate);\n\n if (time >= startDate && time <= endDate) {\n\n if (attr.type === \"local\") {\n retVot.value = JSON.parse(JSON.stringify(vot.value));\n } else if (attr.type === \"term\" && vot.value != null && Array.isArray(vot.value) && vot.value.length > 0) {\n retVot.value = vot.value[0];\n } else {\n retVot.value = vot.value;\n }\n }\n });\n } else {\n retVot.value = this.attributes[attr.code];\n }\n\n break;\n }\n }\n\n return retVot;\n }\n}\n\nexport class ConflictMessage {\n message: string;\n severity: string;\n type: ConflictType;\n}\n\nexport interface TimeRangeEntry {\n startDate: string;\n endDate: string;\n oid?: string;\n value?: any;\n}\n\nexport class ValueOverTime implements TimeRangeEntry {\n oid: string;\n startDate: string;\n endDate: string;\n value: any;\n removable?: boolean;\n}\n\nexport class AttributeOverTime {\n name: string;\n type: string;\n values: ValueOverTime[];\n}\n\nexport class AttributeType {\n code: string; // On the back-end this is referred to as the AttributeType's 'name'. They are the same concept.\n type: string;\n label: LocalizedValue;\n description: LocalizedValue;\n isDefault: boolean;\n required: boolean;\n unique: boolean;\n governanceStatus: GovernanceStatus;\n isChangeOverTime?: boolean;\n precision?: number;\n scale?: number;\n isValid?: boolean;\n isValidReason?: {timeConflict: boolean, existConflict: boolean, dateField: boolean};\n isValidReasonHierarchy?: any;\n\n constructor(code: string, type: string, label: LocalizedValue, description: LocalizedValue, isDefault: boolean, required: boolean, unique: boolean, isChangeOverTime: boolean) {\n\n this.code = code;\n this.type = type;\n this.label = label;\n this.description = description;\n this.isDefault = isDefault;\n this.required = false; // Hardcoded to false because this functionality is disabled until later evaluation.\n this.unique = unique;\n this.isChangeOverTime = isChangeOverTime;\n }\n\n}\n\nexport class AttributeTermType extends AttributeType {\n\n // descendants: Attribute[];\n\n // eslint-disable-next-line no-useless-constructor\n constructor(code: string, type: string, label: LocalizedValue, description: LocalizedValue, isDefault: boolean, required: boolean, unique: boolean, isChange: boolean) {\n super(code, type, label, description, isDefault, required, unique, isChange);\n }\n\n rootTerm: Term = new Term(null, null, null);\n\n termOptions: Term[] = [];\n\n setRootTerm(term: Term) {\n this.rootTerm = term;\n }\n}\n\nexport class AttributeDecimalType extends AttributeType {\n constructor(code: string, type: string, label: LocalizedValue, description: LocalizedValue, isDefault: boolean, required: boolean, unique: boolean, isChange: boolean) {\n super(code, type, label, description, isDefault, required, unique, isChange);\n\n this.precision = 32;\n this.scale = 8;\n }\n}\n\nexport class TreeNode {\n geoObject: GeoObject;\n hierarchyType: string;\n}\n\nexport class ChildTreeNode extends TreeNode {\n children: ChildTreeNode[];\n}\n\nexport class ParentTreeNode extends TreeNode {\n parents: ParentTreeNode[];\n}\n\nexport class ManageGeoObjectTypeModalState {\n state: string;\n attribute: any;\n termOption: any;\n}\n\nexport class PaginationPage {\n pageNumber: number;\n count: number;\n pageSize: number;\n results: any[];\n}\n\nexport class AbstractScheduledJob {\n jobId: string;\n historyId: string;\n stage: string;\n status: string;\n author: string;\n createDate: string;\n lastUpdateDate: string;\n workProgress: number;\n workTotal: number;\n startDate: string;\n endDate: string;\n}\n\nexport class ScheduledJob extends AbstractScheduledJob {\n importedRecords: number;\n exportedRecords: number;\n configuration: ImportConfiguration;\n importErrors: PaginationPage;\n exportErrors: PaginationPage;\n problems: PaginationPage;\n fileName: string;\n}\n\nexport class ScheduledJobOverview extends ScheduledJob {\n stepConfig: StepConfig;\n}\n\n// export class ScheduledJobDetail extends ScheduledJob {\n// // failedRowCount: number;\n// importErrors: PaginationPage\n// }\n\nexport class ImportError {\n exception: ServerException;\n object: ImportErrorObject;\n objectType: string;\n id: string;\n resolution: string;\n selected?: boolean;\n}\n\nexport class ServerException {\n attributes: ServerExceptionAttribute[];\n type: string;\n message: string;\n}\n\nexport class ServerExceptionAttribute {\n value: string;\n key: string;\n}\n\nexport class ImportErrorObject {\n geoObject: GeoObjectOverTime;\n parents: HierarchyOverTime[];\n isNew: boolean;\n}\n\nexport class StepConfig {\n steps: Step[];\n}\n\nexport class Step {\n label: string;\n complete?: boolean;\n enabled?: boolean;\n status?: string;\n}\n\nexport class MasterList {\n oid: string;\n typeCode: string;\n typeLabel?: LocalizedValue;\n displayLabel: LocalizedValue;\n code: string;\n representativityDate: string;\n publishingStartDate?: string;\n publishDate: string;\n descriptionLocal: LocalizedValue;\n processLocal: LocalizedValue;\n progressLocal: LocalizedValue;\n accessConstraintsLocal: LocalizedValue;\n useConstraintsLocal: LocalizedValue;\n acknowledgementsLocal: LocalizedValue;\n disclaimerLocal: LocalizedValue;\n contactName: string;\n organization: string;\n telephoneNumber: string;\n email: string;\n hierarchies: { label: string, code: string, parents: { label: string, code: string }[] }[];\n leaf: boolean;\n frequency: string;\n isMaster: boolean;\n visibility: string;\n write?: boolean;\n read?: boolean;\n exploratory?: boolean;\n versions?: MasterListVersion[];\n subtypes?: { label: string, code: string }[];\n subtypeHierarchies?: any[];\n}\n\nexport class MasterListVersion {\n displayLabel: string;\n oid: string;\n typeCode: string;\n orgCode: string;\n masterlist: string;\n forDate: string;\n createDate: string;\n publishDate: string;\n attributes: any[];\n isGeometryEditable: boolean;\n locales?: string[];\n shapefile?: boolean;\n isAbstract?: boolean;\n superTypeCode?: string;\n refreshProgress?: any;\n subtypes?: { label: string, code: string }[];\n}\n\nexport class HierarchyOverTime {\n code: string;\n label: string;\n types: {\n code: string;\n label: string;\n }[];\n\n entries: HierarchyOverTimeEntry[];\n}\n\nexport class HierarchyOverTimeEntry implements TimeRangeEntry {\n startDate: string;\n endDate: string;\n oid: string;\n parents: { [k: string]: HierarchyOverTimeEntryParent };\n loading?: any;\n conflictType?: string;\n conflictMessage?: any[];\n}\n\nexport class HierarchyOverTimeEntryParent {\n text: string;\n geoObject: GeoObject;\n goCode?: string;\n}\n\nexport class MasterListView {\n label: string;\n oid: string;\n createDate: string;\n lastUpdateDate: string;\n isMaster: boolean;\n write: boolean;\n read: boolean;\n visibility: string;\n}\n\nexport class MasterListByOrg {\n oid: string;\n code: string;\n label: string;\n write: boolean;\n lists: MasterListView[];\n}\n\nexport class SynchronizationConfig {\n oid?: string;\n type?: string;\n systemLabel?: string;\n isImport?: boolean;\n organization: string;\n system: string;\n hierarchy: string;\n label: LocalizedValue;\n configuration: any;\n}\n\nexport class OrgSyncInfo {\n label: string;\n code: string;\n hierarchies: { label: string, code: string }[];\n systems: { label: string, oid: string, type: string }[];\n}\n\nexport class ExportScheduledJob extends AbstractScheduledJob {\n stepConfig?: StepConfig;\n}\n\nexport class ContextLayer {\n oid: string;\n displayLabel: string;\n active: boolean;\n enabled: boolean;\n}\n\nexport class ContextLayerGroup {\n oid: string;\n displayLabel: string;\n contextLayers: ContextLayer[];\n}\n","\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { BsModalRef, BsModalService } from \"ngx-bootstrap/modal\";\nimport { ErrorModalComponent } from \"@shared/component\";\n\nexport class ErrorHandler {\n\n static getMessageFromError(err: any): string {\n let unspecified = \"An unspecified error has occurred. Please try your operation again. If the problem continues, alert your technical support staff.\";\n\n if (err == null) {\n return unspecified;\n } else {\n console.log(\"An error has occurred: \", err);\n }\n\n let msg = null;\n\n if (err.error != null && (typeof err.error === \"object\")) {\n msg = err.error.localizedMessage || err.error.message;\n }\n\n if (msg == null) {\n msg = err.message || err.msg || err.localizedMessage;\n }\n\n if (msg != null && msg.includes(\"##tferrormsg##\")) {\n let split = msg.split(\"##tferrormsg##\");\n return split[2];\n }\n\n if (msg == null) {\n msg = unspecified;\n }\n\n return msg;\n }\n\n static showErrorAsDialog(err: any, modalService: BsModalService): BsModalRef {\n if (err instanceof HttpErrorResponse && err.status === 401) {\n return null;\n }\n\n let bsModalRef = modalService.show(ErrorModalComponent, { backdrop: true, class: \"error-white-space-pre\" });\n\n bsModalRef.content.message = ErrorHandler.getMessageFromError(err);\n\n return bsModalRef;\n }\n\n}\n","import { AttributeType, GeoObject } from \"@registry/model/registry\";\nimport { LocalizedValue } from \"@shared/model/core\";\n// eslint-disable-next-line camelcase\nimport turf_booleanequal from \"@turf/boolean-equal\";\n\nexport default class Utils {\n\n /**\n *\n * @param arr\n */\n static removeStatuses(arr: any[]): any[] {\n var newArray = [];\n\n for (var i = 0; i < arr.length; ++i) {\n if (!(arr[i].code === \"CGR:Status-New\" ||\n arr[i].code === \"CGR:Status-Pending\")) {\n newArray.push(arr[i]);\n }\n }\n\n return newArray;\n }\n\n /**\n *\n * @param dateObj\n */\n static formatDateString(dateObj: Date): string {\n const day = dateObj.getUTCDate();\n const month = dateObj.getUTCMonth() + 1;\n\n return dateObj.getUTCFullYear() + \"-\" + (month < 10 ? \"0\" : \"\") + month + \"-\" + (day < 10 ? \"0\" : \"\") + day;\n }\n\n static dateRangeOverlaps(aStart: number, aEnd: number, bStart: number, bEnd: number): boolean {\n if (aStart <= bStart && bStart <= aEnd) return true; // b starts in a\n if (aStart <= bEnd && bEnd <= aEnd) return true; // b ends in a\n if (bStart < aStart && aEnd < bEnd) return true; // a in b\n return false;\n }\n\n static dateRangeOutside(aStart: number, aEnd: number, bStart: number, bEnd: number): boolean {\n if (aStart < bStart) return true;\n if (aEnd > bEnd) return true;\n return false;\n }\n\n static dateEndBeforeStart(start: number, end: number): boolean {\n if (end < start) return true; // end date is before start date\n return false;\n }\n\n static hasGap(aEnd: number, bStart: number): boolean {\n return (bStart - aEnd) > (1000 * 60 * 60 * 24);\n }\n\n public static areValuesEqual(attributeType: AttributeType, val1: any, val2: any): boolean {\n if (attributeType.type === \"boolean\") {\n return val1 === val2;\n }\n\n if ((val1 === \"\" && val2 == null) || (val2 === \"\" && val1 == null)) {\n return true;\n }\n\n if (!val1 && !val2) {\n return true;\n } else if ((!val1 && val2) || (!val2 && val1)) {\n return false;\n }\n\n if (attributeType.type === \"term\") {\n if (val1 != null && val2 != null) {\n return val1.length === val2.length && val1[0] === val2[0];\n }\n } else if (attributeType.type === \"geometry\") {\n return turf_booleanequal(val1, val2);\n } else if (attributeType.type === \"date\") {\n let casted1 = (typeof val1 === \"string\") ? parseInt(val1) : val1;\n let casted2 = (typeof val2 === \"string\") ? parseInt(val2) : val2;\n\n return casted1 === casted2;\n } else if (attributeType.type === \"local\") {\n if ((!val1.localeValues || !val2.localeValues) || val1.localeValues.length !== val2.localeValues.length) {\n return false;\n }\n\n let len = val1.localeValues.length;\n for (let i = 0; i < len; ++i) {\n let localeValue = val1.localeValues[i];\n\n let lv2 = this.getValueAtLocale(val2, localeValue.locale);\n let lv1 = localeValue.value;\n\n if ((lv1 === \"\" && lv2 == null) || (lv2 === \"\" && lv1 == null)) {\n continue;\n } else if (lv1 !== lv2) {\n return false;\n }\n }\n\n return true;\n } else if (attributeType.type === \"_PARENT_\" && val1.parents && val2.parents) {\n for (const [gotCode, data] of Object.entries(val1.parents)) {\n let parentData: {text: string, geoObject: GeoObject} = data as {text: string, geoObject: GeoObject};\n\n if (val2.parents[gotCode]) {\n let parentData2: {text: string, geoObject: GeoObject} = val2.parents[gotCode];\n\n if (parentData.geoObject == null && parentData2.geoObject == null) {\n // equal, keep looping\n } else if ((parentData.geoObject == null && parentData2.geoObject != null) || (parentData2.geoObject == null && parentData.geoObject != null)) {\n return false;\n } else if (parentData.geoObject.properties.code !== parentData2.geoObject.properties.code) {\n return false;\n }\n }\n }\n\n return true;\n } else if (attributeType.type === \"integer\") {\n let casted1 = (typeof val1 === \"string\") ? parseInt(val1) : val1;\n let casted2 = (typeof val2 === \"string\") ? parseInt(val2) : val2;\n\n return casted1 === casted2;\n } else if (attributeType.type === \"float\") {\n let casted1 = (typeof val1 === \"string\") ? parseFloat(val1) : val1;\n let casted2 = (typeof val2 === \"string\") ? parseFloat(val2) : val2;\n\n return casted1 === casted2;\n }\n\n return val1 === val2;\n }\n\n public static getValueAtLocale(lv: LocalizedValue, locale: string) {\n return new LocalizedValue(lv.localizedValue, lv.localeValues).getValue(locale);\n }\n\n}\n","import { NgModule, ModuleWithProviders } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { RouterModule } from \"@angular/router\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { TreeModule } from \"@circlon/angular-tree-component\";\nimport { ContextMenuModule } from \"ngx-contextmenu\";\nimport { ModalModule } from \"ngx-bootstrap/modal\";\nimport { BsDropdownModule } from \"ngx-bootstrap/dropdown\";\nimport { ButtonsModule } from \"ngx-bootstrap/buttons\";\nimport { TypeaheadModule } from \"ngx-bootstrap/typeahead\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { FileUploadModule } from \"ng2-file-upload\";\nimport { NgxPaginationModule } from \"ngx-pagination\";\nimport { ProgressbarModule } from \"ngx-bootstrap/progressbar\";\nimport { CollapseModule } from \"ngx-bootstrap/collapse\";\nimport { BsDatepickerModule } from \"ngx-bootstrap/datepicker\";\n\nimport { ErrorModalComponent } from \"./component/modals/error-modal.component\";\nimport { SuccessModalComponent } from \"./component/modals/success-modal.component\";\nimport { ConfirmModalComponent } from \"./component/modals/confirm-modal.component\";\nimport { GenericModalComponent } from \"./component/modals/generic-modal.component\";\nimport { ErrorMessageComponent } from \"./component/message/error-message.component\";\nimport { MessageComponent } from \"./component/message/message.component\";\nimport { BooleanFieldComponent } from \"./component/form-fields/boolean-field/boolean-field.component\";\nimport { DateFieldComponent } from \"./component/form-fields/date-field/date-field.component\";\nimport { LoadingBarComponent } from \"./component/loading-bar/loading-bar.component\";\nimport { PasswordStrengthBarComponent } from \"./component/password-strength-bar/password-strength-bar.component\";\n\nimport { AdminGuard, MaintainerGuard, ContributerGuard, AuthGuard } from \"./service/guard.service\";\nimport { PendingChangesGuard } from \"./service/pending-changes-guard\";\n\nimport { AuthService } from \"./service/auth.service\";\nimport { ProfileService } from \"./service/profile.service\";\nimport { OrganizationService } from \"./service/organization.service\";\nimport { ExternalSystemService } from \"./service/external-system.service\";\nimport { LocalizationService } from \"./service/localization.service\";\nimport { ProgressService } from \"./service/progress.service\";\nimport { EventService } from \"./service/event.service\";\nimport { ModalStepIndicatorService } from \"./service/modal-step-indicator.service\";\nimport { SessionService } from \"./service/session.service\";\nimport { DateService } from \"./service/date.service\";\n\nimport { LocalizePipe } from \"./pipe/localize.pipe\";\nimport { PhonePipe } from \"./pipe/phone.pipe\";\n\nimport { OnlyNumber } from \"./directive/number-only.directive\";\nimport { MustMatchDirective } from \"./directive/must-match.directive\";\n\nimport { CgrHeaderComponent } from \"./component/header/header.component\";\nimport { ProgressBarComponent } from \"./component/progress-bar/progress-bar.component\";\nimport { LocalizeComponent } from \"./component/localize/localize.component\";\nimport { ConvertKeyLabel } from \"./component/localize/convert-key-label.component\";\nimport { ModalStepIndicatorComponent } from \"./component/modals/modal-step-indicator.component\";\nimport { ProfileComponent } from \"./component/profile/profile.component\";\n\nimport \"../rxjs-extensions\";\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n FormsModule,\n ReactiveFormsModule,\n FileUploadModule,\n ModalModule.forRoot(),\n TreeModule,\n ContextMenuModule,\n BsDropdownModule,\n ButtonsModule,\n TypeaheadModule,\n ProgressbarModule,\n CollapseModule,\n NgxPaginationModule,\n BsDatepickerModule.forRoot()\n ],\n declarations: [\n LocalizeComponent,\n ConvertKeyLabel,\n BooleanFieldComponent,\n DateFieldComponent,\n LoadingBarComponent,\n ErrorMessageComponent,\n MessageComponent,\n ConfirmModalComponent,\n GenericModalComponent,\n ErrorModalComponent,\n SuccessModalComponent,\n PasswordStrengthBarComponent,\n OnlyNumber,\n MustMatchDirective,\n ProgressBarComponent,\n ModalStepIndicatorComponent,\n CgrHeaderComponent,\n ProfileComponent,\n LocalizePipe,\n PhonePipe\n ],\n exports: [\n LocalizeComponent,\n ConvertKeyLabel,\n BooleanFieldComponent,\n DateFieldComponent,\n LoadingBarComponent,\n ErrorMessageComponent,\n MessageComponent,\n ConfirmModalComponent,\n GenericModalComponent,\n ErrorModalComponent,\n SuccessModalComponent,\n PasswordStrengthBarComponent,\n OnlyNumber,\n MustMatchDirective,\n ProgressBarComponent,\n ModalStepIndicatorComponent,\n CgrHeaderComponent,\n ProfileComponent,\n LocalizePipe,\n PhonePipe,\n CommonModule,\n FormsModule,\n ReactiveFormsModule\n ],\n entryComponents: [\n ErrorModalComponent,\n SuccessModalComponent,\n ConfirmModalComponent,\n GenericModalComponent,\n ModalStepIndicatorComponent,\n ErrorMessageComponent,\n LoadingBarComponent,\n ProfileComponent\n ]\n})\nexport class SharedModule {\n\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: SharedModule,\n providers: [\n CookieService,\n AuthService,\n SessionService,\n ProfileService,\n OrganizationService,\n ExternalSystemService,\n LocalizationService,\n DateService,\n ModalStepIndicatorService,\n EventService,\n ProgressService,\n AdminGuard,\n MaintainerGuard,\n ContributerGuard,\n AuthGuard,\n PendingChangesGuard\n ]\n };\n }\n\n}\n","export enum ActionTypes {\n \"CREATEGEOOBJECTACTION\" = \"CreateGeoObjectAction\",\n \"UPDATEATTRIBUTETACTION\" = \"UpdateAttributeAction\",\n \"UPDATEGEOOBJECTACTION\" = \"UpdateGeoObjectAction\" // Deprecated DO NOT USE\n}\n\nexport enum GovernanceStatus {\n \"PENDING\" = \"PENDING\",\n \"ACCEPTED\" = \"ACCEPTED\",\n \"REJECTED\" = \"REJECTED\"\n}\n\nexport enum GeoObjectTypeModalStates {\n \"manageAttributes\" = \"MANAGE-ATTRIBUTES\",\n \"editAttribute\" = \"EDIT-ATTRIBUTE\",\n \"defineAttribute\" = \"DEFINE-ATTRIBUTE\",\n \"manageTermOption\" = \"MANAGE-TERM-OPTION\",\n \"editTermOption\" = \"EDIT-TERM-OPTION\",\n \"manageGeoObjectType\" = \"MANAGE-GEO-OBJECT-TYPE\"\n}\n\nexport enum ImportStrategy {\n \"NEW_AND_UPDATE\" = \"NEW_AND_UPDATE\",\n \"NEW_ONLY\" = \"NEW_ONLY\",\n \"UPDATE_ONLY\" = \"UPDATE_ONLY\"\n}\n\nexport enum ConflictType {\n MISSING_REFERENCE = \"MISSING_REFERENCE\",\n TIME_RANGE = \"TIME_RANGE\",\n OUTSIDE_EXISTS = \"OUTSIDE_EXISTS\"\n}\n\nexport enum ChangeType\n{\n END_DATE = \"endDate\",\n START_DATE = \"startDate\",\n VALUE = \"value\",\n REMOVE = \"remove\",\n ADD = \"add\"\n}\n\nexport enum LayerColor {\n \"OLD\" = \"#A4A4A4\",\n \"NEW\" = \"#0062AA\"\n}\n","import { Input, Component, OnInit } from \"@angular/core\";\n\nimport { LocalizationService, AuthService } from \"@shared/service\";\nimport { LocaleView, LocalizedValue } from \"@shared/model/core\";\n\n@Component({\n\n selector: \"convert-key-label\",\n templateUrl: \"./convert-key-label.component.html\",\n styleUrls: []\n})\nexport class ConvertKeyLabel implements OnInit {\n\n @Input() key: any;\n text: string;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: LocalizationService, private authService: AuthService) { }\n\n ngOnInit(): void {\n if (this.key != null && this.key.label != null && this.key.label.localizedValue != null) {\n this.text = this.key.label.localizedValue;\n return;\n }\n\n let locales: LocaleView[] = this.authService.getLocales();\n\n let len = locales.length;\n for (let i = 0; i < len; ++i) {\n let locale: LocaleView = locales[i];\n\n if (locale.toString === this.key) {\n this.text = this.getValue(locale.label, this.service.getLocale());\n\n return;\n }\n }\n\n if (this.key === \"defaultLocale\") {\n this.text = this.service.decode(\"localization.defaultLocal\");\n } else {\n this.text = this.key;\n }\n }\n\n public getValue(lv: LocalizedValue, localeToString: string): string {\n let len = lv.localeValues.length;\n\n for (let i = 0; i < len; ++i) {\n let value = lv.localeValues[i];\n\n if (value.locale === localeToString) {\n return value.value;\n }\n }\n\n return lv.localizedValue;\n }\n\n}\n","{{text}}","import { Component, Input, Output, EventEmitter, ChangeDetectorRef, ViewChild } from \"@angular/core\";\nimport { LocalizationService } from \"@shared/service\";\nimport { DateService } from \"@shared/service/date.service\";\n\nimport { BsDatepickerConfig, BsDatepickerDirective } from \"ngx-bootstrap/datepicker\";\n\nimport { PRESENT } from \"@registry/model/registry\";\n\ndeclare let acp: string;\n\n@Component({\n selector: \"date-field\",\n templateUrl: \"./date-field.component.html\",\n styleUrls: [\"./date-field.css\"],\n})\n\nexport class DateFieldComponent {\n\n @ViewChild(BsDatepickerDirective, { static: false }) datepicker: BsDatepickerDirective;\n\n @Input() allowFutureDates: boolean = true;\n @Input() allowInfinity: boolean = false;\n @Input() inputName: string = this.idGenerator();\n @Input() classNames: string = \"\";\n @Input() customStyles: string = \"\";\n @Input() localizeLabelKey: string = \"\"; // localization key used to localize in the component template\n @Input() label: string = \"\"; // raw string input\n @Input() disable: boolean = false;\n @Input() required: boolean = false;\n @Input() placement: string = \"bottom\";\n @Input() oldDate: string = null;\n @Input() title: string = \"\";\n\n _value: Date;\n // eslint-disable-next-line accessor-pairs\n @Input() set value(value) {\n if (value) {\n this.setValue(value ? value : null);\n }\n }\n\n @Output() public valueChange = new EventEmitter();\n\n /* You can pass a function in with (change)='function()' */\n @Output() public change = new EventEmitter();\n\n today: Date = new Date();\n message: string;\n returnFocusToInput: boolean = false;\n valueIsPresent: boolean = false;\n\n @Input() valid: boolean = true;\n @Output() public validChange = new EventEmitter();\n\n constructor(private localizationService: LocalizationService, private bsDatepickerConfig: BsDatepickerConfig, private changeDetectorRef: ChangeDetectorRef, private dateService: DateService) {\n this.bsDatepickerConfig.dateInputFormat = \"YYYY-MM-DD\";\n }\n\n\n private setValue(value: string | number): void {\n // @ts-ignore\n if (!isNaN(value)) {\n // @ts-ignore\n value = parseInt(value);\n }\n\n if (value && typeof value === \"string\") {\n let date = new Date(+value.split(\"-\")[0], +value.split(\"-\")[1] - 1, +value.split(\"-\")[2]);\n\n if (value === PRESENT) {\n this.valueIsPresent = true;\n }\n\n this._value = date;\n } else if (value && typeof value === \"number\") {\n // Custom attributes of date type come through as UTC time\n this._value = new Date(new Date(value).getUTCFullYear(), new Date(value).getUTCMonth(), new Date(value).getUTCDate());\n } else {\n this._value = null;\n }\n }\n\n public getValue(): Date {\n return this._value;\n }\n\n public setInvalid(message: string) {\n this.valid = false;\n this.message = message;\n }\n\n idGenerator() {\n let S4 = function() {\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\n };\n return (S4() + S4() + \"-\" + S4() + \"-\" + S4() + \"-\" + S4() + \"-\" + S4() + S4() + S4());\n }\n\n isEqual(date1: Date, date2: Date): boolean {\n let equal = false;\n\n if (date1 && date2) {\n // if(date1.toISOString().substr(0, 10) === PRESENT && date2.toISOString().substr(0, 10) === PRESENT){\n if (date1.getTime() === date2.getTime()) {\n return true;\n }\n }\n\n return equal;\n }\n\n toggleInfinity(): void {\n let date = this.getValue();\n\n if (date && this.isEqual(date, this.dateService.getPresentDate())) {\n this.setValue(null); // clear the date picker\n this.valueChange.emit(null);\n this.valueIsPresent = false;\n } else {\n this.setValue(PRESENT);\n this.valueChange.emit(this.dateService.getDateString(this.getValue()));\n this.valueIsPresent = true;\n }\n\n this.change.emit();\n }\n\n toggle(event: Date): void {\n setTimeout(() => {\n let validity = this.dateService.validateDate(event, this.required, this.allowFutureDates);\n this.valid = validity.valid;\n this.message = validity.message;\n\n if (this.valid) {\n // Must adhere to the ISO 8601 format\n let formattedDate = this.dateService.getDateString(event);\n\n if (formattedDate === PRESENT) {\n this.valueIsPresent = true;\n } else {\n this.valueIsPresent = false;\n }\n\n this.valueChange.emit(formattedDate);\n } else {\n // hack to avoid ngx-datepicker from putting \"invalid date\" in the input\n this.setValue(null);\n\n this.valueChange.emit(null);\n }\n\n this.change.emit();\n this.validChange.emit(this.valid);\n }, 0)\n }\n\n}","\n\n\n\n\n\n
\n \n \n \n \n
\n

{{message}}

\n
\n
\n\n
\n

\n \n {{ oldDate }}\n

\n
\n\n

\n\n
\n \n \n
\n\n","export enum ModalTypes {\n \"warning\" = \"WARNING\",\n \"danger\" = \"DANGER\"\n}\n\nexport class StepConfig {\n steps: Step[];\n}\n\nexport class Step {\n label: string;\n active: boolean;\n enabled: boolean;\n}","import { Component, Input, Output, EventEmitter } from \"@angular/core\";\n\ndeclare let acp: string;\n\n@Component({\n selector: \"boolean-field\",\n templateUrl: \"./boolean-field.component.html\",\n styleUrls: [\"./boolean-field.css\"]\n})\nexport class BooleanFieldComponent {\n\n @Input() value: boolean = false;\n @Output() public valueChange = new EventEmitter();\n\n @Input() localizeLabelKey: string = \"\"; // localization key used to localize in the component template\n @Input() label: string = \"\"; // raw string input\n\n @Input() disable: boolean = false;\n\n /* You can pass a function in with (change)='function()' */\n @Output() public change = new EventEmitter();\n\n // eslint-disable-next-line no-useless-constructor\n constructor() { }\n\n toggle(): void {\n if (!this.disable) {\n this.value = !this.value;\n\n this.valueChange.emit(this.value);\n this.change.emit(this.value);\n }\n }\n}","
\n
\n \n
\n \n \n \n
","import { Directive, ElementRef, HostListener, Input } from \"@angular/core\";\n\n@Directive({\n selector: \"[OnlyNumber]\"\n})\nexport class OnlyNumber {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private el: ElementRef) { }\n\n @Input() OnlyNumber: boolean;\n\n @HostListener(\"keydown\", [\"$event\"]) onKeyDown(event: any) {\n let e = event;\n if (this.OnlyNumber) {\n if ([46, 8, 9, 27, 13, 110, 190].indexOf(e.keyCode) !== -1 ||\n // Allow: Ctrl+A\n (e.keyCode === 65 && e.ctrlKey === true) ||\n // Allow: Ctrl+C\n (e.keyCode === 67 && e.ctrlKey === true) ||\n // Allow: Ctrl+X\n (e.keyCode === 88 && e.ctrlKey === true) ||\n // Allow: home, end, left, right\n (e.keyCode >= 35 && e.keyCode <= 39)) {\n // let it happen, don't do anything\n return;\n }\n // Ensure that it is a number and stop the keypress\n if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {\n e.preventDefault();\n }\n }\n }\n\n}\n","import { Directive, Input } from \"@angular/core\";\nimport { NG_VALIDATORS, Validator, ValidationErrors, FormGroup } from \"@angular/forms\";\n\n// custom validator to check that two fields match\nexport function MustMatch(controlName: string, matchingControlName: string) {\n return (formGroup: FormGroup) => {\n const control = formGroup.controls[controlName];\n const matchingControl = formGroup.controls[matchingControlName];\n\n // return null if controls haven't initialised yet\n if (!control || !matchingControl) {\n return null;\n }\n\n // return null if another validator has already found an error on the matchingControl\n if (matchingControl.errors && !matchingControl.errors.mustMatch) {\n return null;\n }\n\n // set error on matchingControl if validation fails\n if (control.value !== matchingControl.value) {\n matchingControl.setErrors({ mustMatch: true });\n } else {\n matchingControl.setErrors(null);\n }\n };\n}\n\n@Directive({\n selector: \"[mustMatch]\",\n providers: [{ provide: NG_VALIDATORS, useExisting: MustMatchDirective, multi: true }]\n})\nexport class MustMatchDirective implements Validator {\n\n @Input(\"mustMatch\") mustMatch: string[] = [];\n\n validate(formGroup: FormGroup): ValidationErrors {\n return MustMatch(this.mustMatch[0], this.mustMatch[1])(formGroup);\n }\n\n}\n","/* eslint-disable padded-blocks */\nexport class Profile {\n oid: string;\n username: string;\n password: string;\n firstName: string;\n lastName: string;\n email: string;\n changePassword?: boolean;\n phoneNumber?: string;\n altFirstName?: string;\n altLastName?: string;\n altPhoneNumber?: string;\n position?: string;\n department?: string;\n externalSystemOid?: string;\n}","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { formatNumber, ParsedNumber } from \"libphonenumber-js\";\n\n@Pipe({\n name: \"phone\"\n})\nexport class PhonePipe implements PipeTransform {\n\n transform(value: ParsedNumber, args?: string): any {\n if (!value) {\n return value;\n }\n\n return formatNumber({ country: \"US\", phone: value.toString() }, \"International\");\n }\n\n}\n","import { Input, Component, OnInit } from \"@angular/core\";\n\nimport { LocalizationService } from \"@shared/service\";\n\n@Component({\n\n selector: \"localize\",\n templateUrl: \"./localize.component.html\",\n styleUrls: []\n})\nexport class LocalizeComponent implements OnInit {\n\n @Input() key: string;\n @Input() params: { [key: string]: string } = null;\n\n text: string;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: LocalizationService) { }\n\n ngOnInit(): void {\n this.text = this.service.decode(this.key);\n\n if (this.params != null) {\n const keys = Object.keys(this.params);\n\n keys.forEach((key) => {\n if (this.params[key] != null) {\n this.text = this.text.replace(key, this.params[key]);\n }\n });\n }\n }\n\n}\n","","import { Component, OnInit } from \"@angular/core\";\n\nimport { EventService, IEventListener } from \"@shared/service\";\n\n@Component({\n\n selector: \"loading-bar\",\n templateUrl: \"./loading-bar.component.html\",\n styleUrls: [\"./loading-bar.css\"]\n})\nexport class LoadingBarComponent implements OnInit, IEventListener {\n\n showIndicator: boolean = false;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: EventService) { }\n\n ngOnInit(): void {\n this.service.registerListener(this);\n }\n\n ngOnDestroy(): void {\n this.service.deregisterListener(this);\n }\n\n start(): void {\n this.showIndicator = true;\n }\n\n complete(): void {\n this.showIndicator = false;\n }\n\n}\n","
\n\n
","import { Injectable } from \"@angular/core\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { User } from \"@shared/model/user\";\nimport { RoleBuilder, RegistryRole, RegistryRoleType, LocaleView } from \"@shared/model/core\";\n\n@Injectable()\nexport class AuthService {\n\n private user: User = {\n loggedIn: false,\n userName: \"\",\n roles: [],\n roleDisplayLabels: [],\n version: \"0\",\n installedLocales: []\n };\n\n constructor(private service: CookieService) {\n let cookie = service.get(\"user\");\n\n if (this.service.check(\"user\") && cookie != null && cookie.length > 0) {\n let cookieData: string = this.service.get(\"user\");\n let cookieDataJSON: any = JSON.parse(cookieData);\n\n this.buildFromCookieJson(cookieDataJSON);\n }\n\n this.loadLocales();\n }\n\n buildFromCookieJson(cookieDataJSON: any) {\n this.user.userName = cookieDataJSON.userName;\n this.buildRolesFromCookie(cookieDataJSON);\n this.user.loggedIn = cookieDataJSON.loggedIn;\n this.user.roleDisplayLabels = cookieDataJSON.roleDisplayLabels;\n this.user.version = cookieDataJSON.version.replaceAll(\"+\", \" \");\n // this.user.installedLocales = cookieDataJSON.installedLocales;\n }\n\n buildRolesFromCookie(cookieDataJSON: any) {\n this.user.roles = [];\n let roles: string[] = cookieDataJSON.roles;\n\n for (let i = 0; i < roles.length; ++i) {\n let role: RegistryRole = RoleBuilder.buildFromRoleName(roles[i]);\n\n if (role != null) {\n this.user.roles.push(role);\n }\n }\n }\n\n isLoggedIn(): boolean {\n return this.user.loggedIn;\n }\n\n afterLogIn(logInResponse: any): void {\n this.buildFromCookieJson(JSON.parse(this.service.get(\"user\")));\n\n this.setLocales(logInResponse.installedLocales);\n this.user.installedLocales = logInResponse.installedLocales;\n }\n\n afterLogOut(): void {\n this.user = null;\n sessionStorage.removeItem(\"locales\");\n }\n\n loadLocales() {\n let storageLocales = window.sessionStorage.getItem(\"locales\");\n\n if (storageLocales != null) {\n this.user.installedLocales = JSON.parse(storageLocales);\n }\n }\n\n setLocales(locales: LocaleView[]) {\n window.sessionStorage.setItem(\"locales\", JSON.stringify(locales));\n }\n\n removeUser(): void {\n this.user = {\n loggedIn: false,\n userName: \"\",\n roles: [],\n roleDisplayLabels: [],\n version: \"0\",\n installedLocales: []\n };\n }\n\n // Legacy Accessors:\n isAdmin(): boolean {\n return this.isSRA() || this.isRA();\n }\n\n isMaintainer(): boolean {\n return this.isSRA() || this.isRM();\n }\n\n isContributer(): boolean {\n return this.isSRA() || this.isRC(false);\n }\n\n isContributerOnly(): boolean {\n return this.isRC(true);\n }\n\n // Used to exactly identify a role. I.e. if we say we need RC, SRA doesn't count.\n hasExactRole(roleType: RegistryRoleType) {\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === roleType) {\n return true;\n }\n }\n\n return false;\n }\n\n isSRA(): boolean {\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === RegistryRoleType.SRA) {\n return true;\n }\n }\n\n return false;\n }\n\n isRA(): boolean {\n if (this.isSRA()) {\n return true;\n }\n\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === RegistryRoleType.RA) {\n return true;\n } else if (role.roleName.indexOf(\"commongeoregistry.RegistryAdministrator\") !== -1 || role.roleName.indexOf(\"cgr.RegistryAdministrator\") !== -1) {\n // Legacy support\n return true;\n }\n }\n }\n\n isRM(): boolean {\n if (this.isSRA()) {\n return true;\n }\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === RegistryRoleType.RM) {\n return true;\n } else if (role.roleName.indexOf(\"commongeoregistry.RegistryMaintainer\") !== -1 || role.roleName.indexOf(\"cgr.RegistryMaintainer\") !== -1) {\n // Legacy support\n return true;\n }\n }\n\n return false;\n }\n\n isOrganizationRA(orgCode: string): boolean {\n if (this.isSRA()) {\n return true;\n }\n\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.orgCode === orgCode && role.type === RegistryRoleType.RA) {\n return true;\n }\n }\n\n return false; // this.isSRA();\n }\n\n isGeoObjectTypeRM(orgCode: string, gotCode: string): boolean {\n if (this.isSRA()) {\n return true;\n }\n\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === RegistryRoleType.RM && role.orgCode === orgCode && role.geoObjectTypeCode === gotCode) {\n return true;\n }\n }\n\n return this.isOrganizationRA(orgCode);\n }\n\n isGeoObjectTypeOrSuperRM(got: { organizationCode: string, superTypeCode?: string, code: string }, allowRoleSuper: boolean = true): boolean {\n if (this.isGeoObjectTypeRM(got.organizationCode, got.code)) {\n return true;\n } else if (got.superTypeCode != null) {\n return this.isGeoObjectTypeRM(got.organizationCode, got.superTypeCode);\n }\n }\n\n isGeoObjectTypeRC(orgCode: string, gotCode: string): boolean {\n if (this.isSRA()) {\n return true;\n }\n\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === RegistryRoleType.RC && role.orgCode === orgCode && role.geoObjectTypeCode === gotCode) {\n return true;\n }\n }\n\n return this.isGeoObjectTypeRM(orgCode, gotCode);\n }\n\n isGeoObjectTypeOrSuperRC(got: { organizationCode: string, superTypeCode?: string, code: string }, allowRoleSuper: boolean = true): boolean {\n if (this.isGeoObjectTypeRC(got.organizationCode, got.code)) {\n return true;\n } else if (got.superTypeCode != null) {\n return this.isGeoObjectTypeRC(got.organizationCode, got.superTypeCode);\n }\n }\n\n isRC(isRCOnly: boolean): boolean {\n if (this.isSRA() && !isRCOnly) {\n return true;\n }\n\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === RegistryRoleType.RC) {\n return true;\n } else if (role.roleName.indexOf(\"commongeoregistry.RegistryContributor\") !== -1 || role.roleName.indexOf(\"cgr.RegistryContributor\") !== -1) {\n // Legacy support\n return true;\n }\n }\n\n return false;\n }\n\n // Returns all organization codes that the current user participates in.\n // If the user is an SRA then this method will return an empty string array.\n getMyOrganizations(): string[] {\n let orgCodes: string[] = [];\n\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === RegistryRoleType.SRA || role.type === RegistryRoleType.RC || role.type === RegistryRoleType.RM || role.type === RegistryRoleType.RA) {\n orgCodes.push(role.orgCode);\n }\n }\n\n return orgCodes;\n }\n\n __getRoleFromRoleName(roleName: string): string {\n let nameArr = roleName.split(\".\");\n\n return nameArr[nameArr.length - 1];\n }\n\n getUsername(): string {\n return this.user.userName;\n }\n\n getRoles(): any {\n return this.user.roles;\n }\n\n getRoleDisplayLabelsArray(): any {\n return this.user.roleDisplayLabels;\n }\n\n getRoleDisplayLabels(): string {\n let str = \"\";\n for (let i = 0; i < this.user.roleDisplayLabels.length; ++i) {\n let displayLabel = this.user.roleDisplayLabels[i];\n\n if (displayLabel === \"Administrator\") {\n continue;\n // It's OK to hardcode to a display label here because the end user can't change it anyway.\n // Is it ideal? No. But sometimes it's better to get software out quicker than to spend forever\n // on something that nobody will ever see.\n }\n\n str = str + displayLabel;\n\n if (i < this.user.roleDisplayLabels.length - 1) {\n str = str + \",\";\n }\n }\n\n return str;\n }\n\n getVersion(): string {\n return this.user.version;\n }\n\n getLocales(): LocaleView[] {\n return this.user.installedLocales;\n }\n\n addLocale(locale: LocaleView): void {\n let exists: boolean = false;\n\n for (let i = 0; i < this.user.installedLocales.length; ++i) {\n if (this.user.installedLocales[i].tag === locale.tag) {\n exists = true;\n this.user.installedLocales[i] = locale;\n }\n }\n\n if (!exists) {\n this.user.installedLocales.push(locale);\n }\n\n this.setLocales(this.user.installedLocales);\n }\n\n removeLocale(locale: LocaleView): void {\n for (let i = 0; i < this.user.installedLocales.length; ++i) {\n if (this.user.installedLocales[i].tag === locale.tag) {\n this.user.installedLocales.splice(i, 1);\n this.setLocales(this.user.installedLocales);\n return;\n }\n }\n\n // eslint-disable-next-line no-console\n console.log(\"Could not remove locale from array because we could not find it.\", locale, this.user.installedLocales);\n }\n\n}\n","import { Component, OnChanges, Input, SimpleChange } from \"@angular/core\";\n\n@Component({\n selector: \"password-strength-bar\",\n templateUrl: \"./password-strength-bar.component.html\",\n styleUrls: [\"./password-strength-bar.component.css\"]\n})\nexport class PasswordStrengthBarComponent implements OnChanges {\n\n @Input() passwordToCheck: string;\n bar0: string;\n bar1: string;\n bar2: string;\n bar3: string;\n bar4: string;\n\n private colors = [\"#F00\", \"#F90\", \"#FF0\", \"#9F0\", \"#0F0\"];\n\n private static measureStrength(pass: string) {\n let score = 0;\n // award every unique letter until 5 repetitions\n let letters = {};\n for (let i = 0; i < pass.length; i++) {\n letters[pass[i]] = (letters[pass[i]] || 0) + 1;\n score += 5.0 / letters[pass[i]];\n }\n // bonus points for mixing it up\n let variations = {\n digits: /\\d/.test(pass),\n lower: /[a-z]/.test(pass),\n upper: /[A-Z]/.test(pass),\n nonWords: /\\W/.test(pass)\n };\n\n let variationCount = 0;\n for (let check in variations) {\n variationCount += (variations[check]) ? 1 : 0;\n }\n score += (variationCount - 1) * 10;\n return Math.trunc(score);\n }\n\n private getColor(score: number) {\n let idx = 0;\n if (score > 90) {\n idx = 4;\n } else if (score > 70) {\n idx = 3;\n } else if (score >= 40) {\n idx = 2;\n } else if (score >= 20) {\n idx = 1;\n }\n return {\n idx: idx + 1,\n col: this.colors[idx]\n };\n }\n\n ngOnChanges(changes: { [propName: string]: SimpleChange }): void {\n let password = changes[\"passwordToCheck\"].currentValue;\n this.setBarColors(5, \"#DDD\");\n if (password) {\n let c = this.getColor(PasswordStrengthBarComponent.measureStrength(password));\n this.setBarColors(c.idx, c.col);\n }\n }\n\n private setBarColors(count, col) {\n for (let _n = 0; _n < count; _n++) {\n this[\"bar\" + _n] = col;\n }\n }\n\n}\n","
\n
    \n
  • \n
  • \n
  • \n
  • \n
  • \n
\n
\n","import { Component, OnInit } from \"@angular/core\";\n\nimport { EventService, IEventListener } from \"@shared/service\";\n\n@Component({\n\n selector: \"message\",\n templateUrl: \"./message.component.html\",\n styles: [\n \".error-container { text-align: center; border-width: 1px; border-color: #8c0000; border-style: solid; color: #8c0000; font-size: 17px; background: white;}\",\n \".message-container { text-align: center; border-width: 1px; border-color: #106828; border-style: solid; margin-left: 10%; margin-right: 10%; color: #106828; }\"\n ]\n})\nexport class MessageComponent implements OnInit, IEventListener {\n\n error: any = null;\n\n message: string = \"\";\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: EventService) { }\n\n ngOnInit(): void {\n this.service.registerListener(this);\n }\n\n ngOnDestroy(): void {\n this.service.deregisterListener(this);\n }\n\n start(): void {\n this.error = null;\n }\n\n complete(): void {\n }\n\n onError(error: any): void {\n this.error = error;\n }\n\n onMessage(msg: string): void {\n this.message = msg;\n }\n\n}\n","\n
\n
\n
\n \n
\n
\n
\n

{{message}}

\n
\n
\n
\n
\n
\n \n
\n
\n
\n

{{error.localizedMessage}}

\n

\n
\n
\n
\n
\n"],"sourceRoot":""} \ No newline at end of file diff --git a/georegistry-web/src/main/webapp/dist/1.chunk.js b/georegistry-web/src/main/webapp/dist/1.chunk.js index db50d846f..0214a5a45 100644 --- a/georegistry-web/src/main/webapp/dist/1.chunk.js +++ b/georegistry-web/src/main/webapp/dist/1.chunk.js @@ -1,2 +1,2 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{264:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GeometryService=void 0;var r=n(0),i=n(273),o=n(263),a=n(0),l=function(){function e(){this.layers=[],this.editingControl=null,this.simpleEditControl=null,this.geometryChange=new r.EventEmitter}return e.prototype.ngOnInit=function(){var e=this;window.onbeforeunload=function(){return e.destroy()}},e.prototype.initialize=function(e,t,n){var r=this;this.map=e,this.geometryType=t,this.addLayers(),this.map.on("draw.create",(function(){r.saveEdits()})),this.map.on("draw.delete",(function(){r.saveEdits()})),this.map.on("draw.update",(function(){r.saveEdits()}))},e.prototype.destroy=function(e){void 0===e&&(e=!0),null!=this.editingControl&&(this.map.removeControl(this.editingControl),this.editingControl=null),null!=this.map&&e?(this.map.remove(),this.map=null):null!=this.map&&this.removeLayers(),null!=this.layers&&this.layers.forEach((function(e){e.isEditing=!1,e.isRendering=!1})),this.editingLayer=null,this.layers=[]},e.prototype.startEditing=function(e){this.isEditing()&&this.stopEditing(),this.editingLayer=e,this.editingLayer.isEditing=!0,this.readOnly||this.enableEditing(),this.addEditingLayers()},e.prototype.stopEditing=function(e){void 0===e&&(e=!0),this.isEditing()&&(this.saveEdits(e),this.editingLayer.isEditing=!1,this.editingLayer=null,this.editingControl.deleteAll(),this.map.removeControl(this.editingControl),this.editingControl=null)},e.prototype.isEditing=function(){return null!=this.editingLayer},e.prototype.setPointCoordinates=function(e,t){null!=this.editingLayer&&(this.editingControl.set({type:"FeatureCollection",features:[{id:this.editingLayer.oid,type:"Feature",properties:{},geometry:{type:"Point",coordinates:[t,e]}}]}),this.editingControl.changeMode("simple_select",{featureIds:this.editingLayer.oid}),this.saveEdits())},e.prototype.isValid=function(){if(!this.readOnly){var e=!1;if(null!=this.editingControl)this.editingControl.getAll().features.length>0&&(e=!0);return e}return!0},e.prototype.saveEdits=function(e){if(void 0===e&&(e=!0),null!=this.editingLayer){var t=this.getDrawGeometry();this.editingLayer.editPropagator.value=t,e&&(this.removeLayers(),this.addLayers())}},e.prototype.reload=function(){null!=this.map&&(this.removeLayers(),this.addLayers(),null!=this.editingControl&&this.editingControl.deleteAll(),this.addEditingLayers())},e.prototype.setEditing=function(e,t){this.isEditing()&&this.stopEditing(),t.isEditing=e,e&&this.startEditing(t)},e.prototype.setRendering=function(e,t){t.isRendering=e,this.addLayer(t)},e.prototype.addLayer=function(e){var t=this.layers.findIndex((function(t){return t.oid===e.oid}));-1!==t?(this.layers.splice(t,1),this.layers.push(e)):this.layers.push(e),e.isEditing&&this.startEditing(e),this.layers=this.layers.sort((function(e,t){return e.zindex-t.zindex})),this.removeLayers(),this.addLayers()},e.prototype.getLayers=function(){return this.layers},e.prototype.getRenderedLayers=function(){return this.layers.filter((function(e){return e.isRendering}))},e.prototype.setLayers=function(e){this.removeLayers(),this.layers=e.sort((function(e,t){return e.zindex-t.zindex})),this.addLayers()},e.prototype.enableEditing=function(){null==this.editingControl&&("MULTIPOLYGON"===this.geometryType||"POLYGON"===this.geometryType?this.editingControl=new i.default({controls:{point:!1,line_string:!1,polygon:!0,trash:!0,combine_features:!1,uncombine_features:!1}}):"POINT"===this.geometryType||"MULTIPOINT"===this.geometryType?this.editingControl=new i.default({userProperties:!0,controls:{point:!0,line_string:!1,polygon:!1,trash:!0,combine_features:!1,uncombine_features:!1},styles:[{id:"highlight-active-points",type:"circle",filter:["all",["==","$type","Point"],["==","meta","feature"],["==","active","true"]],paint:{"circle-radius":13,"circle-color":"#33FFF9","circle-stroke-width":4,"circle-stroke-color":"white"}},{id:"points-are-blue",type:"circle",filter:["all",["==","$type","Point"],["==","meta","feature"],["==","active","false"]],paint:{"circle-radius":10,"circle-color":"#800000","circle-stroke-width":2,"circle-stroke-color":"white"}}]}):"LINE"!==this.geometryType&&"MULTILINE"!==this.geometryType||(this.editingControl=new i.default({controls:{point:!1,line_string:!0,polygon:!1,trash:!0,combine_features:!1,uncombine_features:!1}})),null==this.map.getSource("mapbox-gl-draw-cold")&&this.map.addControl(this.editingControl))},e.prototype.addEditingLayers=function(){null!=this.editingLayer&&null!=this.editingControl&&(this.editingLayer.editPropagator.value&&this.editingControl.add(this.editingLayer.editPropagator.value))},e.prototype.removeSource=function(e){if(this.map){var t=e+"-geoobject";"MULTIPOLYGON"===this.geometryType||"POLYGON"===this.geometryType?null!=this.map.getLayer(t+"-polygon")&&this.map.removeLayer(t+"-polygon"):"POINT"===this.geometryType||"MULTIPOINT"===this.geometryType?null!=this.map.getLayer(t+"-point")&&this.map.removeLayer(t+"-point"):"LINE"!==this.geometryType&&"MultiLine"!==this.geometryType||null!=this.map.getLayer(t+"-line")&&this.map.removeLayer(t+"-line"),null!=this.map.getSource(t)&&this.map.removeSource(t)}},e.prototype.removeLayers=function(){if(null!=this.layers&&this.layers.length>0)for(var e=this.layers.length,t=0;t0)for(var e=this.layers.length,t=0;t0){if("MULTIPOLYGON"===this.geometryType){for(var t=[],n=0;n0){var n=t[0];return null==n.startDate||null==n.endDate||void 0===n.value||null===n.value}}return e&&!this.readOnly},e.prototype.getAttribute=function(e){if("_PARENT_"===e)return this.parentAttributeType;if("geometry"===e)return this.geometryAttributeType;for(var t=0;t0)for(var n=0;n span[_ngcontent-%COMP%] > i.fa.fa-cog[_ngcontent-%COMP%] {\n\tfont-size: 15px;\n}\n\n.full-width-radio-button[_ngcontent-%COMP%] .errorSpan[_ngcontent-%COMP%] {\n display: inline-block;\n position: relative;\n}\n\n.full-width-radio-button[_ngcontent-%COMP%] .changeSpan[_ngcontent-%COMP%] {\n right: 2.5px;\n}\n\n.full-width-radio-button[_ngcontent-%COMP%] .tabHasErrors[_ngcontent-%COMP%]:before {\n content: \' \\25CF\';\n font-size: 20px;\n line-height:12px;\n text-align: left;\n color: red;\n}\n\n.full-width-radio-button[_ngcontent-%COMP%] .tabHasChanges[_ngcontent-%COMP%]:after {\n\tcontent: \' \\25CF\';\n font-size: 20px;\n line-height:12px;\n text-align: right;\n color: orange;\n}\n\nli.list-group-item[_ngcontent-%COMP%] {\n font-size: 18px;\n}\n\n.warning-text[_ngcontent-%COMP%]{\n color: orange;\n}\n\n\nform.modal-form[_ngcontent-%COMP%] {\n overflow: visible;\n}\n\nfieldset[_ngcontent-%COMP%] {\n width: 100% !important;\n}\n\n\n.panel[_ngcontent-%COMP%] {\n\n}\n\n.panel[_ngcontent-%COMP%] .list-group[_ngcontent-%COMP%] {\n\tmargin: 0;\n}\n\n.panel[_ngcontent-%COMP%] .list-group-item[_ngcontent-%COMP%] {\n\tpadding: 5px 0;\n}\n\n.panel-heading[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n\tmargin:0;\n}\n\n.input-group[_ngcontent-%COMP%] {\n\twidth: 100%;\n}\n\n.radio-group[_ngcontent-%COMP%] {\n\tborder: solid 1px #ccc;\n\tborder-radius: 5px 0 0 5px;\n\tline-height: 40px;\n}\n\n\n .input-group input[type="text"], .input-group[_ngcontent-%COMP%] input[type="number"][_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] input[type="date"][_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] select[_ngcontent-%COMP%] {\n\tborder-radius: 5px 0 0 5px;\n\twidth: 100%;\n}\n.input-group[_ngcontent-%COMP%] input[type="text"].input-group-read-only[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] input[type="number"].input-group-read-only[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] input[type="date"].input-group-read-only[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] select.input-group-read-only[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] .radio-group.input-group-read-only[_ngcontent-%COMP%] {\n\tborder-radius: 5px; \n}\n\n.geoobject-panel-header[_ngcontent-%COMP%]{\n\theight: 50px;\n width: 100%;\n background: grey;\n}'],data:{animation:[[o.trigger("fadeInOut",[o.transition(":enter",[o.style({opacity:0}),o.animate("500ms")]),o.transition(":leave",o.animate("500ms",o.style({opacity:0})))]),o.trigger("slide",[o.state("left",o.style({left:0})),o.state("right",o.style({left:"100%"})),o.transition("* => *",o.animate(200))])]]}}),e}();t.GeoObjectSharedAttributeEditorComponent=W,("undefined"==typeof ngDevMode||ngDevMode)&&m.ɵsetClassMetadata(W,[{type:r.Component,args:[{selector:"geoobject-shared-attribute-editor",templateUrl:"./geoobject-shared-attribute-editor.component.html",styleUrls:["./geoobject-shared-attribute-editor.css"],providers:[i.DatePipe],animations:[[o.trigger("fadeInOut",[o.transition(":enter",[o.style({opacity:0}),o.animate("500ms")]),o.transition(":leave",o.animate("500ms",o.style({opacity:0})))]),o.trigger("slide",[o.state("left",o.style({left:0})),o.state("right",o.style({left:"100%"})),o.transition("* => *",o.animate(200))])]]}]}],(function(){return[{type:u.LocalizationService},{type:g.GeometryService},{type:u.AuthService},{type:h.DateService}]}),{postGeoObject:[{type:r.Input}],geoObjectType:[{type:r.Input}],attributeExcludes:[{type:r.Input}],readOnly:[{type:r.Input}],isNew:[{type:r.Input}],isGeometryInlined:[{type:r.Input}],changeRequest:[{type:r.Input}],hierarchies:[{type:r.Input}],filterDate:[{type:r.Input}],forDate:[{type:r.Input}],datasetId:[{type:r.Input}],attributeForm:[{type:r.ViewChild,args:["attributeForm"]}],manageVersions:[{type:r.ViewChildren,args:[p.ManageVersionsComponent]}]})},528:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LocalizedTextComponent=void 0;var r=n(0),i=(n(153),n(0)),o=n(1),a=n(68),l=n(259),s=n(22),c=function(e,t){return{row:e,"row-holder":t}},d=function(e){return{"col-md-12":e}},p=function(e){return{"label-holder":e}},m=function(e){return{holder:e}};function u(e,t){if(1&e&&(i.ɵɵelementStart(0,"div"),i.ɵɵelementStart(1,"div",1),i.ɵɵelementStart(2,"div",1),i.ɵɵelementStart(3,"div",2),i.ɵɵelementStart(4,"div",1),i.ɵɵelementStart(5,"label"),i.ɵɵelement(6,"localize",3),i.ɵɵelementStart(7,"span",4),i.ɵɵtext(8," ("),i.ɵɵelement(9,"convert-key-label",3),i.ɵɵtext(10,")"),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(11,"div",1),i.ɵɵelementStart(12,"span",5),i.ɵɵelementStart(13,"textarea",6),i.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.value=e})),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd()),2&e){var n=t.$implicit,r=i.ɵɵnextContext();i.ɵɵadvance(1),i.ɵɵproperty("ngClass",i.ɵɵpureFunction2(9,c,r.inlinelayout,!r.inlinelayout)),i.ɵɵadvance(1),i.ɵɵproperty("ngClass",i.ɵɵpureFunction1(12,d,r.inlinelayout)),i.ɵɵadvance(2),i.ɵɵproperty("ngClass",i.ɵɵpureFunction1(14,p,!r.inlinelayout)),i.ɵɵadvance(2),i.ɵɵproperty("key",r.key),i.ɵɵadvance(3),i.ɵɵproperty("key",n.locale),i.ɵɵadvance(2),i.ɵɵproperty("ngClass",i.ɵɵpureFunction1(16,m,!r.inlinelayout)),i.ɵɵadvance(2),i.ɵɵproperty("ngModel",n.value)("disabled",r.disabled)("name","description-"+n.locale)}}var g=function(){function e(){this.key="",this.disabled=!1,this.inlinelayout=!1,this.valueChange=new r.EventEmitter}return e.ɵfac=function(t){return new(t||e)},e.ɵcmp=i.ɵɵdefineComponent({type:e,selectors:[["localized-text"]],inputs:{key:"key",value:"value",disabled:"disabled",inlinelayout:"inlinelayout"},outputs:{valueChange:"valueChange"},decls:1,vars:1,consts:[[4,"ngFor","ngForOf"],[3,"ngClass"],[1,"form-group"],[3,"key"],[2,"color","#BABABA"],[1,"text"],[3,"ngModel","disabled","name","ngModelChange"]],template:function(e,t){1&e&&i.ɵɵtemplate(0,u,14,18,"div",0),2&e&&i.ɵɵproperty("ngForOf",t.value.localeValues)},directives:[o.NgForOf,o.NgClass,a.LocalizeComponent,l.ConvertKeyLabel,s.DefaultValueAccessor,s.NgControlStatus,s.NgModel],styles:["textarea[_ngcontent-%COMP%] {\n\twidth: 100%;\n border-radius: 5px;\n min-height: 70px;\n}"]}),e}();t.LocalizedTextComponent=g,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(g,[{type:r.Component,args:[{selector:"localized-text",templateUrl:"./localized-text.component.html",styleUrls:["./localized-text.css"]}]}],(function(){return[]}),{key:[{type:r.Input}],value:[{type:r.Input}],disabled:[{type:r.Input}],inlinelayout:[{type:r.Input}],valueChange:[{type:r.Output}]})},529:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GeoObjectTypeManagementService=void 0;var r=n(0),i=n(31),o=n(0),a=function(){function e(){this.modalStateChangedSource=new i.Subject,this.modalStepChange=this.modalStateChangedSource.asObservable()}return e.prototype.getModalState=function(){return this.modalState},e.prototype.setModalState=function(e){this.modalState=e,this.modalStateChangedSource.next(this.modalState)},e.ɵfac=function(t){return new(t||e)},e.ɵprov=o.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.GeoObjectTypeManagementService=a,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(a,[{type:r.Injectable}],(function(){return[]}),null)},530:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AttributeInputComponent=void 0;var r=n(0),i=n(7),o=(n(203),n(519),n(0)),a=n(519),l=n(68),s=n(22),c=n(575),d=n(533),p=n(1),m=n(528),u=n(265);function g(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"localized-text",9),o.ɵɵlistener("valueChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext().attribute.description=e})),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext();o.ɵɵproperty("value",r.attribute.description)}}function h(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",0),o.ɵɵelementStart(1,"div",1),o.ɵɵelementStart(2,"label"),o.ɵɵelement(3,"localize",10),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(4,"div",3),o.ɵɵelementStart(5,"span",4),o.ɵɵelementStart(6,"input",11),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext().attribute.precision=e})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext();o.ɵɵadvance(6),o.ɵɵproperty("ngModel",r.attribute.precision)}}function f(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",0),o.ɵɵelementStart(1,"div",1),o.ɵɵelementStart(2,"label"),o.ɵɵelement(3,"localize",12),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(4,"div",3),o.ɵɵelementStart(5,"span",4),o.ɵɵelementStart(6,"input",13),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext().attribute.scale=e})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext();o.ɵɵadvance(6),o.ɵɵproperty("ngModel",r.attribute.scale)}}var y=function(){function e(e,t){this.hierarchyService=e,this.cdr=t,this.disableCodeField=!1,this.excludeDescription=!1,this.isDecimal=!1,this.attributeChange=new r.EventEmitter,this.message=null,this.state="none"}return e.prototype.ngOnInit=function(){},e.prototype.ngAfterViewInit=function(){this.state="show",this.cdr.detectChanges()},e.prototype.ngOnChanges=function(){},e.prototype.ngOnDestroy=function(){},e.prototype.handleOnSubmit=function(){},e.prototype.toggleIsUnique=function(){this.attribute.unique=!this.attribute.unique},e.prototype.animate=function(){this.state="none"},e.prototype.onAnimationDone=function(e){this.state="show"},e.prototype.isValid=function(){return!!this.attribute.code&&(-1===this.attribute.code.indexOf(" ")&&(0!==this.attribute.label.localeValues[0].value.length&&((!this.isDecimal||null!=this.attribute.precision&&""!=this.attribute.precision.toString())&&(!this.isDecimal||null!=this.attribute.scale&&""!=this.attribute.scale.toString()))))},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.HierarchyService),o.ɵɵdirectiveInject(o.ChangeDetectorRef))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["attribute-input"]],inputs:{disableCodeField:"disableCodeField",excludeDescription:"excludeDescription",isDecimal:"isDecimal",geoObjectType:"geoObjectType",attribute:"attribute"},outputs:{attributeChange:"attributeChange"},features:[o.ɵɵNgOnChangesFeature],decls:12,vars:6,consts:[[1,"row-holder"],[1,"label-holder"],["key","data.property.label.code"],[1,"holder"],[1,"text"],["autofocus","","type","text","name","code","required","","geoObjectAttributeCode","",3,"disabled","ngModel","ngModelChange"],["key","data.property.label.label",3,"value","valueChange"],["key","data.property.label.description",3,"value","valueChange",4,"ngIf"],["class","row-holder",4,"ngIf"],["key","data.property.label.description",3,"value","valueChange"],["key","data.property.label.length"],["type","text","name","precision","OnlyNumber","true","required","",3,"ngModel","ngModelChange"],["key","data.property.label.decimal"],["type","text","name","scale","OnlyNumber","true","required","",3,"ngModel","ngModelChange"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div"),o.ɵɵelementStart(1,"div",0),o.ɵɵelementStart(2,"div",1),o.ɵɵelementStart(3,"label"),o.ɵɵelement(4,"localize",2),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(5,"div",3),o.ɵɵelementStart(6,"span",4),o.ɵɵelementStart(7,"input",5),o.ɵɵlistener("ngModelChange",(function(e){return t.attribute.code=e})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(8,"localized-input",6),o.ɵɵlistener("valueChange",(function(e){return t.attribute.label=e})),o.ɵɵelementEnd(),o.ɵɵtemplate(9,g,1,1,"localized-text",7),o.ɵɵtemplate(10,h,7,1,"div",8),o.ɵɵtemplate(11,f,7,1,"div",8),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(7),o.ɵɵproperty("disabled",t.disableCodeField)("ngModel",t.attribute.code),o.ɵɵadvance(1),o.ɵɵproperty("value",t.attribute.label),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",!t.excludeDescription),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",t.isDecimal),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",t.isDecimal))},directives:[l.LocalizeComponent,s.DefaultValueAccessor,s.RequiredValidator,c.GeoObjectAttributeCodeValidator,s.NgControlStatus,s.NgModel,d.LocalizedInputComponent,p.NgIf,m.LocalizedTextComponent,u.OnlyNumber],styles:['input[type="text"][_ngcontent-%COMP%] {\n margin: 2px 0 2px 0 !important;\n float: none !important;\n}\n\nbutton[_ngcontent-%COMP%] {\n margin-top: 5px;\n float: right;\n}\n\nlabel[_ngcontent-%COMP%] {\n color: #999;\n font-weight: bold;\n}'],data:{animation:[i.trigger("toggleInputs",[i.state("none, void",i.style({opacity:0})),i.state("show",i.style({opacity:1})),i.transition("none => show",i.animate("300ms"))])]}}),e}();t.AttributeInputComponent=y,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(y,[{type:r.Component,args:[{selector:"attribute-input",templateUrl:"./attribute-input.component.html",styleUrls:["./attribute-input.css"],animations:[i.trigger("toggleInputs",[i.state("none, void",i.style({opacity:0})),i.state("show",i.style({opacity:1})),i.transition("none => show",i.animate("300ms"))])]}]}],(function(){return[{type:a.HierarchyService},{type:o.ChangeDetectorRef}]}),{disableCodeField:[{type:r.Input}],excludeDescription:[{type:r.Input}],isDecimal:[{type:r.Input}],geoObjectType:[{type:r.Input}],attribute:[{type:r.Input}],attributeChange:[{type:r.Output}]})},531:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PublishModalComponent=void 0;var r=n(0),i=(n(30),n(31)),o=(n(519),n(112),n(111)),a=(n(16),n(0)),l=n(519),s=n(16),c=n(30),d=n(112),p=n(1),m=n(22),u=n(68),g=n(259),h=n(260);function f(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",50),a.ɵɵtext(1),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵtextInterpolate(n.message)}}function y(e,t){1&e&&(a.ɵɵelementStart(0,"h1"),a.ɵɵelement(1,"localize",51),a.ɵɵelementEnd())}function v(e,t){if(1&e&&(a.ɵɵelementStart(0,"h1"),a.ɵɵtext(1),a.ɵɵelement(2,"localize",52),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵtextInterpolate1(" ",n.master.displayLabel.localizedValue," ")}}function b(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",8),a.ɵɵelementStart(1,"div",9),a.ɵɵelementStart(2,"label"),a.ɵɵelement(3,"localize",53),a.ɵɵelementStart(4,"span",54),a.ɵɵtext(5," ("),a.ɵɵelement(6,"convert-key-label",48),a.ɵɵtext(7,")"),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"div",11),a.ɵɵelementStart(9,"input",55),a.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.value=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=t.$implicit,r=a.ɵɵnextContext();a.ɵɵadvance(6),a.ɵɵproperty("key",n.locale),a.ɵɵadvance(3),a.ɵɵproperty("ngModel",n.value)("name","label-"+n.locale)("disabled",r.readonly)("required","defaultLocale"===n.locale)}}function S(e,t){if(1&e&&(a.ɵɵelementStart(0,"option",60),a.ɵɵtext(1),a.ɵɵelementEnd()),2&e){var n=t.$implicit;a.ɵɵproperty("value",n.code),a.ɵɵadvance(1),a.ɵɵtextInterpolate(n.label)}}function C(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",8),a.ɵɵelementStart(1,"div",9),a.ɵɵelementStart(2,"label",56),a.ɵɵelement(3,"localize",57),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(4,"div",11),a.ɵɵelementStart(5,"select",58),a.ɵɵlistener("ngModelChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().master.typeCode=e}))("change",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().onChange()})),a.ɵɵelement(6,"option"),a.ɵɵtemplate(7,S,2,2,"option",59),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext();a.ɵɵadvance(5),a.ɵɵproperty("ngModel",r.master.typeCode),a.ɵɵadvance(2),a.ɵɵproperty("ngForOf",r.types)}}function E(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",8),a.ɵɵelementStart(1,"div",9),a.ɵɵelementStart(2,"label",56),a.ɵɵelement(3,"localize",57),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(4,"div",11),a.ɵɵelementStart(5,"input",61),a.ɵɵlistener("ngModelChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().master.typeLabel.localizedValue=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext();a.ɵɵadvance(5),a.ɵɵproperty("ngModel",r.master.typeLabel.localizedValue)}}function x(e,t){1&e&&(a.ɵɵelementStart(0,"small",62),a.ɵɵelement(1,"localize",63),a.ɵɵelementEnd())}function O(e,t){if(1&e&&(a.ɵɵelementStart(0,"span",64),a.ɵɵtext(1),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵtextInterpolate1(" ",n.formatDate(n.master.publishingStartDate)," ")}}var I=function(){return["form-control"]};function w(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"date-field",65),a.ɵɵlistener("valueChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().master.publishingStartDate=e})),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext();a.ɵɵproperty("value",r.master.publishingStartDate)("classNames",a.ɵɵpureFunction0(6,I))("inputName","publishingStartDate")("allowFutureDates",!1)("required",!1)("disable",r.readonly)}}function M(e,t){1&e&&(a.ɵɵelementStart(0,"small",62),a.ɵɵelement(1,"localize",63),a.ɵɵelementEnd())}function T(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",8),a.ɵɵelementStart(1,"div",9),a.ɵɵelementStart(2,"label"),a.ɵɵelement(3,"localize",66),a.ɵɵelementStart(4,"span",54),a.ɵɵtext(5," ("),a.ɵɵelement(6,"convert-key-label",48),a.ɵɵtext(7,")"),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"div",11),a.ɵɵelementStart(9,"textarea",67),a.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.value=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=t.$implicit,r=a.ɵɵnextContext();a.ɵɵadvance(6),a.ɵɵproperty("key",n.locale),a.ɵɵadvance(3),a.ɵɵproperty("ngModel",n.value)("disabled",r.readonly)("required",!1)}}function j(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",8),a.ɵɵelementStart(1,"div",9),a.ɵɵelementStart(2,"label"),a.ɵɵelement(3,"localize",68),a.ɵɵelementStart(4,"span",54),a.ɵɵtext(5," ("),a.ɵɵelement(6,"convert-key-label",48),a.ɵɵtext(7,")"),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"div",11),a.ɵɵelementStart(9,"textarea",69),a.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.value=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=t.$implicit,r=a.ɵɵnextContext();a.ɵɵadvance(6),a.ɵɵproperty("key",n.locale),a.ɵɵadvance(3),a.ɵɵproperty("ngModel",n.value)("disabled",r.readonly)("required",!1)}}function k(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",8),a.ɵɵelementStart(1,"div",9),a.ɵɵelementStart(2,"label"),a.ɵɵelement(3,"localize",70),a.ɵɵelementStart(4,"span",54),a.ɵɵtext(5," ("),a.ɵɵelement(6,"convert-key-label",48),a.ɵɵtext(7,")"),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"div",11),a.ɵɵelementStart(9,"input",55),a.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.value=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=t.$implicit,r=a.ɵɵnextContext();a.ɵɵadvance(6),a.ɵɵproperty("key",n.locale),a.ɵɵadvance(3),a.ɵɵproperty("ngModel",n.value)("name","progress-"+n.locale)("disabled",r.readonly)("required",!1)}}function z(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",8),a.ɵɵelementStart(1,"div",9),a.ɵɵelementStart(2,"label"),a.ɵɵelement(3,"localize",71),a.ɵɵelementStart(4,"span",54),a.ɵɵtext(5," ("),a.ɵɵelement(6,"convert-key-label",48),a.ɵɵtext(7,")"),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"div",11),a.ɵɵelementStart(9,"input",55),a.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.value=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=t.$implicit,r=a.ɵɵnextContext();a.ɵɵadvance(6),a.ɵɵproperty("key",n.locale),a.ɵɵadvance(3),a.ɵɵproperty("ngModel",n.value)("name","accessConstraints-"+n.locale)("disabled",r.readonly)("required",!1)}}function D(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",8),a.ɵɵelementStart(1,"div",9),a.ɵɵelementStart(2,"label"),a.ɵɵelement(3,"localize",72),a.ɵɵelementStart(4,"span",54),a.ɵɵtext(5," ("),a.ɵɵelement(6,"convert-key-label",48),a.ɵɵtext(7,")"),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"div",11),a.ɵɵelementStart(9,"input",55),a.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.value=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=t.$implicit,r=a.ɵɵnextContext();a.ɵɵadvance(6),a.ɵɵproperty("key",n.locale),a.ɵɵadvance(3),a.ɵɵproperty("ngModel",n.value)("name","useConstraints-"+n.locale)("disabled",r.readonly)("required",!1)}}function R(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",8),a.ɵɵelementStart(1,"div",9),a.ɵɵelementStart(2,"label"),a.ɵɵelement(3,"localize",73),a.ɵɵelementStart(4,"span",54),a.ɵɵtext(5," ("),a.ɵɵelement(6,"convert-key-label",48),a.ɵɵtext(7,")"),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"div",11),a.ɵɵelementStart(9,"textarea",74),a.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.value=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=t.$implicit,r=a.ɵɵnextContext();a.ɵɵadvance(6),a.ɵɵproperty("key",n.locale),a.ɵɵadvance(3),a.ɵɵproperty("ngModel",n.value)("disabled",r.readonly)("required",!1)}}function P(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",8),a.ɵɵelementStart(1,"div",9),a.ɵɵelementStart(2,"label"),a.ɵɵelement(3,"localize",75),a.ɵɵelementStart(4,"span",54),a.ɵɵtext(5," ("),a.ɵɵelement(6,"convert-key-label",48),a.ɵɵtext(7,")"),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"div",11),a.ɵɵelementStart(9,"textarea",76),a.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.value=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=t.$implicit,r=a.ɵɵnextContext();a.ɵɵadvance(6),a.ɵɵproperty("key",n.locale),a.ɵɵadvance(3),a.ɵɵproperty("ngModel",n.value)("disabled",r.readonly)("required",!1)}}function A(e,t){1&e&&(a.ɵɵelementStart(0,"div",8),a.ɵɵelement(1,"div",9),a.ɵɵelementStart(2,"div",11),a.ɵɵelement(3,"localize",77),a.ɵɵelementEnd(),a.ɵɵelementEnd())}var V=function(e,t){return{"chk-checked":e,disabled:t}};function N(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",35),a.ɵɵelementStart(1,"div",36),a.ɵɵelementStart(2,"div",79),a.ɵɵlistener("click",(function(e){a.ɵɵrestoreView(n);var r=t.$implicit;return a.ɵɵnextContext(2).getIsDisabled(e)?null:r.selected=!r.selected})),a.ɵɵelement(3,"span"),a.ɵɵelementEnd(),a.ɵɵelementStart(4,"label",80),a.ɵɵtext(5),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=a.ɵɵnextContext(2);a.ɵɵadvance(2),a.ɵɵproperty("ngClass",a.ɵɵpureFunction2(2,V,r.selected,i.readonly||i.edit)),a.ɵɵadvance(3),a.ɵɵtextInterpolate(r.label)}}function L(e,t){if(1&e&&(a.ɵɵelementStart(0,"div"),a.ɵɵelementStart(1,"div",8),a.ɵɵelementStart(2,"div",9),a.ɵɵelementStart(3,"label"),a.ɵɵtext(4),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(5,"div",11),a.ɵɵtemplate(6,N,6,5,"div",78),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=t.$implicit;a.ɵɵadvance(4),a.ɵɵtextInterpolate1(" ",n.label," "),a.ɵɵadvance(2),a.ɵɵproperty("ngForOf",n.parents)}}function _(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",35),a.ɵɵelementStart(1,"div",36),a.ɵɵelementStart(2,"div",79),a.ɵɵlistener("click",(function(e){a.ɵɵrestoreView(n);var r=t.$implicit;return a.ɵɵnextContext(2).getIsDisabled(e)?null:r.selected=!r.selected})),a.ɵɵelement(3,"span"),a.ɵɵelementEnd(),a.ɵɵelementStart(4,"label",80),a.ɵɵtext(5),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=a.ɵɵnextContext(2);a.ɵɵadvance(2),a.ɵɵproperty("ngClass",a.ɵɵpureFunction2(2,V,r.selected,i.readonly||i.edit)),a.ɵɵadvance(3),a.ɵɵtextInterpolate(r.label)}}function F(e,t){if(1&e&&(a.ɵɵelementStart(0,"div"),a.ɵɵelementStart(1,"div",8),a.ɵɵelementStart(2,"div",9),a.ɵɵelementStart(3,"label"),a.ɵɵelement(4,"localize",81),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(5,"div",11),a.ɵɵtemplate(6,_,6,5,"div",78),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(6),a.ɵɵproperty("ngForOf",n.master.subtypeHierarchies)}}function H(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"button",82),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().onSubmit()})),a.ɵɵelement(1,"localize",83),a.ɵɵelementEnd()}if(2&e){a.ɵɵnextContext();var r=a.ɵɵreference(6);a.ɵɵproperty("disabled",r.invalid)}}var G=function(){function e(e,t,n,r,i,o){this.service=e,this.iService=t,this.lService=n,this.bsModalRef=r,this.authService=i,this.dateService=o,this.currentDate=new Date,this.message=null,this.readonly=!1,this.edit=!1,this.isNew=!1,this.originalPublishStartDate=null}return e.prototype.ngOnInit=function(){var e=this;this.onMasterListChange=new i.Subject,this.master&&this.readonly||(this.iService.listGeoObjectTypes(!0).then((function(t){for(var n=[],r=0;r0?(this.iService.getHierarchiesForType(this.master.typeCode,!0).then((function(t){e.master.hierarchies=t})).catch((function(t){e.error(t)})),this.iService.getHierarchiesForSubtypes(this.master.typeCode,!1).then((function(t){e.master.subtypeHierarchies=t})).catch((function(t){e.error(t)}))):this.master.hierarchies=[]},e.prototype.onSubmit=function(){var e=this;this.service.createMasterList(this.master).then((function(t){e.onMasterListChange.next(t),e.bsModalRef.hide()})).catch((function(t){e.error(t)}))},e.prototype.stringify=function(e){return JSON.stringify(e)},e.prototype.onCancel=function(){this.bsModalRef.hide()},e.prototype.ngOnDestroy=function(){this.onMasterListChange.unsubscribe()},e.prototype.formatDate=function(e){return this.dateService.formatDateForDisplay(e)},e.prototype.error=function(e){this.message=o.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(l.RegistryService),a.ɵɵdirectiveInject(l.IOService),a.ɵɵdirectiveInject(s.LocalizationService),a.ɵɵdirectiveInject(c.BsModalRef),a.ɵɵdirectiveInject(s.AuthService),a.ɵɵdirectiveInject(d.DateService))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["publish-modal"]],decls:101,vars:38,consts:[[1,"modal-body"],["class","alert alert-danger","role","alert",4,"ngIf"],[1,"heading","text-center"],[4,"ngIf"],["autocomplete","off",1,"modal-form"],["form","ngForm"],["class","row-holder",4,"ngFor","ngForOf"],["class","row-holder",4,"ngIf"],[1,"row-holder"],[1,"label-holder"],["key","masterlist.code"],[1,"holder"],["name","code","type","text","required","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["key","data.property.label.frequency"],["name","frequency","required","",1,"select-area",3,"ngModel","disabled","ngModelChange"],["frequency","ngModel"],["value","ANNUAL"],["key","georegistry.frequency.annual"],["value","BIANNUAL"],["key","georegistry.frequency.biannual"],["value","QUARTER"],["key","georegistry.frequency.quarter"],["value","MONTHLY"],["key","georegistry.frequency.monthly"],["class","form-text text-danger",4,"ngIf"],["key","data.property.label.publishingStartDate"],["style","line-height: 40px;","class","date-string-display",4,"ngIf"],["label","","name","masterPublishingStartDate",3,"value","classNames","inputName","allowFutureDates","required","disable","valueChange",4,"ngIf"],["key","masterlist.visibility"],["name","visibility","required","",1,"select-area",3,"ngModel","disabled","ngModelChange"],["value","PUBLIC"],["key","masterlist.public"],["value","PRIVATE"],["key","masterlist.private"],["key","masterlist.ismaster"],[1,"row"],[1,"check-block",2,"margin","10px"],["name","isMaster",1,"jcf-unselectable","chk-area",2,"margin","0",3,"ngClass","click"],["key","masterlist.contact"],["key","masterlist.contactName"],["name","contactName","type","text",1,"form-control",3,"ngModel","disabled","ngModelChange"],["key","masterlist.telephoneNumber"],["name","telephoneNumber","type","text",1,"form-control",3,"ngModel","disabled","ngModelChange"],["key","masterlist.email"],["name","email","type","email",1,"form-control",3,"ngModel","disabled","ngModelChange"],[4,"ngFor","ngForOf"],[1,"button-holder"],["type","button","role","button",1,"btn","btn-default",3,"click"],[3,"key"],["type","submit","class","btn btn-primary","role","button",3,"disabled","click",4,"ngIf"],["role","alert",1,"alert","alert-danger"],["key","type.publish.title"],["key","type.publish.view.title"],["key","masterlist.label"],[2,"color","#BABABA"],["type","text",1,"form-control",3,"ngModel","name","disabled","required","ngModelChange"],["for","typeCode"],["key","io.geoObjectType"],["id","typeCode","name","typeCode","required","",1,"select-area",3,"ngModel","ngModelChange","change"],[3,"value",4,"ngFor","ngForOf"],[3,"value"],["name","typeCode","type","text","disabled","",1,"form-control",3,"ngModel","ngModelChange"],[1,"form-text","text-danger"],["key","masterlist.change.frequency"],[1,"date-string-display",2,"line-height","40px"],["label","","name","masterPublishingStartDate",3,"value","classNames","inputName","allowFutureDates","required","disable","valueChange"],["key","masterlist.listAbstract"],["name","'description-' + localeValue.locale",1,"form-control",3,"ngModel","disabled","required","ngModelChange"],["key","masterlist.process"],["name","'process-' + localeValue.locale",1,"form-control",3,"ngModel","disabled","required","ngModelChange"],["key","masterlist.progress"],["key","masterlist.accessConstraints"],["key","masterlist.useConstraints"],["key","masterlist.acknowledgements"],["name","'acknowledgements-' + localeValue.locale",1,"form-control",3,"ngModel","disabled","required","ngModelChange"],["key","masterlist.disclaimer"],["name","'disclaimer-' + localeValue.locale",1,"form-control",3,"ngModel","disabled","required","ngModelChange"],["key","masterlist.parents"],["class","row",4,"ngFor","ngForOf"],["name","unique",1,"jcf-unselectable","chk-area",2,"margin","0",3,"ngClass","click"],[2,"margin","3px 10px"],["key","masterlist.subtypeHierarchies"],["type","submit","role","button",1,"btn","btn-primary",3,"disabled","click"],["key","io.submit"]],template:function(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",0),a.ɵɵtemplate(1,f,2,1,"div",1),a.ɵɵelementStart(2,"div",2),a.ɵɵtemplate(3,y,2,0,"h1",3),a.ɵɵtemplate(4,v,3,1,"h1",3),a.ɵɵelementEnd(),a.ɵɵelementStart(5,"form",4,5),a.ɵɵelementStart(7,"fieldset"),a.ɵɵtemplate(8,b,10,5,"div",6),a.ɵɵtemplate(9,C,8,2,"div",7),a.ɵɵtemplate(10,E,6,1,"div",7),a.ɵɵelementStart(11,"div",8),a.ɵɵelementStart(12,"div",9),a.ɵɵelementStart(13,"label"),a.ɵɵelement(14,"localize",10),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(15,"div",11),a.ɵɵelementStart(16,"input",12),a.ɵɵlistener("ngModelChange",(function(e){return t.master.code=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(17,"div",8),a.ɵɵelementStart(18,"div",9),a.ɵɵelementStart(19,"label"),a.ɵɵelement(20,"localize",13),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(21,"div",11),a.ɵɵelementStart(22,"select",14,15),a.ɵɵlistener("ngModelChange",(function(e){return t.master.frequency=e})),a.ɵɵelement(24,"option"),a.ɵɵelementStart(25,"option",16),a.ɵɵelement(26,"localize",17),a.ɵɵelementEnd(),a.ɵɵelementStart(27,"option",18),a.ɵɵelement(28,"localize",19),a.ɵɵelementEnd(),a.ɵɵelementStart(29,"option",20),a.ɵɵelement(30,"localize",21),a.ɵɵelementEnd(),a.ɵɵelementStart(31,"option",22),a.ɵɵelement(32,"localize",23),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵtemplate(33,x,2,0,"small",24),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(34,"div",8),a.ɵɵelementStart(35,"div",9),a.ɵɵelementStart(36,"label"),a.ɵɵelement(37,"localize",25),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(38,"div",11),a.ɵɵtemplate(39,O,2,1,"span",26),a.ɵɵtemplate(40,w,1,7,"date-field",27),a.ɵɵtemplate(41,M,2,0,"small",24),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(42,"div",8),a.ɵɵelementStart(43,"div",9),a.ɵɵelementStart(44,"label"),a.ɵɵelement(45,"localize",28),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(46,"div",11),a.ɵɵelementStart(47,"select",29),a.ɵɵlistener("ngModelChange",(function(e){return t.master.visibility=e})),a.ɵɵelement(48,"option"),a.ɵɵelementStart(49,"option",30),a.ɵɵelement(50,"localize",31),a.ɵɵelementEnd(),a.ɵɵelementStart(51,"option",32),a.ɵɵelement(52,"localize",33),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(53,"div",8),a.ɵɵelementStart(54,"div",9),a.ɵɵelementStart(55,"label"),a.ɵɵelement(56,"localize",34),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(57,"div",11),a.ɵɵelementStart(58,"div",35),a.ɵɵelementStart(59,"div",36),a.ɵɵelementStart(60,"div",37),a.ɵɵlistener("click",(function(e){return t.getIsDisabled(e)?null:t.master.isMaster=!t.master.isMaster})),a.ɵɵelement(61,"span"),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵtemplate(62,T,10,4,"div",6),a.ɵɵtemplate(63,j,10,4,"div",6),a.ɵɵtemplate(64,k,10,5,"div",6),a.ɵɵtemplate(65,z,10,5,"div",6),a.ɵɵtemplate(66,D,10,5,"div",6),a.ɵɵtemplate(67,R,10,4,"div",6),a.ɵɵtemplate(68,P,10,4,"div",6),a.ɵɵelementStart(69,"div",8),a.ɵɵelement(70,"div",9),a.ɵɵelementStart(71,"div",11),a.ɵɵelement(72,"localize",38),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(73,"div",8),a.ɵɵelementStart(74,"div",9),a.ɵɵelementStart(75,"label"),a.ɵɵelement(76,"localize",39),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(77,"div",11),a.ɵɵelementStart(78,"input",40),a.ɵɵlistener("ngModelChange",(function(e){return t.master.contactName=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(79,"div",8),a.ɵɵelementStart(80,"div",9),a.ɵɵelementStart(81,"label"),a.ɵɵelement(82,"localize",41),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(83,"div",11),a.ɵɵelementStart(84,"input",42),a.ɵɵlistener("ngModelChange",(function(e){return t.master.telephoneNumber=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(85,"div",8),a.ɵɵelementStart(86,"div",9),a.ɵɵelementStart(87,"label"),a.ɵɵelement(88,"localize",43),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(89,"div",11),a.ɵɵelementStart(90,"input",44),a.ɵɵlistener("ngModelChange",(function(e){return t.master.email=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵtemplate(91,A,4,0,"div",7),a.ɵɵtemplate(92,L,7,2,"div",45),a.ɵɵtemplate(93,F,7,1,"div",3),a.ɵɵelementStart(94,"div",8),a.ɵɵelement(95,"div",9),a.ɵɵelementStart(96,"div",11),a.ɵɵelementStart(97,"div",46),a.ɵɵelementStart(98,"button",47),a.ɵɵlistener("click",(function(){return t.onCancel()})),a.ɵɵelement(99,"localize",48),a.ɵɵelementEnd(),a.ɵɵtemplate(100,H,2,1,"button",49),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=a.ɵɵreference(23);a.ɵɵadvance(1),a.ɵɵproperty("ngIf",null!=t.message),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",t.isNew),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",!t.isNew),a.ɵɵadvance(4),a.ɵɵproperty("ngForOf",t.master.displayLabel.localeValues),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.types&&!(t.readonly||t.edit)),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.types&&(t.readonly||t.edit)),a.ɵɵadvance(6),a.ɵɵproperty("ngModel",t.master.code)("disabled",t.readonly||t.edit),a.ɵɵadvance(6),a.ɵɵproperty("ngModel",t.master.frequency)("disabled",t.readonly),a.ɵɵadvance(11),a.ɵɵproperty("ngIf",t.edit&&n.dirty),a.ɵɵadvance(6),a.ɵɵproperty("ngIf",t.readonly),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",!t.readonly),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.edit&&!t.isNew&&t.originalPublishStartDate!=t.master.publishingStartDate),a.ɵɵadvance(6),a.ɵɵproperty("ngModel",t.master.visibility)("disabled",t.readonly),a.ɵɵadvance(13),a.ɵɵproperty("ngClass",a.ɵɵpureFunction2(35,V,t.master.isMaster,t.readonly||t.edit)),a.ɵɵadvance(2),a.ɵɵproperty("ngForOf",t.master.descriptionLocal.localeValues),a.ɵɵadvance(1),a.ɵɵproperty("ngForOf",t.master.processLocal.localeValues),a.ɵɵadvance(1),a.ɵɵproperty("ngForOf",t.master.progressLocal.localeValues),a.ɵɵadvance(1),a.ɵɵproperty("ngForOf",t.master.accessConstraintsLocal.localeValues),a.ɵɵadvance(1),a.ɵɵproperty("ngForOf",t.master.useConstraintsLocal.localeValues),a.ɵɵadvance(1),a.ɵɵproperty("ngForOf",t.master.acknowledgementsLocal.localeValues),a.ɵɵadvance(1),a.ɵɵproperty("ngForOf",t.master.disclaimerLocal.localeValues),a.ɵɵadvance(10),a.ɵɵproperty("ngModel",t.master.contactName)("disabled",t.readonly),a.ɵɵadvance(6),a.ɵɵproperty("ngModel",t.master.telephoneNumber)("disabled",t.readonly),a.ɵɵadvance(6),a.ɵɵproperty("ngModel",t.master.email)("disabled",t.readonly),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.master.hierarchies.length>0),a.ɵɵadvance(1),a.ɵɵproperty("ngForOf",t.master.hierarchies),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.master.subtypeHierarchies.length>0),a.ɵɵadvance(6),a.ɵɵproperty("key",t.readonly?"io.back":"io.cancel"),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",!t.readonly)}},directives:[p.NgIf,m.ɵangular_packages_forms_forms_ba,m.NgControlStatusGroup,m.NgForm,p.NgForOf,u.LocalizeComponent,m.DefaultValueAccessor,m.RequiredValidator,m.NgControlStatus,m.NgModel,m.SelectControlValueAccessor,m.NgSelectOption,m.ɵangular_packages_forms_forms_z,p.NgClass,g.ConvertKeyLabel,h.DateFieldComponent],encapsulation:2}),e}();t.PublishModalComponent=G,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(G,[{type:r.Component,args:[{selector:"publish-modal",templateUrl:"./publish-modal.component.html",styleUrls:[]}]}],(function(){return[{type:l.RegistryService},{type:l.IOService},{type:s.LocalizationService},{type:c.BsModalRef},{type:s.AuthService},{type:d.DateService}]}),null)},533:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LocalizedInputComponent=void 0;var r=n(0),i=(n(153),n(0)),o=n(1),a=n(68),l=n(259),s=n(22);function c(e,t){if(1&e&&(i.ɵɵelementStart(0,"div",1),i.ɵɵelementStart(1,"div",2),i.ɵɵelementStart(2,"label"),i.ɵɵelement(3,"localize",3),i.ɵɵelementStart(4,"span",4),i.ɵɵtext(5," ("),i.ɵɵelement(6,"convert-key-label",3),i.ɵɵtext(7,")"),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(8,"div",5),i.ɵɵelementStart(9,"span",6),i.ɵɵelementStart(10,"input",7),i.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.value=e})),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd()),2&e){var n=t.$implicit,r=i.ɵɵnextContext();i.ɵɵadvance(3),i.ɵɵproperty("key",r.key),i.ɵɵadvance(3),i.ɵɵproperty("key",n.locale),i.ɵɵadvance(4),i.ɵɵproperty("ngModel",n.value)("name","label-"+n.locale)("disabled",r.disabled)("required","defaultLocale"===n.locale)}}var d=function(){function e(){this.key="",this.disabled=!1,this.valueChange=new r.EventEmitter}return e.ɵfac=function(t){return new(t||e)},e.ɵcmp=i.ɵɵdefineComponent({type:e,selectors:[["localized-input"]],inputs:{key:"key",value:"value",disabled:"disabled"},outputs:{valueChange:"valueChange"},decls:1,vars:1,consts:[["class","row-holder",4,"ngFor","ngForOf"],[1,"row-holder"],[1,"label-holder"],[3,"key"],[2,"color","#BABABA"],[1,"holder"],[1,"text"],["type","text",1,"form-control",3,"ngModel","name","disabled","required","ngModelChange"]],template:function(e,t){1&e&&i.ɵɵtemplate(0,c,11,6,"div",0),2&e&&i.ɵɵproperty("ngForOf",t.value.localeValues)},directives:[o.NgForOf,a.LocalizeComponent,l.ConvertKeyLabel,s.DefaultValueAccessor,s.NgControlStatus,s.NgModel,s.RequiredValidator],encapsulation:2}),e}();t.LocalizedInputComponent=d,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(d,[{type:r.Component,args:[{selector:"localized-input",templateUrl:"./localized-input.component.html",styleUrls:[]}]}],(function(){return[]}),{key:[{type:r.Input}],value:[{type:r.Input}],disabled:[{type:r.Input}],valueChange:[{type:r.Output}]})},534:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HierarchyComponent=t.Instance=t.RELATED_NODE_BANNER_COLOR=t.INHERITED_NODE_BANNER_COLOR=t.INHERITED_NODE_FILL=t.DEFAULT_NODE_BANNER_COLOR=t.DEFAULT_NODE_FILL=t.TREE_SCALE_FACTOR_Y=t.TREE_SCALE_FACTOR_X=void 0;var r=n(0),i=n(32),o=n(31),a=(n(30),n(169),n(378)),l=n(570),s=n(571),c=n(572),d=n(111),p=(n(16),n(261)),m=(n(519),n(580)),u=n(550),g=n(568),h=n(0),f=n(519),y=n(30),v=n(169),b=n(16),S=n(122),C=n(86),E=n(22),x=n(380),O=n(68),I=n(1),w=n(113),M=["searchInput"],T=["nodeMenu"],j=["leafMenu"];function k(e,t){if(1&e){var n=h.ɵɵgetCurrentView();h.ɵɵelementStart(0,"div",42),h.ɵɵelementStart(1,"button",43),h.ɵɵlistener("click",(function(){h.ɵɵrestoreView(n);var e=h.ɵɵnextContext().$implicit;return h.ɵɵnextContext().createGeoObjectType(null,!1,e.org)})),h.ɵɵelement(2,"localize",44),h.ɵɵelementEnd(),h.ɵɵelementStart(3,"button",45),h.ɵɵlistener("click",(function(){h.ɵɵrestoreView(n);var e=h.ɵɵnextContext().$implicit;return h.ɵɵnextContext().createGeoObjectType(null,!0,e.org)})),h.ɵɵelement(4,"localize",46),h.ɵɵelementEnd(),h.ɵɵelementEnd()}}function z(e,t){if(1&e){var n=h.ɵɵgetCurrentView();h.ɵɵelementStart(0,"i",53),h.ɵɵlistener("click",(function(){h.ɵɵrestoreView(n);var e=h.ɵɵnextContext(2).$implicit;return h.ɵɵnextContext(2).deleteGeoObjectType(e)})),h.ɵɵpipe(1,"localize"),h.ɵɵelementEnd()}2&e&&h.ɵɵproperty("title",h.ɵɵpipeBind1(1,1,"button.delete.helptext"))}function D(e,t){if(1&e){var n=h.ɵɵgetCurrentView();h.ɵɵelementStart(0,"i",54),h.ɵɵlistener("click",(function(){h.ɵɵrestoreView(n);var e=h.ɵɵnextContext(2).$implicit,t=h.ɵɵnextContext().$implicit;return h.ɵɵnextContext().createGeoObjectType(e,!1,t.org)})),h.ɵɵelementEnd()}}function R(e,t){if(1&e){var n=h.ɵɵgetCurrentView();h.ɵɵelementStart(0,"span",49),h.ɵɵtemplate(1,z,2,3,"i",50),h.ɵɵelementStart(2,"i",51),h.ɵɵlistener("click",(function(){h.ɵɵrestoreView(n);var e=h.ɵɵnextContext().$implicit;return h.ɵɵnextContext(2).manageGeoObjectType(e,!1)})),h.ɵɵpipe(3,"localize"),h.ɵɵelementEnd(),h.ɵɵtemplate(4,D,1,0,"i",52),h.ɵɵelementEnd()}if(2&e){var r=h.ɵɵnextContext().$implicit,i=h.ɵɵnextContext(2);h.ɵɵadvance(1),h.ɵɵproperty("ngIf",!i.excludeGeoObjectTypeDeletes(r)),h.ɵɵadvance(1),h.ɵɵproperty("title",h.ɵɵpipeBind1(3,3,"button.edit.helptext")),h.ɵɵadvance(2),h.ɵɵproperty("ngIf",r.isAbstract)}}function P(e,t){if(1&e){var n=h.ɵɵgetCurrentView();h.ɵɵelementStart(0,"span",49),h.ɵɵelementStart(1,"i",55),h.ɵɵlistener("click",(function(){h.ɵɵrestoreView(n);var e=h.ɵɵnextContext().$implicit;return h.ɵɵnextContext(2).manageGeoObjectType(e,!0)})),h.ɵɵpipe(2,"localize"),h.ɵɵelementEnd(),h.ɵɵelementEnd()}2&e&&(h.ɵɵadvance(1),h.ɵɵproperty("title",h.ɵɵpipeBind1(2,1,"button.view.helptext")))}var A=function(e,t){return{"got-group-parent":e,"got-group-child":t}};function V(e,t){if(1&e&&(h.ɵɵelementStart(0,"li",47),h.ɵɵtext(1),h.ɵɵtemplate(2,R,5,5,"span",48),h.ɵɵtemplate(3,P,3,3,"span",48),h.ɵɵelementEnd()),2&e){var n=t.$implicit;h.ɵɵproperty("id",n.code)("ngClass",h.ɵɵpureFunction2(7,A,n.isAbstract,n.superTypeCode&&n.superTypeCode.length>0)),h.ɵɵattribute("data-superTypeCode",n.superTypeCode&&n.superTypeCode.length>0?n.superTypeCode:null)("data-canDrag",n.canDrag),h.ɵɵadvance(1),h.ɵɵtextInterpolate1(" ",n.label.localizedValue," "),h.ɵɵadvance(1),h.ɵɵproperty("ngIf",n.permissions.includes("WRITE")),h.ɵɵadvance(1),h.ɵɵproperty("ngIf",!n.permissions.includes("WRITE")&&n.permissions.includes("READ"))}}function N(e,t){if(1&e&&(h.ɵɵelementStart(0,"ul",39),h.ɵɵelementStart(1,"div"),h.ɵɵelementStart(2,"div",40),h.ɵɵelementStart(3,"label"),h.ɵɵtext(4),h.ɵɵelementEnd(),h.ɵɵelementEnd(),h.ɵɵtemplate(5,k,5,0,"div",18),h.ɵɵtemplate(6,V,4,10,"li",41),h.ɵɵelementEnd(),h.ɵɵelementEnd()),2&e){var n=t.$implicit,r=h.ɵɵnextContext();h.ɵɵadvance(4),h.ɵɵtextInterpolate(n.org.label.localizedValue),h.ɵɵadvance(1),h.ɵɵproperty("ngIf",r.isSRA||n.org.code===r.userOrganization),h.ɵɵadvance(1),h.ɵɵproperty("ngForOf",n.types)}}function L(e,t){if(1&e){var n=h.ɵɵgetCurrentView();h.ɵɵelementStart(0,"div",42),h.ɵɵelementStart(1,"button",43),h.ɵɵlistener("click",(function(){return h.ɵɵrestoreView(n),h.ɵɵnextContext(2).createHierarchy()})),h.ɵɵelement(2,"localize",57),h.ɵɵelementEnd(),h.ɵɵelementEnd()}}function _(e,t){if(1&e){var n=h.ɵɵgetCurrentView();h.ɵɵelementStart(0,"i",53),h.ɵɵlistener("click",(function(){h.ɵɵrestoreView(n);var e=h.ɵɵnextContext(2).$implicit;return h.ɵɵnextContext(2).deleteHierarchyType(e)})),h.ɵɵpipe(1,"localize"),h.ɵɵelementEnd()}2&e&&h.ɵɵproperty("title",h.ɵɵpipeBind1(1,1,"button.delete.helptext"))}function F(e,t){if(1&e){var n=h.ɵɵgetCurrentView();h.ɵɵelementStart(0,"span",60),h.ɵɵtemplate(1,_,2,3,"i",50),h.ɵɵelementStart(2,"i",61),h.ɵɵlistener("click",(function(){h.ɵɵrestoreView(n);var e=h.ɵɵnextContext().$implicit;return h.ɵɵnextContext(2).editHierarchyType(e,!1)})),h.ɵɵpipe(3,"localize"),h.ɵɵelementEnd(),h.ɵɵelementEnd()}if(2&e){var r=h.ɵɵnextContext().$implicit,i=h.ɵɵnextContext(2);h.ɵɵadvance(1),h.ɵɵproperty("ngIf",!i.excludeHierarchyTypeDeletes(r)),h.ɵɵadvance(1),h.ɵɵproperty("title",h.ɵɵpipeBind1(3,2,"button.edit.helptext"))}}function H(e,t){if(1&e){var n=h.ɵɵgetCurrentView();h.ɵɵelementStart(0,"span",60),h.ɵɵelementStart(1,"i",62),h.ɵɵlistener("click",(function(){h.ɵɵrestoreView(n);var e=h.ɵɵnextContext().$implicit;return h.ɵɵnextContext(2).editHierarchyType(e,!0)})),h.ɵɵpipe(2,"localize"),h.ɵɵelementEnd(),h.ɵɵelementEnd()}2&e&&(h.ɵɵadvance(1),h.ɵɵproperty("title",h.ɵɵpipeBind1(2,1,"button.view.helptext")))}var G=function(e,t){return{primary:e,active:t}};function q(e,t){if(1&e){var n=h.ɵɵgetCurrentView();h.ɵɵelementStart(0,"li",58),h.ɵɵlistener("click",(function(e){h.ɵɵrestoreView(n);var r=t.$implicit;return h.ɵɵnextContext(2).hierarchyOnClick(e,r)})),h.ɵɵelement(1,"i",16),h.ɵɵtext(2),h.ɵɵtemplate(3,F,4,4,"span",59),h.ɵɵtemplate(4,H,3,3,"span",59),h.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=h.ɵɵnextContext(2);h.ɵɵproperty("id",r.code)("ngClass",h.ɵɵpureFunction2(5,G,null!=i.currentHierarchy&&r.code===i.currentHierarchy.code,i.isActive(r))),h.ɵɵadvance(2),h.ɵɵtextInterpolate1(" ",r.label.localizedValue," "),h.ɵɵadvance(1),h.ɵɵproperty("ngIf",i.isOrganizationRA(r.organizationCode)),h.ɵɵadvance(1),h.ɵɵproperty("ngIf",!i.isOrganizationRA(r.organizationCode))}}function B(e,t){if(1&e&&(h.ɵɵelementStart(0,"ul",39),h.ɵɵelementStart(1,"div"),h.ɵɵelementStart(2,"div",40),h.ɵɵelementStart(3,"label"),h.ɵɵtext(4),h.ɵɵelementEnd(),h.ɵɵelementEnd(),h.ɵɵtemplate(5,L,3,0,"div",18),h.ɵɵtemplate(6,q,5,8,"li",56),h.ɵɵelementEnd(),h.ɵɵelementEnd()),2&e){var n=t.$implicit,r=h.ɵɵnextContext();h.ɵɵadvance(4),h.ɵɵtextInterpolate(n.org.label.localizedValue),h.ɵɵadvance(1),h.ɵɵproperty("ngIf",r.isSRA||n.org.code===r.userOrganization),h.ɵɵadvance(1),h.ɵɵproperty("ngForOf",n.hierarchies)}}function U(e,t){if(1&e){var n=h.ɵɵgetCurrentView();h.ɵɵelementStart(0,"div",42),h.ɵɵelementStart(1,"button",43),h.ɵɵlistener("click",(function(){return h.ɵɵrestoreView(n),h.ɵɵnextContext().importTypes()})),h.ɵɵelement(2,"localize",63),h.ɵɵelementEnd(),h.ɵɵelementEnd()}}function $(e,t){1&e&&(h.ɵɵelementStart(0,"div",65),h.ɵɵelementStart(1,"div",66),h.ɵɵelementStart(2,"div",67),h.ɵɵelementStart(3,"p",68),h.ɵɵelement(4,"localize",69),h.ɵɵelementEnd(),h.ɵɵelementEnd(),h.ɵɵelementEnd(),h.ɵɵelementEnd())}function J(e,t){1&e&&(h.ɵɵelementStart(0,"div"),h.ɵɵelementStart(1,"p",68),h.ɵɵelement(2,"localize",70),h.ɵɵelementEnd(),h.ɵɵelementEnd())}function W(e,t){if(1&e&&(h.ɵɵelementStart(0,"div"),h.ɵɵtemplate(1,$,5,0,"div",64),h.ɵɵtemplate(2,J,3,0,"div",21),h.ɵɵelementEnd()),2&e){var n=h.ɵɵnextContext();h.ɵɵadvance(1),h.ɵɵproperty("ngIf",n.isOrganizationRA(n.currentHierarchy.organizationCode,!0)),h.ɵɵadvance(1),h.ɵɵproperty("ngIf",!n.isOrganizationRA(n.currentHierarchy.organizationCode,!0))}}t.TREE_SCALE_FACTOR_X=1.8,t.TREE_SCALE_FACTOR_Y=1.8,t.DEFAULT_NODE_FILL="#e6e6e6",t.DEFAULT_NODE_BANNER_COLOR="#A29BAB",t.INHERITED_NODE_FILL="#d4d4d4",t.INHERITED_NODE_BANNER_COLOR="#a0a0a0",t.RELATED_NODE_BANNER_COLOR=t.INHERITED_NODE_BANNER_COLOR;var K=function(){};t.Instance=K;var Q=function(){function e(e,t,n,r,i,o){var a=this;this.modalService=t,this.contextMenuService=n,this.registryService=i,this.authService=o,this.userOrganization=null,this.currentHierarchy=null,this.instance=new K,this.geoObjectTypes=[],this.hierarchiesByOrg=[],this.typesByOrg=[],this.filter="",this.filteredHierarchiesByOrg=[],this.filteredTypesByOrg=[],this.hierarchyTypeDeleteExclusions=["AllowedIn","IsARelationship"],this.geoObjectTypeDeleteExclusions=["ROOT"],this._opened=!1,this.isSRA=!1,this.options={displayField:"label",actionMapping:{mouse:{click:function(e,t,n){a.treeNodeOnClick(t,n)},contextMenu:function(e,t,n){a.handleOnMenu(t,n)}}},mouse:{}},this.isSRA=o.isSRA(),this.hierarchyService=e,this.localizeService=r}return e.prototype.ngOnInit=function(){var e=this;this.refreshAll(null),o.fromEvent(this.searchInput.nativeElement,"keyup").pipe(i.filter(Boolean),i.debounceTime(500),i.distinctUntilChanged(),i.tap((function(){e.onFilterChange()}))).subscribe()},e.prototype.localize=function(e){return this.localizeService.decode(e)},e.prototype.renderTree=function(){var e=this;if(null==this.currentHierarchy||null==this.currentHierarchy.rootGeoObjectTypes||0==this.currentHierarchy.rootGeoObjectTypes.length){a.select("#svg").remove();var t=!1;return null!=this.currentHierarchy&&(t=this.authService.isSRA()||this.authService.isOrganizationRA(this.currentHierarchy.organizationCode)),void this.geoObjectTypes.forEach((function(e){e.canDrag=t}))}a.select(".g-context-menu").remove(),a.select(".hierarchy-inherit-button").remove(),a.select(".g-hierarchy-got-connector").remove();var n=a.select("#overflow-div").node(),r=n.scrollLeft,i=n.scrollRight,o=a.select("#svg");null==o.node()&&(o=a.select("#svgHolder").append("svg")).attr("id","svg"),this.primarySvgHierarchy=new m.SvgHierarchyType(this,o,this.currentHierarchy,!0,this.localizeService,this.modalService,this.authService),this.primarySvgHierarchy.render(),this.calculateSvgViewBox();var l=a.select("#overflow-div").node();l.scrollLeft=r,l.scrollRight=i,this.geoObjectTypes.forEach((function(t){t.canDrag=e.calculateCanDrag(t)}))},e.prototype.calculateSvgViewBox=function(){var e=a.select("#svg"),n=e.node().getBBox(),r=n.x,i=n.y,o=n.width,l=n.height;e.attr("viewBox",r-30+" "+(i-40)+" "+(o+60)+" "+(l+80)),o=(o+60)*t.TREE_SCALE_FACTOR_X,l=(l+80)*t.TREE_SCALE_FACTOR_Y,a.select("#svgHolder").style("width",o+"px")},e.prototype.calculateCanDrag=function(e){var t=this;if(null==this.primarySvgHierarchy)return!1;if(!this.authService.isSRA()&&!this.authService.isOrganizationRA(this.currentHierarchy.organizationCode))return!1;if(null!=this.primarySvgHierarchy.getNodeByCode(e.code))return!1;if(e.isAbstract){var n=!1;if(this.geoObjectTypes.forEach((function(r){r.superTypeCode===e.code&&null!=t.primarySvgHierarchy.getNodeByCode(r.code)&&(n=!0)})),n)return!1}else if(null!=e.superTypeCode&&null!=t.primarySvgHierarchy.getNodeByCode(e.superTypeCode))return!1;return!0},e.prototype.calculateRelatedHierarchies=function(e){for(var t=[],n=0;n0)a.hierarchy(r.rootGeoObjectTypes[0]).descendants().find((function(t){return t.data.geoObjectType===e.code&&null==t.data.inheritedHierarchyCode}))&&t.push(r.code)}return t},e.prototype.registerDragHandlers=function(){var e,t,n,r=this,i=[];i.push({dropSelector:".drop-box-container",onDrag:function(e,t){if(null!=this.dropEl&&(this.dropEl.style("border-color",null),this.dropEl=null),null!=t){var n=t.closest(".drop-box-container");null!=n&&(this.dropEl=a.select(n).style("border-color","#6BA542"))}},onDrop:function(e){null!=this.dropEl&&(this.dropEl.style("border-color",null),r.addChild(r.currentHierarchy.code,"ROOT",a.select(e).attr("id")),this.dropEl=null)}}),i.push({dropSelector:".svg-got-body-rect",onDrag:function(e,t,n){var i=this;this.clearDropZones();var o=this.dropEl;if(null!=a.select("#svg").node()){var l=u.svgPoint(n.sourceEvent.pageX,n.sourceEvent.pageY);if(r.primarySvgHierarchy.getD3Tree().descendants().forEach((function(e){"GhostNode"!==e.data.geoObjectType&&u.isPointWithin(l,e.data.dropZoneBbox)?(i.dropEl=a.select('.g-hierarchy[data-primary=true] .svg-got-body-rect[data-gotCode="'+e.data.geoObjectType+'"]'),e.data.activeDropZones=!0,null==e.parent&&(e.data.dropZoneBbox={x:e.x-m.SvgHierarchyType.gotRectW/2,y:e.y-2*m.SvgHierarchyType.gotRectH,width:m.SvgHierarchyType.gotRectW,height:4*m.SvgHierarchyType.gotRectH})):(e.data.activeDropZones=!1,null==e.parent&&(e.data.dropZoneBbox={x:e.x-m.SvgHierarchyType.gotRectW/2,y:e.y-m.SvgHierarchyType.gotRectH/2,width:m.SvgHierarchyType.gotRectW,height:m.SvgHierarchyType.gotRectH}))})),(null==this.dropEl||null!=o&&null!=this.dropEl&&o.attr("data-gotCode")!=this.dropEl.attr("data-gotCode"))&&this.clearGhostNodes(!0),null!=this.dropEl){var s=a.select(e).classed("got-group-parent"),c=this.dropEl.attr("data-gotCode"),d=r.primarySvgHierarchy.getD3Tree().find((function(e){return e.data.geoObjectType===c})),p=r.findGeoObjectTypeByCode(c).isAbstract;this.dropEl.attr("stroke","blue");var g=parseInt(this.dropEl.attr("x")),h=parseInt(this.dropEl.attr("y")),f=m.SvgHierarchyType.gotRectW,y=m.SvgHierarchyType.gotRectH,v=a.select("#svg").append("g").classed("svg-dropZone-g",!0),b=!(null==d.children||0==d.children.length),S=!(p||s&&b);if(S){this.childDzBacker=v.append("rect").classed("svg-got-child-dz-backer",!0).attr("x",g+m.SvgHierarchyType.gotRectW/2-f/2).attr("y",h+m.SvgHierarchyType.gotRectH+10).attr("width",f).attr("height",y).attr("fill","white"),this.childDz=v.append("rect").classed("svg-got-child-dz",!0).attr("x",g+m.SvgHierarchyType.gotRectW/2-f/2).attr("y",h+m.SvgHierarchyType.gotRectH+10).attr("width",f).attr("height",y).attr("fill","none").attr("stroke","black").attr("stroke-width","1").attr("stroke-dasharray","5,5");var C=b?r.localizeService.decode("hierarchy.content.intersectChild"):r.localizeService.decode("hierarchy.content.addChild");this.childDzText=v.append("text").classed("svg-got-child-dz-text",!0).attr("font-family","sans-serif").attr("font-size",10).attr("fill","black").attr("x",g+m.SvgHierarchyType.gotRectW/2-u.calculateTextWidth(C,10)/2).attr("y",h+m.SvgHierarchyType.gotRectH+10+y/2+2).text(C)}if(!s){this.parentDzBacker=v.append("rect").classed("svg-got-parent-dz-backer",!0).attr("x",g+m.SvgHierarchyType.gotRectW/2-f/2).attr("y",h-m.SvgHierarchyType.gotHeaderH-y).attr("width",f).attr("height",y).attr("fill","white"),this.parentDz=v.append("rect").classed("svg-got-parent-dz",!0).attr("x",g+m.SvgHierarchyType.gotRectW/2-f/2).attr("y",h-m.SvgHierarchyType.gotHeaderH-y).attr("width",f).attr("height",y).attr("fill","none").attr("stroke","black").attr("stroke-width","1").attr("stroke-dasharray","5,5"),a.select(".svg-got-parent-dz-text").remove();var E=null==d.parent?r.localizeService.decode("hierarchy.content.addParent"):r.localizeService.decode("hierarchy.content.intersectParent");this.parentDzText=v.append("text").classed("svg-got-parent-dz-text",!0).attr("font-family","sans-serif").attr("font-size",10).attr("fill","black").attr("x",g+m.SvgHierarchyType.gotRectW/2-u.calculateTextWidth(E,10)/2).attr("y",h-m.SvgHierarchyType.gotHeaderH-y/2+2).text(E)}if(this.ghostCode!=c&&(null!=this.ghostCode&&this.clearGhostNodes(null==d.parent),null!=d.parent)){for(var x=null,O=0;Ot.label.localizedValue.toLowerCase()?1:0})),e.forEach((function(e){if(!e.isAbstract&&e.superTypeCode&&e.superTypeCode.length>0)for(var n=0;n0&&(t=0),t>-1){var n=this.hierarchies[t];this.setCurrentHierarchy(n),this.renderTree()}},e.prototype.getHierarchy=function(e){var t=null;return this.hierarchies.forEach((function(n){e===n.code&&(t=n)})),t},e.prototype.setHierarchies=function(e){var t=this,n=[];e.forEach((function(e,r){e.rootGeoObjectTypes.length>0&&e.rootGeoObjectTypes.forEach((function(e){t.processHierarchyNodes(e)})),n.push(e)})),this.hierarchies=n,this.hierarchies.sort((function(e,t){return e.label.localizedValue.toLowerCase()t.label.localizedValue.toLowerCase()?1:0}))},e.prototype.processHierarchyNodes=function(e){var t=this;null!=e&&(e.label=this.getHierarchyLabel(e.geoObjectType),e.children.forEach((function(e){t.processHierarchyNodes(e)})))},e.prototype.getHierarchyLabel=function(e){var t=null;return this.geoObjectTypes.forEach((function(n){n.code===e&&(t=n.label.localizedValue)})),t},e.prototype.handleOnMenu=function(e,t){this.isOrganizationRA(this.currentHierarchy.organizationCode)?(this.contextMenuService.show.next({contextMenu:null!==e.data.childType?this.nodeMenuComponent:this.leafMenuComponent,event:t,item:e}),t.preventDefault(),t.stopPropagation()):(t.preventDefault(),t.stopPropagation())},e.prototype.treeNodeOnClick=function(e,t){e.treeModel.setFocusedNode(e),e.treeModel.isExpanded(e)?e.collapse():e.treeModel.expandAll()},e.prototype.hierarchyOnClick=function(e,t){this.setCurrentHierarchy(t),this.renderTree()},e.prototype.createHierarchy=function(){var e=this;this.bsModalRef=this.modalService.show(l.CreateHierarchyTypeModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0,class:"upload-modal"}),this.bsModalRef.content.onHierarchytTypeCreate.subscribe((function(t){e.hierarchies.push(t),e.hierarchies.sort((function(e,t){var n=e.label.localizedValue.toUpperCase(),r=t.label.localizedValue.toUpperCase();return nr?1:0})),e.updateViewDatastructures()}))},e.prototype.deleteHierarchyType=function(e){var t=this;this.bsModalRef=this.modalService.show(d.ConfirmModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0}),this.bsModalRef.content.message=this.localizeService.decode("confirm.modal.verify.delete")+" ["+e.label.localizedValue+"]",this.bsModalRef.content.data=e.code,this.bsModalRef.content.type="DANGER",this.bsModalRef.content.submitText=this.localizeService.decode("modal.button.delete"),this.bsModalRef.content.onConfirm.subscribe((function(e){t.removeHierarchyType(e)}))},e.prototype.editHierarchyType=function(e,t){var n=this;this.bsModalRef=this.modalService.show(l.CreateHierarchyTypeModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0,class:"upload-modal"}),this.bsModalRef.content.edit=!0,this.bsModalRef.content.readOnly=t,this.bsModalRef.content.hierarchyType=e,this.bsModalRef.content.onHierarchytTypeCreate.subscribe((function(e){var t=n.getHierarchyTypePosition(e.code);n.hierarchies[t].label=e.label,n.hierarchies[t].description=e.description,n.hierarchies[t].progress=e.progress,n.hierarchies[t].acknowledgement=e.acknowledgement,n.hierarchies[t].disclaimer=e.disclaimer,n.hierarchies[t].useConstraints=e.useConstraints,n.hierarchies[t].accessConstraints=e.accessConstraints,n.hierarchies[t].contact=e.contact,n.hierarchies[t].phoneNumber=e.phoneNumber,n.hierarchies[t].email=e.email,n.updateViewDatastructures(),n.currentHierarchy.code===e.code&&(n.setCurrentHierarchy(n.hierarchies[t]),n.renderTree())}))},e.prototype.setCurrentHierarchy=function(e){this.currentHierarchy=e},e.prototype.isPrimaryHierarchy=function(e){return e.code===this.currentHierarchy.code},e.prototype.removeHierarchyType=function(e){var t=this;this.hierarchyService.deleteHierarchyType(e).then((function(n){var r=t.getHierarchyTypePosition(e);t.hierarchies.splice(r,1),t.updateViewDatastructures(),t.hierarchies.length>0?t.setCurrentHierarchy(t.hierarchies[0]):t.currentHierarchy=null,t.renderTree()})).catch((function(e){t.error(e)}))},e.prototype.createGeoObjectType=function(e,t,n){var r=this;this.bsModalRef=this.modalService.show(s.CreateGeoObjTypeModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0,class:"upload-modal"}),this.bsModalRef.content.init(n,this.geoObjectTypes,e,t),this.bsModalRef.content.onGeoObjTypeCreate.subscribe((function(e){e.relatedHierarchies=r.calculateRelatedHierarchies(e),r.refreshAll(r.currentHierarchy)}))},e.prototype.deleteGeoObjectType=function(e){var t=this;this.bsModalRef=this.modalService.show(d.ConfirmModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0}),this.bsModalRef.content.message=this.localizeService.decode("confirm.modal.verify.delete")+" ["+e.label.localizedValue+"]",this.bsModalRef.content.data=e.code,this.bsModalRef.content.submitText=this.localizeService.decode("modal.button.delete"),this.bsModalRef.content.type=p.ModalTypes.danger,this.bsModalRef.content.onConfirm.subscribe((function(e){t.removeGeoObjectType(e)}))},e.prototype.removeGeoObjectType=function(e,t){var n=this;void 0===t&&(t=null),this.registryService.deleteGeoObjectType(e).then((function(t){var r=n.getGeoObjectTypePosition(e);n.geoObjectTypes.splice(r,1),n.refreshAll(n.currentHierarchy)})).catch((function(e){null!=t&&t(e),n.error(e)}))},e.prototype.manageGeoObjectType=function(e,t){var n=this;this.bsModalRef=this.modalService.show(c.ManageGeoObjectTypeModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0,class:"manage-geoobjecttype-modal"}),e.attributes.sort((function(e,t){return e.label.localizedValuet.label.localizedValue?1:0})),this.bsModalRef.content.geoObjectType=e,this.bsModalRef.content.readOnly=t,this.bsModalRef.content.onGeoObjectTypeSubmitted.subscribe((function(e){if(e.isAbstract)n.refreshAll(n.currentHierarchy);else{var t=n.getGeoObjectTypePosition(e.code);-1!==t&&(n.geoObjectTypes[t]=e),n.updateViewDatastructures(),n.hierarchies.forEach((function(e){n.processHierarchyNodes(e.rootGeoObjectTypes[0])})),null!=n.currentHierarchy&&n.processHierarchyNodes(n.currentHierarchy.rootGeoObjectTypes[0]),n.renderTree()}}))},e.prototype.getHierarchyTypePosition=function(e){for(var t=0;t label[_ngcontent-%COMP%] {\n\tborder-bottom: solid 1px;\n\twidth: 100%;\n}\n\n.sidebar-section-content[_ngcontent-%COMP%] {\n\toverflow-y: auto;\n}\n\n.hierarchy-sidebar[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n\tmargin:0;\n}\n\n.hierarchy-sidebar[_ngcontent-%COMP%] {\n z-index: 999;\n background: #f1f1f1;\n\n\ttransition: all 0.3s;\n \tpadding:0;\n vertical-align: top;\n height: calc(100vh - 143px);\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.hierarchy-content[_ngcontent-%COMP%] {\n\theight: calc(100vh - 143px);\n overflow: auto;\n}\n\n#overflow-div[_ngcontent-%COMP%] {\n\ttop: 0;\n}\n\n.upload-text[_ngcontent-%COMP%] {\n\tposition:relative;\n\ttop:40%;\n}\n\n.sidebar-section[_ngcontent-%COMP%] {\n\n\ttext-align: left;\n\n}\n\n\n\n.hierarchy-sidebar-content[_ngcontent-%COMP%] .panel-body[_ngcontent-%COMP%] {\n\n\tbackground-color: #f1f1f1;\n\tmax-height: 500px;\n overflow: auto;\n}\n\n.sidebar-section-header[_ngcontent-%COMP%] {\n\tmargin-left:20px;\n\tcursor: pointer;\n}\n\n\naccordion-group.panel[_ngcontent-%COMP%] {\n\n}\n\nli.list-group-item[_ngcontent-%COMP%] {\n\tbackground-color: rgba(255, 255, 255, 1.0);\n\tmargin-bottom:5px;\n}\n\n.drop-box-container[_ngcontent-%COMP%] {\n width: 80%;\n border: 3px grey dashed;\n border-radius: 5px;\n margin: 0 auto;\n margin-top: 50px;\n}\n\n.hierarchy-drop-box[_ngcontent-%COMP%] {\n position:relative;\n height: 100%;\n cursor: default;\n}\n\nli.got-li-item.dragging[_ngcontent-%COMP%] {\n\tposition: fixed;\n\tcursor: grabbing !important;\n\tz-index: 99999999;\n}\n\n[data-candrag="true"][_ngcontent-%COMP%] {\n\tcursor: pointer;\n}\n[data-candrag="false"][_ngcontent-%COMP%] {\n cursor: not-allowed;\n}\n\n#NodeTooltip[_ngcontent-%COMP%] {\n\topacity:0;\n\tleft:-10000;\n\ttop:-10000;\n\tposition:fixed;\n\twidth: 400px;\n\tmin-width: 400px;\n}\n#NodeTooltip[_ngcontent-%COMP%] .modal-form[_ngcontent-%COMP%] {\n\tpadding-top:10px;\n}\n#NodeTooltip[_ngcontent-%COMP%] .modal-form[_ngcontent-%COMP%] .holder[_ngcontent-%COMP%] {\n\tpadding-bottom: 0px;\n}\n#NodeTooltip[_ngcontent-%COMP%] .label-holder[_ngcontent-%COMP%] {\n\twidth: 40%;\n}\n#NodeTooltip[_ngcontent-%COMP%] .holder[_ngcontent-%COMP%] {\n\twidth: 60%;\n}\n#NodeTooltip[_ngcontent-%COMP%] .holder[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n line-height:2.8;\n}\n\n[_nghost-%COMP%] .panel .panel-heading .accordion-toggle:after {\n \n font-family: \'Glyphicons Halflings\'; \n content: "\\e080"; \n float: right; \n\n margin-top: -30px;\n}\n[_nghost-%COMP%] .panel.panel-open .panel-heading .accordion-toggle:after {\n \n content: "\\e114"; \n}']}),e}();t.HierarchyComponent=Q,("undefined"==typeof ngDevMode||ngDevMode)&&h.ɵsetClassMetadata(Q,[{type:r.Component,args:[{selector:"hierarchies",templateUrl:"./hierarchy.component.html",styleUrls:["./hierarchy.css"]}]}],(function(){return[{type:f.HierarchyService},{type:y.BsModalService},{type:v.ContextMenuService},{type:b.LocalizationService},{type:f.RegistryService},{type:b.AuthService}]}),{searchInput:[{type:r.ViewChild,args:["searchInput",{static:!0}]}],nodeMenuComponent:[{type:r.ViewChild,args:["nodeMenu"]}],leafMenuComponent:[{type:r.ViewChild,args:["leafMenu"]}]})},535:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChangeRequestEditor=void 0;var r=n(203),i=n(31),o=n(590),a=n(629),l=function(){function e(e,t,n,r,o,a,l,s){this.onChangeSubject=new i.Subject,this.changeRequest=e,this.geoObject=t,this.geoObjectType=n,this.geometryAttributeType=o,this.parentAttributeType=a,this.hierarchies=r,this.localizationService=l,this.dateService=s,this.attributeEditors=this.generateAttributeEditors(),this.validate()}return e.prototype.generateAttributeEditors=function(){var e=this,t=["uid","sequence","type","lastUpdateDate","createDate"],n=[],r=this.geoObjectType.attributes.slice();return(r=r.filter((function(e){return-1===t.indexOf(e.code)}))).push(this.geometryAttributeType),r.push(this.parentAttributeType),r.forEach((function(t){if("_PARENT_"!==t.code)if(t.isChangeOverTime){var r=new o.ChangeRequestChangeOverTimeAttributeEditor(e,t,null);n.push(r)}else{r=new a.StandardAttributeCRModel(t,e.geoObject,e.changeRequest);n.push(r)}else e.hierarchies.forEach((function(r){var i=new o.ChangeRequestChangeOverTimeAttributeEditor(e,t,r);n.push(i)}))})),n},e.prototype.hasChanges=function(){var e=!1;return this.attributeEditors.forEach((function(t){t.hasChanges()&&(e=!0)})),e},e.prototype.isValid=function(){return this._isValid},e.prototype.validate=function(e){var t=this;return void 0===e&&(e=!1),this._isValid=!0,this.attributeEditors.forEach((function(n){e&&"exists"===n.attribute.code||(n.validate(!0),n.isValid()||(t._isValid=!1))})),this._isValid},e.prototype.findExistingValueOverTimeByOid=function(e,t){if(this.geoObject.attributes[t]){var n=this.geoObject.attributes[t].values.findIndex((function(t){return t.oid===e}));if(-1!==n)return this.geoObject.attributes[t].values[n]}return null},e.prototype.getEditorForAttribute=function(e,t){void 0===t&&(t=null);var n=this.attributeEditors.findIndex((function(n){return(!n.attribute.isChangeOverTime||null==t&&null==n.hierarchy||null!=n.hierarchy&&n.hierarchy.code===t.code)&&n.attribute.code===e.code}));return-1===n?null:this.attributeEditors[n]},e.prototype.getEditors=function(){return this.attributeEditors},e.prototype.onChange=function(e){this.onChangeSubject.next(e)},e.prototype.existsAtDate=function(e){for(var t=r.GeoObjectType.getAttribute(this.geoObjectType,"exists"),n=this.getEditorForAttribute(t).getEditors(),i=n.length,o=0;o0&&(l.filter=r),this.http.post(acp+"/master-list/data",JSON.stringify(l),{headers:a}).toPromise()},e.prototype.values=function(e,t,n,r,o){var a=new i.HttpHeaders({"Content-Type":"application/json"}),l={oid:e,attributeName:n,valueAttribute:r};return o.length>0&&(l.filter=o),null!=t&&t.length>0&&(l.value=t),this.http.post(acp+"/master-list/values",JSON.stringify(l),{headers:a}).toPromise()},e.prototype.publishShapefile=function(e){var t=new i.HttpHeaders({"Content-Type":"application/json"}),n={oid:e};return this.http.post(acp+"/master-list/generate-shapefile",JSON.stringify(n),{headers:t}).toPromise()},e.prototype.progress=function(e){var t=new i.HttpParams;return t=t.set("oid",e),this.http.get(acp+"/master-list/progress",{params:t}).toPromise()},e.prototype.getMasterListsByOrg=function(){var e=new i.HttpParams;return this.http.get(acp+"/master-list/list-org",{params:e}).toPromise()},e.prototype.getPublishMasterListJobs=function(e,t,n,r,o){var a=new i.HttpParams;return a=(a=(a=(a=(a=a.set("oid",e)).set("pageSize",t.toString())).set("pageNumber",n.toString())).set("sortAttr",r)).set("isAscending",o.toString()),this.http.get(acp+"/master-list/get-publish-jobs",{params:a}).toPromise()},e.prototype.getDatasetBounds=function(e){var t=new i.HttpParams;return t=t.set("oid",e),this.http.get(acp+"/master-list/bounds",{params:t}).toPromise()},e.prototype.getOrganizations=function(){var e=this;return this.eventService.start(),this.http.get(acp+"/cgr/organizations/get-all").pipe(o.finalize((function(){e.eventService.complete()}))).toPromise()},e.prototype.exportToFhir=function(e,t){var n=new i.HttpHeaders({"Content-Type":"application/json"}),r={oid:e,systemId:t};return this.http.post(acp+"/master-list/export-to-fhir",JSON.stringify(r),{headers:n}).toPromise()},e.ɵfac=function(t){return new(t||e)(a.ɵɵinject(l.HttpClient),a.ɵɵinject(s.EventService))},e.ɵprov=a.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.RegistryService=c,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(c,[{type:r.Injectable}],(function(){return[{type:l.HttpClient},{type:s.EventService}]}),null)},548:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SynchronizationConfigService=void 0;var r=n(0),i=n(34),o=n(32),a=(n(16),n(0)),l=n(34),s=n(16),c=function(){function e(e,t){this.http=e,this.eventService=t}return e.prototype.getPage=function(e,t){var n=this,r=new i.HttpParams;return r=(r=r.set("pageNumber",e.toString())).set("pageSize",t.toString()),this.eventService.start(),this.http.get(acp+"/synchronization-config/get-all",{params:r}).pipe(o.finalize((function(){n.eventService.complete()}))).toPromise()},e.prototype.get=function(e){var t=this,n=new i.HttpParams;return n=n.set("oid",e),this.eventService.start(),this.http.get(acp+"/synchronization-config/get",{params:n}).pipe(o.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.getCustomAttrCfg=function(e,t){var n=this,r=new i.HttpParams;return r=(r=r.set("externalId",t)).set("geoObjectTypeCode",e),this.eventService.start(),this.http.get(acp+"/synchronization-config/get-custom-attr",{params:r}).pipe(o.finalize((function(){n.eventService.complete()}))).toPromise()},e.prototype.getConfigForES=function(e,t){var n=this,r=new i.HttpParams;return r=(r=r.set("externalSystemId",e)).set("hierarchyTypeCode",t),this.eventService.start(),this.http.get(acp+"/synchronization-config/get-config-for-es",{params:r}).pipe(o.finalize((function(){n.eventService.complete()}))).toPromise()},e.prototype.apply=function(e){var t=this,n=new i.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/synchronization-config/apply",JSON.stringify({config:e}),{headers:n}).pipe(o.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.edit=function(e){var t=this,n=new i.HttpHeaders({"Content-Type":"application/json"}),r={};return null!=e&&(r={oid:e}),this.eventService.start(),this.http.post(acp+"/synchronization-config/edit",JSON.stringify(r),{headers:n}).pipe(o.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.remove=function(e){var t=this,n=new i.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/synchronization-config/remove",JSON.stringify({oid:e}),{headers:n}).pipe(o.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.unlock=function(e){var t=this,n=new i.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/synchronization-config/unlock",JSON.stringify({oid:e}),{headers:n}).pipe(o.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.run=function(e){var t=this,n=new i.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/synchronization-config/run",JSON.stringify({oid:e}),{headers:n}).pipe(o.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.getJobs=function(e,t,n){var r=new i.HttpParams;return r=(r=(r=r.set("oid",e)).set("pageNumber",t.toString())).set("pageSize",n.toString()),this.http.get(acp+"/synchronization-config/get-jobs",{params:r}).toPromise()},e.prototype.getFhirExportImplementations=function(){var e=new i.HttpParams;return this.http.get(acp+"/synchronization-config/get-fhir-export-implementations",{params:e}).toPromise()},e.prototype.getFhirImportImplementations=function(){var e=new i.HttpParams;return this.http.get(acp+"/synchronization-config/get-fhir-import-implementations",{params:e}).toPromise()},e.ɵfac=function(t){return new(t||e)(a.ɵɵinject(l.HttpClient),a.ɵɵinject(s.EventService))},e.ɵprov=a.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.SynchronizationConfigService=c,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(c,[{type:r.Injectable}],(function(){return[{type:l.HttpClient},{type:s.EventService}]}),null)},549:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TaskService=void 0;var r=n(0),i=n(34),o=n(32),a=(n(16),n(0)),l=n(34),s=n(16),c=function(){function e(e,t){this.http=e,this.eventService=t}return e.prototype.getMyTasks=function(e,t,n){var r=new i.HttpParams;return r=(r=(r=(r=r.set("orderBy","createDate")).set("pageNum",e.toString())).set("pageSize",t.toString())).set("whereStatus",n),this.http.get(acp+"/tasks/get",{params:r}).toPromise()},e.prototype.completeTask=function(e){var t=this,n=new i.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/tasks/complete",JSON.stringify({id:e}),{headers:n}).pipe(o.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.setTaskStatus=function(e,t){var n=this,r=new i.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/tasks/setTaskStatus",JSON.stringify({id:e,status:t}),{headers:r}).pipe(o.finalize((function(){n.eventService.complete()}))).toPromise()},e.ɵfac=function(t){return new(t||e)(a.ɵɵinject(l.HttpClient),a.ɵɵinject(s.EventService))},e.ɵprov=a.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.TaskService=c,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(c,[{type:r.Injectable}],(function(){return[{type:l.HttpClient},{type:s.EventService}]}),null)},550:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getBboxFromSelection=t.isBboxTotallyWithin=t.isBboxPartiallyWithin=t.isPointWithin=t.svgPoint=t.calculateTextWidth=void 0;var r=n(378);function i(e,t){return e.y>t.y&&e.yt.x&&e.xt.label.localizedValue.toLowerCase()?1:0}));var l=e.getGeoObjectTypePosition("ROOT");l&&e.geoObjectTypes.splice(l,1)})).catch((function(t){e.error(t)}))},e.prototype.handleDateChange=function(){null!=this.dateStr?this.forDate=new Date(Date.parse(this.dateStr)):this.forDate=null},e.prototype.onValidChange=function(e){null!=this.geoObject&&(null==this.geometryEditor||this.geometryEditor.getIsValid())&&(null==this.attributeEditor||this.attributeEditor.getIsValid())?this.isValid=!0:this.isValid=!1},e.prototype.getGeoObjectTypePosition=function(e){for(var t=0;t0?(this.hierarchies=e.object.parents,this.areParentsValid=!0):(this.registryService.newGeoObjectOverTime(o).then((function(e){i.hierarchies=e.hierarchies})),this.areParentsValid=!1),this.goPropertiesPre=new a.GeoObjectOverTime(this.geoObjectType,e.object.geoObject.attributes),this.goPropertiesPost=new a.GeoObjectOverTime(this.geoObjectType,e.object.geoObject.attributes),this.submitFunction=function(){var n={historyId:t,importErrorId:e.id,resolution:"APPLY_GEO_OBJECT",parentTreeNode:i.hierarchies,geoObject:i.goSubmit,isNew:e.object.isNew};i.registryService.submitErrorResolve(n).then((function(){null!=i.onSuccessCallback&&i.onSuccessCallback()})).catch((function(e){i.error(e)}))}},e.prototype.configureAsExisting=function(e,t,n,r){this.isNewGeoObject=!1,this.dateStr=n,this.forDate=new Date(Date.parse(this.dateStr)),this.isGeometryEditable=r,this.fetchGeoObject(e,t),this.fetchGeoObjectType(t),this.fetchHierarchies(e,t),this.fetchLocales()},e.prototype.fetchGeoObject=function(e,t){var n=this;this.registryService.getGeoObjectOverTime(e,t).then((function(e){n.goPropertiesPre=new a.GeoObjectOverTime(n.geoObjectType,JSON.parse(JSON.stringify(e)).attributes),n.goPropertiesPost=new a.GeoObjectOverTime(n.geoObjectType,JSON.parse(JSON.stringify(n.goPropertiesPre)).attributes),n.goSubmit=n.goPropertiesPost,n.arePropertiesValid=!0,n.isValid=!0})).catch((function(e){n.error(e)}))},e.prototype.fetchLocales=function(){var e=this;this.registryService.getLocales().then((function(t){e.localizeService.setLocales(t)})).catch((function(t){e.error(t)}))},e.prototype.fetchGeoObjectType=function(e){var t=this;this.registryService.getGeoObjectTypes([e],null).then((function(e){t.geoObjectType=e[0],null!=t.goPropertiesPre&&(t.goPropertiesPre.geoObjectType=t.geoObjectType),null!=t.goPropertiesPost&&(t.goPropertiesPost.geoObjectType=t.geoObjectType),t.geoObjectType.isGeometryEditable})).catch((function(e){console.log(e)}))},e.prototype.fetchHierarchies=function(e,t){var n=this;this.registryService.getHierarchiesForGeoObject(e,t).then((function(e){n.hierarchies=e,n.areParentsValid=!0})).catch((function(e){n.error(e)}))},e.prototype.getTypeAheadObservable=function(e,t){var n=this;return l.Observable.create((function(r){n.registryService.getGeoObjectSuggestionsTypeAhead(e,t).then((function(e){r.next(e)}))}))},e.prototype.typeaheadOnSelect=function(e,t){var n=this;this.registryService.getGeoObjectByCode(e.item.code,t.geoObject.properties.type).then((function(e){t.geoObject=e})).catch((function(e){n.error(e)}))},e.prototype.onValidChange=function(){null!=this.attributeEditor&&(this.arePropertiesValid=this.attributeEditor.getIsValid()),null!=this.parentSelector&&(this.areParentsValid=this.parentSelector.getIsValid()),this.isValid=this.arePropertiesValid&&this.areParentsValid},e.prototype.changePage=function(e,t){void 0===t&&(t=!1),(e!==this.tabIndex||t)&&(this.persistModelChanges(),this.tabIndex=e,this.onValidChange(),this.isEditingGeometries=2===e)},e.prototype.persistModelChanges=function(){null!=this.attributeEditor&&(this.goPropertiesPost=this.attributeEditor.getGeoObject()),null!=this.parentSelector&&(this.hierarchies=this.parentSelector.getHierarchies()),this.goSubmit=this.goPropertiesPost},e.prototype.error=function(e){this.bsModalRef=o.ErrorHandler.showErrorAsDialog(e,this.modalService)},e.prototype.cancel=function(){this.bsModalRef.hide()},e.prototype.submit=function(){this.isValid&&(this.bsModalRef.hide(),this.persistModelChanges(),null==this.submitFunction||this.submitFunction())},e.ɵfac=function(t){return new(t||e)(s.ɵɵdirectiveInject(c.BsModalService),s.ɵɵdirectiveInject(c.BsModalRef),s.ɵɵdirectiveInject(d.RegistryService),s.ɵɵdirectiveInject(p.LocalizationService),s.ɵɵdirectiveInject(p.AuthService))},e.ɵcmp=s.ɵɵdefineComponent({type:e,selectors:[["geoobject-editor"]],viewQuery:function(e,t){if(1&e&&(s.ɵɵviewQuery(y,1),s.ɵɵviewQuery(v,1)),2&e){var n=void 0;s.ɵɵqueryRefresh(n=s.ɵɵloadQuery())&&(t.attributeEditor=n.first),s.ɵɵqueryRefresh(n=s.ɵɵloadQuery())&&(t.parentSelector=n.first)}},inputs:{geoObjectType:"geoObjectType",onSuccessCallback:"onSuccessCallback"},features:[s.ɵɵProvidersFeature([i.DatePipe])],decls:31,vars:18,consts:[[1,"modal-body"],[1,"modal-form",2,"overflow","visible"],["goForm","ngForm"],[1,"row"],[1,"col-md-12"],["class","alert alert-danger","role","alert",4,"ngIf"],[1,"btn-group","geobject-editor-tab-holder"],[1,"btn","full-width-radio-button",3,"ngClass","click"],["key","geoobject.editor.tabZero"],["key","geoobject.editor.tabOne"],["key","geoobject.editor.tabTwo"],[3,"geoObjectType","preGeoObject","postGeoObject","forDate","isNew","isEditingGeometries","valid",4,"ngIf"],[4,"ngIf"],["class","row-holder","style","padding-top: 10px;",4,"ngIf"],[1,"row-holder",2,"margin-bottom","20px"],[1,"label-holder"],["key","changeOverTime.forDate"],[1,"holder"],["type","date","name","dateStr",2,"width","100%",3,"ngModel","ngModelChange","change"],[1,"button-holder","text-left"],["type","button",1,"btn","btn-default",3,"click"],["key","modal.button.cancel"],["type","submit",1,"btn","btn-primary",3,"disabled","click"],[3,"key"],["role","alert",1,"alert","alert-danger"],["key","geoobject.editor.modal.parents.must.be.assigned.message"],[3,"geoObjectType","preGeoObject","postGeoObject","forDate","isNew","isEditingGeometries","valid"],["attributeEditor",""],[3,"isValid","forDate","hierarchies","valid"],["parentSelector",""],[1,"row-holder",2,"padding-top","10px"],["key","change.request.action.detail.contributorNotes"],[1,"holder","text-left"],["name","notes","required","",1,"detail-value",2,"width","100%","border-radius","8px","height","70px","padding","5px",3,"ngModel","ngModelChange"],[1,"form-input-validation-error-message-wrapper"],["class","error-message",4,"ngIf"],[1,"error-message"]],template:function(e,t){if(1&e&&(s.ɵɵelementStart(0,"div",0),s.ɵɵelementStart(1,"form",1,2),s.ɵɵelementStart(3,"div",3),s.ɵɵelementStart(4,"div",4),s.ɵɵtemplate(5,b,2,0,"div",5),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(6,"div",3),s.ɵɵelementStart(7,"div",4),s.ɵɵelementStart(8,"div",6),s.ɵɵelementStart(9,"label",7),s.ɵɵlistener("click",(function(){return t.changePage(0)})),s.ɵɵelement(10,"localize",8),s.ɵɵelementEnd(),s.ɵɵelementStart(11,"label",7),s.ɵɵlistener("click",(function(){return t.changePage(1)})),s.ɵɵelement(12,"localize",9),s.ɵɵelementEnd(),s.ɵɵelementStart(13,"label",7),s.ɵɵlistener("click",(function(){return t.isGeometryEditable&&t.changePage(2)})),s.ɵɵelement(14,"localize",10),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵtemplate(15,S,2,6,"geoobject-shared-attribute-editor",11),s.ɵɵtemplate(16,C,3,3,"div",12),s.ɵɵtemplate(17,x,8,2,"div",13),s.ɵɵelementStart(18,"div",14),s.ɵɵelementStart(19,"div",15),s.ɵɵelementStart(20,"label"),s.ɵɵelement(21,"localize",16),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(22,"div",17),s.ɵɵelementStart(23,"input",18),s.ɵɵlistener("ngModelChange",(function(e){return t.dateStr=e}))("change",(function(){return t.handleDateChange()})),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(24,"div",3),s.ɵɵelementStart(25,"div",4),s.ɵɵelementStart(26,"div",19),s.ɵɵelementStart(27,"button",20),s.ɵɵlistener("click",(function(){return t.cancel()})),s.ɵɵelement(28,"localize",21),s.ɵɵelementEnd(),s.ɵɵelementStart(29,"button",22),s.ɵɵlistener("click",(function(){return t.submit()})),s.ɵɵelement(30,"localize",23),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd()),2&e){var n=s.ɵɵreference(2);s.ɵɵadvance(5),s.ɵɵproperty("ngIf",!t.areParentsValid),s.ɵɵadvance(4),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(10,O,0===t.tabIndex)),s.ɵɵadvance(2),s.ɵɵproperty("ngClass",s.ɵɵpureFunction2(12,I,1===t.tabIndex,!t.areParentsValid)),s.ɵɵadvance(2),s.ɵɵproperty("ngClass",s.ɵɵpureFunction2(15,w,2===t.tabIndex,!t.isGeometryEditable)),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",(0===t.tabIndex||2===t.tabIndex)&&t.geoObjectType&&t.goPropertiesPre&&t.goPropertiesPost),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",1===t.tabIndex&&null!=t.hierarchies),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",!t.isMaintainer),s.ɵɵadvance(6),s.ɵɵproperty("ngModel",t.dateStr),s.ɵɵadvance(6),s.ɵɵproperty("disabled",n.invalid||!t.isValid),s.ɵɵadvance(1),s.ɵɵproperty("key",t.isMaintainer?"modal.button.submit":"change.request.page.title")}},directives:[m.ɵangular_packages_forms_forms_ba,m.NgControlStatusGroup,m.NgForm,u.NgIf,u.NgClass,g.LocalizeComponent,m.DefaultValueAccessor,m.NgControlStatus,m.NgModel,h.GeoObjectSharedAttributeEditorComponent,f.CascadingGeoSelector,m.RequiredValidator],styles:['.modal-content[_ngcontent-%COMP%] {\n overflow-y: visible !important;\n}\n\n.modal-form[_ngcontent-%COMP%] .text[_ngcontent-%COMP%] input[type="text"][_ngcontent-%COMP%]:disabled {\n background: #eee;\n}\n\nli.list-group-item[_ngcontent-%COMP%] {\n font-size: 18px;\n}\n\n.warning-text[_ngcontent-%COMP%]{\n color: orange;\n}']}),e}();t.GeoObjectEditorComponent=M,("undefined"==typeof ngDevMode||ngDevMode)&&s.ɵsetClassMetadata(M,[{type:r.Component,args:[{selector:"geoobject-editor",templateUrl:"./geoobject-editor.component.html",styleUrls:["./geoobject-editor.component.css"],providers:[i.DatePipe]}]}],(function(){return[{type:c.BsModalService},{type:c.BsModalRef},{type:d.RegistryService},{type:p.LocalizationService},{type:p.AuthService}]}),{geoObjectType:[{type:r.Input}],onSuccessCallback:[{type:r.Input}],attributeEditor:[{type:r.ViewChild,args:["attributeEditor"]}],parentSelector:[{type:r.ViewChild,args:["parentSelector"]}]})},557:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StepIndicatorComponent=void 0;var r=n(0),i=(n(203),n(0)),o=n(1),a=function(e,t,n){return{complete:e,stuck:t,working:n}};function l(e,t){if(1&e&&(i.ɵɵelementStart(0,"li",4),i.ɵɵtext(1),i.ɵɵelementEnd()),2&e){var n=t.$implicit;i.ɵɵproperty("ngClass",i.ɵɵpureFunction3(2,a,"COMPLETE"===n.status,"STUCK"===n.status,"WORKING"===n.status)),i.ɵɵadvance(1),i.ɵɵtextInterpolate1(" ",n.label," ")}}function s(e,t){if(1&e&&(i.ɵɵelementStart(0,"ul",2),i.ɵɵtemplate(1,l,2,6,"li",3),i.ɵɵelementEnd()),2&e){var n=i.ɵɵnextContext();i.ɵɵadvance(1),i.ɵɵproperty("ngForOf",n._stepConfig.steps)}}var c=function(){function e(){this._stepConfig={steps:[]}}return Object.defineProperty(e.prototype,"steps",{set:function(e){this._stepConfig=e},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){},e.prototype.ngOnDestroy=function(){},e.ɵfac=function(t){return new(t||e)},e.ɵcmp=i.ɵɵdefineComponent({type:e,selectors:[["step-indicator"]],inputs:{steps:"steps"},decls:2,vars:1,consts:[[1,"step-indicator"],["class","nav nav-justified",4,"ngIf"],[1,"nav","nav-justified"],["class","nav-item",3,"ngClass",4,"ngFor","ngForOf"],[1,"nav-item",3,"ngClass"]],template:function(e,t){1&e&&(i.ɵɵelementStart(0,"div",0),i.ɵɵtemplate(1,s,2,1,"ul",1),i.ɵɵelementEnd()),2&e&&(i.ɵɵadvance(1),i.ɵɵproperty("ngIf",t._stepConfig&&t._stepConfig.steps&&t._stepConfig.steps.length>0))},directives:[o.NgIf,o.NgForOf,o.NgClass],styles:[".step-indicator[_ngcontent-%COMP%] {\n margin-top: 5px;\n}\n\n.step-indicator[_ngcontent-%COMP%] .nav-item[_ngcontent-%COMP%] {\n \n background-color: white;\n text-align: center;\n vertical-align: middle;\n \n \n \n border-collapse: separate; \n border-spacing: 0;\n color: black;\n}\n.step-indicator[_ngcontent-%COMP%] ul[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:not(:first-child):not(:last-child) {\n border-left: solid 2px white;\n}\n.step-indicator[_ngcontent-%COMP%] ul[_ngcontent-%COMP%] > li[_ngcontent-%COMP%]:first-child {\n -moz-border-radius-topleft: 10px;\n -moz-border-radius-bottomleft: 10px;\n\n -webkit-border-top-left-radius: 10px;\n -webkit-border-bottom-left-radius: 10px;\n border-top-left-radius: 10px;\n border-bottom-left-radius: 10px;\n}\n.step-indicator[_ngcontent-%COMP%] ul[_ngcontent-%COMP%] > li[_ngcontent-%COMP%]:last-child {\n -moz-border-radius-topright: 10px;\n -moz-border-radius-bottomright: 10px;\n\n -webkit-border-top-right-radius: 10px;\n -webkit-border-bottom-right-radius: 10px;\n border-top-right-radius: 10px;\n border-bottom-right-radius: 10px;\n}\n.step-indicator[_ngcontent-%COMP%] .nav-item[_ngcontent-%COMP%] {\n font-weight: bold;\n}\n.step-indicator[_ngcontent-%COMP%] .nav-item.complete[_ngcontent-%COMP%]{\n background-color: #B7A2D5;\n}\n.step-indicator[_ngcontent-%COMP%] .nav-item.stuck[_ngcontent-%COMP%]{\n background-color: #f05d5d;\n}\n.step-indicator[_ngcontent-%COMP%] .nav-item.working[_ngcontent-%COMP%]{\n background-color: #ffbc58;\n}"]}),e}();t.StepIndicatorComponent=c,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(c,[{type:r.Component,args:[{selector:"step-indicator",templateUrl:"./step-indicator.component.html",styleUrls:["./step-indicator.css"]}]}],(function(){return[]}),{steps:[{type:r.Input,args:["steps"]}]})},558:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LayerPanelComponent=void 0;var r=n(0),i=(n(30),n(616)),o=(n(519),n(0)),a=n(30),l=n(519),s=n(1),c=n(68);function d(e,t){1&e&&o.ɵɵelement(0,"i",9)}function p(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",10),o.ɵɵelementStart(1,"input",11),o.ɵɵlistener("change",(function(){o.ɵɵrestoreView(n);var e=t.$implicit;return o.ɵɵnextContext().toggleBaseLayer(e)})),o.ɵɵelementEnd(),o.ɵɵelementStart(2,"label",12),o.ɵɵelement(3,"localize",13),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=t.$implicit;o.ɵɵadvance(1),o.ɵɵproperty("value",r.id)("checked",r.selected),o.ɵɵadvance(2),o.ɵɵproperty("key",r.label)}}function m(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",18),o.ɵɵelementStart(1,"input",19),o.ɵɵlistener("click",(function(){o.ɵɵrestoreView(n);var e=o.ɵɵnextContext().$implicit;return o.ɵɵnextContext(4).toggleContextLayer(e)})),o.ɵɵelementEnd(),o.ɵɵtext(2),o.ɵɵelementStart(3,"i",20),o.ɵɵlistener("click",(function(){o.ɵɵrestoreView(n);var e=o.ɵɵnextContext().$implicit;return o.ɵɵnextContext(4).removeContextLayer(e)})),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext().$implicit;o.ɵɵadvance(1),o.ɵɵproperty("checked",r.active),o.ɵɵadvance(1),o.ɵɵtextInterpolate1(" ",r.displayLabel," ")}}function u(e,t){if(1&e&&(o.ɵɵelementStart(0,"div"),o.ɵɵtemplate(1,m,4,2,"div",17),o.ɵɵelementEnd()),2&e){var n=t.$implicit;o.ɵɵadvance(1),o.ɵɵproperty("ngIf",n.enabled)}}function g(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",18),o.ɵɵelementStart(1,"label"),o.ɵɵtext(2),o.ɵɵelementEnd(),o.ɵɵelementStart(3,"div",15),o.ɵɵtemplate(4,u,2,1,"div",16),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext().$implicit;o.ɵɵadvance(2),o.ɵɵtextInterpolate(n.displayLabel),o.ɵɵadvance(2),o.ɵɵproperty("ngForOf",n.contextLayers)}}function h(e,t){if(1&e&&(o.ɵɵelementStart(0,"div"),o.ɵɵtemplate(1,g,5,2,"div",17),o.ɵɵelementEnd()),2&e){var n=t.$implicit,r=o.ɵɵnextContext(2);o.ɵɵadvance(1),o.ɵɵproperty("ngIf",r.groupHasEnabledContextLayers(n.oid))}}function f(e,t){if(1&e&&(o.ɵɵelementStart(0,"div"),o.ɵɵelementStart(1,"h4"),o.ɵɵelement(2,"localize",14),o.ɵɵelementEnd(),o.ɵɵelementStart(3,"div",15),o.ɵɵtemplate(4,h,2,1,"div",16),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext();o.ɵɵadvance(4),o.ɵɵproperty("ngForOf",n.contextLayerGroups)}}var y=function(){function e(e,t){this.modalService=e,this.service=t,this.filter=[],this.layerChange=new r.EventEmitter,this.baseLayerChange=new r.EventEmitter,this.baselayerIconHover=!1,this.lists=[],this.baseLayers=[{name:"Satellite",label:"baselayer.satellite",id:"satellite-v9",sprite:"mapbox://sprites/mapbox/satellite-v9",url:"mapbox://mapbox.satellite",selected:!0}],this.contextLayerGroups=[]}return e.prototype.ngOnInit=function(){var e=this;this.service.getAllMasterListVersions().then((function(t){e.lists=t,e.updateContextGroups()}))},e.prototype.ngOnChanges=function(e){e.filter.currentValue!==e.filter.previousValue&&this.updateContextGroups()},e.prototype.updateContextGroups=function(){var e=this;this.lists.forEach((function(t){var n={oid:t.oid,displayLabel:t.displayLabel.localizedValue,contextLayers:[]};t.versions.forEach((function(t){if(-1===e.filter.indexOf(t.oid)){var r={oid:t.oid,displayLabel:t.forDate,active:!1,enabled:!1};n.contextLayers.push(r)}})),n.contextLayers.length>0&&e.contextLayerGroups.push(n)}))},e.prototype.groupHasEnabledContextLayers=function(e){var t=!1;return this.contextLayerGroups.forEach((function(n){n.oid===e&&n.contextLayers.forEach((function(e){e.enabled&&(t=!0)}))})),t},e.prototype.hasEnabledContextLayers=function(){var e=!1;return this.contextLayerGroups.forEach((function(t){t.contextLayers.forEach((function(t){t.enabled&&(e=!0)}))})),e},e.prototype.toggleContextLayer=function(e){e.active=!e.active,this.layerChange.emit(e)},e.prototype.removeContextLayer=function(e){e.active=!1,e.enabled=!1,this.layerChange.emit(e)},e.prototype.addContextLayerModal=function(){this.modalService.show(i.ContextLayerModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0,class:"context-layer-modal"}).content.contextLayerGroups=this.contextLayerGroups},e.prototype.toggleBaseLayer=function(e){this.baseLayers.forEach((function(e){e.active=!1})),e.active=!0,this.baseLayerChange.emit(e)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.BsModalService),o.ɵɵdirectiveInject(l.RegistryService))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["layer-panel"]],inputs:{filter:"filter"},outputs:{layerChange:"layerChange",baseLayerChange:"baseLayerChange"},features:[o.ɵɵNgOnChangesFeature],decls:12,vars:4,consts:[[1,"layer-toggle",3,"mouseenter","mouseleave"],["class","fa fa-bars","style","vertical-align: middle; font-size: 18px; color: black;",4,"ngIf"],[3,"hidden"],[2,"margin-bottom","10px"],["key","explorer.base.layers.label"],["class","row-form",4,"ngFor","ngForOf"],[4,"ngIf"],[1,"btn","btn-primary",3,"click"],["key","explorer.add.context.layer.button.label"],[1,"fa","fa-bars",2,"vertical-align","middle","font-size","18px","color","black"],[1,"row-form"],["type","radio","name","baselayers",1,"layer-toggle-input",3,"value","checked","change"],[1,"layer-toggle-label"],[3,"key"],["key","explorer.context.layers.label"],[1,"list-group"],[4,"ngFor","ngForOf"],["class","list-group-item","style","border: none;",4,"ngIf"],[1,"list-group-item",2,"border","none"],["type","checkbox",3,"checked","click"],["aria-hidden","true",1,"fa","fa-times","delete-btn","clickable",3,"click"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵlistener("mouseenter",(function(){return t.baselayerIconHover=!0}))("mouseleave",(function(){return t.baselayerIconHover=!1})),o.ɵɵtemplate(1,d,1,0,"i",1),o.ɵɵelementStart(2,"div",2),o.ɵɵelementStart(3,"div",3),o.ɵɵelementStart(4,"h4"),o.ɵɵelement(5,"localize",4),o.ɵɵelementEnd(),o.ɵɵtemplate(6,p,4,3,"div",5),o.ɵɵelementEnd(),o.ɵɵelementStart(7,"div"),o.ɵɵtemplate(8,f,5,1,"div",6),o.ɵɵelementStart(9,"button",7),o.ɵɵlistener("click",(function(){return t.addContextLayerModal()})),o.ɵɵtext(10,"+ "),o.ɵɵelement(11,"localize",8),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(1),o.ɵɵproperty("ngIf",!t.baselayerIconHover),o.ɵɵadvance(1),o.ɵɵproperty("hidden",!t.baselayerIconHover),o.ɵɵadvance(4),o.ɵɵproperty("ngForOf",t.baseLayers),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",t.hasEnabledContextLayers()))},directives:[s.NgIf,c.LocalizeComponent,s.NgForOf],styles:["#hierarchy-tree-container[_ngcontent-%COMP%] {\n\theight: 100%;\n overflow-y: auto;\n}\n\n.location-management-widget-section[_ngcontent-%COMP%] {\n\tmargin: 5px 0;\n}\n.location-management-widget-section[_ngcontent-%COMP%] > select[_ngcontent-%COMP%] {\n\tfloat: none !important;\n}\n\n.list-group-item[_ngcontent-%COMP%] {\n\tborder: none;\n\tborder-bottom: 1px solid #ddd;\n\tmargin-bottom: 0;\n}\n.list-group-item[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n\theight: auto;\n}\n\n.breadcrumb[_ngcontent-%COMP%]{\n\tpadding: 10px 0;\n\tbackground-color: white;\n\tmargin:0;\n}\n\n.layer-toggle[_ngcontent-%COMP%] {\n\tcursor: pointer; \n\tbackground: #fff; \n\tpadding: 8px; \n\tborder-radius: 4px;\n\twidth: fit-content;\n}\n\n.layer-toggle[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n\theight: auto;\n}\n.layer-toggle[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n\tmargin-left: 5px;\n}\n\n.arrow[_ngcontent-%COMP%] {\n border: solid black;\n border-width: 0 1px 1px 0;\n display: inline-block;\n padding: 5px;\n}\n.arrow-right[_ngcontent-%COMP%] {\n transform: rotate(-45deg);\n -webkit-transform: rotate(-45deg);\n}\n.arrow-down[_ngcontent-%COMP%] {\n transform: rotate(45deg);\n -webkit-transform: rotate(45deg);\n}\n\n.fa.fa-arrow-left[_ngcontent-%COMP%]::before {\n\tmargin-right:5px;\n}"]}),e}();t.LayerPanelComponent=y,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(y,[{type:r.Component,args:[{selector:"layer-panel",templateUrl:"./layer-panel.component.html",styleUrls:["./location-manager.css"]}]}],(function(){return[{type:a.BsModalService},{type:l.RegistryService}]}),{filter:[{type:r.Input}],layerChange:[{type:r.Output}],baseLayerChange:[{type:r.Output}]})},559:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FeaturePanelComponent=void 0;var r=n(0),i=(n(30),n(203)),o=(n(519),n(16),n(111)),a=n(0),l=n(519),s=n(30),c=n(16),d=n(1),p=n(525),m=n(68),u=n(22),g=["attributeEditor"];function h(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"geoobject-shared-attribute-editor",7,8),a.ɵɵlistener("valid",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext(2).setValid(e)})),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext(2);a.ɵɵproperty("geoObjectType",r.type)("postGeoObject",r.postGeoObject)("isNew",r.isNew)("isGeometryInlined",!1)("hierarchies",r.hierarchies)("readOnly",!r.isEdit)("filterDate",r.forDate)("forDate",r.forDate)("datasetId",r.datasetId)}}function f(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",9),a.ɵɵelementStart(1,"label"),a.ɵɵelement(2,"localize",10),a.ɵɵelementEnd(),a.ɵɵelementStart(3,"textarea",11),a.ɵɵlistener("ngModelChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext(2).reason=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext(2);a.ɵɵadvance(3),a.ɵɵproperty("ngModel",r.reason)}}function y(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"button",12),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(2).onEditAttributes()})),a.ɵɵelement(1,"localize",13),a.ɵɵelementEnd()}}function v(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"button",14),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(2).onCancelInternal()})),a.ɵɵelement(1,"localize",15),a.ɵɵelementEnd()}}function b(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"button",16),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(2).onSubmit()})),a.ɵɵelement(1,"localize",17),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext(2);a.ɵɵproperty("disabled",!r.canSubmit()),a.ɵɵadvance(1),a.ɵɵproperty("key",r.isMaintainer?"modal.button.submit":"change.request.page.title")}}function S(e,t){if(1&e&&(a.ɵɵelementStart(0,"div"),a.ɵɵtemplate(1,h,2,9,"geoobject-shared-attribute-editor",1),a.ɵɵtemplate(2,f,4,1,"div",2),a.ɵɵelementStart(3,"div",3),a.ɵɵtemplate(4,y,2,0,"button",4),a.ɵɵtemplate(5,v,2,0,"button",5),a.ɵɵtemplate(6,b,2,2,"button",6),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵproperty("ngIf",n.hierarchies),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",n.isEdit&&!n.isMaintainer),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",!n.readOnly&&!n.isEdit),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",n.isEdit),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",n.isEdit)}}var C=function(){function e(e,t,n,i){this.service=e,this.modalService=t,this.authService=n,this.geometryService=i,this.MODE={VERSIONS:"VERSIONS",ATTRIBUTES:"ATTRIBUTES",HIERARCHY:"HIERARCHY",GEOMETRY:"GEOMETRY"},this.forDate=new Date,this.readOnly=!1,this._code=null,this.featureChange=new r.EventEmitter,this.modeChange=new r.EventEmitter,this.panelCancel=new r.EventEmitter,this.panelSubmit=new r.EventEmitter,this._isValid=!0,this.mode=null,this.attribute=null,this.isNew=!1,this.isEdit=!1,this.hierarchy=null,this.reason=""}return Object.defineProperty(e.prototype,"code",{set:function(e){this.updateCode(e)},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){this.isMaintainer=this.authService.isSRA()||this.authService.isOrganizationRA(this.type.organizationCode)||this.authService.isGeoObjectTypeOrSuperRM(this.type),this.mode="ATTRIBUTES"},e.prototype.setValid=function(e){this._isValid=e},e.prototype.isValid=function(){return this._isValid&&this.attributeEditor&&this.attributeEditor.isValid()},e.prototype.updateCode=function(e){var t=this;this._code=e,this.postGeoObject=null,this.preGeoObject=null,this.hierarchies=null,null!=e&&null!=this.type&&("__NEW__"!==e?(this.isNew=!1,this.service.getGeoObjectOverTime(e,this.type.code).then((function(e){t.preGeoObject=new i.GeoObjectOverTime(t.type,JSON.parse(JSON.stringify(e)).attributes),t.postGeoObject=new i.GeoObjectOverTime(t.type,JSON.parse(JSON.stringify(t.preGeoObject)).attributes)})).catch((function(e){t.error(e)})),this.service.getHierarchiesForGeoObject(e,this.type.code).then((function(e){t.hierarchies=e})).catch((function(e){t.error(e)}))):(this.isNew=!0,this.service.newGeoObjectOverTime(this.type.code).then((function(e){t.preGeoObject=new i.GeoObjectOverTime(t.type,e.geoObject.attributes),t.postGeoObject=new i.GeoObjectOverTime(t.type,JSON.parse(JSON.stringify(t.preGeoObject)).attributes),t.hierarchies=e.hierarchies,t.setEditMode(!0)}))))},e.prototype.onCancelInternal=function(){this.panelCancel.emit()},e.prototype.canSubmit=function(){return this.isValid()&&(this.isMaintainer||this.reason&&this.reason.trim().length>0)&&(this.isNew||this.attributeEditor&&this.attributeEditor.getChangeRequestEditor().hasChanges())},e.prototype.onSubmit=function(){var e=this;this.isNew?this.service.applyGeoObjectCreate(this.hierarchies,this.postGeoObject,this.isNew,this.datasetId,this.reason).then((function(t){t.isChangeRequest||(e.featureChange.emit(e.postGeoObject),e.updateCode(e._code)),e.panelSubmit.emit(t)})).catch((function(t){e.error(t)})):this.service.applyGeoObjectEdit(this.postGeoObject.attributes.code,this.type.code,this.attributeEditor.getActions(),this.datasetId,this.reason).then((function(t){t.isChangeRequest||(e.featureChange.emit(e.postGeoObject),e.updateCode(e._code)),e.panelSubmit.emit(t)})).catch((function(t){e.error(t)})),this.geometryService.stopEditing()},e.prototype.onManageAttributeVersion=function(e){this.attribute=e,this.mode=this.MODE.VERSIONS},e.prototype.onManageHiearchyVersion=function(e){this.hierarchy=e,this.mode=this.MODE.HIERARCHY},e.prototype.onEditAttributes=function(){this.setEditMode(!this.isEdit),window.document.getElementById("navigator-left-sidebar").scroll({top:0,behavior:"smooth"})},e.prototype.setEditMode=function(e){this.isEdit=e,this.reason=null,this.modeChange.emit(this.isEdit)},e.prototype.error=function(e){this.bsModalRef=o.ErrorHandler.showErrorAsDialog(e,this.modalService)},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(l.RegistryService),a.ɵɵdirectiveInject(s.BsModalService),a.ɵɵdirectiveInject(c.AuthService),a.ɵɵdirectiveInject(l.GeometryService))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["feature-panel"]],viewQuery:function(e,t){if(1&e&&a.ɵɵviewQuery(g,1),2&e){var n;a.ɵɵqueryRefresh(n=a.ɵɵloadQuery())&&(t.attributeEditor=n.first)}},inputs:{datasetId:"datasetId",type:"type",forDate:"forDate",readOnly:"readOnly",code:"code"},outputs:{featureChange:"featureChange",modeChange:"modeChange",panelCancel:"panelCancel",panelSubmit:"panelSubmit"},decls:2,vars:1,consts:[[4,"ngIf"],[3,"geoObjectType","postGeoObject","isNew","isGeometryInlined","hierarchies","readOnly","filterDate","forDate","datasetId","valid",4,"ngIf"],["class","form-group","style","z-index: 0;",4,"ngIf"],[1,"button-holder","text-right",2,"margin-bottom","20px"],["type","submit","class","btn btn-primary","style","width:100%;","role","button",3,"click",4,"ngIf"],["type","button","class","btn btn-default",3,"click",4,"ngIf"],["type","submit","class","btn btn-primary","role","button",3,"disabled","click",4,"ngIf"],[3,"geoObjectType","postGeoObject","isNew","isGeometryInlined","hierarchies","readOnly","filterDate","forDate","datasetId","valid"],["attributeEditor",""],[1,"form-group",2,"z-index","0"],["key","change.request.reason.label"],["rows","4","cols","50","name","reason-input","required","",1,"form-control",3,"ngModel","ngModelChange"],["type","submit","role","button",1,"btn","btn-primary",2,"width","100%",3,"click"],["key","changeovertime.manageVersions.button.label"],["type","button",1,"btn","btn-default",3,"click"],["key","modal.button.cancel"],["type","submit","role","button",1,"btn","btn-primary",3,"disabled","click"],[3,"key"]],template:function(e,t){1&e&&(a.ɵɵelementStart(0,"div"),a.ɵɵtemplate(1,S,7,5,"div",0),a.ɵɵelementEnd()),2&e&&(a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.mode==t.MODE.ATTRIBUTES&&null!=t.postGeoObject))},directives:[d.NgIf,p.GeoObjectSharedAttributeEditorComponent,m.LocalizeComponent,u.DefaultValueAccessor,u.RequiredValidator,u.NgControlStatus,u.NgModel],styles:["#hierarchy-tree-container[_ngcontent-%COMP%] {\n\theight: calc(100vh - 429px);\n overflow-y: auto;\n}\n\n.location-management-widget-section[_ngcontent-%COMP%] {\n\tmargin: 5px 0;\n}\n.location-management-widget-section[_ngcontent-%COMP%] > select[_ngcontent-%COMP%] {\n\tfloat: none !important;\n}\n\n.list-group-item[_ngcontent-%COMP%] {\n\tborder: none;\n\tborder-bottom: 1px solid #ddd;\n\tmargin-bottom: 0;\n}\n.list-group-item[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n\theight: auto;\n}\n\n.breadcrumb[_ngcontent-%COMP%]{\n\tpadding: 10px 0;\n\tbackground-color: white;\n\tmargin:0;\n}\n\n.layer-toggle[_ngcontent-%COMP%] {\n\tcursor: pointer; \n\tbackground: #fff; \n\tpadding: 8px; \n\tborder-radius: 4px;\n\twidth: fit-content;\n}\n\n.layer-toggle[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n\theight: auto;\n}\n.layer-toggle[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n\tmargin-left: 5px;\n}\n\n#attributes-header[_ngcontent-%COMP%] {\n\tbackground: #adadad;\n padding: 2px 15px;\n margin: 10px 0;\n color: white;\n border-radius: 3px;\n}"]}),e}();t.FeaturePanelComponent=C,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(C,[{type:r.Component,args:[{selector:"feature-panel",templateUrl:"./feature-panel.component.html",styleUrls:["./dataset-location-manager.css"]}]}],(function(){return[{type:l.RegistryService},{type:s.BsModalService},{type:c.AuthService},{type:l.GeometryService}]}),{datasetId:[{type:r.Input}],type:[{type:r.Input}],forDate:[{type:r.Input}],readOnly:[{type:r.Input}],code:[{type:r.Input}],attributeEditor:[{type:r.ViewChild,args:["attributeEditor"]}],featureChange:[{type:r.Output}],modeChange:[{type:r.Output}],panelCancel:[{type:r.Output}],panelSubmit:[{type:r.Output}]})},568:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ImportTypesModalComponent=void 0;var r=n(0),i=(n(30),n(31)),o=n(111),a=n(205),l=(n(16),n(0)),s=n(16),c=n(30),d=n(1),p=n(68),m=n(22),u=n(205),g=["myFile"];function h(e,t){if(1&e&&(l.ɵɵelementStart(0,"div",20),l.ɵɵtext(1),l.ɵɵelementEnd()),2&e){var n=l.ɵɵnextContext();l.ɵɵadvance(1),l.ɵɵtextInterpolate(n.message)}}function f(e,t){if(1&e&&(l.ɵɵelementStart(0,"option",21),l.ɵɵtext(1),l.ɵɵelementEnd()),2&e){var n=t.$implicit;l.ɵɵpropertyInterpolate("value",n.code),l.ɵɵadvance(1),l.ɵɵtextInterpolate(n.label.localizedValue)}}var y=function(){function e(e,t,n){this.eventService=e,this.localizationService=t,this.bsModalRef=n,this.organizations=[],this.message=null}return e.prototype.ngOnInit=function(){this.onNodeChange=new i.Subject},e.prototype.init=function(e){var t=this;this.organizations=e;var n={queueLimit:1,removeAfterUpload:!0,url:acp+"/cgr/import-types"};this.uploader=new a.FileUploader(n),this.uploader.onBuildItemForm=function(e,n){n.append("orgCode",t.orgCode)},this.uploader.onBeforeUploadItem=function(e){t.eventService.start()},this.uploader.onCompleteItem=function(e,n,r,i){t.fileRef.nativeElement.value="",t.eventService.complete()},this.uploader.onSuccessItem=function(e,n,r,i){t.onNodeChange.next(!0),t.bsModalRef.hide()},this.uploader.onErrorItem=function(e,n,r,i){var o=JSON.parse(n);t.error({error:o})}},e.prototype.onSelect=function(e){this.orgCode=e},e.prototype.onClick=function(){null!=this.uploader.queue&&this.uploader.queue.length>0?this.uploader.uploadAll():this.error({message:this.localizationService.decode("io.missing.file"),error:{}})},e.prototype.error=function(e){this.message=o.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(l.ɵɵdirectiveInject(s.EventService),l.ɵɵdirectiveInject(s.LocalizationService),l.ɵɵdirectiveInject(c.BsModalRef))},e.ɵcmp=l.ɵɵdefineComponent({type:e,selectors:[["import-types-modal"]],viewQuery:function(e,t){if(1&e&&l.ɵɵviewQuery(g,1),2&e){var n;l.ɵɵqueryRefresh(n=l.ɵɵloadQuery())&&(t.fileRef=n.first)}},decls:33,vars:3,consts:[[1,"modal-body"],["class","alert alert-danger","role","alert",4,"ngIf"],[1,"heading","text-center"],["key","hierarchy.sidebar.importTypes"],["autocomplete","off",1,"modal-form"],["form","ngForm"],[1,"row-holder"],[1,"label-holder"],["key","attribute.organization.label"],[1,"holder"],[3,"change"],[3,"value",4,"ngFor","ngForOf"],["key","hierarchy.sidebar.xmlFile"],["name","file","type","file","ng2FileSelect","","accept",".xml","required","",1,"ghost-input",3,"uploader"],["myFile",""],[1,"button-holder"],["type","button","role","button","aria-disabled","false",1,"btn","btn-default",3,"click"],["key","modal.button.cancel"],["type","submit","role","button","aria-disabled","false",1,"btn","btn-primary",3,"click"],["key","modal.button.ok"],["role","alert",1,"alert","alert-danger"],[3,"value"]],template:function(e,t){1&e&&(l.ɵɵelementStart(0,"div",0),l.ɵɵtemplate(1,h,2,1,"div",1),l.ɵɵelementStart(2,"div",2),l.ɵɵelementStart(3,"h1"),l.ɵɵelement(4,"localize",3),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(5,"form",4,5),l.ɵɵelementStart(7,"fieldset"),l.ɵɵelementStart(8,"div",6),l.ɵɵelementStart(9,"div",7),l.ɵɵelementStart(10,"label"),l.ɵɵelement(11,"localize",8),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(12,"div",9),l.ɵɵelementStart(13,"select",10),l.ɵɵlistener("change",(function(e){return t.onSelect(e.target.value)})),l.ɵɵelement(14,"option"),l.ɵɵtemplate(15,f,2,2,"option",11),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(16,"div",6),l.ɵɵelementStart(17,"div",7),l.ɵɵelementStart(18,"label"),l.ɵɵelement(19,"localize",12),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(20,"div",9),l.ɵɵelement(21,"input",13,14),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(23,"div",6),l.ɵɵelement(24,"div",7),l.ɵɵelementStart(25,"div",9),l.ɵɵelementStart(26,"div",15),l.ɵɵelementStart(27,"button",16),l.ɵɵlistener("click",(function(){return t.bsModalRef.hide()})),l.ɵɵelementStart(28,"span"),l.ɵɵelement(29,"localize",17),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(30,"button",18),l.ɵɵlistener("click",(function(){return t.onClick()})),l.ɵɵelementStart(31,"span"),l.ɵɵelement(32,"localize",19),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd()),2&e&&(l.ɵɵadvance(1),l.ɵɵproperty("ngIf",null!=t.message),l.ɵɵadvance(14),l.ɵɵproperty("ngForOf",t.organizations),l.ɵɵadvance(6),l.ɵɵproperty("uploader",t.uploader))},directives:[d.NgIf,p.LocalizeComponent,m.ɵangular_packages_forms_forms_ba,m.NgControlStatusGroup,m.NgForm,m.NgSelectOption,m.ɵangular_packages_forms_forms_z,d.NgForOf,u.FileSelectDirective],encapsulation:2}),e}();t.ImportTypesModalComponent=y,("undefined"==typeof ngDevMode||ngDevMode)&&l.ɵsetClassMetadata(y,[{type:r.Component,args:[{selector:"import-types-modal",templateUrl:"./import-types-modal.component.html",styleUrls:[]}]}],(function(){return[{type:s.EventService},{type:s.LocalizationService},{type:c.BsModalRef}]}),{fileRef:[{type:r.ViewChild,args:["myFile"]}]})},569:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ExportSystemModalComponent=void 0;var r=n(0),i=(n(30),n(31)),o=(n(16),n(0)),a=n(30),l=n(16),s=n(68),c=n(22),d=n(1);function p(e,t){if(1&e&&(o.ɵɵelementStart(0,"option",14),o.ɵɵtext(1),o.ɵɵelementEnd()),2&e){var n=t.$implicit;o.ɵɵproperty("value",n.oid),o.ɵɵadvance(1),o.ɵɵtextInterpolate(n.label.localizedValue)}}var m=function(){function e(e,t){this.bsModalRef=e,this.externalSystemService=t,this.systems=[],this.system=null}return e.prototype.ngOnInit=function(){var e=this;this.onSystemSet=new i.Subject,this.externalSystemService.getExternalSystems(1,1e3).then((function(t){e.systems=t.resultSet.filter((function(e){return"FhirExternalSystem"===e.type}))})).catch((function(e){}))},e.prototype.confirm=function(){this.bsModalRef.hide(),this.onSystemSet.next(this.system)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.BsModalRef),o.ɵɵdirectiveInject(l.ExternalSystemService))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["export-system-modal"]],decls:22,vars:3,consts:[["tabindex","-1","role","dialog",1,"modal-body"],[1,"heading","text-center"],["key","export-fhir-modal.title"],["name","export-form",1,"modal-form"],[1,"row"],[1,"col-md-12"],["key","export-fhir-modal.system"],["id","format","name","format","required","",1,"select-area",3,"ngModel","ngModelChange"],[3,"value",4,"ngFor","ngForOf"],[1,"button-holder"],["type","button","role","button","aria-disabled","false",1,"btn","btn-default",3,"click"],["key","modal.button.cancel"],["type","button","role","button",1,"btn","btn-primary",3,"disabled","click"],["key","modal.button.submit"],[3,"value"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵelementStart(1,"div",1),o.ɵɵelementStart(2,"h1"),o.ɵɵelement(3,"localize",2),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(4,"form",3),o.ɵɵelementStart(5,"fieldset"),o.ɵɵelementStart(6,"div",4),o.ɵɵelementStart(7,"div",5),o.ɵɵelementStart(8,"label"),o.ɵɵelement(9,"localize",6),o.ɵɵelementEnd(),o.ɵɵelementStart(10,"select",7),o.ɵɵlistener("ngModelChange",(function(e){return t.system=e})),o.ɵɵelement(11,"option"),o.ɵɵtemplate(12,p,2,2,"option",8),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(13,"div",4),o.ɵɵelementStart(14,"div",5),o.ɵɵelementStart(15,"div",9),o.ɵɵelementStart(16,"button",10),o.ɵɵlistener("click",(function(){return t.bsModalRef.hide()})),o.ɵɵelementStart(17,"span"),o.ɵɵelement(18,"localize",11),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(19,"button",12),o.ɵɵlistener("click",(function(){return t.confirm()})),o.ɵɵelementStart(20,"span"),o.ɵɵelement(21,"localize",13),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(10),o.ɵɵproperty("ngModel",t.system),o.ɵɵadvance(2),o.ɵɵproperty("ngForOf",t.systems),o.ɵɵadvance(7),o.ɵɵproperty("disabled",null==t.system||""==t.system))},directives:[s.LocalizeComponent,c.ɵangular_packages_forms_forms_ba,c.NgControlStatusGroup,c.NgForm,c.SelectControlValueAccessor,c.RequiredValidator,c.NgControlStatus,c.NgModel,c.NgSelectOption,c.ɵangular_packages_forms_forms_z,d.NgForOf],encapsulation:2}),e}();t.ExportSystemModalComponent=m,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(m,[{type:r.Component,args:[{selector:"export-system-modal",templateUrl:"./export-system-modal.component.html",styleUrls:[]}]}],(function(){return[{type:a.BsModalRef},{type:l.ExternalSystemService}]}),null)},570:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CreateHierarchyTypeModalComponent=void 0;var r=n(0),i=(n(30),n(31)),o=n(111),a=(n(519),n(16),n(0)),l=n(16),s=n(519),c=n(30),d=n(22),p=n(1),m=n(68),u=n(528),g=n(259);function h(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",39),a.ɵɵtext(1),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵtextInterpolate(n.message)}}function f(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",6),a.ɵɵelementStart(1,"label",40),a.ɵɵelement(2,"localize",41),a.ɵɵelementStart(3,"span",42),a.ɵɵtext(4," ("),a.ɵɵelement(5,"convert-key-label",43),a.ɵɵtext(6,")"),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(7,"input",44),a.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.value=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=t.$implicit,r=a.ɵɵnextContext();a.ɵɵadvance(5),a.ɵɵproperty("key",n.locale),a.ɵɵadvance(2),a.ɵɵproperty("disabled",r.readOnly)("ngModel",n.value)("name","label-"+n.locale)}}function y(e,t){if(1&e&&(a.ɵɵelementStart(0,"option",47),a.ɵɵtext(1),a.ɵɵelementEnd()),2&e){var n=t.$implicit;a.ɵɵproperty("value",n.code),a.ɵɵadvance(1),a.ɵɵtextInterpolate(n.label.localizedValue)}}function v(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"select",45),a.ɵɵlistener("ngModelChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().hierarchyType.organizationCode=e})),a.ɵɵelement(1,"option"),a.ɵɵtemplate(2,y,2,2,"option",46),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext();a.ɵɵproperty("disabled",r.edit||r.readOnly)("ngModel",r.hierarchyType.organizationCode),a.ɵɵadvance(2),a.ɵɵproperty("ngForOf",r.organizations)}}function b(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"span",48),a.ɵɵelementStart(1,"input",49),a.ɵɵlistener("ngModelChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().organizationLabel=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵproperty("ngModel",r.organizationLabel)}}function S(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"span",48),a.ɵɵelementStart(1,"input",49),a.ɵɵlistener("ngModelChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().organizationLabel=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵproperty("ngModel",r.organizationLabel)}}function C(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"button",50),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().handleOnSubmit()})),a.ɵɵelement(1,"localize",51),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext(),i=a.ɵɵreference(3);a.ɵɵproperty("disabled",r.hierarchyType.code.length<1||i.invalid)}}var E=function(){function e(e,t,n,r,i){this.lService=e,this.auth=t,this.registryService=n,this.hierarchyService=r,this.bsModalRef=i,this.organizations=[],this.message=null,this.edit=!1,this.readOnly=!1}return e.prototype.ngOnInit=function(){var e=this;this.onHierarchytTypeCreate=new i.Subject,this.hierarchyType={code:"",label:this.lService.create(),description:this.lService.create(),rootGeoObjectTypes:[],organizationCode:""},this.registryService.getOrganizations().then((function(t){if(e.readOnly)e.organizations=t;else{e.organizations=[];for(var n=0;n1),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",!t.edit&&1==t.organizations.length),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.edit),a.ɵɵadvance(4),a.ɵɵproperty("ngModel",t.hierarchyType.progress)("disabled",t.readOnly),a.ɵɵadvance(4),a.ɵɵproperty("ngModel",t.hierarchyType.acknowledgement)("disabled",t.readOnly),a.ɵɵadvance(4),a.ɵɵproperty("ngModel",t.hierarchyType.disclaimer)("disabled",t.readOnly),a.ɵɵadvance(4),a.ɵɵproperty("ngModel",t.hierarchyType.accessConstraints)("disabled",t.readOnly),a.ɵɵadvance(4),a.ɵɵproperty("ngModel",t.hierarchyType.useConstraints)("disabled",t.readOnly),a.ɵɵadvance(8),a.ɵɵproperty("ngModel",t.hierarchyType.contact)("disabled",t.readOnly),a.ɵɵadvance(4),a.ɵɵproperty("ngModel",t.hierarchyType.phoneNumber)("disabled",t.readOnly),a.ɵɵadvance(4),a.ɵɵproperty("ngModel",t.hierarchyType.email)("disabled",t.readOnly),a.ɵɵadvance(6),a.ɵɵproperty("ngIf",!t.readOnly))},directives:[d.ɵangular_packages_forms_forms_ba,d.NgControlStatusGroup,d.NgForm,p.NgIf,m.LocalizeComponent,d.DefaultValueAccessor,d.RequiredValidator,d.NgControlStatus,d.NgModel,p.NgForOf,u.LocalizedTextComponent,g.ConvertKeyLabel,d.SelectControlValueAccessor,d.NgSelectOption,d.ɵangular_packages_forms_forms_z],encapsulation:2}),e}();t.CreateHierarchyTypeModalComponent=E,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(E,[{type:r.Component,args:[{selector:"create-hierarchy-type-modal",templateUrl:"./create-hierarchy-type-modal.component.html",styleUrls:[]}]}],(function(){return[{type:l.LocalizationService},{type:l.AuthService},{type:s.RegistryService},{type:s.HierarchyService},{type:c.BsModalRef}]}),null)},571:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CreateGeoObjTypeModalComponent=void 0;var r=n(0),i=(n(30),n(31)),o=n(111),a=(n(519),n(16),n(0)),l=n(16),s=n(519),c=n(30),d=n(22),p=n(1),m=n(68),u=n(528),g=n(262),h=n(259);function f(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",42),a.ɵɵtext(1),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵtextInterpolate(n.message)}}function y(e,t){1&e&&a.ɵɵelement(0,"localize",43)}function v(e,t){1&e&&a.ɵɵelement(0,"localize",44)}function b(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",9),a.ɵɵelementStart(1,"label"),a.ɵɵelement(2,"localize",45),a.ɵɵelementStart(3,"span",46),a.ɵɵtext(4," ("),a.ɵɵelement(5,"convert-key-label",47),a.ɵɵtext(6,")"),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(7,"input",48),a.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.value=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=t.$implicit;a.ɵɵadvance(5),a.ɵɵproperty("key",n.locale),a.ɵɵadvance(2),a.ɵɵproperty("ngModel",n.value)("name","label-"+n.locale)("required","defaultLocale"===n.locale)}}function S(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",7),a.ɵɵelementStart(1,"div",16),a.ɵɵelementStart(2,"div",9),a.ɵɵelementStart(3,"label",17),a.ɵɵelement(4,"localize",49),a.ɵɵelementEnd(),a.ɵɵelementStart(5,"div",19),a.ɵɵelementStart(6,"boolean-field",20),a.ɵɵlistener("valueChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().geoObjectType.isAbstract=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext();a.ɵɵadvance(6),a.ɵɵproperty("disable",!0)("value",r.geoObjectType.isAbstract)("localizeLabelKey","attribute.isAbstract.label")}}var C=function(e){return{"chk-checked":e}},E=function(){function e(e,t,n,r){this.lService=e,this.auth=t,this.registryService=n,this.bsModalRef=r,this.organization=null,this.message=null}return e.prototype.ngOnInit=function(){this.onGeoObjTypeCreate=new i.Subject,this.geoObjectType={code:"",label:this.lService.create(),description:this.lService.create(),geometryType:"MULTIPOINT",isLeaf:!1,isGeometryEditable:!0,organizationCode:"",attributes:[]}},e.prototype.init=function(e,t,n,r){this.geoObjectType.isAbstract=r||!1,n&&(this.geoObjectType.superTypeCode=n.code,this.geoObjectType.geometryType=n.geometryType,this.geoObjectType.isPrivate=n.isPrivate),this.parents=t.filter((function(e){return e.isAbstract})),this.organization=e,this.geoObjectType.organizationCode=this.organization.code,this.organizationLabel=this.organization.label.localizedValue},e.prototype.handleOnSubmit=function(){var e=this;this.message=null,this.registryService.createGeoObjectType(JSON.stringify(this.geoObjectType)).then((function(t){e.onGeoObjTypeCreate.next(t),e.bsModalRef.hide()})).catch((function(t){e.error(t)}))},e.prototype.toggleIsLeaf=function(){this.geoObjectType.isLeaf=!this.geoObjectType.isLeaf},e.prototype.toggleIsGeometryEditable=function(){this.geoObjectType.isGeometryEditable=!this.geoObjectType.isGeometryEditable},e.prototype.toggleIsAbstract=function(){this.geoObjectType.isAbstract=!this.geoObjectType.isAbstract},e.prototype.error=function(e){this.message=o.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(l.LocalizationService),a.ɵɵdirectiveInject(l.AuthService),a.ɵɵdirectiveInject(s.RegistryService),a.ɵɵdirectiveInject(c.BsModalRef))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["create-geoobjtype-modal"]],decls:64,vars:18,consts:[[1,"modal-form",3,"ngSubmit"],["form","ngForm"],[1,"modal-body"],["class","alert alert-danger","role","alert",4,"ngIf"],[1,"heading","text-center"],["key","hierarchy.management.create.geoobjecttype.group.title",4,"ngIf"],["key","hierarchy.management.create.geoobjecttype.title",4,"ngIf"],[1,"row"],[1,"col-md-12"],[1,"form-group"],["for","codeInput"],["key","data.property.label.code"],["name","code","type","text","id","codeInput","required","",1,"form-control",3,"ngModel","ngModelChange"],["class","form-group",4,"ngFor","ngForOf"],["key","data.property.label.description",3,"value","inlinelayout","valueChange"],["class","row",4,"ngIf"],[1,"col-md-12",2,"margin-bottom","15px"],[2,"display","block"],["key","geoObjectType.attr.visibility.label"],[1,"check-block"],[3,"disable","value","localizeLabelKey","valueChange"],["for","geometryType"],["key","data.property.label.geometryType"],["name","geometryType","required","",1,"select-area",3,"ngModel","disabled","ngModelChange"],["value","MULTIPOINT"],["key","georegistry.geometry.point"],["value","MULTILINE"],["key","georegistry.geometry.line"],["value","MULTIPOLYGON"],["key","georegistry.geometry.polygon"],[1,"jcf-unselectable","chk-area",2,"margin","0",3,"ngClass","click"],[1,"checkbox-label"],["key","hierarchy.management.option.label.isGeometryEditable"],["for","organization"],["key","attribute.organization.label"],[1,"text"],["type","text","name","organization","disabled","","required","",3,"ngModel","ngModelChange"],[1,"button-holder"],["type","button",1,"btn","btn-default",3,"click"],["key","modal.button.cancel"],["type","submit",1,"btn","btn-primary",3,"disabled"],["key","modal.button.ok"],["role","alert",1,"alert","alert-danger"],["key","hierarchy.management.create.geoobjecttype.group.title"],["key","hierarchy.management.create.geoobjecttype.title"],["key","data.property.label.label"],[2,"color","#BABABA"],[3,"key"],["type","input",1,"form-control",3,"ngModel","name","required","ngModelChange"],["key","attribute.group.label"]],template:function(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"form",0,1),a.ɵɵlistener("ngSubmit",(function(){return a.ɵɵrestoreView(n),a.ɵɵreference(1).valid&&t.handleOnSubmit()})),a.ɵɵelementStart(2,"div",2),a.ɵɵtemplate(3,f,2,1,"div",3),a.ɵɵelementStart(4,"div",4),a.ɵɵelementStart(5,"h1"),a.ɵɵtemplate(6,y,1,0,"localize",5),a.ɵɵtemplate(7,v,1,0,"localize",6),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"div",7),a.ɵɵelementStart(9,"div",8),a.ɵɵelementStart(10,"div",9),a.ɵɵelementStart(11,"div"),a.ɵɵelementStart(12,"label",10),a.ɵɵelement(13,"localize",11),a.ɵɵelementEnd(),a.ɵɵelementStart(14,"input",12),a.ɵɵlistener("ngModelChange",(function(e){return t.geoObjectType.code=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(15,"div",7),a.ɵɵelementStart(16,"div",8),a.ɵɵtemplate(17,b,8,4,"div",13),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(18,"div",7),a.ɵɵelementStart(19,"div",8),a.ɵɵelementStart(20,"localized-text",14),a.ɵɵlistener("valueChange",(function(e){return t.geoObjectType.description=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵtemplate(21,S,7,3,"div",15),a.ɵɵelementStart(22,"div",7),a.ɵɵelementStart(23,"div",16),a.ɵɵelementStart(24,"div",9),a.ɵɵelementStart(25,"label",17),a.ɵɵelement(26,"localize",18),a.ɵɵelementEnd(),a.ɵɵelementStart(27,"div",19),a.ɵɵelementStart(28,"boolean-field",20),a.ɵɵlistener("valueChange",(function(e){return t.geoObjectType.isPrivate=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(29,"div",7),a.ɵɵelementStart(30,"div",8),a.ɵɵelementStart(31,"div",9),a.ɵɵelementStart(32,"label",21),a.ɵɵelement(33,"localize",22),a.ɵɵelementEnd(),a.ɵɵelementStart(34,"select",23),a.ɵɵlistener("ngModelChange",(function(e){return t.geoObjectType.geometryType=e})),a.ɵɵelement(35,"option"),a.ɵɵelementStart(36,"option",24),a.ɵɵelement(37,"localize",25),a.ɵɵelementEnd(),a.ɵɵelementStart(38,"option",26),a.ɵɵelement(39,"localize",27),a.ɵɵelementEnd(),a.ɵɵelementStart(40,"option",28),a.ɵɵelement(41,"localize",29),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(42,"div",7),a.ɵɵelementStart(43,"div",16),a.ɵɵelementStart(44,"div",9),a.ɵɵelementStart(45,"div",19),a.ɵɵelementStart(46,"div",30),a.ɵɵlistener("click",(function(){return t.toggleIsGeometryEditable()})),a.ɵɵelement(47,"span"),a.ɵɵelementEnd(),a.ɵɵelementStart(48,"label",31),a.ɵɵelement(49,"localize",32),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(50,"div",7),a.ɵɵelementStart(51,"div",8),a.ɵɵelementStart(52,"div",9),a.ɵɵelementStart(53,"label",33),a.ɵɵelement(54,"localize",34),a.ɵɵelementEnd(),a.ɵɵelementStart(55,"span",35),a.ɵɵelementStart(56,"input",36),a.ɵɵlistener("ngModelChange",(function(e){return t.organizationLabel=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(57,"div",7),a.ɵɵelementStart(58,"div",8),a.ɵɵelementStart(59,"div",37),a.ɵɵelementStart(60,"button",38),a.ɵɵlistener("click",(function(){return t.bsModalRef.hide()})),a.ɵɵelement(61,"localize",39),a.ɵɵelementEnd(),a.ɵɵelementStart(62,"button",40),a.ɵɵelement(63,"localize",41),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵreference(1);a.ɵɵadvance(3),a.ɵɵproperty("ngIf",null!=t.message),a.ɵɵadvance(3),a.ɵɵproperty("ngIf",t.geoObjectType.isAbstract),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",!t.geoObjectType.isAbstract),a.ɵɵadvance(7),a.ɵɵproperty("ngModel",t.geoObjectType.code),a.ɵɵadvance(3),a.ɵɵproperty("ngForOf",t.geoObjectType.label.localeValues),a.ɵɵadvance(3),a.ɵɵproperty("value",t.geoObjectType.description)("inlinelayout",!0),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",!t.geoObjectType.superTypeCode),a.ɵɵadvance(7),a.ɵɵproperty("disable",null!=t.geoObjectType.superTypeCode)("value",t.geoObjectType.isPrivate)("localizeLabelKey","geoObjectType.attr.isPrivate"),a.ɵɵadvance(6),a.ɵɵproperty("ngModel",t.geoObjectType.geometryType)("disabled",null!=t.geoObjectType.superTypeCode&&""!=t.geoObjectType.superTypeCode),a.ɵɵadvance(12),a.ɵɵproperty("ngClass",a.ɵɵpureFunction1(16,C,t.geoObjectType.isGeometryEditable)),a.ɵɵadvance(10),a.ɵɵproperty("ngModel",t.organizationLabel),a.ɵɵadvance(6),a.ɵɵproperty("disabled",r.invalid)}},directives:[d.ɵangular_packages_forms_forms_ba,d.NgControlStatusGroup,d.NgForm,p.NgIf,m.LocalizeComponent,d.DefaultValueAccessor,d.RequiredValidator,d.NgControlStatus,d.NgModel,p.NgForOf,u.LocalizedTextComponent,g.BooleanFieldComponent,d.SelectControlValueAccessor,d.NgSelectOption,d.ɵangular_packages_forms_forms_z,p.NgClass,h.ConvertKeyLabel],encapsulation:2}),e}();t.CreateGeoObjTypeModalComponent=E,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(E,[{type:r.Component,args:[{selector:"create-geoobjtype-modal",templateUrl:"./create-geoobjtype-modal.component.html",styleUrls:[]}]}],(function(){return[{type:l.LocalizationService},{type:l.AuthService},{type:s.RegistryService},{type:c.BsModalRef}]}),null)},572:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ManageGeoObjectTypeModalComponent=void 0;var r=n(0),i=n(7),o=(n(30),n(31)),a=n(111),l=n(258),s=(n(519),n(0)),c=n(30),d=n(519),p=n(22),m=n(155),u=n(1),g=n(573),h=n(574),f=n(576),y=n(578),v=n(579);function b(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"geoobjecttype-input",5),s.ɵɵlistener("geoObjectTypeChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext().onGeoObjectTypeChange(e)})),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext();s.ɵɵproperty("readOnly",r.readOnly)("geoObjectType",r.geoObjectType)("setGeoObjectType",r.geoObjectType)}}function S(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"define-attribute-modal-content",6),s.ɵɵlistener("geoObjectTypeChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext().onGeoObjectTypeChange(e)})),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext();s.ɵɵproperty("geoObjectType",r.geoObjectType)}}function C(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"edit-attribute-modal-content",7),s.ɵɵlistener("geoObjectTypeChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext().onGeoObjectTypeChange(e)})),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext();s.ɵɵproperty("geoObjectType",r.geoObjectType)("attribute",r.modalState.attribute)}}function E(e,t){if(1&e&&s.ɵɵelement(0,"manage-term-options",8),2&e){var n=s.ɵɵnextContext();s.ɵɵproperty("geoObjectType",n.geoObjectType)("attribute",n.modalState.attribute)}}function x(e,t){if(1&e&&s.ɵɵelement(0,"edit-term-option-input",9),2&e){var n=s.ɵɵnextContext();s.ɵɵproperty("geoObjectType",n.geoObjectType)("attribute",n.modalState.attribute)("termOption",n.modalState.termOption)}}var O=function(){function e(e,t,n){var r=this;this.bsModalRef=e,this.confirmBsModalRef=t,this.message=null,this.modalState={state:l.GeoObjectTypeModalStates.manageGeoObjectType,attribute:"",termOption:""},this.readOnly=!1,this.modalStateSubscription=n.modalStepChange.subscribe((function(e){r.modalState=e}))}return e.prototype.ngOnInit=function(){this.onGeoObjectTypeSubmitted=new o.Subject},e.prototype.ngOnDestroy=function(){this.modalStateSubscription.unsubscribe()},e.prototype.onModalStateChange=function(e){this.modalState=e},e.prototype.onGeoObjectTypeChange=function(e){this.onGeoObjectTypeSubmitted.next(e)},e.prototype.update=function(){},e.prototype.close=function(){this.bsModalRef.hide()},e.prototype.error=function(e){this.message=a.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(s.ɵɵdirectiveInject(c.BsModalRef),s.ɵɵdirectiveInject(c.BsModalRef),s.ɵɵdirectiveInject(d.GeoObjectTypeManagementService))},e.ɵcmp=s.ɵɵdefineComponent({type:e,selectors:[["manage-geoobjecttype-modal"]],decls:7,vars:5,consts:[[3,"readOnly","geoObjectType","setGeoObjectType","geoObjectTypeChange",4,"ngIf"],[3,"geoObjectType","geoObjectTypeChange",4,"ngIf"],[3,"geoObjectType","attribute","geoObjectTypeChange",4,"ngIf"],[3,"geoObjectType","attribute",4,"ngIf"],[3,"geoObjectType","attribute","termOption",4,"ngIf"],[3,"readOnly","geoObjectType","setGeoObjectType","geoObjectTypeChange"],[3,"geoObjectType","geoObjectTypeChange"],[3,"geoObjectType","attribute","geoObjectTypeChange"],[3,"geoObjectType","attribute"],[3,"geoObjectType","attribute","termOption"]],template:function(e,t){1&e&&(s.ɵɵelementStart(0,"form"),s.ɵɵelement(1,"modal-step-indicator"),s.ɵɵtemplate(2,b,1,3,"geoobjecttype-input",0),s.ɵɵtemplate(3,S,1,1,"define-attribute-modal-content",1),s.ɵɵtemplate(4,C,1,2,"edit-attribute-modal-content",2),s.ɵɵtemplate(5,E,1,2,"manage-term-options",3),s.ɵɵtemplate(6,x,1,3,"edit-term-option-input",4),s.ɵɵelementEnd()),2&e&&(s.ɵɵadvance(2),s.ɵɵproperty("ngIf","MANAGE-GEO-OBJECT-TYPE"===t.modalState.state),s.ɵɵadvance(1),s.ɵɵproperty("ngIf","DEFINE-ATTRIBUTE"===t.modalState.state),s.ɵɵadvance(1),s.ɵɵproperty("ngIf","EDIT-ATTRIBUTE"===t.modalState.state),s.ɵɵadvance(1),s.ɵɵproperty("ngIf","MANAGE-TERM-OPTION"===t.modalState.state),s.ɵɵadvance(1),s.ɵɵproperty("ngIf","EDIT-TERM-OPTION"===t.modalState.state))},directives:[p.ɵangular_packages_forms_forms_ba,p.NgControlStatusGroup,p.NgForm,m.ModalStepIndicatorComponent,u.NgIf,g.GeoObjectTypeInputComponent,h.DefineAttributeModalContentComponent,f.EditAttributeModalContentComponent,y.ManageTermOptionsComponent,v.EditTermOptionInputComponent],styles:[""],data:{animation:[[i.trigger("fadeInOut",[i.transition("void => *",[i.style({opacity:0}),i.animate("500ms")]),i.transition(":leave",i.animate("500ms",i.style({opacity:0})))])]]}}),e}();t.ManageGeoObjectTypeModalComponent=O,("undefined"==typeof ngDevMode||ngDevMode)&&s.ɵsetClassMetadata(O,[{type:r.Component,args:[{selector:"manage-geoobjecttype-modal",templateUrl:"./manage-geoobjecttype-modal.component.html",styleUrls:["./manage-geoobjecttype-modal.css"],animations:[[i.trigger("fadeInOut",[i.transition("void => *",[i.style({opacity:0}),i.animate("500ms")]),i.transition(":leave",i.animate("500ms",i.style({opacity:0})))])]]}]}],(function(){return[{type:c.BsModalRef},{type:c.BsModalRef},{type:d.GeoObjectTypeManagementService}]}),null)},573:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GeoObjectTypeInputComponent=void 0;var r=n(0),i=n(7),o=(n(30),n(261)),a=n(111),l=(n(16),n(203),n(258)),s=(n(519),n(0)),c=n(30),d=n(16),p=n(519),m=n(1),u=n(22),g=n(68),h=n(533),f=n(528),y=n(262),v=n(33),b=n(113);function S(e,t){if(1&e&&(s.ɵɵelementStart(0,"div",4),s.ɵɵtext(1),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext(2);s.ɵɵadvance(1),s.ɵɵtextInterpolate(n.message)}}function C(e,t){if(1&e&&(s.ɵɵelementStart(0,"div",9),s.ɵɵelementStart(1,"div",10),s.ɵɵelement(2,"localize",44),s.ɵɵelementEnd(),s.ɵɵelementStart(3,"div",12),s.ɵɵelementStart(4,"span",13),s.ɵɵtext(5),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext(3);s.ɵɵadvance(5),s.ɵɵtextInterpolate1(" ",n.geoObjectType.superTypeCode," ")}}function E(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"a",48),s.ɵɵlistener("click",(function(e){s.ɵɵrestoreView(n);var t=s.ɵɵnextContext().$implicit;return s.ɵɵnextContext(3).editAttribute(t,e)})),s.ɵɵpipe(1,"localize"),s.ɵɵelementEnd()}2&e&&s.ɵɵproperty("title",s.ɵɵpipeBind1(1,1,"modal.button.edit"))}function x(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"a",49),s.ɵɵlistener("click",(function(e){s.ɵɵrestoreView(n);var t=s.ɵɵnextContext().$implicit;return s.ɵɵnextContext(3).removeAttributeType(t,e)})),s.ɵɵpipe(1,"localize"),s.ɵɵelementEnd()}2&e&&s.ɵɵproperty("title",s.ɵɵpipeBind1(1,1,"modal.button.remove"))}function O(e,t){if(1&e&&(s.ɵɵelementStart(0,"tr"),s.ɵɵelementStart(1,"td"),s.ɵɵtext(2),s.ɵɵelementEnd(),s.ɵɵelementStart(3,"td",45),s.ɵɵtemplate(4,E,2,3,"a",46),s.ɵɵtemplate(5,x,2,3,"a",47),s.ɵɵelementEnd(),s.ɵɵelementEnd()),2&e){var n=t.$implicit;s.ɵɵadvance(2),s.ɵɵtextInterpolate(n.label.localizedValue),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",!n.isDefault&&"keyName"!==n.code),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",!n.isDefault&&"keyName"!==n.code)}}function I(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"button",50),s.ɵɵlistener("click",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext(3).update()})),s.ɵɵelement(1,"localize",51),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(3);s.ɵɵproperty("disabled",!r.isValid())}}function w(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"form",5,6),s.ɵɵlistener("ngSubmit",(function(){return s.ɵɵrestoreView(n),s.ɵɵreference(1).valid})),s.ɵɵelementStart(2,"div",7),s.ɵɵelementStart(3,"h1"),s.ɵɵelement(4,"localize",8),s.ɵɵtext(5),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(6,"fieldset"),s.ɵɵelementStart(7,"div",9),s.ɵɵelementStart(8,"div",10),s.ɵɵelementStart(9,"label"),s.ɵɵelement(10,"localize",11),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(11,"div",12),s.ɵɵelementStart(12,"span",13),s.ɵɵelementStart(13,"input",14),s.ɵɵlistener("ngModelChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).editGeoObjectType.code=e})),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(14,"localized-input",15),s.ɵɵlistener("valueChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).editGeoObjectType.label=e})),s.ɵɵelementEnd(),s.ɵɵelementStart(15,"localized-text",16),s.ɵɵlistener("valueChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).editGeoObjectType.description=e})),s.ɵɵelementEnd(),s.ɵɵelementStart(16,"div",9),s.ɵɵelementStart(17,"div",10),s.ɵɵelementStart(18,"label"),s.ɵɵelement(19,"localize",17),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(20,"div",12),s.ɵɵelementStart(21,"boolean-field",18),s.ɵɵlistener("valueChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).geoObjectType.isAbstract=e})),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(22,"div",9),s.ɵɵelementStart(23,"div",10),s.ɵɵelementStart(24,"label"),s.ɵɵelement(25,"localize",19),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(26,"div",12),s.ɵɵelementStart(27,"boolean-field",18),s.ɵɵlistener("valueChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).editGeoObjectType.isPrivate=e})),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵtemplate(28,C,6,1,"div",20),s.ɵɵelementStart(29,"div",9),s.ɵɵelementStart(30,"div",10),s.ɵɵelementStart(31,"label"),s.ɵɵelement(32,"localize",21),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(33,"div",12),s.ɵɵelementStart(34,"select",22),s.ɵɵlistener("ngModelChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).editGeoObjectType.geometryType=e})),s.ɵɵelement(35,"option"),s.ɵɵelementStart(36,"option",23),s.ɵɵelement(37,"localize",24),s.ɵɵelementEnd(),s.ɵɵelementStart(38,"option",25),s.ɵɵelement(39,"localize",26),s.ɵɵelementEnd(),s.ɵɵelementStart(40,"option",27),s.ɵɵelement(41,"localize",28),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(42,"div",9),s.ɵɵelementStart(43,"div",10),s.ɵɵelementStart(44,"label"),s.ɵɵelement(45,"localize",29),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(46,"div",12),s.ɵɵelementStart(47,"boolean-field",18),s.ɵɵlistener("valueChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).editGeoObjectType.isGeometryEditable=e})),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(48,"div",9),s.ɵɵelementStart(49,"div",10),s.ɵɵelementStart(50,"label"),s.ɵɵelement(51,"localize",30),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(52,"div",12),s.ɵɵelementStart(53,"span",13),s.ɵɵelementStart(54,"input",31),s.ɵɵlistener("ngModelChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).organizationLabel=e})),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(55,"div",9),s.ɵɵelementStart(56,"div",10),s.ɵɵelementStart(57,"label"),s.ɵɵelement(58,"localize",32),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(59,"div",12),s.ɵɵelementStart(60,"div",33),s.ɵɵelementStart(61,"div",34),s.ɵɵelementStart(62,"div",35),s.ɵɵelementStart(63,"table",36),s.ɵɵelementStart(64,"tbody"),s.ɵɵtemplate(65,O,6,3,"tr",37),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(66,"i",38),s.ɵɵlistener("click",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).defineAttributeModal()})),s.ɵɵelement(67,"localize",39),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(68,"div",9),s.ɵɵelementStart(69,"div",40),s.ɵɵelementStart(70,"button",41),s.ɵɵlistener("click",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).close()})),s.ɵɵelement(71,"localize",42),s.ɵɵelementEnd(),s.ɵɵtemplate(72,I,2,1,"button",43),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(2);s.ɵɵadvance(5),s.ɵɵtextInterpolate1(" : ",r.editGeoObjectType.label.localizedValue," "),s.ɵɵadvance(8),s.ɵɵproperty("ngModel",r.editGeoObjectType.code),s.ɵɵadvance(1),s.ɵɵproperty("disabled",r.readOnly)("value",r.editGeoObjectType.label),s.ɵɵadvance(1),s.ɵɵproperty("disabled",r.readOnly)("value",r.editGeoObjectType.description),s.ɵɵadvance(6),s.ɵɵproperty("disable",!0)("value",r.geoObjectType.isAbstract)("localizeLabelKey","attribute.isAbstract.label"),s.ɵɵadvance(6),s.ɵɵproperty("disable",r.geoObjectType.superTypeCode)("value",r.editGeoObjectType.isPrivate)("localizeLabelKey","geoObjectType.attr.isPrivate"),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",!r.geoObjectType.isAbstract&&r.geoObjectType.superTypeCode),s.ɵɵadvance(6),s.ɵɵproperty("ngModel",r.editGeoObjectType.geometryType),s.ɵɵadvance(13),s.ɵɵproperty("disable",r.readOnly)("value",r.editGeoObjectType.isGeometryEditable)("localizeLabelKey","hierarchy.management.option.label.isGeometryEditable"),s.ɵɵadvance(7),s.ɵɵproperty("ngModel",r.organizationLabel),s.ɵɵadvance(11),s.ɵɵproperty("ngForOf",r.geoObjectType.attributes),s.ɵɵadvance(7),s.ɵɵproperty("ngIf",!r.readOnly)}}function M(e,t){if(1&e&&(s.ɵɵelementStart(0,"div",1),s.ɵɵtemplate(1,S,2,1,"div",2),s.ɵɵtemplate(2,w,73,20,"form",3),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext();s.ɵɵadvance(1),s.ɵɵproperty("ngIf",null!=n.message),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",n.editGeoObjectType)}}var T=function(){function e(e,t,n,i,o,a,s){this.bsModalRef=e,this.confirmBsModalRef=t,this.modalService=n,this.modalStepIndicatorService=i,this.geoObjectTypeManagementService=o,this.localizationService=a,this.registryService=s,this.readOnly=!1,this.geoObjectTypeChange=new r.EventEmitter,this.message=null,this.modalState={state:l.GeoObjectTypeModalStates.manageGeoObjectType,attribute:"",termOption:""},this.modalStepConfig={steps:[{label:this.localizationService.decode("modal.step.indicator.manage.geoobjecttype"),active:!0,enabled:!0}]}}return Object.defineProperty(e.prototype,"in",{set:function(e){e&&(this.editGeoObjectType=JSON.parse(JSON.stringify(e)))},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){this.modalStepIndicatorService.setStepConfig(this.modalStepConfig),this.geoObjectTypeManagementService.setModalState(this.modalState),this.fetchOrganizationLabel()},e.prototype.defineAttributeModal=function(){this.geoObjectTypeManagementService.setModalState({state:l.GeoObjectTypeModalStates.defineAttribute,attribute:"",termOption:""})},e.prototype.fetchOrganizationLabel=function(){var e=this;this.registryService.getOrganizations().then((function(t){for(var n=0;n *",[i.style({opacity:0}),i.animate("500ms")]),i.transition(":leave",i.animate("500ms",i.style({opacity:0})))])]]}}),e}();t.GeoObjectTypeInputComponent=T,("undefined"==typeof ngDevMode||ngDevMode)&&s.ɵsetClassMetadata(T,[{type:r.Component,args:[{selector:"geoobjecttype-input",templateUrl:"./geoobjecttype-input.component.html",styleUrls:["./geoobjecttype-input.css"],animations:[[i.trigger("fadeInOut",[i.transition("void => *",[i.style({opacity:0}),i.animate("500ms")]),i.transition(":leave",i.animate("500ms",i.style({opacity:0})))])]]}]}],(function(){return[{type:c.BsModalRef},{type:c.BsModalRef},{type:c.BsModalService},{type:d.ModalStepIndicatorService},{type:p.GeoObjectTypeManagementService},{type:d.LocalizationService},{type:p.RegistryService}]}),{readOnly:[{type:r.Input}],geoObjectType:[{type:r.Input}],geoObjectTypeChange:[{type:r.Output}],in:[{type:r.Input,args:["setGeoObjectType"]}]})},574:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DefineAttributeModalContentComponent=void 0;var r=n(0),i=(n(30),n(111)),o=(n(16),n(203)),a=n(258),l=(n(519),n(530)),s=n(0),c=n(30),d=n(16),p=n(519),m=n(22),u=n(1),g=n(68),h=n(530);function f(e,t){if(1&e&&(s.ɵɵelementStart(0,"div",24),s.ɵɵtext(1),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext();s.ɵɵadvance(1),s.ɵɵtextInterpolate(n.message)}}var y=function(e){return{active:e}},v=function(){function e(e,t,n,i,o){this.bsModalRef=e,this.modalStepIndicatorService=t,this.geoObjectTypeManagementService=n,this.localizeService=i,this.registryService=o,this.geoObjectTypeChange=new r.EventEmitter,this.message=null,this.newAttribute=null,this.modalStepConfig={steps:[{label:this.localizeService.decode("modal.step.indicator.manage.geoobjecttype"),active:!0,enabled:!1},{label:this.localizeService.decode("modal.step.indicator.manage.attributes"),active:!0,enabled:!1},{label:this.localizeService.decode("modal.step.indicator.create.attribute"),active:!0,enabled:!0}]},this.modalState={state:a.GeoObjectTypeModalStates.defineAttribute,attribute:"",termOption:""}}return e.prototype.ngOnInit=function(){this.setAttribute("character"),this.modalStepIndicatorService.setStepConfig(this.modalStepConfig)},e.prototype.ngAfterViewInit=function(){this.attributeInputComponent&&this.attributeInputComponent.animate()},e.prototype.handleOnSubmit=function(){var e=this;this.registryService.addAttributeType(this.geoObjectType.code,this.newAttribute).then((function(t){e.geoObjectType.attributes.push(t),e.geoObjectTypeManagementService.setModalState({state:a.GeoObjectTypeModalStates.manageGeoObjectType,attribute:"",termOption:""}),e.geoObjectTypeChange.emit(e.geoObjectType)})).catch((function(t){e.error(t)}))},e.prototype.setAttribute=function(e){this.newAttribute="term"===e?new o.AttributeTermType("",e,this.localizeService.create(),this.localizeService.create(),!1,!1,!1,!0):"float"===e?new o.AttributeDecimalType("",e,this.localizeService.create(),this.localizeService.create(),!1,!1,!1,!0):new o.AttributeType("",e,this.localizeService.create(),this.localizeService.create(),!1,!1,!1,!0)},e.prototype.isFormValid=function(){var e=!1;return this.attributeInputComponent&&(e=this.attributeInputComponent.isValid()),!!e},e.prototype.cancel=function(){this.geoObjectTypeManagementService.setModalState({state:a.GeoObjectTypeModalStates.manageGeoObjectType,attribute:"",termOption:""})},e.prototype.error=function(e){this.message=i.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(s.ɵɵdirectiveInject(c.BsModalRef),s.ɵɵdirectiveInject(d.ModalStepIndicatorService),s.ɵɵdirectiveInject(p.GeoObjectTypeManagementService),s.ɵɵdirectiveInject(d.LocalizationService),s.ɵɵdirectiveInject(p.RegistryService))},e.ɵcmp=s.ɵɵdefineComponent({type:e,selectors:[["define-attribute-modal-content"]],viewQuery:function(e,t){if(1&e&&s.ɵɵviewQuery(l.AttributeInputComponent,1),2&e){var n;s.ɵɵqueryRefresh(n=s.ɵɵloadQuery())&&(t.attributeInputComponent=n.first)}},inputs:{geoObjectType:"geoObjectType"},outputs:{geoObjectTypeChange:"geoObjectTypeChange"},decls:33,vars:24,consts:[[1,"modal-body"],[1,"modal-form",3,"ngSubmit"],["form","ngForm"],[1,""],["class","alert alert-danger","role","alert",4,"ngIf"],[1,"heading"],["key","hierarchy.management.define.attribute.title"],[1,"row"],[1,"col-md-12",2,"margin-bottom","20px"],[1,"btn-group","define-attribute-btns"],[1,"btn","full-width-radio-button",3,"ngClass","click"],["key","data.type.label.text"],["key","data.type.label.integer"],["key","data.type.label.float"],["key","data.type.label.date"],["key","data.type.label.boolean"],["key","data.type.label.term"],[3,"disableCodeField","excludeDescription","isDecimal","attribute","attributeChange"],[1,"col-md-12"],[1,"button-holder"],["type","button",1,"btn","btn-default",3,"click"],["key","modal.button.cancel"],["type","submit",1,"btn","btn-primary",3,"disabled"],["key","modal.button.submit"],["role","alert",1,"alert","alert-danger"]],template:function(e,t){1&e&&(s.ɵɵelementStart(0,"div",0),s.ɵɵelementStart(1,"form",1,2),s.ɵɵlistener("ngSubmit",(function(){return t.handleOnSubmit()})),s.ɵɵelementStart(3,"div",3),s.ɵɵelementStart(4,"div",3),s.ɵɵtemplate(5,f,2,1,"div",4),s.ɵɵelementStart(6,"div",5),s.ɵɵelementStart(7,"h1"),s.ɵɵelement(8,"localize",6),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(9,"div",7),s.ɵɵelementStart(10,"div",8),s.ɵɵelementStart(11,"div",9),s.ɵɵelementStart(12,"label",10),s.ɵɵlistener("click",(function(){return t.setAttribute("character")})),s.ɵɵelement(13,"localize",11),s.ɵɵelementEnd(),s.ɵɵelementStart(14,"label",10),s.ɵɵlistener("click",(function(){return t.setAttribute("integer")})),s.ɵɵelement(15,"localize",12),s.ɵɵelementEnd(),s.ɵɵelementStart(16,"label",10),s.ɵɵlistener("click",(function(){return t.setAttribute("float")})),s.ɵɵelement(17,"localize",13),s.ɵɵelementEnd(),s.ɵɵelementStart(18,"label",10),s.ɵɵlistener("click",(function(){return t.setAttribute("date")})),s.ɵɵelement(19,"localize",14),s.ɵɵelementEnd(),s.ɵɵelementStart(20,"label",10),s.ɵɵlistener("click",(function(){return t.setAttribute("boolean")})),s.ɵɵelement(21,"localize",15),s.ɵɵelementEnd(),s.ɵɵelementStart(22,"label",10),s.ɵɵlistener("click",(function(){return t.setAttribute("term")})),s.ɵɵelement(23,"localize",16),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(24,"fieldset"),s.ɵɵelementStart(25,"attribute-input",17),s.ɵɵlistener("attributeChange",(function(e){return t.newAttribute=e})),s.ɵɵelementEnd(),s.ɵɵelementStart(26,"div",7),s.ɵɵelementStart(27,"div",18),s.ɵɵelementStart(28,"div",19),s.ɵɵelementStart(29,"button",20),s.ɵɵlistener("click",(function(){return t.cancel()})),s.ɵɵelement(30,"localize",21),s.ɵɵelementEnd(),s.ɵɵelementStart(31,"button",22),s.ɵɵelement(32,"localize",23),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd()),2&e&&(s.ɵɵadvance(5),s.ɵɵproperty("ngIf",null!=t.message),s.ɵɵadvance(7),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(12,y,"character"===t.newAttribute.type)),s.ɵɵadvance(2),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(14,y,"integer"===t.newAttribute.type)),s.ɵɵadvance(2),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(16,y,"float"===t.newAttribute.type)),s.ɵɵadvance(2),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(18,y,"date"===t.newAttribute.type)),s.ɵɵadvance(2),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(20,y,"boolean"===t.newAttribute.type)),s.ɵɵadvance(2),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(22,y,"term"===t.newAttribute.type)),s.ɵɵadvance(3),s.ɵɵproperty("disableCodeField",!1)("excludeDescription",!1)("isDecimal","float"===t.newAttribute.type)("attribute",t.newAttribute),s.ɵɵadvance(6),s.ɵɵproperty("disabled",!t.isFormValid()))},directives:[m.ɵangular_packages_forms_forms_ba,m.NgControlStatusGroup,m.NgForm,u.NgIf,g.LocalizeComponent,u.NgClass,h.AttributeInputComponent],styles:[".btn-group.define-attribute-btns[_ngcontent-%COMP%] {\n \n margin: 0 auto;\n display: block;\n \n}"]}),e}();t.DefineAttributeModalContentComponent=v,("undefined"==typeof ngDevMode||ngDevMode)&&s.ɵsetClassMetadata(v,[{type:r.Component,args:[{selector:"define-attribute-modal-content",templateUrl:"./define-attribute-modal-content.component.html",styleUrls:["./define-attribute-modal-content.css"]}]}],(function(){return[{type:c.BsModalRef},{type:d.ModalStepIndicatorService},{type:p.GeoObjectTypeManagementService},{type:d.LocalizationService},{type:p.RegistryService}]}),{geoObjectType:[{type:r.Input}],geoObjectTypeChange:[{type:r.Output}],attributeInputComponent:[{type:r.ViewChild,args:[l.AttributeInputComponent]}]})},575:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GeoObjectAttributeCodeValidator=void 0;var r=n(0),i=n(22),o=n(0);var a=function(){function e(){this.validator=function(e){if(e.value)return-1===e.value.indexOf(" ")?null:{geoObjectAttributeCode:{valid:!1}}}}return e.prototype.validate=function(e){return this.validator(e)},e.ɵfac=function(t){return new(t||e)},e.ɵdir=o.ɵɵdefineDirective({type:e,selectors:[["","geoObjectAttributeCode","","ngModel",""]],features:[o.ɵɵProvidersFeature([{provide:i.NG_VALIDATORS,useExisting:e,multi:!0}])]}),e}();t.GeoObjectAttributeCodeValidator=a,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(a,[{type:r.Directive,args:[{selector:"[geoObjectAttributeCode][ngModel]",providers:[{provide:i.NG_VALIDATORS,useExisting:a,multi:!0}]}]}],(function(){return[]}),null)},576:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EditAttributeModalContentComponent=void 0;var r=n(0),i=n(7),o=(n(30),n(203),n(258)),a=n(111),l=(n(16),n(519),n(530)),s=n(0),c=n(30),d=n(16),p=n(519),m=n(22),u=n(1),g=n(68),h=n(530),f=n(577);function y(e,t){if(1&e&&(s.ɵɵelementStart(0,"div",17),s.ɵɵtext(1),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext();s.ɵɵadvance(1),s.ɵɵtextInterpolate(n.message)}}function v(e,t){1&e&&(s.ɵɵelementStart(0,"h4",18),s.ɵɵelement(1,"localize",19),s.ɵɵtext(2,": "),s.ɵɵelement(3,"localize",20),s.ɵɵelementEnd())}function b(e,t){1&e&&(s.ɵɵelementStart(0,"h4",18),s.ɵɵelement(1,"localize",19),s.ɵɵtext(2,": "),s.ɵɵelement(3,"localize",21),s.ɵɵelementEnd())}function S(e,t){1&e&&(s.ɵɵelementStart(0,"h4",18),s.ɵɵelement(1,"localize",19),s.ɵɵtext(2,": "),s.ɵɵelement(3,"localize",22),s.ɵɵelementEnd())}function C(e,t){1&e&&(s.ɵɵelementStart(0,"h4",18),s.ɵɵelement(1,"localize",19),s.ɵɵtext(2,": "),s.ɵɵelement(3,"localize",23),s.ɵɵelementEnd())}function E(e,t){1&e&&(s.ɵɵelementStart(0,"h4",18),s.ɵɵelement(1,"localize",19),s.ɵɵtext(2,": "),s.ɵɵelement(3,"localize",24),s.ɵɵelementEnd())}function x(e,t){1&e&&(s.ɵɵelementStart(0,"h4",18),s.ɵɵelement(1,"localize",19),s.ɵɵtext(2,": "),s.ɵɵelement(3,"localize",25),s.ɵɵelementEnd())}function O(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"term-option-widget",26),s.ɵɵlistener("attributeChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext().attribute=e})),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext();s.ɵɵproperty("attribute",r.attribute)("geoObjectType",r.geoObjectType)}}var I=function(){function e(e,t,n,i,a){this.bsModalRef=e,this.modalStepIndicatorService=t,this.geoObjectTypeManagementService=n,this.localizeService=i,this.registryService=a,this.attribute=null,this.geoObjectTypeChange=new r.EventEmitter,this.message=null,this.modalState={state:o.GeoObjectTypeModalStates.editAttribute,attribute:this.attribute,termOption:""},this.modalStepConfig={steps:[{label:this.localizeService.decode("modal.step.indicator.manage.geoobjecttype"),active:!0,enabled:!1},{label:this.localizeService.decode("modal.step.indicator.manage.attributes"),active:!0,enabled:!1},{label:this.localizeService.decode("modal.step.indicator.edit.attribute"),active:!0,enabled:!0}]}}return e.prototype.ngOnInit=function(){this.modalStepIndicatorService.setStepConfig(this.modalStepConfig)},e.prototype.ngAfterViewInit=function(){},e.prototype.ngOnDestroy=function(){},e.prototype.handleOnSubmit=function(){var e=this;this.registryService.updateAttributeType(this.geoObjectType.code,this.attribute).then((function(t){for(var n=0;n *",[i.style({opacity:0}),i.animate("500ms")])])]]}}),e}();t.EditAttributeModalContentComponent=I,("undefined"==typeof ngDevMode||ngDevMode)&&s.ɵsetClassMetadata(I,[{type:r.Component,args:[{selector:"edit-attribute-modal-content",templateUrl:"./edit-attribute-modal-content.component.html",styleUrls:["./edit-attribute-modal-content.css"],animations:[[i.trigger("fadeInOut",[i.transition("void => *",[i.style({opacity:0}),i.animate("500ms")])])]]}]}],(function(){return[{type:c.BsModalRef},{type:d.ModalStepIndicatorService},{type:p.GeoObjectTypeManagementService},{type:d.LocalizationService},{type:p.RegistryService}]}),{geoObjectType:[{type:r.Input}],attribute:[{type:r.Input}],geoObjectTypeChange:[{type:r.Output}],attributeInputComponent:[{type:r.ViewChild,args:[l.AttributeInputComponent]}]})},577:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TermOptionWidgetComponent=void 0;var r=n(0),i=n(7),o=(n(30),n(203),n(258)),a=(n(529),n(0)),l=n(30),s=n(529),c=n(68),d=n(1);function p(e,t){if(1&e&&(a.ɵɵelementStart(0,"li",10),a.ɵɵtext(1),a.ɵɵelementEnd()),2&e){var n=t.$implicit;a.ɵɵadvance(1),a.ɵɵtextInterpolate(n.label.localizedValue)}}var m=function(){function e(e,t,n){this.bsModalRef=e,this.cdr=t,this.geoObjectTypeManagementService=n,this.attribute=null,this.attributeChange=new r.EventEmitter,this.message=null,this.state="none",this.modalState={state:o.GeoObjectTypeModalStates.manageTermOption,attribute:this.attribute,termOption:""}}return e.prototype.ngOnInit=function(){},e.prototype.ngAfterViewInit=function(){this.state="show",this.cdr.detectChanges()},e.prototype.ngOnDestroy=function(){},e.prototype.handleOnSubmit=function(){},e.prototype.animate=function(){this.state="none"},e.prototype.onAnimationDone=function(e){this.state="show"},e.prototype.openAddTermOptionForm=function(){this.geoObjectTypeManagementService.setModalState({state:o.GeoObjectTypeModalStates.manageTermOption,attribute:this.attribute,termOption:""})},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(l.BsModalRef),a.ɵɵdirectiveInject(a.ChangeDetectorRef),a.ɵɵdirectiveInject(s.GeoObjectTypeManagementService))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["term-option-widget"]],inputs:{geoObjectType:"geoObjectType",attribute:"attribute"},outputs:{attributeChange:"attributeChange"},decls:12,vars:2,consts:[[1,"row-holder"],[1,"label-holder"],["key","hierarchy.management.manage.attributes.label.displayTerms"],[1,"holder"],[1,"panel","panel-default"],[1,"panel-body"],[1,"list-group","list-group-flush"],["class","list-group-item",4,"ngFor","ngForOf"],["type","button",1,"btn","btn-primary","full-width",3,"click"],["key","modal.button.manageTermOptions"],[1,"list-group-item"]],template:function(e,t){1&e&&(a.ɵɵelementStart(0,"div",0),a.ɵɵlistener("@toggleInputs.done",(function(e){return t.onAnimationDone(e)})),a.ɵɵelementStart(1,"div"),a.ɵɵelementStart(2,"div",1),a.ɵɵelementStart(3,"label"),a.ɵɵelement(4,"localize",2),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(5,"div",3),a.ɵɵelementStart(6,"div",4),a.ɵɵelementStart(7,"div",5),a.ɵɵelementStart(8,"ul",6),a.ɵɵtemplate(9,p,2,1,"li",7),a.ɵɵelementEnd(),a.ɵɵelementStart(10,"button",8),a.ɵɵlistener("click",(function(){return t.openAddTermOptionForm()})),a.ɵɵelement(11,"localize",9),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e&&(a.ɵɵproperty("@toggleInputs",t.state),a.ɵɵadvance(9),a.ɵɵproperty("ngForOf",t.attribute.rootTerm.children))},directives:[c.LocalizeComponent,d.NgForOf],styles:['input[type="text"][_ngcontent-%COMP%] {\n margin: 2px 0 2px 0 !important;\n float: none !important;\n}\n\nbutton[_ngcontent-%COMP%] {\n margin-top: 5px;\n float: right;\n}\n\n\n\n.btn.btn-primary.full-width[_ngcontent-%COMP%] {\n margin: 0 auto;\n display: block;\n width: 100%;\n}\n\nlabel[_ngcontent-%COMP%] {\n color: #999;\n font-weight: bold;\n}\n\n\nli.list-group-item[_ngcontent-%COMP%] {\n font-size: inherit;\n color: grey;\n}\nli.list-group-item[_ngcontent-%COMP%]:hover {\n cursor: default;\n background: white;\n}'],data:{animation:[i.trigger("toggleInputs",[i.state("none, void",i.style({opacity:0})),i.state("show",i.style({opacity:1})),i.transition("none => show",i.animate("300ms")),i.transition("show => none",i.animate("100ms"))]),i.trigger("openClose",[i.transition(":enter",[i.style({opacity:0}),i.animate("500ms",i.style({opacity:1}))]),i.transition(":leave",[i.style({opacity:1}),i.animate("0ms",i.style({opacity:0}))])])]}}),e}();t.TermOptionWidgetComponent=m,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(m,[{type:r.Component,args:[{selector:"term-option-widget",templateUrl:"./term-option-widget.component.html",styleUrls:["./term-option-widget.css"],animations:[i.trigger("toggleInputs",[i.state("none, void",i.style({opacity:0})),i.state("show",i.style({opacity:1})),i.transition("none => show",i.animate("300ms")),i.transition("show => none",i.animate("100ms"))]),i.trigger("openClose",[i.transition(":enter",[i.style({opacity:0}),i.animate("500ms",i.style({opacity:1}))]),i.transition(":leave",[i.style({opacity:1}),i.animate("0ms",i.style({opacity:0}))])])]}]}],(function(){return[{type:l.BsModalRef},{type:a.ChangeDetectorRef},{type:s.GeoObjectTypeManagementService}]}),{geoObjectType:[{type:r.Input}],attribute:[{type:r.Input}],attributeChange:[{type:r.Output}]})},578:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ManageTermOptionsComponent=void 0;var r=n(0),i=n(7),o=(n(30),n(261)),a=n(111),l=(n(16),n(519),n(203)),s=n(258),c=n(0),d=n(30),p=n(519),m=n(16),u=n(22),g=n(1),h=n(68),f=n(259),y=n(33);function v(e,t){if(1&e&&(c.ɵɵelementStart(0,"div",24),c.ɵɵtext(1),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext();c.ɵɵadvance(1),c.ɵɵtextInterpolate(n.message)}}function b(e,t){if(1&e&&(c.ɵɵelementStart(0,"th"),c.ɵɵelement(1,"localize",25),c.ɵɵtext(2," ("),c.ɵɵelement(3,"convert-key-label",26),c.ɵɵtext(4,") "),c.ɵɵelementEnd()),2&e){var n=t.$implicit;c.ɵɵadvance(3),c.ɵɵproperty("key",n.locale)}}function S(e,t){if(1&e&&(c.ɵɵelementStart(0,"td"),c.ɵɵtext(1),c.ɵɵelementEnd()),2&e){var n=t.$implicit;c.ɵɵadvance(1),c.ɵɵtextInterpolate(n.value)}}function C(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"tr"),c.ɵɵelementStart(1,"td"),c.ɵɵtext(2),c.ɵɵelementEnd(),c.ɵɵtemplate(3,S,2,1,"td",14),c.ɵɵelementStart(4,"td",18),c.ɵɵelementStart(5,"a",27),c.ɵɵlistener("click",(function(){c.ɵɵrestoreView(n);var e=t.$implicit;return c.ɵɵnextContext().editTermOption(e)})),c.ɵɵelementEnd(),c.ɵɵelementStart(6,"a",28),c.ɵɵlistener("click",(function(){c.ɵɵrestoreView(n);var e=t.$implicit;return c.ɵɵnextContext().removeTermOption(e)})),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd()}if(2&e){var r=t.$implicit;c.ɵɵadvance(2),c.ɵɵtextInterpolate(r.code),c.ɵɵadvance(1),c.ɵɵproperty("ngForOf",r.label.localeValues)}}function E(e,t){if(1&e&&(c.ɵɵelementStart(0,"td"),c.ɵɵelementStart(1,"input",29),c.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.value=e})),c.ɵɵelementEnd(),c.ɵɵelementEnd()),2&e){var n=t.$implicit,r=c.ɵɵnextContext();c.ɵɵadvance(1),c.ɵɵproperty("ngModel",n.value)("name","termOptionLabel-"+n.locale)("required",!!r.termOption.code||null)}}var x=function(){function e(e,t,n,i,o,a,l){this.bsModalRef=e,this.cdr=t,this.geoObjectTypeManagementService=n,this.modalService=i,this.localizeService=o,this.modalStepIndicatorService=a,this.registryService=l,this.attributeChange=new r.EventEmitter,this.message=null,this.state="none",this.enableTermOptionForm=!1,this.modalStepConfig={steps:[{label:this.localizeService.decode("modal.step.indicator.manage.geoobjecttype"),active:!0,enabled:!1},{label:this.localizeService.decode("modal.step.indicator.manage.attributes"),active:!0,enabled:!1},{label:this.localizeService.decode("modal.step.indicator.edit.attribute"),active:!0,enabled:!1},{label:this.localizeService.decode("modal.step.indicator.manage.term.options"),active:!0,enabled:!0}]}}return e.prototype.ngOnInit=function(){this.modalStepIndicatorService.setStepConfig(this.modalStepConfig),this.termOption=new l.Term("",this.localizeService.create(),this.localizeService.create())},e.prototype.ngAfterViewInit=function(){this.state="show",this.cdr.detectChanges()},e.prototype.ngOnDestroy=function(){},e.prototype.handleOnSubmit=function(){},e.prototype.animate=function(){this.state="none"},e.prototype.onAnimationDone=function(e){this.state="show"},e.prototype.isValid=function(){if(this.termOption.code&&this.termOption.code.length>0){if(-1!==this.termOption.code.indexOf(" "))return!1;for(var e=0;e show",i.animate("300ms")),i.transition("show => none",i.animate("100ms"))]),i.trigger("openClose",[i.transition(":enter",[i.style({opacity:0}),i.animate("500ms",i.style({opacity:1}))]),i.transition(":leave",[i.style({opacity:1}),i.animate("0ms",i.style({opacity:0}))])])]}}),e}();t.ManageTermOptionsComponent=x,("undefined"==typeof ngDevMode||ngDevMode)&&c.ɵsetClassMetadata(x,[{type:r.Component,args:[{selector:"manage-term-options",templateUrl:"./manage-term-options.component.html",styleUrls:["./manage-term-options.css"],animations:[i.trigger("toggleInputs",[i.state("none, void",i.style({opacity:0})),i.state("show",i.style({opacity:1})),i.transition("none => show",i.animate("300ms")),i.transition("show => none",i.animate("100ms"))]),i.trigger("openClose",[i.transition(":enter",[i.style({opacity:0}),i.animate("500ms",i.style({opacity:1}))]),i.transition(":leave",[i.style({opacity:1}),i.animate("0ms",i.style({opacity:0}))])])]}]}],(function(){return[{type:d.BsModalRef},{type:c.ChangeDetectorRef},{type:p.GeoObjectTypeManagementService},{type:d.BsModalService},{type:m.LocalizationService},{type:m.ModalStepIndicatorService},{type:p.RegistryService}]}),{geoObjectType:[{type:r.Input}],attribute:[{type:r.Input}],attributeChange:[{type:r.Output}]})},579:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EditTermOptionInputComponent=void 0;var r=n(0),i=n(7),o=(n(30),n(16),n(111)),a=(n(203),n(258)),l=(n(519),n(0)),s=n(30),c=n(16),d=n(519),p=n(1),m=n(22),u=n(68),g=n(533);function h(e,t){if(1&e&&(l.ɵɵelementStart(0,"div",19),l.ɵɵtext(1),l.ɵɵelementEnd()),2&e){var n=l.ɵɵnextContext();l.ɵɵadvance(1),l.ɵɵtextInterpolate(n.message)}}var f=function(){function e(e,t,n,r,i){this.bsModalRef=e,this.modalStepIndicatorService=t,this.geoObjectTypeManagementService=n,this.localizeService=r,this.registryService=i,this.attribute=null,this.message=null,this.modalState={state:a.GeoObjectTypeModalStates.editAttribute,attribute:this.attribute,termOption:""},this.modalStepConfig={steps:[{label:this.localizeService.decode("modal.step.indicator.manage.geoobjecttype"),active:!0,enabled:!1},{label:this.localizeService.decode("modal.step.indicator.manage.attributes"),active:!0,enabled:!1},{label:this.localizeService.decode("modal.step.indicator.edit.attribute"),active:!0,enabled:!1},{label:this.localizeService.decode("modal.step.indicator.manage.term.options"),active:!0,enabled:!1},{label:this.localizeService.decode("modal.step.indicator.edit.term.option"),active:!0,enabled:!0}]}}return e.prototype.ngOnInit=function(){this.modalStepIndicatorService.setStepConfig(this.modalStepConfig)},e.prototype.ngAfterViewInit=function(){},e.prototype.ngOnDestroy=function(){},e.prototype.handleOnSubmit=function(){var e=this;this.registryService.updateAttributeTermTypeOption(this.attribute.rootTerm.code,this.termOption).then((function(t){var n=e.attribute.rootTerm.children.findIndex((function(e){return e.code===t.code}));-1!==n&&(e.attribute.rootTerm.children[n]=t),e.geoObjectTypeManagementService.setModalState({state:a.GeoObjectTypeModalStates.manageGeoObjectType,attribute:e.attribute,termOption:null})})).catch((function(t){e.error(t)}))},e.prototype.isFormValid=function(){return!0},e.prototype.cancel=function(){this.geoObjectTypeManagementService.setModalState({state:a.GeoObjectTypeModalStates.manageTermOption,attribute:this.attribute,termOption:null})},e.prototype.error=function(e){this.message=o.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(l.ɵɵdirectiveInject(s.BsModalRef),l.ɵɵdirectiveInject(c.ModalStepIndicatorService),l.ɵɵdirectiveInject(d.GeoObjectTypeManagementService),l.ɵɵdirectiveInject(c.LocalizationService),l.ɵɵdirectiveInject(d.RegistryService))},e.ɵcmp=l.ɵɵdefineComponent({type:e,selectors:[["edit-term-option-input"]],inputs:{geoObjectType:"geoObjectType",attribute:"attribute",termOption:"termOption"},decls:26,vars:5,consts:[[1,"modal-body"],["class","alert alert-danger","role","alert",4,"ngIf"],[1,"modal-form",3,"ngSubmit"],["tForm","ngForm"],[1,""],[1,"heading"],["key","hierarchy.management.edit.term.option.title"],[1,"row-holder"],[1,"label-holder"],["key","data.property.label.code"],[1,"holder"],[1,"text"],["type","text","name","code",3,"disabled","ngModel","ngModelChange"],["key","data.property.label.label",3,"value","valueChange"],[1,"button-holder"],["type","button",1,"btn","btn-default",3,"click"],["key","modal.button.cancel"],["type","submit",1,"btn","btn-primary",3,"disabled"],["key","modal.button.submit"],["role","alert",1,"alert","alert-danger"]],template:function(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"div",0),l.ɵɵtemplate(1,h,2,1,"div",1),l.ɵɵelementStart(2,"form",2,3),l.ɵɵlistener("ngSubmit",(function(){return l.ɵɵrestoreView(n),!l.ɵɵreference(3).invalid&&t.handleOnSubmit()})),l.ɵɵelementStart(4,"div",4),l.ɵɵelementStart(5,"div",4),l.ɵɵelementStart(6,"div",5),l.ɵɵelementStart(7,"h1"),l.ɵɵelement(8,"localize",6),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(9,"fieldset"),l.ɵɵelementStart(10,"div",7),l.ɵɵelementStart(11,"div",8),l.ɵɵelementStart(12,"label"),l.ɵɵelement(13,"localize",9),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(14,"div",10),l.ɵɵelementStart(15,"span",11),l.ɵɵelementStart(16,"input",12),l.ɵɵlistener("ngModelChange",(function(e){return t.termOption.code=e})),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(17,"localized-input",13),l.ɵɵlistener("valueChange",(function(e){return t.termOption.label=e})),l.ɵɵelementEnd(),l.ɵɵelementStart(18,"div",7),l.ɵɵelement(19,"div",8),l.ɵɵelementStart(20,"div",10),l.ɵɵelementStart(21,"div",14),l.ɵɵelementStart(22,"button",15),l.ɵɵlistener("click",(function(){return t.cancel()})),l.ɵɵelement(23,"localize",16),l.ɵɵelementEnd(),l.ɵɵelementStart(24,"button",17),l.ɵɵelement(25,"localize",18),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd()}if(2&e){var r=l.ɵɵreference(3);l.ɵɵadvance(1),l.ɵɵproperty("ngIf",null!=t.message),l.ɵɵadvance(15),l.ɵɵproperty("disabled",!0)("ngModel",t.termOption.code),l.ɵɵadvance(1),l.ɵɵproperty("value",t.termOption.label),l.ɵɵadvance(7),l.ɵɵproperty("disabled",r.invalid)}},directives:[p.NgIf,m.ɵangular_packages_forms_forms_ba,m.NgControlStatusGroup,m.NgForm,u.LocalizeComponent,m.DefaultValueAccessor,m.NgControlStatus,m.NgModel,g.LocalizedInputComponent],encapsulation:2,data:{animation:[i.trigger("openClose",[i.transition(":enter",[i.style({opacity:0}),i.animate("500ms",i.style({opacity:1}))]),i.transition(":leave",[i.style({opacity:1}),i.animate("0ms",i.style({opacity:0}))])])]}}),e}();t.EditTermOptionInputComponent=f,("undefined"==typeof ngDevMode||ngDevMode)&&l.ɵsetClassMetadata(f,[{type:r.Component,args:[{selector:"edit-term-option-input",templateUrl:"./edit-term-option-input.component.html",styleUrls:[],animations:[i.trigger("openClose",[i.transition(":enter",[i.style({opacity:0}),i.animate("500ms",i.style({opacity:1}))]),i.transition(":leave",[i.style({opacity:1}),i.animate("0ms",i.style({opacity:0}))])])]}]}],(function(){return[{type:s.BsModalRef},{type:c.ModalStepIndicatorService},{type:d.GeoObjectTypeManagementService},{type:c.LocalizationService},{type:d.RegistryService}]}),{geoObjectType:[{type:r.Input}],attribute:[{type:r.Input}],termOption:[{type:r.Input}]})},580:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SvgHierarchyType=void 0;var r=n(378),i=n(625),o=n(550),a=n(534),l=function(){function e(t,n,i,o,l,s,c){this.localizationService=l,this.modalService=s,this.authService=c;var d=i;this.hierarchyComponent=t,this.hierarchyType=d,this.svgEl=n,this.d3Hierarchy=r.hierarchy(d.rootGeoObjectTypes[0]),this.isPrimary=o,this.d3Tree=r.tree().nodeSize([e.gotRectW*a.TREE_SCALE_FACTOR_X,(e.gotRectH+e.gotHeaderH)*a.TREE_SCALE_FACTOR_Y]).separation((function(e,t){return.8}))(this.d3Hierarchy)}return e.prototype.getD3Tree=function(){return this.d3Tree},e.prototype.getCode=function(){return this.hierarchyType.code},e.prototype.getNodeByCode=function(e){var t=this.getD3Tree().find((function(t){return t.data.geoObjectType===e}));return null==t?null:new i.SvgHierarchyNode(this.hierarchyComponent,this,this.hierarchyComponent.findGeoObjectTypeByCode(e),t,this.localizationService,this.modalService,this.authService)},e.prototype.renderHierarchyHeader=function(t,n){var r=this,i=t.node().getBBox(),a=t.append("g").classed("g-hierarchy-header",!0),l=t.append("g").classed("g-hierarchy-header",!0),s=o.calculateTextWidth(this.hierarchyType.label.localizedValue,10),c=20,d=i.y+16;s>200&&(s=200,c=30,d=i.y+10);var p=i.width,m=s+20;m>p&&(p=m),l.append("text").classed("hierarchy-header-icon",!0).attr("x",i.x).attr("y",i.y).style("font-family","FontAwesome").attr("fill","grey").attr("font-size",12).text(""),a.append("foreignObject").classed("hierarchy-header-label",!0).attr("font-size",10).attr("stroke-linejoin","round").attr("stroke-width",3).attr("x",i.x+20).attr("y",d).attr("width",s).attr("height",c).append("xhtml:p").attr("xmlns","http://www.w3.org/1999/xhtml").attr("text-anchor","start").attr("text-align","left").style("vertical-align","middle").style("display","table-cell").style("color","gray").style("height",e.gotRectH-4+"px").html((function(e){return r.hierarchyType.label.localizedValue})),l.append("line").classed("hierarchy-header-line",!0).attr("x1",i.x).attr("y1",i.y+10).attr("x2",i.x+p).attr("y2",i.y+10).attr("stroke","grey").attr("stroke-width",.5);var u=l.node().getBBox();return l.attr("transform","translate(0 -"+u.height+")"),a.append("text").classed("hierarchy-header-label",!0).attr("font-size",12).attr("font-weight","bold").attr("stroke-linejoin","round").attr("stroke-width",3).attr("fill","grey").attr("x",i.x).attr("y",i.y).text(n),a.attr("transform","translate(0 -"+2.5*u.height+")"),l},e.prototype.getRelatedHierarchies=function(e){var t=this.hierarchyComponent.findGeoObjectTypeByCode(e);null==t.relatedHierarchies&&(t.relatedHierarchies=this.hierarchyComponent.calculateRelatedHierarchies(t));for(var n=t.relatedHierarchies,r=null,i=0;idocument.documentElement.scrollHeight&&(o.y=e.pageY-i.height-50),e.pageX+i.width+0>document.documentElement.scrollWidth&&(o.x=e.pageX-i.width-0),r.select("#NodeTooltip").style("left",o.x+"px").style("top",o.y+"px")},e.prototype.nodeMouseleave=function(e,t,n){r.select("#NodeTooltip").style("opacity",0).style("left","-10000px").style("top","-10000px")},e.prototype.render=function(){var t=this,n=this,i=this.d3Tree.descendants();r.select('.g-hierarchy[data-primary="false"]').remove(),this.isPrimary&&r.select('.g-hierarchy[data-primary="true"]').remove();var l=this.svgEl.insert("g",".g-hierarchy").classed("g-hierarchy",!0).attr("data-code",this.hierarchyType.code).attr("data-primary",this.isPrimary);l.attr("font-family","sans-serif");var s=l.append("g").classed("g-hierarchy-tree",!0).attr("data-code",this.hierarchyType.code);s.append("g").classed("g-got-edge",!0).attr("fill","none").attr("stroke","#555").attr("stroke-opacity",.4).attr("stroke-width",1.5).selectAll("path").data(this.d3Tree.links()).join("path").attr("d",(function(e,t){return"M"+e.source.x+","+e.source.y+"V"+(e.source.y+e.target.y)/2+"H"+e.target.x+"V"+e.target.y}));var c=s.append("g").classed("g-got-header",!0);c.selectAll("rect").data(i).join("rect").filter((function(e){return"GhostNode"!==e.data.geoObjectType})).classed("svg-got-header-rect",!0).attr("x",(function(t){return t.x-e.gotRectW/2})).attr("y",(function(t){return t.y-e.gotRectH/2-e.gotHeaderH+4})).attr("fill",(function(e){return t.isPrimary?null!=e.data.inheritedHierarchyCode?a.INHERITED_NODE_BANNER_COLOR:a.DEFAULT_NODE_BANNER_COLOR:a.RELATED_NODE_BANNER_COLOR})).attr("width",e.gotHeaderW).attr("height",e.gotHeaderH).attr("cursor",(function(e){return t.isPrimary?null!=e.data.inheritedHierarchyCode?null:"grab":null})).attr("rx",3).attr("data-gotCode",(function(e){return e.data.geoObjectType})).attr("data-inherited",(function(e){return null!=e.data.inheritedHierarchyCode})).on(e.MOUSE_HOVER_EVENT_ENTER,(function(e,t){n.nodeMouseover(e,this,t)})).on(e.MOUSE_HOVER_EVENT_MOVE,(function(e,t){n.nodeMousemove(e,this,t)})).on(e.MOUSE_HOVER_EVENT_EXIT,(function(e,t){n.nodeMouseleave(e,this,t)})),c.selectAll("foreignObject").data(i).join("foreignObject").filter((function(e){return"GhostNode"!==e.data.geoObjectType})).classed("svg-got-header-rect",!0).attr("x",(function(t){return t.x-e.gotHeaderW/2})).attr("y",(function(t){return t.y-e.gotRectH/2-e.gotHeaderH+4})).attr("font-size",e.gotHeaderFontSize+"px").attr("cursor",(function(e){return t.isPrimary?null!=e.data.inheritedHierarchyCode?null:"grab":null})).attr("data-gotCode",(function(e){return e.data.geoObjectType})).attr("data-inherited",(function(e){return null!=e.data.inheritedHierarchyCode})).attr("font-family","sans-serif").attr("font-weight","bold").attr("font-size",e.gotHeaderFontSize).attr("stroke-linejoin","round").attr("stroke-width",3).attr("width",e.gotHeaderW).attr("height",e.gotHeaderH-4).append("xhtml:p").attr("xmlns","http://www.w3.org/1999/xhtml").attr("fill","white").attr("height",e.gotHeaderH-4).style("text-align","center").style("vertical-align","middle").style("display","table-cell").style("color","white").style("height",e.gotHeaderH-4+"px").style("width",e.gotHeaderW+"px").html((function(t){var r=null!=t.data.inheritedHierarchyCode?n.hierarchyComponent.findHierarchyByCode(t.data.inheritedHierarchyCode).label.localizedValue:n.hierarchyType.label.localizedValue;return!(o.calculateTextWidth(r,e.gotHeaderFontSize)>e.gotHeaderW-5)||(r=r.substring(0,34)+"..."),r})).on(e.MOUSE_HOVER_EVENT_ENTER,(function(e,t){n.nodeMouseover(e,this,t)})).on(e.MOUSE_HOVER_EVENT_MOVE,(function(e,t){n.nodeMousemove(e,this,t)})).on(e.MOUSE_HOVER_EVENT_EXIT,(function(e,t){n.nodeMouseleave(e,this,t)})),s.append("g").classed("g-got",!0).selectAll("rect").data(i).join("rect").filter((function(e){return"GhostNode"!==e.data.geoObjectType})).classed("svg-got-body-rect",!0).attr("x",(function(t){return t.x-e.gotRectW/2})).attr("y",(function(t){return t.y-e.gotRectH/2})).attr("fill",(function(e){return null!=e.data.inheritedHierarchyCode?a.INHERITED_NODE_FILL:a.DEFAULT_NODE_FILL})).attr("width",e.gotRectW).attr("height",e.gotRectH).attr("rx",3).attr("cursor",(function(e){return t.isPrimary?null!=e.data.inheritedHierarchyCode?null:"grab":null})).attr("data-gotCode",(function(e){return e.data.geoObjectType})).attr("data-inherited",(function(e){return null!=e.data.inheritedHierarchyCode})).each((function(t){"GhostNode"!==t.data.geoObjectType&&(t.data.activeDropZones?t.data.dropZoneBbox={x:t.x-e.gotRectW/2,y:t.y-2*e.gotRectH,width:2*e.gotRectW+100,height:4*e.gotRectH}:t.data.dropZoneBbox={x:t.x-e.gotRectW/2,y:t.y-e.gotRectH/2,width:e.gotRectW,height:e.gotRectH})})).on(e.MOUSE_HOVER_EVENT_ENTER,(function(e,t){n.nodeMouseover(e,this,t)})).on(e.MOUSE_HOVER_EVENT_MOVE,(function(e,t){n.nodeMousemove(e,this,t)})).on(e.MOUSE_HOVER_EVENT_EXIT,(function(e,t){n.nodeMouseleave(e,this,t)}));var d=7,p=10,m=s.append("g").classed("g-got-connector-arrow",!0);m.selectAll("rect").data(this.d3Tree.links()).join("rect").classed("got-connector-arrow-rect",!0).attr("x",(function(e){return e.source.x-p/2})).attr("y",(function(t){return t.source.y+e.gotRectH/2-d/2})).attr("width",p).attr("height",d).attr("fill",(function(e){return t.isPrimary?null!=e.source.data.inheritedHierarchyCode?a.INHERITED_NODE_BANNER_COLOR:a.DEFAULT_NODE_BANNER_COLOR:a.RELATED_NODE_BANNER_COLOR})),m.selectAll("path").data(this.d3Tree.links()).join("path").classed("got-connector-arrow-path",!0).attr("fill","none").attr("stroke","white").attr("stroke-width",1.5).attr("d",(function(t){return"M"+(t.source.x-p/2+2*p/3)+","+(t.source.y+e.gotRectH/2-d/2+2*d/3)+"L"+t.source.x+","+(t.source.y+e.gotRectH/2-d/2+d/3)+"L"+(t.source.x-p/2+p/3)+","+(t.source.y+e.gotRectH/2+d/2-d/3)})),s.append("g").classed("g-sibling-ghost-backer",!0).selectAll("rect").data(i).join("rect").filter((function(e){return"GhostNode"===e.data.geoObjectType})).classed("svg-sibling-ghost-backer-dz",!0).attr("x",(function(t){return t.x-e.gotRectW/2})).attr("y",(function(t){return t.y-e.gotRectH/2})).attr("width",e.gotRectW).attr("height",e.gotRectH).attr("fill","white"),s.append("g").classed("g-sibling-ghost-body",!0).selectAll("rect").data(i).join("rect").filter((function(e){return"GhostNode"===e.data.geoObjectType})).classed("svg-sibling-ghost-body-dz",!0).attr("x",(function(t){return t.x-e.gotRectW/2})).attr("y",(function(t){return t.y-e.gotRectH/2})).attr("width",e.gotRectW).attr("height",e.gotRectH).attr("fill","none").attr("stroke","#6BA542").attr("stroke-width","1").attr("stroke-dasharray","5,5").attr("data-gotCode",(function(e){return e.data.geoObjectType})),s.append("g").classed("g-got-codelabel",!0).attr("font-family","sans-serif").attr("font-size",e.gotBodyFontSize).attr("stroke-linejoin","round").attr("stroke-width",3).selectAll("foreignObject").data(i).join("foreignObject").classed("svg-got-label-text",!0).attr("x",(function(t){return t.x-e.gotRectW/2+5})).attr("y",(function(t){return t.y-e.gotRectH/2+2})).attr("width",e.gotRectW-32+5).attr("height",e.gotRectH-4).attr("cursor",(function(e){return t.isPrimary?null!=e.data.inheritedHierarchyCode?null:"grab":null})).attr("data-gotCode",(function(e){return e.data.geoObjectType})).attr("data-inherited",(function(e){return null!=e.data.inheritedHierarchyCode})).append("xhtml:p").attr("xmlns","http://www.w3.org/1999/xhtml").attr("text-anchor","start").attr("text-align","left").style("vertical-align","middle").style("display","table-cell").style("width",e.gotRectW-32+5+"px").style("height",e.gotRectH-4+"px").html((function(e){return e.data.label})).on(e.MOUSE_HOVER_EVENT_ENTER,(function(e,t){n.nodeMouseover(e,this,t)})).on(e.MOUSE_HOVER_EVENT_MOVE,(function(e,t){n.nodeMousemove(e,this,t)})).on(e.MOUSE_HOVER_EVENT_EXIT,(function(e,t){n.nodeMouseleave(e,this,t)})),this.isPrimary?(s.append("g").classed("g-got-relatedhiers-button",!0).selectAll("text").data(i).join("text").filter((function(e){return"GhostNode"!==e.data.geoObjectType&&null==e.data.inheritedHierarchyCode})).classed("svg-got-relatedhiers-button",!0).attr("data-gotCode",(function(e){return e.data.geoObjectType})).attr("x",(function(t){return t.x+e.gotRectW/2-e.gotOptionsButtonFontSize-3})).attr("y",(function(t){return t.y+.8*e.gotOptionsButtonFontSize-e.gotOptionsButtonFontSize/2})).style("font-family","FontAwesome").style("cursor","pointer").style("fill","#767676").style("font-size",e.gotOptionsButtonFontSize+"px").text("").on("click",(function(e,t){n.getNodeByCode(t.data.geoObjectType).renderRelatedHierarchiesMenu()})),this.renderHierarchyHeader(l,"Selected Hierarchy")):this.renderHierarchyHeader(l,"Related Hierarchy")},e.gotRectW=150,e.gotRectH=25,e.gotBodyFontSize=8,e.gotOptionsButtonFontSize=12,e.gotHeaderW=150,e.gotHeaderH=14,e.gotHeaderFontSize=8,e.MOUSE_HOVER_EVENT_ENTER="mouseenter",e.MOUSE_HOVER_EVENT_MOVE="mousemove",e.MOUSE_HOVER_EVENT_EXIT="mouseleave",e}();t.SvgHierarchyType=l},581:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ShapefileModalComponent=void 0;var r=n(0),i=(n(30),n(30),n(33),n(16),n(111)),o=(n(519),n(0)),a=n(519),l=n(30),s=n(16),c=n(33),d=n(1),p=n(551),m=n(552),u=n(553),g=n(554);function h(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",3),o.ɵɵtext(1),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext();o.ɵɵadvance(1),o.ɵɵtextInterpolate(n.message)}}function f(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div"),o.ɵɵelementStart(1,"attributes-page",4),o.ɵɵlistener("configurationChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).configuration=e}))("stateChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).onStateChange(e)})),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(2);o.ɵɵadvance(1),o.ɵɵproperty("configuration",r.configuration)}}function y(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div"),o.ɵɵelementStart(1,"location-page",4),o.ɵɵlistener("configurationChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).configuration=e}))("stateChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).onStateChange(e)})),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(2);o.ɵɵadvance(1),o.ɵɵproperty("configuration",r.configuration)}}function v(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div"),o.ɵɵelementStart(1,"location-problem-page",4),o.ɵɵlistener("configurationChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).configuration=e}))("stateChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).onStateChange(e)})),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(2);o.ɵɵadvance(1),o.ɵɵproperty("configuration",r.configuration)}}function b(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div"),o.ɵɵelementStart(1,"term-problem-page",4),o.ɵɵlistener("configurationChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).configuration=e}))("stateChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).onStateChange(e)})),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(2);o.ɵɵadvance(1),o.ɵɵproperty("configuration",r.configuration)}}function S(e,t){if(1&e&&(o.ɵɵelementStart(0,"div"),o.ɵɵtemplate(1,f,2,1,"div",2),o.ɵɵtemplate(2,y,2,1,"div",2),o.ɵɵtemplate(3,v,2,1,"div",2),o.ɵɵtemplate(4,b,2,1,"div",2),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext();o.ɵɵadvance(1),o.ɵɵproperty("ngIf","MAP"===n.state),o.ɵɵadvance(1),o.ɵɵproperty("ngIf","LOCATION"===n.state),o.ɵɵadvance(1),o.ɵɵproperty("ngIf","LOCATION-PROBLEM"===n.state),o.ɵɵadvance(1),o.ɵɵproperty("ngIf","TERM-PROBLEM"===n.state)}}var C=function(){function e(e,t,n,r,i){this.service=e,this.bsModalRef=t,this.modalService=n,this.localizeService=r,this.router=i,this.message=null,this.state="MAP"}return e.prototype.ngOnInit=function(){},e.prototype.onStateChange=function(e){"BACK"===e?this.handleBack():"NEXT"===e?this.handleNext():"CANCEL"===e&&this.handleCancel()},e.prototype.handleBack=function(){"LOCATION"===this.state&&(this.state="MAP")},e.prototype.handleNext=function(){"MAP"===this.state?this.configuration.postalCode?this.handleSubmit():this.state="LOCATION":"LOCATION"===this.state?this.handleSubmit():"LOCATION-PROBLEM"===this.state?null!=this.configuration.termProblems?this.state="TERM-PROBLEM":this.handleSubmit():"TERM-PROBLEM"===this.state&&this.handleSubmit()},e.prototype.handleSubmit=function(){var e=this;this.message=null,this.service.importShapefile(this.configuration).then((function(t){null!=t.locationProblems?(e.state="LOCATION-PROBLEM",e.configuration=t):null!=t.termProblems?(e.state="TERM-PROBLEM",e.configuration=t):(e.bsModalRef.hide(),e.bsModalRef=e.modalService.show(i.ConfirmModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0}),e.bsModalRef.content.message=e.localizeService.decode("data.import.go.to.scheduled.jobs.confirm.message"),e.bsModalRef.content.submitText=e.localizeService.decode("data.import.go.to.scheduled.jobs.button"),e.bsModalRef.content.cancelText=e.localizeService.decode("modal.button.close"),e.bsModalRef.content.onConfirm.subscribe((function(t){e.router.navigate(["/registry/scheduled-jobs"])})))})).catch((function(t){e.error(t)}))},e.prototype.handleCancel=function(){var e=this;this.message=null,this.service.cancelImport(this.configuration).then((function(t){e.bsModalRef.hide()})).catch((function(t){e.error(t)}))},e.prototype.error=function(e){this.message=i.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.IOService),o.ɵɵdirectiveInject(l.BsModalRef),o.ɵɵdirectiveInject(l.BsModalService),o.ɵɵdirectiveInject(s.LocalizationService),o.ɵɵdirectiveInject(c.Router))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["shapefile-modal"]],decls:3,vars:2,consts:[[1,"modal-body"],["class","alert alert-danger","role","alert",4,"ngIf"],[4,"ngIf"],["role","alert",1,"alert","alert-danger"],[3,"configuration","configurationChange","stateChange"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵtemplate(1,h,2,1,"div",1),o.ɵɵtemplate(2,S,5,4,"div",2),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(1),o.ɵɵproperty("ngIf",null!=t.message),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",null!=t.configuration&&t.configuration))},directives:[d.NgIf,p.AttributesPageComponent,m.LocationPageComponent,u.LocationProblemPageComponent,g.TermProblemPageComponent],encapsulation:2}),e}();t.ShapefileModalComponent=C,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(C,[{type:r.Component,args:[{selector:"shapefile-modal",templateUrl:"./shapefile-modal.component.html",styleUrls:[]}]}],(function(){return[{type:a.IOService},{type:l.BsModalRef},{type:l.BsModalService},{type:s.LocalizationService},{type:c.Router}]}),null)},582:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LocationProblemComponent=void 0;var r=n(0),i=n(31),o=(n(524),n(519),n(0)),a=n(519),l=n(22),s=n(1),c=n(154),d=n(68),p=n(113);function m(e,t){if(1&e&&(o.ɵɵelementStart(0,"li"),o.ɵɵtext(1),o.ɵɵelementEnd()),2&e){var n=t.$implicit;o.ɵɵadvance(1),o.ɵɵtextInterpolate2("",n.label," (",n.type,")")}}function u(e,t){if(1&e&&(o.ɵɵelementStart(0,"ol"),o.ɵɵtemplate(1,m,2,2,"li",5),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext();o.ɵɵadvance(1),o.ɵɵproperty("ngForOf",n.problem.context)}}var g=function(e){return{disabled:e}};function h(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div"),o.ɵɵelementStart(1,"div",2),o.ɵɵelementStart(2,"input",6),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext().entityLabel=e}))("typeaheadOnSelect",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext().typeaheadOnSelect(e)})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(3,"div",7),o.ɵɵelementStart(4,"i",8),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext().createSynonym()})),o.ɵɵpipe(5,"localize"),o.ɵɵelementEnd(),o.ɵɵelementStart(6,"i",9),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext().ignoreDataAtLocation()})),o.ɵɵpipe(7,"localize"),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext();o.ɵɵadvance(2),o.ɵɵproperty("name",r.index+"-name")("ngModel",r.entityLabel)("typeaheadAsync",!0)("typeahead",r.dataSource)("typeaheadOptionsLimit",7),o.ɵɵadvance(2),o.ɵɵproperty("ngClass",o.ɵɵpureFunction1(12,g,!r.hasSynonym))("title",o.ɵɵpipeBind1(5,8,"dataUploader.createSynonymFromLocationTooltip")),o.ɵɵadvance(2),o.ɵɵproperty("title",o.ɵɵpipeBind1(7,10,"dataUploader.ignoreAtLocationTooltip"))}}function f(e,t){if(1&e&&(o.ɵɵelementStart(0,"li"),o.ɵɵtext(1),o.ɵɵelementEnd()),2&e){var n=t.$implicit;o.ɵɵadvance(1),o.ɵɵtextInterpolate(n.label)}}function y(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",2),o.ɵɵelementStart(1,"a"),o.ɵɵelement(2,"i",12),o.ɵɵelement(3,"i",13),o.ɵɵelement(4,"localize",14),o.ɵɵtext(5),o.ɵɵelementEnd(),o.ɵɵelementStart(6,"span"),o.ɵɵelementStart(7,"ul"),o.ɵɵelement(8,"localize",15),o.ɵɵtemplate(9,f,2,1,"li",5),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext(2);o.ɵɵadvance(5),o.ɵɵtextInterpolate1(" [",n.problem.action.label,"] "),o.ɵɵadvance(4),o.ɵɵproperty("ngForOf",n.problem.action.ancestors)}}function v(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",2),o.ɵɵelement(1,"localize",16),o.ɵɵtext(2),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext(2);o.ɵɵadvance(2),o.ɵɵtextInterpolate1(" [",n.problem.action.label,"] ")}}function b(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div"),o.ɵɵtemplate(1,y,10,2,"div",10),o.ɵɵtemplate(2,v,3,1,"div",10),o.ɵɵelementStart(3,"div",7),o.ɵɵelementStart(4,"i",11),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext().undoAction()})),o.ɵɵpipe(5,"localize"),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext();o.ɵɵadvance(1),o.ɵɵproperty("ngIf","SYNONYM"==r.problem.action.name),o.ɵɵadvance(1),o.ɵɵproperty("ngIf","IGNOREATLOCATION"==r.problem.action.name),o.ɵɵadvance(2),o.ɵɵproperty("title",o.ɵɵpipeBind1(5,3,"dataUploader.undoFixedLocationTooltip"))}}var S=function(){function e(e){var t=this;this.service=e,this.onError=new r.EventEmitter,this.dataSource=i.Observable.create((function(e){t.service.getGeoObjectSuggestions(t.entityLabel,t.problem.type,t.problem.parent,t.configuration.hierarchy).then((function(t){e.next(t)}))}))}return e.prototype.ngOnInit=function(){this.entityLabel=null,this.entityId=null,this.hasSynonym=!1},e.prototype.typeaheadOnSelect=function(e){this.entityId=e.item.id,this.hasSynonym=null!=this.entityId},e.prototype.createSynonym=function(){var e=this;this.hasSynonym&&(this.onError.emit(null),this.service.createGeoObjectSynonym(this.entityId,this.problem.label).then((function(t){e.problem.resolved=!0,e.problem.action={name:"SYNONYM",synonymId:t.synonymId,vOid:t.vOid,label:t.label}})).catch((function(t){e.onError.emit(t.error)})))},e.prototype.ignoreDataAtLocation=function(){var e=this.problem.label;this.problem.type;this.problem.resolved=!0,this.problem.action={name:"IGNOREATLOCATION",label:e}},e.prototype.undoAction=function(){var e=this;this.problem.label,this.problem.type;if(this.problem.resolved){var t=this.problem.action;"IGNOREATLOCATION"==t.name?(this.problem.resolved=!1,this.problem.action=null):"SYNONYM"==t.name&&(this.onError.emit(null),this.service.deleteGeoObjectSynonym(t.synonymId,t.vOid).then((function(t){e.problem.resolved=!1,e.problem.action=null,e.entityLabel=null,e.hasSynonym=null!=e.entityLabel})).catch((function(t){e.onError.emit(t.error)})))}},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.IOService))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["location-problem"]],inputs:{configuration:"configuration",problem:"problem",index:"index"},outputs:{onError:"onError"},decls:9,vars:5,consts:[[1,"row",2,"padding-bottom","10px"],["problemForm","ngForm"],[1,"col-sm-4"],[4,"ngIf"],[1,"col-sm-2","error-message"],[4,"ngFor","ngForOf"],["typeaheadOptionField","name",1,"form-control",3,"name","ngModel","typeaheadAsync","typeahead","typeaheadOptionsLimit","ngModelChange","typeaheadOnSelect"],[1,"col-sm-2"],[1,"fa","fa-2x","fa-compress","clickable",3,"ngClass","title","click"],[1,"fa","fa-2x","fa-times-circle","clickable",3,"title","click"],["class","col-sm-4",4,"ngIf"],[1,"fa","fa-2x","fa-undo","clickable",3,"title","click"],["aria-hidden","true",1,"fa","fa-caret-right","clickable"],["aria-hidden","true",1,"fa","fa-caret-down",2,"display","none"],["key","dataUploader.resolvedSynonym"],["key","dataUploader.locatedWithin"],["key","dataUploader.resolvedIgnoreAtLocation"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵelementStart(1,"form",null,1),o.ɵɵelementStart(3,"div",2),o.ɵɵtemplate(4,u,2,1,"ol",3),o.ɵɵelementEnd(),o.ɵɵelementStart(5,"div",4),o.ɵɵtext(6),o.ɵɵelementEnd(),o.ɵɵtemplate(7,h,8,14,"div",3),o.ɵɵtemplate(8,b,6,5,"div",3),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(4),o.ɵɵproperty("ngIf",t.problem.context.length>0),o.ɵɵadvance(2),o.ɵɵtextInterpolate2("",t.problem.label," (",t.problem.typeLabel,")"),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",!t.problem.resolved),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",t.problem.resolved))},directives:[l.ɵangular_packages_forms_forms_ba,l.NgControlStatusGroup,l.NgForm,s.NgIf,s.NgForOf,l.DefaultValueAccessor,l.NgControlStatus,l.NgModel,c.TypeaheadDirective,s.NgClass,d.LocalizeComponent],pipes:[p.LocalizePipe],encapsulation:2}),e}();t.LocationProblemComponent=S,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(S,[{type:r.Component,args:[{selector:"location-problem",templateUrl:"./location-problem.component.html",styleUrls:[]}]}],(function(){return[{type:a.IOService}]}),{configuration:[{type:r.Input}],problem:[{type:r.Input}],index:[{type:r.Input}],onError:[{type:r.Output}]})},583:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TermProblemComponent=void 0;var r=n(0),i=n(31),o=n(377),a=(n(524),n(519),n(0)),l=n(519),s=n(22),c=n(1),d=n(154),p=n(68),m=n(113),u=function(e){return{disabled:e}};function g(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div"),a.ɵɵelementStart(1,"div",2),a.ɵɵelementStart(2,"input",5),a.ɵɵlistener("ngModelChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().termLabel=e}))("typeaheadOnSelect",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().typeaheadOnSelect(e)})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(3,"div",6),a.ɵɵelementStart(4,"i",7),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().createSynonym()})),a.ɵɵpipe(5,"localize"),a.ɵɵelementEnd(),a.ɵɵelementStart(6,"i",8),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().createOption()})),a.ɵɵpipe(7,"localize"),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"i",9),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().ignoreValue()})),a.ɵɵpipe(9,"localize"),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext();a.ɵɵadvance(2),a.ɵɵproperty("name",r.index+"-name")("ngModel",r.termLabel)("typeaheadAsync",!0)("typeahead",r.dataSource)("typeaheadOptionsLimit",7),a.ɵɵadvance(2),a.ɵɵproperty("ngClass",a.ɵɵpureFunction1(15,u,!r.hasSynonym))("title",a.ɵɵpipeBind1(5,9,"dataUploader.createSynonymCategoryTooltip")),a.ɵɵadvance(2),a.ɵɵproperty("title",a.ɵɵpipeBind1(7,11,"dataUploader.createNewOptionTooltip")),a.ɵɵadvance(2),a.ɵɵproperty("title",a.ɵɵpipeBind1(9,13,"dataUploader.ignoreCategoryTooltip"))}}function h(e,t){1&e&&(a.ɵɵelementStart(0,"div",2),a.ɵɵelement(1,"localize",12),a.ɵɵelementEnd())}function f(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",2),a.ɵɵelement(1,"localize",13),a.ɵɵtext(2),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext(2);a.ɵɵadvance(2),a.ɵɵtextInterpolate1(" [",n.problem.action.label,"] ")}}function y(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",2),a.ɵɵelement(1,"localize",14),a.ɵɵtext(2),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext(2);a.ɵɵadvance(2),a.ɵɵtextInterpolate1(" [",n.problem.label,"] ")}}function v(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div"),a.ɵɵtemplate(1,h,2,0,"div",10),a.ɵɵtemplate(2,f,3,1,"div",10),a.ɵɵtemplate(3,y,3,1,"div",10),a.ɵɵelementStart(4,"div",6),a.ɵɵelementStart(5,"i",11),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().undoAction()})),a.ɵɵpipe(6,"localize"),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵproperty("ngIf","OPTION"==r.problem.action.name),a.ɵɵadvance(1),a.ɵɵproperty("ngIf","SYNONYM"==r.problem.action.name),a.ɵɵadvance(1),a.ɵɵproperty("ngIf","IGNORE"==r.problem.action.name),a.ɵɵadvance(2),a.ɵɵproperty("title",a.ɵɵpipeBind1(6,4,"dataUploader.undoFixedCategoryTooltip"))}}var b=function(){function e(e){var t=this;this.service=e,this.onError=new r.EventEmitter,this.dataSource=i.Observable.create((function(e){t.service.getTermSuggestions(t.problem.mdAttributeId,t.termLabel,"20").then((function(t){e.next(t)}))}))}return e.prototype.ngOnInit=function(){this.termLabel=null,this.termId=null,this.hasSynonym=!1},e.prototype.typeaheadOnSelect=function(e){this.termId=e.item.value,this.hasSynonym=null!=this.termId},e.prototype.createSynonym=function(){var e=this;this.hasSynonym&&(this.onError.emit(null),this.service.createTermSynonym(this.termId,this.problem.label).then((function(t){e.problem.resolved=!0,e.problem.action={name:"SYNONYM",synonymId:t.synonymId,label:t.label}})).catch((function(t){e.onError.emit(t.error)})))},e.prototype.createOption=function(){var e=this;this.onError.emit(null),this.service.createTerm(this.problem.label,o.v4(),this.problem.parentCode).then((function(t){e.problem.resolved=!0,e.problem.action={name:"OPTION",term:t}})).catch((function(t){e.onError.emit(t.error)}))},e.prototype.ignoreValue=function(){this.problem.resolved=!0,this.problem.action={name:"IGNORE"}},e.prototype.undoAction=function(){var e=this;if(this.problem.resolved){var t=this.problem.action;"IGNORE"==t.name?(this.problem.resolved=!1,this.problem.action=null):"SYNONYM"==t.name?(this.onError.emit(null),this.service.deleteTermSynonym(t.synonymId).then((function(t){e.problem.resolved=!1,e.problem.action=null})).catch((function(t){e.onError.emit(t.error)}))):"OPTION"==t.name&&(this.onError.emit(null),this.service.removeTerm(this.problem.parentCode,t.term.code).then((function(t){e.problem.resolved=!1,e.problem.action=null})).catch((function(t){e.onError.emit(t.error)})))}},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(l.IOService))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["term-problem"]],inputs:{configuration:"configuration",problem:"problem",index:"index"},outputs:{onError:"onError"},decls:9,vars:4,consts:[[1,"row"],["problemForm","ngForm"],[1,"col-sm-4"],[1,"col-sm-2","error-message"],[4,"ngIf"],["typeaheadOptionField","label",1,"form-control",3,"name","ngModel","typeaheadAsync","typeahead","typeaheadOptionsLimit","ngModelChange","typeaheadOnSelect"],[1,"col-sm-2"],[1,"fa","fa-2x","fa-compress","clickable",3,"ngClass","title","click"],[1,"fa","fa-2x","fa-plus","clickable",3,"title","click"],[1,"fa","fa-2x","fa-times-circle","clickable",3,"title","click"],["class","col-sm-4",4,"ngIf"],[1,"fa","fa-2x","fa-undo","clickable",3,"title","click"],["key","dataUploader.resolvedCategoryOption"],["key","dataUploader.resolvedSynonym"],["key","dataUploader.resolvedIgnoreCategory"]],template:function(e,t){1&e&&(a.ɵɵelementStart(0,"div",0),a.ɵɵelementStart(1,"form",null,1),a.ɵɵelementStart(3,"div",2),a.ɵɵtext(4),a.ɵɵelementEnd(),a.ɵɵelementStart(5,"div",3),a.ɵɵtext(6),a.ɵɵelementEnd(),a.ɵɵtemplate(7,g,10,17,"div",4),a.ɵɵtemplate(8,v,7,6,"div",4),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e&&(a.ɵɵadvance(4),a.ɵɵtextInterpolate(t.problem.attributeLabel),a.ɵɵadvance(2),a.ɵɵtextInterpolate(t.problem.label),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",!t.problem.resolved),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.problem.resolved))},directives:[s.ɵangular_packages_forms_forms_ba,s.NgControlStatusGroup,s.NgForm,c.NgIf,s.DefaultValueAccessor,s.NgControlStatus,s.NgModel,d.TypeaheadDirective,c.NgClass,p.LocalizeComponent],pipes:[m.LocalizePipe],encapsulation:2}),e}();t.TermProblemComponent=b,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(b,[{type:r.Component,args:[{selector:"term-problem",templateUrl:"./term-problem.component.html",styleUrls:[]}]}],(function(){return[{type:l.IOService}]}),{configuration:[{type:r.Input}],problem:[{type:r.Input}],index:[{type:r.Input}],onError:[{type:r.Output}]})},584:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SpreadsheetModalComponent=void 0;var r=n(0),i=(n(30),n(30),n(33),n(16),n(111)),o=(n(519),n(0)),a=n(519),l=n(30),s=n(16),c=n(33),d=n(1),p=n(551),m=n(552),u=n(553),g=n(554);function h(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",3),o.ɵɵtext(1),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext();o.ɵɵadvance(1),o.ɵɵtextInterpolate(n.message)}}function f(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div"),o.ɵɵelementStart(1,"attributes-page",4),o.ɵɵlistener("configurationChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).configuration=e}))("stateChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).onStateChange(e)})),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(2);o.ɵɵadvance(1),o.ɵɵproperty("configuration",r.configuration)}}function y(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div"),o.ɵɵelementStart(1,"location-page",4),o.ɵɵlistener("configurationChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).configuration=e}))("stateChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).onStateChange(e)})),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(2);o.ɵɵadvance(1),o.ɵɵproperty("configuration",r.configuration)}}function v(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div"),o.ɵɵelementStart(1,"location-problem-page",4),o.ɵɵlistener("configurationChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).configuration=e}))("stateChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).onStateChange(e)})),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(2);o.ɵɵadvance(1),o.ɵɵproperty("configuration",r.configuration)}}function b(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div"),o.ɵɵelementStart(1,"term-problem-page",4),o.ɵɵlistener("configurationChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).configuration=e}))("stateChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).onStateChange(e)})),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(2);o.ɵɵadvance(1),o.ɵɵproperty("configuration",r.configuration)}}function S(e,t){if(1&e&&(o.ɵɵelementStart(0,"div"),o.ɵɵtemplate(1,f,2,1,"div",2),o.ɵɵtemplate(2,y,2,1,"div",2),o.ɵɵtemplate(3,v,2,1,"div",2),o.ɵɵtemplate(4,b,2,1,"div",2),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext();o.ɵɵadvance(1),o.ɵɵproperty("ngIf","MAP"===n.state),o.ɵɵadvance(1),o.ɵɵproperty("ngIf","LOCATION"===n.state),o.ɵɵadvance(1),o.ɵɵproperty("ngIf","LOCATION-PROBLEM"===n.state),o.ɵɵadvance(1),o.ɵɵproperty("ngIf","TERM-PROBLEM"===n.state)}}var C=function(){function e(e,t,n,r,i){this.service=e,this.bsModalRef=t,this.modalService=n,this.localizeService=r,this.router=i,this.message=null,this.state="MAP"}return e.prototype.ngOnInit=function(){},e.prototype.onStateChange=function(e){"BACK"===e?this.handleBack():"NEXT"===e?this.handleNext():"CANCEL"===e&&this.handleCancel()},e.prototype.handleBack=function(){"LOCATION"===this.state&&(this.state="MAP")},e.prototype.handleNext=function(){"MAP"===this.state?this.configuration.postalCode?this.handleSubmit():this.state="LOCATION":"LOCATION"===this.state?this.handleSubmit():"LOCATION-PROBLEM"===this.state?null!=this.configuration.termProblems?this.state="TERM-PROBLEM":this.handleSubmit():"TERM-PROBLEM"===this.state&&this.handleSubmit()},e.prototype.handleSubmit=function(){var e=this;this.service.importSpreadsheet(this.configuration).then((function(t){null!=t.locationProblems?(e.state="LOCATION-PROBLEM",e.configuration=t):null!=t.termProblems?(e.state="TERM-PROBLEM",e.configuration=t):(e.bsModalRef.hide(),e.bsModalRef=e.modalService.show(i.ConfirmModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0}),e.bsModalRef.content.message=e.localizeService.decode("data.import.go.to.scheduled.jobs.confirm.message"),e.bsModalRef.content.submitText=e.localizeService.decode("data.import.go.to.scheduled.jobs.button"),e.bsModalRef.content.onConfirm.subscribe((function(t){e.router.navigate(["/registry/scheduled-jobs"])})))})).catch((function(t){e.error(t)}))},e.prototype.handleCancel=function(){var e=this;this.service.cancelImport(this.configuration).then((function(t){e.bsModalRef.hide()})).catch((function(t){e.error(t)}))},e.prototype.error=function(e){this.message=i.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.IOService),o.ɵɵdirectiveInject(l.BsModalRef),o.ɵɵdirectiveInject(l.BsModalService),o.ɵɵdirectiveInject(s.LocalizationService),o.ɵɵdirectiveInject(c.Router))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["spreadsheet-modal"]],decls:3,vars:2,consts:[[1,"modal-body"],["class","alert alert-danger","role","alert",4,"ngIf"],[4,"ngIf"],["role","alert",1,"alert","alert-danger"],[3,"configuration","configurationChange","stateChange"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵtemplate(1,h,2,1,"div",1),o.ɵɵtemplate(2,S,5,4,"div",2),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(1),o.ɵɵproperty("ngIf",null!=t.message),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",null!=t.configuration&&t.configuration))},directives:[d.NgIf,p.AttributesPageComponent,m.LocationPageComponent,u.LocationProblemPageComponent,g.TermProblemPageComponent],encapsulation:2}),e}();t.SpreadsheetModalComponent=C,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(C,[{type:r.Component,args:[{selector:"spreadsheet-modal",templateUrl:"./spreadsheet-modal.component.html",styleUrls:[]}]}],(function(){return[{type:a.IOService},{type:l.BsModalRef},{type:l.BsModalService},{type:s.LocalizationService},{type:c.Router}]}),null)},585:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DataPageComponent=void 0;var r=n(0),i=(n(30),n(111)),o=(n(16),n(0)),a=n(16),l=n(30),s=n(122),c=n(86),d=n(1),p=n(33),m=n(68),u=n(586),g=function(e){return{active:e}};function h(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"a",9),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext().renderContent("SPREADSHEET")})),o.ɵɵelement(1,"localize",10),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext();o.ɵɵproperty("ngClass",o.ɵɵpureFunction1(1,g,"SPREADSHEET"===r.content))}}function f(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"a",9),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext().renderContent("SHAPEFILE")})),o.ɵɵelement(1,"localize",11),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext();o.ɵɵproperty("ngClass",o.ɵɵpureFunction1(1,g,"SHAPEFILE"===r.content))}}function y(e,t){1&e&&o.ɵɵelement(0,"dataimporter",12),2&e&&o.ɵɵproperty("format","EXCEL")}function v(e,t){1&e&&o.ɵɵelement(0,"dataimporter",12),2&e&&o.ɵɵproperty("format","SHAPEFILE")}var b=function(){function e(e,t,n){this.localizationService=e,this.modalService=t,this.service=n,this.content="SPREADSHEET",this.isAdmin=n.isAdmin(),this.isMaintainer=this.isAdmin||n.isMaintainer(),this.isContributor=this.isAdmin||this.isMaintainer||n.isContributer(),this.isMaintainer?this.renderContent("SPREADSHEET"):this.renderContent("EXPORT")}return e.prototype.ngOnInit=function(){},e.prototype.renderContent=function(e){this.content=e,"SPREADSHEET"===e?this.pageTitle=this.localizationService.decode("spreadsheet.title"):"SHAPEFILE"===e?this.pageTitle=this.localizationService.decode("shapefile.title"):"EXPORT"===e&&(this.pageTitle=this.localizationService.decode("io.export.title"))},e.prototype.error=function(e){this.bsModalRef=i.ErrorHandler.showErrorAsDialog(e,this.modalService)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.LocalizationService),o.ɵɵdirectiveInject(l.BsModalService),o.ɵɵdirectiveInject(a.AuthService))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["data-page"]],decls:17,vars:5,consts:[[1,"new-admin-design-main"],["id","app-container",1,"container-fluid"],[1,"row"],[1,"col-md-1"],[1,"col-md-10",2,"padding-top","30px"],[1,"heading"],["style","margin-right:10px;font-size:20px;",3,"routerLink","ngClass","click",4,"ngIf"],[1,"inner-col-content-wrapper",2,"padding-top","30px","margin-top","10px"],[3,"format",4,"ngIf"],[2,"margin-right","10px","font-size","20px",3,"routerLink","ngClass","click"],["key","import-spreadsheet-localization-manager.menu"],["key","import-shapefile-localization-manager.menu"],[3,"format"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵelement(1,"cgr-header"),o.ɵɵelement(2,"loading-bar"),o.ɵɵelementStart(3,"div",1),o.ɵɵelementStart(4,"div",2),o.ɵɵelement(5,"div",3),o.ɵɵelementStart(6,"div",4),o.ɵɵelementStart(7,"div",5),o.ɵɵelementStart(8,"h2"),o.ɵɵtext(9),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(10,"div"),o.ɵɵtemplate(11,h,2,3,"a",6),o.ɵɵtemplate(12,f,2,3,"a",6),o.ɵɵelementEnd(),o.ɵɵelementStart(13,"div",7),o.ɵɵtemplate(14,y,1,1,"dataimporter",8),o.ɵɵtemplate(15,v,1,1,"dataimporter",8),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelement(16,"div",3),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(9),o.ɵɵtextInterpolate1(" ",t.pageTitle," "),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",t.isMaintainer),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",t.isMaintainer),o.ɵɵadvance(2),o.ɵɵproperty("ngIf","SPREADSHEET"===t.content),o.ɵɵadvance(1),o.ɵɵproperty("ngIf","SHAPEFILE"===t.content))},directives:[s.CgrHeaderComponent,c.LoadingBarComponent,d.NgIf,p.RouterLinkWithHref,d.NgClass,m.LocalizeComponent,u.DataImporterComponent],styles:["a.active[_ngcontent-%COMP%] {\n\tborder-bottom: solid 2px #6BA542;\n}"]}),e}();t.DataPageComponent=b,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(b,[{type:r.Component,args:[{selector:"data-page",templateUrl:"./data-page.component.html",styleUrls:["./data-page.css"]}]}],(function(){return[{type:a.LocalizationService},{type:l.BsModalService},{type:a.AuthService}]}),null)},586:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DataImporterComponent=void 0;var r=n(0),i=(n(30),n(205)),o=n(111),a=(n(16),n(519),n(584)),l=n(581),s=n(258),c=n(0),d=n(519),p=n(16),m=n(30),u=n(1),g=n(68),h=n(22),f=n(260),y=n(262),v=n(205),b=["myFile"],S=["dateFieldComponents"],C=function(e){return{active:e}};function E(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"div"),c.ɵɵelementStart(1,"div"),c.ɵɵelementStart(2,"div",1),c.ɵɵelement(3,"div",2),c.ɵɵelementStart(4,"div",3),c.ɵɵelementStart(5,"label",4),c.ɵɵelementStart(6,"input",5),c.ɵɵlistener("change",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext().setImportSource(e,"FILE")})),c.ɵɵelementEnd(),c.ɵɵelementStart(7,"span",6),c.ɵɵelement(8,"localize",7),c.ɵɵelementEnd(),c.ɵɵelementStart(9,"p",8),c.ɵɵelement(10,"localize",9),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementStart(11,"label",4),c.ɵɵelementStart(12,"input",5),c.ɵɵlistener("change",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext().setImportSource(e,"EXTERNAL")})),c.ɵɵelementEnd(),c.ɵɵelementStart(13,"span",6),c.ɵɵelement(14,"localize",10),c.ɵɵelementEnd(),c.ɵɵelementStart(15,"p",8),c.ɵɵelement(16,"localize",11),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementStart(17,"div",12),c.ɵɵelementStart(18,"button",13),c.ɵɵlistener("click",(function(){return c.ɵɵrestoreView(n),c.ɵɵnextContext().onNext()})),c.ɵɵelement(19,"localize",14),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelement(20,"div",15),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd()}if(2&e){var r=c.ɵɵnextContext();c.ɵɵadvance(6),c.ɵɵproperty("value",!0)("checked",!r.isExternal),c.ɵɵadvance(1),c.ɵɵproperty("ngClass",c.ɵɵpureFunction1(6,C,!r.isExternal)),c.ɵɵadvance(5),c.ɵɵproperty("value",!1)("checked",r.isExternal),c.ɵɵadvance(1),c.ɵɵproperty("ngClass",c.ɵɵpureFunction1(8,C,r.isExternal))}}function x(e,t){if(1&e&&(c.ɵɵelementStart(0,"option",48),c.ɵɵtext(1),c.ɵɵelementEnd()),2&e){var n=t.$implicit;c.ɵɵpropertyInterpolate("value",n.oid),c.ɵɵadvance(1),c.ɵɵtextInterpolate(n.label.localizedValue)}}function O(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"div",19),c.ɵɵelementStart(1,"label",45),c.ɵɵelement(2,"localize",46),c.ɵɵelementEnd(),c.ɵɵelementStart(3,"div",23),c.ɵɵelementStart(4,"select",47),c.ɵɵlistener("ngModelChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext(2).externalSystemId=e})),c.ɵɵtemplate(5,x,2,2,"option",25),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelement(6,"div",26),c.ɵɵelementEnd()}if(2&e){var r=c.ɵɵnextContext(2);c.ɵɵadvance(4),c.ɵɵproperty("ngModel",r.externalSystemId),c.ɵɵadvance(1),c.ɵɵproperty("ngForOf",r.externalSystems)}}function I(e,t){if(1&e&&(c.ɵɵelementStart(0,"option",48),c.ɵɵtext(1),c.ɵɵelementEnd()),2&e){var n=t.$implicit;c.ɵɵpropertyInterpolate("value",n.code),c.ɵɵadvance(1),c.ɵɵtextInterpolate(n.label)}}function w(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"div",19),c.ɵɵelementStart(1,"label",49),c.ɵɵelement(2,"localize",50),c.ɵɵelementEnd(),c.ɵɵelementStart(3,"div",23),c.ɵɵelementStart(4,"select",51),c.ɵɵlistener("ngModelChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext(2).hierarchyCode=e}))("change",(function(){return c.ɵɵrestoreView(n),c.ɵɵnextContext(2).onSelectHierarchy()})),c.ɵɵelement(5,"option"),c.ɵɵtemplate(6,I,2,2,"option",25),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelement(7,"div",26),c.ɵɵelementEnd()}if(2&e){var r=c.ɵɵnextContext(2);c.ɵɵadvance(4),c.ɵɵproperty("ngModel",r.hierarchyCode),c.ɵɵadvance(2),c.ɵɵproperty("ngForOf",r.filteredHierarchyViews)}}function M(e,t){if(1&e&&(c.ɵɵelementStart(0,"option",48),c.ɵɵtext(1),c.ɵɵelementEnd()),2&e){var n=t.$implicit;c.ɵɵpropertyInterpolate("value",n.code),c.ɵɵadvance(1),c.ɵɵtextInterpolate(n.super?n.super.label+" : "+n.label:n.label)}}function T(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"div",19),c.ɵɵelementStart(1,"label",52),c.ɵɵelement(2,"localize",53),c.ɵɵelementEnd(),c.ɵɵelementStart(3,"div",23),c.ɵɵelementStart(4,"select",54),c.ɵɵlistener("ngModelChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext(2).typeCode=e}))("change",(function(){return c.ɵɵrestoreView(n),c.ɵɵnextContext(2).onSelectType()})),c.ɵɵelement(5,"option"),c.ɵɵtemplate(6,M,2,2,"option",25),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelement(7,"div",26),c.ɵɵelementEnd()}if(2&e){var r=c.ɵɵnextContext(2);c.ɵɵadvance(4),c.ɵɵproperty("ngModel",r.typeCode),c.ɵɵadvance(2),c.ɵɵproperty("ngForOf",r.filteredTypeViews)}}function j(e,t){1&e&&c.ɵɵelement(0,"localize",55)}function k(e,t){1&e&&c.ɵɵelement(0,"localize",56)}function z(e,t){if(1&e&&(c.ɵɵelementStart(0,"option",48),c.ɵɵtext(1),c.ɵɵelementEnd()),2&e){var n=t.$implicit;c.ɵɵpropertyInterpolate("value",n.strategy),c.ɵɵadvance(1),c.ɵɵtextInterpolate(n.label)}}function D(e,t){1&e&&c.ɵɵelement(0,"localize",57)}function R(e,t){1&e&&c.ɵɵelement(0,"localize",58)}function P(e,t){if(1&e&&c.ɵɵelement(0,"input",59,60),2&e){var n=c.ɵɵnextContext(2);c.ɵɵproperty("uploader",n.uploader)}}function A(e,t){if(1&e&&c.ɵɵelement(0,"input",61,60),2&e){var n=c.ɵɵnextContext(2);c.ɵɵproperty("uploader",n.uploader)}}function V(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"div"),c.ɵɵelementStart(1,"div"),c.ɵɵelementStart(2,"form",16,17),c.ɵɵtemplate(4,O,7,2,"div",18),c.ɵɵtemplate(5,w,8,2,"div",18),c.ɵɵtemplate(6,T,8,2,"div",18),c.ɵɵelementStart(7,"div",19),c.ɵɵelementStart(8,"label",20),c.ɵɵtemplate(9,j,1,0,"localize",21),c.ɵɵtemplate(10,k,1,0,"localize",22),c.ɵɵelementEnd(),c.ɵɵelementStart(11,"div",23),c.ɵɵelementStart(12,"select",24),c.ɵɵlistener("ngModelChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext().importStrategy=e}))("change",(function(){return c.ɵɵrestoreView(n),c.ɵɵnextContext().checkDates()})),c.ɵɵtemplate(13,z,2,2,"option",25),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelement(14,"div",26),c.ɵɵelementEnd(),c.ɵɵelementStart(15,"div",19),c.ɵɵelementStart(16,"label",27),c.ɵɵelement(17,"localize",28),c.ɵɵelementEnd(),c.ɵɵelementStart(18,"div",23),c.ɵɵelementStart(19,"date-field",29,30),c.ɵɵlistener("valueChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext().startDate=e}))("change",(function(){return c.ɵɵrestoreView(n),c.ɵɵnextContext().checkDates()})),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelement(21,"div",26),c.ɵɵelementEnd(),c.ɵɵelementStart(22,"div",19),c.ɵɵelementStart(23,"label",31),c.ɵɵelement(24,"localize",32),c.ɵɵelementEnd(),c.ɵɵelementStart(25,"div",23),c.ɵɵelementStart(26,"date-field",33,30),c.ɵɵlistener("valueChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext().endDate=e}))("change",(function(){return c.ɵɵrestoreView(n),c.ɵɵnextContext().checkDates()})),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelement(28,"div",26),c.ɵɵelementEnd(),c.ɵɵelementStart(29,"div",19),c.ɵɵelementStart(30,"label",34),c.ɵɵelement(31,"localize",35),c.ɵɵelementEnd(),c.ɵɵelementStart(32,"div",23),c.ɵɵelementStart(33,"boolean-field",36),c.ɵɵlistener("valueChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext().copyBlank=e})),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelement(34,"div",26),c.ɵɵelementEnd(),c.ɵɵelementStart(35,"div",19),c.ɵɵelementStart(36,"label",37),c.ɵɵtemplate(37,D,1,0,"localize",38),c.ɵɵtemplate(38,R,1,0,"localize",39),c.ɵɵelementEnd(),c.ɵɵelementStart(39,"div",23),c.ɵɵtemplate(40,P,2,1,"input",40),c.ɵɵtemplate(41,A,2,1,"input",41),c.ɵɵelementEnd(),c.ɵɵelement(42,"div",26),c.ɵɵelementEnd(),c.ɵɵelementStart(43,"div",19),c.ɵɵelement(44,"div",26),c.ɵɵelementStart(45,"div",42),c.ɵɵelementStart(46,"button",43),c.ɵɵlistener("click",(function(){return c.ɵɵrestoreView(n),c.ɵɵnextContext().onClick()})),c.ɵɵelement(47,"localize",44),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelement(48,"div",26),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd()}if(2&e){var r=c.ɵɵreference(3),i=c.ɵɵnextContext();c.ɵɵadvance(4),c.ɵɵproperty("ngIf",i.isExternal),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",i.filteredHierarchyViews),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",i.filteredTypeViews),c.ɵɵadvance(3),c.ɵɵproperty("ngIf","EXCEL"===i.format),c.ɵɵadvance(1),c.ɵɵproperty("ngIf","SHAPEFILE"===i.format),c.ɵɵadvance(2),c.ɵɵproperty("ngModel",i.importStrategy),c.ɵɵadvance(1),c.ɵɵproperty("ngForOf",i.importStrategies),c.ɵɵadvance(6),c.ɵɵproperty("value",i.startDate)("inputName","startDate")("allowFutureDates",!1),c.ɵɵadvance(7),c.ɵɵproperty("value",i.endDate)("inputName","endDate")("allowInfinity",!0)("allowFutureDates",!0)("required",!0),c.ɵɵadvance(7),c.ɵɵproperty("value",i.copyBlank),c.ɵɵadvance(4),c.ɵɵproperty("ngIf","EXCEL"===i.format),c.ɵɵadvance(1),c.ɵɵproperty("ngIf","SHAPEFILE"===i.format),c.ɵɵadvance(2),c.ɵɵproperty("ngIf","EXCEL"===i.format),c.ɵɵadvance(1),c.ɵɵproperty("ngIf","SHAPEFILE"===i.format),c.ɵɵadvance(5),c.ɵɵproperty("disabled",!i.isValid||r.invalid)}}var N=function(){function e(e,t,n,r,i,o,a,l){this.service=e,this.eventService=t,this.modalService=n,this.localizationService=r,this.authService=i,this.sysService=o,this.hierarchyService=a,this.changeDetectorRef=l,this.currentDate=new Date,this.showImportConfig=!1,this.isValid=!1,this.importStrategies=[{strategy:s.ImportStrategy.NEW_AND_UPDATE,label:this.localizationService.decode("etl.import.ImportStrategy.NEW_AND_UPDATE")},{strategy:s.ImportStrategy.NEW_ONLY,label:this.localizationService.decode("etl.import.ImportStrategy.NEW_ONLY")},{strategy:s.ImportStrategy.UPDATE_ONLY,label:this.localizationService.decode("etl.import.ImportStrategy.UPDATE_ONLY")}],this.typeCode=null,this.hierarchyCode=null,this.startDate=null,this.endDate=null,this.isExternal=!1,this.isLoading=!0,this.copyBlank=!0}return e.prototype.ngOnInit=function(){var e=this;this.sysService.getExternalSystems(1,100).then((function(t){e.externalSystems=t.resultSet,0===e.externalSystems.length&&(e.isExternal=!1,e.showImportConfig=!0),e.isLoading=!1})).catch((function(t){e.error(t)})),this.hierarchyService.getHierarchyGroupedTypes().then((function(t){e.allHierarchyViews=t,e.allTypeViews=[];for(var n=e.allHierarchyViews.length,r=0;r0?this.uploader.uploadAll():this.error({message:this.localizationService.decode("io.missing.file"),error:{}})},e.prototype.setImportSource=function(e,t){this.isExternal="EXTERNAL"===t},e.prototype.onNext=function(){this.showImportConfig=!0},e.prototype.onBack=function(){this.showImportConfig=!1},e.prototype.checkDates=function(){var e=this;setTimeout((function(){e.isValid=e.checkDateFieldValidity()}),0)},e.prototype.checkDateFieldValidity=function(){for(var e,t=this.dateFieldComponentsArray.toArray(),n=0;nthis.endDate&&(e.setInvalid(this.localizationService.decode("date.input.startdate.after.enddate.error.message")),this.changeDetectorRef.detectChanges()),!0},e.prototype.error=function(e){this.bsModalRef=o.ErrorHandler.showErrorAsDialog(e,this.modalService)},e.ɵfac=function(t){return new(t||e)(c.ɵɵdirectiveInject(d.IOService),c.ɵɵdirectiveInject(p.EventService),c.ɵɵdirectiveInject(m.BsModalService),c.ɵɵdirectiveInject(p.LocalizationService),c.ɵɵdirectiveInject(p.AuthService),c.ɵɵdirectiveInject(p.ExternalSystemService),c.ɵɵdirectiveInject(d.HierarchyService),c.ɵɵdirectiveInject(c.ChangeDetectorRef))},e.ɵcmp=c.ɵɵdefineComponent({type:e,selectors:[["dataimporter"]],viewQuery:function(e,t){if(1&e&&(c.ɵɵviewQuery(b,1),c.ɵɵviewQuery(S,1)),2&e){var n=void 0;c.ɵɵqueryRefresh(n=c.ɵɵloadQuery())&&(t.fileRef=n.first),c.ɵɵqueryRefresh(n=c.ɵɵloadQuery())&&(t.dateFieldComponentsArray=n)}},inputs:{format:"format"},decls:2,vars:2,consts:[[4,"ngIf"],[1,"row"],[1,"col-xs-1"],[1,"col-xs-9","radio-btn-wrapper"],[1,"radio"],["type","checkbox","name","import-source",3,"value","checked","change"],[3,"ngClass"],["key","importer.import.from-file.label"],[1,"radio-label-description"],["key","importer.import.from-file.description"],["key","importer.import.from-external.label"],["key","importer.import.from-external.description"],[1,"button-holder"],["type","submit",1,"btn","btn-primary",3,"click"],["key","io.next"],[1,"col-xs-2"],["autocomplete","off"],["form","ngForm"],["class","form-group row",4,"ngIf"],[1,"form-group","row"],["for","strategy",1,"col-md-2","text-right"],["key","spreadsheet.import.import.strategy",4,"ngIf"],["key","shapefile.import.import.strategy",4,"ngIf"],[1,"col-md-8"],["id","strategy","name","strategy","required","",1,"select-area",3,"ngModel","ngModelChange","change"],[3,"value",4,"ngFor","ngForOf"],[1,"col-md-2"],["for","startDate",1,"col-md-2","text-right"],["key","io.startDate"],["label","",3,"value","inputName","allowFutureDates","valueChange","change"],["dateFieldComponents",""],["for","endDate",1,"col-md-2","text-right"],["key","io.endDate"],["label","",3,"value","inputName","allowInfinity","allowFutureDates","required","valueChange","change"],["for","copyBlank",1,"col-md-2","text-right"],["key","dataimporter.importblankcells"],["label","",3,"value","valueChange"],["for","file",1,"col-md-2","text-right"],["key","io.spreadsheet",4,"ngIf"],["key","io.shapefile",4,"ngIf"],["class","ghost-input","name","file","type","file","ng2FileSelect","","accept",".xls, .xlsx","required","",3,"uploader",4,"ngIf"],["class","ghost-input","name","file","type","file","ng2FileSelect","","accept",".zip","required","",3,"uploader",4,"ngIf"],[1,"button-holder","col-md-8","text-right"],["type","submit",1,"btn","btn-primary",3,"disabled","click"],["key","io.submit"],["for","externalSystem",1,"col-md-2","text-right"],["key","io.import.externalSystems"],["id","externalSystem","name","externalSystem","required","",1,"select-area",3,"ngModel","ngModelChange"],[3,"value"],["for","hierarchyCode",1,"col-md-2","text-right"],["key","io.modal.hierarchy"],["id","hierarchyCode","name","hierarchyCode","required","",1,"select-area",3,"ngModel","ngModelChange","change"],["for","code",1,"col-md-2","text-right"],["key","io.geoObjectType"],["id","code","name","code","required","",1,"select-area",3,"ngModel","ngModelChange","change"],["key","spreadsheet.import.import.strategy"],["key","shapefile.import.import.strategy"],["key","io.spreadsheet"],["key","io.shapefile"],["name","file","type","file","ng2FileSelect","","accept",".xls, .xlsx","required","",1,"ghost-input",3,"uploader"],["myFile",""],["name","file","type","file","ng2FileSelect","","accept",".zip","required","",1,"ghost-input",3,"uploader"]],template:function(e,t){1&e&&(c.ɵɵtemplate(0,E,21,10,"div",0),c.ɵɵtemplate(1,V,49,21,"div",0)),2&e&&(c.ɵɵproperty("ngIf",!t.isLoading&&!t.showImportConfig&&t.externalSystems.length>0),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",!t.isLoading&&null!==t.isExternal&&t.showImportConfig))},directives:[u.NgIf,u.NgClass,g.LocalizeComponent,h.ɵangular_packages_forms_forms_ba,h.NgControlStatusGroup,h.NgForm,h.SelectControlValueAccessor,h.RequiredValidator,h.NgControlStatus,h.NgModel,u.NgForOf,f.DateFieldComponent,y.BooleanFieldComponent,h.NgSelectOption,h.ɵangular_packages_forms_forms_z,v.FileSelectDirective],styles:[".radio-btn-wrapper[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n\tfont-size: 17px;\n\tfont-weight: normal;\n}\n\n.radio-btn-wrapper[_ngcontent-%COMP%] span.active[_ngcontent-%COMP%] {\n\tcolor: #6BA542;\n\tfont-weight: bold;\n}\n\n.radio-btn-wrapper[_ngcontent-%COMP%] p.radio-label-description[_ngcontent-%COMP%]{\n\tcolor: #a3a0a0;\n\tmargin-left: 30px;\n}"]}),e}();t.DataImporterComponent=N,("undefined"==typeof ngDevMode||ngDevMode)&&c.ɵsetClassMetadata(N,[{type:r.Component,args:[{selector:"dataimporter",templateUrl:"./dataimporter.component.html",styleUrls:["./dataimporter.css"]}]}],(function(){return[{type:d.IOService},{type:p.EventService},{type:m.BsModalService},{type:p.LocalizationService},{type:p.AuthService},{type:p.ExternalSystemService},{type:d.HierarchyService},{type:c.ChangeDetectorRef}]}),{dateFieldComponentsArray:[{type:r.ViewChildren,args:["dateFieldComponents"]}],fileRef:[{type:r.ViewChild,args:["myFile"]}],format:[{type:r.Input}]})},587:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MasterListManagerComponent=void 0;var r=n(0),i=(n(33),n(30),n(519),n(531)),o=n(111),a=(n(16),n(0)),l=n(519),s=n(30),c=n(33),d=n(16),p=n(122),m=n(86),u=n(68),g=n(1);function h(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",6),a.ɵɵtext(1),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵtextInterpolate(n.message)}}function f(e,t){1&e&&(a.ɵɵelementStart(0,"div",7),a.ɵɵelementStart(1,"div",10),a.ɵɵelementStart(2,"div",11),a.ɵɵelementStart(3,"p",17),a.ɵɵelement(4,"localize",18),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd())}function y(e,t){1&e&&(a.ɵɵelementStart(0,"span"),a.ɵɵelement(1,"localize",35),a.ɵɵelementEnd())}function v(e,t){1&e&&a.ɵɵelement(0,"localize",36)}function b(e,t){1&e&&a.ɵɵelement(0,"localize",37)}function S(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"button",38),a.ɵɵlistener("click",(function(){a.ɵɵrestoreView(n);var e=a.ɵɵnextContext().$implicit,t=a.ɵɵnextContext(2).$implicit;return a.ɵɵnextContext().onDelete(t,e)})),a.ɵɵelement(1,"localize",39),a.ɵɵelementEnd()}}function C(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"tr",24),a.ɵɵelementStart(1,"td",25),a.ɵɵelementStart(2,"a",26),a.ɵɵtext(3),a.ɵɵtemplate(4,y,2,0,"span",16),a.ɵɵelementStart(5,"span"),a.ɵɵtext(6," ( "),a.ɵɵtemplate(7,v,1,0,"localize",27),a.ɵɵtemplate(8,b,1,0,"localize",28),a.ɵɵtext(9," ) "),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(10,"td",29),a.ɵɵelementStart(11,"button",30),a.ɵɵlistener("click",(function(){a.ɵɵrestoreView(n);var e=t.$implicit;return a.ɵɵnextContext(3).onView(e.oid)})),a.ɵɵelement(12,"localize",31),a.ɵɵelementEnd(),a.ɵɵelementStart(13,"button",32),a.ɵɵlistener("click",(function(){a.ɵɵrestoreView(n);var e=t.$implicit;return a.ɵɵnextContext(3).onEdit(e)})),a.ɵɵelement(14,"localize",33),a.ɵɵelementEnd(),a.ɵɵtemplate(15,S,2,0,"button",34),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=t.$implicit;a.ɵɵadvance(2),a.ɵɵproperty("routerLink","/registry/master-list-view/"+r.oid),a.ɵɵadvance(1),a.ɵɵtextInterpolate1(" ",r.label," "),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",r.isMaster),a.ɵɵadvance(3),a.ɵɵproperty("ngIf","PUBLIC"===r.visibility),a.ɵɵadvance(1),a.ɵɵproperty("ngIf","PRIVATE"===r.visibility),a.ɵɵadvance(7),a.ɵɵproperty("ngIf",r.write)}}function E(e,t){if(1&e&&(a.ɵɵelementStart(0,"ul",19),a.ɵɵelementStart(1,"table",20),a.ɵɵelementStart(2,"thead"),a.ɵɵelementStart(3,"tr"),a.ɵɵelementStart(4,"th",21),a.ɵɵelement(5,"localize",22),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(6,"tbody"),a.ɵɵtemplate(7,C,16,6,"tr",23),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext().$implicit;a.ɵɵadvance(7),a.ɵɵproperty("ngForOf",n.lists)}}function x(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div"),a.ɵɵelementStart(1,"button",30),a.ɵɵlistener("click",(function(){a.ɵɵrestoreView(n);var e=a.ɵɵnextContext().$implicit;return a.ɵɵnextContext().onCreate(e)})),a.ɵɵelement(2,"localize",40),a.ɵɵelementEnd(),a.ɵɵelementEnd()}}function O(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",7),a.ɵɵelementStart(1,"div",8),a.ɵɵelementStart(2,"div",9),a.ɵɵelementStart(3,"div",10),a.ɵɵelementStart(4,"div",11),a.ɵɵelementStart(5,"h3"),a.ɵɵtext(6),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵtemplate(7,f,5,0,"div",12),a.ɵɵtemplate(8,E,8,1,"ul",13),a.ɵɵelementStart(9,"div",14),a.ɵɵelementStart(10,"div",15),a.ɵɵtemplate(11,x,3,0,"div",16),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=t.$implicit;a.ɵɵadvance(6),a.ɵɵtextInterpolate(n.label),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",n.lists&&0===n.lists.length),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",n.lists&&n.lists.length>0),a.ɵɵadvance(3),a.ɵɵproperty("ngIf",n.write)}}var I=function(){function e(e,t,n,r){this.service=e,this.modalService=t,this.router=n,this.localizeService=r,this.message=null}return e.prototype.ngOnInit=function(){var e=this;this.service.getMasterListsByOrg().then((function(t){e.orgs=t.orgs})).catch((function(t){e.error(t)}))},e.prototype.onCreate=function(e){this.bsModalRef=this.modalService.show(i.PublishModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0}),this.bsModalRef.content.init(e),this.bsModalRef.content.isNew=!0,this.bsModalRef.content.onMasterListChange.subscribe((function(t){var n={label:t.displayLabel.localizedValue,oid:t.oid,createDate:t.createDate,lastUpdateDate:t.lastUpdateDate,isMaster:t.isMaster,write:t.write,read:t.read,visibility:t.visibility};e.lists.push(n)}))},e.prototype.onView=function(e){this.router.navigate(["/registry/master-list-view/",e])},e.prototype.onEdit=function(e){var t=this;this.service.getMasterList(e.oid).then((function(n){t.bsModalRef=t.modalService.show(i.PublishModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0}),t.bsModalRef.content.edit=!0,t.bsModalRef.content.readonly=!n.write,t.bsModalRef.content.master=n,t.bsModalRef.content.originalPublishStartDate=n.publishingStartDate,t.bsModalRef.content.isNew=!1,t.bsModalRef.content.onMasterListChange.subscribe((function(t){e.label=t.displayLabel.localizedValue,e.visibility=t.visibility}))})).catch((function(e){t.error(e)}))},e.prototype.onDelete=function(e,t){var n=this;this.bsModalRef=this.modalService.show(o.ConfirmModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0}),this.bsModalRef.content.message=this.localizeService.decode("confirm.modal.verify.delete")+" ["+t.label+"]",this.bsModalRef.content.submitText=this.localizeService.decode("modal.button.delete"),this.bsModalRef.content.type="danger",this.bsModalRef.content.onConfirm.subscribe((function(r){n.service.deleteMasterList(t.oid).then((function(n){e.lists=e.lists.filter((function(e,n,r){return e.oid!==t.oid}))})).catch((function(e){n.error(e)}))}))},e.prototype.error=function(e){this.message=o.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(l.RegistryService),a.ɵɵdirectiveInject(s.BsModalService),a.ɵɵdirectiveInject(c.Router),a.ɵɵdirectiveInject(d.LocalizationService))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["master-list-manager"]],decls:9,vars:2,consts:[[1,"new-admin-design-main"],["id","app-container",1,"container-fluid"],[1,"heading"],["key","masterlists.manager.organizations"],["class","alert alert-danger","role","alert",4,"ngIf"],["class","row",4,"ngFor","ngForOf"],["role","alert",1,"alert","alert-danger"],[1,"row"],[1,"col-md-12","order-md-1"],[1,"row",2,"margin-top","30px"],[1,"col-md-12"],[1,"py-5"],["class","row",4,"ngIf"],["class","list-group","style","border-bottom: 2px solid lightgrey; margin-top: 30px;",4,"ngIf"],[1,"row",2,"margin-top","30px","margin-bottom","30px"],[1,"col-md-6"],[4,"ngIf"],[1,"inline-message"],["key","masterlists.no.lists.in.org.message"],[1,"list-group",2,"border-bottom","2px solid lightgrey","margin-top","30px"],[1,"table"],[2,"width","70%"],["key","masterlist.menu"],["class","clickable",4,"ngFor","ngForOf"],[1,"clickable"],[2,"width","70%","vertical-align","middle"],["routerLinkActive","active",3,"routerLink"],["key","masterlist.public",4,"ngIf"],["key","masterlist.private",4,"ngIf"],[2,"width","30%","text-align","right"],["type","submit","role","button",1,"btn","btn-primary",3,"click"],["key","modal.button.view"],["type","submit","role","button",1,"btn","btn-default",3,"click"],["key","masterlist.button.metadata"],["type","submit","class","btn btn-danger","role","button",3,"click",4,"ngIf"],["key","masterlist.master"],["key","masterlist.public"],["key","masterlist.private"],["type","submit","role","button",1,"btn","btn-danger",3,"click"],["key","modal.button.delete"],["key","hierarchy.management.button.create"]],template:function(e,t){1&e&&(a.ɵɵelementStart(0,"div",0),a.ɵɵelement(1,"cgr-header"),a.ɵɵelement(2,"loading-bar"),a.ɵɵelementStart(3,"div",1),a.ɵɵelementStart(4,"div",2),a.ɵɵelementStart(5,"h2"),a.ɵɵelement(6,"localize",3),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵtemplate(7,h,2,1,"div",4),a.ɵɵtemplate(8,O,12,4,"div",5),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e&&(a.ɵɵadvance(7),a.ɵɵproperty("ngIf",null!=t.message),a.ɵɵadvance(1),a.ɵɵproperty("ngForOf",t.orgs))},directives:[p.CgrHeaderComponent,m.LoadingBarComponent,u.LocalizeComponent,g.NgIf,g.NgForOf,c.RouterLinkWithHref,c.RouterLinkActive],styles:[""]}),e}();t.MasterListManagerComponent=I,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(I,[{type:r.Component,args:[{selector:"master-list-manager",templateUrl:"./master-list-manager.component.html",styleUrls:["./master-list-manager.css"]}]}],(function(){return[{type:l.RegistryService},{type:s.BsModalService},{type:c.Router},{type:d.LocalizationService}]}),null)},588:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ExportFormatModalComponent=void 0;var r=n(0),i=(n(30),n(31)),o=n(0),a=n(30),l=n(68),s=n(22),c=function(){function e(e){this.bsModalRef=e}return e.prototype.ngOnInit=function(){this.onFormat=new i.Subject},e.prototype.confirm=function(){this.bsModalRef.hide(),this.onFormat.next(this.format)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.BsModalRef))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["export-format-modal"]],decls:25,vars:2,consts:[["tabindex","-1","role","dialog",1,"modal-body"],[1,"heading","text-center"],["key","export-modal.title"],["name","export-form",1,"modal-form"],[1,"row"],[1,"col-md-12"],["key","export-modal.message"],["id","format","name","format","required","",1,"select-area",3,"ngModel","ngModelChange"],["value","EXCEL"],["key","io.spreadsheet"],["value","SHAPEFILE"],["key","io.shapefile"],[1,"button-holder"],["type","button","role","button","aria-disabled","false",1,"btn","btn-default",3,"click"],["key","modal.button.cancel"],["type","button","role","button",1,"btn","btn-primary",3,"disabled","click"],["key","modal.button.submit"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵelementStart(1,"div",1),o.ɵɵelementStart(2,"h1"),o.ɵɵelement(3,"localize",2),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(4,"form",3),o.ɵɵelementStart(5,"fieldset"),o.ɵɵelementStart(6,"div",4),o.ɵɵelementStart(7,"div",5),o.ɵɵelementStart(8,"label"),o.ɵɵelement(9,"localize",6),o.ɵɵelementEnd(),o.ɵɵelementStart(10,"select",7),o.ɵɵlistener("ngModelChange",(function(e){return t.format=e})),o.ɵɵelement(11,"option"),o.ɵɵelementStart(12,"option",8),o.ɵɵelement(13,"localize",9),o.ɵɵelementEnd(),o.ɵɵelementStart(14,"option",10),o.ɵɵelement(15,"localize",11),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(16,"div",4),o.ɵɵelementStart(17,"div",5),o.ɵɵelementStart(18,"div",12),o.ɵɵelementStart(19,"button",13),o.ɵɵlistener("click",(function(){return t.bsModalRef.hide()})),o.ɵɵelementStart(20,"span"),o.ɵɵelement(21,"localize",14),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(22,"button",15),o.ɵɵlistener("click",(function(){return t.confirm()})),o.ɵɵelementStart(23,"span"),o.ɵɵelement(24,"localize",16),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(10),o.ɵɵproperty("ngModel",t.format),o.ɵɵadvance(12),o.ɵɵproperty("disabled",null==t.format||""==t.format))},directives:[l.LocalizeComponent,s.ɵangular_packages_forms_forms_ba,s.NgControlStatusGroup,s.NgForm,s.SelectControlValueAccessor,s.RequiredValidator,s.NgControlStatus,s.NgModel,s.NgSelectOption,s.ɵangular_packages_forms_forms_z],encapsulation:2}),e}();t.ExportFormatModalComponent=c,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(c,[{type:r.Component,args:[{selector:"export-format-modal",templateUrl:"./export-format-modal.component.html",styleUrls:[]}]}],(function(){return[{type:a.BsModalRef}]}),null)},589:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RequestTableComponent=void 0;var r=n(0),i=(n(33),n(1),n(30),n(7)),o=n(205),a=n(258),l=(n(519),n(16),n(112),n(111)),s=n(0),c=n(519),d=n(30),p=n(16),m=n(33),u=n(112),g=n(1),h=n(68),f=n(22),y=n(525),v=n(205),b=n(204),S=n(113),C=["myFile"];function E(e,t){if(1&e&&s.ɵɵelement(0,"i",25),2&e){var n=s.ɵɵnextContext();s.ɵɵproperty("ngClass",n.isAscending("createdBy")?"fa-arrow-down":"fa-arrow-up")}}function x(e,t){if(1&e&&s.ɵɵelement(0,"i",25),2&e){var n=s.ɵɵnextContext();s.ɵɵproperty("ngClass",n.isAscending("geoObjectTypeLabel")?"fa-arrow-down":"fa-arrow-up")}}function O(e,t){if(1&e&&s.ɵɵelement(0,"i",25),2&e){var n=s.ɵɵnextContext();s.ɵɵproperty("ngClass",n.isAscending("geoObjectLabel")?"fa-arrow-down":"fa-arrow-up")}}function I(e,t){if(1&e&&s.ɵɵelement(0,"i",25),2&e){var n=s.ɵɵnextContext();s.ɵɵproperty("ngClass",n.isAscending("createDate")?"fa-arrow-down":"fa-arrow-up")}}function w(e,t){if(1&e&&s.ɵɵelement(0,"i",25),2&e){var n=s.ɵɵnextContext();s.ɵɵproperty("ngClass",n.isAscending("approvalStatus")?"fa-arrow-down":"fa-arrow-up")}}function M(e,t){if(1&e&&s.ɵɵelement(0,"i",25),2&e){var n=s.ɵɵnextContext();s.ɵɵproperty("ngClass",n.isAscending("oid")?"fa-arrow-down":"fa-arrow-up")}}function T(e,t){1&e&&(s.ɵɵelementStart(0,"h4",39),s.ɵɵelement(1,"localize",48),s.ɵɵelementEnd())}function j(e,t){1&e&&(s.ɵɵelementStart(0,"h4",39),s.ɵɵelement(1,"localize",49),s.ɵɵelementEnd())}function k(e,t){1&e&&(s.ɵɵelementStart(0,"div",50),s.ɵɵelement(1,"localize",51),s.ɵɵelementEnd())}function z(e,t){1&e&&(s.ɵɵelementStart(0,"div",50),s.ɵɵelement(1,"localize",52),s.ɵɵelementEnd())}function D(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"div",53),s.ɵɵelementStart(1,"label",54),s.ɵɵelement(2,"localize",55),s.ɵɵelementEnd(),s.ɵɵelementStart(3,"textarea",56),s.ɵɵlistener("ngModelChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).$implicit.contributorNotes=e})),s.ɵɵelementEnd(),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(2).$implicit;s.ɵɵadvance(1),s.ɵɵpropertyInterpolate1("for","contribNotesInput-",r.oid,""),s.ɵɵadvance(2),s.ɵɵpropertyInterpolate1("id","contribNotesInput-",r.oid,""),s.ɵɵproperty("ngModel",r.contributorNotes)("disabled",!r.permissions.includes("WRITE_DETAILS"))}}function R(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"geoobject-shared-attribute-editor",69,70),s.ɵɵlistener("valid",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(4).setValid(e)})),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(3).$implicit,i=s.ɵɵnextContext();s.ɵɵproperty("readOnly",!i.canEdit(r))("geoObjectType",r.current.geoObjectType)("postGeoObject","UpdateGeoObject"==r.type?r.current.geoObject:r.actions[0].geoObjectJson)("changeRequest",r)("hierarchies","UpdateGeoObject"==r.type?r.current.hierarchies:r.actions[0].parentJson)("isGeometryInlined",!0)("isNew","CreateGeoObject"===r.type)}}function P(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"div",71),s.ɵɵelementStart(1,"label",54),s.ɵɵelement(2,"localize",72),s.ɵɵelementEnd(),s.ɵɵelementStart(3,"textarea",73),s.ɵɵlistener("ngModelChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(3).$implicit.maintainerNotes=e})),s.ɵɵelementEnd(),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(3).$implicit;s.ɵɵadvance(1),s.ɵɵpropertyInterpolate1("for","maintainerNotesInput-",r.oid,""),s.ɵɵadvance(2),s.ɵɵpropertyInterpolate1("id","maintainerNotesInput-",r.oid,""),s.ɵɵproperty("ngModel",r.maintainerNotes)("disabled",!r.permissions.includes("WRITE_MAINTAINER_NOTES"))}}function A(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"div",71),s.ɵɵelementStart(1,"label",54),s.ɵɵelement(2,"localize",74),s.ɵɵelementEnd(),s.ɵɵelementStart(3,"input",75),s.ɵɵlistener("ngModelChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(3).$implicit.additionalNotes=e})),s.ɵɵelementEnd(),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(3).$implicit;s.ɵɵadvance(1),s.ɵɵpropertyInterpolate1("for","additionalNotes-",r.oid,""),s.ɵɵadvance(2),s.ɵɵpropertyInterpolate1("id","additionalNotes-",r.oid,""),s.ɵɵproperty("ngModel",r.additionalNotes)("disabled",!r.permissions.includes("WRITE_MAINTAINER_NOTES"))}}function V(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"li",79),s.ɵɵelementStart(1,"a",14),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=t.$implicit,r=s.ɵɵnextContext(4).$implicit;return s.ɵɵnextContext().onDownloadFile(r,e.oid)})),s.ɵɵtext(2),s.ɵɵelementEnd(),s.ɵɵelementStart(3,"i",80),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=t.$implicit,r=s.ɵɵnextContext(4).$implicit;return s.ɵɵnextContext().onDeleteFile(r,e.oid)})),s.ɵɵelementEnd(),s.ɵɵelementEnd()}if(2&e){var r=t.$implicit;s.ɵɵadvance(2),s.ɵɵtextInterpolate(r.fileName)}}function N(e,t){if(1&e&&(s.ɵɵelementStart(0,"div",76),s.ɵɵelementStart(1,"ul",77),s.ɵɵtemplate(2,V,4,1,"li",78),s.ɵɵelementEnd(),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext(3).$implicit;s.ɵɵadvance(2),s.ɵɵproperty("ngForOf",n.documents)}}function L(e,t){1&e&&(s.ɵɵelementStart(0,"p",81),s.ɵɵelement(1,"localize",82),s.ɵɵelementEnd())}function _(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"div",83),s.ɵɵelement(1,"input",84,85),s.ɵɵelementStart(3,"button",86),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext(3).$implicit;return s.ɵɵnextContext().onUpload(e)})),s.ɵɵpipe(4,"localize"),s.ɵɵelement(5,"localize",87),s.ɵɵelementEnd(),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(4);s.ɵɵadvance(1),s.ɵɵproperty("uploader",r.uploader),s.ɵɵadvance(2),s.ɵɵproperty("title",s.ɵɵpipeBind1(4,2,"change.request.upload.document.btn.hover"))}}function F(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"button",93),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext(5).$implicit;return s.ɵɵnextContext().onReject(e)})),s.ɵɵpipe(1,"localize"),s.ɵɵelement(2,"localize",94),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(5).$implicit;s.ɵɵproperty("disabled","PENDING"!==r.approvalStatus)("title",s.ɵɵpipeBind1(1,2,"change.request.reject.all.btn.hover"))}}function H(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"span"),s.ɵɵelementStart(1,"button",90),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext(4).$implicit;return s.ɵɵnextContext().onExecute(e)})),s.ɵɵpipe(2,"localize"),s.ɵɵelement(3,"localize",91),s.ɵɵelementEnd(),s.ɵɵtemplate(4,F,3,4,"button",92),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(4).$implicit;s.ɵɵadvance(1),s.ɵɵproperty("disabled","PENDING"!==r.approvalStatus)("title",s.ɵɵpipeBind1(2,4,"change.request.implement.decisions.btn.hover")),s.ɵɵadvance(2),s.ɵɵproperty("key","UpdateGeoObject"===r.type?"change.request.accept.changes.btn":"change.request.accept.newGeoObject.btn"),s.ɵɵadvance(1),s.ɵɵproperty("ngIf","CreateGeoObject"===r.type)}}function G(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"button",99),s.ɵɵlistener("click",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext(6).onEditAttributes()})),s.ɵɵelement(1,"localize",100),s.ɵɵelementEnd()}}function q(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"button",101),s.ɵɵlistener("click",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext(6).onEditAttributes()})),s.ɵɵelement(1,"localize",102),s.ɵɵelementEnd()}}function B(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"button",103),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext(5).$implicit;return s.ɵɵnextContext().onUpdate(e)})),s.ɵɵpipe(1,"localize"),s.ɵɵelement(2,"localize",104),s.ɵɵelementEnd()}2&e&&s.ɵɵproperty("title",s.ɵɵpipeBind1(1,1,"modal.button.update"))}function U(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"button",105),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext(5).$implicit;return s.ɵɵnextContext().onDelete(e)})),s.ɵɵpipe(1,"localize"),s.ɵɵelement(2,"localize",106),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(6);s.ɵɵproperty("disabled",!r.isEditing)("title",s.ɵɵpipeBind1(1,2,"change.request.delete.request.hover"))}}function $(e,t){if(1&e&&(s.ɵɵelementStart(0,"span"),s.ɵɵtemplate(1,G,2,0,"button",95),s.ɵɵtemplate(2,q,2,0,"button",96),s.ɵɵtemplate(3,B,3,3,"button",97),s.ɵɵtemplate(4,U,3,4,"button",98),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext(4).$implicit,r=s.ɵɵnextContext();s.ɵɵadvance(1),s.ɵɵproperty("ngIf",!r.isEditing),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",r.isEditing),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",r.isEditing),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",n.permissions.includes("DELETE")&&n.createdBy===r.getUsername())}}function J(e,t){if(1&e&&(s.ɵɵelementStart(0,"div",88),s.ɵɵtemplate(1,H,5,6,"span",89),s.ɵɵtemplate(2,$,5,4,"span",89),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext(3).$implicit,r=s.ɵɵnextContext();s.ɵɵadvance(1),s.ɵɵproperty("ngIf",n.permissions.includes("WRITE_APPROVAL_STATUS")),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",r.isValid&&n.permissions.includes("WRITE_DETAILS")&&n.createdBy===r.getUsername())}}function W(e,t){if(1&e&&(s.ɵɵelementStart(0,"div",57),s.ɵɵelementStart(1,"div",58),s.ɵɵelementStart(2,"div",59),s.ɵɵelementStart(3,"div",1),s.ɵɵtemplate(4,R,2,7,"geoobject-shared-attribute-editor",60),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(5,"div",61),s.ɵɵelementStart(6,"div",62),s.ɵɵtemplate(7,P,4,4,"div",63),s.ɵɵtemplate(8,A,4,4,"div",63),s.ɵɵelementEnd(),s.ɵɵelementStart(9,"div",62),s.ɵɵelementStart(10,"div"),s.ɵɵelementStart(11,"label"),s.ɵɵelement(12,"localize",64),s.ɵɵelementEnd(),s.ɵɵtemplate(13,N,3,1,"div",65),s.ɵɵtemplate(14,L,2,0,"p",66),s.ɵɵtemplate(15,_,6,4,"div",67),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵtemplate(16,J,3,2,"div",68),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext(2).$implicit,r=s.ɵɵnextContext();s.ɵɵadvance(4),s.ɵɵproperty("ngIf",n),s.ɵɵadvance(3),s.ɵɵproperty("ngIf",n.permissions.includes("READ_MAINTAINER_NOTES")),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",n.permissions.includes("READ_MAINTAINER_NOTES")),s.ɵɵadvance(5),s.ɵɵproperty("ngIf",n.documents.length>0),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",0===n.documents.length),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",n.permissions.includes("WRITE_DOCUMENTS")&&r.isEditing),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",n.permissions.includes("WRITE_APPROVAL_STATUS")||n.permissions.includes("DELETE"))}}var K=function(e,t,n,r){return{"status-pending-container":e,"status-accepted-container":t,"status-partial-container":n,"status-rejected-container":r}};function Q(e,t){if(1&e&&(s.ɵɵelementStart(0,"tr",35),s.ɵɵelementStart(1,"td",36),s.ɵɵelementStart(2,"div",37),s.ɵɵelementStart(3,"div"),s.ɵɵelementStart(4,"h3",38),s.ɵɵtext(5),s.ɵɵelementEnd(),s.ɵɵelementStart(6,"h4",39),s.ɵɵtext(7),s.ɵɵelementEnd(),s.ɵɵtemplate(8,T,2,0,"h4",40),s.ɵɵtemplate(9,j,2,0,"h4",40),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(10,"div",41),s.ɵɵelementStart(11,"div",1),s.ɵɵtemplate(12,k,2,0,"div",42),s.ɵɵtemplate(13,z,2,0,"div",42),s.ɵɵtemplate(14,D,4,4,"div",43),s.ɵɵelementStart(15,"div"),s.ɵɵelementStart(16,"p"),s.ɵɵelement(17,"localize",44),s.ɵɵtext(18," "),s.ɵɵelementStart(19,"strong"),s.ɵɵtext(20),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(21,"p"),s.ɵɵelement(22,"localize",45),s.ɵɵtext(23," "),s.ɵɵelementStart(24,"strong"),s.ɵɵtext(25),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(26,"p"),s.ɵɵelement(27,"localize",46),s.ɵɵtext(28," "),s.ɵɵelementStart(29,"strong"),s.ɵɵtext(30),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵtemplate(31,W,17,7,"div",47),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext().$implicit,r=s.ɵɵnextContext();s.ɵɵproperty("@fadeInOut",void 0)("ngClass",s.ɵɵpureFunction4(13,K,"PENDING"===n.approvalStatus,"ACCEPTED"===n.approvalStatus,"PARTIAL"===n.approvalStatus,"REJECTED"===n.approvalStatus)),s.ɵɵadvance(5),s.ɵɵtextInterpolate(n.geoObject.label),s.ɵɵadvance(2),s.ɵɵtextInterpolate(n.geoObject.code),s.ɵɵadvance(1),s.ɵɵproperty("ngIf","UpdateGeoObject"===n.type),s.ɵɵadvance(1),s.ɵɵproperty("ngIf","CreateGeoObject"===n.type),s.ɵɵadvance(3),s.ɵɵproperty("ngIf",!r.isRequestTooOld(n)&&"INVALID"===n.approvalStatus),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",r.isRequestTooOld(n)),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",n.permissions.includes("READ_CONTRIBUTOR_NOTES")),s.ɵɵadvance(6),s.ɵɵtextInterpolate(n.createdBy),s.ɵɵadvance(5),s.ɵɵtextInterpolate(n.email),s.ɵɵadvance(5),s.ɵɵtextInterpolate(n.phoneNumber),s.ɵɵadvance(1),s.ɵɵproperty("ngIf","INVALID"!==n.approvalStatus&&!r.isRequestTooOld(n))}}var Y=function(e){return{"row-active":e}},X=function(e,t,n,r){return{"status-pending":e,"status-accepted":t,"status-partial":n,"status-rejected":r}};function Z(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"tr",26),s.ɵɵlistener("click",(function(e){s.ɵɵrestoreView(n);var r=t.$implicit;return s.ɵɵnextContext().toggle(e,r.oid)})),s.ɵɵelementStart(1,"td",27),s.ɵɵelementStart(2,"h5"),s.ɵɵelementStart(3,"strong"),s.ɵɵtext(4),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(5,"td",28),s.ɵɵelementStart(6,"h5"),s.ɵɵelementStart(7,"strong"),s.ɵɵtext(8),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(9,"td",28),s.ɵɵelementStart(10,"h5"),s.ɵɵelementStart(11,"strong"),s.ɵɵtext(12),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(13,"td",29),s.ɵɵelementStart(14,"span",30),s.ɵɵtext(15),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(16,"td",27),s.ɵɵelementStart(17,"h5",31),s.ɵɵelementStart(18,"strong"),s.ɵɵtext(19),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(20,"td",28),s.ɵɵelementStart(21,"h5"),s.ɵɵelementStart(22,"strong"),s.ɵɵtext(23),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(24,"td",32),s.ɵɵelement(25,"i",33),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵtemplate(26,Q,32,18,"tr",34)}if(2&e){var r=t.$implicit,i=s.ɵɵnextContext();s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(9,Y,i.toggleId===r.oid)),s.ɵɵadvance(4),s.ɵɵtextInterpolate(r.createdBy),s.ɵɵadvance(4),s.ɵɵtextInterpolate(r.geoObjectType.label),s.ɵɵadvance(4),s.ɵɵtextInterpolate(r.geoObject.label),s.ɵɵadvance(3),s.ɵɵtextInterpolate1(" ",i.formatDate(r.createDate)," "),s.ɵɵadvance(2),s.ɵɵproperty("ngClass",s.ɵɵpureFunction4(11,X,"PENDING"===r.approvalStatus,"ACCEPTED"===r.approvalStatus,"PARTIAL"===r.approvalStatus,"REJECTED"===r.approvalStatus)),s.ɵɵadvance(2),s.ɵɵtextInterpolate(r.statusLabel),s.ɵɵadvance(4),s.ɵɵtextInterpolate(r.oid),s.ɵɵadvance(3),s.ɵɵproperty("ngIf",i.toggleId===r.oid)}}function ee(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"div",23),s.ɵɵelementStart(1,"pagination-controls",107),s.ɵɵlistener("pageChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext().pageChange(e)})),s.ɵɵelementEnd(),s.ɵɵelementEnd()}}var te=function(e,t,n){return{itemsPerPage:e,currentPage:t,totalItems:n}},ne=function(){function e(e,t,n,r,i,o,a,l,s,c){this.service=e,this.geomService=t,this.modalService=n,this.authService=r,this.localizationService=i,this.eventService=o,this.route=a,this.router=l,this.dateService=s,this.location=c,this.today=new Date,this.todayString=this.dateService.getDateString(new Date),this.objectKeys=Object.keys,this.page={count:0,pageNumber:1,pageSize:10,resultSet:[]},this.requests=[],this.columns=[],this.filterCriteria="ALL",this.sort=[{attribute:"createDate",ascending:!1}],this.hasBaseDropZoneOver=!1,this.oid=null,this.isValid=!0,this.isEditing=!1,this.columns=[{name:i.decode("change.request.user"),prop:"createdBy",sortable:!1},{name:i.decode("change.request.createDate"),prop:"createDate",sortable:!1,width:195},{name:i.decode("change.request.status"),prop:"approvalStatus",sortable:!1}]}return e.prototype.ngOnInit=function(){var e=this;this.oid=this.route.snapshot.paramMap.get("oid"),this.route.paramMap.subscribe((function(t){e.oid=t.get("oid"),e.refresh()})),null!=this.oid&&(this.toggleId=this.oid);var t={queueLimit:1,removeAfterUpload:!0,url:acp+"/changerequest/upload-file-cr"};this.uploader=new o.FileUploader(t),this.uploader.onBuildItemForm=function(t,n){n.append("crOid",e.uploadRequest.oid)},this.uploader.onBeforeUploadItem=function(t){e.eventService.start()},this.uploader.onCompleteItem=function(t,n,r,i){e.fileRef.nativeElement.value="",e.eventService.complete()},this.uploader.onSuccessItem=function(t,n,r,i){var o=JSON.parse(n),a=e.requests.findIndex((function(e){return e.oid===o.requestId}));-1!==a&&e.requests[a].documents.push(o)},this.uploader.onErrorItem=function(t,n,r,i){var o=JSON.parse(n);e.error({error:o})},this.refresh()},e.prototype.isSorting=function(e){return this.sort.length>0&&this.sort[0].attribute===e},e.prototype.isAscending=function(e){return this.sort.length>0&&this.sort[0].ascending},e.prototype.onSort=function(e){var t=this.sort.findIndex((function(t){return t.attribute===e}));if(-1!==t){var n=this.sort[t];n.ascending=!n.ascending}else this.sort=[{attribute:e,ascending:!0}];this.refresh()},e.prototype.getGOTLabel=function(e){return e.geoObjectJson&&e.geoObjectJson.attributes&&e.geoObjectJson.attributes.displayLabel&&e.geoObjectJson.attributes.displayLabel.values&&e.geoObjectJson.attributes.displayLabel.values[0]&&e.geoObjectJson.attributes.displayLabel.values[0].value&&e.geoObjectJson.attributes.displayLabel.values[0].value.localeValues&&e.geoObjectJson.attributes.displayLabel.values[0].value.localeValues[0]&&e.geoObjectJson.attributes.displayLabel.values[0].value.localeValues[0].value?e.geoObjectJson.attributes.displayLabel.values[0].value.localeValues[0].value:e.geoObjectJson&&e.geoObjectJson.attributes&&e.geoObjectJson.attributes.code?e.geoObjectJson.attributes.code:this.localizationService.decode("geoObject.label")},e.prototype.setValid=function(e){this.isValid=e},e.prototype.onUpload=function(e){this.uploadRequest=e,null!=this.uploader.queue&&this.uploader.queue.length>0?this.uploader.uploadAll():this.error({message:this.localizationService.decode("io.missing.file"),error:{}})},e.prototype.onDownloadFile=function(e,t){window.location.href=acp+"/changerequest/download-file-cr?crOid="+e.oid+"&vfOid="+t},e.prototype.onDeleteFile=function(e,t){var n=this;this.service.deleteFile(e.oid,t).then((function(){var n=e.documents.findIndex((function(e){return e.oid===t}));-1!==n&&e.documents.splice(n,1)})).catch((function(e){n.error(e)}))},e.prototype.fileOverBase=function(e){this.hasBaseDropZoneOver=e},e.prototype.pageChange=function(e){void 0===e&&(e=1),this.oid=null,this.refresh(e)},e.prototype.refresh=function(e){var t=this;void 0===e&&(e=1),this.geomService.destroy(),this.service.getAllRequests(this.page.pageSize,e,this.filterCriteria,this.sort,this.oid).then((function(e){t.page=e,t.requests=e.resultSet,t.requests.forEach((function(e){if(!e.current.geoObject)for(var t=0;t-1&&t.requests.splice(n,1),t.refresh()})).catch((function(e){t.error(e)}))}))}},e.prototype.onUpdate=function(e){var t=this;null!=e&&this.service.update(e).then((function(e){t.refresh(),t.isEditing=!1})).catch((function(e){t.error(e)}))},e.prototype.applyActionStatusProperties=function(e){var t=this;this.service.setActionStatus(e.oid,e.approvalStatus).then((function(n){e.decisionMaker="PENDING"!==e.approvalStatus?t.authService.getUsername():""})).catch((function(e){t.error(e)}))},e.prototype.error=function(e){this.bsModalRef=l.ErrorHandler.showErrorAsDialog(e,this.modalService)},e.prototype.requestTrackBy=function(e,t){return t.oid},e.prototype.toggle=function(e,t){var n=this;this.location.replaceState("/registry/change-requests/"+t),e.target.parentElement.className.includes("btn")||e.target.className.includes("btn")||(this.toggleId===t?this.toggleId=null:(this.toggleId=t,this.requests.forEach((function(e){e.oid===t&&(n.actions=e.actions)}))))},e.prototype.filter=function(e){this.filterCriteria=e,this.refresh(1)},e.prototype.setActionStatus=function(e,t){var n=this;this.modalService.show(l.ConfirmModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0}).content.onConfirm.subscribe((function(r){e.approvalStatus=t,n.applyActionStatusProperties(e)}))},e.prototype.getActiveDetailComponent=function(e){return e.actionType.endsWith("CreateGeoObjectAction")||e.actionType.endsWith("UpdateGeoObjectAction"),e},e.prototype.formatDate=function(e){return this.dateService.formatDateForDisplay(e)},e.prototype.getUsername=function(){return this.authService.getUsername()},e.prototype.isRequestTooOld=function(e){if(e.actions&&e.actions.length>0){var t=e.actions[0];return t.actionType===a.ActionTypes.UPDATEGEOOBJECTACTION||t.actionType===a.ActionTypes.CREATEGEOOBJECTACTION&&!t.geoObjectJson.attributes.exists}return!0},e.prototype.onEditAttributes=function(){this.isEditing=!this.isEditing},e.prototype.canEdit=function(e){return e.permissions.includes("WRITE_DETAILS")&&this.isEditing},e.ɵfac=function(t){return new(t||e)(s.ɵɵdirectiveInject(c.ChangeRequestService),s.ɵɵdirectiveInject(c.GeometryService),s.ɵɵdirectiveInject(d.BsModalService),s.ɵɵdirectiveInject(p.AuthService),s.ɵɵdirectiveInject(p.LocalizationService),s.ɵɵdirectiveInject(p.EventService),s.ɵɵdirectiveInject(m.ActivatedRoute),s.ɵɵdirectiveInject(m.Router),s.ɵɵdirectiveInject(u.DateService),s.ɵɵdirectiveInject(g.Location))},e.ɵcmp=s.ɵɵdefineComponent({type:e,selectors:[["request-table"]],viewQuery:function(e,t){if(1&e&&s.ɵɵviewQuery(C,1),2&e){var n;s.ɵɵqueryRefresh(n=s.ɵɵloadQuery())&&(t.fileRef=n.first)}},inputs:{toggleId:"toggleId"},decls:49,vars:21,consts:[[1,"row"],[1,"col-md-12"],[1,"form-group","button-row"],[2,"border-bottom","1px solid",3,"routerLink","ngClass","click"],["key","change.request.all.filter.link"],[2,"margin-left","5px","border-bottom","1px solid",3,"routerLink","ngClass","click"],["key","change.request.pending.filter.link"],["key","change.request.accepted.filter.link"],["key","change.request.partial.filter.link"],["key","change.request.rejected.filter.link"],[2,"border-top","solid 3px #6BA542"],[1,"table"],[2,"height","50px","color","grey"],[2,"vertical-align","middle"],[3,"click"],["key","change.request.contributor.label"],["class","fa cr-sort-arrow",3,"ngClass",4,"ngIf"],["key","geoObjectType.label"],["key","geoObject.label"],["key","change.request.date.contributed.label"],["key","change.request.status.label"],["key","change.request.id.label"],["ngFor","",3,"ngForOf","ngForTrackBy"],[1,"solid-table-footer"],["class","solid-table-footer",4,"ngIf"],[1,"fa","cr-sort-arrow",3,"ngClass"],[1,"clickable",2,"height","50px",3,"ngClass","click"],[1,"col-md-1"],[1,"col-md-2"],[1,"col-md-1",2,"vertical-align","middle","color","grey"],[1,"date-string-display"],[3,"ngClass"],[1,"col-md-1",2,"vertical-align","middle","text-align","right","padding-right","25px"],["aria-hidden","true",1,"arrow","arrow-right"],["style","background-color:#f7f7f7;",3,"ngClass",4,"ngIf"],[2,"background-color","#f7f7f7",3,"ngClass"],["colspan","7"],[1,"geoobject-panel-header"],[2,"margin-top","10px"],[2,"font-style","italic"],["style","font-style: italic;",4,"ngIf"],[1,"row",2,"margin","0","background","white"],["class","cr-details-invalid error-message",4,"ngIf"],["class","form-group","style","margin-top:20px;",4,"ngIf"],["key","change.request.contributor.prefix.label"],["key","change.request.contributor.email.prefix.label"],["key","change.request.contributor.phone.prefix.label"],["class","cr-details",4,"ngIf"],["key","change.request.type.update.geoobject.label"],["key","change.request.type.create.geoobject.label"],[1,"cr-details-invalid","error-message"],["key","change.request.invalid"],["key","change.request.tooOld"],[1,"form-group",2,"margin-top","20px"],[3,"for"],["key","change.request.contributor.notes.label"],[1,"form-control",2,"height","90px","max-width","100%",3,"id","ngModel","disabled","ngModelChange"],[1,"cr-details"],[1,"action-card",2,"margin-bottom","10px","background-color","white"],[1,"row",2,"background","white"],[3,"readOnly","geoObjectType","postGeoObject","changeRequest","hierarchies","isGeometryInlined","isNew","valid",4,"ngIf"],[1,"row",2,"border-top","1px grey solid","margin","0","padding","10px 0"],[1,"col-md-6"],["class","form-group",4,"ngIf"],["key","change.request.reference.documents.label"],["style","border:1px solid #ccc;border-radius: 4px;",4,"ngIf"],["style","color:grey;font-style:italic;",4,"ngIf"],["style","padding:10px 0;",4,"ngIf"],["class","button-holder","style","margin-bottom:20px;min-height:40px;",4,"ngIf"],[3,"readOnly","geoObjectType","postGeoObject","changeRequest","hierarchies","isGeometryInlined","isNew","valid"],["attributeEditor",""],[1,"form-group"],["key","change.request.maintainer.notes.label"],[1,"form-control",2,"height","90px","max-width","100%","margin","0",3,"id","ngModel","disabled","ngModelChange"],["key","change.request.action.detail.additionalNotes"],["type","text",1,"form-control",2,"width","100%",3,"id","ngModel","disabled","ngModelChange"],[2,"border","1px solid #ccc","border-radius","4px"],[2,"padding","10px","margin","0"],["class","list-group-item","style","padding:0;font-size:inherit;",4,"ngFor","ngForOf"],[1,"list-group-item",2,"padding","0","font-size","inherit"],["aria-hidden","true",1,"fa","fa-times","ico-remove",2,"margin-left","10px",3,"click"],[2,"color","grey","font-style","italic"],["key","change.request.no.documents.label"],[2,"padding","10px 0"],["name","file","type","file","ng2FileSelect","","required","",1,"ghost-input",2,"display","inline-block","padding","0","height","auto","border-radius","0","margin-top","10px",3,"uploader"],["myFile",""],[1,"btn","btn-primary","pull-right",2,"margin","0",3,"title","click"],["key","change.request.reference.document.upload"],[1,"button-holder",2,"margin-bottom","20px","min-height","40px"],[4,"ngIf"],["type","submit","role","button",1,"btn","btn-primary",2,"margin","0",3,"disabled","title","click"],[3,"key"],["type","submit","class","btn btn-danger","style","margin:0 10px;","role","button",3,"disabled","title","click",4,"ngIf"],["type","submit","role","button",1,"btn","btn-danger",2,"margin","0 10px",3,"disabled","title","click"],["key","change.request.reject.all.btn"],["type","submit","class","btn btn-primary","role","button",3,"click",4,"ngIf"],["type","submit","class","btn btn-default","role","button",3,"click",4,"ngIf"],["type","submit","role","button","class","btn btn-primary",3,"title","click",4,"ngIf"],["type","submit","role","button","class","btn btn-danger pull-right",3,"disabled","title","click",4,"ngIf"],["type","submit","role","button",1,"btn","btn-primary",3,"click"],["key","changeovertime.manageVersions.button.label"],["type","submit","role","button",1,"btn","btn-default",3,"click"],["key","modal.button.cancel"],["type","submit","role","button",1,"btn","btn-primary",3,"title","click"],["key","modal.button.update"],["type","submit","role","button",1,"btn","btn-danger","pull-right",3,"disabled","title","click"],["key","change.request.delete.request.btn"],[3,"pageChange"]],template:function(e,t){1&e&&(s.ɵɵelementStart(0,"div",0),s.ɵɵelementStart(1,"div",1),s.ɵɵelementStart(2,"div",2),s.ɵɵelementStart(3,"a",3),s.ɵɵlistener("click",(function(){return t.filter("ALL")})),s.ɵɵelement(4,"localize",4),s.ɵɵelementEnd(),s.ɵɵelementStart(5,"a",5),s.ɵɵlistener("click",(function(){return t.filter("PENDING")})),s.ɵɵelement(6,"localize",6),s.ɵɵelementEnd(),s.ɵɵelementStart(7,"a",5),s.ɵɵlistener("click",(function(){return t.filter("ACCEPTED")})),s.ɵɵelement(8,"localize",7),s.ɵɵelementEnd(),s.ɵɵelementStart(9,"a",5),s.ɵɵlistener("click",(function(){return t.filter("PARTIAL")})),s.ɵɵelement(10,"localize",8),s.ɵɵelementEnd(),s.ɵɵelementStart(11,"a",5),s.ɵɵlistener("click",(function(){return t.filter("REJECTED")})),s.ɵɵelement(12,"localize",9),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelement(13,"hr",10),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(14,"div",0),s.ɵɵelementStart(15,"div",1),s.ɵɵelementStart(16,"table",11),s.ɵɵelementStart(17,"thead"),s.ɵɵelementStart(18,"tr",12),s.ɵɵelementStart(19,"th",13),s.ɵɵelementStart(20,"a",14),s.ɵɵlistener("click",(function(){return t.onSort("createdBy")})),s.ɵɵelement(21,"localize",15),s.ɵɵelementEnd(),s.ɵɵtemplate(22,E,1,1,"i",16),s.ɵɵelementEnd(),s.ɵɵelementStart(23,"th",13),s.ɵɵelementStart(24,"a",14),s.ɵɵlistener("click",(function(){return t.onSort("geoObjectTypeLabel")})),s.ɵɵelement(25,"localize",17),s.ɵɵelementEnd(),s.ɵɵtemplate(26,x,1,1,"i",16),s.ɵɵelementEnd(),s.ɵɵelementStart(27,"th",13),s.ɵɵelementStart(28,"a",14),s.ɵɵlistener("click",(function(){return t.onSort("geoObjectLabel")})),s.ɵɵelement(29,"localize",18),s.ɵɵelementEnd(),s.ɵɵtemplate(30,O,1,1,"i",16),s.ɵɵelementEnd(),s.ɵɵelementStart(31,"th",13),s.ɵɵelementStart(32,"a",14),s.ɵɵlistener("click",(function(){return t.onSort("createDate")})),s.ɵɵelement(33,"localize",19),s.ɵɵelementEnd(),s.ɵɵtemplate(34,I,1,1,"i",16),s.ɵɵelementEnd(),s.ɵɵelementStart(35,"th",13),s.ɵɵelementStart(36,"a",14),s.ɵɵlistener("click",(function(){return t.onSort("approvalStatus")})),s.ɵɵelement(37,"localize",20),s.ɵɵelementEnd(),s.ɵɵtemplate(38,w,1,1,"i",16),s.ɵɵelementEnd(),s.ɵɵelementStart(39,"th",13),s.ɵɵelementStart(40,"a",14),s.ɵɵlistener("click",(function(){return t.onSort("oid")})),s.ɵɵelement(41,"localize",21),s.ɵɵelementEnd(),s.ɵɵtemplate(42,M,1,1,"i",16),s.ɵɵelementEnd(),s.ɵɵelement(43,"th"),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(44,"tbody"),s.ɵɵtemplate(45,Z,27,16,"ng-template",22),s.ɵɵpipe(46,"paginate"),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(47,"div",23),s.ɵɵtemplate(48,ee,2,0,"div",24),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd()),2&e&&(s.ɵɵadvance(3),s.ɵɵproperty("ngClass","ALL"===t.filterCriteria?"cr-filter-link-active":""),s.ɵɵadvance(2),s.ɵɵproperty("ngClass","PENDING"===t.filterCriteria?"cr-filter-link-active":""),s.ɵɵadvance(2),s.ɵɵproperty("ngClass","ACCEPTED"===t.filterCriteria?"cr-filter-link-active":""),s.ɵɵadvance(2),s.ɵɵproperty("ngClass","PARTIAL"===t.filterCriteria?"cr-filter-link-active":""),s.ɵɵadvance(2),s.ɵɵproperty("ngClass","REJECTED"===t.filterCriteria?"cr-filter-link-active":""),s.ɵɵadvance(11),s.ɵɵproperty("ngIf",t.isSorting("createdBy")),s.ɵɵadvance(4),s.ɵɵproperty("ngIf",t.isSorting("geoObjectTypeLabel")),s.ɵɵadvance(4),s.ɵɵproperty("ngIf",t.isSorting("geoObjectLabel")),s.ɵɵadvance(4),s.ɵɵproperty("ngIf",t.isSorting("createDate")),s.ɵɵadvance(4),s.ɵɵproperty("ngIf",t.isSorting("approvalStatus")),s.ɵɵadvance(4),s.ɵɵproperty("ngIf",t.isSorting("oid")),s.ɵɵadvance(3),s.ɵɵproperty("ngForOf",s.ɵɵpipeBind2(46,14,t.requests,s.ɵɵpureFunction3(17,te,t.page.pageSize,t.page.pageNumber,t.page.count)))("ngForTrackBy",t.requestTrackBy),s.ɵɵadvance(3),s.ɵɵproperty("ngIf",t.page.resultSet.length>0))},directives:[m.RouterLinkWithHref,g.NgClass,h.LocalizeComponent,g.NgIf,g.NgForOf,f.DefaultValueAccessor,f.NgControlStatus,f.NgModel,y.GeoObjectSharedAttributeEditorComponent,v.FileSelectDirective,b.PaginationControlsComponent],pipes:[b.PaginatePipe,S.LocalizePipe],styles:[".vertical-center {\n\tposition: relative;\n\ttop: 50%;\n\ttransform: translateY(-50%);\n}\n\n.status-pending {\n\tcolor: orange;\n}\n\n.status-accepted,\n.status-partial {\n\tcolor: #6BA542;\n}\n\n.status-rejected {\n\tcolor: #d43f3a;\n}\n\n.status-pending-container {\n\tborder: solid 2px orange;\n}\n.status-accepted-container,\n.status-partial-container {\n\tborder: solid 2px #6BA542;\n}\n.status-rejected-container {\n\tborder: solid 2px #d43f3a;\n}\n\n.cr-sort-arrow {\n\tfont-size: 14px;\n}\n\n.cr-filter-link-active,\n.cr-filter-link-active:active {\n\t/* border: solid 1px #6BA542; */\n border-radius: 10px;\n background: #6BA542;\n color: white;\n font-weight: bold;\n padding: 3px 15px 3px 15px;\n}\n.cr-filter-link-active:hover,\n.cr-filter-link-active:focus {\n\tcolor:white;\n}\n\n/* .btn {\n\tborder: 2px solid; \n}\n.btn:disabled {\n\tborder: none;\n}\n\n.btn.btn-danger {\n\tbackground-color:#ffeeed; \n\tcolor:#d43f3a;\n}\n.btn.btn-danger:hover,\n.btn.btn-danger:active {\n\tcolor:#d43f3a;\n\tbackground-color:#fff7f6; \n\tborder-color: #d43f3a;\n}\n.btn.btn-danger:disabled:hover {\n\tbackground-color:#ffeeed; \n}\n\n.btn.btn-warning {\n\tbackground-color: #ffefd7;\n\tcolor: orange;\n}\n.btn.btn-warning:hover {\n\tbackground-color: #fff4e5;\n\tborder-color: orange;\n}\n.btn.btn-warning:disabled {\n\tbackground-color: #ffefd7;\n}\n\n.clickable:hover {\n\tbackground-color: #f7f7f7;\n\tcursor: pointer;\n}\n.clickable:hover .arrow.arrow-right {\n\ttransform: rotate(45deg);\n -webkit-transform: rotate(45deg);\n} */\n\ntr.row-active {\n\tbackground-color:#f7f7f7;\n}\n\n\n.arrow {\n border: solid black;\n border-width: 0 1px 1px 0;\n display: inline-block;\n padding: 5px;\n}\n.arrow-right {\n transform: rotate(-45deg);\n -webkit-transform: rotate(-45deg);\n}\n.arrow-down {\n transform: rotate(45deg);\n -webkit-transform: rotate(45deg);\n}\n\n.form-group textarea:focus {\n\tborder-color: #edf4e8;\n\t-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(107,165,66,.6);\n\tbox-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(107,165,66,.6);\n\n}\ntextarea[readonly]:focus {\n\tbox-shadow: none;\n\tborder: 1px solid #ccc;\n\tcursor: not-allowed;\n}\n\n\n.geoobject-panel-header{\n width: 100%;\n background: grey;\n color: white;\n padding: 10px;\n}\n"],encapsulation:2,data:{animation:[[i.trigger("fadeInOut",[i.transition(":enter",[i.style({opacity:0}),i.animate("300ms")]),i.transition(":leave",i.animate("100ms",i.style({opacity:0})))]),i.trigger("fadeIn",[i.transition(":enter",[i.style({opacity:0}),i.animate("500ms")])])]]}}),e}();t.RequestTableComponent=ne,("undefined"==typeof ngDevMode||ngDevMode)&&s.ɵsetClassMetadata(ne,[{type:r.Component,args:[{selector:"request-table",templateUrl:"./request-table.component.html",styleUrls:["./request-table.css"],encapsulation:r.ViewEncapsulation.None,animations:[[i.trigger("fadeInOut",[i.transition(":enter",[i.style({opacity:0}),i.animate("300ms")]),i.transition(":leave",i.animate("100ms",i.style({opacity:0})))]),i.trigger("fadeIn",[i.transition(":enter",[i.style({opacity:0}),i.animate("500ms")])])]]}]}],(function(){return[{type:c.ChangeRequestService},{type:c.GeometryService},{type:d.BsModalService},{type:p.AuthService},{type:p.LocalizationService},{type:p.EventService},{type:m.ActivatedRoute},{type:m.Router},{type:u.DateService},{type:g.Location}]}),{toggleId:[{type:r.Input}],fileRef:[{type:r.ViewChild,args:["myFile"]}]})},590:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChangeRequestChangeOverTimeAttributeEditor=void 0;var r=n(258),i=n(521),o=n(203),a=n(591),l=n(628),s=n(377),c=n(519),d=n(31),p=function(){function e(e,t,n){if(this.onChangeSubject=new d.Subject,this.changeRequestEditor=e,this.attribute=t,this.hierarchy=n,this.getEditAction(),null!=n)for(var r=0;r0?t.value=null!=e?JSON.parse(JSON.stringify(e.value)):JSON.parse(JSON.stringify(i[i.length-1].value)):t.value=c.GeometryService.createEmptyGeometryValue(this.changeRequestEditor.geoObjectType.geometryType)}else if("term"===this.attribute.type){var d=o.GeoObjectType.getGeoObjectTypeTermAttributeOptions(this.changeRequestEditor.geoObjectType,this.attribute.code);d&&d.length>0&&(t.value=d[0].code)}else"_PARENT_"===this.attribute.code&&"UpdateGeoObject"===this.changeRequestEditor.changeRequest.type?t.hierarchyEntry=t.createEmptyHierarchyEntry():"_PARENT_"!==this.attribute.code&&(t.value=null);return this.editors.push(t),this.onChange(r.ChangeType.ADD),t},e.prototype.remove=function(e){if(null!=e.diff&&"CREATE"===e.diff.action||"CreateGeoObject"===this.changeRequestEditor.changeRequest.type){var t=this.editors.findIndex((function(t){return t.oid===e.oid}));-1!==t&&this.editors.splice(t,1)}e.remove(),this.validate()},e}();t.ChangeRequestChangeOverTimeAttributeEditor=p},591:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ValueOverTimeCREditor=void 0;var r=n(521),i=n(377),o=n(269),a=n(153),l=n(519),s=n(31),c=n(258),d=function(){function e(e,t,n){this.onChangeSubject=new s.Subject,this._isValid=!0,this.attr=t,this.changeRequestAttributeEditor=e,this.action=n}return e.prototype.onChange=function(e){this.changeRequestAttributeEditor.onChange(e),this.onChangeSubject.next(e)},e.prototype.getGeoObjectTimeRangeStorage=function(){return this.valueOverTime},e.prototype.getValueFromGeoObjectForDiff=function(){return this.valueOverTime.value},e.prototype.validate=function(){var e=this.changeRequestAttributeEditor.changeRequestEditor.dateService,t=e.validateDate(null==this.startDate?null:e.getDateFromDateString(this.startDate),!0,!0),n=e.validateDate(null==this.endDate?null:e.getDateFromDateString(this.endDate),!0,!0);return this._isValid=!0,t.valid&&n.valid||(this._isValid=!1),this.validateUpdateReference(),this._isValid},e.prototype.validateUpdateReference=function(){var e=this.changeRequestAttributeEditor.changeRequestEditor.dateService.missingReference;(this.conflictMessages||(this.conflictMessages=new Set),this.conflictMessages.delete(e),"UpdateGeoObject"===this.changeRequestAttributeEditor.changeRequestEditor.changeRequest.type&&null!=this.diff&&"CREATE"!==this.diff.action)&&(null==this.findExistingValueOverTimeByOid(this.diff.oid,this.attr.code)&&(this._isValid=!1,this.conflictMessages.add(e)))},e.prototype.findExistingValueOverTimeByOid=function(e,t){if(this.changeRequestAttributeEditor.changeRequestEditor.geoObject.attributes[t]){var n=this.changeRequestAttributeEditor.changeRequestEditor.geoObject.attributes[t].values.findIndex((function(t){return t.oid===e}));if(-1!==n)return this.changeRequestAttributeEditor.changeRequestEditor.geoObject.attributes[t].values[n]}return null},Object.defineProperty(e.prototype,"oid",{get:function(){return null!=this.diff?this.diff.oid:null!=this.getGeoObjectTimeRangeStorage()?this.getGeoObjectTimeRangeStorage().oid:null},set:function(e){null!=this.diff?this.diff.oid=e:null!=this.getGeoObjectTimeRangeStorage()&&(this.getGeoObjectTimeRangeStorage().oid=e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"startDate",{get:function(){return null!=this.diff&&void 0!==this.diff.newStartDate?this.diff.newStartDate:null!=this.diff&&void 0!==this.diff.oldStartDate?this.diff.oldStartDate:null!=this.getGeoObjectTimeRangeStorage()?this.getGeoObjectTimeRangeStorage().startDate:null},set:function(e){if(!this.isDelete()){var t=this.getGeoObjectTimeRangeStorage();if("UpdateAttributeAction"===this.action.actionType){if(null==this.diff)if(null==this.getGeoObjectTimeRangeStorage())this.constructNewDiff("CREATE");else{if(t.startDate===e)return;this.constructNewDiff("UPDATE"),this.diff.oldValue=this.getValueFromGeoObjectForDiff()}e===this.diff.oldStartDate?delete this.diff.newStartDate:this.diff.newStartDate=e,this.removeEmptyDiff()}else"CreateGeoObjectAction"===this.action.actionType&&(t.startDate=e);this.onChange(c.ChangeType.START_DATE)}},enumerable:!1,configurable:!0}),e.prototype.constructNewDiff=function(e){if(this.diff=new r.ValueOverTimeDiff,this.diff.action=e,this.action.attributeDiff.valuesOverTime.push(this.diff),"CREATE"===e)this.diff.oid=i.v4();else{var t=this.getGeoObjectTimeRangeStorage();this.diff.oid=t.oid,this.diff.oldStartDate=t.startDate,this.diff.oldEndDate=t.endDate}},Object.defineProperty(e.prototype,"oldStartDate",{get:function(){return null!=this.diff?this.diff.oldStartDate:null},set:function(e){null!=this.diff&&(this.diff.oldStartDate=e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"endDate",{get:function(){return null!=this.diff&&void 0!==this.diff.newEndDate?this.diff.newEndDate:null!=this.diff&&void 0!==this.diff.oldStartDate?this.diff.oldEndDate:null!=this.getGeoObjectTimeRangeStorage()?this.getGeoObjectTimeRangeStorage().endDate:null},set:function(e){if(!this.isDelete()){var t=this.getGeoObjectTimeRangeStorage();if("UpdateAttributeAction"===this.action.actionType){if(null==this.diff)if(null==t)this.constructNewDiff("CREATE");else{if(t.endDate===e)return;this.constructNewDiff("UPDATE"),this.diff.oldValue=this.getValueFromGeoObjectForDiff()}e===this.diff.oldEndDate?delete this.diff.newEndDate:this.diff.newEndDate=e,this.removeEmptyDiff()}else"CreateGeoObjectAction"===this.action.actionType&&(t.endDate=e);this.onChange(c.ChangeType.END_DATE)}},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"oldEndDate",{get:function(){return null!=this.diff?this.diff.oldEndDate:null},set:function(e){null!=this.diff&&(this.diff.oldEndDate=e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"value",{get:function(){return null!=this.diff&&void 0!==this.diff.newValue?this.diff.newValue:null!=this.diff&&void 0!==this.diff.oldValue?this.diff.oldValue:null!=this.getGeoObjectTimeRangeStorage()?this.getGeoObjectTimeRangeStorage().value:null},set:function(e){if(!this.isDelete()){if(null!=e){if("term"===this.attr.type)e=[e];else if("date"===this.attr.type)e=new Date(e).getTime();else if("geometry"===this.attr.type){if("MultiPoint"===e.type)for(var t=0;t-1&&t.attributeDiff.valuesOverTime.splice(n,1)}else{if(null!=this.diff)return delete this.diff.newValue,delete this.diff.newStartDate,delete this.diff.newEndDate,this.removeEmptyDiff(),void this.onChange(c.ChangeType.REMOVE);null!=this.valueOverTime&&null==this.diff&&(this.diff=new r.ValueOverTimeDiff,this.diff.action="DELETE",this.diff.oid=this.valueOverTime.oid,this.diff.oldValue=this.valueOverTime.value,this.diff.oldStartDate=this.valueOverTime.startDate,this.diff.oldEndDate=this.valueOverTime.endDate,this.action.attributeDiff.valuesOverTime.push(this.diff))}else if("CreateGeoObjectAction"===this.action.actionType){var n,i=this.action.geoObjectJson.attributes[this.attr.code].values;-1!==(n=i.findIndex((function(t){return t.oid===e.valueOverTime.oid})))&&i.splice(n,1)}this.onChange(c.ChangeType.REMOVE)},e.prototype.isDelete=function(){return null!=this.diff&&"DELETE"===this.diff.action},e}();t.ValueOverTimeCREditor=d},592:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ManageVersionsComponent=void 0;var r=n(0),i=n(7),o=n(203),a=n(521),l=n(153),s=n(258),c=(n(87),n(111)),d=(n(30),n(519),n(522),n(112),n(16),n(630)),p=n(22),m=n(31),u=(n(535),n(0)),g=n(519),h=n(16),f=n(112),y=n(87),v=n(522),b=n(30),S=["dateFieldComponents"];function C(e,t){if(1&e&&(u.ɵɵelementStart(0,"h5"),u.ɵɵtext(1),u.ɵɵelementEnd()),2&e){var n=t.item;u.ɵɵadvance(1),u.ɵɵtextInterpolate2("",n.name," : ",n.code,"")}}function E(e,t){1&e&&(u.ɵɵelementStart(0,"p",16),u.ɵɵelement(1,"localize",17),u.ɵɵelementEnd())}function x(e,t){1&e&&(u.ɵɵelementStart(0,"div"),u.ɵɵelement(1,"localize",18),u.ɵɵelementEnd())}function O(e,t){if(1&e&&(u.ɵɵelementStart(0,"div",32),u.ɵɵtext(1),u.ɵɵelementEnd()),2&e){var n=u.ɵɵnextContext().$implicit;u.ɵɵadvance(1),u.ɵɵtextInterpolate1(" ",n.summaryKeyLocalized," ")}}function I(e,t){1&e&&(u.ɵɵelementStart(0,"p",40),u.ɵɵelement(1,"localize",41),u.ɵɵelementEnd())}function w(e,t){if(1&e&&(u.ɵɵelementStart(0,"div"),u.ɵɵelementStart(1,"p",42),u.ɵɵelement(2,"localize",43),u.ɵɵtext(3),u.ɵɵelementEnd(),u.ɵɵelementEnd()),2&e){var n=u.ɵɵnextContext().$implicit,r=u.ɵɵnextContext(2).$implicit,i=u.ɵɵnextContext(4);u.ɵɵadvance(3),u.ɵɵtextInterpolate1(" ",i.getValueAtLocale(r.oldValue,n.locale)," ")}}var M=function(e){return{"has-changed":e}};function T(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"tr",34),u.ɵɵelementStart(1,"td",35),u.ɵɵelementStart(2,"h5"),u.ɵɵelement(3,"convert-key-label",36),u.ɵɵelementEnd(),u.ɵɵelementStart(4,"input",37),u.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.value=e}))("ngModelChange",(function(){u.ɵɵrestoreView(n);var e=u.ɵɵnextContext(2).$implicit;return e.editor.setLocalizedValue(e.value)})),u.ɵɵelementEnd(),u.ɵɵelementStart(5,"div",38),u.ɵɵtemplate(6,I,2,0,"p",39),u.ɵɵelementEnd(),u.ɵɵtemplate(7,w,4,1,"div",9),u.ɵɵelementEnd(),u.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=t.index,o=u.ɵɵnextContext(2),a=o.$implicit,l=o.index,s=u.ɵɵnextContext(4);u.ɵɵadvance(3),u.ɵɵproperty("key",r.locale),u.ɵɵadvance(1),u.ɵɵproperty("ngClass",u.ɵɵpureFunction1(8,M,s.hasLocalizationChanged(a,r.locale)&&!s.isNew))("disabled",s.readonly||"DELETE"===a.summaryKey)("name","loc-val-"+l+"-"+i)("ngModel",r.value)("required","defaultLocale"===r.locale),u.ɵɵadvance(2),u.ɵɵproperty("ngIf","defaultLocale"===r.locale&&!r.value),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",s.hasLocalizationChanged(a,r.locale)&&!s.isNew)}}function j(e,t){if(1&e&&(u.ɵɵelementContainerStart(0),u.ɵɵtemplate(1,T,8,10,"tr",33),u.ɵɵelementContainerEnd()),2&e){var n=u.ɵɵnextContext().$implicit;u.ɵɵadvance(1),u.ɵɵproperty("ngForOf",n.value.localeValues)}}function k(e,t){if(1&e&&(u.ɵɵelementStart(0,"option",48),u.ɵɵtext(1),u.ɵɵelementEnd()),2&e){var n=t.$implicit;u.ɵɵproperty("value",n.code),u.ɵɵadvance(1),u.ɵɵtextInterpolate(n.label.localizedValue)}}function z(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"div"),u.ɵɵelementStart(1,"select",45),u.ɵɵlistener("ngModelChange",(function(e){return u.ɵɵrestoreView(n),u.ɵɵnextContext(2).$implicit.value=e})),u.ɵɵelement(2,"option",46),u.ɵɵtemplate(3,k,2,2,"option",47),u.ɵɵelementEnd(),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext(2),i=r.$implicit,o=r.index,a=u.ɵɵnextContext(4);u.ɵɵadvance(1),u.ɵɵpropertyInterpolate1("id","mod-",a.attributeType.code,""),u.ɵɵproperty("ngClass",u.ɵɵpureFunction1(6,M,i.oldValue&&!a.isNew))("name","mod-term-"+o+"-"+a.attributeType.code)("ngModel",i.value)("disabled",a.readonly||"DELETE"===i.summaryKey),u.ɵɵadvance(2),u.ɵɵproperty("ngForOf",a.getGeoObjectTypeTermAttributeOptions(a.attributeType.code))}}function D(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"div"),u.ɵɵelementStart(1,"input",49),u.ɵɵlistener("ngModelChange",(function(e){return u.ɵɵrestoreView(n),u.ɵɵnextContext(2).$implicit.value=e})),u.ɵɵelementEnd(),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext(2),i=r.$implicit,o=r.index,a=u.ɵɵnextContext(4);u.ɵɵadvance(1),u.ɵɵproperty("ngClass",u.ɵɵpureFunction1(4,M,i.oldValue&&!a.isNew))("name","char-val-"+o)("ngModel",i.value)("disabled",a.readonly||"DELETE"===i.summaryKey)}}function R(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"div"),u.ɵɵelementStart(1,"date-field",50),u.ɵɵlistener("valueChange",(function(e){return u.ɵɵrestoreView(n),u.ɵɵnextContext(2).$implicit.value=e}))("validChange",(function(e){return u.ɵɵrestoreView(n),u.ɵɵnextContext(6).isValid=e})),u.ɵɵelementEnd(),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext(2),i=r.$implicit,o=r.index,a=u.ɵɵnextContext(4);u.ɵɵadvance(1),u.ɵɵproperty("customStyles",i.oldValue&&!a.isNew?"color: orange;":"")("value",i.value)("inputName","date-val-"+o)("allowInfinity",!1)("allowFutureDates",!0)("required",!0)("placement","right")("valid",a.isValid)("disable",a.readonly)}}function P(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"div"),u.ɵɵelementStart(1,"input",51),u.ɵɵlistener("ngModelChange",(function(e){return u.ɵɵrestoreView(n),u.ɵɵnextContext(2).$implicit.value=e})),u.ɵɵelementEnd(),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext(2),i=r.$implicit,o=r.index,a=u.ɵɵnextContext(4);u.ɵɵadvance(1),u.ɵɵproperty("ngClass",u.ɵɵpureFunction1(4,M,i.oldValue&&!a.isNew))("name","int-val-"+o)("ngModel",i.value)("disabled",a.readonly||"DELETE"===i.summaryKey)}}function A(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"div"),u.ɵɵelementStart(1,"label",52),u.ɵɵelementStart(2,"input",53),u.ɵɵlistener("ngModelChange",(function(e){return u.ɵɵrestoreView(n),u.ɵɵnextContext(2).$implicit.value=e})),u.ɵɵelementEnd(),u.ɵɵelementStart(3,"span",54),u.ɵɵelement(4,"localize",55),u.ɵɵelementEnd(),u.ɵɵelementEnd(),u.ɵɵelementStart(5,"label",56),u.ɵɵelementStart(6,"input",57),u.ɵɵlistener("ngModelChange",(function(e){return u.ɵɵrestoreView(n),u.ɵɵnextContext(2).$implicit.value=e})),u.ɵɵelementEnd(),u.ɵɵelementStart(7,"span",54),u.ɵɵelement(8,"localize",58),u.ɵɵelementEnd(),u.ɵɵelementEnd(),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext(2),i=r.index,o=r.$implicit,a=u.ɵɵnextContext(4);u.ɵɵadvance(2),u.ɵɵpropertyInterpolate1("id","mod-",i,"-true"),u.ɵɵpropertyInterpolate1("name","mod-",i,"-true"),u.ɵɵproperty("checked",!0===o.value)("value",!0)("ngModel",o.value)("disabled",a.readonly||"DELETE"===o.summaryKey),u.ɵɵadvance(1),u.ɵɵproperty("ngClass",u.ɵɵpureFunction1(15,M,o.oldValue&&!a.isNew)),u.ɵɵadvance(3),u.ɵɵpropertyInterpolate1("id","mod-",i,"-false"),u.ɵɵpropertyInterpolate1("name","mod-",i,"-false"),u.ɵɵproperty("ngClass",u.ɵɵpureFunction1(17,M,o.oldValue&&!a.isNew))("checked",!1===o.value)("value",!1)("ngModel",o.value)("disabled",a.readonly||"DELETE"===o.summaryKey),u.ɵɵadvance(1),u.ɵɵproperty("ngClass",u.ɵɵpureFunction1(19,M,o.oldValue&&!a.isNew))}}function V(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"span",65),u.ɵɵlistener("click",(function(){u.ɵɵrestoreView(n);var e=u.ɵɵnextContext().$implicit;return u.ɵɵnextContext(4).$implicit.editor.removeType(e)})),u.ɵɵelement(1,"i",66),u.ɵɵelementEnd()}}function N(e,t){1&e&&u.ɵɵelement(0,"span",67)}var L=function(e,t){return{"inline-loading":e,"has-changed":t}};function _(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"div",60),u.ɵɵtext(1),u.ɵɵelementStart(2,"div",61),u.ɵɵelementStart(3,"input",62),u.ɵɵlistener("ngModelChange",(function(e){u.ɵɵrestoreView(n);var r=t.$implicit;return u.ɵɵnextContext(4).$implicit.value.parents[r.code].text=e}))("typeaheadOnSelect",(function(e){u.ɵɵrestoreView(n);var r=t.$implicit,i=u.ɵɵnextContext(4).$implicit;return u.ɵɵnextContext(4).typeaheadOnSelect(i.editor,e,r,i.value,i.startDate)}))("typeaheadLoading",(function(e){u.ɵɵrestoreView(n);var r=t.$implicit;return u.ɵɵnextContext(4).$implicit.value.loading[r.code]=e})),u.ɵɵelementEnd(),u.ɵɵtemplate(4,V,2,0,"span",63),u.ɵɵtemplate(5,N,1,0,"span",64),u.ɵɵelementEnd(),u.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=t.index,o=u.ɵɵnextContext(4),a=o.index,l=o.$implicit,s=u.ɵɵnextContext(4),c=u.ɵɵreference(2);u.ɵɵadvance(1),u.ɵɵtextInterpolate1(" ",r.label," "),u.ɵɵadvance(2),u.ɵɵproperty("name",r.code+"-"+a)("disabled",s.readonly||"DELETE"===l.summaryKey||null==l.startDate||""===l.startDate)("ngModel",l.value.parents[r.code].text)("typeaheadAsync",!0)("typeahead",s.getTypeAheadObservable(l.editor,l.startDate,l.endDate,r,l.value,i))("ngClass",u.ɵɵpureFunction2(13,L,l.value.loading[r.code],l.oldValue&&!s.isNew))("typeaheadOptionsLimit",7)("typeaheadItemTemplate",c)("typeaheadMinLength",0)("typeaheadWaitMs",300),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",!s.readonly),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",s.readonly)}}function F(e,t){if(1&e&&(u.ɵɵelementContainerStart(0),u.ɵɵtemplate(1,_,6,16,"div",59),u.ɵɵelementContainerEnd()),2&e){var n=u.ɵɵnextContext(7);u.ɵɵadvance(1),u.ɵɵproperty("ngForOf",n.hierarchy.types)}}function H(e,t){if(1&e&&(u.ɵɵelementStart(0,"div"),u.ɵɵtemplate(1,F,2,1,"ng-container",9),u.ɵɵelementEnd()),2&e){var n=u.ɵɵnextContext(6);u.ɵɵadvance(1),u.ɵɵproperty("ngIf",null!=n.hierarchy&&null!=n.hierarchy.types&&n.hierarchy.types.length>0)}}function G(e,t){if(1&e&&(u.ɵɵelementStart(0,"div"),u.ɵɵelementStart(1,"p",68),u.ɵɵelement(2,"localize",43),u.ɵɵtext(3),u.ɵɵelementEnd(),u.ɵɵelementEnd()),2&e){var n=u.ɵɵnextContext(2).$implicit;u.ɵɵadvance(3),u.ɵɵtextInterpolate1(" ",n.oldValue," ")}}function q(e,t){1&e&&u.ɵɵelement(0,"localize",79)}function B(e,t){1&e&&u.ɵɵelement(0,"localize",80)}function U(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"button",76),u.ɵɵlistener("click",(function(){u.ɵɵrestoreView(n);var e=u.ɵɵnextContext(3).$implicit;return u.ɵɵnextContext(4).toggleOldGeometryView(e)})),u.ɵɵtemplate(1,q,1,0,"localize",77),u.ɵɵtemplate(2,B,1,0,"localize",78),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext(3).$implicit;u.ɵɵproperty("disabled",r.coordinate&&(null!=r.coordinate.longValid&&!r.coordinate.longValid||null!=r.coordinate.latValid&&!r.coordinate.latValid)),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",!r.oldLayer||!r.oldLayer.isRendering),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",r.oldLayer&&r.oldLayer.isRendering)}}function $(e,t){1&e&&u.ɵɵelement(0,"localize",81)}function J(e,t){1&e&&u.ɵɵelement(0,"localize",82)}function W(e,t){1&e&&u.ɵɵelement(0,"localize",85)}function K(e,t){1&e&&u.ɵɵelement(0,"localize",86)}function Q(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"button",76),u.ɵɵlistener("click",(function(){u.ɵɵrestoreView(n);var e=u.ɵɵnextContext(3).$implicit;return u.ɵɵnextContext(4).toggleGeometryEditing(e)})),u.ɵɵtemplate(1,W,1,0,"localize",83),u.ɵɵtemplate(2,K,1,0,"localize",84),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext(3).$implicit,i=u.ɵɵnextContext(4);u.ɵɵproperty("disabled",i.readonly||r.coordinate&&(null!=r.coordinate.longValid&&!r.coordinate.longValid||null!=r.coordinate.latValid&&!r.coordinate.latValid)),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",r.newLayer&&!r.newLayer.isEditing),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",r.newLayer&&r.newLayer.isEditing)}}function Y(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"i",87),u.ɵɵlistener("click",(function(){u.ɵɵrestoreView(n);var e=u.ɵɵnextContext(3).$implicit;return u.ɵɵnextContext(4).onAddNewVersion(e.editor)})),u.ɵɵelementEnd()}}function X(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"input",94),u.ɵɵlistener("ngModelChange",(function(e){return u.ɵɵrestoreView(n),u.ɵɵnextContext(4).$implicit.value.coordinates[0][1]=e}))("change",(function(){u.ɵɵrestoreView(n);var e=u.ɵɵnextContext(4).$implicit;return u.ɵɵnextContext(4).manualCoordinateChange(e)})),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext(4),i=r.$implicit,o=r.index,a=u.ɵɵnextContext(4);u.ɵɵproperty("readonly",a.readonly||!(i.newLayer&&i.newLayer.isEditing)||"DELETE"===i.summaryKey)("name","latitude-"+o)("ngModel",i.value.coordinates[0][1])}}function Z(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"input",94),u.ɵɵlistener("ngModelChange",(function(e){return u.ɵɵrestoreView(n),u.ɵɵnextContext(4).$implicit.newCoordinateY=e}))("change",(function(){u.ɵɵrestoreView(n);var e=u.ɵɵnextContext(4).$implicit;return u.ɵɵnextContext(4).manualCoordinateChange(e)})),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext(4),i=r.$implicit,o=r.index,a=u.ɵɵnextContext(4);u.ɵɵproperty("readonly",a.readonly||!(i.newLayer&&i.newLayer.isEditing)||"DELETE"===i.summaryKey)("name","latitude-"+o)("ngModel",i.newCoordinateY)}}function ee(e,t){1&e&&(u.ɵɵelementStart(0,"div"),u.ɵɵelementStart(1,"p",40),u.ɵɵelement(2,"localize",95),u.ɵɵelementEnd(),u.ɵɵelementEnd())}function te(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"input",94),u.ɵɵlistener("ngModelChange",(function(e){return u.ɵɵrestoreView(n),u.ɵɵnextContext(4).$implicit.value.coordinates[0][0]=e}))("change",(function(){u.ɵɵrestoreView(n);var e=u.ɵɵnextContext(4).$implicit;return u.ɵɵnextContext(4).manualCoordinateChange(e)})),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext(4),i=r.$implicit,o=r.index,a=u.ɵɵnextContext(4);u.ɵɵproperty("readonly",a.readonly||!(i.newLayer&&i.newLayer.isEditing)||"DELETE"===i.summaryKey)("name","longitude-"+o)("ngModel",i.value.coordinates[0][0])}}function ne(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"input",94),u.ɵɵlistener("ngModelChange",(function(e){return u.ɵɵrestoreView(n),u.ɵɵnextContext(4).$implicit.newCoordinateX=e}))("change",(function(){u.ɵɵrestoreView(n);var e=u.ɵɵnextContext(4).$implicit;return u.ɵɵnextContext(4).manualCoordinateChange(e)})),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext(4),i=r.$implicit,o=r.index,a=u.ɵɵnextContext(4);u.ɵɵproperty("readonly",a.readonly||!(i.newLayer&&i.newLayer.isEditing)||"DELETE"===i.summaryKey)("name","longitude-"+o)("ngModel",i.newCoordinateX)}}function re(e,t){1&e&&(u.ɵɵelementStart(0,"div"),u.ɵɵelementStart(1,"p",40),u.ɵɵelement(2,"localize",96),u.ɵɵelementEnd(),u.ɵɵelementEnd())}function ie(e,t){if(1&e&&(u.ɵɵelementStart(0,"tr"),u.ɵɵelementStart(1,"td",88),u.ɵɵelementStart(2,"h5"),u.ɵɵelement(3,"localize",89),u.ɵɵelementEnd(),u.ɵɵelementStart(4,"div",90),u.ɵɵtemplate(5,X,1,3,"input",91),u.ɵɵtemplate(6,Z,1,3,"input",91),u.ɵɵelementEnd(),u.ɵɵtemplate(7,ee,3,0,"div",9),u.ɵɵelementEnd(),u.ɵɵelementStart(8,"td",92),u.ɵɵelementStart(9,"h5"),u.ɵɵelement(10,"localize",93),u.ɵɵelementEnd(),u.ɵɵelementStart(11,"div",90),u.ɵɵtemplate(12,te,1,3,"input",91),u.ɵɵtemplate(13,ne,1,3,"input",91),u.ɵɵelementEnd(),u.ɵɵtemplate(14,re,3,0,"div",9),u.ɵɵelementEnd(),u.ɵɵelementEnd()),2&e){var n=u.ɵɵnextContext(3).$implicit;u.ɵɵadvance(5),u.ɵɵproperty("ngIf",n.value.coordinates&&n.value.coordinates[0]),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",null==n.value.coordinates||null==n.value.coordinates[0]),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",n.coordinate&&null!=n.coordinate.latValid&&!n.coordinate.latValid),u.ɵɵadvance(5),u.ɵɵproperty("ngIf",n.value.coordinates&&n.value.coordinates[0]),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",null==n.value.coordinates||null==n.value.coordinates[0]),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",n.coordinate&&null!=n.coordinate.longValid&&!n.coordinate.longValid)}}function oe(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"table",69),u.ɵɵelementStart(1,"tr"),u.ɵɵelementStart(2,"td",70),u.ɵɵtemplate(3,U,3,3,"button",71),u.ɵɵelementStart(4,"button",72),u.ɵɵlistener("click",(function(){u.ɵɵrestoreView(n);var e=u.ɵɵnextContext(2).$implicit;return u.ɵɵnextContext(4).toggleGeometryView(e)})),u.ɵɵtemplate(5,$,1,0,"localize",73),u.ɵɵtemplate(6,J,1,0,"localize",74),u.ɵɵelementEnd(),u.ɵɵtemplate(7,Q,3,3,"button",71),u.ɵɵtemplate(8,Y,1,0,"i",75),u.ɵɵelementEnd(),u.ɵɵelementEnd(),u.ɵɵtemplate(9,ie,15,6,"tr",9),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext(2).$implicit,i=u.ɵɵnextContext(4);u.ɵɵadvance(3),u.ɵɵproperty("ngIf",r.oldValue&&r.newLayer),u.ɵɵadvance(1),u.ɵɵproperty("disabled",r.coordinate&&(null!=r.coordinate.longValid&&!r.coordinate.longValid||null!=r.coordinate.latValid&&!r.coordinate.latValid)),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",!r.newLayer||!r.newLayer.isRendering),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",r.newLayer&&r.newLayer.isRendering),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",r.newLayer&&r.newLayer.isRendering&&i.geoObjectType.isGeometryEditable),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",!(i.readonly||i.isRootOfHierarchy||i.isNew&&"exists"===i.attributeType.code||null!=i.filterDate)),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",r.newLayer&&r.newLayer.isRendering&&("POINT"===i.geoObjectType.geometryType||"MULTIPOINT"===i.geoObjectType.geometryType)&&r.value&&r.value.coordinates&&(1==r.value.coordinates.length||0==r.value.coordinates.length))}}function ae(e,t){if(1&e&&(u.ɵɵelementStart(0,"tr",34),u.ɵɵelementStart(1,"td",35),u.ɵɵtemplate(2,z,4,8,"div",9),u.ɵɵtemplate(3,D,2,6,"div",9),u.ɵɵtemplate(4,R,2,9,"div",9),u.ɵɵtemplate(5,P,2,6,"div",9),u.ɵɵtemplate(6,A,9,21,"div",9),u.ɵɵtemplate(7,H,2,1,"div",9),u.ɵɵtemplate(8,G,4,1,"div",9),u.ɵɵtemplate(9,oe,10,7,"table",44),u.ɵɵelementEnd(),u.ɵɵelementEnd()),2&e){var n=u.ɵɵnextContext().$implicit,r=u.ɵɵnextContext(4);u.ɵɵadvance(2),u.ɵɵproperty("ngIf","term"===r.attributeType.type),u.ɵɵadvance(1),u.ɵɵproperty("ngIf","character"===r.attributeType.type),u.ɵɵadvance(1),u.ɵɵproperty("ngIf","date"===r.attributeType.type),u.ɵɵadvance(1),u.ɵɵproperty("ngIf","integer"===r.attributeType.type||"float"===r.attributeType.type),u.ɵɵadvance(1),u.ɵɵproperty("ngIf","boolean"===r.attributeType.type),u.ɵɵadvance(1),u.ɵɵproperty("ngIf","_PARENT_"===r.attributeType.type),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",n.oldValue&&!r.isNew&&"geometry"!==r.attributeType.type),u.ɵɵadvance(1),u.ɵɵproperty("ngIf","geometry"===r.attributeType.type)}}function le(e,t){if(1&e&&(u.ɵɵelementStart(0,"div"),u.ɵɵelementStart(1,"p",68),u.ɵɵelement(2,"localize",43),u.ɵɵtext(3),u.ɵɵelementEnd(),u.ɵɵelementEnd()),2&e){var n=u.ɵɵnextContext().$implicit;u.ɵɵadvance(3),u.ɵɵtextInterpolate1(" ",n.oldStartDate," ")}}var se=function(e,t){return{"error-message":e,"warning-message":t}};function ce(e,t){if(1&e&&(u.ɵɵelementStart(0,"p",54),u.ɵɵtext(1),u.ɵɵelementEnd()),2&e){var n=t.$implicit;u.ɵɵproperty("ngClass",u.ɵɵpureFunction2(2,se,"ERROR"===n.severity,"WARNING"===n.severity)),u.ɵɵadvance(1),u.ɵɵtextInterpolate1(" ",n.message," ")}}function de(e,t){if(1&e&&(u.ɵɵelementStart(0,"tr"),u.ɵɵtemplate(1,ce,2,5,"p",97),u.ɵɵelementEnd()),2&e){var n=u.ɵɵnextContext().$implicit;u.ɵɵadvance(1),u.ɵɵproperty("ngForOf",n.editor.conflictMessages)}}function pe(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"td",98),u.ɵɵlistener("click",(function(){u.ɵɵrestoreView(n);var e=u.ɵɵnextContext().$implicit;return u.ɵɵnextContext(4).remove(e)})),u.ɵɵpipe(1,"localize"),u.ɵɵelement(2,"i",99),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext(5);u.ɵɵproperty("title",u.ɵɵpipeBind1(1,2,r.filterDate?"changeovertime.manageVersions.date.editing.needs.fullview.message":"changeovertime.manageVersions.remove.version")),u.ɵɵattribute("disabled","exists"===r.attributeType.code||null!=r.filterDate)}}function me(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"td",98),u.ɵɵlistener("click",(function(){u.ɵɵrestoreView(n);var e=u.ɵɵnextContext().$implicit;return u.ɵɵnextContext(4).remove(e)})),u.ɵɵpipe(1,"localize"),u.ɵɵelement(2,"i",100),u.ɵɵelementEnd()}2&e&&u.ɵɵproperty("title",u.ɵɵpipeBind1(1,1,"changeovertime.manageVersions.revert.version"))}var ue=function(e){return{"geometry-edit-active":e}},ge=function(e,t,n){return{"error-border":e,"warning-border":t,warning:n}};function he(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"tr",20),u.ɵɵelementStart(1,"td",21),u.ɵɵtemplate(2,O,2,1,"div",22),u.ɵɵelementStart(3,"table"),u.ɵɵtemplate(4,j,2,1,"ng-container",9),u.ɵɵtemplate(5,ae,10,8,"tr",23),u.ɵɵelementStart(6,"tr",24),u.ɵɵelementStart(7,"td"),u.ɵɵelementStart(8,"h5"),u.ɵɵelement(9,"localize",25),u.ɵɵelementEnd(),u.ɵɵelementStart(10,"date-field",26,27),u.ɵɵlistener("valueChange",(function(e){return t.$implicit.startDate=e}))("change",(function(){return u.ɵɵrestoreView(n),u.ɵɵnextContext(4).onDateChange()})),u.ɵɵpipe(12,"localize"),u.ɵɵelementEnd(),u.ɵɵtemplate(13,le,4,1,"div",9),u.ɵɵelementEnd(),u.ɵɵelementStart(14,"td"),u.ɵɵelementStart(15,"div",28),u.ɵɵelementStart(16,"h5"),u.ɵɵelement(17,"localize",29),u.ɵɵelementEnd(),u.ɵɵelementStart(18,"date-field",30,27),u.ɵɵlistener("valueChange",(function(e){return t.$implicit.endDate=e}))("change",(function(){return u.ɵɵrestoreView(n),u.ɵɵnextContext(4).onDateChange()})),u.ɵɵpipe(20,"localize"),u.ɵɵelementEnd(),u.ɵɵelementEnd(),u.ɵɵelementEnd(),u.ɵɵelementEnd(),u.ɵɵtemplate(21,de,2,1,"tr",9),u.ɵɵelementEnd(),u.ɵɵelementEnd(),u.ɵɵtemplate(22,pe,3,4,"td",31),u.ɵɵtemplate(23,me,3,3,"td",31),u.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=t.index,o=u.ɵɵnextContext(4);u.ɵɵproperty("ngClass",u.ɵɵpureFunction1(30,ue,r.newLayer&&r.newLayer.isEditing)),u.ɵɵadvance(1),u.ɵɵproperty("ngClass",u.ɵɵpureFunction3(32,ge,r.hasError(),r.hasWarning(),r.summaryKey&&"UNMODIFIED"!==r.summaryKey)),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",r.summaryKey&&"UNMODIFIED"!==r.summaryKey),u.ɵɵadvance(2),u.ɵɵproperty("ngIf","local"===o.attributeType.type&&r.value),u.ɵɵadvance(1),u.ɵɵproperty("ngIf","geometry"===o.attributeType.type||"_PARENT_"===o.attributeType.type||"term"===o.attributeType.type||"character"===o.attributeType.type||"date"===o.attributeType.type||"integer"===o.attributeType.type||"float"===o.attributeType.type||"boolean"===o.attributeType.type),u.ɵɵadvance(5),u.ɵɵproperty("customStyles",r.oldStartDate&&!o.isNew?"color: orange;":"")("value",r.startDate)("inputName","startDate_"+i)("allowFutureDates",!1)("required",!0)("disable",o.readonly||"DELETE"===r.summaryKey||null!=o.filterDate)("title",u.ɵɵpipeBind1(12,26,o.filterDate&&!o.readonly?"changeovertime.manageVersions.date.editing.needs.fullview.message":"")),u.ɵɵadvance(3),u.ɵɵproperty("ngIf",r.oldStartDate&&!o.isNew),u.ɵɵadvance(5),u.ɵɵproperty("customStyles",r.oldEndDate&&!o.isNew?"color: orange;":"")("value",r.endDate)("inputName","endDate_"+i)("allowInfinity","DELETE"!==r.summaryKey&&!o.readonly)("allowFutureDates",!0)("required",!0)("placement","bottom")("oldDate",r.oldEndDate&&!o.isNew?r.oldEndDate:null)("disable",o.readonly||"DELETE"===r.summaryKey||null!=o.filterDate)("title",u.ɵɵpipeBind1(20,28,null!=o.filterDate?"changeovertime.manageVersions.date.editing.needs.fullview.message":"")),u.ɵɵadvance(3),u.ɵɵproperty("ngIf",r.editor.conflictMessages&&r.editor.conflictMessages.size>0),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",!(o.readonly||o.isNew&&"exists"===o.attributeType.code||"UNMODIFIED"!==r.summaryKey||"NEW"===r.summaryKey)),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",!(o.readonly||o.isNew&&"exists"===o.attributeType.code||"UNMODIFIED"===r.summaryKey))}}function fe(e,t){if(1&e&&(u.ɵɵelementContainerStart(0),u.ɵɵtemplate(1,he,24,36,"tr",19),u.ɵɵelementContainerEnd()),2&e){var n=u.ɵɵnextContext(3);u.ɵɵadvance(1),u.ɵɵproperty("ngForOf",n.viewModels)}}function ye(e,t){if(1&e&&(u.ɵɵelementStart(0,"div"),u.ɵɵelementStart(1,"table",13),u.ɵɵelementStart(2,"tbody",14),u.ɵɵtemplate(3,E,2,0,"p",15),u.ɵɵtemplate(4,x,2,0,"div",9),u.ɵɵtemplate(5,fe,2,1,"ng-container",9),u.ɵɵelementEnd(),u.ɵɵelementEnd(),u.ɵɵelementEnd()),2&e){var n=u.ɵɵnextContext(2);u.ɵɵadvance(3),u.ɵɵproperty("ngIf",!n.isRootOfHierarchy&&0===n.viewModels.length),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",n.isRootOfHierarchy),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",!n.isRootOfHierarchy)}}function ve(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"li",101),u.ɵɵelementStart(1,"i",102),u.ɵɵlistener("click",(function(){return u.ɵɵrestoreView(n),u.ɵɵnextContext(2).onAddNewVersion()})),u.ɵɵelement(2,"localize",103),u.ɵɵelementEnd(),u.ɵɵelementEnd()}}function be(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"div",104),u.ɵɵelementStart(1,"button",105),u.ɵɵlistener("click",(function(){return u.ɵɵrestoreView(n),u.ɵɵnextContext(2).onApprove()})),u.ɵɵpipe(2,"localize"),u.ɵɵelement(3,"localize",106),u.ɵɵelementEnd(),u.ɵɵelementStart(4,"button",107),u.ɵɵlistener("click",(function(){return u.ɵɵrestoreView(n),u.ɵɵnextContext(2).onReject()})),u.ɵɵpipe(5,"localize"),u.ɵɵelement(6,"localize",108),u.ɵɵelementEnd(),u.ɵɵelementStart(7,"button",109),u.ɵɵlistener("click",(function(){return u.ɵɵrestoreView(n),u.ɵɵnextContext(2).onPending()})),u.ɵɵpipe(8,"localize"),u.ɵɵelement(9,"localize",110),u.ɵɵelementEnd(),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext(2);u.ɵɵadvance(1),u.ɵɵproperty("disabled","ACCEPTED"===r.changeRequestAttributeEditor.editAction.approvalStatus)("title",u.ɵɵpipeBind1(2,6,"change.request.action.accept.btn.hover")),u.ɵɵadvance(3),u.ɵɵproperty("disabled","REJECTED"===r.changeRequestAttributeEditor.editAction.approvalStatus)("title",u.ɵɵpipeBind1(5,8,"change.request.action.reject.btn.hover")),u.ɵɵadvance(3),u.ɵɵproperty("disabled","PENDING"===r.changeRequestAttributeEditor.editAction.approvalStatus)("title",u.ɵɵpipeBind1(8,10,"change.request.action.pending.btn.hover"))}}function Se(e,t){1&e&&(u.ɵɵelementStart(0,"strong",113),u.ɵɵelement(1,"localize",114),u.ɵɵelementEnd())}function Ce(e,t){1&e&&(u.ɵɵelementStart(0,"strong",115),u.ɵɵelement(1,"localize",116),u.ɵɵelementEnd())}function Ee(e,t){if(1&e&&(u.ɵɵelementStart(0,"div",104),u.ɵɵtemplate(1,Se,2,0,"strong",111),u.ɵɵtemplate(2,Ce,2,0,"strong",112),u.ɵɵelementEnd()),2&e){var n=u.ɵɵnextContext(2);u.ɵɵadvance(1),u.ɵɵproperty("ngIf","ACCEPTED"===n.changeRequestAttributeEditor.editAction.approvalStatus),u.ɵɵadvance(1),u.ɵɵproperty("ngIf","REJECTED"===n.changeRequestAttributeEditor.editAction.approvalStatus)}}function xe(e,t){if(1&e&&(u.ɵɵelementStart(0,"div",6),u.ɵɵelementStart(1,"ul",7),u.ɵɵelementStart(2,"li",8),u.ɵɵtemplate(3,ye,6,3,"div",9),u.ɵɵelementEnd(),u.ɵɵtemplate(4,ve,3,0,"li",10),u.ɵɵelementEnd(),u.ɵɵtemplate(5,be,10,12,"div",11),u.ɵɵtemplate(6,Ee,3,2,"div",12),u.ɵɵelementEnd()),2&e){var n=u.ɵɵnextContext();u.ɵɵadvance(3),u.ɵɵproperty("ngIf",n.attributeType),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",!(n.readonly||n.isRootOfHierarchy||n.isNew&&"exists"===n.attributeType.code||null!=n.filterDate)),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",!n.changeRequestEditor.changeRequest.isNew&&"CreateGeoObject"!==n.changeRequestEditor.changeRequest.type&&"PENDING"===n.changeRequestEditor.changeRequest.approvalStatus&&n.changeRequestEditor.changeRequest.permissions.includes("WRITE_APPROVAL_STATUS")&&n.changeRequestAttributeEditor.hasChanges()),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",!n.changeRequestEditor.changeRequest.isNew&&"PENDING"!==n.changeRequestEditor.changeRequest.approvalStatus)}}function Oe(e,t){if(1&e&&u.ɵɵelement(0,"geoobject-editor-map",117,118),2&e){var n=u.ɵɵnextContext();u.ɵɵproperty("geometryType",n.geoObjectType.geometryType)("mapHeight",n.mapRowHeight)("readOnly",!n.geoObjectType.isGeometryEditable&&n.readonly)("bboxCode",n.changeRequestEditor.geoObject.attributes.code)("bboxType",n.geoObjectType.code)("bboxDate",n.geomService.getRenderedLayers()[0].startDate)}}var Ie=function(e){return{width:e}},we=function(){function e(e,t,n,i,o,a,l,s,c,d){this.geomService=e,this.cdr=t,this.service=n,this.lService=i,this.changeDetectorRef=o,this.dateService=a,this.authService=l,this.requestService=s,this.modalService=c,this.elementRef=d,this.isNew=!1,this.message=null,this.currentDate=new Date,this.isValid=!0,this.isValidChange=new r.EventEmitter,this.readonly=!1,this.isGeometryInlined=!1,this.hierarchy=null,this.filterDate=null,this.showAllInstances=!0,this.viewModels=[],this.isRootOfHierarchy=!1,this.isInitialized=!1}return e.prototype.ngOnInit=function(){this.changeRequestAttributeEditor=this.changeRequestEditor.getEditorForAttribute(this.attributeType,this.hierarchy),this.calculateViewModels(),this.isRootOfHierarchy="_PARENT_"===this.attributeType.type&&(null==this.hierarchy||null==this.hierarchy.types||0===this.hierarchy.types.length),this.isInitialized=!0},e.prototype.ngAfterViewInit=function(){this.isNew&&"exists"===this.attributeType.code&&0===this.viewModels.length&&this.onAddNewVersion()},e.prototype.ngOnChanges=function(e){this.isInitialized&&e.showAllInstances&&e.showAllInstances.previousValue!==e.showAllInstances.currentValue&&this.calculateViewModels()},e.prototype.setFilterDate=function(e,t){void 0===t&&(t=!0),this.filterDate=e,t&&this.calculateViewModels()},e.prototype.checkDateFieldValidity=function(){for(var e=this.dateFieldComponentsArray.toArray(),t=0;t-1&&this.viewModels.splice(t,1)}"geometry"===this.attributeType.type&&this.geomService.reload()},e.prototype.onAddNewVersion=function(e){var t=this.changeRequestAttributeEditor.createNewVersion(e);if(this.isNew&&this.changeRequestEditor.geoObject.attributes.exists){var n=this.changeRequestEditor.geoObject.attributes.exists.values;if(n&&n.length>0){var r=n[0];t.startDate=r.startDate,t.endDate=r.endDate}}this.viewModels.push(new d.VersionDiffView(this,t))},e.prototype.getValueAtLocale=function(e,t){return null==e?null:new l.LocalizedValue(e.localizedValue,e.localeValues).getValue(t)},e.prototype.getGeoObjectTypeTermAttributeOptions=function(e){return o.GeoObjectType.getGeoObjectTypeTermAttributeOptions(this.geoObjectType,e)},e.prototype.calculateViewModels=function(){var e=this,t=[];this.changeRequestAttributeEditor.getEditors(this.showAllInstances).forEach((function(n){if(null==e.filterDate||e.dateService.between(e.filterDate,n.startDate,n.endDate)){var r=new d.VersionDiffView(e,n);t.push(r)}})),this.viewModels=t},e.prototype.onApprove=function(){var e=this;this.requestService.setActionStatus(this.changeRequestAttributeEditor.editAction.oid,s.GovernanceStatus.ACCEPTED).then((function(t){e.changeRequestAttributeEditor.editAction.approvalStatus=s.GovernanceStatus.ACCEPTED})).catch((function(t){e.error(t)}))},e.prototype.onReject=function(){var e=this;this.requestService.setActionStatus(this.changeRequestAttributeEditor.editAction.oid,s.GovernanceStatus.REJECTED).then((function(t){e.changeRequestAttributeEditor.editAction.approvalStatus=s.GovernanceStatus.REJECTED})).catch((function(t){e.error(t)}))},e.prototype.onPending=function(){var e=this;this.requestService.setActionStatus(this.changeRequestAttributeEditor.editAction.oid,s.GovernanceStatus.PENDING).then((function(t){e.changeRequestAttributeEditor.editAction.approvalStatus=s.GovernanceStatus.PENDING})).catch((function(t){e.error(t)}))},e.prototype.error=function(e){this.bsModalRef=c.ErrorHandler.showErrorAsDialog(e,this.modalService)},e.prototype.getTypeAheadObservable=function(e,t,n,r,i,o){var a=this,l=r.code,s=null,c=null,d=null;if(o>0){var p=e.changeRequestAttributeEditor.hierarchy.types[o-1],u=i.parents[p.code];null!=u.geoObject&&null!=u.geoObject.properties.code&&(d=e.changeRequestAttributeEditor.hierarchy.code,s=u.geoObject.properties.code,c=u.geoObject.properties.type)}return m.Observable.create((function(p){if(null==s)for(var m=o;null==s&&m>0;){m-=1;var u=i.parents[e.changeRequestAttributeEditor.hierarchy.types[m].code];null!=u&&(null!=u.geoObject&&null!=u.geoObject.properties.code?(s=u.geoObject.properties.code,d=e.changeRequestAttributeEditor.hierarchy.code,c=e.changeRequestAttributeEditor.hierarchy.types[m].code):null!=u.goCode&&(s=u.goCode,d=e.changeRequestAttributeEditor.hierarchy.code,c=e.changeRequestAttributeEditor.hierarchy.types[m].code))}a.service.getGeoObjectSuggestions(i.parents[r.code].text,l,s,c,d,t,n).then((function(e){p.next(e)}))}))},e.prototype.typeaheadOnSelect=function(e,t,n,r,i){r.parents[n.code].text=t.item.name+" : "+t.item.code,r.parents[n.code].goCode=t.item.code;for(var o=[],a=0;a0?a.parents[0]:null;null!=a&&(r.parents[o.code].geoObject=a.geoObject,r.parents[o.code].text=a.geoObject.properties.displayLabel.localizedValue+" : "+a.geoObject.properties.code)}e.setParentValue(n,r.parents)}))},e.prototype.toggleGeometryEditing=function(e){this.geomService.setEditing(!e.newLayer.isEditing,e.newLayer),"POINT"!==this.geoObjectType.geometryType&&"MULTIPOINT"!==this.geoObjectType.geometryType||(e.coordinate={})},e.prototype.toggleGeometryView=function(e){var t=this;setTimeout((function(){t.mapRowHeight=t.elementRef.nativeElement.children[0].getElementsByClassName("attribute-element-wrapper")[0].offsetHeight}),0);var n=this.getOrCreateLayer(e,"NEW");n.isEditing&&this.geomService.stopEditing(),this.geomService.setRendering(!n.isRendering,n)},e.prototype.toggleOldGeometryView=function(e){var t=this.getOrCreateLayer(e,"OLD");this.geomService.setRendering(!t.isRendering,t)},e.prototype.getOrCreateLayer=function(e,t){return"NEW"===t?(null!=e.newLayer||(e.newLayer=new d.Layer,e.newLayer.oid="NEW_"+e.editor.oid,e.newLayer.isEditing=!1,e.newLayer.isRendering=!1,e.newLayer.zindex=1,e.newLayer.color=s.LayerColor.NEW,e.newLayer.geojson=e.editor.value,e.newLayer.editPropagator=e.editor),e.newLayer):(null!=e.oldLayer||(e.oldLayer=new d.Layer,e.oldLayer.oid="OLD_"+e.editor.oid,e.oldLayer.isEditing=!1,e.oldLayer.isRendering=!1,e.oldLayer.zindex=0,e.oldLayer.color=s.LayerColor.OLD,e.oldLayer.geojson=e.editor.oldValue,e.oldLayer.editPropagator=null),e.oldLayer)},e.prototype.manualCoordinateChange=function(e){if(e.newCoordinateX||e.newCoordinateY){var t=e.newCoordinateX;e.value.coordinates&&e.value.coordinates[0]&&(t=e.value.coordinates[0]);var n=e.newCoordinateY;return e.value.coordinates&&e.value.coordinates[0]&&(n=e.value.coordinates[1]),e.value.coordinates=[[t||0,n||0]],delete e.newCoordinateX,void delete e.newCoordinateY}var r;if(e.coordinate.latValid=(r=e.value.coordinates[0][1],isFinite(r)&&Math.abs(r)<=90),e.coordinate.longValid=function(e){return isFinite(e)&&Math.abs(e)<=180}(e.value.coordinates[0][0]),!e.coordinate.latValid||!e.coordinate.longValid)return this.isValid=!1,void this.isValidChange.emit(this.isValid);this.geomService.setPointCoordinates(e.value.coordinates[0][1],e.value.coordinates[0][0])},e.ɵfac=function(t){return new(t||e)(u.ɵɵdirectiveInject(g.GeometryService),u.ɵɵdirectiveInject(u.ChangeDetectorRef),u.ɵɵdirectiveInject(g.RegistryService),u.ɵɵdirectiveInject(h.LocalizationService),u.ɵɵdirectiveInject(u.ChangeDetectorRef),u.ɵɵdirectiveInject(f.DateService),u.ɵɵdirectiveInject(y.AuthService),u.ɵɵdirectiveInject(v.ChangeRequestService),u.ɵɵdirectiveInject(b.BsModalService),u.ɵɵdirectiveInject(u.ElementRef))},e.ɵcmp=u.ɵɵdefineComponent({type:e,selectors:[["manage-versions"]],viewQuery:function(e,t){if(1&e&&u.ɵɵviewQuery(S,1),2&e){var n;u.ɵɵqueryRefresh(n=u.ɵɵloadQuery())&&(t.dateFieldComponentsArray=n)}},hostVars:1,hostBindings:function(e,t){2&e&&u.ɵɵsyntheticHostProperty("@fadeInOut",!0)},inputs:{isNew:"isNew",readonly:"readonly",isGeometryInlined:"isGeometryInlined",changeRequestEditor:"changeRequestEditor",geoObjectType:"geoObjectType",attributeType:"attributeType",hierarchy:"hierarchy",filterDate:"filterDate",showAllInstances:"showAllInstances"},outputs:{isValidChange:"isValidChange"},features:[u.ɵɵProvidersFeature([],[{provide:p.ControlContainer,useExisting:p.NgForm}]),u.ɵɵNgOnChangesFeature],decls:9,vars:5,consts:[["customItemTemplate",""],["name","manage-versions-form","autocomplete","off"],[1,"row"],[1,"col",2,"display","inline-block",3,"ngStyle"],["class","attribute-version-wrapper",4,"ngIf"],["style","width:55%;display:inline-block;vertical-align:top;margin-top:15px;",3,"geometryType","mapHeight","readOnly","bboxCode","bboxType","bboxDate",4,"ngIf"],[1,"attribute-version-wrapper"],[1,"list-group"],[1,"list-group-item",2,"text-align","left","padding","0"],[4,"ngIf"],["class","list-group-item","style","text-align: left;",4,"ngIf"],["style","margin-left: 15px;",4,"ngIf"],["style","margin-left:15px;",4,"ngIf"],[1,"table","table-striped"],[1,"attribute-element-wrapper"],["class","message",4,"ngIf"],[1,"message"],["key","changeovertime.manageVersions.no.versions.message"],["key","changeovertime.manageVersions.rootOfHierarchy.message"],["class","version-row",3,"ngClass",4,"ngFor","ngForOf"],[1,"version-row",3,"ngClass"],[1,"version-column-wrapper",3,"ngClass"],["class","version-column-indicator",4,"ngIf"],["class","attribute-value-row",4,"ngIf"],[1,"attribute-date-input-row"],["key","changeovertime.manageVersions.tableHeader.label.startDate"],["label","",3,"customStyles","value","inputName","allowFutureDates","required","disable","title","valueChange","change"],["dateFieldComponents",""],[1,"version-edit-date-container"],["key","changeovertime.manageVersions.tableHeader.label.endDate"],["label","",3,"customStyles","value","inputName","allowInfinity","allowFutureDates","required","placement","oldDate","disable","title","valueChange","change"],["class","manage-version-button clickable",3,"title","click",4,"ngIf"],[1,"version-column-indicator"],["class","attribute-value-row",4,"ngFor","ngForOf"],[1,"attribute-value-row"],["colspan","2"],[3,"key"],["type","text",1,"form-control",3,"ngClass","disabled","name","ngModel","required","ngModelChange"],[1,"form-input-validation-error-message-wrapper"],["class","error-message",4,"ngIf"],[1,"error-message"],["key","manage.versions.value.required.message"],[1,"warning-text","display-current-value",2,"padding","5px 0","margin-bottom","0"],["key","change.request.changed.value.prefix"],["style","padding:0;",4,"ngIf"],[1,"select-area",3,"ngClass","id","name","ngModel","disabled","ngModelChange"],["value",""],[3,"value",4,"ngFor","ngForOf"],[3,"value"],["type","text","required","",1,"form-control",3,"ngClass","name","ngModel","disabled","ngModelChange"],["label","",3,"customStyles","value","inputName","allowInfinity","allowFutureDates","required","placement","valid","disable","valueChange","validChange"],["type","number","required","",1,"form-control",3,"ngClass","name","ngModel","disabled","ngModelChange"],[1,"radio","radio-inline",2,"padding-left","0"],["type","radio",1,"inline-radio-input",3,"checked","value","ngModel","id","name","disabled","ngModelChange"],[3,"ngClass"],["key","change.request.boolean.option.true"],[1,"radio","radio-inline"],["type","radio",1,"inline-radio-input",3,"ngClass","checked","value","ngModel","id","name","disabled","ngModelChange"],["key","change.request.boolean.option.false"],["style","float:left;width:100%;",4,"ngFor","ngForOf"],[2,"float","left","width","100%"],[1,"input-group"],["type","text","autocomplete","off",1,"form-control",2,"width","100%",3,"name","disabled","ngModel","typeaheadAsync","typeahead","ngClass","typeaheadOptionsLimit","typeaheadItemTemplate","typeaheadMinLength","typeaheadWaitMs","ngModelChange","typeaheadOnSelect","typeaheadLoading"],["class","input-group-addon clickable addon-alert",3,"click",4,"ngIf"],["class","input-group-addon addon-alert",4,"ngIf"],[1,"input-group-addon","clickable","addon-alert",3,"click"],["aria-hidden","true",1,"fa","fa-times"],[1,"input-group-addon","addon-alert"],[1,"warning-text","display-current-value"],[2,"padding","0"],["colspan","2",2,"padding-left","0"],["class","btn btn-primary","role","button",3,"disabled","click",4,"ngIf"],["role","button",1,"btn","btn-primary",2,"margin-left","0",3,"disabled","click"],["key","changeovertime.manageVersions.geometry.view",4,"ngIf"],["key","changeovertime.manageVersions.geometry.hide",4,"ngIf"],["class","fa fa-copy clickable",3,"click",4,"ngIf"],["role","button",1,"btn","btn-primary",3,"disabled","click"],["key","changeovertime.manageVersions.geometry.viewOld",4,"ngIf"],["key","changeovertime.manageVersions.geometry.hideOld",4,"ngIf"],["key","changeovertime.manageVersions.geometry.viewOld"],["key","changeovertime.manageVersions.geometry.hideOld"],["key","changeovertime.manageVersions.geometry.view"],["key","changeovertime.manageVersions.geometry.hide"],["key","changeovertime.manageVersions.geometry.edit",4,"ngIf"],["key","changeovertime.manageVersions.geometry.save",4,"ngIf"],["key","changeovertime.manageVersions.geometry.edit"],["key","changeovertime.manageVersions.geometry.save"],[1,"fa","fa-copy","clickable",3,"click"],[2,"width","50%","padding-left","0","padding-right","5px"],["key","geoobject.editor.geometry.latitude.label"],[1,"text-left"],["type","number","class","form-control","required","",3,"readonly","name","ngModel","ngModelChange","change",4,"ngIf"],[2,"width","50%"],["key","geoobject.editor.geometry.longitude.label"],["type","number","required","",1,"form-control",3,"readonly","name","ngModel","ngModelChange","change"],["key","change.request.geometry.invalidLatitude"],["key","change.request.geometry.invalidLongitude"],[3,"ngClass",4,"ngFor","ngForOf"],[1,"manage-version-button","clickable",3,"title","click"],[1,"fa","fa-times"],[1,"fa","fa-undo"],[1,"list-group-item",2,"text-align","left"],[1,"fa","fa-plus","clickable",3,"click"],["key","changeovertime.manageVersions.newVersion"],[2,"margin-left","15px"],["type","submit","role","button",1,"btn","btn-primary",3,"disabled","title","click"],["key","change.request.accept.btn"],["type","submit","role","button",1,"btn","btn-danger",3,"disabled","title","click"],["key","change.request.reject.btn"],["type","submit","role","button",1,"btn","btn-warning",3,"disabled","title","click"],["key","change.request.pending.btn"],["style","color:#6BA542;",4,"ngIf"],["style","color:#6d0400;",4,"ngIf"],[2,"color","#6BA542"],["key","change.request.status.accepted"],[2,"color","#6d0400"],["key","change.request.status.rejected"],[2,"width","55%","display","inline-block","vertical-align","top","margin-top","15px",3,"geometryType","mapHeight","readOnly","bboxCode","bboxType","bboxDate"],["geometryEditor",""]],template:function(e,t){1&e&&(u.ɵɵelementStart(0,"div"),u.ɵɵtemplate(1,C,2,2,"ng-template",null,0,u.ɵɵtemplateRefExtractor),u.ɵɵelementStart(3,"form",1),u.ɵɵelementStart(4,"fieldset"),u.ɵɵelementStart(5,"div",2),u.ɵɵelementStart(6,"div",3),u.ɵɵtemplate(7,xe,7,4,"div",4),u.ɵɵelementEnd(),u.ɵɵtemplate(8,Oe,2,6,"geoobject-editor-map",5),u.ɵɵelementEnd(),u.ɵɵelementEnd(),u.ɵɵelementEnd(),u.ɵɵelementEnd()),2&e&&(u.ɵɵadvance(6),u.ɵɵproperty("ngStyle",u.ɵɵpureFunction1(3,Ie,t.isGeometryInlined&&t.geomService.getRenderedLayers().length>0?"45%":"100%")),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",t.changeRequestEditor.geoObject),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",t.isGeometryInlined&&t.geomService.getRenderedLayers().length>0))},styles:['table[_ngcontent-%COMP%] {\n border-collapse: separate;\n padding: 15px;\n}\n\n.geometry-edit-active[_ngcontent-%COMP%] {\n background-color: #f4fcef !important;\n border: solid 1px #6BA542 !important;\n \n}\n\n.version-column-wrapper.error-border[_ngcontent-%COMP%] {\n\tborder-color: #e30000;\n border-style: solid;\n border-width: 2px;\n}\n\n.version-column-wrapper.warning-border[_ngcontent-%COMP%] {\n border-color: orange;\n border-style: solid;\n border-width: 2px;\n}\n\np.warning-text.display-current-value[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: bold;\n}\n\n.version-column-wrapper[_ngcontent-%COMP%] {\n\tpadding-top: 0px;\n\tpadding-left: 0px;\n\tborder: solid 1px lightgrey;\n}\n.version-column-wrapper.warning[_ngcontent-%COMP%] {\n background-color: inherit;\n border-color: orange;\n border-left: solid 5px orange;\n}\n\n.version-column-wrapper[_ngcontent-%COMP%] .version-column-indicator[_ngcontent-%COMP%] {\n\tposition: relative;\n\tbackground: grey;\n color: white;\n left: -1px;\n font-size: 14px;\n font-weight: bold;\n padding: 0 6px;\n width: fit-content;\n top: -1px;\n}\n.version-column-wrapper.warning[_ngcontent-%COMP%] .version-column-indicator[_ngcontent-%COMP%] {\n background-color: orange;\n}\n\n.manage-version-button[_ngcontent-%COMP%] {\n border: solid 1px lightgrey;\n}\n\n.has-changed[_ngcontent-%COMP%] {\n\tcolor: orange;\n}\n\n.version-row[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] {\n padding-left: 10px;\n}\n.version-row[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding-left: 5px;\n}\n\n.list-group[_ngcontent-%COMP%] {\n margin-bottom: 0;\n}\n\ntd[disabled="true"][_ngcontent-%COMP%] {\n background: #f8f8f8;\n cursor:not-allowed;\n}\ntd[disabled="true"][_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: lightgrey;\n cursor:not-allowed;\n}'],data:{animation:[[i.trigger("fadeInOut",[i.transition("void => *",[i.style({opacity:0}),i.animate("500ms")]),i.transition(":leave",i.animate("500ms",i.style({opacity:0})))])]]}}),e}();t.ManageVersionsComponent=we,("undefined"==typeof ngDevMode||ngDevMode)&&u.ɵsetClassMetadata(we,[{type:r.Component,args:[{selector:"manage-versions",templateUrl:"./manage-versions.component.html",styleUrls:["./manage-versions.css"],host:{"[@fadeInOut]":"true"},animations:[[i.trigger("fadeInOut",[i.transition("void => *",[i.style({opacity:0}),i.animate("500ms")]),i.transition(":leave",i.animate("500ms",i.style({opacity:0})))])]],viewProviders:[{provide:p.ControlContainer,useExisting:p.NgForm}]}]}],(function(){return[{type:g.GeometryService},{type:u.ChangeDetectorRef},{type:g.RegistryService},{type:h.LocalizationService},{type:u.ChangeDetectorRef},{type:f.DateService},{type:y.AuthService},{type:v.ChangeRequestService},{type:b.BsModalService},{type:u.ElementRef}]}),{isNew:[{type:r.Input}],dateFieldComponentsArray:[{type:r.ViewChildren,args:["dateFieldComponents"]}],isValidChange:[{type:r.Output}],readonly:[{type:r.Input}],isGeometryInlined:[{type:r.Input}],changeRequestEditor:[{type:r.Input}],geoObjectType:[{type:r.Input}],attributeType:[{type:r.Input}],hierarchy:[{type:r.Input}],filterDate:[{type:r.Input}],showAllInstances:[{type:r.Input}]})},593:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChangeRequestPageComponent=void 0;var r=n(0),i=(n(30),n(33),n(16),n(111)),o=n(0),a=n(16),l=n(30),s=n(33),c=n(122),d=n(86),p=n(589),m=n(1),u=n(555);function g(e,t){1&e&&o.ɵɵelement(0,"submit-change-request")}var h=function(){function e(e,t,n,r){this.localizationService=e,this.modalService=t,this.service=n,this.route=r,this.isAdmin=n.isAdmin(),this.isMaintainer=this.isAdmin||n.isMaintainer(),this.isContributor=this.isAdmin||this.isMaintainer||n.isContributer(),this.isContributorOnly=n.isContributerOnly()}return e.prototype.ngOnInit=function(){var e=this;this.urlSubscriber=this.route.params.subscribe((function(t){e.highlightOid=t.oid}))},e.prototype.ngOnDestroy=function(){this.urlSubscriber.unsubscribe()},e.prototype.error=function(e){this.bsModalRef=i.ErrorHandler.showErrorAsDialog(e,this.modalService)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.LocalizationService),o.ɵɵdirectiveInject(l.BsModalService),o.ɵɵdirectiveInject(a.AuthService),o.ɵɵdirectiveInject(s.ActivatedRoute))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["change-request-page"]],decls:13,vars:3,consts:[[1,"new-admin-design-main"],["id","app-container",1,"container-fluid",2,"height","100%"],[1,"row"],[1,"col-md-12"],[1,"heading"],[1,"inner-col-content-wrapper",2,"padding-top","30px","margin-top","10px"],[3,"toggleId"],[4,"ngIf"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵelement(1,"cgr-header"),o.ɵɵelement(2,"loading-bar"),o.ɵɵelementStart(3,"div",1),o.ɵɵelementStart(4,"div",2),o.ɵɵelementStart(5,"div",3),o.ɵɵelementStart(6,"div"),o.ɵɵelementStart(7,"div",4),o.ɵɵelementStart(8,"h2"),o.ɵɵtext(9),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(10,"div",5),o.ɵɵelement(11,"request-table",6),o.ɵɵtemplate(12,g,1,0,"submit-change-request",7),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(9),o.ɵɵtextInterpolate(t.pageTitle),o.ɵɵadvance(2),o.ɵɵproperty("toggleId",t.highlightOid),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",t.isContributorOnly))},directives:[c.CgrHeaderComponent,d.LoadingBarComponent,p.RequestTableComponent,m.NgIf,u.SubmitChangeRequestComponent],styles:["a.active[_ngcontent-%COMP%] {\n\tborder-bottom: solid 2px #6BA542;\n}"]}),e}();t.ChangeRequestPageComponent=h,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(h,[{type:r.Component,args:[{selector:"change-request-page",templateUrl:"./change-request-page.component.html",styleUrls:["./change-request-page.css"]}]}],(function(){return[{type:a.LocalizationService},{type:l.BsModalService},{type:a.AuthService},{type:s.ActivatedRoute}]}),null)},594:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CascadingGeoSelector=void 0;var r=n(0),i=(n(30),n(519),n(111)),o=n(0),a=n(30),l=n(519),s=n(22),c=n(1),d=n(68),p=["mainForm"];function m(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",10),o.ɵɵtext(1),o.ɵɵelement(2,"input",11),o.ɵɵelementEnd()),2&e){var n=t.$implicit,r=o.ɵɵnextContext().$implicit;o.ɵɵadvance(1),o.ɵɵtextInterpolate1(" ",n.label," "),o.ɵɵadvance(1),o.ɵɵproperty("value",n.geoObject.properties.displayLabel.localizedValue+" : "+n.geoObject.properties.code)("name",r.code+"-"+n.code+"-input")}}function u(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",7),o.ɵɵelementStart(1,"div",12),o.ɵɵelementStart(2,"div",13),o.ɵɵelementStart(3,"button",14),o.ɵɵlistener("click",(function(){o.ɵɵrestoreView(n);var e=o.ɵɵnextContext().$implicit;return o.ɵɵnextContext().onManageVersions(e.code)})),o.ɵɵelement(4,"localize",15),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()}}function g(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",3),o.ɵɵelementStart(1,"div",4),o.ɵɵelementStart(2,"label"),o.ɵɵtext(3),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(4,"div",5),o.ɵɵelementStart(5,"div",6),o.ɵɵelementStart(6,"div",7),o.ɵɵtemplate(7,m,3,3,"div",8),o.ɵɵelementEnd(),o.ɵɵtemplate(8,u,5,0,"div",9),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e){var n=t.$implicit,r=o.ɵɵnextContext();o.ɵɵadvance(3),o.ɵɵtextInterpolate1(" ",n.label," "),o.ɵɵadvance(4),o.ɵɵproperty("ngForOf",n.parents),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",!r.readOnly)}}var h=function(){function e(e,t){this.modalService=e,this.registryService=t,this.valid=new r.EventEmitter,this.isValid=!0,this.readOnly=!1,this.forDate=new Date,this.customEvent=!1,this.onManageVersion=new r.EventEmitter,this.cHierarchies=[],this.parentMap={}}return e.prototype.ngOnInit=function(){var e=this.forDate.getUTCDate();this.dateStr=this.forDate.getUTCFullYear()+"-"+(this.forDate.getUTCMonth()+1)+"-"+(e<10?"0":"")+e,this.forDate=new Date(Date.parse(this.dateStr)),this.calculate()},e.prototype.ngOnChanges=function(e){e.forDate&&this.calculate()},e.prototype.calculate=function(){var e=this,t=this.forDate.getTime();this.isValid=!0,this.cHierarchies=[],this.hierarchies.forEach((function(n){var r={};r.label=n.label,r.code=n.code,e.isValid=e.isValid&&e.hierarchies.length>0,n.entries.forEach((function(e){var i=Date.parse(e.startDate),o=Date.parse(e.endDate);if(t>=i&&t<=o){var a=[];n.types.forEach((function(t){var n={code:t.code,label:t.label};null!=e.parents[t.code]&&(n.text=e.parents[t.code].text,n.geoObject=e.parents[t.code].geoObject),a.push(n)})),r.parents=a}})),e.cHierarchies.push(r)})),this.valid.emit()},e.prototype.getIsValid=function(){return!0},e.prototype.getHierarchies=function(){return this.hierarchies},e.prototype.onManageVersions=function(e){var t=this.hierarchies.find((function(t){return t.code===e}));this.customEvent&&this.onManageVersion.emit(t)},e.prototype.error=function(e){this.bsModalRef=i.ErrorHandler.showErrorAsDialog(e,this.modalService)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.BsModalService),o.ɵɵdirectiveInject(l.RegistryService))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["cascading-geo-selector"]],viewQuery:function(e,t){if(1&e&&o.ɵɵviewQuery(p,1),2&e){var n;o.ɵɵqueryRefresh(n=o.ɵɵloadQuery())&&(t.mainForm=n.first)}},inputs:{hierarchies:"hierarchies",isValid:"isValid",readOnly:"readOnly",forDate:"forDate",customEvent:"customEvent"},outputs:{valid:"valid",onManageVersion:"onManageVersion"},features:[o.ɵɵNgOnChangesFeature],decls:5,vars:1,consts:[["name","cascading-geo-selector",1,"modal-form",2,"overflow","visible"],["mainForm","ngForm"],["class","row-holder","style","overflow:visible;",4,"ngFor","ngForOf"],[1,"row-holder",2,"overflow","visible"],[1,"label-holder"],[1,"holder"],[1,"container",2,"width","100%"],[1,"row"],["class","col-sm-12","style","float:left;width:150px;",4,"ngFor","ngForOf"],["class","row",4,"ngIf"],[1,"col-sm-12",2,"float","left","width","150px"],["type","text","disabled","",1,"form-control",2,"width","150px",3,"value","name"],[1,"col-sm-12"],[1,"button-holder",2,"padding","20px 0 20px 0","text-align","left"],["type","submit","role","button",1,"btn","btn-primary",3,"click"],["key","changeovertime.manageVersions.button.label"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"form",0,1),o.ɵɵelementStart(2,"fieldset"),o.ɵɵelementStart(3,"div"),o.ɵɵtemplate(4,g,9,3,"div",2),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(4),o.ɵɵproperty("ngForOf",t.cHierarchies))},directives:[s.ɵangular_packages_forms_forms_ba,s.NgControlStatusGroup,s.NgForm,c.NgForOf,c.NgIf,d.LocalizeComponent],encapsulation:2}),e}();t.CascadingGeoSelector=h,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(h,[{type:r.Component,args:[{selector:"cascading-geo-selector",templateUrl:"./cascading-geo-selector.html"}]}],(function(){return[{type:a.BsModalService},{type:l.RegistryService}]}),{hierarchies:[{type:r.Input}],valid:[{type:r.Output}],isValid:[{type:r.Input}],readOnly:[{type:r.Input}],mainForm:[{type:r.ViewChild,args:["mainForm"]}],forDate:[{type:r.Input}],customEvent:[{type:r.Input}],onManageVersion:[{type:r.Output}]})},595:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MasterListComponent=void 0;var r=n(0),i=(n(33),n(30),n(31)),o=n(379),a=(n(519),n(112),n(588)),l=n(556),s=n(111),c=(n(16),n(0)),d=n(519),p=n(16),m=n(33),u=n(112),g=n(30),h=n(122),f=n(86),y=n(1),v=n(68),b=n(204),S=n(156),C=n(262),E=n(73),x=n(22),O=n(260),I=n(154),w=n(113);function M(e,t){1&e&&c.ɵɵelement(0,"progress-bar")}function T(e,t){if(1&e&&(c.ɵɵelementStart(0,"div",27),c.ɵɵtext(1),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext();c.ɵɵadvance(1),c.ɵɵtextInterpolate(n.message)}}function j(e,t){if(1&e&&(c.ɵɵelementStart(0,"div",8),c.ɵɵelementStart(1,"h2"),c.ɵɵtext(2),c.ɵɵelementEnd(),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext();c.ɵɵadvance(2),c.ɵɵtextInterpolate1(" ",n.list.displayLabel," ")}}function k(e,t){if(1&e&&(c.ɵɵelementStart(0,"li"),c.ɵɵtext(1),c.ɵɵelementEnd()),2&e){var n=t.$implicit;c.ɵɵadvance(1),c.ɵɵtextInterpolate(n.label)}}function z(e,t){if(1&e&&(c.ɵɵelementStart(0,"div",33),c.ɵɵelementStart(1,"div",34),c.ɵɵelement(2,"localize",35),c.ɵɵelementStart(3,"ol"),c.ɵɵtemplate(4,k,2,1,"li",36),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext(2);c.ɵɵadvance(4),c.ɵɵproperty("ngForOf",n.filter)}}function D(e,t){if(1&e&&(c.ɵɵelementStart(0,"div",7),c.ɵɵelementStart(1,"div",28),c.ɵɵelementStart(2,"h4"),c.ɵɵelement(3,"localize",29),c.ɵɵtext(4," : "),c.ɵɵelementStart(5,"span",30),c.ɵɵtext(6),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementStart(7,"h4"),c.ɵɵelement(8,"localize",31),c.ɵɵtext(9," : "),c.ɵɵelementStart(10,"span",30),c.ɵɵtext(11),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵtemplate(12,z,5,1,"div",32),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext();c.ɵɵadvance(6),c.ɵɵtextInterpolate1(" ",n.formatDate(n.list.publishDate)," "),c.ɵɵadvance(5),c.ɵɵtextInterpolate1(" ",n.formatDate(n.list.forDate)," "),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",n.filter.length>0)}}function R(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"span",37),c.ɵɵelementStart(1,"boolean-field",38),c.ɵɵlistener("valueChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext().showInvalid=e}))("change",(function(){return c.ɵɵrestoreView(n),c.ɵɵnextContext().onShowInvalidChange()})),c.ɵɵelementEnd(),c.ɵɵelementEnd()}if(2&e){var r=c.ɵɵnextContext();c.ɵɵadvance(1),c.ɵɵproperty("value",r.showInvalid)("localizeLabelKey","masterlist.showInvalid")}}var P=function(){return{"fa fa-refresh clickable":!0}};function A(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"span",11),c.ɵɵlistener("click",(function(){return c.ɵɵrestoreView(n),c.ɵɵnextContext().onPublish()})),c.ɵɵelement(1,"i",39),c.ɵɵelement(2,"localize",40),c.ɵɵelementEnd()}2&e&&(c.ɵɵadvance(1),c.ɵɵproperty("ngClass",c.ɵɵpureFunction0(1,P)))}var V=function(e,t,n,r,i,o){return["/registry/dataset-location-manager",e,t,n,r,"__NEW__",i,o]};function N(e,t){if(1&e&&(c.ɵɵelementStart(0,"button",41),c.ɵɵelement(1,"localize",42),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext();c.ɵɵproperty("routerLink",c.ɵɵpureFunction6(1,V,n.list.oid,n.list.typeCode,!n.isWritable,n.list.forDate,!n.isWritable||n.list.isAbstract,"ML"+(n.isPublished?"T":"F")+n.list.oid))}}function L(e,t){if(1&e&&(c.ɵɵelementStart(0,"li"),c.ɵɵelementStart(1,"a",49),c.ɵɵtext(2),c.ɵɵelementEnd(),c.ɵɵelementEnd()),2&e){var n=t.$implicit,r=c.ɵɵnextContext(2);c.ɵɵadvance(1),c.ɵɵproperty("routerLink",c.ɵɵpureFunction6(2,V,r.list.oid,n.code,!r.isWritable,r.list.forDate,!r.isWritable||r.list.isAbstract,"ML"+(r.isPublished?"T":"F")+r.list.oid)),c.ɵɵadvance(1),c.ɵɵtextInterpolate(n.label)}}function _(e,t){if(1&e&&(c.ɵɵelementStart(0,"span",43),c.ɵɵelementStart(1,"button",44),c.ɵɵelement(2,"localize",42),c.ɵɵelement(3,"span",45),c.ɵɵelementEnd(),c.ɵɵelementStart(4,"ul",46),c.ɵɵelementStart(5,"li"),c.ɵɵelement(6,"localize",47),c.ɵɵelementEnd(),c.ɵɵelement(7,"li",48),c.ɵɵtemplate(8,L,3,9,"li",36),c.ɵɵelementEnd(),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext();c.ɵɵadvance(8),c.ɵɵproperty("ngForOf",n.list.subtypes)}}function F(e,t){1&e&&c.ɵɵelement(0,"localize",50)}function H(e,t){1&e&&c.ɵɵelement(0,"localize",51)}function G(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"div",65),c.ɵɵelementStart(1,"a",66),c.ɵɵlistener("click",(function(){c.ɵɵrestoreView(n);var e=c.ɵɵnextContext().$implicit;return c.ɵɵnextContext(2).toggleFilter(e)})),c.ɵɵelement(2,"i",67),c.ɵɵpipe(3,"localize"),c.ɵɵelementEnd(),c.ɵɵelementEnd()}if(2&e){var r=c.ɵɵnextContext().$implicit;c.ɵɵadvance(1),c.ɵɵattribute("aria-expanded",!r.isCollapsed),c.ɵɵadvance(1),c.ɵɵproperty("title",c.ɵɵpipeBind1(3,2,"button.filter.helptext"))}}function q(e,t){1&e&&c.ɵɵelement(0,"i",68)}function B(e,t){1&e&&c.ɵɵelement(0,"i",69)}function U(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"input",73),c.ɵɵlistener("ngModelChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext(2).$implicit.value=e}))("keyup.enter",(function(){c.ɵɵrestoreView(n);var e=c.ɵɵnextContext(2).$implicit;return c.ɵɵnextContext(2).handleInputChange(e)})),c.ɵɵelementEnd()}if(2&e){var r=c.ɵɵnextContext(2).$implicit;c.ɵɵproperty("name",r.name)("ngModel",r.value)}}function $(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"div"),c.ɵɵelementStart(1,"date-field",74),c.ɵɵlistener("valueChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext(2).$implicit.value.start=e}))("change",(function(){c.ɵɵrestoreView(n);var e=c.ɵɵnextContext(2).$implicit;return c.ɵɵnextContext(2).handleDateChange(e)})),c.ɵɵelementEnd(),c.ɵɵelementStart(2,"date-field",74),c.ɵɵlistener("valueChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext(2).$implicit.value.end=e}))("change",(function(){c.ɵɵrestoreView(n);var e=c.ɵɵnextContext(2).$implicit;return c.ɵɵnextContext(2).handleDateChange(e)})),c.ɵɵelementEnd(),c.ɵɵelementEnd()}if(2&e){var r=c.ɵɵnextContext(2).$implicit;c.ɵɵadvance(1),c.ɵɵproperty("value",r.value.start)("classNames","search-input")("inputName",r.name+"Start")("allowInfinity",!1)("allowFutureDates",!1)("required",!1)("placement","bottom"),c.ɵɵadvance(1),c.ɵɵproperty("value",r.value.end)("classNames","search-input")("inputName",r.name+"End")("allowInfinity",!1)("allowFutureDates",!1)("required",!1)("placement","bottom")}}var J=function(e){return{"inline-loading":e}};function W(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"input",75),c.ɵɵlistener("ngModelChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext(2).$implicit.search=e}))("typeaheadOnSelect",(function(e){c.ɵɵrestoreView(n);var t=c.ɵɵnextContext(2).$implicit;return c.ɵɵnextContext(2).handleListChange(e,t)}))("typeaheadLoading",(function(e){c.ɵɵrestoreView(n);var t=c.ɵɵnextContext(2).$implicit;return c.ɵɵnextContext(2).changeTypeaheadLoading(t,e)})),c.ɵɵpipe(1,"localize"),c.ɵɵelementEnd()}if(2&e){var r=c.ɵɵnextContext(2).$implicit,i=c.ɵɵnextContext(2);c.ɵɵproperty("placeholder",c.ɵɵpipeBind1(1,9,"masterlist.search")+"...")("name",r.name)("ngModel",r.search)("typeaheadAsync",!0)("typeahead",i.getTypeaheadDataObservable(r))("typeaheadOptionsLimit",100)("typeaheadMinLength",0)("typeaheadWaitMs",300)("ngClass",c.ɵɵpureFunction1(11,J,r.loading))}}function K(e,t){if(1&e&&(c.ɵɵelementStart(0,"div"),c.ɵɵelementStart(1,"div",70),c.ɵɵtemplate(2,U,1,2,"input",71),c.ɵɵtemplate(3,$,3,14,"div",1),c.ɵɵtemplate(4,W,2,13,"input",72),c.ɵɵelementEnd(),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext().$implicit;c.ɵɵadvance(1),c.ɵɵproperty("collapse",n.isCollapsed),c.ɵɵadvance(1),c.ɵɵproperty("ngIf","input"===n.type),c.ɵɵadvance(1),c.ɵɵproperty("ngIf","date"===n.type),c.ɵɵadvance(1),c.ɵɵproperty("ngIf","list"===n.type)}}function Q(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"th",59),c.ɵɵtemplate(1,G,4,4,"div",60),c.ɵɵelementStart(2,"a",61),c.ɵɵlistener("click",(function(){c.ɵɵrestoreView(n);var e=t.$implicit;return c.ɵɵnextContext(2).onSort(e)})),c.ɵɵtext(3),c.ɵɵelementEnd(),c.ɵɵelementStart(4,"a",62),c.ɵɵlistener("click",(function(){c.ɵɵrestoreView(n);var e=t.$implicit;return c.ɵɵnextContext(2).onSort(e)})),c.ɵɵtemplate(5,q,1,0,"i",63),c.ɵɵtemplate(6,B,1,0,"i",64),c.ɵɵelementEnd(),c.ɵɵtemplate(7,K,5,4,"div",1),c.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=c.ɵɵnextContext(2);c.ɵɵadvance(1),c.ɵɵproperty("ngIf",i.isFilterable(r)),c.ɵɵadvance(2),c.ɵɵtextInterpolate1("",r.label," "),c.ɵɵadvance(2),c.ɵɵproperty("ngIf","ASC"===i.sort.order&&i.sort.attribute===r.name),c.ɵɵadvance(1),c.ɵɵproperty("ngIf","DESC"===i.sort.order&&i.sort.attribute===r.name),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",i.isFilterable(r))}}function Y(e,t){if(1&e&&(c.ɵɵelementStart(0,"td",80),c.ɵɵtext(1),c.ɵɵelementEnd()),2&e){var n=t.$implicit,r=c.ɵɵnextContext().$implicit;c.ɵɵadvance(1),c.ɵɵtextInterpolate(r[n.name])}}var X=function(e,t,n,r,i,o,a){return["/registry/dataset-location-manager",e,t,n,r,i,o,a]};function Z(e,t){if(1&e&&(c.ɵɵelementStart(0,"tr",76),c.ɵɵelementStart(1,"td",77),c.ɵɵelement(2,"a",78),c.ɵɵelementEnd(),c.ɵɵtemplate(3,Y,2,1,"td",79),c.ɵɵelementEnd()),2&e){var n=t.$implicit,r=c.ɵɵnextContext(2);c.ɵɵadvance(2),c.ɵɵproperty("ngClass",r.isWritable?"fa fa-pencil":"fa fa-eye")("routerLink",c.ɵɵpureFunction7(3,X,r.list.oid,r.list.typeCode,!r.isWritable,r.list.forDate,n.code,!r.isWritable||r.list.isAbstract,"ML"+(r.isPublished?"T":"F")+r.list.oid)),c.ɵɵadvance(1),c.ɵɵproperty("ngForOf",r.listAttrs)}}var ee=function(e,t,n){return{itemsPerPage:e,currentPage:t,totalItems:n}};function te(e,t){if(1&e&&(c.ɵɵelementStart(0,"div",52),c.ɵɵelementStart(1,"table",53),c.ɵɵelementStart(2,"thead",54),c.ɵɵelementStart(3,"tr"),c.ɵɵelementStart(4,"th",55),c.ɵɵelement(5,"localize",56),c.ɵɵelementEnd(),c.ɵɵtemplate(6,Q,8,5,"th",57),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementStart(7,"tbody"),c.ɵɵtemplate(8,Z,4,11,"tr",58),c.ɵɵpipe(9,"paginate"),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext();c.ɵɵadvance(6),c.ɵɵproperty("ngForOf",n.listAttrs),c.ɵɵadvance(2),c.ɵɵproperty("ngForOf",c.ɵɵpipeBind2(9,2,n.page.results,c.ɵɵpureFunction3(5,ee,n.page.pageSize,n.page.pageNumber,n.page.count)))}}var ne=function(){function e(e,t,n,r,i,o,a){this.service=e,this.pService=t,this.route=n,this.dateService=r,this.modalService=i,this.localizeService=o,this.authService=a,this.message=null,this.list=null,this.p=1,this.current="",this.filter=[],this.selected=[],this.page={count:0,pageNumber:1,pageSize:100,results:[]},this.sort={attribute:"code",order:"ASC"},this.isPublished=!0,this.isRefreshing=!1,this.isWritable=!1,this.showInvalid=!1,this.searchPlaceholder="",this.searchPlaceholder=o.decode("masterlist.search")}return e.prototype.ngOnInit=function(){var e=this,t=this.route.snapshot.paramMap.get("oid");this.isPublished="true"===this.route.snapshot.paramMap.get("published"),this.service.getMasterListVersion(t).then((function(t){e.setList(t);var n=e.list.orgCode,r=null!=e.list.superTypeCode?e.list.superTypeCode:e.list.typeCode;e.isWritable=e.authService.isGeoObjectTypeRC(n,r),e.onPageChange(1),null!=t.refreshProgress&&e.handleProgressChange(t.refreshProgress)}));var n="wss://"+window.location.hostname+(window.location.port?":"+window.location.port:"")+acp;this.notifier=o.webSocket(n+"/websocket/progress/"+t),this.notifier.subscribe((function(t){null!=t.content?e.handleProgressChange(t.content):e.handleProgressChange(t)}))},e.prototype.ngOnDestroy=function(){this.notifier.complete()},e.prototype.ngAfterViewInit=function(){},e.prototype.setList=function(e){this.list=e,this.listAttrs=this.calculateListAttributes()},e.prototype.onShowInvalidChange=function(){this.onPageChange(1)},e.prototype.onPageChange=function(e){var t=this;this.message=null,this.service.data(this.list.oid,e,this.page.pageSize,this.getFilter(),this.sort).then((function(e){t.page=e,t.listAttrs=t.calculateListAttributes()})).catch((function(e){t.error(e)}))},e.prototype.onSort=function(e){this.sort.attribute===e.name?this.sort.order="ASC"===this.sort.order?"DESC":"ASC":this.sort={attribute:e.name,order:"ASC"},this.onPageChange(1)},e.prototype.clearFilters=function(){this.list.attributes.forEach((function(e){e.search=null})),this.filter=[],this.showInvalid=!1,this.selected=[],this.onPageChange(1)},e.prototype.toggleFilter=function(e){e.isCollapsed=!e.isCollapsed},e.prototype.getFilter=function(){var e=JSON.parse(JSON.stringify(this.filter));return this.showInvalid||e.push({attribute:"invalid",value:"false"}),e},e.prototype.calculateListAttributes=function(){var e;if(this.showInvalid)e=this.list.attributes;else{var t=(e=JSON.parse(JSON.stringify(this.list.attributes))).findIndex((function(e){return"invalid"===e.name}));-1!==t&&e.splice(t,1)}return e.forEach((function(e){e.isCollapsed=!0})),e},e.prototype.getTypeaheadDataObservable=function(e){var t=this;return i.Observable.create((function(n){t.message=null,t.service.values(t.list.oid,e.search,e.name,e.base,t.getFilter()).then((function(e){e.unshift({label:"["+t.localizeService.decode("masterlist.nofilter")+"]",value:null}),n.next(e)})).catch((function(e){t.error(e)}))}))},e.prototype.handleProgressChange=function(e){this.isRefreshing=e.current0)},e.prototype.onEdit=function(e){var t=this,n=this.modalService.show(l.GeoObjectEditorComponent,{backdrop:!0,ignoreBackdropClick:!0});n.content.configureAsExisting(e.code,this.list.typeCode,this.list.forDate,this.list.isGeometryEditable),n.content.setMasterListId(this.list.oid),n.content.setOnSuccessCallback((function(){t.onPageChange(t.page.pageNumber)}))},e.prototype.onPublish=function(){var e=this;this.message=null,this.service.publishMasterList(this.list.oid).toPromise().then((function(t){e.isRefreshing=!0})).catch((function(t){e.error(t)}))},e.prototype.onNewGeoObject=function(){var e=this,t=this.modalService.show(l.GeoObjectEditorComponent,{backdrop:!0,ignoreBackdropClick:!0});t.content.configureAsNew(this.list.typeCode,this.list.forDate,this.list.isGeometryEditable),t.content.setMasterListId(this.list.oid),t.content.setOnSuccessCallback((function(){e.onPageChange(e.page.pageNumber)}))},e.prototype.onExport=function(){var e=this;this.bsModalRef=this.modalService.show(a.ExportFormatModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0}),this.bsModalRef.content.onFormat.subscribe((function(t){"SHAPEFILE"===t?window.location.href=acp+"/master-list/export-shapefile?oid="+e.list.oid+"&filter="+encodeURIComponent(JSON.stringify(e.getFilter())):"EXCEL"===t&&(window.location.href=acp+"/master-list/export-spreadsheet?oid="+e.list.oid+"&filter="+encodeURIComponent(JSON.stringify(e.getFilter())))}))},e.prototype.changeTypeaheadLoading=function(e,t){e.loading=t},e.prototype.formatDate=function(e){return this.dateService.formatDateForDisplay(e)},e.prototype.onWheel=function(e){e.target.parentElement.closest("table").parentElement.scrollLeft+=e.deltaY,e.preventDefault()},e.prototype.error=function(e){this.message=s.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(c.ɵɵdirectiveInject(d.RegistryService),c.ɵɵdirectiveInject(p.ProgressService),c.ɵɵdirectiveInject(m.ActivatedRoute),c.ɵɵdirectiveInject(u.DateService),c.ɵɵdirectiveInject(g.BsModalService),c.ɵɵdirectiveInject(p.LocalizationService),c.ɵɵdirectiveInject(p.AuthService))},e.ɵcmp=c.ɵɵdefineComponent({type:e,selectors:[["master-list"]],decls:34,vars:14,consts:[[1,"new-admin-design-main"],[4,"ngIf"],["id","app-container",1,"container-fluid"],["class","alert alert-danger","role","alert",4,"ngIf"],[1,"row"],["class","col-md-12",4,"ngIf"],["class","row form-group",4,"ngIf"],[1,"row","form-group"],[1,"col-md-12"],[1,"button-holder","pull-right"],["class","clickable","style","vertical-align:middle;display:inline-block;",4,"ngIf"],[1,"clickable",2,"padding","10px",3,"click"],[1,"fa-stack","fa-md"],[1,"fa","fa-filter","fa-stack-2x",2,"font-size","25px"],[1,"fa","fa-times-circle","fa-stack-1x",2,"font-size","13px","top","4px","left","6px"],["key","masterlist.clearFilters"],["class","clickable","style","padding: 10px;",3,"click",4,"ngIf"],["type","submit","routerLinkActive","active","class","btn btn-primary","role","button",3,"routerLink",4,"ngIf"],["class","dropdown",4,"ngIf"],["type","submit","role","button",1,"btn","btn-primary",3,"click"],["key","io.export.allrows",4,"ngIf"],["key","io.export.filteredrows",4,"ngIf"],["class","col-md-12 table-responsive text-nowrap","id","list-view-table","style","max-height:calc(100vh - 439px); min-height:calc(100vh - 439px);",4,"ngIf"],[2,"display","inline-block",3,"pageChange"],[2,"display","inline-block","margin-left","20px","vertical-align","middle","color","#cacaca","font-weight","bold"],["key","masterlist.pagination.showing"],["key","masterlist.pagination.of"],["role","alert",1,"alert","alert-danger"],[1,"col-md-3"],["key","masterlist.generatedDate"],[1,"date-string-display"],["key","masterlist.forDate"],["class","col-md-6",4,"ngIf"],[1,"col-md-6"],[1,"col-md-12","table-responsive"],["key","masterlist.filters"],[4,"ngFor","ngForOf"],[1,"clickable",2,"vertical-align","middle","display","inline-block"],[3,"value","localizeLabelKey","valueChange","change"],["aria-hidden","true",2,"font-size","24px","vertical-align","middle","padding-right","5px",3,"ngClass"],["key","masterlist.publish"],["type","submit","routerLinkActive","active","role","button",1,"btn","btn-primary",3,"routerLink"],["key","masterlist.newGeoObject"],[1,"dropdown"],["type","button","id","dropdownMenu1","data-toggle","dropdown","aria-haspopup","true","aria-expanded","true",1,"btn","btn-primary","dropdown-toggle"],[1,"caret"],["aria-labelledby","dropdownMenu1",1,"dropdown-menu"],["key","masterlist.newGeoObject.selectASubtype",2,"padding-left","10px"],["role","separator",1,"divider"],["routerLinkActive","active",3,"routerLink"],["key","io.export.allrows"],["key","io.export.filteredrows"],["id","list-view-table",1,"col-md-12","table-responsive","text-nowrap",2,"max-height","calc(100vh - 439px)","min-height","calc(100vh - 439px)"],[1,"list-table","table","table-bordered","table-striped"],[2,"position","sticky","top","0","background","#ececec"],[1,"label-column",2,"width","3%","position","sticky","top","0"],["key","masterlist.view.column"],["style","position: sticky;top: 0","class","label-column",4,"ngFor","ngForOf"],["class","fade-ngRepeat-item",4,"ngFor","ngForOf"],[1,"label-column",2,"position","sticky","top","0"],["style","display: table-cell; padding-right: 10px; vertical-align: middle;",4,"ngIf"],[2,"display","table-cell","word-break","keep-all","word-wrap","normal",3,"click"],[2,"display","table-cell","vertical-align","middle","padding-left","5px",3,"click"],["class","fa fa-arrow-down","style","font-size: inherit;",4,"ngIf"],["class","fa fa-arrow-up","style","font-size: inherit;",4,"ngIf"],[2,"display","table-cell","padding-right","10px","vertical-align","middle"],["aria-controls","collapseBasic",1,"",3,"click"],[1,"fa","fa-filter",2,"font-size","20px",3,"title"],[1,"fa","fa-arrow-down",2,"font-size","inherit"],[1,"fa","fa-arrow-up",2,"font-size","inherit"],["id","collapseBasic",3,"collapse"],["type","text","class","form-control search-input",3,"name","ngModel","ngModelChange","keyup.enter",4,"ngIf"],["type","text","typeaheadOptionField","label","class","form-control","autocomplete","off","container","body",3,"placeholder","name","ngModel","typeaheadAsync","typeahead","typeaheadOptionsLimit","typeaheadMinLength","typeaheadWaitMs","ngClass","ngModelChange","typeaheadOnSelect","typeaheadLoading",4,"ngIf"],["type","text",1,"form-control","search-input",3,"name","ngModel","ngModelChange","keyup.enter"],["label","",3,"value","classNames","inputName","allowInfinity","allowFutureDates","required","placement","valueChange","change"],["type","text","typeaheadOptionField","label","autocomplete","off","container","body",1,"form-control",3,"placeholder","name","ngModel","typeaheadAsync","typeahead","typeaheadOptionsLimit","typeaheadMinLength","typeaheadWaitMs","ngClass","ngModelChange","typeaheadOnSelect","typeaheadLoading"],[1,"fade-ngRepeat-item"],[1,"label-column",2,"width","3%","text-align","center"],["routerLinkActive","active",1,"fa",2,"padding","3px",3,"ngClass","routerLink"],["class","label-column",4,"ngFor","ngForOf"],[1,"label-column"]],template:function(e,t){1&e&&(c.ɵɵelementStart(0,"div",0),c.ɵɵelement(1,"cgr-header"),c.ɵɵelement(2,"loading-bar"),c.ɵɵtemplate(3,M,1,0,"progress-bar",1),c.ɵɵelementStart(4,"div",2),c.ɵɵtemplate(5,T,2,1,"div",3),c.ɵɵelementStart(6,"div",4),c.ɵɵtemplate(7,j,3,1,"div",5),c.ɵɵelementEnd(),c.ɵɵtemplate(8,D,13,3,"div",6),c.ɵɵelementStart(9,"div",7),c.ɵɵelementStart(10,"div",8),c.ɵɵelementStart(11,"div",9),c.ɵɵtemplate(12,R,2,2,"span",10),c.ɵɵelementStart(13,"span",11),c.ɵɵlistener("click",(function(){return t.clearFilters()})),c.ɵɵelementStart(14,"span",12),c.ɵɵelement(15,"i",13),c.ɵɵelement(16,"i",14),c.ɵɵelementEnd(),c.ɵɵelement(17,"localize",15),c.ɵɵelementEnd(),c.ɵɵtemplate(18,A,3,2,"span",16),c.ɵɵtemplate(19,N,2,8,"button",17),c.ɵɵtemplate(20,_,9,1,"span",18),c.ɵɵelementStart(21,"button",19),c.ɵɵlistener("click",(function(){return t.onExport()})),c.ɵɵtemplate(22,F,1,0,"localize",20),c.ɵɵtemplate(23,H,1,0,"localize",21),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementStart(24,"div",7),c.ɵɵtemplate(25,te,10,9,"div",22),c.ɵɵelementEnd(),c.ɵɵelementStart(26,"div",4),c.ɵɵelementStart(27,"div",8),c.ɵɵelementStart(28,"pagination-controls",23),c.ɵɵlistener("pageChange",(function(e){return t.onPageChange(e)})),c.ɵɵelementEnd(),c.ɵɵelementStart(29,"span",24),c.ɵɵelement(30,"localize",25),c.ɵɵtext(31),c.ɵɵelement(32,"localize",26),c.ɵɵtext(33),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd()),2&e&&(c.ɵɵadvance(3),c.ɵɵproperty("ngIf",t.isRefreshing),c.ɵɵadvance(2),c.ɵɵproperty("ngIf",null!=t.message),c.ɵɵadvance(2),c.ɵɵproperty("ngIf",t.list),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",t.list),c.ɵɵadvance(4),c.ɵɵproperty("ngIf",t.isWritable),c.ɵɵadvance(6),c.ɵɵproperty("ngIf",!t.isPublished),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",t.isWritable&&!t.list.isAbstract),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",t.isWritable&&t.list.isAbstract),c.ɵɵadvance(2),c.ɵɵproperty("ngIf",0===t.filter.length),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",t.filter.length>0),c.ɵɵadvance(2),c.ɵɵproperty("ngIf",t.list),c.ɵɵadvance(6),c.ɵɵtextInterpolate2("  ",(t.page.pageNumber-1)*t.page.pageSize," - ",t.page.pageNumber*t.page.pageSize,"  "),c.ɵɵadvance(2),c.ɵɵtextInterpolate1(" ",t.page.count," "))},directives:[h.CgrHeaderComponent,f.LoadingBarComponent,y.NgIf,v.LocalizeComponent,b.PaginationControlsComponent,S.ProgressBarComponent,y.NgForOf,C.BooleanFieldComponent,y.NgClass,m.RouterLinkActive,m.RouterLink,m.RouterLinkWithHref,E.CollapseDirective,x.DefaultValueAccessor,x.NgControlStatus,x.NgModel,O.DateFieldComponent,I.TypeaheadDirective],pipes:[b.PaginatePipe,w.LocalizePipe],styles:[".version-busy-overlay[_ngcontent-%COMP%]\n{\n\theight:100%;\n\twidth:100%;\n\tbackground-color: #CCCCCC;\n position: absolute;\n display: block;\n opacity: 0.8;\n z-index: 99999 !important;\n}"]}),e}();t.MasterListComponent=ne,("undefined"==typeof ngDevMode||ngDevMode)&&c.ɵsetClassMetadata(ne,[{type:r.Component,args:[{selector:"master-list",templateUrl:"./master-list.component.html",styleUrls:["./master-list.component.css"]}]}],(function(){return[{type:d.RegistryService},{type:p.ProgressService},{type:m.ActivatedRoute},{type:u.DateService},{type:g.BsModalService},{type:p.LocalizationService},{type:p.AuthService}]}),null)},596:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PublishedMasterListHistoryComponent=void 0;var r=n(0),i=(n(33),n(30),n(379)),o=n(531),a=n(111),l=(n(519),n(112),n(16),n(569)),s=n(0),c=n(519),d=n(33),p=n(30),m=n(16),u=n(112),g=n(1),h=n(68),f=n(22),y=n(204),v=n(113);function b(e,t){if(1&e&&(s.ɵɵelementStart(0,"div",14),s.ɵɵtext(1),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext();s.ɵɵadvance(1),s.ɵɵtextInterpolate(n.message)}}function S(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"div",15),s.ɵɵelementStart(1,"div",16),s.ɵɵelementStart(2,"form",null,17),s.ɵɵelementStart(4,"div",18),s.ɵɵelementStart(5,"button",19),s.ɵɵlistener("click",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext().onPublish()})),s.ɵɵpipe(6,"localize"),s.ɵɵelement(7,"localize",20),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵreference(3);s.ɵɵadvance(5),s.ɵɵproperty("disabled",r.invalid)("title",s.ɵɵpipeBind1(6,2,"masterList.publish.help.text"))}}function C(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"button",36),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext().$implicit;return s.ɵɵnextContext(2).onExportToFhir(e)})),s.ɵɵelement(1,"localize",37),s.ɵɵelementEnd()}}function E(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"button",36),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext().$implicit;return s.ɵɵnextContext(2).onPublishShapefile(e)})),s.ɵɵelement(1,"localize",38),s.ɵɵelementEnd()}}function x(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"button",30),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext().$implicit;return s.ɵɵnextContext(2).onDownloadShapefile(e)})),s.ɵɵelement(1,"localize",39),s.ɵɵelementEnd()}}function O(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"button",40),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext().$implicit;return s.ɵɵnextContext(2).onDeleteMasterListVersion(e)})),s.ɵɵelement(1,"localize",41),s.ɵɵelementEnd()}}function I(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"tr"),s.ɵɵelementStart(1,"td",28),s.ɵɵelementStart(2,"div",29),s.ɵɵelementStart(3,"button",30),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=t.$implicit;return s.ɵɵnextContext(2).onView(e)})),s.ɵɵelement(4,"localize",31),s.ɵɵelementEnd(),s.ɵɵtemplate(5,C,2,0,"button",32),s.ɵɵtemplate(6,E,2,0,"button",32),s.ɵɵtemplate(7,x,2,0,"button",33),s.ɵɵtemplate(8,O,2,0,"button",34),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(9,"td",25),s.ɵɵelementStart(10,"span",35),s.ɵɵtext(11),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(12,"td",25),s.ɵɵelementStart(13,"span",35),s.ɵɵtext(14),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=s.ɵɵnextContext(2);s.ɵɵadvance(5),s.ɵɵproperty("ngIf",i.list&&i.list.write),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",i.list&&i.list.write),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",r.shapefile),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",i.list&&i.list.write),s.ɵɵadvance(3),s.ɵɵtextInterpolate1(" ",i.formatDate(r.forDate)," "),s.ɵɵadvance(3),s.ɵɵtextInterpolate1(" ",i.formatDate(r.publishDate)," ")}}function w(e,t){if(1&e&&(s.ɵɵelementStart(0,"div",21),s.ɵɵelementStart(1,"table",22),s.ɵɵelementStart(2,"thead"),s.ɵɵelementStart(3,"tr"),s.ɵɵelementStart(4,"th",23),s.ɵɵelement(5,"localize",24),s.ɵɵelementEnd(),s.ɵɵelementStart(6,"th",25),s.ɵɵelement(7,"localize",26),s.ɵɵelementEnd(),s.ɵɵelementStart(8,"th",25),s.ɵɵelement(9,"localize",27),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(10,"tbody"),s.ɵɵtemplate(11,I,15,6,"tr",12),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext();s.ɵɵadvance(11),s.ɵɵproperty("ngForOf",n.list.versions)}}function M(e,t){if(1&e&&(s.ɵɵelementStart(0,"span",45),s.ɵɵtext(1),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext().$implicit;s.ɵɵadvance(1),s.ɵɵtextInterpolate1(" ",n.exception.message," ")}}function T(e,t){if(1&e&&(s.ɵɵelementStart(0,"span",45),s.ɵɵtext(1),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext().$implicit;s.ɵɵadvance(1),s.ɵɵtextInterpolate1(" ",n.message," ")}}function j(e,t){if(1&e&&(s.ɵɵelementStart(0,"tr"),s.ɵɵelementStart(1,"td",10),s.ɵɵelementStart(2,"div",42),s.ɵɵelement(3,"i",43),s.ɵɵelementStart(4,"p",44),s.ɵɵelementStart(5,"span",45),s.ɵɵtext(6),s.ɵɵelementEnd(),s.ɵɵelementStart(7,"span",45),s.ɵɵtext(8),s.ɵɵelementEnd(),s.ɵɵelementStart(9,"span",45),s.ɵɵtext(10),s.ɵɵelementEnd(),s.ɵɵelementStart(11,"span",45),s.ɵɵtext(12),s.ɵɵelementEnd(),s.ɵɵtemplate(13,M,2,1,"span",46),s.ɵɵtemplate(14,T,2,1,"span",46),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd()),2&e){var n=t.$implicit;s.ɵɵadvance(6),s.ɵɵtextInterpolate1(" ",n.createDate," "),s.ɵɵadvance(2),s.ɵɵtextInterpolate1(" ",n.author," "),s.ɵɵadvance(2),s.ɵɵtextInterpolate1(" ",n.type," "),s.ɵɵadvance(2),s.ɵɵtextInterpolate1(" ",n.status," "),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",n.exception),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",n.message)}}function k(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"div",47),s.ɵɵelementStart(1,"pagination-controls",48),s.ɵɵlistener("pageChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext().onPageChange(e)})),s.ɵɵelementEnd(),s.ɵɵelementEnd()}}var z=function(e,t,n){return{itemsPerPage:e,currentPage:t,totalItems:n}},D=function(){function e(e,t,n,r,i,o){this.service=e,this.router=t,this.modalService=n,this.authService=r,this.localizeService=i,this.dateService=o,this.message=null,this.list=null,this.page={pageSize:10,pageNumber:1,count:1,results:[]},this.isAdmin=r.isAdmin()}return e.prototype.ngOnInit=function(){var e=this;this.service.getMasterListHistory(this.oid,"PUBLISHED").then((function(t){e.list=t,e.onPageChange(1)}));var t="wss://"+window.location.hostname+(window.location.port?":"+window.location.port:"")+acp;this.notifier=i.webSocket(t+"/websocket/notify"),this.notifier.subscribe((function(t){"PUBLISH_JOB_CHANGE"===t.type&&e.onPageChange(e.page.pageNumber)}))},e.prototype.ngOnDestroy=function(){this.notifier.complete()},e.prototype.onDeleteMasterListVersion=function(e){var t=this;this.bsModalRef=this.modalService.show(a.ConfirmModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0}),this.bsModalRef.content.message=this.localizeService.decode("confirm.modal.verify.delete")+" ["+e.forDate+"]",this.bsModalRef.content.submitText=this.localizeService.decode("modal.button.delete"),this.bsModalRef.content.onConfirm.subscribe((function(n){t.service.deleteMasterListVersion(e.oid).then((function(e){t.updateList()})).catch((function(e){t.error(e)}))}))},e.prototype.updateList=function(){var e=this;this.service.getMasterListHistory(this.oid,"PUBLISHED").then((function(t){e.list=t})).catch((function(t){e.error(t)}))},e.prototype.onPublish=function(){var e=this;this.message=null,this.service.publishMasterListVersions(this.list.oid).then((function(t){e.onPageChange(e.page.pageNumber)})).catch((function(t){e.error(t)}))},e.prototype.onPageChange=function(e){var t=this;null!=this.list&&(this.message=null,this.service.getPublishMasterListJobs(this.list.oid,this.page.pageSize,e,"createDate",!0).then((function(e){t.page=e})).catch((function(e){t.error(e)})),this.updateList())},e.prototype.onViewMetadata=function(){this.bsModalRef=this.modalService.show(o.PublishModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0}),this.bsModalRef.content.readonly=!0,this.bsModalRef.content.master=this.list,this.bsModalRef.content.isNew=!1},e.prototype.onView=function(e){this.router.navigate(["/registry/master-list/",e.oid,!0])},e.prototype.onPublishShapefile=function(e){var t=this;this.service.publishShapefile(e.oid).then((function(){t.onPageChange(t.page.pageNumber)})).catch((function(e){t.error(e)}))},e.prototype.onExportToFhir=function(e){var t=this;this.bsModalRef=this.modalService.show(l.ExportSystemModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0}),this.bsModalRef.content.onSystemSet.subscribe((function(n){t.service.exportToFhir(e.oid,n).then((function(){t.onPageChange(t.page.pageNumber)})).catch((function(e){t.error(e)}))}))},e.prototype.onDownloadShapefile=function(e){window.location.href=acp+"/master-list/download-shapefile?oid="+e.oid},e.prototype.formatDate=function(e){return this.dateService.formatDateForDisplay(e)},e.prototype.error=function(e){this.message=a.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(s.ɵɵdirectiveInject(c.RegistryService),s.ɵɵdirectiveInject(d.Router),s.ɵɵdirectiveInject(p.BsModalService),s.ɵɵdirectiveInject(m.AuthService),s.ɵɵdirectiveInject(m.LocalizationService),s.ɵɵdirectiveInject(u.DateService))},e.ɵcmp=s.ɵɵdefineComponent({type:e,selectors:[["published-master-list-history"]],inputs:{oid:"oid"},decls:18,vars:12,consts:[["class","alert alert-danger","role","alert",4,"ngIf"],["style","margin-bottom: 10px;","class","row",4,"ngIf"],[1,"row","form-group"],["class","col-md-12 table-responsive",4,"ngIf"],[1,"row"],[1,"col-md-12","order-md-1"],[1,"list-group"],[1,"solid-table-wrapper"],[1,"table","table-striped"],[2,"height","56px"],[2,"vertical-align","middle"],["key","masterlist.jobs"],[4,"ngFor","ngForOf"],["class","solid-table-footer",4,"ngIf"],["role","alert",1,"alert","alert-danger"],[1,"row",2,"margin-bottom","10px"],[1,"col-md-12"],["myForm","ngForm"],[1,"form-group"],["type","submit","role","button",1,"btn","btn-primary",2,"margin-left","15px",3,"disabled","title","click"],["key","masterlist.publish.versions"],[1,"col-md-12","table-responsive"],[1,"list-table","table",2,"border-bottom","solid lightgrey 3px"],[1,"label-column",2,"width","50%"],["key","masterlist.actions"],[1,"label-column",2,"width","15%"],["key","masterlist.forDate"],["key","masterlist.publishDate"],[2,"width","70%"],[1,"button-holder"],["type","submit","role","button",1,"btn","btn-primary",3,"click"],["key","modal.button.view"],["type","submit","class","btn btn-default","role","button",3,"click",4,"ngIf"],["type","submit","class","btn btn-primary","role","button",3,"click",4,"ngIf"],["type","submit","class","btn btn-danger","role","button",3,"click",4,"ngIf"],[1,"date-string-display"],["type","submit","role","button",1,"btn","btn-default",3,"click"],["key","masterlist.export-to-fhir"],["key","masterlist.publish-shapefile"],["key","masterlist.download"],["type","submit","role","button",1,"btn","btn-danger",3,"click"],["key","modal.button.delete"],[1,"wrapper"],["aria-hidden","true",1,"fa","fa-file",2,"position","absolute","font-size","40px"],[2,"padding-left","60px"],[2,"display","block"],["style","display: block;",4,"ngIf"],[1,"solid-table-footer"],[3,"pageChange"]],template:function(e,t){1&e&&(s.ɵɵelementStart(0,"div"),s.ɵɵtemplate(1,b,2,1,"div",0),s.ɵɵtemplate(2,S,8,4,"div",1),s.ɵɵelementStart(3,"div",2),s.ɵɵtemplate(4,w,12,1,"div",3),s.ɵɵelementEnd(),s.ɵɵelementStart(5,"div",4),s.ɵɵelementStart(6,"div",5),s.ɵɵelementStart(7,"ul",6),s.ɵɵelementStart(8,"div",7),s.ɵɵelementStart(9,"table",8),s.ɵɵelementStart(10,"thead"),s.ɵɵelementStart(11,"tr",9),s.ɵɵelementStart(12,"th",10),s.ɵɵelement(13,"localize",11),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(14,"tbody"),s.ɵɵtemplate(15,j,15,6,"tr",12),s.ɵɵpipe(16,"paginate"),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵtemplate(17,k,2,0,"div",13),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd()),2&e&&(s.ɵɵadvance(1),s.ɵɵproperty("ngIf",null!=t.message),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",t.list&&t.list.write),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.list),s.ɵɵadvance(11),s.ɵɵproperty("ngForOf",s.ɵɵpipeBind2(16,5,t.page.results,s.ɵɵpureFunction3(8,z,t.page.pageSize,t.page.pageNumber,t.page.count))),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.page.results.length>0))},directives:[g.NgIf,h.LocalizeComponent,g.NgForOf,f.ɵangular_packages_forms_forms_ba,f.NgControlStatusGroup,f.NgForm,y.PaginationControlsComponent],pipes:[y.PaginatePipe,v.LocalizePipe],encapsulation:2}),e}();t.PublishedMasterListHistoryComponent=D,("undefined"==typeof ngDevMode||ngDevMode)&&s.ɵsetClassMetadata(D,[{type:r.Component,args:[{selector:"published-master-list-history",templateUrl:"./published-master-list-history.component.html",styleUrls:[]}]}],(function(){return[{type:c.RegistryService},{type:d.Router},{type:p.BsModalService},{type:m.AuthService},{type:m.LocalizationService},{type:u.DateService}]}),{oid:[{type:r.Input}]})},597:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MasterListHistoryComponent=void 0;var r=n(0),i=(n(33),n(30),n(111)),o=n(531),a=(n(519),n(112),n(16),n(0)),l=n(519),s=n(33),c=n(30),d=n(16),p=n(112),m=n(1),u=n(22),g=n(68),h=n(260);function f(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",4),a.ɵɵtext(1),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵtextInterpolate(n.message)}}function y(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",5),a.ɵɵelementStart(1,"div",6),a.ɵɵelementStart(2,"form",7,8),a.ɵɵelementStart(4,"div",9),a.ɵɵelementStart(5,"label",10),a.ɵɵelement(6,"localize",11),a.ɵɵelementEnd(),a.ɵɵelementStart(7,"date-field",12),a.ɵɵlistener("valueChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().forDate=e}))("validChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().isForDateValid=e})),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"button",13),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().onPublish()})),a.ɵɵelement(9,"localize",14),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵreference(3),i=a.ɵɵnextContext();a.ɵɵadvance(7),a.ɵɵproperty("value",i.forDate)("valid",i.isForDateValid)("inputName","forDate")("allowFutureDates",!1)("required",!0)("placement","right"),a.ɵɵadvance(1),a.ɵɵproperty("disabled",r.invalid||!i.isForDateValid)}}function v(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"button",29),a.ɵɵlistener("click",(function(){a.ɵɵrestoreView(n);var e=a.ɵɵnextContext().$implicit;return a.ɵɵnextContext(2).onDelete(e)})),a.ɵɵelement(1,"localize",30),a.ɵɵelementEnd()}}function b(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"tr"),a.ɵɵelementStart(1,"td",23),a.ɵɵelementStart(2,"div",24),a.ɵɵelementStart(3,"button",25),a.ɵɵlistener("click",(function(){a.ɵɵrestoreView(n);var e=t.$implicit;return a.ɵɵnextContext(2).onView(e)})),a.ɵɵelement(4,"localize",26),a.ɵɵelementEnd(),a.ɵɵtemplate(5,v,2,0,"button",27),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(6,"td",19),a.ɵɵelementStart(7,"span",28),a.ɵɵtext(8),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(9,"td",19),a.ɵɵelementStart(10,"span",28),a.ɵɵtext(11),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=a.ɵɵnextContext(2);a.ɵɵadvance(5),a.ɵɵproperty("ngIf",i.list.write),a.ɵɵadvance(3),a.ɵɵtextInterpolate1(" ",i.formatDate(r.forDate)," "),a.ɵɵadvance(3),a.ɵɵtextInterpolate1(" ",i.formatDate(r.createDate)," ")}}function S(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",15),a.ɵɵelementStart(1,"table",16),a.ɵɵelementStart(2,"thead"),a.ɵɵelementStart(3,"tr"),a.ɵɵelementStart(4,"th",17),a.ɵɵelement(5,"localize",18),a.ɵɵelementEnd(),a.ɵɵelementStart(6,"th",19),a.ɵɵelement(7,"localize",20),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"th",19),a.ɵɵelement(9,"localize",21),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(10,"tbody"),a.ɵɵtemplate(11,b,12,3,"tr",22),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(11),a.ɵɵproperty("ngForOf",n.list.versions)}}var C=function(){function e(e,t,n,r,i){this.service=e,this.router=t,this.modalService=n,this.localizeService=r,this.dateService=i,this.message=null,this.list=null,this.forDate="",this.isForDateValid=!0}return e.prototype.ngOnInit=function(){var e=this;this.service.getMasterListHistory(this.oid,"EXPLORATORY").then((function(t){e.list=t}))},e.prototype.onPublish=function(){var e=this;this.message=null,this.service.createMasterListVersion(this.list.oid,this.forDate).then((function(t){e.list.versions.push(t)})).catch((function(t){e.error(t)}))},e.prototype.onViewMetadata=function(){this.bsModalRef=this.modalService.show(o.PublishModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0}),this.bsModalRef.content.readonly=!0,this.bsModalRef.content.master=this.list,this.bsModalRef.content.originalPublishStartDate=this.list.publishingStartDate,this.bsModalRef.content.isNew=!1},e.prototype.onView=function(e){this.router.navigate(["/registry/master-list/",e.oid,!1])},e.prototype.onDelete=function(e){var t=this;this.bsModalRef=this.modalService.show(i.ConfirmModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0}),this.bsModalRef.content.message=this.localizeService.decode("confirm.modal.verify.delete")+" ["+e.forDate+"]",this.bsModalRef.content.submitText=this.localizeService.decode("modal.button.delete"),this.bsModalRef.content.onConfirm.subscribe((function(n){t.service.deleteMasterListVersion(e.oid).then((function(n){t.list.versions=t.list.versions.filter((function(t,n,r){return t.oid!==e.oid}))})).catch((function(e){t.error(e)}))}))},e.prototype.formatDate=function(e){return this.dateService.formatDateForDisplay(e)},e.prototype.error=function(e){this.message=i.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(l.RegistryService),a.ɵɵdirectiveInject(s.Router),a.ɵɵdirectiveInject(c.BsModalService),a.ɵɵdirectiveInject(d.LocalizationService),a.ɵɵdirectiveInject(p.DateService))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["master-list-history"]],inputs:{oid:"oid"},decls:5,vars:3,consts:[["class","alert alert-danger","role","alert",4,"ngIf"],["style","margin-bottom: 10px;","class","row",4,"ngIf"],[1,"row","form-group"],["class","col-md-12 table-responsive",4,"ngIf"],["role","alert",1,"alert","alert-danger"],[1,"row",2,"margin-bottom","10px"],[1,"col-md-12"],["autocomplete","off",2,"margin-left","10px"],["myForm","ngForm"],[1,"form-group"],["for","forDate",2,"display","block","margin-bottom","0"],["key","masterlist.publishingFor"],["label","",2,"display","inline-grid",3,"value","valid","inputName","allowFutureDates","required","placement","valueChange","validChange"],["type","submit","role","button",1,"btn","btn-primary",2,"margin-left","15px",3,"disabled","click"],["key","masterlist.publishNewVersion"],[1,"col-md-12","table-responsive"],[1,"list-table","table"],[1,"label-column",2,"width","50%"],["key","masterlist.actions"],[1,"label-column",2,"width","15%"],["key","masterlist.forDate"],["key","masterlist.generatedDate"],[4,"ngFor","ngForOf"],[2,"width","70%"],[1,"button-holder"],["type","submit","role","button",1,"btn","btn-primary",3,"click"],["key","modal.button.view"],["type","submit","class","btn btn-danger","role","button",3,"click",4,"ngIf"],[1,"date-string-display"],["type","submit","role","button",1,"btn","btn-danger",3,"click"],["key","modal.button.delete"]],template:function(e,t){1&e&&(a.ɵɵelementStart(0,"div"),a.ɵɵtemplate(1,f,2,1,"div",0),a.ɵɵtemplate(2,y,10,7,"div",1),a.ɵɵelementStart(3,"div",2),a.ɵɵtemplate(4,S,12,1,"div",3),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e&&(a.ɵɵadvance(1),a.ɵɵproperty("ngIf",null!=t.message),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.list&&t.list.exploratory),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",t.list))},directives:[m.NgIf,u.ɵangular_packages_forms_forms_ba,u.NgControlStatusGroup,u.NgForm,g.LocalizeComponent,h.DateFieldComponent,m.NgForOf],encapsulation:2}),e}();t.MasterListHistoryComponent=C,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(C,[{type:r.Component,args:[{selector:"master-list-history",templateUrl:"./master-list-history.component.html",styleUrls:[]}]}],(function(){return[{type:l.RegistryService},{type:s.Router},{type:c.BsModalService},{type:d.LocalizationService},{type:p.DateService}]}),{oid:[{type:r.Input}]})},598:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MasterListViewComponent=void 0;var r=n(0),i=(n(33),n(30),n(519),n(531)),o=n(0),a=n(519),l=n(30),s=n(33),c=n(122),d=n(86),p=n(1),m=n(68),u=n(596),g=n(597);function h(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",2),o.ɵɵelementStart(1,"div",3),o.ɵɵelementStart(2,"h3"),o.ɵɵtext(3),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext();o.ɵɵadvance(3),o.ɵɵtextInterpolate(n.list.displayLabel.localizedValue)}}function f(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",2),o.ɵɵelementStart(1,"div",3),o.ɵɵelementStart(2,"h5"),o.ɵɵelementStart(3,"b"),o.ɵɵelementStart(4,"a",10),o.ɵɵlistener("click",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext().onViewMetadata(e)})),o.ɵɵelement(5,"localize",11),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()}}var y=function(e){return{active:e}};function v(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"a",6),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext().renderContent("EXP")})),o.ɵɵelement(1,"localize",12),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext();o.ɵɵproperty("ngClass",o.ɵɵpureFunction1(1,y,"EXP"===r.content))}}function b(e,t){if(1&e&&o.ɵɵelement(0,"published-master-list-history",13),2&e){var n=o.ɵɵnextContext();o.ɵɵproperty("oid",n.list.oid)}}function S(e,t){if(1&e&&o.ɵɵelement(0,"master-list-history",13),2&e){var n=o.ɵɵnextContext();o.ɵɵproperty("oid",n.list.oid)}}var C=function(){function e(e,t,n){this.service=e,this.modalService=t,this.route=n,this.content="",this.list=null}return e.prototype.ngOnInit=function(){var e=this,t=this.route.snapshot.paramMap.get("oid");null!=t&&(this.content="PUB"),this.service.getMasterList(t).then((function(t){e.list=t,t.read&&(e.content="EXP")}))},e.prototype.onViewMetadata=function(e){e.preventDefault(),this.bsModalRef=this.modalService.show(i.PublishModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0}),this.bsModalRef.content.readonly=!0,this.bsModalRef.content.master=this.list,this.bsModalRef.content.isNew=!1},e.prototype.renderContent=function(e){this.content=e},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.RegistryService),o.ɵɵdirectiveInject(l.BsModalService),o.ɵɵdirectiveInject(s.ActivatedRoute))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["master-list-view"]],decls:15,vars:8,consts:[[1,"new-admin-design-main"],["id","app-container",1,"container-fluid"],[1,"row"],[1,"col-md-12"],["class","row",4,"ngIf"],["style","margin-right: 10px; font-size: 20px;",3,"ngClass","click",4,"ngIf"],[2,"margin-right","10px","font-size","20px",3,"ngClass","click"],["key","lists.published.link.label"],[1,"inner-col-content-wrapper",2,"padding-top","30px","margin-top","10px"],[3,"oid",4,"ngIf"],["href","#",3,"click"],["key","masterlist.view"],["key","lists.exploratory.link.label"],[3,"oid"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵelement(1,"cgr-header"),o.ɵɵelement(2,"loading-bar"),o.ɵɵelementStart(3,"div",1),o.ɵɵelementStart(4,"div",2),o.ɵɵelementStart(5,"div",3),o.ɵɵtemplate(6,h,4,1,"div",4),o.ɵɵtemplate(7,f,6,0,"div",4),o.ɵɵelementStart(8,"div"),o.ɵɵtemplate(9,v,2,3,"a",5),o.ɵɵelementStart(10,"a",6),o.ɵɵlistener("click",(function(){return t.renderContent("PUB")})),o.ɵɵelement(11,"localize",7),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(12,"div",8),o.ɵɵtemplate(13,b,1,1,"published-master-list-history",9),o.ɵɵtemplate(14,S,1,1,"master-list-history",9),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(6),o.ɵɵproperty("ngIf",t.list),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",t.list),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",t.list&&t.list.read),o.ɵɵadvance(1),o.ɵɵproperty("ngClass",o.ɵɵpureFunction1(6,y,"PUB"===t.content)),o.ɵɵadvance(3),o.ɵɵproperty("ngIf",t.list&&"PUB"===t.content),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",t.list&&"EXP"===t.content))},directives:[c.CgrHeaderComponent,d.LoadingBarComponent,p.NgIf,p.NgClass,m.LocalizeComponent,u.PublishedMasterListHistoryComponent,g.MasterListHistoryComponent],styles:["a.active[_ngcontent-%COMP%] {\n\tborder-bottom: solid 2px #6BA542;\n}"]}),e}();t.MasterListViewComponent=C,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(C,[{type:r.Component,args:[{selector:"master-list-view",templateUrl:"./master-list-view.component.html",styleUrls:["./master-list-view.component.css"]}]}],(function(){return[{type:a.RegistryService},{type:l.BsModalService},{type:s.ActivatedRoute}]}),null)},599:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ScheduledJobsComponent=void 0;var r=n(0),i=(n(33),n(30),n(31)),o=(n(519),n(111)),a=(n(16),n(112),n(261)),l=n(0),s=n(519),c=n(30),d=n(33),p=n(112),m=n(16),u=n(122),g=n(86),h=n(1),f=n(68),y=n(557),v=n(204);function b(e,t){if(1&e&&(l.ɵɵelementStart(0,"div",20),l.ɵɵtext(1),l.ɵɵelementEnd()),2&e){var n=l.ɵɵnextContext();l.ɵɵadvance(1),l.ɵɵtextInterpolate(n.message)}}function S(e,t){1&e&&l.ɵɵelement(0,"localize",36)}function C(e,t){1&e&&l.ɵɵelement(0,"localize",37)}function E(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"button",38),l.ɵɵlistener("click",(function(){l.ɵɵrestoreView(n);var e=l.ɵɵnextContext(2).$implicit;return l.ɵɵnextContext().onCancelScheduledJob(e.historyId,e)})),l.ɵɵelement(1,"localize",39),l.ɵɵelementEnd()}}function x(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"button",40),l.ɵɵlistener("click",(function(){l.ɵɵrestoreView(n);var e=l.ɵɵnextContext(2).$implicit;return l.ɵɵnextContext().onResolveScheduledJob(e.historyId,e)})),l.ɵɵelement(1,"localize",41),l.ɵɵelementEnd()}}function O(e,t){if(1&e&&(l.ɵɵelementStart(0,"td",28),l.ɵɵelementStart(1,"div",29),l.ɵɵelementStart(2,"a",30),l.ɵɵelementStart(3,"button",31),l.ɵɵtemplate(4,S,1,0,"localize",32),l.ɵɵtemplate(5,C,1,0,"localize",33),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵtemplate(6,E,2,0,"button",34),l.ɵɵtemplate(7,x,2,0,"button",35),l.ɵɵelementEnd(),l.ɵɵelementEnd()),2&e){var n=l.ɵɵnextContext().$implicit;l.ɵɵadvance(2),l.ɵɵproperty("routerLink","/registry/job/"+n.historyId),l.ɵɵadvance(2),l.ɵɵproperty("ngIf","IMPORT_RESOLVE"===n.stage||"VALIDATION_RESOLVE"===n.stage),l.ɵɵadvance(1),l.ɵɵproperty("ngIf","IMPORT_RESOLVE"!=n.stage&&"VALIDATION_RESOLVE"!=n.stage),l.ɵɵadvance(1),l.ɵɵproperty("ngIf","VALIDATION_RESOLVE"===n.stage),l.ɵɵadvance(1),l.ɵɵproperty("ngIf","IMPORT_RESOLVE"===n.stage)}}function I(e,t){if(1&e&&(l.ɵɵelementStart(0,"tr"),l.ɵɵelementStart(1,"td",11),l.ɵɵelementStart(2,"div",21),l.ɵɵelement(3,"i",22),l.ɵɵelementStart(4,"p",23),l.ɵɵelementStart(5,"span",24),l.ɵɵtext(6),l.ɵɵelementEnd(),l.ɵɵelementStart(7,"span",24),l.ɵɵelementStart(8,"span",25),l.ɵɵtext(9),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(10,"span",24),l.ɵɵtext(11),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelement(12,"step-indicator",26),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵtemplate(13,O,8,5,"td",27),l.ɵɵelementEnd()),2&e){var n=t.$implicit,r=l.ɵɵnextContext();l.ɵɵadvance(6),l.ɵɵtextInterpolate1(" ",n.fileName," "),l.ɵɵadvance(3),l.ɵɵtextInterpolate1(" ",r.formatDate(n.createDate)," "),l.ɵɵadvance(2),l.ɵɵtextInterpolate1(" ",r.formatJobStatus(n)," "),l.ɵɵadvance(1),l.ɵɵproperty("steps",n.stepConfig),l.ɵɵadvance(1),l.ɵɵproperty("ngIf",r.isAdmin||r.isMaintainer)}}function w(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"div",42),l.ɵɵelementStart(1,"pagination-controls",43),l.ɵɵlistener("pageChange",(function(e){return l.ɵɵrestoreView(n),l.ɵɵnextContext().onActiveJobsPageChange(e)})),l.ɵɵelementEnd(),l.ɵɵelementEnd()}}function M(e,t){1&e&&(l.ɵɵelementStart(0,"th",44),l.ɵɵelement(1,"localize",45),l.ɵɵelementEnd())}function T(e,t){1&e&&(l.ɵɵelementStart(0,"th",44),l.ɵɵelement(1,"localize",46),l.ɵɵelementEnd())}function j(e,t){1&e&&(l.ɵɵelementStart(0,"th",44),l.ɵɵelement(1,"localize",47),l.ɵɵelementEnd())}function k(e,t){1&e&&(l.ɵɵelementStart(0,"th",44),l.ɵɵelement(1,"localize",48),l.ɵɵelementEnd())}function z(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"th",49),l.ɵɵelementStart(1,"button",50),l.ɵɵlistener("click",(function(){return l.ɵɵrestoreView(n),l.ɵɵnextContext().onViewAllCompleteJobs()})),l.ɵɵelement(2,"localize",51),l.ɵɵelementEnd(),l.ɵɵelementEnd()}}function D(e,t){1&e&&l.ɵɵelement(0,"th",52)}function R(e,t){1&e&&l.ɵɵelement(0,"td",59)}function P(e,t){if(1&e&&(l.ɵɵelementStart(0,"tr"),l.ɵɵelementStart(1,"td",53),l.ɵɵelementStart(2,"div",21),l.ɵɵelement(3,"i",54),l.ɵɵelementStart(4,"p",55),l.ɵɵtext(5),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(6,"td",56),l.ɵɵelementStart(7,"p",57),l.ɵɵtext(8),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(9,"td",56),l.ɵɵelementStart(10,"p",57),l.ɵɵtext(11),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(12,"td",56),l.ɵɵelementStart(13,"span",25),l.ɵɵtext(14),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(15,"td",56),l.ɵɵelementStart(16,"span",25),l.ɵɵtext(17),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵtemplate(18,R,1,0,"td",58),l.ɵɵelementEnd()),2&e){var n=t.$implicit,r=l.ɵɵnextContext();l.ɵɵadvance(5),l.ɵɵtextInterpolate(n.fileName),l.ɵɵadvance(3),l.ɵɵtextInterpolate(r.formatJobStatus(n)),l.ɵɵadvance(3),l.ɵɵtextInterpolate(n.importedRecords),l.ɵɵadvance(3),l.ɵɵtextInterpolate1(" ",r.formatDate(n.createDate)," "),l.ɵɵadvance(3),l.ɵɵtextInterpolate1(" ",r.formatDate(n.lastUpdateDate)," "),l.ɵɵadvance(1),l.ɵɵproperty("ngIf",r.isAdmin||r.isMaintainer)}}function A(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"div",42),l.ɵɵelementStart(1,"pagination-controls",60),l.ɵɵlistener("pageChange",(function(e){return l.ɵɵrestoreView(n),l.ɵɵnextContext().onCompleteJobsPageChange(e)})),l.ɵɵelementEnd(),l.ɵɵelementEnd()}}var V=function(e,t,n){return{id:"activeJobs",itemsPerPage:e,currentPage:t,totalItems:n}},N=function(e,t,n){return{id:"completeJobs",itemsPerPage:e,currentPage:t,totalItems:n}},L=function(){function e(e,t,n,r,i,o,a){this.service=e,this.modalService=t,this.router=n,this.dateService=r,this.localizeService=i,this.ioService=a,this.message=null,this.activeJobsPage={count:0,pageNumber:1,pageSize:10,results:[]},this.completeJobsPage={count:0,pageNumber:1,pageSize:10,results:[]},this.activeTimeCounter=0,this.completeTimeCounter=0,this.isViewAllOpen=!1,this.isAdmin=o.isAdmin(),this.isMaintainer=this.isAdmin||o.isMaintainer(),this.isContributor=this.isAdmin||this.isMaintainer||o.isContributer()}return e.prototype.ngOnInit=function(){var e=this;this.onActiveJobsPageChange(1),this.pollingData=i.interval(1e3).subscribe((function(){e.activeTimeCounter++,e.completeTimeCounter++,e.isViewAllOpen?(e.activeTimeCounter>=4&&(e.onActiveJobsPageChange(e.activeJobsPage.pageNumber),e.activeTimeCounter=0),e.completeTimeCounter>=7&&(e.onCompleteJobsPageChange(e.completeJobsPage.pageNumber),e.completeTimeCounter=0)):e.activeTimeCounter>=2&&(e.onActiveJobsPageChange(e.activeJobsPage.pageNumber),e.activeTimeCounter=0)}))},e.prototype.ngOnDestroy=function(){this.pollingData.unsubscribe()},e.prototype.formatJobStatus=function(e){return"FEEDBACK"===e.status?this.localizeService.decode("etl.JobStatus.FEEDBACK"):"RUNNING"===e.status||"NEW"===e.status?this.localizeService.decode("etl.JobStatus.RUNNING"):"QUEUED"===e.status?this.localizeService.decode("etl.JobStatus.QUEUED"):"SUCCESS"===e.status?this.localizeService.decode("etl.JobStatus.SUCCESS"):"CANCELED"===e.status?this.localizeService.decode("etl.JobStatus.CANCELED"):"FAILURE"===e.status?this.localizeService.decode("etl.JobStatus.FAILURE"):this.localizeService.decode("etl.JobStatus.RUNNING")},e.prototype.formatStepConfig=function(e){var t=this;e.results.forEach((function(e){var n={steps:[{label:t.localizeService.decode("scheduler.step.fileImport"),status:"COMPLETE"},{label:t.localizeService.decode("scheduler.step.staging"),status:"NEW"===e.stage?t.getJobStatus(e):t.getCompletedStatus(e.stage,"NEW")},{label:t.localizeService.decode("scheduler.step.validation"),status:"VALIDATE"===e.stage||"VALIDATION_RESOLVE"===e.stage?t.getJobStatus(e):t.getCompletedStatus(e.stage,"VALIDATE")},{label:t.localizeService.decode("scheduler.step.databaseImport"),status:"IMPORT"===e.stage||"IMPORT_RESOLVE"===e.stage||"RESUME_IMPORT"===e.stage?t.getJobStatus(e):""}]};(e=e).stepConfig=n}))},e.prototype.getCompletedStatus=function(e,t){var n=["NEW","VALIDATE","VALIDATION_RESOLVE","IMPORT","IMPORT_RESOLVE","RESUME_IMPORT"],r=n.indexOf(e);return n.indexOf(t)0),l.ɵɵadvance(7),l.ɵɵproperty("ngIf",t.completeJobsPage.results.length>0),l.ɵɵadvance(1),l.ɵɵproperty("ngIf",t.completeJobsPage.results.length>0),l.ɵɵadvance(1),l.ɵɵproperty("ngIf",t.completeJobsPage.results.length>0),l.ɵɵadvance(1),l.ɵɵproperty("ngIf",t.completeJobsPage.results.length>0),l.ɵɵadvance(1),l.ɵɵproperty("ngIf",t.completeJobsPage.results.length<1),l.ɵɵadvance(1),l.ɵɵproperty("ngIf",t.completeJobsPage.results.length>0),l.ɵɵadvance(2),l.ɵɵproperty("ngForOf",l.ɵɵpipeBind2(35,14,t.completeJobsPage.results,l.ɵɵpureFunction3(21,N,t.completeJobsPage.pageSize,t.completeJobsPage.pageNumber,t.completeJobsPage.count))),l.ɵɵadvance(2),l.ɵɵproperty("ngIf",t.completeJobsPage.results.length>0))},directives:[u.CgrHeaderComponent,g.LoadingBarComponent,h.NgIf,f.LocalizeComponent,h.NgForOf,y.StepIndicatorComponent,d.RouterLinkWithHref,d.RouterLinkActive,v.PaginationControlsComponent],pipes:[v.PaginatePipe],styles:[".new-admin-design-main[_ngcontent-%COMP%] {\n \n}\n\n\n.solid-table-wrapper[_ngcontent-%COMP%] {\n background: #F4F4F4;\n border-radius: 15px;\n margin-bottom: 20px;\n}\n.solid-table-footer[_ngcontent-%COMP%] {\n \n border-radius: 0 0 15px 15px;\n padding: 0 0 10px 10px;\n}\n\n\n\n.wrapper[_ngcontent-%COMP%] {\n padding: 10px;\n}"]}),e}();t.ScheduledJobsComponent=L,("undefined"==typeof ngDevMode||ngDevMode)&&l.ɵsetClassMetadata(L,[{type:r.Component,args:[{selector:"scheduled-jobs",templateUrl:"./scheduled-jobs.component.html",styleUrls:["./scheduled-jobs.css"]}]}],(function(){return[{type:s.RegistryService},{type:c.BsModalService},{type:d.Router},{type:p.DateService},{type:m.LocalizationService},{type:m.AuthService},{type:s.IOService}]}),null)},600:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JobComponent=void 0;var r=n(0),i=(n(33),n(30),n(379)),o=n(601),a=n(606),l=(n(519),n(112),n(111)),s=(n(16),n(261)),c=n(0),d=n(519),p=n(30),m=n(33),u=n(112),g=n(16),h=n(122),f=n(86),y=n(1),v=n(68),b=n(204);function S(e,t){if(1&e&&(c.ɵɵelementStart(0,"div",7),c.ɵɵtext(1),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext();c.ɵɵadvance(1),c.ɵɵtextInterpolate(n.message)}}function C(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"div",26),c.ɵɵelementStart(1,"span",27),c.ɵɵelement(2,"localize",28),c.ɵɵelementEnd(),c.ɵɵelementStart(3,"button",29),c.ɵɵlistener("click",(function(){c.ɵɵrestoreView(n);var e=c.ɵɵnextContext(2);return e.onResolveScheduledJob(e.job.historyId)})),c.ɵɵelement(4,"localize",30),c.ɵɵelementEnd(),c.ɵɵelementEnd()}}function E(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"div",26),c.ɵɵelementStart(1,"span",27),c.ɵɵelement(2,"localize",31),c.ɵɵelementEnd(),c.ɵɵelementStart(3,"button",29),c.ɵɵlistener("click",(function(){c.ɵɵrestoreView(n);var e=c.ɵɵnextContext(2);return e.onResolveScheduledJob(e.job.historyId)})),c.ɵɵelement(4,"localize",32),c.ɵɵelementEnd(),c.ɵɵelementEnd()}}function x(e,t){1&e&&c.ɵɵelement(0,"localize",36)}function O(e,t){1&e&&(c.ɵɵelementStart(0,"span"),c.ɵɵelement(1,"localize",32),c.ɵɵelementEnd())}function I(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"div",33),c.ɵɵelementStart(1,"button",29),c.ɵɵlistener("click",(function(){c.ɵɵrestoreView(n);var e=c.ɵɵnextContext(2);return e.onResolveScheduledJob(e.job.historyId)})),c.ɵɵtemplate(2,x,1,0,"localize",34),c.ɵɵtemplate(3,O,2,0,"span",35),c.ɵɵelementEnd(),c.ɵɵelementEnd()}if(2&e){var r=c.ɵɵnextContext(2);c.ɵɵadvance(2),c.ɵɵproperty("ngIf",r.job&&"VALIDATION_RESOLVE"===r.job.stage),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",r.job&&"IMPORT_RESOLVE"===r.job.stage)}}function w(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"div",37),c.ɵɵelementStart(1,"button",29),c.ɵɵlistener("click",(function(){c.ɵɵrestoreView(n);var e=c.ɵɵnextContext(2);return e.onReuploadAndResume(e.job.historyId)})),c.ɵɵelementStart(2,"span"),c.ɵɵelement(3,"localize",38),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd()}}function M(e,t){if(1&e&&(c.ɵɵelementStart(0,"div",8),c.ɵɵelementStart(1,"div",9),c.ɵɵelementStart(2,"div",10),c.ɵɵelement(3,"i",11),c.ɵɵelementStart(4,"p",12),c.ɵɵelementStart(5,"span",13),c.ɵɵelementStart(6,"strong"),c.ɵɵtext(7),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementStart(8,"span",13),c.ɵɵelement(9,"localize",14),c.ɵɵtext(10),c.ɵɵelementEnd(),c.ɵɵelementStart(11,"span",13),c.ɵɵelement(12,"localize",15),c.ɵɵelementStart(13,"span",16),c.ɵɵtext(14),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementStart(15,"div",17),c.ɵɵelementStart(16,"div"),c.ɵɵelementStart(17,"h5"),c.ɵɵelementStart(18,"b"),c.ɵɵtext(19),c.ɵɵelement(20,"localize",18),c.ɵɵtext(21),c.ɵɵelement(22,"localize",19),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementStart(23,"h5"),c.ɵɵtext(24),c.ɵɵelement(25,"localize",20),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementStart(26,"div",21),c.ɵɵtemplate(27,C,5,0,"div",22),c.ɵɵtemplate(28,E,5,0,"div",23),c.ɵɵtemplate(29,I,4,2,"div",24),c.ɵɵtemplate(30,w,4,0,"div",25),c.ɵɵelementEnd(),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext();c.ɵɵadvance(7),c.ɵɵtextInterpolate(n.job.fileName),c.ɵɵadvance(3),c.ɵɵtextInterpolate1(" ",n.job.author," "),c.ɵɵadvance(4),c.ɵɵtextInterpolate1(" ",n.formatDate(n.job.createDate)," "),c.ɵɵadvance(5),c.ɵɵtextInterpolate1("",n.job.importedRecords," "),c.ɵɵadvance(2),c.ɵɵtextInterpolate1(" ",n.job.workTotal," "),c.ɵɵadvance(3),c.ɵɵtextInterpolate1("",n.job.workTotal-n.job.importedRecords," "),c.ɵɵadvance(3),c.ɵɵproperty("ngIf",0==n.page.results.length&&n.job&&"VALIDATION_RESOLVE"===n.job.stage),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",0==n.page.results.length&&n.job&&"IMPORT_RESOLVE"===n.job.stage),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",n.page&&null!=n.page.results&&n.page.results.length>0&&!n.hasRowValidationProblem),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",n.hasRowValidationProblem)}}function T(e,t){1&e&&(c.ɵɵelementStart(0,"thead"),c.ɵɵelementStart(1,"tr"),c.ɵɵelementStart(2,"th",46),c.ɵɵelement(3,"localize",47),c.ɵɵelementEnd(),c.ɵɵelementStart(4,"th",46),c.ɵɵelement(5,"localize",48),c.ɵɵelementEnd(),c.ɵɵelementStart(6,"th",46),c.ɵɵelement(7,"localize",49),c.ɵɵelementEnd(),c.ɵɵelement(8,"th",46),c.ɵɵelementEnd(),c.ɵɵelementEnd())}function j(e,t){1&e&&(c.ɵɵelementStart(0,"thead"),c.ɵɵelementStart(1,"tr"),c.ɵɵelementStart(2,"th",46),c.ɵɵelement(3,"localize",50),c.ɵɵelementEnd(),c.ɵɵelementStart(4,"th",46),c.ɵɵelement(5,"localize",51),c.ɵɵelementEnd(),c.ɵɵelementStart(6,"th",46),c.ɵɵelement(7,"localize",52),c.ɵɵelementEnd(),c.ɵɵelement(8,"th",46),c.ɵɵelementEnd(),c.ɵɵelementEnd())}function k(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"td",56),c.ɵɵelementStart(1,"button",57),c.ɵɵlistener("click",(function(){c.ɵɵrestoreView(n);var e=c.ɵɵnextContext().$implicit;return c.ɵɵnextContext(4).onEdit(e)})),c.ɵɵelement(2,"localize",58),c.ɵɵelementEnd(),c.ɵɵelementEnd()}}function z(e,t){if(1&e&&(c.ɵɵelementStart(0,"tr"),c.ɵɵelementStart(1,"td",54),c.ɵɵelementStart(2,"p"),c.ɵɵtext(3),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementStart(4,"td",54),c.ɵɵelementStart(5,"p"),c.ɵɵtext(6),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementStart(7,"td",54),c.ɵɵelementStart(8,"p"),c.ɵɵtext(9),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵtemplate(10,k,3,0,"td",55),c.ɵɵelementEnd()),2&e){var n=t.$implicit,r=c.ɵɵnextContext(4);c.ɵɵadvance(3),c.ɵɵtextInterpolate(r.getFriendlyProblemType(n.exception.type)),c.ɵɵadvance(3),c.ɵɵtextInterpolate(n.exception.message),c.ɵɵadvance(3),c.ɵɵtextInterpolate(n.rowNum),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",r.isAdmin||r.isMaintainer)}}var D=function(e,t,n){return{itemsPerPage:e,currentPage:t,totalItems:n}};function R(e,t){if(1&e&&(c.ɵɵelementStart(0,"tbody"),c.ɵɵtemplate(1,z,11,4,"tr",53),c.ɵɵpipe(2,"paginate"),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext(3);c.ɵɵadvance(1),c.ɵɵproperty("ngForOf",c.ɵɵpipeBind2(2,1,n.page.results,c.ɵɵpureFunction3(4,D,n.page.pageSize,n.page.pageNumber,n.page.count)))}}function P(e,t){if(1&e&&(c.ɵɵelementStart(0,"p"),c.ɵɵtext(1),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext().$implicit;c.ɵɵadvance(1),c.ɵɵtextInterpolate(n.exception.message)}}function A(e,t){if(1&e&&(c.ɵɵelementStart(0,"p"),c.ɵɵtext(1),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext().$implicit;c.ɵɵadvance(1),c.ɵɵtextInterpolate(n.label)}}function V(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"td",56),c.ɵɵelementStart(1,"button",57),c.ɵɵlistener("click",(function(){c.ɵɵrestoreView(n);var e=c.ɵɵnextContext().$implicit;return c.ɵɵnextContext(4).onEdit(e)})),c.ɵɵelement(2,"localize",58),c.ɵɵelementEnd(),c.ɵɵelementEnd()}}function N(e,t){if(1&e&&(c.ɵɵelementStart(0,"tr"),c.ɵɵelementStart(1,"td",54),c.ɵɵelementStart(2,"p"),c.ɵɵtext(3),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementStart(4,"td",54),c.ɵɵtemplate(5,P,2,1,"p",35),c.ɵɵtemplate(6,A,2,1,"p",35),c.ɵɵelementEnd(),c.ɵɵelementStart(7,"td",54),c.ɵɵelementStart(8,"p"),c.ɵɵtext(9),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵtemplate(10,V,3,0,"td",55),c.ɵɵelementEnd()),2&e){var n=t.$implicit,r=c.ɵɵnextContext(4);c.ɵɵadvance(3),c.ɵɵtextInterpolate(n.type),c.ɵɵadvance(2),c.ɵɵproperty("ngIf","RowValidationProblem"===n.type),c.ɵɵadvance(1),c.ɵɵproperty("ngIf","ParentReferenceProblem"===n.type||"TermReferenceProblem"===n.type),c.ɵɵadvance(3),c.ɵɵtextInterpolate(r.formatAffectedRows(n.affectedRows)),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",r.isAdmin||r.isMaintainer)}}function L(e,t){if(1&e&&(c.ɵɵelementStart(0,"tbody"),c.ɵɵtemplate(1,N,11,5,"tr",53),c.ɵɵpipe(2,"paginate"),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext(3);c.ɵɵadvance(1),c.ɵɵproperty("ngForOf",c.ɵɵpipeBind2(2,1,n.page.results,c.ɵɵpureFunction3(4,D,n.page.pageSize,n.page.pageNumber,n.page.count)))}}function _(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"div",44),c.ɵɵelementStart(1,"pagination-controls",59),c.ɵɵlistener("pageChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext(3).onPageChange(e)})),c.ɵɵelementEnd(),c.ɵɵelementEnd()}}function F(e,t){if(1&e&&(c.ɵɵelementStart(0,"div",41),c.ɵɵelementStart(1,"ul",42),c.ɵɵelementStart(2,"table",43),c.ɵɵtemplate(3,T,9,0,"thead",35),c.ɵɵtemplate(4,j,9,0,"thead",35),c.ɵɵtemplate(5,R,3,8,"tbody",35),c.ɵɵtemplate(6,L,3,8,"tbody",35),c.ɵɵelementEnd(),c.ɵɵelementStart(7,"div",44),c.ɵɵtemplate(8,_,2,0,"div",45),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext(2);c.ɵɵadvance(3),c.ɵɵproperty("ngIf","IMPORT_RESOLVE"===n.job.stage),c.ɵɵadvance(1),c.ɵɵproperty("ngIf","VALIDATION_RESOLVE"===n.job.stage),c.ɵɵadvance(1),c.ɵɵproperty("ngIf","IMPORT_RESOLVE"===n.job.stage),c.ɵɵadvance(1),c.ɵɵproperty("ngIf","VALIDATION_RESOLVE"===n.job.stage),c.ɵɵadvance(2),c.ɵɵproperty("ngIf",n.page.results.length>0)}}function H(e,t){if(1&e&&(c.ɵɵelementStart(0,"div",39),c.ɵɵtemplate(1,F,9,5,"div",40),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext();c.ɵɵadvance(1),c.ɵɵproperty("ngIf",n.job)}}var G=function(){function e(e,t,n,r,i,o,a,l){this.service=e,this.modalService=t,this.router=n,this.route=r,this.dateService=i,this.localizeService=o,this.ioService=l,this.message=null,this.allSelected=!1,this.historyId="",this.page={count:0,pageNumber:1,pageSize:10,results:[]},this.timeCounter=0,this.isPolling=!1,this.hasRowValidationProblem=!1,this.isAdmin=a.isAdmin(),this.isMaintainer=this.isAdmin||a.isMaintainer(),this.isContributor=this.isAdmin||this.isMaintainer||a.isContributer()}return e.prototype.ngOnInit=function(){var e=this;this.historyId=this.route.snapshot.params.oid,this.onPageChange(1);var t="wss://"+window.location.hostname+(window.location.port?":"+window.location.port:"")+acp;this.notifier=i.webSocket(t+"/websocket/notify"),this.notifier.subscribe((function(t){"IMPORT_JOB_CHANGE"===t.type&&e.onPageChange(e.page.pageNumber)}))},e.prototype.ngOnDestroy=function(){},e.prototype.formatAffectedRows=function(e){return e.replace(/,/g,", ")},e.prototype.formatValidationResolve=function(e){return JSON.stringify(e)},e.prototype.onProblemResolved=function(e){for(var t=0;t0))},directives:[h.CgrHeaderComponent,f.LoadingBarComponent,y.NgIf,v.LocalizeComponent,y.NgForOf,b.PaginationControlsComponent],pipes:[b.PaginatePipe],styles:[".new-admin-design-main[_ngcontent-%COMP%] {\n \n}\n\n\n.solid-table-wrapper[_ngcontent-%COMP%] {\n background: #F4F4F4;\n border-radius: 15px;\n margin-bottom: 20px;\n}\n.solid-table-footer[_ngcontent-%COMP%] {\n \n border-radius: 0 0 15px 15px;\n padding: 0 0 10px 10px;\n}\n\n\n\n.wrapper[_ngcontent-%COMP%] {\n padding: 10px;\n}"]}),e}();t.JobComponent=G,("undefined"==typeof ngDevMode||ngDevMode)&&c.ɵsetClassMetadata(G,[{type:r.Component,args:[{selector:"job",templateUrl:"./job.component.html",styleUrls:["./scheduled-jobs.css"]}]}],(function(){return[{type:d.RegistryService},{type:p.BsModalService},{type:m.Router},{type:m.ActivatedRoute},{type:u.DateService},{type:g.LocalizationService},{type:g.AuthService},{type:d.IOService}]}),null)},601:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JobConflictModalComponent=void 0;var r=n(0),i=(n(30),n(31)),o=(n(519),n(111)),a=(n(16),n(0)),l=n(519),s=n(16),c=n(30),d=n(1),p=n(68),m=n(22),u=n(602),g=n(603),h=n(604),f=n(605);function y(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",12),a.ɵɵtext(1),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵtextInterpolate(n.message)}}function v(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div"),a.ɵɵelementStart(1,"import-problem-widget",13),a.ɵɵlistener("onProblemResolved",(function(){a.ɵɵrestoreView(n);var e=a.ɵɵnextContext();return e.onProblemResolvedListener(e.problem)})),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵproperty("problem",r.problem)("job",r.job)}}function b(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"parent-reference-problem-widget",13),a.ɵɵlistener("onProblemResolved",(function(){a.ɵɵrestoreView(n);var e=a.ɵɵnextContext(2);return e.onProblemResolvedListener(e.problem)})),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext(2);a.ɵɵproperty("problem",r.problem)("job",r.job)}}function S(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"term-reference-problem-widget",13),a.ɵɵlistener("onProblemResolved",(function(){a.ɵɵrestoreView(n);var e=a.ɵɵnextContext(2);return e.onProblemResolvedListener(e.problem)})),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext(2);a.ɵɵproperty("problem",r.problem)("job",r.job)}}function C(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"row-validation-problem-widget",13),a.ɵɵlistener("onProblemResolved",(function(){a.ɵɵrestoreView(n);var e=a.ɵɵnextContext(2);return e.onProblemResolvedListener(e.problem)})),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext(2);a.ɵɵproperty("problem",r.problem)("job",r.job)}}function E(e,t){if(1&e&&(a.ɵɵelementStart(0,"div"),a.ɵɵtemplate(1,b,1,2,"parent-reference-problem-widget",14),a.ɵɵtemplate(2,S,1,2,"term-reference-problem-widget",14),a.ɵɵtemplate(3,C,1,2,"row-validation-problem-widget",14),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵproperty("ngIf","ParentReferenceProblem"===n.problem.type),a.ɵɵadvance(1),a.ɵɵproperty("ngIf","TermReferenceProblem"===n.problem.type),a.ɵɵadvance(1),a.ɵɵproperty("ngIf","RowValidationProblem"===n.problem.type)}}var x=function(){function e(e,t,n,r){this.service=e,this.iService=t,this.lService=n,this.bsModalRef=r,this.message=null,this.readonly=!1,this.edit=!1,this.onConflictAction=new i.Subject}return e.prototype.ngOnInit=function(){},e.prototype.onProblemResolvedListener=function(e){this.onConflictAction.next({action:"RESOLVED",data:e})},e.prototype.onCancel=function(){this.bsModalRef.hide()},e.prototype.error=function(e){this.message=o.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(l.RegistryService),a.ɵɵdirectiveInject(l.IOService),a.ɵɵdirectiveInject(s.LocalizationService),a.ɵɵdirectiveInject(c.BsModalRef))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["job-conflict-modal"]],decls:15,vars:3,consts:[[1,"modal-body"],["class","alert alert-danger","role","alert",4,"ngIf"],[1,"text-center"],["key","scheduledjobs.problemdetail.modal.title"],[1,"modal-form"],["form","ngForm"],[4,"ngIf"],[1,"row-holder"],[1,""],[1,"button-holder"],["type","button","role","button",1,"btn","btn-default",3,"click"],["key","io.back"],["role","alert",1,"alert","alert-danger"],[3,"problem","job","onProblemResolved"],[3,"problem","job","onProblemResolved",4,"ngIf"]],template:function(e,t){1&e&&(a.ɵɵelementStart(0,"div",0),a.ɵɵtemplate(1,y,2,1,"div",1),a.ɵɵelementStart(2,"div",2),a.ɵɵelementStart(3,"h2"),a.ɵɵelement(4,"localize",3),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(5,"form",4,5),a.ɵɵelementStart(7,"fieldset"),a.ɵɵtemplate(8,v,2,2,"div",6),a.ɵɵtemplate(9,E,4,3,"div",6),a.ɵɵelementStart(10,"div",7),a.ɵɵelementStart(11,"div",8),a.ɵɵelementStart(12,"div",9),a.ɵɵelementStart(13,"button",10),a.ɵɵlistener("click",(function(){return t.onCancel()})),a.ɵɵelement(14,"localize",11),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e&&(a.ɵɵadvance(1),a.ɵɵproperty("ngIf",null!=t.message),a.ɵɵadvance(7),a.ɵɵproperty("ngIf",t.problem&&t.job&&"IMPORT_RESOLVE"===t.job.stage),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.problem&&t.job&&"VALIDATION_RESOLVE"===t.job.stage))},directives:[d.NgIf,p.LocalizeComponent,m.ɵangular_packages_forms_forms_ba,m.NgControlStatusGroup,m.NgForm,u.ImportProblemWidgetComponent,g.ParentReferenceProblemWidgetComponent,h.TermReferenceProblemWidgetComponent,f.RowValidationProblemWidgetComponent],encapsulation:2}),e}();t.JobConflictModalComponent=x,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(x,[{type:r.Component,args:[{selector:"job-conflict-modal",templateUrl:"./job-conflict-modal.component.html",styleUrls:[]}]}],(function(){return[{type:l.RegistryService},{type:l.IOService},{type:s.LocalizationService},{type:c.BsModalRef}]}),null)},602:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ImportProblemWidgetComponent=void 0;var r=n(0),i=(n(30),n(203),n(556)),o=(n(519),n(112),n(111)),a=(n(16),n(0)),l=n(519),s=n(112),c=n(16),d=n(30),p=n(1),m=n(68);function u(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",13),a.ɵɵtext(1),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵtextInterpolate(n.message)}}function g(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",3),a.ɵɵelementStart(1,"div",14),a.ɵɵelementStart(2,"div",15),a.ɵɵelement(3,"i",16),a.ɵɵelementStart(4,"p",17),a.ɵɵelementStart(5,"span",18),a.ɵɵelementStart(6,"strong"),a.ɵɵtext(7),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"span",18),a.ɵɵelement(9,"localize",19),a.ɵɵtext(10),a.ɵɵelementEnd(),a.ɵɵelementStart(11,"span",18),a.ɵɵelement(12,"localize",20),a.ɵɵtext(13,": "),a.ɵɵelementStart(14,"span",21),a.ɵɵtext(15),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelement(16,"div",14),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(7),a.ɵɵtextInterpolate(n.job.fileName),a.ɵɵadvance(3),a.ɵɵtextInterpolate1(": ",n.job.author," "),a.ɵɵadvance(5),a.ɵɵtextInterpolate1(" ",n.formatDate(n.job.createDate)," ")}}function h(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",22),a.ɵɵelementStart(1,"button",23),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().onEditGeoObject()})),a.ɵɵelement(2,"localize",24),a.ɵɵelementEnd(),a.ɵɵelementEnd()}}var f=function(){function e(e,t,n,i,o,a){this.service=e,this.iService=t,this.dateService=n,this.lService=i,this.bsModalRef=o,this.modalService=a,this.message=null,this.onProblemResolved=new r.EventEmitter,this.readonly=!1,this.edit=!1}return e.prototype.ngOnInit=function(){},e.prototype.onEditGeoObject=function(){var e=this,t=this.modalService.show(i.GeoObjectEditorComponent,{backdrop:!0,ignoreBackdropClick:!0});t.content.configureFromImportError(this.problem,this.job.historyId,this.job.configuration.startDate,!0),t.content.setMasterListId(null),t.content.setOnSuccessCallback((function(){e.onProblemResolved.emit(e.problem),e.bsModalRef.hide()}))},e.prototype.getFriendlyProblemType=function(e){return"net.geoprism.registry.io.ParentCodeException"===e?this.lService.decode("scheduledjobs.job.problem.type.parent.lookup"):"net.geoprism.registry.io.PostalCodeLocationException"===e?this.lService.decode("scheduledjobs.job.problem.type.postal.code.lookup"):"net.geoprism.registry.io.AmbiguousParentException"===e?this.lService.decode("scheduledjobs.job.problem.type.multi.parent.lookup"):"net.geoprism.registry.io.InvalidGeometryException"===e?this.lService.decode("scheduledjobs.job.problem.type.invalid.geom.lookup"):"net.geoprism.registry.DataNotFoundException"===e?this.lService.decode("scheduledjobs.job.problem.type.datanotfound"):"net.geoprism.registry.roles.CreateGeoObjectPermissionException"===e||"net.geoprism.registry.roles.WriteGeoObjectPermissionException"===e||"net.geoprism.registry.roles.DeleteGeoObjectPermissionException"===e||"net.geoprism.registry.roles.ReadGeoObjectPermissionException"===e?this.lService.decode("scheduledjobs.job.problem.type.permission"):"com.runwaysdk.dataaccess.DuplicateDataException"===e||"net.geoprism.registry.DuplicateGeoObjectException"===e||"net.geoprism.registry.DuplicateGeoObjectCodeException"===e?this.lService.decode("scheduledjobs.job.problem.type.duplicate.data.lookup"):e},e.prototype.onSubmit=function(){},e.prototype.onCancel=function(){this.bsModalRef.hide()},e.prototype.formatDate=function(e){return this.dateService.formatDateForDisplay(e)},e.prototype.error=function(e){this.message=o.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(l.RegistryService),a.ɵɵdirectiveInject(l.IOService),a.ɵɵdirectiveInject(s.DateService),a.ɵɵdirectiveInject(c.LocalizationService),a.ɵɵdirectiveInject(d.BsModalRef),a.ɵɵdirectiveInject(d.BsModalService))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["import-problem-widget"]],inputs:{problem:"problem",job:"job"},outputs:{onProblemResolved:"onProblemResolved"},decls:20,vars:5,consts:[[1,""],["class","alert alert-danger","role","alert",4,"ngIf"],["class","row","style","background: #F4F4F4;\n border-radius: 10px;\n margin-bottom: 20px;\n margin-top: 20px;\n padding: 10px;",4,"ngIf"],[1,"row",2,"background","#F4F4F4","border-radius","10px","margin-bottom","20px","margin-top","20px","padding","10px"],[1,"col-md-12"],[1,"row","equal",2,"display","flex","display","-webkit-flex","flex-wrap","wrap"],[1,"col-md-6",2,"padding-right","5px"],[2,"background","white","border-radius","10px","padding","10px","height","100%"],["key","etl.problem.header.problem"],[2,"font-style","italic"],["key","etl.problem.header.message"],[1,"col-md-6",2,"padding-left","5px"],["style","background: white;border-radius: 10px;padding: 10px;height: 100%;text-align: center;",4,"ngIf"],["role","alert",1,"alert","alert-danger"],[1,"col-md-6"],[1,"wrapper"],["aria-hidden","true",1,"fa","fa-file",2,"position","absolute","font-size","55px"],[2,"padding-left","60px"],[2,"display","block"],["key","importproblem.uploaded.by.label"],["key","importproblem.started.date.label"],[1,"date-string-display",2,"margin-left","5px"],[2,"background","white","border-radius","10px","padding","10px","height","100%","text-align","center"],["type","submit","role","button",1,"btn","btn-primary",2,"width","90%",3,"click"],["key","scheduledjobs.editGeoObject"]],template:function(e,t){1&e&&(a.ɵɵelementStart(0,"div",0),a.ɵɵtemplate(1,u,2,1,"div",1),a.ɵɵtemplate(2,g,17,3,"div",2),a.ɵɵelementStart(3,"div",3),a.ɵɵelementStart(4,"div",4),a.ɵɵelementStart(5,"div",5),a.ɵɵelementStart(6,"div",6),a.ɵɵelementStart(7,"div",7),a.ɵɵelementStart(8,"h4"),a.ɵɵelementStart(9,"strong"),a.ɵɵelement(10,"localize",8),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(11,"p",9),a.ɵɵtext(12),a.ɵɵelementEnd(),a.ɵɵelementStart(13,"h4"),a.ɵɵelementStart(14,"strong"),a.ɵɵelement(15,"localize",10),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(16,"p",9),a.ɵɵtext(17),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(18,"div",11),a.ɵɵtemplate(19,h,3,0,"div",12),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e&&(a.ɵɵadvance(1),a.ɵɵproperty("ngIf",null!=t.message),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.problem&&t.job),a.ɵɵadvance(10),a.ɵɵtextInterpolate(t.getFriendlyProblemType(t.problem.exception.type)),a.ɵɵadvance(5),a.ɵɵtextInterpolate(t.problem.exception.message),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",null!=t.problem.object&&null!=t.problem.object.geoObject))},directives:[p.NgIf,m.LocalizeComponent],encapsulation:2}),e}();t.ImportProblemWidgetComponent=f,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(f,[{type:r.Component,args:[{selector:"import-problem-widget",templateUrl:"./import-problem-widget.component.html",styleUrls:[]}]}],(function(){return[{type:l.RegistryService},{type:l.IOService},{type:s.DateService},{type:c.LocalizationService},{type:d.BsModalRef},{type:d.BsModalService}]}),{problem:[{type:r.Input}],job:[{type:r.Input}],onProblemResolved:[{type:r.Output}]})},603:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ParentReferenceProblemWidgetComponent=void 0;var r=n(0),i=(n(30),n(31)),o=(n(203),n(519),n(112),n(111)),a=(n(16),n(0)),l=n(519),s=n(112),c=n(16),d=n(30),p=n(1),m=n(68),u=n(22),g=n(154);function h(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",30),a.ɵɵtext(1),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵtextInterpolate(n.message)}}function f(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",3),a.ɵɵelementStart(1,"div",31),a.ɵɵelementStart(2,"div",32),a.ɵɵelement(3,"i",33),a.ɵɵelementStart(4,"p",34),a.ɵɵelementStart(5,"span",35),a.ɵɵelementStart(6,"strong"),a.ɵɵtext(7),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"span",35),a.ɵɵelement(9,"localize",36),a.ɵɵtext(10),a.ɵɵelementEnd(),a.ɵɵelementStart(11,"span",35),a.ɵɵelement(12,"localize",37),a.ɵɵtext(13,": "),a.ɵɵelementStart(14,"span",38),a.ɵɵtext(15),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelement(16,"div",31),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(7),a.ɵɵtextInterpolate(n.job.fileName),a.ɵɵadvance(3),a.ɵɵtextInterpolate1(": ",n.job.author," "),a.ɵɵadvance(5),a.ɵɵtextInterpolate1(" ",n.formatDate(n.job.createDate)," ")}}function y(e,t){if(1&e&&(a.ɵɵelementStart(0,"ol"),a.ɵɵelementStart(1,"li"),a.ɵɵtext(2),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=t.$implicit;a.ɵɵadvance(2),a.ɵɵtextInterpolate2("",n.label," (",n.type,")")}}function v(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",39),a.ɵɵtemplate(1,y,3,2,"ol",40),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵproperty("ngForOf",n.problem.context)}}var b=function(){function e(e,t,n,i,o,a){this.service=e,this.iService=t,this.dateService=n,this.lService=i,this.bsModalRef=o,this.modalService=a,this.message=null,this.onProblemResolved=new r.EventEmitter,this.readonly=!1,this.edit=!1}return e.prototype.ngOnInit=function(){this.problem.parent=null,this.searchLabel=""},e.prototype.getString=function(e){return JSON.stringify(e)},e.prototype.getValidationProblemDisplayLabel=function(e){return e.type},e.prototype.getTypeAheadObservable=function(e,t){var n=this,r=this.job.configuration.hierarchy;return i.Observable.create((function(t){n.service.getGeoObjectSuggestions(n.searchLabel,e,null,null,r,n.job.startDate,n.job.endDate).then((function(e){t.next(e)}))}))},e.prototype.typeaheadOnSelect=function(e,t){var n=this;this.service.getParentGeoObjects(e.item.uid,t.typeCode,[],!1,this.job.startDate).then((function(e){t.parent=e.geoObject,n.searchLabel=e.geoObject.properties.displayLabel.localizedValue})).catch((function(e){n.error(e)}))},e.prototype.onIgnore=function(){var e=this,t={resolution:"IGNORE",validationProblemId:this.problem.id};this.service.submitValidationResolve(t).then((function(t){e.onProblemResolved.emit(e.problem),e.bsModalRef.hide()})).catch((function(t){e.error(t)}))},e.prototype.onCreateSynonym=function(){var e=this,t={validationProblemId:this.problem.id,resolution:"SYNONYM",code:this.problem.parent.properties.code,typeCode:this.problem.parent.properties.type,label:this.problem.label};this.service.submitValidationResolve(t).then((function(t){e.onProblemResolved.emit(e.problem),e.bsModalRef.hide()})).catch((function(t){e.error(t)}))},e.prototype.onCancel=function(){this.bsModalRef.hide()},e.prototype.formatDate=function(e){return this.dateService.formatDateForDisplay(e)},e.prototype.error=function(e){this.message=o.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(l.RegistryService),a.ɵɵdirectiveInject(l.IOService),a.ɵɵdirectiveInject(s.DateService),a.ɵɵdirectiveInject(c.LocalizationService),a.ɵɵdirectiveInject(d.BsModalRef),a.ɵɵdirectiveInject(d.BsModalService))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["parent-reference-problem-widget"]],inputs:{problem:"problem",job:"job"},outputs:{onProblemResolved:"onProblemResolved"},decls:55,vars:12,consts:[[1,"container"],["class","alert alert-danger","role","alert",4,"ngIf"],["class","row","style","background: #F4F4F4;\n border-radius: 10px;\n margin-bottom: 20px;\n margin-top: 20px;\n padding: 10px;",4,"ngIf"],[1,"row",2,"background","#F4F4F4","border-radius","10px","margin-bottom","20px","margin-top","20px","padding","10px"],[1,"col-md-12"],[1,"row"],[1,"col-md-6",2,"background","white","border-radius","10px","width","41%","margin-right","7px"],["key","etl.problem.header.problem"],[2,"font-style","italic"],["key","etl.problem.header.message"],["key","etl.parentProblem.message"],["key","etl.problem.header.toResolve"],["key","etl.parentProblem.toResolve"],[1,"com-md-6",2,"background","white","border-radius","10px","width","41%","float","left","height","250px"],[1,"row-holder"],[1,"label-holder",2,"width","100px"],[1,"text"],["key","etl.problem.parent.context"],[1,"holder",2,"width","300px"],["style","margin-top:10px;",4,"ngIf"],["key","etl.problem.parent.label"],[1,"text",2,"margin-top","10px"],[1,"row-holder",2,"overflow","visible"],["key","etl.problem.parent.synonym"],["type","text","autocomplete","off","name","parentSearch","typeaheadOptionField","name",1,"form-control",2,"width","150px",3,"ngModel","typeaheadAsync","typeahead","typeaheadOptionsLimit","typeaheadMinLength","typeaheadWaitMs","ngModelChange","typeaheadOnSelect"],["key","etl.problem.parent.actions"],["type","submit","role","button",1,"btn","btn-primary",3,"disabled","click"],["key","etl.problem.reference.createSynonym"],["type","submit","role","button",1,"btn","btn-primary",3,"click"],["key","etl.problem.reference.ignore"],["role","alert",1,"alert","alert-danger"],[1,"col-md-6"],[1,"wrapper"],["aria-hidden","true",1,"fa","fa-file",2,"position","absolute","font-size","55px"],[2,"padding-left","60px"],[2,"display","block"],["key","importproblem.uploaded.by.label"],["key","importproblem.started.date.label"],[1,"date-string-display"],[2,"margin-top","10px"],[4,"ngFor","ngForOf"]],template:function(e,t){1&e&&(a.ɵɵelementStart(0,"div",0),a.ɵɵtemplate(1,h,2,1,"div",1),a.ɵɵtemplate(2,f,17,3,"div",2),a.ɵɵelementStart(3,"div",3),a.ɵɵelementStart(4,"div",4),a.ɵɵelementStart(5,"div",5),a.ɵɵelementStart(6,"div",6),a.ɵɵelementStart(7,"h4"),a.ɵɵelementStart(8,"strong"),a.ɵɵelement(9,"localize",7),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(10,"p",8),a.ɵɵtext(11),a.ɵɵelementEnd(),a.ɵɵelementStart(12,"h4"),a.ɵɵelementStart(13,"strong"),a.ɵɵelement(14,"localize",9),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(15,"p",8),a.ɵɵelement(16,"localize",10),a.ɵɵelementEnd(),a.ɵɵelementStart(17,"h4"),a.ɵɵelementStart(18,"strong"),a.ɵɵelement(19,"localize",11),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(20,"p"),a.ɵɵelement(21,"localize",12),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(22,"div",13),a.ɵɵelementStart(23,"div",14),a.ɵɵelementStart(24,"div",15),a.ɵɵelementStart(25,"label"),a.ɵɵelementStart(26,"span",16),a.ɵɵelement(27,"localize",17),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(28,"div",18),a.ɵɵtemplate(29,v,2,1,"div",19),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(30,"div",14),a.ɵɵelementStart(31,"div",15),a.ɵɵelementStart(32,"label"),a.ɵɵelementStart(33,"span",16),a.ɵɵelement(34,"localize",20),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(35,"div",18),a.ɵɵelementStart(36,"span",21),a.ɵɵtext(37),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(38,"div",22),a.ɵɵelementStart(39,"div",15),a.ɵɵelementStart(40,"label"),a.ɵɵelementStart(41,"span",16),a.ɵɵelement(42,"localize",23),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(43,"div",18),a.ɵɵelementStart(44,"input",24),a.ɵɵlistener("ngModelChange",(function(e){return t.searchLabel=e}))("typeaheadOnSelect",(function(e){return t.typeaheadOnSelect(e,t.problem)})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(45,"div",14),a.ɵɵelementStart(46,"div",15),a.ɵɵelementStart(47,"label"),a.ɵɵelementStart(48,"span",16),a.ɵɵelement(49,"localize",25),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(50,"div",18),a.ɵɵelementStart(51,"button",26),a.ɵɵlistener("click",(function(){return t.onCreateSynonym()})),a.ɵɵelement(52,"localize",27),a.ɵɵelementEnd(),a.ɵɵelementStart(53,"button",28),a.ɵɵlistener("click",(function(){return t.onIgnore()})),a.ɵɵelement(54,"localize",29),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e&&(a.ɵɵadvance(1),a.ɵɵproperty("ngIf",null!=t.message),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.problem&&t.job),a.ɵɵadvance(9),a.ɵɵtextInterpolate(t.getValidationProblemDisplayLabel(t.problem)),a.ɵɵadvance(18),a.ɵɵproperty("ngIf",t.problem.context.length>0),a.ɵɵadvance(8),a.ɵɵtextInterpolate(t.problem.label),a.ɵɵadvance(7),a.ɵɵproperty("ngModel",t.searchLabel)("typeaheadAsync",!0)("typeahead",t.getTypeAheadObservable(t.problem.typeCode,t.problem))("typeaheadOptionsLimit",7)("typeaheadMinLength",0)("typeaheadWaitMs",300),a.ɵɵadvance(7),a.ɵɵproperty("disabled",null==t.problem.parent))},directives:[p.NgIf,m.LocalizeComponent,u.DefaultValueAccessor,u.NgControlStatus,u.NgModel,g.TypeaheadDirective,p.NgForOf],encapsulation:2}),e}();t.ParentReferenceProblemWidgetComponent=b,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(b,[{type:r.Component,args:[{selector:"parent-reference-problem-widget",templateUrl:"./parent-reference-problem-widget.component.html",styleUrls:[]}]}],(function(){return[{type:l.RegistryService},{type:l.IOService},{type:s.DateService},{type:c.LocalizationService},{type:d.BsModalRef},{type:d.BsModalService}]}),{problem:[{type:r.Input}],job:[{type:r.Input}],onProblemResolved:[{type:r.Output}]})},604:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TermReferenceProblemWidgetComponent=void 0;var r=n(0),i=(n(30),n(31)),o=(n(203),n(519),n(112),n(16),n(111)),a=n(0),l=n(519),s=n(112),c=n(16),d=n(30),p=n(1),m=n(68),u=n(22),g=n(154);function h(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",6),a.ɵɵtext(1),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵtextInterpolate(n.message)}}function f(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",3),a.ɵɵelementStart(1,"div",7),a.ɵɵelementStart(2,"div",8),a.ɵɵelement(3,"i",9),a.ɵɵelementStart(4,"p",10),a.ɵɵelementStart(5,"span",11),a.ɵɵelementStart(6,"strong"),a.ɵɵtext(7),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"span",11),a.ɵɵelement(9,"localize",12),a.ɵɵtext(10),a.ɵɵelementEnd(),a.ɵɵelementStart(11,"span",11),a.ɵɵelement(12,"localize",13),a.ɵɵtext(13,": "),a.ɵɵelementStart(14,"span",14),a.ɵɵtext(15),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelement(16,"div",7),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(7),a.ɵɵtextInterpolate(n.job.fileName),a.ɵɵadvance(3),a.ɵɵtextInterpolate1(": ",n.job.author," "),a.ɵɵadvance(5),a.ɵɵtextInterpolate1(" ",n.formatDate(n.job.createDate)," ")}}function y(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",15),a.ɵɵelementStart(1,"div",16),a.ɵɵelementStart(2,"h4"),a.ɵɵelementStart(3,"strong"),a.ɵɵelement(4,"localize",17),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(5,"p",18),a.ɵɵtext(6),a.ɵɵelementEnd(),a.ɵɵelementStart(7,"h4"),a.ɵɵelementStart(8,"strong"),a.ɵɵelement(9,"localize",19),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(10,"p",18),a.ɵɵelement(11,"localize",20),a.ɵɵelementEnd(),a.ɵɵelementStart(12,"h4"),a.ɵɵelementStart(13,"strong"),a.ɵɵelement(14,"localize",21),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(15,"p"),a.ɵɵelement(16,"localize",22),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(17,"div",23),a.ɵɵelementStart(18,"div",24),a.ɵɵelementStart(19,"div",25),a.ɵɵelementStart(20,"label"),a.ɵɵelementStart(21,"span",26),a.ɵɵelement(22,"localize",27),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(23,"div",28),a.ɵɵelementStart(24,"span",29),a.ɵɵtext(25),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(26,"div",24),a.ɵɵelementStart(27,"div",25),a.ɵɵelementStart(28,"label"),a.ɵɵelementStart(29,"span",26),a.ɵɵelement(30,"localize",30),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(31,"div",28),a.ɵɵelementStart(32,"span",29),a.ɵɵtext(33),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(34,"div",31),a.ɵɵelementStart(35,"div",25),a.ɵɵelementStart(36,"label"),a.ɵɵelementStart(37,"span",26),a.ɵɵelement(38,"localize",32),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(39,"div",28),a.ɵɵelementStart(40,"input",33),a.ɵɵlistener("ngModelChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().searchLabel=e}))("typeaheadOnSelect",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().typeaheadOnSelect(e)})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(41,"div",24),a.ɵɵelementStart(42,"div",25),a.ɵɵelementStart(43,"label"),a.ɵɵelementStart(44,"span",26),a.ɵɵelement(45,"localize",34),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(46,"div",28),a.ɵɵelementStart(47,"button",35),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().onCreateSynonym()})),a.ɵɵelement(48,"localize",36),a.ɵɵelementEnd(),a.ɵɵelementStart(49,"button",37),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().onIgnore()})),a.ɵɵelement(50,"localize",38),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext();a.ɵɵadvance(6),a.ɵɵtextInterpolate(r.getValidationProblemDisplayLabel(r.problem)),a.ɵɵadvance(19),a.ɵɵtextInterpolate(r.problem.attributeLabel),a.ɵɵadvance(8),a.ɵɵtextInterpolate(r.problem.label),a.ɵɵadvance(7),a.ɵɵproperty("ngModel",r.searchLabel)("typeaheadAsync",!0)("typeahead",r.getTypeAheadObservable(r.problem))("typeaheadOptionsLimit",7)("typeaheadMinLength",0)("typeaheadWaitMs",300),a.ɵɵadvance(7),a.ɵɵproperty("disabled",null==r.termId)}}var v=function(){function e(e,t,n,i,o,a){this.service=e,this.iService=t,this.dateService=n,this.lService=i,this.bsModalRef=o,this.modalService=a,this.message=null,this.onProblemResolved=new r.EventEmitter,this.termId=null,this.readonly=!1,this.edit=!1}return e.prototype.ngOnInit=function(){this.problem.parent=null,this.searchLabel=""},e.prototype.getValidationProblemDisplayLabel=function(e){return e.type},e.prototype.getTypeAheadObservable=function(e){var t=this;return i.Observable.create((function(n){t.iService.getTermSuggestions(e.mdAttributeId,t.searchLabel,"20").then((function(e){n.next(e)}))}))},e.prototype.typeaheadOnSelect=function(e){this.termId=e.item.value},e.prototype.onIgnore=function(){var e=this,t={resolution:"IGNORE",validationProblemId:this.problem.id};this.service.submitValidationResolve(t).then((function(t){e.onProblemResolved.emit(e.problem),e.bsModalRef.hide()})).catch((function(t){e.error(t)}))},e.prototype.onCreateSynonym=function(){var e=this,t={validationProblemId:this.problem.id,resolution:"SYNONYM",classifierId:this.termId,label:this.problem.label};this.service.submitValidationResolve(t).then((function(t){e.onProblemResolved.emit(e.problem),e.bsModalRef.hide()})).catch((function(t){e.error(t)}))},e.prototype.onCancel=function(){this.bsModalRef.hide()},e.prototype.formatDate=function(e){return this.dateService.formatDateForDisplay(e)},e.prototype.error=function(e){this.message=o.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(l.RegistryService),a.ɵɵdirectiveInject(l.IOService),a.ɵɵdirectiveInject(s.DateService),a.ɵɵdirectiveInject(c.LocalizationService),a.ɵɵdirectiveInject(d.BsModalRef),a.ɵɵdirectiveInject(d.BsModalService))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["term-reference-problem-widget"]],inputs:{problem:"problem",job:"job"},outputs:{onProblemResolved:"onProblemResolved"},decls:6,vars:3,consts:[[1,"container"],["class","alert alert-danger","role","alert",4,"ngIf"],["class","row","style","background: #F4F4F4;\n border-radius: 10px;\n margin-bottom: 20px;\n margin-top: 20px;\n padding: 10px;",4,"ngIf"],[1,"row",2,"background","#F4F4F4","border-radius","10px","margin-bottom","20px","margin-top","20px","padding","10px"],[1,"col-md-12"],["class","row",4,"ngIf"],["role","alert",1,"alert","alert-danger"],[1,"col-md-6"],[1,"wrapper"],["aria-hidden","true",1,"fa","fa-file",2,"position","absolute","font-size","55px"],[2,"padding-left","60px"],[2,"display","block"],["key","importproblem.uploaded.by.label"],["key","importproblem.started.date.label"],[1,"date-string-display",2,"margin-left","5px"],[1,"row"],[1,"col-md-6",2,"background","white","border-radius","10px","width","41%","margin-right","7px"],["key","etl.problem.header.problem"],[2,"font-style","italic"],["key","etl.problem.header.message"],["key","etl.problem.termReference.message"],["key","etl.problem.header.toResolve"],["key","etl.problem.termReference.toResolve"],[1,"com-md-6",2,"background","white","border-radius","10px","width","41%","float","left","height","250px"],[1,"row-holder"],[1,"label-holder",2,"width","100px"],[1,"text"],["key","etl.problem.termReference.attributeLabel"],[1,"holder",2,"width","300px"],[1,"text",2,"margin-top","10px"],["key","etl.problem.termReference.label"],[1,"row-holder",2,"overflow","visible"],["key","etl.problem.termReference.synonym"],["type","text","autocomplete","off","name","termSearch","typeaheadOptionField","label",1,"form-control",2,"width","150px",3,"ngModel","typeaheadAsync","typeahead","typeaheadOptionsLimit","typeaheadMinLength","typeaheadWaitMs","ngModelChange","typeaheadOnSelect"],["key","etl.problem.termReference.actions"],["type","submit","role","button",1,"btn","btn-primary",3,"disabled","click"],["key","etl.problem.reference.createSynonym"],["type","submit","role","button",1,"btn","btn-primary",3,"click"],["key","etl.problem.reference.ignore"]],template:function(e,t){1&e&&(a.ɵɵelementStart(0,"div",0),a.ɵɵtemplate(1,h,2,1,"div",1),a.ɵɵtemplate(2,f,17,3,"div",2),a.ɵɵelementStart(3,"div",3),a.ɵɵelementStart(4,"div",4),a.ɵɵtemplate(5,y,51,10,"div",5),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e&&(a.ɵɵadvance(1),a.ɵɵproperty("ngIf",null!=t.message),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.problem&&t.job),a.ɵɵadvance(3),a.ɵɵproperty("ngIf",t.problem))},directives:[p.NgIf,m.LocalizeComponent,u.DefaultValueAccessor,u.NgControlStatus,u.NgModel,g.TypeaheadDirective],encapsulation:2}),e}();t.TermReferenceProblemWidgetComponent=v,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(v,[{type:r.Component,args:[{selector:"term-reference-problem-widget",templateUrl:"./term-reference-problem-widget.component.html",styleUrls:[]}]}],(function(){return[{type:l.RegistryService},{type:l.IOService},{type:s.DateService},{type:c.LocalizationService},{type:d.BsModalRef},{type:d.BsModalService}]}),{problem:[{type:r.Input}],job:[{type:r.Input}],onProblemResolved:[{type:r.Output}]})},605:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RowValidationProblemWidgetComponent=void 0;var r=n(0),i=(n(30),n(31)),o=(n(203),n(519),n(112),n(111)),a=(n(16),n(0)),l=n(519),s=n(112),c=n(16),d=n(30),p=n(1),m=n(68);function u(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",20),a.ɵɵtext(1),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵtextInterpolate(n.message)}}function g(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",3),a.ɵɵelementStart(1,"div",21),a.ɵɵelementStart(2,"div",22),a.ɵɵelement(3,"i",23),a.ɵɵelementStart(4,"p",24),a.ɵɵelementStart(5,"span",25),a.ɵɵelementStart(6,"strong"),a.ɵɵtext(7),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"span",25),a.ɵɵelement(9,"localize",26),a.ɵɵtext(10),a.ɵɵelementEnd(),a.ɵɵelementStart(11,"span",25),a.ɵɵelement(12,"localize",27),a.ɵɵtext(13,": "),a.ɵɵelementStart(14,"span",28),a.ɵɵtext(15),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelement(16,"div",21),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(7),a.ɵɵtextInterpolate(n.job.fileName),a.ɵɵadvance(3),a.ɵɵtextInterpolate1(": ",n.job.author," "),a.ɵɵadvance(5),a.ɵɵtextInterpolate1(" ",n.formatDate(n.job.createDate)," ")}}var h=function(){function e(e,t,n,i,o){this.service=e,this.iService=t,this.dateService=n,this.lService=i,this.bsModalRef=o,this.message=null,this.onProblemResolved=new r.EventEmitter,this.readonly=!1,this.edit=!1}return e.prototype.ngOnInit=function(){this.problem.parent=null,this.searchLabel=""},e.prototype.getString=function(e){return JSON.stringify(e)},e.prototype.getValidationProblemDisplayLabel=function(e){return e.type},e.prototype.getTypeAheadObservable=function(e,t){var n=this,r=this.job.configuration.hierarchy;return i.Observable.create((function(t){n.service.getGeoObjectSuggestions(n.searchLabel,e,null,null,r,n.job.startDate,n.job.endDate).then((function(e){t.next(e)}))}))},e.prototype.typeaheadOnSelect=function(e,t){var n=this;this.service.getParentGeoObjects(e.item.uid,t.typeCode,[],!1,this.job.startDate).then((function(e){t.parent=e.geoObject,n.searchLabel=e.geoObject.properties.displayLabel.localizedValue})).catch((function(e){n.error(e)}))},e.prototype.onIgnore=function(){var e=this,t={resolution:"IGNORE",validationProblemId:this.problem.id};this.service.submitValidationResolve(t).then((function(t){e.onProblemResolved.emit(e.problem),e.bsModalRef.hide()})).catch((function(t){e.error(t)}))},e.prototype.formatAffectedRows=function(e){return e.replace(/,/g,", ")},e.prototype.onCreateSynonym=function(){var e=this,t={validationProblemId:this.problem.id,resolution:"SYNONYM",code:this.problem.parent.properties.code,typeCode:this.problem.parent.properties.type,label:this.problem.label};this.service.submitValidationResolve(t).then((function(t){e.onProblemResolved.emit(e.problem),e.bsModalRef.hide()})).catch((function(t){e.error(t)}))},e.prototype.formatDate=function(e){return this.dateService.formatDateForDisplay(e)},e.prototype.onCancel=function(){this.bsModalRef.hide()},e.prototype.error=function(e){this.message=o.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(l.RegistryService),a.ɵɵdirectiveInject(l.IOService),a.ɵɵdirectiveInject(s.DateService),a.ɵɵdirectiveInject(c.LocalizationService),a.ɵɵdirectiveInject(d.BsModalRef))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["row-validation-problem-widget"]],inputs:{problem:"problem",job:"job"},outputs:{onProblemResolved:"onProblemResolved"},decls:39,vars:5,consts:[[1,"container"],["class","alert alert-danger","role","alert",4,"ngIf"],["class","row","style","background: #F4F4F4;\n border-radius: 10px;\n margin-bottom: 20px;\n margin-top: 20px;\n padding: 10px;",4,"ngIf"],[1,"row",2,"background","#F4F4F4","border-radius","10px","margin-bottom","20px","margin-top","20px","padding","10px"],[1,"col-md-12"],[1,"row"],[1,"col-md-6",2,"background","white","border-radius","10px","width","41%","margin-right","7px"],["key","etl.problem.header.problem"],[2,"font-style","italic"],["key","etl.problem.header.message"],["key","etl.problem.rowValidation.message"],["key","etl.problem.header.toResolve"],["key","etl.problem.rowValidation.toResolve"],[1,"com-md-6",2,"background","white","border-radius","10px","width","41%","float","left","height","250px"],[1,"row-holder"],[1,"label-holder",2,"width","100px"],[1,"text"],["key","scheduledjobs.validation.table.affected.rows.header"],[1,"holder",2,"width","300px"],[1,"text",2,"margin-top","10px"],["role","alert",1,"alert","alert-danger"],[1,"col-md-6"],[1,"wrapper"],["aria-hidden","true",1,"fa","fa-file",2,"position","absolute","font-size","55px"],[2,"padding-left","60px"],[2,"display","block"],["key","importproblem.uploaded.by.label"],["key","importproblem.started.date.label"],[1,"date-string-display",2,"margin-left","5px"]],template:function(e,t){1&e&&(a.ɵɵelementStart(0,"div",0),a.ɵɵtemplate(1,u,2,1,"div",1),a.ɵɵtemplate(2,g,17,3,"div",2),a.ɵɵelementStart(3,"div",3),a.ɵɵelementStart(4,"div",4),a.ɵɵelementStart(5,"div",5),a.ɵɵelementStart(6,"div",6),a.ɵɵelementStart(7,"h4"),a.ɵɵelementStart(8,"strong"),a.ɵɵelement(9,"localize",7),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(10,"p",8),a.ɵɵtext(11),a.ɵɵelementEnd(),a.ɵɵelementStart(12,"h4"),a.ɵɵelementStart(13,"strong"),a.ɵɵelement(14,"localize",9),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(15,"p",8),a.ɵɵelement(16,"localize",10),a.ɵɵelementEnd(),a.ɵɵelementStart(17,"h4"),a.ɵɵelementStart(18,"strong"),a.ɵɵelement(19,"localize",11),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(20,"p"),a.ɵɵelement(21,"localize",12),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(22,"div",13),a.ɵɵelementStart(23,"div",14),a.ɵɵelementStart(24,"div",15),a.ɵɵelementStart(25,"label"),a.ɵɵelementStart(26,"span",16),a.ɵɵelement(27,"localize",17),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(28,"div",18),a.ɵɵelementStart(29,"span",19),a.ɵɵtext(30),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(31,"div",14),a.ɵɵelementStart(32,"div",15),a.ɵɵelementStart(33,"label"),a.ɵɵelementStart(34,"span",16),a.ɵɵelement(35,"localize",10),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(36,"div",18),a.ɵɵelementStart(37,"span",19),a.ɵɵtext(38),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e&&(a.ɵɵadvance(1),a.ɵɵproperty("ngIf",null!=t.message),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.problem&&t.job),a.ɵɵadvance(9),a.ɵɵtextInterpolate(t.getValidationProblemDisplayLabel(t.problem)),a.ɵɵadvance(19),a.ɵɵtextInterpolate(t.formatAffectedRows(t.problem.affectedRows)),a.ɵɵadvance(8),a.ɵɵtextInterpolate(t.problem.exception.message))},directives:[p.NgIf,m.LocalizeComponent],encapsulation:2}),e}();t.RowValidationProblemWidgetComponent=h,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(h,[{type:r.Component,args:[{selector:"row-validation-problem-widget",templateUrl:"./row-validation-problem-widget.component.html",styleUrls:[]}]}],(function(){return[{type:l.RegistryService},{type:l.IOService},{type:s.DateService},{type:c.LocalizationService},{type:d.BsModalRef}]}),{problem:[{type:r.Input}],job:[{type:r.Input}],onProblemResolved:[{type:r.Output}]})},606:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ReuploadModalComponent=void 0;var r=n(0),i=(n(30),n(31)),o=n(205),a=n(261),l=(n(16),n(111)),s=(n(203),n(0)),c=n(30),d=n(16),p=n(1),m=n(22),u=n(68),g=n(205),h=["myFile"];function f(e,t){if(1&e&&(s.ɵɵelementStart(0,"div",4),s.ɵɵtext(1),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext();s.ɵɵadvance(1),s.ɵɵtextInterpolate(n.errorMessage)}}function y(e,t){1&e&&s.ɵɵelement(0,"localize",18)}function v(e,t){1&e&&s.ɵɵelement(0,"localize",19)}function b(e,t){if(1&e&&s.ɵɵelement(0,"input",20,21),2&e){var n=s.ɵɵnextContext(2);s.ɵɵproperty("uploader",n.uploader)}}function S(e,t){if(1&e&&s.ɵɵelement(0,"input",22,21),2&e){var n=s.ɵɵnextContext(2);s.ɵɵproperty("uploader",n.uploader)}}function C(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"form",5,6),s.ɵɵelementStart(2,"div",7),s.ɵɵelementStart(3,"label",8),s.ɵɵtemplate(4,y,1,0,"localize",9),s.ɵɵtemplate(5,v,1,0,"localize",10),s.ɵɵelementEnd(),s.ɵɵelementStart(6,"div",11),s.ɵɵtemplate(7,b,2,1,"input",12),s.ɵɵtemplate(8,S,2,1,"input",13),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(9,"div",14),s.ɵɵelementStart(10,"div",15),s.ɵɵelementStart(11,"button",16),s.ɵɵlistener("click",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext().bsModalRef.hide()})),s.ɵɵelementStart(12,"span"),s.ɵɵtext(13),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(14,"button",17),s.ɵɵlistener("click",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext().confirm()})),s.ɵɵelementStart(15,"span"),s.ɵɵtext(16),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext();s.ɵɵadvance(4),s.ɵɵproperty("ngIf","SHAPEFILE"===r.job.configuration.formatType),s.ɵɵadvance(1),s.ɵɵproperty("ngIf","EXCEL"===r.job.configuration.formatType),s.ɵɵadvance(2),s.ɵɵproperty("ngIf","SHAPEFILE"===r.job.configuration.formatType),s.ɵɵadvance(1),s.ɵɵproperty("ngIf","EXCEL"===r.job.configuration.formatType),s.ɵɵadvance(5),s.ɵɵtextInterpolate(r.cancelText),s.ɵɵadvance(1),s.ɵɵproperty("ngClass","DANGER"===r.type.toUpperCase()?"btn-danger":"btn-primary"),s.ɵɵadvance(2),s.ɵɵtextInterpolate(r.submitText)}}var E=function(){function e(e,t,n){this.bsModalRef=e,this.localizeService=t,this.eventService=n,this.title=this.localizeService.decode("reuploadmodal.title"),this.message=this.localizeService.decode("reuploadmodal.message"),this.submitText=this.localizeService.decode("reuploadmodal.import"),this.cancelText=this.localizeService.decode("modal.button.cancel"),this.type=a.ModalTypes.warning}return e.prototype.ngOnInit=function(){var e=this;this.onConfirm=new i.Subject;var t={queueLimit:1,removeAfterUpload:!0,url:acp+"/etl/reimport"};this.uploader=new o.FileUploader(t),this.uploader.onBuildItemForm=function(t,n){n.append("json",JSON.stringify(e.job.configuration))},this.uploader.onBeforeUploadItem=function(t){e.eventService.start()},this.uploader.onCompleteItem=function(t,n,r,i){e.fileRef.nativeElement.value="",e.eventService.complete()},this.uploader.onSuccessItem=function(t,n,r,i){e.onConfirm.next(e.data),e.bsModalRef.hide()},this.uploader.onErrorItem=function(t,n,r,i){e.error(JSON.parse(n))}},e.prototype.toString=function(e){return JSON.stringify(e)},e.prototype.confirm=function(){null!=this.uploader.queue&&this.uploader.queue.length>0?this.uploader.uploadAll():this.error({message:this.localizeService.decode("io.missing.file"),error:{}})},e.prototype.error=function(e){this.errorMessage=l.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(s.ɵɵdirectiveInject(c.BsModalRef),s.ɵɵdirectiveInject(d.LocalizationService),s.ɵɵdirectiveInject(d.EventService))},e.ɵcmp=s.ɵɵdefineComponent({type:e,selectors:[["reupload-modal"]],viewQuery:function(e,t){if(1&e&&s.ɵɵviewQuery(h,1),2&e){var n;s.ɵɵqueryRefresh(n=s.ɵɵloadQuery())&&(t.fileRef=n.first)}},inputs:{title:"title",message:"message",data:"data",submitText:"submitText",cancelText:"cancelText",type:"type",job:"job"},decls:8,vars:4,consts:[[1,"modal-body"],["class","alert alert-danger","role","alert",4,"ngIf"],[1,"heading"],["style","margin-top: 30px;",4,"ngIf"],["role","alert",1,"alert","alert-danger"],[2,"margin-top","30px"],["form","ngForm"],[1,"form-group","row"],["for","file",1,"col-md-3","text-right"],["key","io.shapefile",4,"ngIf"],["key","io.spreadsheet",4,"ngIf"],[1,"col-md-9"],["class","ghost-input","name","file","type","file","ng2FileSelect","","accept",".zip","required","",3,"uploader",4,"ngIf"],["class","ghost-input","name","file","type","file","ng2FileSelect","","accept",".xlsx,.zip","required","",3,"uploader",4,"ngIf"],[1,"modal-footer"],[1,"button-holder"],["type","button","role","button","aria-disabled","false",1,"btn","btn-default",2,"padding","4px 18px",3,"click"],["type","button","role","button","aria-disabled","false",1,"btn",2,"padding","4px 18px",3,"ngClass","click"],["key","io.shapefile"],["key","io.spreadsheet"],["name","file","type","file","ng2FileSelect","","accept",".zip","required","",1,"ghost-input",3,"uploader"],["myFile",""],["name","file","type","file","ng2FileSelect","","accept",".xlsx,.zip","required","",1,"ghost-input",3,"uploader"]],template:function(e,t){1&e&&(s.ɵɵelementStart(0,"div",0),s.ɵɵtemplate(1,f,2,1,"div",1),s.ɵɵelementStart(2,"div",2),s.ɵɵelementStart(3,"h3"),s.ɵɵtext(4),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(5,"div"),s.ɵɵtext(6),s.ɵɵelementEnd(),s.ɵɵtemplate(7,C,17,7,"form",3),s.ɵɵelementEnd()),2&e&&(s.ɵɵadvance(1),s.ɵɵproperty("ngIf",t.errorMessage),s.ɵɵadvance(3),s.ɵɵtextInterpolate(t.title),s.ɵɵadvance(2),s.ɵɵtextInterpolate(t.message),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",t.job))},directives:[p.NgIf,m.ɵangular_packages_forms_forms_ba,m.NgControlStatusGroup,m.NgForm,p.NgClass,u.LocalizeComponent,g.FileSelectDirective],encapsulation:2}),e}();t.ReuploadModalComponent=E,("undefined"==typeof ngDevMode||ngDevMode)&&s.ɵsetClassMetadata(E,[{type:r.Component,args:[{selector:"reupload-modal",templateUrl:"./reupload-modal.component.html",styleUrls:[]}]}],(function(){return[{type:c.BsModalRef},{type:d.LocalizationService},{type:d.EventService}]}),{title:[{type:r.Input}],message:[{type:r.Input}],data:[{type:r.Input}],submitText:[{type:r.Input}],cancelText:[{type:r.Input}],type:[{type:r.Input}],job:[{type:r.Input}],fileRef:[{type:r.ViewChild,args:["myFile"]}]})},607:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TaskViewerComponent=void 0;var r=n(0),i=n(1),o=(n(519),n(112),n(203),n(16),n(0)),a=n(519),l=n(16),s=n(112),c=n(122),d=n(97),p=n(68),m=n(1),u=n(204);function g(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",15),o.ɵɵelementStart(1,"div",16),o.ɵɵelementStart(2,"h4"),o.ɵɵtext(3),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(4,"div",17),o.ɵɵelementStart(5,"div",4),o.ɵɵelementStart(6,"div",5),o.ɵɵelementStart(7,"p",18),o.ɵɵtext(8),o.ɵɵelementEnd(),o.ɵɵelementStart(9,"label",19),o.ɵɵelement(10,"localize",20),o.ɵɵelementEnd(),o.ɵɵelementStart(11,"span",21),o.ɵɵtext(12),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(13,"div",22),o.ɵɵelementStart(14,"label",23),o.ɵɵelement(15,"input",24),o.ɵɵelementStart(16,"span"),o.ɵɵelement(17,"localize",25),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(18,"label",23),o.ɵɵelementStart(19,"input",26),o.ɵɵlistener("click",(function(){o.ɵɵrestoreView(n);var e=t.$implicit;return o.ɵɵnextContext(2).onCompleteTask(e)})),o.ɵɵelementEnd(),o.ɵɵelementStart(20,"span"),o.ɵɵelement(21,"localize",27),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=o.ɵɵnextContext(2);o.ɵɵadvance(3),o.ɵɵtextInterpolate(r.title),o.ɵɵadvance(5),o.ɵɵtextInterpolate(r.msg),o.ɵɵadvance(4),o.ɵɵtextInterpolate1(" ",i.formatDate(r.createDate)," "),o.ɵɵadvance(3),o.ɵɵpropertyInterpolate1("id","",r.id,"-inProgress"),o.ɵɵpropertyInterpolate1("name","",r.id,"-inProgress"),o.ɵɵadvance(4),o.ɵɵpropertyInterpolate1("id","",r.id,"-completed"),o.ɵɵpropertyInterpolate1("name","",r.id,"-completed")}}function h(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",28),o.ɵɵelementStart(1,"pagination-controls",29),o.ɵɵlistener("pageChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).onInProgressTasksPageChange(e)})),o.ɵɵelementEnd(),o.ɵɵelementEnd()}}var f=function(e,t,n){return{id:"inProgressTasks",itemsPerPage:e,currentPage:t,totalItems:n}};function y(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",4),o.ɵɵelementStart(1,"div",10),o.ɵɵelementStart(2,"div",12),o.ɵɵtemplate(3,g,22,7,"div",13),o.ɵɵpipe(4,"paginate"),o.ɵɵtemplate(5,h,2,0,"div",14),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext();o.ɵɵadvance(3),o.ɵɵproperty("ngForOf",o.ɵɵpipeBind2(4,2,n.inProgressTasks.results,o.ɵɵpureFunction3(5,f,n.inProgressTasks.pageSize,n.inProgressTasks.pageNumber,n.inProgressTasks.count))),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.inProgressTasks.results.length>0)}}function v(e,t){1&e&&o.ɵɵelement(0,"localize",30)}function b(e,t){1&e&&o.ɵɵelement(0,"localize",31)}function S(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",15),o.ɵɵelementStart(1,"div",16),o.ɵɵelementStart(2,"h4"),o.ɵɵtext(3),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(4,"div",17),o.ɵɵelementStart(5,"div",4),o.ɵɵelementStart(6,"div",5),o.ɵɵelementStart(7,"p",18),o.ɵɵtext(8),o.ɵɵelementEnd(),o.ɵɵelementStart(9,"label",19),o.ɵɵelement(10,"localize",20),o.ɵɵelementEnd(),o.ɵɵelementStart(11,"span",32),o.ɵɵtext(12),o.ɵɵelementEnd(),o.ɵɵelementStart(13,"label",19),o.ɵɵelement(14,"localize",33),o.ɵɵelementEnd(),o.ɵɵelementStart(15,"span",21),o.ɵɵtext(16),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(17,"div",22),o.ɵɵelementStart(18,"label",23),o.ɵɵelementStart(19,"input",34),o.ɵɵlistener("click",(function(){o.ɵɵrestoreView(n);var e=t.$implicit;return o.ɵɵnextContext(2).onMoveTaskToInProgress(e)})),o.ɵɵelementEnd(),o.ɵɵelementStart(20,"span"),o.ɵɵelement(21,"localize",25),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(22,"label",23),o.ɵɵelement(23,"input",35),o.ɵɵelementStart(24,"span"),o.ɵɵelement(25,"localize",27),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=o.ɵɵnextContext(2);o.ɵɵadvance(3),o.ɵɵtextInterpolate(r.title),o.ɵɵadvance(5),o.ɵɵtextInterpolate(r.msg),o.ɵɵadvance(4),o.ɵɵtextInterpolate1(" ",i.formatDate(r.createDate)," "),o.ɵɵadvance(4),o.ɵɵtextInterpolate1(" ",i.formatDate(r.completedDate)," "),o.ɵɵadvance(3),o.ɵɵproperty("id",r.id+"-inProgress")("name",r.id+"-inProgress"),o.ɵɵadvance(4),o.ɵɵproperty("id",r.id+"-completed")("name",r.id+"-completed")}}function C(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",28),o.ɵɵelementStart(1,"pagination-controls",36),o.ɵɵlistener("pageChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).onCompletedTasksPageChange(e)})),o.ɵɵelementEnd(),o.ɵɵelementEnd()}}var E=function(e,t,n){return{id:"completedTasks",itemsPerPage:e,currentPage:t,totalItems:n}};function x(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",12),o.ɵɵtemplate(1,S,26,8,"div",13),o.ɵɵpipe(2,"paginate"),o.ɵɵtemplate(3,C,2,0,"div",14),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext();o.ɵɵadvance(1),o.ɵɵproperty("ngForOf",o.ɵɵpipeBind2(2,2,n.completedTasks.results,o.ɵɵpureFunction3(5,E,n.completedTasks.pageSize,n.completedTasks.pageNumber,n.completedTasks.count))),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.completedTasks.results.length>0)}}function O(e,t){1&e&&(o.ɵɵelementStart(0,"div",12),o.ɵɵelementStart(1,"p",37),o.ɵɵelement(2,"localize",38),o.ɵɵelementEnd(),o.ɵɵelementEnd())}var I=function(){function e(e,t,n){this.taskService=e,this.localizeService=t,this.dateService=n,this.inProgressTasks={count:0,pageNumber:1,pageSize:10,results:[]},this.completedTasks={count:0,pageNumber:1,pageSize:10,results:[]},this.isViewAllOpen=!1,this.activeTimeCounter=0,this.completeTimeCounter=0}return e.prototype.ngOnInit=function(){this.onInProgressTasksPageChange(1)},e.prototype.onInProgressTasksPageChange=function(e){var t=this;this.taskService.getMyTasks(e,this.inProgressTasks.pageSize,"UNRESOLVED").then((function(e){t.inProgressTasks=e}))},e.prototype.onCompletedTasksPageChange=function(e){var t=this;this.taskService.getMyTasks(e,this.completedTasks.pageSize,"RESOLVED").then((function(e){t.completedTasks=e}))},e.prototype.onCompleteTask=function(e){var t=this;this.taskService.completeTask(e.id).then((function(){var n=t.inProgressTasks.results.findIndex((function(t){return t.id===e.id}));-1!==n&&t.inProgressTasks.results.splice(n,1),t.isViewAllOpen&&t.onCompletedTasksPageChange(t.completedTasks.pageNumber)}))},e.prototype.onMoveTaskToInProgress=function(e){var t=this;this.isViewAllOpen=!0,this.taskService.setTaskStatus(e.id,"UNRESOLVED").then((function(){var n=t.completedTasks.results.findIndex((function(t){return t.id===e.id}));-1!==n&&t.completedTasks.results.splice(n,1),t.completedTasks.results.splice(n,1),t.inProgressTasks.results.push(e)}))},e.prototype.onToggleCompletedTasks=function(){this.isViewAllOpen=!this.isViewAllOpen,this.isViewAllOpen&&this.onCompletedTasksPageChange(1)},e.prototype.formatDate=function(e){return this.dateService.formatDateForDisplay(e)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.TaskService),o.ɵɵdirectiveInject(l.LocalizationService),o.ɵɵdirectiveInject(s.DateService))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["task-viewer"]],inputs:{geoObjectType:"geoObjectType"},features:[o.ɵɵProvidersFeature([i.DatePipe])],decls:19,vars:5,consts:[[1,"new-admin-design-main"],["id","app-container",1,"container"],["key","tasks.openTasksTitle"],["class","row",4,"ngIf"],[1,"row"],[1,"col-md-9"],["key","tasks.completedTasksTitle"],["type","submit","role","button",1,"btn","btn-default","pull-right",2,"margin-top","20px",3,"click"],["key","tasks.viewCompletedTasksButton",4,"ngIf"],["key","tasks.hideCompletedTasksButton",4,"ngIf"],[1,"col-md-12"],["class","content-wrapper",4,"ngIf"],[1,"content-wrapper"],["class","panel panel-default",4,"ngFor","ngForOf"],["class","solid-table-footer",4,"ngIf"],[1,"panel","panel-default"],[1,"panel-heading"],[1,"panel-body"],[2,"margin-bottom","20px"],[2,"margin-right","20px"],["key","tasks.createDateLabel"],[1,"date-string-display"],[1,"col-md-3",2,"min-height","90px","display","flex","align-items","center"],[1,"radio-inline","radio"],["type","radio","checked","","value","true",1,"inline-radio-input",2,"height","auto",3,"id","name"],["key","tasks.open"],["type","radio","value","false",1,"inline-radio-input",2,"margin-left","15px","height","auto",3,"id","name","click"],["key","tasks.complete"],[1,"solid-table-footer"],["id","inProgressTasks",3,"pageChange"],["key","tasks.viewCompletedTasksButton"],["key","tasks.hideCompletedTasksButton"],[1,"date-string-display",2,"margin-right","30px"],["key","tasks.completeDateLabel"],["type","radio","value","true",1,"inline-radio-input",2,"height","auto",3,"id","name","click"],["checked","","type","radio","value","false",1,"inline-radio-input",2,"margin-left","15px","height","auto",3,"id","name"],["id","completedTasks",3,"pageChange"],[2,"font-style","italic","color","grey"],["key","tasks.no.completed.tasks.message"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵelement(1,"cgr-header"),o.ɵɵelementStart(2,"div",1),o.ɵɵelement(3,"message"),o.ɵɵelementStart(4,"h2"),o.ɵɵelement(5,"localize",2),o.ɵɵelementEnd(),o.ɵɵelement(6,"hr"),o.ɵɵtemplate(7,y,6,9,"div",3),o.ɵɵelementStart(8,"div",4),o.ɵɵelementStart(9,"h2",5),o.ɵɵelement(10,"localize",6),o.ɵɵelementEnd(),o.ɵɵelementStart(11,"button",7),o.ɵɵlistener("click",(function(){return t.onToggleCompletedTasks()})),o.ɵɵtemplate(12,v,1,0,"localize",8),o.ɵɵtemplate(13,b,1,0,"localize",9),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelement(14,"hr"),o.ɵɵelementStart(15,"div",4),o.ɵɵelementStart(16,"div",10),o.ɵɵtemplate(17,x,4,9,"div",11),o.ɵɵtemplate(18,O,3,0,"div",11),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(7),o.ɵɵproperty("ngIf",t.inProgressTasks.results.length>0),o.ɵɵadvance(5),o.ɵɵproperty("ngIf",!t.isViewAllOpen),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",t.isViewAllOpen),o.ɵɵadvance(4),o.ɵɵproperty("ngIf",t.isViewAllOpen&&t.completedTasks.results.length>0),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",0===t.completedTasks.results.length&&t.isViewAllOpen))},directives:[c.CgrHeaderComponent,d.MessageComponent,p.LocalizeComponent,m.NgIf,m.NgForOf,u.PaginationControlsComponent],pipes:[u.PaginatePipe],styles:['.modal-content[_ngcontent-%COMP%] {\n overflow-y: visible !important;\n}\n\n.modal-form[_ngcontent-%COMP%] .text[_ngcontent-%COMP%] input[type="text"][_ngcontent-%COMP%]:disabled {\n background: #eee;\n}\n\nli.list-group-item[_ngcontent-%COMP%] {\n font-size: 18px;\n}\n\n.warning-text[_ngcontent-%COMP%]{\n color: orange;\n}']}),e}();t.TaskViewerComponent=I,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(I,[{type:r.Component,args:[{selector:"task-viewer",templateUrl:"./task-viewer.component.html",styleUrls:["./task-viewer.component.css"],providers:[i.DatePipe]}]}],(function(){return[{type:a.TaskService},{type:l.LocalizationService},{type:s.DateService}]}),{geoObjectType:[{type:r.Input}]})},608:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FhirExportSynchronizationConfigComponent=void 0;var r=n(0),i=(n(31),n(203),n(519),n(0)),o=n(519),a=n(68),l=n(1),s=n(22),c=n(113);function d(e,t){if(1&e&&(i.ɵɵelementStart(0,"option",26),i.ɵɵtext(1),i.ɵɵelementEnd()),2&e){var n=t.$implicit;i.ɵɵproperty("value",n.oid),i.ɵɵadvance(1),i.ɵɵtextInterpolate(n.label)}}function p(e,t){if(1&e&&(i.ɵɵelementStart(0,"option",26),i.ɵɵtext(1),i.ɵɵelementEnd()),2&e){var n=t.$implicit;i.ɵɵproperty("value",n.oid),i.ɵɵadvance(1),i.ɵɵtextInterpolate(n.forDate)}}function m(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"select",21),i.ɵɵlistener("ngModelChange",(function(e){return i.ɵɵrestoreView(n),i.ɵɵnextContext().$implicit.versionId=e})),i.ɵɵelement(1,"option"),i.ɵɵtemplate(2,p,2,2,"option",19),i.ɵɵelementEnd()}if(2&e){var r=i.ɵɵnextContext().$implicit,o=i.ɵɵnextContext();i.ɵɵproperty("ngModel",r.versionId)("name","version"+r.level),i.ɵɵadvance(2),i.ɵɵproperty("ngForOf",o.versions[r.masterListId].versions)}}function u(e,t){if(1&e&&(i.ɵɵelementStart(0,"option",26),i.ɵɵtext(1),i.ɵɵelementEnd()),2&e){var n=t.$implicit;i.ɵɵproperty("value",n.className),i.ɵɵadvance(1),i.ɵɵtextInterpolate(n.label)}}function g(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"tr"),i.ɵɵelementStart(1,"td",6),i.ɵɵelementStart(2,"label",15),i.ɵɵelement(3,"localize",16),i.ɵɵtext(4),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(5,"td",17),i.ɵɵelementStart(6,"select",18),i.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.masterListId=e}))("change",(function(){i.ɵɵrestoreView(n);var e=t.$implicit;return i.ɵɵnextContext().onSelectMasterList(e)})),i.ɵɵelement(7,"option"),i.ɵɵtemplate(8,d,2,2,"option",19),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(9,"td",17),i.ɵɵtemplate(10,m,3,3,"select",20),i.ɵɵelementEnd(),i.ɵɵelementStart(11,"td",17),i.ɵɵelementStart(12,"select",21),i.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.implementation=e})),i.ɵɵelement(13,"option"),i.ɵɵtemplate(14,u,2,2,"option",19),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(15,"td",17),i.ɵɵelementStart(16,"div"),i.ɵɵelementStart(17,"a",22),i.ɵɵlistener("click",(function(){i.ɵɵrestoreView(n);var e=t.index;return i.ɵɵnextContext().removeLevel(e)})),i.ɵɵpipe(18,"localize"),i.ɵɵelement(19,"i",23),i.ɵɵelementStart(20,"label",24),i.ɵɵelement(21,"localize",25),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd()}if(2&e){var r=t.$implicit,o=i.ɵɵnextContext();i.ɵɵstyleProp("background-color","#F7F7F7"),i.ɵɵadvance(4),i.ɵɵtextInterpolate1(" ",r.level+1," "),i.ɵɵadvance(2),i.ɵɵproperty("ngModel",r.masterListId)("name","masterList"+r.level),i.ɵɵadvance(2),i.ɵɵproperty("ngForOf",o.lists),i.ɵɵadvance(2),i.ɵɵproperty("ngIf",null!=o.versions[r.masterListId]),i.ɵɵadvance(2),i.ɵɵproperty("ngModel",r.implementation)("name","implementation"+r.level),i.ɵɵadvance(2),i.ɵɵproperty("ngForOf",o.implementations),i.ɵɵadvance(3),i.ɵɵproperty("title",i.ɵɵpipeBind1(18,11,"button.delete.helptext"))}}var h=function(){function e(e,t){this.service=e,this.rService=t,this.message=null,this.onError=new r.EventEmitter,this.subscription=null,this.versions={},this.implementations=[],this.lists=[]}return e.prototype.ngOnInit=function(){var e=this;this.reset(),this.subscription=this.fieldChange.subscribe((function(t){"organization"!==t&&"system"!==t||e.reset()})),this.service.getFhirExportImplementations().then((function(t){e.implementations=t}))},e.prototype.ngOnDestroy=function(){null!=this.subscription&&this.subscription.unsubscribe()},e.prototype.reset=function(){var e=this;if(null==this.config.configuration&&(this.config.configuration={levels:[],hierarchy:null}),null!=this.config.configuration.levels)for(var t=0;t0&&!n.isOrgUnitGroup),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",0==n.info.dhis2Attrs.length&&!n.isOrgUnitGroup)}}function R(e,t){1&e&&i.ɵɵelement(0,"localize",89)}function P(e,t){1&e&&i.ɵɵelement(0,"localize",90)}function A(e,t){if(1&e&&(i.ɵɵelementStart(0,"option",8),i.ɵɵtext(1),i.ɵɵelementEnd()),2&e){var n=t.$implicit;i.ɵɵproperty("value",n.code),i.ɵɵadvance(1),i.ɵɵtextInterpolate1(" ",n.name," ")}}function V(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"select",91),i.ɵɵlistener("ngModelChange",(function(e){i.ɵɵrestoreView(n);var t=i.ɵɵnextContext().$implicit;return i.ɵɵnextContext(2).$implicit.terms[t.code]=e})),i.ɵɵelementStart(1,"option",61),i.ɵɵelement(2,"localize",79),i.ɵɵelementEnd(),i.ɵɵtemplate(3,A,2,2,"option",7),i.ɵɵelementEnd()}if(2&e){var r=i.ɵɵnextContext().$implicit,o=i.ɵɵnextContext(2).$implicit,a=i.ɵɵnextContext(4);i.ɵɵproperty("ngModel",o.terms[r.code])("ngModelOptions",i.ɵɵpureFunction0(4,j)),i.ɵɵadvance(1),i.ɵɵproperty("ngValue",null),i.ɵɵadvance(2),i.ɵɵproperty("ngForOf",a.getTermOptions(o.info,o.externalId))}}function N(e,t){if(1&e&&(i.ɵɵelementStart(0,"option",8),i.ɵɵtext(1),i.ɵɵelementEnd()),2&e){var n=t.$implicit;i.ɵɵproperty("value",n.id),i.ɵɵadvance(1),i.ɵɵtextInterpolate(n.name)}}function L(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"select",92),i.ɵɵlistener("ngModelChange",(function(e){i.ɵɵrestoreView(n);var t=i.ɵɵnextContext().$implicit;return i.ɵɵnextContext(2).$implicit.terms[t.code]=e})),i.ɵɵelementStart(1,"option",61),i.ɵɵelement(2,"localize",79),i.ɵɵelementEnd(),i.ɵɵtemplate(3,N,2,2,"option",7),i.ɵɵelementEnd()}if(2&e){var r=i.ɵɵnextContext().$implicit,o=i.ɵɵnextContext(2).$implicit,a=i.ɵɵnextContext(4);i.ɵɵproperty("ngModel",o.terms[r.code])("ngModelOptions",i.ɵɵpureFunction0(4,j)),i.ɵɵadvance(1),i.ɵɵproperty("ngValue",null),i.ɵɵadvance(2),i.ɵɵproperty("ngForOf",a.orgUnitGroups)}}function _(e,t){if(1&e&&(i.ɵɵelementStart(0,"table",82),i.ɵɵelementStart(1,"thead"),i.ɵɵelementStart(2,"tr"),i.ɵɵelement(3,"th",14),i.ɵɵelementStart(4,"th",14),i.ɵɵelementStart(5,"label"),i.ɵɵelement(6,"localize",83),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelement(7,"th",14),i.ɵɵelementStart(8,"th",14),i.ɵɵelementStart(9,"label"),i.ɵɵtemplate(10,R,1,0,"localize",84),i.ɵɵtemplate(11,P,1,0,"localize",85),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(12,"tbody"),i.ɵɵelementStart(13,"tr"),i.ɵɵelement(14,"td"),i.ɵɵelementStart(15,"td"),i.ɵɵelementStart(16,"label",70),i.ɵɵtext(17),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(18,"td",86),i.ɵɵelementStart(19,"label",70),i.ɵɵelement(20,"localize",76),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(21,"td"),i.ɵɵtemplate(22,V,4,5,"select",87),i.ɵɵtemplate(23,L,4,5,"select",88),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd()),2&e){var n=t.$implicit,r=i.ɵɵnextContext(2).$implicit;i.ɵɵadvance(10),i.ɵɵproperty("ngIf",!r.isOrgUnitGroup),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",r.isOrgUnitGroup),i.ɵɵadvance(6),i.ɵɵtextInterpolate(n.label),i.ɵɵadvance(5),i.ɵɵproperty("ngIf",!r.isOrgUnitGroup),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",r.isOrgUnitGroup)}}function F(e,t){if(1&e&&(i.ɵɵelementStart(0,"div"),i.ɵɵtemplate(1,_,24,5,"table",81),i.ɵɵelementEnd()),2&e){var n=i.ɵɵnextContext().$implicit;i.ɵɵadvance(1),i.ɵɵproperty("ngForOf",n.info.terms)}}function H(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"tr"),i.ɵɵelementStart(1,"td",52),i.ɵɵelementStart(2,"table",53),i.ɵɵelementStart(3,"thead"),i.ɵɵelementStart(4,"tr"),i.ɵɵelement(5,"th",54),i.ɵɵelementStart(6,"th",55),i.ɵɵelementStart(7,"label"),i.ɵɵelement(8,"localize",56),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(9,"th",55),i.ɵɵelementStart(10,"label"),i.ɵɵelement(11,"localize",57),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(12,"th",55),i.ɵɵtemplate(13,S,2,0,"label",58),i.ɵɵelementEnd(),i.ɵɵelementStart(14,"th",55),i.ɵɵtemplate(15,E,2,1,"label",58),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(16,"tbody"),i.ɵɵelementStart(17,"tr"),i.ɵɵelementStart(18,"td",54),i.ɵɵelementStart(19,"i",59),i.ɵɵlistener("click",(function(){i.ɵɵrestoreView(n);var e=t.index,r=i.ɵɵnextContext(2).$implicit;return i.ɵɵnextContext(2).deleteMapping(r,e)})),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(20,"td",55),i.ɵɵelementStart(21,"select",60),i.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.cgrAttrName=e}))("change",(function(e){i.ɵɵrestoreView(n);var r=t.$implicit,o=i.ɵɵnextContext(2).$implicit;return i.ɵɵnextContext(2).mapCgrAttr(0==e.target.selectedIndex?null:o.attrCfg.attrConfigInfos[e.target.selectedIndex-1],r)})),i.ɵɵelement(22,"option",61),i.ɵɵtemplate(23,x,3,2,"option",62),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(24,"td",55),i.ɵɵtemplate(25,O,2,1,"label",63),i.ɵɵelementEnd(),i.ɵɵtemplate(26,w,2,1,"td",64),i.ɵɵtemplate(27,M,3,0,"td",65),i.ɵɵtemplate(28,D,3,2,"td",66),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵtemplate(29,F,2,1,"div",58),i.ɵɵelementEnd(),i.ɵɵelementEnd()}if(2&e){var r=t.$implicit,o=t.index,a=i.ɵɵnextContext(2),l=a.index,s=a.$implicit;i.ɵɵadvance(13),i.ɵɵproperty("ngIf",r.info&&"term"===r.info.cgrAttr.type),i.ɵɵadvance(2),i.ɵɵproperty("ngIf",r.info),i.ɵɵadvance(6),i.ɵɵproperty("ngModel",r.cgrAttrName)("name","sourceAttrSelect"+l+"-"+o+(r.cgrAttrName?r.cgrAttrName:"")),i.ɵɵadvance(1),i.ɵɵproperty("ngValue",null),i.ɵɵadvance(1),i.ɵɵproperty("ngForOf",s.attrCfg.attrConfigInfos),i.ɵɵadvance(2),i.ɵɵproperty("ngIf",r.info),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",r.info&&"term"===r.info.cgrAttr.type),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",r.info&&"term"!==r.info.cgrAttr.type&&r.info.cgrAttr.name),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",r.info),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",r.info&&(null!=r.externalId&&r.externalId.length>0||r.isOrgUnitGroup))}}function G(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"td",46),i.ɵɵelementStart(1,"h4"),i.ɵɵelement(2,"localize",47),i.ɵɵelementEnd(),i.ɵɵelementStart(3,"table",48),i.ɵɵelementStart(4,"colgroup"),i.ɵɵelement(5,"col",49),i.ɵɵelement(6,"col",50),i.ɵɵelementEnd(),i.ɵɵelementStart(7,"tbody"),i.ɵɵtemplate(8,H,30,11,"tr",51),i.ɵɵelementStart(9,"tr"),i.ɵɵelementStart(10,"td",22),i.ɵɵelementStart(11,"a",23),i.ɵɵlistener("click",(function(){i.ɵɵrestoreView(n);var e=i.ɵɵnextContext().$implicit;return i.ɵɵnextContext(2).addNewMapping(e)})),i.ɵɵpipe(12,"localize"),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd()}if(2&e){var r=i.ɵɵnextContext().$implicit;i.ɵɵadvance(8),i.ɵɵproperty("ngForOf",r.attrCfg.mappings),i.ɵɵadvance(3),i.ɵɵproperty("title",i.ɵɵpipeBind1(12,2,"sync.attr.attributes.add.tooltip"))}}function q(e,t){if(1&e&&(i.ɵɵelementStart(0,"tr"),i.ɵɵtemplate(1,m,4,1,"td",24),i.ɵɵtemplate(2,g,4,3,"td",25),i.ɵɵtemplate(3,h,9,2,"td",25),i.ɵɵtemplate(4,y,4,3,"td",26),i.ɵɵtemplate(5,b,9,4,"td",25),i.ɵɵtemplate(6,G,13,4,"td",27),i.ɵɵelementEnd()),2&e){var n=t.$implicit,r=i.ɵɵnextContext(2);i.ɵɵstyleProp("background-color",!1===n.isAttributeEditor?"#F7F7F7":""),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",!1===n.isAttributeEditor),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",!1===n.isAttributeEditor),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",!1===n.isAttributeEditor),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",!1===n.isAttributeEditor&&r.orgUnitGroups.length>0),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",!1===n.isAttributeEditor),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",!0===n.isAttributeEditor)}}function B(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"div",1),i.ɵɵelementStart(1,"div",2),i.ɵɵelementStart(2,"label"),i.ɵɵelement(3,"localize",9),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(4,"div",4),i.ɵɵelementStart(5,"div",10),i.ɵɵelementStart(6,"table",11),i.ɵɵelementStart(7,"thead"),i.ɵɵelementStart(8,"tr"),i.ɵɵelementStart(9,"th",12),i.ɵɵelement(10,"localize",13),i.ɵɵelementEnd(),i.ɵɵelementStart(11,"th",14),i.ɵɵelement(12,"localize",15),i.ɵɵelementEnd(),i.ɵɵelementStart(13,"th",14),i.ɵɵelement(14,"localize",16),i.ɵɵelementEnd(),i.ɵɵelementStart(15,"th",17),i.ɵɵelement(16,"localize",18),i.ɵɵelementEnd(),i.ɵɵelementStart(17,"th",19),i.ɵɵelement(18,"localize",20),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(19,"tbody"),i.ɵɵtemplate(20,q,7,8,"tr",21),i.ɵɵelementStart(21,"tr"),i.ɵɵelementStart(22,"td",22),i.ɵɵelementStart(23,"a",23),i.ɵɵlistener("click",(function(){return i.ɵɵrestoreView(n),i.ɵɵnextContext().addLevel()})),i.ɵɵpipe(24,"localize"),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd()}if(2&e){var r=i.ɵɵnextContext();i.ɵɵadvance(20),i.ɵɵproperty("ngForOf",r.levelRows),i.ɵɵadvance(3),i.ɵɵproperty("title",i.ɵɵpipeBind1(24,2,"sync.levels.add.tooltip"))}}var U="net.geoprism.registry.etl.DHIS2AttributeMapping",$=function(){function e(e){this.service=e,this.message=null,this.cOrg=null,this.onError=new r.EventEmitter,this.organizations=[],this.types=[],this.levelRows=[],this.orgUnitGroups=[]}return e.prototype.ngOnInit=function(){var e=this;if(null==this.config.configuration&&(this.config.configuration={levels:[],hierarchy:null}),this.levelRows=[],null!=this.config.configuration.levels)for(var t=0;t0)&&(r.levelRows.splice(o,1),o0)}}var A=function(){function e(e,t,n){this.service=e,this.lService=t,this.route=n,this.message=null,this.config=null,this.page={pageSize:10,pageNumber:1,count:1,resultSet:[]}}return e.prototype.ngOnInit=function(){var e=this,t=this.route.snapshot.paramMap.get("oid");this.service.get(t).then((function(t){e.config=t,e.onPageChange(1)}));var n="wss://"+window.location.hostname+(window.location.port?":"+window.location.port:"")+acp;this.notifier=i.webSocket(n+"/websocket/notify"),this.notifier.subscribe((function(t){"DATA_EXPORT_JOB_CHANGE"===t.type&&e.onPageChange(e.page.pageNumber)}))},e.prototype.ngOnDestroy=function(){null!=this.notifier&&this.notifier.complete()},e.prototype.onRun=function(){var e=this;this.message=null,this.service.run(this.config.oid).then((function(){e.onPageChange(e.page.pageNumber)})).catch((function(t){e.error(t)}))},e.prototype.onGenerateFile=function(){window.open(acp+"/synchronization-config/generate-file?oid="+encodeURIComponent(this.config.oid))},e.prototype.onPageChange=function(e){var t=this;null!=this.config&&(this.message=null,this.service.getJobs(this.config.oid,e,this.page.pageSize).then((function(e){t.formatStepConfig(e),t.page=e})).catch((function(e){t.error(e)})))},e.prototype.formatJobStatus=function(e){return"FEEDBACK"===e.status?this.lService.decode("etl.JobStatus.FEEDBACK"):"RUNNING"===e.status||"NEW"===e.status?this.lService.decode("etl.JobStatus.RUNNING"):"QUEUED"===e.status?this.lService.decode("etl.JobStatus.QUEUED"):"SUCCESS"===e.status?this.lService.decode("etl.JobStatus.SUCCESS"):"CANCELED"===e.status?this.lService.decode("etl.JobStatus.CANCELED"):"FAILURE"===e.status?this.lService.decode("etl.JobStatus.FAILURE"):this.lService.decode("etl.JobStatus.RUNNING")},e.prototype.formatStepConfig=function(e){var t=this;e.resultSet.forEach((function(e){var n=[{label:t.lService.decode("synchronization.step.Queued"),status:"NEW"===e.stage?t.getJobStatus(e):t.getCompletedStatus(e.stage,"NEW")},{label:t.lService.decode("synchronization.step.Connecting"),status:"CONNECTING"===e.stage||"CONNECTION_FAILED"===e.stage?t.getJobStatus(e):t.getCompletedStatus(e.stage,"CONNECTION_FAILED")}],r=t.config.isImport?"Importing":t.lService.decode("synchronization.step.DatabaseExport");n.push({label:r,status:"EXPORT"===e.stage||"EXPORT_RESOLVE"===e.stage||"RESUME_EXPORT"===e.stage?t.getJobStatus(e):""}),e.stepConfig={steps:n}}))},e.prototype.getCompletedStatus=function(e,t){var n=["CONNECTING","CONNECTION_FAILED","EXPORT","EXPORT_RESOLVE","RESUME_EXPORT"],r=n.indexOf(e);return n.indexOf(t)0)}}function x(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",20),o.ɵɵtemplate(1,E,16,12,"div",21),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext();o.ɵɵadvance(1),o.ɵɵproperty("ngIf",n.job)}}var O=function(){function e(e,t,n,r){this.configService=e,this.service=t,this.route=n,this.ioService=r,this.message=null,this.historyId="",this.config=null,this.page={count:0,pageNumber:1,pageSize:10,results:[]}}return e.prototype.ngOnInit=function(){var e=this;this.historyId=this.route.snapshot.params.oid;var t=this.route.snapshot.paramMap.get("config");this.configService.get(t).then((function(t){e.config=t,e.onPageChange(1)}))},e.prototype.ngOnDestroy=function(){},e.prototype.formatAffectedRows=function(e){return e.replace(/,/g,", ")},e.prototype.formatValidationResolve=function(e){return JSON.stringify(e)},e.prototype.onPageChange=function(e){var t=this;this.message=null,this.service.getExportDetails(this.historyId,this.page.pageSize,e).then((function(e){t.job=e,t.page=t.job.exportErrors})).catch((function(e){t.error(e)}))},e.prototype.error=function(e){this.message=i.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.SynchronizationConfigService),o.ɵɵdirectiveInject(a.RegistryService),o.ɵɵdirectiveInject(l.ActivatedRoute),o.ɵɵdirectiveInject(a.IOService))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["job"]],decls:10,vars:3,consts:[[1,"new-admin-design-main"],["id","app-container",1,"container-fluid"],["class","alert alert-danger","role","alert",4,"ngIf"],[1,"py-5"],["key","scheduledjobs.details.title"],["class","row","style","background: #F4F4F4;\n border-radius: 15px;\n margin-bottom: 20px;\n margin-top: 20px;\n padding: 10px;",4,"ngIf"],["class","row",4,"ngIf"],["role","alert",1,"alert","alert-danger"],[1,"row",2,"background","#F4F4F4","border-radius","15px","margin-bottom","20px","margin-top","20px","padding","10px"],[1,"col-md-4","order-md-1"],[1,"wrapper"],["aria-hidden","true",1,"fa","fa-file",2,"position","absolute","font-size","55px"],[2,"padding-left","60px"],[2,"display","block"],["key","scheduledjobs.job.uploaded.by.label"],["key","scheduledjobs.job.started.label"],[1,"col-md-3","order-md-1"],["key","scheduledjobs.job.imported.out.of.label"],["key","scheduledjobs.job.imported.total.label"],["key","scheduledjobs.job.remaining.label"],[1,"row"],["class","col-md-12 order-md-1",4,"ngIf"],[1,"col-md-12","order-md-1"],[1,"list-group"],[1,"list-table","table","table-bordered","table-striped"],[1,"label-column"],[4,"ngIf"],["key","scheduledjobs.import.table.message.header"],["class","label-column",4,"ngIf"],[4,"ngFor","ngForOf"],[1,"solid-table-footer"],["class","solid-table-footer",4,"ngIf"],["key","geoObject.label"],["key","geoObjectType.attr.code"],["key","scheduledjobs.import.table.row.number.header"],[1,"label-column",2,"vertical-align","middle"],["class","label-column","style","vertical-align: middle;",4,"ngIf"],[3,"pageChange"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵelement(1,"cgr-header"),o.ɵɵelement(2,"loading-bar"),o.ɵɵelementStart(3,"div",1),o.ɵɵtemplate(4,u,2,1,"div",2),o.ɵɵelementStart(5,"div",3),o.ɵɵelementStart(6,"h2"),o.ɵɵelement(7,"localize",4),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵtemplate(8,g,22,5,"div",5),o.ɵɵtemplate(9,x,2,1,"div",6),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(4),o.ɵɵproperty("ngIf",null!=t.message),o.ɵɵadvance(4),o.ɵɵproperty("ngIf",t.job),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",t.page&&t.page.results.length>0))},directives:[s.CgrHeaderComponent,c.LoadingBarComponent,d.NgIf,p.LocalizeComponent,d.NgForOf,m.PaginationControlsComponent],pipes:[m.PaginatePipe],styles:[".new-admin-design-main[_ngcontent-%COMP%] {\n \n}\n\n\n.solid-table-wrapper[_ngcontent-%COMP%] {\n background: #F4F4F4;\n border-radius: 15px;\n margin-bottom: 20px;\n}\n.solid-table-footer[_ngcontent-%COMP%] {\n \n border-radius: 0 0 15px 15px;\n padding: 0 0 10px 10px;\n}\n\n\n\n.wrapper[_ngcontent-%COMP%] {\n padding: 10px;\n}"]}),e}();t.SyncDetailsComponent=O,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(O,[{type:r.Component,args:[{selector:"job",templateUrl:"./details.component.html",styleUrls:["./details.css"]}]}],(function(){return[{type:a.SynchronizationConfigService},{type:a.RegistryService},{type:l.ActivatedRoute},{type:a.IOService}]}),null)},615:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LocationManagerComponent=void 0;var r=n(0),i=(n(33),n(263)),o=(n(30),n(518)),a=(n(519),n(111)),l=(n(16),n(0)),s=n(30),c=n(519),d=n(33),p=n(16),m=n(122),u=n(86),g=n(68),h=n(260),f=n(1),y=n(558),v=n(22),b=n(559),S=n(113),C=["simpleEditControl"];function E(e,t){1&e&&(l.ɵɵelementStart(0,"div",16),l.ɵɵelement(1,"localize",17),l.ɵɵelementEnd())}function x(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"div",24),l.ɵɵelementStart(1,"i",25),l.ɵɵlistener("click",(function(){l.ɵɵrestoreView(n);var e=l.ɵɵnextContext(2);return e.changeMode(e.MODE.SEARCH)})),l.ɵɵelement(2,"localize",26),l.ɵɵelementEnd(),l.ɵɵelementEnd()}}function O(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"div",2),l.ɵɵelementStart(1,"div",4),l.ɵɵelementStart(2,"div",5),l.ɵɵelementStart(3,"div",18),l.ɵɵelementStart(4,"input",19),l.ɵɵlistener("keyup.enter",(function(){return l.ɵɵrestoreView(n),l.ɵɵnextContext().search()}))("ngModelChange",(function(e){return l.ɵɵrestoreView(n),l.ɵɵnextContext().text=e})),l.ɵɵelementEnd(),l.ɵɵelementStart(5,"span",20),l.ɵɵelementStart(6,"button",21),l.ɵɵlistener("click",(function(){return l.ɵɵrestoreView(n),l.ɵɵnextContext().search()})),l.ɵɵelement(7,"span",22),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵtemplate(8,x,3,0,"div",23),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd()}if(2&e){var r=l.ɵɵnextContext();l.ɵɵadvance(4),l.ɵɵproperty("ngModel",r.text)("disabled",r.mode!==r.MODE.SEARCH),l.ɵɵadvance(2),l.ɵɵproperty("disabled",r.mode!==r.MODE.SEARCH),l.ɵɵadvance(2),l.ɵɵproperty("ngIf",r.mode===r.MODE.VIEW&&null!=r.current)}}function I(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"div",30),l.ɵɵelementStart(1,"div",31),l.ɵɵlistener("click",(function(e){l.ɵɵrestoreView(n);var r=t.$implicit;return l.ɵɵnextContext(2).select(r,e)})),l.ɵɵelementStart(2,"div",32),l.ɵɵelementStart(3,"i",33),l.ɵɵlistener("click",(function(e){l.ɵɵrestoreView(n);var r=t.$implicit;return l.ɵɵnextContext(2).zoomToFeature(r,e)})),l.ɵɵpipe(4,"localize"),l.ɵɵelementEnd(),l.ɵɵelementStart(5,"h4",34),l.ɵɵtext(6),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd()}if(2&e){var r=t.$implicit;l.ɵɵadvance(3),l.ɵɵproperty("title",l.ɵɵpipeBind1(4,3,"explorer.zoom.label")),l.ɵɵadvance(3),l.ɵɵtextInterpolate2("",r.properties.code," - ",r.properties.displayLabel.localizedValue,"")}}function w(e,t){if(1&e&&(l.ɵɵelementStart(0,"div",2),l.ɵɵelementStart(1,"div",4),l.ɵɵelementStart(2,"div",27),l.ɵɵelementStart(3,"div",28),l.ɵɵtemplate(4,I,7,5,"div",29),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd()),2&e){var n=l.ɵɵnextContext();l.ɵɵadvance(4),l.ɵɵproperty("ngForOf",n.data)}}function M(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"div",2),l.ɵɵelementStart(1,"div",4),l.ɵɵelementStart(2,"feature-panel",35),l.ɵɵlistener("featureChange",(function(){return l.ɵɵrestoreView(n),l.ɵɵnextContext().search()}))("modeChange",(function(e){return l.ɵɵrestoreView(n),l.ɵɵnextContext().onModeChange(e)}))("panelCancel",(function(){return l.ɵɵrestoreView(n),l.ɵɵnextContext().onPanelCancel()}))("panelSubmit",(function(e){return l.ɵɵrestoreView(n),l.ɵɵnextContext().onPanelSubmit(e)})),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd()}if(2&e){var r=l.ɵɵnextContext();l.ɵɵadvance(2),l.ɵɵproperty("type",r.type)("code",r.current.properties.code)("forDate",r.forDate)("readOnly",!r.current.properties.writable)}}function T(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"div",36),l.ɵɵelementStart(1,"div"),l.ɵɵelementStart(2,"div"),l.ɵɵelementStart(3,"label"),l.ɵɵelement(4,"localize",37),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(5,"div"),l.ɵɵelementStart(6,"div",38),l.ɵɵelementStart(7,"input",39),l.ɵɵlistener("ngModelChange",(function(e){return l.ɵɵrestoreView(n),l.ɵɵnextContext().coordinate.latitude=e}))("change",(function(){return l.ɵɵrestoreView(n),l.ɵɵnextContext().refreshDrawFromInput()})),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(8,"div"),l.ɵɵelementStart(9,"div"),l.ɵɵelementStart(10,"label"),l.ɵɵelement(11,"localize",40),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(12,"div"),l.ɵɵelementStart(13,"div",38),l.ɵɵelementStart(14,"input",41),l.ɵɵlistener("ngModelChange",(function(e){return l.ɵɵrestoreView(n),l.ɵɵnextContext().coordinate.longitude=e}))("change",(function(){return l.ɵɵrestoreView(n),l.ɵɵnextContext().refreshDrawFromInput()})),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd()}if(2&e){var r=l.ɵɵnextContext();l.ɵɵadvance(7),l.ɵɵproperty("ngModel",r.coordinate.latitude),l.ɵɵadvance(7),l.ɵɵproperty("ngModel",r.coordinate.longitude)}}var j=function(){function e(e,t,n,r,i,o,a){this.modalService=e,this.mapService=t,this.geomService=n,this.service=r,this.route=i,this.router=o,this.lService=a,this.coordinate={longitude:null,latitude:null},this.MODE={SEARCH:0,VIEW:1},this.editSessionEnabled=!1,this.data=[],this.text="",this.mode=this.MODE.SEARCH,this.dateStr=null,this.forDate=null,this.isEdit=!1,this.active=!1,this.displayDateRequiredError=!1,this.vectorLayers=[],this.baseLayers=[{name:"Satellite",label:"Satellite",id:"satellite-v9",sprite:"mapbox://sprites/mapbox/satellite-v9",url:"mapbox://mapbox.satellite",selected:!0}],this.preventSingleClick=!1,this.hideSearchOptions=!1,this.vot=null}return e.prototype.ngOnInit=function(){var e=this;this.urlSubscriber=this.route.params.subscribe((function(t){var n=t.geoobjectuid,r=t.geoobjecttypecode;e.hideSearchOptions=t.hideSearchOptions,e.backReference=e.route.snapshot?e.route.snapshot.params.backReference:null,e.dateStr=t.datestr,e.handleDateChange(),n&&r&&e.dateStr&&e.service.getGeoObject(n,r).then((function(t){e.setData([t]),e.select(t,null)})).catch((function(t){e.error(t)}))}))},e.prototype.ngOnDestroy=function(){this.geomService.destroy(),this.urlSubscriber.unsubscribe()},e.prototype.ngAfterViewInit=function(){var e=this,t=this.baseLayers[0];this.map=new i.Map({container:"map",style:{version:8,name:t.name,metadata:{"mapbox:autocomposite":!0},sources:{mapbox:{type:"raster",url:t.url,tileSize:256}},sprite:t.sprite,glyphs:window.location.protocol+"//"+window.location.host+acp+"/glyphs/{fontstack}/{range}.pbf",layers:[{id:t.id,type:"raster",source:"mapbox"}]},zoom:2,attributionControl:!1,center:[-78.880453,42.897852]}),this.map.on("load",(function(){e.initMap()})),this.simpleEditControl&&this.map.addControl(this.simpleEditControl)},e.prototype.changeMode=function(e){this.mode=e,this.mode===this.MODE.SEARCH&&(this.isEdit=!1),this.geomService.destroy(!1),this.vot=null},e.prototype.onModeChange=function(e){this.isEdit=e},e.prototype.handleDateChange=function(){null!=this.dateStr&&(this.forDate=new Date(Date.parse(this.dateStr)),this.displayDateRequiredError=!1)},e.prototype.initMap=function(){var e=this;if(this.map.on("style.load",(function(){e.addLayers()})),this.addLayers(),this.map.addControl(new i.NavigationControl({visualizePitch:!0})),this.map.addControl(new i.AttributionControl({compact:!0}),"bottom-right"),this.map.on("click","children-points",(function(t){e.handleMapClickEvent(t)})),this.map.on("click","children-polygon",(function(t){e.handleMapClickEvent(t)})),this.data){var t={type:"FeatureCollection",features:this.data};this.map.getSource("children").setData(t),this.zoomToFeature(this.data[0],null)}this.showOriginalGeometry()},e.prototype.showOriginalGeometry=function(){this.current&&this.addVectorLayer(this.current.properties.uid)},e.prototype.hideOriginalGeometry=function(){this.current&&this.removeVectorLayer(this.current.properties.uid)},e.prototype.handleMapClickEvent=function(e){if(!this.isEdit&&null!=e.features&&e.features.length>0){var t=e.features[0];null==t.properties.code||null!=this.current&&this.current.properties.code===t.properties.code||this.select(t,null)}},e.prototype.onPanelCancel=function(){null!=this.backReference&&this.backReference.length>=2?"CR"===this.backReference.substring(0,2)&&this.router.navigate(["/registry/change-requests"]):this.changeMode(this.MODE.SEARCH);this.showOriginalGeometry()},e.prototype.onPanelSubmit=function(e){var t=this;this.geomService.saveEdits(),e.isChangeRequest?null!=this.backReference&&this.backReference.length>=2&&"CR"===this.backReference.substring(0,2)?(this.bsModalRef=this.modalService.show(a.SuccessModalComponent,{backdrop:!0,class:"error-white-space-pre"}),this.bsModalRef.content.message=this.lService.decode("geoobject-editor.changerequest.submitted"),this.bsModalRef.content.submitText=this.lService.decode("geoobject-editor.changerequest.view"),this.bsModalRef.content.onConfirm.subscribe((function(){t.router.navigate(["/registry/change-requests",e.changeRequestId])}))):(this.bsModalRef=this.modalService.show(a.ConfirmModalComponent,{backdrop:!0,class:"error-white-space-pre"}),this.bsModalRef.content.message=this.lService.decode("geoobject-editor.changerequest.submitted"),this.bsModalRef.content.submitText=this.lService.decode("geoobject-editor.changerequest.view"),this.bsModalRef.content.cancelText=this.lService.decode("geoobject-editor.cancel.returnExplorer"),this.bsModalRef.content.onConfirm.subscribe((function(){t.router.navigate(["/registry/change-requests",e.changeRequestId])})),this.bsModalRef.content.onCancel.subscribe((function(){t.changeMode(t.MODE.SEARCH)}))):(this.bsModalRef=this.modalService.show(a.SuccessModalComponent,{backdrop:!0,class:"error-white-space-pre"}),this.bsModalRef.content.message=this.lService.decode("geoobject-editor.edit.submitted"),this.bsModalRef.content.submitText=this.lService.decode("geoobject-editor.cancel.returnExplorer"),this.bsModalRef.content.onConfirm.subscribe((function(){t.onPanelCancel()})))},e.prototype.addLayers=function(){var e=this,t="children";this.map.addSource(t,{type:"geojson",data:{type:"FeatureCollection",features:[]}}),this.map.addLayer({id:t+"-polygon",type:"fill",source:t,layout:{},paint:{"fill-color":"#80cdc1","fill-opacity":.8,"fill-outline-color":"black"},filter:["all",["match",["geometry-type"],["Polygon","MultiPolygon"],!0,!1]]}),this.map.addLayer({id:t+"-points",type:"circle",source:t,paint:{"circle-radius":10,"circle-color":"#80cdc1","circle-stroke-width":2,"circle-stroke-color":"#FFFFFF"},filter:["all",["match",["geometry-type"],["Point","MultiPont"],!0,!1]]}),this.map.addLayer({id:t+"-label",source:t,type:"symbol",paint:{"text-color":"black","text-halo-color":"#fff","text-halo-width":2},layout:{"text-field":["get","localizedValue",["get","displayLabel"]],"text-font":["NotoSansRegular"],"text-offset":[0,.6],"text-anchor":"top","text-size":12}}),this.vectorLayers.forEach((function(t){e.addVectorLayer(t)}))},e.prototype.handleBasemapStyle=function(e){this.baseLayers.forEach((function(e){e.selected=!1})),e.selected=!0,this.map.setStyle({version:8,name:e.name,metadata:{"mapbox:autocomposite":!0},sources:{mapbox:{type:"raster",url:e.url,tileSize:256}},sprite:e.sprite,glyphs:window.location.protocol+"//"+window.location.host+acp+"/glyphs/{fontstack}/{range}.pbf",layers:[{id:e.id,type:"raster",source:"mapbox"}]})},e.prototype.search=function(){var e=this;this.geomService.destroy(!1),this.mapService.search(this.text,this.dateStr).then((function(t){e.map.getSource("children").setData(t),e.setData(t.features)})).catch((function(t){e.error(t)}))},e.prototype.zoomToFeature=function(e,t){var n=this;null!=t&&t.stopPropagation(),this.preventSingleClick=!1;this.timer=setTimeout((function(){if(!n.preventSingleClick&&e&&null!=e.geometry){var t=o.default(e),r=50,i=20;"Point"!==e.geometry.type&&"MultiPoint"!==e.geometry.type||(r=100,i=12),n.map.fitBounds(t,{padding:r,animate:!0,maxZoom:i})}}),200)},e.prototype.select=function(e,t){var n=this;null!=t&&t.stopPropagation(),this.service.getGeoObjectTypes([e.properties.type],null).then((function(t){n.type=t[0],n.current=e,n.mode=n.MODE.VIEW,n.geomService.initialize(n.map,n.type.geometryType,!n.isEdit),n.geomService.zoomToLayersExtent()})).catch((function(e){n.error(e)}))},e.prototype.setData=function(e){this.data=e},e.prototype.onContextLayerChange=function(e){e.active?this.addVectorLayer(e.oid):this.removeVectorLayer(e.oid)},e.prototype.removeVectorLayer=function(e){var t=this.vectorLayers.indexOf(e);-1!==t&&(this.map.removeLayer(e+"-points"),this.map.removeLayer(e+"-polygon"),this.map.removeLayer(e+"-label"),this.map.removeSource(e),this.vectorLayers.splice(t,1))},e.prototype.addVectorLayer=function(e){if(-1===this.vectorLayers.indexOf(e)){var t=window.location.protocol,n=window.location.host;this.map.addSource(e,{type:"vector",tiles:[t+"//"+n+acp+"/master-list/tile?x={x}&y={y}&z={z}&config="+encodeURIComponent(JSON.stringify({oid:e}))]}),this.map.addLayer({id:e+"-points",type:"circle",source:e,"source-layer":"context",paint:{"circle-radius":10,"circle-color":"#800000","circle-stroke-width":2,"circle-stroke-color":"#FFFFFF"},filter:["all",["match",["geometry-type"],["Point","MultiPont"],!0,!1]]},"children-polygon"),this.map.addLayer({id:e+"-polygon",type:"fill",source:e,"source-layer":"context",layout:{},paint:{"fill-color":"#800000","fill-opacity":.8,"fill-outline-color":"black"},filter:["all",["match",["geometry-type"],["Polygon","MultiPolygon"],!0,!1]]},"children-polygon"),this.map.addLayer({id:e+"-label",source:e,"source-layer":"context",type:"symbol",paint:{"text-color":"black","text-halo-color":"#fff","text-halo-width":2},layout:{"text-field":["case",["has","displayLabel_"+navigator.language.toLowerCase()],["coalesce",["string",["get","displayLabel_"+navigator.language.toLowerCase()]],["string",["get","displayLabel"]]],["string",["get","displayLabel"]]],"text-font":["NotoSansRegular"],"text-offset":[0,.6],"text-anchor":"top","text-size":12}},"children-polygon"),this.vectorLayers.push(e)}},e.prototype.error=function(e){this.bsModalRef=a.ErrorHandler.showErrorAsDialog(e,this.modalService)},e.ɵfac=function(t){return new(t||e)(l.ɵɵdirectiveInject(s.BsModalService),l.ɵɵdirectiveInject(c.MapService),l.ɵɵdirectiveInject(c.GeometryService),l.ɵɵdirectiveInject(c.RegistryService),l.ɵɵdirectiveInject(d.ActivatedRoute),l.ɵɵdirectiveInject(d.Router),l.ɵɵdirectiveInject(p.LocalizationService))},e.ɵcmp=l.ɵɵdefineComponent({type:e,selectors:[["location-manager"]],viewQuery:function(e,t){if(1&e&&l.ɵɵviewQuery(C,1),2&e){var n;l.ɵɵqueryRefresh(n=l.ɵɵloadQuery())&&(t.simpleEditControl=n.first)}},decls:25,vars:13,consts:[[1,""],["id","app-container",1,"container-fluid"],[1,"row"],["id","navigator-left-sidebar",1,"col-md-5","lw-inner-col",2,"height","calc(100vh - 145px)","overflow-y","auto"],[1,"col-md-12"],[1,"location-management-widget-section"],[2,"margin-right","10px"],["key","changeOverTime.forDate","ng-reflect-key","changeOverTime.forDate"],["label","",2,"display","inline-grid",3,"value","inputName","disable","allowInfinity","allowFutureDates","required","classNames","placement","valueChange","change"],["class","error-message",4,"ngIf"],["class","row",4,"ngIf"],["id","site-explorer-map",1,"col-md-7"],[1,"base-layer-panel"],[3,"layerChange"],["id","map",1,"map-view-port"],["style","position:absolute;top:185px;right:10px;color:white;",4,"ngIf"],[1,"error-message"],["key","geoobject.editor.forDate.requiredErrorMessage"],[1,"input-group"],["type","text","name","text",1,"form-control",3,"ngModel","disabled","keyup.enter","ngModelChange"],[1,"input-group-btn"],["type","button",1,"btn","btn-primary",3,"disabled","click"],["aria-hidden","true",1,"glyphicon","glyphicon-search"],["style","padding: 20px 0;",4,"ngIf"],[2,"padding","20px 0"],["aria-hidden","true",1,"fa","fa-arrow-left","clickable",3,"click"],["key","explorer.back.to.results"],["id","hierarchy-tree-container",1,"location-management-widget-section","location-management-list-container"],[1,"list-group"],["class","list-group-item",4,"ngFor","ngForOf"],[1,"list-group-item"],[1,"card","card-default",3,"click"],[1,"card-body"],["aria-hidden","true",1,"fa","fa-map-marker","clickable",2,"float","right","font-size","25px",3,"title","click"],["title","View Geo-Object details",1,"clickable",2,"word-break","break-all"],[3,"type","code","forDate","readOnly","featureChange","modeChange","panelCancel","panelSubmit"],[2,"position","absolute","top","185px","right","10px","color","white"],["key","geoobject.editor.geometry.latitude.label"],[1,"text-left"],["name","latitude","type","number","required","",1,"form-control",3,"ngModel","ngModelChange","change"],["key","geoobject.editor.geometry.longitude.label"],["name","longitude","type","number","required","",1,"form-control",3,"ngModel","ngModelChange","change"]],template:function(e,t){1&e&&(l.ɵɵelementStart(0,"div",0),l.ɵɵelement(1,"cgr-header"),l.ɵɵelement(2,"loading-bar"),l.ɵɵelementStart(3,"div",1),l.ɵɵelementStart(4,"div",2),l.ɵɵelementStart(5,"div",3),l.ɵɵelementStart(6,"div"),l.ɵɵelementStart(7,"div",2),l.ɵɵelementStart(8,"div",4),l.ɵɵelementStart(9,"div",2),l.ɵɵelementStart(10,"div",4),l.ɵɵelementStart(11,"div",5),l.ɵɵelementStart(12,"span",6),l.ɵɵelement(13,"localize",7),l.ɵɵelementEnd(),l.ɵɵelementStart(14,"date-field",8),l.ɵɵlistener("valueChange",(function(e){return t.dateStr=e}))("change",(function(){return t.handleDateChange()})),l.ɵɵelementEnd(),l.ɵɵtemplate(15,E,2,0,"div",9),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵtemplate(16,O,9,4,"div",10),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵtemplate(17,w,5,1,"div",10),l.ɵɵelementEnd(),l.ɵɵtemplate(18,M,3,4,"div",10),l.ɵɵelementEnd(),l.ɵɵelementStart(19,"div",11),l.ɵɵelementStart(20,"div",2),l.ɵɵelementStart(21,"article",12),l.ɵɵelementStart(22,"layer-panel",13),l.ɵɵlistener("layerChange",(function(e){return t.onContextLayerChange(e)})),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelement(23,"div",14),l.ɵɵtemplate(24,T,15,2,"div",15),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd()),2&e&&(l.ɵɵadvance(14),l.ɵɵproperty("value",t.dateStr)("inputName","dateStr")("disable",t.mode!==t.MODE.SEARCH&&!t.hideSearchOptions)("allowInfinity",!1)("allowFutureDates",!1)("required",!1)("classNames",t.displayDateRequiredError?"date-required-message":"")("placement","right"),l.ɵɵadvance(1),l.ɵɵproperty("ngIf",t.displayDateRequiredError),l.ɵɵadvance(1),l.ɵɵproperty("ngIf",!t.hideSearchOptions),l.ɵɵadvance(1),l.ɵɵproperty("ngIf",t.mode===t.MODE.SEARCH),l.ɵɵadvance(1),l.ɵɵproperty("ngIf",t.mode===t.MODE.VIEW&&null!=t.current),l.ɵɵadvance(6),l.ɵɵproperty("ngIf",t.editingControl&&("POINT"===t.type.geometryType||"MULTIPOINT"===t.type.geometryType)))},directives:[m.CgrHeaderComponent,u.LoadingBarComponent,g.LocalizeComponent,h.DateFieldComponent,f.NgIf,y.LayerPanelComponent,v.DefaultValueAccessor,v.NgControlStatus,v.NgModel,f.NgForOf,b.FeaturePanelComponent,v.NumberValueAccessor,v.RequiredValidator],pipes:[S.LocalizePipe],styles:["#hierarchy-tree-container[_ngcontent-%COMP%] {\n\theight: 100%;\n overflow-y: auto;\n}\n\n.location-management-widget-section[_ngcontent-%COMP%] {\n\tmargin: 5px 0;\n}\n.location-management-widget-section[_ngcontent-%COMP%] > select[_ngcontent-%COMP%] {\n\tfloat: none !important;\n}\n\n.list-group-item[_ngcontent-%COMP%] {\n\tborder: none;\n\tborder-bottom: 1px solid #ddd;\n\tmargin-bottom: 0;\n}\n.list-group-item[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n\theight: auto;\n}\n\n.breadcrumb[_ngcontent-%COMP%]{\n\tpadding: 10px 0;\n\tbackground-color: white;\n\tmargin:0;\n}\n\n.layer-toggle[_ngcontent-%COMP%] {\n\tcursor: pointer; \n\tbackground: #fff; \n\tpadding: 8px; \n\tborder-radius: 4px;\n\twidth: fit-content;\n}\n\n.layer-toggle[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n\theight: auto;\n}\n.layer-toggle[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n\tmargin-left: 5px;\n}\n\n.arrow[_ngcontent-%COMP%] {\n border: solid black;\n border-width: 0 1px 1px 0;\n display: inline-block;\n padding: 5px;\n}\n.arrow-right[_ngcontent-%COMP%] {\n transform: rotate(-45deg);\n -webkit-transform: rotate(-45deg);\n}\n.arrow-down[_ngcontent-%COMP%] {\n transform: rotate(45deg);\n -webkit-transform: rotate(45deg);\n}\n\n.fa.fa-arrow-left[_ngcontent-%COMP%]::before {\n\tmargin-right:5px;\n}"]}),e}();t.LocationManagerComponent=j,("undefined"==typeof ngDevMode||ngDevMode)&&l.ɵsetClassMetadata(j,[{type:r.Component,args:[{selector:"location-manager",templateUrl:"./location-manager.component.html",styleUrls:["./location-manager.css"]}]}],(function(){return[{type:s.BsModalService},{type:c.MapService},{type:c.GeometryService},{type:c.RegistryService},{type:d.ActivatedRoute},{type:d.Router},{type:p.LocalizationService}]}),{simpleEditControl:[{type:r.ViewChild,args:["simpleEditControl"]}]})},616:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ContextLayerModalComponent=void 0;var r=n(0),i=(n(30),n(31)),o=n(0),a=n(30),l=n(68),s=n(22),c=n(1);function d(e,t){if(1&e&&(o.ɵɵelementStart(0,"div"),o.ɵɵelementStart(1,"input",15),o.ɵɵlistener("change",(function(){var e=t.$implicit;return e.enabled=!e.enabled})),o.ɵɵelementEnd(),o.ɵɵtext(2),o.ɵɵelementEnd()),2&e){var n=t.$implicit;o.ɵɵadvance(1),o.ɵɵproperty("checked",n.enabled),o.ɵɵadvance(1),o.ɵɵtextInterpolate1(" ",n.displayLabel," ")}}function p(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",14),o.ɵɵelementStart(1,"h4"),o.ɵɵtext(2),o.ɵɵelementEnd(),o.ɵɵelementStart(3,"div",6),o.ɵɵtemplate(4,d,3,2,"div",7),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext().$implicit;o.ɵɵadvance(2),o.ɵɵtextInterpolate(n.displayLabel),o.ɵɵadvance(2),o.ɵɵproperty("ngForOf",n.contextLayers)}}function m(e,t){if(1&e&&(o.ɵɵelementStart(0,"div"),o.ɵɵtemplate(1,p,5,2,"div",13),o.ɵɵelementEnd()),2&e){var n=t.$implicit,r=o.ɵɵnextContext();o.ɵɵadvance(1),o.ɵɵproperty("ngIf",r.groupHasContextLayers(n.oid))}}var u=function(){function e(e){this.bsModalRef=e}return e.prototype.ngOnInit=function(){this.onSubmit=new i.Subject},e.prototype.groupHasContextLayers=function(e){var t=!1;return this.contextLayerGroups.forEach((function(n){n.oid===e&&n.contextLayers.length>0&&(t=!0)})),t},e.prototype.confirm=function(){this.onSubmit.next(this.contextLayerGroups),this.bsModalRef.hide()},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.BsModalRef))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["context-layer-modal"]],decls:19,vars:1,consts:[[1,"modal-body"],[1,"heading"],["key","explorer.add.context.layers.modal.title"],["name","export-form",1,"modal-form"],[1,"row"],[1,"col-md-12"],[1,"list-group"],[4,"ngFor","ngForOf"],[1,"button-holder"],["type","button","role","button","aria-disabled","false",1,"btn","btn-default",3,"click"],["key","modal.button.cancel"],["type","button","role","button",1,"btn","btn-primary",3,"click"],["key","modal.button.submit"],["class","list-group-item","style","border: none;",4,"ngIf"],[1,"list-group-item",2,"border","none"],["type","checkbox",2,"margin-left","10px",3,"checked","change"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵelementStart(1,"div",1),o.ɵɵelementStart(2,"h2"),o.ɵɵelement(3,"localize",2),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(4,"form",3),o.ɵɵelementStart(5,"fieldset"),o.ɵɵelementStart(6,"div",4),o.ɵɵelementStart(7,"div",5),o.ɵɵelementStart(8,"div",6),o.ɵɵtemplate(9,m,2,1,"div",7),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(10,"div",4),o.ɵɵelementStart(11,"div",5),o.ɵɵelementStart(12,"div",8),o.ɵɵelementStart(13,"button",9),o.ɵɵlistener("click",(function(){return t.bsModalRef.hide()})),o.ɵɵelementStart(14,"span"),o.ɵɵelement(15,"localize",10),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(16,"button",11),o.ɵɵlistener("click",(function(){return t.confirm()})),o.ɵɵelementStart(17,"span"),o.ɵɵelement(18,"localize",12),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(9),o.ɵɵproperty("ngForOf",t.contextLayerGroups))},directives:[l.LocalizeComponent,s.ɵangular_packages_forms_forms_ba,s.NgControlStatusGroup,s.NgForm,c.NgForOf,c.NgIf],styles:["#hierarchy-tree-container[_ngcontent-%COMP%] {\n\theight: 100%;\n overflow-y: auto;\n}\n\n.location-management-widget-section[_ngcontent-%COMP%] {\n\tmargin: 5px 0;\n}\n.location-management-widget-section[_ngcontent-%COMP%] > select[_ngcontent-%COMP%] {\n\tfloat: none !important;\n}\n\n.list-group-item[_ngcontent-%COMP%] {\n\tborder: none;\n\tborder-bottom: 1px solid #ddd;\n\tmargin-bottom: 0;\n}\n.list-group-item[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n\theight: auto;\n}\n\n.breadcrumb[_ngcontent-%COMP%]{\n\tpadding: 10px 0;\n\tbackground-color: white;\n\tmargin:0;\n}\n\n.layer-toggle[_ngcontent-%COMP%] {\n\tcursor: pointer; \n\tbackground: #fff; \n\tpadding: 8px; \n\tborder-radius: 4px;\n\twidth: fit-content;\n}\n\n.layer-toggle[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n\theight: auto;\n}\n.layer-toggle[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n\tmargin-left: 5px;\n}\n\n.arrow[_ngcontent-%COMP%] {\n border: solid black;\n border-width: 0 1px 1px 0;\n display: inline-block;\n padding: 5px;\n}\n.arrow-right[_ngcontent-%COMP%] {\n transform: rotate(-45deg);\n -webkit-transform: rotate(-45deg);\n}\n.arrow-down[_ngcontent-%COMP%] {\n transform: rotate(45deg);\n -webkit-transform: rotate(45deg);\n}\n\n.fa.fa-arrow-left[_ngcontent-%COMP%]::before {\n\tmargin-right:5px;\n}"]}),e}();t.ContextLayerModalComponent=u,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(u,[{type:r.Component,args:[{selector:"context-layer-modal",templateUrl:"./context-layer-modal.component.html",styleUrls:["./location-manager.css"]}]}],(function(){return[{type:a.BsModalRef}]}),null)},617:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DatasetLocationManagerComponent=void 0;var r=n(0),i=(n(33),n(30),n(263)),o=(n(519),n(112),n(111)),a=(n(16),n(0)),l=n(519),s=n(30),c=n(33),d=n(16),p=n(112),m=n(122),u=n(86),g=n(1),h=n(558),f=n(68),y=n(559);function v(e,t){if(1&e&&(a.ɵɵelementStart(0,"h3"),a.ɵɵtext(1),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext(2);a.ɵɵadvance(1),a.ɵɵtextInterpolate(n.type.label.localizedValue)}}function b(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",8),a.ɵɵelementStart(1,"div",1),a.ɵɵelementStart(2,"div",9),a.ɵɵelementStart(3,"div",10),a.ɵɵtemplate(4,v,2,1,"h3",11),a.ɵɵelementStart(5,"h4"),a.ɵɵelement(6,"localize",12),a.ɵɵtext(7),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"feature-panel",13),a.ɵɵlistener("featureChange",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().onFeatureChange()}))("modeChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().onModeChange(e)}))("panelCancel",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().onPanelCancel()}))("panelSubmit",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().onPanelSubmit(e)})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext();a.ɵɵadvance(4),a.ɵɵproperty("ngIf",r.type),a.ɵɵadvance(3),a.ɵɵtextInterpolate1(": ",r.formatDate(r.forDate),""),a.ɵɵadvance(1),a.ɵɵproperty("type",r.type)("code",r.code)("forDate",r.forDate)("datasetId",r.datasetId)("readOnly",r.readOnly)}}function S(e,t){1&e&&a.ɵɵelement(0,"i",17)}function C(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",18),a.ɵɵelementStart(1,"span",19),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(2).onNewGeoObject()})),a.ɵɵelementStart(2,"button",20),a.ɵɵelement(3,"localize",21),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()}}function E(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",14),a.ɵɵlistener("mouseenter",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().toolsIconHover=!0}))("mouseleave",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().toolsIconHover=!1})),a.ɵɵtemplate(1,S,1,0,"i",15),a.ɵɵtemplate(2,C,4,0,"div",16),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵproperty("ngIf",!r.toolsIconHover),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",r.toolsIconHover)}}var x=function(e,t){return{"col-md-7":e,"col-md-12":t}},O=function(e){return[e]},I=function(){function e(e,t,n,r,i,o,a,l,s){this.mapService=e,this.geomService=t,this.service=n,this.modalService=r,this.route=i,this.lService=a,this.dateService=l,this.router=s,this.coordinate={longitude:null,latitude:null},this.MODE={VERSIONS:"VERSIONS",ATTRIBUTES:"ATTRIBUTES",HIERARCHY:"HIERARCHY"},this.toolsIconHover=!1,this.readOnly=!1,this.editOnly=!1,this.isEdit=!1,this.vectorLayers=[],this.baseLayers=[{name:"Satellite",label:"Satellite",id:"satellite-v9",sprite:"mapbox://sprites/mapbox/satellite-v9",url:"mapbox://mapbox.satellite",selected:!0}],this.mode=null,this.forDate=new Date,this.isMaintainer=o.isAdmin()||o.isMaintainer()}return e.prototype.ngOnInit=function(){var e=this;this.datasetId=this.route.snapshot.params.datasetId,this.typeCode=this.route.snapshot.params.typeCode,this.date=this.route.snapshot.params.date,this.readOnly="true"===this.route.snapshot.params.readOnly,this.editOnly="true"===this.route.snapshot.params.editOnly,this.backReference=this.route.snapshot.params.backReference,null!=this.route.snapshot.params.code&&(this.code=this.route.snapshot.params.code),this.forDate=this.dateService.getDateFromDateString(this.date),this.service.getGeoObjectTypes([this.typeCode],null).then((function(t){e.type=t[0],e.geomService.initialize(e.map,e.type.geometryType,!e.isEdit)})).catch((function(t){e.error(t)}))},e.prototype.onPanelCancel=function(){if(null!=this.backReference&&this.backReference.length>=2&&"ML"===this.backReference.substring(0,2)){var e="T"===this.backReference.substring(3,3),t=this.backReference.substring(3);this.router.navigate(["/registry/master-list",t,e])}this.showOriginalGeometry()},e.prototype.onPanelSubmit=function(e){var t=this;if(this.geomService.saveEdits(),this.bsModalRef=this.modalService.show(o.GenericModalComponent,{backdrop:!0,class:"error-white-space-pre"}),e.isChangeRequest){var n=this.lService.decode("geoobject-editor.changerequest.submitted");(r=[]).push({label:this.lService.decode("geoobject-editor.cancel.returnList"),onClick:function(){t.onPanelCancel()},shouldClose:!0,class:"btn-primary"}),r.push({label:this.lService.decode("geoobject-editor.changerequest.view"),onClick:function(){t.router.navigate(["/registry/change-requests",e.changeRequestId])},shouldClose:!0,class:"btn-default"}),r.push({label:this.lService.decode("geoobject-editor.continueEditing"),onClick:function(){},shouldClose:!0,class:"btn-default"}),this.bsModalRef.content.init(n,r)}else{var r;n=this.lService.decode("geoobject-editor.edit.submitted");(r=[]).push({label:this.lService.decode("geoobject-editor.cancel.returnList"),onClick:function(){t.onPanelCancel()},shouldClose:!0,class:"btn-primary"}),r.push({label:this.lService.decode("geoobject-editor.continueEditing"),onClick:function(){},shouldClose:!0,class:"btn-default"}),this.bsModalRef.content.init(n,r)}},e.prototype.ngOnDestroy=function(){this.geomService.destroy()},e.prototype.ngAfterViewInit=function(){var e=this,t=this.baseLayers[0];this.map=new i.Map({container:"dataset-map",style:{version:8,name:t.name,metadata:{"mapbox:autocomposite":!0},sources:{"mapbox-satellite":{type:"raster",url:t.url,tileSize:256}},sprite:t.sprite,glyphs:window.location.protocol+"//"+window.location.host+acp+"/glyphs/{fontstack}/{range}.pbf",layers:[]},zoom:2,attributionControl:!1,center:[-78.880453,42.897852]}),this.map.on("load",(function(){e.initMap()}))},e.prototype.onModeChange=function(e){this.isEdit=e,this.geomService.destroy(!1)},e.prototype.initMap=function(){var e=this;"__NEW__"!==this.code&&this.service.getGeoObjectBoundsAtDate(this.code,this.typeCode,this.date).then((function(t){if(t){var n=new i.LngLatBounds([t[0],t[1]],[t[2],t[3]]),r=50,o=20;"POINT"!==e.type.geometryType&&"MULTIPOINT"!==e.type.geometryType||(r=100,o=12),e.map.fitBounds(n,{padding:r,animate:!1,maxZoom:o})}})),this.map.on("style.load",(function(){e.addLayers()})),this.addLayers(),this.map.addControl(new i.NavigationControl({visualizePitch:!0})),this.map.addControl(new i.AttributionControl({compact:!0}),"bottom-right"),this.map.on("click",this.datasetId+"-points",(function(t){e.handleMapClickEvent(t)})),this.map.on("click",this.datasetId+"-polygon",(function(t){e.handleMapClickEvent(t)})),this.showOriginalGeometry()},e.prototype.showOriginalGeometry=function(){this.addVectorLayer(this.datasetId)},e.prototype.hideOriginalGeometry=function(){this.removeVectorLayer(this.datasetId)},e.prototype.addLayers=function(){var e=this;this.map.addLayer({type:"raster",id:"satellite-map",source:"mapbox-satellite"}),this.vectorLayers.forEach((function(t){e.addVectorLayer(t)}))},e.prototype.handleBasemapStyle=function(e){"streets-v11"===e.id?this.map.setStyle(e.url):"satellite-v9"===e.id&&this.map.setStyle({version:8,name:e.name,metadata:{"mapbox:autocomposite":!0},sources:{"mapbox-satellite":{type:"raster",url:e.url,tileSize:256}},sprite:e.sprite,glyphs:window.location.protocol+"//"+window.location.host+acp+"/glyphs/{fontstack}/{range}.pbf",layers:[{id:e.id,type:"raster",source:"mapbox-satellite"}]})},e.prototype.onContextLayerChange=function(e){e.active?this.addVectorLayer(e.oid):this.removeVectorLayer(e.oid)},e.prototype.removeVectorLayer=function(e){var t=this.vectorLayers.indexOf(e);-1!==t&&(this.map.removeLayer(e+"-points"),this.map.removeLayer(e+"-polygon"),this.map.removeLayer(e+"-points-selected"),this.map.removeLayer(e+"-polygon-selected"),this.map.removeLayer(e+"-label"),this.map.removeSource(e),this.vectorLayers.splice(t,1))},e.prototype.addVectorLayer=function(e){if(-1===this.vectorLayers.indexOf(e)){var t=e!==this.datasetId?this.datasetId+"-points":null,n=window.location.protocol,r=window.location.host;this.map.addSource(e,{type:"vector",tiles:[n+"//"+r+acp+"/master-list/tile?x={x}&y={y}&z={z}&config="+encodeURIComponent(JSON.stringify({oid:e}))]}),this.map.addLayer({id:e+"-points",type:"circle",source:e,"source-layer":"context",paint:{"circle-radius":10,"circle-color":"#80cdc1","circle-stroke-width":2,"circle-stroke-color":"#FFFFFF"},filter:["all",["match",["geometry-type"],["Point","MultiPont"],!0,!1]]},t),this.map.addLayer({id:e+"-polygon",type:"fill",source:e,"source-layer":"context",layout:{},paint:{"fill-color":"#80cdc1","fill-opacity":.8,"fill-outline-color":"black"},filter:["all",["match",["geometry-type"],["Polygon","MultiPolygon"],!0,!1]]},t),e===this.datasetId&&(this.map.addLayer({id:e+"-points-selected",type:"circle",source:e,"source-layer":"context",paint:{"circle-radius":10,"circle-color":"#800000","circle-stroke-width":2,"circle-stroke-color":"#FFFFFF"},filter:["all",["==",["get","code"],null!=this.code?this.code:""],["match",["geometry-type"],["Point","MultiPont"],!0,!1]]},t),this.map.addLayer({id:e+"-polygon-selected",type:"fill",source:e,"source-layer":"context",layout:{},paint:{"fill-color":"#800000","fill-opacity":.8,"fill-outline-color":"black"},filter:["all",["==",["get","code"],null!=this.code?this.code:""],["match",["geometry-type"],["Polygon","MultiPolygon"],!0,!1]]},t)),this.map.addLayer({id:e+"-label",source:e,"source-layer":"context",type:"symbol",paint:{"text-color":"black","text-halo-color":"#fff","text-halo-width":2},layout:{"text-field":["case",["has","displayLabel_"+navigator.language.toLowerCase()],["coalesce",["string",["get","displayLabel_"+navigator.language.toLowerCase()]],["string",["get","displayLabel"]]],["string",["get","displayLabel"]]],"text-font":["NotoSansRegular"],"text-offset":[0,.6],"text-anchor":"top","text-size":12}},t),this.vectorLayers.push(e)}},e.prototype.onFeatureChange=function(){this.hideOriginalGeometry(),this.showOriginalGeometry()},e.prototype.handleMapClickEvent=function(e){if(!this.isEdit&&null!=e.features&&e.features.length>0){var t=e.features[0];null!=t.properties.code&&this.code!==t.properties.code&&(this.code=t.properties.code,this.map.setFilter(this.datasetId+"-points-selected",["all",["==",["get","code"],null!=this.code?this.code:""],["match",["geometry-type"],["Point","MultiPont"],!0,!1]]),this.map.setFilter(this.datasetId+"-polygon-selected",["all",["==",["get","code"],null!=this.code?this.code:""],["match",["geometry-type"],["Polygon","MultiPolygon"],!0,!1]]))}},e.prototype.onNewGeoObject=function(){this.code="__NEW__"},e.prototype.formatDate=function(e){return this.dateService.formatDateForDisplay(e)},e.prototype.error=function(e){this.bsModalRef=o.ErrorHandler.showErrorAsDialog(e,this.modalService)},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(l.MapService),a.ɵɵdirectiveInject(l.GeometryService),a.ɵɵdirectiveInject(l.RegistryService),a.ɵɵdirectiveInject(s.BsModalService),a.ɵɵdirectiveInject(c.ActivatedRoute),a.ɵɵdirectiveInject(d.AuthService),a.ɵɵdirectiveInject(d.LocalizationService),a.ɵɵdirectiveInject(p.DateService),a.ɵɵdirectiveInject(c.Router))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["dataset-location-manager"]],decls:12,vars:9,consts:[["id","app-container",1,"container-fluid"],[1,"row"],["id","navigator-left-sidebar","class","col-md-5 lw-inner-col","style","height: calc(100vh - 145px);overflow-y: auto;",4,"ngIf"],["id","site-explorer-map",3,"ngClass"],[1,"base-layer-panel"],[3,"filter","layerChange","baseLayerChange"],["class","layer-toggle","style","margin-top:10px;",3,"mouseenter","mouseleave",4,"ngIf"],["id","dataset-map",1,"map-view-port"],["id","navigator-left-sidebar",1,"col-md-5","lw-inner-col",2,"height","calc(100vh - 145px)","overflow-y","auto"],[1,"col-md-12"],["id","attributes-header"],[4,"ngIf"],["key","cgr.validity.valid.on.label"],[3,"type","code","forDate","datasetId","readOnly","featureChange","modeChange","panelCancel","panelSubmit"],[1,"layer-toggle",2,"margin-top","10px",3,"mouseenter","mouseleave"],["class","fa fa-plus-square","style","vertical-align: middle; font-size: 18px; color: black;",4,"ngIf"],["style","margin-top:10px;",4,"ngIf"],[1,"fa","fa-plus-square",2,"vertical-align","middle","font-size","18px","color","black"],[2,"margin-top","10px"],["role","button",3,"click"],[1,"btn","btn-primary"],["key","masterlist.newGeoObject"]],template:function(e,t){1&e&&(a.ɵɵelementStart(0,"div"),a.ɵɵelement(1,"cgr-header"),a.ɵɵelement(2,"loading-bar"),a.ɵɵelementStart(3,"div",0),a.ɵɵelementStart(4,"div",1),a.ɵɵtemplate(5,b,9,7,"div",2),a.ɵɵelementStart(6,"div",3),a.ɵɵelementStart(7,"div",1),a.ɵɵelementStart(8,"article",4),a.ɵɵelementStart(9,"layer-panel",5),a.ɵɵlistener("layerChange",(function(e){return t.onContextLayerChange(e)}))("baseLayerChange",(function(e){return t.handleBasemapStyle(e)})),a.ɵɵelementEnd(),a.ɵɵtemplate(10,E,3,2,"div",6),a.ɵɵelementEnd(),a.ɵɵelement(11,"div",7),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e&&(a.ɵɵadvance(5),a.ɵɵproperty("ngIf",null!=t.type&&null!=t.code),a.ɵɵadvance(1),a.ɵɵproperty("ngClass",a.ɵɵpureFunction2(4,x,null!=t.code,null==t.code)),a.ɵɵadvance(3),a.ɵɵproperty("filter",a.ɵɵpureFunction1(7,O,t.datasetId)),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",!t.editOnly))},directives:[m.CgrHeaderComponent,u.LoadingBarComponent,g.NgIf,g.NgClass,h.LayerPanelComponent,f.LocalizeComponent,y.FeaturePanelComponent],styles:["#hierarchy-tree-container[_ngcontent-%COMP%] {\n\theight: calc(100vh - 429px);\n overflow-y: auto;\n}\n\n.location-management-widget-section[_ngcontent-%COMP%] {\n\tmargin: 5px 0;\n}\n.location-management-widget-section[_ngcontent-%COMP%] > select[_ngcontent-%COMP%] {\n\tfloat: none !important;\n}\n\n.list-group-item[_ngcontent-%COMP%] {\n\tborder: none;\n\tborder-bottom: 1px solid #ddd;\n\tmargin-bottom: 0;\n}\n.list-group-item[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n\theight: auto;\n}\n\n.breadcrumb[_ngcontent-%COMP%]{\n\tpadding: 10px 0;\n\tbackground-color: white;\n\tmargin:0;\n}\n\n.layer-toggle[_ngcontent-%COMP%] {\n\tcursor: pointer; \n\tbackground: #fff; \n\tpadding: 8px; \n\tborder-radius: 4px;\n\twidth: fit-content;\n}\n\n.layer-toggle[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n\theight: auto;\n}\n.layer-toggle[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n\tmargin-left: 5px;\n}\n\n#attributes-header[_ngcontent-%COMP%] {\n\tbackground: #adadad;\n padding: 2px 15px;\n margin: 10px 0;\n color: white;\n border-radius: 3px;\n}"]}),e}();t.DatasetLocationManagerComponent=I,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(I,[{type:r.Component,args:[{selector:"dataset-location-manager",templateUrl:"./dataset-location-manager.component.html",styleUrls:["./dataset-location-manager.css"]}]}],(function(){return[{type:l.MapService},{type:l.GeometryService},{type:l.RegistryService},{type:s.BsModalService},{type:c.ActivatedRoute},{type:d.AuthService},{type:d.LocalizationService},{type:p.DateService},{type:c.Router}]}),null)},618:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HistoricalEventModuleComponent=void 0;var r=n(0),i=n(0),o=n(122),a=n(86),l=n(1),s=n(33),c=n(68),d=n(619),p=n(621);function m(e,t){1&e&&i.ɵɵelement(0,"localize",10)}function u(e,t){1&e&&i.ɵɵelement(0,"localize",12)}function g(e,t){1&e&&i.ɵɵelement(0,"transition-event-table")}function h(e,t){1&e&&i.ɵɵelement(0,"historical-report")}var f=function(){function e(){this.tab="HISTORICAL-EVENT"}return e.prototype.handleTab=function(e){this.tab=e},e.ɵfac=function(t){return new(t||e)},e.ɵcmp=i.ɵɵdefineComponent({type:e,selectors:[["historical-event-module"]],decls:24,vars:6,consts:[[1,"new-admin-design-main"],["id","app-container",1,"container-fluid",2,"height","100%"],[1,"row"],[1,"col-md-12"],[1,"heading"],["key","transition.event.events",4,"ngIf"],["key","historical.row.report",4,"ngIf"],[1,"inner-col-content-wrapper",2,"padding-top","30px","margin-top","10px"],[1,"form-group","button-row"],[2,"border-bottom","1px solid",3,"routerLink","ngClass","click"],["key","transition.event.events"],[2,"margin-left","5px","border-bottom","1px solid",3,"routerLink","ngClass","click"],["key","historical.row.report"],[2,"border-top","solid 3px #6BA542"],[4,"ngIf"]],template:function(e,t){1&e&&(i.ɵɵelementStart(0,"div",0),i.ɵɵelement(1,"cgr-header"),i.ɵɵelement(2,"loading-bar"),i.ɵɵelementStart(3,"div",1),i.ɵɵelementStart(4,"div",2),i.ɵɵelementStart(5,"div",3),i.ɵɵelementStart(6,"div"),i.ɵɵelementStart(7,"div",4),i.ɵɵelementStart(8,"h2"),i.ɵɵtemplate(9,m,1,0,"localize",5),i.ɵɵtemplate(10,u,1,0,"localize",6),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(11,"div",7),i.ɵɵelementStart(12,"div",2),i.ɵɵelementStart(13,"div",3),i.ɵɵelementStart(14,"div",8),i.ɵɵelementStart(15,"a",9),i.ɵɵlistener("click",(function(){return t.handleTab("HISTORICAL-EVENT")})),i.ɵɵelement(16,"localize",10),i.ɵɵelementEnd(),i.ɵɵelementStart(17,"a",11),i.ɵɵlistener("click",(function(){return t.handleTab("HISTORICAL-REPORT")})),i.ɵɵelement(18,"localize",12),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelement(19,"hr",13),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(20,"div",2),i.ɵɵelementStart(21,"div",3),i.ɵɵtemplate(22,g,1,0,"transition-event-table",14),i.ɵɵtemplate(23,h,1,0,"historical-report",14),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd()),2&e&&(i.ɵɵadvance(9),i.ɵɵproperty("ngIf","HISTORICAL-EVENT"===t.tab),i.ɵɵadvance(1),i.ɵɵproperty("ngIf","HISTORICAL-REPORT"===t.tab),i.ɵɵadvance(5),i.ɵɵproperty("ngClass","HISTORICAL-EVENT"===t.tab?"cr-filter-link-active":""),i.ɵɵadvance(2),i.ɵɵproperty("ngClass","HISTORICAL-REPORT"===t.tab?"cr-filter-link-active":""),i.ɵɵadvance(5),i.ɵɵproperty("ngIf","HISTORICAL-EVENT"===t.tab),i.ɵɵadvance(1),i.ɵɵproperty("ngIf","HISTORICAL-REPORT"===t.tab))},directives:[o.CgrHeaderComponent,a.LoadingBarComponent,l.NgIf,s.RouterLinkWithHref,l.NgClass,c.LocalizeComponent,d.TransitionEventTableComponent,p.HistoricalReportComponent],encapsulation:2}),e}();t.HistoricalEventModuleComponent=f,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(f,[{type:r.Component,args:[{selector:"historical-event-module",templateUrl:"./historical-event-module.component.html",styleUrls:[]}]}],null,null)},619:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TransitionEventTableComponent=void 0;var r=n(0),i=n(7),o=(n(30),n(111)),a=(n(523),n(620)),l=(n(16),n(519),n(0)),s=n(523),c=n(30),d=n(519),p=n(16),m=n(68),u=n(22),g=n(1),h=n(260),f=n(204);function y(e,t){if(1&e&&(l.ɵɵelementStart(0,"h5"),l.ɵɵtext(1),l.ɵɵelementEnd()),2&e){var n=t.item;l.ɵɵadvance(1),l.ɵɵtextInterpolate2("",n.name," : ",n.code,"")}}function v(e,t){if(1&e&&(l.ɵɵelementStart(0,"option",30),l.ɵɵtext(1),l.ɵɵelementEnd()),2&e){var n=t.$implicit;l.ɵɵproperty("value",n.code),l.ɵɵadvance(1),l.ɵɵtextInterpolate(n.label)}}var b=function(e,t){return{"fa-pencil":e,"fa-eye":t}};function S(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"a",37),l.ɵɵlistener("click",(function(){l.ɵɵrestoreView(n);var e=l.ɵɵnextContext().$implicit;return l.ɵɵnextContext().onView(e)})),l.ɵɵelementEnd()}if(2&e){var r=l.ɵɵnextContext().$implicit;l.ɵɵproperty("ngClass",l.ɵɵpureFunction2(1,b,-1!==r.permissions.indexOf("WRITE"),-1===r.permissions.indexOf("WRITE")))}}function C(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"a",38),l.ɵɵlistener("click",(function(e){l.ɵɵrestoreView(n);var t=l.ɵɵnextContext().$implicit;return l.ɵɵnextContext().deleteEvent(e,t)})),l.ɵɵelementEnd()}}function E(e,t){if(1&e&&(l.ɵɵelementStart(0,"tr",31),l.ɵɵelementStart(1,"td",32),l.ɵɵtemplate(2,S,1,4,"a",33),l.ɵɵtemplate(3,C,1,0,"a",34),l.ɵɵelementEnd(),l.ɵɵelementStart(4,"td",35),l.ɵɵelementStart(5,"h5"),l.ɵɵelementStart(6,"strong"),l.ɵɵtext(7),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(8,"td",2),l.ɵɵelementStart(9,"h5"),l.ɵɵelementStart(10,"strong"),l.ɵɵtext(11),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(12,"td",36),l.ɵɵelementStart(13,"h5"),l.ɵɵelementStart(14,"strong"),l.ɵɵtext(15),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(16,"td",36),l.ɵɵelementStart(17,"h5"),l.ɵɵelementStart(18,"strong"),l.ɵɵtext(19),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(20,"td",36),l.ɵɵelementStart(21,"h5"),l.ɵɵelementStart(22,"strong"),l.ɵɵtext(23),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd()),2&e){var n=t.$implicit,r=l.ɵɵnextContext();l.ɵɵadvance(2),l.ɵɵproperty("ngIf",n.permissions.includes("READ")),l.ɵɵadvance(1),l.ɵɵproperty("ngIf",n.permissions.includes("DELETE")),l.ɵɵadvance(4),l.ɵɵtextInterpolate(r.formatDate(n.eventDate)),l.ɵɵadvance(4),l.ɵɵtextInterpolate(n.description.localizedValue),l.ɵɵadvance(4),l.ɵɵtextInterpolate(n.beforeTypeLabel),l.ɵɵadvance(4),l.ɵɵtextInterpolate(n.afterTypeLabel),l.ɵɵadvance(4),l.ɵɵtextInterpolate(n.eventId)}}function x(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"div",28),l.ɵɵelementStart(1,"pagination-controls",39),l.ɵɵlistener("pageChange",(function(e){return l.ɵɵrestoreView(n),l.ɵɵnextContext().refresh(e)})),l.ɵɵelementEnd(),l.ɵɵelementEnd()}}var O=function(){return["form-control"]},I=function(e,t,n){return{itemsPerPage:e,currentPage:t,totalItems:n}},w=function(){function e(e,t,n,r,i,o){this.service=e,this.modalService=t,this.iService=n,this.dateService=r,this.authService=i,this.localizeService=o,this.page={count:0,pageNumber:1,pageSize:10,resultSet:[]},this.attrConditions=[],this.dateCondition={attribute:"eventDate",startDate:"",endDate:""},this.beforeTypeCondition={attribute:"beforeTypeCode",value:""},this.types=[]}return e.prototype.ngOnInit=function(){var e=this;this.refresh(),this.attrConditions.push(this.dateCondition),this.attrConditions.push(this.beforeTypeCondition),this.iService.listGeoObjectTypes(!1).then((function(t){for(var n=[],r=0;r0))},directives:[m.LocalizeComponent,u.SelectControlValueAccessor,u.NgControlStatus,u.NgModel,u.NgSelectOption,u.ɵangular_packages_forms_forms_z,g.NgForOf,h.DateFieldComponent,g.NgIf,g.NgClass,f.PaginationControlsComponent],pipes:[f.PaginatePipe],styles:[".vertical-center {\n\tposition: relative;\n\ttop: 50%;\n\ttransform: translateY(-50%);\n}\n\n.fa.fa-pencil {\n\tmargin-right:10px;\n}\n\n.status-pending {\n\tcolor: orange;\n}\n\n.status-accepted,\n.status-partial {\n\tcolor: #6BA542;\n}\n\n.status-rejected {\n\tcolor: #d43f3a;\n}\n\n.status-pending-container {\n\tborder: solid 2px orange;\n}\n.status-accepted-container,\n.status-partial-container {\n\tborder: solid 2px #6BA542;\n}\n.status-rejected-container {\n\tborder: solid 2px #d43f3a;\n}\n\n.cr-filter-link-active,\n.cr-filter-link-active:active {\n\t/* border: solid 1px #6BA542; */\n border-radius: 10px;\n background: #6BA542;\n color: white;\n font-weight: bold;\n padding: 3px 15px 3px 15px;\n}\n.cr-filter-link-active:hover,\n.cr-filter-link-active:focus {\n\tcolor:white;\n}\n\n/* .btn {\n\tborder: 2px solid; \n}\n.btn:disabled {\n\tborder: none;\n}\n\n.btn.btn-danger {\n\tbackground-color:#ffeeed; \n\tcolor:#d43f3a;\n}\n.btn.btn-danger:hover,\n.btn.btn-danger:active {\n\tcolor:#d43f3a;\n\tbackground-color:#fff7f6; \n\tborder-color: #d43f3a;\n}\n.btn.btn-danger:disabled:hover {\n\tbackground-color:#ffeeed; \n}\n\n.btn.btn-warning {\n\tbackground-color: #ffefd7;\n\tcolor: orange;\n}\n.btn.btn-warning:hover {\n\tbackground-color: #fff4e5;\n\tborder-color: orange;\n}\n.btn.btn-warning:disabled {\n\tbackground-color: #ffefd7;\n}\n\n.clickable:hover {\n\tbackground-color: #f7f7f7;\n\tcursor: pointer;\n}\n.clickable:hover .arrow.arrow-right {\n\ttransform: rotate(45deg);\n -webkit-transform: rotate(45deg);\n} */\n\ntr.row-active {\n\tbackground-color:#f7f7f7;\n}\n\n\n.arrow {\n border: solid black;\n border-width: 0 1px 1px 0;\n display: inline-block;\n padding: 5px;\n}\n.arrow-right {\n transform: rotate(-45deg);\n -webkit-transform: rotate(-45deg);\n}\n.arrow-down {\n transform: rotate(45deg);\n -webkit-transform: rotate(45deg);\n}\n\n.form-group textarea:focus {\n\tborder-color: #edf4e8;\n\t-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(107,165,66,.6);\n\tbox-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(107,165,66,.6);\n\n}\ntextarea[readonly]:focus {\n\tbox-shadow: none;\n\tborder: 1px solid #ccc;\n\tcursor: not-allowed;\n}\n\n\n.geoobject-panel-header{\n width: 100%;\n background: grey;\n color: white;\n padding: 10px;\n}\n"],encapsulation:2,data:{animation:[[i.trigger("fadeInOut",[i.transition(":enter",[i.style({opacity:0}),i.animate("300ms")]),i.transition(":leave",i.animate("100ms",i.style({opacity:0})))]),i.trigger("fadeIn",[i.transition(":enter",[i.style({opacity:0}),i.animate("500ms")])])]]}}),e}();t.TransitionEventTableComponent=w,("undefined"==typeof ngDevMode||ngDevMode)&&l.ɵsetClassMetadata(w,[{type:r.Component,args:[{selector:"transition-event-table",templateUrl:"./transition-event-table.component.html",styleUrls:["./transition-event-table.css"],encapsulation:r.ViewEncapsulation.None,animations:[[i.trigger("fadeInOut",[i.transition(":enter",[i.style({opacity:0}),i.animate("300ms")]),i.transition(":leave",i.animate("100ms",i.style({opacity:0})))]),i.trigger("fadeIn",[i.transition(":enter",[i.style({opacity:0}),i.animate("500ms")])])]]}]}],(function(){return[{type:s.TransitionEventService},{type:c.BsModalService},{type:d.IOService},{type:p.DateService},{type:p.AuthService},{type:p.LocalizationService}]}),null)},620:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TransitionEventModalComponent=t.GRAPH_LINE_COLOR=t.GRAPH_CIRCLE_FILL=t.GRAPH_GO_LABEL_COLOR=t.GRAPH_ACTIVE_TRANSITION_HIGHLIGHT_COLOR=t.VIEWPORT_SCALE_FACTOR_Y=t.VIEWPORT_SCALE_FACTOR_X=t.DRAW_SCALE_MULTIPLIER=void 0;var r=n(0),i=(n(30),n(31)),o=(n(519),n(112),n(111)),a=(n(16),n(523),n(377)),l=n(378),s=n(0),c=n(523),d=n(519),p=n(16),m=n(30),u=n(112),g=n(1),h=n(22),f=n(68),y=n(260),v=n(259),b=n(516),S=n(154),C=["typeaheadParent"];function E(e,t){if(1&e&&(s.ɵɵelementStart(0,"h5"),s.ɵɵtext(1),s.ɵɵelementEnd()),2&e){var n=t.item;s.ɵɵadvance(1),s.ɵɵtextInterpolate2("",n.name," : ",n.code,"")}}function x(e,t){if(1&e&&(s.ɵɵelementStart(0,"div",6),s.ɵɵtext(1),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext();s.ɵɵadvance(1),s.ɵɵtextInterpolate(n.message)}}function O(e,t){if(1&e&&(s.ɵɵelementStart(0,"span",29),s.ɵɵtext(1),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext(2);s.ɵɵadvance(1),s.ɵɵtextInterpolate1(" ",n.formatDate(n.event.eventDate)," ")}}var I=function(){return["form-control"]};function w(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"date-field",30),s.ɵɵlistener("valueChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).event.eventDate=e}))("validChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).validChange(e)})),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(2);s.ɵɵproperty("value",r.event.eventDate)("classNames",s.ɵɵpureFunction0(6,I))("inputName","eventDate")("allowFutureDates",!1)("required",!0)("disable",r.readonly||r.event.transitions.length>0)}}function M(e,t){if(1&e&&(s.ɵɵelementStart(0,"div",8),s.ɵɵelementStart(1,"div",9),s.ɵɵelementStart(2,"label"),s.ɵɵelement(3,"localize",31),s.ɵɵelementStart(4,"span",32),s.ɵɵtext(5," ("),s.ɵɵelement(6,"convert-key-label",27),s.ɵɵtext(7,")"),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(8,"div",11),s.ɵɵelementStart(9,"input",33),s.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.value=e})),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd()),2&e){var n=t.$implicit,r=s.ɵɵnextContext(2);s.ɵɵadvance(6),s.ɵɵproperty("key",n.locale),s.ɵɵadvance(3),s.ɵɵproperty("ngModel",n.value)("name","label-"+n.locale)("disabled",r.readonly)("required","defaultLocale"===n.locale)}}function T(e,t){if(1&e&&(s.ɵɵelementStart(0,"option",36),s.ɵɵtext(1),s.ɵɵelementEnd()),2&e){var n=t.$implicit;s.ɵɵproperty("value",n.code),s.ɵɵadvance(1),s.ɵɵtextInterpolate(n.label)}}function j(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"div",11),s.ɵɵelementStart(1,"select",34),s.ɵɵlistener("ngModelChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).event.beforeTypeCode=e}))("change",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).onChange()})),s.ɵɵelement(2,"option"),s.ɵɵtemplate(3,T,2,2,"option",35),s.ɵɵelementEnd(),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(2);s.ɵɵadvance(1),s.ɵɵproperty("ngModel",r.event.beforeTypeCode)("disabled",r.event.transitions.length>0),s.ɵɵadvance(2),s.ɵɵproperty("ngForOf",r.types)}}function k(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"div",11),s.ɵɵelementStart(1,"input",37),s.ɵɵlistener("ngModelChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).event.beforeTypeLabel=e})),s.ɵɵelementEnd(),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(2);s.ɵɵadvance(1),s.ɵɵproperty("ngModel",r.event.beforeTypeLabel)}}function z(e,t){if(1&e&&(s.ɵɵelementStart(0,"option",36),s.ɵɵtext(1),s.ɵɵelementEnd()),2&e){var n=t.$implicit;s.ɵɵproperty("value",n.code),s.ɵɵadvance(1),s.ɵɵtextInterpolate(n.label)}}function D(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"div",11),s.ɵɵelementStart(1,"select",38),s.ɵɵlistener("ngModelChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).event.afterTypeCode=e}))("change",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).onChange()})),s.ɵɵelement(2,"option"),s.ɵɵtemplate(3,z,2,2,"option",35),s.ɵɵelementEnd(),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(2);s.ɵɵadvance(1),s.ɵɵproperty("ngModel",r.event.afterTypeCode)("disabled",r.event.transitions.length>0),s.ɵɵadvance(2),s.ɵɵproperty("ngForOf",r.allTypes)}}function R(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"div",11),s.ɵɵelementStart(1,"input",39),s.ɵɵlistener("ngModelChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).event.afterTypeLabel=e})),s.ɵɵelementEnd(),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(2);s.ɵɵadvance(1),s.ɵɵproperty("ngModel",r.event.afterTypeLabel)}}function P(e,t){1&e&&s.ɵɵelement(0,"th",46)}function A(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"span",65),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext().$implicit;return s.ɵɵnextContext(3).clear(e,"sourceText")})),s.ɵɵelement(1,"i",66),s.ɵɵelementEnd()}}function V(e,t){1&e&&s.ɵɵelement(0,"span",67)}function N(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"span",65),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext().$implicit;return s.ɵɵnextContext(3).clear(e,"targetText")})),s.ɵɵelement(1,"i",66),s.ɵɵelementEnd()}}function L(e,t){1&e&&s.ɵɵelement(0,"span",67)}function _(e,t){if(1&e&&(s.ɵɵelementStart(0,"label"),s.ɵɵtext(1),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext().$implicit,r=s.ɵɵnextContext(3);s.ɵɵadvance(1),s.ɵɵtextInterpolate(r.localizeTransitionType(n.transitionType))}}function F(e,t){if(1&e&&(s.ɵɵelementStart(0,"label",68),s.ɵɵtext(1),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext().$implicit,r=s.ɵɵnextContext(3);s.ɵɵadvance(1),s.ɵɵtextInterpolate(r.localizeTransitionType(n.typePart))}}function H(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"select",70),s.ɵɵlistener("ngModelChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).$implicit.typeUpdown=e}))("change",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext(2).$implicit;return s.ɵɵnextContext(3).onChangeTypeUpdown(e)})),s.ɵɵelementStart(1,"option",71),s.ɵɵelement(2,"localize",72),s.ɵɵelementEnd(),s.ɵɵelementStart(3,"option",73),s.ɵɵelement(4,"localize",74),s.ɵɵelementEnd(),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(2),i=r.$implicit,o=r.index,a=s.ɵɵnextContext(3);s.ɵɵproperty("name","transition.transitionType-updown-"+i.oid+"-"+o)("ngModel",i.typeUpdown)("disabled",a.readonly)}}function G(e,t){if(1&e&&(s.ɵɵelementStart(0,"td"),s.ɵɵtemplate(1,H,5,3,"select",69),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext().$implicit;s.ɵɵadvance(1),s.ɵɵproperty("ngIf",n.typeUpdown)}}function q(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"td",62),s.ɵɵelementStart(1,"span",75),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext().index;return s.ɵɵnextContext(3).remove(e)})),s.ɵɵelement(2,"a",76),s.ɵɵelementEnd(),s.ɵɵelementEnd()}}function B(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"tr",53),s.ɵɵlistener("dndStart",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(3).onDragStart(e)}))("dndCopied",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(3).onDraggableCopied(e)}))("dndLinked",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(3).onDraggableLinked(e)}))("dndMoved",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(3).onDraggableMoved(e)}))("dndCanceled",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(3).onDragCanceled(e)}))("dndEnd",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(3).onDragEnd(e)})),s.ɵɵelementStart(1,"td",54),s.ɵɵelement(2,"a",55),s.ɵɵelementEnd(),s.ɵɵelementStart(3,"td"),s.ɵɵelementStart(4,"div",56),s.ɵɵelementStart(5,"input",57),s.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.sourceText=e}))("typeaheadOnSelect",(function(e){s.ɵɵrestoreView(n);var r=t.$implicit;return s.ɵɵnextContext(3).typeaheadOnSelect(e,r,"sourceText")})),s.ɵɵelementEnd(),s.ɵɵelementStart(6,"div",58),s.ɵɵelement(7,"div",59),s.ɵɵelementEnd(),s.ɵɵtemplate(8,A,2,0,"span",60),s.ɵɵtemplate(9,V,1,0,"span",61),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(10,"td",62),s.ɵɵelementStart(11,"label"),s.ɵɵtext(12),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(13,"td"),s.ɵɵelementStart(14,"div",56),s.ɵɵelementStart(15,"input",57),s.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.targetText=e}))("typeaheadOnSelect",(function(e){s.ɵɵrestoreView(n);var r=t.$implicit;return s.ɵɵnextContext(3).typeaheadOnSelect(e,r,"targetText")})),s.ɵɵelementEnd(),s.ɵɵelementStart(16,"div",58),s.ɵɵelement(17,"div",59),s.ɵɵelementEnd(),s.ɵɵtemplate(18,N,2,0,"span",60),s.ɵɵtemplate(19,L,1,0,"span",61),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(20,"td",62),s.ɵɵtemplate(21,_,2,1,"label",5),s.ɵɵtemplate(22,F,2,1,"label",63),s.ɵɵelementEnd(),s.ɵɵtemplate(23,G,2,1,"td",5),s.ɵɵtemplate(24,q,3,0,"td",64),s.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=t.index,o=s.ɵɵnextContext(3),a=s.ɵɵreference(1);s.ɵɵproperty("dndDraggable",r)("dndEffectAllowed",o.draggable.effectAllowed)("dndDisableIf",o.draggable.disable),s.ɵɵattribute("data-transOid",r.oid),s.ɵɵadvance(5),s.ɵɵproperty("name","transition.source-"+r.oid+"-"+i)("disabled",o.readonly)("ngModel",r.sourceText)("typeaheadAsync",!0)("typeahead",o.getTypeAheadObservable(r,o.event.beforeTypeCode,"sourceText"))("typeaheadOptionsLimit",7)("typeaheadItemTemplate",a)("typeaheadMinLength",0)("typeaheadWaitMs",300)("container","#typeaheadParentS-"+i),s.ɵɵadvance(2),s.ɵɵproperty("id","typeaheadParentS-"+i),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",!o.readonly),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",o.readonly),s.ɵɵadvance(3),s.ɵɵtextInterpolate(o.localizeTransitionImpact(r.impact)),s.ɵɵadvance(3),s.ɵɵproperty("name","transition.target-"+r.oid+"-"+i)("disabled",o.readonly)("ngModel",r.targetText)("typeaheadAsync",!0)("typeahead",o.getTypeAheadObservable(r,o.event.afterTypeCode,"targetText"))("typeaheadOptionsLimit",7)("typeaheadItemTemplate",a)("typeaheadMinLength",0)("typeaheadWaitMs",300)("container","#typeaheadParentT-"+i),s.ɵɵadvance(2),s.ɵɵproperty("id","typeaheadParentT-"+i),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",!o.readonly),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",o.readonly),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",!r.typeUpdown),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",r.typeUpdown),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",r.typeUpdown),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",!o.readonly)}}function U(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"div",77),s.ɵɵelementStart(1,"div",7),s.ɵɵelementStart(2,"i",78),s.ɵɵlistener("click",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext(3).onCreate()})),s.ɵɵelement(3,"localize",79),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd()}}function $(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"div",8),s.ɵɵelementStart(1,"table",40),s.ɵɵelementStart(2,"thead"),s.ɵɵelementStart(3,"tr",41),s.ɵɵelement(4,"th"),s.ɵɵelementStart(5,"th",42),s.ɵɵelement(6,"localize",21),s.ɵɵelementEnd(),s.ɵɵelementStart(7,"th",43),s.ɵɵelement(8,"localize",44),s.ɵɵelementEnd(),s.ɵɵelementStart(9,"th",42),s.ɵɵelement(10,"localize",22),s.ɵɵelementEnd(),s.ɵɵelementStart(11,"th",43),s.ɵɵelement(12,"localize",45),s.ɵɵelementEnd(),s.ɵɵelement(13,"th",46),s.ɵɵtemplate(14,P,1,0,"th",47),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(15,"tbody",48),s.ɵɵlistener("dndDrop",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).onDrop(e)})),s.ɵɵelementStart(16,"tr",49),s.ɵɵelement(17,"td",50),s.ɵɵelementEnd(),s.ɵɵtemplate(18,B,25,35,"tr",51),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵtemplate(19,U,4,0,"div",52),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(2);s.ɵɵadvance(14),s.ɵɵproperty("ngIf",!r.readonly),s.ɵɵadvance(4),s.ɵɵproperty("ngForOf",r.event.transitions),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",!r.readonly)}}function J(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"button",80),s.ɵɵlistener("click",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).onSubmit()})),s.ɵɵelement(1,"localize",81),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(2),i=s.ɵɵreference(5);s.ɵɵproperty("disabled",i.invalid||!r.valid)}}function W(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"fieldset"),s.ɵɵelementStart(1,"div",7),s.ɵɵelementStart(2,"div",8),s.ɵɵelementStart(3,"div",9),s.ɵɵelementStart(4,"label"),s.ɵɵelement(5,"localize",10),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(6,"div",11),s.ɵɵtemplate(7,O,2,1,"span",12),s.ɵɵtemplate(8,w,1,7,"date-field",13),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵtemplate(9,M,10,5,"div",14),s.ɵɵelementStart(10,"div",8),s.ɵɵelementStart(11,"div",9),s.ɵɵelementStart(12,"label",15),s.ɵɵelement(13,"localize",16),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵtemplate(14,j,4,3,"div",17),s.ɵɵtemplate(15,k,2,1,"div",17),s.ɵɵelementEnd(),s.ɵɵelementStart(16,"div",8),s.ɵɵelementStart(17,"div",9),s.ɵɵelementStart(18,"label",18),s.ɵɵelement(19,"localize",19),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵtemplate(20,D,4,3,"div",17),s.ɵɵtemplate(21,R,2,1,"div",17),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(22,"div",7),s.ɵɵelementStart(23,"div",20),s.ɵɵelementStart(24,"label",7),s.ɵɵelement(25,"localize",21),s.ɵɵelementEnd(),s.ɵɵelementStart(26,"label",7),s.ɵɵelement(27,"localize",22),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelement(28,"div",23),s.ɵɵelementEnd(),s.ɵɵtemplate(29,$,20,3,"div",24),s.ɵɵelementStart(30,"div",8),s.ɵɵelement(31,"div",9),s.ɵɵelementStart(32,"div",11),s.ɵɵelementStart(33,"div",25),s.ɵɵelementStart(34,"button",26),s.ɵɵlistener("click",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext().onCancel()})),s.ɵɵelement(35,"localize",27),s.ɵɵelementEnd(),s.ɵɵtemplate(36,J,2,1,"button",28),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext();s.ɵɵadvance(7),s.ɵɵproperty("ngIf",r.readonly),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",!r.readonly),s.ɵɵadvance(1),s.ɵɵproperty("ngForOf",r.event.description.localeValues),s.ɵɵadvance(5),s.ɵɵproperty("ngIf",!r.readonly&&null!=r.types),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",r.readonly),s.ɵɵadvance(5),s.ɵɵproperty("ngIf",!r.readonly&&null!=r.allTypes),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",r.readonly),s.ɵɵadvance(8),s.ɵɵproperty("ngIf",null!=r.event.beforeTypeCode&&""!==r.event.beforeTypeCode&&null!=r.event.afterTypeCode&&""!==r.event.afterTypeCode&&null!=r.event.eventDate&&""!==r.event.eventDate),s.ɵɵadvance(6),s.ɵɵproperty("key",r.readonly?"io.back":"io.cancel"),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",!r.readonly)}}t.DRAW_SCALE_MULTIPLIER=1,t.VIEWPORT_SCALE_FACTOR_X=1,t.VIEWPORT_SCALE_FACTOR_Y=1,t.GRAPH_ACTIVE_TRANSITION_HIGHLIGHT_COLOR="#6BA542",t.GRAPH_GO_LABEL_COLOR="black",t.GRAPH_CIRCLE_FILL="#999",t.GRAPH_LINE_COLOR="#999";var K=function(){function e(e,t,n,r,i,o,a,l){this.service=e,this.changeDetector=t,this.rService=n,this.iService=r,this.lService=i,this.bsModalRef=o,this.authService=a,this.dateService=l,this.message=null,this.event=null,this.activeTransition=null,this.allTypes=[],this.types=[],this.readonly=!1,this.valid=!1,this.draggable={data:"myDragData",effectAllowed:"all",disable:!1,handle:!0}}return e.prototype.ngOnInit=function(){var e=this;this.onEventChange=new i.Subject,this.iService.listGeoObjectTypes(!1).then((function(t){for(var n=[],r=0;r0&&e.event.transitions.length>0&&null!=e.event.description&&null!=e.event.afterTypeCode&&null!=e.event.beforeTypeCode}),0)},e.prototype.remove=function(e){this.event.transitions.splice(e,1),this.onChange()},e.prototype.onSubmit=function(){var e=this;this.service.apply(this.event).then((function(t){e.onEventChange.next(t),e.bsModalRef.hide()})).catch((function(t){e.error(t)}))},e.prototype.onCancel=function(){this.bsModalRef.hide()},e.prototype.formatDate=function(e){return this.dateService.formatDateForDisplay(e)},e.prototype.error=function(e){this.message=o.ErrorHandler.getMessageFromError(e)},e.prototype.calculateDerivedAttributes=function(){var e={};this.event.transitions.forEach((function(t){null!=t.sourceCode&&""!==t.sourceCode&&null!=t.targetCode&&""!==t.targetCode&&(null==e[t.sourceCode]?e[t.sourceCode]={source:1,target:0}:e[t.sourceCode].source++,null==e[t.targetCode]?e[t.targetCode]={source:0,target:1}:e[t.targetCode].target++)})),this.event.transitions.forEach((function(t){if(null!=t.sourceCode&&""!==t.sourceCode&&null!=t.targetCode&&""!==t.targetCode){var n=e[t.sourceCode],r=e[t.targetCode],i="UPGRADE";null!=t.transitionType&&-1!==t.transitionType.indexOf("DOWNGRADE")&&(i="DOWNGRADE"),n.source>1?(t.impact="PARTIAL",t.transitionType="SPLIT"):(r.target>1?t.transitionType="MERGE":t.transitionType="REASSIGN",t.impact="FULL"),t.sourceType!==t.targetType&&(t.typeUpdown=i,t.typePart=t.transitionType,t.transitionType=t.typeUpdown+"_"+t.typePart)}}))},e.prototype.onChangeTypeUpdown=function(e){e.transitionType=e.typeUpdown+"_"+e.typePart},e.prototype.onDragStart=function(e){},e.prototype.onDragEnd=function(e){},e.prototype.onDragged=function(e,t){},e.prototype.onDraggableCopied=function(e){},e.prototype.onDraggableLinked=function(e){},e.prototype.onDraggableMoved=function(e){},e.prototype.onDragCanceled=function(e){},e.prototype.onDragover=function(e){},e.prototype.onDrop=function(e){var t=this,n=e.data,r=e.index;this.event.transitions.splice(n.order,1);var i=r>n.order?r-1:r;this.event.transitions.splice(i,0,n);for(var o=0;o0)}},directives:[p.ɵangular_packages_forms_forms_ba,p.NgControlStatusGroup,p.NgForm,m.LocalizeComponent,p.SelectControlValueAccessor,p.RequiredValidator,p.NgControlStatus,p.NgModel,p.NgSelectOption,p.ɵangular_packages_forms_forms_z,u.NgForOf,g.DateFieldComponent,u.NgIf,h.PaginationControlsComponent],pipes:[h.PaginatePipe],encapsulation:2,data:{animation:[[o.trigger("fadeInOut",[o.transition(":enter",[o.style({opacity:0}),o.animate("300ms")]),o.transition(":leave",o.animate("100ms",o.style({opacity:0})))]),o.trigger("fadeIn",[o.transition(":enter",[o.style({opacity:0}),o.animate("500ms")])])]]}}),e}();t.HistoricalReportComponent=S,("undefined"==typeof ngDevMode||ngDevMode)&&l.ɵsetClassMetadata(S,[{type:r.Component,args:[{selector:"historical-report",templateUrl:"./historical-report.component.html",styleUrls:[],encapsulation:r.ViewEncapsulation.None,animations:[[o.trigger("fadeInOut",[o.transition(":enter",[o.style({opacity:0}),o.animate("300ms")]),o.transition(":leave",o.animate("100ms",o.style({opacity:0})))]),o.trigger("fadeIn",[o.transition(":enter",[o.style({opacity:0}),o.animate("500ms")])])]]}]}],(function(){return[{type:s.TransitionEventService},{type:c.IOService},{type:d.AuthService},{type:d.DateService}]}),null)},625:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SvgHierarchyNode=void 0;var r=n(378),i=n(550),o=n(580),a=n(534),l=n(111),s=function(){function e(e,t,n,r,i,o,a){this.localizeService=i,this.modalService=o,this.authService=a,this.hierarchyComponent=e,this.svgHierarchyType=t,this.geoObjectType=n,this.treeNode=r}return e.prototype.getCode=function(){return this.geoObjectType.code},e.prototype.setPos=function(e,t,n){var i=this.getBbox();r.select('.g-hierarchy[data-primary=true] .svg-got-body-rect[data-gotCode="'+this.getCode()+'"]').classed("dragging",n).attr("x",e).attr("y",t),r.select('.g-hierarchy[data-primary=true] .svg-got-header-rect[data-gotCode="'+this.getCode()+'"]').classed("dragging",n).attr("x",e).attr("y",t-o.SvgHierarchyType.gotRectH/2+2),r.select('.g-hierarchy[data-primary=true] .svg-got-label-text[data-gotCode="'+this.getCode()+'"]').classed("dragging",n).attr("x",e+5).attr("y",t+1),r.select('.g-hierarchy[data-primary=true] .svg-got-relatedhiers-button[data-gotCode="'+this.getCode()+'"]').classed("dragging",n).attr("x",e+i.width-20).attr("y",t+17);var a=r.select('.g-hierarchy[data-primary=true] .hierarchy-inherit-button[data-gotCode="'+this.getCode()+'"]').node();if(null!=a){var l=e+i.width-60,s=t+i.height-24,c=a.getBBox();r.select('.g-hierarchy[data-primary=true] .hierarchy-inherit-button[data-gotCode="'+this.getCode()+'"]').classed("dragging",n).attr("transform","translate("+(l-c.x)+" "+(s-c.y)+")")}var d=r.select('.g-hierarchy[data-primary=true] .hierarchy-uninherit-button[data-gotCode="'+this.getCode()+'"]').node();if(null!=d){l=e+i.width-71,s=t+i.height-24;var p=d.getBBox();r.select('.g-hierarchy[data-primary=true] .hierarchy-uninherit-button[data-gotCode="'+this.getCode()+'"]').classed("dragging",n).attr("transform","translate("+(l-p.x)+" "+(s-p.y)+")")}},e.prototype.getPos=function(){var e=r.select('.g-hierarchy[data-primary=true] .svg-got-body-rect[data-gotCode="'+this.getCode()+'"]');return{x:parseInt(e.attr("x")),y:parseInt(e.attr("y"))}},e.prototype.getBbox=function(){var e=r.select('.g-hierarchy[data-primary=true] .svg-got-body-rect[data-gotCode="'+this.getCode()+'"]');return{x:parseInt(e.attr("x")),y:parseInt(e.attr("y"))-3,width:parseInt(e.attr("width")),height:parseInt(e.attr("height"))+3}},e.prototype.getTreeNode=function(){return this.treeNode},e.prototype.hideRelatedHierarchy=function(){var e=r.select('.g-hierarchy[data-primary="false"]');if(null!=e.node())return e.remove(),this.hierarchyComponent.calculateSvgViewBox(),e.attr("data-code")},e.prototype.renderRelatedHierarchiesMenu=function(){var e=this,t=this,n=r.select(".g-context-menu");if(null==n.node()){var a=r.select("#svg").append("g").classed("g-context-menu",!0),l=this.svgHierarchyType.getRelatedHierarchies(this.getCode()),s=this.authService.isSRA()||this.authService.isOrganizationRA(this.svgHierarchyType.hierarchyType.organizationCode),c=this.getBbox(),d=c.x+c.width-5,p=c.y+c.height/2-8,m=this.hierarchyComponent.localize("hierarchy.content.relatedHierarchies"),u=this.hierarchyComponent.localize("hierarchy.content.actionsTitle"),g=this.hierarchyComponent.localize("hierarchy.content.removeFromHierarchy"),h=this.hierarchyComponent.localize("hierarchy.content.noRelatedHierarchies"),f=this.hierarchyComponent.localize("hierarchy.content.hideRelatedHierarchy"),y=this.hierarchyComponent.localize("hierarchy.content.uninherit"),v=this.hierarchyComponent.localize("hierarchy.content.inherit"),b=null!=r.select('.g-hierarchy[data-primary="false"]').node(),S=s?b?2:1:0,C=i.calculateTextWidth(m,9),E=i.calculateTextWidth(g,8);if(C=E>C?E:C,b){var x=i.calculateTextWidth(f,8);C=x>C?x:C}if(null!=this.treeNode.parent&&null!=this.treeNode.parent.data.inheritedHierarchyCode&&""!=this.treeNode.parent.data.inheritedHierarchyCode){var O=i.calculateTextWidth(y,8);C=O>C?O:C,S++}else{if(null!=(k=r.select('.g-hierarchy[data-primary="false"]')).node()){var I=k.attr("data-code"),w=this.hierarchyComponent.findHierarchyByCode(I),M=null!=new o.SvgHierarchyType(this.hierarchyComponent,r.select("#svg"),w,!0,this.localizeService,this.modalService,this.authService).getNodeByCode(this.getCode()).getTreeNode().parent;if(null==this.treeNode.parent&&M){var T=i.calculateTextWidth(v,8);C=T>C?T:C,S++}}}if(l.length>0)l.forEach((function(t){var n=e.hierarchyComponent.findHierarchyByCode(t),r=n.label.localizedValue;null!=e.treeNode.parent&&e.treeNode.parent.data.inheritedHierarchyCode===n.code&&(r=r+" ("+e.hierarchyComponent.localize("hierarchy.content.inherited")+")");var o=i.calculateTextWidth(r,8);o>C&&(C=o)}));else{var j=i.calculateTextWidth(h,8);C=j>C?j:C}C+=10;var k,z=l.length>0?S+2:S+3;if(a.append("rect").classed("contextmenu-relatedhiers-background",!0).attr("x",d).attr("y",p).attr("rx",5).attr("width",C).attr("height",20*(l.length+z)).attr("fill","white").attr("stroke-width",.5).attr("stroke","#aaaaaa"),a.append("text").classed("contextmenu-relatedhiers-title",!0).attr("x",d+5).attr("y",p+10+4.5).attr("font-size",9).attr("font-family","sans-serif").attr("font-weight","bold").text(m),p+=20,a.append("line").classed("contextmenu-relatedhiers-divider",!0).attr("x1",d).attr("y1",p).attr("x2",d+C).attr("y2",p).attr("stroke","#aaaaaa").attr("stroke-width",.5),l.length>0)for(var D=function(e){var n=l[e],r=R.hierarchyComponent.findHierarchyByCode(n),i=r.label.localizedValue;null!=R.treeNode.parent&&R.treeNode.parent.data.inheritedHierarchyCode===r.code&&(i=i+" ("+R.hierarchyComponent.localize("hierarchy.content.inherited")+")"),a.append("text").classed("contextmenu-relatedhiers-text",!0).attr("data-hierCode",n).attr("x",d+5).attr("y",p+10+4).attr("font-size",8).attr("font-family","sans-serif").text(i).style("cursor","pointer").on("click",(function(e,n){t.renderSecondaryHierarchy(r)})),p+=20,e=0;--t){var n=this.hierarchyOverTime.types[t];if(Object.prototype.hasOwnProperty.call(e,n.code)&&e[n.code].geoObject)return e[n.code]}return null},Object.defineProperty(t.prototype,"value",{get:function(){return null!=this.diff&&void 0!==this.diff.parents?this.diff:null!=this.hierarchyEntry?this.hierarchyEntry:null},set:function(e){throw new Error("Invoke setParentValue instead")},enumerable:!1,configurable:!0}),t.prototype.removeType=function(e){var t=JSON.parse(JSON.stringify(this.value.parents));t[e.code]={text:"",geoObject:null};for(var n=this.value,r=this.hierarchyOverTime.types.length-1;r>=0;--r){var i=this.hierarchyOverTime.types[r];if(Object.prototype.hasOwnProperty.call(n.parents,i.code)&&n.parents[i.code].geoObject)return void this.setParentValue(i,t)}this.setParentValue(null,t)},t.prototype.createEmptyHierarchyEntry=function(){var e=new a.HierarchyOverTimeEntry;if(e.loading={},e.oid=s.v4(),e.parents={},this.hierarchyOverTime)for(var t=0;t-1&&t.attributeDiff.valuesOverTime.splice(i,1)}else{if(null!=this.diff)return delete this.diff.newValue,delete this.diff.newStartDate,delete this.diff.newEndDate,this.removeEmptyDiff(),void this.onChange(c.ChangeType.REMOVE);if(null!=this.hierarchyEntry&&null==this.diff){var n=this.getLowestLevelFromHierarchyEntry(this.hierarchyEntry.parents).geoObject,r=null==n?null:n.properties.type+"_~VST~_"+n.properties.code;this.diff=new l.ValueOverTimeDiff,this.diff.action="DELETE",this.diff.oid=this.hierarchyEntry.oid,this.diff.oldValue=r,this.diff.oldStartDate=this.hierarchyEntry.startDate,this.diff.oldEndDate=this.hierarchyEntry.endDate,this.action.attributeDiff.valuesOverTime.push(this.diff),this.action.attributeDiff.hierarchyCode=this.hierarchyOverTime.code}}else if("CreateGeoObjectAction"===this.action.actionType){var i;-1!==(i=this.hierarchyOverTime.entries.findIndex((function(t){return t.oid===e.hierarchyEntry.oid})))&&this.hierarchyOverTime.entries.splice(i,1)}this.onChange(c.ChangeType.REMOVE)},t}(o.ValueOverTimeCREditor);t.HierarchyCREditor=d},629:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StandardAttributeCRModel=void 0;var r=n(521),i=n(258),o=function(){function e(e,t,n){this._isValid=!0,this.attribute=e,this.geoObject=t,this.changeRequest=n,this.initialize()}return e.prototype.initialize=function(){var e=this,t=this.changeRequest.actions;"CreateGeoObject"===this.changeRequest.type?t.length>0&&t[0].actionType===i.ActionTypes.CREATEGEOOBJECTACTION&&(this.editAction=t[0]):(t.forEach((function(t){if(t.actionType===i.ActionTypes.UPDATEATTRIBUTETACTION){var n=t;e.attribute.code===n.attributeName&&(e.editAction=t)}})),null==this.editAction&&(this.editAction=new r.UpdateAttributeAction(this.attribute.code)));for(var n=this.changeRequest.actions.length,o=0;o0&&this.conflictMessagesHasSeverity("ERROR")},e.prototype.hasWarning=function(){return!this.hasError()&&this.editor.conflictMessages&&this.editor.conflictMessages.size>0&&this.conflictMessagesHasSeverity("WARNING")},e}();t.VersionDiffView=a},631:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CreateUpdateGeoObjectDetailComponent=void 0;var r=n(0),i=(n(30),n(519),n(16),n(111)),o=n(0),a=n(519),l=n(30),s=n(16),c=n(68),d=n(22),p=n(1),m=n(525),u=["attributeEditor"],g=["geometryEditor"],h=function(e){return[e]},f=function(e,t){return{geoObject:e,actions:t}};function y(e,t){if(1&e&&o.ɵɵelement(0,"geoobject-shared-attribute-editor",16,17),2&e){var n=o.ɵɵnextContext();o.ɵɵproperty("readOnly",n.readOnly)("geoObjectType",n.geoObjectType)("geoObjectData",o.ɵɵpureFunction2(8,f,n.postGeoObject,o.ɵɵpureFunction1(6,h,n.action)))("forDate",n.forDate)("readOnly",!1)("isGeometryInlined",!0)}}function v(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"button",18),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext().startEdit()})),o.ɵɵelement(1,"localize",19),o.ɵɵelementEnd()}}function b(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"button",20),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext().endEdit()})),o.ɵɵelement(1,"localize",21),o.ɵɵelementEnd()}}function S(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"button",18),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext().applyAction()})),o.ɵɵelement(1,"localize",22),o.ɵɵelementEnd()}}var C=function(){function e(e,t,n,r){this.changeRequestService=e,this.modalService=t,this.registryService=n,this.authService=r,this.isMaintainer=!1,this.preGeoObject=null,this.postGeoObject=null,this.geoObjectType=null,this.isEditing=!1,this.dateStr=null,this.forDate=null,this.isMaintainer=r.isAdmin()||r.isMaintainer(),this.forDate=new Date;var i=this.forDate.getUTCDate();this.dateStr=this.forDate.getUTCFullYear()+"-"+(this.forDate.getUTCMonth()+1)+"-"+(i<10?"0":"")+i}return e.prototype.ngOnInit=function(){this.postGeoObject=this.action.geoObjectJson,this.geoObjectType=this.action.geoObjectType,this.isNew()&&(this.preGeoObject=this.postGeoObject),this.onSelect(this.action)},e.prototype.isNew=function(){return"net.geoprism.registry.action.geoobject.CreateGeoObjectAction"===this.action.actionType},e.prototype.handleDateChange=function(){this.forDate=new Date(Date.parse(this.dateStr))},e.prototype.applyAction=function(){var e=this.action;e.geoObjectJson=this.attributeEditor.getGeoObject(),null!=this.geometryEditor&&(e.geoObjectJson.geometry=this.geometryEditor.saveDraw().geometry)},e.prototype.onSelect=function(e){var t=this;"net.geoprism.registry.action.geoobject.UpdateGeoObjectAction"===this.action.actionType&&this.registryService.getGeoObjectOverTime(this.postGeoObject.attributes.code,this.geoObjectType.code).then((function(e){t.preGeoObject=e})).catch((function(e){t.error(e)}))},e.prototype.startEdit=function(){},e.prototype.endEdit=function(){},e.prototype.getUsername=function(){return this.authService.getUsername()},e.prototype.error=function(e){this.bsModalRef=i.ErrorHandler.showErrorAsDialog(e,this.modalService)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.ChangeRequestService),o.ɵɵdirectiveInject(l.BsModalService),o.ɵɵdirectiveInject(a.RegistryService),o.ɵɵdirectiveInject(s.AuthService))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["crtable-detail-create-geo-object"]],viewQuery:function(e,t){if(1&e&&(o.ɵɵviewQuery(u,1),o.ɵɵviewQuery(g,1)),2&e){var n=void 0;o.ɵɵqueryRefresh(n=o.ɵɵloadQuery())&&(t.attributeEditor=n.first),o.ɵɵqueryRefresh(n=o.ɵɵloadQuery())&&(t.geometryEditor=n.first)}},inputs:{action:"action",readOnly:"readOnly"},decls:22,vars:9,consts:[[1,"crtable-detail-container"],[1,"heading","text-center"],[1,"action-detail-header"],[1,"detail-content"],["key","io.geoObjectType"],[2,"margin","20px 0"],[2,"margin-right","10px"],["key","changeOverTime.forDate"],["type","date","name","dateStr",3,"ngModel","ngModelChange","change"],[3,"readOnly","geoObjectType","geoObjectData","forDate","isGeometryInlined",4,"ngIf"],[1,"detail-label"],["key","change.request.action.detail.contributorNotes"],[1,"detail-value",2,"width","100%","border-radius","8px","height","70px",3,"ngModel","disabled","ngModelChange"],[1,"button-holder","text-right",2,"margin","40px 0 20px 0"],["class","btn btn-primary detail-accept",3,"click",4,"ngIf"],["class","btn btn-default detail-reject",3,"click",4,"ngIf"],[3,"readOnly","geoObjectType","geoObjectData","forDate","isGeometryInlined"],["attributeEditor",""],[1,"btn","btn-primary","detail-accept",3,"click"],["key","modal.button.edit"],[1,"btn","btn-default","detail-reject",3,"click"],["key","modal.button.cancel"],["key","modal.button.submit"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵelementStart(1,"div",1),o.ɵɵelementStart(2,"h1",2),o.ɵɵtext(3),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(4,"div",3),o.ɵɵelementStart(5,"h4"),o.ɵɵelement(6,"localize",4),o.ɵɵtext(7),o.ɵɵelementEnd(),o.ɵɵelementStart(8,"div",5),o.ɵɵelementStart(9,"span",6),o.ɵɵelement(10,"localize",7),o.ɵɵelementEnd(),o.ɵɵelementStart(11,"input",8),o.ɵɵlistener("ngModelChange",(function(e){return t.dateStr=e}))("change",(function(){return t.handleDateChange()})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵtemplate(12,y,2,11,"geoobject-shared-attribute-editor",9),o.ɵɵelementStart(13,"div"),o.ɵɵelementStart(14,"label",10),o.ɵɵelement(15,"localize",11),o.ɵɵtext(16," : "),o.ɵɵelementEnd(),o.ɵɵelementStart(17,"textarea",12),o.ɵɵlistener("ngModelChange",(function(e){return t.action.contributorNotes=e})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(18,"div",13),o.ɵɵtemplate(19,v,2,0,"button",14),o.ɵɵtemplate(20,b,2,0,"button",15),o.ɵɵtemplate(21,S,2,0,"button",14),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(3),o.ɵɵtextInterpolate(t.action.actionLabel),o.ɵɵadvance(4),o.ɵɵtextInterpolate1(": ",t.action.geoObjectType.code," "),o.ɵɵadvance(4),o.ɵɵproperty("ngModel",t.dateStr),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",t.action),o.ɵɵadvance(5),o.ɵɵproperty("ngModel",t.action.contributorNotes)("disabled",!t.isEditing),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",!t.readOnly&&!t.isEditing),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",!t.readOnly&&t.isEditing),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",!t.readOnly&&t.isEditing))},directives:[c.LocalizeComponent,d.DefaultValueAccessor,d.NgControlStatus,d.NgModel,p.NgIf,m.GeoObjectSharedAttributeEditorComponent],styles:["/* \n WARNING viewencapsulation on the detail.component.tx was set to none to set these css\n values to be globally scoped \n*/\n.crtable-detail-container .modal-form .label-holder {\n display: none;\n}\n\n.crtable-detail-container .modal-form .holder {\n border-left: 0;\n width: 100%;\n padding: 0;\n}\n\n.crtable-detail-container .modal-form .holder .panel .panel-body {\n padding: 0;\n}"],encapsulation:2}),e}();t.CreateUpdateGeoObjectDetailComponent=C,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(C,[{type:r.Component,args:[{selector:"crtable-detail-create-geo-object",templateUrl:"./detail.component.html",styleUrls:["./crtable-detail-create-geo-object.css"],encapsulation:r.ViewEncapsulation.None}]}],(function(){return[{type:a.ChangeRequestService},{type:l.BsModalService},{type:a.RegistryService},{type:s.AuthService}]}),{action:[{type:r.Input}],readOnly:[{type:r.Input}],attributeEditor:[{type:r.ViewChild,args:["attributeEditor"]}],geometryEditor:[{type:r.ViewChild,args:["geometryEditor"]}]})},632:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StabilityPeriodComponent=void 0;var r=n(0),i=n(7),o=(n(16),n(112),n(590)),a=(n(535),n(525),n(0)),l=n(16),s=n(112),c=n(1),d=n(68);function p(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"a",15),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(2).setActiveTimelineEntry(null)})),a.ɵɵtext(1,"("),a.ɵɵelement(2,"localize",16),a.ɵɵtext(3,")"),a.ɵɵelementEnd()}}function m(e,t){1&e&&(a.ɵɵelementStart(0,"div",17),a.ɵɵelement(1,"localize",18),a.ɵɵelementEnd()),2&e&&a.ɵɵproperty("@fadeInOut",void 0)}function u(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"a",15),a.ɵɵlistener("click",(function(){a.ɵɵrestoreView(n);var e=a.ɵɵnextContext(2);return e.setActiveTimelineEntry(e.forDateEntry)})),a.ɵɵtext(1,"("),a.ɵɵelement(2,"localize",19),a.ɵɵtext(3,")"),a.ɵɵelementEnd()}}function g(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"a",15),a.ɵɵlistener("click",(function(){a.ɵɵrestoreView(n);var e=a.ɵɵnextContext(2);return e.setActiveTimelineEntry(e.forDateEntry)})),a.ɵɵtext(1,"("),a.ɵɵelement(2,"localize",20),a.ɵɵtext(3,")"),a.ɵɵelementEnd()}}function h(e,t){1&e&&(a.ɵɵelementStart(0,"span",21),a.ɵɵtext(1," ("),a.ɵɵelement(2,"localize",22),a.ɵɵtext(3,") "),a.ɵɵelementEnd())}function f(e,t){if(1&e&&(a.ɵɵelementContainerStart(0),a.ɵɵtext(1),a.ɵɵelementContainerEnd()),2&e){var n=a.ɵɵnextContext(2);a.ɵɵadvance(1),a.ɵɵtextInterpolate2(" ",n.activeEntry.period.startDate," - ",n.dateService.formatDateForDisplay(n.activeEntry.period.endDate)," ")}}function y(e,t){if(1&e&&(a.ɵɵelementContainerStart(0),a.ɵɵtext(1),a.ɵɵelementContainerEnd()),2&e){var n=a.ɵɵnextContext(2);a.ɵɵadvance(1),a.ɵɵtextInterpolate2(" ",n.dataTimeSpan.displayStartDate," - ",n.dataTimeSpan.displayEndDate," ")}}var v=function(e,t){return{"active-timeline-entry":e,"not-clickable":t}},b=function(e,t){return{width:e,left:t}};function S(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"a",25),a.ɵɵlistener("click",(function(){a.ɵɵrestoreView(n);var e=t.$implicit;return a.ɵɵnextContext(3).setActiveTimelineEntry(e)})),a.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=a.ɵɵnextContext(3);a.ɵɵproperty("ngClass",a.ɵɵpureFunction2(2,v,null==i.activeEntry||null!=i.activeEntry&&r.period.startDate===i.activeEntry.period.startDate,i.periods.length<=1))("ngStyle",a.ɵɵpureFunction2(5,b,r.width+"%",r.x+"%"))}}function C(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",23),a.ɵɵtemplate(1,S,1,8,"a",24),a.ɵɵelementEnd()),2&e){var n=t.$implicit;a.ɵɵadvance(1),a.ɵɵproperty("ngForOf",n)}}function E(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",1),a.ɵɵelementStart(1,"span",2),a.ɵɵelement(2,"localize",3),a.ɵɵelementStart(3,"span"),a.ɵɵtemplate(4,p,4,0,"a",4),a.ɵɵtemplate(5,m,2,1,"div",5),a.ɵɵtemplate(6,u,4,0,"a",4),a.ɵɵtemplate(7,g,4,0,"a",4),a.ɵɵtemplate(8,h,4,0,"span",6),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(9,"span",7),a.ɵɵtemplate(10,f,2,2,"ng-container",8),a.ɵɵtemplate(11,y,2,2,"ng-container",8),a.ɵɵelementEnd(),a.ɵɵelementStart(12,"div",9),a.ɵɵtemplate(13,C,2,1,"div",10),a.ɵɵelementStart(14,"div",11),a.ɵɵelementStart(15,"a",12),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().navigateRelative(-1)})),a.ɵɵelement(16,"i",13),a.ɵɵelementEnd(),a.ɵɵelementStart(17,"a",12),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().navigateRelative(1)})),a.ɵɵelement(18,"i",14),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext();a.ɵɵadvance(4),a.ɵɵproperty("ngIf",r.activeEntry),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",r._showHint),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",!r.activeEntry&&r.forDate&&"LIST"===r.context),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",!r.activeEntry&&r.forDate&&"EXPLORER"===r.context),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",!r.activeEntry&&!r.forDate),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",r.activeEntry),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",!r.activeEntry),a.ɵɵadvance(2),a.ɵɵproperty("ngForOf",r.timelines)}}var x=function(){function e(e,t){this.lService=e,this.dateService=t,this.latestPeriodIsActive=!1,this.periods=[],this.activeEntry=null,this.forDateEntry=null,this.infinityDayPadding=15,this.dataTimeSpan=null,this._showHint=!1}return Object.defineProperty(e.prototype,"showHint",{set:function(e){var t=this;this._showHint=e,setTimeout((function(){t.showHint=!1}),1e4)},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){var e=this;this.generate(),this.changeRequestEditor.onChangeSubject.subscribe((function(){e.generate()}));var t=this.timelines[0];if(t&&t.length>1){if(null!=this.filterDate){var n=t.findIndex((function(t){return e.dateService.between(e.filterDate,t.period.startDate,t.period.endDate)}));-1!==n&&(this.activeEntry=t[n])}else this.latestPeriodIsActive&&this.setActiveTimelineEntry(t[t.length-1]);if(null!=this.forDate){var r=t.findIndex((function(t){return e.dateService.between(e.forDate,t.period.startDate,t.period.endDate)}));-1!==r&&(this.forDateEntry=t[r])}}},e.prototype.navigateRelative=function(e){var t=this,n=this.timelines[0];if(null!=n&&0!==n.length)if(null!=this.activeEntry){var r=n.findIndex((function(e){return e.period.startDate===t.activeEntry.period.startDate}));if(-1!==r){var i=r+e;i<0?i=n.length-1:i>=n.length&&(i=0),this.setActiveTimelineEntry(n[i])}}else this.setActiveTimelineEntry(n[0])},e.prototype.setActiveTimelineEntry=function(e,t){void 0===t&&(t=!0),this.periods.length<=1&&(e=null),this.activeEntry&&e&&e.period.startDate===this.activeEntry.period.startDate&&(e=null),this.activeEntry=e,this.sharedAttributeEditor.setFilterDate(null==e?null:e.period.startDate,t)},e.prototype.generate=function(){this.generatePeriods(),this.generateTimelines()},e.prototype.calculateDataTimeSpan=function(){var e=null,t=null,n=null,r=null;this.periods.length>0&&(e=this.periods[0].startDate,t=this.periods[this.periods.length-1].endDate,r=this.dateService.getDateFromDateString(e).getTime()/864e5,"5000-12-31"===t?this.periods.length>1?(n=this.dateService.getDateFromDateString(this.periods[this.periods.length-1].startDate).getTime()/864e5,this.infinityDayPadding=.05*(n-r),n=this.infinityDayPadding+n):n=r+this.infinityDayPadding:n=this.dateService.getDateFromDateString(t).getTime()/864e5),this.dataTimeSpan={startDay:r,startDate:e,displayStartDate:this.dateService.formatDateForDisplay(e),endDay:n,endDate:t,displayEndDate:this.dateService.formatDateForDisplay(t),span:n-r}},e.prototype.generateTimelines=function(){if(this.timelines=[],0!==this.periods.length){1===this.periods.length&&this.setActiveTimelineEntry(null,!1),this.calculateDataTimeSpan();var e=[];this.timelines.push(e);for(var t=this.dataTimeSpan.span,n=this.periods.length,r=0;rc?null:e[r+1];if(d.isStart&&d.isEnd&&this.periods.push({startDate:d.date,endDate:d.date}),!d.isEnd||null==p||!p.isStart||this.dateService.addDay(1,d.date)!==p.date){var m=d.isEnd?this.dateService.addDay(1,d.date):d.date;if(null!=p&&this.changeRequestEditor.existsAtDate(m)){var u=p.isStart?this.dateService.addDay(-1,p.date):p.date;this.periods.push({startDate:m,endDate:u})}}}this.dateService.sort(this.periods)},e.prototype.formatDate=function(e){return this.dateService.formatDateForDisplay(e)},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(l.LocalizationService),a.ɵɵdirectiveInject(s.DateService))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["stability-period"]],inputs:{changeRequestEditor:"changeRequestEditor",sharedAttributeEditor:"sharedAttributeEditor",filterDate:"filterDate",forDate:"forDate",context:"context",latestPeriodIsActive:"latestPeriodIsActive",showHint:"showHint"},decls:1,vars:1,consts:[["style","margin-bottom:10px;",4,"ngIf"],[2,"margin-bottom","10px"],[2,"margin-left","20px"],["key","manage.versions.historyTitle"],["class","view-all",3,"click",4,"ngIf"],["id","time-hint",4,"ngIf"],["class","view-all",4,"ngIf"],[2,"float","right","color","#6ba542","margin-right","20px"],[4,"ngIf"],[2,"padding","0 20px"],["class","timeline",4,"ngFor","ngForOf"],[1,"timeline-nav-btn-wrapper"],[3,"click"],[1,"fa","fa-chevron-left"],[1,"fa","fa-chevron-right"],[1,"view-all",3,"click"],["key","manage.versions.history.viewAll"],["id","time-hint"],["key","changeovertime.manageVersions.time.hint.message"],["key","manage.versions.history.viewListPeriod"],["key","manage.versions.history.viewExplorerPeriod"],[1,"view-all"],["key","manage.versions.history.viewingAll"],[1,"timeline"],["class","timeline-entry",3,"ngClass","ngStyle","click",4,"ngFor","ngForOf"],[1,"timeline-entry",3,"ngClass","ngStyle","click"]],template:function(e,t){1&e&&a.ɵɵtemplate(0,E,19,8,"div",0),2&e&&a.ɵɵproperty("ngIf",t.dataTimeSpan)},directives:[c.NgIf,d.LocalizeComponent,c.NgForOf,c.NgClass,c.NgStyle],styles:['.timeline[_ngcontent-%COMP%] {\n\t height: 50px;\n\t width: 100%;\n\t position:relative;\n\t display: inline-block;\n\t z-index: 99;\n}\n.timeline[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:first-child {\n border-top-left-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.timeline[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:last-child {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n}\n\n.timeline-entry[_ngcontent-%COMP%] {\n\t height: 50px;\n\t border:1px solid lightgrey;\n\t position: absolute;\n\t display: inline-block;\n}\n\n.timeline-entry.not-clickable[_ngcontent-%COMP%] {\n\t cursor: default;\n}\n\n.active-timeline-entry[_ngcontent-%COMP%] {\n\t background-color:#EDF4E8;\n\t border-color: #6ba542;\n}\n\n.timeline-nav-btn[_ngcontent-%COMP%] {\n\n}\n\n.timeline-nav-btn-wrapper[_ngcontent-%COMP%] {\n top: 36px;\n width: 100%;\n position: absolute;\n height: 20px;\n right: 0;\n left: 0;\n padding: 0 15px;\n z-index:0;\n}\n.timeline-nav-btn-wrapper[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:last-child {\n float: right;\n}\n\n.navigation-controls[_ngcontent-%COMP%] {\n\t width: 100%;\n\t text-align:center;\n}\n\n.navigation-controls[_ngcontent-%COMP%] a[_ngcontent-%COMP%] {\n\n\n\n\t \n\t \n\t -webkit-touch-callout: none; \n -webkit-user-select: none; \n -khtml-user-select: none; \n -moz-user-select: none; \n -ms-user-select: none; \n user-select: none; \n}\n\n.view-all[_ngcontent-%COMP%] {\n\t margin-left: 5px;\n}\n\n#time-hint[_ngcontent-%COMP%] {\n width: fit-content;\n background: lightgrey;\n padding: 5px;\n margin-left: 70px;\n position: absolute;\n margin-top: 9px;\n z-index: 999;\n border-radius: 3px;\n}\n#time-hint[_ngcontent-%COMP%]:before {\n content: "";\n display: block;\n position: absolute;\n left: 15px;\n top: -10px;\n border-bottom: 10px solid lightgrey;\n border-left: 10px solid transparent;\n border-right: 10px solid transparent;\n}'],data:{animation:[[i.trigger("fadeInOut",[i.transition(":enter",[i.style({opacity:0}),i.animate("1000ms")]),i.transition(":leave",i.animate("1000ms",i.style({opacity:0})))])]]}}),e}();t.StabilityPeriodComponent=x,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(x,[{type:r.Component,args:[{selector:"stability-period",templateUrl:"./stability-period.component.html",styleUrls:["./stability-period.component.css"],animations:[[i.trigger("fadeInOut",[i.transition(":enter",[i.style({opacity:0}),i.animate("1000ms")]),i.transition(":leave",i.animate("1000ms",i.style({opacity:0})))])]]}]}],(function(){return[{type:l.LocalizationService},{type:s.DateService}]}),{changeRequestEditor:[{type:r.Input}],sharedAttributeEditor:[{type:r.Input}],filterDate:[{type:r.Input}],forDate:[{type:r.Input}],context:[{type:r.Input}],latestPeriodIsActive:[{type:r.Input}],showHint:[{type:r.Input}]})},633:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StandardAttributeEditorComponent=void 0;var r=n(0),i=n(7),o=(n(203),n(521)),a=n(258),l=(n(87),n(111)),s=(n(30),n(519),n(522),n(112),n(16),n(22)),c=(n(535),n(0)),d=n(519),p=n(16),m=n(112),u=n(87),g=n(522),h=n(30),f=n(1),y=n(22),v=n(68),b=n(113);function S(e,t){if(1&e&&(c.ɵɵelementStart(0,"div",7),c.ɵɵtext(1),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext(2);c.ɵɵadvance(1),c.ɵɵtextInterpolate1(" ",n.view.summaryKeyLocalized," ")}}var C=function(e){return{"has-changed":e}};function E(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"div"),c.ɵɵelementStart(1,"label",8),c.ɵɵelementStart(2,"input",9),c.ɵɵlistener("change",(function(){return c.ɵɵrestoreView(n),c.ɵɵnextContext(3).onValueChange()}))("ngModelChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext(3).changeRequestAttributeEditor.value=e})),c.ɵɵelementEnd(),c.ɵɵelementStart(3,"span",10),c.ɵɵelement(4,"localize",11),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementStart(5,"label",12),c.ɵɵelementStart(6,"input",13),c.ɵɵlistener("change",(function(){return c.ɵɵrestoreView(n),c.ɵɵnextContext(3).onValueChange()}))("ngModelChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext(3).changeRequestAttributeEditor.value=e})),c.ɵɵelementEnd(),c.ɵɵelementStart(7,"span",10),c.ɵɵelement(8,"localize",14),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd()}if(2&e){var r=c.ɵɵnextContext(3);c.ɵɵadvance(2),c.ɵɵpropertyInterpolate1("id","mod-",r.geoObjectType.code,"-false"),c.ɵɵpropertyInterpolate1("name","mod-",r.geoObjectType.code,"-false"),c.ɵɵproperty("ngClass",c.ɵɵpureFunction1(15,C,r.view.oldValue&&!r.isNew))("checked",!1===r.changeRequestAttributeEditor.value)("value",!1)("ngModel",r.changeRequestAttributeEditor.value)("disabled",r.readonly),c.ɵɵadvance(1),c.ɵɵproperty("ngClass",c.ɵɵpureFunction1(17,C,r.view.oldValue&&!r.isNew)),c.ɵɵadvance(3),c.ɵɵpropertyInterpolate1("id","mod-",r.geoObjectType.code,"-true"),c.ɵɵpropertyInterpolate1("name","mod-",r.geoObjectType.code,"-true"),c.ɵɵproperty("checked",!0===r.view.value)("value",!0)("ngModel",r.changeRequestAttributeEditor.value)("disabled",r.readonly),c.ɵɵadvance(1),c.ɵɵproperty("ngClass",c.ɵɵpureFunction1(19,C,r.view.oldValue&&!r.isNew))}}function x(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"div"),c.ɵɵelementStart(1,"label",8),c.ɵɵelementStart(2,"input",13),c.ɵɵlistener("change",(function(){return c.ɵɵrestoreView(n),c.ɵɵnextContext(3).onValueChange()}))("ngModelChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext(3).changeRequestAttributeEditor.value=e})),c.ɵɵelementEnd(),c.ɵɵelementStart(3,"span",10),c.ɵɵelement(4,"localize",11),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementStart(5,"label",12),c.ɵɵelementStart(6,"input",9),c.ɵɵlistener("change",(function(){return c.ɵɵrestoreView(n),c.ɵɵnextContext(3).onValueChange()}))("ngModelChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext(3).changeRequestAttributeEditor.value=e})),c.ɵɵelementEnd(),c.ɵɵelementStart(7,"span",10),c.ɵɵelement(8,"localize",14),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd()}if(2&e){var r=c.ɵɵnextContext(3);c.ɵɵadvance(2),c.ɵɵpropertyInterpolate1("id","mod-",r.geoObjectType.code,"-true"),c.ɵɵpropertyInterpolate1("name","mod-",r.geoObjectType.code,"-true"),c.ɵɵproperty("checked",!0===r.view.value)("value",!0)("ngModel",r.changeRequestAttributeEditor.value)("disabled",r.readonly),c.ɵɵadvance(1),c.ɵɵproperty("ngClass",c.ɵɵpureFunction1(15,C,r.view.oldValue&&!r.isNew)),c.ɵɵadvance(3),c.ɵɵpropertyInterpolate1("id","mod-",r.geoObjectType.code,"-false"),c.ɵɵpropertyInterpolate1("name","mod-",r.geoObjectType.code,"-false"),c.ɵɵproperty("ngClass",c.ɵɵpureFunction1(17,C,r.view.oldValue&&!r.isNew))("checked",!1===r.changeRequestAttributeEditor.value)("value",!1)("ngModel",r.changeRequestAttributeEditor.value)("disabled",r.readonly),c.ɵɵadvance(1),c.ɵɵproperty("ngClass",c.ɵɵpureFunction1(19,C,r.view.oldValue&&!r.isNew))}}function O(e,t){if(1&e&&(c.ɵɵelementStart(0,"div"),c.ɵɵtemplate(1,E,9,21,"div",6),c.ɵɵtemplate(2,x,9,21,"div",6),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext(2);c.ɵɵadvance(1),c.ɵɵproperty("ngIf","invalid"===n.view.attributeCode),c.ɵɵadvance(1),c.ɵɵproperty("ngIf","invalid"!==n.view.attributeCode)}}function I(e,t){1&e&&(c.ɵɵelementStart(0,"span"),c.ɵɵelement(1,"localize",11),c.ɵɵelementEnd())}function w(e,t){1&e&&(c.ɵɵelementStart(0,"span"),c.ɵɵelement(1,"localize",14),c.ɵɵelementEnd())}function M(e,t){if(1&e&&(c.ɵɵelementStart(0,"span"),c.ɵɵtemplate(1,I,2,0,"span",6),c.ɵɵtemplate(2,w,2,0,"span",6),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext(3);c.ɵɵadvance(1),c.ɵɵproperty("ngIf",!1===n.view.oldValue),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",!0===n.view.oldValue)}}function T(e,t){if(1&e&&(c.ɵɵelementStart(0,"span"),c.ɵɵtext(1),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext(3);c.ɵɵadvance(1),c.ɵɵtextInterpolate1(" ",n.view.oldValue," ")}}function j(e,t){if(1&e&&(c.ɵɵelementStart(0,"div"),c.ɵɵelementStart(1,"p",15),c.ɵɵelement(2,"localize",16),c.ɵɵtext(3,"  "),c.ɵɵtemplate(4,M,3,2,"span",6),c.ɵɵtemplate(5,T,2,1,"span",6),c.ɵɵelementEnd(),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext(2);c.ɵɵadvance(4),c.ɵɵproperty("ngIf","invalid"===n.view.attributeCode),c.ɵɵadvance(1),c.ɵɵproperty("ngIf","invalid"!==n.view.attributeCode)}}var k=function(e){return{warning:e}};function z(e,t){if(1&e&&(c.ɵɵelementStart(0,"div",3),c.ɵɵtemplate(1,S,2,1,"div",4),c.ɵɵelementStart(2,"div",5),c.ɵɵtemplate(3,O,3,2,"div",6),c.ɵɵtemplate(4,j,6,2,"div",6),c.ɵɵelementEnd(),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext();c.ɵɵproperty("ngClass",c.ɵɵpureFunction1(4,k,n.view.summaryKey&&"UNMODIFIED"!==n.view.summaryKey)),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",n.view.summaryKey&&"UNMODIFIED"!==n.view.summaryKey),c.ɵɵadvance(2),c.ɵɵproperty("ngIf","boolean"===n.attributeType.type),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",null!==n.view.oldValue&&void 0!==n.view.oldValue&&!n.isNew)}}function D(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"div"),c.ɵɵelementStart(1,"button",18),c.ɵɵlistener("click",(function(){return c.ɵɵrestoreView(n),c.ɵɵnextContext(2).onApprove()})),c.ɵɵpipe(2,"localize"),c.ɵɵelement(3,"localize",19),c.ɵɵelementEnd(),c.ɵɵelementStart(4,"button",20),c.ɵɵlistener("click",(function(){return c.ɵɵrestoreView(n),c.ɵɵnextContext(2).onReject()})),c.ɵɵpipe(5,"localize"),c.ɵɵelement(6,"localize",21),c.ɵɵelementEnd(),c.ɵɵelementStart(7,"button",22),c.ɵɵlistener("click",(function(){return c.ɵɵrestoreView(n),c.ɵɵnextContext(2).onPending()})),c.ɵɵpipe(8,"localize"),c.ɵɵelement(9,"localize",23),c.ɵɵelementEnd(),c.ɵɵelementEnd()}if(2&e){var r=c.ɵɵnextContext(2);c.ɵɵadvance(1),c.ɵɵproperty("disabled","ACCEPTED"===r.changeRequestAttributeEditor.editAction.approvalStatus)("title",c.ɵɵpipeBind1(2,6,"change.request.action.accept.btn.hover")),c.ɵɵadvance(3),c.ɵɵproperty("disabled","REJECTED"===r.changeRequestAttributeEditor.editAction.approvalStatus)("title",c.ɵɵpipeBind1(5,8,"change.request.action.reject.btn.hover")),c.ɵɵadvance(3),c.ɵɵproperty("disabled","PENDING"===r.changeRequestAttributeEditor.editAction.approvalStatus)("title",c.ɵɵpipeBind1(8,10,"change.request.action.pending.btn.hover"))}}function R(e,t){1&e&&(c.ɵɵelementStart(0,"strong",26),c.ɵɵelement(1,"localize",27),c.ɵɵelementEnd())}function P(e,t){1&e&&(c.ɵɵelementStart(0,"strong",28),c.ɵɵelement(1,"localize",29),c.ɵɵelementEnd())}function A(e,t){if(1&e&&(c.ɵɵelementStart(0,"div"),c.ɵɵtemplate(1,R,2,0,"strong",24),c.ɵɵtemplate(2,P,2,0,"strong",25),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext(2);c.ɵɵadvance(1),c.ɵɵproperty("ngIf","ACCEPTED"===n.changeRequestAttributeEditor.editAction.approvalStatus),c.ɵɵadvance(1),c.ɵɵproperty("ngIf","REJECTED"===n.changeRequestAttributeEditor.editAction.approvalStatus)}}function V(e,t){if(1&e&&(c.ɵɵelementStart(0,"div",17),c.ɵɵtemplate(1,D,10,12,"div",6),c.ɵɵtemplate(2,A,3,2,"div",6),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext();c.ɵɵadvance(1),c.ɵɵproperty("ngIf","PENDING"===n.changeRequest.approvalStatus&&n.changeRequest.permissions.includes("WRITE_APPROVAL_STATUS")&&n.changeRequestAttributeEditor.editAction&&n.changeRequestAttributeEditor.diff),c.ɵɵadvance(1),c.ɵɵproperty("ngIf","PENDING"!==n.changeRequest.approvalStatus)}}var N=function(){function e(e,t,n,i,o,a,l,s,c){this.cdr=e,this.service=t,this.lService=n,this.changeDetectorRef=i,this.dateService=o,this.authService=a,this.requestService=l,this.modalService=s,this.elementRef=c,this.isNew=!1,this.message=null,this.isValid=!0,this.isValidChange=new r.EventEmitter,this.readonly=!1,this.isNewGeoObject=!1}return e.prototype.ngOnInit=function(){this.changeRequestAttributeEditor=this.changeRequestEditor.getEditorForAttribute(this.attributeType,null),this.calculateView()},e.prototype.ngAfterViewInit=function(){},e.prototype.calculateView=function(){var e=this.changeRequestAttributeEditor.diff;if(null!=e){var t=null==e.newValue?null:JSON.parse(JSON.stringify(e.newValue));this.view={value:t,summaryKey:o.SummaryKey.VALUE_CHANGE,summaryKeyLocalized:this.lService.decode("changeovertime.manageVersions.summaryKey."+o.SummaryKey.VALUE_CHANGE),attributeCode:this.changeRequestAttributeEditor.attribute.code},null!==e.oldValue&&void 0!==e.oldValue&&(this.view.oldValue=JSON.parse(JSON.stringify(e.oldValue)))}else this.view={value:this.changeRequestAttributeEditor.value,summaryKey:o.SummaryKey.UNMODIFIED,summaryKeyLocalized:this.lService.decode("changeovertime.manageVersions.summaryKey."+o.SummaryKey.UNMODIFIED),attributeCode:this.changeRequestAttributeEditor.attribute.code}},e.prototype.onValueChange=function(){this.calculateView()},e.prototype.onApprove=function(){var e=this,t=this.changeRequestAttributeEditor.editAction;this.requestService.setActionStatus(t.oid,a.GovernanceStatus.ACCEPTED).then((function(e){t.approvalStatus=a.GovernanceStatus.ACCEPTED})).catch((function(t){e.error(t)}))},e.prototype.onReject=function(){var e=this,t=this.changeRequestAttributeEditor.editAction;this.requestService.setActionStatus(t.oid,a.GovernanceStatus.REJECTED).then((function(e){t.approvalStatus=a.GovernanceStatus.REJECTED})).catch((function(t){e.error(t)}))},e.prototype.onPending=function(){var e=this,t=this.changeRequestAttributeEditor.editAction;this.requestService.setActionStatus(t.oid,a.GovernanceStatus.PENDING).then((function(e){t.approvalStatus=a.GovernanceStatus.PENDING})).catch((function(t){e.error(t)}))},e.prototype.error=function(e){this.bsModalRef=l.ErrorHandler.showErrorAsDialog(e,this.modalService)},e.ɵfac=function(t){return new(t||e)(c.ɵɵdirectiveInject(c.ChangeDetectorRef),c.ɵɵdirectiveInject(d.RegistryService),c.ɵɵdirectiveInject(p.LocalizationService),c.ɵɵdirectiveInject(c.ChangeDetectorRef),c.ɵɵdirectiveInject(m.DateService),c.ɵɵdirectiveInject(u.AuthService),c.ɵɵdirectiveInject(g.ChangeRequestService),c.ɵɵdirectiveInject(h.BsModalService),c.ɵɵdirectiveInject(c.ElementRef))},e.ɵcmp=c.ɵɵdefineComponent({type:e,selectors:[["standard-attribute-editor"]],hostVars:1,hostBindings:function(e,t){2&e&&c.ɵɵsyntheticHostProperty("@fadeInOut",!0)},inputs:{isNew:"isNew",readonly:"readonly",attributeType:"attributeType",changeRequest:"changeRequest",geoObjectType:"geoObjectType",geoObject:"geoObject",isNewGeoObject:"isNewGeoObject",changeRequestEditor:"changeRequestEditor"},outputs:{isValidChange:"isValidChange"},features:[c.ɵɵProvidersFeature([],[{provide:s.ControlContainer,useExisting:s.NgForm}])],decls:4,vars:3,consts:[[1,"value-box"],["class","value-box-wrapper",3,"ngClass",4,"ngIf"],["class","cr-maintainer-options",4,"ngIf"],[1,"value-box-wrapper",3,"ngClass"],["class","value-box-indicator",4,"ngIf"],[1,"inner-value"],[4,"ngIf"],[1,"value-box-indicator"],[1,"radio","radio-inline",2,"padding-left","0"],["type","radio",1,"inline-radio-input",3,"ngClass","checked","value","ngModel","id","name","disabled","change","ngModelChange"],[3,"ngClass"],["key","change.request.boolean.option.true"],[1,"radio","radio-inline"],["type","radio",1,"inline-radio-input",3,"checked","value","ngModel","id","name","disabled","change","ngModelChange"],["key","change.request.boolean.option.false"],[1,"warning-text","display-current-value"],["key","change.request.changed.value.prefix"],[1,"cr-maintainer-options"],["type","submit","role","button",1,"btn","btn-primary",3,"disabled","title","click"],["key","change.request.accept.btn"],["type","submit","role","button",1,"btn","btn-danger",3,"disabled","title","click"],["key","change.request.reject.btn"],["type","submit","role","button",1,"btn","btn-warning",3,"disabled","title","click"],["key","change.request.pending.btn"],["style","color:#6BA542;",4,"ngIf"],["style","color:#6d0400;",4,"ngIf"],[2,"color","#6BA542"],["key","change.request.status.accepted"],[2,"color","#6d0400"],["key","change.request.status.rejected"]],template:function(e,t){1&e&&(c.ɵɵelementStart(0,"div"),c.ɵɵelementStart(1,"div",0),c.ɵɵtemplate(2,z,5,6,"div",1),c.ɵɵelementEnd(),c.ɵɵtemplate(3,V,3,2,"div",2),c.ɵɵelementEnd()),2&e&&(c.ɵɵadvance(1),c.ɵɵproperty("@fadeInOut",void 0),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",t.view),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",t.changeRequest&&!t.changeRequest.isNew))},directives:[f.NgIf,f.NgClass,y.RadioControlValueAccessor,y.DefaultValueAccessor,y.NgControlStatus,y.NgModel,v.LocalizeComponent],pipes:[b.LocalizePipe],styles:[".cr-maintainer-options[_ngcontent-%COMP%] {\n\tpadding-top:15px;\n}\n\np.warning-text.display-current-value[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: bold;\n}\n\n.value-box-wrapper[_ngcontent-%COMP%] {\n\tpadding-top: 0px;\n\tpadding-left: 0px;\n\tborder: solid 1px lightgrey;\n}\n.value-box-wrapper.warning[_ngcontent-%COMP%] {\n background-color: inherit;\n border-color: orange;\n border-left: solid 5px orange;\n}\n\n.value-box[_ngcontent-%COMP%] {\n background-color: #f9f9f9;\n margin-top: 10px;\n}\n\n.value-box[_ngcontent-%COMP%] .inner-value[_ngcontent-%COMP%] {\n\tpadding-left: 10px;\n}\n\n.value-box-wrapper[_ngcontent-%COMP%] .value-box-indicator[_ngcontent-%COMP%] {\n\tposition: relative;\n\tbackground: grey;\n color: white;\n left: -1px;\n font-size: 14px;\n font-weight: bold;\n padding: 0 6px;\n width: fit-content;\n top: -1px;\n}\n.value-box-wrapper.warning[_ngcontent-%COMP%] .value-box-indicator[_ngcontent-%COMP%] {\n background-color: orange;\n}\n\n.value-box-wrapper[_ngcontent-%COMP%] .manage-version-button[_ngcontent-%COMP%] {\n border: solid 1px lightgrey;\n}\n.value-box-wrapper.warning[_ngcontent-%COMP%] .manage-version-button[_ngcontent-%COMP%] {\n border-color: orange;\n}\n\n.has-changed[_ngcontent-%COMP%] {\n\tcolor: orange;\n}"],data:{animation:[[i.trigger("fadeInOut",[i.transition("void => *",[i.style({opacity:0}),i.animate("500ms")]),i.transition(":leave",i.animate("500ms",i.style({opacity:0})))])]]}}),e}();t.StandardAttributeEditorComponent=N,("undefined"==typeof ngDevMode||ngDevMode)&&c.ɵsetClassMetadata(N,[{type:r.Component,args:[{selector:"standard-attribute-editor",templateUrl:"./standard-attribute-editor.component.html",styleUrls:["./standard-attribute-editor.component.css"],host:{"[@fadeInOut]":"true"},animations:[[i.trigger("fadeInOut",[i.transition("void => *",[i.style({opacity:0}),i.animate("500ms")]),i.transition(":leave",i.animate("500ms",i.style({opacity:0})))])]],viewProviders:[{provide:s.ControlContainer,useExisting:s.NgForm}]}]}],(function(){return[{type:c.ChangeDetectorRef},{type:d.RegistryService},{type:p.LocalizationService},{type:c.ChangeDetectorRef},{type:m.DateService},{type:u.AuthService},{type:g.ChangeRequestService},{type:h.BsModalService},{type:c.ElementRef}]}),{isNew:[{type:r.Input}],isValidChange:[{type:r.Output}],readonly:[{type:r.Input}],attributeType:[{type:r.Input}],changeRequest:[{type:r.Input}],geoObjectType:[{type:r.Input}],geoObject:[{type:r.Input}],isNewGeoObject:[{type:r.Input}],changeRequestEditor:[{type:r.Input}]})},634:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GeoObjectEditorMapComponent=void 0;var r=n(0),i=(n(519),n(263)),o=n(0),a=n(519),l=["mapDiv"],s=["geometryType",""],c=function(){function e(e,t,n){this.geomService=e,this.registryService=t,this.mapService=n,this._mapHeight=400,this.readOnly=!1}return Object.defineProperty(e.prototype,"mapHeight",{set:function(e){e>400&&(this._mapHeight=e)},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){},e.prototype.ngAfterViewInit=function(){var e=this;setTimeout((function(){e.mapDiv.nativeElement.id=Math.floor(899999*Math.random())+1e5,e.map=new i.Map({container:e.mapDiv.nativeElement.id,style:"mapbox://styles/mapbox/satellite-v9",zoom:2,center:[110.880453,10.897852]}),e.map.on("load",(function(){e.initMap()}))}),0)},e.prototype.ngOnDestroy=function(){this.geomService.destroy()},e.prototype.getIsValid=function(){return this.geomService.isValid()},e.prototype.initMap=function(){this.map.on("style.load",(function(){})),this.geomService.initialize(this.map,this.geometryType,this.readOnly),this.map.addControl(new i.NavigationControl),this.zoomToBbox()},e.prototype.zoomToBbox=function(){this.geomService.zoomToLayersExtent()},e.prototype.error=function(e){console.log("ERROR",e)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.GeometryService),o.ɵɵdirectiveInject(a.RegistryService),o.ɵɵdirectiveInject(a.MapService))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["geoobject-editor-map","geometryType",""]],viewQuery:function(e,t){if(1&e&&o.ɵɵviewQuery(l,1),2&e){var n;o.ɵɵqueryRefresh(n=o.ɵɵloadQuery())&&(t.mapDiv=n.first)}},inputs:{mapHeight:"mapHeight",geometryType:"geometryType",bboxCode:"bboxCode",bboxType:"bboxType",bboxDate:"bboxDate",readOnly:"readOnly"},attrs:s,decls:3,vars:2,consts:[[1,"geoobject-editor-map-wrapper"],[1,"map-view-port-inline","text-left",2,"width","calc(100% - 15px)"],["mapDiv",""]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵelement(1,"div",1,2),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(1),o.ɵɵstyleProp("height",t._mapHeight,"px"))},styles:[""]}),e}();t.GeoObjectEditorMapComponent=c,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(c,[{type:r.Component,args:[{selector:"geoobject-editor-map[geometryType]",templateUrl:"./geoobject-editor-map.component.html",styleUrls:["./geoobject-editor-map.component.css"]}]}],(function(){return[{type:a.GeometryService},{type:a.RegistryService},{type:a.MapService}]}),{mapHeight:[{type:r.Input}],geometryType:[{type:r.Input}],bboxCode:[{type:r.Input}],bboxType:[{type:r.Input}],bboxDate:[{type:r.Input}],readOnly:[{type:r.Input}],mapDiv:[{type:r.ViewChild,args:["mapDiv"]}]})},635:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SimpleEditControl=void 0;var r=n(0),i=n(0),o=n(1),a=n(68),l=n(113),s=function(e,t){return{"fa-pencil-square-o":e,"fa-save":t}};function c(e,t){if(1&e&&(i.ɵɵelement(0,"button",3),i.ɵɵpipe(1,"localize")),2&e){var n=i.ɵɵnextContext();i.ɵɵproperty("ngClass",i.ɵɵpureFunction2(4,s,!n.save,n.save))("title",i.ɵɵpipeBind1(1,2,"changeovertime.manageVersions.button.label"))}}function d(e,t){1&e&&(i.ɵɵelementStart(0,"div",4),i.ɵɵelementStart(1,"div",5),i.ɵɵelement(2,"localize",6),i.ɵɵelementEnd(),i.ɵɵelement(3,"div",7),i.ɵɵelementEnd())}var p=function(){function e(e){this.editEmitter=new r.EventEmitter,this.visible=!0,this.editSessionEnabled=!1,this.save=!1,this.elRef=e}return e.prototype.onAdd=function(e){return this.elRef.nativeElement},e.prototype.onRemove=function(e){this.elRef.nativeElement.remove()},e.prototype.onClick=function(){this.editEmitter.emit()},e.ɵfac=function(t){return new(t||e)(i.ɵɵdirectiveInject(i.ElementRef))},e.ɵcmp=i.ɵɵdefineComponent({type:e,selectors:[["simple-edit-control"]],inputs:{visible:"visible",editSessionEnabled:"editSessionEnabled",save:"save"},outputs:{editEmitter:"editEmitter"},decls:3,vars:2,consts:[[1,"mapboxgl-ctrl-group","mapboxgl-ctrl",3,"click"],["class","fa","style","color: black; font-size: 18px;",3,"ngClass","title",4,"ngIf"],["class","map-button-info-hint-wrapper",4,"ngIf"],[1,"fa",2,"color","black","font-size","18px",3,"ngClass","title"],[1,"map-button-info-hint-wrapper"],[1,"map-button-info-hint"],["key","map.button.info.hint"],[1,"map-button-pointer"]],template:function(e,t){1&e&&(i.ɵɵelementStart(0,"div",0),i.ɵɵlistener("click",(function(){return t.onClick()})),i.ɵɵtemplate(1,c,2,7,"button",1),i.ɵɵtemplate(2,d,4,0,"div",2),i.ɵɵelementEnd()),2&e&&(i.ɵɵadvance(1),i.ɵɵproperty("ngIf",t.editSessionEnabled),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",t.editSessionEnabled))},directives:[o.NgIf,o.NgClass,a.LocalizeComponent],pipes:[l.LocalizePipe],styles:[".mapboxgl-ctrl-group.mapboxgl-ctrl[_ngcontent-%COMP%] > button[_ngcontent-%COMP%]:hover, .mapboxgl-ctrl-group.mapboxgl-ctrl[_ngcontent-%COMP%]:hover {\n\tcursor: pointer;\n}\n\n.map-button-info-hint-wrapper[_ngcontent-%COMP%] {\n\tanimation: fadeIn ease 2s;\n\t-webkit-animation: fadeIn ease 2s;\n\t-moz-animation: fadeIn ease 2s;\n\t-o-animation: fadeIn ease 2s;\n\t-ms-animation: fadeIn ease 2s;\n}\n\n@keyframes fadeIn {\n0% {opacity:0;}\n100% {opacity:1;}\n}\n\n@-moz-keyframes fadeIn {\n0% {opacity:0;}\n100% {opacity:1;}\n}\n\n@-webkit-keyframes fadeIn {\n0% {opacity:0;}\n100% {opacity:1;}\n}\n\n@-o-keyframes fadeIn {\n0% {opacity:0;}\n100% {opacity:1;}\n}\n\n@-ms-keyframes fadeIn {\n0% {opacity:0;}\n100% {opacity:1;}\n}\n\n\n.map-button-info-hint[_ngcontent-%COMP%] {\n\tposition: absolute;\n\ttop: 0;\n\tright: 45px;\n\tbackground: rgba(255,255,255,.9);\n\tpadding: 5px;\n\twhite-space: nowrap;\n}\n\n.map-button-pointer[_ngcontent-%COMP%] {\n\tborder: solid 15px transparent;\n border-left-color: rgba(255,255,255,.9);\n position: absolute;\n margin: -29px 0 0 -16px;\n}"]}),e}();t.SimpleEditControl=p,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(p,[{type:r.Component,args:[{selector:"simple-edit-control",templateUrl:"./simple-edit-control.component.html",styleUrls:["./simple-edit-control.css"]}]}],(function(){return[{type:i.ElementRef}]}),{editEmitter:[{type:r.Output}],visible:[{type:r.Input}],editSessionEnabled:[{type:r.Input}],save:[{type:r.Input}]})},636:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TreeGeoSelector=void 0;var r=n(0),i=(n(203),n(0)),o=n(1),a=n(208),l=n(68);function s(e,t){if(1&e&&(i.ɵɵelementStart(0,"div",6),i.ɵɵelement(1,"tree-root",7),i.ɵɵelementEnd()),2&e){var n=i.ɵɵnextContext();i.ɵɵadvance(1),i.ɵɵproperty("nodes",n.nodes)("options",n.options)}}function c(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"button",8),i.ɵɵlistener("click",(function(){return i.ɵɵrestoreView(n),i.ɵɵnextContext().onEdit()})),i.ɵɵelement(1,"localize",9),i.ɵɵelementEnd()}}var d=function(){function e(){this.readOnly=!1,this.forDate=null,this.onManageVersion=new r.EventEmitter,this.nodes=[],this.actionMapping={mouse:{click:null}},this.options={displayField:"name",isExpandedField:"expanded",idField:"code",actionMapping:this.actionMapping}}return e.prototype.ngOnInit=function(){this.calculate()},e.prototype.ngOnChanges=function(e){e.forDate&&this.calculate()},e.prototype.calculate=function(){var e=this,t=null;null!=this.forDate&&(t=this.forDate.getTime());var n=[],r=null;this.hierarchy.entries.forEach((function(i){var o=Date.parse(i.startDate),a=Date.parse(i.endDate);(null==t||t>=o&&t<=a)&&e.hierarchy.types.forEach((function(e){var o={code:e.code,label:e.label,children:[],expanded:!1};null!=i.parents[e.code]&&(o.name=i.parents[e.code].text,null==t&&(o.name=o.name+" ("+i.startDate+" -> "+i.endDate+")"),o.geoObject=i.parents[e.code].geoObject),null==r?n.push(o):(r.children.push(o),r.expanded=!0),r=o})),r=null})),this.nodes=n},e.prototype.onEdit=function(){this.onManageVersion.emit(this.hierarchy)},e.ɵfac=function(t){return new(t||e)},e.ɵcmp=i.ɵɵdefineComponent({type:e,selectors:[["tree-geo-selector"]],inputs:{hierarchy:"hierarchy",readOnly:"readOnly",forDate:"forDate"},outputs:{onManageVersion:"onManageVersion"},features:[i.ɵɵNgOnChangesFeature],decls:8,vars:3,consts:[[1,"panel","panel-default"],[1,"panel-heading"],[2,"margin","0"],[1,"panel-body"],["class","tree",4,"ngIf"],["class","btn btn-primary","style","width:100%;margin-top:10px;",3,"click",4,"ngIf"],[1,"tree"],[3,"nodes","options"],[1,"btn","btn-primary",2,"width","100%","margin-top","10px",3,"click"],["key","modal.button.edit"]],template:function(e,t){1&e&&(i.ɵɵelementStart(0,"div"),i.ɵɵelementStart(1,"div",0),i.ɵɵelementStart(2,"div",1),i.ɵɵelementStart(3,"h4",2),i.ɵɵtext(4),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(5,"div",3),i.ɵɵtemplate(6,s,2,2,"div",4),i.ɵɵtemplate(7,c,2,0,"button",5),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd()),2&e&&(i.ɵɵadvance(4),i.ɵɵtextInterpolate(t.hierarchy.label),i.ɵɵadvance(2),i.ɵɵproperty("ngIf",t.nodes.length>0),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",!t.readOnly))},directives:[o.NgIf,a.TreeComponent,l.LocalizeComponent],styles:[""]}),e}();t.TreeGeoSelector=d,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(d,[{type:r.Component,args:[{selector:"tree-geo-selector",templateUrl:"./tree-geo-selector.html",styleUrls:["./tree-geo-selector.css"]}]}],(function(){return[]}),{hierarchy:[{type:r.Input}],readOnly:[{type:r.Input}],forDate:[{type:r.Input}],onManageVersion:[{type:r.Output}]})},637:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActionDetailModalComponent=void 0;var r=n(0),i=(n(30),n(0)),o=n(30),a=["cuDetail"],l=["arDetail"],s=["spDetail"];function c(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"crtable-detail-create-geo-object",7,8),i.ɵɵlistener("actionChange",(function(e){return i.ɵɵrestoreView(n),i.ɵɵnextContext().action=e})),i.ɵɵelementEnd()}if(2&e){var r=i.ɵɵnextContext();i.ɵɵproperty("action",r.action)("readOnly",r.readonly)}}function d(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"crtable-detail-add-remove-child",7,9),i.ɵɵlistener("actionChange",(function(e){return i.ɵɵrestoreView(n),i.ɵɵnextContext().action=e})),i.ɵɵelementEnd()}if(2&e){var r=i.ɵɵnextContext();i.ɵɵproperty("action",r.action)("readOnly",r.readonly)}}function p(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"set-parent-detail",7,10),i.ɵɵlistener("actionChange",(function(e){return i.ɵɵrestoreView(n),i.ɵɵnextContext().action=e})),i.ɵɵelementEnd()}if(2&e){var r=i.ɵɵnextContext();i.ɵɵproperty("action",r.action)("readOnly",r.readonly)}}var m=function(){function e(e){this.bsModalRef=e}return e.prototype.curAction=function(e,t){this.action=e,this.readonly=t},e.prototype.ngOnInit=function(){},e.prototype.cancel=function(){null!=this.cuDetail&&this.cuDetail.endEdit(),null!=this.arDetail&&this.arDetail.endEdit(),null!=this.spDetail&&this.spDetail.endEdit(),this.bsModalRef.hide()},e.prototype.confirm=function(){this.bsModalRef.hide()},e.ɵfac=function(t){return new(t||e)(i.ɵɵdirectiveInject(o.BsModalRef))},e.ɵcmp=i.ɵɵdefineComponent({type:e,selectors:[["action-detail-modal"]],viewQuery:function(e,t){if(1&e&&(i.ɵɵviewQuery(a,1),i.ɵɵviewQuery(l,1),i.ɵɵviewQuery(s,1)),2&e){var n=void 0;i.ɵɵqueryRefresh(n=i.ɵɵloadQuery())&&(t.cuDetail=n.first),i.ɵɵqueryRefresh(n=i.ɵɵloadQuery())&&(t.arDetail=n.first),i.ɵɵqueryRefresh(n=i.ɵɵloadQuery())&&(t.spDetail=n.first)}},inputs:{curAction:"curAction"},decls:13,vars:3,consts:[["tabindex","-1","role","dialog",1,"modal-body"],[1,"row"],[1,"col-md-12"],[3,"action","readOnly","actionChange",4,"ngIf"],[1,"button-holder","text-right"],["type","button","role","button","aria-disabled","false",1,"btn","btn-default",3,"click"],["key","modal.button.close"],[3,"action","readOnly","actionChange"],["cuDetail",""],["arDetail",""],["spDetail",""]],template:function(e,t){1&e&&(i.ɵɵelementStart(0,"div",0),i.ɵɵelementStart(1,"div",1),i.ɵɵelementStart(2,"div",2),i.ɵɵtemplate(3,c,2,2,"crtable-detail-create-geo-object",3),i.ɵɵtemplate(4,d,2,2,"crtable-detail-add-remove-child",3),i.ɵɵtemplate(5,p,2,2,"set-parent-detail",3),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelement(6,"hr"),i.ɵɵelementStart(7,"div",1),i.ɵɵelementStart(8,"div",2),i.ɵɵelementStart(9,"div",4),i.ɵɵelementStart(10,"button",5),i.ɵɵlistener("click",(function(){return t.cancel()})),i.ɵɵelementStart(11,"span"),i.ɵɵelement(12,"localize",6),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd()),2&e&&(i.ɵɵadvance(3),i.ɵɵproperty("ngIf",t.action&&(t.action.actionType.endsWith("CreateGeoObjectAction")||t.action.actionType.endsWith("UpdateGeoObjectAction"))),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",t.action&&(t.action.actionType.endsWith("AddChildAction")||t.action.actionType.endsWith("RemoveChildAction"))),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",t.action&&t.action.actionType.endsWith("SetParentAction")))},encapsulation:2}),e}();t.ActionDetailModalComponent=m,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(m,[{type:r.Component,args:[{selector:"action-detail-modal",templateUrl:"./action-detail-modal.component.html",styleUrls:[]}]}],(function(){return[{type:o.BsModalRef}]}),{cuDetail:[{type:r.ViewChild,args:["cuDetail"]}],arDetail:[{type:r.ViewChild,args:["arDetail"]}],spDetail:[{type:r.ViewChild,args:["spDetail"]}],curAction:[{type:r.Input}]})},638:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DataExportComponent=void 0;var r=n(0),i=(n(30),n(111)),o=(n(519),n(16),n(0)),a=n(519),l=n(30),s=n(16),c=n(86),d=n(1),p=n(22),m=n(68);function u(e,t){if(1&e&&(o.ɵɵelementStart(0,"option",19),o.ɵɵtext(1),o.ɵɵelementEnd()),2&e){var n=t.$implicit;o.ɵɵproperty("value",n.code),o.ɵɵadvance(1),o.ɵɵtextInterpolate(n.label)}}function g(e,t){if(1&e&&(o.ɵɵelementStart(0,"option",19),o.ɵɵtext(1),o.ɵɵelementEnd()),2&e){var n=t.$implicit;o.ɵɵproperty("value",n.code),o.ɵɵadvance(1),o.ɵɵtextInterpolate(n.label)}}function h(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",2),o.ɵɵelementStart(1,"label",20),o.ɵɵelement(2,"localize",21),o.ɵɵelementEnd(),o.ɵɵelementStart(3,"div",5),o.ɵɵelementStart(4,"select",22),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).hierarchy=e})),o.ɵɵelement(5,"option"),o.ɵɵtemplate(6,g,2,2,"option",7),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(2);o.ɵɵadvance(4),o.ɵɵproperty("ngModel",r.hierarchy),o.ɵɵadvance(2),o.ɵɵproperty("ngForOf",r.hierarchies)}}function f(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"form",null,1),o.ɵɵelementStart(2,"div",2),o.ɵɵelementStart(3,"label",3),o.ɵɵelement(4,"localize",4),o.ɵɵelementEnd(),o.ɵɵelementStart(5,"div",5),o.ɵɵelementStart(6,"select",6),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext().code=e}))("change",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext().onChange(e.target.value)})),o.ɵɵelement(7,"option"),o.ɵɵtemplate(8,u,2,2,"option",7),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵtemplate(9,h,7,2,"div",8),o.ɵɵelementStart(10,"div",2),o.ɵɵelementStart(11,"label",9),o.ɵɵelement(12,"localize",10),o.ɵɵelementEnd(),o.ɵɵelementStart(13,"div",5),o.ɵɵelementStart(14,"select",11),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext().format=e})),o.ɵɵelement(15,"option"),o.ɵɵelementStart(16,"option",12),o.ɵɵelement(17,"localize",13),o.ɵɵelementEnd(),o.ɵɵelementStart(18,"option",14),o.ɵɵelement(19,"localize",15),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(20,"div",2),o.ɵɵelementStart(21,"div",16),o.ɵɵelementStart(22,"button",17),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext().onExport()})),o.ɵɵelement(23,"localize",18),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵreference(1),i=o.ɵɵnextContext();o.ɵɵadvance(6),o.ɵɵproperty("ngModel",i.code),o.ɵɵadvance(2),o.ɵɵproperty("ngForOf",i.types),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",i.hierarchies.length>0),o.ɵɵadvance(5),o.ɵɵproperty("ngModel",i.format),o.ɵɵadvance(8),o.ɵɵproperty("disabled",r.invalid)}}var y=function(){function e(e,t,n){this.service=e,this.modalService=t,this.authService=n,this.code=null,this.hierarchies=[],this.hierarchy=null,this.format=null}return e.prototype.ngOnInit=function(){var e=this;this.service.listGeoObjectTypes(!0).then((function(t){for(var n=[],r=0;r0?this.service.getHierarchiesForType(e,!1).then((function(e){t.hierarchies=e,t.hierarchy=null})).catch((function(e){t.error(e)})):(this.hierarchies=[],this.hierarchy=null)},e.prototype.onExport=function(){"SHAPEFILE"===this.format?window.location.href=acp+"/shapefile/export-shapefile?type="+this.code+"&hierarchyType="+this.hierarchy:"EXCEL"===this.format&&(window.location.href=acp+"/excel/export-spreadsheet?type="+this.code+"&hierarchyType="+this.hierarchy)},e.prototype.error=function(e){this.bsModalRef=i.ErrorHandler.showErrorAsDialog(e,this.modalService)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.IOService),o.ɵɵdirectiveInject(l.BsModalService),o.ɵɵdirectiveInject(s.AuthService))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["data-export"]],decls:2,vars:1,consts:[[4,"ngIf"],["form","ngForm"],[1,"form-group","row"],["for","code",1,"col-md-3","text-right"],["key","io.geoObjectType"],[1,"col-md-9"],["id","code","name","code","required","",1,"select-area",3,"ngModel","ngModelChange","change"],[3,"value",4,"ngFor","ngForOf"],["class","form-group row",4,"ngIf"],["for","format",1,"col-md-3","text-right"],["key","io.format"],["id","format","name","format","required","",1,"select-area",3,"ngModel","ngModelChange"],["value","EXCEL"],["key","io.spreadsheet"],["value","SHAPEFILE"],["key","io.shapefile"],[1,"col-md-12","text-right"],["type","submit",1,"btn","btn-primary",3,"disabled","click"],["key","io.export"],[3,"value"],[1,"col-sm-3","text-right"],["key","io.modal.hierarchy"],["name","hierarchy","required","",1,"select-area",3,"ngModel","ngModelChange"]],template:function(e,t){1&e&&(o.ɵɵelement(0,"loading-bar"),o.ɵɵtemplate(1,f,24,5,"form",0)),2&e&&(o.ɵɵadvance(1),o.ɵɵproperty("ngIf",t.types))},directives:[c.LoadingBarComponent,d.NgIf,p.ɵangular_packages_forms_forms_ba,p.NgControlStatusGroup,p.NgForm,m.LocalizeComponent,p.SelectControlValueAccessor,p.RequiredValidator,p.NgControlStatus,p.NgModel,p.NgSelectOption,p.ɵangular_packages_forms_forms_z,d.NgForOf],encapsulation:2}),e}();t.DataExportComponent=y,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(y,[{type:r.Component,args:[{selector:"data-export",templateUrl:"./data-export.component.html",styleUrls:[]}]}],(function(){return[{type:a.IOService},{type:l.BsModalService},{type:s.AuthService}]}),null)},639:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GeometryPanelComponent=void 0;var r=n(0),i=n(7),o=n(203),a=(n(16),n(112),n(3)),l=n(0),s=n(16),c=n(112),d=n(1),p=n(22),m=n(68),u=n(260),g=n(113),h=["dateFieldComponents"];function f(e,t){1&e&&(l.ɵɵelementStart(0,"div",11),l.ɵɵelement(1,"localize",12),l.ɵɵelementEnd())}function y(e,t){1&e&&(l.ɵɵelementStart(0,"p",23),l.ɵɵelement(1,"localize",24),l.ɵɵelementEnd())}function v(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"tr",37),l.ɵɵelementStart(1,"td",38),l.ɵɵelementStart(2,"button",39),l.ɵɵlistener("click",(function(){l.ɵɵrestoreView(n);var e=l.ɵɵnextContext(),t=e.$implicit,r=e.index;return l.ɵɵnextContext(2).edit(t,r)})),l.ɵɵelement(3,"localize",40),l.ɵɵelementEnd(),l.ɵɵelementStart(4,"button",41),l.ɵɵlistener("click",(function(){l.ɵɵrestoreView(n);var e=l.ɵɵnextContext().$implicit;return l.ɵɵnextContext(2).onCloneGeometryToNewVersion(e)})),l.ɵɵelement(5,"localize",42),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd()}}var b=function(e,t){return{"error-message":e,"warning-message":t}};function S(e,t){if(1&e&&(l.ɵɵelementStart(0,"p",25),l.ɵɵtext(1),l.ɵɵelementEnd()),2&e){var n=t.$implicit;l.ɵɵproperty("ngClass",l.ɵɵpureFunction2(2,b,"ERROR"===n.type,"WARNING"===n.type)),l.ɵɵadvance(1),l.ɵɵtextInterpolate1(" ",n.message," ")}}function C(e,t){if(1&e&&(l.ɵɵelementStart(0,"tr"),l.ɵɵtemplate(1,S,2,5,"p",19),l.ɵɵelementEnd()),2&e){var n=l.ɵɵnextContext().$implicit;l.ɵɵadvance(1),l.ɵɵproperty("ngForOf",n.conflictMessage)}}var E=function(e,t){return{"error-border":e,"warning-border":t}},x=function(e){return{active:e}};function O(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"tr",25),l.ɵɵelementStart(1,"td",25),l.ɵɵelementStart(2,"table"),l.ɵɵtemplate(3,v,6,0,"tr",26),l.ɵɵelementStart(4,"tr",27),l.ɵɵelementStart(5,"td"),l.ɵɵelementStart(6,"h5"),l.ɵɵelement(7,"localize",28),l.ɵɵelementEnd(),l.ɵɵelementStart(8,"date-field",29,30),l.ɵɵlistener("valueChange",(function(e){return t.$implicit.startDate=e}))("change",(function(){return l.ɵɵrestoreView(n),l.ɵɵnextContext(2).onDateChange()})),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(10,"td"),l.ɵɵelementStart(11,"div",31),l.ɵɵelementStart(12,"h5"),l.ɵɵelement(13,"localize",32),l.ɵɵelementEnd(),l.ɵɵelementStart(14,"date-field",33,30),l.ɵɵlistener("valueChange",(function(e){return t.$implicit.endDate=e}))("change",(function(){return l.ɵɵrestoreView(n),l.ɵɵnextContext(2).onDateChange()})),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵtemplate(16,C,2,1,"tr",34),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(17,"td",35),l.ɵɵlistener("click",(function(){l.ɵɵrestoreView(n);var e=t.$implicit;return l.ɵɵnextContext(2).remove(e)})),l.ɵɵpipe(18,"localize"),l.ɵɵelement(19,"i",36),l.ɵɵelementEnd(),l.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=t.index,o=l.ɵɵnextContext(2);l.ɵɵproperty("ngClass",l.ɵɵpureFunction2(17,E,r.conflictMessage&&r.conflictMessage.length>0&&"ERROR"===r.conflictMessage[0].type,r.conflictMessage&&r.conflictMessage.length>0&&"WARNING"===r.conflictMessage[0].type)),l.ɵɵadvance(1),l.ɵɵproperty("ngClass",l.ɵɵpureFunction1(20,x,i===o.isVersionForHighlight)),l.ɵɵadvance(2),l.ɵɵproperty("ngIf",o.geoObjectType.isGeometryEditable),l.ɵɵadvance(5),l.ɵɵproperty("value",r.startDate)("inputName","startDate_"+i)("allowFutureDates",!1)("required",!0),l.ɵɵadvance(6),l.ɵɵproperty("value",r.endDate)("inputName","endDate_"+i)("allowInfinity",!0)("allowFutureDates",!0)("required",!0)("placement","bottom"),l.ɵɵadvance(2),l.ɵɵproperty("ngIf",r.conflictMessage&&r.conflictMessage.length>0),l.ɵɵadvance(1),l.ɵɵproperty("title",l.ɵɵpipeBind1(18,15,"changeovertime.manageVersions.remove.version"))}}function I(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"div",13),l.ɵɵelementStart(1,"ul",14),l.ɵɵelementStart(2,"li",15),l.ɵɵelementStart(3,"table",16),l.ɵɵelementStart(4,"tbody",17),l.ɵɵtemplate(5,y,2,0,"p",18),l.ɵɵtemplate(6,O,20,22,"tr",19),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(7,"li",20),l.ɵɵelementStart(8,"i",21),l.ɵɵlistener("click",(function(){return l.ɵɵrestoreView(n),l.ɵɵnextContext().onAddNewVersion(null)})),l.ɵɵelement(9,"localize",22),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd()}if(2&e){var r=l.ɵɵnextContext();l.ɵɵadvance(5),l.ɵɵproperty("ngIf",0===r.geoObjectOverTime.attributes.geometry.values.length),l.ɵɵadvance(1),l.ɵɵproperty("ngForOf",r.geoObjectOverTime.attributes.geometry.values)}}function w(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"button",41),l.ɵɵlistener("click",(function(){return l.ɵɵrestoreView(n),l.ɵɵnextContext().onCancel()})),l.ɵɵelement(1,"localize",43),l.ɵɵelementEnd()}}function M(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"button",44),l.ɵɵlistener("click",(function(){return l.ɵɵrestoreView(n),l.ɵɵnextContext().onSubmit()})),l.ɵɵelement(1,"localize",45),l.ɵɵelementEnd()}if(2&e){var r=l.ɵɵnextContext(),i=l.ɵɵreference(3);l.ɵɵproperty("disabled",!r.isValid||!i.valid)}}var T=function(){function e(e,t,n){this.lService=e,this.changeDetectorRef=t,this.dateService=n,this.currentDate=new Date,this.isValid=!0,this.message=null,this.readonly=!1,this.hasConflict=!1,this.onChange=new r.EventEmitter,this.onCloneGeometry=new r.EventEmitter,this.onEdit=new r.EventEmitter,this.isNewGeoObject=!1,this.hasDuplicateDate=!1}return Object.defineProperty(e.prototype,"geoObjectOverTimeInput",{set:function(e){this.originalGeoObjectOverTime=JSON.parse(JSON.stringify(e)),this.geoObjectOverTime=e},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){},e.prototype.checkDateFieldValidity=function(){for(var e=this.dateFieldComponentsArray.toArray(),t=0;t-1&&t.values.splice(n,1)},e.prototype.formatDate=function(e){var t=a.localeData(e).longDateFormat("L");return a().format(t)},e.prototype.setInfinity=function(e,t){e.endDate===o.PRESENT?e.endDate=new Date:e.endDate=o.PRESENT,this.onDateChange()},e.prototype.sort=function(e){e.sort((function(e,t){return null==e.startDate||""===e.startDate?1:null==t.startDate||""===t.startDate?-1:new Date(e.startDate)-new Date(t.startDate)}))},e.prototype.onCloneGeometryToNewVersion=function(e){this.onAddNewVersion(e)},e.prototype.onSubmit=function(){this.onChange.emit(this.geoObjectOverTime)},e.prototype.onCancel=function(){this.onChange.emit(this.originalGeoObjectOverTime)},e.ɵfac=function(t){return new(t||e)(l.ɵɵdirectiveInject(s.LocalizationService),l.ɵɵdirectiveInject(l.ChangeDetectorRef),l.ɵɵdirectiveInject(c.DateService))},e.ɵcmp=l.ɵɵdefineComponent({type:e,selectors:[["geometry-panel"]],viewQuery:function(e,t){if(1&e&&l.ɵɵviewQuery(h,1),2&e){var n;l.ɵɵqueryRefresh(n=l.ɵɵloadQuery())&&(t.dateFieldComponentsArray=n)}},hostVars:1,hostBindings:function(e,t){2&e&&l.ɵɵsyntheticHostProperty("@fadeInOut",!0)},inputs:{geoObjectType:"geoObjectType",geoObjectOverTimeInput:"geoObjectOverTimeInput",isNewGeoObject:"isNewGeoObject"},outputs:{onChange:"onChange",onCloneGeometry:"onCloneGeometry",onEdit:"onEdit"},decls:13,vars:4,consts:[["class","alert alert-danger","role","alert",4,"ngIf"],["autocomplete","off",1,"modal-form"],["versionsform","ngForm"],[1,"row"],[1,"col-md-12"],["class","attribute-version-wrapper",4,"ngIf"],[1,"row-holder"],[1,"holder",2,"border","none","width","100%"],[1,"button-holder","pull-right"],["type","submit","class","btn btn-default","role","button",3,"click",4,"ngIf"],["type","submit","class","btn btn-primary","role","button",3,"disabled","click",4,"ngIf"],["role","alert",1,"alert","alert-danger"],["key","changeovertime.manageVersions.duplicateDate"],[1,"attribute-version-wrapper"],[1,"list-group"],[1,"list-group-item",2,"text-align","left","padding","0"],[1,"table","table-striped"],[1,"attribute-element-wrapper"],["class","message",4,"ngIf"],[3,"ngClass",4,"ngFor","ngForOf"],[1,"list-group-item",2,"text-align","left"],[1,"fa","fa-plus","clickable",3,"click"],["key","changeovertime.manageVersions.newVersion"],[1,"message"],["key","changeovertime.manageVersions.no.versions.message"],[3,"ngClass"],["class","attribute-value-row",4,"ngIf"],[1,"attribute-date-input-row"],["key","changeovertime.manageVersions.tableHeader.label.startDate"],["label","",3,"value","inputName","allowFutureDates","required","valueChange","change"],["dateFieldComponents",""],[1,"version-edit-date-container"],["key","changeovertime.manageVersions.tableHeader.label.endDate"],["label","",3,"value","inputName","allowInfinity","allowFutureDates","required","placement","valueChange","change"],[4,"ngIf"],[1,"manage-version-button","clickable",2,"vertical-align","middle",3,"title","click"],[1,"fa","fa-times"],[1,"attribute-value-row"],["colspan","2"],["role","button",1,"btn","btn-primary",3,"click"],["key","changeovertime.manageVersions.geometry.edit"],["type","submit","role","button",1,"btn","btn-default",3,"click"],["key","changeovertime.manageVersions.copy.geometry.button"],["key","io.cancel"],["type","submit","role","button",1,"btn","btn-primary",3,"disabled","click"],["key","modal.button.submit"]],template:function(e,t){1&e&&(l.ɵɵelementStart(0,"div"),l.ɵɵtemplate(1,f,2,0,"div",0),l.ɵɵelementStart(2,"form",1,2),l.ɵɵelementStart(4,"fieldset"),l.ɵɵelementStart(5,"div",3),l.ɵɵelementStart(6,"div",4),l.ɵɵtemplate(7,I,10,2,"div",5),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(8,"div",6),l.ɵɵelementStart(9,"div",7),l.ɵɵelementStart(10,"div",8),l.ɵɵtemplate(11,w,2,0,"button",9),l.ɵɵtemplate(12,M,2,1,"button",10),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd()),2&e&&(l.ɵɵadvance(1),l.ɵɵproperty("ngIf",t.hasDuplicateDate),l.ɵɵadvance(6),l.ɵɵproperty("ngIf",t.geoObjectOverTime),l.ɵɵadvance(4),l.ɵɵproperty("ngIf",!t.readonly),l.ɵɵadvance(1),l.ɵɵproperty("ngIf",!t.readonly))},directives:[d.NgIf,p.ɵangular_packages_forms_forms_ba,p.NgControlStatusGroup,p.NgForm,m.LocalizeComponent,d.NgForOf,d.NgClass,u.DateFieldComponent],pipes:[g.LocalizePipe],styles:['@charset "UTF-8";\n\n.active[_ngcontent-%COMP%] {\n\tbackground-color: #f4fcef !important;\n\tborder: solid 1px #6BA542;\n}'],data:{animation:[[i.trigger("fadeInOut",[i.transition("void => *",[i.style({opacity:0}),i.animate("500ms")]),i.transition(":leave",i.animate("500ms",i.style({opacity:0})))])]]}}),e}();t.GeometryPanelComponent=T,("undefined"==typeof ngDevMode||ngDevMode)&&l.ɵsetClassMetadata(T,[{type:r.Component,args:[{selector:"geometry-panel",templateUrl:"./geometry-panel.component.html",styleUrls:["./geometry-panel.css"],host:{"[@fadeInOut]":"true"},animations:[[i.trigger("fadeInOut",[i.transition("void => *",[i.style({opacity:0}),i.animate("500ms")]),i.transition(":leave",i.animate("500ms",i.style({opacity:0})))])]]}]}],(function(){return[{type:s.LocalizationService},{type:l.ChangeDetectorRef},{type:c.DateService}]}),{dateFieldComponentsArray:[{type:r.ViewChildren,args:["dateFieldComponents"]}],onChange:[{type:r.Output}],onCloneGeometry:[{type:r.Output}],onEdit:[{type:r.Output}],geoObjectType:[{type:r.Input}],geoObjectOverTimeInput:[{type:r.Input}],isNewGeoObject:[{type:r.Input}]})},640:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GeoObjectTypePipe=void 0;var r=n(0),i=n(0),o=function(){function e(){}return e.prototype.transform=function(e,t){if(!e||!t)return e;var n=[];return this.buildUnassignedGeoObjTypes(t,n),e.filter((function(e){return-1===n.indexOf(e.code)}))},e.prototype.buildUnassignedGeoObjTypes=function(e,t){var n=this;e.forEach((function(e){n.processHierarchyNodes(e,t)}))},e.prototype.processHierarchyNodes=function(e,t){var n=this;t.push(e.geoObjectType),e.children.forEach((function(e){n.processHierarchyNodes(e,t)}))},e.ɵfac=function(t){return new(t||e)},e.ɵpipe=i.ɵɵdefinePipe({name:"geoobjecttype",type:e,pure:!1}),e}();t.GeoObjectTypePipe=o,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(o,[{type:r.Pipe,args:[{name:"geoobjecttype",pure:!1}]}],null,null)},641:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GeoObjectAttributeExcludesPipe=void 0;var r=n(0),i=n(0),o=function(){function e(){}return e.prototype.transform=function(e,t){return e&&t?e.filter((function(e){return-1===t.indexOf(e.code)})):e},e.ɵfac=function(t){return new(t||e)},e.ɵpipe=i.ɵɵdefinePipe({name:"geoObjectAttributeExcludesFilter",type:e,pure:!0}),e}();t.GeoObjectAttributeExcludesPipe=o,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(o,[{type:r.Pipe,args:[{name:"geoObjectAttributeExcludesFilter",pure:!0}]}],null,null)},642:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ToEpochDateTimePipe=void 0;var r=n(0),i=n(0),o=function(){function e(){}return e.prototype.transform=function(e){return e?new Date(e).getTime():e},e.ɵfac=function(t){return new(t||e)},e.ɵpipe=i.ɵɵdefinePipe({name:"toEpochDateTime",type:e,pure:!0}),e}();t.ToEpochDateTimePipe=o,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(o,[{type:r.Pipe,args:[{name:"toEpochDateTime",pure:!0}]}],null,null)},643:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RegistryRoutingModule=void 0;var r=n(0),i=n(1),o=n(33),a=n(534),l=n(555),s=n(587),c=n(595),d=n(598),p=n(585),m=n(593),u=n(599),g=n(600),h=n(607),f=n(610),y=n(613),v=n(614),b=n(615),S=n(617),C=n(123),E=n(618),x=n(0),O=n(33),I=[{path:"",component:a.HierarchyComponent,canActivate:[C.AuthGuard]},{path:"hierarchies",component:a.HierarchyComponent,canActivate:[C.AuthGuard]},{path:"data",component:p.DataPageComponent,canActivate:[C.MaintainerGuard]},{path:"change-requests",component:m.ChangeRequestPageComponent,canActivate:[C.ContributerGuard]},{path:"change-requests/:oid",component:m.ChangeRequestPageComponent,canActivate:[C.ContributerGuard]},{path:"master-lists",component:s.MasterListManagerComponent,canActivate:[C.AuthGuard]},{path:"scheduled-jobs",component:u.ScheduledJobsComponent,canActivate:[C.MaintainerGuard]},{path:"job/:oid",component:g.JobComponent,canActivate:[C.MaintainerGuard]},{path:"master-list/:oid/:published",component:c.MasterListComponent,canActivate:[C.AuthGuard]},{path:"master-list-view/:oid",component:d.MasterListViewComponent,canActivate:[C.AuthGuard]},{path:"change-request",component:l.SubmitChangeRequestComponent,canActivate:[C.ContributerGuard]},{path:"tasks",component:h.TaskViewerComponent,canActivate:[C.MaintainerGuard]},{path:"synchronization-configs",component:f.SynchronizationConfigManagerComponent,canActivate:[C.AuthGuard]},{path:"synchronization-config/:oid",component:y.SynchronizationConfigComponent,canActivate:[C.AuthGuard]},{path:"location-manager",component:b.LocationManagerComponent,canActivate:[C.AuthGuard]},{path:"location-manager/:geoobjectuid/:geoobjecttypecode/:datestr/:hideSearchOptions",component:b.LocationManagerComponent,canActivate:[C.AuthGuard]},{path:"location-manager/:geoobjectuid/:geoobjecttypecode/:datestr/:hideSearchOptions/:backReference",component:b.LocationManagerComponent,canActivate:[C.AuthGuard]},{path:"dataset-location-manager/:datasetId/:typeCode/:readOnly/:date",component:S.DatasetLocationManagerComponent,canActivate:[C.AuthGuard]},{path:"dataset-location-manager/:datasetId/:typeCode/:readOnly/:date/:code",component:S.DatasetLocationManagerComponent,canActivate:[C.AuthGuard]},{path:"dataset-location-manager/:datasetId/:typeCode/:readOnly/:date/:code/:editOnly",component:S.DatasetLocationManagerComponent,canActivate:[C.AuthGuard]},{path:"dataset-location-manager/:datasetId/:typeCode/:readOnly/:date/:code/:editOnly/:backReference",component:S.DatasetLocationManagerComponent,canActivate:[C.AuthGuard]},{path:"sync/details/:config/:oid",component:v.SyncDetailsComponent,canActivate:[C.MaintainerGuard]},{path:"historical-events",component:E.HistoricalEventModuleComponent,canActivate:[C.MaintainerGuard]}],w=function(){function e(){}return e.ɵfac=function(t){return new(t||e)},e.ɵmod=x.ɵɵdefineNgModule({type:e}),e.ɵinj=x.ɵɵdefineInjector({providers:[{provide:i.LocationStrategy,useClass:i.HashLocationStrategy}],imports:[[o.RouterModule.forChild(I)],o.RouterModule]}),e}();t.RegistryRoutingModule=w,("undefined"==typeof ngJitMode||ngJitMode)&&x.ɵɵsetNgModuleScope(w,{imports:[O.RouterModule],exports:[o.RouterModule]}),("undefined"==typeof ngDevMode||ngDevMode)&&x.ɵsetClassMetadata(w,[{type:r.NgModule,args:[{imports:[o.RouterModule.forChild(I)],exports:[o.RouterModule],providers:[{provide:i.LocationStrategy,useClass:i.HashLocationStrategy}]}]}],null,null)}}]); +(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{264:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GeometryService=void 0;var r=n(0),i=n(273),o=n(263),a=n(0),l=function(){function e(){this.layers=[],this.editingControl=null,this.simpleEditControl=null,this.geometryChange=new r.EventEmitter}return e.prototype.ngOnInit=function(){var e=this;window.onbeforeunload=function(){return e.destroy()}},e.prototype.initialize=function(e,t,n){var r=this;this.map=e,this.geometryType=t,this.addLayers(),this.map.on("draw.create",(function(){r.saveEdits()})),this.map.on("draw.delete",(function(){r.saveEdits()})),this.map.on("draw.update",(function(){r.saveEdits()}))},e.prototype.destroy=function(e){void 0===e&&(e=!0),null!=this.editingControl&&(this.map.removeControl(this.editingControl),this.editingControl=null),null!=this.map&&e?(this.map.remove(),this.map=null):null!=this.map&&this.removeLayers(),null!=this.layers&&this.layers.forEach((function(e){e.isEditing=!1,e.isRendering=!1})),this.editingLayer=null,this.layers=[]},e.prototype.startEditing=function(e){this.isEditing()&&this.stopEditing(),this.editingLayer=e,this.editingLayer.isEditing=!0,this.readOnly||this.enableEditing(),this.addEditingLayers()},e.prototype.stopEditing=function(e){void 0===e&&(e=!0),this.isEditing()&&(this.saveEdits(e),this.editingLayer.isEditing=!1,this.editingLayer=null,this.editingControl.deleteAll(),this.map.removeControl(this.editingControl),this.editingControl=null)},e.prototype.isEditing=function(){return null!=this.editingLayer},e.prototype.setPointCoordinates=function(e,t){null!=this.editingLayer&&(this.editingControl.set({type:"FeatureCollection",features:[{id:this.editingLayer.oid,type:"Feature",properties:{},geometry:{type:"Point",coordinates:[t,e]}}]}),this.editingControl.changeMode("simple_select",{featureIds:this.editingLayer.oid}),this.saveEdits())},e.prototype.isValid=function(){if(!this.readOnly){var e=!1;if(null!=this.editingControl)this.editingControl.getAll().features.length>0&&(e=!0);return e}return!0},e.prototype.saveEdits=function(e){if(void 0===e&&(e=!0),null!=this.editingLayer){var t=this.getDrawGeometry();this.editingLayer.editPropagator.value=t,e&&(this.removeLayers(),this.addLayers())}},e.prototype.reload=function(){null!=this.map&&(this.removeLayers(),this.addLayers(),null!=this.editingControl&&this.editingControl.deleteAll(),this.addEditingLayers())},e.prototype.setEditing=function(e,t){this.isEditing()&&this.stopEditing(),t.isEditing=e,e&&this.startEditing(t)},e.prototype.setRendering=function(e,t){t.isRendering=e,this.addLayer(t)},e.prototype.addLayer=function(e){var t=this.layers.findIndex((function(t){return t.oid===e.oid}));-1!==t?(this.layers.splice(t,1),this.layers.push(e)):this.layers.push(e),e.isEditing&&this.startEditing(e),this.layers=this.layers.sort((function(e,t){return e.zindex-t.zindex})),this.removeLayers(),this.addLayers()},e.prototype.getLayers=function(){return this.layers},e.prototype.getRenderedLayers=function(){return this.layers.filter((function(e){return e.isRendering}))},e.prototype.setLayers=function(e){this.removeLayers(),this.layers=e.sort((function(e,t){return e.zindex-t.zindex})),this.addLayers()},e.prototype.enableEditing=function(){null==this.editingControl&&("MULTIPOLYGON"===this.geometryType||"POLYGON"===this.geometryType?this.editingControl=new i.default({controls:{point:!1,line_string:!1,polygon:!0,trash:!0,combine_features:!1,uncombine_features:!1}}):"POINT"===this.geometryType||"MULTIPOINT"===this.geometryType?this.editingControl=new i.default({userProperties:!0,controls:{point:!0,line_string:!1,polygon:!1,trash:!0,combine_features:!1,uncombine_features:!1},styles:[{id:"highlight-active-points",type:"circle",filter:["all",["==","$type","Point"],["==","meta","feature"],["==","active","true"]],paint:{"circle-radius":13,"circle-color":"#33FFF9","circle-stroke-width":4,"circle-stroke-color":"white"}},{id:"points-are-blue",type:"circle",filter:["all",["==","$type","Point"],["==","meta","feature"],["==","active","false"]],paint:{"circle-radius":10,"circle-color":"#800000","circle-stroke-width":2,"circle-stroke-color":"white"}}]}):"LINE"!==this.geometryType&&"MULTILINE"!==this.geometryType||(this.editingControl=new i.default({controls:{point:!1,line_string:!0,polygon:!1,trash:!0,combine_features:!1,uncombine_features:!1}})),null==this.map.getSource("mapbox-gl-draw-cold")&&this.map.addControl(this.editingControl))},e.prototype.addEditingLayers=function(){null!=this.editingLayer&&null!=this.editingControl&&(this.editingLayer.editPropagator.value&&this.editingControl.add(this.editingLayer.editPropagator.value))},e.prototype.removeSource=function(e){if(this.map){var t=e+"-geoobject";"MULTIPOLYGON"===this.geometryType||"POLYGON"===this.geometryType?null!=this.map.getLayer(t+"-polygon")&&this.map.removeLayer(t+"-polygon"):"POINT"===this.geometryType||"MULTIPOINT"===this.geometryType?null!=this.map.getLayer(t+"-point")&&this.map.removeLayer(t+"-point"):"LINE"!==this.geometryType&&"MultiLine"!==this.geometryType||null!=this.map.getLayer(t+"-line")&&this.map.removeLayer(t+"-line"),null!=this.map.getSource(t)&&this.map.removeSource(t)}},e.prototype.removeLayers=function(){if(null!=this.layers&&this.layers.length>0)for(var e=this.layers.length,t=0;t0)for(var e=this.layers.length,t=0;t0){if("MULTIPOLYGON"===this.geometryType){for(var t=[],n=0;n0){var n=t[0];return null==n.startDate||null==n.endDate||void 0===n.value||null===n.value}}return e&&!this.readOnly},e.prototype.getAttribute=function(e){if("_PARENT_"===e)return this.parentAttributeType;if("geometry"===e)return this.geometryAttributeType;for(var t=0;t0)for(var n=0;n span[_ngcontent-%COMP%] > i.fa.fa-cog[_ngcontent-%COMP%] {\n\tfont-size: 15px;\n}\n\n.full-width-radio-button[_ngcontent-%COMP%] .errorSpan[_ngcontent-%COMP%] {\n display: inline-block;\n position: relative;\n}\n\n.full-width-radio-button[_ngcontent-%COMP%] .changeSpan[_ngcontent-%COMP%] {\n right: 2.5px;\n}\n\n.full-width-radio-button[_ngcontent-%COMP%] .tabHasErrors[_ngcontent-%COMP%]:before {\n content: \' \\25CF\';\n font-size: 20px;\n line-height:12px;\n text-align: left;\n color: red;\n}\n\n.full-width-radio-button[_ngcontent-%COMP%] .tabHasChanges[_ngcontent-%COMP%]:after {\n\tcontent: \' \\25CF\';\n font-size: 20px;\n line-height:12px;\n text-align: right;\n color: orange;\n}\n\nli.list-group-item[_ngcontent-%COMP%] {\n font-size: 18px;\n}\n\n.warning-text[_ngcontent-%COMP%]{\n color: orange;\n}\n\n\nform.modal-form[_ngcontent-%COMP%] {\n overflow: visible;\n}\n\nfieldset[_ngcontent-%COMP%] {\n width: 100% !important;\n}\n\n\n.panel[_ngcontent-%COMP%] {\n\n}\n\n.panel[_ngcontent-%COMP%] .list-group[_ngcontent-%COMP%] {\n\tmargin: 0;\n}\n\n.panel[_ngcontent-%COMP%] .list-group-item[_ngcontent-%COMP%] {\n\tpadding: 5px 0;\n}\n\n.panel-heading[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n\tmargin:0;\n}\n\n.input-group[_ngcontent-%COMP%] {\n\twidth: 100%;\n}\n\n.radio-group[_ngcontent-%COMP%] {\n\tborder: solid 1px #ccc;\n\tborder-radius: 5px 0 0 5px;\n\tline-height: 40px;\n}\n\n\n .input-group input[type="text"], .input-group[_ngcontent-%COMP%] input[type="number"][_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] input[type="date"][_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] select[_ngcontent-%COMP%] {\n\tborder-radius: 5px 0 0 5px;\n\twidth: 100%;\n}\n.input-group[_ngcontent-%COMP%] input[type="text"].input-group-read-only[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] input[type="number"].input-group-read-only[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] input[type="date"].input-group-read-only[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] select.input-group-read-only[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] .radio-group.input-group-read-only[_ngcontent-%COMP%] {\n\tborder-radius: 5px; \n}\n\n.geoobject-panel-header[_ngcontent-%COMP%]{\n\theight: 50px;\n width: 100%;\n background: grey;\n}'],data:{animation:[[o.trigger("fadeInOut",[o.transition(":enter",[o.style({opacity:0}),o.animate("500ms")]),o.transition(":leave",o.animate("500ms",o.style({opacity:0})))]),o.trigger("slide",[o.state("left",o.style({left:0})),o.state("right",o.style({left:"100%"})),o.transition("* => *",o.animate(200))])]]}}),e}();t.GeoObjectSharedAttributeEditorComponent=W,("undefined"==typeof ngDevMode||ngDevMode)&&m.ɵsetClassMetadata(W,[{type:r.Component,args:[{selector:"geoobject-shared-attribute-editor",templateUrl:"./geoobject-shared-attribute-editor.component.html",styleUrls:["./geoobject-shared-attribute-editor.css"],providers:[i.DatePipe],animations:[[o.trigger("fadeInOut",[o.transition(":enter",[o.style({opacity:0}),o.animate("500ms")]),o.transition(":leave",o.animate("500ms",o.style({opacity:0})))]),o.trigger("slide",[o.state("left",o.style({left:0})),o.state("right",o.style({left:"100%"})),o.transition("* => *",o.animate(200))])]]}]}],(function(){return[{type:u.LocalizationService},{type:g.GeometryService},{type:u.AuthService},{type:h.DateService}]}),{postGeoObject:[{type:r.Input}],geoObjectType:[{type:r.Input}],attributeExcludes:[{type:r.Input}],readOnly:[{type:r.Input}],isNew:[{type:r.Input}],isGeometryInlined:[{type:r.Input}],changeRequest:[{type:r.Input}],hierarchies:[{type:r.Input}],filterDate:[{type:r.Input}],forDate:[{type:r.Input}],datasetId:[{type:r.Input}],attributeForm:[{type:r.ViewChild,args:["attributeForm"]}],manageVersions:[{type:r.ViewChildren,args:[p.ManageVersionsComponent]}]})},528:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LocalizedTextComponent=void 0;var r=n(0),i=(n(153),n(0)),o=n(1),a=n(68),l=n(259),s=n(22),c=function(e,t){return{row:e,"row-holder":t}},d=function(e){return{"col-md-12":e}},p=function(e){return{"label-holder":e}},m=function(e){return{holder:e}};function u(e,t){if(1&e&&(i.ɵɵelementStart(0,"div"),i.ɵɵelementStart(1,"div",1),i.ɵɵelementStart(2,"div",1),i.ɵɵelementStart(3,"div",2),i.ɵɵelementStart(4,"div",1),i.ɵɵelementStart(5,"label"),i.ɵɵelement(6,"localize",3),i.ɵɵelementStart(7,"span",4),i.ɵɵtext(8," ("),i.ɵɵelement(9,"convert-key-label",3),i.ɵɵtext(10,")"),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(11,"div",1),i.ɵɵelementStart(12,"span",5),i.ɵɵelementStart(13,"textarea",6),i.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.value=e})),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd()),2&e){var n=t.$implicit,r=i.ɵɵnextContext();i.ɵɵadvance(1),i.ɵɵproperty("ngClass",i.ɵɵpureFunction2(9,c,r.inlinelayout,!r.inlinelayout)),i.ɵɵadvance(1),i.ɵɵproperty("ngClass",i.ɵɵpureFunction1(12,d,r.inlinelayout)),i.ɵɵadvance(2),i.ɵɵproperty("ngClass",i.ɵɵpureFunction1(14,p,!r.inlinelayout)),i.ɵɵadvance(2),i.ɵɵproperty("key",r.key),i.ɵɵadvance(3),i.ɵɵproperty("key",n.locale),i.ɵɵadvance(2),i.ɵɵproperty("ngClass",i.ɵɵpureFunction1(16,m,!r.inlinelayout)),i.ɵɵadvance(2),i.ɵɵproperty("ngModel",n.value)("disabled",r.disabled)("name","description-"+n.locale)}}var g=function(){function e(){this.key="",this.disabled=!1,this.inlinelayout=!1,this.valueChange=new r.EventEmitter}return e.ɵfac=function(t){return new(t||e)},e.ɵcmp=i.ɵɵdefineComponent({type:e,selectors:[["localized-text"]],inputs:{key:"key",value:"value",disabled:"disabled",inlinelayout:"inlinelayout"},outputs:{valueChange:"valueChange"},decls:1,vars:1,consts:[[4,"ngFor","ngForOf"],[3,"ngClass"],[1,"form-group"],[3,"key"],[2,"color","#BABABA"],[1,"text"],[3,"ngModel","disabled","name","ngModelChange"]],template:function(e,t){1&e&&i.ɵɵtemplate(0,u,14,18,"div",0),2&e&&i.ɵɵproperty("ngForOf",t.value.localeValues)},directives:[o.NgForOf,o.NgClass,a.LocalizeComponent,l.ConvertKeyLabel,s.DefaultValueAccessor,s.NgControlStatus,s.NgModel],styles:["textarea[_ngcontent-%COMP%] {\n\twidth: 100%;\n border-radius: 5px;\n min-height: 70px;\n}"]}),e}();t.LocalizedTextComponent=g,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(g,[{type:r.Component,args:[{selector:"localized-text",templateUrl:"./localized-text.component.html",styleUrls:["./localized-text.css"]}]}],(function(){return[]}),{key:[{type:r.Input}],value:[{type:r.Input}],disabled:[{type:r.Input}],inlinelayout:[{type:r.Input}],valueChange:[{type:r.Output}]})},529:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GeoObjectTypeManagementService=void 0;var r=n(0),i=n(31),o=n(0),a=function(){function e(){this.modalStateChangedSource=new i.Subject,this.modalStepChange=this.modalStateChangedSource.asObservable()}return e.prototype.getModalState=function(){return this.modalState},e.prototype.setModalState=function(e){this.modalState=e,this.modalStateChangedSource.next(this.modalState)},e.ɵfac=function(t){return new(t||e)},e.ɵprov=o.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.GeoObjectTypeManagementService=a,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(a,[{type:r.Injectable}],(function(){return[]}),null)},530:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AttributeInputComponent=void 0;var r=n(0),i=n(7),o=(n(203),n(519),n(0)),a=n(519),l=n(68),s=n(22),c=n(575),d=n(533),p=n(1),m=n(528),u=n(265);function g(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"localized-text",9),o.ɵɵlistener("valueChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext().attribute.description=e})),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext();o.ɵɵproperty("value",r.attribute.description)}}function h(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",0),o.ɵɵelementStart(1,"div",1),o.ɵɵelementStart(2,"label"),o.ɵɵelement(3,"localize",10),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(4,"div",3),o.ɵɵelementStart(5,"span",4),o.ɵɵelementStart(6,"input",11),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext().attribute.precision=e})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext();o.ɵɵadvance(6),o.ɵɵproperty("ngModel",r.attribute.precision)}}function f(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",0),o.ɵɵelementStart(1,"div",1),o.ɵɵelementStart(2,"label"),o.ɵɵelement(3,"localize",12),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(4,"div",3),o.ɵɵelementStart(5,"span",4),o.ɵɵelementStart(6,"input",13),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext().attribute.scale=e})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext();o.ɵɵadvance(6),o.ɵɵproperty("ngModel",r.attribute.scale)}}var y=function(){function e(e,t){this.hierarchyService=e,this.cdr=t,this.disableCodeField=!1,this.excludeDescription=!1,this.isDecimal=!1,this.attributeChange=new r.EventEmitter,this.message=null,this.state="none"}return e.prototype.ngOnInit=function(){},e.prototype.ngAfterViewInit=function(){this.state="show",this.cdr.detectChanges()},e.prototype.ngOnChanges=function(){},e.prototype.ngOnDestroy=function(){},e.prototype.handleOnSubmit=function(){},e.prototype.toggleIsUnique=function(){this.attribute.unique=!this.attribute.unique},e.prototype.animate=function(){this.state="none"},e.prototype.onAnimationDone=function(e){this.state="show"},e.prototype.isValid=function(){return!!this.attribute.code&&(-1===this.attribute.code.indexOf(" ")&&(0!==this.attribute.label.localeValues[0].value.length&&((!this.isDecimal||null!=this.attribute.precision&&""!=this.attribute.precision.toString())&&(!this.isDecimal||null!=this.attribute.scale&&""!=this.attribute.scale.toString()))))},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.HierarchyService),o.ɵɵdirectiveInject(o.ChangeDetectorRef))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["attribute-input"]],inputs:{disableCodeField:"disableCodeField",excludeDescription:"excludeDescription",isDecimal:"isDecimal",geoObjectType:"geoObjectType",attribute:"attribute"},outputs:{attributeChange:"attributeChange"},features:[o.ɵɵNgOnChangesFeature],decls:12,vars:6,consts:[[1,"row-holder"],[1,"label-holder"],["key","data.property.label.code"],[1,"holder"],[1,"text"],["autofocus","","type","text","name","code","required","","geoObjectAttributeCode","",3,"disabled","ngModel","ngModelChange"],["key","data.property.label.label",3,"value","valueChange"],["key","data.property.label.description",3,"value","valueChange",4,"ngIf"],["class","row-holder",4,"ngIf"],["key","data.property.label.description",3,"value","valueChange"],["key","data.property.label.length"],["type","text","name","precision","OnlyNumber","true","required","",3,"ngModel","ngModelChange"],["key","data.property.label.decimal"],["type","text","name","scale","OnlyNumber","true","required","",3,"ngModel","ngModelChange"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div"),o.ɵɵelementStart(1,"div",0),o.ɵɵelementStart(2,"div",1),o.ɵɵelementStart(3,"label"),o.ɵɵelement(4,"localize",2),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(5,"div",3),o.ɵɵelementStart(6,"span",4),o.ɵɵelementStart(7,"input",5),o.ɵɵlistener("ngModelChange",(function(e){return t.attribute.code=e})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(8,"localized-input",6),o.ɵɵlistener("valueChange",(function(e){return t.attribute.label=e})),o.ɵɵelementEnd(),o.ɵɵtemplate(9,g,1,1,"localized-text",7),o.ɵɵtemplate(10,h,7,1,"div",8),o.ɵɵtemplate(11,f,7,1,"div",8),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(7),o.ɵɵproperty("disabled",t.disableCodeField)("ngModel",t.attribute.code),o.ɵɵadvance(1),o.ɵɵproperty("value",t.attribute.label),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",!t.excludeDescription),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",t.isDecimal),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",t.isDecimal))},directives:[l.LocalizeComponent,s.DefaultValueAccessor,s.RequiredValidator,c.GeoObjectAttributeCodeValidator,s.NgControlStatus,s.NgModel,d.LocalizedInputComponent,p.NgIf,m.LocalizedTextComponent,u.OnlyNumber],styles:['input[type="text"][_ngcontent-%COMP%] {\n margin: 2px 0 2px 0 !important;\n float: none !important;\n}\n\nbutton[_ngcontent-%COMP%] {\n margin-top: 5px;\n float: right;\n}\n\nlabel[_ngcontent-%COMP%] {\n color: #999;\n font-weight: bold;\n}'],data:{animation:[i.trigger("toggleInputs",[i.state("none, void",i.style({opacity:0})),i.state("show",i.style({opacity:1})),i.transition("none => show",i.animate("300ms"))])]}}),e}();t.AttributeInputComponent=y,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(y,[{type:r.Component,args:[{selector:"attribute-input",templateUrl:"./attribute-input.component.html",styleUrls:["./attribute-input.css"],animations:[i.trigger("toggleInputs",[i.state("none, void",i.style({opacity:0})),i.state("show",i.style({opacity:1})),i.transition("none => show",i.animate("300ms"))])]}]}],(function(){return[{type:a.HierarchyService},{type:o.ChangeDetectorRef}]}),{disableCodeField:[{type:r.Input}],excludeDescription:[{type:r.Input}],isDecimal:[{type:r.Input}],geoObjectType:[{type:r.Input}],attribute:[{type:r.Input}],attributeChange:[{type:r.Output}]})},531:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PublishModalComponent=void 0;var r=n(0),i=(n(30),n(31)),o=(n(519),n(112),n(111)),a=(n(16),n(0)),l=n(519),s=n(16),c=n(30),d=n(112),p=n(1),m=n(22),u=n(68),g=n(259),h=n(260);function f(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",50),a.ɵɵtext(1),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵtextInterpolate(n.message)}}function y(e,t){1&e&&(a.ɵɵelementStart(0,"h1"),a.ɵɵelement(1,"localize",51),a.ɵɵelementEnd())}function v(e,t){if(1&e&&(a.ɵɵelementStart(0,"h1"),a.ɵɵtext(1),a.ɵɵelement(2,"localize",52),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵtextInterpolate1(" ",n.master.displayLabel.localizedValue," ")}}function b(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",8),a.ɵɵelementStart(1,"div",9),a.ɵɵelementStart(2,"label"),a.ɵɵelement(3,"localize",53),a.ɵɵelementStart(4,"span",54),a.ɵɵtext(5," ("),a.ɵɵelement(6,"convert-key-label",48),a.ɵɵtext(7,")"),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"div",11),a.ɵɵelementStart(9,"input",55),a.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.value=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=t.$implicit,r=a.ɵɵnextContext();a.ɵɵadvance(6),a.ɵɵproperty("key",n.locale),a.ɵɵadvance(3),a.ɵɵproperty("ngModel",n.value)("name","label-"+n.locale)("disabled",r.readonly)("required","defaultLocale"===n.locale)}}function S(e,t){if(1&e&&(a.ɵɵelementStart(0,"option",60),a.ɵɵtext(1),a.ɵɵelementEnd()),2&e){var n=t.$implicit;a.ɵɵproperty("value",n.code),a.ɵɵadvance(1),a.ɵɵtextInterpolate(n.label)}}function C(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",8),a.ɵɵelementStart(1,"div",9),a.ɵɵelementStart(2,"label",56),a.ɵɵelement(3,"localize",57),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(4,"div",11),a.ɵɵelementStart(5,"select",58),a.ɵɵlistener("ngModelChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().master.typeCode=e}))("change",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().onChange()})),a.ɵɵelement(6,"option"),a.ɵɵtemplate(7,S,2,2,"option",59),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext();a.ɵɵadvance(5),a.ɵɵproperty("ngModel",r.master.typeCode),a.ɵɵadvance(2),a.ɵɵproperty("ngForOf",r.types)}}function E(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",8),a.ɵɵelementStart(1,"div",9),a.ɵɵelementStart(2,"label",56),a.ɵɵelement(3,"localize",57),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(4,"div",11),a.ɵɵelementStart(5,"input",61),a.ɵɵlistener("ngModelChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().master.typeLabel.localizedValue=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext();a.ɵɵadvance(5),a.ɵɵproperty("ngModel",r.master.typeLabel.localizedValue)}}function x(e,t){1&e&&(a.ɵɵelementStart(0,"small",62),a.ɵɵelement(1,"localize",63),a.ɵɵelementEnd())}function O(e,t){if(1&e&&(a.ɵɵelementStart(0,"span",64),a.ɵɵtext(1),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵtextInterpolate1(" ",n.formatDate(n.master.publishingStartDate)," ")}}var I=function(){return["form-control"]};function w(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"date-field",65),a.ɵɵlistener("valueChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().master.publishingStartDate=e})),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext();a.ɵɵproperty("value",r.master.publishingStartDate)("classNames",a.ɵɵpureFunction0(6,I))("inputName","publishingStartDate")("allowFutureDates",!1)("required",!1)("disable",r.readonly)}}function M(e,t){1&e&&(a.ɵɵelementStart(0,"small",62),a.ɵɵelement(1,"localize",63),a.ɵɵelementEnd())}function T(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",8),a.ɵɵelementStart(1,"div",9),a.ɵɵelementStart(2,"label"),a.ɵɵelement(3,"localize",66),a.ɵɵelementStart(4,"span",54),a.ɵɵtext(5," ("),a.ɵɵelement(6,"convert-key-label",48),a.ɵɵtext(7,")"),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"div",11),a.ɵɵelementStart(9,"textarea",67),a.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.value=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=t.$implicit,r=a.ɵɵnextContext();a.ɵɵadvance(6),a.ɵɵproperty("key",n.locale),a.ɵɵadvance(3),a.ɵɵproperty("ngModel",n.value)("disabled",r.readonly)("required",!1)}}function j(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",8),a.ɵɵelementStart(1,"div",9),a.ɵɵelementStart(2,"label"),a.ɵɵelement(3,"localize",68),a.ɵɵelementStart(4,"span",54),a.ɵɵtext(5," ("),a.ɵɵelement(6,"convert-key-label",48),a.ɵɵtext(7,")"),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"div",11),a.ɵɵelementStart(9,"textarea",69),a.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.value=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=t.$implicit,r=a.ɵɵnextContext();a.ɵɵadvance(6),a.ɵɵproperty("key",n.locale),a.ɵɵadvance(3),a.ɵɵproperty("ngModel",n.value)("disabled",r.readonly)("required",!1)}}function k(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",8),a.ɵɵelementStart(1,"div",9),a.ɵɵelementStart(2,"label"),a.ɵɵelement(3,"localize",70),a.ɵɵelementStart(4,"span",54),a.ɵɵtext(5," ("),a.ɵɵelement(6,"convert-key-label",48),a.ɵɵtext(7,")"),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"div",11),a.ɵɵelementStart(9,"input",55),a.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.value=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=t.$implicit,r=a.ɵɵnextContext();a.ɵɵadvance(6),a.ɵɵproperty("key",n.locale),a.ɵɵadvance(3),a.ɵɵproperty("ngModel",n.value)("name","progress-"+n.locale)("disabled",r.readonly)("required",!1)}}function z(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",8),a.ɵɵelementStart(1,"div",9),a.ɵɵelementStart(2,"label"),a.ɵɵelement(3,"localize",71),a.ɵɵelementStart(4,"span",54),a.ɵɵtext(5," ("),a.ɵɵelement(6,"convert-key-label",48),a.ɵɵtext(7,")"),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"div",11),a.ɵɵelementStart(9,"input",55),a.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.value=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=t.$implicit,r=a.ɵɵnextContext();a.ɵɵadvance(6),a.ɵɵproperty("key",n.locale),a.ɵɵadvance(3),a.ɵɵproperty("ngModel",n.value)("name","accessConstraints-"+n.locale)("disabled",r.readonly)("required",!1)}}function D(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",8),a.ɵɵelementStart(1,"div",9),a.ɵɵelementStart(2,"label"),a.ɵɵelement(3,"localize",72),a.ɵɵelementStart(4,"span",54),a.ɵɵtext(5," ("),a.ɵɵelement(6,"convert-key-label",48),a.ɵɵtext(7,")"),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"div",11),a.ɵɵelementStart(9,"input",55),a.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.value=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=t.$implicit,r=a.ɵɵnextContext();a.ɵɵadvance(6),a.ɵɵproperty("key",n.locale),a.ɵɵadvance(3),a.ɵɵproperty("ngModel",n.value)("name","useConstraints-"+n.locale)("disabled",r.readonly)("required",!1)}}function R(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",8),a.ɵɵelementStart(1,"div",9),a.ɵɵelementStart(2,"label"),a.ɵɵelement(3,"localize",73),a.ɵɵelementStart(4,"span",54),a.ɵɵtext(5," ("),a.ɵɵelement(6,"convert-key-label",48),a.ɵɵtext(7,")"),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"div",11),a.ɵɵelementStart(9,"textarea",74),a.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.value=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=t.$implicit,r=a.ɵɵnextContext();a.ɵɵadvance(6),a.ɵɵproperty("key",n.locale),a.ɵɵadvance(3),a.ɵɵproperty("ngModel",n.value)("disabled",r.readonly)("required",!1)}}function P(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",8),a.ɵɵelementStart(1,"div",9),a.ɵɵelementStart(2,"label"),a.ɵɵelement(3,"localize",75),a.ɵɵelementStart(4,"span",54),a.ɵɵtext(5," ("),a.ɵɵelement(6,"convert-key-label",48),a.ɵɵtext(7,")"),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"div",11),a.ɵɵelementStart(9,"textarea",76),a.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.value=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=t.$implicit,r=a.ɵɵnextContext();a.ɵɵadvance(6),a.ɵɵproperty("key",n.locale),a.ɵɵadvance(3),a.ɵɵproperty("ngModel",n.value)("disabled",r.readonly)("required",!1)}}function A(e,t){1&e&&(a.ɵɵelementStart(0,"div",8),a.ɵɵelement(1,"div",9),a.ɵɵelementStart(2,"div",11),a.ɵɵelement(3,"localize",77),a.ɵɵelementEnd(),a.ɵɵelementEnd())}var V=function(e,t){return{"chk-checked":e,disabled:t}};function N(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",35),a.ɵɵelementStart(1,"div",36),a.ɵɵelementStart(2,"div",79),a.ɵɵlistener("click",(function(e){a.ɵɵrestoreView(n);var r=t.$implicit;return a.ɵɵnextContext(2).getIsDisabled(e)?null:r.selected=!r.selected})),a.ɵɵelement(3,"span"),a.ɵɵelementEnd(),a.ɵɵelementStart(4,"label",80),a.ɵɵtext(5),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=a.ɵɵnextContext(2);a.ɵɵadvance(2),a.ɵɵproperty("ngClass",a.ɵɵpureFunction2(2,V,r.selected,i.readonly||i.edit)),a.ɵɵadvance(3),a.ɵɵtextInterpolate(r.label)}}function L(e,t){if(1&e&&(a.ɵɵelementStart(0,"div"),a.ɵɵelementStart(1,"div",8),a.ɵɵelementStart(2,"div",9),a.ɵɵelementStart(3,"label"),a.ɵɵtext(4),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(5,"div",11),a.ɵɵtemplate(6,N,6,5,"div",78),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=t.$implicit;a.ɵɵadvance(4),a.ɵɵtextInterpolate1(" ",n.label," "),a.ɵɵadvance(2),a.ɵɵproperty("ngForOf",n.parents)}}function _(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",35),a.ɵɵelementStart(1,"div",36),a.ɵɵelementStart(2,"div",79),a.ɵɵlistener("click",(function(e){a.ɵɵrestoreView(n);var r=t.$implicit;return a.ɵɵnextContext(2).getIsDisabled(e)?null:r.selected=!r.selected})),a.ɵɵelement(3,"span"),a.ɵɵelementEnd(),a.ɵɵelementStart(4,"label",80),a.ɵɵtext(5),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=a.ɵɵnextContext(2);a.ɵɵadvance(2),a.ɵɵproperty("ngClass",a.ɵɵpureFunction2(2,V,r.selected,i.readonly||i.edit)),a.ɵɵadvance(3),a.ɵɵtextInterpolate(r.label)}}function F(e,t){if(1&e&&(a.ɵɵelementStart(0,"div"),a.ɵɵelementStart(1,"div",8),a.ɵɵelementStart(2,"div",9),a.ɵɵelementStart(3,"label"),a.ɵɵelement(4,"localize",81),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(5,"div",11),a.ɵɵtemplate(6,_,6,5,"div",78),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(6),a.ɵɵproperty("ngForOf",n.master.subtypeHierarchies)}}function H(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"button",82),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().onSubmit()})),a.ɵɵelement(1,"localize",83),a.ɵɵelementEnd()}if(2&e){a.ɵɵnextContext();var r=a.ɵɵreference(6);a.ɵɵproperty("disabled",r.invalid)}}var G=function(){function e(e,t,n,r,i,o){this.service=e,this.iService=t,this.lService=n,this.bsModalRef=r,this.authService=i,this.dateService=o,this.currentDate=new Date,this.message=null,this.readonly=!1,this.edit=!1,this.isNew=!1,this.originalPublishStartDate=null}return e.prototype.ngOnInit=function(){var e=this;this.onMasterListChange=new i.Subject,this.master&&this.readonly||(this.iService.listGeoObjectTypes(!0).then((function(t){for(var n=[],r=0;r0?(this.iService.getHierarchiesForType(this.master.typeCode,!0).then((function(t){e.master.hierarchies=t})).catch((function(t){e.error(t)})),this.iService.getHierarchiesForSubtypes(this.master.typeCode,!1).then((function(t){e.master.subtypeHierarchies=t})).catch((function(t){e.error(t)}))):this.master.hierarchies=[]},e.prototype.onSubmit=function(){var e=this;this.service.createMasterList(this.master).then((function(t){e.onMasterListChange.next(t),e.bsModalRef.hide()})).catch((function(t){e.error(t)}))},e.prototype.stringify=function(e){return JSON.stringify(e)},e.prototype.onCancel=function(){this.bsModalRef.hide()},e.prototype.ngOnDestroy=function(){this.onMasterListChange.unsubscribe()},e.prototype.formatDate=function(e){return this.dateService.formatDateForDisplay(e)},e.prototype.error=function(e){this.message=o.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(l.RegistryService),a.ɵɵdirectiveInject(l.IOService),a.ɵɵdirectiveInject(s.LocalizationService),a.ɵɵdirectiveInject(c.BsModalRef),a.ɵɵdirectiveInject(s.AuthService),a.ɵɵdirectiveInject(d.DateService))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["publish-modal"]],decls:101,vars:38,consts:[[1,"modal-body"],["class","alert alert-danger","role","alert",4,"ngIf"],[1,"heading","text-center"],[4,"ngIf"],["autocomplete","off",1,"modal-form"],["form","ngForm"],["class","row-holder",4,"ngFor","ngForOf"],["class","row-holder",4,"ngIf"],[1,"row-holder"],[1,"label-holder"],["key","masterlist.code"],[1,"holder"],["name","code","type","text","required","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["key","data.property.label.frequency"],["name","frequency","required","",1,"select-area",3,"ngModel","disabled","ngModelChange"],["frequency","ngModel"],["value","ANNUAL"],["key","georegistry.frequency.annual"],["value","BIANNUAL"],["key","georegistry.frequency.biannual"],["value","QUARTER"],["key","georegistry.frequency.quarter"],["value","MONTHLY"],["key","georegistry.frequency.monthly"],["class","form-text text-danger",4,"ngIf"],["key","data.property.label.publishingStartDate"],["style","line-height: 40px;","class","date-string-display",4,"ngIf"],["label","","name","masterPublishingStartDate",3,"value","classNames","inputName","allowFutureDates","required","disable","valueChange",4,"ngIf"],["key","masterlist.visibility"],["name","visibility","required","",1,"select-area",3,"ngModel","disabled","ngModelChange"],["value","PUBLIC"],["key","masterlist.public"],["value","PRIVATE"],["key","masterlist.private"],["key","masterlist.ismaster"],[1,"row"],[1,"check-block",2,"margin","10px"],["name","isMaster",1,"jcf-unselectable","chk-area",2,"margin","0",3,"ngClass","click"],["key","masterlist.contact"],["key","masterlist.contactName"],["name","contactName","type","text",1,"form-control",3,"ngModel","disabled","ngModelChange"],["key","masterlist.telephoneNumber"],["name","telephoneNumber","type","text",1,"form-control",3,"ngModel","disabled","ngModelChange"],["key","masterlist.email"],["name","email","type","email",1,"form-control",3,"ngModel","disabled","ngModelChange"],[4,"ngFor","ngForOf"],[1,"button-holder"],["type","button","role","button",1,"btn","btn-default",3,"click"],[3,"key"],["type","submit","class","btn btn-primary","role","button",3,"disabled","click",4,"ngIf"],["role","alert",1,"alert","alert-danger"],["key","type.publish.title"],["key","type.publish.view.title"],["key","masterlist.label"],[2,"color","#BABABA"],["type","text",1,"form-control",3,"ngModel","name","disabled","required","ngModelChange"],["for","typeCode"],["key","io.geoObjectType"],["id","typeCode","name","typeCode","required","",1,"select-area",3,"ngModel","ngModelChange","change"],[3,"value",4,"ngFor","ngForOf"],[3,"value"],["name","typeCode","type","text","disabled","",1,"form-control",3,"ngModel","ngModelChange"],[1,"form-text","text-danger"],["key","masterlist.change.frequency"],[1,"date-string-display",2,"line-height","40px"],["label","","name","masterPublishingStartDate",3,"value","classNames","inputName","allowFutureDates","required","disable","valueChange"],["key","masterlist.listAbstract"],["name","'description-' + localeValue.locale",1,"form-control",3,"ngModel","disabled","required","ngModelChange"],["key","masterlist.process"],["name","'process-' + localeValue.locale",1,"form-control",3,"ngModel","disabled","required","ngModelChange"],["key","masterlist.progress"],["key","masterlist.accessConstraints"],["key","masterlist.useConstraints"],["key","masterlist.acknowledgements"],["name","'acknowledgements-' + localeValue.locale",1,"form-control",3,"ngModel","disabled","required","ngModelChange"],["key","masterlist.disclaimer"],["name","'disclaimer-' + localeValue.locale",1,"form-control",3,"ngModel","disabled","required","ngModelChange"],["key","masterlist.parents"],["class","row",4,"ngFor","ngForOf"],["name","unique",1,"jcf-unselectable","chk-area",2,"margin","0",3,"ngClass","click"],[2,"margin","3px 10px"],["key","masterlist.subtypeHierarchies"],["type","submit","role","button",1,"btn","btn-primary",3,"disabled","click"],["key","io.submit"]],template:function(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",0),a.ɵɵtemplate(1,f,2,1,"div",1),a.ɵɵelementStart(2,"div",2),a.ɵɵtemplate(3,y,2,0,"h1",3),a.ɵɵtemplate(4,v,3,1,"h1",3),a.ɵɵelementEnd(),a.ɵɵelementStart(5,"form",4,5),a.ɵɵelementStart(7,"fieldset"),a.ɵɵtemplate(8,b,10,5,"div",6),a.ɵɵtemplate(9,C,8,2,"div",7),a.ɵɵtemplate(10,E,6,1,"div",7),a.ɵɵelementStart(11,"div",8),a.ɵɵelementStart(12,"div",9),a.ɵɵelementStart(13,"label"),a.ɵɵelement(14,"localize",10),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(15,"div",11),a.ɵɵelementStart(16,"input",12),a.ɵɵlistener("ngModelChange",(function(e){return t.master.code=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(17,"div",8),a.ɵɵelementStart(18,"div",9),a.ɵɵelementStart(19,"label"),a.ɵɵelement(20,"localize",13),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(21,"div",11),a.ɵɵelementStart(22,"select",14,15),a.ɵɵlistener("ngModelChange",(function(e){return t.master.frequency=e})),a.ɵɵelement(24,"option"),a.ɵɵelementStart(25,"option",16),a.ɵɵelement(26,"localize",17),a.ɵɵelementEnd(),a.ɵɵelementStart(27,"option",18),a.ɵɵelement(28,"localize",19),a.ɵɵelementEnd(),a.ɵɵelementStart(29,"option",20),a.ɵɵelement(30,"localize",21),a.ɵɵelementEnd(),a.ɵɵelementStart(31,"option",22),a.ɵɵelement(32,"localize",23),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵtemplate(33,x,2,0,"small",24),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(34,"div",8),a.ɵɵelementStart(35,"div",9),a.ɵɵelementStart(36,"label"),a.ɵɵelement(37,"localize",25),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(38,"div",11),a.ɵɵtemplate(39,O,2,1,"span",26),a.ɵɵtemplate(40,w,1,7,"date-field",27),a.ɵɵtemplate(41,M,2,0,"small",24),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(42,"div",8),a.ɵɵelementStart(43,"div",9),a.ɵɵelementStart(44,"label"),a.ɵɵelement(45,"localize",28),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(46,"div",11),a.ɵɵelementStart(47,"select",29),a.ɵɵlistener("ngModelChange",(function(e){return t.master.visibility=e})),a.ɵɵelement(48,"option"),a.ɵɵelementStart(49,"option",30),a.ɵɵelement(50,"localize",31),a.ɵɵelementEnd(),a.ɵɵelementStart(51,"option",32),a.ɵɵelement(52,"localize",33),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(53,"div",8),a.ɵɵelementStart(54,"div",9),a.ɵɵelementStart(55,"label"),a.ɵɵelement(56,"localize",34),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(57,"div",11),a.ɵɵelementStart(58,"div",35),a.ɵɵelementStart(59,"div",36),a.ɵɵelementStart(60,"div",37),a.ɵɵlistener("click",(function(e){return t.getIsDisabled(e)?null:t.master.isMaster=!t.master.isMaster})),a.ɵɵelement(61,"span"),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵtemplate(62,T,10,4,"div",6),a.ɵɵtemplate(63,j,10,4,"div",6),a.ɵɵtemplate(64,k,10,5,"div",6),a.ɵɵtemplate(65,z,10,5,"div",6),a.ɵɵtemplate(66,D,10,5,"div",6),a.ɵɵtemplate(67,R,10,4,"div",6),a.ɵɵtemplate(68,P,10,4,"div",6),a.ɵɵelementStart(69,"div",8),a.ɵɵelement(70,"div",9),a.ɵɵelementStart(71,"div",11),a.ɵɵelement(72,"localize",38),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(73,"div",8),a.ɵɵelementStart(74,"div",9),a.ɵɵelementStart(75,"label"),a.ɵɵelement(76,"localize",39),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(77,"div",11),a.ɵɵelementStart(78,"input",40),a.ɵɵlistener("ngModelChange",(function(e){return t.master.contactName=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(79,"div",8),a.ɵɵelementStart(80,"div",9),a.ɵɵelementStart(81,"label"),a.ɵɵelement(82,"localize",41),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(83,"div",11),a.ɵɵelementStart(84,"input",42),a.ɵɵlistener("ngModelChange",(function(e){return t.master.telephoneNumber=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(85,"div",8),a.ɵɵelementStart(86,"div",9),a.ɵɵelementStart(87,"label"),a.ɵɵelement(88,"localize",43),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(89,"div",11),a.ɵɵelementStart(90,"input",44),a.ɵɵlistener("ngModelChange",(function(e){return t.master.email=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵtemplate(91,A,4,0,"div",7),a.ɵɵtemplate(92,L,7,2,"div",45),a.ɵɵtemplate(93,F,7,1,"div",3),a.ɵɵelementStart(94,"div",8),a.ɵɵelement(95,"div",9),a.ɵɵelementStart(96,"div",11),a.ɵɵelementStart(97,"div",46),a.ɵɵelementStart(98,"button",47),a.ɵɵlistener("click",(function(){return t.onCancel()})),a.ɵɵelement(99,"localize",48),a.ɵɵelementEnd(),a.ɵɵtemplate(100,H,2,1,"button",49),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=a.ɵɵreference(23);a.ɵɵadvance(1),a.ɵɵproperty("ngIf",null!=t.message),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",t.isNew),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",!t.isNew),a.ɵɵadvance(4),a.ɵɵproperty("ngForOf",t.master.displayLabel.localeValues),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.types&&!(t.readonly||t.edit)),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.types&&(t.readonly||t.edit)),a.ɵɵadvance(6),a.ɵɵproperty("ngModel",t.master.code)("disabled",t.readonly||t.edit),a.ɵɵadvance(6),a.ɵɵproperty("ngModel",t.master.frequency)("disabled",t.readonly),a.ɵɵadvance(11),a.ɵɵproperty("ngIf",t.edit&&n.dirty),a.ɵɵadvance(6),a.ɵɵproperty("ngIf",t.readonly),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",!t.readonly),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.edit&&!t.isNew&&t.originalPublishStartDate!=t.master.publishingStartDate),a.ɵɵadvance(6),a.ɵɵproperty("ngModel",t.master.visibility)("disabled",t.readonly),a.ɵɵadvance(13),a.ɵɵproperty("ngClass",a.ɵɵpureFunction2(35,V,t.master.isMaster,t.readonly||t.edit)),a.ɵɵadvance(2),a.ɵɵproperty("ngForOf",t.master.descriptionLocal.localeValues),a.ɵɵadvance(1),a.ɵɵproperty("ngForOf",t.master.processLocal.localeValues),a.ɵɵadvance(1),a.ɵɵproperty("ngForOf",t.master.progressLocal.localeValues),a.ɵɵadvance(1),a.ɵɵproperty("ngForOf",t.master.accessConstraintsLocal.localeValues),a.ɵɵadvance(1),a.ɵɵproperty("ngForOf",t.master.useConstraintsLocal.localeValues),a.ɵɵadvance(1),a.ɵɵproperty("ngForOf",t.master.acknowledgementsLocal.localeValues),a.ɵɵadvance(1),a.ɵɵproperty("ngForOf",t.master.disclaimerLocal.localeValues),a.ɵɵadvance(10),a.ɵɵproperty("ngModel",t.master.contactName)("disabled",t.readonly),a.ɵɵadvance(6),a.ɵɵproperty("ngModel",t.master.telephoneNumber)("disabled",t.readonly),a.ɵɵadvance(6),a.ɵɵproperty("ngModel",t.master.email)("disabled",t.readonly),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.master.hierarchies.length>0),a.ɵɵadvance(1),a.ɵɵproperty("ngForOf",t.master.hierarchies),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.master.subtypeHierarchies.length>0),a.ɵɵadvance(6),a.ɵɵproperty("key",t.readonly?"io.back":"io.cancel"),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",!t.readonly)}},directives:[p.NgIf,m.ɵangular_packages_forms_forms_ba,m.NgControlStatusGroup,m.NgForm,p.NgForOf,u.LocalizeComponent,m.DefaultValueAccessor,m.RequiredValidator,m.NgControlStatus,m.NgModel,m.SelectControlValueAccessor,m.NgSelectOption,m.ɵangular_packages_forms_forms_z,p.NgClass,g.ConvertKeyLabel,h.DateFieldComponent],encapsulation:2}),e}();t.PublishModalComponent=G,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(G,[{type:r.Component,args:[{selector:"publish-modal",templateUrl:"./publish-modal.component.html",styleUrls:[]}]}],(function(){return[{type:l.RegistryService},{type:l.IOService},{type:s.LocalizationService},{type:c.BsModalRef},{type:s.AuthService},{type:d.DateService}]}),null)},533:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LocalizedInputComponent=void 0;var r=n(0),i=(n(153),n(0)),o=n(1),a=n(68),l=n(259),s=n(22);function c(e,t){if(1&e&&(i.ɵɵelementStart(0,"div",1),i.ɵɵelementStart(1,"div",2),i.ɵɵelementStart(2,"label"),i.ɵɵelement(3,"localize",3),i.ɵɵelementStart(4,"span",4),i.ɵɵtext(5," ("),i.ɵɵelement(6,"convert-key-label",3),i.ɵɵtext(7,")"),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(8,"div",5),i.ɵɵelementStart(9,"span",6),i.ɵɵelementStart(10,"input",7),i.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.value=e})),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd()),2&e){var n=t.$implicit,r=i.ɵɵnextContext();i.ɵɵadvance(3),i.ɵɵproperty("key",r.key),i.ɵɵadvance(3),i.ɵɵproperty("key",n.locale),i.ɵɵadvance(4),i.ɵɵproperty("ngModel",n.value)("name","label-"+n.locale)("disabled",r.disabled)("required","defaultLocale"===n.locale)}}var d=function(){function e(){this.key="",this.disabled=!1,this.valueChange=new r.EventEmitter}return e.ɵfac=function(t){return new(t||e)},e.ɵcmp=i.ɵɵdefineComponent({type:e,selectors:[["localized-input"]],inputs:{key:"key",value:"value",disabled:"disabled"},outputs:{valueChange:"valueChange"},decls:1,vars:1,consts:[["class","row-holder",4,"ngFor","ngForOf"],[1,"row-holder"],[1,"label-holder"],[3,"key"],[2,"color","#BABABA"],[1,"holder"],[1,"text"],["type","text",1,"form-control",3,"ngModel","name","disabled","required","ngModelChange"]],template:function(e,t){1&e&&i.ɵɵtemplate(0,c,11,6,"div",0),2&e&&i.ɵɵproperty("ngForOf",t.value.localeValues)},directives:[o.NgForOf,a.LocalizeComponent,l.ConvertKeyLabel,s.DefaultValueAccessor,s.NgControlStatus,s.NgModel,s.RequiredValidator],encapsulation:2}),e}();t.LocalizedInputComponent=d,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(d,[{type:r.Component,args:[{selector:"localized-input",templateUrl:"./localized-input.component.html",styleUrls:[]}]}],(function(){return[]}),{key:[{type:r.Input}],value:[{type:r.Input}],disabled:[{type:r.Input}],valueChange:[{type:r.Output}]})},534:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HierarchyComponent=t.Instance=t.RELATED_NODE_BANNER_COLOR=t.INHERITED_NODE_BANNER_COLOR=t.INHERITED_NODE_FILL=t.DEFAULT_NODE_BANNER_COLOR=t.DEFAULT_NODE_FILL=t.TREE_SCALE_FACTOR_Y=t.TREE_SCALE_FACTOR_X=void 0;var r=n(0),i=n(32),o=n(31),a=(n(30),n(169),n(378)),l=n(570),s=n(571),c=n(572),d=n(111),p=(n(16),n(261)),m=(n(519),n(580)),u=n(550),g=n(568),h=n(0),f=n(519),y=n(30),v=n(169),b=n(16),S=n(122),C=n(86),E=n(22),x=n(380),O=n(68),I=n(1),w=n(113),M=["searchInput"],T=["nodeMenu"],j=["leafMenu"];function k(e,t){if(1&e){var n=h.ɵɵgetCurrentView();h.ɵɵelementStart(0,"div",42),h.ɵɵelementStart(1,"button",43),h.ɵɵlistener("click",(function(){h.ɵɵrestoreView(n);var e=h.ɵɵnextContext().$implicit;return h.ɵɵnextContext().createGeoObjectType(null,!1,e.org)})),h.ɵɵelement(2,"localize",44),h.ɵɵelementEnd(),h.ɵɵelementStart(3,"button",45),h.ɵɵlistener("click",(function(){h.ɵɵrestoreView(n);var e=h.ɵɵnextContext().$implicit;return h.ɵɵnextContext().createGeoObjectType(null,!0,e.org)})),h.ɵɵelement(4,"localize",46),h.ɵɵelementEnd(),h.ɵɵelementEnd()}}function z(e,t){if(1&e){var n=h.ɵɵgetCurrentView();h.ɵɵelementStart(0,"i",53),h.ɵɵlistener("click",(function(){h.ɵɵrestoreView(n);var e=h.ɵɵnextContext(2).$implicit;return h.ɵɵnextContext(2).deleteGeoObjectType(e)})),h.ɵɵpipe(1,"localize"),h.ɵɵelementEnd()}2&e&&h.ɵɵproperty("title",h.ɵɵpipeBind1(1,1,"button.delete.helptext"))}function D(e,t){if(1&e){var n=h.ɵɵgetCurrentView();h.ɵɵelementStart(0,"i",54),h.ɵɵlistener("click",(function(){h.ɵɵrestoreView(n);var e=h.ɵɵnextContext(2).$implicit,t=h.ɵɵnextContext().$implicit;return h.ɵɵnextContext().createGeoObjectType(e,!1,t.org)})),h.ɵɵelementEnd()}}function R(e,t){if(1&e){var n=h.ɵɵgetCurrentView();h.ɵɵelementStart(0,"span",49),h.ɵɵtemplate(1,z,2,3,"i",50),h.ɵɵelementStart(2,"i",51),h.ɵɵlistener("click",(function(){h.ɵɵrestoreView(n);var e=h.ɵɵnextContext().$implicit;return h.ɵɵnextContext(2).manageGeoObjectType(e,!1)})),h.ɵɵpipe(3,"localize"),h.ɵɵelementEnd(),h.ɵɵtemplate(4,D,1,0,"i",52),h.ɵɵelementEnd()}if(2&e){var r=h.ɵɵnextContext().$implicit,i=h.ɵɵnextContext(2);h.ɵɵadvance(1),h.ɵɵproperty("ngIf",!i.excludeGeoObjectTypeDeletes(r)),h.ɵɵadvance(1),h.ɵɵproperty("title",h.ɵɵpipeBind1(3,3,"button.edit.helptext")),h.ɵɵadvance(2),h.ɵɵproperty("ngIf",r.isAbstract)}}function P(e,t){if(1&e){var n=h.ɵɵgetCurrentView();h.ɵɵelementStart(0,"span",49),h.ɵɵelementStart(1,"i",55),h.ɵɵlistener("click",(function(){h.ɵɵrestoreView(n);var e=h.ɵɵnextContext().$implicit;return h.ɵɵnextContext(2).manageGeoObjectType(e,!0)})),h.ɵɵpipe(2,"localize"),h.ɵɵelementEnd(),h.ɵɵelementEnd()}2&e&&(h.ɵɵadvance(1),h.ɵɵproperty("title",h.ɵɵpipeBind1(2,1,"button.view.helptext")))}var A=function(e,t){return{"got-group-parent":e,"got-group-child":t}};function V(e,t){if(1&e&&(h.ɵɵelementStart(0,"li",47),h.ɵɵtext(1),h.ɵɵtemplate(2,R,5,5,"span",48),h.ɵɵtemplate(3,P,3,3,"span",48),h.ɵɵelementEnd()),2&e){var n=t.$implicit;h.ɵɵproperty("id",n.code)("ngClass",h.ɵɵpureFunction2(7,A,n.isAbstract,n.superTypeCode&&n.superTypeCode.length>0)),h.ɵɵattribute("data-superTypeCode",n.superTypeCode&&n.superTypeCode.length>0?n.superTypeCode:null)("data-canDrag",n.canDrag),h.ɵɵadvance(1),h.ɵɵtextInterpolate1(" ",n.label.localizedValue," "),h.ɵɵadvance(1),h.ɵɵproperty("ngIf",n.permissions.includes("WRITE")),h.ɵɵadvance(1),h.ɵɵproperty("ngIf",!n.permissions.includes("WRITE")&&n.permissions.includes("READ"))}}function N(e,t){if(1&e&&(h.ɵɵelementStart(0,"ul",39),h.ɵɵelementStart(1,"div"),h.ɵɵelementStart(2,"div",40),h.ɵɵelementStart(3,"label"),h.ɵɵtext(4),h.ɵɵelementEnd(),h.ɵɵelementEnd(),h.ɵɵtemplate(5,k,5,0,"div",18),h.ɵɵtemplate(6,V,4,10,"li",41),h.ɵɵelementEnd(),h.ɵɵelementEnd()),2&e){var n=t.$implicit,r=h.ɵɵnextContext();h.ɵɵadvance(4),h.ɵɵtextInterpolate(n.org.label.localizedValue),h.ɵɵadvance(1),h.ɵɵproperty("ngIf",r.isSRA||n.org.code===r.userOrganization),h.ɵɵadvance(1),h.ɵɵproperty("ngForOf",n.types)}}function L(e,t){if(1&e){var n=h.ɵɵgetCurrentView();h.ɵɵelementStart(0,"div",42),h.ɵɵelementStart(1,"button",43),h.ɵɵlistener("click",(function(){return h.ɵɵrestoreView(n),h.ɵɵnextContext(2).createHierarchy()})),h.ɵɵelement(2,"localize",57),h.ɵɵelementEnd(),h.ɵɵelementEnd()}}function _(e,t){if(1&e){var n=h.ɵɵgetCurrentView();h.ɵɵelementStart(0,"i",53),h.ɵɵlistener("click",(function(){h.ɵɵrestoreView(n);var e=h.ɵɵnextContext(2).$implicit;return h.ɵɵnextContext(2).deleteHierarchyType(e)})),h.ɵɵpipe(1,"localize"),h.ɵɵelementEnd()}2&e&&h.ɵɵproperty("title",h.ɵɵpipeBind1(1,1,"button.delete.helptext"))}function F(e,t){if(1&e){var n=h.ɵɵgetCurrentView();h.ɵɵelementStart(0,"span",60),h.ɵɵtemplate(1,_,2,3,"i",50),h.ɵɵelementStart(2,"i",61),h.ɵɵlistener("click",(function(){h.ɵɵrestoreView(n);var e=h.ɵɵnextContext().$implicit;return h.ɵɵnextContext(2).editHierarchyType(e,!1)})),h.ɵɵpipe(3,"localize"),h.ɵɵelementEnd(),h.ɵɵelementEnd()}if(2&e){var r=h.ɵɵnextContext().$implicit,i=h.ɵɵnextContext(2);h.ɵɵadvance(1),h.ɵɵproperty("ngIf",!i.excludeHierarchyTypeDeletes(r)),h.ɵɵadvance(1),h.ɵɵproperty("title",h.ɵɵpipeBind1(3,2,"button.edit.helptext"))}}function H(e,t){if(1&e){var n=h.ɵɵgetCurrentView();h.ɵɵelementStart(0,"span",60),h.ɵɵelementStart(1,"i",62),h.ɵɵlistener("click",(function(){h.ɵɵrestoreView(n);var e=h.ɵɵnextContext().$implicit;return h.ɵɵnextContext(2).editHierarchyType(e,!0)})),h.ɵɵpipe(2,"localize"),h.ɵɵelementEnd(),h.ɵɵelementEnd()}2&e&&(h.ɵɵadvance(1),h.ɵɵproperty("title",h.ɵɵpipeBind1(2,1,"button.view.helptext")))}var G=function(e,t){return{primary:e,active:t}};function q(e,t){if(1&e){var n=h.ɵɵgetCurrentView();h.ɵɵelementStart(0,"li",58),h.ɵɵlistener("click",(function(e){h.ɵɵrestoreView(n);var r=t.$implicit;return h.ɵɵnextContext(2).hierarchyOnClick(e,r)})),h.ɵɵelement(1,"i",16),h.ɵɵtext(2),h.ɵɵtemplate(3,F,4,4,"span",59),h.ɵɵtemplate(4,H,3,3,"span",59),h.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=h.ɵɵnextContext(2);h.ɵɵproperty("id",r.code)("ngClass",h.ɵɵpureFunction2(5,G,null!=i.currentHierarchy&&r.code===i.currentHierarchy.code,i.isActive(r))),h.ɵɵadvance(2),h.ɵɵtextInterpolate1(" ",r.label.localizedValue," "),h.ɵɵadvance(1),h.ɵɵproperty("ngIf",i.isOrganizationRA(r.organizationCode)),h.ɵɵadvance(1),h.ɵɵproperty("ngIf",!i.isOrganizationRA(r.organizationCode))}}function B(e,t){if(1&e&&(h.ɵɵelementStart(0,"ul",39),h.ɵɵelementStart(1,"div"),h.ɵɵelementStart(2,"div",40),h.ɵɵelementStart(3,"label"),h.ɵɵtext(4),h.ɵɵelementEnd(),h.ɵɵelementEnd(),h.ɵɵtemplate(5,L,3,0,"div",18),h.ɵɵtemplate(6,q,5,8,"li",56),h.ɵɵelementEnd(),h.ɵɵelementEnd()),2&e){var n=t.$implicit,r=h.ɵɵnextContext();h.ɵɵadvance(4),h.ɵɵtextInterpolate(n.org.label.localizedValue),h.ɵɵadvance(1),h.ɵɵproperty("ngIf",r.isSRA||n.org.code===r.userOrganization),h.ɵɵadvance(1),h.ɵɵproperty("ngForOf",n.hierarchies)}}function U(e,t){if(1&e){var n=h.ɵɵgetCurrentView();h.ɵɵelementStart(0,"div",42),h.ɵɵelementStart(1,"button",43),h.ɵɵlistener("click",(function(){return h.ɵɵrestoreView(n),h.ɵɵnextContext().importTypes()})),h.ɵɵelement(2,"localize",63),h.ɵɵelementEnd(),h.ɵɵelementEnd()}}function $(e,t){1&e&&(h.ɵɵelementStart(0,"div",65),h.ɵɵelementStart(1,"div",66),h.ɵɵelementStart(2,"div",67),h.ɵɵelementStart(3,"p",68),h.ɵɵelement(4,"localize",69),h.ɵɵelementEnd(),h.ɵɵelementEnd(),h.ɵɵelementEnd(),h.ɵɵelementEnd())}function J(e,t){1&e&&(h.ɵɵelementStart(0,"div"),h.ɵɵelementStart(1,"p",68),h.ɵɵelement(2,"localize",70),h.ɵɵelementEnd(),h.ɵɵelementEnd())}function W(e,t){if(1&e&&(h.ɵɵelementStart(0,"div"),h.ɵɵtemplate(1,$,5,0,"div",64),h.ɵɵtemplate(2,J,3,0,"div",21),h.ɵɵelementEnd()),2&e){var n=h.ɵɵnextContext();h.ɵɵadvance(1),h.ɵɵproperty("ngIf",n.isOrganizationRA(n.currentHierarchy.organizationCode,!0)),h.ɵɵadvance(1),h.ɵɵproperty("ngIf",!n.isOrganizationRA(n.currentHierarchy.organizationCode,!0))}}t.TREE_SCALE_FACTOR_X=1.8,t.TREE_SCALE_FACTOR_Y=1.8,t.DEFAULT_NODE_FILL="#e6e6e6",t.DEFAULT_NODE_BANNER_COLOR="#A29BAB",t.INHERITED_NODE_FILL="#d4d4d4",t.INHERITED_NODE_BANNER_COLOR="#a0a0a0",t.RELATED_NODE_BANNER_COLOR=t.INHERITED_NODE_BANNER_COLOR;var K=function(){};t.Instance=K;var Q=function(){function e(e,t,n,r,i,o){var a=this;this.modalService=t,this.contextMenuService=n,this.registryService=i,this.authService=o,this.userOrganization=null,this.currentHierarchy=null,this.instance=new K,this.geoObjectTypes=[],this.hierarchiesByOrg=[],this.typesByOrg=[],this.filter="",this.filteredHierarchiesByOrg=[],this.filteredTypesByOrg=[],this.hierarchyTypeDeleteExclusions=["AllowedIn","IsARelationship"],this.geoObjectTypeDeleteExclusions=["ROOT"],this._opened=!1,this.isSRA=!1,this.options={displayField:"label",actionMapping:{mouse:{click:function(e,t,n){a.treeNodeOnClick(t,n)},contextMenu:function(e,t,n){a.handleOnMenu(t,n)}}},mouse:{}},this.isSRA=o.isSRA(),this.hierarchyService=e,this.localizeService=r}return e.prototype.ngOnInit=function(){var e=this;this.refreshAll(null),o.fromEvent(this.searchInput.nativeElement,"keyup").pipe(i.filter(Boolean),i.debounceTime(500),i.distinctUntilChanged(),i.tap((function(){e.onFilterChange()}))).subscribe()},e.prototype.localize=function(e){return this.localizeService.decode(e)},e.prototype.renderTree=function(){var e=this;if(null==this.currentHierarchy||null==this.currentHierarchy.rootGeoObjectTypes||0==this.currentHierarchy.rootGeoObjectTypes.length){a.select("#svg").remove();var t=!1;return null!=this.currentHierarchy&&(t=this.authService.isSRA()||this.authService.isOrganizationRA(this.currentHierarchy.organizationCode)),void this.geoObjectTypes.forEach((function(e){e.canDrag=t}))}a.select(".g-context-menu").remove(),a.select(".hierarchy-inherit-button").remove(),a.select(".g-hierarchy-got-connector").remove();var n=a.select("#overflow-div").node(),r=n.scrollLeft,i=n.scrollRight,o=a.select("#svg");null==o.node()&&(o=a.select("#svgHolder").append("svg")).attr("id","svg"),this.primarySvgHierarchy=new m.SvgHierarchyType(this,o,this.currentHierarchy,!0,this.localizeService,this.modalService,this.authService),this.primarySvgHierarchy.render(),this.calculateSvgViewBox();var l=a.select("#overflow-div").node();l.scrollLeft=r,l.scrollRight=i,this.geoObjectTypes.forEach((function(t){t.canDrag=e.calculateCanDrag(t)}))},e.prototype.calculateSvgViewBox=function(){var e=a.select("#svg"),n=e.node().getBBox(),r=n.x,i=n.y,o=n.width,l=n.height;e.attr("viewBox",r-30+" "+(i-40)+" "+(o+60)+" "+(l+80)),o=(o+60)*t.TREE_SCALE_FACTOR_X,l=(l+80)*t.TREE_SCALE_FACTOR_Y,a.select("#svgHolder").style("width",o+"px")},e.prototype.calculateCanDrag=function(e){var t=this;if(null==this.primarySvgHierarchy)return!1;if(!this.authService.isSRA()&&!this.authService.isOrganizationRA(this.currentHierarchy.organizationCode))return!1;if(null!=this.primarySvgHierarchy.getNodeByCode(e.code))return!1;if(e.isAbstract){var n=!1;if(this.geoObjectTypes.forEach((function(r){r.superTypeCode===e.code&&null!=t.primarySvgHierarchy.getNodeByCode(r.code)&&(n=!0)})),n)return!1}else if(null!=e.superTypeCode&&null!=t.primarySvgHierarchy.getNodeByCode(e.superTypeCode))return!1;return!0},e.prototype.calculateRelatedHierarchies=function(e){for(var t=[],n=0;n0)a.hierarchy(r.rootGeoObjectTypes[0]).descendants().find((function(t){return t.data.geoObjectType===e.code&&null==t.data.inheritedHierarchyCode}))&&t.push(r.code)}return t},e.prototype.registerDragHandlers=function(){var e,t,n,r=this,i=[];i.push({dropSelector:".drop-box-container",onDrag:function(e,t){if(null!=this.dropEl&&(this.dropEl.style("border-color",null),this.dropEl=null),null!=t){var n=t.closest(".drop-box-container");null!=n&&(this.dropEl=a.select(n).style("border-color","#6BA542"))}},onDrop:function(e){null!=this.dropEl&&(this.dropEl.style("border-color",null),r.addChild(r.currentHierarchy.code,"ROOT",a.select(e).attr("id")),this.dropEl=null)}}),i.push({dropSelector:".svg-got-body-rect",onDrag:function(e,t,n){var i=this;this.clearDropZones();var o=this.dropEl;if(null!=a.select("#svg").node()){var l=u.svgPoint(n.sourceEvent.pageX,n.sourceEvent.pageY);if(r.primarySvgHierarchy.getD3Tree().descendants().forEach((function(e){"GhostNode"!==e.data.geoObjectType&&u.isPointWithin(l,e.data.dropZoneBbox)?(i.dropEl=a.select('.g-hierarchy[data-primary=true] .svg-got-body-rect[data-gotCode="'+e.data.geoObjectType+'"]'),e.data.activeDropZones=!0,null==e.parent&&(e.data.dropZoneBbox={x:e.x-m.SvgHierarchyType.gotRectW/2,y:e.y-2*m.SvgHierarchyType.gotRectH,width:m.SvgHierarchyType.gotRectW,height:4*m.SvgHierarchyType.gotRectH})):(e.data.activeDropZones=!1,null==e.parent&&(e.data.dropZoneBbox={x:e.x-m.SvgHierarchyType.gotRectW/2,y:e.y-m.SvgHierarchyType.gotRectH/2,width:m.SvgHierarchyType.gotRectW,height:m.SvgHierarchyType.gotRectH}))})),(null==this.dropEl||null!=o&&null!=this.dropEl&&o.attr("data-gotCode")!=this.dropEl.attr("data-gotCode"))&&this.clearGhostNodes(!0),null!=this.dropEl){var s=a.select(e).classed("got-group-parent"),c=this.dropEl.attr("data-gotCode"),d=r.primarySvgHierarchy.getD3Tree().find((function(e){return e.data.geoObjectType===c})),p=r.findGeoObjectTypeByCode(c).isAbstract;this.dropEl.attr("stroke","blue");var g=parseInt(this.dropEl.attr("x")),h=parseInt(this.dropEl.attr("y")),f=m.SvgHierarchyType.gotRectW,y=m.SvgHierarchyType.gotRectH,v=a.select("#svg").append("g").classed("svg-dropZone-g",!0),b=!(null==d.children||0==d.children.length),S=!(p||s&&b);if(S){this.childDzBacker=v.append("rect").classed("svg-got-child-dz-backer",!0).attr("x",g+m.SvgHierarchyType.gotRectW/2-f/2).attr("y",h+m.SvgHierarchyType.gotRectH+10).attr("width",f).attr("height",y).attr("fill","white"),this.childDz=v.append("rect").classed("svg-got-child-dz",!0).attr("x",g+m.SvgHierarchyType.gotRectW/2-f/2).attr("y",h+m.SvgHierarchyType.gotRectH+10).attr("width",f).attr("height",y).attr("fill","none").attr("stroke","black").attr("stroke-width","1").attr("stroke-dasharray","5,5");var C=b?r.localizeService.decode("hierarchy.content.intersectChild"):r.localizeService.decode("hierarchy.content.addChild");this.childDzText=v.append("text").classed("svg-got-child-dz-text",!0).attr("font-family","sans-serif").attr("font-size",10).attr("fill","black").attr("x",g+m.SvgHierarchyType.gotRectW/2-u.calculateTextWidth(C,10)/2).attr("y",h+m.SvgHierarchyType.gotRectH+10+y/2+2).text(C)}if(!s){this.parentDzBacker=v.append("rect").classed("svg-got-parent-dz-backer",!0).attr("x",g+m.SvgHierarchyType.gotRectW/2-f/2).attr("y",h-m.SvgHierarchyType.gotHeaderH-y).attr("width",f).attr("height",y).attr("fill","white"),this.parentDz=v.append("rect").classed("svg-got-parent-dz",!0).attr("x",g+m.SvgHierarchyType.gotRectW/2-f/2).attr("y",h-m.SvgHierarchyType.gotHeaderH-y).attr("width",f).attr("height",y).attr("fill","none").attr("stroke","black").attr("stroke-width","1").attr("stroke-dasharray","5,5"),a.select(".svg-got-parent-dz-text").remove();var E=null==d.parent?r.localizeService.decode("hierarchy.content.addParent"):r.localizeService.decode("hierarchy.content.intersectParent");this.parentDzText=v.append("text").classed("svg-got-parent-dz-text",!0).attr("font-family","sans-serif").attr("font-size",10).attr("fill","black").attr("x",g+m.SvgHierarchyType.gotRectW/2-u.calculateTextWidth(E,10)/2).attr("y",h-m.SvgHierarchyType.gotHeaderH-y/2+2).text(E)}if(this.ghostCode!=c&&(null!=this.ghostCode&&this.clearGhostNodes(null==d.parent),null!=d.parent)){for(var x=null,O=0;Ot.label.localizedValue.toLowerCase()?1:0})),e.forEach((function(e){if(!e.isAbstract&&e.superTypeCode&&e.superTypeCode.length>0)for(var n=0;n0&&(t=0),t>-1){var n=this.hierarchies[t];this.setCurrentHierarchy(n),this.renderTree()}},e.prototype.getHierarchy=function(e){var t=null;return this.hierarchies.forEach((function(n){e===n.code&&(t=n)})),t},e.prototype.setHierarchies=function(e){var t=this,n=[];e.forEach((function(e,r){e.rootGeoObjectTypes.length>0&&e.rootGeoObjectTypes.forEach((function(e){t.processHierarchyNodes(e)})),n.push(e)})),this.hierarchies=n,this.hierarchies.sort((function(e,t){return e.label.localizedValue.toLowerCase()t.label.localizedValue.toLowerCase()?1:0}))},e.prototype.processHierarchyNodes=function(e){var t=this;null!=e&&(e.label=this.getHierarchyLabel(e.geoObjectType),e.children.forEach((function(e){t.processHierarchyNodes(e)})))},e.prototype.getHierarchyLabel=function(e){var t=null;return this.geoObjectTypes.forEach((function(n){n.code===e&&(t=n.label.localizedValue)})),t},e.prototype.handleOnMenu=function(e,t){this.isOrganizationRA(this.currentHierarchy.organizationCode)?(this.contextMenuService.show.next({contextMenu:null!==e.data.childType?this.nodeMenuComponent:this.leafMenuComponent,event:t,item:e}),t.preventDefault(),t.stopPropagation()):(t.preventDefault(),t.stopPropagation())},e.prototype.treeNodeOnClick=function(e,t){e.treeModel.setFocusedNode(e),e.treeModel.isExpanded(e)?e.collapse():e.treeModel.expandAll()},e.prototype.hierarchyOnClick=function(e,t){this.setCurrentHierarchy(t),this.renderTree()},e.prototype.createHierarchy=function(){var e=this;this.bsModalRef=this.modalService.show(l.CreateHierarchyTypeModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0,class:"upload-modal"}),this.bsModalRef.content.onHierarchytTypeCreate.subscribe((function(t){e.hierarchies.push(t),e.hierarchies.sort((function(e,t){var n=e.label.localizedValue.toUpperCase(),r=t.label.localizedValue.toUpperCase();return nr?1:0})),e.updateViewDatastructures()}))},e.prototype.deleteHierarchyType=function(e){var t=this;this.bsModalRef=this.modalService.show(d.ConfirmModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0}),this.bsModalRef.content.message=this.localizeService.decode("confirm.modal.verify.delete")+" ["+e.label.localizedValue+"]",this.bsModalRef.content.data=e.code,this.bsModalRef.content.type="DANGER",this.bsModalRef.content.submitText=this.localizeService.decode("modal.button.delete"),this.bsModalRef.content.onConfirm.subscribe((function(e){t.removeHierarchyType(e)}))},e.prototype.editHierarchyType=function(e,t){var n=this;this.bsModalRef=this.modalService.show(l.CreateHierarchyTypeModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0,class:"upload-modal"}),this.bsModalRef.content.edit=!0,this.bsModalRef.content.readOnly=t,this.bsModalRef.content.hierarchyType=e,this.bsModalRef.content.onHierarchytTypeCreate.subscribe((function(e){var t=n.getHierarchyTypePosition(e.code);n.hierarchies[t].label=e.label,n.hierarchies[t].description=e.description,n.hierarchies[t].progress=e.progress,n.hierarchies[t].acknowledgement=e.acknowledgement,n.hierarchies[t].disclaimer=e.disclaimer,n.hierarchies[t].useConstraints=e.useConstraints,n.hierarchies[t].accessConstraints=e.accessConstraints,n.hierarchies[t].contact=e.contact,n.hierarchies[t].phoneNumber=e.phoneNumber,n.hierarchies[t].email=e.email,n.updateViewDatastructures(),n.currentHierarchy.code===e.code&&(n.setCurrentHierarchy(n.hierarchies[t]),n.renderTree())}))},e.prototype.setCurrentHierarchy=function(e){this.currentHierarchy=e},e.prototype.isPrimaryHierarchy=function(e){return e.code===this.currentHierarchy.code},e.prototype.removeHierarchyType=function(e){var t=this;this.hierarchyService.deleteHierarchyType(e).then((function(n){var r=t.getHierarchyTypePosition(e);t.hierarchies.splice(r,1),t.updateViewDatastructures(),t.hierarchies.length>0?t.setCurrentHierarchy(t.hierarchies[0]):t.currentHierarchy=null,t.renderTree()})).catch((function(e){t.error(e)}))},e.prototype.createGeoObjectType=function(e,t,n){var r=this;this.bsModalRef=this.modalService.show(s.CreateGeoObjTypeModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0,class:"upload-modal"}),this.bsModalRef.content.init(n,this.geoObjectTypes,e,t),this.bsModalRef.content.onGeoObjTypeCreate.subscribe((function(e){e.relatedHierarchies=r.calculateRelatedHierarchies(e),r.refreshAll(r.currentHierarchy)}))},e.prototype.deleteGeoObjectType=function(e){var t=this;this.bsModalRef=this.modalService.show(d.ConfirmModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0}),this.bsModalRef.content.message=this.localizeService.decode("confirm.modal.verify.delete")+" ["+e.label.localizedValue+"]",this.bsModalRef.content.data=e.code,this.bsModalRef.content.submitText=this.localizeService.decode("modal.button.delete"),this.bsModalRef.content.type=p.ModalTypes.danger,this.bsModalRef.content.onConfirm.subscribe((function(e){t.removeGeoObjectType(e)}))},e.prototype.removeGeoObjectType=function(e,t){var n=this;void 0===t&&(t=null),this.registryService.deleteGeoObjectType(e).then((function(t){var r=n.getGeoObjectTypePosition(e);n.geoObjectTypes.splice(r,1),n.refreshAll(n.currentHierarchy)})).catch((function(e){null!=t&&t(e),n.error(e)}))},e.prototype.manageGeoObjectType=function(e,t){var n=this;this.bsModalRef=this.modalService.show(c.ManageGeoObjectTypeModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0,class:"manage-geoobjecttype-modal"}),e.attributes.sort((function(e,t){return e.label.localizedValuet.label.localizedValue?1:0})),this.bsModalRef.content.geoObjectType=e,this.bsModalRef.content.readOnly=t,this.bsModalRef.content.onGeoObjectTypeSubmitted.subscribe((function(e){if(e.isAbstract)n.refreshAll(n.currentHierarchy);else{var t=n.getGeoObjectTypePosition(e.code);-1!==t&&(n.geoObjectTypes[t]=e),n.updateViewDatastructures(),n.hierarchies.forEach((function(e){n.processHierarchyNodes(e.rootGeoObjectTypes[0])})),null!=n.currentHierarchy&&n.processHierarchyNodes(n.currentHierarchy.rootGeoObjectTypes[0]),n.renderTree()}}))},e.prototype.getHierarchyTypePosition=function(e){for(var t=0;t label[_ngcontent-%COMP%] {\n\tborder-bottom: solid 1px;\n\twidth: 100%;\n}\n\n.sidebar-section-content[_ngcontent-%COMP%] {\n\toverflow-y: auto;\n}\n\n.hierarchy-sidebar[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n\tmargin:0;\n}\n\n.hierarchy-sidebar[_ngcontent-%COMP%] {\n z-index: 999;\n background: #f1f1f1;\n\n\ttransition: all 0.3s;\n \tpadding:0;\n vertical-align: top;\n height: calc(100vh - 143px);\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.hierarchy-content[_ngcontent-%COMP%] {\n\theight: calc(100vh - 143px);\n overflow: auto;\n}\n\n#overflow-div[_ngcontent-%COMP%] {\n\ttop: 0;\n}\n\n.upload-text[_ngcontent-%COMP%] {\n\tposition:relative;\n\ttop:40%;\n}\n\n.sidebar-section[_ngcontent-%COMP%] {\n\n\ttext-align: left;\n\n}\n\n\n\n.hierarchy-sidebar-content[_ngcontent-%COMP%] .panel-body[_ngcontent-%COMP%] {\n\n\tbackground-color: #f1f1f1;\n\tmax-height: 500px;\n overflow: auto;\n}\n\n.sidebar-section-header[_ngcontent-%COMP%] {\n\tmargin-left:20px;\n\tcursor: pointer;\n}\n\n\naccordion-group.panel[_ngcontent-%COMP%] {\n\n}\n\nli.list-group-item[_ngcontent-%COMP%] {\n\tbackground-color: rgba(255, 255, 255, 1.0);\n\tmargin-bottom:5px;\n}\n\n.drop-box-container[_ngcontent-%COMP%] {\n width: 80%;\n border: 3px grey dashed;\n border-radius: 5px;\n margin: 0 auto;\n margin-top: 50px;\n}\n\n.hierarchy-drop-box[_ngcontent-%COMP%] {\n position:relative;\n height: 100%;\n cursor: default;\n}\n\nli.got-li-item.dragging[_ngcontent-%COMP%] {\n\tposition: fixed;\n\tcursor: grabbing !important;\n\tz-index: 99999999;\n}\n\n[data-candrag="true"][_ngcontent-%COMP%] {\n\tcursor: pointer;\n}\n[data-candrag="false"][_ngcontent-%COMP%] {\n cursor: not-allowed;\n}\n\n#NodeTooltip[_ngcontent-%COMP%] {\n\topacity:0;\n\tleft:-10000;\n\ttop:-10000;\n\tposition:fixed;\n\twidth: 400px;\n\tmin-width: 400px;\n}\n#NodeTooltip[_ngcontent-%COMP%] .modal-form[_ngcontent-%COMP%] {\n\tpadding-top:10px;\n}\n#NodeTooltip[_ngcontent-%COMP%] .modal-form[_ngcontent-%COMP%] .holder[_ngcontent-%COMP%] {\n\tpadding-bottom: 0px;\n}\n#NodeTooltip[_ngcontent-%COMP%] .label-holder[_ngcontent-%COMP%] {\n\twidth: 40%;\n}\n#NodeTooltip[_ngcontent-%COMP%] .holder[_ngcontent-%COMP%] {\n\twidth: 60%;\n}\n#NodeTooltip[_ngcontent-%COMP%] .holder[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n line-height:2.8;\n}\n\n[_nghost-%COMP%] .panel .panel-heading .accordion-toggle:after {\n \n font-family: \'Glyphicons Halflings\'; \n content: "\\e080"; \n float: right; \n\n margin-top: -30px;\n}\n[_nghost-%COMP%] .panel.panel-open .panel-heading .accordion-toggle:after {\n \n content: "\\e114"; \n}']}),e}();t.HierarchyComponent=Q,("undefined"==typeof ngDevMode||ngDevMode)&&h.ɵsetClassMetadata(Q,[{type:r.Component,args:[{selector:"hierarchies",templateUrl:"./hierarchy.component.html",styleUrls:["./hierarchy.css"]}]}],(function(){return[{type:f.HierarchyService},{type:y.BsModalService},{type:v.ContextMenuService},{type:b.LocalizationService},{type:f.RegistryService},{type:b.AuthService}]}),{searchInput:[{type:r.ViewChild,args:["searchInput",{static:!0}]}],nodeMenuComponent:[{type:r.ViewChild,args:["nodeMenu"]}],leafMenuComponent:[{type:r.ViewChild,args:["leafMenu"]}]})},535:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChangeRequestEditor=void 0;var r=n(203),i=n(31),o=n(590),a=n(629),l=function(){function e(e,t,n,r,o,a,l,s){this.onChangeSubject=new i.Subject,this.changeRequest=e,this.geoObject=t,this.geoObjectType=n,this.geometryAttributeType=o,this.parentAttributeType=a,this.hierarchies=r,this.localizationService=l,this.dateService=s,this.attributeEditors=this.generateAttributeEditors(),this.validate()}return e.prototype.generateAttributeEditors=function(){var e=this,t=["uid","sequence","type","lastUpdateDate","createDate"],n=[],r=this.geoObjectType.attributes.slice();return(r=r.filter((function(e){return-1===t.indexOf(e.code)}))).push(this.geometryAttributeType),r.push(this.parentAttributeType),r.forEach((function(t){if("_PARENT_"!==t.code)if(t.isChangeOverTime){var r=new o.ChangeRequestChangeOverTimeAttributeEditor(e,t,null);n.push(r)}else{r=new a.StandardAttributeCRModel(t,e.geoObject,e.changeRequest);n.push(r)}else e.hierarchies.forEach((function(r){var i=new o.ChangeRequestChangeOverTimeAttributeEditor(e,t,r);n.push(i)}))})),n},e.prototype.hasChanges=function(){var e=!1;return this.attributeEditors.forEach((function(t){t.hasChanges()&&(e=!0)})),e},e.prototype.isValid=function(){return this._isValid},e.prototype.validate=function(e){var t=this;return void 0===e&&(e=!1),this._isValid=!0,this.attributeEditors.forEach((function(n){e&&"exists"===n.attribute.code||(n.validate(!0),n.isValid()||(t._isValid=!1))})),this._isValid},e.prototype.findExistingValueOverTimeByOid=function(e,t){if(this.geoObject.attributes[t]){var n=this.geoObject.attributes[t].values.findIndex((function(t){return t.oid===e}));if(-1!==n)return this.geoObject.attributes[t].values[n]}return null},e.prototype.getEditorForAttribute=function(e,t){void 0===t&&(t=null);var n=this.attributeEditors.findIndex((function(n){return(!n.attribute.isChangeOverTime||null==t&&null==n.hierarchy||null!=n.hierarchy&&n.hierarchy.code===t.code)&&n.attribute.code===e.code}));return-1===n?null:this.attributeEditors[n]},e.prototype.getEditors=function(){return this.attributeEditors},e.prototype.onChange=function(e){this.onChangeSubject.next(e)},e.prototype.existsAtDate=function(e){for(var t=r.GeoObjectType.getAttribute(this.geoObjectType,"exists"),n=this.getEditorForAttribute(t).getEditors(),i=n.length,o=0;o0&&(l.filter=r),this.http.post(acp+"/master-list/data",JSON.stringify(l),{headers:a}).toPromise()},e.prototype.values=function(e,t,n,r,o){var a=new i.HttpHeaders({"Content-Type":"application/json"}),l={oid:e,attributeName:n,valueAttribute:r};return o.length>0&&(l.filter=o),null!=t&&t.length>0&&(l.value=t),this.http.post(acp+"/master-list/values",JSON.stringify(l),{headers:a}).toPromise()},e.prototype.publishShapefile=function(e){var t=new i.HttpHeaders({"Content-Type":"application/json"}),n={oid:e};return this.http.post(acp+"/master-list/generate-shapefile",JSON.stringify(n),{headers:t}).toPromise()},e.prototype.progress=function(e){var t=new i.HttpParams;return t=t.set("oid",e),this.http.get(acp+"/master-list/progress",{params:t}).toPromise()},e.prototype.getMasterListsByOrg=function(){var e=new i.HttpParams;return this.http.get(acp+"/master-list/list-org",{params:e}).toPromise()},e.prototype.getPublishMasterListJobs=function(e,t,n,r,o){var a=new i.HttpParams;return a=(a=(a=(a=(a=a.set("oid",e)).set("pageSize",t.toString())).set("pageNumber",n.toString())).set("sortAttr",r)).set("isAscending",o.toString()),this.http.get(acp+"/master-list/get-publish-jobs",{params:a}).toPromise()},e.prototype.getDatasetBounds=function(e){var t=new i.HttpParams;return t=t.set("oid",e),this.http.get(acp+"/master-list/bounds",{params:t}).toPromise()},e.prototype.getOrganizations=function(){var e=this;return this.eventService.start(),this.http.get(acp+"/cgr/organizations/get-all").pipe(o.finalize((function(){e.eventService.complete()}))).toPromise()},e.prototype.exportToFhir=function(e,t){var n=new i.HttpHeaders({"Content-Type":"application/json"}),r={oid:e,systemId:t};return this.http.post(acp+"/master-list/export-to-fhir",JSON.stringify(r),{headers:n}).toPromise()},e.ɵfac=function(t){return new(t||e)(a.ɵɵinject(l.HttpClient),a.ɵɵinject(s.EventService))},e.ɵprov=a.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.RegistryService=c,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(c,[{type:r.Injectable}],(function(){return[{type:l.HttpClient},{type:s.EventService}]}),null)},548:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SynchronizationConfigService=void 0;var r=n(0),i=n(34),o=n(32),a=(n(16),n(0)),l=n(34),s=n(16),c=function(){function e(e,t){this.http=e,this.eventService=t}return e.prototype.getPage=function(e,t){var n=this,r=new i.HttpParams;return r=(r=r.set("pageNumber",e.toString())).set("pageSize",t.toString()),this.eventService.start(),this.http.get(acp+"/synchronization-config/get-all",{params:r}).pipe(o.finalize((function(){n.eventService.complete()}))).toPromise()},e.prototype.get=function(e){var t=this,n=new i.HttpParams;return n=n.set("oid",e),this.eventService.start(),this.http.get(acp+"/synchronization-config/get",{params:n}).pipe(o.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.getCustomAttrCfg=function(e,t){var n=this,r=new i.HttpParams;return r=(r=r.set("externalId",t)).set("geoObjectTypeCode",e),this.eventService.start(),this.http.get(acp+"/synchronization-config/get-custom-attr",{params:r}).pipe(o.finalize((function(){n.eventService.complete()}))).toPromise()},e.prototype.getConfigForES=function(e,t){var n=this,r=new i.HttpParams;return r=(r=r.set("externalSystemId",e)).set("hierarchyTypeCode",t),this.eventService.start(),this.http.get(acp+"/synchronization-config/get-config-for-es",{params:r}).pipe(o.finalize((function(){n.eventService.complete()}))).toPromise()},e.prototype.apply=function(e){var t=this,n=new i.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/synchronization-config/apply",JSON.stringify({config:e}),{headers:n}).pipe(o.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.edit=function(e){var t=this,n=new i.HttpHeaders({"Content-Type":"application/json"}),r={};return null!=e&&(r={oid:e}),this.eventService.start(),this.http.post(acp+"/synchronization-config/edit",JSON.stringify(r),{headers:n}).pipe(o.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.remove=function(e){var t=this,n=new i.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/synchronization-config/remove",JSON.stringify({oid:e}),{headers:n}).pipe(o.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.unlock=function(e){var t=this,n=new i.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/synchronization-config/unlock",JSON.stringify({oid:e}),{headers:n}).pipe(o.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.run=function(e){var t=this,n=new i.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/synchronization-config/run",JSON.stringify({oid:e}),{headers:n}).pipe(o.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.getJobs=function(e,t,n){var r=new i.HttpParams;return r=(r=(r=r.set("oid",e)).set("pageNumber",t.toString())).set("pageSize",n.toString()),this.http.get(acp+"/synchronization-config/get-jobs",{params:r}).toPromise()},e.prototype.getFhirExportImplementations=function(){var e=new i.HttpParams;return this.http.get(acp+"/synchronization-config/get-fhir-export-implementations",{params:e}).toPromise()},e.prototype.getFhirImportImplementations=function(){var e=new i.HttpParams;return this.http.get(acp+"/synchronization-config/get-fhir-import-implementations",{params:e}).toPromise()},e.ɵfac=function(t){return new(t||e)(a.ɵɵinject(l.HttpClient),a.ɵɵinject(s.EventService))},e.ɵprov=a.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.SynchronizationConfigService=c,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(c,[{type:r.Injectable}],(function(){return[{type:l.HttpClient},{type:s.EventService}]}),null)},549:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TaskService=void 0;var r=n(0),i=n(34),o=n(32),a=(n(16),n(0)),l=n(34),s=n(16),c=function(){function e(e,t){this.http=e,this.eventService=t}return e.prototype.getMyTasks=function(e,t,n){var r=new i.HttpParams;return r=(r=(r=(r=r.set("orderBy","createDate")).set("pageNum",e.toString())).set("pageSize",t.toString())).set("whereStatus",n),this.http.get(acp+"/tasks/get",{params:r}).toPromise()},e.prototype.completeTask=function(e){var t=this,n=new i.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/tasks/complete",JSON.stringify({id:e}),{headers:n}).pipe(o.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.setTaskStatus=function(e,t){var n=this,r=new i.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/tasks/setTaskStatus",JSON.stringify({id:e,status:t}),{headers:r}).pipe(o.finalize((function(){n.eventService.complete()}))).toPromise()},e.ɵfac=function(t){return new(t||e)(a.ɵɵinject(l.HttpClient),a.ɵɵinject(s.EventService))},e.ɵprov=a.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.TaskService=c,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(c,[{type:r.Injectable}],(function(){return[{type:l.HttpClient},{type:s.EventService}]}),null)},550:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getBboxFromSelection=t.isBboxTotallyWithin=t.isBboxPartiallyWithin=t.isPointWithin=t.svgPoint=t.calculateTextWidth=void 0;var r=n(378);function i(e,t){return e.y>t.y&&e.yt.x&&e.xt.label.localizedValue.toLowerCase()?1:0}));var l=e.getGeoObjectTypePosition("ROOT");l&&e.geoObjectTypes.splice(l,1)})).catch((function(t){e.error(t)}))},e.prototype.handleDateChange=function(){null!=this.dateStr?this.forDate=new Date(Date.parse(this.dateStr)):this.forDate=null},e.prototype.onValidChange=function(e){null!=this.geoObject&&(null==this.geometryEditor||this.geometryEditor.getIsValid())&&(null==this.attributeEditor||this.attributeEditor.getIsValid())?this.isValid=!0:this.isValid=!1},e.prototype.getGeoObjectTypePosition=function(e){for(var t=0;t0?(this.hierarchies=e.object.parents,this.areParentsValid=!0):(this.registryService.newGeoObjectOverTime(o).then((function(e){i.hierarchies=e.hierarchies})),this.areParentsValid=!1),this.goPropertiesPre=new a.GeoObjectOverTime(this.geoObjectType,e.object.geoObject.attributes),this.goPropertiesPost=new a.GeoObjectOverTime(this.geoObjectType,e.object.geoObject.attributes),this.submitFunction=function(){var n={historyId:t,importErrorId:e.id,resolution:"APPLY_GEO_OBJECT",parentTreeNode:i.hierarchies,geoObject:i.goSubmit,isNew:e.object.isNew};i.registryService.submitErrorResolve(n).then((function(){null!=i.onSuccessCallback&&i.onSuccessCallback()})).catch((function(e){i.error(e)}))}},e.prototype.configureAsExisting=function(e,t,n,r){this.isNewGeoObject=!1,this.dateStr=n,this.forDate=new Date(Date.parse(this.dateStr)),this.isGeometryEditable=r,this.fetchGeoObject(e,t),this.fetchGeoObjectType(t),this.fetchHierarchies(e,t),this.fetchLocales()},e.prototype.fetchGeoObject=function(e,t){var n=this;this.registryService.getGeoObjectOverTime(e,t).then((function(e){n.goPropertiesPre=new a.GeoObjectOverTime(n.geoObjectType,JSON.parse(JSON.stringify(e)).attributes),n.goPropertiesPost=new a.GeoObjectOverTime(n.geoObjectType,JSON.parse(JSON.stringify(n.goPropertiesPre)).attributes),n.goSubmit=n.goPropertiesPost,n.arePropertiesValid=!0,n.isValid=!0})).catch((function(e){n.error(e)}))},e.prototype.fetchLocales=function(){var e=this;this.registryService.getLocales().then((function(t){e.localizeService.setLocales(t)})).catch((function(t){e.error(t)}))},e.prototype.fetchGeoObjectType=function(e){var t=this;this.registryService.getGeoObjectTypes([e],null).then((function(e){t.geoObjectType=e[0],null!=t.goPropertiesPre&&(t.goPropertiesPre.geoObjectType=t.geoObjectType),null!=t.goPropertiesPost&&(t.goPropertiesPost.geoObjectType=t.geoObjectType),t.geoObjectType.isGeometryEditable})).catch((function(e){console.log(e)}))},e.prototype.fetchHierarchies=function(e,t){var n=this;this.registryService.getHierarchiesForGeoObject(e,t).then((function(e){n.hierarchies=e,n.areParentsValid=!0})).catch((function(e){n.error(e)}))},e.prototype.getTypeAheadObservable=function(e,t){var n=this;return l.Observable.create((function(r){n.registryService.getGeoObjectSuggestionsTypeAhead(e,t).then((function(e){r.next(e)}))}))},e.prototype.typeaheadOnSelect=function(e,t){var n=this;this.registryService.getGeoObjectByCode(e.item.code,t.geoObject.properties.type).then((function(e){t.geoObject=e})).catch((function(e){n.error(e)}))},e.prototype.onValidChange=function(){null!=this.attributeEditor&&(this.arePropertiesValid=this.attributeEditor.getIsValid()),null!=this.parentSelector&&(this.areParentsValid=this.parentSelector.getIsValid()),this.isValid=this.arePropertiesValid&&this.areParentsValid},e.prototype.changePage=function(e,t){void 0===t&&(t=!1),(e!==this.tabIndex||t)&&(this.persistModelChanges(),this.tabIndex=e,this.onValidChange(),this.isEditingGeometries=2===e)},e.prototype.persistModelChanges=function(){null!=this.attributeEditor&&(this.goPropertiesPost=this.attributeEditor.getGeoObject()),null!=this.parentSelector&&(this.hierarchies=this.parentSelector.getHierarchies()),this.goSubmit=this.goPropertiesPost},e.prototype.error=function(e){this.bsModalRef=o.ErrorHandler.showErrorAsDialog(e,this.modalService)},e.prototype.cancel=function(){this.bsModalRef.hide()},e.prototype.submit=function(){this.isValid&&(this.bsModalRef.hide(),this.persistModelChanges(),null==this.submitFunction||this.submitFunction())},e.ɵfac=function(t){return new(t||e)(s.ɵɵdirectiveInject(c.BsModalService),s.ɵɵdirectiveInject(c.BsModalRef),s.ɵɵdirectiveInject(d.RegistryService),s.ɵɵdirectiveInject(p.LocalizationService),s.ɵɵdirectiveInject(p.AuthService))},e.ɵcmp=s.ɵɵdefineComponent({type:e,selectors:[["geoobject-editor"]],viewQuery:function(e,t){if(1&e&&(s.ɵɵviewQuery(y,1),s.ɵɵviewQuery(v,1)),2&e){var n=void 0;s.ɵɵqueryRefresh(n=s.ɵɵloadQuery())&&(t.attributeEditor=n.first),s.ɵɵqueryRefresh(n=s.ɵɵloadQuery())&&(t.parentSelector=n.first)}},inputs:{geoObjectType:"geoObjectType",onSuccessCallback:"onSuccessCallback"},features:[s.ɵɵProvidersFeature([i.DatePipe])],decls:31,vars:18,consts:[[1,"modal-body"],[1,"modal-form",2,"overflow","visible"],["goForm","ngForm"],[1,"row"],[1,"col-md-12"],["class","alert alert-danger","role","alert",4,"ngIf"],[1,"btn-group","geobject-editor-tab-holder"],[1,"btn","full-width-radio-button",3,"ngClass","click"],["key","geoobject.editor.tabZero"],["key","geoobject.editor.tabOne"],["key","geoobject.editor.tabTwo"],[3,"geoObjectType","preGeoObject","postGeoObject","forDate","isNew","isEditingGeometries","valid",4,"ngIf"],[4,"ngIf"],["class","row-holder","style","padding-top: 10px;",4,"ngIf"],[1,"row-holder",2,"margin-bottom","20px"],[1,"label-holder"],["key","changeOverTime.forDate"],[1,"holder"],["type","date","name","dateStr",2,"width","100%",3,"ngModel","ngModelChange","change"],[1,"button-holder","text-left"],["type","button",1,"btn","btn-default",3,"click"],["key","modal.button.cancel"],["type","submit",1,"btn","btn-primary",3,"disabled","click"],[3,"key"],["role","alert",1,"alert","alert-danger"],["key","geoobject.editor.modal.parents.must.be.assigned.message"],[3,"geoObjectType","preGeoObject","postGeoObject","forDate","isNew","isEditingGeometries","valid"],["attributeEditor",""],[3,"isValid","forDate","hierarchies","valid"],["parentSelector",""],[1,"row-holder",2,"padding-top","10px"],["key","change.request.action.detail.contributorNotes"],[1,"holder","text-left"],["name","notes","required","",1,"detail-value",2,"width","100%","border-radius","8px","height","70px","padding","5px",3,"ngModel","ngModelChange"],[1,"form-input-validation-error-message-wrapper"],["class","error-message",4,"ngIf"],[1,"error-message"]],template:function(e,t){if(1&e&&(s.ɵɵelementStart(0,"div",0),s.ɵɵelementStart(1,"form",1,2),s.ɵɵelementStart(3,"div",3),s.ɵɵelementStart(4,"div",4),s.ɵɵtemplate(5,b,2,0,"div",5),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(6,"div",3),s.ɵɵelementStart(7,"div",4),s.ɵɵelementStart(8,"div",6),s.ɵɵelementStart(9,"label",7),s.ɵɵlistener("click",(function(){return t.changePage(0)})),s.ɵɵelement(10,"localize",8),s.ɵɵelementEnd(),s.ɵɵelementStart(11,"label",7),s.ɵɵlistener("click",(function(){return t.changePage(1)})),s.ɵɵelement(12,"localize",9),s.ɵɵelementEnd(),s.ɵɵelementStart(13,"label",7),s.ɵɵlistener("click",(function(){return t.isGeometryEditable&&t.changePage(2)})),s.ɵɵelement(14,"localize",10),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵtemplate(15,S,2,6,"geoobject-shared-attribute-editor",11),s.ɵɵtemplate(16,C,3,3,"div",12),s.ɵɵtemplate(17,x,8,2,"div",13),s.ɵɵelementStart(18,"div",14),s.ɵɵelementStart(19,"div",15),s.ɵɵelementStart(20,"label"),s.ɵɵelement(21,"localize",16),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(22,"div",17),s.ɵɵelementStart(23,"input",18),s.ɵɵlistener("ngModelChange",(function(e){return t.dateStr=e}))("change",(function(){return t.handleDateChange()})),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(24,"div",3),s.ɵɵelementStart(25,"div",4),s.ɵɵelementStart(26,"div",19),s.ɵɵelementStart(27,"button",20),s.ɵɵlistener("click",(function(){return t.cancel()})),s.ɵɵelement(28,"localize",21),s.ɵɵelementEnd(),s.ɵɵelementStart(29,"button",22),s.ɵɵlistener("click",(function(){return t.submit()})),s.ɵɵelement(30,"localize",23),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd()),2&e){var n=s.ɵɵreference(2);s.ɵɵadvance(5),s.ɵɵproperty("ngIf",!t.areParentsValid),s.ɵɵadvance(4),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(10,O,0===t.tabIndex)),s.ɵɵadvance(2),s.ɵɵproperty("ngClass",s.ɵɵpureFunction2(12,I,1===t.tabIndex,!t.areParentsValid)),s.ɵɵadvance(2),s.ɵɵproperty("ngClass",s.ɵɵpureFunction2(15,w,2===t.tabIndex,!t.isGeometryEditable)),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",(0===t.tabIndex||2===t.tabIndex)&&t.geoObjectType&&t.goPropertiesPre&&t.goPropertiesPost),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",1===t.tabIndex&&null!=t.hierarchies),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",!t.isMaintainer),s.ɵɵadvance(6),s.ɵɵproperty("ngModel",t.dateStr),s.ɵɵadvance(6),s.ɵɵproperty("disabled",n.invalid||!t.isValid),s.ɵɵadvance(1),s.ɵɵproperty("key",t.isMaintainer?"modal.button.submit":"change.request.page.title")}},directives:[m.ɵangular_packages_forms_forms_ba,m.NgControlStatusGroup,m.NgForm,u.NgIf,u.NgClass,g.LocalizeComponent,m.DefaultValueAccessor,m.NgControlStatus,m.NgModel,h.GeoObjectSharedAttributeEditorComponent,f.CascadingGeoSelector,m.RequiredValidator],styles:['.modal-content[_ngcontent-%COMP%] {\n overflow-y: visible !important;\n}\n\n.modal-form[_ngcontent-%COMP%] .text[_ngcontent-%COMP%] input[type="text"][_ngcontent-%COMP%]:disabled {\n background: #eee;\n}\n\nli.list-group-item[_ngcontent-%COMP%] {\n font-size: 18px;\n}\n\n.warning-text[_ngcontent-%COMP%]{\n color: orange;\n}']}),e}();t.GeoObjectEditorComponent=M,("undefined"==typeof ngDevMode||ngDevMode)&&s.ɵsetClassMetadata(M,[{type:r.Component,args:[{selector:"geoobject-editor",templateUrl:"./geoobject-editor.component.html",styleUrls:["./geoobject-editor.component.css"],providers:[i.DatePipe]}]}],(function(){return[{type:c.BsModalService},{type:c.BsModalRef},{type:d.RegistryService},{type:p.LocalizationService},{type:p.AuthService}]}),{geoObjectType:[{type:r.Input}],onSuccessCallback:[{type:r.Input}],attributeEditor:[{type:r.ViewChild,args:["attributeEditor"]}],parentSelector:[{type:r.ViewChild,args:["parentSelector"]}]})},557:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StepIndicatorComponent=void 0;var r=n(0),i=(n(203),n(0)),o=n(1),a=function(e,t,n){return{complete:e,stuck:t,working:n}};function l(e,t){if(1&e&&(i.ɵɵelementStart(0,"li",4),i.ɵɵtext(1),i.ɵɵelementEnd()),2&e){var n=t.$implicit;i.ɵɵproperty("ngClass",i.ɵɵpureFunction3(2,a,"COMPLETE"===n.status,"STUCK"===n.status,"WORKING"===n.status)),i.ɵɵadvance(1),i.ɵɵtextInterpolate1(" ",n.label," ")}}function s(e,t){if(1&e&&(i.ɵɵelementStart(0,"ul",2),i.ɵɵtemplate(1,l,2,6,"li",3),i.ɵɵelementEnd()),2&e){var n=i.ɵɵnextContext();i.ɵɵadvance(1),i.ɵɵproperty("ngForOf",n._stepConfig.steps)}}var c=function(){function e(){this._stepConfig={steps:[]}}return Object.defineProperty(e.prototype,"steps",{set:function(e){this._stepConfig=e},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){},e.prototype.ngOnDestroy=function(){},e.ɵfac=function(t){return new(t||e)},e.ɵcmp=i.ɵɵdefineComponent({type:e,selectors:[["step-indicator"]],inputs:{steps:"steps"},decls:2,vars:1,consts:[[1,"step-indicator"],["class","nav nav-justified",4,"ngIf"],[1,"nav","nav-justified"],["class","nav-item",3,"ngClass",4,"ngFor","ngForOf"],[1,"nav-item",3,"ngClass"]],template:function(e,t){1&e&&(i.ɵɵelementStart(0,"div",0),i.ɵɵtemplate(1,s,2,1,"ul",1),i.ɵɵelementEnd()),2&e&&(i.ɵɵadvance(1),i.ɵɵproperty("ngIf",t._stepConfig&&t._stepConfig.steps&&t._stepConfig.steps.length>0))},directives:[o.NgIf,o.NgForOf,o.NgClass],styles:[".step-indicator[_ngcontent-%COMP%] {\n margin-top: 5px;\n}\n\n.step-indicator[_ngcontent-%COMP%] .nav-item[_ngcontent-%COMP%] {\n \n background-color: white;\n text-align: center;\n vertical-align: middle;\n \n \n \n border-collapse: separate; \n border-spacing: 0;\n color: black;\n}\n.step-indicator[_ngcontent-%COMP%] ul[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:not(:first-child):not(:last-child) {\n border-left: solid 2px white;\n}\n.step-indicator[_ngcontent-%COMP%] ul[_ngcontent-%COMP%] > li[_ngcontent-%COMP%]:first-child {\n -moz-border-radius-topleft: 10px;\n -moz-border-radius-bottomleft: 10px;\n\n -webkit-border-top-left-radius: 10px;\n -webkit-border-bottom-left-radius: 10px;\n border-top-left-radius: 10px;\n border-bottom-left-radius: 10px;\n}\n.step-indicator[_ngcontent-%COMP%] ul[_ngcontent-%COMP%] > li[_ngcontent-%COMP%]:last-child {\n -moz-border-radius-topright: 10px;\n -moz-border-radius-bottomright: 10px;\n\n -webkit-border-top-right-radius: 10px;\n -webkit-border-bottom-right-radius: 10px;\n border-top-right-radius: 10px;\n border-bottom-right-radius: 10px;\n}\n.step-indicator[_ngcontent-%COMP%] .nav-item[_ngcontent-%COMP%] {\n font-weight: bold;\n}\n.step-indicator[_ngcontent-%COMP%] .nav-item.complete[_ngcontent-%COMP%]{\n background-color: #B7A2D5;\n}\n.step-indicator[_ngcontent-%COMP%] .nav-item.stuck[_ngcontent-%COMP%]{\n background-color: #f05d5d;\n}\n.step-indicator[_ngcontent-%COMP%] .nav-item.working[_ngcontent-%COMP%]{\n background-color: #ffbc58;\n}"]}),e}();t.StepIndicatorComponent=c,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(c,[{type:r.Component,args:[{selector:"step-indicator",templateUrl:"./step-indicator.component.html",styleUrls:["./step-indicator.css"]}]}],(function(){return[]}),{steps:[{type:r.Input,args:["steps"]}]})},558:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LayerPanelComponent=void 0;var r=n(0),i=(n(30),n(616)),o=(n(519),n(0)),a=n(30),l=n(519),s=n(1),c=n(68);function d(e,t){1&e&&o.ɵɵelement(0,"i",9)}function p(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",10),o.ɵɵelementStart(1,"input",11),o.ɵɵlistener("change",(function(){o.ɵɵrestoreView(n);var e=t.$implicit;return o.ɵɵnextContext().toggleBaseLayer(e)})),o.ɵɵelementEnd(),o.ɵɵelementStart(2,"label",12),o.ɵɵelement(3,"localize",13),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=t.$implicit;o.ɵɵadvance(1),o.ɵɵproperty("value",r.id)("checked",r.selected),o.ɵɵadvance(2),o.ɵɵproperty("key",r.label)}}function m(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",18),o.ɵɵelementStart(1,"input",19),o.ɵɵlistener("click",(function(){o.ɵɵrestoreView(n);var e=o.ɵɵnextContext().$implicit;return o.ɵɵnextContext(4).toggleContextLayer(e)})),o.ɵɵelementEnd(),o.ɵɵtext(2),o.ɵɵelementStart(3,"i",20),o.ɵɵlistener("click",(function(){o.ɵɵrestoreView(n);var e=o.ɵɵnextContext().$implicit;return o.ɵɵnextContext(4).removeContextLayer(e)})),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext().$implicit;o.ɵɵadvance(1),o.ɵɵproperty("checked",r.active),o.ɵɵadvance(1),o.ɵɵtextInterpolate1(" ",r.displayLabel," ")}}function u(e,t){if(1&e&&(o.ɵɵelementStart(0,"div"),o.ɵɵtemplate(1,m,4,2,"div",17),o.ɵɵelementEnd()),2&e){var n=t.$implicit;o.ɵɵadvance(1),o.ɵɵproperty("ngIf",n.enabled)}}function g(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",18),o.ɵɵelementStart(1,"label"),o.ɵɵtext(2),o.ɵɵelementEnd(),o.ɵɵelementStart(3,"div",15),o.ɵɵtemplate(4,u,2,1,"div",16),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext().$implicit;o.ɵɵadvance(2),o.ɵɵtextInterpolate(n.displayLabel),o.ɵɵadvance(2),o.ɵɵproperty("ngForOf",n.contextLayers)}}function h(e,t){if(1&e&&(o.ɵɵelementStart(0,"div"),o.ɵɵtemplate(1,g,5,2,"div",17),o.ɵɵelementEnd()),2&e){var n=t.$implicit,r=o.ɵɵnextContext(2);o.ɵɵadvance(1),o.ɵɵproperty("ngIf",r.groupHasEnabledContextLayers(n.oid))}}function f(e,t){if(1&e&&(o.ɵɵelementStart(0,"div"),o.ɵɵelementStart(1,"h4"),o.ɵɵelement(2,"localize",14),o.ɵɵelementEnd(),o.ɵɵelementStart(3,"div",15),o.ɵɵtemplate(4,h,2,1,"div",16),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext();o.ɵɵadvance(4),o.ɵɵproperty("ngForOf",n.contextLayerGroups)}}var y=function(){function e(e,t){this.modalService=e,this.service=t,this.filter=[],this.layerChange=new r.EventEmitter,this.baseLayerChange=new r.EventEmitter,this.baselayerIconHover=!1,this.lists=[],this.baseLayers=[{name:"Satellite",label:"baselayer.satellite",id:"satellite-v9",sprite:"mapbox://sprites/mapbox/satellite-v9",url:"mapbox://mapbox.satellite",selected:!0}],this.contextLayerGroups=[]}return e.prototype.ngOnInit=function(){var e=this;this.service.getAllMasterListVersions().then((function(t){e.lists=t,e.updateContextGroups()}))},e.prototype.ngOnChanges=function(e){e.filter.currentValue!==e.filter.previousValue&&this.updateContextGroups()},e.prototype.updateContextGroups=function(){var e=this;this.lists.forEach((function(t){var n={oid:t.oid,displayLabel:t.displayLabel.localizedValue,contextLayers:[]};t.versions.forEach((function(t){if(-1===e.filter.indexOf(t.oid)){var r={oid:t.oid,displayLabel:t.forDate,active:!1,enabled:!1};n.contextLayers.push(r)}})),n.contextLayers.length>0&&e.contextLayerGroups.push(n)}))},e.prototype.groupHasEnabledContextLayers=function(e){var t=!1;return this.contextLayerGroups.forEach((function(n){n.oid===e&&n.contextLayers.forEach((function(e){e.enabled&&(t=!0)}))})),t},e.prototype.hasEnabledContextLayers=function(){var e=!1;return this.contextLayerGroups.forEach((function(t){t.contextLayers.forEach((function(t){t.enabled&&(e=!0)}))})),e},e.prototype.toggleContextLayer=function(e){e.active=!e.active,this.layerChange.emit(e)},e.prototype.removeContextLayer=function(e){e.active=!1,e.enabled=!1,this.layerChange.emit(e)},e.prototype.addContextLayerModal=function(){this.modalService.show(i.ContextLayerModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0,class:"context-layer-modal"}).content.contextLayerGroups=this.contextLayerGroups},e.prototype.toggleBaseLayer=function(e){this.baseLayers.forEach((function(e){e.active=!1})),e.active=!0,this.baseLayerChange.emit(e)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.BsModalService),o.ɵɵdirectiveInject(l.RegistryService))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["layer-panel"]],inputs:{filter:"filter"},outputs:{layerChange:"layerChange",baseLayerChange:"baseLayerChange"},features:[o.ɵɵNgOnChangesFeature],decls:12,vars:4,consts:[[1,"layer-toggle",3,"mouseenter","mouseleave"],["class","fa fa-bars","style","vertical-align: middle; font-size: 18px; color: black;",4,"ngIf"],[3,"hidden"],[2,"margin-bottom","10px"],["key","explorer.base.layers.label"],["class","row-form",4,"ngFor","ngForOf"],[4,"ngIf"],[1,"btn","btn-primary",3,"click"],["key","explorer.add.context.layer.button.label"],[1,"fa","fa-bars",2,"vertical-align","middle","font-size","18px","color","black"],[1,"row-form"],["type","radio","name","baselayers",1,"layer-toggle-input",3,"value","checked","change"],[1,"layer-toggle-label"],[3,"key"],["key","explorer.context.layers.label"],[1,"list-group"],[4,"ngFor","ngForOf"],["class","list-group-item","style","border: none;",4,"ngIf"],[1,"list-group-item",2,"border","none"],["type","checkbox",3,"checked","click"],["aria-hidden","true",1,"fa","fa-times","delete-btn","clickable",3,"click"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵlistener("mouseenter",(function(){return t.baselayerIconHover=!0}))("mouseleave",(function(){return t.baselayerIconHover=!1})),o.ɵɵtemplate(1,d,1,0,"i",1),o.ɵɵelementStart(2,"div",2),o.ɵɵelementStart(3,"div",3),o.ɵɵelementStart(4,"h4"),o.ɵɵelement(5,"localize",4),o.ɵɵelementEnd(),o.ɵɵtemplate(6,p,4,3,"div",5),o.ɵɵelementEnd(),o.ɵɵelementStart(7,"div"),o.ɵɵtemplate(8,f,5,1,"div",6),o.ɵɵelementStart(9,"button",7),o.ɵɵlistener("click",(function(){return t.addContextLayerModal()})),o.ɵɵtext(10,"+ "),o.ɵɵelement(11,"localize",8),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(1),o.ɵɵproperty("ngIf",!t.baselayerIconHover),o.ɵɵadvance(1),o.ɵɵproperty("hidden",!t.baselayerIconHover),o.ɵɵadvance(4),o.ɵɵproperty("ngForOf",t.baseLayers),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",t.hasEnabledContextLayers()))},directives:[s.NgIf,c.LocalizeComponent,s.NgForOf],styles:["#hierarchy-tree-container[_ngcontent-%COMP%] {\n\theight: 100%;\n overflow-y: auto;\n}\n\n.location-management-widget-section[_ngcontent-%COMP%] {\n\tmargin: 5px 0;\n}\n.location-management-widget-section[_ngcontent-%COMP%] > select[_ngcontent-%COMP%] {\n\tfloat: none !important;\n}\n\n.list-group-item[_ngcontent-%COMP%] {\n\tborder: none;\n\tborder-bottom: 1px solid #ddd;\n\tmargin-bottom: 0;\n}\n.list-group-item[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n\theight: auto;\n}\n\n.breadcrumb[_ngcontent-%COMP%]{\n\tpadding: 10px 0;\n\tbackground-color: white;\n\tmargin:0;\n}\n\n.layer-toggle[_ngcontent-%COMP%] {\n\tcursor: pointer; \n\tbackground: #fff; \n\tpadding: 8px; \n\tborder-radius: 4px;\n\twidth: fit-content;\n}\n\n.layer-toggle[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n\theight: auto;\n}\n.layer-toggle[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n\tmargin-left: 5px;\n}\n\n.arrow[_ngcontent-%COMP%] {\n border: solid black;\n border-width: 0 1px 1px 0;\n display: inline-block;\n padding: 5px;\n}\n.arrow-right[_ngcontent-%COMP%] {\n transform: rotate(-45deg);\n -webkit-transform: rotate(-45deg);\n}\n.arrow-down[_ngcontent-%COMP%] {\n transform: rotate(45deg);\n -webkit-transform: rotate(45deg);\n}\n\n.fa.fa-arrow-left[_ngcontent-%COMP%]::before {\n\tmargin-right:5px;\n}"]}),e}();t.LayerPanelComponent=y,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(y,[{type:r.Component,args:[{selector:"layer-panel",templateUrl:"./layer-panel.component.html",styleUrls:["./location-manager.css"]}]}],(function(){return[{type:a.BsModalService},{type:l.RegistryService}]}),{filter:[{type:r.Input}],layerChange:[{type:r.Output}],baseLayerChange:[{type:r.Output}]})},559:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FeaturePanelComponent=void 0;var r=n(0),i=(n(30),n(203)),o=(n(519),n(16),n(111)),a=n(0),l=n(519),s=n(30),c=n(16),d=n(1),p=n(525),m=n(68),u=n(22),g=["attributeEditor"];function h(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"geoobject-shared-attribute-editor",7,8),a.ɵɵlistener("valid",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext(2).setValid(e)})),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext(2);a.ɵɵproperty("geoObjectType",r.type)("postGeoObject",r.postGeoObject)("isNew",r.isNew)("isGeometryInlined",!1)("hierarchies",r.hierarchies)("readOnly",!r.isEdit)("filterDate",r.forDate)("forDate",r.forDate)("datasetId",r.datasetId)}}function f(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",9),a.ɵɵelementStart(1,"label"),a.ɵɵelement(2,"localize",10),a.ɵɵelementEnd(),a.ɵɵelementStart(3,"textarea",11),a.ɵɵlistener("ngModelChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext(2).reason=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext(2);a.ɵɵadvance(3),a.ɵɵproperty("ngModel",r.reason)}}function y(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"button",12),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(2).onEditAttributes()})),a.ɵɵelement(1,"localize",13),a.ɵɵelementEnd()}}function v(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"button",14),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(2).onCancelInternal()})),a.ɵɵelement(1,"localize",15),a.ɵɵelementEnd()}}function b(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"button",16),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(2).onSubmit()})),a.ɵɵelement(1,"localize",17),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext(2);a.ɵɵproperty("disabled",!r.canSubmit()),a.ɵɵadvance(1),a.ɵɵproperty("key",r.isMaintainer?"modal.button.submit":"change.request.page.title")}}function S(e,t){if(1&e&&(a.ɵɵelementStart(0,"div"),a.ɵɵtemplate(1,h,2,9,"geoobject-shared-attribute-editor",1),a.ɵɵtemplate(2,f,4,1,"div",2),a.ɵɵelementStart(3,"div",3),a.ɵɵtemplate(4,y,2,0,"button",4),a.ɵɵtemplate(5,v,2,0,"button",5),a.ɵɵtemplate(6,b,2,2,"button",6),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵproperty("ngIf",n.hierarchies),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",n.isEdit&&!n.isMaintainer),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",!n.readOnly&&!n.isEdit),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",n.isEdit),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",n.isEdit)}}var C=function(){function e(e,t,n,i){this.service=e,this.modalService=t,this.authService=n,this.geometryService=i,this.MODE={VERSIONS:"VERSIONS",ATTRIBUTES:"ATTRIBUTES",HIERARCHY:"HIERARCHY",GEOMETRY:"GEOMETRY"},this.forDate=new Date,this.readOnly=!1,this._code=null,this.featureChange=new r.EventEmitter,this.modeChange=new r.EventEmitter,this.panelCancel=new r.EventEmitter,this.panelSubmit=new r.EventEmitter,this._isValid=!0,this.mode=null,this.attribute=null,this.isNew=!1,this.isEdit=!1,this.hierarchy=null,this.reason=""}return Object.defineProperty(e.prototype,"code",{set:function(e){this.updateCode(e)},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){this.isMaintainer=this.authService.isSRA()||this.authService.isOrganizationRA(this.type.organizationCode)||this.authService.isGeoObjectTypeOrSuperRM(this.type),this.mode="ATTRIBUTES"},e.prototype.setValid=function(e){this._isValid=e},e.prototype.isValid=function(){return this._isValid&&this.attributeEditor&&this.attributeEditor.isValid()},e.prototype.updateCode=function(e){var t=this;this._code=e,this.postGeoObject=null,this.preGeoObject=null,this.hierarchies=null,null!=e&&null!=this.type&&("__NEW__"!==e?(this.isNew=!1,this.service.getGeoObjectOverTime(e,this.type.code).then((function(e){t.preGeoObject=new i.GeoObjectOverTime(t.type,JSON.parse(JSON.stringify(e)).attributes),t.postGeoObject=new i.GeoObjectOverTime(t.type,JSON.parse(JSON.stringify(t.preGeoObject)).attributes)})).catch((function(e){t.error(e)})),this.service.getHierarchiesForGeoObject(e,this.type.code).then((function(e){t.hierarchies=e})).catch((function(e){t.error(e)}))):(this.isNew=!0,this.service.newGeoObjectOverTime(this.type.code).then((function(e){t.preGeoObject=new i.GeoObjectOverTime(t.type,e.geoObject.attributes),t.postGeoObject=new i.GeoObjectOverTime(t.type,JSON.parse(JSON.stringify(t.preGeoObject)).attributes),t.hierarchies=e.hierarchies,t.setEditMode(!0)}))))},e.prototype.onCancelInternal=function(){this.panelCancel.emit()},e.prototype.canSubmit=function(){return this.isValid()&&(this.isMaintainer||this.reason&&this.reason.trim().length>0)&&(this.isNew||this.attributeEditor&&this.attributeEditor.getChangeRequestEditor().hasChanges())},e.prototype.onSubmit=function(){var e=this;this.isNew?this.service.applyGeoObjectCreate(this.hierarchies,this.postGeoObject,this.isNew,this.datasetId,this.reason).then((function(t){t.isChangeRequest||(e.featureChange.emit(e.postGeoObject),e.updateCode(e._code)),e.panelSubmit.emit(t)})).catch((function(t){e.error(t)})):this.service.applyGeoObjectEdit(this.postGeoObject.attributes.code,this.type.code,this.attributeEditor.getActions(),this.datasetId,this.reason).then((function(t){t.isChangeRequest||(e.featureChange.emit(e.postGeoObject),e.updateCode(e._code)),e.panelSubmit.emit(t)})).catch((function(t){e.error(t)})),this.geometryService.stopEditing()},e.prototype.onManageAttributeVersion=function(e){this.attribute=e,this.mode=this.MODE.VERSIONS},e.prototype.onManageHiearchyVersion=function(e){this.hierarchy=e,this.mode=this.MODE.HIERARCHY},e.prototype.onEditAttributes=function(){this.setEditMode(!this.isEdit),window.document.getElementById("navigator-left-sidebar").scroll({top:0,behavior:"smooth"})},e.prototype.setEditMode=function(e){this.isEdit=e,this.reason=null,this.modeChange.emit(this.isEdit)},e.prototype.error=function(e){this.bsModalRef=o.ErrorHandler.showErrorAsDialog(e,this.modalService)},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(l.RegistryService),a.ɵɵdirectiveInject(s.BsModalService),a.ɵɵdirectiveInject(c.AuthService),a.ɵɵdirectiveInject(l.GeometryService))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["feature-panel"]],viewQuery:function(e,t){if(1&e&&a.ɵɵviewQuery(g,1),2&e){var n;a.ɵɵqueryRefresh(n=a.ɵɵloadQuery())&&(t.attributeEditor=n.first)}},inputs:{datasetId:"datasetId",type:"type",forDate:"forDate",readOnly:"readOnly",code:"code"},outputs:{featureChange:"featureChange",modeChange:"modeChange",panelCancel:"panelCancel",panelSubmit:"panelSubmit"},decls:2,vars:1,consts:[[4,"ngIf"],[3,"geoObjectType","postGeoObject","isNew","isGeometryInlined","hierarchies","readOnly","filterDate","forDate","datasetId","valid",4,"ngIf"],["class","form-group","style","z-index: 0;",4,"ngIf"],[1,"button-holder","text-right",2,"margin-bottom","20px"],["type","submit","class","btn btn-primary","style","width:100%;","role","button",3,"click",4,"ngIf"],["type","button","class","btn btn-default",3,"click",4,"ngIf"],["type","submit","class","btn btn-primary","role","button",3,"disabled","click",4,"ngIf"],[3,"geoObjectType","postGeoObject","isNew","isGeometryInlined","hierarchies","readOnly","filterDate","forDate","datasetId","valid"],["attributeEditor",""],[1,"form-group",2,"z-index","0"],["key","change.request.reason.label"],["rows","4","cols","50","name","reason-input","required","",1,"form-control",3,"ngModel","ngModelChange"],["type","submit","role","button",1,"btn","btn-primary",2,"width","100%",3,"click"],["key","changeovertime.manageVersions.button.label"],["type","button",1,"btn","btn-default",3,"click"],["key","modal.button.cancel"],["type","submit","role","button",1,"btn","btn-primary",3,"disabled","click"],[3,"key"]],template:function(e,t){1&e&&(a.ɵɵelementStart(0,"div"),a.ɵɵtemplate(1,S,7,5,"div",0),a.ɵɵelementEnd()),2&e&&(a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.mode==t.MODE.ATTRIBUTES&&null!=t.postGeoObject))},directives:[d.NgIf,p.GeoObjectSharedAttributeEditorComponent,m.LocalizeComponent,u.DefaultValueAccessor,u.RequiredValidator,u.NgControlStatus,u.NgModel],styles:["#hierarchy-tree-container[_ngcontent-%COMP%] {\n\theight: calc(100vh - 429px);\n overflow-y: auto;\n}\n\n.location-management-widget-section[_ngcontent-%COMP%] {\n\tmargin: 5px 0;\n}\n.location-management-widget-section[_ngcontent-%COMP%] > select[_ngcontent-%COMP%] {\n\tfloat: none !important;\n}\n\n.list-group-item[_ngcontent-%COMP%] {\n\tborder: none;\n\tborder-bottom: 1px solid #ddd;\n\tmargin-bottom: 0;\n}\n.list-group-item[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n\theight: auto;\n}\n\n.breadcrumb[_ngcontent-%COMP%]{\n\tpadding: 10px 0;\n\tbackground-color: white;\n\tmargin:0;\n}\n\n.layer-toggle[_ngcontent-%COMP%] {\n\tcursor: pointer; \n\tbackground: #fff; \n\tpadding: 8px; \n\tborder-radius: 4px;\n\twidth: fit-content;\n}\n\n.layer-toggle[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n\theight: auto;\n}\n.layer-toggle[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n\tmargin-left: 5px;\n}\n\n#attributes-header[_ngcontent-%COMP%] {\n\tbackground: #adadad;\n padding: 2px 15px;\n margin: 10px 0;\n color: white;\n border-radius: 3px;\n}"]}),e}();t.FeaturePanelComponent=C,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(C,[{type:r.Component,args:[{selector:"feature-panel",templateUrl:"./feature-panel.component.html",styleUrls:["./dataset-location-manager.css"]}]}],(function(){return[{type:l.RegistryService},{type:s.BsModalService},{type:c.AuthService},{type:l.GeometryService}]}),{datasetId:[{type:r.Input}],type:[{type:r.Input}],forDate:[{type:r.Input}],readOnly:[{type:r.Input}],code:[{type:r.Input}],attributeEditor:[{type:r.ViewChild,args:["attributeEditor"]}],featureChange:[{type:r.Output}],modeChange:[{type:r.Output}],panelCancel:[{type:r.Output}],panelSubmit:[{type:r.Output}]})},568:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ImportTypesModalComponent=void 0;var r=n(0),i=(n(30),n(31)),o=n(111),a=n(205),l=(n(16),n(0)),s=n(16),c=n(30),d=n(1),p=n(68),m=n(22),u=n(205),g=["myFile"];function h(e,t){if(1&e&&(l.ɵɵelementStart(0,"div",20),l.ɵɵtext(1),l.ɵɵelementEnd()),2&e){var n=l.ɵɵnextContext();l.ɵɵadvance(1),l.ɵɵtextInterpolate(n.message)}}function f(e,t){if(1&e&&(l.ɵɵelementStart(0,"option",21),l.ɵɵtext(1),l.ɵɵelementEnd()),2&e){var n=t.$implicit;l.ɵɵpropertyInterpolate("value",n.code),l.ɵɵadvance(1),l.ɵɵtextInterpolate(n.label.localizedValue)}}var y=function(){function e(e,t,n){this.eventService=e,this.localizationService=t,this.bsModalRef=n,this.organizations=[],this.message=null}return e.prototype.ngOnInit=function(){this.onNodeChange=new i.Subject},e.prototype.init=function(e){var t=this;this.organizations=e;var n={queueLimit:1,removeAfterUpload:!0,url:acp+"/cgr/import-types"};this.uploader=new a.FileUploader(n),this.uploader.onBuildItemForm=function(e,n){n.append("orgCode",t.orgCode)},this.uploader.onBeforeUploadItem=function(e){t.eventService.start()},this.uploader.onCompleteItem=function(e,n,r,i){t.fileRef.nativeElement.value="",t.eventService.complete()},this.uploader.onSuccessItem=function(e,n,r,i){t.onNodeChange.next(!0),t.bsModalRef.hide()},this.uploader.onErrorItem=function(e,n,r,i){var o=JSON.parse(n);t.error({error:o})}},e.prototype.onSelect=function(e){this.orgCode=e},e.prototype.onClick=function(){null!=this.uploader.queue&&this.uploader.queue.length>0?this.uploader.uploadAll():this.error({message:this.localizationService.decode("io.missing.file"),error:{}})},e.prototype.error=function(e){this.message=o.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(l.ɵɵdirectiveInject(s.EventService),l.ɵɵdirectiveInject(s.LocalizationService),l.ɵɵdirectiveInject(c.BsModalRef))},e.ɵcmp=l.ɵɵdefineComponent({type:e,selectors:[["import-types-modal"]],viewQuery:function(e,t){if(1&e&&l.ɵɵviewQuery(g,1),2&e){var n;l.ɵɵqueryRefresh(n=l.ɵɵloadQuery())&&(t.fileRef=n.first)}},decls:33,vars:3,consts:[[1,"modal-body"],["class","alert alert-danger","role","alert",4,"ngIf"],[1,"heading","text-center"],["key","hierarchy.sidebar.importTypes"],["autocomplete","off",1,"modal-form"],["form","ngForm"],[1,"row-holder"],[1,"label-holder"],["key","attribute.organization.label"],[1,"holder"],[3,"change"],[3,"value",4,"ngFor","ngForOf"],["key","hierarchy.sidebar.xmlFile"],["name","file","type","file","ng2FileSelect","","accept",".xml","required","",1,"ghost-input",3,"uploader"],["myFile",""],[1,"button-holder"],["type","button","role","button","aria-disabled","false",1,"btn","btn-default",3,"click"],["key","modal.button.cancel"],["type","submit","role","button","aria-disabled","false",1,"btn","btn-primary",3,"click"],["key","modal.button.ok"],["role","alert",1,"alert","alert-danger"],[3,"value"]],template:function(e,t){1&e&&(l.ɵɵelementStart(0,"div",0),l.ɵɵtemplate(1,h,2,1,"div",1),l.ɵɵelementStart(2,"div",2),l.ɵɵelementStart(3,"h1"),l.ɵɵelement(4,"localize",3),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(5,"form",4,5),l.ɵɵelementStart(7,"fieldset"),l.ɵɵelementStart(8,"div",6),l.ɵɵelementStart(9,"div",7),l.ɵɵelementStart(10,"label"),l.ɵɵelement(11,"localize",8),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(12,"div",9),l.ɵɵelementStart(13,"select",10),l.ɵɵlistener("change",(function(e){return t.onSelect(e.target.value)})),l.ɵɵelement(14,"option"),l.ɵɵtemplate(15,f,2,2,"option",11),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(16,"div",6),l.ɵɵelementStart(17,"div",7),l.ɵɵelementStart(18,"label"),l.ɵɵelement(19,"localize",12),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(20,"div",9),l.ɵɵelement(21,"input",13,14),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(23,"div",6),l.ɵɵelement(24,"div",7),l.ɵɵelementStart(25,"div",9),l.ɵɵelementStart(26,"div",15),l.ɵɵelementStart(27,"button",16),l.ɵɵlistener("click",(function(){return t.bsModalRef.hide()})),l.ɵɵelementStart(28,"span"),l.ɵɵelement(29,"localize",17),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(30,"button",18),l.ɵɵlistener("click",(function(){return t.onClick()})),l.ɵɵelementStart(31,"span"),l.ɵɵelement(32,"localize",19),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd()),2&e&&(l.ɵɵadvance(1),l.ɵɵproperty("ngIf",null!=t.message),l.ɵɵadvance(14),l.ɵɵproperty("ngForOf",t.organizations),l.ɵɵadvance(6),l.ɵɵproperty("uploader",t.uploader))},directives:[d.NgIf,p.LocalizeComponent,m.ɵangular_packages_forms_forms_ba,m.NgControlStatusGroup,m.NgForm,m.NgSelectOption,m.ɵangular_packages_forms_forms_z,d.NgForOf,u.FileSelectDirective],encapsulation:2}),e}();t.ImportTypesModalComponent=y,("undefined"==typeof ngDevMode||ngDevMode)&&l.ɵsetClassMetadata(y,[{type:r.Component,args:[{selector:"import-types-modal",templateUrl:"./import-types-modal.component.html",styleUrls:[]}]}],(function(){return[{type:s.EventService},{type:s.LocalizationService},{type:c.BsModalRef}]}),{fileRef:[{type:r.ViewChild,args:["myFile"]}]})},569:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ExportSystemModalComponent=void 0;var r=n(0),i=(n(30),n(31)),o=(n(16),n(0)),a=n(30),l=n(16),s=n(68),c=n(22),d=n(1);function p(e,t){if(1&e&&(o.ɵɵelementStart(0,"option",14),o.ɵɵtext(1),o.ɵɵelementEnd()),2&e){var n=t.$implicit;o.ɵɵproperty("value",n.oid),o.ɵɵadvance(1),o.ɵɵtextInterpolate(n.label.localizedValue)}}var m=function(){function e(e,t){this.bsModalRef=e,this.externalSystemService=t,this.systems=[],this.system=null}return e.prototype.ngOnInit=function(){var e=this;this.onSystemSet=new i.Subject,this.externalSystemService.getExternalSystems(1,1e3).then((function(t){e.systems=t.resultSet.filter((function(e){return"FhirExternalSystem"===e.type}))})).catch((function(e){}))},e.prototype.confirm=function(){this.bsModalRef.hide(),this.onSystemSet.next(this.system)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.BsModalRef),o.ɵɵdirectiveInject(l.ExternalSystemService))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["export-system-modal"]],decls:22,vars:3,consts:[["tabindex","-1","role","dialog",1,"modal-body"],[1,"heading","text-center"],["key","export-fhir-modal.title"],["name","export-form",1,"modal-form"],[1,"row"],[1,"col-md-12"],["key","export-fhir-modal.system"],["id","format","name","format","required","",1,"select-area",3,"ngModel","ngModelChange"],[3,"value",4,"ngFor","ngForOf"],[1,"button-holder"],["type","button","role","button","aria-disabled","false",1,"btn","btn-default",3,"click"],["key","modal.button.cancel"],["type","button","role","button",1,"btn","btn-primary",3,"disabled","click"],["key","modal.button.submit"],[3,"value"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵelementStart(1,"div",1),o.ɵɵelementStart(2,"h1"),o.ɵɵelement(3,"localize",2),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(4,"form",3),o.ɵɵelementStart(5,"fieldset"),o.ɵɵelementStart(6,"div",4),o.ɵɵelementStart(7,"div",5),o.ɵɵelementStart(8,"label"),o.ɵɵelement(9,"localize",6),o.ɵɵelementEnd(),o.ɵɵelementStart(10,"select",7),o.ɵɵlistener("ngModelChange",(function(e){return t.system=e})),o.ɵɵelement(11,"option"),o.ɵɵtemplate(12,p,2,2,"option",8),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(13,"div",4),o.ɵɵelementStart(14,"div",5),o.ɵɵelementStart(15,"div",9),o.ɵɵelementStart(16,"button",10),o.ɵɵlistener("click",(function(){return t.bsModalRef.hide()})),o.ɵɵelementStart(17,"span"),o.ɵɵelement(18,"localize",11),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(19,"button",12),o.ɵɵlistener("click",(function(){return t.confirm()})),o.ɵɵelementStart(20,"span"),o.ɵɵelement(21,"localize",13),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(10),o.ɵɵproperty("ngModel",t.system),o.ɵɵadvance(2),o.ɵɵproperty("ngForOf",t.systems),o.ɵɵadvance(7),o.ɵɵproperty("disabled",null==t.system||""==t.system))},directives:[s.LocalizeComponent,c.ɵangular_packages_forms_forms_ba,c.NgControlStatusGroup,c.NgForm,c.SelectControlValueAccessor,c.RequiredValidator,c.NgControlStatus,c.NgModel,c.NgSelectOption,c.ɵangular_packages_forms_forms_z,d.NgForOf],encapsulation:2}),e}();t.ExportSystemModalComponent=m,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(m,[{type:r.Component,args:[{selector:"export-system-modal",templateUrl:"./export-system-modal.component.html",styleUrls:[]}]}],(function(){return[{type:a.BsModalRef},{type:l.ExternalSystemService}]}),null)},570:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CreateHierarchyTypeModalComponent=void 0;var r=n(0),i=(n(30),n(31)),o=n(111),a=(n(519),n(16),n(0)),l=n(16),s=n(519),c=n(30),d=n(22),p=n(1),m=n(68),u=n(528),g=n(259);function h(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",40),a.ɵɵtext(1),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵtextInterpolate(n.message)}}function f(e,t){1&e&&a.ɵɵelement(0,"localize",41)}function y(e,t){1&e&&a.ɵɵelement(0,"localize",42)}function v(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",7),a.ɵɵelementStart(1,"label",43),a.ɵɵelement(2,"localize",44),a.ɵɵelementStart(3,"span",45),a.ɵɵtext(4," ("),a.ɵɵelement(5,"convert-key-label",46),a.ɵɵtext(6,")"),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(7,"input",47),a.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.value=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=t.$implicit,r=a.ɵɵnextContext();a.ɵɵadvance(5),a.ɵɵproperty("key",n.locale),a.ɵɵadvance(2),a.ɵɵproperty("disabled",r.readOnly)("ngModel",n.value)("name","label-"+n.locale)}}function b(e,t){if(1&e&&(a.ɵɵelementStart(0,"option",50),a.ɵɵtext(1),a.ɵɵelementEnd()),2&e){var n=t.$implicit;a.ɵɵproperty("value",n.code),a.ɵɵadvance(1),a.ɵɵtextInterpolate(n.label.localizedValue)}}function S(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"select",48),a.ɵɵlistener("ngModelChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().hierarchyType.organizationCode=e})),a.ɵɵelement(1,"option"),a.ɵɵtemplate(2,b,2,2,"option",49),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext();a.ɵɵproperty("disabled",r.edit||r.readOnly)("ngModel",r.hierarchyType.organizationCode),a.ɵɵadvance(2),a.ɵɵproperty("ngForOf",r.organizations)}}function C(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"span",51),a.ɵɵelementStart(1,"input",52),a.ɵɵlistener("ngModelChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().organizationLabel=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵproperty("ngModel",r.organizationLabel)}}function E(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"span",51),a.ɵɵelementStart(1,"input",52),a.ɵɵlistener("ngModelChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().organizationLabel=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵproperty("ngModel",r.organizationLabel)}}function x(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"button",53),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().handleOnSubmit()})),a.ɵɵelement(1,"localize",54),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext(),i=a.ɵɵreference(3);a.ɵɵproperty("disabled",r.hierarchyType.code.length<1||i.invalid)}}var O=function(){function e(e,t,n,r,i){this.lService=e,this.auth=t,this.registryService=n,this.hierarchyService=r,this.bsModalRef=i,this.organizations=[],this.message=null,this.edit=!1,this.readOnly=!1}return e.prototype.ngOnInit=function(){var e=this;this.onHierarchytTypeCreate=new i.Subject,this.hierarchyType={code:"",label:this.lService.create(),description:this.lService.create(),rootGeoObjectTypes:[],organizationCode:""},this.registryService.getOrganizations().then((function(t){if(e.readOnly)e.organizations=t;else{e.organizations=[];for(var n=0;n1),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",!t.edit&&1==t.organizations.length),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.edit),a.ɵɵadvance(4),a.ɵɵproperty("ngModel",t.hierarchyType.progress)("disabled",t.readOnly),a.ɵɵadvance(4),a.ɵɵproperty("ngModel",t.hierarchyType.acknowledgement)("disabled",t.readOnly),a.ɵɵadvance(4),a.ɵɵproperty("ngModel",t.hierarchyType.disclaimer)("disabled",t.readOnly),a.ɵɵadvance(4),a.ɵɵproperty("ngModel",t.hierarchyType.accessConstraints)("disabled",t.readOnly),a.ɵɵadvance(4),a.ɵɵproperty("ngModel",t.hierarchyType.useConstraints)("disabled",t.readOnly),a.ɵɵadvance(8),a.ɵɵproperty("ngModel",t.hierarchyType.contact)("disabled",t.readOnly),a.ɵɵadvance(4),a.ɵɵproperty("ngModel",t.hierarchyType.phoneNumber)("disabled",t.readOnly),a.ɵɵadvance(4),a.ɵɵproperty("ngModel",t.hierarchyType.email)("disabled",t.readOnly),a.ɵɵadvance(6),a.ɵɵproperty("ngIf",!t.readOnly))},directives:[d.ɵangular_packages_forms_forms_ba,d.NgControlStatusGroup,d.NgForm,p.NgIf,m.LocalizeComponent,d.DefaultValueAccessor,d.RequiredValidator,d.NgControlStatus,d.NgModel,p.NgForOf,u.LocalizedTextComponent,g.ConvertKeyLabel,d.SelectControlValueAccessor,d.NgSelectOption,d.ɵangular_packages_forms_forms_z],encapsulation:2}),e}();t.CreateHierarchyTypeModalComponent=O,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(O,[{type:r.Component,args:[{selector:"create-hierarchy-type-modal",templateUrl:"./create-hierarchy-type-modal.component.html",styleUrls:[]}]}],(function(){return[{type:l.LocalizationService},{type:l.AuthService},{type:s.RegistryService},{type:s.HierarchyService},{type:c.BsModalRef}]}),null)},571:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CreateGeoObjTypeModalComponent=void 0;var r=n(0),i=(n(30),n(31)),o=n(111),a=(n(519),n(16),n(0)),l=n(16),s=n(519),c=n(30),d=n(22),p=n(1),m=n(68),u=n(528),g=n(262),h=n(259);function f(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",42),a.ɵɵtext(1),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵtextInterpolate(n.message)}}function y(e,t){1&e&&a.ɵɵelement(0,"localize",43)}function v(e,t){1&e&&a.ɵɵelement(0,"localize",44)}function b(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",9),a.ɵɵelementStart(1,"label"),a.ɵɵelement(2,"localize",45),a.ɵɵelementStart(3,"span",46),a.ɵɵtext(4," ("),a.ɵɵelement(5,"convert-key-label",47),a.ɵɵtext(6,")"),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(7,"input",48),a.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.value=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=t.$implicit;a.ɵɵadvance(5),a.ɵɵproperty("key",n.locale),a.ɵɵadvance(2),a.ɵɵproperty("ngModel",n.value)("name","label-"+n.locale)("required","defaultLocale"===n.locale)}}function S(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",7),a.ɵɵelementStart(1,"div",16),a.ɵɵelementStart(2,"div",9),a.ɵɵelementStart(3,"label",17),a.ɵɵelement(4,"localize",49),a.ɵɵelementEnd(),a.ɵɵelementStart(5,"div",19),a.ɵɵelementStart(6,"boolean-field",20),a.ɵɵlistener("valueChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().geoObjectType.isAbstract=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext();a.ɵɵadvance(6),a.ɵɵproperty("disable",!0)("value",r.geoObjectType.isAbstract)("localizeLabelKey","attribute.isAbstract.label")}}var C=function(e){return{"chk-checked":e}},E=function(){function e(e,t,n,r){this.lService=e,this.auth=t,this.registryService=n,this.bsModalRef=r,this.organization=null,this.message=null}return e.prototype.ngOnInit=function(){this.onGeoObjTypeCreate=new i.Subject,this.geoObjectType={code:"",label:this.lService.create(),description:this.lService.create(),geometryType:"MULTIPOINT",isLeaf:!1,isGeometryEditable:!0,organizationCode:"",attributes:[]}},e.prototype.init=function(e,t,n,r){this.geoObjectType.isAbstract=r||!1,n&&(this.geoObjectType.superTypeCode=n.code,this.geoObjectType.geometryType=n.geometryType,this.geoObjectType.isPrivate=n.isPrivate),this.parents=t.filter((function(e){return e.isAbstract})),this.organization=e,this.geoObjectType.organizationCode=this.organization.code,this.organizationLabel=this.organization.label.localizedValue},e.prototype.handleOnSubmit=function(){var e=this;this.message=null,this.registryService.createGeoObjectType(JSON.stringify(this.geoObjectType)).then((function(t){e.onGeoObjTypeCreate.next(t),e.bsModalRef.hide()})).catch((function(t){e.error(t)}))},e.prototype.toggleIsLeaf=function(){this.geoObjectType.isLeaf=!this.geoObjectType.isLeaf},e.prototype.toggleIsGeometryEditable=function(){this.geoObjectType.isGeometryEditable=!this.geoObjectType.isGeometryEditable},e.prototype.toggleIsAbstract=function(){this.geoObjectType.isAbstract=!this.geoObjectType.isAbstract},e.prototype.error=function(e){this.message=o.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(l.LocalizationService),a.ɵɵdirectiveInject(l.AuthService),a.ɵɵdirectiveInject(s.RegistryService),a.ɵɵdirectiveInject(c.BsModalRef))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["create-geoobjtype-modal"]],decls:64,vars:18,consts:[[1,"modal-form",3,"ngSubmit"],["form","ngForm"],[1,"modal-body"],["class","alert alert-danger","role","alert",4,"ngIf"],[1,"heading","text-center"],["key","hierarchy.management.create.geoobjecttype.group.title",4,"ngIf"],["key","hierarchy.management.create.geoobjecttype.title",4,"ngIf"],[1,"row"],[1,"col-md-12"],[1,"form-group"],["for","codeInput"],["key","data.property.label.code"],["name","code","type","text","id","codeInput","required","",1,"form-control",3,"ngModel","ngModelChange"],["class","form-group",4,"ngFor","ngForOf"],["key","data.property.label.description",3,"value","inlinelayout","valueChange"],["class","row",4,"ngIf"],[1,"col-md-12",2,"margin-bottom","15px"],[2,"display","block"],["key","geoObjectType.attr.visibility.label"],[1,"check-block"],[3,"disable","value","localizeLabelKey","valueChange"],["for","geometryType"],["key","data.property.label.geometryType"],["name","geometryType","required","",1,"select-area",3,"ngModel","disabled","ngModelChange"],["value","MULTIPOINT"],["key","georegistry.geometry.point"],["value","MULTILINE"],["key","georegistry.geometry.line"],["value","MULTIPOLYGON"],["key","georegistry.geometry.polygon"],[1,"jcf-unselectable","chk-area",2,"margin","0",3,"ngClass","click"],[1,"checkbox-label"],["key","hierarchy.management.option.label.isGeometryEditable"],["for","organization"],["key","attribute.organization.label"],[1,"text"],["type","text","name","organization","disabled","","required","",3,"ngModel","ngModelChange"],[1,"button-holder"],["type","button",1,"btn","btn-default",3,"click"],["key","modal.button.cancel"],["type","submit",1,"btn","btn-primary",3,"disabled"],["key","modal.button.ok"],["role","alert",1,"alert","alert-danger"],["key","hierarchy.management.create.geoobjecttype.group.title"],["key","hierarchy.management.create.geoobjecttype.title"],["key","data.property.label.label"],[2,"color","#BABABA"],[3,"key"],["type","input",1,"form-control",3,"ngModel","name","required","ngModelChange"],["key","attribute.group.label"]],template:function(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"form",0,1),a.ɵɵlistener("ngSubmit",(function(){return a.ɵɵrestoreView(n),a.ɵɵreference(1).valid&&t.handleOnSubmit()})),a.ɵɵelementStart(2,"div",2),a.ɵɵtemplate(3,f,2,1,"div",3),a.ɵɵelementStart(4,"div",4),a.ɵɵelementStart(5,"h1"),a.ɵɵtemplate(6,y,1,0,"localize",5),a.ɵɵtemplate(7,v,1,0,"localize",6),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"div",7),a.ɵɵelementStart(9,"div",8),a.ɵɵelementStart(10,"div",9),a.ɵɵelementStart(11,"div"),a.ɵɵelementStart(12,"label",10),a.ɵɵelement(13,"localize",11),a.ɵɵelementEnd(),a.ɵɵelementStart(14,"input",12),a.ɵɵlistener("ngModelChange",(function(e){return t.geoObjectType.code=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(15,"div",7),a.ɵɵelementStart(16,"div",8),a.ɵɵtemplate(17,b,8,4,"div",13),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(18,"div",7),a.ɵɵelementStart(19,"div",8),a.ɵɵelementStart(20,"localized-text",14),a.ɵɵlistener("valueChange",(function(e){return t.geoObjectType.description=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵtemplate(21,S,7,3,"div",15),a.ɵɵelementStart(22,"div",7),a.ɵɵelementStart(23,"div",16),a.ɵɵelementStart(24,"div",9),a.ɵɵelementStart(25,"label",17),a.ɵɵelement(26,"localize",18),a.ɵɵelementEnd(),a.ɵɵelementStart(27,"div",19),a.ɵɵelementStart(28,"boolean-field",20),a.ɵɵlistener("valueChange",(function(e){return t.geoObjectType.isPrivate=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(29,"div",7),a.ɵɵelementStart(30,"div",8),a.ɵɵelementStart(31,"div",9),a.ɵɵelementStart(32,"label",21),a.ɵɵelement(33,"localize",22),a.ɵɵelementEnd(),a.ɵɵelementStart(34,"select",23),a.ɵɵlistener("ngModelChange",(function(e){return t.geoObjectType.geometryType=e})),a.ɵɵelement(35,"option"),a.ɵɵelementStart(36,"option",24),a.ɵɵelement(37,"localize",25),a.ɵɵelementEnd(),a.ɵɵelementStart(38,"option",26),a.ɵɵelement(39,"localize",27),a.ɵɵelementEnd(),a.ɵɵelementStart(40,"option",28),a.ɵɵelement(41,"localize",29),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(42,"div",7),a.ɵɵelementStart(43,"div",16),a.ɵɵelementStart(44,"div",9),a.ɵɵelementStart(45,"div",19),a.ɵɵelementStart(46,"div",30),a.ɵɵlistener("click",(function(){return t.toggleIsGeometryEditable()})),a.ɵɵelement(47,"span"),a.ɵɵelementEnd(),a.ɵɵelementStart(48,"label",31),a.ɵɵelement(49,"localize",32),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(50,"div",7),a.ɵɵelementStart(51,"div",8),a.ɵɵelementStart(52,"div",9),a.ɵɵelementStart(53,"label",33),a.ɵɵelement(54,"localize",34),a.ɵɵelementEnd(),a.ɵɵelementStart(55,"span",35),a.ɵɵelementStart(56,"input",36),a.ɵɵlistener("ngModelChange",(function(e){return t.organizationLabel=e})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(57,"div",7),a.ɵɵelementStart(58,"div",8),a.ɵɵelementStart(59,"div",37),a.ɵɵelementStart(60,"button",38),a.ɵɵlistener("click",(function(){return t.bsModalRef.hide()})),a.ɵɵelement(61,"localize",39),a.ɵɵelementEnd(),a.ɵɵelementStart(62,"button",40),a.ɵɵelement(63,"localize",41),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵreference(1);a.ɵɵadvance(3),a.ɵɵproperty("ngIf",null!=t.message),a.ɵɵadvance(3),a.ɵɵproperty("ngIf",t.geoObjectType.isAbstract),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",!t.geoObjectType.isAbstract),a.ɵɵadvance(7),a.ɵɵproperty("ngModel",t.geoObjectType.code),a.ɵɵadvance(3),a.ɵɵproperty("ngForOf",t.geoObjectType.label.localeValues),a.ɵɵadvance(3),a.ɵɵproperty("value",t.geoObjectType.description)("inlinelayout",!0),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",!t.geoObjectType.superTypeCode),a.ɵɵadvance(7),a.ɵɵproperty("disable",null!=t.geoObjectType.superTypeCode)("value",t.geoObjectType.isPrivate)("localizeLabelKey","geoObjectType.attr.isPrivate"),a.ɵɵadvance(6),a.ɵɵproperty("ngModel",t.geoObjectType.geometryType)("disabled",null!=t.geoObjectType.superTypeCode&&""!=t.geoObjectType.superTypeCode),a.ɵɵadvance(12),a.ɵɵproperty("ngClass",a.ɵɵpureFunction1(16,C,t.geoObjectType.isGeometryEditable)),a.ɵɵadvance(10),a.ɵɵproperty("ngModel",t.organizationLabel),a.ɵɵadvance(6),a.ɵɵproperty("disabled",r.invalid)}},directives:[d.ɵangular_packages_forms_forms_ba,d.NgControlStatusGroup,d.NgForm,p.NgIf,m.LocalizeComponent,d.DefaultValueAccessor,d.RequiredValidator,d.NgControlStatus,d.NgModel,p.NgForOf,u.LocalizedTextComponent,g.BooleanFieldComponent,d.SelectControlValueAccessor,d.NgSelectOption,d.ɵangular_packages_forms_forms_z,p.NgClass,h.ConvertKeyLabel],encapsulation:2}),e}();t.CreateGeoObjTypeModalComponent=E,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(E,[{type:r.Component,args:[{selector:"create-geoobjtype-modal",templateUrl:"./create-geoobjtype-modal.component.html",styleUrls:[]}]}],(function(){return[{type:l.LocalizationService},{type:l.AuthService},{type:s.RegistryService},{type:c.BsModalRef}]}),null)},572:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ManageGeoObjectTypeModalComponent=void 0;var r=n(0),i=n(7),o=(n(30),n(31)),a=n(111),l=n(258),s=(n(519),n(0)),c=n(30),d=n(519),p=n(22),m=n(155),u=n(1),g=n(573),h=n(574),f=n(576),y=n(578),v=n(579);function b(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"geoobjecttype-input",5),s.ɵɵlistener("geoObjectTypeChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext().onGeoObjectTypeChange(e)})),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext();s.ɵɵproperty("readOnly",r.readOnly)("geoObjectType",r.geoObjectType)("setGeoObjectType",r.geoObjectType)}}function S(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"define-attribute-modal-content",6),s.ɵɵlistener("geoObjectTypeChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext().onGeoObjectTypeChange(e)})),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext();s.ɵɵproperty("geoObjectType",r.geoObjectType)}}function C(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"edit-attribute-modal-content",7),s.ɵɵlistener("geoObjectTypeChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext().onGeoObjectTypeChange(e)})),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext();s.ɵɵproperty("geoObjectType",r.geoObjectType)("attribute",r.modalState.attribute)}}function E(e,t){if(1&e&&s.ɵɵelement(0,"manage-term-options",8),2&e){var n=s.ɵɵnextContext();s.ɵɵproperty("geoObjectType",n.geoObjectType)("attribute",n.modalState.attribute)}}function x(e,t){if(1&e&&s.ɵɵelement(0,"edit-term-option-input",9),2&e){var n=s.ɵɵnextContext();s.ɵɵproperty("geoObjectType",n.geoObjectType)("attribute",n.modalState.attribute)("termOption",n.modalState.termOption)}}var O=function(){function e(e,t,n){var r=this;this.bsModalRef=e,this.confirmBsModalRef=t,this.message=null,this.modalState={state:l.GeoObjectTypeModalStates.manageGeoObjectType,attribute:"",termOption:""},this.readOnly=!1,this.modalStateSubscription=n.modalStepChange.subscribe((function(e){r.modalState=e}))}return e.prototype.ngOnInit=function(){this.onGeoObjectTypeSubmitted=new o.Subject},e.prototype.ngOnDestroy=function(){this.modalStateSubscription.unsubscribe()},e.prototype.onModalStateChange=function(e){this.modalState=e},e.prototype.onGeoObjectTypeChange=function(e){this.onGeoObjectTypeSubmitted.next(e)},e.prototype.update=function(){},e.prototype.close=function(){this.bsModalRef.hide()},e.prototype.error=function(e){this.message=a.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(s.ɵɵdirectiveInject(c.BsModalRef),s.ɵɵdirectiveInject(c.BsModalRef),s.ɵɵdirectiveInject(d.GeoObjectTypeManagementService))},e.ɵcmp=s.ɵɵdefineComponent({type:e,selectors:[["manage-geoobjecttype-modal"]],decls:7,vars:5,consts:[[3,"readOnly","geoObjectType","setGeoObjectType","geoObjectTypeChange",4,"ngIf"],[3,"geoObjectType","geoObjectTypeChange",4,"ngIf"],[3,"geoObjectType","attribute","geoObjectTypeChange",4,"ngIf"],[3,"geoObjectType","attribute",4,"ngIf"],[3,"geoObjectType","attribute","termOption",4,"ngIf"],[3,"readOnly","geoObjectType","setGeoObjectType","geoObjectTypeChange"],[3,"geoObjectType","geoObjectTypeChange"],[3,"geoObjectType","attribute","geoObjectTypeChange"],[3,"geoObjectType","attribute"],[3,"geoObjectType","attribute","termOption"]],template:function(e,t){1&e&&(s.ɵɵelementStart(0,"form"),s.ɵɵelement(1,"modal-step-indicator"),s.ɵɵtemplate(2,b,1,3,"geoobjecttype-input",0),s.ɵɵtemplate(3,S,1,1,"define-attribute-modal-content",1),s.ɵɵtemplate(4,C,1,2,"edit-attribute-modal-content",2),s.ɵɵtemplate(5,E,1,2,"manage-term-options",3),s.ɵɵtemplate(6,x,1,3,"edit-term-option-input",4),s.ɵɵelementEnd()),2&e&&(s.ɵɵadvance(2),s.ɵɵproperty("ngIf","MANAGE-GEO-OBJECT-TYPE"===t.modalState.state),s.ɵɵadvance(1),s.ɵɵproperty("ngIf","DEFINE-ATTRIBUTE"===t.modalState.state),s.ɵɵadvance(1),s.ɵɵproperty("ngIf","EDIT-ATTRIBUTE"===t.modalState.state),s.ɵɵadvance(1),s.ɵɵproperty("ngIf","MANAGE-TERM-OPTION"===t.modalState.state),s.ɵɵadvance(1),s.ɵɵproperty("ngIf","EDIT-TERM-OPTION"===t.modalState.state))},directives:[p.ɵangular_packages_forms_forms_ba,p.NgControlStatusGroup,p.NgForm,m.ModalStepIndicatorComponent,u.NgIf,g.GeoObjectTypeInputComponent,h.DefineAttributeModalContentComponent,f.EditAttributeModalContentComponent,y.ManageTermOptionsComponent,v.EditTermOptionInputComponent],styles:[""],data:{animation:[[i.trigger("fadeInOut",[i.transition("void => *",[i.style({opacity:0}),i.animate("500ms")]),i.transition(":leave",i.animate("500ms",i.style({opacity:0})))])]]}}),e}();t.ManageGeoObjectTypeModalComponent=O,("undefined"==typeof ngDevMode||ngDevMode)&&s.ɵsetClassMetadata(O,[{type:r.Component,args:[{selector:"manage-geoobjecttype-modal",templateUrl:"./manage-geoobjecttype-modal.component.html",styleUrls:["./manage-geoobjecttype-modal.css"],animations:[[i.trigger("fadeInOut",[i.transition("void => *",[i.style({opacity:0}),i.animate("500ms")]),i.transition(":leave",i.animate("500ms",i.style({opacity:0})))])]]}]}],(function(){return[{type:c.BsModalRef},{type:c.BsModalRef},{type:d.GeoObjectTypeManagementService}]}),null)},573:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GeoObjectTypeInputComponent=void 0;var r=n(0),i=n(7),o=(n(30),n(261)),a=n(111),l=(n(16),n(203),n(258)),s=(n(519),n(0)),c=n(30),d=n(16),p=n(519),m=n(1),u=n(22),g=n(68),h=n(533),f=n(528),y=n(262),v=n(33),b=n(113);function S(e,t){if(1&e&&(s.ɵɵelementStart(0,"div",4),s.ɵɵtext(1),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext(2);s.ɵɵadvance(1),s.ɵɵtextInterpolate(n.message)}}function C(e,t){if(1&e&&(s.ɵɵelementStart(0,"div",9),s.ɵɵelementStart(1,"div",10),s.ɵɵelement(2,"localize",43),s.ɵɵelementEnd(),s.ɵɵelementStart(3,"div",12),s.ɵɵelementStart(4,"span",13),s.ɵɵtext(5),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext(3);s.ɵɵadvance(5),s.ɵɵtextInterpolate1(" ",n.geoObjectType.superTypeCode," ")}}function E(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"a",47),s.ɵɵlistener("click",(function(e){s.ɵɵrestoreView(n);var t=s.ɵɵnextContext().$implicit;return s.ɵɵnextContext(3).editAttribute(t,e)})),s.ɵɵpipe(1,"localize"),s.ɵɵelementEnd()}2&e&&s.ɵɵproperty("title",s.ɵɵpipeBind1(1,1,"modal.button.edit"))}function x(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"a",48),s.ɵɵlistener("click",(function(e){s.ɵɵrestoreView(n);var t=s.ɵɵnextContext().$implicit;return s.ɵɵnextContext(3).removeAttributeType(t,e)})),s.ɵɵpipe(1,"localize"),s.ɵɵelementEnd()}2&e&&s.ɵɵproperty("title",s.ɵɵpipeBind1(1,1,"modal.button.remove"))}function O(e,t){if(1&e&&(s.ɵɵelementStart(0,"tr"),s.ɵɵelementStart(1,"td"),s.ɵɵtext(2),s.ɵɵelementEnd(),s.ɵɵelementStart(3,"td",44),s.ɵɵtemplate(4,E,2,3,"a",45),s.ɵɵtemplate(5,x,2,3,"a",46),s.ɵɵelementEnd(),s.ɵɵelementEnd()),2&e){var n=t.$implicit;s.ɵɵadvance(2),s.ɵɵtextInterpolate(n.label.localizedValue),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",!n.isDefault&&"keyName"!==n.code),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",!n.isDefault&&"keyName"!==n.code)}}function I(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"i",49),s.ɵɵlistener("click",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext(3).defineAttributeModal()})),s.ɵɵelement(1,"localize",50),s.ɵɵelementEnd()}}function w(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"button",51),s.ɵɵlistener("click",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext(3).update()})),s.ɵɵelement(1,"localize",52),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(3);s.ɵɵproperty("disabled",!r.isValid())}}function M(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"form",5,6),s.ɵɵlistener("ngSubmit",(function(){return s.ɵɵrestoreView(n),s.ɵɵreference(1).valid})),s.ɵɵelementStart(2,"div",7),s.ɵɵelementStart(3,"h1"),s.ɵɵelement(4,"localize",8),s.ɵɵtext(5),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(6,"fieldset"),s.ɵɵelementStart(7,"div",9),s.ɵɵelementStart(8,"div",10),s.ɵɵelementStart(9,"label"),s.ɵɵelement(10,"localize",11),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(11,"div",12),s.ɵɵelementStart(12,"span",13),s.ɵɵelementStart(13,"input",14),s.ɵɵlistener("ngModelChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).editGeoObjectType.code=e})),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(14,"localized-input",15),s.ɵɵlistener("valueChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).editGeoObjectType.label=e})),s.ɵɵelementEnd(),s.ɵɵelementStart(15,"localized-text",16),s.ɵɵlistener("valueChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).editGeoObjectType.description=e})),s.ɵɵelementEnd(),s.ɵɵelementStart(16,"div",9),s.ɵɵelementStart(17,"div",10),s.ɵɵelementStart(18,"label"),s.ɵɵelement(19,"localize",17),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(20,"div",12),s.ɵɵelementStart(21,"boolean-field",18),s.ɵɵlistener("valueChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).geoObjectType.isAbstract=e})),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(22,"div",9),s.ɵɵelementStart(23,"div",10),s.ɵɵelementStart(24,"label"),s.ɵɵelement(25,"localize",19),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(26,"div",12),s.ɵɵelementStart(27,"boolean-field",18),s.ɵɵlistener("valueChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).editGeoObjectType.isPrivate=e})),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵtemplate(28,C,6,1,"div",20),s.ɵɵelementStart(29,"div",9),s.ɵɵelementStart(30,"div",10),s.ɵɵelementStart(31,"label"),s.ɵɵelement(32,"localize",21),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(33,"div",12),s.ɵɵelementStart(34,"select",22),s.ɵɵlistener("ngModelChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).editGeoObjectType.geometryType=e})),s.ɵɵelement(35,"option"),s.ɵɵelementStart(36,"option",23),s.ɵɵelement(37,"localize",24),s.ɵɵelementEnd(),s.ɵɵelementStart(38,"option",25),s.ɵɵelement(39,"localize",26),s.ɵɵelementEnd(),s.ɵɵelementStart(40,"option",27),s.ɵɵelement(41,"localize",28),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(42,"div",9),s.ɵɵelementStart(43,"div",10),s.ɵɵelementStart(44,"label"),s.ɵɵelement(45,"localize",29),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(46,"div",12),s.ɵɵelementStart(47,"boolean-field",18),s.ɵɵlistener("valueChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).editGeoObjectType.isGeometryEditable=e})),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(48,"div",9),s.ɵɵelementStart(49,"div",10),s.ɵɵelementStart(50,"label"),s.ɵɵelement(51,"localize",30),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(52,"div",12),s.ɵɵelementStart(53,"span",13),s.ɵɵelementStart(54,"input",31),s.ɵɵlistener("ngModelChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).organizationLabel=e})),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(55,"div",9),s.ɵɵelementStart(56,"div",10),s.ɵɵelementStart(57,"label"),s.ɵɵelement(58,"localize",32),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(59,"div",12),s.ɵɵelementStart(60,"div",33),s.ɵɵelementStart(61,"div",34),s.ɵɵelementStart(62,"div",35),s.ɵɵelementStart(63,"table",36),s.ɵɵelementStart(64,"tbody"),s.ɵɵtemplate(65,O,6,3,"tr",37),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵtemplate(66,I,2,0,"i",38),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(67,"div",9),s.ɵɵelementStart(68,"div",39),s.ɵɵelementStart(69,"button",40),s.ɵɵlistener("click",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).close()})),s.ɵɵelement(70,"localize",41),s.ɵɵelementEnd(),s.ɵɵtemplate(71,w,2,1,"button",42),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(2);s.ɵɵadvance(5),s.ɵɵtextInterpolate1(" : ",r.editGeoObjectType.label.localizedValue," "),s.ɵɵadvance(8),s.ɵɵproperty("ngModel",r.editGeoObjectType.code),s.ɵɵadvance(1),s.ɵɵproperty("disabled",r.readOnly)("value",r.editGeoObjectType.label),s.ɵɵadvance(1),s.ɵɵproperty("disabled",r.readOnly)("value",r.editGeoObjectType.description),s.ɵɵadvance(6),s.ɵɵproperty("disable",!0)("value",r.geoObjectType.isAbstract)("localizeLabelKey","attribute.isAbstract.label"),s.ɵɵadvance(6),s.ɵɵproperty("disable",r.readOnly||r.geoObjectType.superTypeCode)("value",r.editGeoObjectType.isPrivate)("localizeLabelKey","geoObjectType.attr.isPrivate"),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",!r.geoObjectType.isAbstract&&r.geoObjectType.superTypeCode),s.ɵɵadvance(6),s.ɵɵproperty("ngModel",r.editGeoObjectType.geometryType),s.ɵɵadvance(13),s.ɵɵproperty("disable",r.readOnly)("value",r.editGeoObjectType.isGeometryEditable)("localizeLabelKey","hierarchy.management.option.label.isGeometryEditable"),s.ɵɵadvance(7),s.ɵɵproperty("ngModel",r.organizationLabel),s.ɵɵadvance(11),s.ɵɵproperty("ngForOf",r.geoObjectType.attributes),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",!r.readOnly),s.ɵɵadvance(5),s.ɵɵproperty("ngIf",!r.readOnly)}}function T(e,t){if(1&e&&(s.ɵɵelementStart(0,"div",1),s.ɵɵtemplate(1,S,2,1,"div",2),s.ɵɵtemplate(2,M,72,21,"form",3),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext();s.ɵɵadvance(1),s.ɵɵproperty("ngIf",null!=n.message),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",n.editGeoObjectType)}}var j=function(){function e(e,t,n,i,o,a,s){this.bsModalRef=e,this.confirmBsModalRef=t,this.modalService=n,this.modalStepIndicatorService=i,this.geoObjectTypeManagementService=o,this.localizationService=a,this.registryService=s,this.readOnly=!1,this.geoObjectTypeChange=new r.EventEmitter,this.message=null,this.modalState={state:l.GeoObjectTypeModalStates.manageGeoObjectType,attribute:"",termOption:""},this.modalStepConfig={steps:[{label:this.localizationService.decode("modal.step.indicator.manage.geoobjecttype"),active:!0,enabled:!0}]}}return Object.defineProperty(e.prototype,"in",{set:function(e){e&&(this.editGeoObjectType=JSON.parse(JSON.stringify(e)))},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){this.modalStepIndicatorService.setStepConfig(this.modalStepConfig),this.geoObjectTypeManagementService.setModalState(this.modalState),this.fetchOrganizationLabel()},e.prototype.defineAttributeModal=function(){this.geoObjectTypeManagementService.setModalState({state:l.GeoObjectTypeModalStates.defineAttribute,attribute:"",termOption:""})},e.prototype.fetchOrganizationLabel=function(){var e=this;this.registryService.getOrganizations().then((function(t){for(var n=0;n *",[i.style({opacity:0}),i.animate("500ms")]),i.transition(":leave",i.animate("500ms",i.style({opacity:0})))])]]}}),e}();t.GeoObjectTypeInputComponent=j,("undefined"==typeof ngDevMode||ngDevMode)&&s.ɵsetClassMetadata(j,[{type:r.Component,args:[{selector:"geoobjecttype-input",templateUrl:"./geoobjecttype-input.component.html",styleUrls:["./geoobjecttype-input.css"],animations:[[i.trigger("fadeInOut",[i.transition("void => *",[i.style({opacity:0}),i.animate("500ms")]),i.transition(":leave",i.animate("500ms",i.style({opacity:0})))])]]}]}],(function(){return[{type:c.BsModalRef},{type:c.BsModalRef},{type:c.BsModalService},{type:d.ModalStepIndicatorService},{type:p.GeoObjectTypeManagementService},{type:d.LocalizationService},{type:p.RegistryService}]}),{readOnly:[{type:r.Input}],geoObjectType:[{type:r.Input}],geoObjectTypeChange:[{type:r.Output}],in:[{type:r.Input,args:["setGeoObjectType"]}]})},574:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DefineAttributeModalContentComponent=void 0;var r=n(0),i=(n(30),n(111)),o=(n(16),n(203)),a=n(258),l=(n(519),n(530)),s=n(0),c=n(30),d=n(16),p=n(519),m=n(22),u=n(1),g=n(68),h=n(530);function f(e,t){if(1&e&&(s.ɵɵelementStart(0,"div",24),s.ɵɵtext(1),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext();s.ɵɵadvance(1),s.ɵɵtextInterpolate(n.message)}}var y=function(e){return{active:e}},v=function(){function e(e,t,n,i,o){this.bsModalRef=e,this.modalStepIndicatorService=t,this.geoObjectTypeManagementService=n,this.localizeService=i,this.registryService=o,this.geoObjectTypeChange=new r.EventEmitter,this.message=null,this.newAttribute=null,this.modalStepConfig={steps:[{label:this.localizeService.decode("modal.step.indicator.manage.geoobjecttype"),active:!0,enabled:!1},{label:this.localizeService.decode("modal.step.indicator.manage.attributes"),active:!0,enabled:!1},{label:this.localizeService.decode("modal.step.indicator.create.attribute"),active:!0,enabled:!0}]},this.modalState={state:a.GeoObjectTypeModalStates.defineAttribute,attribute:"",termOption:""}}return e.prototype.ngOnInit=function(){this.setAttribute("character"),this.modalStepIndicatorService.setStepConfig(this.modalStepConfig)},e.prototype.ngAfterViewInit=function(){this.attributeInputComponent&&this.attributeInputComponent.animate()},e.prototype.handleOnSubmit=function(){var e=this;this.registryService.addAttributeType(this.geoObjectType.code,this.newAttribute).then((function(t){e.geoObjectType.attributes.push(t),e.geoObjectTypeManagementService.setModalState({state:a.GeoObjectTypeModalStates.manageGeoObjectType,attribute:"",termOption:""}),e.geoObjectTypeChange.emit(e.geoObjectType)})).catch((function(t){e.error(t)}))},e.prototype.setAttribute=function(e){this.newAttribute="term"===e?new o.AttributeTermType("",e,this.localizeService.create(),this.localizeService.create(),!1,!1,!1,!0):"float"===e?new o.AttributeDecimalType("",e,this.localizeService.create(),this.localizeService.create(),!1,!1,!1,!0):new o.AttributeType("",e,this.localizeService.create(),this.localizeService.create(),!1,!1,!1,!0)},e.prototype.isFormValid=function(){var e=!1;return this.attributeInputComponent&&(e=this.attributeInputComponent.isValid()),!!e},e.prototype.cancel=function(){this.geoObjectTypeManagementService.setModalState({state:a.GeoObjectTypeModalStates.manageGeoObjectType,attribute:"",termOption:""})},e.prototype.error=function(e){this.message=i.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(s.ɵɵdirectiveInject(c.BsModalRef),s.ɵɵdirectiveInject(d.ModalStepIndicatorService),s.ɵɵdirectiveInject(p.GeoObjectTypeManagementService),s.ɵɵdirectiveInject(d.LocalizationService),s.ɵɵdirectiveInject(p.RegistryService))},e.ɵcmp=s.ɵɵdefineComponent({type:e,selectors:[["define-attribute-modal-content"]],viewQuery:function(e,t){if(1&e&&s.ɵɵviewQuery(l.AttributeInputComponent,1),2&e){var n;s.ɵɵqueryRefresh(n=s.ɵɵloadQuery())&&(t.attributeInputComponent=n.first)}},inputs:{geoObjectType:"geoObjectType"},outputs:{geoObjectTypeChange:"geoObjectTypeChange"},decls:33,vars:24,consts:[[1,"modal-body"],[1,"modal-form",3,"ngSubmit"],["form","ngForm"],[1,""],["class","alert alert-danger","role","alert",4,"ngIf"],[1,"heading"],["key","hierarchy.management.define.attribute.title"],[1,"row"],[1,"col-md-12",2,"margin-bottom","20px"],[1,"btn-group","define-attribute-btns"],[1,"btn","full-width-radio-button",3,"ngClass","click"],["key","data.type.label.text"],["key","data.type.label.integer"],["key","data.type.label.float"],["key","data.type.label.date"],["key","data.type.label.boolean"],["key","data.type.label.term"],[3,"disableCodeField","excludeDescription","isDecimal","attribute","attributeChange"],[1,"col-md-12"],[1,"button-holder"],["type","button",1,"btn","btn-default",3,"click"],["key","modal.button.cancel"],["type","submit",1,"btn","btn-primary",3,"disabled"],["key","modal.button.submit"],["role","alert",1,"alert","alert-danger"]],template:function(e,t){1&e&&(s.ɵɵelementStart(0,"div",0),s.ɵɵelementStart(1,"form",1,2),s.ɵɵlistener("ngSubmit",(function(){return t.handleOnSubmit()})),s.ɵɵelementStart(3,"div",3),s.ɵɵelementStart(4,"div",3),s.ɵɵtemplate(5,f,2,1,"div",4),s.ɵɵelementStart(6,"div",5),s.ɵɵelementStart(7,"h1"),s.ɵɵelement(8,"localize",6),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(9,"div",7),s.ɵɵelementStart(10,"div",8),s.ɵɵelementStart(11,"div",9),s.ɵɵelementStart(12,"label",10),s.ɵɵlistener("click",(function(){return t.setAttribute("character")})),s.ɵɵelement(13,"localize",11),s.ɵɵelementEnd(),s.ɵɵelementStart(14,"label",10),s.ɵɵlistener("click",(function(){return t.setAttribute("integer")})),s.ɵɵelement(15,"localize",12),s.ɵɵelementEnd(),s.ɵɵelementStart(16,"label",10),s.ɵɵlistener("click",(function(){return t.setAttribute("float")})),s.ɵɵelement(17,"localize",13),s.ɵɵelementEnd(),s.ɵɵelementStart(18,"label",10),s.ɵɵlistener("click",(function(){return t.setAttribute("date")})),s.ɵɵelement(19,"localize",14),s.ɵɵelementEnd(),s.ɵɵelementStart(20,"label",10),s.ɵɵlistener("click",(function(){return t.setAttribute("boolean")})),s.ɵɵelement(21,"localize",15),s.ɵɵelementEnd(),s.ɵɵelementStart(22,"label",10),s.ɵɵlistener("click",(function(){return t.setAttribute("term")})),s.ɵɵelement(23,"localize",16),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(24,"fieldset"),s.ɵɵelementStart(25,"attribute-input",17),s.ɵɵlistener("attributeChange",(function(e){return t.newAttribute=e})),s.ɵɵelementEnd(),s.ɵɵelementStart(26,"div",7),s.ɵɵelementStart(27,"div",18),s.ɵɵelementStart(28,"div",19),s.ɵɵelementStart(29,"button",20),s.ɵɵlistener("click",(function(){return t.cancel()})),s.ɵɵelement(30,"localize",21),s.ɵɵelementEnd(),s.ɵɵelementStart(31,"button",22),s.ɵɵelement(32,"localize",23),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd()),2&e&&(s.ɵɵadvance(5),s.ɵɵproperty("ngIf",null!=t.message),s.ɵɵadvance(7),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(12,y,"character"===t.newAttribute.type)),s.ɵɵadvance(2),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(14,y,"integer"===t.newAttribute.type)),s.ɵɵadvance(2),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(16,y,"float"===t.newAttribute.type)),s.ɵɵadvance(2),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(18,y,"date"===t.newAttribute.type)),s.ɵɵadvance(2),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(20,y,"boolean"===t.newAttribute.type)),s.ɵɵadvance(2),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(22,y,"term"===t.newAttribute.type)),s.ɵɵadvance(3),s.ɵɵproperty("disableCodeField",!1)("excludeDescription",!1)("isDecimal","float"===t.newAttribute.type)("attribute",t.newAttribute),s.ɵɵadvance(6),s.ɵɵproperty("disabled",!t.isFormValid()))},directives:[m.ɵangular_packages_forms_forms_ba,m.NgControlStatusGroup,m.NgForm,u.NgIf,g.LocalizeComponent,u.NgClass,h.AttributeInputComponent],styles:[".btn-group.define-attribute-btns[_ngcontent-%COMP%] {\n \n margin: 0 auto;\n display: block;\n \n}"]}),e}();t.DefineAttributeModalContentComponent=v,("undefined"==typeof ngDevMode||ngDevMode)&&s.ɵsetClassMetadata(v,[{type:r.Component,args:[{selector:"define-attribute-modal-content",templateUrl:"./define-attribute-modal-content.component.html",styleUrls:["./define-attribute-modal-content.css"]}]}],(function(){return[{type:c.BsModalRef},{type:d.ModalStepIndicatorService},{type:p.GeoObjectTypeManagementService},{type:d.LocalizationService},{type:p.RegistryService}]}),{geoObjectType:[{type:r.Input}],geoObjectTypeChange:[{type:r.Output}],attributeInputComponent:[{type:r.ViewChild,args:[l.AttributeInputComponent]}]})},575:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GeoObjectAttributeCodeValidator=void 0;var r=n(0),i=n(22),o=n(0);var a=function(){function e(){this.validator=function(e){if(e.value)return-1===e.value.indexOf(" ")?null:{geoObjectAttributeCode:{valid:!1}}}}return e.prototype.validate=function(e){return this.validator(e)},e.ɵfac=function(t){return new(t||e)},e.ɵdir=o.ɵɵdefineDirective({type:e,selectors:[["","geoObjectAttributeCode","","ngModel",""]],features:[o.ɵɵProvidersFeature([{provide:i.NG_VALIDATORS,useExisting:e,multi:!0}])]}),e}();t.GeoObjectAttributeCodeValidator=a,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(a,[{type:r.Directive,args:[{selector:"[geoObjectAttributeCode][ngModel]",providers:[{provide:i.NG_VALIDATORS,useExisting:a,multi:!0}]}]}],(function(){return[]}),null)},576:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EditAttributeModalContentComponent=void 0;var r=n(0),i=n(7),o=(n(30),n(203),n(258)),a=n(111),l=(n(16),n(519),n(530)),s=n(0),c=n(30),d=n(16),p=n(519),m=n(22),u=n(1),g=n(68),h=n(530),f=n(577);function y(e,t){if(1&e&&(s.ɵɵelementStart(0,"div",17),s.ɵɵtext(1),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext();s.ɵɵadvance(1),s.ɵɵtextInterpolate(n.message)}}function v(e,t){1&e&&(s.ɵɵelementStart(0,"h4",18),s.ɵɵelement(1,"localize",19),s.ɵɵtext(2,": "),s.ɵɵelement(3,"localize",20),s.ɵɵelementEnd())}function b(e,t){1&e&&(s.ɵɵelementStart(0,"h4",18),s.ɵɵelement(1,"localize",19),s.ɵɵtext(2,": "),s.ɵɵelement(3,"localize",21),s.ɵɵelementEnd())}function S(e,t){1&e&&(s.ɵɵelementStart(0,"h4",18),s.ɵɵelement(1,"localize",19),s.ɵɵtext(2,": "),s.ɵɵelement(3,"localize",22),s.ɵɵelementEnd())}function C(e,t){1&e&&(s.ɵɵelementStart(0,"h4",18),s.ɵɵelement(1,"localize",19),s.ɵɵtext(2,": "),s.ɵɵelement(3,"localize",23),s.ɵɵelementEnd())}function E(e,t){1&e&&(s.ɵɵelementStart(0,"h4",18),s.ɵɵelement(1,"localize",19),s.ɵɵtext(2,": "),s.ɵɵelement(3,"localize",24),s.ɵɵelementEnd())}function x(e,t){1&e&&(s.ɵɵelementStart(0,"h4",18),s.ɵɵelement(1,"localize",19),s.ɵɵtext(2,": "),s.ɵɵelement(3,"localize",25),s.ɵɵelementEnd())}function O(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"term-option-widget",26),s.ɵɵlistener("attributeChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext().attribute=e})),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext();s.ɵɵproperty("attribute",r.attribute)("geoObjectType",r.geoObjectType)}}var I=function(){function e(e,t,n,i,a){this.bsModalRef=e,this.modalStepIndicatorService=t,this.geoObjectTypeManagementService=n,this.localizeService=i,this.registryService=a,this.attribute=null,this.geoObjectTypeChange=new r.EventEmitter,this.message=null,this.modalState={state:o.GeoObjectTypeModalStates.editAttribute,attribute:this.attribute,termOption:""},this.modalStepConfig={steps:[{label:this.localizeService.decode("modal.step.indicator.manage.geoobjecttype"),active:!0,enabled:!1},{label:this.localizeService.decode("modal.step.indicator.manage.attributes"),active:!0,enabled:!1},{label:this.localizeService.decode("modal.step.indicator.edit.attribute"),active:!0,enabled:!0}]}}return e.prototype.ngOnInit=function(){this.modalStepIndicatorService.setStepConfig(this.modalStepConfig)},e.prototype.ngAfterViewInit=function(){},e.prototype.ngOnDestroy=function(){},e.prototype.handleOnSubmit=function(){var e=this;this.registryService.updateAttributeType(this.geoObjectType.code,this.attribute).then((function(t){for(var n=0;n *",[i.style({opacity:0}),i.animate("500ms")])])]]}}),e}();t.EditAttributeModalContentComponent=I,("undefined"==typeof ngDevMode||ngDevMode)&&s.ɵsetClassMetadata(I,[{type:r.Component,args:[{selector:"edit-attribute-modal-content",templateUrl:"./edit-attribute-modal-content.component.html",styleUrls:["./edit-attribute-modal-content.css"],animations:[[i.trigger("fadeInOut",[i.transition("void => *",[i.style({opacity:0}),i.animate("500ms")])])]]}]}],(function(){return[{type:c.BsModalRef},{type:d.ModalStepIndicatorService},{type:p.GeoObjectTypeManagementService},{type:d.LocalizationService},{type:p.RegistryService}]}),{geoObjectType:[{type:r.Input}],attribute:[{type:r.Input}],geoObjectTypeChange:[{type:r.Output}],attributeInputComponent:[{type:r.ViewChild,args:[l.AttributeInputComponent]}]})},577:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TermOptionWidgetComponent=void 0;var r=n(0),i=n(7),o=(n(30),n(203),n(258)),a=(n(529),n(0)),l=n(30),s=n(529),c=n(68),d=n(1);function p(e,t){if(1&e&&(a.ɵɵelementStart(0,"li",10),a.ɵɵtext(1),a.ɵɵelementEnd()),2&e){var n=t.$implicit;a.ɵɵadvance(1),a.ɵɵtextInterpolate(n.label.localizedValue)}}var m=function(){function e(e,t,n){this.bsModalRef=e,this.cdr=t,this.geoObjectTypeManagementService=n,this.attribute=null,this.attributeChange=new r.EventEmitter,this.message=null,this.state="none",this.modalState={state:o.GeoObjectTypeModalStates.manageTermOption,attribute:this.attribute,termOption:""}}return e.prototype.ngOnInit=function(){},e.prototype.ngAfterViewInit=function(){this.state="show",this.cdr.detectChanges()},e.prototype.ngOnDestroy=function(){},e.prototype.handleOnSubmit=function(){},e.prototype.animate=function(){this.state="none"},e.prototype.onAnimationDone=function(e){this.state="show"},e.prototype.openAddTermOptionForm=function(){this.geoObjectTypeManagementService.setModalState({state:o.GeoObjectTypeModalStates.manageTermOption,attribute:this.attribute,termOption:""})},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(l.BsModalRef),a.ɵɵdirectiveInject(a.ChangeDetectorRef),a.ɵɵdirectiveInject(s.GeoObjectTypeManagementService))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["term-option-widget"]],inputs:{geoObjectType:"geoObjectType",attribute:"attribute"},outputs:{attributeChange:"attributeChange"},decls:12,vars:2,consts:[[1,"row-holder"],[1,"label-holder"],["key","hierarchy.management.manage.attributes.label.displayTerms"],[1,"holder"],[1,"panel","panel-default"],[1,"panel-body"],[1,"list-group","list-group-flush"],["class","list-group-item",4,"ngFor","ngForOf"],["type","button",1,"btn","btn-primary","full-width",3,"click"],["key","modal.button.manageTermOptions"],[1,"list-group-item"]],template:function(e,t){1&e&&(a.ɵɵelementStart(0,"div",0),a.ɵɵlistener("@toggleInputs.done",(function(e){return t.onAnimationDone(e)})),a.ɵɵelementStart(1,"div"),a.ɵɵelementStart(2,"div",1),a.ɵɵelementStart(3,"label"),a.ɵɵelement(4,"localize",2),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(5,"div",3),a.ɵɵelementStart(6,"div",4),a.ɵɵelementStart(7,"div",5),a.ɵɵelementStart(8,"ul",6),a.ɵɵtemplate(9,p,2,1,"li",7),a.ɵɵelementEnd(),a.ɵɵelementStart(10,"button",8),a.ɵɵlistener("click",(function(){return t.openAddTermOptionForm()})),a.ɵɵelement(11,"localize",9),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e&&(a.ɵɵproperty("@toggleInputs",t.state),a.ɵɵadvance(9),a.ɵɵproperty("ngForOf",t.attribute.rootTerm.children))},directives:[c.LocalizeComponent,d.NgForOf],styles:['input[type="text"][_ngcontent-%COMP%] {\n margin: 2px 0 2px 0 !important;\n float: none !important;\n}\n\nbutton[_ngcontent-%COMP%] {\n margin-top: 5px;\n float: right;\n}\n\n\n\n.btn.btn-primary.full-width[_ngcontent-%COMP%] {\n margin: 0 auto;\n display: block;\n width: 100%;\n}\n\nlabel[_ngcontent-%COMP%] {\n color: #999;\n font-weight: bold;\n}\n\n\nli.list-group-item[_ngcontent-%COMP%] {\n font-size: inherit;\n color: grey;\n}\nli.list-group-item[_ngcontent-%COMP%]:hover {\n cursor: default;\n background: white;\n}'],data:{animation:[i.trigger("toggleInputs",[i.state("none, void",i.style({opacity:0})),i.state("show",i.style({opacity:1})),i.transition("none => show",i.animate("300ms")),i.transition("show => none",i.animate("100ms"))]),i.trigger("openClose",[i.transition(":enter",[i.style({opacity:0}),i.animate("500ms",i.style({opacity:1}))]),i.transition(":leave",[i.style({opacity:1}),i.animate("0ms",i.style({opacity:0}))])])]}}),e}();t.TermOptionWidgetComponent=m,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(m,[{type:r.Component,args:[{selector:"term-option-widget",templateUrl:"./term-option-widget.component.html",styleUrls:["./term-option-widget.css"],animations:[i.trigger("toggleInputs",[i.state("none, void",i.style({opacity:0})),i.state("show",i.style({opacity:1})),i.transition("none => show",i.animate("300ms")),i.transition("show => none",i.animate("100ms"))]),i.trigger("openClose",[i.transition(":enter",[i.style({opacity:0}),i.animate("500ms",i.style({opacity:1}))]),i.transition(":leave",[i.style({opacity:1}),i.animate("0ms",i.style({opacity:0}))])])]}]}],(function(){return[{type:l.BsModalRef},{type:a.ChangeDetectorRef},{type:s.GeoObjectTypeManagementService}]}),{geoObjectType:[{type:r.Input}],attribute:[{type:r.Input}],attributeChange:[{type:r.Output}]})},578:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ManageTermOptionsComponent=void 0;var r=n(0),i=n(7),o=(n(30),n(261)),a=n(111),l=(n(16),n(519),n(203)),s=n(258),c=n(0),d=n(30),p=n(519),m=n(16),u=n(22),g=n(1),h=n(68),f=n(259),y=n(33);function v(e,t){if(1&e&&(c.ɵɵelementStart(0,"div",24),c.ɵɵtext(1),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext();c.ɵɵadvance(1),c.ɵɵtextInterpolate(n.message)}}function b(e,t){if(1&e&&(c.ɵɵelementStart(0,"th"),c.ɵɵelement(1,"localize",25),c.ɵɵtext(2," ("),c.ɵɵelement(3,"convert-key-label",26),c.ɵɵtext(4,") "),c.ɵɵelementEnd()),2&e){var n=t.$implicit;c.ɵɵadvance(3),c.ɵɵproperty("key",n.locale)}}function S(e,t){if(1&e&&(c.ɵɵelementStart(0,"td"),c.ɵɵtext(1),c.ɵɵelementEnd()),2&e){var n=t.$implicit;c.ɵɵadvance(1),c.ɵɵtextInterpolate(n.value)}}function C(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"tr"),c.ɵɵelementStart(1,"td"),c.ɵɵtext(2),c.ɵɵelementEnd(),c.ɵɵtemplate(3,S,2,1,"td",14),c.ɵɵelementStart(4,"td",18),c.ɵɵelementStart(5,"a",27),c.ɵɵlistener("click",(function(){c.ɵɵrestoreView(n);var e=t.$implicit;return c.ɵɵnextContext().editTermOption(e)})),c.ɵɵelementEnd(),c.ɵɵelementStart(6,"a",28),c.ɵɵlistener("click",(function(){c.ɵɵrestoreView(n);var e=t.$implicit;return c.ɵɵnextContext().removeTermOption(e)})),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd()}if(2&e){var r=t.$implicit;c.ɵɵadvance(2),c.ɵɵtextInterpolate(r.code),c.ɵɵadvance(1),c.ɵɵproperty("ngForOf",r.label.localeValues)}}function E(e,t){if(1&e&&(c.ɵɵelementStart(0,"td"),c.ɵɵelementStart(1,"input",29),c.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.value=e})),c.ɵɵelementEnd(),c.ɵɵelementEnd()),2&e){var n=t.$implicit,r=c.ɵɵnextContext();c.ɵɵadvance(1),c.ɵɵproperty("ngModel",n.value)("name","termOptionLabel-"+n.locale)("required",!!r.termOption.code||null)}}var x=function(){function e(e,t,n,i,o,a,l){this.bsModalRef=e,this.cdr=t,this.geoObjectTypeManagementService=n,this.modalService=i,this.localizeService=o,this.modalStepIndicatorService=a,this.registryService=l,this.attributeChange=new r.EventEmitter,this.message=null,this.state="none",this.enableTermOptionForm=!1,this.modalStepConfig={steps:[{label:this.localizeService.decode("modal.step.indicator.manage.geoobjecttype"),active:!0,enabled:!1},{label:this.localizeService.decode("modal.step.indicator.manage.attributes"),active:!0,enabled:!1},{label:this.localizeService.decode("modal.step.indicator.edit.attribute"),active:!0,enabled:!1},{label:this.localizeService.decode("modal.step.indicator.manage.term.options"),active:!0,enabled:!0}]}}return e.prototype.ngOnInit=function(){this.modalStepIndicatorService.setStepConfig(this.modalStepConfig),this.termOption=new l.Term("",this.localizeService.create(),this.localizeService.create())},e.prototype.ngAfterViewInit=function(){this.state="show",this.cdr.detectChanges()},e.prototype.ngOnDestroy=function(){},e.prototype.handleOnSubmit=function(){},e.prototype.animate=function(){this.state="none"},e.prototype.onAnimationDone=function(e){this.state="show"},e.prototype.isValid=function(){if(this.termOption.code&&this.termOption.code.length>0){if(-1!==this.termOption.code.indexOf(" "))return!1;for(var e=0;e show",i.animate("300ms")),i.transition("show => none",i.animate("100ms"))]),i.trigger("openClose",[i.transition(":enter",[i.style({opacity:0}),i.animate("500ms",i.style({opacity:1}))]),i.transition(":leave",[i.style({opacity:1}),i.animate("0ms",i.style({opacity:0}))])])]}}),e}();t.ManageTermOptionsComponent=x,("undefined"==typeof ngDevMode||ngDevMode)&&c.ɵsetClassMetadata(x,[{type:r.Component,args:[{selector:"manage-term-options",templateUrl:"./manage-term-options.component.html",styleUrls:["./manage-term-options.css"],animations:[i.trigger("toggleInputs",[i.state("none, void",i.style({opacity:0})),i.state("show",i.style({opacity:1})),i.transition("none => show",i.animate("300ms")),i.transition("show => none",i.animate("100ms"))]),i.trigger("openClose",[i.transition(":enter",[i.style({opacity:0}),i.animate("500ms",i.style({opacity:1}))]),i.transition(":leave",[i.style({opacity:1}),i.animate("0ms",i.style({opacity:0}))])])]}]}],(function(){return[{type:d.BsModalRef},{type:c.ChangeDetectorRef},{type:p.GeoObjectTypeManagementService},{type:d.BsModalService},{type:m.LocalizationService},{type:m.ModalStepIndicatorService},{type:p.RegistryService}]}),{geoObjectType:[{type:r.Input}],attribute:[{type:r.Input}],attributeChange:[{type:r.Output}]})},579:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EditTermOptionInputComponent=void 0;var r=n(0),i=n(7),o=(n(30),n(16),n(111)),a=(n(203),n(258)),l=(n(519),n(0)),s=n(30),c=n(16),d=n(519),p=n(1),m=n(22),u=n(68),g=n(533);function h(e,t){if(1&e&&(l.ɵɵelementStart(0,"div",19),l.ɵɵtext(1),l.ɵɵelementEnd()),2&e){var n=l.ɵɵnextContext();l.ɵɵadvance(1),l.ɵɵtextInterpolate(n.message)}}var f=function(){function e(e,t,n,r,i){this.bsModalRef=e,this.modalStepIndicatorService=t,this.geoObjectTypeManagementService=n,this.localizeService=r,this.registryService=i,this.attribute=null,this.message=null,this.modalState={state:a.GeoObjectTypeModalStates.editAttribute,attribute:this.attribute,termOption:""},this.modalStepConfig={steps:[{label:this.localizeService.decode("modal.step.indicator.manage.geoobjecttype"),active:!0,enabled:!1},{label:this.localizeService.decode("modal.step.indicator.manage.attributes"),active:!0,enabled:!1},{label:this.localizeService.decode("modal.step.indicator.edit.attribute"),active:!0,enabled:!1},{label:this.localizeService.decode("modal.step.indicator.manage.term.options"),active:!0,enabled:!1},{label:this.localizeService.decode("modal.step.indicator.edit.term.option"),active:!0,enabled:!0}]}}return e.prototype.ngOnInit=function(){this.modalStepIndicatorService.setStepConfig(this.modalStepConfig)},e.prototype.ngAfterViewInit=function(){},e.prototype.ngOnDestroy=function(){},e.prototype.handleOnSubmit=function(){var e=this;this.registryService.updateAttributeTermTypeOption(this.attribute.rootTerm.code,this.termOption).then((function(t){var n=e.attribute.rootTerm.children.findIndex((function(e){return e.code===t.code}));-1!==n&&(e.attribute.rootTerm.children[n]=t),e.geoObjectTypeManagementService.setModalState({state:a.GeoObjectTypeModalStates.manageGeoObjectType,attribute:e.attribute,termOption:null})})).catch((function(t){e.error(t)}))},e.prototype.isFormValid=function(){return!0},e.prototype.cancel=function(){this.geoObjectTypeManagementService.setModalState({state:a.GeoObjectTypeModalStates.manageTermOption,attribute:this.attribute,termOption:null})},e.prototype.error=function(e){this.message=o.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(l.ɵɵdirectiveInject(s.BsModalRef),l.ɵɵdirectiveInject(c.ModalStepIndicatorService),l.ɵɵdirectiveInject(d.GeoObjectTypeManagementService),l.ɵɵdirectiveInject(c.LocalizationService),l.ɵɵdirectiveInject(d.RegistryService))},e.ɵcmp=l.ɵɵdefineComponent({type:e,selectors:[["edit-term-option-input"]],inputs:{geoObjectType:"geoObjectType",attribute:"attribute",termOption:"termOption"},decls:26,vars:5,consts:[[1,"modal-body"],["class","alert alert-danger","role","alert",4,"ngIf"],[1,"modal-form",3,"ngSubmit"],["tForm","ngForm"],[1,""],[1,"heading"],["key","hierarchy.management.edit.term.option.title"],[1,"row-holder"],[1,"label-holder"],["key","data.property.label.code"],[1,"holder"],[1,"text"],["type","text","name","code",3,"disabled","ngModel","ngModelChange"],["key","data.property.label.label",3,"value","valueChange"],[1,"button-holder"],["type","button",1,"btn","btn-default",3,"click"],["key","modal.button.cancel"],["type","submit",1,"btn","btn-primary",3,"disabled"],["key","modal.button.submit"],["role","alert",1,"alert","alert-danger"]],template:function(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"div",0),l.ɵɵtemplate(1,h,2,1,"div",1),l.ɵɵelementStart(2,"form",2,3),l.ɵɵlistener("ngSubmit",(function(){return l.ɵɵrestoreView(n),!l.ɵɵreference(3).invalid&&t.handleOnSubmit()})),l.ɵɵelementStart(4,"div",4),l.ɵɵelementStart(5,"div",4),l.ɵɵelementStart(6,"div",5),l.ɵɵelementStart(7,"h1"),l.ɵɵelement(8,"localize",6),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(9,"fieldset"),l.ɵɵelementStart(10,"div",7),l.ɵɵelementStart(11,"div",8),l.ɵɵelementStart(12,"label"),l.ɵɵelement(13,"localize",9),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(14,"div",10),l.ɵɵelementStart(15,"span",11),l.ɵɵelementStart(16,"input",12),l.ɵɵlistener("ngModelChange",(function(e){return t.termOption.code=e})),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(17,"localized-input",13),l.ɵɵlistener("valueChange",(function(e){return t.termOption.label=e})),l.ɵɵelementEnd(),l.ɵɵelementStart(18,"div",7),l.ɵɵelement(19,"div",8),l.ɵɵelementStart(20,"div",10),l.ɵɵelementStart(21,"div",14),l.ɵɵelementStart(22,"button",15),l.ɵɵlistener("click",(function(){return t.cancel()})),l.ɵɵelement(23,"localize",16),l.ɵɵelementEnd(),l.ɵɵelementStart(24,"button",17),l.ɵɵelement(25,"localize",18),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd()}if(2&e){var r=l.ɵɵreference(3);l.ɵɵadvance(1),l.ɵɵproperty("ngIf",null!=t.message),l.ɵɵadvance(15),l.ɵɵproperty("disabled",!0)("ngModel",t.termOption.code),l.ɵɵadvance(1),l.ɵɵproperty("value",t.termOption.label),l.ɵɵadvance(7),l.ɵɵproperty("disabled",r.invalid)}},directives:[p.NgIf,m.ɵangular_packages_forms_forms_ba,m.NgControlStatusGroup,m.NgForm,u.LocalizeComponent,m.DefaultValueAccessor,m.NgControlStatus,m.NgModel,g.LocalizedInputComponent],encapsulation:2,data:{animation:[i.trigger("openClose",[i.transition(":enter",[i.style({opacity:0}),i.animate("500ms",i.style({opacity:1}))]),i.transition(":leave",[i.style({opacity:1}),i.animate("0ms",i.style({opacity:0}))])])]}}),e}();t.EditTermOptionInputComponent=f,("undefined"==typeof ngDevMode||ngDevMode)&&l.ɵsetClassMetadata(f,[{type:r.Component,args:[{selector:"edit-term-option-input",templateUrl:"./edit-term-option-input.component.html",styleUrls:[],animations:[i.trigger("openClose",[i.transition(":enter",[i.style({opacity:0}),i.animate("500ms",i.style({opacity:1}))]),i.transition(":leave",[i.style({opacity:1}),i.animate("0ms",i.style({opacity:0}))])])]}]}],(function(){return[{type:s.BsModalRef},{type:c.ModalStepIndicatorService},{type:d.GeoObjectTypeManagementService},{type:c.LocalizationService},{type:d.RegistryService}]}),{geoObjectType:[{type:r.Input}],attribute:[{type:r.Input}],termOption:[{type:r.Input}]})},580:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SvgHierarchyType=void 0;var r=n(378),i=n(625),o=n(550),a=n(534),l=function(){function e(t,n,i,o,l,s,c){this.localizationService=l,this.modalService=s,this.authService=c;var d=i;this.hierarchyComponent=t,this.hierarchyType=d,this.svgEl=n,this.d3Hierarchy=r.hierarchy(d.rootGeoObjectTypes[0]),this.isPrimary=o,this.d3Tree=r.tree().nodeSize([e.gotRectW*a.TREE_SCALE_FACTOR_X,(e.gotRectH+e.gotHeaderH)*a.TREE_SCALE_FACTOR_Y]).separation((function(e,t){return.8}))(this.d3Hierarchy)}return e.prototype.getD3Tree=function(){return this.d3Tree},e.prototype.getCode=function(){return this.hierarchyType.code},e.prototype.getNodeByCode=function(e){var t=this.getD3Tree().find((function(t){return t.data.geoObjectType===e}));return null==t?null:new i.SvgHierarchyNode(this.hierarchyComponent,this,this.hierarchyComponent.findGeoObjectTypeByCode(e),t,this.localizationService,this.modalService,this.authService)},e.prototype.renderHierarchyHeader=function(t,n){var r=this,i=t.node().getBBox(),a=t.append("g").classed("g-hierarchy-header",!0),l=t.append("g").classed("g-hierarchy-header",!0),s=o.calculateTextWidth(this.hierarchyType.label.localizedValue,10),c=20,d=i.y+16;s>200&&(s=200,c=30,d=i.y+10);var p=i.width,m=s+20;m>p&&(p=m),l.append("text").classed("hierarchy-header-icon",!0).attr("x",i.x).attr("y",i.y).style("font-family","FontAwesome").attr("fill","grey").attr("font-size",12).text(""),a.append("foreignObject").classed("hierarchy-header-label",!0).attr("font-size",10).attr("stroke-linejoin","round").attr("stroke-width",3).attr("x",i.x+20).attr("y",d).attr("width",s).attr("height",c).append("xhtml:p").attr("xmlns","http://www.w3.org/1999/xhtml").attr("text-anchor","start").attr("text-align","left").style("vertical-align","middle").style("display","table-cell").style("color","gray").style("height",e.gotRectH-4+"px").html((function(e){return r.hierarchyType.label.localizedValue})),l.append("line").classed("hierarchy-header-line",!0).attr("x1",i.x).attr("y1",i.y+10).attr("x2",i.x+p).attr("y2",i.y+10).attr("stroke","grey").attr("stroke-width",.5);var u=l.node().getBBox();return l.attr("transform","translate(0 -"+u.height+")"),a.append("text").classed("hierarchy-header-label",!0).attr("font-size",12).attr("font-weight","bold").attr("stroke-linejoin","round").attr("stroke-width",3).attr("fill","grey").attr("x",i.x).attr("y",i.y).text(n),a.attr("transform","translate(0 -"+2.5*u.height+")"),l},e.prototype.getRelatedHierarchies=function(e){var t=this.hierarchyComponent.findGeoObjectTypeByCode(e);null==t.relatedHierarchies&&(t.relatedHierarchies=this.hierarchyComponent.calculateRelatedHierarchies(t));for(var n=t.relatedHierarchies,r=null,i=0;idocument.documentElement.scrollHeight&&(o.y=e.pageY-i.height-50),e.pageX+i.width+0>document.documentElement.scrollWidth&&(o.x=e.pageX-i.width-0),r.select("#NodeTooltip").style("left",o.x+"px").style("top",o.y+"px")},e.prototype.nodeMouseleave=function(e,t,n){r.select("#NodeTooltip").style("opacity",0).style("left","-10000px").style("top","-10000px")},e.prototype.render=function(){var t=this,n=this,i=this.d3Tree.descendants();r.select('.g-hierarchy[data-primary="false"]').remove(),this.isPrimary&&r.select('.g-hierarchy[data-primary="true"]').remove();var l=this.svgEl.insert("g",".g-hierarchy").classed("g-hierarchy",!0).attr("data-code",this.hierarchyType.code).attr("data-primary",this.isPrimary);l.attr("font-family","sans-serif");var s=l.append("g").classed("g-hierarchy-tree",!0).attr("data-code",this.hierarchyType.code);s.append("g").classed("g-got-edge",!0).attr("fill","none").attr("stroke","#555").attr("stroke-opacity",.4).attr("stroke-width",1.5).selectAll("path").data(this.d3Tree.links()).join("path").attr("d",(function(e,t){return"M"+e.source.x+","+e.source.y+"V"+(e.source.y+e.target.y)/2+"H"+e.target.x+"V"+e.target.y}));var c=s.append("g").classed("g-got-header",!0);c.selectAll("rect").data(i).join("rect").filter((function(e){return"GhostNode"!==e.data.geoObjectType})).classed("svg-got-header-rect",!0).attr("x",(function(t){return t.x-e.gotRectW/2})).attr("y",(function(t){return t.y-e.gotRectH/2-e.gotHeaderH+4})).attr("fill",(function(e){return t.isPrimary?null!=e.data.inheritedHierarchyCode?a.INHERITED_NODE_BANNER_COLOR:a.DEFAULT_NODE_BANNER_COLOR:a.RELATED_NODE_BANNER_COLOR})).attr("width",e.gotHeaderW).attr("height",e.gotHeaderH).attr("cursor",(function(e){return t.isPrimary?null!=e.data.inheritedHierarchyCode?null:"grab":null})).attr("rx",3).attr("data-gotCode",(function(e){return e.data.geoObjectType})).attr("data-inherited",(function(e){return null!=e.data.inheritedHierarchyCode})).on(e.MOUSE_HOVER_EVENT_ENTER,(function(e,t){n.nodeMouseover(e,this,t)})).on(e.MOUSE_HOVER_EVENT_MOVE,(function(e,t){n.nodeMousemove(e,this,t)})).on(e.MOUSE_HOVER_EVENT_EXIT,(function(e,t){n.nodeMouseleave(e,this,t)})),c.selectAll("foreignObject").data(i).join("foreignObject").filter((function(e){return"GhostNode"!==e.data.geoObjectType})).classed("svg-got-header-rect",!0).attr("x",(function(t){return t.x-e.gotHeaderW/2})).attr("y",(function(t){return t.y-e.gotRectH/2-e.gotHeaderH+4})).attr("font-size",e.gotHeaderFontSize+"px").attr("cursor",(function(e){return t.isPrimary?null!=e.data.inheritedHierarchyCode?null:"grab":null})).attr("data-gotCode",(function(e){return e.data.geoObjectType})).attr("data-inherited",(function(e){return null!=e.data.inheritedHierarchyCode})).attr("font-family","sans-serif").attr("font-weight","bold").attr("font-size",e.gotHeaderFontSize).attr("stroke-linejoin","round").attr("stroke-width",3).attr("width",e.gotHeaderW).attr("height",e.gotHeaderH-4).append("xhtml:p").attr("xmlns","http://www.w3.org/1999/xhtml").attr("fill","white").attr("height",e.gotHeaderH-4).style("text-align","center").style("vertical-align","middle").style("display","table-cell").style("color","white").style("height",e.gotHeaderH-4+"px").style("width",e.gotHeaderW+"px").html((function(t){var r=null!=t.data.inheritedHierarchyCode?n.hierarchyComponent.findHierarchyByCode(t.data.inheritedHierarchyCode).label.localizedValue:n.hierarchyType.label.localizedValue;return!(o.calculateTextWidth(r,e.gotHeaderFontSize)>e.gotHeaderW-5)||(r=r.substring(0,34)+"..."),r})).on(e.MOUSE_HOVER_EVENT_ENTER,(function(e,t){n.nodeMouseover(e,this,t)})).on(e.MOUSE_HOVER_EVENT_MOVE,(function(e,t){n.nodeMousemove(e,this,t)})).on(e.MOUSE_HOVER_EVENT_EXIT,(function(e,t){n.nodeMouseleave(e,this,t)})),s.append("g").classed("g-got",!0).selectAll("rect").data(i).join("rect").filter((function(e){return"GhostNode"!==e.data.geoObjectType})).classed("svg-got-body-rect",!0).attr("x",(function(t){return t.x-e.gotRectW/2})).attr("y",(function(t){return t.y-e.gotRectH/2})).attr("fill",(function(e){return null!=e.data.inheritedHierarchyCode?a.INHERITED_NODE_FILL:a.DEFAULT_NODE_FILL})).attr("width",e.gotRectW).attr("height",e.gotRectH).attr("rx",3).attr("cursor",(function(e){return t.isPrimary?null!=e.data.inheritedHierarchyCode?null:"grab":null})).attr("data-gotCode",(function(e){return e.data.geoObjectType})).attr("data-inherited",(function(e){return null!=e.data.inheritedHierarchyCode})).each((function(t){"GhostNode"!==t.data.geoObjectType&&(t.data.activeDropZones?t.data.dropZoneBbox={x:t.x-e.gotRectW/2,y:t.y-2*e.gotRectH,width:2*e.gotRectW+100,height:4*e.gotRectH}:t.data.dropZoneBbox={x:t.x-e.gotRectW/2,y:t.y-e.gotRectH/2,width:e.gotRectW,height:e.gotRectH})})).on(e.MOUSE_HOVER_EVENT_ENTER,(function(e,t){n.nodeMouseover(e,this,t)})).on(e.MOUSE_HOVER_EVENT_MOVE,(function(e,t){n.nodeMousemove(e,this,t)})).on(e.MOUSE_HOVER_EVENT_EXIT,(function(e,t){n.nodeMouseleave(e,this,t)}));var d=7,p=10,m=s.append("g").classed("g-got-connector-arrow",!0);m.selectAll("rect").data(this.d3Tree.links()).join("rect").classed("got-connector-arrow-rect",!0).attr("x",(function(e){return e.source.x-p/2})).attr("y",(function(t){return t.source.y+e.gotRectH/2-d/2})).attr("width",p).attr("height",d).attr("fill",(function(e){return t.isPrimary?null!=e.source.data.inheritedHierarchyCode?a.INHERITED_NODE_BANNER_COLOR:a.DEFAULT_NODE_BANNER_COLOR:a.RELATED_NODE_BANNER_COLOR})),m.selectAll("path").data(this.d3Tree.links()).join("path").classed("got-connector-arrow-path",!0).attr("fill","none").attr("stroke","white").attr("stroke-width",1.5).attr("d",(function(t){return"M"+(t.source.x-p/2+2*p/3)+","+(t.source.y+e.gotRectH/2-d/2+2*d/3)+"L"+t.source.x+","+(t.source.y+e.gotRectH/2-d/2+d/3)+"L"+(t.source.x-p/2+p/3)+","+(t.source.y+e.gotRectH/2+d/2-d/3)})),s.append("g").classed("g-sibling-ghost-backer",!0).selectAll("rect").data(i).join("rect").filter((function(e){return"GhostNode"===e.data.geoObjectType})).classed("svg-sibling-ghost-backer-dz",!0).attr("x",(function(t){return t.x-e.gotRectW/2})).attr("y",(function(t){return t.y-e.gotRectH/2})).attr("width",e.gotRectW).attr("height",e.gotRectH).attr("fill","white"),s.append("g").classed("g-sibling-ghost-body",!0).selectAll("rect").data(i).join("rect").filter((function(e){return"GhostNode"===e.data.geoObjectType})).classed("svg-sibling-ghost-body-dz",!0).attr("x",(function(t){return t.x-e.gotRectW/2})).attr("y",(function(t){return t.y-e.gotRectH/2})).attr("width",e.gotRectW).attr("height",e.gotRectH).attr("fill","none").attr("stroke","#6BA542").attr("stroke-width","1").attr("stroke-dasharray","5,5").attr("data-gotCode",(function(e){return e.data.geoObjectType})),s.append("g").classed("g-got-codelabel",!0).attr("font-family","sans-serif").attr("font-size",e.gotBodyFontSize).attr("stroke-linejoin","round").attr("stroke-width",3).selectAll("foreignObject").data(i).join("foreignObject").classed("svg-got-label-text",!0).attr("x",(function(t){return t.x-e.gotRectW/2+5})).attr("y",(function(t){return t.y-e.gotRectH/2+2})).attr("width",e.gotRectW-32+5).attr("height",e.gotRectH-4).attr("cursor",(function(e){return t.isPrimary?null!=e.data.inheritedHierarchyCode?null:"grab":null})).attr("data-gotCode",(function(e){return e.data.geoObjectType})).attr("data-inherited",(function(e){return null!=e.data.inheritedHierarchyCode})).append("xhtml:p").attr("xmlns","http://www.w3.org/1999/xhtml").attr("text-anchor","start").attr("text-align","left").style("vertical-align","middle").style("display","table-cell").style("width",e.gotRectW-32+5+"px").style("height",e.gotRectH-4+"px").html((function(e){return e.data.label})).on(e.MOUSE_HOVER_EVENT_ENTER,(function(e,t){n.nodeMouseover(e,this,t)})).on(e.MOUSE_HOVER_EVENT_MOVE,(function(e,t){n.nodeMousemove(e,this,t)})).on(e.MOUSE_HOVER_EVENT_EXIT,(function(e,t){n.nodeMouseleave(e,this,t)})),this.isPrimary?(s.append("g").classed("g-got-relatedhiers-button",!0).selectAll("text").data(i).join("text").filter((function(e){return"GhostNode"!==e.data.geoObjectType&&null==e.data.inheritedHierarchyCode})).classed("svg-got-relatedhiers-button",!0).attr("data-gotCode",(function(e){return e.data.geoObjectType})).attr("x",(function(t){return t.x+e.gotRectW/2-e.gotOptionsButtonFontSize-3})).attr("y",(function(t){return t.y+.8*e.gotOptionsButtonFontSize-e.gotOptionsButtonFontSize/2})).style("font-family","FontAwesome").style("cursor","pointer").style("fill","#767676").style("font-size",e.gotOptionsButtonFontSize+"px").text("").on("click",(function(e,t){n.getNodeByCode(t.data.geoObjectType).renderRelatedHierarchiesMenu()})),this.renderHierarchyHeader(l,"Selected Hierarchy")):this.renderHierarchyHeader(l,"Related Hierarchy")},e.gotRectW=150,e.gotRectH=25,e.gotBodyFontSize=8,e.gotOptionsButtonFontSize=12,e.gotHeaderW=150,e.gotHeaderH=14,e.gotHeaderFontSize=8,e.MOUSE_HOVER_EVENT_ENTER="mouseenter",e.MOUSE_HOVER_EVENT_MOVE="mousemove",e.MOUSE_HOVER_EVENT_EXIT="mouseleave",e}();t.SvgHierarchyType=l},581:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ShapefileModalComponent=void 0;var r=n(0),i=(n(30),n(30),n(33),n(16),n(111)),o=(n(519),n(0)),a=n(519),l=n(30),s=n(16),c=n(33),d=n(1),p=n(551),m=n(552),u=n(553),g=n(554);function h(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",3),o.ɵɵtext(1),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext();o.ɵɵadvance(1),o.ɵɵtextInterpolate(n.message)}}function f(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div"),o.ɵɵelementStart(1,"attributes-page",4),o.ɵɵlistener("configurationChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).configuration=e}))("stateChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).onStateChange(e)})),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(2);o.ɵɵadvance(1),o.ɵɵproperty("configuration",r.configuration)}}function y(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div"),o.ɵɵelementStart(1,"location-page",4),o.ɵɵlistener("configurationChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).configuration=e}))("stateChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).onStateChange(e)})),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(2);o.ɵɵadvance(1),o.ɵɵproperty("configuration",r.configuration)}}function v(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div"),o.ɵɵelementStart(1,"location-problem-page",4),o.ɵɵlistener("configurationChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).configuration=e}))("stateChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).onStateChange(e)})),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(2);o.ɵɵadvance(1),o.ɵɵproperty("configuration",r.configuration)}}function b(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div"),o.ɵɵelementStart(1,"term-problem-page",4),o.ɵɵlistener("configurationChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).configuration=e}))("stateChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).onStateChange(e)})),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(2);o.ɵɵadvance(1),o.ɵɵproperty("configuration",r.configuration)}}function S(e,t){if(1&e&&(o.ɵɵelementStart(0,"div"),o.ɵɵtemplate(1,f,2,1,"div",2),o.ɵɵtemplate(2,y,2,1,"div",2),o.ɵɵtemplate(3,v,2,1,"div",2),o.ɵɵtemplate(4,b,2,1,"div",2),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext();o.ɵɵadvance(1),o.ɵɵproperty("ngIf","MAP"===n.state),o.ɵɵadvance(1),o.ɵɵproperty("ngIf","LOCATION"===n.state),o.ɵɵadvance(1),o.ɵɵproperty("ngIf","LOCATION-PROBLEM"===n.state),o.ɵɵadvance(1),o.ɵɵproperty("ngIf","TERM-PROBLEM"===n.state)}}var C=function(){function e(e,t,n,r,i){this.service=e,this.bsModalRef=t,this.modalService=n,this.localizeService=r,this.router=i,this.message=null,this.state="MAP"}return e.prototype.ngOnInit=function(){},e.prototype.onStateChange=function(e){"BACK"===e?this.handleBack():"NEXT"===e?this.handleNext():"CANCEL"===e&&this.handleCancel()},e.prototype.handleBack=function(){"LOCATION"===this.state&&(this.state="MAP")},e.prototype.handleNext=function(){"MAP"===this.state?this.configuration.postalCode?this.handleSubmit():this.state="LOCATION":"LOCATION"===this.state?this.handleSubmit():"LOCATION-PROBLEM"===this.state?null!=this.configuration.termProblems?this.state="TERM-PROBLEM":this.handleSubmit():"TERM-PROBLEM"===this.state&&this.handleSubmit()},e.prototype.handleSubmit=function(){var e=this;this.message=null,this.service.importShapefile(this.configuration).then((function(t){null!=t.locationProblems?(e.state="LOCATION-PROBLEM",e.configuration=t):null!=t.termProblems?(e.state="TERM-PROBLEM",e.configuration=t):(e.bsModalRef.hide(),e.bsModalRef=e.modalService.show(i.ConfirmModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0}),e.bsModalRef.content.message=e.localizeService.decode("data.import.go.to.scheduled.jobs.confirm.message"),e.bsModalRef.content.submitText=e.localizeService.decode("data.import.go.to.scheduled.jobs.button"),e.bsModalRef.content.cancelText=e.localizeService.decode("modal.button.close"),e.bsModalRef.content.onConfirm.subscribe((function(t){e.router.navigate(["/registry/scheduled-jobs"])})))})).catch((function(t){e.error(t)}))},e.prototype.handleCancel=function(){var e=this;this.message=null,this.service.cancelImport(this.configuration).then((function(t){e.bsModalRef.hide()})).catch((function(t){e.error(t)}))},e.prototype.error=function(e){this.message=i.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.IOService),o.ɵɵdirectiveInject(l.BsModalRef),o.ɵɵdirectiveInject(l.BsModalService),o.ɵɵdirectiveInject(s.LocalizationService),o.ɵɵdirectiveInject(c.Router))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["shapefile-modal"]],decls:3,vars:2,consts:[[1,"modal-body"],["class","alert alert-danger","role","alert",4,"ngIf"],[4,"ngIf"],["role","alert",1,"alert","alert-danger"],[3,"configuration","configurationChange","stateChange"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵtemplate(1,h,2,1,"div",1),o.ɵɵtemplate(2,S,5,4,"div",2),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(1),o.ɵɵproperty("ngIf",null!=t.message),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",null!=t.configuration&&t.configuration))},directives:[d.NgIf,p.AttributesPageComponent,m.LocationPageComponent,u.LocationProblemPageComponent,g.TermProblemPageComponent],encapsulation:2}),e}();t.ShapefileModalComponent=C,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(C,[{type:r.Component,args:[{selector:"shapefile-modal",templateUrl:"./shapefile-modal.component.html",styleUrls:[]}]}],(function(){return[{type:a.IOService},{type:l.BsModalRef},{type:l.BsModalService},{type:s.LocalizationService},{type:c.Router}]}),null)},582:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LocationProblemComponent=void 0;var r=n(0),i=n(31),o=(n(524),n(519),n(0)),a=n(519),l=n(22),s=n(1),c=n(154),d=n(68),p=n(113);function m(e,t){if(1&e&&(o.ɵɵelementStart(0,"li"),o.ɵɵtext(1),o.ɵɵelementEnd()),2&e){var n=t.$implicit;o.ɵɵadvance(1),o.ɵɵtextInterpolate2("",n.label," (",n.type,")")}}function u(e,t){if(1&e&&(o.ɵɵelementStart(0,"ol"),o.ɵɵtemplate(1,m,2,2,"li",5),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext();o.ɵɵadvance(1),o.ɵɵproperty("ngForOf",n.problem.context)}}var g=function(e){return{disabled:e}};function h(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div"),o.ɵɵelementStart(1,"div",2),o.ɵɵelementStart(2,"input",6),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext().entityLabel=e}))("typeaheadOnSelect",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext().typeaheadOnSelect(e)})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(3,"div",7),o.ɵɵelementStart(4,"i",8),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext().createSynonym()})),o.ɵɵpipe(5,"localize"),o.ɵɵelementEnd(),o.ɵɵelementStart(6,"i",9),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext().ignoreDataAtLocation()})),o.ɵɵpipe(7,"localize"),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext();o.ɵɵadvance(2),o.ɵɵproperty("name",r.index+"-name")("ngModel",r.entityLabel)("typeaheadAsync",!0)("typeahead",r.dataSource)("typeaheadOptionsLimit",7),o.ɵɵadvance(2),o.ɵɵproperty("ngClass",o.ɵɵpureFunction1(12,g,!r.hasSynonym))("title",o.ɵɵpipeBind1(5,8,"dataUploader.createSynonymFromLocationTooltip")),o.ɵɵadvance(2),o.ɵɵproperty("title",o.ɵɵpipeBind1(7,10,"dataUploader.ignoreAtLocationTooltip"))}}function f(e,t){if(1&e&&(o.ɵɵelementStart(0,"li"),o.ɵɵtext(1),o.ɵɵelementEnd()),2&e){var n=t.$implicit;o.ɵɵadvance(1),o.ɵɵtextInterpolate(n.label)}}function y(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",2),o.ɵɵelementStart(1,"a"),o.ɵɵelement(2,"i",12),o.ɵɵelement(3,"i",13),o.ɵɵelement(4,"localize",14),o.ɵɵtext(5),o.ɵɵelementEnd(),o.ɵɵelementStart(6,"span"),o.ɵɵelementStart(7,"ul"),o.ɵɵelement(8,"localize",15),o.ɵɵtemplate(9,f,2,1,"li",5),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext(2);o.ɵɵadvance(5),o.ɵɵtextInterpolate1(" [",n.problem.action.label,"] "),o.ɵɵadvance(4),o.ɵɵproperty("ngForOf",n.problem.action.ancestors)}}function v(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",2),o.ɵɵelement(1,"localize",16),o.ɵɵtext(2),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext(2);o.ɵɵadvance(2),o.ɵɵtextInterpolate1(" [",n.problem.action.label,"] ")}}function b(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div"),o.ɵɵtemplate(1,y,10,2,"div",10),o.ɵɵtemplate(2,v,3,1,"div",10),o.ɵɵelementStart(3,"div",7),o.ɵɵelementStart(4,"i",11),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext().undoAction()})),o.ɵɵpipe(5,"localize"),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext();o.ɵɵadvance(1),o.ɵɵproperty("ngIf","SYNONYM"==r.problem.action.name),o.ɵɵadvance(1),o.ɵɵproperty("ngIf","IGNOREATLOCATION"==r.problem.action.name),o.ɵɵadvance(2),o.ɵɵproperty("title",o.ɵɵpipeBind1(5,3,"dataUploader.undoFixedLocationTooltip"))}}var S=function(){function e(e){var t=this;this.service=e,this.onError=new r.EventEmitter,this.dataSource=i.Observable.create((function(e){t.service.getGeoObjectSuggestions(t.entityLabel,t.problem.type,t.problem.parent,t.configuration.hierarchy).then((function(t){e.next(t)}))}))}return e.prototype.ngOnInit=function(){this.entityLabel=null,this.entityId=null,this.hasSynonym=!1},e.prototype.typeaheadOnSelect=function(e){this.entityId=e.item.id,this.hasSynonym=null!=this.entityId},e.prototype.createSynonym=function(){var e=this;this.hasSynonym&&(this.onError.emit(null),this.service.createGeoObjectSynonym(this.entityId,this.problem.label).then((function(t){e.problem.resolved=!0,e.problem.action={name:"SYNONYM",synonymId:t.synonymId,vOid:t.vOid,label:t.label}})).catch((function(t){e.onError.emit(t.error)})))},e.prototype.ignoreDataAtLocation=function(){var e=this.problem.label;this.problem.type;this.problem.resolved=!0,this.problem.action={name:"IGNOREATLOCATION",label:e}},e.prototype.undoAction=function(){var e=this;this.problem.label,this.problem.type;if(this.problem.resolved){var t=this.problem.action;"IGNOREATLOCATION"==t.name?(this.problem.resolved=!1,this.problem.action=null):"SYNONYM"==t.name&&(this.onError.emit(null),this.service.deleteGeoObjectSynonym(t.synonymId,t.vOid).then((function(t){e.problem.resolved=!1,e.problem.action=null,e.entityLabel=null,e.hasSynonym=null!=e.entityLabel})).catch((function(t){e.onError.emit(t.error)})))}},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.IOService))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["location-problem"]],inputs:{configuration:"configuration",problem:"problem",index:"index"},outputs:{onError:"onError"},decls:9,vars:5,consts:[[1,"row",2,"padding-bottom","10px"],["problemForm","ngForm"],[1,"col-sm-4"],[4,"ngIf"],[1,"col-sm-2","error-message"],[4,"ngFor","ngForOf"],["typeaheadOptionField","name",1,"form-control",3,"name","ngModel","typeaheadAsync","typeahead","typeaheadOptionsLimit","ngModelChange","typeaheadOnSelect"],[1,"col-sm-2"],[1,"fa","fa-2x","fa-compress","clickable",3,"ngClass","title","click"],[1,"fa","fa-2x","fa-times-circle","clickable",3,"title","click"],["class","col-sm-4",4,"ngIf"],[1,"fa","fa-2x","fa-undo","clickable",3,"title","click"],["aria-hidden","true",1,"fa","fa-caret-right","clickable"],["aria-hidden","true",1,"fa","fa-caret-down",2,"display","none"],["key","dataUploader.resolvedSynonym"],["key","dataUploader.locatedWithin"],["key","dataUploader.resolvedIgnoreAtLocation"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵelementStart(1,"form",null,1),o.ɵɵelementStart(3,"div",2),o.ɵɵtemplate(4,u,2,1,"ol",3),o.ɵɵelementEnd(),o.ɵɵelementStart(5,"div",4),o.ɵɵtext(6),o.ɵɵelementEnd(),o.ɵɵtemplate(7,h,8,14,"div",3),o.ɵɵtemplate(8,b,6,5,"div",3),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(4),o.ɵɵproperty("ngIf",t.problem.context.length>0),o.ɵɵadvance(2),o.ɵɵtextInterpolate2("",t.problem.label," (",t.problem.typeLabel,")"),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",!t.problem.resolved),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",t.problem.resolved))},directives:[l.ɵangular_packages_forms_forms_ba,l.NgControlStatusGroup,l.NgForm,s.NgIf,s.NgForOf,l.DefaultValueAccessor,l.NgControlStatus,l.NgModel,c.TypeaheadDirective,s.NgClass,d.LocalizeComponent],pipes:[p.LocalizePipe],encapsulation:2}),e}();t.LocationProblemComponent=S,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(S,[{type:r.Component,args:[{selector:"location-problem",templateUrl:"./location-problem.component.html",styleUrls:[]}]}],(function(){return[{type:a.IOService}]}),{configuration:[{type:r.Input}],problem:[{type:r.Input}],index:[{type:r.Input}],onError:[{type:r.Output}]})},583:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TermProblemComponent=void 0;var r=n(0),i=n(31),o=n(377),a=(n(524),n(519),n(0)),l=n(519),s=n(22),c=n(1),d=n(154),p=n(68),m=n(113),u=function(e){return{disabled:e}};function g(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div"),a.ɵɵelementStart(1,"div",2),a.ɵɵelementStart(2,"input",5),a.ɵɵlistener("ngModelChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().termLabel=e}))("typeaheadOnSelect",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().typeaheadOnSelect(e)})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(3,"div",6),a.ɵɵelementStart(4,"i",7),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().createSynonym()})),a.ɵɵpipe(5,"localize"),a.ɵɵelementEnd(),a.ɵɵelementStart(6,"i",8),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().createOption()})),a.ɵɵpipe(7,"localize"),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"i",9),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().ignoreValue()})),a.ɵɵpipe(9,"localize"),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext();a.ɵɵadvance(2),a.ɵɵproperty("name",r.index+"-name")("ngModel",r.termLabel)("typeaheadAsync",!0)("typeahead",r.dataSource)("typeaheadOptionsLimit",7),a.ɵɵadvance(2),a.ɵɵproperty("ngClass",a.ɵɵpureFunction1(15,u,!r.hasSynonym))("title",a.ɵɵpipeBind1(5,9,"dataUploader.createSynonymCategoryTooltip")),a.ɵɵadvance(2),a.ɵɵproperty("title",a.ɵɵpipeBind1(7,11,"dataUploader.createNewOptionTooltip")),a.ɵɵadvance(2),a.ɵɵproperty("title",a.ɵɵpipeBind1(9,13,"dataUploader.ignoreCategoryTooltip"))}}function h(e,t){1&e&&(a.ɵɵelementStart(0,"div",2),a.ɵɵelement(1,"localize",12),a.ɵɵelementEnd())}function f(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",2),a.ɵɵelement(1,"localize",13),a.ɵɵtext(2),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext(2);a.ɵɵadvance(2),a.ɵɵtextInterpolate1(" [",n.problem.action.label,"] ")}}function y(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",2),a.ɵɵelement(1,"localize",14),a.ɵɵtext(2),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext(2);a.ɵɵadvance(2),a.ɵɵtextInterpolate1(" [",n.problem.label,"] ")}}function v(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div"),a.ɵɵtemplate(1,h,2,0,"div",10),a.ɵɵtemplate(2,f,3,1,"div",10),a.ɵɵtemplate(3,y,3,1,"div",10),a.ɵɵelementStart(4,"div",6),a.ɵɵelementStart(5,"i",11),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().undoAction()})),a.ɵɵpipe(6,"localize"),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵproperty("ngIf","OPTION"==r.problem.action.name),a.ɵɵadvance(1),a.ɵɵproperty("ngIf","SYNONYM"==r.problem.action.name),a.ɵɵadvance(1),a.ɵɵproperty("ngIf","IGNORE"==r.problem.action.name),a.ɵɵadvance(2),a.ɵɵproperty("title",a.ɵɵpipeBind1(6,4,"dataUploader.undoFixedCategoryTooltip"))}}var b=function(){function e(e){var t=this;this.service=e,this.onError=new r.EventEmitter,this.dataSource=i.Observable.create((function(e){t.service.getTermSuggestions(t.problem.mdAttributeId,t.termLabel,"20").then((function(t){e.next(t)}))}))}return e.prototype.ngOnInit=function(){this.termLabel=null,this.termId=null,this.hasSynonym=!1},e.prototype.typeaheadOnSelect=function(e){this.termId=e.item.value,this.hasSynonym=null!=this.termId},e.prototype.createSynonym=function(){var e=this;this.hasSynonym&&(this.onError.emit(null),this.service.createTermSynonym(this.termId,this.problem.label).then((function(t){e.problem.resolved=!0,e.problem.action={name:"SYNONYM",synonymId:t.synonymId,label:t.label}})).catch((function(t){e.onError.emit(t.error)})))},e.prototype.createOption=function(){var e=this;this.onError.emit(null),this.service.createTerm(this.problem.label,o.v4(),this.problem.parentCode).then((function(t){e.problem.resolved=!0,e.problem.action={name:"OPTION",term:t}})).catch((function(t){e.onError.emit(t.error)}))},e.prototype.ignoreValue=function(){this.problem.resolved=!0,this.problem.action={name:"IGNORE"}},e.prototype.undoAction=function(){var e=this;if(this.problem.resolved){var t=this.problem.action;"IGNORE"==t.name?(this.problem.resolved=!1,this.problem.action=null):"SYNONYM"==t.name?(this.onError.emit(null),this.service.deleteTermSynonym(t.synonymId).then((function(t){e.problem.resolved=!1,e.problem.action=null})).catch((function(t){e.onError.emit(t.error)}))):"OPTION"==t.name&&(this.onError.emit(null),this.service.removeTerm(this.problem.parentCode,t.term.code).then((function(t){e.problem.resolved=!1,e.problem.action=null})).catch((function(t){e.onError.emit(t.error)})))}},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(l.IOService))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["term-problem"]],inputs:{configuration:"configuration",problem:"problem",index:"index"},outputs:{onError:"onError"},decls:9,vars:4,consts:[[1,"row"],["problemForm","ngForm"],[1,"col-sm-4"],[1,"col-sm-2","error-message"],[4,"ngIf"],["typeaheadOptionField","label",1,"form-control",3,"name","ngModel","typeaheadAsync","typeahead","typeaheadOptionsLimit","ngModelChange","typeaheadOnSelect"],[1,"col-sm-2"],[1,"fa","fa-2x","fa-compress","clickable",3,"ngClass","title","click"],[1,"fa","fa-2x","fa-plus","clickable",3,"title","click"],[1,"fa","fa-2x","fa-times-circle","clickable",3,"title","click"],["class","col-sm-4",4,"ngIf"],[1,"fa","fa-2x","fa-undo","clickable",3,"title","click"],["key","dataUploader.resolvedCategoryOption"],["key","dataUploader.resolvedSynonym"],["key","dataUploader.resolvedIgnoreCategory"]],template:function(e,t){1&e&&(a.ɵɵelementStart(0,"div",0),a.ɵɵelementStart(1,"form",null,1),a.ɵɵelementStart(3,"div",2),a.ɵɵtext(4),a.ɵɵelementEnd(),a.ɵɵelementStart(5,"div",3),a.ɵɵtext(6),a.ɵɵelementEnd(),a.ɵɵtemplate(7,g,10,17,"div",4),a.ɵɵtemplate(8,v,7,6,"div",4),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e&&(a.ɵɵadvance(4),a.ɵɵtextInterpolate(t.problem.attributeLabel),a.ɵɵadvance(2),a.ɵɵtextInterpolate(t.problem.label),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",!t.problem.resolved),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.problem.resolved))},directives:[s.ɵangular_packages_forms_forms_ba,s.NgControlStatusGroup,s.NgForm,c.NgIf,s.DefaultValueAccessor,s.NgControlStatus,s.NgModel,d.TypeaheadDirective,c.NgClass,p.LocalizeComponent],pipes:[m.LocalizePipe],encapsulation:2}),e}();t.TermProblemComponent=b,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(b,[{type:r.Component,args:[{selector:"term-problem",templateUrl:"./term-problem.component.html",styleUrls:[]}]}],(function(){return[{type:l.IOService}]}),{configuration:[{type:r.Input}],problem:[{type:r.Input}],index:[{type:r.Input}],onError:[{type:r.Output}]})},584:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SpreadsheetModalComponent=void 0;var r=n(0),i=(n(30),n(30),n(33),n(16),n(111)),o=(n(519),n(0)),a=n(519),l=n(30),s=n(16),c=n(33),d=n(1),p=n(551),m=n(552),u=n(553),g=n(554);function h(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",3),o.ɵɵtext(1),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext();o.ɵɵadvance(1),o.ɵɵtextInterpolate(n.message)}}function f(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div"),o.ɵɵelementStart(1,"attributes-page",4),o.ɵɵlistener("configurationChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).configuration=e}))("stateChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).onStateChange(e)})),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(2);o.ɵɵadvance(1),o.ɵɵproperty("configuration",r.configuration)}}function y(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div"),o.ɵɵelementStart(1,"location-page",4),o.ɵɵlistener("configurationChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).configuration=e}))("stateChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).onStateChange(e)})),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(2);o.ɵɵadvance(1),o.ɵɵproperty("configuration",r.configuration)}}function v(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div"),o.ɵɵelementStart(1,"location-problem-page",4),o.ɵɵlistener("configurationChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).configuration=e}))("stateChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).onStateChange(e)})),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(2);o.ɵɵadvance(1),o.ɵɵproperty("configuration",r.configuration)}}function b(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div"),o.ɵɵelementStart(1,"term-problem-page",4),o.ɵɵlistener("configurationChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).configuration=e}))("stateChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).onStateChange(e)})),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(2);o.ɵɵadvance(1),o.ɵɵproperty("configuration",r.configuration)}}function S(e,t){if(1&e&&(o.ɵɵelementStart(0,"div"),o.ɵɵtemplate(1,f,2,1,"div",2),o.ɵɵtemplate(2,y,2,1,"div",2),o.ɵɵtemplate(3,v,2,1,"div",2),o.ɵɵtemplate(4,b,2,1,"div",2),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext();o.ɵɵadvance(1),o.ɵɵproperty("ngIf","MAP"===n.state),o.ɵɵadvance(1),o.ɵɵproperty("ngIf","LOCATION"===n.state),o.ɵɵadvance(1),o.ɵɵproperty("ngIf","LOCATION-PROBLEM"===n.state),o.ɵɵadvance(1),o.ɵɵproperty("ngIf","TERM-PROBLEM"===n.state)}}var C=function(){function e(e,t,n,r,i){this.service=e,this.bsModalRef=t,this.modalService=n,this.localizeService=r,this.router=i,this.message=null,this.state="MAP"}return e.prototype.ngOnInit=function(){},e.prototype.onStateChange=function(e){"BACK"===e?this.handleBack():"NEXT"===e?this.handleNext():"CANCEL"===e&&this.handleCancel()},e.prototype.handleBack=function(){"LOCATION"===this.state&&(this.state="MAP")},e.prototype.handleNext=function(){"MAP"===this.state?this.configuration.postalCode?this.handleSubmit():this.state="LOCATION":"LOCATION"===this.state?this.handleSubmit():"LOCATION-PROBLEM"===this.state?null!=this.configuration.termProblems?this.state="TERM-PROBLEM":this.handleSubmit():"TERM-PROBLEM"===this.state&&this.handleSubmit()},e.prototype.handleSubmit=function(){var e=this;this.service.importSpreadsheet(this.configuration).then((function(t){null!=t.locationProblems?(e.state="LOCATION-PROBLEM",e.configuration=t):null!=t.termProblems?(e.state="TERM-PROBLEM",e.configuration=t):(e.bsModalRef.hide(),e.bsModalRef=e.modalService.show(i.ConfirmModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0}),e.bsModalRef.content.message=e.localizeService.decode("data.import.go.to.scheduled.jobs.confirm.message"),e.bsModalRef.content.submitText=e.localizeService.decode("data.import.go.to.scheduled.jobs.button"),e.bsModalRef.content.onConfirm.subscribe((function(t){e.router.navigate(["/registry/scheduled-jobs"])})))})).catch((function(t){e.error(t)}))},e.prototype.handleCancel=function(){var e=this;this.service.cancelImport(this.configuration).then((function(t){e.bsModalRef.hide()})).catch((function(t){e.error(t)}))},e.prototype.error=function(e){this.message=i.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.IOService),o.ɵɵdirectiveInject(l.BsModalRef),o.ɵɵdirectiveInject(l.BsModalService),o.ɵɵdirectiveInject(s.LocalizationService),o.ɵɵdirectiveInject(c.Router))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["spreadsheet-modal"]],decls:3,vars:2,consts:[[1,"modal-body"],["class","alert alert-danger","role","alert",4,"ngIf"],[4,"ngIf"],["role","alert",1,"alert","alert-danger"],[3,"configuration","configurationChange","stateChange"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵtemplate(1,h,2,1,"div",1),o.ɵɵtemplate(2,S,5,4,"div",2),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(1),o.ɵɵproperty("ngIf",null!=t.message),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",null!=t.configuration&&t.configuration))},directives:[d.NgIf,p.AttributesPageComponent,m.LocationPageComponent,u.LocationProblemPageComponent,g.TermProblemPageComponent],encapsulation:2}),e}();t.SpreadsheetModalComponent=C,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(C,[{type:r.Component,args:[{selector:"spreadsheet-modal",templateUrl:"./spreadsheet-modal.component.html",styleUrls:[]}]}],(function(){return[{type:a.IOService},{type:l.BsModalRef},{type:l.BsModalService},{type:s.LocalizationService},{type:c.Router}]}),null)},585:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DataPageComponent=void 0;var r=n(0),i=(n(30),n(111)),o=(n(16),n(0)),a=n(16),l=n(30),s=n(122),c=n(86),d=n(1),p=n(33),m=n(68),u=n(586),g=function(e){return{active:e}};function h(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"a",9),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext().renderContent("SPREADSHEET")})),o.ɵɵelement(1,"localize",10),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext();o.ɵɵproperty("ngClass",o.ɵɵpureFunction1(1,g,"SPREADSHEET"===r.content))}}function f(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"a",9),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext().renderContent("SHAPEFILE")})),o.ɵɵelement(1,"localize",11),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext();o.ɵɵproperty("ngClass",o.ɵɵpureFunction1(1,g,"SHAPEFILE"===r.content))}}function y(e,t){1&e&&o.ɵɵelement(0,"dataimporter",12),2&e&&o.ɵɵproperty("format","EXCEL")}function v(e,t){1&e&&o.ɵɵelement(0,"dataimporter",12),2&e&&o.ɵɵproperty("format","SHAPEFILE")}var b=function(){function e(e,t,n){this.localizationService=e,this.modalService=t,this.service=n,this.content="SPREADSHEET",this.isAdmin=n.isAdmin(),this.isMaintainer=this.isAdmin||n.isMaintainer(),this.isContributor=this.isAdmin||this.isMaintainer||n.isContributer(),this.isMaintainer?this.renderContent("SPREADSHEET"):this.renderContent("EXPORT")}return e.prototype.ngOnInit=function(){},e.prototype.renderContent=function(e){this.content=e,"SPREADSHEET"===e?this.pageTitle=this.localizationService.decode("spreadsheet.title"):"SHAPEFILE"===e?this.pageTitle=this.localizationService.decode("shapefile.title"):"EXPORT"===e&&(this.pageTitle=this.localizationService.decode("io.export.title"))},e.prototype.error=function(e){this.bsModalRef=i.ErrorHandler.showErrorAsDialog(e,this.modalService)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.LocalizationService),o.ɵɵdirectiveInject(l.BsModalService),o.ɵɵdirectiveInject(a.AuthService))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["data-page"]],decls:17,vars:5,consts:[[1,"new-admin-design-main"],["id","app-container",1,"container-fluid"],[1,"row"],[1,"col-md-1"],[1,"col-md-10",2,"padding-top","30px"],[1,"heading"],["style","margin-right:10px;font-size:20px;",3,"routerLink","ngClass","click",4,"ngIf"],[1,"inner-col-content-wrapper",2,"padding-top","30px","margin-top","10px"],[3,"format",4,"ngIf"],[2,"margin-right","10px","font-size","20px",3,"routerLink","ngClass","click"],["key","import-spreadsheet-localization-manager.menu"],["key","import-shapefile-localization-manager.menu"],[3,"format"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵelement(1,"cgr-header"),o.ɵɵelement(2,"loading-bar"),o.ɵɵelementStart(3,"div",1),o.ɵɵelementStart(4,"div",2),o.ɵɵelement(5,"div",3),o.ɵɵelementStart(6,"div",4),o.ɵɵelementStart(7,"div",5),o.ɵɵelementStart(8,"h2"),o.ɵɵtext(9),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(10,"div"),o.ɵɵtemplate(11,h,2,3,"a",6),o.ɵɵtemplate(12,f,2,3,"a",6),o.ɵɵelementEnd(),o.ɵɵelementStart(13,"div",7),o.ɵɵtemplate(14,y,1,1,"dataimporter",8),o.ɵɵtemplate(15,v,1,1,"dataimporter",8),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelement(16,"div",3),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(9),o.ɵɵtextInterpolate1(" ",t.pageTitle," "),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",t.isMaintainer),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",t.isMaintainer),o.ɵɵadvance(2),o.ɵɵproperty("ngIf","SPREADSHEET"===t.content),o.ɵɵadvance(1),o.ɵɵproperty("ngIf","SHAPEFILE"===t.content))},directives:[s.CgrHeaderComponent,c.LoadingBarComponent,d.NgIf,p.RouterLinkWithHref,d.NgClass,m.LocalizeComponent,u.DataImporterComponent],styles:["a.active[_ngcontent-%COMP%] {\n\tborder-bottom: solid 2px #6BA542;\n}"]}),e}();t.DataPageComponent=b,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(b,[{type:r.Component,args:[{selector:"data-page",templateUrl:"./data-page.component.html",styleUrls:["./data-page.css"]}]}],(function(){return[{type:a.LocalizationService},{type:l.BsModalService},{type:a.AuthService}]}),null)},586:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DataImporterComponent=void 0;var r=n(0),i=(n(30),n(205)),o=n(111),a=(n(16),n(519),n(584)),l=n(581),s=n(258),c=n(0),d=n(519),p=n(16),m=n(30),u=n(1),g=n(68),h=n(22),f=n(260),y=n(262),v=n(205),b=["myFile"],S=["dateFieldComponents"],C=function(e){return{active:e}};function E(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"div"),c.ɵɵelementStart(1,"div"),c.ɵɵelementStart(2,"div",1),c.ɵɵelement(3,"div",2),c.ɵɵelementStart(4,"div",3),c.ɵɵelementStart(5,"label",4),c.ɵɵelementStart(6,"input",5),c.ɵɵlistener("change",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext().setImportSource(e,"FILE")})),c.ɵɵelementEnd(),c.ɵɵelementStart(7,"span",6),c.ɵɵelement(8,"localize",7),c.ɵɵelementEnd(),c.ɵɵelementStart(9,"p",8),c.ɵɵelement(10,"localize",9),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementStart(11,"label",4),c.ɵɵelementStart(12,"input",5),c.ɵɵlistener("change",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext().setImportSource(e,"EXTERNAL")})),c.ɵɵelementEnd(),c.ɵɵelementStart(13,"span",6),c.ɵɵelement(14,"localize",10),c.ɵɵelementEnd(),c.ɵɵelementStart(15,"p",8),c.ɵɵelement(16,"localize",11),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementStart(17,"div",12),c.ɵɵelementStart(18,"button",13),c.ɵɵlistener("click",(function(){return c.ɵɵrestoreView(n),c.ɵɵnextContext().onNext()})),c.ɵɵelement(19,"localize",14),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelement(20,"div",15),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd()}if(2&e){var r=c.ɵɵnextContext();c.ɵɵadvance(6),c.ɵɵproperty("value",!0)("checked",!r.isExternal),c.ɵɵadvance(1),c.ɵɵproperty("ngClass",c.ɵɵpureFunction1(6,C,!r.isExternal)),c.ɵɵadvance(5),c.ɵɵproperty("value",!1)("checked",r.isExternal),c.ɵɵadvance(1),c.ɵɵproperty("ngClass",c.ɵɵpureFunction1(8,C,r.isExternal))}}function x(e,t){if(1&e&&(c.ɵɵelementStart(0,"option",48),c.ɵɵtext(1),c.ɵɵelementEnd()),2&e){var n=t.$implicit;c.ɵɵpropertyInterpolate("value",n.oid),c.ɵɵadvance(1),c.ɵɵtextInterpolate(n.label.localizedValue)}}function O(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"div",19),c.ɵɵelementStart(1,"label",45),c.ɵɵelement(2,"localize",46),c.ɵɵelementEnd(),c.ɵɵelementStart(3,"div",23),c.ɵɵelementStart(4,"select",47),c.ɵɵlistener("ngModelChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext(2).externalSystemId=e})),c.ɵɵtemplate(5,x,2,2,"option",25),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelement(6,"div",26),c.ɵɵelementEnd()}if(2&e){var r=c.ɵɵnextContext(2);c.ɵɵadvance(4),c.ɵɵproperty("ngModel",r.externalSystemId),c.ɵɵadvance(1),c.ɵɵproperty("ngForOf",r.externalSystems)}}function I(e,t){if(1&e&&(c.ɵɵelementStart(0,"option",48),c.ɵɵtext(1),c.ɵɵelementEnd()),2&e){var n=t.$implicit;c.ɵɵpropertyInterpolate("value",n.code),c.ɵɵadvance(1),c.ɵɵtextInterpolate(n.label)}}function w(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"div",19),c.ɵɵelementStart(1,"label",49),c.ɵɵelement(2,"localize",50),c.ɵɵelementEnd(),c.ɵɵelementStart(3,"div",23),c.ɵɵelementStart(4,"select",51),c.ɵɵlistener("ngModelChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext(2).hierarchyCode=e}))("change",(function(){return c.ɵɵrestoreView(n),c.ɵɵnextContext(2).onSelectHierarchy()})),c.ɵɵelement(5,"option"),c.ɵɵtemplate(6,I,2,2,"option",25),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelement(7,"div",26),c.ɵɵelementEnd()}if(2&e){var r=c.ɵɵnextContext(2);c.ɵɵadvance(4),c.ɵɵproperty("ngModel",r.hierarchyCode),c.ɵɵadvance(2),c.ɵɵproperty("ngForOf",r.filteredHierarchyViews)}}function M(e,t){if(1&e&&(c.ɵɵelementStart(0,"option",48),c.ɵɵtext(1),c.ɵɵelementEnd()),2&e){var n=t.$implicit;c.ɵɵpropertyInterpolate("value",n.code),c.ɵɵadvance(1),c.ɵɵtextInterpolate(n.super?n.super.label+" : "+n.label:n.label)}}function T(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"div",19),c.ɵɵelementStart(1,"label",52),c.ɵɵelement(2,"localize",53),c.ɵɵelementEnd(),c.ɵɵelementStart(3,"div",23),c.ɵɵelementStart(4,"select",54),c.ɵɵlistener("ngModelChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext(2).typeCode=e}))("change",(function(){return c.ɵɵrestoreView(n),c.ɵɵnextContext(2).onSelectType()})),c.ɵɵelement(5,"option"),c.ɵɵtemplate(6,M,2,2,"option",25),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelement(7,"div",26),c.ɵɵelementEnd()}if(2&e){var r=c.ɵɵnextContext(2);c.ɵɵadvance(4),c.ɵɵproperty("ngModel",r.typeCode),c.ɵɵadvance(2),c.ɵɵproperty("ngForOf",r.filteredTypeViews)}}function j(e,t){1&e&&c.ɵɵelement(0,"localize",55)}function k(e,t){1&e&&c.ɵɵelement(0,"localize",56)}function z(e,t){if(1&e&&(c.ɵɵelementStart(0,"option",48),c.ɵɵtext(1),c.ɵɵelementEnd()),2&e){var n=t.$implicit;c.ɵɵpropertyInterpolate("value",n.strategy),c.ɵɵadvance(1),c.ɵɵtextInterpolate(n.label)}}function D(e,t){1&e&&c.ɵɵelement(0,"localize",57)}function R(e,t){1&e&&c.ɵɵelement(0,"localize",58)}function P(e,t){if(1&e&&c.ɵɵelement(0,"input",59,60),2&e){var n=c.ɵɵnextContext(2);c.ɵɵproperty("uploader",n.uploader)}}function A(e,t){if(1&e&&c.ɵɵelement(0,"input",61,60),2&e){var n=c.ɵɵnextContext(2);c.ɵɵproperty("uploader",n.uploader)}}function V(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"div"),c.ɵɵelementStart(1,"div"),c.ɵɵelementStart(2,"form",16,17),c.ɵɵtemplate(4,O,7,2,"div",18),c.ɵɵtemplate(5,w,8,2,"div",18),c.ɵɵtemplate(6,T,8,2,"div",18),c.ɵɵelementStart(7,"div",19),c.ɵɵelementStart(8,"label",20),c.ɵɵtemplate(9,j,1,0,"localize",21),c.ɵɵtemplate(10,k,1,0,"localize",22),c.ɵɵelementEnd(),c.ɵɵelementStart(11,"div",23),c.ɵɵelementStart(12,"select",24),c.ɵɵlistener("ngModelChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext().importStrategy=e}))("change",(function(){return c.ɵɵrestoreView(n),c.ɵɵnextContext().checkDates()})),c.ɵɵtemplate(13,z,2,2,"option",25),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelement(14,"div",26),c.ɵɵelementEnd(),c.ɵɵelementStart(15,"div",19),c.ɵɵelementStart(16,"label",27),c.ɵɵelement(17,"localize",28),c.ɵɵelementEnd(),c.ɵɵelementStart(18,"div",23),c.ɵɵelementStart(19,"date-field",29,30),c.ɵɵlistener("valueChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext().startDate=e}))("change",(function(){return c.ɵɵrestoreView(n),c.ɵɵnextContext().checkDates()})),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelement(21,"div",26),c.ɵɵelementEnd(),c.ɵɵelementStart(22,"div",19),c.ɵɵelementStart(23,"label",31),c.ɵɵelement(24,"localize",32),c.ɵɵelementEnd(),c.ɵɵelementStart(25,"div",23),c.ɵɵelementStart(26,"date-field",33,30),c.ɵɵlistener("valueChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext().endDate=e}))("change",(function(){return c.ɵɵrestoreView(n),c.ɵɵnextContext().checkDates()})),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelement(28,"div",26),c.ɵɵelementEnd(),c.ɵɵelementStart(29,"div",19),c.ɵɵelementStart(30,"label",34),c.ɵɵelement(31,"localize",35),c.ɵɵelementEnd(),c.ɵɵelementStart(32,"div",23),c.ɵɵelementStart(33,"boolean-field",36),c.ɵɵlistener("valueChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext().copyBlank=e})),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelement(34,"div",26),c.ɵɵelementEnd(),c.ɵɵelementStart(35,"div",19),c.ɵɵelementStart(36,"label",37),c.ɵɵtemplate(37,D,1,0,"localize",38),c.ɵɵtemplate(38,R,1,0,"localize",39),c.ɵɵelementEnd(),c.ɵɵelementStart(39,"div",23),c.ɵɵtemplate(40,P,2,1,"input",40),c.ɵɵtemplate(41,A,2,1,"input",41),c.ɵɵelementEnd(),c.ɵɵelement(42,"div",26),c.ɵɵelementEnd(),c.ɵɵelementStart(43,"div",19),c.ɵɵelement(44,"div",26),c.ɵɵelementStart(45,"div",42),c.ɵɵelementStart(46,"button",43),c.ɵɵlistener("click",(function(){return c.ɵɵrestoreView(n),c.ɵɵnextContext().onClick()})),c.ɵɵelement(47,"localize",44),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelement(48,"div",26),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd()}if(2&e){var r=c.ɵɵreference(3),i=c.ɵɵnextContext();c.ɵɵadvance(4),c.ɵɵproperty("ngIf",i.isExternal),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",i.filteredHierarchyViews),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",i.filteredTypeViews),c.ɵɵadvance(3),c.ɵɵproperty("ngIf","EXCEL"===i.format),c.ɵɵadvance(1),c.ɵɵproperty("ngIf","SHAPEFILE"===i.format),c.ɵɵadvance(2),c.ɵɵproperty("ngModel",i.importStrategy),c.ɵɵadvance(1),c.ɵɵproperty("ngForOf",i.importStrategies),c.ɵɵadvance(6),c.ɵɵproperty("value",i.startDate)("inputName","startDate")("allowFutureDates",!1),c.ɵɵadvance(7),c.ɵɵproperty("value",i.endDate)("inputName","endDate")("allowInfinity",!0)("allowFutureDates",!0)("required",!0),c.ɵɵadvance(7),c.ɵɵproperty("value",i.copyBlank),c.ɵɵadvance(4),c.ɵɵproperty("ngIf","EXCEL"===i.format),c.ɵɵadvance(1),c.ɵɵproperty("ngIf","SHAPEFILE"===i.format),c.ɵɵadvance(2),c.ɵɵproperty("ngIf","EXCEL"===i.format),c.ɵɵadvance(1),c.ɵɵproperty("ngIf","SHAPEFILE"===i.format),c.ɵɵadvance(5),c.ɵɵproperty("disabled",!i.isValid||r.invalid)}}var N=function(){function e(e,t,n,r,i,o,a,l){this.service=e,this.eventService=t,this.modalService=n,this.localizationService=r,this.authService=i,this.sysService=o,this.hierarchyService=a,this.changeDetectorRef=l,this.currentDate=new Date,this.showImportConfig=!1,this.isValid=!1,this.importStrategies=[{strategy:s.ImportStrategy.NEW_AND_UPDATE,label:this.localizationService.decode("etl.import.ImportStrategy.NEW_AND_UPDATE")},{strategy:s.ImportStrategy.NEW_ONLY,label:this.localizationService.decode("etl.import.ImportStrategy.NEW_ONLY")},{strategy:s.ImportStrategy.UPDATE_ONLY,label:this.localizationService.decode("etl.import.ImportStrategy.UPDATE_ONLY")}],this.typeCode=null,this.hierarchyCode=null,this.startDate=null,this.endDate=null,this.isExternal=!1,this.isLoading=!0,this.copyBlank=!0}return e.prototype.ngOnInit=function(){var e=this;this.sysService.getExternalSystems(1,100).then((function(t){e.externalSystems=t.resultSet,0===e.externalSystems.length&&(e.isExternal=!1,e.showImportConfig=!0),e.isLoading=!1})).catch((function(t){e.error(t)})),this.hierarchyService.getHierarchyGroupedTypes().then((function(t){e.allHierarchyViews=t,e.allTypeViews=[];for(var n=e.allHierarchyViews.length,r=0;r0?this.uploader.uploadAll():this.error({message:this.localizationService.decode("io.missing.file"),error:{}})},e.prototype.setImportSource=function(e,t){this.isExternal="EXTERNAL"===t},e.prototype.onNext=function(){this.showImportConfig=!0},e.prototype.onBack=function(){this.showImportConfig=!1},e.prototype.checkDates=function(){var e=this;setTimeout((function(){e.isValid=e.checkDateFieldValidity()}),0)},e.prototype.checkDateFieldValidity=function(){for(var e,t=this.dateFieldComponentsArray.toArray(),n=0;nthis.endDate&&(e.setInvalid(this.localizationService.decode("date.input.startdate.after.enddate.error.message")),this.changeDetectorRef.detectChanges()),!0},e.prototype.error=function(e){this.bsModalRef=o.ErrorHandler.showErrorAsDialog(e,this.modalService)},e.ɵfac=function(t){return new(t||e)(c.ɵɵdirectiveInject(d.IOService),c.ɵɵdirectiveInject(p.EventService),c.ɵɵdirectiveInject(m.BsModalService),c.ɵɵdirectiveInject(p.LocalizationService),c.ɵɵdirectiveInject(p.AuthService),c.ɵɵdirectiveInject(p.ExternalSystemService),c.ɵɵdirectiveInject(d.HierarchyService),c.ɵɵdirectiveInject(c.ChangeDetectorRef))},e.ɵcmp=c.ɵɵdefineComponent({type:e,selectors:[["dataimporter"]],viewQuery:function(e,t){if(1&e&&(c.ɵɵviewQuery(b,1),c.ɵɵviewQuery(S,1)),2&e){var n=void 0;c.ɵɵqueryRefresh(n=c.ɵɵloadQuery())&&(t.fileRef=n.first),c.ɵɵqueryRefresh(n=c.ɵɵloadQuery())&&(t.dateFieldComponentsArray=n)}},inputs:{format:"format"},decls:2,vars:2,consts:[[4,"ngIf"],[1,"row"],[1,"col-xs-1"],[1,"col-xs-9","radio-btn-wrapper"],[1,"radio"],["type","checkbox","name","import-source",3,"value","checked","change"],[3,"ngClass"],["key","importer.import.from-file.label"],[1,"radio-label-description"],["key","importer.import.from-file.description"],["key","importer.import.from-external.label"],["key","importer.import.from-external.description"],[1,"button-holder"],["type","submit",1,"btn","btn-primary",3,"click"],["key","io.next"],[1,"col-xs-2"],["autocomplete","off"],["form","ngForm"],["class","form-group row",4,"ngIf"],[1,"form-group","row"],["for","strategy",1,"col-md-2","text-right"],["key","spreadsheet.import.import.strategy",4,"ngIf"],["key","shapefile.import.import.strategy",4,"ngIf"],[1,"col-md-8"],["id","strategy","name","strategy","required","",1,"select-area",3,"ngModel","ngModelChange","change"],[3,"value",4,"ngFor","ngForOf"],[1,"col-md-2"],["for","startDate",1,"col-md-2","text-right"],["key","io.startDate"],["label","",3,"value","inputName","allowFutureDates","valueChange","change"],["dateFieldComponents",""],["for","endDate",1,"col-md-2","text-right"],["key","io.endDate"],["label","",3,"value","inputName","allowInfinity","allowFutureDates","required","valueChange","change"],["for","copyBlank",1,"col-md-2","text-right"],["key","dataimporter.importblankcells"],["label","",3,"value","valueChange"],["for","file",1,"col-md-2","text-right"],["key","io.spreadsheet",4,"ngIf"],["key","io.shapefile",4,"ngIf"],["class","ghost-input","name","file","type","file","ng2FileSelect","","accept",".xls, .xlsx","required","",3,"uploader",4,"ngIf"],["class","ghost-input","name","file","type","file","ng2FileSelect","","accept",".zip","required","",3,"uploader",4,"ngIf"],[1,"button-holder","col-md-8","text-right"],["type","submit",1,"btn","btn-primary",3,"disabled","click"],["key","io.submit"],["for","externalSystem",1,"col-md-2","text-right"],["key","io.import.externalSystems"],["id","externalSystem","name","externalSystem","required","",1,"select-area",3,"ngModel","ngModelChange"],[3,"value"],["for","hierarchyCode",1,"col-md-2","text-right"],["key","io.modal.hierarchy"],["id","hierarchyCode","name","hierarchyCode","required","",1,"select-area",3,"ngModel","ngModelChange","change"],["for","code",1,"col-md-2","text-right"],["key","io.geoObjectType"],["id","code","name","code","required","",1,"select-area",3,"ngModel","ngModelChange","change"],["key","spreadsheet.import.import.strategy"],["key","shapefile.import.import.strategy"],["key","io.spreadsheet"],["key","io.shapefile"],["name","file","type","file","ng2FileSelect","","accept",".xls, .xlsx","required","",1,"ghost-input",3,"uploader"],["myFile",""],["name","file","type","file","ng2FileSelect","","accept",".zip","required","",1,"ghost-input",3,"uploader"]],template:function(e,t){1&e&&(c.ɵɵtemplate(0,E,21,10,"div",0),c.ɵɵtemplate(1,V,49,21,"div",0)),2&e&&(c.ɵɵproperty("ngIf",!t.isLoading&&!t.showImportConfig&&t.externalSystems.length>0),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",!t.isLoading&&null!==t.isExternal&&t.showImportConfig))},directives:[u.NgIf,u.NgClass,g.LocalizeComponent,h.ɵangular_packages_forms_forms_ba,h.NgControlStatusGroup,h.NgForm,h.SelectControlValueAccessor,h.RequiredValidator,h.NgControlStatus,h.NgModel,u.NgForOf,f.DateFieldComponent,y.BooleanFieldComponent,h.NgSelectOption,h.ɵangular_packages_forms_forms_z,v.FileSelectDirective],styles:[".radio-btn-wrapper[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n\tfont-size: 17px;\n\tfont-weight: normal;\n}\n\n.radio-btn-wrapper[_ngcontent-%COMP%] span.active[_ngcontent-%COMP%] {\n\tcolor: #6BA542;\n\tfont-weight: bold;\n}\n\n.radio-btn-wrapper[_ngcontent-%COMP%] p.radio-label-description[_ngcontent-%COMP%]{\n\tcolor: #a3a0a0;\n\tmargin-left: 30px;\n}"]}),e}();t.DataImporterComponent=N,("undefined"==typeof ngDevMode||ngDevMode)&&c.ɵsetClassMetadata(N,[{type:r.Component,args:[{selector:"dataimporter",templateUrl:"./dataimporter.component.html",styleUrls:["./dataimporter.css"]}]}],(function(){return[{type:d.IOService},{type:p.EventService},{type:m.BsModalService},{type:p.LocalizationService},{type:p.AuthService},{type:p.ExternalSystemService},{type:d.HierarchyService},{type:c.ChangeDetectorRef}]}),{dateFieldComponentsArray:[{type:r.ViewChildren,args:["dateFieldComponents"]}],fileRef:[{type:r.ViewChild,args:["myFile"]}],format:[{type:r.Input}]})},587:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MasterListManagerComponent=void 0;var r=n(0),i=(n(33),n(30),n(519),n(531)),o=n(111),a=(n(16),n(0)),l=n(519),s=n(30),c=n(33),d=n(16),p=n(122),m=n(86),u=n(68),g=n(1);function h(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",6),a.ɵɵtext(1),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵtextInterpolate(n.message)}}function f(e,t){1&e&&(a.ɵɵelementStart(0,"div",7),a.ɵɵelementStart(1,"div",10),a.ɵɵelementStart(2,"div",11),a.ɵɵelementStart(3,"p",17),a.ɵɵelement(4,"localize",18),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd())}function y(e,t){1&e&&(a.ɵɵelementStart(0,"span"),a.ɵɵelement(1,"localize",35),a.ɵɵelementEnd())}function v(e,t){1&e&&a.ɵɵelement(0,"localize",36)}function b(e,t){1&e&&a.ɵɵelement(0,"localize",37)}function S(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"button",38),a.ɵɵlistener("click",(function(){a.ɵɵrestoreView(n);var e=a.ɵɵnextContext().$implicit,t=a.ɵɵnextContext(2).$implicit;return a.ɵɵnextContext().onDelete(t,e)})),a.ɵɵelement(1,"localize",39),a.ɵɵelementEnd()}}function C(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"tr",24),a.ɵɵelementStart(1,"td",25),a.ɵɵelementStart(2,"a",26),a.ɵɵtext(3),a.ɵɵtemplate(4,y,2,0,"span",16),a.ɵɵelementStart(5,"span"),a.ɵɵtext(6," ( "),a.ɵɵtemplate(7,v,1,0,"localize",27),a.ɵɵtemplate(8,b,1,0,"localize",28),a.ɵɵtext(9," ) "),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(10,"td",29),a.ɵɵelementStart(11,"button",30),a.ɵɵlistener("click",(function(){a.ɵɵrestoreView(n);var e=t.$implicit;return a.ɵɵnextContext(3).onView(e.oid)})),a.ɵɵelement(12,"localize",31),a.ɵɵelementEnd(),a.ɵɵelementStart(13,"button",32),a.ɵɵlistener("click",(function(){a.ɵɵrestoreView(n);var e=t.$implicit;return a.ɵɵnextContext(3).onEdit(e)})),a.ɵɵelement(14,"localize",33),a.ɵɵelementEnd(),a.ɵɵtemplate(15,S,2,0,"button",34),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=t.$implicit;a.ɵɵadvance(2),a.ɵɵproperty("routerLink","/registry/master-list-view/"+r.oid),a.ɵɵadvance(1),a.ɵɵtextInterpolate1(" ",r.label," "),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",r.isMaster),a.ɵɵadvance(3),a.ɵɵproperty("ngIf","PUBLIC"===r.visibility),a.ɵɵadvance(1),a.ɵɵproperty("ngIf","PRIVATE"===r.visibility),a.ɵɵadvance(7),a.ɵɵproperty("ngIf",r.write)}}function E(e,t){if(1&e&&(a.ɵɵelementStart(0,"ul",19),a.ɵɵelementStart(1,"table",20),a.ɵɵelementStart(2,"thead"),a.ɵɵelementStart(3,"tr"),a.ɵɵelementStart(4,"th",21),a.ɵɵelement(5,"localize",22),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(6,"tbody"),a.ɵɵtemplate(7,C,16,6,"tr",23),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext().$implicit;a.ɵɵadvance(7),a.ɵɵproperty("ngForOf",n.lists)}}function x(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div"),a.ɵɵelementStart(1,"button",30),a.ɵɵlistener("click",(function(){a.ɵɵrestoreView(n);var e=a.ɵɵnextContext().$implicit;return a.ɵɵnextContext().onCreate(e)})),a.ɵɵelement(2,"localize",40),a.ɵɵelementEnd(),a.ɵɵelementEnd()}}function O(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",7),a.ɵɵelementStart(1,"div",8),a.ɵɵelementStart(2,"div",9),a.ɵɵelementStart(3,"div",10),a.ɵɵelementStart(4,"div",11),a.ɵɵelementStart(5,"h3"),a.ɵɵtext(6),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵtemplate(7,f,5,0,"div",12),a.ɵɵtemplate(8,E,8,1,"ul",13),a.ɵɵelementStart(9,"div",14),a.ɵɵelementStart(10,"div",15),a.ɵɵtemplate(11,x,3,0,"div",16),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=t.$implicit;a.ɵɵadvance(6),a.ɵɵtextInterpolate(n.label),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",n.lists&&0===n.lists.length),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",n.lists&&n.lists.length>0),a.ɵɵadvance(3),a.ɵɵproperty("ngIf",n.write)}}var I=function(){function e(e,t,n,r){this.service=e,this.modalService=t,this.router=n,this.localizeService=r,this.message=null}return e.prototype.ngOnInit=function(){var e=this;this.service.getMasterListsByOrg().then((function(t){e.orgs=t.orgs})).catch((function(t){e.error(t)}))},e.prototype.onCreate=function(e){this.bsModalRef=this.modalService.show(i.PublishModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0}),this.bsModalRef.content.init(e),this.bsModalRef.content.isNew=!0,this.bsModalRef.content.onMasterListChange.subscribe((function(t){var n={label:t.displayLabel.localizedValue,oid:t.oid,createDate:t.createDate,lastUpdateDate:t.lastUpdateDate,isMaster:t.isMaster,write:t.write,read:t.read,visibility:t.visibility};e.lists.push(n)}))},e.prototype.onView=function(e){this.router.navigate(["/registry/master-list-view/",e])},e.prototype.onEdit=function(e){var t=this;this.service.getMasterList(e.oid).then((function(n){t.bsModalRef=t.modalService.show(i.PublishModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0}),t.bsModalRef.content.edit=!0,t.bsModalRef.content.readonly=!n.write,t.bsModalRef.content.master=n,t.bsModalRef.content.originalPublishStartDate=n.publishingStartDate,t.bsModalRef.content.isNew=!1,t.bsModalRef.content.onMasterListChange.subscribe((function(t){e.label=t.displayLabel.localizedValue,e.visibility=t.visibility}))})).catch((function(e){t.error(e)}))},e.prototype.onDelete=function(e,t){var n=this;this.bsModalRef=this.modalService.show(o.ConfirmModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0}),this.bsModalRef.content.message=this.localizeService.decode("confirm.modal.verify.delete")+" ["+t.label+"]",this.bsModalRef.content.submitText=this.localizeService.decode("modal.button.delete"),this.bsModalRef.content.type="danger",this.bsModalRef.content.onConfirm.subscribe((function(r){n.service.deleteMasterList(t.oid).then((function(n){e.lists=e.lists.filter((function(e,n,r){return e.oid!==t.oid}))})).catch((function(e){n.error(e)}))}))},e.prototype.error=function(e){this.message=o.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(l.RegistryService),a.ɵɵdirectiveInject(s.BsModalService),a.ɵɵdirectiveInject(c.Router),a.ɵɵdirectiveInject(d.LocalizationService))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["master-list-manager"]],decls:9,vars:2,consts:[[1,"new-admin-design-main"],["id","app-container",1,"container-fluid"],[1,"heading"],["key","masterlists.manager.organizations"],["class","alert alert-danger","role","alert",4,"ngIf"],["class","row",4,"ngFor","ngForOf"],["role","alert",1,"alert","alert-danger"],[1,"row"],[1,"col-md-12","order-md-1"],[1,"row",2,"margin-top","30px"],[1,"col-md-12"],[1,"py-5"],["class","row",4,"ngIf"],["class","list-group","style","border-bottom: 2px solid lightgrey; margin-top: 30px;",4,"ngIf"],[1,"row",2,"margin-top","30px","margin-bottom","30px"],[1,"col-md-6"],[4,"ngIf"],[1,"inline-message"],["key","masterlists.no.lists.in.org.message"],[1,"list-group",2,"border-bottom","2px solid lightgrey","margin-top","30px"],[1,"table"],[2,"width","70%"],["key","masterlist.menu"],["class","clickable",4,"ngFor","ngForOf"],[1,"clickable"],[2,"width","70%","vertical-align","middle"],["routerLinkActive","active",3,"routerLink"],["key","masterlist.public",4,"ngIf"],["key","masterlist.private",4,"ngIf"],[2,"width","30%","text-align","right"],["type","submit","role","button",1,"btn","btn-primary",3,"click"],["key","modal.button.view"],["type","submit","role","button",1,"btn","btn-default",3,"click"],["key","masterlist.button.metadata"],["type","submit","class","btn btn-danger","role","button",3,"click",4,"ngIf"],["key","masterlist.master"],["key","masterlist.public"],["key","masterlist.private"],["type","submit","role","button",1,"btn","btn-danger",3,"click"],["key","modal.button.delete"],["key","hierarchy.management.button.create"]],template:function(e,t){1&e&&(a.ɵɵelementStart(0,"div",0),a.ɵɵelement(1,"cgr-header"),a.ɵɵelement(2,"loading-bar"),a.ɵɵelementStart(3,"div",1),a.ɵɵelementStart(4,"div",2),a.ɵɵelementStart(5,"h2"),a.ɵɵelement(6,"localize",3),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵtemplate(7,h,2,1,"div",4),a.ɵɵtemplate(8,O,12,4,"div",5),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e&&(a.ɵɵadvance(7),a.ɵɵproperty("ngIf",null!=t.message),a.ɵɵadvance(1),a.ɵɵproperty("ngForOf",t.orgs))},directives:[p.CgrHeaderComponent,m.LoadingBarComponent,u.LocalizeComponent,g.NgIf,g.NgForOf,c.RouterLinkWithHref,c.RouterLinkActive],styles:[""]}),e}();t.MasterListManagerComponent=I,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(I,[{type:r.Component,args:[{selector:"master-list-manager",templateUrl:"./master-list-manager.component.html",styleUrls:["./master-list-manager.css"]}]}],(function(){return[{type:l.RegistryService},{type:s.BsModalService},{type:c.Router},{type:d.LocalizationService}]}),null)},588:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ExportFormatModalComponent=void 0;var r=n(0),i=(n(30),n(31)),o=n(0),a=n(30),l=n(68),s=n(22),c=function(){function e(e){this.bsModalRef=e}return e.prototype.ngOnInit=function(){this.onFormat=new i.Subject},e.prototype.confirm=function(){this.bsModalRef.hide(),this.onFormat.next(this.format)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.BsModalRef))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["export-format-modal"]],decls:25,vars:2,consts:[["tabindex","-1","role","dialog",1,"modal-body"],[1,"heading","text-center"],["key","export-modal.title"],["name","export-form",1,"modal-form"],[1,"row"],[1,"col-md-12"],["key","export-modal.message"],["id","format","name","format","required","",1,"select-area",3,"ngModel","ngModelChange"],["value","EXCEL"],["key","io.spreadsheet"],["value","SHAPEFILE"],["key","io.shapefile"],[1,"button-holder"],["type","button","role","button","aria-disabled","false",1,"btn","btn-default",3,"click"],["key","modal.button.cancel"],["type","button","role","button",1,"btn","btn-primary",3,"disabled","click"],["key","modal.button.submit"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵelementStart(1,"div",1),o.ɵɵelementStart(2,"h1"),o.ɵɵelement(3,"localize",2),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(4,"form",3),o.ɵɵelementStart(5,"fieldset"),o.ɵɵelementStart(6,"div",4),o.ɵɵelementStart(7,"div",5),o.ɵɵelementStart(8,"label"),o.ɵɵelement(9,"localize",6),o.ɵɵelementEnd(),o.ɵɵelementStart(10,"select",7),o.ɵɵlistener("ngModelChange",(function(e){return t.format=e})),o.ɵɵelement(11,"option"),o.ɵɵelementStart(12,"option",8),o.ɵɵelement(13,"localize",9),o.ɵɵelementEnd(),o.ɵɵelementStart(14,"option",10),o.ɵɵelement(15,"localize",11),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(16,"div",4),o.ɵɵelementStart(17,"div",5),o.ɵɵelementStart(18,"div",12),o.ɵɵelementStart(19,"button",13),o.ɵɵlistener("click",(function(){return t.bsModalRef.hide()})),o.ɵɵelementStart(20,"span"),o.ɵɵelement(21,"localize",14),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(22,"button",15),o.ɵɵlistener("click",(function(){return t.confirm()})),o.ɵɵelementStart(23,"span"),o.ɵɵelement(24,"localize",16),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(10),o.ɵɵproperty("ngModel",t.format),o.ɵɵadvance(12),o.ɵɵproperty("disabled",null==t.format||""==t.format))},directives:[l.LocalizeComponent,s.ɵangular_packages_forms_forms_ba,s.NgControlStatusGroup,s.NgForm,s.SelectControlValueAccessor,s.RequiredValidator,s.NgControlStatus,s.NgModel,s.NgSelectOption,s.ɵangular_packages_forms_forms_z],encapsulation:2}),e}();t.ExportFormatModalComponent=c,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(c,[{type:r.Component,args:[{selector:"export-format-modal",templateUrl:"./export-format-modal.component.html",styleUrls:[]}]}],(function(){return[{type:a.BsModalRef}]}),null)},589:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RequestTableComponent=void 0;var r=n(0),i=(n(33),n(1),n(30),n(7)),o=n(205),a=n(258),l=(n(519),n(16),n(112),n(111)),s=n(0),c=n(519),d=n(30),p=n(16),m=n(33),u=n(112),g=n(1),h=n(68),f=n(22),y=n(525),v=n(205),b=n(204),S=n(113),C=["myFile"];function E(e,t){if(1&e&&s.ɵɵelement(0,"i",25),2&e){var n=s.ɵɵnextContext();s.ɵɵproperty("ngClass",n.isAscending("createdBy")?"fa-arrow-down":"fa-arrow-up")}}function x(e,t){if(1&e&&s.ɵɵelement(0,"i",25),2&e){var n=s.ɵɵnextContext();s.ɵɵproperty("ngClass",n.isAscending("geoObjectTypeLabel")?"fa-arrow-down":"fa-arrow-up")}}function O(e,t){if(1&e&&s.ɵɵelement(0,"i",25),2&e){var n=s.ɵɵnextContext();s.ɵɵproperty("ngClass",n.isAscending("geoObjectLabel")?"fa-arrow-down":"fa-arrow-up")}}function I(e,t){if(1&e&&s.ɵɵelement(0,"i",25),2&e){var n=s.ɵɵnextContext();s.ɵɵproperty("ngClass",n.isAscending("createDate")?"fa-arrow-down":"fa-arrow-up")}}function w(e,t){if(1&e&&s.ɵɵelement(0,"i",25),2&e){var n=s.ɵɵnextContext();s.ɵɵproperty("ngClass",n.isAscending("approvalStatus")?"fa-arrow-down":"fa-arrow-up")}}function M(e,t){if(1&e&&s.ɵɵelement(0,"i",25),2&e){var n=s.ɵɵnextContext();s.ɵɵproperty("ngClass",n.isAscending("oid")?"fa-arrow-down":"fa-arrow-up")}}function T(e,t){1&e&&(s.ɵɵelementStart(0,"h4",39),s.ɵɵelement(1,"localize",48),s.ɵɵelementEnd())}function j(e,t){1&e&&(s.ɵɵelementStart(0,"h4",39),s.ɵɵelement(1,"localize",49),s.ɵɵelementEnd())}function k(e,t){1&e&&(s.ɵɵelementStart(0,"div",50),s.ɵɵelement(1,"localize",51),s.ɵɵelementEnd())}function z(e,t){1&e&&(s.ɵɵelementStart(0,"div",50),s.ɵɵelement(1,"localize",52),s.ɵɵelementEnd())}function D(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"div",53),s.ɵɵelementStart(1,"label",54),s.ɵɵelement(2,"localize",55),s.ɵɵelementEnd(),s.ɵɵelementStart(3,"textarea",56),s.ɵɵlistener("ngModelChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).$implicit.contributorNotes=e})),s.ɵɵelementEnd(),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(2).$implicit;s.ɵɵadvance(1),s.ɵɵpropertyInterpolate1("for","contribNotesInput-",r.oid,""),s.ɵɵadvance(2),s.ɵɵpropertyInterpolate1("id","contribNotesInput-",r.oid,""),s.ɵɵproperty("ngModel",r.contributorNotes)("disabled",!r.permissions.includes("WRITE_DETAILS"))}}function R(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"geoobject-shared-attribute-editor",69,70),s.ɵɵlistener("valid",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(4).setValid(e)})),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(3).$implicit,i=s.ɵɵnextContext();s.ɵɵproperty("readOnly",!i.canEdit(r))("geoObjectType",r.current.geoObjectType)("postGeoObject","UpdateGeoObject"==r.type?r.current.geoObject:r.actions[0].geoObjectJson)("changeRequest",r)("hierarchies","UpdateGeoObject"==r.type?r.current.hierarchies:r.actions[0].parentJson)("isGeometryInlined",!0)("isNew","CreateGeoObject"===r.type)}}function P(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"div",71),s.ɵɵelementStart(1,"label",54),s.ɵɵelement(2,"localize",72),s.ɵɵelementEnd(),s.ɵɵelementStart(3,"textarea",73),s.ɵɵlistener("ngModelChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(3).$implicit.maintainerNotes=e})),s.ɵɵelementEnd(),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(3).$implicit;s.ɵɵadvance(1),s.ɵɵpropertyInterpolate1("for","maintainerNotesInput-",r.oid,""),s.ɵɵadvance(2),s.ɵɵpropertyInterpolate1("id","maintainerNotesInput-",r.oid,""),s.ɵɵproperty("ngModel",r.maintainerNotes)("disabled",!r.permissions.includes("WRITE_MAINTAINER_NOTES"))}}function A(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"div",71),s.ɵɵelementStart(1,"label",54),s.ɵɵelement(2,"localize",74),s.ɵɵelementEnd(),s.ɵɵelementStart(3,"input",75),s.ɵɵlistener("ngModelChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(3).$implicit.additionalNotes=e})),s.ɵɵelementEnd(),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(3).$implicit;s.ɵɵadvance(1),s.ɵɵpropertyInterpolate1("for","additionalNotes-",r.oid,""),s.ɵɵadvance(2),s.ɵɵpropertyInterpolate1("id","additionalNotes-",r.oid,""),s.ɵɵproperty("ngModel",r.additionalNotes)("disabled",!r.permissions.includes("WRITE_MAINTAINER_NOTES"))}}function V(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"li",79),s.ɵɵelementStart(1,"a",14),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=t.$implicit,r=s.ɵɵnextContext(4).$implicit;return s.ɵɵnextContext().onDownloadFile(r,e.oid)})),s.ɵɵtext(2),s.ɵɵelementEnd(),s.ɵɵelementStart(3,"i",80),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=t.$implicit,r=s.ɵɵnextContext(4).$implicit;return s.ɵɵnextContext().onDeleteFile(r,e.oid)})),s.ɵɵelementEnd(),s.ɵɵelementEnd()}if(2&e){var r=t.$implicit;s.ɵɵadvance(2),s.ɵɵtextInterpolate(r.fileName)}}function N(e,t){if(1&e&&(s.ɵɵelementStart(0,"div",76),s.ɵɵelementStart(1,"ul",77),s.ɵɵtemplate(2,V,4,1,"li",78),s.ɵɵelementEnd(),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext(3).$implicit;s.ɵɵadvance(2),s.ɵɵproperty("ngForOf",n.documents)}}function L(e,t){1&e&&(s.ɵɵelementStart(0,"p",81),s.ɵɵelement(1,"localize",82),s.ɵɵelementEnd())}function _(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"div",83),s.ɵɵelement(1,"input",84,85),s.ɵɵelementStart(3,"button",86),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext(3).$implicit;return s.ɵɵnextContext().onUpload(e)})),s.ɵɵpipe(4,"localize"),s.ɵɵelement(5,"localize",87),s.ɵɵelementEnd(),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(4);s.ɵɵadvance(1),s.ɵɵproperty("uploader",r.uploader),s.ɵɵadvance(2),s.ɵɵproperty("title",s.ɵɵpipeBind1(4,2,"change.request.upload.document.btn.hover"))}}function F(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"button",93),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext(5).$implicit;return s.ɵɵnextContext().onReject(e)})),s.ɵɵpipe(1,"localize"),s.ɵɵelement(2,"localize",94),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(5).$implicit;s.ɵɵproperty("disabled","PENDING"!==r.approvalStatus)("title",s.ɵɵpipeBind1(1,2,"change.request.reject.all.btn.hover"))}}function H(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"span"),s.ɵɵelementStart(1,"button",90),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext(4).$implicit;return s.ɵɵnextContext().onExecute(e)})),s.ɵɵpipe(2,"localize"),s.ɵɵelement(3,"localize",91),s.ɵɵelementEnd(),s.ɵɵtemplate(4,F,3,4,"button",92),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(4).$implicit;s.ɵɵadvance(1),s.ɵɵproperty("disabled","PENDING"!==r.approvalStatus)("title",s.ɵɵpipeBind1(2,4,"change.request.implement.decisions.btn.hover")),s.ɵɵadvance(2),s.ɵɵproperty("key","UpdateGeoObject"===r.type?"change.request.accept.changes.btn":"change.request.accept.newGeoObject.btn"),s.ɵɵadvance(1),s.ɵɵproperty("ngIf","CreateGeoObject"===r.type)}}function G(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"button",99),s.ɵɵlistener("click",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext(6).onEditAttributes()})),s.ɵɵelement(1,"localize",100),s.ɵɵelementEnd()}}function q(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"button",101),s.ɵɵlistener("click",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext(6).onEditAttributes()})),s.ɵɵelement(1,"localize",102),s.ɵɵelementEnd()}}function B(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"button",103),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext(5).$implicit;return s.ɵɵnextContext().onUpdate(e)})),s.ɵɵpipe(1,"localize"),s.ɵɵelement(2,"localize",104),s.ɵɵelementEnd()}2&e&&s.ɵɵproperty("title",s.ɵɵpipeBind1(1,1,"modal.button.update"))}function U(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"button",105),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext(5).$implicit;return s.ɵɵnextContext().onDelete(e)})),s.ɵɵpipe(1,"localize"),s.ɵɵelement(2,"localize",106),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(6);s.ɵɵproperty("disabled",!r.isEditing)("title",s.ɵɵpipeBind1(1,2,"change.request.delete.request.hover"))}}function $(e,t){if(1&e&&(s.ɵɵelementStart(0,"span"),s.ɵɵtemplate(1,G,2,0,"button",95),s.ɵɵtemplate(2,q,2,0,"button",96),s.ɵɵtemplate(3,B,3,3,"button",97),s.ɵɵtemplate(4,U,3,4,"button",98),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext(4).$implicit,r=s.ɵɵnextContext();s.ɵɵadvance(1),s.ɵɵproperty("ngIf",!r.isEditing),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",r.isEditing),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",r.isEditing),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",n.permissions.includes("DELETE")&&n.createdBy===r.getUsername())}}function J(e,t){if(1&e&&(s.ɵɵelementStart(0,"div",88),s.ɵɵtemplate(1,H,5,6,"span",89),s.ɵɵtemplate(2,$,5,4,"span",89),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext(3).$implicit,r=s.ɵɵnextContext();s.ɵɵadvance(1),s.ɵɵproperty("ngIf",n.permissions.includes("WRITE_APPROVAL_STATUS")),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",r.isValid&&n.permissions.includes("WRITE_DETAILS")&&n.createdBy===r.getUsername())}}function W(e,t){if(1&e&&(s.ɵɵelementStart(0,"div",57),s.ɵɵelementStart(1,"div",58),s.ɵɵelementStart(2,"div",59),s.ɵɵelementStart(3,"div",1),s.ɵɵtemplate(4,R,2,7,"geoobject-shared-attribute-editor",60),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(5,"div",61),s.ɵɵelementStart(6,"div",62),s.ɵɵtemplate(7,P,4,4,"div",63),s.ɵɵtemplate(8,A,4,4,"div",63),s.ɵɵelementEnd(),s.ɵɵelementStart(9,"div",62),s.ɵɵelementStart(10,"div"),s.ɵɵelementStart(11,"label"),s.ɵɵelement(12,"localize",64),s.ɵɵelementEnd(),s.ɵɵtemplate(13,N,3,1,"div",65),s.ɵɵtemplate(14,L,2,0,"p",66),s.ɵɵtemplate(15,_,6,4,"div",67),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵtemplate(16,J,3,2,"div",68),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext(2).$implicit,r=s.ɵɵnextContext();s.ɵɵadvance(4),s.ɵɵproperty("ngIf",n),s.ɵɵadvance(3),s.ɵɵproperty("ngIf",n.permissions.includes("READ_MAINTAINER_NOTES")),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",n.permissions.includes("READ_MAINTAINER_NOTES")),s.ɵɵadvance(5),s.ɵɵproperty("ngIf",n.documents.length>0),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",0===n.documents.length),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",n.permissions.includes("WRITE_DOCUMENTS")&&r.isEditing),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",n.permissions.includes("WRITE_APPROVAL_STATUS")||n.permissions.includes("DELETE"))}}var K=function(e,t,n,r){return{"status-pending-container":e,"status-accepted-container":t,"status-partial-container":n,"status-rejected-container":r}};function Q(e,t){if(1&e&&(s.ɵɵelementStart(0,"tr",35),s.ɵɵelementStart(1,"td",36),s.ɵɵelementStart(2,"div",37),s.ɵɵelementStart(3,"div"),s.ɵɵelementStart(4,"h3",38),s.ɵɵtext(5),s.ɵɵelementEnd(),s.ɵɵelementStart(6,"h4",39),s.ɵɵtext(7),s.ɵɵelementEnd(),s.ɵɵtemplate(8,T,2,0,"h4",40),s.ɵɵtemplate(9,j,2,0,"h4",40),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(10,"div",41),s.ɵɵelementStart(11,"div",1),s.ɵɵtemplate(12,k,2,0,"div",42),s.ɵɵtemplate(13,z,2,0,"div",42),s.ɵɵtemplate(14,D,4,4,"div",43),s.ɵɵelementStart(15,"div"),s.ɵɵelementStart(16,"p"),s.ɵɵelement(17,"localize",44),s.ɵɵtext(18," "),s.ɵɵelementStart(19,"strong"),s.ɵɵtext(20),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(21,"p"),s.ɵɵelement(22,"localize",45),s.ɵɵtext(23," "),s.ɵɵelementStart(24,"strong"),s.ɵɵtext(25),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(26,"p"),s.ɵɵelement(27,"localize",46),s.ɵɵtext(28," "),s.ɵɵelementStart(29,"strong"),s.ɵɵtext(30),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵtemplate(31,W,17,7,"div",47),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext().$implicit,r=s.ɵɵnextContext();s.ɵɵproperty("@fadeInOut",void 0)("ngClass",s.ɵɵpureFunction4(13,K,"PENDING"===n.approvalStatus,"ACCEPTED"===n.approvalStatus,"PARTIAL"===n.approvalStatus,"REJECTED"===n.approvalStatus)),s.ɵɵadvance(5),s.ɵɵtextInterpolate(n.geoObject.label),s.ɵɵadvance(2),s.ɵɵtextInterpolate(n.geoObject.code),s.ɵɵadvance(1),s.ɵɵproperty("ngIf","UpdateGeoObject"===n.type),s.ɵɵadvance(1),s.ɵɵproperty("ngIf","CreateGeoObject"===n.type),s.ɵɵadvance(3),s.ɵɵproperty("ngIf",!r.isRequestTooOld(n)&&"INVALID"===n.approvalStatus),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",r.isRequestTooOld(n)),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",n.permissions.includes("READ_CONTRIBUTOR_NOTES")),s.ɵɵadvance(6),s.ɵɵtextInterpolate(n.createdBy),s.ɵɵadvance(5),s.ɵɵtextInterpolate(n.email),s.ɵɵadvance(5),s.ɵɵtextInterpolate(n.phoneNumber),s.ɵɵadvance(1),s.ɵɵproperty("ngIf","INVALID"!==n.approvalStatus&&!r.isRequestTooOld(n))}}var Y=function(e){return{"row-active":e}},X=function(e,t,n,r){return{"status-pending":e,"status-accepted":t,"status-partial":n,"status-rejected":r}};function Z(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"tr",26),s.ɵɵlistener("click",(function(e){s.ɵɵrestoreView(n);var r=t.$implicit;return s.ɵɵnextContext().toggle(e,r.oid)})),s.ɵɵelementStart(1,"td",27),s.ɵɵelementStart(2,"h5"),s.ɵɵelementStart(3,"strong"),s.ɵɵtext(4),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(5,"td",28),s.ɵɵelementStart(6,"h5"),s.ɵɵelementStart(7,"strong"),s.ɵɵtext(8),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(9,"td",28),s.ɵɵelementStart(10,"h5"),s.ɵɵelementStart(11,"strong"),s.ɵɵtext(12),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(13,"td",29),s.ɵɵelementStart(14,"span",30),s.ɵɵtext(15),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(16,"td",27),s.ɵɵelementStart(17,"h5",31),s.ɵɵelementStart(18,"strong"),s.ɵɵtext(19),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(20,"td",28),s.ɵɵelementStart(21,"h5"),s.ɵɵelementStart(22,"strong"),s.ɵɵtext(23),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(24,"td",32),s.ɵɵelement(25,"i",33),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵtemplate(26,Q,32,18,"tr",34)}if(2&e){var r=t.$implicit,i=s.ɵɵnextContext();s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(9,Y,i.toggleId===r.oid)),s.ɵɵadvance(4),s.ɵɵtextInterpolate(r.createdBy),s.ɵɵadvance(4),s.ɵɵtextInterpolate(r.geoObjectType.label),s.ɵɵadvance(4),s.ɵɵtextInterpolate(r.geoObject.label),s.ɵɵadvance(3),s.ɵɵtextInterpolate1(" ",i.formatDate(r.createDate)," "),s.ɵɵadvance(2),s.ɵɵproperty("ngClass",s.ɵɵpureFunction4(11,X,"PENDING"===r.approvalStatus,"ACCEPTED"===r.approvalStatus,"PARTIAL"===r.approvalStatus,"REJECTED"===r.approvalStatus)),s.ɵɵadvance(2),s.ɵɵtextInterpolate(r.statusLabel),s.ɵɵadvance(4),s.ɵɵtextInterpolate(r.oid),s.ɵɵadvance(3),s.ɵɵproperty("ngIf",i.toggleId===r.oid)}}function ee(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"div",23),s.ɵɵelementStart(1,"pagination-controls",107),s.ɵɵlistener("pageChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext().pageChange(e)})),s.ɵɵelementEnd(),s.ɵɵelementEnd()}}var te=function(e,t,n){return{itemsPerPage:e,currentPage:t,totalItems:n}},ne=function(){function e(e,t,n,r,i,o,a,l,s,c){this.service=e,this.geomService=t,this.modalService=n,this.authService=r,this.localizationService=i,this.eventService=o,this.route=a,this.router=l,this.dateService=s,this.location=c,this.today=new Date,this.todayString=this.dateService.getDateString(new Date),this.objectKeys=Object.keys,this.page={count:0,pageNumber:1,pageSize:10,resultSet:[]},this.requests=[],this.columns=[],this.filterCriteria="ALL",this.sort=[{attribute:"createDate",ascending:!1}],this.hasBaseDropZoneOver=!1,this.oid=null,this.isValid=!0,this.isEditing=!1,this.columns=[{name:i.decode("change.request.user"),prop:"createdBy",sortable:!1},{name:i.decode("change.request.createDate"),prop:"createDate",sortable:!1,width:195},{name:i.decode("change.request.status"),prop:"approvalStatus",sortable:!1}]}return e.prototype.ngOnInit=function(){var e=this;this.oid=this.route.snapshot.paramMap.get("oid"),this.route.paramMap.subscribe((function(t){e.oid=t.get("oid"),e.refresh()})),null!=this.oid&&(this.toggleId=this.oid);var t={queueLimit:1,removeAfterUpload:!0,url:acp+"/changerequest/upload-file-cr"};this.uploader=new o.FileUploader(t),this.uploader.onBuildItemForm=function(t,n){n.append("crOid",e.uploadRequest.oid)},this.uploader.onBeforeUploadItem=function(t){e.eventService.start()},this.uploader.onCompleteItem=function(t,n,r,i){e.fileRef.nativeElement.value="",e.eventService.complete()},this.uploader.onSuccessItem=function(t,n,r,i){var o=JSON.parse(n),a=e.requests.findIndex((function(e){return e.oid===o.requestId}));-1!==a&&e.requests[a].documents.push(o)},this.uploader.onErrorItem=function(t,n,r,i){var o=JSON.parse(n);e.error({error:o})},this.refresh()},e.prototype.isSorting=function(e){return this.sort.length>0&&this.sort[0].attribute===e},e.prototype.isAscending=function(e){return this.sort.length>0&&this.sort[0].ascending},e.prototype.onSort=function(e){var t=this.sort.findIndex((function(t){return t.attribute===e}));if(-1!==t){var n=this.sort[t];n.ascending=!n.ascending}else this.sort=[{attribute:e,ascending:!0}];this.refresh()},e.prototype.getGOTLabel=function(e){return e.geoObjectJson&&e.geoObjectJson.attributes&&e.geoObjectJson.attributes.displayLabel&&e.geoObjectJson.attributes.displayLabel.values&&e.geoObjectJson.attributes.displayLabel.values[0]&&e.geoObjectJson.attributes.displayLabel.values[0].value&&e.geoObjectJson.attributes.displayLabel.values[0].value.localeValues&&e.geoObjectJson.attributes.displayLabel.values[0].value.localeValues[0]&&e.geoObjectJson.attributes.displayLabel.values[0].value.localeValues[0].value?e.geoObjectJson.attributes.displayLabel.values[0].value.localeValues[0].value:e.geoObjectJson&&e.geoObjectJson.attributes&&e.geoObjectJson.attributes.code?e.geoObjectJson.attributes.code:this.localizationService.decode("geoObject.label")},e.prototype.setValid=function(e){this.isValid=e},e.prototype.onUpload=function(e){this.uploadRequest=e,null!=this.uploader.queue&&this.uploader.queue.length>0?this.uploader.uploadAll():this.error({message:this.localizationService.decode("io.missing.file"),error:{}})},e.prototype.onDownloadFile=function(e,t){window.location.href=acp+"/changerequest/download-file-cr?crOid="+e.oid+"&vfOid="+t},e.prototype.onDeleteFile=function(e,t){var n=this;this.service.deleteFile(e.oid,t).then((function(){var n=e.documents.findIndex((function(e){return e.oid===t}));-1!==n&&e.documents.splice(n,1)})).catch((function(e){n.error(e)}))},e.prototype.fileOverBase=function(e){this.hasBaseDropZoneOver=e},e.prototype.pageChange=function(e){void 0===e&&(e=1),this.oid=null,this.refresh(e)},e.prototype.refresh=function(e){var t=this;void 0===e&&(e=1),this.geomService.destroy(),this.service.getAllRequests(this.page.pageSize,e,this.filterCriteria,this.sort,this.oid).then((function(e){t.page=e,t.requests=e.resultSet,t.requests.forEach((function(e){if(!e.current.geoObject)for(var t=0;t-1&&t.requests.splice(n,1),t.refresh()})).catch((function(e){t.error(e)}))}))}},e.prototype.onUpdate=function(e){var t=this;null!=e&&this.service.update(e).then((function(e){t.refresh(),t.isEditing=!1})).catch((function(e){t.error(e)}))},e.prototype.applyActionStatusProperties=function(e){var t=this;this.service.setActionStatus(e.oid,e.approvalStatus).then((function(n){e.decisionMaker="PENDING"!==e.approvalStatus?t.authService.getUsername():""})).catch((function(e){t.error(e)}))},e.prototype.error=function(e){this.bsModalRef=l.ErrorHandler.showErrorAsDialog(e,this.modalService)},e.prototype.requestTrackBy=function(e,t){return t.oid},e.prototype.toggle=function(e,t){var n=this;this.location.replaceState("/registry/change-requests/"+t),e.target.parentElement.className.includes("btn")||e.target.className.includes("btn")||(this.toggleId===t?this.toggleId=null:(this.toggleId=t,this.requests.forEach((function(e){e.oid===t&&(n.actions=e.actions)}))))},e.prototype.filter=function(e){this.filterCriteria=e,this.refresh(1)},e.prototype.setActionStatus=function(e,t){var n=this;this.modalService.show(l.ConfirmModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0}).content.onConfirm.subscribe((function(r){e.approvalStatus=t,n.applyActionStatusProperties(e)}))},e.prototype.getActiveDetailComponent=function(e){return e.actionType.endsWith("CreateGeoObjectAction")||e.actionType.endsWith("UpdateGeoObjectAction"),e},e.prototype.formatDate=function(e){return this.dateService.formatDateForDisplay(e)},e.prototype.getUsername=function(){return this.authService.getUsername()},e.prototype.isRequestTooOld=function(e){if(e.actions&&e.actions.length>0){var t=e.actions[0];return t.actionType===a.ActionTypes.UPDATEGEOOBJECTACTION||t.actionType===a.ActionTypes.CREATEGEOOBJECTACTION&&!t.geoObjectJson.attributes.exists}return!0},e.prototype.onEditAttributes=function(){this.isEditing=!this.isEditing},e.prototype.canEdit=function(e){return e.permissions.includes("WRITE_DETAILS")&&this.isEditing},e.ɵfac=function(t){return new(t||e)(s.ɵɵdirectiveInject(c.ChangeRequestService),s.ɵɵdirectiveInject(c.GeometryService),s.ɵɵdirectiveInject(d.BsModalService),s.ɵɵdirectiveInject(p.AuthService),s.ɵɵdirectiveInject(p.LocalizationService),s.ɵɵdirectiveInject(p.EventService),s.ɵɵdirectiveInject(m.ActivatedRoute),s.ɵɵdirectiveInject(m.Router),s.ɵɵdirectiveInject(u.DateService),s.ɵɵdirectiveInject(g.Location))},e.ɵcmp=s.ɵɵdefineComponent({type:e,selectors:[["request-table"]],viewQuery:function(e,t){if(1&e&&s.ɵɵviewQuery(C,1),2&e){var n;s.ɵɵqueryRefresh(n=s.ɵɵloadQuery())&&(t.fileRef=n.first)}},inputs:{toggleId:"toggleId"},decls:49,vars:21,consts:[[1,"row"],[1,"col-md-12"],[1,"form-group","button-row"],[2,"border-bottom","1px solid",3,"routerLink","ngClass","click"],["key","change.request.all.filter.link"],[2,"margin-left","5px","border-bottom","1px solid",3,"routerLink","ngClass","click"],["key","change.request.pending.filter.link"],["key","change.request.accepted.filter.link"],["key","change.request.partial.filter.link"],["key","change.request.rejected.filter.link"],[2,"border-top","solid 3px #6BA542"],[1,"table"],[2,"height","50px","color","grey"],[2,"vertical-align","middle"],[3,"click"],["key","change.request.contributor.label"],["class","fa cr-sort-arrow",3,"ngClass",4,"ngIf"],["key","geoObjectType.label"],["key","geoObject.label"],["key","change.request.date.contributed.label"],["key","change.request.status.label"],["key","change.request.id.label"],["ngFor","",3,"ngForOf","ngForTrackBy"],[1,"solid-table-footer"],["class","solid-table-footer",4,"ngIf"],[1,"fa","cr-sort-arrow",3,"ngClass"],[1,"clickable",2,"height","50px",3,"ngClass","click"],[1,"col-md-1"],[1,"col-md-2"],[1,"col-md-1",2,"vertical-align","middle","color","grey"],[1,"date-string-display"],[3,"ngClass"],[1,"col-md-1",2,"vertical-align","middle","text-align","right","padding-right","25px"],["aria-hidden","true",1,"arrow","arrow-right"],["style","background-color:#f7f7f7;",3,"ngClass",4,"ngIf"],[2,"background-color","#f7f7f7",3,"ngClass"],["colspan","7"],[1,"geoobject-panel-header"],[2,"margin-top","10px"],[2,"font-style","italic"],["style","font-style: italic;",4,"ngIf"],[1,"row",2,"margin","0","background","white"],["class","cr-details-invalid error-message",4,"ngIf"],["class","form-group","style","margin-top:20px;",4,"ngIf"],["key","change.request.contributor.prefix.label"],["key","change.request.contributor.email.prefix.label"],["key","change.request.contributor.phone.prefix.label"],["class","cr-details",4,"ngIf"],["key","change.request.type.update.geoobject.label"],["key","change.request.type.create.geoobject.label"],[1,"cr-details-invalid","error-message"],["key","change.request.invalid"],["key","change.request.tooOld"],[1,"form-group",2,"margin-top","20px"],[3,"for"],["key","change.request.contributor.notes.label"],[1,"form-control",2,"height","90px","max-width","100%",3,"id","ngModel","disabled","ngModelChange"],[1,"cr-details"],[1,"action-card",2,"margin-bottom","10px","background-color","white"],[1,"row",2,"background","white"],[3,"readOnly","geoObjectType","postGeoObject","changeRequest","hierarchies","isGeometryInlined","isNew","valid",4,"ngIf"],[1,"row",2,"border-top","1px grey solid","margin","0","padding","10px 0"],[1,"col-md-6"],["class","form-group",4,"ngIf"],["key","change.request.reference.documents.label"],["style","border:1px solid #ccc;border-radius: 4px;",4,"ngIf"],["style","color:grey;font-style:italic;",4,"ngIf"],["style","padding:10px 0;",4,"ngIf"],["class","button-holder","style","margin-bottom:20px;min-height:40px;",4,"ngIf"],[3,"readOnly","geoObjectType","postGeoObject","changeRequest","hierarchies","isGeometryInlined","isNew","valid"],["attributeEditor",""],[1,"form-group"],["key","change.request.maintainer.notes.label"],[1,"form-control",2,"height","90px","max-width","100%","margin","0",3,"id","ngModel","disabled","ngModelChange"],["key","change.request.action.detail.additionalNotes"],["type","text",1,"form-control",2,"width","100%",3,"id","ngModel","disabled","ngModelChange"],[2,"border","1px solid #ccc","border-radius","4px"],[2,"padding","10px","margin","0"],["class","list-group-item","style","padding:0;font-size:inherit;",4,"ngFor","ngForOf"],[1,"list-group-item",2,"padding","0","font-size","inherit"],["aria-hidden","true",1,"fa","fa-times","ico-remove",2,"margin-left","10px",3,"click"],[2,"color","grey","font-style","italic"],["key","change.request.no.documents.label"],[2,"padding","10px 0"],["name","file","type","file","ng2FileSelect","","required","",1,"ghost-input",2,"display","inline-block","padding","0","height","auto","border-radius","0","margin-top","10px",3,"uploader"],["myFile",""],[1,"btn","btn-primary","pull-right",2,"margin","0",3,"title","click"],["key","change.request.reference.document.upload"],[1,"button-holder",2,"margin-bottom","20px","min-height","40px"],[4,"ngIf"],["type","submit","role","button",1,"btn","btn-primary",2,"margin","0",3,"disabled","title","click"],[3,"key"],["type","submit","class","btn btn-danger","style","margin:0 10px;","role","button",3,"disabled","title","click",4,"ngIf"],["type","submit","role","button",1,"btn","btn-danger",2,"margin","0 10px",3,"disabled","title","click"],["key","change.request.reject.all.btn"],["type","submit","class","btn btn-primary","role","button",3,"click",4,"ngIf"],["type","submit","class","btn btn-default","role","button",3,"click",4,"ngIf"],["type","submit","role","button","class","btn btn-primary",3,"title","click",4,"ngIf"],["type","submit","role","button","class","btn btn-danger pull-right",3,"disabled","title","click",4,"ngIf"],["type","submit","role","button",1,"btn","btn-primary",3,"click"],["key","changeovertime.manageVersions.button.label"],["type","submit","role","button",1,"btn","btn-default",3,"click"],["key","modal.button.cancel"],["type","submit","role","button",1,"btn","btn-primary",3,"title","click"],["key","modal.button.update"],["type","submit","role","button",1,"btn","btn-danger","pull-right",3,"disabled","title","click"],["key","change.request.delete.request.btn"],[3,"pageChange"]],template:function(e,t){1&e&&(s.ɵɵelementStart(0,"div",0),s.ɵɵelementStart(1,"div",1),s.ɵɵelementStart(2,"div",2),s.ɵɵelementStart(3,"a",3),s.ɵɵlistener("click",(function(){return t.filter("ALL")})),s.ɵɵelement(4,"localize",4),s.ɵɵelementEnd(),s.ɵɵelementStart(5,"a",5),s.ɵɵlistener("click",(function(){return t.filter("PENDING")})),s.ɵɵelement(6,"localize",6),s.ɵɵelementEnd(),s.ɵɵelementStart(7,"a",5),s.ɵɵlistener("click",(function(){return t.filter("ACCEPTED")})),s.ɵɵelement(8,"localize",7),s.ɵɵelementEnd(),s.ɵɵelementStart(9,"a",5),s.ɵɵlistener("click",(function(){return t.filter("PARTIAL")})),s.ɵɵelement(10,"localize",8),s.ɵɵelementEnd(),s.ɵɵelementStart(11,"a",5),s.ɵɵlistener("click",(function(){return t.filter("REJECTED")})),s.ɵɵelement(12,"localize",9),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelement(13,"hr",10),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(14,"div",0),s.ɵɵelementStart(15,"div",1),s.ɵɵelementStart(16,"table",11),s.ɵɵelementStart(17,"thead"),s.ɵɵelementStart(18,"tr",12),s.ɵɵelementStart(19,"th",13),s.ɵɵelementStart(20,"a",14),s.ɵɵlistener("click",(function(){return t.onSort("createdBy")})),s.ɵɵelement(21,"localize",15),s.ɵɵelementEnd(),s.ɵɵtemplate(22,E,1,1,"i",16),s.ɵɵelementEnd(),s.ɵɵelementStart(23,"th",13),s.ɵɵelementStart(24,"a",14),s.ɵɵlistener("click",(function(){return t.onSort("geoObjectTypeLabel")})),s.ɵɵelement(25,"localize",17),s.ɵɵelementEnd(),s.ɵɵtemplate(26,x,1,1,"i",16),s.ɵɵelementEnd(),s.ɵɵelementStart(27,"th",13),s.ɵɵelementStart(28,"a",14),s.ɵɵlistener("click",(function(){return t.onSort("geoObjectLabel")})),s.ɵɵelement(29,"localize",18),s.ɵɵelementEnd(),s.ɵɵtemplate(30,O,1,1,"i",16),s.ɵɵelementEnd(),s.ɵɵelementStart(31,"th",13),s.ɵɵelementStart(32,"a",14),s.ɵɵlistener("click",(function(){return t.onSort("createDate")})),s.ɵɵelement(33,"localize",19),s.ɵɵelementEnd(),s.ɵɵtemplate(34,I,1,1,"i",16),s.ɵɵelementEnd(),s.ɵɵelementStart(35,"th",13),s.ɵɵelementStart(36,"a",14),s.ɵɵlistener("click",(function(){return t.onSort("approvalStatus")})),s.ɵɵelement(37,"localize",20),s.ɵɵelementEnd(),s.ɵɵtemplate(38,w,1,1,"i",16),s.ɵɵelementEnd(),s.ɵɵelementStart(39,"th",13),s.ɵɵelementStart(40,"a",14),s.ɵɵlistener("click",(function(){return t.onSort("oid")})),s.ɵɵelement(41,"localize",21),s.ɵɵelementEnd(),s.ɵɵtemplate(42,M,1,1,"i",16),s.ɵɵelementEnd(),s.ɵɵelement(43,"th"),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(44,"tbody"),s.ɵɵtemplate(45,Z,27,16,"ng-template",22),s.ɵɵpipe(46,"paginate"),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(47,"div",23),s.ɵɵtemplate(48,ee,2,0,"div",24),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd()),2&e&&(s.ɵɵadvance(3),s.ɵɵproperty("ngClass","ALL"===t.filterCriteria?"cr-filter-link-active":""),s.ɵɵadvance(2),s.ɵɵproperty("ngClass","PENDING"===t.filterCriteria?"cr-filter-link-active":""),s.ɵɵadvance(2),s.ɵɵproperty("ngClass","ACCEPTED"===t.filterCriteria?"cr-filter-link-active":""),s.ɵɵadvance(2),s.ɵɵproperty("ngClass","PARTIAL"===t.filterCriteria?"cr-filter-link-active":""),s.ɵɵadvance(2),s.ɵɵproperty("ngClass","REJECTED"===t.filterCriteria?"cr-filter-link-active":""),s.ɵɵadvance(11),s.ɵɵproperty("ngIf",t.isSorting("createdBy")),s.ɵɵadvance(4),s.ɵɵproperty("ngIf",t.isSorting("geoObjectTypeLabel")),s.ɵɵadvance(4),s.ɵɵproperty("ngIf",t.isSorting("geoObjectLabel")),s.ɵɵadvance(4),s.ɵɵproperty("ngIf",t.isSorting("createDate")),s.ɵɵadvance(4),s.ɵɵproperty("ngIf",t.isSorting("approvalStatus")),s.ɵɵadvance(4),s.ɵɵproperty("ngIf",t.isSorting("oid")),s.ɵɵadvance(3),s.ɵɵproperty("ngForOf",s.ɵɵpipeBind2(46,14,t.requests,s.ɵɵpureFunction3(17,te,t.page.pageSize,t.page.pageNumber,t.page.count)))("ngForTrackBy",t.requestTrackBy),s.ɵɵadvance(3),s.ɵɵproperty("ngIf",t.page.resultSet.length>0))},directives:[m.RouterLinkWithHref,g.NgClass,h.LocalizeComponent,g.NgIf,g.NgForOf,f.DefaultValueAccessor,f.NgControlStatus,f.NgModel,y.GeoObjectSharedAttributeEditorComponent,v.FileSelectDirective,b.PaginationControlsComponent],pipes:[b.PaginatePipe,S.LocalizePipe],styles:[".vertical-center {\n\tposition: relative;\n\ttop: 50%;\n\ttransform: translateY(-50%);\n}\n\n.status-pending {\n\tcolor: orange;\n}\n\n.status-accepted,\n.status-partial {\n\tcolor: #6BA542;\n}\n\n.status-rejected {\n\tcolor: #d43f3a;\n}\n\n.status-pending-container {\n\tborder: solid 2px orange;\n}\n.status-accepted-container,\n.status-partial-container {\n\tborder: solid 2px #6BA542;\n}\n.status-rejected-container {\n\tborder: solid 2px #d43f3a;\n}\n\n.cr-sort-arrow {\n\tfont-size: 14px;\n}\n\n.cr-filter-link-active,\n.cr-filter-link-active:active {\n\t/* border: solid 1px #6BA542; */\n border-radius: 10px;\n background: #6BA542;\n color: white;\n font-weight: bold;\n padding: 3px 15px 3px 15px;\n}\n.cr-filter-link-active:hover,\n.cr-filter-link-active:focus {\n\tcolor:white;\n}\n\n/* .btn {\n\tborder: 2px solid; \n}\n.btn:disabled {\n\tborder: none;\n}\n\n.btn.btn-danger {\n\tbackground-color:#ffeeed; \n\tcolor:#d43f3a;\n}\n.btn.btn-danger:hover,\n.btn.btn-danger:active {\n\tcolor:#d43f3a;\n\tbackground-color:#fff7f6; \n\tborder-color: #d43f3a;\n}\n.btn.btn-danger:disabled:hover {\n\tbackground-color:#ffeeed; \n}\n\n.btn.btn-warning {\n\tbackground-color: #ffefd7;\n\tcolor: orange;\n}\n.btn.btn-warning:hover {\n\tbackground-color: #fff4e5;\n\tborder-color: orange;\n}\n.btn.btn-warning:disabled {\n\tbackground-color: #ffefd7;\n}\n\n.clickable:hover {\n\tbackground-color: #f7f7f7;\n\tcursor: pointer;\n}\n.clickable:hover .arrow.arrow-right {\n\ttransform: rotate(45deg);\n -webkit-transform: rotate(45deg);\n} */\n\ntr.row-active {\n\tbackground-color:#f7f7f7;\n}\n\n\n.arrow {\n border: solid black;\n border-width: 0 1px 1px 0;\n display: inline-block;\n padding: 5px;\n}\n.arrow-right {\n transform: rotate(-45deg);\n -webkit-transform: rotate(-45deg);\n}\n.arrow-down {\n transform: rotate(45deg);\n -webkit-transform: rotate(45deg);\n}\n\n.form-group textarea:focus {\n\tborder-color: #edf4e8;\n\t-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(107,165,66,.6);\n\tbox-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(107,165,66,.6);\n\n}\ntextarea[readonly]:focus {\n\tbox-shadow: none;\n\tborder: 1px solid #ccc;\n\tcursor: not-allowed;\n}\n\n\n.geoobject-panel-header{\n width: 100%;\n background: grey;\n color: white;\n padding: 10px;\n}\n"],encapsulation:2,data:{animation:[[i.trigger("fadeInOut",[i.transition(":enter",[i.style({opacity:0}),i.animate("300ms")]),i.transition(":leave",i.animate("100ms",i.style({opacity:0})))]),i.trigger("fadeIn",[i.transition(":enter",[i.style({opacity:0}),i.animate("500ms")])])]]}}),e}();t.RequestTableComponent=ne,("undefined"==typeof ngDevMode||ngDevMode)&&s.ɵsetClassMetadata(ne,[{type:r.Component,args:[{selector:"request-table",templateUrl:"./request-table.component.html",styleUrls:["./request-table.css"],encapsulation:r.ViewEncapsulation.None,animations:[[i.trigger("fadeInOut",[i.transition(":enter",[i.style({opacity:0}),i.animate("300ms")]),i.transition(":leave",i.animate("100ms",i.style({opacity:0})))]),i.trigger("fadeIn",[i.transition(":enter",[i.style({opacity:0}),i.animate("500ms")])])]]}]}],(function(){return[{type:c.ChangeRequestService},{type:c.GeometryService},{type:d.BsModalService},{type:p.AuthService},{type:p.LocalizationService},{type:p.EventService},{type:m.ActivatedRoute},{type:m.Router},{type:u.DateService},{type:g.Location}]}),{toggleId:[{type:r.Input}],fileRef:[{type:r.ViewChild,args:["myFile"]}]})},590:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChangeRequestChangeOverTimeAttributeEditor=void 0;var r=n(258),i=n(521),o=n(203),a=n(591),l=n(628),s=n(377),c=n(519),d=n(31),p=function(){function e(e,t,n){if(this.onChangeSubject=new d.Subject,this.changeRequestEditor=e,this.attribute=t,this.hierarchy=n,this.getEditAction(),null!=n)for(var r=0;r0?t.value=null!=e?JSON.parse(JSON.stringify(e.value)):JSON.parse(JSON.stringify(i[i.length-1].value)):t.value=c.GeometryService.createEmptyGeometryValue(this.changeRequestEditor.geoObjectType.geometryType)}else if("term"===this.attribute.type){var d=o.GeoObjectType.getGeoObjectTypeTermAttributeOptions(this.changeRequestEditor.geoObjectType,this.attribute.code);d&&d.length>0&&(t.value=d[0].code)}else"_PARENT_"===this.attribute.code&&"UpdateGeoObject"===this.changeRequestEditor.changeRequest.type?t.hierarchyEntry=t.createEmptyHierarchyEntry():"_PARENT_"!==this.attribute.code&&(t.value=null);return this.editors.push(t),this.onChange(r.ChangeType.ADD),t},e.prototype.remove=function(e){if(null!=e.diff&&"CREATE"===e.diff.action||"CreateGeoObject"===this.changeRequestEditor.changeRequest.type){var t=this.editors.findIndex((function(t){return t.oid===e.oid}));-1!==t&&this.editors.splice(t,1)}e.remove(),this.validate()},e}();t.ChangeRequestChangeOverTimeAttributeEditor=p},591:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ValueOverTimeCREditor=void 0;var r=n(521),i=n(377),o=n(269),a=n(153),l=n(519),s=n(31),c=n(258),d=function(){function e(e,t,n){this.onChangeSubject=new s.Subject,this._isValid=!0,this.attr=t,this.changeRequestAttributeEditor=e,this.action=n}return e.prototype.onChange=function(e){this.changeRequestAttributeEditor.onChange(e),this.onChangeSubject.next(e)},e.prototype.getGeoObjectTimeRangeStorage=function(){return this.valueOverTime},e.prototype.getValueFromGeoObjectForDiff=function(){return this.valueOverTime.value},e.prototype.validate=function(){var e=this.changeRequestAttributeEditor.changeRequestEditor.dateService,t=e.validateDate(null==this.startDate?null:e.getDateFromDateString(this.startDate),!0,!0),n=e.validateDate(null==this.endDate?null:e.getDateFromDateString(this.endDate),!0,!0);return this._isValid=!0,t.valid&&n.valid||(this._isValid=!1),this.validateUpdateReference(),this._isValid},e.prototype.validateUpdateReference=function(){var e=this.changeRequestAttributeEditor.changeRequestEditor.dateService.missingReference;(this.conflictMessages||(this.conflictMessages=new Set),this.conflictMessages.delete(e),"UpdateGeoObject"===this.changeRequestAttributeEditor.changeRequestEditor.changeRequest.type&&null!=this.diff&&"CREATE"!==this.diff.action)&&(null==this.findExistingValueOverTimeByOid(this.diff.oid,this.attr.code)&&(this._isValid=!1,this.conflictMessages.add(e)))},e.prototype.findExistingValueOverTimeByOid=function(e,t){if(this.changeRequestAttributeEditor.changeRequestEditor.geoObject.attributes[t]){var n=this.changeRequestAttributeEditor.changeRequestEditor.geoObject.attributes[t].values.findIndex((function(t){return t.oid===e}));if(-1!==n)return this.changeRequestAttributeEditor.changeRequestEditor.geoObject.attributes[t].values[n]}return null},Object.defineProperty(e.prototype,"oid",{get:function(){return null!=this.diff?this.diff.oid:null!=this.getGeoObjectTimeRangeStorage()?this.getGeoObjectTimeRangeStorage().oid:null},set:function(e){null!=this.diff?this.diff.oid=e:null!=this.getGeoObjectTimeRangeStorage()&&(this.getGeoObjectTimeRangeStorage().oid=e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"startDate",{get:function(){return null!=this.diff&&void 0!==this.diff.newStartDate?this.diff.newStartDate:null!=this.diff&&void 0!==this.diff.oldStartDate?this.diff.oldStartDate:null!=this.getGeoObjectTimeRangeStorage()?this.getGeoObjectTimeRangeStorage().startDate:null},set:function(e){if(!this.isDelete()){var t=this.getGeoObjectTimeRangeStorage();if("UpdateAttributeAction"===this.action.actionType){if(null==this.diff)if(null==this.getGeoObjectTimeRangeStorage())this.constructNewDiff("CREATE");else{if(t.startDate===e)return;this.constructNewDiff("UPDATE"),this.diff.oldValue=this.getValueFromGeoObjectForDiff()}e===this.diff.oldStartDate?delete this.diff.newStartDate:this.diff.newStartDate=e,this.removeEmptyDiff()}else"CreateGeoObjectAction"===this.action.actionType&&(t.startDate=e);this.onChange(c.ChangeType.START_DATE)}},enumerable:!1,configurable:!0}),e.prototype.constructNewDiff=function(e){if(this.diff=new r.ValueOverTimeDiff,this.diff.action=e,this.action.attributeDiff.valuesOverTime.push(this.diff),"CREATE"===e)this.diff.oid=i.v4();else{var t=this.getGeoObjectTimeRangeStorage();this.diff.oid=t.oid,this.diff.oldStartDate=t.startDate,this.diff.oldEndDate=t.endDate}},Object.defineProperty(e.prototype,"oldStartDate",{get:function(){return null!=this.diff?this.diff.oldStartDate:null},set:function(e){null!=this.diff&&(this.diff.oldStartDate=e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"endDate",{get:function(){return null!=this.diff&&void 0!==this.diff.newEndDate?this.diff.newEndDate:null!=this.diff&&void 0!==this.diff.oldStartDate?this.diff.oldEndDate:null!=this.getGeoObjectTimeRangeStorage()?this.getGeoObjectTimeRangeStorage().endDate:null},set:function(e){if(!this.isDelete()){var t=this.getGeoObjectTimeRangeStorage();if("UpdateAttributeAction"===this.action.actionType){if(null==this.diff)if(null==t)this.constructNewDiff("CREATE");else{if(t.endDate===e)return;this.constructNewDiff("UPDATE"),this.diff.oldValue=this.getValueFromGeoObjectForDiff()}e===this.diff.oldEndDate?delete this.diff.newEndDate:this.diff.newEndDate=e,this.removeEmptyDiff()}else"CreateGeoObjectAction"===this.action.actionType&&(t.endDate=e);this.onChange(c.ChangeType.END_DATE)}},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"oldEndDate",{get:function(){return null!=this.diff?this.diff.oldEndDate:null},set:function(e){null!=this.diff&&(this.diff.oldEndDate=e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"value",{get:function(){return null!=this.diff&&void 0!==this.diff.newValue?this.diff.newValue:null!=this.diff&&void 0!==this.diff.oldValue?this.diff.oldValue:null!=this.getGeoObjectTimeRangeStorage()?this.getGeoObjectTimeRangeStorage().value:null},set:function(e){if(!this.isDelete()){if(null!=e){if("term"===this.attr.type)e=[e];else if("date"===this.attr.type)e=new Date(e).getTime();else if("geometry"===this.attr.type){if("MultiPoint"===e.type)for(var t=0;t-1&&t.attributeDiff.valuesOverTime.splice(n,1)}else{if(null!=this.diff)return delete this.diff.newValue,delete this.diff.newStartDate,delete this.diff.newEndDate,this.removeEmptyDiff(),void this.onChange(c.ChangeType.REMOVE);null!=this.valueOverTime&&null==this.diff&&(this.diff=new r.ValueOverTimeDiff,this.diff.action="DELETE",this.diff.oid=this.valueOverTime.oid,this.diff.oldValue=this.valueOverTime.value,this.diff.oldStartDate=this.valueOverTime.startDate,this.diff.oldEndDate=this.valueOverTime.endDate,this.action.attributeDiff.valuesOverTime.push(this.diff))}else if("CreateGeoObjectAction"===this.action.actionType){var n,i=this.action.geoObjectJson.attributes[this.attr.code].values;-1!==(n=i.findIndex((function(t){return t.oid===e.valueOverTime.oid})))&&i.splice(n,1)}this.onChange(c.ChangeType.REMOVE)},e.prototype.isDelete=function(){return null!=this.diff&&"DELETE"===this.diff.action},e}();t.ValueOverTimeCREditor=d},592:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ManageVersionsComponent=void 0;var r=n(0),i=n(7),o=n(203),a=n(521),l=n(153),s=n(258),c=(n(87),n(111)),d=(n(30),n(519),n(522),n(112),n(16),n(630)),p=n(22),m=n(31),u=(n(535),n(0)),g=n(519),h=n(16),f=n(112),y=n(87),v=n(522),b=n(30),S=["dateFieldComponents"];function C(e,t){if(1&e&&(u.ɵɵelementStart(0,"h5"),u.ɵɵtext(1),u.ɵɵelementEnd()),2&e){var n=t.item;u.ɵɵadvance(1),u.ɵɵtextInterpolate2("",n.name," : ",n.code,"")}}function E(e,t){1&e&&(u.ɵɵelementStart(0,"p",16),u.ɵɵelement(1,"localize",17),u.ɵɵelementEnd())}function x(e,t){1&e&&(u.ɵɵelementStart(0,"div"),u.ɵɵelement(1,"localize",18),u.ɵɵelementEnd())}function O(e,t){if(1&e&&(u.ɵɵelementStart(0,"div",32),u.ɵɵtext(1),u.ɵɵelementEnd()),2&e){var n=u.ɵɵnextContext().$implicit;u.ɵɵadvance(1),u.ɵɵtextInterpolate1(" ",n.summaryKeyLocalized," ")}}function I(e,t){1&e&&(u.ɵɵelementStart(0,"p",40),u.ɵɵelement(1,"localize",41),u.ɵɵelementEnd())}function w(e,t){if(1&e&&(u.ɵɵelementStart(0,"div"),u.ɵɵelementStart(1,"p",42),u.ɵɵelement(2,"localize",43),u.ɵɵtext(3),u.ɵɵelementEnd(),u.ɵɵelementEnd()),2&e){var n=u.ɵɵnextContext().$implicit,r=u.ɵɵnextContext(2).$implicit,i=u.ɵɵnextContext(4);u.ɵɵadvance(3),u.ɵɵtextInterpolate1(" ",i.getValueAtLocale(r.oldValue,n.locale)," ")}}var M=function(e){return{"has-changed":e}};function T(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"tr",34),u.ɵɵelementStart(1,"td",35),u.ɵɵelementStart(2,"h5"),u.ɵɵelement(3,"convert-key-label",36),u.ɵɵelementEnd(),u.ɵɵelementStart(4,"input",37),u.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.value=e}))("ngModelChange",(function(){u.ɵɵrestoreView(n);var e=u.ɵɵnextContext(2).$implicit;return e.editor.setLocalizedValue(e.value)})),u.ɵɵelementEnd(),u.ɵɵelementStart(5,"div",38),u.ɵɵtemplate(6,I,2,0,"p",39),u.ɵɵelementEnd(),u.ɵɵtemplate(7,w,4,1,"div",9),u.ɵɵelementEnd(),u.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=t.index,o=u.ɵɵnextContext(2),a=o.$implicit,l=o.index,s=u.ɵɵnextContext(4);u.ɵɵadvance(3),u.ɵɵproperty("key",r.locale),u.ɵɵadvance(1),u.ɵɵproperty("ngClass",u.ɵɵpureFunction1(8,M,s.hasLocalizationChanged(a,r.locale)&&!s.isNew))("disabled",s.readonly||"DELETE"===a.summaryKey)("name","loc-val-"+l+"-"+i)("ngModel",r.value)("required","defaultLocale"===r.locale),u.ɵɵadvance(2),u.ɵɵproperty("ngIf","defaultLocale"===r.locale&&!r.value),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",s.hasLocalizationChanged(a,r.locale)&&!s.isNew)}}function j(e,t){if(1&e&&(u.ɵɵelementContainerStart(0),u.ɵɵtemplate(1,T,8,10,"tr",33),u.ɵɵelementContainerEnd()),2&e){var n=u.ɵɵnextContext().$implicit;u.ɵɵadvance(1),u.ɵɵproperty("ngForOf",n.value.localeValues)}}function k(e,t){if(1&e&&(u.ɵɵelementStart(0,"option",48),u.ɵɵtext(1),u.ɵɵelementEnd()),2&e){var n=t.$implicit;u.ɵɵproperty("value",n.code),u.ɵɵadvance(1),u.ɵɵtextInterpolate(n.label.localizedValue)}}function z(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"div"),u.ɵɵelementStart(1,"select",45),u.ɵɵlistener("ngModelChange",(function(e){return u.ɵɵrestoreView(n),u.ɵɵnextContext(2).$implicit.value=e})),u.ɵɵelement(2,"option",46),u.ɵɵtemplate(3,k,2,2,"option",47),u.ɵɵelementEnd(),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext(2),i=r.$implicit,o=r.index,a=u.ɵɵnextContext(4);u.ɵɵadvance(1),u.ɵɵpropertyInterpolate1("id","mod-",a.attributeType.code,""),u.ɵɵproperty("ngClass",u.ɵɵpureFunction1(6,M,i.oldValue&&!a.isNew))("name","mod-term-"+o+"-"+a.attributeType.code)("ngModel",i.value)("disabled",a.readonly||"DELETE"===i.summaryKey),u.ɵɵadvance(2),u.ɵɵproperty("ngForOf",a.getGeoObjectTypeTermAttributeOptions(a.attributeType.code))}}function D(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"div"),u.ɵɵelementStart(1,"input",49),u.ɵɵlistener("ngModelChange",(function(e){return u.ɵɵrestoreView(n),u.ɵɵnextContext(2).$implicit.value=e})),u.ɵɵelementEnd(),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext(2),i=r.$implicit,o=r.index,a=u.ɵɵnextContext(4);u.ɵɵadvance(1),u.ɵɵproperty("ngClass",u.ɵɵpureFunction1(4,M,i.oldValue&&!a.isNew))("name","char-val-"+o)("ngModel",i.value)("disabled",a.readonly||"DELETE"===i.summaryKey)}}function R(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"div"),u.ɵɵelementStart(1,"date-field",50),u.ɵɵlistener("valueChange",(function(e){return u.ɵɵrestoreView(n),u.ɵɵnextContext(2).$implicit.value=e}))("validChange",(function(e){return u.ɵɵrestoreView(n),u.ɵɵnextContext(6).isValid=e})),u.ɵɵelementEnd(),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext(2),i=r.$implicit,o=r.index,a=u.ɵɵnextContext(4);u.ɵɵadvance(1),u.ɵɵproperty("customStyles",i.oldValue&&!a.isNew?"color: orange;":"")("value",i.value)("inputName","date-val-"+o)("allowInfinity",!1)("allowFutureDates",!0)("required",!0)("placement","right")("valid",a.isValid)("disable",a.readonly)}}function P(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"div"),u.ɵɵelementStart(1,"input",51),u.ɵɵlistener("ngModelChange",(function(e){return u.ɵɵrestoreView(n),u.ɵɵnextContext(2).$implicit.value=e})),u.ɵɵelementEnd(),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext(2),i=r.$implicit,o=r.index,a=u.ɵɵnextContext(4);u.ɵɵadvance(1),u.ɵɵproperty("ngClass",u.ɵɵpureFunction1(4,M,i.oldValue&&!a.isNew))("name","int-val-"+o)("ngModel",i.value)("disabled",a.readonly||"DELETE"===i.summaryKey)}}function A(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"div"),u.ɵɵelementStart(1,"label",52),u.ɵɵelementStart(2,"input",53),u.ɵɵlistener("ngModelChange",(function(e){return u.ɵɵrestoreView(n),u.ɵɵnextContext(2).$implicit.value=e})),u.ɵɵelementEnd(),u.ɵɵelementStart(3,"span",54),u.ɵɵelement(4,"localize",55),u.ɵɵelementEnd(),u.ɵɵelementEnd(),u.ɵɵelementStart(5,"label",56),u.ɵɵelementStart(6,"input",57),u.ɵɵlistener("ngModelChange",(function(e){return u.ɵɵrestoreView(n),u.ɵɵnextContext(2).$implicit.value=e})),u.ɵɵelementEnd(),u.ɵɵelementStart(7,"span",54),u.ɵɵelement(8,"localize",58),u.ɵɵelementEnd(),u.ɵɵelementEnd(),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext(2),i=r.index,o=r.$implicit,a=u.ɵɵnextContext(4);u.ɵɵadvance(2),u.ɵɵpropertyInterpolate1("id","mod-",i,"-true"),u.ɵɵpropertyInterpolate1("name","mod-",i,"-true"),u.ɵɵproperty("checked",!0===o.value)("value",!0)("ngModel",o.value)("disabled",a.readonly||"DELETE"===o.summaryKey),u.ɵɵadvance(1),u.ɵɵproperty("ngClass",u.ɵɵpureFunction1(15,M,o.oldValue&&!a.isNew)),u.ɵɵadvance(3),u.ɵɵpropertyInterpolate1("id","mod-",i,"-false"),u.ɵɵpropertyInterpolate1("name","mod-",i,"-false"),u.ɵɵproperty("ngClass",u.ɵɵpureFunction1(17,M,o.oldValue&&!a.isNew))("checked",!1===o.value)("value",!1)("ngModel",o.value)("disabled",a.readonly||"DELETE"===o.summaryKey),u.ɵɵadvance(1),u.ɵɵproperty("ngClass",u.ɵɵpureFunction1(19,M,o.oldValue&&!a.isNew))}}function V(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"span",65),u.ɵɵlistener("click",(function(){u.ɵɵrestoreView(n);var e=u.ɵɵnextContext().$implicit;return u.ɵɵnextContext(4).$implicit.editor.removeType(e)})),u.ɵɵelement(1,"i",66),u.ɵɵelementEnd()}}function N(e,t){1&e&&u.ɵɵelement(0,"span",67)}var L=function(e,t){return{"inline-loading":e,"has-changed":t}};function _(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"div",60),u.ɵɵtext(1),u.ɵɵelementStart(2,"div",61),u.ɵɵelementStart(3,"input",62),u.ɵɵlistener("ngModelChange",(function(e){u.ɵɵrestoreView(n);var r=t.$implicit;return u.ɵɵnextContext(4).$implicit.value.parents[r.code].text=e}))("typeaheadOnSelect",(function(e){u.ɵɵrestoreView(n);var r=t.$implicit,i=u.ɵɵnextContext(4).$implicit;return u.ɵɵnextContext(4).typeaheadOnSelect(i.editor,e,r,i.value,i.startDate)}))("typeaheadLoading",(function(e){u.ɵɵrestoreView(n);var r=t.$implicit;return u.ɵɵnextContext(4).$implicit.value.loading[r.code]=e})),u.ɵɵelementEnd(),u.ɵɵtemplate(4,V,2,0,"span",63),u.ɵɵtemplate(5,N,1,0,"span",64),u.ɵɵelementEnd(),u.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=t.index,o=u.ɵɵnextContext(4),a=o.index,l=o.$implicit,s=u.ɵɵnextContext(4),c=u.ɵɵreference(2);u.ɵɵadvance(1),u.ɵɵtextInterpolate1(" ",r.label," "),u.ɵɵadvance(2),u.ɵɵproperty("name",r.code+"-"+a)("disabled",s.readonly||"DELETE"===l.summaryKey||null==l.startDate||""===l.startDate)("ngModel",l.value.parents[r.code].text)("typeaheadAsync",!0)("typeahead",s.getTypeAheadObservable(l.editor,l.startDate,l.endDate,r,l.value,i))("ngClass",u.ɵɵpureFunction2(13,L,l.value.loading[r.code],l.oldValue&&!s.isNew))("typeaheadOptionsLimit",7)("typeaheadItemTemplate",c)("typeaheadMinLength",0)("typeaheadWaitMs",300),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",!s.readonly),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",s.readonly)}}function F(e,t){if(1&e&&(u.ɵɵelementContainerStart(0),u.ɵɵtemplate(1,_,6,16,"div",59),u.ɵɵelementContainerEnd()),2&e){var n=u.ɵɵnextContext(7);u.ɵɵadvance(1),u.ɵɵproperty("ngForOf",n.hierarchy.types)}}function H(e,t){if(1&e&&(u.ɵɵelementStart(0,"div"),u.ɵɵtemplate(1,F,2,1,"ng-container",9),u.ɵɵelementEnd()),2&e){var n=u.ɵɵnextContext(6);u.ɵɵadvance(1),u.ɵɵproperty("ngIf",null!=n.hierarchy&&null!=n.hierarchy.types&&n.hierarchy.types.length>0)}}function G(e,t){if(1&e&&(u.ɵɵelementContainerStart(0),u.ɵɵtext(1),u.ɵɵelementContainerEnd()),2&e){var n=u.ɵɵnextContext(3).$implicit;u.ɵɵadvance(1),u.ɵɵtextInterpolate1(" ",n.oldValue," ")}}function q(e,t){1&e&&(u.ɵɵelementStart(0,"span",70),u.ɵɵelement(1,"localize",55),u.ɵɵelementEnd())}function B(e,t){1&e&&(u.ɵɵelementStart(0,"span",70),u.ɵɵelement(1,"localize",58),u.ɵɵelementEnd())}function U(e,t){if(1&e&&(u.ɵɵelementContainerStart(0),u.ɵɵtemplate(1,q,2,0,"span",69),u.ɵɵtemplate(2,B,2,0,"span",69),u.ɵɵelementContainerEnd()),2&e){var n=u.ɵɵnextContext(3).$implicit,r=u.ɵɵnextContext(4);u.ɵɵadvance(1),u.ɵɵproperty("ngIf","invalid"===r.attributeType.code?!1===n.oldValue:!0===n.oldValue),u.ɵɵadvance(1),u.ɵɵproperty("ngIf","invalid"===r.attributeType.code?!0===n.oldValue:!1===n.oldValue)}}function $(e,t){if(1&e&&(u.ɵɵelementStart(0,"div"),u.ɵɵelementStart(1,"p",68),u.ɵɵelement(2,"localize",43),u.ɵɵtemplate(3,G,2,1,"ng-container",9),u.ɵɵtemplate(4,U,3,2,"ng-container",9),u.ɵɵelementEnd(),u.ɵɵelementEnd()),2&e){var n=u.ɵɵnextContext(6);u.ɵɵadvance(3),u.ɵɵproperty("ngIf","boolean"!==n.attributeType.type),u.ɵɵadvance(1),u.ɵɵproperty("ngIf","boolean"===n.attributeType.type)}}function J(e,t){1&e&&u.ɵɵelement(0,"localize",81)}function W(e,t){1&e&&u.ɵɵelement(0,"localize",82)}function K(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"button",78),u.ɵɵlistener("click",(function(){u.ɵɵrestoreView(n);var e=u.ɵɵnextContext(3).$implicit;return u.ɵɵnextContext(4).toggleOldGeometryView(e)})),u.ɵɵtemplate(1,J,1,0,"localize",79),u.ɵɵtemplate(2,W,1,0,"localize",80),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext(3).$implicit;u.ɵɵproperty("disabled",r.coordinate&&(null!=r.coordinate.longValid&&!r.coordinate.longValid||null!=r.coordinate.latValid&&!r.coordinate.latValid)),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",!r.oldLayer||!r.oldLayer.isRendering),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",r.oldLayer&&r.oldLayer.isRendering)}}function Q(e,t){1&e&&u.ɵɵelement(0,"localize",83)}function Y(e,t){1&e&&u.ɵɵelement(0,"localize",84)}function X(e,t){1&e&&u.ɵɵelement(0,"localize",87)}function Z(e,t){1&e&&u.ɵɵelement(0,"localize",88)}function ee(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"button",78),u.ɵɵlistener("click",(function(){u.ɵɵrestoreView(n);var e=u.ɵɵnextContext(3).$implicit;return u.ɵɵnextContext(4).toggleGeometryEditing(e)})),u.ɵɵtemplate(1,X,1,0,"localize",85),u.ɵɵtemplate(2,Z,1,0,"localize",86),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext(3).$implicit,i=u.ɵɵnextContext(4);u.ɵɵproperty("disabled",i.readonly||r.coordinate&&(null!=r.coordinate.longValid&&!r.coordinate.longValid||null!=r.coordinate.latValid&&!r.coordinate.latValid)),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",r.newLayer&&!r.newLayer.isEditing),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",r.newLayer&&r.newLayer.isEditing)}}function te(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"i",89),u.ɵɵlistener("click",(function(){u.ɵɵrestoreView(n);var e=u.ɵɵnextContext(3).$implicit;return u.ɵɵnextContext(4).onAddNewVersion(e.editor)})),u.ɵɵelementEnd()}}function ne(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"input",96),u.ɵɵlistener("ngModelChange",(function(e){return u.ɵɵrestoreView(n),u.ɵɵnextContext(4).$implicit.value.coordinates[0][1]=e}))("change",(function(){u.ɵɵrestoreView(n);var e=u.ɵɵnextContext(4).$implicit;return u.ɵɵnextContext(4).manualCoordinateChange(e)})),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext(4),i=r.$implicit,o=r.index,a=u.ɵɵnextContext(4);u.ɵɵproperty("readonly",a.readonly||!(i.newLayer&&i.newLayer.isEditing)||"DELETE"===i.summaryKey)("name","latitude-"+o)("ngModel",i.value.coordinates[0][1])}}function re(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"input",96),u.ɵɵlistener("ngModelChange",(function(e){return u.ɵɵrestoreView(n),u.ɵɵnextContext(4).$implicit.newCoordinateY=e}))("change",(function(){u.ɵɵrestoreView(n);var e=u.ɵɵnextContext(4).$implicit;return u.ɵɵnextContext(4).manualCoordinateChange(e)})),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext(4),i=r.$implicit,o=r.index,a=u.ɵɵnextContext(4);u.ɵɵproperty("readonly",a.readonly||!(i.newLayer&&i.newLayer.isEditing)||"DELETE"===i.summaryKey)("name","latitude-"+o)("ngModel",i.newCoordinateY)}}function ie(e,t){1&e&&(u.ɵɵelementStart(0,"div"),u.ɵɵelementStart(1,"p",40),u.ɵɵelement(2,"localize",97),u.ɵɵelementEnd(),u.ɵɵelementEnd())}function oe(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"input",96),u.ɵɵlistener("ngModelChange",(function(e){return u.ɵɵrestoreView(n),u.ɵɵnextContext(4).$implicit.value.coordinates[0][0]=e}))("change",(function(){u.ɵɵrestoreView(n);var e=u.ɵɵnextContext(4).$implicit;return u.ɵɵnextContext(4).manualCoordinateChange(e)})),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext(4),i=r.$implicit,o=r.index,a=u.ɵɵnextContext(4);u.ɵɵproperty("readonly",a.readonly||!(i.newLayer&&i.newLayer.isEditing)||"DELETE"===i.summaryKey)("name","longitude-"+o)("ngModel",i.value.coordinates[0][0])}}function ae(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"input",96),u.ɵɵlistener("ngModelChange",(function(e){return u.ɵɵrestoreView(n),u.ɵɵnextContext(4).$implicit.newCoordinateX=e}))("change",(function(){u.ɵɵrestoreView(n);var e=u.ɵɵnextContext(4).$implicit;return u.ɵɵnextContext(4).manualCoordinateChange(e)})),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext(4),i=r.$implicit,o=r.index,a=u.ɵɵnextContext(4);u.ɵɵproperty("readonly",a.readonly||!(i.newLayer&&i.newLayer.isEditing)||"DELETE"===i.summaryKey)("name","longitude-"+o)("ngModel",i.newCoordinateX)}}function le(e,t){1&e&&(u.ɵɵelementStart(0,"div"),u.ɵɵelementStart(1,"p",40),u.ɵɵelement(2,"localize",98),u.ɵɵelementEnd(),u.ɵɵelementEnd())}function se(e,t){if(1&e&&(u.ɵɵelementStart(0,"tr"),u.ɵɵelementStart(1,"td",90),u.ɵɵelementStart(2,"h5"),u.ɵɵelement(3,"localize",91),u.ɵɵelementEnd(),u.ɵɵelementStart(4,"div",92),u.ɵɵtemplate(5,ne,1,3,"input",93),u.ɵɵtemplate(6,re,1,3,"input",93),u.ɵɵelementEnd(),u.ɵɵtemplate(7,ie,3,0,"div",9),u.ɵɵelementEnd(),u.ɵɵelementStart(8,"td",94),u.ɵɵelementStart(9,"h5"),u.ɵɵelement(10,"localize",95),u.ɵɵelementEnd(),u.ɵɵelementStart(11,"div",92),u.ɵɵtemplate(12,oe,1,3,"input",93),u.ɵɵtemplate(13,ae,1,3,"input",93),u.ɵɵelementEnd(),u.ɵɵtemplate(14,le,3,0,"div",9),u.ɵɵelementEnd(),u.ɵɵelementEnd()),2&e){var n=u.ɵɵnextContext(3).$implicit;u.ɵɵadvance(5),u.ɵɵproperty("ngIf",n.value.coordinates&&n.value.coordinates[0]),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",null==n.value.coordinates||null==n.value.coordinates[0]),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",n.coordinate&&null!=n.coordinate.latValid&&!n.coordinate.latValid),u.ɵɵadvance(5),u.ɵɵproperty("ngIf",n.value.coordinates&&n.value.coordinates[0]),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",null==n.value.coordinates||null==n.value.coordinates[0]),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",n.coordinate&&null!=n.coordinate.longValid&&!n.coordinate.longValid)}}function ce(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"table",71),u.ɵɵelementStart(1,"tr"),u.ɵɵelementStart(2,"td",72),u.ɵɵtemplate(3,K,3,3,"button",73),u.ɵɵelementStart(4,"button",74),u.ɵɵlistener("click",(function(){u.ɵɵrestoreView(n);var e=u.ɵɵnextContext(2).$implicit;return u.ɵɵnextContext(4).toggleGeometryView(e)})),u.ɵɵtemplate(5,Q,1,0,"localize",75),u.ɵɵtemplate(6,Y,1,0,"localize",76),u.ɵɵelementEnd(),u.ɵɵtemplate(7,ee,3,3,"button",73),u.ɵɵtemplate(8,te,1,0,"i",77),u.ɵɵelementEnd(),u.ɵɵelementEnd(),u.ɵɵtemplate(9,se,15,6,"tr",9),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext(2).$implicit,i=u.ɵɵnextContext(4);u.ɵɵadvance(3),u.ɵɵproperty("ngIf",r.oldValue&&r.newLayer),u.ɵɵadvance(1),u.ɵɵproperty("disabled",r.coordinate&&(null!=r.coordinate.longValid&&!r.coordinate.longValid||null!=r.coordinate.latValid&&!r.coordinate.latValid)),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",!r.newLayer||!r.newLayer.isRendering),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",r.newLayer&&r.newLayer.isRendering),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",r.newLayer&&r.newLayer.isRendering&&i.geoObjectType.isGeometryEditable),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",!(i.readonly||i.isRootOfHierarchy||i.isNew&&"exists"===i.attributeType.code||null!=i.filterDate)),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",r.newLayer&&r.newLayer.isRendering&&("POINT"===i.geoObjectType.geometryType||"MULTIPOINT"===i.geoObjectType.geometryType)&&r.value&&r.value.coordinates&&(1==r.value.coordinates.length||0==r.value.coordinates.length))}}function de(e,t){if(1&e&&(u.ɵɵelementStart(0,"tr",34),u.ɵɵelementStart(1,"td",35),u.ɵɵtemplate(2,z,4,8,"div",9),u.ɵɵtemplate(3,D,2,6,"div",9),u.ɵɵtemplate(4,R,2,9,"div",9),u.ɵɵtemplate(5,P,2,6,"div",9),u.ɵɵtemplate(6,A,9,21,"div",9),u.ɵɵtemplate(7,H,2,1,"div",9),u.ɵɵtemplate(8,$,5,2,"div",9),u.ɵɵtemplate(9,ce,10,7,"table",44),u.ɵɵelementEnd(),u.ɵɵelementEnd()),2&e){var n=u.ɵɵnextContext().$implicit,r=u.ɵɵnextContext(4);u.ɵɵadvance(2),u.ɵɵproperty("ngIf","term"===r.attributeType.type),u.ɵɵadvance(1),u.ɵɵproperty("ngIf","character"===r.attributeType.type),u.ɵɵadvance(1),u.ɵɵproperty("ngIf","date"===r.attributeType.type),u.ɵɵadvance(1),u.ɵɵproperty("ngIf","integer"===r.attributeType.type||"float"===r.attributeType.type),u.ɵɵadvance(1),u.ɵɵproperty("ngIf","boolean"===r.attributeType.type),u.ɵɵadvance(1),u.ɵɵproperty("ngIf","_PARENT_"===r.attributeType.type),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",n.oldValue&&!r.isNew&&"geometry"!==r.attributeType.type),u.ɵɵadvance(1),u.ɵɵproperty("ngIf","geometry"===r.attributeType.type)}}function pe(e,t){if(1&e&&(u.ɵɵelementStart(0,"div"),u.ɵɵelementStart(1,"p",68),u.ɵɵelement(2,"localize",43),u.ɵɵtext(3),u.ɵɵelementEnd(),u.ɵɵelementEnd()),2&e){var n=u.ɵɵnextContext().$implicit;u.ɵɵadvance(3),u.ɵɵtextInterpolate1(" ",n.oldStartDate," ")}}var me=function(e,t){return{"error-message":e,"warning-message":t}};function ue(e,t){if(1&e&&(u.ɵɵelementStart(0,"p",54),u.ɵɵtext(1),u.ɵɵelementEnd()),2&e){var n=t.$implicit;u.ɵɵproperty("ngClass",u.ɵɵpureFunction2(2,me,"ERROR"===n.severity,"WARNING"===n.severity)),u.ɵɵadvance(1),u.ɵɵtextInterpolate1(" ",n.message," ")}}function ge(e,t){if(1&e&&(u.ɵɵelementStart(0,"tr"),u.ɵɵtemplate(1,ue,2,5,"p",99),u.ɵɵelementEnd()),2&e){var n=u.ɵɵnextContext().$implicit;u.ɵɵadvance(1),u.ɵɵproperty("ngForOf",n.editor.conflictMessages)}}function he(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"td",100),u.ɵɵlistener("click",(function(){u.ɵɵrestoreView(n);var e=u.ɵɵnextContext().$implicit;return u.ɵɵnextContext(4).remove(e)})),u.ɵɵpipe(1,"localize"),u.ɵɵelement(2,"i",101),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext(5);u.ɵɵproperty("title",u.ɵɵpipeBind1(1,2,r.filterDate?"changeovertime.manageVersions.date.editing.needs.fullview.message":"changeovertime.manageVersions.remove.version")),u.ɵɵattribute("disabled","exists"===r.attributeType.code||null!=r.filterDate)}}function fe(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"td",100),u.ɵɵlistener("click",(function(){u.ɵɵrestoreView(n);var e=u.ɵɵnextContext().$implicit;return u.ɵɵnextContext(4).remove(e)})),u.ɵɵpipe(1,"localize"),u.ɵɵelement(2,"i",102),u.ɵɵelementEnd()}2&e&&u.ɵɵproperty("title",u.ɵɵpipeBind1(1,1,"changeovertime.manageVersions.revert.version"))}var ye=function(e){return{"geometry-edit-active":e}},ve=function(e,t,n){return{"error-border":e,"warning-border":t,warning:n}};function be(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"tr",20),u.ɵɵelementStart(1,"td",21),u.ɵɵtemplate(2,O,2,1,"div",22),u.ɵɵelementStart(3,"table"),u.ɵɵtemplate(4,j,2,1,"ng-container",9),u.ɵɵtemplate(5,de,10,8,"tr",23),u.ɵɵelementStart(6,"tr",24),u.ɵɵelementStart(7,"td"),u.ɵɵelementStart(8,"h5"),u.ɵɵelement(9,"localize",25),u.ɵɵelementEnd(),u.ɵɵelementStart(10,"date-field",26,27),u.ɵɵlistener("valueChange",(function(e){return t.$implicit.startDate=e}))("change",(function(){return u.ɵɵrestoreView(n),u.ɵɵnextContext(4).onDateChange()})),u.ɵɵpipe(12,"localize"),u.ɵɵelementEnd(),u.ɵɵtemplate(13,pe,4,1,"div",9),u.ɵɵelementEnd(),u.ɵɵelementStart(14,"td"),u.ɵɵelementStart(15,"div",28),u.ɵɵelementStart(16,"h5"),u.ɵɵelement(17,"localize",29),u.ɵɵelementEnd(),u.ɵɵelementStart(18,"date-field",30,27),u.ɵɵlistener("valueChange",(function(e){return t.$implicit.endDate=e}))("change",(function(){return u.ɵɵrestoreView(n),u.ɵɵnextContext(4).onDateChange()})),u.ɵɵpipe(20,"localize"),u.ɵɵelementEnd(),u.ɵɵelementEnd(),u.ɵɵelementEnd(),u.ɵɵelementEnd(),u.ɵɵtemplate(21,ge,2,1,"tr",9),u.ɵɵelementEnd(),u.ɵɵelementEnd(),u.ɵɵtemplate(22,he,3,4,"td",31),u.ɵɵtemplate(23,fe,3,3,"td",31),u.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=t.index,o=u.ɵɵnextContext(4);u.ɵɵproperty("ngClass",u.ɵɵpureFunction1(30,ye,r.newLayer&&r.newLayer.isEditing)),u.ɵɵadvance(1),u.ɵɵproperty("ngClass",u.ɵɵpureFunction3(32,ve,r.hasError(),r.hasWarning(),r.summaryKey&&"UNMODIFIED"!==r.summaryKey)),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",r.summaryKey&&"UNMODIFIED"!==r.summaryKey),u.ɵɵadvance(2),u.ɵɵproperty("ngIf","local"===o.attributeType.type&&r.value),u.ɵɵadvance(1),u.ɵɵproperty("ngIf","geometry"===o.attributeType.type||"_PARENT_"===o.attributeType.type||"term"===o.attributeType.type||"character"===o.attributeType.type||"date"===o.attributeType.type||"integer"===o.attributeType.type||"float"===o.attributeType.type||"boolean"===o.attributeType.type),u.ɵɵadvance(5),u.ɵɵproperty("customStyles",r.oldStartDate&&!o.isNew?"color: orange;":"")("value",r.startDate)("inputName","startDate_"+i)("allowFutureDates",!1)("required",!0)("disable",o.readonly||"DELETE"===r.summaryKey||null!=o.filterDate)("title",u.ɵɵpipeBind1(12,26,o.filterDate&&!o.readonly?"changeovertime.manageVersions.date.editing.needs.fullview.message":"")),u.ɵɵadvance(3),u.ɵɵproperty("ngIf",r.oldStartDate&&!o.isNew),u.ɵɵadvance(5),u.ɵɵproperty("customStyles",r.oldEndDate&&!o.isNew?"color: orange;":"")("value",r.endDate)("inputName","endDate_"+i)("allowInfinity","DELETE"!==r.summaryKey&&!o.readonly)("allowFutureDates",!0)("required",!0)("placement","bottom")("oldDate",r.oldEndDate&&!o.isNew?r.oldEndDate:null)("disable",o.readonly||"DELETE"===r.summaryKey||null!=o.filterDate)("title",u.ɵɵpipeBind1(20,28,null!=o.filterDate?"changeovertime.manageVersions.date.editing.needs.fullview.message":"")),u.ɵɵadvance(3),u.ɵɵproperty("ngIf",r.editor.conflictMessages&&r.editor.conflictMessages.size>0),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",!(o.readonly||o.isNew&&"exists"===o.attributeType.code||"UNMODIFIED"!==r.summaryKey||"NEW"===r.summaryKey)),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",!(o.readonly||o.isNew&&"exists"===o.attributeType.code||"UNMODIFIED"===r.summaryKey))}}function Se(e,t){if(1&e&&(u.ɵɵelementContainerStart(0),u.ɵɵtemplate(1,be,24,36,"tr",19),u.ɵɵelementContainerEnd()),2&e){var n=u.ɵɵnextContext(3);u.ɵɵadvance(1),u.ɵɵproperty("ngForOf",n.viewModels)}}function Ce(e,t){if(1&e&&(u.ɵɵelementStart(0,"div"),u.ɵɵelementStart(1,"table",13),u.ɵɵelementStart(2,"tbody",14),u.ɵɵtemplate(3,E,2,0,"p",15),u.ɵɵtemplate(4,x,2,0,"div",9),u.ɵɵtemplate(5,Se,2,1,"ng-container",9),u.ɵɵelementEnd(),u.ɵɵelementEnd(),u.ɵɵelementEnd()),2&e){var n=u.ɵɵnextContext(2);u.ɵɵadvance(3),u.ɵɵproperty("ngIf",!n.isRootOfHierarchy&&0===n.viewModels.length),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",n.isRootOfHierarchy),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",!n.isRootOfHierarchy)}}function Ee(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"li",103),u.ɵɵelementStart(1,"i",104),u.ɵɵlistener("click",(function(){return u.ɵɵrestoreView(n),u.ɵɵnextContext(2).onAddNewVersion()})),u.ɵɵelement(2,"localize",105),u.ɵɵelementEnd(),u.ɵɵelementEnd()}}function xe(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"div",106),u.ɵɵelementStart(1,"button",107),u.ɵɵlistener("click",(function(){return u.ɵɵrestoreView(n),u.ɵɵnextContext(2).onApprove()})),u.ɵɵpipe(2,"localize"),u.ɵɵelement(3,"localize",108),u.ɵɵelementEnd(),u.ɵɵelementStart(4,"button",109),u.ɵɵlistener("click",(function(){return u.ɵɵrestoreView(n),u.ɵɵnextContext(2).onReject()})),u.ɵɵpipe(5,"localize"),u.ɵɵelement(6,"localize",110),u.ɵɵelementEnd(),u.ɵɵelementStart(7,"button",111),u.ɵɵlistener("click",(function(){return u.ɵɵrestoreView(n),u.ɵɵnextContext(2).onPending()})),u.ɵɵpipe(8,"localize"),u.ɵɵelement(9,"localize",112),u.ɵɵelementEnd(),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext(2);u.ɵɵadvance(1),u.ɵɵproperty("disabled","ACCEPTED"===r.changeRequestAttributeEditor.editAction.approvalStatus)("title",u.ɵɵpipeBind1(2,6,"change.request.action.accept.btn.hover")),u.ɵɵadvance(3),u.ɵɵproperty("disabled","REJECTED"===r.changeRequestAttributeEditor.editAction.approvalStatus)("title",u.ɵɵpipeBind1(5,8,"change.request.action.reject.btn.hover")),u.ɵɵadvance(3),u.ɵɵproperty("disabled","PENDING"===r.changeRequestAttributeEditor.editAction.approvalStatus)("title",u.ɵɵpipeBind1(8,10,"change.request.action.pending.btn.hover"))}}function Oe(e,t){1&e&&(u.ɵɵelementStart(0,"strong",115),u.ɵɵelement(1,"localize",116),u.ɵɵelementEnd())}function Ie(e,t){1&e&&(u.ɵɵelementStart(0,"strong",117),u.ɵɵelement(1,"localize",118),u.ɵɵelementEnd())}function we(e,t){if(1&e&&(u.ɵɵelementStart(0,"div",106),u.ɵɵtemplate(1,Oe,2,0,"strong",113),u.ɵɵtemplate(2,Ie,2,0,"strong",114),u.ɵɵelementEnd()),2&e){var n=u.ɵɵnextContext(2);u.ɵɵadvance(1),u.ɵɵproperty("ngIf","ACCEPTED"===n.changeRequestAttributeEditor.editAction.approvalStatus),u.ɵɵadvance(1),u.ɵɵproperty("ngIf","REJECTED"===n.changeRequestAttributeEditor.editAction.approvalStatus)}}function Me(e,t){if(1&e&&(u.ɵɵelementStart(0,"div",6),u.ɵɵelementStart(1,"ul",7),u.ɵɵelementStart(2,"li",8),u.ɵɵtemplate(3,Ce,6,3,"div",9),u.ɵɵelementEnd(),u.ɵɵtemplate(4,Ee,3,0,"li",10),u.ɵɵelementEnd(),u.ɵɵtemplate(5,xe,10,12,"div",11),u.ɵɵtemplate(6,we,3,2,"div",12),u.ɵɵelementEnd()),2&e){var n=u.ɵɵnextContext();u.ɵɵadvance(3),u.ɵɵproperty("ngIf",n.attributeType),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",!(n.readonly||n.isRootOfHierarchy||n.isNew&&"exists"===n.attributeType.code||null!=n.filterDate)),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",!n.changeRequestEditor.changeRequest.isNew&&"CreateGeoObject"!==n.changeRequestEditor.changeRequest.type&&"PENDING"===n.changeRequestEditor.changeRequest.approvalStatus&&n.changeRequestEditor.changeRequest.permissions.includes("WRITE_APPROVAL_STATUS")&&n.changeRequestAttributeEditor.hasChanges()),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",!n.changeRequestEditor.changeRequest.isNew&&"PENDING"!==n.changeRequestEditor.changeRequest.approvalStatus)}}function Te(e,t){if(1&e&&u.ɵɵelement(0,"geoobject-editor-map",119,120),2&e){var n=u.ɵɵnextContext();u.ɵɵproperty("geometryType",n.geoObjectType.geometryType)("mapHeight",n.mapRowHeight)("readOnly",!n.geoObjectType.isGeometryEditable&&n.readonly)("bboxCode",n.changeRequestEditor.geoObject.attributes.code)("bboxType",n.geoObjectType.code)("bboxDate",n.geomService.getRenderedLayers()[0].startDate)}}var je=function(e){return{width:e}},ke=function(){function e(e,t,n,i,o,a,l,s,c,d){this.geomService=e,this.cdr=t,this.service=n,this.lService=i,this.changeDetectorRef=o,this.dateService=a,this.authService=l,this.requestService=s,this.modalService=c,this.elementRef=d,this.isNew=!1,this.message=null,this.currentDate=new Date,this.isValid=!0,this.isValidChange=new r.EventEmitter,this.readonly=!1,this.isGeometryInlined=!1,this.hierarchy=null,this.filterDate=null,this.showAllInstances=!0,this.viewModels=[],this.isRootOfHierarchy=!1,this.isInitialized=!1}return e.prototype.ngOnInit=function(){this.changeRequestAttributeEditor=this.changeRequestEditor.getEditorForAttribute(this.attributeType,this.hierarchy),this.calculateViewModels(),this.isRootOfHierarchy="_PARENT_"===this.attributeType.type&&(null==this.hierarchy||null==this.hierarchy.types||0===this.hierarchy.types.length),this.isInitialized=!0},e.prototype.ngAfterViewInit=function(){this.isNew&&"exists"===this.attributeType.code&&0===this.viewModels.length&&this.onAddNewVersion()},e.prototype.ngOnChanges=function(e){this.isInitialized&&e.showAllInstances&&e.showAllInstances.previousValue!==e.showAllInstances.currentValue&&this.calculateViewModels()},e.prototype.setFilterDate=function(e,t){void 0===t&&(t=!0),this.filterDate=e,t&&this.calculateViewModels()},e.prototype.checkDateFieldValidity=function(){for(var e=this.dateFieldComponentsArray.toArray(),t=0;t-1&&this.viewModels.splice(t,1)}"geometry"===this.attributeType.type&&this.geomService.reload()},e.prototype.onAddNewVersion=function(e){var t=this.changeRequestAttributeEditor.createNewVersion(e);if(this.isNew&&this.changeRequestEditor.geoObject.attributes.exists){var n=this.changeRequestEditor.geoObject.attributes.exists.values;if(n&&n.length>0){var r=n[0];t.startDate=r.startDate,t.endDate=r.endDate}}this.viewModels.push(new d.VersionDiffView(this,t))},e.prototype.getValueAtLocale=function(e,t){return null==e?null:new l.LocalizedValue(e.localizedValue,e.localeValues).getValue(t)},e.prototype.getGeoObjectTypeTermAttributeOptions=function(e){return o.GeoObjectType.getGeoObjectTypeTermAttributeOptions(this.geoObjectType,e)},e.prototype.calculateViewModels=function(){var e=this,t=[];this.changeRequestAttributeEditor.getEditors(this.showAllInstances).forEach((function(n){if(null==e.filterDate||e.dateService.between(e.filterDate,n.startDate,n.endDate)){var r=new d.VersionDiffView(e,n);t.push(r)}})),this.viewModels=t},e.prototype.onApprove=function(){var e=this;this.requestService.setActionStatus(this.changeRequestAttributeEditor.editAction.oid,s.GovernanceStatus.ACCEPTED).then((function(t){e.changeRequestAttributeEditor.editAction.approvalStatus=s.GovernanceStatus.ACCEPTED})).catch((function(t){e.error(t)}))},e.prototype.onReject=function(){var e=this;this.requestService.setActionStatus(this.changeRequestAttributeEditor.editAction.oid,s.GovernanceStatus.REJECTED).then((function(t){e.changeRequestAttributeEditor.editAction.approvalStatus=s.GovernanceStatus.REJECTED})).catch((function(t){e.error(t)}))},e.prototype.onPending=function(){var e=this;this.requestService.setActionStatus(this.changeRequestAttributeEditor.editAction.oid,s.GovernanceStatus.PENDING).then((function(t){e.changeRequestAttributeEditor.editAction.approvalStatus=s.GovernanceStatus.PENDING})).catch((function(t){e.error(t)}))},e.prototype.error=function(e){this.bsModalRef=c.ErrorHandler.showErrorAsDialog(e,this.modalService)},e.prototype.getTypeAheadObservable=function(e,t,n,r,i,o){var a=this,l=r.code,s=null,c=null,d=null;if(o>0){var p=e.changeRequestAttributeEditor.hierarchy.types[o-1],u=i.parents[p.code];null!=u.geoObject&&null!=u.geoObject.properties.code&&(d=e.changeRequestAttributeEditor.hierarchy.code,s=u.geoObject.properties.code,c=u.geoObject.properties.type)}return m.Observable.create((function(p){if(null==s)for(var m=o;null==s&&m>0;){m-=1;var u=i.parents[e.changeRequestAttributeEditor.hierarchy.types[m].code];null!=u&&(null!=u.geoObject&&null!=u.geoObject.properties.code?(s=u.geoObject.properties.code,d=e.changeRequestAttributeEditor.hierarchy.code,c=e.changeRequestAttributeEditor.hierarchy.types[m].code):null!=u.goCode&&(s=u.goCode,d=e.changeRequestAttributeEditor.hierarchy.code,c=e.changeRequestAttributeEditor.hierarchy.types[m].code))}a.service.getGeoObjectSuggestions(i.parents[r.code].text,l,s,c,d,t,n).then((function(e){p.next(e)}))}))},e.prototype.typeaheadOnSelect=function(e,t,n,r,i){r.parents[n.code].text=t.item.name+" : "+t.item.code,r.parents[n.code].goCode=t.item.code;for(var o=[],a=0;a0?a.parents[0]:null;null!=a&&(r.parents[o.code].geoObject=a.geoObject,r.parents[o.code].text=a.geoObject.properties.displayLabel.localizedValue+" : "+a.geoObject.properties.code)}e.setParentValue(n,r.parents)}))},e.prototype.toggleGeometryEditing=function(e){this.geomService.setEditing(!e.newLayer.isEditing,e.newLayer),"POINT"!==this.geoObjectType.geometryType&&"MULTIPOINT"!==this.geoObjectType.geometryType||(e.coordinate={})},e.prototype.toggleGeometryView=function(e){var t=this;setTimeout((function(){t.mapRowHeight=t.elementRef.nativeElement.children[0].getElementsByClassName("attribute-element-wrapper")[0].offsetHeight}),0);var n=this.getOrCreateLayer(e,"NEW");n.isEditing&&this.geomService.stopEditing(),this.geomService.setRendering(!n.isRendering,n)},e.prototype.toggleOldGeometryView=function(e){var t=this.getOrCreateLayer(e,"OLD");this.geomService.setRendering(!t.isRendering,t)},e.prototype.getOrCreateLayer=function(e,t){return"NEW"===t?(null!=e.newLayer||(e.newLayer=new d.Layer,e.newLayer.oid="NEW_"+e.editor.oid,e.newLayer.isEditing=!1,e.newLayer.isRendering=!1,e.newLayer.zindex=1,e.newLayer.color=s.LayerColor.NEW,e.newLayer.geojson=e.editor.value,e.newLayer.editPropagator=e.editor),e.newLayer):(null!=e.oldLayer||(e.oldLayer=new d.Layer,e.oldLayer.oid="OLD_"+e.editor.oid,e.oldLayer.isEditing=!1,e.oldLayer.isRendering=!1,e.oldLayer.zindex=0,e.oldLayer.color=s.LayerColor.OLD,e.oldLayer.geojson=e.editor.oldValue,e.oldLayer.editPropagator=null),e.oldLayer)},e.prototype.manualCoordinateChange=function(e){if(e.newCoordinateX||e.newCoordinateY){var t=e.newCoordinateX;e.value.coordinates&&e.value.coordinates[0]&&(t=e.value.coordinates[0]);var n=e.newCoordinateY;return e.value.coordinates&&e.value.coordinates[0]&&(n=e.value.coordinates[1]),e.value.coordinates=[[t||0,n||0]],delete e.newCoordinateX,void delete e.newCoordinateY}var r;if(e.coordinate.latValid=(r=e.value.coordinates[0][1],isFinite(r)&&Math.abs(r)<=90),e.coordinate.longValid=function(e){return isFinite(e)&&Math.abs(e)<=180}(e.value.coordinates[0][0]),!e.coordinate.latValid||!e.coordinate.longValid)return this.isValid=!1,void this.isValidChange.emit(this.isValid);this.geomService.setPointCoordinates(e.value.coordinates[0][1],e.value.coordinates[0][0])},e.ɵfac=function(t){return new(t||e)(u.ɵɵdirectiveInject(g.GeometryService),u.ɵɵdirectiveInject(u.ChangeDetectorRef),u.ɵɵdirectiveInject(g.RegistryService),u.ɵɵdirectiveInject(h.LocalizationService),u.ɵɵdirectiveInject(u.ChangeDetectorRef),u.ɵɵdirectiveInject(f.DateService),u.ɵɵdirectiveInject(y.AuthService),u.ɵɵdirectiveInject(v.ChangeRequestService),u.ɵɵdirectiveInject(b.BsModalService),u.ɵɵdirectiveInject(u.ElementRef))},e.ɵcmp=u.ɵɵdefineComponent({type:e,selectors:[["manage-versions"]],viewQuery:function(e,t){if(1&e&&u.ɵɵviewQuery(S,1),2&e){var n;u.ɵɵqueryRefresh(n=u.ɵɵloadQuery())&&(t.dateFieldComponentsArray=n)}},hostVars:1,hostBindings:function(e,t){2&e&&u.ɵɵsyntheticHostProperty("@fadeInOut",!0)},inputs:{isNew:"isNew",readonly:"readonly",isGeometryInlined:"isGeometryInlined",changeRequestEditor:"changeRequestEditor",geoObjectType:"geoObjectType",attributeType:"attributeType",hierarchy:"hierarchy",filterDate:"filterDate",showAllInstances:"showAllInstances"},outputs:{isValidChange:"isValidChange"},features:[u.ɵɵProvidersFeature([],[{provide:p.ControlContainer,useExisting:p.NgForm}]),u.ɵɵNgOnChangesFeature],decls:9,vars:5,consts:[["customItemTemplate",""],["name","manage-versions-form","autocomplete","off"],[1,"row"],[1,"col",2,"display","inline-block",3,"ngStyle"],["class","attribute-version-wrapper",4,"ngIf"],["style","width:55%;display:inline-block;vertical-align:top;margin-top:15px;",3,"geometryType","mapHeight","readOnly","bboxCode","bboxType","bboxDate",4,"ngIf"],[1,"attribute-version-wrapper"],[1,"list-group"],[1,"list-group-item",2,"text-align","left","padding","0"],[4,"ngIf"],["class","list-group-item","style","text-align: left;",4,"ngIf"],["style","margin-left: 15px;",4,"ngIf"],["style","margin-left:15px;",4,"ngIf"],[1,"table","table-striped"],[1,"attribute-element-wrapper"],["class","message",4,"ngIf"],[1,"message"],["key","changeovertime.manageVersions.no.versions.message"],["key","changeovertime.manageVersions.rootOfHierarchy.message"],["class","version-row",3,"ngClass",4,"ngFor","ngForOf"],[1,"version-row",3,"ngClass"],[1,"version-column-wrapper",3,"ngClass"],["class","version-column-indicator",4,"ngIf"],["class","attribute-value-row",4,"ngIf"],[1,"attribute-date-input-row"],["key","changeovertime.manageVersions.tableHeader.label.startDate"],["label","",3,"customStyles","value","inputName","allowFutureDates","required","disable","title","valueChange","change"],["dateFieldComponents",""],[1,"version-edit-date-container"],["key","changeovertime.manageVersions.tableHeader.label.endDate"],["label","",3,"customStyles","value","inputName","allowInfinity","allowFutureDates","required","placement","oldDate","disable","title","valueChange","change"],["class","manage-version-button clickable",3,"title","click",4,"ngIf"],[1,"version-column-indicator"],["class","attribute-value-row",4,"ngFor","ngForOf"],[1,"attribute-value-row"],["colspan","2"],[3,"key"],["type","text",1,"form-control",3,"ngClass","disabled","name","ngModel","required","ngModelChange"],[1,"form-input-validation-error-message-wrapper"],["class","error-message",4,"ngIf"],[1,"error-message"],["key","manage.versions.value.required.message"],[1,"warning-text","display-current-value",2,"padding","5px 0","margin-bottom","0"],["key","change.request.changed.value.prefix"],["style","padding:0;",4,"ngIf"],[1,"select-area",3,"ngClass","id","name","ngModel","disabled","ngModelChange"],["value",""],[3,"value",4,"ngFor","ngForOf"],[3,"value"],["type","text","required","",1,"form-control",3,"ngClass","name","ngModel","disabled","ngModelChange"],["label","",3,"customStyles","value","inputName","allowInfinity","allowFutureDates","required","placement","valid","disable","valueChange","validChange"],["type","number","required","",1,"form-control",3,"ngClass","name","ngModel","disabled","ngModelChange"],[1,"radio","radio-inline",2,"padding-left","0"],["type","radio",1,"inline-radio-input",3,"checked","value","ngModel","id","name","disabled","ngModelChange"],[3,"ngClass"],["key","change.request.boolean.option.true"],[1,"radio","radio-inline"],["type","radio",1,"inline-radio-input",3,"ngClass","checked","value","ngModel","id","name","disabled","ngModelChange"],["key","change.request.boolean.option.false"],["style","float:left;width:100%;",4,"ngFor","ngForOf"],[2,"float","left","width","100%"],[1,"input-group"],["type","text","autocomplete","off",1,"form-control",2,"width","100%",3,"name","disabled","ngModel","typeaheadAsync","typeahead","ngClass","typeaheadOptionsLimit","typeaheadItemTemplate","typeaheadMinLength","typeaheadWaitMs","ngModelChange","typeaheadOnSelect","typeaheadLoading"],["class","input-group-addon clickable addon-alert",3,"click",4,"ngIf"],["class","input-group-addon addon-alert",4,"ngIf"],[1,"input-group-addon","clickable","addon-alert",3,"click"],["aria-hidden","true",1,"fa","fa-times"],[1,"input-group-addon","addon-alert"],[1,"warning-text","display-current-value"],["style","padding-left:3px;",4,"ngIf"],[2,"padding-left","3px"],[2,"padding","0"],["colspan","2",2,"padding-left","0"],["class","btn btn-primary","role","button",3,"disabled","click",4,"ngIf"],["role","button",1,"btn","btn-primary",2,"margin-left","0",3,"disabled","click"],["key","changeovertime.manageVersions.geometry.view",4,"ngIf"],["key","changeovertime.manageVersions.geometry.hide",4,"ngIf"],["class","fa fa-copy clickable",3,"click",4,"ngIf"],["role","button",1,"btn","btn-primary",3,"disabled","click"],["key","changeovertime.manageVersions.geometry.viewOld",4,"ngIf"],["key","changeovertime.manageVersions.geometry.hideOld",4,"ngIf"],["key","changeovertime.manageVersions.geometry.viewOld"],["key","changeovertime.manageVersions.geometry.hideOld"],["key","changeovertime.manageVersions.geometry.view"],["key","changeovertime.manageVersions.geometry.hide"],["key","changeovertime.manageVersions.geometry.edit",4,"ngIf"],["key","changeovertime.manageVersions.geometry.save",4,"ngIf"],["key","changeovertime.manageVersions.geometry.edit"],["key","changeovertime.manageVersions.geometry.save"],[1,"fa","fa-copy","clickable",3,"click"],[2,"width","50%","padding-left","0","padding-right","5px"],["key","geoobject.editor.geometry.latitude.label"],[1,"text-left"],["type","number","class","form-control","required","",3,"readonly","name","ngModel","ngModelChange","change",4,"ngIf"],[2,"width","50%"],["key","geoobject.editor.geometry.longitude.label"],["type","number","required","",1,"form-control",3,"readonly","name","ngModel","ngModelChange","change"],["key","change.request.geometry.invalidLatitude"],["key","change.request.geometry.invalidLongitude"],[3,"ngClass",4,"ngFor","ngForOf"],[1,"manage-version-button","clickable",3,"title","click"],[1,"fa","fa-times"],[1,"fa","fa-undo"],[1,"list-group-item",2,"text-align","left"],[1,"fa","fa-plus","clickable",3,"click"],["key","changeovertime.manageVersions.newVersion"],[2,"margin-left","15px"],["type","submit","role","button",1,"btn","btn-primary",3,"disabled","title","click"],["key","change.request.accept.btn"],["type","submit","role","button",1,"btn","btn-danger",3,"disabled","title","click"],["key","change.request.reject.btn"],["type","submit","role","button",1,"btn","btn-warning",3,"disabled","title","click"],["key","change.request.pending.btn"],["style","color:#6BA542;",4,"ngIf"],["style","color:#6d0400;",4,"ngIf"],[2,"color","#6BA542"],["key","change.request.status.accepted"],[2,"color","#6d0400"],["key","change.request.status.rejected"],[2,"width","55%","display","inline-block","vertical-align","top","margin-top","15px",3,"geometryType","mapHeight","readOnly","bboxCode","bboxType","bboxDate"],["geometryEditor",""]],template:function(e,t){1&e&&(u.ɵɵelementStart(0,"div"),u.ɵɵtemplate(1,C,2,2,"ng-template",null,0,u.ɵɵtemplateRefExtractor),u.ɵɵelementStart(3,"form",1),u.ɵɵelementStart(4,"fieldset"),u.ɵɵelementStart(5,"div",2),u.ɵɵelementStart(6,"div",3),u.ɵɵtemplate(7,Me,7,4,"div",4),u.ɵɵelementEnd(),u.ɵɵtemplate(8,Te,2,6,"geoobject-editor-map",5),u.ɵɵelementEnd(),u.ɵɵelementEnd(),u.ɵɵelementEnd(),u.ɵɵelementEnd()),2&e&&(u.ɵɵadvance(6),u.ɵɵproperty("ngStyle",u.ɵɵpureFunction1(3,je,t.isGeometryInlined&&t.geomService.getRenderedLayers().length>0?"45%":"100%")),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",t.changeRequestEditor.geoObject),u.ɵɵadvance(1),u.ɵɵproperty("ngIf",t.isGeometryInlined&&t.geomService.getRenderedLayers().length>0))},styles:['table[_ngcontent-%COMP%] {\n border-collapse: separate;\n padding: 15px;\n}\n\n.geometry-edit-active[_ngcontent-%COMP%] {\n background-color: #f4fcef !important;\n border: solid 1px #6BA542 !important;\n \n}\n\n.version-column-wrapper.error-border[_ngcontent-%COMP%] {\n\tborder-color: #e30000;\n border-style: solid;\n border-width: 2px;\n}\n\n.version-column-wrapper.warning-border[_ngcontent-%COMP%] {\n border-color: orange;\n border-style: solid;\n border-width: 2px;\n}\n\np.warning-text.display-current-value[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: bold;\n}\n\n.version-column-wrapper[_ngcontent-%COMP%] {\n\tpadding-top: 0px;\n\tpadding-left: 0px;\n\tborder: solid 1px lightgrey;\n}\n.version-column-wrapper.warning[_ngcontent-%COMP%] {\n background-color: inherit;\n border-color: orange;\n border-left: solid 5px orange;\n}\n\n.version-column-wrapper[_ngcontent-%COMP%] .version-column-indicator[_ngcontent-%COMP%] {\n\tposition: relative;\n\tbackground: grey;\n color: white;\n left: -1px;\n font-size: 14px;\n font-weight: bold;\n padding: 0 6px;\n width: fit-content;\n top: -1px;\n}\n.version-column-wrapper.warning[_ngcontent-%COMP%] .version-column-indicator[_ngcontent-%COMP%] {\n background-color: orange;\n}\n\n.manage-version-button[_ngcontent-%COMP%] {\n border: solid 1px lightgrey;\n}\n\n.has-changed[_ngcontent-%COMP%] {\n\tcolor: orange;\n}\n\n.version-row[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] {\n padding-left: 10px;\n}\n.version-row[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding-left: 5px;\n}\n\n.list-group[_ngcontent-%COMP%] {\n margin-bottom: 0;\n}\n\ntd[disabled="true"][_ngcontent-%COMP%] {\n background: #f8f8f8;\n cursor:not-allowed;\n}\ntd[disabled="true"][_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: lightgrey;\n cursor:not-allowed;\n}'],data:{animation:[[i.trigger("fadeInOut",[i.transition("void => *",[i.style({opacity:0}),i.animate("500ms")]),i.transition(":leave",i.animate("500ms",i.style({opacity:0})))])]]}}),e}();t.ManageVersionsComponent=ke,("undefined"==typeof ngDevMode||ngDevMode)&&u.ɵsetClassMetadata(ke,[{type:r.Component,args:[{selector:"manage-versions",templateUrl:"./manage-versions.component.html",styleUrls:["./manage-versions.css"],host:{"[@fadeInOut]":"true"},animations:[[i.trigger("fadeInOut",[i.transition("void => *",[i.style({opacity:0}),i.animate("500ms")]),i.transition(":leave",i.animate("500ms",i.style({opacity:0})))])]],viewProviders:[{provide:p.ControlContainer,useExisting:p.NgForm}]}]}],(function(){return[{type:g.GeometryService},{type:u.ChangeDetectorRef},{type:g.RegistryService},{type:h.LocalizationService},{type:u.ChangeDetectorRef},{type:f.DateService},{type:y.AuthService},{type:v.ChangeRequestService},{type:b.BsModalService},{type:u.ElementRef}]}),{isNew:[{type:r.Input}],dateFieldComponentsArray:[{type:r.ViewChildren,args:["dateFieldComponents"]}],isValidChange:[{type:r.Output}],readonly:[{type:r.Input}],isGeometryInlined:[{type:r.Input}],changeRequestEditor:[{type:r.Input}],geoObjectType:[{type:r.Input}],attributeType:[{type:r.Input}],hierarchy:[{type:r.Input}],filterDate:[{type:r.Input}],showAllInstances:[{type:r.Input}]})},593:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChangeRequestPageComponent=void 0;var r=n(0),i=(n(30),n(33),n(16),n(111)),o=n(0),a=n(16),l=n(30),s=n(33),c=n(122),d=n(86),p=n(589),m=n(1),u=n(555);function g(e,t){1&e&&o.ɵɵelement(0,"submit-change-request")}var h=function(){function e(e,t,n,r){this.localizationService=e,this.modalService=t,this.service=n,this.route=r,this.isAdmin=n.isAdmin(),this.isMaintainer=this.isAdmin||n.isMaintainer(),this.isContributor=this.isAdmin||this.isMaintainer||n.isContributer(),this.isContributorOnly=n.isContributerOnly()}return e.prototype.ngOnInit=function(){var e=this;this.urlSubscriber=this.route.params.subscribe((function(t){e.highlightOid=t.oid}))},e.prototype.ngOnDestroy=function(){this.urlSubscriber.unsubscribe()},e.prototype.error=function(e){this.bsModalRef=i.ErrorHandler.showErrorAsDialog(e,this.modalService)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.LocalizationService),o.ɵɵdirectiveInject(l.BsModalService),o.ɵɵdirectiveInject(a.AuthService),o.ɵɵdirectiveInject(s.ActivatedRoute))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["change-request-page"]],decls:13,vars:3,consts:[[1,"new-admin-design-main"],["id","app-container",1,"container-fluid",2,"height","100%"],[1,"row"],[1,"col-md-12"],[1,"heading"],[1,"inner-col-content-wrapper",2,"padding-top","30px","margin-top","10px"],[3,"toggleId"],[4,"ngIf"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵelement(1,"cgr-header"),o.ɵɵelement(2,"loading-bar"),o.ɵɵelementStart(3,"div",1),o.ɵɵelementStart(4,"div",2),o.ɵɵelementStart(5,"div",3),o.ɵɵelementStart(6,"div"),o.ɵɵelementStart(7,"div",4),o.ɵɵelementStart(8,"h2"),o.ɵɵtext(9),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(10,"div",5),o.ɵɵelement(11,"request-table",6),o.ɵɵtemplate(12,g,1,0,"submit-change-request",7),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(9),o.ɵɵtextInterpolate(t.pageTitle),o.ɵɵadvance(2),o.ɵɵproperty("toggleId",t.highlightOid),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",t.isContributorOnly))},directives:[c.CgrHeaderComponent,d.LoadingBarComponent,p.RequestTableComponent,m.NgIf,u.SubmitChangeRequestComponent],styles:["a.active[_ngcontent-%COMP%] {\n\tborder-bottom: solid 2px #6BA542;\n}"]}),e}();t.ChangeRequestPageComponent=h,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(h,[{type:r.Component,args:[{selector:"change-request-page",templateUrl:"./change-request-page.component.html",styleUrls:["./change-request-page.css"]}]}],(function(){return[{type:a.LocalizationService},{type:l.BsModalService},{type:a.AuthService},{type:s.ActivatedRoute}]}),null)},594:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CascadingGeoSelector=void 0;var r=n(0),i=(n(30),n(519),n(111)),o=n(0),a=n(30),l=n(519),s=n(22),c=n(1),d=n(68),p=["mainForm"];function m(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",10),o.ɵɵtext(1),o.ɵɵelement(2,"input",11),o.ɵɵelementEnd()),2&e){var n=t.$implicit,r=o.ɵɵnextContext().$implicit;o.ɵɵadvance(1),o.ɵɵtextInterpolate1(" ",n.label," "),o.ɵɵadvance(1),o.ɵɵproperty("value",n.geoObject.properties.displayLabel.localizedValue+" : "+n.geoObject.properties.code)("name",r.code+"-"+n.code+"-input")}}function u(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",7),o.ɵɵelementStart(1,"div",12),o.ɵɵelementStart(2,"div",13),o.ɵɵelementStart(3,"button",14),o.ɵɵlistener("click",(function(){o.ɵɵrestoreView(n);var e=o.ɵɵnextContext().$implicit;return o.ɵɵnextContext().onManageVersions(e.code)})),o.ɵɵelement(4,"localize",15),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()}}function g(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",3),o.ɵɵelementStart(1,"div",4),o.ɵɵelementStart(2,"label"),o.ɵɵtext(3),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(4,"div",5),o.ɵɵelementStart(5,"div",6),o.ɵɵelementStart(6,"div",7),o.ɵɵtemplate(7,m,3,3,"div",8),o.ɵɵelementEnd(),o.ɵɵtemplate(8,u,5,0,"div",9),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e){var n=t.$implicit,r=o.ɵɵnextContext();o.ɵɵadvance(3),o.ɵɵtextInterpolate1(" ",n.label," "),o.ɵɵadvance(4),o.ɵɵproperty("ngForOf",n.parents),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",!r.readOnly)}}var h=function(){function e(e,t){this.modalService=e,this.registryService=t,this.valid=new r.EventEmitter,this.isValid=!0,this.readOnly=!1,this.forDate=new Date,this.customEvent=!1,this.onManageVersion=new r.EventEmitter,this.cHierarchies=[],this.parentMap={}}return e.prototype.ngOnInit=function(){var e=this.forDate.getUTCDate();this.dateStr=this.forDate.getUTCFullYear()+"-"+(this.forDate.getUTCMonth()+1)+"-"+(e<10?"0":"")+e,this.forDate=new Date(Date.parse(this.dateStr)),this.calculate()},e.prototype.ngOnChanges=function(e){e.forDate&&this.calculate()},e.prototype.calculate=function(){var e=this,t=this.forDate.getTime();this.isValid=!0,this.cHierarchies=[],this.hierarchies.forEach((function(n){var r={};r.label=n.label,r.code=n.code,e.isValid=e.isValid&&e.hierarchies.length>0,n.entries.forEach((function(e){var i=Date.parse(e.startDate),o=Date.parse(e.endDate);if(t>=i&&t<=o){var a=[];n.types.forEach((function(t){var n={code:t.code,label:t.label};null!=e.parents[t.code]&&(n.text=e.parents[t.code].text,n.geoObject=e.parents[t.code].geoObject),a.push(n)})),r.parents=a}})),e.cHierarchies.push(r)})),this.valid.emit()},e.prototype.getIsValid=function(){return!0},e.prototype.getHierarchies=function(){return this.hierarchies},e.prototype.onManageVersions=function(e){var t=this.hierarchies.find((function(t){return t.code===e}));this.customEvent&&this.onManageVersion.emit(t)},e.prototype.error=function(e){this.bsModalRef=i.ErrorHandler.showErrorAsDialog(e,this.modalService)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.BsModalService),o.ɵɵdirectiveInject(l.RegistryService))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["cascading-geo-selector"]],viewQuery:function(e,t){if(1&e&&o.ɵɵviewQuery(p,1),2&e){var n;o.ɵɵqueryRefresh(n=o.ɵɵloadQuery())&&(t.mainForm=n.first)}},inputs:{hierarchies:"hierarchies",isValid:"isValid",readOnly:"readOnly",forDate:"forDate",customEvent:"customEvent"},outputs:{valid:"valid",onManageVersion:"onManageVersion"},features:[o.ɵɵNgOnChangesFeature],decls:5,vars:1,consts:[["name","cascading-geo-selector",1,"modal-form",2,"overflow","visible"],["mainForm","ngForm"],["class","row-holder","style","overflow:visible;",4,"ngFor","ngForOf"],[1,"row-holder",2,"overflow","visible"],[1,"label-holder"],[1,"holder"],[1,"container",2,"width","100%"],[1,"row"],["class","col-sm-12","style","float:left;width:150px;",4,"ngFor","ngForOf"],["class","row",4,"ngIf"],[1,"col-sm-12",2,"float","left","width","150px"],["type","text","disabled","",1,"form-control",2,"width","150px",3,"value","name"],[1,"col-sm-12"],[1,"button-holder",2,"padding","20px 0 20px 0","text-align","left"],["type","submit","role","button",1,"btn","btn-primary",3,"click"],["key","changeovertime.manageVersions.button.label"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"form",0,1),o.ɵɵelementStart(2,"fieldset"),o.ɵɵelementStart(3,"div"),o.ɵɵtemplate(4,g,9,3,"div",2),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(4),o.ɵɵproperty("ngForOf",t.cHierarchies))},directives:[s.ɵangular_packages_forms_forms_ba,s.NgControlStatusGroup,s.NgForm,c.NgForOf,c.NgIf,d.LocalizeComponent],encapsulation:2}),e}();t.CascadingGeoSelector=h,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(h,[{type:r.Component,args:[{selector:"cascading-geo-selector",templateUrl:"./cascading-geo-selector.html"}]}],(function(){return[{type:a.BsModalService},{type:l.RegistryService}]}),{hierarchies:[{type:r.Input}],valid:[{type:r.Output}],isValid:[{type:r.Input}],readOnly:[{type:r.Input}],mainForm:[{type:r.ViewChild,args:["mainForm"]}],forDate:[{type:r.Input}],customEvent:[{type:r.Input}],onManageVersion:[{type:r.Output}]})},595:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MasterListComponent=void 0;var r=n(0),i=(n(33),n(30),n(31)),o=n(379),a=(n(519),n(112),n(588)),l=n(556),s=n(111),c=(n(16),n(0)),d=n(519),p=n(16),m=n(33),u=n(112),g=n(30),h=n(122),f=n(86),y=n(1),v=n(68),b=n(204),S=n(156),C=n(262),E=n(73),x=n(22),O=n(260),I=n(154),w=n(113);function M(e,t){1&e&&c.ɵɵelement(0,"progress-bar")}function T(e,t){if(1&e&&(c.ɵɵelementStart(0,"div",27),c.ɵɵtext(1),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext();c.ɵɵadvance(1),c.ɵɵtextInterpolate(n.message)}}function j(e,t){if(1&e&&(c.ɵɵelementStart(0,"div",8),c.ɵɵelementStart(1,"h2"),c.ɵɵtext(2),c.ɵɵelementEnd(),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext();c.ɵɵadvance(2),c.ɵɵtextInterpolate1(" ",n.list.displayLabel," ")}}function k(e,t){if(1&e&&(c.ɵɵelementStart(0,"li"),c.ɵɵtext(1),c.ɵɵelementEnd()),2&e){var n=t.$implicit;c.ɵɵadvance(1),c.ɵɵtextInterpolate(n.label)}}function z(e,t){if(1&e&&(c.ɵɵelementStart(0,"div",33),c.ɵɵelementStart(1,"div",34),c.ɵɵelement(2,"localize",35),c.ɵɵelementStart(3,"ol"),c.ɵɵtemplate(4,k,2,1,"li",36),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext(2);c.ɵɵadvance(4),c.ɵɵproperty("ngForOf",n.filter)}}function D(e,t){if(1&e&&(c.ɵɵelementStart(0,"div",7),c.ɵɵelementStart(1,"div",28),c.ɵɵelementStart(2,"h4"),c.ɵɵelement(3,"localize",29),c.ɵɵtext(4," : "),c.ɵɵelementStart(5,"span",30),c.ɵɵtext(6),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementStart(7,"h4"),c.ɵɵelement(8,"localize",31),c.ɵɵtext(9," : "),c.ɵɵelementStart(10,"span",30),c.ɵɵtext(11),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵtemplate(12,z,5,1,"div",32),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext();c.ɵɵadvance(6),c.ɵɵtextInterpolate1(" ",n.formatDate(n.list.publishDate)," "),c.ɵɵadvance(5),c.ɵɵtextInterpolate1(" ",n.formatDate(n.list.forDate)," "),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",n.filter.length>0)}}function R(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"span",37),c.ɵɵelementStart(1,"boolean-field",38),c.ɵɵlistener("valueChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext().showInvalid=e}))("change",(function(){return c.ɵɵrestoreView(n),c.ɵɵnextContext().onShowInvalidChange()})),c.ɵɵelementEnd(),c.ɵɵelementEnd()}if(2&e){var r=c.ɵɵnextContext();c.ɵɵadvance(1),c.ɵɵproperty("value",r.showInvalid)("localizeLabelKey","masterlist.showInvalid")}}var P=function(){return{"fa fa-refresh clickable":!0}};function A(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"span",11),c.ɵɵlistener("click",(function(){return c.ɵɵrestoreView(n),c.ɵɵnextContext().onPublish()})),c.ɵɵelement(1,"i",39),c.ɵɵelement(2,"localize",40),c.ɵɵelementEnd()}2&e&&(c.ɵɵadvance(1),c.ɵɵproperty("ngClass",c.ɵɵpureFunction0(1,P)))}var V=function(e,t,n,r,i,o){return["/registry/dataset-location-manager",e,t,n,r,"__NEW__",i,o]};function N(e,t){if(1&e&&(c.ɵɵelementStart(0,"button",41),c.ɵɵelement(1,"localize",42),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext();c.ɵɵproperty("routerLink",c.ɵɵpureFunction6(1,V,n.list.oid,n.list.typeCode,!n.isWritable,n.list.forDate,!n.isWritable||n.list.isAbstract,"ML"+(n.isPublished?"T":"F")+n.list.oid))}}function L(e,t){if(1&e&&(c.ɵɵelementStart(0,"li"),c.ɵɵelementStart(1,"a",49),c.ɵɵtext(2),c.ɵɵelementEnd(),c.ɵɵelementEnd()),2&e){var n=t.$implicit,r=c.ɵɵnextContext(2);c.ɵɵadvance(1),c.ɵɵproperty("routerLink",c.ɵɵpureFunction6(2,V,r.list.oid,n.code,!r.isWritable,r.list.forDate,!r.isWritable||r.list.isAbstract,"ML"+(r.isPublished?"T":"F")+r.list.oid)),c.ɵɵadvance(1),c.ɵɵtextInterpolate(n.label)}}function _(e,t){if(1&e&&(c.ɵɵelementStart(0,"span",43),c.ɵɵelementStart(1,"button",44),c.ɵɵelement(2,"localize",42),c.ɵɵelement(3,"span",45),c.ɵɵelementEnd(),c.ɵɵelementStart(4,"ul",46),c.ɵɵelementStart(5,"li"),c.ɵɵelement(6,"localize",47),c.ɵɵelementEnd(),c.ɵɵelement(7,"li",48),c.ɵɵtemplate(8,L,3,9,"li",36),c.ɵɵelementEnd(),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext();c.ɵɵadvance(8),c.ɵɵproperty("ngForOf",n.list.subtypes)}}function F(e,t){1&e&&c.ɵɵelement(0,"localize",50)}function H(e,t){1&e&&c.ɵɵelement(0,"localize",51)}function G(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"div",65),c.ɵɵelementStart(1,"a",66),c.ɵɵlistener("click",(function(){c.ɵɵrestoreView(n);var e=c.ɵɵnextContext().$implicit;return c.ɵɵnextContext(2).toggleFilter(e)})),c.ɵɵelement(2,"i",67),c.ɵɵpipe(3,"localize"),c.ɵɵelementEnd(),c.ɵɵelementEnd()}if(2&e){var r=c.ɵɵnextContext().$implicit;c.ɵɵadvance(1),c.ɵɵattribute("aria-expanded",!r.isCollapsed),c.ɵɵadvance(1),c.ɵɵproperty("title",c.ɵɵpipeBind1(3,2,"button.filter.helptext"))}}function q(e,t){1&e&&c.ɵɵelement(0,"i",68)}function B(e,t){1&e&&c.ɵɵelement(0,"i",69)}function U(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"input",73),c.ɵɵlistener("ngModelChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext(2).$implicit.value=e}))("keyup.enter",(function(){c.ɵɵrestoreView(n);var e=c.ɵɵnextContext(2).$implicit;return c.ɵɵnextContext(2).handleInputChange(e)})),c.ɵɵelementEnd()}if(2&e){var r=c.ɵɵnextContext(2).$implicit;c.ɵɵproperty("name",r.name)("ngModel",r.value)}}function $(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"div"),c.ɵɵelementStart(1,"date-field",74),c.ɵɵlistener("valueChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext(2).$implicit.value.start=e}))("change",(function(){c.ɵɵrestoreView(n);var e=c.ɵɵnextContext(2).$implicit;return c.ɵɵnextContext(2).handleDateChange(e)})),c.ɵɵelementEnd(),c.ɵɵelementStart(2,"date-field",74),c.ɵɵlistener("valueChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext(2).$implicit.value.end=e}))("change",(function(){c.ɵɵrestoreView(n);var e=c.ɵɵnextContext(2).$implicit;return c.ɵɵnextContext(2).handleDateChange(e)})),c.ɵɵelementEnd(),c.ɵɵelementEnd()}if(2&e){var r=c.ɵɵnextContext(2).$implicit;c.ɵɵadvance(1),c.ɵɵproperty("value",r.value.start)("classNames","search-input")("inputName",r.name+"Start")("allowInfinity",!1)("allowFutureDates",!1)("required",!1)("placement","bottom"),c.ɵɵadvance(1),c.ɵɵproperty("value",r.value.end)("classNames","search-input")("inputName",r.name+"End")("allowInfinity",!1)("allowFutureDates",!1)("required",!1)("placement","bottom")}}var J=function(e){return{"inline-loading":e}};function W(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"input",75),c.ɵɵlistener("ngModelChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext(2).$implicit.search=e}))("typeaheadOnSelect",(function(e){c.ɵɵrestoreView(n);var t=c.ɵɵnextContext(2).$implicit;return c.ɵɵnextContext(2).handleListChange(e,t)}))("typeaheadLoading",(function(e){c.ɵɵrestoreView(n);var t=c.ɵɵnextContext(2).$implicit;return c.ɵɵnextContext(2).changeTypeaheadLoading(t,e)})),c.ɵɵpipe(1,"localize"),c.ɵɵelementEnd()}if(2&e){var r=c.ɵɵnextContext(2).$implicit,i=c.ɵɵnextContext(2);c.ɵɵproperty("placeholder",c.ɵɵpipeBind1(1,9,"masterlist.search")+"...")("name",r.name)("ngModel",r.search)("typeaheadAsync",!0)("typeahead",i.getTypeaheadDataObservable(r))("typeaheadOptionsLimit",100)("typeaheadMinLength",0)("typeaheadWaitMs",300)("ngClass",c.ɵɵpureFunction1(11,J,r.loading))}}function K(e,t){if(1&e&&(c.ɵɵelementStart(0,"div"),c.ɵɵelementStart(1,"div",70),c.ɵɵtemplate(2,U,1,2,"input",71),c.ɵɵtemplate(3,$,3,14,"div",1),c.ɵɵtemplate(4,W,2,13,"input",72),c.ɵɵelementEnd(),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext().$implicit;c.ɵɵadvance(1),c.ɵɵproperty("collapse",n.isCollapsed),c.ɵɵadvance(1),c.ɵɵproperty("ngIf","input"===n.type),c.ɵɵadvance(1),c.ɵɵproperty("ngIf","date"===n.type),c.ɵɵadvance(1),c.ɵɵproperty("ngIf","list"===n.type)}}function Q(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"th",59),c.ɵɵtemplate(1,G,4,4,"div",60),c.ɵɵelementStart(2,"a",61),c.ɵɵlistener("click",(function(){c.ɵɵrestoreView(n);var e=t.$implicit;return c.ɵɵnextContext(2).onSort(e)})),c.ɵɵtext(3),c.ɵɵelementEnd(),c.ɵɵelementStart(4,"a",62),c.ɵɵlistener("click",(function(){c.ɵɵrestoreView(n);var e=t.$implicit;return c.ɵɵnextContext(2).onSort(e)})),c.ɵɵtemplate(5,q,1,0,"i",63),c.ɵɵtemplate(6,B,1,0,"i",64),c.ɵɵelementEnd(),c.ɵɵtemplate(7,K,5,4,"div",1),c.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=c.ɵɵnextContext(2);c.ɵɵadvance(1),c.ɵɵproperty("ngIf",i.isFilterable(r)),c.ɵɵadvance(2),c.ɵɵtextInterpolate1("",r.label," "),c.ɵɵadvance(2),c.ɵɵproperty("ngIf","ASC"===i.sort.order&&i.sort.attribute===r.name),c.ɵɵadvance(1),c.ɵɵproperty("ngIf","DESC"===i.sort.order&&i.sort.attribute===r.name),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",i.isFilterable(r))}}function Y(e,t){if(1&e&&(c.ɵɵelementStart(0,"td",80),c.ɵɵtext(1),c.ɵɵelementEnd()),2&e){var n=t.$implicit,r=c.ɵɵnextContext().$implicit;c.ɵɵadvance(1),c.ɵɵtextInterpolate(r[n.name])}}var X=function(e,t,n,r,i,o,a){return["/registry/dataset-location-manager",e,t,n,r,i,o,a]};function Z(e,t){if(1&e&&(c.ɵɵelementStart(0,"tr",76),c.ɵɵelementStart(1,"td",77),c.ɵɵelement(2,"a",78),c.ɵɵelementEnd(),c.ɵɵtemplate(3,Y,2,1,"td",79),c.ɵɵelementEnd()),2&e){var n=t.$implicit,r=c.ɵɵnextContext(2);c.ɵɵadvance(2),c.ɵɵproperty("ngClass",r.isWritable?"fa fa-pencil":"fa fa-eye")("routerLink",c.ɵɵpureFunction7(3,X,r.list.oid,r.list.typeCode,!r.isWritable,r.list.forDate,n.code,!r.isWritable||r.list.isAbstract,"ML"+(r.isPublished?"T":"F")+r.list.oid)),c.ɵɵadvance(1),c.ɵɵproperty("ngForOf",r.listAttrs)}}var ee=function(e,t,n){return{itemsPerPage:e,currentPage:t,totalItems:n}};function te(e,t){if(1&e&&(c.ɵɵelementStart(0,"div",52),c.ɵɵelementStart(1,"table",53),c.ɵɵelementStart(2,"thead",54),c.ɵɵelementStart(3,"tr"),c.ɵɵelementStart(4,"th",55),c.ɵɵelement(5,"localize",56),c.ɵɵelementEnd(),c.ɵɵtemplate(6,Q,8,5,"th",57),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementStart(7,"tbody"),c.ɵɵtemplate(8,Z,4,11,"tr",58),c.ɵɵpipe(9,"paginate"),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext();c.ɵɵadvance(6),c.ɵɵproperty("ngForOf",n.listAttrs),c.ɵɵadvance(2),c.ɵɵproperty("ngForOf",c.ɵɵpipeBind2(9,2,n.page.results,c.ɵɵpureFunction3(5,ee,n.page.pageSize,n.page.pageNumber,n.page.count)))}}var ne=function(){function e(e,t,n,r,i,o,a){this.service=e,this.pService=t,this.route=n,this.dateService=r,this.modalService=i,this.localizeService=o,this.authService=a,this.message=null,this.list=null,this.p=1,this.current="",this.filter=[],this.selected=[],this.page={count:0,pageNumber:1,pageSize:100,results:[]},this.sort={attribute:"code",order:"ASC"},this.isPublished=!0,this.isRefreshing=!1,this.isWritable=!1,this.showInvalid=!1,this.searchPlaceholder="",this.searchPlaceholder=o.decode("masterlist.search")}return e.prototype.ngOnInit=function(){var e=this,t=this.route.snapshot.paramMap.get("oid");this.isPublished="true"===this.route.snapshot.paramMap.get("published"),this.service.getMasterListVersion(t).then((function(t){e.setList(t);var n=e.list.orgCode,r=null!=e.list.superTypeCode?e.list.superTypeCode:e.list.typeCode;e.isWritable=e.authService.isGeoObjectTypeRC(n,r),e.onPageChange(1),null!=t.refreshProgress&&e.handleProgressChange(t.refreshProgress)}));var n="wss://"+window.location.hostname+(window.location.port?":"+window.location.port:"")+acp;this.notifier=o.webSocket(n+"/websocket/progress/"+t),this.notifier.subscribe((function(t){null!=t.content?e.handleProgressChange(t.content):e.handleProgressChange(t)}))},e.prototype.ngOnDestroy=function(){this.notifier.complete()},e.prototype.ngAfterViewInit=function(){},e.prototype.setList=function(e){this.list=e,this.listAttrs=this.calculateListAttributes()},e.prototype.onShowInvalidChange=function(){this.onPageChange(1)},e.prototype.onPageChange=function(e){var t=this;this.message=null,this.service.data(this.list.oid,e,this.page.pageSize,this.getFilter(),this.sort).then((function(e){t.page=e,t.listAttrs=t.calculateListAttributes()})).catch((function(e){t.error(e)}))},e.prototype.onSort=function(e){this.sort.attribute===e.name?this.sort.order="ASC"===this.sort.order?"DESC":"ASC":this.sort={attribute:e.name,order:"ASC"},this.onPageChange(1)},e.prototype.clearFilters=function(){this.list.attributes.forEach((function(e){e.search=null})),this.filter=[],this.showInvalid=!1,this.selected=[],this.onPageChange(1)},e.prototype.toggleFilter=function(e){e.isCollapsed=!e.isCollapsed},e.prototype.getFilter=function(){var e=JSON.parse(JSON.stringify(this.filter));return this.showInvalid||e.push({attribute:"invalid",value:"false"}),e},e.prototype.calculateListAttributes=function(){var e;if(this.showInvalid)e=this.list.attributes;else{var t=(e=JSON.parse(JSON.stringify(this.list.attributes))).findIndex((function(e){return"invalid"===e.name}));-1!==t&&e.splice(t,1)}return e.forEach((function(e){e.isCollapsed=!0})),e},e.prototype.getTypeaheadDataObservable=function(e){var t=this;return i.Observable.create((function(n){t.message=null,t.service.values(t.list.oid,e.search,e.name,e.base,t.getFilter()).then((function(e){e.unshift({label:"["+t.localizeService.decode("masterlist.nofilter")+"]",value:null}),n.next(e)})).catch((function(e){t.error(e)}))}))},e.prototype.handleProgressChange=function(e){this.isRefreshing=e.current0)},e.prototype.onEdit=function(e){var t=this,n=this.modalService.show(l.GeoObjectEditorComponent,{backdrop:!0,ignoreBackdropClick:!0});n.content.configureAsExisting(e.code,this.list.typeCode,this.list.forDate,this.list.isGeometryEditable),n.content.setMasterListId(this.list.oid),n.content.setOnSuccessCallback((function(){t.onPageChange(t.page.pageNumber)}))},e.prototype.onPublish=function(){var e=this;this.message=null,this.service.publishMasterList(this.list.oid).toPromise().then((function(t){e.isRefreshing=!0})).catch((function(t){e.error(t)}))},e.prototype.onNewGeoObject=function(){var e=this,t=this.modalService.show(l.GeoObjectEditorComponent,{backdrop:!0,ignoreBackdropClick:!0});t.content.configureAsNew(this.list.typeCode,this.list.forDate,this.list.isGeometryEditable),t.content.setMasterListId(this.list.oid),t.content.setOnSuccessCallback((function(){e.onPageChange(e.page.pageNumber)}))},e.prototype.onExport=function(){var e=this;this.bsModalRef=this.modalService.show(a.ExportFormatModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0}),this.bsModalRef.content.onFormat.subscribe((function(t){"SHAPEFILE"===t?window.location.href=acp+"/master-list/export-shapefile?oid="+e.list.oid+"&filter="+encodeURIComponent(JSON.stringify(e.getFilter())):"EXCEL"===t&&(window.location.href=acp+"/master-list/export-spreadsheet?oid="+e.list.oid+"&filter="+encodeURIComponent(JSON.stringify(e.getFilter())))}))},e.prototype.changeTypeaheadLoading=function(e,t){e.loading=t},e.prototype.formatDate=function(e){return this.dateService.formatDateForDisplay(e)},e.prototype.onWheel=function(e){e.target.parentElement.closest("table").parentElement.scrollLeft+=e.deltaY,e.preventDefault()},e.prototype.error=function(e){this.message=s.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(c.ɵɵdirectiveInject(d.RegistryService),c.ɵɵdirectiveInject(p.ProgressService),c.ɵɵdirectiveInject(m.ActivatedRoute),c.ɵɵdirectiveInject(u.DateService),c.ɵɵdirectiveInject(g.BsModalService),c.ɵɵdirectiveInject(p.LocalizationService),c.ɵɵdirectiveInject(p.AuthService))},e.ɵcmp=c.ɵɵdefineComponent({type:e,selectors:[["master-list"]],decls:34,vars:14,consts:[[1,"new-admin-design-main"],[4,"ngIf"],["id","app-container",1,"container-fluid"],["class","alert alert-danger","role","alert",4,"ngIf"],[1,"row"],["class","col-md-12",4,"ngIf"],["class","row form-group",4,"ngIf"],[1,"row","form-group"],[1,"col-md-12"],[1,"button-holder","pull-right"],["class","clickable","style","vertical-align:middle;display:inline-block;",4,"ngIf"],[1,"clickable",2,"padding","10px",3,"click"],[1,"fa-stack","fa-md"],[1,"fa","fa-filter","fa-stack-2x",2,"font-size","25px"],[1,"fa","fa-times-circle","fa-stack-1x",2,"font-size","13px","top","4px","left","6px"],["key","masterlist.clearFilters"],["class","clickable","style","padding: 10px;",3,"click",4,"ngIf"],["type","submit","routerLinkActive","active","class","btn btn-primary","role","button",3,"routerLink",4,"ngIf"],["class","dropdown",4,"ngIf"],["type","submit","role","button",1,"btn","btn-primary",3,"click"],["key","io.export.allrows",4,"ngIf"],["key","io.export.filteredrows",4,"ngIf"],["class","col-md-12 table-responsive text-nowrap","id","list-view-table","style","max-height:calc(100vh - 439px); min-height:calc(100vh - 439px);",4,"ngIf"],[2,"display","inline-block",3,"pageChange"],[2,"display","inline-block","margin-left","20px","vertical-align","middle","color","#cacaca","font-weight","bold"],["key","masterlist.pagination.showing"],["key","masterlist.pagination.of"],["role","alert",1,"alert","alert-danger"],[1,"col-md-3"],["key","masterlist.generatedDate"],[1,"date-string-display"],["key","masterlist.forDate"],["class","col-md-6",4,"ngIf"],[1,"col-md-6"],[1,"col-md-12","table-responsive"],["key","masterlist.filters"],[4,"ngFor","ngForOf"],[1,"clickable",2,"vertical-align","middle","display","inline-block"],[3,"value","localizeLabelKey","valueChange","change"],["aria-hidden","true",2,"font-size","24px","vertical-align","middle","padding-right","5px",3,"ngClass"],["key","masterlist.publish"],["type","submit","routerLinkActive","active","role","button",1,"btn","btn-primary",3,"routerLink"],["key","masterlist.newGeoObject"],[1,"dropdown"],["type","button","id","dropdownMenu1","data-toggle","dropdown","aria-haspopup","true","aria-expanded","true",1,"btn","btn-primary","dropdown-toggle"],[1,"caret"],["aria-labelledby","dropdownMenu1",1,"dropdown-menu"],["key","masterlist.newGeoObject.selectASubtype",2,"padding-left","10px"],["role","separator",1,"divider"],["routerLinkActive","active",3,"routerLink"],["key","io.export.allrows"],["key","io.export.filteredrows"],["id","list-view-table",1,"col-md-12","table-responsive","text-nowrap",2,"max-height","calc(100vh - 439px)","min-height","calc(100vh - 439px)"],[1,"list-table","table","table-bordered","table-striped"],[2,"position","sticky","top","0","background","#ececec"],[1,"label-column",2,"width","3%","position","sticky","top","0"],["key","masterlist.view.column"],["style","position: sticky;top: 0","class","label-column",4,"ngFor","ngForOf"],["class","fade-ngRepeat-item",4,"ngFor","ngForOf"],[1,"label-column",2,"position","sticky","top","0"],["style","display: table-cell; padding-right: 10px; vertical-align: middle;",4,"ngIf"],[2,"display","table-cell","word-break","keep-all","word-wrap","normal",3,"click"],[2,"display","table-cell","vertical-align","middle","padding-left","5px",3,"click"],["class","fa fa-arrow-down","style","font-size: inherit;",4,"ngIf"],["class","fa fa-arrow-up","style","font-size: inherit;",4,"ngIf"],[2,"display","table-cell","padding-right","10px","vertical-align","middle"],["aria-controls","collapseBasic",1,"",3,"click"],[1,"fa","fa-filter",2,"font-size","20px",3,"title"],[1,"fa","fa-arrow-down",2,"font-size","inherit"],[1,"fa","fa-arrow-up",2,"font-size","inherit"],["id","collapseBasic",3,"collapse"],["type","text","class","form-control search-input",3,"name","ngModel","ngModelChange","keyup.enter",4,"ngIf"],["type","text","typeaheadOptionField","label","class","form-control","autocomplete","off","container","body",3,"placeholder","name","ngModel","typeaheadAsync","typeahead","typeaheadOptionsLimit","typeaheadMinLength","typeaheadWaitMs","ngClass","ngModelChange","typeaheadOnSelect","typeaheadLoading",4,"ngIf"],["type","text",1,"form-control","search-input",3,"name","ngModel","ngModelChange","keyup.enter"],["label","",3,"value","classNames","inputName","allowInfinity","allowFutureDates","required","placement","valueChange","change"],["type","text","typeaheadOptionField","label","autocomplete","off","container","body",1,"form-control",3,"placeholder","name","ngModel","typeaheadAsync","typeahead","typeaheadOptionsLimit","typeaheadMinLength","typeaheadWaitMs","ngClass","ngModelChange","typeaheadOnSelect","typeaheadLoading"],[1,"fade-ngRepeat-item"],[1,"label-column",2,"width","3%","text-align","center"],["routerLinkActive","active",1,"fa",2,"padding","3px",3,"ngClass","routerLink"],["class","label-column",4,"ngFor","ngForOf"],[1,"label-column"]],template:function(e,t){1&e&&(c.ɵɵelementStart(0,"div",0),c.ɵɵelement(1,"cgr-header"),c.ɵɵelement(2,"loading-bar"),c.ɵɵtemplate(3,M,1,0,"progress-bar",1),c.ɵɵelementStart(4,"div",2),c.ɵɵtemplate(5,T,2,1,"div",3),c.ɵɵelementStart(6,"div",4),c.ɵɵtemplate(7,j,3,1,"div",5),c.ɵɵelementEnd(),c.ɵɵtemplate(8,D,13,3,"div",6),c.ɵɵelementStart(9,"div",7),c.ɵɵelementStart(10,"div",8),c.ɵɵelementStart(11,"div",9),c.ɵɵtemplate(12,R,2,2,"span",10),c.ɵɵelementStart(13,"span",11),c.ɵɵlistener("click",(function(){return t.clearFilters()})),c.ɵɵelementStart(14,"span",12),c.ɵɵelement(15,"i",13),c.ɵɵelement(16,"i",14),c.ɵɵelementEnd(),c.ɵɵelement(17,"localize",15),c.ɵɵelementEnd(),c.ɵɵtemplate(18,A,3,2,"span",16),c.ɵɵtemplate(19,N,2,8,"button",17),c.ɵɵtemplate(20,_,9,1,"span",18),c.ɵɵelementStart(21,"button",19),c.ɵɵlistener("click",(function(){return t.onExport()})),c.ɵɵtemplate(22,F,1,0,"localize",20),c.ɵɵtemplate(23,H,1,0,"localize",21),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementStart(24,"div",7),c.ɵɵtemplate(25,te,10,9,"div",22),c.ɵɵelementEnd(),c.ɵɵelementStart(26,"div",4),c.ɵɵelementStart(27,"div",8),c.ɵɵelementStart(28,"pagination-controls",23),c.ɵɵlistener("pageChange",(function(e){return t.onPageChange(e)})),c.ɵɵelementEnd(),c.ɵɵelementStart(29,"span",24),c.ɵɵelement(30,"localize",25),c.ɵɵtext(31),c.ɵɵelement(32,"localize",26),c.ɵɵtext(33),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd()),2&e&&(c.ɵɵadvance(3),c.ɵɵproperty("ngIf",t.isRefreshing),c.ɵɵadvance(2),c.ɵɵproperty("ngIf",null!=t.message),c.ɵɵadvance(2),c.ɵɵproperty("ngIf",t.list),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",t.list),c.ɵɵadvance(4),c.ɵɵproperty("ngIf",t.isWritable),c.ɵɵadvance(6),c.ɵɵproperty("ngIf",!t.isPublished),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",t.isWritable&&!t.list.isAbstract),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",t.isWritable&&t.list.isAbstract),c.ɵɵadvance(2),c.ɵɵproperty("ngIf",0===t.filter.length),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",t.filter.length>0),c.ɵɵadvance(2),c.ɵɵproperty("ngIf",t.list),c.ɵɵadvance(6),c.ɵɵtextInterpolate2("  ",(t.page.pageNumber-1)*t.page.pageSize," - ",t.page.pageNumber*t.page.pageSize,"  "),c.ɵɵadvance(2),c.ɵɵtextInterpolate1(" ",t.page.count," "))},directives:[h.CgrHeaderComponent,f.LoadingBarComponent,y.NgIf,v.LocalizeComponent,b.PaginationControlsComponent,S.ProgressBarComponent,y.NgForOf,C.BooleanFieldComponent,y.NgClass,m.RouterLinkActive,m.RouterLink,m.RouterLinkWithHref,E.CollapseDirective,x.DefaultValueAccessor,x.NgControlStatus,x.NgModel,O.DateFieldComponent,I.TypeaheadDirective],pipes:[b.PaginatePipe,w.LocalizePipe],styles:[".version-busy-overlay[_ngcontent-%COMP%]\n{\n\theight:100%;\n\twidth:100%;\n\tbackground-color: #CCCCCC;\n position: absolute;\n display: block;\n opacity: 0.8;\n z-index: 99999 !important;\n}"]}),e}();t.MasterListComponent=ne,("undefined"==typeof ngDevMode||ngDevMode)&&c.ɵsetClassMetadata(ne,[{type:r.Component,args:[{selector:"master-list",templateUrl:"./master-list.component.html",styleUrls:["./master-list.component.css"]}]}],(function(){return[{type:d.RegistryService},{type:p.ProgressService},{type:m.ActivatedRoute},{type:u.DateService},{type:g.BsModalService},{type:p.LocalizationService},{type:p.AuthService}]}),null)},596:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PublishedMasterListHistoryComponent=void 0;var r=n(0),i=(n(33),n(30),n(379)),o=n(531),a=n(111),l=(n(519),n(112),n(16),n(569)),s=n(0),c=n(519),d=n(33),p=n(30),m=n(16),u=n(112),g=n(1),h=n(68),f=n(22),y=n(204),v=n(113);function b(e,t){if(1&e&&(s.ɵɵelementStart(0,"div",14),s.ɵɵtext(1),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext();s.ɵɵadvance(1),s.ɵɵtextInterpolate(n.message)}}function S(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"div",15),s.ɵɵelementStart(1,"div",16),s.ɵɵelementStart(2,"form",null,17),s.ɵɵelementStart(4,"div",18),s.ɵɵelementStart(5,"button",19),s.ɵɵlistener("click",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext().onPublish()})),s.ɵɵpipe(6,"localize"),s.ɵɵelement(7,"localize",20),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵreference(3);s.ɵɵadvance(5),s.ɵɵproperty("disabled",r.invalid)("title",s.ɵɵpipeBind1(6,2,"masterList.publish.help.text"))}}function C(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"button",36),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext().$implicit;return s.ɵɵnextContext(2).onExportToFhir(e)})),s.ɵɵelement(1,"localize",37),s.ɵɵelementEnd()}}function E(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"button",36),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext().$implicit;return s.ɵɵnextContext(2).onPublishShapefile(e)})),s.ɵɵelement(1,"localize",38),s.ɵɵelementEnd()}}function x(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"button",30),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext().$implicit;return s.ɵɵnextContext(2).onDownloadShapefile(e)})),s.ɵɵelement(1,"localize",39),s.ɵɵelementEnd()}}function O(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"button",40),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext().$implicit;return s.ɵɵnextContext(2).onDeleteMasterListVersion(e)})),s.ɵɵelement(1,"localize",41),s.ɵɵelementEnd()}}function I(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"tr"),s.ɵɵelementStart(1,"td",28),s.ɵɵelementStart(2,"div",29),s.ɵɵelementStart(3,"button",30),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=t.$implicit;return s.ɵɵnextContext(2).onView(e)})),s.ɵɵelement(4,"localize",31),s.ɵɵelementEnd(),s.ɵɵtemplate(5,C,2,0,"button",32),s.ɵɵtemplate(6,E,2,0,"button",32),s.ɵɵtemplate(7,x,2,0,"button",33),s.ɵɵtemplate(8,O,2,0,"button",34),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(9,"td",25),s.ɵɵelementStart(10,"span",35),s.ɵɵtext(11),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(12,"td",25),s.ɵɵelementStart(13,"span",35),s.ɵɵtext(14),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=s.ɵɵnextContext(2);s.ɵɵadvance(5),s.ɵɵproperty("ngIf",i.list&&i.list.write),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",i.list&&i.list.write),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",r.shapefile),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",i.list&&i.list.write),s.ɵɵadvance(3),s.ɵɵtextInterpolate1(" ",i.formatDate(r.forDate)," "),s.ɵɵadvance(3),s.ɵɵtextInterpolate1(" ",i.formatDate(r.publishDate)," ")}}function w(e,t){if(1&e&&(s.ɵɵelementStart(0,"div",21),s.ɵɵelementStart(1,"table",22),s.ɵɵelementStart(2,"thead"),s.ɵɵelementStart(3,"tr"),s.ɵɵelementStart(4,"th",23),s.ɵɵelement(5,"localize",24),s.ɵɵelementEnd(),s.ɵɵelementStart(6,"th",25),s.ɵɵelement(7,"localize",26),s.ɵɵelementEnd(),s.ɵɵelementStart(8,"th",25),s.ɵɵelement(9,"localize",27),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(10,"tbody"),s.ɵɵtemplate(11,I,15,6,"tr",12),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext();s.ɵɵadvance(11),s.ɵɵproperty("ngForOf",n.list.versions)}}function M(e,t){if(1&e&&(s.ɵɵelementStart(0,"span",45),s.ɵɵtext(1),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext().$implicit;s.ɵɵadvance(1),s.ɵɵtextInterpolate1(" ",n.exception.message," ")}}function T(e,t){if(1&e&&(s.ɵɵelementStart(0,"span",45),s.ɵɵtext(1),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext().$implicit;s.ɵɵadvance(1),s.ɵɵtextInterpolate1(" ",n.message," ")}}function j(e,t){if(1&e&&(s.ɵɵelementStart(0,"tr"),s.ɵɵelementStart(1,"td",10),s.ɵɵelementStart(2,"div",42),s.ɵɵelement(3,"i",43),s.ɵɵelementStart(4,"p",44),s.ɵɵelementStart(5,"span",45),s.ɵɵtext(6),s.ɵɵelementEnd(),s.ɵɵelementStart(7,"span",45),s.ɵɵtext(8),s.ɵɵelementEnd(),s.ɵɵelementStart(9,"span",45),s.ɵɵtext(10),s.ɵɵelementEnd(),s.ɵɵelementStart(11,"span",45),s.ɵɵtext(12),s.ɵɵelementEnd(),s.ɵɵtemplate(13,M,2,1,"span",46),s.ɵɵtemplate(14,T,2,1,"span",46),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd()),2&e){var n=t.$implicit;s.ɵɵadvance(6),s.ɵɵtextInterpolate1(" ",n.createDate," "),s.ɵɵadvance(2),s.ɵɵtextInterpolate1(" ",n.author," "),s.ɵɵadvance(2),s.ɵɵtextInterpolate1(" ",n.type," "),s.ɵɵadvance(2),s.ɵɵtextInterpolate1(" ",n.status," "),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",n.exception),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",n.message)}}function k(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"div",47),s.ɵɵelementStart(1,"pagination-controls",48),s.ɵɵlistener("pageChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext().onPageChange(e)})),s.ɵɵelementEnd(),s.ɵɵelementEnd()}}var z=function(e,t,n){return{itemsPerPage:e,currentPage:t,totalItems:n}},D=function(){function e(e,t,n,r,i,o){this.service=e,this.router=t,this.modalService=n,this.authService=r,this.localizeService=i,this.dateService=o,this.message=null,this.list=null,this.page={pageSize:10,pageNumber:1,count:1,results:[]},this.isAdmin=r.isAdmin()}return e.prototype.ngOnInit=function(){var e=this;this.service.getMasterListHistory(this.oid,"PUBLISHED").then((function(t){e.list=t,e.onPageChange(1)}));var t="wss://"+window.location.hostname+(window.location.port?":"+window.location.port:"")+acp;this.notifier=i.webSocket(t+"/websocket/notify"),this.notifier.subscribe((function(t){"PUBLISH_JOB_CHANGE"===t.type&&e.onPageChange(e.page.pageNumber)}))},e.prototype.ngOnDestroy=function(){this.notifier.complete()},e.prototype.onDeleteMasterListVersion=function(e){var t=this;this.bsModalRef=this.modalService.show(a.ConfirmModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0}),this.bsModalRef.content.message=this.localizeService.decode("confirm.modal.verify.delete")+" ["+e.forDate+"]",this.bsModalRef.content.submitText=this.localizeService.decode("modal.button.delete"),this.bsModalRef.content.onConfirm.subscribe((function(n){t.service.deleteMasterListVersion(e.oid).then((function(e){t.updateList()})).catch((function(e){t.error(e)}))}))},e.prototype.updateList=function(){var e=this;this.service.getMasterListHistory(this.oid,"PUBLISHED").then((function(t){e.list=t})).catch((function(t){e.error(t)}))},e.prototype.onPublish=function(){var e=this;this.message=null,this.service.publishMasterListVersions(this.list.oid).then((function(t){e.onPageChange(e.page.pageNumber)})).catch((function(t){e.error(t)}))},e.prototype.onPageChange=function(e){var t=this;null!=this.list&&(this.message=null,this.service.getPublishMasterListJobs(this.list.oid,this.page.pageSize,e,"createDate",!0).then((function(e){t.page=e})).catch((function(e){t.error(e)})),this.updateList())},e.prototype.onViewMetadata=function(){this.bsModalRef=this.modalService.show(o.PublishModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0}),this.bsModalRef.content.readonly=!0,this.bsModalRef.content.master=this.list,this.bsModalRef.content.isNew=!1},e.prototype.onView=function(e){this.router.navigate(["/registry/master-list/",e.oid,!0])},e.prototype.onPublishShapefile=function(e){var t=this;this.service.publishShapefile(e.oid).then((function(){t.onPageChange(t.page.pageNumber)})).catch((function(e){t.error(e)}))},e.prototype.onExportToFhir=function(e){var t=this;this.bsModalRef=this.modalService.show(l.ExportSystemModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0}),this.bsModalRef.content.onSystemSet.subscribe((function(n){t.service.exportToFhir(e.oid,n).then((function(){t.onPageChange(t.page.pageNumber)})).catch((function(e){t.error(e)}))}))},e.prototype.onDownloadShapefile=function(e){window.location.href=acp+"/master-list/download-shapefile?oid="+e.oid},e.prototype.formatDate=function(e){return this.dateService.formatDateForDisplay(e)},e.prototype.error=function(e){this.message=a.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(s.ɵɵdirectiveInject(c.RegistryService),s.ɵɵdirectiveInject(d.Router),s.ɵɵdirectiveInject(p.BsModalService),s.ɵɵdirectiveInject(m.AuthService),s.ɵɵdirectiveInject(m.LocalizationService),s.ɵɵdirectiveInject(u.DateService))},e.ɵcmp=s.ɵɵdefineComponent({type:e,selectors:[["published-master-list-history"]],inputs:{oid:"oid"},decls:18,vars:12,consts:[["class","alert alert-danger","role","alert",4,"ngIf"],["style","margin-bottom: 10px;","class","row",4,"ngIf"],[1,"row","form-group"],["class","col-md-12 table-responsive",4,"ngIf"],[1,"row"],[1,"col-md-12","order-md-1"],[1,"list-group"],[1,"solid-table-wrapper"],[1,"table","table-striped"],[2,"height","56px"],[2,"vertical-align","middle"],["key","masterlist.jobs"],[4,"ngFor","ngForOf"],["class","solid-table-footer",4,"ngIf"],["role","alert",1,"alert","alert-danger"],[1,"row",2,"margin-bottom","10px"],[1,"col-md-12"],["myForm","ngForm"],[1,"form-group"],["type","submit","role","button",1,"btn","btn-primary",2,"margin-left","15px",3,"disabled","title","click"],["key","masterlist.publish.versions"],[1,"col-md-12","table-responsive"],[1,"list-table","table",2,"border-bottom","solid lightgrey 3px"],[1,"label-column",2,"width","50%"],["key","masterlist.actions"],[1,"label-column",2,"width","15%"],["key","masterlist.forDate"],["key","masterlist.publishDate"],[2,"width","70%"],[1,"button-holder"],["type","submit","role","button",1,"btn","btn-primary",3,"click"],["key","modal.button.view"],["type","submit","class","btn btn-default","role","button",3,"click",4,"ngIf"],["type","submit","class","btn btn-primary","role","button",3,"click",4,"ngIf"],["type","submit","class","btn btn-danger","role","button",3,"click",4,"ngIf"],[1,"date-string-display"],["type","submit","role","button",1,"btn","btn-default",3,"click"],["key","masterlist.export-to-fhir"],["key","masterlist.publish-shapefile"],["key","masterlist.download"],["type","submit","role","button",1,"btn","btn-danger",3,"click"],["key","modal.button.delete"],[1,"wrapper"],["aria-hidden","true",1,"fa","fa-file",2,"position","absolute","font-size","40px"],[2,"padding-left","60px"],[2,"display","block"],["style","display: block;",4,"ngIf"],[1,"solid-table-footer"],[3,"pageChange"]],template:function(e,t){1&e&&(s.ɵɵelementStart(0,"div"),s.ɵɵtemplate(1,b,2,1,"div",0),s.ɵɵtemplate(2,S,8,4,"div",1),s.ɵɵelementStart(3,"div",2),s.ɵɵtemplate(4,w,12,1,"div",3),s.ɵɵelementEnd(),s.ɵɵelementStart(5,"div",4),s.ɵɵelementStart(6,"div",5),s.ɵɵelementStart(7,"ul",6),s.ɵɵelementStart(8,"div",7),s.ɵɵelementStart(9,"table",8),s.ɵɵelementStart(10,"thead"),s.ɵɵelementStart(11,"tr",9),s.ɵɵelementStart(12,"th",10),s.ɵɵelement(13,"localize",11),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(14,"tbody"),s.ɵɵtemplate(15,j,15,6,"tr",12),s.ɵɵpipe(16,"paginate"),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵtemplate(17,k,2,0,"div",13),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd()),2&e&&(s.ɵɵadvance(1),s.ɵɵproperty("ngIf",null!=t.message),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",t.list&&t.list.write),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.list),s.ɵɵadvance(11),s.ɵɵproperty("ngForOf",s.ɵɵpipeBind2(16,5,t.page.results,s.ɵɵpureFunction3(8,z,t.page.pageSize,t.page.pageNumber,t.page.count))),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.page.results.length>0))},directives:[g.NgIf,h.LocalizeComponent,g.NgForOf,f.ɵangular_packages_forms_forms_ba,f.NgControlStatusGroup,f.NgForm,y.PaginationControlsComponent],pipes:[y.PaginatePipe,v.LocalizePipe],encapsulation:2}),e}();t.PublishedMasterListHistoryComponent=D,("undefined"==typeof ngDevMode||ngDevMode)&&s.ɵsetClassMetadata(D,[{type:r.Component,args:[{selector:"published-master-list-history",templateUrl:"./published-master-list-history.component.html",styleUrls:[]}]}],(function(){return[{type:c.RegistryService},{type:d.Router},{type:p.BsModalService},{type:m.AuthService},{type:m.LocalizationService},{type:u.DateService}]}),{oid:[{type:r.Input}]})},597:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MasterListHistoryComponent=void 0;var r=n(0),i=(n(33),n(30),n(111)),o=n(531),a=(n(519),n(112),n(16),n(0)),l=n(519),s=n(33),c=n(30),d=n(16),p=n(112),m=n(1),u=n(22),g=n(68),h=n(260);function f(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",4),a.ɵɵtext(1),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵtextInterpolate(n.message)}}function y(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",5),a.ɵɵelementStart(1,"div",6),a.ɵɵelementStart(2,"form",7,8),a.ɵɵelementStart(4,"div",9),a.ɵɵelementStart(5,"label",10),a.ɵɵelement(6,"localize",11),a.ɵɵelementEnd(),a.ɵɵelementStart(7,"date-field",12),a.ɵɵlistener("valueChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().forDate=e}))("validChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().isForDateValid=e})),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"button",13),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().onPublish()})),a.ɵɵelement(9,"localize",14),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵreference(3),i=a.ɵɵnextContext();a.ɵɵadvance(7),a.ɵɵproperty("value",i.forDate)("valid",i.isForDateValid)("inputName","forDate")("allowFutureDates",!1)("required",!0)("placement","right"),a.ɵɵadvance(1),a.ɵɵproperty("disabled",r.invalid||!i.isForDateValid)}}function v(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"button",29),a.ɵɵlistener("click",(function(){a.ɵɵrestoreView(n);var e=a.ɵɵnextContext().$implicit;return a.ɵɵnextContext(2).onDelete(e)})),a.ɵɵelement(1,"localize",30),a.ɵɵelementEnd()}}function b(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"tr"),a.ɵɵelementStart(1,"td",23),a.ɵɵelementStart(2,"div",24),a.ɵɵelementStart(3,"button",25),a.ɵɵlistener("click",(function(){a.ɵɵrestoreView(n);var e=t.$implicit;return a.ɵɵnextContext(2).onView(e)})),a.ɵɵelement(4,"localize",26),a.ɵɵelementEnd(),a.ɵɵtemplate(5,v,2,0,"button",27),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(6,"td",19),a.ɵɵelementStart(7,"span",28),a.ɵɵtext(8),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(9,"td",19),a.ɵɵelementStart(10,"span",28),a.ɵɵtext(11),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=a.ɵɵnextContext(2);a.ɵɵadvance(5),a.ɵɵproperty("ngIf",i.list.write),a.ɵɵadvance(3),a.ɵɵtextInterpolate1(" ",i.formatDate(r.forDate)," "),a.ɵɵadvance(3),a.ɵɵtextInterpolate1(" ",i.formatDate(r.createDate)," ")}}function S(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",15),a.ɵɵelementStart(1,"table",16),a.ɵɵelementStart(2,"thead"),a.ɵɵelementStart(3,"tr"),a.ɵɵelementStart(4,"th",17),a.ɵɵelement(5,"localize",18),a.ɵɵelementEnd(),a.ɵɵelementStart(6,"th",19),a.ɵɵelement(7,"localize",20),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"th",19),a.ɵɵelement(9,"localize",21),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(10,"tbody"),a.ɵɵtemplate(11,b,12,3,"tr",22),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(11),a.ɵɵproperty("ngForOf",n.list.versions)}}var C=function(){function e(e,t,n,r,i){this.service=e,this.router=t,this.modalService=n,this.localizeService=r,this.dateService=i,this.message=null,this.list=null,this.forDate="",this.isForDateValid=!0}return e.prototype.ngOnInit=function(){var e=this;this.service.getMasterListHistory(this.oid,"EXPLORATORY").then((function(t){e.list=t}))},e.prototype.onPublish=function(){var e=this;this.message=null,this.service.createMasterListVersion(this.list.oid,this.forDate).then((function(t){e.list.versions.push(t)})).catch((function(t){e.error(t)}))},e.prototype.onViewMetadata=function(){this.bsModalRef=this.modalService.show(o.PublishModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0}),this.bsModalRef.content.readonly=!0,this.bsModalRef.content.master=this.list,this.bsModalRef.content.originalPublishStartDate=this.list.publishingStartDate,this.bsModalRef.content.isNew=!1},e.prototype.onView=function(e){this.router.navigate(["/registry/master-list/",e.oid,!1])},e.prototype.onDelete=function(e){var t=this;this.bsModalRef=this.modalService.show(i.ConfirmModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0}),this.bsModalRef.content.message=this.localizeService.decode("confirm.modal.verify.delete")+" ["+e.forDate+"]",this.bsModalRef.content.submitText=this.localizeService.decode("modal.button.delete"),this.bsModalRef.content.onConfirm.subscribe((function(n){t.service.deleteMasterListVersion(e.oid).then((function(n){t.list.versions=t.list.versions.filter((function(t,n,r){return t.oid!==e.oid}))})).catch((function(e){t.error(e)}))}))},e.prototype.formatDate=function(e){return this.dateService.formatDateForDisplay(e)},e.prototype.error=function(e){this.message=i.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(l.RegistryService),a.ɵɵdirectiveInject(s.Router),a.ɵɵdirectiveInject(c.BsModalService),a.ɵɵdirectiveInject(d.LocalizationService),a.ɵɵdirectiveInject(p.DateService))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["master-list-history"]],inputs:{oid:"oid"},decls:5,vars:3,consts:[["class","alert alert-danger","role","alert",4,"ngIf"],["style","margin-bottom: 10px;","class","row",4,"ngIf"],[1,"row","form-group"],["class","col-md-12 table-responsive",4,"ngIf"],["role","alert",1,"alert","alert-danger"],[1,"row",2,"margin-bottom","10px"],[1,"col-md-12"],["autocomplete","off",2,"margin-left","10px"],["myForm","ngForm"],[1,"form-group"],["for","forDate",2,"display","block","margin-bottom","0"],["key","masterlist.publishingFor"],["label","",2,"display","inline-grid",3,"value","valid","inputName","allowFutureDates","required","placement","valueChange","validChange"],["type","submit","role","button",1,"btn","btn-primary",2,"margin-left","15px",3,"disabled","click"],["key","masterlist.publishNewVersion"],[1,"col-md-12","table-responsive"],[1,"list-table","table"],[1,"label-column",2,"width","50%"],["key","masterlist.actions"],[1,"label-column",2,"width","15%"],["key","masterlist.forDate"],["key","masterlist.generatedDate"],[4,"ngFor","ngForOf"],[2,"width","70%"],[1,"button-holder"],["type","submit","role","button",1,"btn","btn-primary",3,"click"],["key","modal.button.view"],["type","submit","class","btn btn-danger","role","button",3,"click",4,"ngIf"],[1,"date-string-display"],["type","submit","role","button",1,"btn","btn-danger",3,"click"],["key","modal.button.delete"]],template:function(e,t){1&e&&(a.ɵɵelementStart(0,"div"),a.ɵɵtemplate(1,f,2,1,"div",0),a.ɵɵtemplate(2,y,10,7,"div",1),a.ɵɵelementStart(3,"div",2),a.ɵɵtemplate(4,S,12,1,"div",3),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e&&(a.ɵɵadvance(1),a.ɵɵproperty("ngIf",null!=t.message),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.list&&t.list.exploratory),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",t.list))},directives:[m.NgIf,u.ɵangular_packages_forms_forms_ba,u.NgControlStatusGroup,u.NgForm,g.LocalizeComponent,h.DateFieldComponent,m.NgForOf],encapsulation:2}),e}();t.MasterListHistoryComponent=C,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(C,[{type:r.Component,args:[{selector:"master-list-history",templateUrl:"./master-list-history.component.html",styleUrls:[]}]}],(function(){return[{type:l.RegistryService},{type:s.Router},{type:c.BsModalService},{type:d.LocalizationService},{type:p.DateService}]}),{oid:[{type:r.Input}]})},598:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MasterListViewComponent=void 0;var r=n(0),i=(n(33),n(30),n(519),n(531)),o=n(0),a=n(519),l=n(30),s=n(33),c=n(122),d=n(86),p=n(1),m=n(68),u=n(596),g=n(597);function h(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",2),o.ɵɵelementStart(1,"div",3),o.ɵɵelementStart(2,"h3"),o.ɵɵtext(3),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext();o.ɵɵadvance(3),o.ɵɵtextInterpolate(n.list.displayLabel.localizedValue)}}function f(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",2),o.ɵɵelementStart(1,"div",3),o.ɵɵelementStart(2,"h5"),o.ɵɵelementStart(3,"b"),o.ɵɵelementStart(4,"a",10),o.ɵɵlistener("click",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext().onViewMetadata(e)})),o.ɵɵelement(5,"localize",11),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()}}var y=function(e){return{active:e}};function v(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"a",6),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext().renderContent("EXP")})),o.ɵɵelement(1,"localize",12),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext();o.ɵɵproperty("ngClass",o.ɵɵpureFunction1(1,y,"EXP"===r.content))}}function b(e,t){if(1&e&&o.ɵɵelement(0,"published-master-list-history",13),2&e){var n=o.ɵɵnextContext();o.ɵɵproperty("oid",n.list.oid)}}function S(e,t){if(1&e&&o.ɵɵelement(0,"master-list-history",13),2&e){var n=o.ɵɵnextContext();o.ɵɵproperty("oid",n.list.oid)}}var C=function(){function e(e,t,n){this.service=e,this.modalService=t,this.route=n,this.content="",this.list=null}return e.prototype.ngOnInit=function(){var e=this,t=this.route.snapshot.paramMap.get("oid");null!=t&&(this.content="PUB"),this.service.getMasterList(t).then((function(t){e.list=t,t.read&&(e.content="EXP")}))},e.prototype.onViewMetadata=function(e){e.preventDefault(),this.bsModalRef=this.modalService.show(i.PublishModalComponent,{animated:!0,backdrop:!0,ignoreBackdropClick:!0}),this.bsModalRef.content.readonly=!0,this.bsModalRef.content.master=this.list,this.bsModalRef.content.isNew=!1},e.prototype.renderContent=function(e){this.content=e},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.RegistryService),o.ɵɵdirectiveInject(l.BsModalService),o.ɵɵdirectiveInject(s.ActivatedRoute))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["master-list-view"]],decls:15,vars:8,consts:[[1,"new-admin-design-main"],["id","app-container",1,"container-fluid"],[1,"row"],[1,"col-md-12"],["class","row",4,"ngIf"],["style","margin-right: 10px; font-size: 20px;",3,"ngClass","click",4,"ngIf"],[2,"margin-right","10px","font-size","20px",3,"ngClass","click"],["key","lists.published.link.label"],[1,"inner-col-content-wrapper",2,"padding-top","30px","margin-top","10px"],[3,"oid",4,"ngIf"],["href","#",3,"click"],["key","masterlist.view"],["key","lists.exploratory.link.label"],[3,"oid"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵelement(1,"cgr-header"),o.ɵɵelement(2,"loading-bar"),o.ɵɵelementStart(3,"div",1),o.ɵɵelementStart(4,"div",2),o.ɵɵelementStart(5,"div",3),o.ɵɵtemplate(6,h,4,1,"div",4),o.ɵɵtemplate(7,f,6,0,"div",4),o.ɵɵelementStart(8,"div"),o.ɵɵtemplate(9,v,2,3,"a",5),o.ɵɵelementStart(10,"a",6),o.ɵɵlistener("click",(function(){return t.renderContent("PUB")})),o.ɵɵelement(11,"localize",7),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(12,"div",8),o.ɵɵtemplate(13,b,1,1,"published-master-list-history",9),o.ɵɵtemplate(14,S,1,1,"master-list-history",9),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(6),o.ɵɵproperty("ngIf",t.list),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",t.list),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",t.list&&t.list.read),o.ɵɵadvance(1),o.ɵɵproperty("ngClass",o.ɵɵpureFunction1(6,y,"PUB"===t.content)),o.ɵɵadvance(3),o.ɵɵproperty("ngIf",t.list&&"PUB"===t.content),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",t.list&&"EXP"===t.content))},directives:[c.CgrHeaderComponent,d.LoadingBarComponent,p.NgIf,p.NgClass,m.LocalizeComponent,u.PublishedMasterListHistoryComponent,g.MasterListHistoryComponent],styles:["a.active[_ngcontent-%COMP%] {\n\tborder-bottom: solid 2px #6BA542;\n}"]}),e}();t.MasterListViewComponent=C,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(C,[{type:r.Component,args:[{selector:"master-list-view",templateUrl:"./master-list-view.component.html",styleUrls:["./master-list-view.component.css"]}]}],(function(){return[{type:a.RegistryService},{type:l.BsModalService},{type:s.ActivatedRoute}]}),null)},599:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ScheduledJobsComponent=void 0;var r=n(0),i=(n(33),n(30),n(31)),o=(n(519),n(111)),a=(n(16),n(112),n(261)),l=n(0),s=n(519),c=n(30),d=n(33),p=n(112),m=n(16),u=n(122),g=n(86),h=n(1),f=n(68),y=n(557),v=n(204);function b(e,t){if(1&e&&(l.ɵɵelementStart(0,"div",20),l.ɵɵtext(1),l.ɵɵelementEnd()),2&e){var n=l.ɵɵnextContext();l.ɵɵadvance(1),l.ɵɵtextInterpolate(n.message)}}function S(e,t){1&e&&l.ɵɵelement(0,"localize",36)}function C(e,t){1&e&&l.ɵɵelement(0,"localize",37)}function E(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"button",38),l.ɵɵlistener("click",(function(){l.ɵɵrestoreView(n);var e=l.ɵɵnextContext(2).$implicit;return l.ɵɵnextContext().onCancelScheduledJob(e.historyId,e)})),l.ɵɵelement(1,"localize",39),l.ɵɵelementEnd()}}function x(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"button",40),l.ɵɵlistener("click",(function(){l.ɵɵrestoreView(n);var e=l.ɵɵnextContext(2).$implicit;return l.ɵɵnextContext().onResolveScheduledJob(e.historyId,e)})),l.ɵɵelement(1,"localize",41),l.ɵɵelementEnd()}}function O(e,t){if(1&e&&(l.ɵɵelementStart(0,"td",28),l.ɵɵelementStart(1,"div",29),l.ɵɵelementStart(2,"a",30),l.ɵɵelementStart(3,"button",31),l.ɵɵtemplate(4,S,1,0,"localize",32),l.ɵɵtemplate(5,C,1,0,"localize",33),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵtemplate(6,E,2,0,"button",34),l.ɵɵtemplate(7,x,2,0,"button",35),l.ɵɵelementEnd(),l.ɵɵelementEnd()),2&e){var n=l.ɵɵnextContext().$implicit;l.ɵɵadvance(2),l.ɵɵproperty("routerLink","/registry/job/"+n.historyId),l.ɵɵadvance(2),l.ɵɵproperty("ngIf","IMPORT_RESOLVE"===n.stage||"VALIDATION_RESOLVE"===n.stage),l.ɵɵadvance(1),l.ɵɵproperty("ngIf","IMPORT_RESOLVE"!=n.stage&&"VALIDATION_RESOLVE"!=n.stage),l.ɵɵadvance(1),l.ɵɵproperty("ngIf","VALIDATION_RESOLVE"===n.stage),l.ɵɵadvance(1),l.ɵɵproperty("ngIf","IMPORT_RESOLVE"===n.stage)}}function I(e,t){if(1&e&&(l.ɵɵelementStart(0,"tr"),l.ɵɵelementStart(1,"td",11),l.ɵɵelementStart(2,"div",21),l.ɵɵelement(3,"i",22),l.ɵɵelementStart(4,"p",23),l.ɵɵelementStart(5,"span",24),l.ɵɵtext(6),l.ɵɵelementEnd(),l.ɵɵelementStart(7,"span",24),l.ɵɵelementStart(8,"span",25),l.ɵɵtext(9),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(10,"span",24),l.ɵɵtext(11),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelement(12,"step-indicator",26),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵtemplate(13,O,8,5,"td",27),l.ɵɵelementEnd()),2&e){var n=t.$implicit,r=l.ɵɵnextContext();l.ɵɵadvance(6),l.ɵɵtextInterpolate1(" ",n.fileName," "),l.ɵɵadvance(3),l.ɵɵtextInterpolate1(" ",r.formatDate(n.createDate)," "),l.ɵɵadvance(2),l.ɵɵtextInterpolate1(" ",r.formatJobStatus(n)," "),l.ɵɵadvance(1),l.ɵɵproperty("steps",n.stepConfig),l.ɵɵadvance(1),l.ɵɵproperty("ngIf",r.isAdmin||r.isMaintainer)}}function w(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"div",42),l.ɵɵelementStart(1,"pagination-controls",43),l.ɵɵlistener("pageChange",(function(e){return l.ɵɵrestoreView(n),l.ɵɵnextContext().onActiveJobsPageChange(e)})),l.ɵɵelementEnd(),l.ɵɵelementEnd()}}function M(e,t){1&e&&(l.ɵɵelementStart(0,"th",44),l.ɵɵelement(1,"localize",45),l.ɵɵelementEnd())}function T(e,t){1&e&&(l.ɵɵelementStart(0,"th",44),l.ɵɵelement(1,"localize",46),l.ɵɵelementEnd())}function j(e,t){1&e&&(l.ɵɵelementStart(0,"th",44),l.ɵɵelement(1,"localize",47),l.ɵɵelementEnd())}function k(e,t){1&e&&(l.ɵɵelementStart(0,"th",44),l.ɵɵelement(1,"localize",48),l.ɵɵelementEnd())}function z(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"th",49),l.ɵɵelementStart(1,"button",50),l.ɵɵlistener("click",(function(){return l.ɵɵrestoreView(n),l.ɵɵnextContext().onViewAllCompleteJobs()})),l.ɵɵelement(2,"localize",51),l.ɵɵelementEnd(),l.ɵɵelementEnd()}}function D(e,t){1&e&&l.ɵɵelement(0,"th",52)}function R(e,t){1&e&&l.ɵɵelement(0,"td",59)}function P(e,t){if(1&e&&(l.ɵɵelementStart(0,"tr"),l.ɵɵelementStart(1,"td",53),l.ɵɵelementStart(2,"div",21),l.ɵɵelement(3,"i",54),l.ɵɵelementStart(4,"p",55),l.ɵɵtext(5),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(6,"td",56),l.ɵɵelementStart(7,"p",57),l.ɵɵtext(8),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(9,"td",56),l.ɵɵelementStart(10,"p",57),l.ɵɵtext(11),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(12,"td",56),l.ɵɵelementStart(13,"span",25),l.ɵɵtext(14),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(15,"td",56),l.ɵɵelementStart(16,"span",25),l.ɵɵtext(17),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵtemplate(18,R,1,0,"td",58),l.ɵɵelementEnd()),2&e){var n=t.$implicit,r=l.ɵɵnextContext();l.ɵɵadvance(5),l.ɵɵtextInterpolate(n.fileName),l.ɵɵadvance(3),l.ɵɵtextInterpolate(r.formatJobStatus(n)),l.ɵɵadvance(3),l.ɵɵtextInterpolate(n.importedRecords),l.ɵɵadvance(3),l.ɵɵtextInterpolate1(" ",r.formatDate(n.createDate)," "),l.ɵɵadvance(3),l.ɵɵtextInterpolate1(" ",r.formatDate(n.lastUpdateDate)," "),l.ɵɵadvance(1),l.ɵɵproperty("ngIf",r.isAdmin||r.isMaintainer)}}function A(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"div",42),l.ɵɵelementStart(1,"pagination-controls",60),l.ɵɵlistener("pageChange",(function(e){return l.ɵɵrestoreView(n),l.ɵɵnextContext().onCompleteJobsPageChange(e)})),l.ɵɵelementEnd(),l.ɵɵelementEnd()}}var V=function(e,t,n){return{id:"activeJobs",itemsPerPage:e,currentPage:t,totalItems:n}},N=function(e,t,n){return{id:"completeJobs",itemsPerPage:e,currentPage:t,totalItems:n}},L=function(){function e(e,t,n,r,i,o,a){this.service=e,this.modalService=t,this.router=n,this.dateService=r,this.localizeService=i,this.ioService=a,this.message=null,this.activeJobsPage={count:0,pageNumber:1,pageSize:10,results:[]},this.completeJobsPage={count:0,pageNumber:1,pageSize:10,results:[]},this.activeTimeCounter=0,this.completeTimeCounter=0,this.isViewAllOpen=!1,this.isAdmin=o.isAdmin(),this.isMaintainer=this.isAdmin||o.isMaintainer(),this.isContributor=this.isAdmin||this.isMaintainer||o.isContributer()}return e.prototype.ngOnInit=function(){var e=this;this.onActiveJobsPageChange(1),this.pollingData=i.interval(1e3).subscribe((function(){e.activeTimeCounter++,e.completeTimeCounter++,e.isViewAllOpen?(e.activeTimeCounter>=4&&(e.onActiveJobsPageChange(e.activeJobsPage.pageNumber),e.activeTimeCounter=0),e.completeTimeCounter>=7&&(e.onCompleteJobsPageChange(e.completeJobsPage.pageNumber),e.completeTimeCounter=0)):e.activeTimeCounter>=2&&(e.onActiveJobsPageChange(e.activeJobsPage.pageNumber),e.activeTimeCounter=0)}))},e.prototype.ngOnDestroy=function(){this.pollingData.unsubscribe()},e.prototype.formatJobStatus=function(e){return"FEEDBACK"===e.status?this.localizeService.decode("etl.JobStatus.FEEDBACK"):"RUNNING"===e.status||"NEW"===e.status?this.localizeService.decode("etl.JobStatus.RUNNING"):"QUEUED"===e.status?this.localizeService.decode("etl.JobStatus.QUEUED"):"SUCCESS"===e.status?this.localizeService.decode("etl.JobStatus.SUCCESS"):"CANCELED"===e.status?this.localizeService.decode("etl.JobStatus.CANCELED"):"FAILURE"===e.status?this.localizeService.decode("etl.JobStatus.FAILURE"):this.localizeService.decode("etl.JobStatus.RUNNING")},e.prototype.formatStepConfig=function(e){var t=this;e.results.forEach((function(e){var n={steps:[{label:t.localizeService.decode("scheduler.step.fileImport"),status:"COMPLETE"},{label:t.localizeService.decode("scheduler.step.staging"),status:"NEW"===e.stage?t.getJobStatus(e):t.getCompletedStatus(e.stage,"NEW")},{label:t.localizeService.decode("scheduler.step.validation"),status:"VALIDATE"===e.stage||"VALIDATION_RESOLVE"===e.stage?t.getJobStatus(e):t.getCompletedStatus(e.stage,"VALIDATE")},{label:t.localizeService.decode("scheduler.step.databaseImport"),status:"IMPORT"===e.stage||"IMPORT_RESOLVE"===e.stage||"RESUME_IMPORT"===e.stage?t.getJobStatus(e):""}]};(e=e).stepConfig=n}))},e.prototype.getCompletedStatus=function(e,t){var n=["NEW","VALIDATE","VALIDATION_RESOLVE","IMPORT","IMPORT_RESOLVE","RESUME_IMPORT"],r=n.indexOf(e);return n.indexOf(t)0),l.ɵɵadvance(7),l.ɵɵproperty("ngIf",t.completeJobsPage.results.length>0),l.ɵɵadvance(1),l.ɵɵproperty("ngIf",t.completeJobsPage.results.length>0),l.ɵɵadvance(1),l.ɵɵproperty("ngIf",t.completeJobsPage.results.length>0),l.ɵɵadvance(1),l.ɵɵproperty("ngIf",t.completeJobsPage.results.length>0),l.ɵɵadvance(1),l.ɵɵproperty("ngIf",t.completeJobsPage.results.length<1),l.ɵɵadvance(1),l.ɵɵproperty("ngIf",t.completeJobsPage.results.length>0),l.ɵɵadvance(2),l.ɵɵproperty("ngForOf",l.ɵɵpipeBind2(35,14,t.completeJobsPage.results,l.ɵɵpureFunction3(21,N,t.completeJobsPage.pageSize,t.completeJobsPage.pageNumber,t.completeJobsPage.count))),l.ɵɵadvance(2),l.ɵɵproperty("ngIf",t.completeJobsPage.results.length>0))},directives:[u.CgrHeaderComponent,g.LoadingBarComponent,h.NgIf,f.LocalizeComponent,h.NgForOf,y.StepIndicatorComponent,d.RouterLinkWithHref,d.RouterLinkActive,v.PaginationControlsComponent],pipes:[v.PaginatePipe],styles:[".new-admin-design-main[_ngcontent-%COMP%] {\n \n}\n\n\n.solid-table-wrapper[_ngcontent-%COMP%] {\n background: #F4F4F4;\n border-radius: 15px;\n margin-bottom: 20px;\n}\n.solid-table-footer[_ngcontent-%COMP%] {\n \n border-radius: 0 0 15px 15px;\n padding: 0 0 10px 10px;\n}\n\n\n\n.wrapper[_ngcontent-%COMP%] {\n padding: 10px;\n}"]}),e}();t.ScheduledJobsComponent=L,("undefined"==typeof ngDevMode||ngDevMode)&&l.ɵsetClassMetadata(L,[{type:r.Component,args:[{selector:"scheduled-jobs",templateUrl:"./scheduled-jobs.component.html",styleUrls:["./scheduled-jobs.css"]}]}],(function(){return[{type:s.RegistryService},{type:c.BsModalService},{type:d.Router},{type:p.DateService},{type:m.LocalizationService},{type:m.AuthService},{type:s.IOService}]}),null)},600:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JobComponent=void 0;var r=n(0),i=(n(33),n(30),n(379)),o=n(601),a=n(606),l=(n(519),n(112),n(111)),s=(n(16),n(261)),c=n(0),d=n(519),p=n(30),m=n(33),u=n(112),g=n(16),h=n(122),f=n(86),y=n(1),v=n(68),b=n(204);function S(e,t){if(1&e&&(c.ɵɵelementStart(0,"div",7),c.ɵɵtext(1),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext();c.ɵɵadvance(1),c.ɵɵtextInterpolate(n.message)}}function C(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"div",26),c.ɵɵelementStart(1,"span",27),c.ɵɵelement(2,"localize",28),c.ɵɵelementEnd(),c.ɵɵelementStart(3,"button",29),c.ɵɵlistener("click",(function(){c.ɵɵrestoreView(n);var e=c.ɵɵnextContext(2);return e.onResolveScheduledJob(e.job.historyId)})),c.ɵɵelement(4,"localize",30),c.ɵɵelementEnd(),c.ɵɵelementEnd()}}function E(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"div",26),c.ɵɵelementStart(1,"span",27),c.ɵɵelement(2,"localize",31),c.ɵɵelementEnd(),c.ɵɵelementStart(3,"button",29),c.ɵɵlistener("click",(function(){c.ɵɵrestoreView(n);var e=c.ɵɵnextContext(2);return e.onResolveScheduledJob(e.job.historyId)})),c.ɵɵelement(4,"localize",32),c.ɵɵelementEnd(),c.ɵɵelementEnd()}}function x(e,t){1&e&&c.ɵɵelement(0,"localize",36)}function O(e,t){1&e&&(c.ɵɵelementStart(0,"span"),c.ɵɵelement(1,"localize",32),c.ɵɵelementEnd())}function I(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"div",33),c.ɵɵelementStart(1,"button",29),c.ɵɵlistener("click",(function(){c.ɵɵrestoreView(n);var e=c.ɵɵnextContext(2);return e.onResolveScheduledJob(e.job.historyId)})),c.ɵɵtemplate(2,x,1,0,"localize",34),c.ɵɵtemplate(3,O,2,0,"span",35),c.ɵɵelementEnd(),c.ɵɵelementEnd()}if(2&e){var r=c.ɵɵnextContext(2);c.ɵɵadvance(2),c.ɵɵproperty("ngIf",r.job&&"VALIDATION_RESOLVE"===r.job.stage),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",r.job&&"IMPORT_RESOLVE"===r.job.stage)}}function w(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"div",37),c.ɵɵelementStart(1,"button",29),c.ɵɵlistener("click",(function(){c.ɵɵrestoreView(n);var e=c.ɵɵnextContext(2);return e.onReuploadAndResume(e.job.historyId)})),c.ɵɵelementStart(2,"span"),c.ɵɵelement(3,"localize",38),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd()}}function M(e,t){if(1&e&&(c.ɵɵelementStart(0,"div",8),c.ɵɵelementStart(1,"div",9),c.ɵɵelementStart(2,"div",10),c.ɵɵelement(3,"i",11),c.ɵɵelementStart(4,"p",12),c.ɵɵelementStart(5,"span",13),c.ɵɵelementStart(6,"strong"),c.ɵɵtext(7),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementStart(8,"span",13),c.ɵɵelement(9,"localize",14),c.ɵɵtext(10),c.ɵɵelementEnd(),c.ɵɵelementStart(11,"span",13),c.ɵɵelement(12,"localize",15),c.ɵɵelementStart(13,"span",16),c.ɵɵtext(14),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementStart(15,"div",17),c.ɵɵelementStart(16,"div"),c.ɵɵelementStart(17,"h5"),c.ɵɵelementStart(18,"b"),c.ɵɵtext(19),c.ɵɵelement(20,"localize",18),c.ɵɵtext(21),c.ɵɵelement(22,"localize",19),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementStart(23,"h5"),c.ɵɵtext(24),c.ɵɵelement(25,"localize",20),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementStart(26,"div",21),c.ɵɵtemplate(27,C,5,0,"div",22),c.ɵɵtemplate(28,E,5,0,"div",23),c.ɵɵtemplate(29,I,4,2,"div",24),c.ɵɵtemplate(30,w,4,0,"div",25),c.ɵɵelementEnd(),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext();c.ɵɵadvance(7),c.ɵɵtextInterpolate(n.job.fileName),c.ɵɵadvance(3),c.ɵɵtextInterpolate1(" ",n.job.author," "),c.ɵɵadvance(4),c.ɵɵtextInterpolate1(" ",n.formatDate(n.job.createDate)," "),c.ɵɵadvance(5),c.ɵɵtextInterpolate1("",n.job.importedRecords," "),c.ɵɵadvance(2),c.ɵɵtextInterpolate1(" ",n.job.workTotal," "),c.ɵɵadvance(3),c.ɵɵtextInterpolate1("",n.job.workTotal-n.job.importedRecords," "),c.ɵɵadvance(3),c.ɵɵproperty("ngIf",0==n.page.results.length&&n.job&&"VALIDATION_RESOLVE"===n.job.stage),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",0==n.page.results.length&&n.job&&"IMPORT_RESOLVE"===n.job.stage),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",n.page&&null!=n.page.results&&n.page.results.length>0&&!n.hasRowValidationProblem),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",n.hasRowValidationProblem)}}function T(e,t){1&e&&(c.ɵɵelementStart(0,"thead"),c.ɵɵelementStart(1,"tr"),c.ɵɵelementStart(2,"th",46),c.ɵɵelement(3,"localize",47),c.ɵɵelementEnd(),c.ɵɵelementStart(4,"th",46),c.ɵɵelement(5,"localize",48),c.ɵɵelementEnd(),c.ɵɵelementStart(6,"th",46),c.ɵɵelement(7,"localize",49),c.ɵɵelementEnd(),c.ɵɵelement(8,"th",46),c.ɵɵelementEnd(),c.ɵɵelementEnd())}function j(e,t){1&e&&(c.ɵɵelementStart(0,"thead"),c.ɵɵelementStart(1,"tr"),c.ɵɵelementStart(2,"th",46),c.ɵɵelement(3,"localize",50),c.ɵɵelementEnd(),c.ɵɵelementStart(4,"th",46),c.ɵɵelement(5,"localize",51),c.ɵɵelementEnd(),c.ɵɵelementStart(6,"th",46),c.ɵɵelement(7,"localize",52),c.ɵɵelementEnd(),c.ɵɵelement(8,"th",46),c.ɵɵelementEnd(),c.ɵɵelementEnd())}function k(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"td",56),c.ɵɵelementStart(1,"button",57),c.ɵɵlistener("click",(function(){c.ɵɵrestoreView(n);var e=c.ɵɵnextContext().$implicit;return c.ɵɵnextContext(4).onEdit(e)})),c.ɵɵelement(2,"localize",58),c.ɵɵelementEnd(),c.ɵɵelementEnd()}}function z(e,t){if(1&e&&(c.ɵɵelementStart(0,"tr"),c.ɵɵelementStart(1,"td",54),c.ɵɵelementStart(2,"p"),c.ɵɵtext(3),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementStart(4,"td",54),c.ɵɵelementStart(5,"p"),c.ɵɵtext(6),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementStart(7,"td",54),c.ɵɵelementStart(8,"p"),c.ɵɵtext(9),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵtemplate(10,k,3,0,"td",55),c.ɵɵelementEnd()),2&e){var n=t.$implicit,r=c.ɵɵnextContext(4);c.ɵɵadvance(3),c.ɵɵtextInterpolate(r.getFriendlyProblemType(n.exception.type)),c.ɵɵadvance(3),c.ɵɵtextInterpolate(n.exception.message),c.ɵɵadvance(3),c.ɵɵtextInterpolate(n.rowNum),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",r.isAdmin||r.isMaintainer)}}var D=function(e,t,n){return{itemsPerPage:e,currentPage:t,totalItems:n}};function R(e,t){if(1&e&&(c.ɵɵelementStart(0,"tbody"),c.ɵɵtemplate(1,z,11,4,"tr",53),c.ɵɵpipe(2,"paginate"),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext(3);c.ɵɵadvance(1),c.ɵɵproperty("ngForOf",c.ɵɵpipeBind2(2,1,n.page.results,c.ɵɵpureFunction3(4,D,n.page.pageSize,n.page.pageNumber,n.page.count)))}}function P(e,t){if(1&e&&(c.ɵɵelementStart(0,"p"),c.ɵɵtext(1),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext().$implicit;c.ɵɵadvance(1),c.ɵɵtextInterpolate(n.exception.message)}}function A(e,t){if(1&e&&(c.ɵɵelementStart(0,"p"),c.ɵɵtext(1),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext().$implicit;c.ɵɵadvance(1),c.ɵɵtextInterpolate(n.label)}}function V(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"td",56),c.ɵɵelementStart(1,"button",57),c.ɵɵlistener("click",(function(){c.ɵɵrestoreView(n);var e=c.ɵɵnextContext().$implicit;return c.ɵɵnextContext(4).onEdit(e)})),c.ɵɵelement(2,"localize",58),c.ɵɵelementEnd(),c.ɵɵelementEnd()}}function N(e,t){if(1&e&&(c.ɵɵelementStart(0,"tr"),c.ɵɵelementStart(1,"td",54),c.ɵɵelementStart(2,"p"),c.ɵɵtext(3),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementStart(4,"td",54),c.ɵɵtemplate(5,P,2,1,"p",35),c.ɵɵtemplate(6,A,2,1,"p",35),c.ɵɵelementEnd(),c.ɵɵelementStart(7,"td",54),c.ɵɵelementStart(8,"p"),c.ɵɵtext(9),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵtemplate(10,V,3,0,"td",55),c.ɵɵelementEnd()),2&e){var n=t.$implicit,r=c.ɵɵnextContext(4);c.ɵɵadvance(3),c.ɵɵtextInterpolate(n.type),c.ɵɵadvance(2),c.ɵɵproperty("ngIf","RowValidationProblem"===n.type),c.ɵɵadvance(1),c.ɵɵproperty("ngIf","ParentReferenceProblem"===n.type||"TermReferenceProblem"===n.type),c.ɵɵadvance(3),c.ɵɵtextInterpolate(r.formatAffectedRows(n.affectedRows)),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",r.isAdmin||r.isMaintainer)}}function L(e,t){if(1&e&&(c.ɵɵelementStart(0,"tbody"),c.ɵɵtemplate(1,N,11,5,"tr",53),c.ɵɵpipe(2,"paginate"),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext(3);c.ɵɵadvance(1),c.ɵɵproperty("ngForOf",c.ɵɵpipeBind2(2,1,n.page.results,c.ɵɵpureFunction3(4,D,n.page.pageSize,n.page.pageNumber,n.page.count)))}}function _(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"div",44),c.ɵɵelementStart(1,"pagination-controls",59),c.ɵɵlistener("pageChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext(3).onPageChange(e)})),c.ɵɵelementEnd(),c.ɵɵelementEnd()}}function F(e,t){if(1&e&&(c.ɵɵelementStart(0,"div",41),c.ɵɵelementStart(1,"ul",42),c.ɵɵelementStart(2,"table",43),c.ɵɵtemplate(3,T,9,0,"thead",35),c.ɵɵtemplate(4,j,9,0,"thead",35),c.ɵɵtemplate(5,R,3,8,"tbody",35),c.ɵɵtemplate(6,L,3,8,"tbody",35),c.ɵɵelementEnd(),c.ɵɵelementStart(7,"div",44),c.ɵɵtemplate(8,_,2,0,"div",45),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext(2);c.ɵɵadvance(3),c.ɵɵproperty("ngIf","IMPORT_RESOLVE"===n.job.stage),c.ɵɵadvance(1),c.ɵɵproperty("ngIf","VALIDATION_RESOLVE"===n.job.stage),c.ɵɵadvance(1),c.ɵɵproperty("ngIf","IMPORT_RESOLVE"===n.job.stage),c.ɵɵadvance(1),c.ɵɵproperty("ngIf","VALIDATION_RESOLVE"===n.job.stage),c.ɵɵadvance(2),c.ɵɵproperty("ngIf",n.page.results.length>0)}}function H(e,t){if(1&e&&(c.ɵɵelementStart(0,"div",39),c.ɵɵtemplate(1,F,9,5,"div",40),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext();c.ɵɵadvance(1),c.ɵɵproperty("ngIf",n.job)}}var G=function(){function e(e,t,n,r,i,o,a,l){this.service=e,this.modalService=t,this.router=n,this.route=r,this.dateService=i,this.localizeService=o,this.ioService=l,this.message=null,this.allSelected=!1,this.historyId="",this.page={count:0,pageNumber:1,pageSize:10,results:[]},this.timeCounter=0,this.isPolling=!1,this.hasRowValidationProblem=!1,this.isAdmin=a.isAdmin(),this.isMaintainer=this.isAdmin||a.isMaintainer(),this.isContributor=this.isAdmin||this.isMaintainer||a.isContributer()}return e.prototype.ngOnInit=function(){var e=this;this.historyId=this.route.snapshot.params.oid,this.onPageChange(1);var t="wss://"+window.location.hostname+(window.location.port?":"+window.location.port:"")+acp;this.notifier=i.webSocket(t+"/websocket/notify"),this.notifier.subscribe((function(t){"IMPORT_JOB_CHANGE"===t.type&&e.onPageChange(e.page.pageNumber)}))},e.prototype.ngOnDestroy=function(){},e.prototype.formatAffectedRows=function(e){return e.replace(/,/g,", ")},e.prototype.formatValidationResolve=function(e){return JSON.stringify(e)},e.prototype.onProblemResolved=function(e){for(var t=0;t0))},directives:[h.CgrHeaderComponent,f.LoadingBarComponent,y.NgIf,v.LocalizeComponent,y.NgForOf,b.PaginationControlsComponent],pipes:[b.PaginatePipe],styles:[".new-admin-design-main[_ngcontent-%COMP%] {\n \n}\n\n\n.solid-table-wrapper[_ngcontent-%COMP%] {\n background: #F4F4F4;\n border-radius: 15px;\n margin-bottom: 20px;\n}\n.solid-table-footer[_ngcontent-%COMP%] {\n \n border-radius: 0 0 15px 15px;\n padding: 0 0 10px 10px;\n}\n\n\n\n.wrapper[_ngcontent-%COMP%] {\n padding: 10px;\n}"]}),e}();t.JobComponent=G,("undefined"==typeof ngDevMode||ngDevMode)&&c.ɵsetClassMetadata(G,[{type:r.Component,args:[{selector:"job",templateUrl:"./job.component.html",styleUrls:["./scheduled-jobs.css"]}]}],(function(){return[{type:d.RegistryService},{type:p.BsModalService},{type:m.Router},{type:m.ActivatedRoute},{type:u.DateService},{type:g.LocalizationService},{type:g.AuthService},{type:d.IOService}]}),null)},601:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JobConflictModalComponent=void 0;var r=n(0),i=(n(30),n(31)),o=(n(519),n(111)),a=(n(16),n(0)),l=n(519),s=n(16),c=n(30),d=n(1),p=n(68),m=n(22),u=n(602),g=n(603),h=n(604),f=n(605);function y(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",12),a.ɵɵtext(1),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵtextInterpolate(n.message)}}function v(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div"),a.ɵɵelementStart(1,"import-problem-widget",13),a.ɵɵlistener("onProblemResolved",(function(){a.ɵɵrestoreView(n);var e=a.ɵɵnextContext();return e.onProblemResolvedListener(e.problem)})),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵproperty("problem",r.problem)("job",r.job)}}function b(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"parent-reference-problem-widget",13),a.ɵɵlistener("onProblemResolved",(function(){a.ɵɵrestoreView(n);var e=a.ɵɵnextContext(2);return e.onProblemResolvedListener(e.problem)})),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext(2);a.ɵɵproperty("problem",r.problem)("job",r.job)}}function S(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"term-reference-problem-widget",13),a.ɵɵlistener("onProblemResolved",(function(){a.ɵɵrestoreView(n);var e=a.ɵɵnextContext(2);return e.onProblemResolvedListener(e.problem)})),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext(2);a.ɵɵproperty("problem",r.problem)("job",r.job)}}function C(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"row-validation-problem-widget",13),a.ɵɵlistener("onProblemResolved",(function(){a.ɵɵrestoreView(n);var e=a.ɵɵnextContext(2);return e.onProblemResolvedListener(e.problem)})),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext(2);a.ɵɵproperty("problem",r.problem)("job",r.job)}}function E(e,t){if(1&e&&(a.ɵɵelementStart(0,"div"),a.ɵɵtemplate(1,b,1,2,"parent-reference-problem-widget",14),a.ɵɵtemplate(2,S,1,2,"term-reference-problem-widget",14),a.ɵɵtemplate(3,C,1,2,"row-validation-problem-widget",14),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵproperty("ngIf","ParentReferenceProblem"===n.problem.type),a.ɵɵadvance(1),a.ɵɵproperty("ngIf","TermReferenceProblem"===n.problem.type),a.ɵɵadvance(1),a.ɵɵproperty("ngIf","RowValidationProblem"===n.problem.type)}}var x=function(){function e(e,t,n,r){this.service=e,this.iService=t,this.lService=n,this.bsModalRef=r,this.message=null,this.readonly=!1,this.edit=!1,this.onConflictAction=new i.Subject}return e.prototype.ngOnInit=function(){},e.prototype.onProblemResolvedListener=function(e){this.onConflictAction.next({action:"RESOLVED",data:e})},e.prototype.onCancel=function(){this.bsModalRef.hide()},e.prototype.error=function(e){this.message=o.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(l.RegistryService),a.ɵɵdirectiveInject(l.IOService),a.ɵɵdirectiveInject(s.LocalizationService),a.ɵɵdirectiveInject(c.BsModalRef))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["job-conflict-modal"]],decls:15,vars:3,consts:[[1,"modal-body"],["class","alert alert-danger","role","alert",4,"ngIf"],[1,"text-center"],["key","scheduledjobs.problemdetail.modal.title"],[1,"modal-form"],["form","ngForm"],[4,"ngIf"],[1,"row-holder"],[1,""],[1,"button-holder"],["type","button","role","button",1,"btn","btn-default",3,"click"],["key","io.back"],["role","alert",1,"alert","alert-danger"],[3,"problem","job","onProblemResolved"],[3,"problem","job","onProblemResolved",4,"ngIf"]],template:function(e,t){1&e&&(a.ɵɵelementStart(0,"div",0),a.ɵɵtemplate(1,y,2,1,"div",1),a.ɵɵelementStart(2,"div",2),a.ɵɵelementStart(3,"h2"),a.ɵɵelement(4,"localize",3),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(5,"form",4,5),a.ɵɵelementStart(7,"fieldset"),a.ɵɵtemplate(8,v,2,2,"div",6),a.ɵɵtemplate(9,E,4,3,"div",6),a.ɵɵelementStart(10,"div",7),a.ɵɵelementStart(11,"div",8),a.ɵɵelementStart(12,"div",9),a.ɵɵelementStart(13,"button",10),a.ɵɵlistener("click",(function(){return t.onCancel()})),a.ɵɵelement(14,"localize",11),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e&&(a.ɵɵadvance(1),a.ɵɵproperty("ngIf",null!=t.message),a.ɵɵadvance(7),a.ɵɵproperty("ngIf",t.problem&&t.job&&"IMPORT_RESOLVE"===t.job.stage),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.problem&&t.job&&"VALIDATION_RESOLVE"===t.job.stage))},directives:[d.NgIf,p.LocalizeComponent,m.ɵangular_packages_forms_forms_ba,m.NgControlStatusGroup,m.NgForm,u.ImportProblemWidgetComponent,g.ParentReferenceProblemWidgetComponent,h.TermReferenceProblemWidgetComponent,f.RowValidationProblemWidgetComponent],encapsulation:2}),e}();t.JobConflictModalComponent=x,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(x,[{type:r.Component,args:[{selector:"job-conflict-modal",templateUrl:"./job-conflict-modal.component.html",styleUrls:[]}]}],(function(){return[{type:l.RegistryService},{type:l.IOService},{type:s.LocalizationService},{type:c.BsModalRef}]}),null)},602:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ImportProblemWidgetComponent=void 0;var r=n(0),i=(n(30),n(203),n(556)),o=(n(519),n(112),n(111)),a=(n(16),n(0)),l=n(519),s=n(112),c=n(16),d=n(30),p=n(1),m=n(68);function u(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",13),a.ɵɵtext(1),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵtextInterpolate(n.message)}}function g(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",3),a.ɵɵelementStart(1,"div",14),a.ɵɵelementStart(2,"div",15),a.ɵɵelement(3,"i",16),a.ɵɵelementStart(4,"p",17),a.ɵɵelementStart(5,"span",18),a.ɵɵelementStart(6,"strong"),a.ɵɵtext(7),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"span",18),a.ɵɵelement(9,"localize",19),a.ɵɵtext(10),a.ɵɵelementEnd(),a.ɵɵelementStart(11,"span",18),a.ɵɵelement(12,"localize",20),a.ɵɵtext(13,": "),a.ɵɵelementStart(14,"span",21),a.ɵɵtext(15),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelement(16,"div",14),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(7),a.ɵɵtextInterpolate(n.job.fileName),a.ɵɵadvance(3),a.ɵɵtextInterpolate1(": ",n.job.author," "),a.ɵɵadvance(5),a.ɵɵtextInterpolate1(" ",n.formatDate(n.job.createDate)," ")}}function h(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",22),a.ɵɵelementStart(1,"button",23),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().onEditGeoObject()})),a.ɵɵelement(2,"localize",24),a.ɵɵelementEnd(),a.ɵɵelementEnd()}}var f=function(){function e(e,t,n,i,o,a){this.service=e,this.iService=t,this.dateService=n,this.lService=i,this.bsModalRef=o,this.modalService=a,this.message=null,this.onProblemResolved=new r.EventEmitter,this.readonly=!1,this.edit=!1}return e.prototype.ngOnInit=function(){},e.prototype.onEditGeoObject=function(){var e=this,t=this.modalService.show(i.GeoObjectEditorComponent,{backdrop:!0,ignoreBackdropClick:!0});t.content.configureFromImportError(this.problem,this.job.historyId,this.job.configuration.startDate,!0),t.content.setMasterListId(null),t.content.setOnSuccessCallback((function(){e.onProblemResolved.emit(e.problem),e.bsModalRef.hide()}))},e.prototype.getFriendlyProblemType=function(e){return"net.geoprism.registry.io.ParentCodeException"===e?this.lService.decode("scheduledjobs.job.problem.type.parent.lookup"):"net.geoprism.registry.io.PostalCodeLocationException"===e?this.lService.decode("scheduledjobs.job.problem.type.postal.code.lookup"):"net.geoprism.registry.io.AmbiguousParentException"===e?this.lService.decode("scheduledjobs.job.problem.type.multi.parent.lookup"):"net.geoprism.registry.io.InvalidGeometryException"===e?this.lService.decode("scheduledjobs.job.problem.type.invalid.geom.lookup"):"net.geoprism.registry.DataNotFoundException"===e?this.lService.decode("scheduledjobs.job.problem.type.datanotfound"):"net.geoprism.registry.roles.CreateGeoObjectPermissionException"===e||"net.geoprism.registry.roles.WriteGeoObjectPermissionException"===e||"net.geoprism.registry.roles.DeleteGeoObjectPermissionException"===e||"net.geoprism.registry.roles.ReadGeoObjectPermissionException"===e?this.lService.decode("scheduledjobs.job.problem.type.permission"):"com.runwaysdk.dataaccess.DuplicateDataException"===e||"net.geoprism.registry.DuplicateGeoObjectException"===e||"net.geoprism.registry.DuplicateGeoObjectCodeException"===e?this.lService.decode("scheduledjobs.job.problem.type.duplicate.data.lookup"):e},e.prototype.onSubmit=function(){},e.prototype.onCancel=function(){this.bsModalRef.hide()},e.prototype.formatDate=function(e){return this.dateService.formatDateForDisplay(e)},e.prototype.error=function(e){this.message=o.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(l.RegistryService),a.ɵɵdirectiveInject(l.IOService),a.ɵɵdirectiveInject(s.DateService),a.ɵɵdirectiveInject(c.LocalizationService),a.ɵɵdirectiveInject(d.BsModalRef),a.ɵɵdirectiveInject(d.BsModalService))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["import-problem-widget"]],inputs:{problem:"problem",job:"job"},outputs:{onProblemResolved:"onProblemResolved"},decls:20,vars:5,consts:[[1,""],["class","alert alert-danger","role","alert",4,"ngIf"],["class","row","style","background: #F4F4F4;\n border-radius: 10px;\n margin-bottom: 20px;\n margin-top: 20px;\n padding: 10px;",4,"ngIf"],[1,"row",2,"background","#F4F4F4","border-radius","10px","margin-bottom","20px","margin-top","20px","padding","10px"],[1,"col-md-12"],[1,"row","equal",2,"display","flex","display","-webkit-flex","flex-wrap","wrap"],[1,"col-md-6",2,"padding-right","5px"],[2,"background","white","border-radius","10px","padding","10px","height","100%"],["key","etl.problem.header.problem"],[2,"font-style","italic"],["key","etl.problem.header.message"],[1,"col-md-6",2,"padding-left","5px"],["style","background: white;border-radius: 10px;padding: 10px;height: 100%;text-align: center;",4,"ngIf"],["role","alert",1,"alert","alert-danger"],[1,"col-md-6"],[1,"wrapper"],["aria-hidden","true",1,"fa","fa-file",2,"position","absolute","font-size","55px"],[2,"padding-left","60px"],[2,"display","block"],["key","importproblem.uploaded.by.label"],["key","importproblem.started.date.label"],[1,"date-string-display",2,"margin-left","5px"],[2,"background","white","border-radius","10px","padding","10px","height","100%","text-align","center"],["type","submit","role","button",1,"btn","btn-primary",2,"width","90%",3,"click"],["key","scheduledjobs.editGeoObject"]],template:function(e,t){1&e&&(a.ɵɵelementStart(0,"div",0),a.ɵɵtemplate(1,u,2,1,"div",1),a.ɵɵtemplate(2,g,17,3,"div",2),a.ɵɵelementStart(3,"div",3),a.ɵɵelementStart(4,"div",4),a.ɵɵelementStart(5,"div",5),a.ɵɵelementStart(6,"div",6),a.ɵɵelementStart(7,"div",7),a.ɵɵelementStart(8,"h4"),a.ɵɵelementStart(9,"strong"),a.ɵɵelement(10,"localize",8),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(11,"p",9),a.ɵɵtext(12),a.ɵɵelementEnd(),a.ɵɵelementStart(13,"h4"),a.ɵɵelementStart(14,"strong"),a.ɵɵelement(15,"localize",10),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(16,"p",9),a.ɵɵtext(17),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(18,"div",11),a.ɵɵtemplate(19,h,3,0,"div",12),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e&&(a.ɵɵadvance(1),a.ɵɵproperty("ngIf",null!=t.message),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.problem&&t.job),a.ɵɵadvance(10),a.ɵɵtextInterpolate(t.getFriendlyProblemType(t.problem.exception.type)),a.ɵɵadvance(5),a.ɵɵtextInterpolate(t.problem.exception.message),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",null!=t.problem.object&&null!=t.problem.object.geoObject))},directives:[p.NgIf,m.LocalizeComponent],encapsulation:2}),e}();t.ImportProblemWidgetComponent=f,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(f,[{type:r.Component,args:[{selector:"import-problem-widget",templateUrl:"./import-problem-widget.component.html",styleUrls:[]}]}],(function(){return[{type:l.RegistryService},{type:l.IOService},{type:s.DateService},{type:c.LocalizationService},{type:d.BsModalRef},{type:d.BsModalService}]}),{problem:[{type:r.Input}],job:[{type:r.Input}],onProblemResolved:[{type:r.Output}]})},603:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ParentReferenceProblemWidgetComponent=void 0;var r=n(0),i=(n(30),n(31)),o=(n(203),n(519),n(112),n(111)),a=(n(16),n(0)),l=n(519),s=n(112),c=n(16),d=n(30),p=n(1),m=n(68),u=n(22),g=n(154);function h(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",30),a.ɵɵtext(1),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵtextInterpolate(n.message)}}function f(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",3),a.ɵɵelementStart(1,"div",31),a.ɵɵelementStart(2,"div",32),a.ɵɵelement(3,"i",33),a.ɵɵelementStart(4,"p",34),a.ɵɵelementStart(5,"span",35),a.ɵɵelementStart(6,"strong"),a.ɵɵtext(7),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"span",35),a.ɵɵelement(9,"localize",36),a.ɵɵtext(10),a.ɵɵelementEnd(),a.ɵɵelementStart(11,"span",35),a.ɵɵelement(12,"localize",37),a.ɵɵtext(13,": "),a.ɵɵelementStart(14,"span",38),a.ɵɵtext(15),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelement(16,"div",31),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(7),a.ɵɵtextInterpolate(n.job.fileName),a.ɵɵadvance(3),a.ɵɵtextInterpolate1(": ",n.job.author," "),a.ɵɵadvance(5),a.ɵɵtextInterpolate1(" ",n.formatDate(n.job.createDate)," ")}}function y(e,t){if(1&e&&(a.ɵɵelementStart(0,"ol"),a.ɵɵelementStart(1,"li"),a.ɵɵtext(2),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e){var n=t.$implicit;a.ɵɵadvance(2),a.ɵɵtextInterpolate2("",n.label," (",n.type,")")}}function v(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",39),a.ɵɵtemplate(1,y,3,2,"ol",40),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵproperty("ngForOf",n.problem.context)}}var b=function(){function e(e,t,n,i,o,a){this.service=e,this.iService=t,this.dateService=n,this.lService=i,this.bsModalRef=o,this.modalService=a,this.message=null,this.onProblemResolved=new r.EventEmitter,this.readonly=!1,this.edit=!1}return e.prototype.ngOnInit=function(){this.problem.parent=null,this.searchLabel=""},e.prototype.getString=function(e){return JSON.stringify(e)},e.prototype.getValidationProblemDisplayLabel=function(e){return e.type},e.prototype.getTypeAheadObservable=function(e,t){var n=this,r=this.job.configuration.hierarchy;return i.Observable.create((function(t){n.service.getGeoObjectSuggestions(n.searchLabel,e,null,null,r,n.job.startDate,n.job.endDate).then((function(e){t.next(e)}))}))},e.prototype.typeaheadOnSelect=function(e,t){var n=this;this.service.getParentGeoObjects(e.item.uid,t.typeCode,[],!1,this.job.startDate).then((function(e){t.parent=e.geoObject,n.searchLabel=e.geoObject.properties.displayLabel.localizedValue})).catch((function(e){n.error(e)}))},e.prototype.onIgnore=function(){var e=this,t={resolution:"IGNORE",validationProblemId:this.problem.id};this.service.submitValidationResolve(t).then((function(t){e.onProblemResolved.emit(e.problem),e.bsModalRef.hide()})).catch((function(t){e.error(t)}))},e.prototype.onCreateSynonym=function(){var e=this,t={validationProblemId:this.problem.id,resolution:"SYNONYM",code:this.problem.parent.properties.code,typeCode:this.problem.parent.properties.type,label:this.problem.label};this.service.submitValidationResolve(t).then((function(t){e.onProblemResolved.emit(e.problem),e.bsModalRef.hide()})).catch((function(t){e.error(t)}))},e.prototype.onCancel=function(){this.bsModalRef.hide()},e.prototype.formatDate=function(e){return this.dateService.formatDateForDisplay(e)},e.prototype.error=function(e){this.message=o.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(l.RegistryService),a.ɵɵdirectiveInject(l.IOService),a.ɵɵdirectiveInject(s.DateService),a.ɵɵdirectiveInject(c.LocalizationService),a.ɵɵdirectiveInject(d.BsModalRef),a.ɵɵdirectiveInject(d.BsModalService))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["parent-reference-problem-widget"]],inputs:{problem:"problem",job:"job"},outputs:{onProblemResolved:"onProblemResolved"},decls:55,vars:12,consts:[[1,"container"],["class","alert alert-danger","role","alert",4,"ngIf"],["class","row","style","background: #F4F4F4;\n border-radius: 10px;\n margin-bottom: 20px;\n margin-top: 20px;\n padding: 10px;",4,"ngIf"],[1,"row",2,"background","#F4F4F4","border-radius","10px","margin-bottom","20px","margin-top","20px","padding","10px"],[1,"col-md-12"],[1,"row"],[1,"col-md-6",2,"background","white","border-radius","10px","width","41%","margin-right","7px"],["key","etl.problem.header.problem"],[2,"font-style","italic"],["key","etl.problem.header.message"],["key","etl.parentProblem.message"],["key","etl.problem.header.toResolve"],["key","etl.parentProblem.toResolve"],[1,"com-md-6",2,"background","white","border-radius","10px","width","41%","float","left","height","250px"],[1,"row-holder"],[1,"label-holder",2,"width","100px"],[1,"text"],["key","etl.problem.parent.context"],[1,"holder",2,"width","300px"],["style","margin-top:10px;",4,"ngIf"],["key","etl.problem.parent.label"],[1,"text",2,"margin-top","10px"],[1,"row-holder",2,"overflow","visible"],["key","etl.problem.parent.synonym"],["type","text","autocomplete","off","name","parentSearch","typeaheadOptionField","name",1,"form-control",2,"width","150px",3,"ngModel","typeaheadAsync","typeahead","typeaheadOptionsLimit","typeaheadMinLength","typeaheadWaitMs","ngModelChange","typeaheadOnSelect"],["key","etl.problem.parent.actions"],["type","submit","role","button",1,"btn","btn-primary",3,"disabled","click"],["key","etl.problem.reference.createSynonym"],["type","submit","role","button",1,"btn","btn-primary",3,"click"],["key","etl.problem.reference.ignore"],["role","alert",1,"alert","alert-danger"],[1,"col-md-6"],[1,"wrapper"],["aria-hidden","true",1,"fa","fa-file",2,"position","absolute","font-size","55px"],[2,"padding-left","60px"],[2,"display","block"],["key","importproblem.uploaded.by.label"],["key","importproblem.started.date.label"],[1,"date-string-display"],[2,"margin-top","10px"],[4,"ngFor","ngForOf"]],template:function(e,t){1&e&&(a.ɵɵelementStart(0,"div",0),a.ɵɵtemplate(1,h,2,1,"div",1),a.ɵɵtemplate(2,f,17,3,"div",2),a.ɵɵelementStart(3,"div",3),a.ɵɵelementStart(4,"div",4),a.ɵɵelementStart(5,"div",5),a.ɵɵelementStart(6,"div",6),a.ɵɵelementStart(7,"h4"),a.ɵɵelementStart(8,"strong"),a.ɵɵelement(9,"localize",7),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(10,"p",8),a.ɵɵtext(11),a.ɵɵelementEnd(),a.ɵɵelementStart(12,"h4"),a.ɵɵelementStart(13,"strong"),a.ɵɵelement(14,"localize",9),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(15,"p",8),a.ɵɵelement(16,"localize",10),a.ɵɵelementEnd(),a.ɵɵelementStart(17,"h4"),a.ɵɵelementStart(18,"strong"),a.ɵɵelement(19,"localize",11),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(20,"p"),a.ɵɵelement(21,"localize",12),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(22,"div",13),a.ɵɵelementStart(23,"div",14),a.ɵɵelementStart(24,"div",15),a.ɵɵelementStart(25,"label"),a.ɵɵelementStart(26,"span",16),a.ɵɵelement(27,"localize",17),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(28,"div",18),a.ɵɵtemplate(29,v,2,1,"div",19),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(30,"div",14),a.ɵɵelementStart(31,"div",15),a.ɵɵelementStart(32,"label"),a.ɵɵelementStart(33,"span",16),a.ɵɵelement(34,"localize",20),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(35,"div",18),a.ɵɵelementStart(36,"span",21),a.ɵɵtext(37),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(38,"div",22),a.ɵɵelementStart(39,"div",15),a.ɵɵelementStart(40,"label"),a.ɵɵelementStart(41,"span",16),a.ɵɵelement(42,"localize",23),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(43,"div",18),a.ɵɵelementStart(44,"input",24),a.ɵɵlistener("ngModelChange",(function(e){return t.searchLabel=e}))("typeaheadOnSelect",(function(e){return t.typeaheadOnSelect(e,t.problem)})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(45,"div",14),a.ɵɵelementStart(46,"div",15),a.ɵɵelementStart(47,"label"),a.ɵɵelementStart(48,"span",16),a.ɵɵelement(49,"localize",25),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(50,"div",18),a.ɵɵelementStart(51,"button",26),a.ɵɵlistener("click",(function(){return t.onCreateSynonym()})),a.ɵɵelement(52,"localize",27),a.ɵɵelementEnd(),a.ɵɵelementStart(53,"button",28),a.ɵɵlistener("click",(function(){return t.onIgnore()})),a.ɵɵelement(54,"localize",29),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e&&(a.ɵɵadvance(1),a.ɵɵproperty("ngIf",null!=t.message),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.problem&&t.job),a.ɵɵadvance(9),a.ɵɵtextInterpolate(t.getValidationProblemDisplayLabel(t.problem)),a.ɵɵadvance(18),a.ɵɵproperty("ngIf",t.problem.context.length>0),a.ɵɵadvance(8),a.ɵɵtextInterpolate(t.problem.label),a.ɵɵadvance(7),a.ɵɵproperty("ngModel",t.searchLabel)("typeaheadAsync",!0)("typeahead",t.getTypeAheadObservable(t.problem.typeCode,t.problem))("typeaheadOptionsLimit",7)("typeaheadMinLength",0)("typeaheadWaitMs",300),a.ɵɵadvance(7),a.ɵɵproperty("disabled",null==t.problem.parent))},directives:[p.NgIf,m.LocalizeComponent,u.DefaultValueAccessor,u.NgControlStatus,u.NgModel,g.TypeaheadDirective,p.NgForOf],encapsulation:2}),e}();t.ParentReferenceProblemWidgetComponent=b,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(b,[{type:r.Component,args:[{selector:"parent-reference-problem-widget",templateUrl:"./parent-reference-problem-widget.component.html",styleUrls:[]}]}],(function(){return[{type:l.RegistryService},{type:l.IOService},{type:s.DateService},{type:c.LocalizationService},{type:d.BsModalRef},{type:d.BsModalService}]}),{problem:[{type:r.Input}],job:[{type:r.Input}],onProblemResolved:[{type:r.Output}]})},604:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TermReferenceProblemWidgetComponent=void 0;var r=n(0),i=(n(30),n(31)),o=(n(203),n(519),n(112),n(16),n(111)),a=n(0),l=n(519),s=n(112),c=n(16),d=n(30),p=n(1),m=n(68),u=n(22),g=n(154);function h(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",6),a.ɵɵtext(1),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵtextInterpolate(n.message)}}function f(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",3),a.ɵɵelementStart(1,"div",7),a.ɵɵelementStart(2,"div",8),a.ɵɵelement(3,"i",9),a.ɵɵelementStart(4,"p",10),a.ɵɵelementStart(5,"span",11),a.ɵɵelementStart(6,"strong"),a.ɵɵtext(7),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"span",11),a.ɵɵelement(9,"localize",12),a.ɵɵtext(10),a.ɵɵelementEnd(),a.ɵɵelementStart(11,"span",11),a.ɵɵelement(12,"localize",13),a.ɵɵtext(13,": "),a.ɵɵelementStart(14,"span",14),a.ɵɵtext(15),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelement(16,"div",7),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(7),a.ɵɵtextInterpolate(n.job.fileName),a.ɵɵadvance(3),a.ɵɵtextInterpolate1(": ",n.job.author," "),a.ɵɵadvance(5),a.ɵɵtextInterpolate1(" ",n.formatDate(n.job.createDate)," ")}}function y(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",15),a.ɵɵelementStart(1,"div",16),a.ɵɵelementStart(2,"h4"),a.ɵɵelementStart(3,"strong"),a.ɵɵelement(4,"localize",17),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(5,"p",18),a.ɵɵtext(6),a.ɵɵelementEnd(),a.ɵɵelementStart(7,"h4"),a.ɵɵelementStart(8,"strong"),a.ɵɵelement(9,"localize",19),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(10,"p",18),a.ɵɵelement(11,"localize",20),a.ɵɵelementEnd(),a.ɵɵelementStart(12,"h4"),a.ɵɵelementStart(13,"strong"),a.ɵɵelement(14,"localize",21),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(15,"p"),a.ɵɵelement(16,"localize",22),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(17,"div",23),a.ɵɵelementStart(18,"div",24),a.ɵɵelementStart(19,"div",25),a.ɵɵelementStart(20,"label"),a.ɵɵelementStart(21,"span",26),a.ɵɵelement(22,"localize",27),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(23,"div",28),a.ɵɵelementStart(24,"span",29),a.ɵɵtext(25),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(26,"div",24),a.ɵɵelementStart(27,"div",25),a.ɵɵelementStart(28,"label"),a.ɵɵelementStart(29,"span",26),a.ɵɵelement(30,"localize",30),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(31,"div",28),a.ɵɵelementStart(32,"span",29),a.ɵɵtext(33),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(34,"div",31),a.ɵɵelementStart(35,"div",25),a.ɵɵelementStart(36,"label"),a.ɵɵelementStart(37,"span",26),a.ɵɵelement(38,"localize",32),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(39,"div",28),a.ɵɵelementStart(40,"input",33),a.ɵɵlistener("ngModelChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().searchLabel=e}))("typeaheadOnSelect",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().typeaheadOnSelect(e)})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(41,"div",24),a.ɵɵelementStart(42,"div",25),a.ɵɵelementStart(43,"label"),a.ɵɵelementStart(44,"span",26),a.ɵɵelement(45,"localize",34),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(46,"div",28),a.ɵɵelementStart(47,"button",35),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().onCreateSynonym()})),a.ɵɵelement(48,"localize",36),a.ɵɵelementEnd(),a.ɵɵelementStart(49,"button",37),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().onIgnore()})),a.ɵɵelement(50,"localize",38),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext();a.ɵɵadvance(6),a.ɵɵtextInterpolate(r.getValidationProblemDisplayLabel(r.problem)),a.ɵɵadvance(19),a.ɵɵtextInterpolate(r.problem.attributeLabel),a.ɵɵadvance(8),a.ɵɵtextInterpolate(r.problem.label),a.ɵɵadvance(7),a.ɵɵproperty("ngModel",r.searchLabel)("typeaheadAsync",!0)("typeahead",r.getTypeAheadObservable(r.problem))("typeaheadOptionsLimit",7)("typeaheadMinLength",0)("typeaheadWaitMs",300),a.ɵɵadvance(7),a.ɵɵproperty("disabled",null==r.termId)}}var v=function(){function e(e,t,n,i,o,a){this.service=e,this.iService=t,this.dateService=n,this.lService=i,this.bsModalRef=o,this.modalService=a,this.message=null,this.onProblemResolved=new r.EventEmitter,this.termId=null,this.readonly=!1,this.edit=!1}return e.prototype.ngOnInit=function(){this.problem.parent=null,this.searchLabel=""},e.prototype.getValidationProblemDisplayLabel=function(e){return e.type},e.prototype.getTypeAheadObservable=function(e){var t=this;return i.Observable.create((function(n){t.iService.getTermSuggestions(e.mdAttributeId,t.searchLabel,"20").then((function(e){n.next(e)}))}))},e.prototype.typeaheadOnSelect=function(e){this.termId=e.item.value},e.prototype.onIgnore=function(){var e=this,t={resolution:"IGNORE",validationProblemId:this.problem.id};this.service.submitValidationResolve(t).then((function(t){e.onProblemResolved.emit(e.problem),e.bsModalRef.hide()})).catch((function(t){e.error(t)}))},e.prototype.onCreateSynonym=function(){var e=this,t={validationProblemId:this.problem.id,resolution:"SYNONYM",classifierId:this.termId,label:this.problem.label};this.service.submitValidationResolve(t).then((function(t){e.onProblemResolved.emit(e.problem),e.bsModalRef.hide()})).catch((function(t){e.error(t)}))},e.prototype.onCancel=function(){this.bsModalRef.hide()},e.prototype.formatDate=function(e){return this.dateService.formatDateForDisplay(e)},e.prototype.error=function(e){this.message=o.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(l.RegistryService),a.ɵɵdirectiveInject(l.IOService),a.ɵɵdirectiveInject(s.DateService),a.ɵɵdirectiveInject(c.LocalizationService),a.ɵɵdirectiveInject(d.BsModalRef),a.ɵɵdirectiveInject(d.BsModalService))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["term-reference-problem-widget"]],inputs:{problem:"problem",job:"job"},outputs:{onProblemResolved:"onProblemResolved"},decls:6,vars:3,consts:[[1,"container"],["class","alert alert-danger","role","alert",4,"ngIf"],["class","row","style","background: #F4F4F4;\n border-radius: 10px;\n margin-bottom: 20px;\n margin-top: 20px;\n padding: 10px;",4,"ngIf"],[1,"row",2,"background","#F4F4F4","border-radius","10px","margin-bottom","20px","margin-top","20px","padding","10px"],[1,"col-md-12"],["class","row",4,"ngIf"],["role","alert",1,"alert","alert-danger"],[1,"col-md-6"],[1,"wrapper"],["aria-hidden","true",1,"fa","fa-file",2,"position","absolute","font-size","55px"],[2,"padding-left","60px"],[2,"display","block"],["key","importproblem.uploaded.by.label"],["key","importproblem.started.date.label"],[1,"date-string-display",2,"margin-left","5px"],[1,"row"],[1,"col-md-6",2,"background","white","border-radius","10px","width","41%","margin-right","7px"],["key","etl.problem.header.problem"],[2,"font-style","italic"],["key","etl.problem.header.message"],["key","etl.problem.termReference.message"],["key","etl.problem.header.toResolve"],["key","etl.problem.termReference.toResolve"],[1,"com-md-6",2,"background","white","border-radius","10px","width","41%","float","left","height","250px"],[1,"row-holder"],[1,"label-holder",2,"width","100px"],[1,"text"],["key","etl.problem.termReference.attributeLabel"],[1,"holder",2,"width","300px"],[1,"text",2,"margin-top","10px"],["key","etl.problem.termReference.label"],[1,"row-holder",2,"overflow","visible"],["key","etl.problem.termReference.synonym"],["type","text","autocomplete","off","name","termSearch","typeaheadOptionField","label",1,"form-control",2,"width","150px",3,"ngModel","typeaheadAsync","typeahead","typeaheadOptionsLimit","typeaheadMinLength","typeaheadWaitMs","ngModelChange","typeaheadOnSelect"],["key","etl.problem.termReference.actions"],["type","submit","role","button",1,"btn","btn-primary",3,"disabled","click"],["key","etl.problem.reference.createSynonym"],["type","submit","role","button",1,"btn","btn-primary",3,"click"],["key","etl.problem.reference.ignore"]],template:function(e,t){1&e&&(a.ɵɵelementStart(0,"div",0),a.ɵɵtemplate(1,h,2,1,"div",1),a.ɵɵtemplate(2,f,17,3,"div",2),a.ɵɵelementStart(3,"div",3),a.ɵɵelementStart(4,"div",4),a.ɵɵtemplate(5,y,51,10,"div",5),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e&&(a.ɵɵadvance(1),a.ɵɵproperty("ngIf",null!=t.message),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.problem&&t.job),a.ɵɵadvance(3),a.ɵɵproperty("ngIf",t.problem))},directives:[p.NgIf,m.LocalizeComponent,u.DefaultValueAccessor,u.NgControlStatus,u.NgModel,g.TypeaheadDirective],encapsulation:2}),e}();t.TermReferenceProblemWidgetComponent=v,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(v,[{type:r.Component,args:[{selector:"term-reference-problem-widget",templateUrl:"./term-reference-problem-widget.component.html",styleUrls:[]}]}],(function(){return[{type:l.RegistryService},{type:l.IOService},{type:s.DateService},{type:c.LocalizationService},{type:d.BsModalRef},{type:d.BsModalService}]}),{problem:[{type:r.Input}],job:[{type:r.Input}],onProblemResolved:[{type:r.Output}]})},605:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RowValidationProblemWidgetComponent=void 0;var r=n(0),i=(n(30),n(31)),o=(n(203),n(519),n(112),n(111)),a=(n(16),n(0)),l=n(519),s=n(112),c=n(16),d=n(30),p=n(1),m=n(68);function u(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",20),a.ɵɵtext(1),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵtextInterpolate(n.message)}}function g(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",3),a.ɵɵelementStart(1,"div",21),a.ɵɵelementStart(2,"div",22),a.ɵɵelement(3,"i",23),a.ɵɵelementStart(4,"p",24),a.ɵɵelementStart(5,"span",25),a.ɵɵelementStart(6,"strong"),a.ɵɵtext(7),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"span",25),a.ɵɵelement(9,"localize",26),a.ɵɵtext(10),a.ɵɵelementEnd(),a.ɵɵelementStart(11,"span",25),a.ɵɵelement(12,"localize",27),a.ɵɵtext(13,": "),a.ɵɵelementStart(14,"span",28),a.ɵɵtext(15),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelement(16,"div",21),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(7),a.ɵɵtextInterpolate(n.job.fileName),a.ɵɵadvance(3),a.ɵɵtextInterpolate1(": ",n.job.author," "),a.ɵɵadvance(5),a.ɵɵtextInterpolate1(" ",n.formatDate(n.job.createDate)," ")}}var h=function(){function e(e,t,n,i,o){this.service=e,this.iService=t,this.dateService=n,this.lService=i,this.bsModalRef=o,this.message=null,this.onProblemResolved=new r.EventEmitter,this.readonly=!1,this.edit=!1}return e.prototype.ngOnInit=function(){this.problem.parent=null,this.searchLabel=""},e.prototype.getString=function(e){return JSON.stringify(e)},e.prototype.getValidationProblemDisplayLabel=function(e){return e.type},e.prototype.getTypeAheadObservable=function(e,t){var n=this,r=this.job.configuration.hierarchy;return i.Observable.create((function(t){n.service.getGeoObjectSuggestions(n.searchLabel,e,null,null,r,n.job.startDate,n.job.endDate).then((function(e){t.next(e)}))}))},e.prototype.typeaheadOnSelect=function(e,t){var n=this;this.service.getParentGeoObjects(e.item.uid,t.typeCode,[],!1,this.job.startDate).then((function(e){t.parent=e.geoObject,n.searchLabel=e.geoObject.properties.displayLabel.localizedValue})).catch((function(e){n.error(e)}))},e.prototype.onIgnore=function(){var e=this,t={resolution:"IGNORE",validationProblemId:this.problem.id};this.service.submitValidationResolve(t).then((function(t){e.onProblemResolved.emit(e.problem),e.bsModalRef.hide()})).catch((function(t){e.error(t)}))},e.prototype.formatAffectedRows=function(e){return e.replace(/,/g,", ")},e.prototype.onCreateSynonym=function(){var e=this,t={validationProblemId:this.problem.id,resolution:"SYNONYM",code:this.problem.parent.properties.code,typeCode:this.problem.parent.properties.type,label:this.problem.label};this.service.submitValidationResolve(t).then((function(t){e.onProblemResolved.emit(e.problem),e.bsModalRef.hide()})).catch((function(t){e.error(t)}))},e.prototype.formatDate=function(e){return this.dateService.formatDateForDisplay(e)},e.prototype.onCancel=function(){this.bsModalRef.hide()},e.prototype.error=function(e){this.message=o.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(l.RegistryService),a.ɵɵdirectiveInject(l.IOService),a.ɵɵdirectiveInject(s.DateService),a.ɵɵdirectiveInject(c.LocalizationService),a.ɵɵdirectiveInject(d.BsModalRef))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["row-validation-problem-widget"]],inputs:{problem:"problem",job:"job"},outputs:{onProblemResolved:"onProblemResolved"},decls:39,vars:5,consts:[[1,"container"],["class","alert alert-danger","role","alert",4,"ngIf"],["class","row","style","background: #F4F4F4;\n border-radius: 10px;\n margin-bottom: 20px;\n margin-top: 20px;\n padding: 10px;",4,"ngIf"],[1,"row",2,"background","#F4F4F4","border-radius","10px","margin-bottom","20px","margin-top","20px","padding","10px"],[1,"col-md-12"],[1,"row"],[1,"col-md-6",2,"background","white","border-radius","10px","width","41%","margin-right","7px"],["key","etl.problem.header.problem"],[2,"font-style","italic"],["key","etl.problem.header.message"],["key","etl.problem.rowValidation.message"],["key","etl.problem.header.toResolve"],["key","etl.problem.rowValidation.toResolve"],[1,"com-md-6",2,"background","white","border-radius","10px","width","41%","float","left","height","250px"],[1,"row-holder"],[1,"label-holder",2,"width","100px"],[1,"text"],["key","scheduledjobs.validation.table.affected.rows.header"],[1,"holder",2,"width","300px"],[1,"text",2,"margin-top","10px"],["role","alert",1,"alert","alert-danger"],[1,"col-md-6"],[1,"wrapper"],["aria-hidden","true",1,"fa","fa-file",2,"position","absolute","font-size","55px"],[2,"padding-left","60px"],[2,"display","block"],["key","importproblem.uploaded.by.label"],["key","importproblem.started.date.label"],[1,"date-string-display",2,"margin-left","5px"]],template:function(e,t){1&e&&(a.ɵɵelementStart(0,"div",0),a.ɵɵtemplate(1,u,2,1,"div",1),a.ɵɵtemplate(2,g,17,3,"div",2),a.ɵɵelementStart(3,"div",3),a.ɵɵelementStart(4,"div",4),a.ɵɵelementStart(5,"div",5),a.ɵɵelementStart(6,"div",6),a.ɵɵelementStart(7,"h4"),a.ɵɵelementStart(8,"strong"),a.ɵɵelement(9,"localize",7),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(10,"p",8),a.ɵɵtext(11),a.ɵɵelementEnd(),a.ɵɵelementStart(12,"h4"),a.ɵɵelementStart(13,"strong"),a.ɵɵelement(14,"localize",9),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(15,"p",8),a.ɵɵelement(16,"localize",10),a.ɵɵelementEnd(),a.ɵɵelementStart(17,"h4"),a.ɵɵelementStart(18,"strong"),a.ɵɵelement(19,"localize",11),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(20,"p"),a.ɵɵelement(21,"localize",12),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(22,"div",13),a.ɵɵelementStart(23,"div",14),a.ɵɵelementStart(24,"div",15),a.ɵɵelementStart(25,"label"),a.ɵɵelementStart(26,"span",16),a.ɵɵelement(27,"localize",17),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(28,"div",18),a.ɵɵelementStart(29,"span",19),a.ɵɵtext(30),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(31,"div",14),a.ɵɵelementStart(32,"div",15),a.ɵɵelementStart(33,"label"),a.ɵɵelementStart(34,"span",16),a.ɵɵelement(35,"localize",10),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(36,"div",18),a.ɵɵelementStart(37,"span",19),a.ɵɵtext(38),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e&&(a.ɵɵadvance(1),a.ɵɵproperty("ngIf",null!=t.message),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.problem&&t.job),a.ɵɵadvance(9),a.ɵɵtextInterpolate(t.getValidationProblemDisplayLabel(t.problem)),a.ɵɵadvance(19),a.ɵɵtextInterpolate(t.formatAffectedRows(t.problem.affectedRows)),a.ɵɵadvance(8),a.ɵɵtextInterpolate(t.problem.exception.message))},directives:[p.NgIf,m.LocalizeComponent],encapsulation:2}),e}();t.RowValidationProblemWidgetComponent=h,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(h,[{type:r.Component,args:[{selector:"row-validation-problem-widget",templateUrl:"./row-validation-problem-widget.component.html",styleUrls:[]}]}],(function(){return[{type:l.RegistryService},{type:l.IOService},{type:s.DateService},{type:c.LocalizationService},{type:d.BsModalRef}]}),{problem:[{type:r.Input}],job:[{type:r.Input}],onProblemResolved:[{type:r.Output}]})},606:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ReuploadModalComponent=void 0;var r=n(0),i=(n(30),n(31)),o=n(205),a=n(261),l=(n(16),n(111)),s=(n(203),n(0)),c=n(30),d=n(16),p=n(1),m=n(22),u=n(68),g=n(205),h=["myFile"];function f(e,t){if(1&e&&(s.ɵɵelementStart(0,"div",4),s.ɵɵtext(1),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext();s.ɵɵadvance(1),s.ɵɵtextInterpolate(n.errorMessage)}}function y(e,t){1&e&&s.ɵɵelement(0,"localize",18)}function v(e,t){1&e&&s.ɵɵelement(0,"localize",19)}function b(e,t){if(1&e&&s.ɵɵelement(0,"input",20,21),2&e){var n=s.ɵɵnextContext(2);s.ɵɵproperty("uploader",n.uploader)}}function S(e,t){if(1&e&&s.ɵɵelement(0,"input",22,21),2&e){var n=s.ɵɵnextContext(2);s.ɵɵproperty("uploader",n.uploader)}}function C(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"form",5,6),s.ɵɵelementStart(2,"div",7),s.ɵɵelementStart(3,"label",8),s.ɵɵtemplate(4,y,1,0,"localize",9),s.ɵɵtemplate(5,v,1,0,"localize",10),s.ɵɵelementEnd(),s.ɵɵelementStart(6,"div",11),s.ɵɵtemplate(7,b,2,1,"input",12),s.ɵɵtemplate(8,S,2,1,"input",13),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(9,"div",14),s.ɵɵelementStart(10,"div",15),s.ɵɵelementStart(11,"button",16),s.ɵɵlistener("click",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext().bsModalRef.hide()})),s.ɵɵelementStart(12,"span"),s.ɵɵtext(13),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(14,"button",17),s.ɵɵlistener("click",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext().confirm()})),s.ɵɵelementStart(15,"span"),s.ɵɵtext(16),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext();s.ɵɵadvance(4),s.ɵɵproperty("ngIf","SHAPEFILE"===r.job.configuration.formatType),s.ɵɵadvance(1),s.ɵɵproperty("ngIf","EXCEL"===r.job.configuration.formatType),s.ɵɵadvance(2),s.ɵɵproperty("ngIf","SHAPEFILE"===r.job.configuration.formatType),s.ɵɵadvance(1),s.ɵɵproperty("ngIf","EXCEL"===r.job.configuration.formatType),s.ɵɵadvance(5),s.ɵɵtextInterpolate(r.cancelText),s.ɵɵadvance(1),s.ɵɵproperty("ngClass","DANGER"===r.type.toUpperCase()?"btn-danger":"btn-primary"),s.ɵɵadvance(2),s.ɵɵtextInterpolate(r.submitText)}}var E=function(){function e(e,t,n){this.bsModalRef=e,this.localizeService=t,this.eventService=n,this.title=this.localizeService.decode("reuploadmodal.title"),this.message=this.localizeService.decode("reuploadmodal.message"),this.submitText=this.localizeService.decode("reuploadmodal.import"),this.cancelText=this.localizeService.decode("modal.button.cancel"),this.type=a.ModalTypes.warning}return e.prototype.ngOnInit=function(){var e=this;this.onConfirm=new i.Subject;var t={queueLimit:1,removeAfterUpload:!0,url:acp+"/etl/reimport"};this.uploader=new o.FileUploader(t),this.uploader.onBuildItemForm=function(t,n){n.append("json",JSON.stringify(e.job.configuration))},this.uploader.onBeforeUploadItem=function(t){e.eventService.start()},this.uploader.onCompleteItem=function(t,n,r,i){e.fileRef.nativeElement.value="",e.eventService.complete()},this.uploader.onSuccessItem=function(t,n,r,i){e.onConfirm.next(e.data),e.bsModalRef.hide()},this.uploader.onErrorItem=function(t,n,r,i){e.error(JSON.parse(n))}},e.prototype.toString=function(e){return JSON.stringify(e)},e.prototype.confirm=function(){null!=this.uploader.queue&&this.uploader.queue.length>0?this.uploader.uploadAll():this.error({message:this.localizeService.decode("io.missing.file"),error:{}})},e.prototype.error=function(e){this.errorMessage=l.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(s.ɵɵdirectiveInject(c.BsModalRef),s.ɵɵdirectiveInject(d.LocalizationService),s.ɵɵdirectiveInject(d.EventService))},e.ɵcmp=s.ɵɵdefineComponent({type:e,selectors:[["reupload-modal"]],viewQuery:function(e,t){if(1&e&&s.ɵɵviewQuery(h,1),2&e){var n;s.ɵɵqueryRefresh(n=s.ɵɵloadQuery())&&(t.fileRef=n.first)}},inputs:{title:"title",message:"message",data:"data",submitText:"submitText",cancelText:"cancelText",type:"type",job:"job"},decls:8,vars:4,consts:[[1,"modal-body"],["class","alert alert-danger","role","alert",4,"ngIf"],[1,"heading"],["style","margin-top: 30px;",4,"ngIf"],["role","alert",1,"alert","alert-danger"],[2,"margin-top","30px"],["form","ngForm"],[1,"form-group","row"],["for","file",1,"col-md-3","text-right"],["key","io.shapefile",4,"ngIf"],["key","io.spreadsheet",4,"ngIf"],[1,"col-md-9"],["class","ghost-input","name","file","type","file","ng2FileSelect","","accept",".zip","required","",3,"uploader",4,"ngIf"],["class","ghost-input","name","file","type","file","ng2FileSelect","","accept",".xlsx,.zip","required","",3,"uploader",4,"ngIf"],[1,"modal-footer"],[1,"button-holder"],["type","button","role","button","aria-disabled","false",1,"btn","btn-default",2,"padding","4px 18px",3,"click"],["type","button","role","button","aria-disabled","false",1,"btn",2,"padding","4px 18px",3,"ngClass","click"],["key","io.shapefile"],["key","io.spreadsheet"],["name","file","type","file","ng2FileSelect","","accept",".zip","required","",1,"ghost-input",3,"uploader"],["myFile",""],["name","file","type","file","ng2FileSelect","","accept",".xlsx,.zip","required","",1,"ghost-input",3,"uploader"]],template:function(e,t){1&e&&(s.ɵɵelementStart(0,"div",0),s.ɵɵtemplate(1,f,2,1,"div",1),s.ɵɵelementStart(2,"div",2),s.ɵɵelementStart(3,"h3"),s.ɵɵtext(4),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(5,"div"),s.ɵɵtext(6),s.ɵɵelementEnd(),s.ɵɵtemplate(7,C,17,7,"form",3),s.ɵɵelementEnd()),2&e&&(s.ɵɵadvance(1),s.ɵɵproperty("ngIf",t.errorMessage),s.ɵɵadvance(3),s.ɵɵtextInterpolate(t.title),s.ɵɵadvance(2),s.ɵɵtextInterpolate(t.message),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",t.job))},directives:[p.NgIf,m.ɵangular_packages_forms_forms_ba,m.NgControlStatusGroup,m.NgForm,p.NgClass,u.LocalizeComponent,g.FileSelectDirective],encapsulation:2}),e}();t.ReuploadModalComponent=E,("undefined"==typeof ngDevMode||ngDevMode)&&s.ɵsetClassMetadata(E,[{type:r.Component,args:[{selector:"reupload-modal",templateUrl:"./reupload-modal.component.html",styleUrls:[]}]}],(function(){return[{type:c.BsModalRef},{type:d.LocalizationService},{type:d.EventService}]}),{title:[{type:r.Input}],message:[{type:r.Input}],data:[{type:r.Input}],submitText:[{type:r.Input}],cancelText:[{type:r.Input}],type:[{type:r.Input}],job:[{type:r.Input}],fileRef:[{type:r.ViewChild,args:["myFile"]}]})},607:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TaskViewerComponent=void 0;var r=n(0),i=n(1),o=(n(519),n(112),n(203),n(16),n(0)),a=n(519),l=n(16),s=n(112),c=n(122),d=n(97),p=n(68),m=n(1),u=n(204);function g(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",15),o.ɵɵelementStart(1,"div",16),o.ɵɵelementStart(2,"h4"),o.ɵɵtext(3),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(4,"div",17),o.ɵɵelementStart(5,"div",4),o.ɵɵelementStart(6,"div",5),o.ɵɵelementStart(7,"p",18),o.ɵɵtext(8),o.ɵɵelementEnd(),o.ɵɵelementStart(9,"label",19),o.ɵɵelement(10,"localize",20),o.ɵɵelementEnd(),o.ɵɵelementStart(11,"span",21),o.ɵɵtext(12),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(13,"div",22),o.ɵɵelementStart(14,"label",23),o.ɵɵelement(15,"input",24),o.ɵɵelementStart(16,"span"),o.ɵɵelement(17,"localize",25),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(18,"label",23),o.ɵɵelementStart(19,"input",26),o.ɵɵlistener("click",(function(){o.ɵɵrestoreView(n);var e=t.$implicit;return o.ɵɵnextContext(2).onCompleteTask(e)})),o.ɵɵelementEnd(),o.ɵɵelementStart(20,"span"),o.ɵɵelement(21,"localize",27),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=o.ɵɵnextContext(2);o.ɵɵadvance(3),o.ɵɵtextInterpolate(r.title),o.ɵɵadvance(5),o.ɵɵtextInterpolate(r.msg),o.ɵɵadvance(4),o.ɵɵtextInterpolate1(" ",i.formatDate(r.createDate)," "),o.ɵɵadvance(3),o.ɵɵpropertyInterpolate1("id","",r.id,"-inProgress"),o.ɵɵpropertyInterpolate1("name","",r.id,"-inProgress"),o.ɵɵadvance(4),o.ɵɵpropertyInterpolate1("id","",r.id,"-completed"),o.ɵɵpropertyInterpolate1("name","",r.id,"-completed")}}function h(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",28),o.ɵɵelementStart(1,"pagination-controls",29),o.ɵɵlistener("pageChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).onInProgressTasksPageChange(e)})),o.ɵɵelementEnd(),o.ɵɵelementEnd()}}var f=function(e,t,n){return{id:"inProgressTasks",itemsPerPage:e,currentPage:t,totalItems:n}};function y(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",4),o.ɵɵelementStart(1,"div",10),o.ɵɵelementStart(2,"div",12),o.ɵɵtemplate(3,g,22,7,"div",13),o.ɵɵpipe(4,"paginate"),o.ɵɵtemplate(5,h,2,0,"div",14),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext();o.ɵɵadvance(3),o.ɵɵproperty("ngForOf",o.ɵɵpipeBind2(4,2,n.inProgressTasks.results,o.ɵɵpureFunction3(5,f,n.inProgressTasks.pageSize,n.inProgressTasks.pageNumber,n.inProgressTasks.count))),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.inProgressTasks.results.length>0)}}function v(e,t){1&e&&o.ɵɵelement(0,"localize",30)}function b(e,t){1&e&&o.ɵɵelement(0,"localize",31)}function S(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",15),o.ɵɵelementStart(1,"div",16),o.ɵɵelementStart(2,"h4"),o.ɵɵtext(3),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(4,"div",17),o.ɵɵelementStart(5,"div",4),o.ɵɵelementStart(6,"div",5),o.ɵɵelementStart(7,"p",18),o.ɵɵtext(8),o.ɵɵelementEnd(),o.ɵɵelementStart(9,"label",19),o.ɵɵelement(10,"localize",20),o.ɵɵelementEnd(),o.ɵɵelementStart(11,"span",32),o.ɵɵtext(12),o.ɵɵelementEnd(),o.ɵɵelementStart(13,"label",19),o.ɵɵelement(14,"localize",33),o.ɵɵelementEnd(),o.ɵɵelementStart(15,"span",21),o.ɵɵtext(16),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(17,"div",22),o.ɵɵelementStart(18,"label",23),o.ɵɵelementStart(19,"input",34),o.ɵɵlistener("click",(function(){o.ɵɵrestoreView(n);var e=t.$implicit;return o.ɵɵnextContext(2).onMoveTaskToInProgress(e)})),o.ɵɵelementEnd(),o.ɵɵelementStart(20,"span"),o.ɵɵelement(21,"localize",25),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(22,"label",23),o.ɵɵelement(23,"input",35),o.ɵɵelementStart(24,"span"),o.ɵɵelement(25,"localize",27),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=o.ɵɵnextContext(2);o.ɵɵadvance(3),o.ɵɵtextInterpolate(r.title),o.ɵɵadvance(5),o.ɵɵtextInterpolate(r.msg),o.ɵɵadvance(4),o.ɵɵtextInterpolate1(" ",i.formatDate(r.createDate)," "),o.ɵɵadvance(4),o.ɵɵtextInterpolate1(" ",i.formatDate(r.completedDate)," "),o.ɵɵadvance(3),o.ɵɵproperty("id",r.id+"-inProgress")("name",r.id+"-inProgress"),o.ɵɵadvance(4),o.ɵɵproperty("id",r.id+"-completed")("name",r.id+"-completed")}}function C(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",28),o.ɵɵelementStart(1,"pagination-controls",36),o.ɵɵlistener("pageChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).onCompletedTasksPageChange(e)})),o.ɵɵelementEnd(),o.ɵɵelementEnd()}}var E=function(e,t,n){return{id:"completedTasks",itemsPerPage:e,currentPage:t,totalItems:n}};function x(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",12),o.ɵɵtemplate(1,S,26,8,"div",13),o.ɵɵpipe(2,"paginate"),o.ɵɵtemplate(3,C,2,0,"div",14),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext();o.ɵɵadvance(1),o.ɵɵproperty("ngForOf",o.ɵɵpipeBind2(2,2,n.completedTasks.results,o.ɵɵpureFunction3(5,E,n.completedTasks.pageSize,n.completedTasks.pageNumber,n.completedTasks.count))),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.completedTasks.results.length>0)}}function O(e,t){1&e&&(o.ɵɵelementStart(0,"div",12),o.ɵɵelementStart(1,"p",37),o.ɵɵelement(2,"localize",38),o.ɵɵelementEnd(),o.ɵɵelementEnd())}var I=function(){function e(e,t,n){this.taskService=e,this.localizeService=t,this.dateService=n,this.inProgressTasks={count:0,pageNumber:1,pageSize:10,results:[]},this.completedTasks={count:0,pageNumber:1,pageSize:10,results:[]},this.isViewAllOpen=!1,this.activeTimeCounter=0,this.completeTimeCounter=0}return e.prototype.ngOnInit=function(){this.onInProgressTasksPageChange(1)},e.prototype.onInProgressTasksPageChange=function(e){var t=this;this.taskService.getMyTasks(e,this.inProgressTasks.pageSize,"UNRESOLVED").then((function(e){t.inProgressTasks=e}))},e.prototype.onCompletedTasksPageChange=function(e){var t=this;this.taskService.getMyTasks(e,this.completedTasks.pageSize,"RESOLVED").then((function(e){t.completedTasks=e}))},e.prototype.onCompleteTask=function(e){var t=this;this.taskService.completeTask(e.id).then((function(){var n=t.inProgressTasks.results.findIndex((function(t){return t.id===e.id}));-1!==n&&t.inProgressTasks.results.splice(n,1),t.isViewAllOpen&&t.onCompletedTasksPageChange(t.completedTasks.pageNumber)}))},e.prototype.onMoveTaskToInProgress=function(e){var t=this;this.isViewAllOpen=!0,this.taskService.setTaskStatus(e.id,"UNRESOLVED").then((function(){var n=t.completedTasks.results.findIndex((function(t){return t.id===e.id}));-1!==n&&t.completedTasks.results.splice(n,1),t.completedTasks.results.splice(n,1),t.inProgressTasks.results.push(e)}))},e.prototype.onToggleCompletedTasks=function(){this.isViewAllOpen=!this.isViewAllOpen,this.isViewAllOpen&&this.onCompletedTasksPageChange(1)},e.prototype.formatDate=function(e){return this.dateService.formatDateForDisplay(e)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.TaskService),o.ɵɵdirectiveInject(l.LocalizationService),o.ɵɵdirectiveInject(s.DateService))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["task-viewer"]],inputs:{geoObjectType:"geoObjectType"},features:[o.ɵɵProvidersFeature([i.DatePipe])],decls:19,vars:5,consts:[[1,"new-admin-design-main"],["id","app-container",1,"container"],["key","tasks.openTasksTitle"],["class","row",4,"ngIf"],[1,"row"],[1,"col-md-9"],["key","tasks.completedTasksTitle"],["type","submit","role","button",1,"btn","btn-default","pull-right",2,"margin-top","20px",3,"click"],["key","tasks.viewCompletedTasksButton",4,"ngIf"],["key","tasks.hideCompletedTasksButton",4,"ngIf"],[1,"col-md-12"],["class","content-wrapper",4,"ngIf"],[1,"content-wrapper"],["class","panel panel-default",4,"ngFor","ngForOf"],["class","solid-table-footer",4,"ngIf"],[1,"panel","panel-default"],[1,"panel-heading"],[1,"panel-body"],[2,"margin-bottom","20px"],[2,"margin-right","20px"],["key","tasks.createDateLabel"],[1,"date-string-display"],[1,"col-md-3",2,"min-height","90px","display","flex","align-items","center"],[1,"radio-inline","radio"],["type","radio","checked","","value","true",1,"inline-radio-input",2,"height","auto",3,"id","name"],["key","tasks.open"],["type","radio","value","false",1,"inline-radio-input",2,"margin-left","15px","height","auto",3,"id","name","click"],["key","tasks.complete"],[1,"solid-table-footer"],["id","inProgressTasks",3,"pageChange"],["key","tasks.viewCompletedTasksButton"],["key","tasks.hideCompletedTasksButton"],[1,"date-string-display",2,"margin-right","30px"],["key","tasks.completeDateLabel"],["type","radio","value","true",1,"inline-radio-input",2,"height","auto",3,"id","name","click"],["checked","","type","radio","value","false",1,"inline-radio-input",2,"margin-left","15px","height","auto",3,"id","name"],["id","completedTasks",3,"pageChange"],[2,"font-style","italic","color","grey"],["key","tasks.no.completed.tasks.message"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵelement(1,"cgr-header"),o.ɵɵelementStart(2,"div",1),o.ɵɵelement(3,"message"),o.ɵɵelementStart(4,"h2"),o.ɵɵelement(5,"localize",2),o.ɵɵelementEnd(),o.ɵɵelement(6,"hr"),o.ɵɵtemplate(7,y,6,9,"div",3),o.ɵɵelementStart(8,"div",4),o.ɵɵelementStart(9,"h2",5),o.ɵɵelement(10,"localize",6),o.ɵɵelementEnd(),o.ɵɵelementStart(11,"button",7),o.ɵɵlistener("click",(function(){return t.onToggleCompletedTasks()})),o.ɵɵtemplate(12,v,1,0,"localize",8),o.ɵɵtemplate(13,b,1,0,"localize",9),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelement(14,"hr"),o.ɵɵelementStart(15,"div",4),o.ɵɵelementStart(16,"div",10),o.ɵɵtemplate(17,x,4,9,"div",11),o.ɵɵtemplate(18,O,3,0,"div",11),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(7),o.ɵɵproperty("ngIf",t.inProgressTasks.results.length>0),o.ɵɵadvance(5),o.ɵɵproperty("ngIf",!t.isViewAllOpen),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",t.isViewAllOpen),o.ɵɵadvance(4),o.ɵɵproperty("ngIf",t.isViewAllOpen&&t.completedTasks.results.length>0),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",0===t.completedTasks.results.length&&t.isViewAllOpen))},directives:[c.CgrHeaderComponent,d.MessageComponent,p.LocalizeComponent,m.NgIf,m.NgForOf,u.PaginationControlsComponent],pipes:[u.PaginatePipe],styles:['.modal-content[_ngcontent-%COMP%] {\n overflow-y: visible !important;\n}\n\n.modal-form[_ngcontent-%COMP%] .text[_ngcontent-%COMP%] input[type="text"][_ngcontent-%COMP%]:disabled {\n background: #eee;\n}\n\nli.list-group-item[_ngcontent-%COMP%] {\n font-size: 18px;\n}\n\n.warning-text[_ngcontent-%COMP%]{\n color: orange;\n}']}),e}();t.TaskViewerComponent=I,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(I,[{type:r.Component,args:[{selector:"task-viewer",templateUrl:"./task-viewer.component.html",styleUrls:["./task-viewer.component.css"],providers:[i.DatePipe]}]}],(function(){return[{type:a.TaskService},{type:l.LocalizationService},{type:s.DateService}]}),{geoObjectType:[{type:r.Input}]})},608:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FhirExportSynchronizationConfigComponent=void 0;var r=n(0),i=(n(31),n(203),n(519),n(0)),o=n(519),a=n(68),l=n(1),s=n(22),c=n(113);function d(e,t){if(1&e&&(i.ɵɵelementStart(0,"option",26),i.ɵɵtext(1),i.ɵɵelementEnd()),2&e){var n=t.$implicit;i.ɵɵproperty("value",n.oid),i.ɵɵadvance(1),i.ɵɵtextInterpolate(n.label)}}function p(e,t){if(1&e&&(i.ɵɵelementStart(0,"option",26),i.ɵɵtext(1),i.ɵɵelementEnd()),2&e){var n=t.$implicit;i.ɵɵproperty("value",n.oid),i.ɵɵadvance(1),i.ɵɵtextInterpolate(n.forDate)}}function m(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"select",21),i.ɵɵlistener("ngModelChange",(function(e){return i.ɵɵrestoreView(n),i.ɵɵnextContext().$implicit.versionId=e})),i.ɵɵelement(1,"option"),i.ɵɵtemplate(2,p,2,2,"option",19),i.ɵɵelementEnd()}if(2&e){var r=i.ɵɵnextContext().$implicit,o=i.ɵɵnextContext();i.ɵɵproperty("ngModel",r.versionId)("name","version"+r.level),i.ɵɵadvance(2),i.ɵɵproperty("ngForOf",o.versions[r.masterListId].versions)}}function u(e,t){if(1&e&&(i.ɵɵelementStart(0,"option",26),i.ɵɵtext(1),i.ɵɵelementEnd()),2&e){var n=t.$implicit;i.ɵɵproperty("value",n.className),i.ɵɵadvance(1),i.ɵɵtextInterpolate(n.label)}}function g(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"tr"),i.ɵɵelementStart(1,"td",6),i.ɵɵelementStart(2,"label",15),i.ɵɵelement(3,"localize",16),i.ɵɵtext(4),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(5,"td",17),i.ɵɵelementStart(6,"select",18),i.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.masterListId=e}))("change",(function(){i.ɵɵrestoreView(n);var e=t.$implicit;return i.ɵɵnextContext().onSelectMasterList(e)})),i.ɵɵelement(7,"option"),i.ɵɵtemplate(8,d,2,2,"option",19),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(9,"td",17),i.ɵɵtemplate(10,m,3,3,"select",20),i.ɵɵelementEnd(),i.ɵɵelementStart(11,"td",17),i.ɵɵelementStart(12,"select",21),i.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.implementation=e})),i.ɵɵelement(13,"option"),i.ɵɵtemplate(14,u,2,2,"option",19),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(15,"td",17),i.ɵɵelementStart(16,"div"),i.ɵɵelementStart(17,"a",22),i.ɵɵlistener("click",(function(){i.ɵɵrestoreView(n);var e=t.index;return i.ɵɵnextContext().removeLevel(e)})),i.ɵɵpipe(18,"localize"),i.ɵɵelement(19,"i",23),i.ɵɵelementStart(20,"label",24),i.ɵɵelement(21,"localize",25),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd()}if(2&e){var r=t.$implicit,o=i.ɵɵnextContext();i.ɵɵstyleProp("background-color","#F7F7F7"),i.ɵɵadvance(4),i.ɵɵtextInterpolate1(" ",r.level+1," "),i.ɵɵadvance(2),i.ɵɵproperty("ngModel",r.masterListId)("name","masterList"+r.level),i.ɵɵadvance(2),i.ɵɵproperty("ngForOf",o.lists),i.ɵɵadvance(2),i.ɵɵproperty("ngIf",null!=o.versions[r.masterListId]),i.ɵɵadvance(2),i.ɵɵproperty("ngModel",r.implementation)("name","implementation"+r.level),i.ɵɵadvance(2),i.ɵɵproperty("ngForOf",o.implementations),i.ɵɵadvance(3),i.ɵɵproperty("title",i.ɵɵpipeBind1(18,11,"button.delete.helptext"))}}var h=function(){function e(e,t){this.service=e,this.rService=t,this.message=null,this.onError=new r.EventEmitter,this.subscription=null,this.versions={},this.implementations=[],this.lists=[]}return e.prototype.ngOnInit=function(){var e=this;this.reset(),this.subscription=this.fieldChange.subscribe((function(t){"organization"!==t&&"system"!==t||e.reset()})),this.service.getFhirExportImplementations().then((function(t){e.implementations=t}))},e.prototype.ngOnDestroy=function(){null!=this.subscription&&this.subscription.unsubscribe()},e.prototype.reset=function(){var e=this;if(null==this.config.configuration&&(this.config.configuration={levels:[],hierarchy:null}),null!=this.config.configuration.levels)for(var t=0;t0&&!n.isOrgUnitGroup),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",0==n.info.dhis2Attrs.length&&!n.isOrgUnitGroup)}}function R(e,t){1&e&&i.ɵɵelement(0,"localize",89)}function P(e,t){1&e&&i.ɵɵelement(0,"localize",90)}function A(e,t){if(1&e&&(i.ɵɵelementStart(0,"option",8),i.ɵɵtext(1),i.ɵɵelementEnd()),2&e){var n=t.$implicit;i.ɵɵproperty("value",n.code),i.ɵɵadvance(1),i.ɵɵtextInterpolate1(" ",n.name," ")}}function V(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"select",91),i.ɵɵlistener("ngModelChange",(function(e){i.ɵɵrestoreView(n);var t=i.ɵɵnextContext().$implicit;return i.ɵɵnextContext(2).$implicit.terms[t.code]=e})),i.ɵɵelementStart(1,"option",61),i.ɵɵelement(2,"localize",79),i.ɵɵelementEnd(),i.ɵɵtemplate(3,A,2,2,"option",7),i.ɵɵelementEnd()}if(2&e){var r=i.ɵɵnextContext().$implicit,o=i.ɵɵnextContext(2).$implicit,a=i.ɵɵnextContext(4);i.ɵɵproperty("ngModel",o.terms[r.code])("ngModelOptions",i.ɵɵpureFunction0(4,j)),i.ɵɵadvance(1),i.ɵɵproperty("ngValue",null),i.ɵɵadvance(2),i.ɵɵproperty("ngForOf",a.getTermOptions(o.info,o.externalId))}}function N(e,t){if(1&e&&(i.ɵɵelementStart(0,"option",8),i.ɵɵtext(1),i.ɵɵelementEnd()),2&e){var n=t.$implicit;i.ɵɵproperty("value",n.id),i.ɵɵadvance(1),i.ɵɵtextInterpolate(n.name)}}function L(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"select",92),i.ɵɵlistener("ngModelChange",(function(e){i.ɵɵrestoreView(n);var t=i.ɵɵnextContext().$implicit;return i.ɵɵnextContext(2).$implicit.terms[t.code]=e})),i.ɵɵelementStart(1,"option",61),i.ɵɵelement(2,"localize",79),i.ɵɵelementEnd(),i.ɵɵtemplate(3,N,2,2,"option",7),i.ɵɵelementEnd()}if(2&e){var r=i.ɵɵnextContext().$implicit,o=i.ɵɵnextContext(2).$implicit,a=i.ɵɵnextContext(4);i.ɵɵproperty("ngModel",o.terms[r.code])("ngModelOptions",i.ɵɵpureFunction0(4,j)),i.ɵɵadvance(1),i.ɵɵproperty("ngValue",null),i.ɵɵadvance(2),i.ɵɵproperty("ngForOf",a.orgUnitGroups)}}function _(e,t){if(1&e&&(i.ɵɵelementStart(0,"table",82),i.ɵɵelementStart(1,"thead"),i.ɵɵelementStart(2,"tr"),i.ɵɵelement(3,"th",14),i.ɵɵelementStart(4,"th",14),i.ɵɵelementStart(5,"label"),i.ɵɵelement(6,"localize",83),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelement(7,"th",14),i.ɵɵelementStart(8,"th",14),i.ɵɵelementStart(9,"label"),i.ɵɵtemplate(10,R,1,0,"localize",84),i.ɵɵtemplate(11,P,1,0,"localize",85),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(12,"tbody"),i.ɵɵelementStart(13,"tr"),i.ɵɵelement(14,"td"),i.ɵɵelementStart(15,"td"),i.ɵɵelementStart(16,"label",70),i.ɵɵtext(17),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(18,"td",86),i.ɵɵelementStart(19,"label",70),i.ɵɵelement(20,"localize",76),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(21,"td"),i.ɵɵtemplate(22,V,4,5,"select",87),i.ɵɵtemplate(23,L,4,5,"select",88),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd()),2&e){var n=t.$implicit,r=i.ɵɵnextContext(2).$implicit;i.ɵɵadvance(10),i.ɵɵproperty("ngIf",!r.isOrgUnitGroup),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",r.isOrgUnitGroup),i.ɵɵadvance(6),i.ɵɵtextInterpolate(n.label),i.ɵɵadvance(5),i.ɵɵproperty("ngIf",!r.isOrgUnitGroup),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",r.isOrgUnitGroup)}}function F(e,t){if(1&e&&(i.ɵɵelementStart(0,"div"),i.ɵɵtemplate(1,_,24,5,"table",81),i.ɵɵelementEnd()),2&e){var n=i.ɵɵnextContext().$implicit;i.ɵɵadvance(1),i.ɵɵproperty("ngForOf",n.info.terms)}}function H(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"tr"),i.ɵɵelementStart(1,"td",52),i.ɵɵelementStart(2,"table",53),i.ɵɵelementStart(3,"thead"),i.ɵɵelementStart(4,"tr"),i.ɵɵelement(5,"th",54),i.ɵɵelementStart(6,"th",55),i.ɵɵelementStart(7,"label"),i.ɵɵelement(8,"localize",56),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(9,"th",55),i.ɵɵelementStart(10,"label"),i.ɵɵelement(11,"localize",57),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(12,"th",55),i.ɵɵtemplate(13,S,2,0,"label",58),i.ɵɵelementEnd(),i.ɵɵelementStart(14,"th",55),i.ɵɵtemplate(15,E,2,1,"label",58),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(16,"tbody"),i.ɵɵelementStart(17,"tr"),i.ɵɵelementStart(18,"td",54),i.ɵɵelementStart(19,"i",59),i.ɵɵlistener("click",(function(){i.ɵɵrestoreView(n);var e=t.index,r=i.ɵɵnextContext(2).$implicit;return i.ɵɵnextContext(2).deleteMapping(r,e)})),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(20,"td",55),i.ɵɵelementStart(21,"select",60),i.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.cgrAttrName=e}))("change",(function(e){i.ɵɵrestoreView(n);var r=t.$implicit,o=i.ɵɵnextContext(2).$implicit;return i.ɵɵnextContext(2).mapCgrAttr(0==e.target.selectedIndex?null:o.attrCfg.attrConfigInfos[e.target.selectedIndex-1],r)})),i.ɵɵelement(22,"option",61),i.ɵɵtemplate(23,x,3,2,"option",62),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(24,"td",55),i.ɵɵtemplate(25,O,2,1,"label",63),i.ɵɵelementEnd(),i.ɵɵtemplate(26,w,2,1,"td",64),i.ɵɵtemplate(27,M,3,0,"td",65),i.ɵɵtemplate(28,D,3,2,"td",66),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵtemplate(29,F,2,1,"div",58),i.ɵɵelementEnd(),i.ɵɵelementEnd()}if(2&e){var r=t.$implicit,o=t.index,a=i.ɵɵnextContext(2),l=a.index,s=a.$implicit;i.ɵɵadvance(13),i.ɵɵproperty("ngIf",r.info&&"term"===r.info.cgrAttr.type),i.ɵɵadvance(2),i.ɵɵproperty("ngIf",r.info),i.ɵɵadvance(6),i.ɵɵproperty("ngModel",r.cgrAttrName)("name","sourceAttrSelect"+l+"-"+o+(r.cgrAttrName?r.cgrAttrName:"")),i.ɵɵadvance(1),i.ɵɵproperty("ngValue",null),i.ɵɵadvance(1),i.ɵɵproperty("ngForOf",s.attrCfg.attrConfigInfos),i.ɵɵadvance(2),i.ɵɵproperty("ngIf",r.info),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",r.info&&"term"===r.info.cgrAttr.type),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",r.info&&"term"!==r.info.cgrAttr.type&&r.info.cgrAttr.name),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",r.info),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",r.info&&(null!=r.externalId&&r.externalId.length>0||r.isOrgUnitGroup))}}function G(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"td",46),i.ɵɵelementStart(1,"h4"),i.ɵɵelement(2,"localize",47),i.ɵɵelementEnd(),i.ɵɵelementStart(3,"table",48),i.ɵɵelementStart(4,"colgroup"),i.ɵɵelement(5,"col",49),i.ɵɵelement(6,"col",50),i.ɵɵelementEnd(),i.ɵɵelementStart(7,"tbody"),i.ɵɵtemplate(8,H,30,11,"tr",51),i.ɵɵelementStart(9,"tr"),i.ɵɵelementStart(10,"td",22),i.ɵɵelementStart(11,"a",23),i.ɵɵlistener("click",(function(){i.ɵɵrestoreView(n);var e=i.ɵɵnextContext().$implicit;return i.ɵɵnextContext(2).addNewMapping(e)})),i.ɵɵpipe(12,"localize"),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd()}if(2&e){var r=i.ɵɵnextContext().$implicit;i.ɵɵadvance(8),i.ɵɵproperty("ngForOf",r.attrCfg.mappings),i.ɵɵadvance(3),i.ɵɵproperty("title",i.ɵɵpipeBind1(12,2,"sync.attr.attributes.add.tooltip"))}}function q(e,t){if(1&e&&(i.ɵɵelementStart(0,"tr"),i.ɵɵtemplate(1,m,4,1,"td",24),i.ɵɵtemplate(2,g,4,3,"td",25),i.ɵɵtemplate(3,h,9,2,"td",25),i.ɵɵtemplate(4,y,4,3,"td",26),i.ɵɵtemplate(5,b,9,4,"td",25),i.ɵɵtemplate(6,G,13,4,"td",27),i.ɵɵelementEnd()),2&e){var n=t.$implicit,r=i.ɵɵnextContext(2);i.ɵɵstyleProp("background-color",!1===n.isAttributeEditor?"#F7F7F7":""),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",!1===n.isAttributeEditor),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",!1===n.isAttributeEditor),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",!1===n.isAttributeEditor),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",!1===n.isAttributeEditor&&r.orgUnitGroups.length>0),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",!1===n.isAttributeEditor),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",!0===n.isAttributeEditor)}}function B(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"div",1),i.ɵɵelementStart(1,"div",2),i.ɵɵelementStart(2,"label"),i.ɵɵelement(3,"localize",9),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(4,"div",4),i.ɵɵelementStart(5,"div",10),i.ɵɵelementStart(6,"table",11),i.ɵɵelementStart(7,"thead"),i.ɵɵelementStart(8,"tr"),i.ɵɵelementStart(9,"th",12),i.ɵɵelement(10,"localize",13),i.ɵɵelementEnd(),i.ɵɵelementStart(11,"th",14),i.ɵɵelement(12,"localize",15),i.ɵɵelementEnd(),i.ɵɵelementStart(13,"th",14),i.ɵɵelement(14,"localize",16),i.ɵɵelementEnd(),i.ɵɵelementStart(15,"th",17),i.ɵɵelement(16,"localize",18),i.ɵɵelementEnd(),i.ɵɵelementStart(17,"th",19),i.ɵɵelement(18,"localize",20),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(19,"tbody"),i.ɵɵtemplate(20,q,7,8,"tr",21),i.ɵɵelementStart(21,"tr"),i.ɵɵelementStart(22,"td",22),i.ɵɵelementStart(23,"a",23),i.ɵɵlistener("click",(function(){return i.ɵɵrestoreView(n),i.ɵɵnextContext().addLevel()})),i.ɵɵpipe(24,"localize"),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd()}if(2&e){var r=i.ɵɵnextContext();i.ɵɵadvance(20),i.ɵɵproperty("ngForOf",r.levelRows),i.ɵɵadvance(3),i.ɵɵproperty("title",i.ɵɵpipeBind1(24,2,"sync.levels.add.tooltip"))}}var U="net.geoprism.registry.etl.DHIS2AttributeMapping",$=function(){function e(e){this.service=e,this.message=null,this.cOrg=null,this.onError=new r.EventEmitter,this.organizations=[],this.types=[],this.levelRows=[],this.orgUnitGroups=[]}return e.prototype.ngOnInit=function(){var e=this;if(null==this.config.configuration&&(this.config.configuration={levels:[],hierarchyCode:null}),this.levelRows=[],null!=this.config.configuration.levels)for(var t=0;t0)&&(r.levelRows.splice(o,1),o0)}}var A=function(){function e(e,t,n){this.service=e,this.lService=t,this.route=n,this.message=null,this.config=null,this.page={pageSize:10,pageNumber:1,count:1,resultSet:[]}}return e.prototype.ngOnInit=function(){var e=this,t=this.route.snapshot.paramMap.get("oid");this.service.get(t).then((function(t){e.config=t,e.onPageChange(1)}));var n="wss://"+window.location.hostname+(window.location.port?":"+window.location.port:"")+acp;this.notifier=i.webSocket(n+"/websocket/notify"),this.notifier.subscribe((function(t){"DATA_EXPORT_JOB_CHANGE"===t.type&&e.onPageChange(e.page.pageNumber)}))},e.prototype.ngOnDestroy=function(){null!=this.notifier&&this.notifier.complete()},e.prototype.onRun=function(){var e=this;this.message=null,this.service.run(this.config.oid).then((function(){e.onPageChange(e.page.pageNumber)})).catch((function(t){e.error(t)}))},e.prototype.onGenerateFile=function(){window.open(acp+"/synchronization-config/generate-file?oid="+encodeURIComponent(this.config.oid))},e.prototype.onPageChange=function(e){var t=this;null!=this.config&&(this.message=null,this.service.getJobs(this.config.oid,e,this.page.pageSize).then((function(e){t.formatStepConfig(e),t.page=e})).catch((function(e){t.error(e)})))},e.prototype.formatJobStatus=function(e){return"FEEDBACK"===e.status?this.lService.decode("etl.JobStatus.FEEDBACK"):"RUNNING"===e.status||"NEW"===e.status?this.lService.decode("etl.JobStatus.RUNNING"):"QUEUED"===e.status?this.lService.decode("etl.JobStatus.QUEUED"):"SUCCESS"===e.status?this.lService.decode("etl.JobStatus.SUCCESS"):"CANCELED"===e.status?this.lService.decode("etl.JobStatus.CANCELED"):"FAILURE"===e.status?this.lService.decode("etl.JobStatus.FAILURE"):this.lService.decode("etl.JobStatus.RUNNING")},e.prototype.formatStepConfig=function(e){var t=this;e.resultSet.forEach((function(e){var n=[{label:t.lService.decode("synchronization.step.Queued"),status:"NEW"===e.stage?t.getJobStatus(e):t.getCompletedStatus(e.stage,"NEW")},{label:t.lService.decode("synchronization.step.Connecting"),status:"CONNECTING"===e.stage||"CONNECTION_FAILED"===e.stage?t.getJobStatus(e):t.getCompletedStatus(e.stage,"CONNECTION_FAILED")}],r=t.config.isImport?"Importing":t.lService.decode("synchronization.step.DatabaseExport");n.push({label:r,status:"EXPORT"===e.stage||"EXPORT_RESOLVE"===e.stage||"RESUME_EXPORT"===e.stage?t.getJobStatus(e):""}),e.stepConfig={steps:n}}))},e.prototype.getCompletedStatus=function(e,t){var n=["CONNECTING","CONNECTION_FAILED","EXPORT","EXPORT_RESOLVE","RESUME_EXPORT"],r=n.indexOf(e);return n.indexOf(t)0)}}function x(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",20),o.ɵɵtemplate(1,E,16,12,"div",21),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext();o.ɵɵadvance(1),o.ɵɵproperty("ngIf",n.job)}}var O=function(){function e(e,t,n,r){this.configService=e,this.service=t,this.route=n,this.ioService=r,this.message=null,this.historyId="",this.config=null,this.page={count:0,pageNumber:1,pageSize:10,results:[]}}return e.prototype.ngOnInit=function(){var e=this;this.historyId=this.route.snapshot.params.oid;var t=this.route.snapshot.paramMap.get("config");this.configService.get(t).then((function(t){e.config=t,e.onPageChange(1)}))},e.prototype.ngOnDestroy=function(){},e.prototype.formatAffectedRows=function(e){return e.replace(/,/g,", ")},e.prototype.formatValidationResolve=function(e){return JSON.stringify(e)},e.prototype.onPageChange=function(e){var t=this;this.message=null,this.service.getExportDetails(this.historyId,this.page.pageSize,e).then((function(e){t.job=e,t.page=t.job.exportErrors})).catch((function(e){t.error(e)}))},e.prototype.error=function(e){this.message=i.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.SynchronizationConfigService),o.ɵɵdirectiveInject(a.RegistryService),o.ɵɵdirectiveInject(l.ActivatedRoute),o.ɵɵdirectiveInject(a.IOService))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["job"]],decls:10,vars:3,consts:[[1,"new-admin-design-main"],["id","app-container",1,"container-fluid"],["class","alert alert-danger","role","alert",4,"ngIf"],[1,"py-5"],["key","scheduledjobs.details.title"],["class","row","style","background: #F4F4F4;\n border-radius: 15px;\n margin-bottom: 20px;\n margin-top: 20px;\n padding: 10px;",4,"ngIf"],["class","row",4,"ngIf"],["role","alert",1,"alert","alert-danger"],[1,"row",2,"background","#F4F4F4","border-radius","15px","margin-bottom","20px","margin-top","20px","padding","10px"],[1,"col-md-4","order-md-1"],[1,"wrapper"],["aria-hidden","true",1,"fa","fa-file",2,"position","absolute","font-size","55px"],[2,"padding-left","60px"],[2,"display","block"],["key","scheduledjobs.job.uploaded.by.label"],["key","scheduledjobs.job.started.label"],[1,"col-md-3","order-md-1"],["key","scheduledjobs.job.imported.out.of.label"],["key","scheduledjobs.job.imported.total.label"],["key","scheduledjobs.job.remaining.label"],[1,"row"],["class","col-md-12 order-md-1",4,"ngIf"],[1,"col-md-12","order-md-1"],[1,"list-group"],[1,"list-table","table","table-bordered","table-striped"],[1,"label-column"],[4,"ngIf"],["key","scheduledjobs.import.table.message.header"],["class","label-column",4,"ngIf"],[4,"ngFor","ngForOf"],[1,"solid-table-footer"],["class","solid-table-footer",4,"ngIf"],["key","geoObject.label"],["key","geoObjectType.attr.code"],["key","scheduledjobs.import.table.row.number.header"],[1,"label-column",2,"vertical-align","middle"],["class","label-column","style","vertical-align: middle;",4,"ngIf"],[3,"pageChange"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵelement(1,"cgr-header"),o.ɵɵelement(2,"loading-bar"),o.ɵɵelementStart(3,"div",1),o.ɵɵtemplate(4,u,2,1,"div",2),o.ɵɵelementStart(5,"div",3),o.ɵɵelementStart(6,"h2"),o.ɵɵelement(7,"localize",4),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵtemplate(8,g,22,5,"div",5),o.ɵɵtemplate(9,x,2,1,"div",6),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(4),o.ɵɵproperty("ngIf",null!=t.message),o.ɵɵadvance(4),o.ɵɵproperty("ngIf",t.job),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",t.page&&t.page.results.length>0))},directives:[s.CgrHeaderComponent,c.LoadingBarComponent,d.NgIf,p.LocalizeComponent,d.NgForOf,m.PaginationControlsComponent],pipes:[m.PaginatePipe],styles:[".new-admin-design-main[_ngcontent-%COMP%] {\n \n}\n\n\n.solid-table-wrapper[_ngcontent-%COMP%] {\n background: #F4F4F4;\n border-radius: 15px;\n margin-bottom: 20px;\n}\n.solid-table-footer[_ngcontent-%COMP%] {\n \n border-radius: 0 0 15px 15px;\n padding: 0 0 10px 10px;\n}\n\n\n\n.wrapper[_ngcontent-%COMP%] {\n padding: 10px;\n}"]}),e}();t.SyncDetailsComponent=O,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(O,[{type:r.Component,args:[{selector:"job",templateUrl:"./details.component.html",styleUrls:["./details.css"]}]}],(function(){return[{type:a.SynchronizationConfigService},{type:a.RegistryService},{type:l.ActivatedRoute},{type:a.IOService}]}),null)},615:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LocationManagerComponent=void 0;var r=n(0),i=(n(33),n(263)),o=(n(30),n(518)),a=(n(519),n(111)),l=(n(16),n(0)),s=n(30),c=n(519),d=n(33),p=n(16),m=n(122),u=n(86),g=n(68),h=n(260),f=n(1),y=n(558),v=n(22),b=n(559),S=n(113),C=["simpleEditControl"];function E(e,t){1&e&&(l.ɵɵelementStart(0,"div",16),l.ɵɵelement(1,"localize",17),l.ɵɵelementEnd())}function x(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"div",24),l.ɵɵelementStart(1,"i",25),l.ɵɵlistener("click",(function(){l.ɵɵrestoreView(n);var e=l.ɵɵnextContext(2);return e.changeMode(e.MODE.SEARCH)})),l.ɵɵelement(2,"localize",26),l.ɵɵelementEnd(),l.ɵɵelementEnd()}}function O(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"div",2),l.ɵɵelementStart(1,"div",4),l.ɵɵelementStart(2,"div",5),l.ɵɵelementStart(3,"div",18),l.ɵɵelementStart(4,"input",19),l.ɵɵlistener("keyup.enter",(function(){return l.ɵɵrestoreView(n),l.ɵɵnextContext().search()}))("ngModelChange",(function(e){return l.ɵɵrestoreView(n),l.ɵɵnextContext().text=e})),l.ɵɵelementEnd(),l.ɵɵelementStart(5,"span",20),l.ɵɵelementStart(6,"button",21),l.ɵɵlistener("click",(function(){return l.ɵɵrestoreView(n),l.ɵɵnextContext().search()})),l.ɵɵelement(7,"span",22),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵtemplate(8,x,3,0,"div",23),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd()}if(2&e){var r=l.ɵɵnextContext();l.ɵɵadvance(4),l.ɵɵproperty("ngModel",r.text)("disabled",r.mode!==r.MODE.SEARCH),l.ɵɵadvance(2),l.ɵɵproperty("disabled",r.mode!==r.MODE.SEARCH),l.ɵɵadvance(2),l.ɵɵproperty("ngIf",r.mode===r.MODE.VIEW&&null!=r.current)}}function I(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"div",30),l.ɵɵelementStart(1,"div",31),l.ɵɵlistener("click",(function(e){l.ɵɵrestoreView(n);var r=t.$implicit;return l.ɵɵnextContext(2).select(r,e)})),l.ɵɵelementStart(2,"div",32),l.ɵɵelementStart(3,"i",33),l.ɵɵlistener("click",(function(e){l.ɵɵrestoreView(n);var r=t.$implicit;return l.ɵɵnextContext(2).zoomToFeature(r,e)})),l.ɵɵpipe(4,"localize"),l.ɵɵelementEnd(),l.ɵɵelementStart(5,"h4",34),l.ɵɵtext(6),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd()}if(2&e){var r=t.$implicit;l.ɵɵadvance(3),l.ɵɵproperty("title",l.ɵɵpipeBind1(4,3,"explorer.zoom.label")),l.ɵɵadvance(3),l.ɵɵtextInterpolate2("",r.properties.code," - ",r.properties.displayLabel.localizedValue,"")}}function w(e,t){if(1&e&&(l.ɵɵelementStart(0,"div",2),l.ɵɵelementStart(1,"div",4),l.ɵɵelementStart(2,"div",27),l.ɵɵelementStart(3,"div",28),l.ɵɵtemplate(4,I,7,5,"div",29),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd()),2&e){var n=l.ɵɵnextContext();l.ɵɵadvance(4),l.ɵɵproperty("ngForOf",n.data)}}function M(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"div",2),l.ɵɵelementStart(1,"div",4),l.ɵɵelementStart(2,"feature-panel",35),l.ɵɵlistener("featureChange",(function(){return l.ɵɵrestoreView(n),l.ɵɵnextContext().search()}))("modeChange",(function(e){return l.ɵɵrestoreView(n),l.ɵɵnextContext().onModeChange(e)}))("panelCancel",(function(){return l.ɵɵrestoreView(n),l.ɵɵnextContext().onPanelCancel()}))("panelSubmit",(function(e){return l.ɵɵrestoreView(n),l.ɵɵnextContext().onPanelSubmit(e)})),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd()}if(2&e){var r=l.ɵɵnextContext();l.ɵɵadvance(2),l.ɵɵproperty("type",r.type)("code",r.current.properties.code)("forDate",r.forDate)("readOnly",!r.current.properties.writable)}}function T(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"div",36),l.ɵɵelementStart(1,"div"),l.ɵɵelementStart(2,"div"),l.ɵɵelementStart(3,"label"),l.ɵɵelement(4,"localize",37),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(5,"div"),l.ɵɵelementStart(6,"div",38),l.ɵɵelementStart(7,"input",39),l.ɵɵlistener("ngModelChange",(function(e){return l.ɵɵrestoreView(n),l.ɵɵnextContext().coordinate.latitude=e}))("change",(function(){return l.ɵɵrestoreView(n),l.ɵɵnextContext().refreshDrawFromInput()})),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(8,"div"),l.ɵɵelementStart(9,"div"),l.ɵɵelementStart(10,"label"),l.ɵɵelement(11,"localize",40),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(12,"div"),l.ɵɵelementStart(13,"div",38),l.ɵɵelementStart(14,"input",41),l.ɵɵlistener("ngModelChange",(function(e){return l.ɵɵrestoreView(n),l.ɵɵnextContext().coordinate.longitude=e}))("change",(function(){return l.ɵɵrestoreView(n),l.ɵɵnextContext().refreshDrawFromInput()})),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd()}if(2&e){var r=l.ɵɵnextContext();l.ɵɵadvance(7),l.ɵɵproperty("ngModel",r.coordinate.latitude),l.ɵɵadvance(7),l.ɵɵproperty("ngModel",r.coordinate.longitude)}}var j=function(){function e(e,t,n,r,i,o,a){this.modalService=e,this.mapService=t,this.geomService=n,this.service=r,this.route=i,this.router=o,this.lService=a,this.coordinate={longitude:null,latitude:null},this.MODE={SEARCH:0,VIEW:1},this.editSessionEnabled=!1,this.data=[],this.text="",this.mode=this.MODE.SEARCH,this.dateStr=null,this.forDate=null,this.isEdit=!1,this.active=!1,this.displayDateRequiredError=!1,this.vectorLayers=[],this.baseLayers=[{name:"Satellite",label:"Satellite",id:"satellite-v9",sprite:"mapbox://sprites/mapbox/satellite-v9",url:"mapbox://mapbox.satellite",selected:!0}],this.preventSingleClick=!1,this.hideSearchOptions=!1,this.vot=null}return e.prototype.ngOnInit=function(){var e=this;this.urlSubscriber=this.route.params.subscribe((function(t){var n=t.geoobjectuid,r=t.geoobjecttypecode;e.hideSearchOptions=t.hideSearchOptions,e.backReference=e.route.snapshot?e.route.snapshot.params.backReference:null,e.dateStr=t.datestr,e.handleDateChange(),n&&r&&e.dateStr&&e.service.getGeoObject(n,r).then((function(t){e.setData([t]),e.select(t,null)})).catch((function(t){e.error(t)}))}))},e.prototype.ngOnDestroy=function(){this.geomService.destroy(),this.urlSubscriber.unsubscribe()},e.prototype.ngAfterViewInit=function(){var e=this,t=this.baseLayers[0];this.map=new i.Map({container:"map",style:{version:8,name:t.name,metadata:{"mapbox:autocomposite":!0},sources:{mapbox:{type:"raster",url:t.url,tileSize:256}},sprite:t.sprite,glyphs:window.location.protocol+"//"+window.location.host+acp+"/glyphs/{fontstack}/{range}.pbf",layers:[{id:t.id,type:"raster",source:"mapbox"}]},zoom:2,attributionControl:!1,center:[-78.880453,42.897852]}),this.map.on("load",(function(){e.initMap()})),this.simpleEditControl&&this.map.addControl(this.simpleEditControl)},e.prototype.changeMode=function(e){this.mode=e,this.mode===this.MODE.SEARCH&&(this.isEdit=!1),this.geomService.destroy(!1),this.vot=null},e.prototype.onModeChange=function(e){this.isEdit=e},e.prototype.handleDateChange=function(){null!=this.dateStr&&(this.forDate=new Date(Date.parse(this.dateStr)),this.displayDateRequiredError=!1)},e.prototype.initMap=function(){var e=this;if(this.map.on("style.load",(function(){e.addLayers()})),this.addLayers(),this.map.addControl(new i.NavigationControl({visualizePitch:!0})),this.map.addControl(new i.AttributionControl({compact:!0}),"bottom-right"),this.map.on("click","children-points",(function(t){e.handleMapClickEvent(t)})),this.map.on("click","children-polygon",(function(t){e.handleMapClickEvent(t)})),this.data){var t={type:"FeatureCollection",features:this.data};this.map.getSource("children").setData(t),this.zoomToFeature(this.data[0],null)}this.showOriginalGeometry()},e.prototype.showOriginalGeometry=function(){this.current&&this.addVectorLayer(this.current.properties.uid)},e.prototype.hideOriginalGeometry=function(){this.current&&this.removeVectorLayer(this.current.properties.uid)},e.prototype.handleMapClickEvent=function(e){if(!this.isEdit&&null!=e.features&&e.features.length>0){var t=e.features[0];null==t.properties.code||null!=this.current&&this.current.properties.code===t.properties.code||this.select(t,null)}},e.prototype.onPanelCancel=function(){null!=this.backReference&&this.backReference.length>=2?"CR"===this.backReference.substring(0,2)&&this.router.navigate(["/registry/change-requests"]):this.changeMode(this.MODE.SEARCH);this.showOriginalGeometry()},e.prototype.onPanelSubmit=function(e){var t=this;this.geomService.saveEdits(),e.isChangeRequest?null!=this.backReference&&this.backReference.length>=2&&"CR"===this.backReference.substring(0,2)?(this.bsModalRef=this.modalService.show(a.SuccessModalComponent,{backdrop:!0,class:"error-white-space-pre"}),this.bsModalRef.content.message=this.lService.decode("geoobject-editor.changerequest.submitted"),this.bsModalRef.content.submitText=this.lService.decode("geoobject-editor.changerequest.view"),this.bsModalRef.content.onConfirm.subscribe((function(){t.router.navigate(["/registry/change-requests",e.changeRequestId])}))):(this.bsModalRef=this.modalService.show(a.ConfirmModalComponent,{backdrop:!0,class:"error-white-space-pre"}),this.bsModalRef.content.message=this.lService.decode("geoobject-editor.changerequest.submitted"),this.bsModalRef.content.submitText=this.lService.decode("geoobject-editor.changerequest.view"),this.bsModalRef.content.cancelText=this.lService.decode("geoobject-editor.cancel.returnExplorer"),this.bsModalRef.content.onConfirm.subscribe((function(){t.router.navigate(["/registry/change-requests",e.changeRequestId])})),this.bsModalRef.content.onCancel.subscribe((function(){t.changeMode(t.MODE.SEARCH)}))):(this.bsModalRef=this.modalService.show(a.SuccessModalComponent,{backdrop:!0,class:"error-white-space-pre"}),this.bsModalRef.content.message=this.lService.decode("geoobject-editor.edit.submitted"),this.bsModalRef.content.submitText=this.lService.decode("geoobject-editor.cancel.returnExplorer"),this.bsModalRef.content.onConfirm.subscribe((function(){t.onPanelCancel()})))},e.prototype.addLayers=function(){var e=this,t="children";this.map.addSource(t,{type:"geojson",data:{type:"FeatureCollection",features:[]}}),this.map.addLayer({id:t+"-polygon",type:"fill",source:t,layout:{},paint:{"fill-color":"#80cdc1","fill-opacity":.8,"fill-outline-color":"black"},filter:["all",["match",["geometry-type"],["Polygon","MultiPolygon"],!0,!1]]}),this.map.addLayer({id:t+"-points",type:"circle",source:t,paint:{"circle-radius":10,"circle-color":"#80cdc1","circle-stroke-width":2,"circle-stroke-color":"#FFFFFF"},filter:["all",["match",["geometry-type"],["Point","MultiPont"],!0,!1]]}),this.map.addLayer({id:t+"-label",source:t,type:"symbol",paint:{"text-color":"black","text-halo-color":"#fff","text-halo-width":2},layout:{"text-field":["get","localizedValue",["get","displayLabel"]],"text-font":["NotoSansRegular"],"text-offset":[0,.6],"text-anchor":"top","text-size":12}}),this.vectorLayers.forEach((function(t){e.addVectorLayer(t)}))},e.prototype.handleBasemapStyle=function(e){this.baseLayers.forEach((function(e){e.selected=!1})),e.selected=!0,this.map.setStyle({version:8,name:e.name,metadata:{"mapbox:autocomposite":!0},sources:{mapbox:{type:"raster",url:e.url,tileSize:256}},sprite:e.sprite,glyphs:window.location.protocol+"//"+window.location.host+acp+"/glyphs/{fontstack}/{range}.pbf",layers:[{id:e.id,type:"raster",source:"mapbox"}]})},e.prototype.search=function(){var e=this;this.geomService.destroy(!1),this.mapService.search(this.text,this.dateStr).then((function(t){e.map.getSource("children").setData(t),e.setData(t.features)})).catch((function(t){e.error(t)}))},e.prototype.zoomToFeature=function(e,t){var n=this;null!=t&&t.stopPropagation(),this.preventSingleClick=!1;this.timer=setTimeout((function(){if(!n.preventSingleClick&&e&&null!=e.geometry){var t=o.default(e),r=50,i=20;"Point"!==e.geometry.type&&"MultiPoint"!==e.geometry.type||(r=100,i=12),n.map.fitBounds(t,{padding:r,animate:!0,maxZoom:i})}}),200)},e.prototype.select=function(e,t){var n=this;null!=t&&t.stopPropagation(),this.service.getGeoObjectTypes([e.properties.type],null).then((function(t){n.type=t[0],n.current=e,n.mode=n.MODE.VIEW,n.geomService.initialize(n.map,n.type.geometryType,!n.isEdit),n.geomService.zoomToLayersExtent()})).catch((function(e){n.error(e)}))},e.prototype.setData=function(e){this.data=e},e.prototype.onContextLayerChange=function(e){e.active?this.addVectorLayer(e.oid):this.removeVectorLayer(e.oid)},e.prototype.removeVectorLayer=function(e){var t=this.vectorLayers.indexOf(e);-1!==t&&(this.map.removeLayer(e+"-points"),this.map.removeLayer(e+"-polygon"),this.map.removeLayer(e+"-label"),this.map.removeSource(e),this.vectorLayers.splice(t,1))},e.prototype.addVectorLayer=function(e){if(-1===this.vectorLayers.indexOf(e)){var t=window.location.protocol,n=window.location.host;this.map.addSource(e,{type:"vector",tiles:[t+"//"+n+acp+"/master-list/tile?x={x}&y={y}&z={z}&config="+encodeURIComponent(JSON.stringify({oid:e}))]}),this.map.addLayer({id:e+"-points",type:"circle",source:e,"source-layer":"context",paint:{"circle-radius":10,"circle-color":"#800000","circle-stroke-width":2,"circle-stroke-color":"#FFFFFF"},filter:["all",["match",["geometry-type"],["Point","MultiPont"],!0,!1]]},"children-polygon"),this.map.addLayer({id:e+"-polygon",type:"fill",source:e,"source-layer":"context",layout:{},paint:{"fill-color":"#800000","fill-opacity":.8,"fill-outline-color":"black"},filter:["all",["match",["geometry-type"],["Polygon","MultiPolygon"],!0,!1]]},"children-polygon"),this.map.addLayer({id:e+"-label",source:e,"source-layer":"context",type:"symbol",paint:{"text-color":"black","text-halo-color":"#fff","text-halo-width":2},layout:{"text-field":["case",["has","displayLabel_"+navigator.language.toLowerCase()],["coalesce",["string",["get","displayLabel_"+navigator.language.toLowerCase()]],["string",["get","displayLabel"]]],["string",["get","displayLabel"]]],"text-font":["NotoSansRegular"],"text-offset":[0,.6],"text-anchor":"top","text-size":12}},"children-polygon"),this.vectorLayers.push(e)}},e.prototype.error=function(e){this.bsModalRef=a.ErrorHandler.showErrorAsDialog(e,this.modalService)},e.ɵfac=function(t){return new(t||e)(l.ɵɵdirectiveInject(s.BsModalService),l.ɵɵdirectiveInject(c.MapService),l.ɵɵdirectiveInject(c.GeometryService),l.ɵɵdirectiveInject(c.RegistryService),l.ɵɵdirectiveInject(d.ActivatedRoute),l.ɵɵdirectiveInject(d.Router),l.ɵɵdirectiveInject(p.LocalizationService))},e.ɵcmp=l.ɵɵdefineComponent({type:e,selectors:[["location-manager"]],viewQuery:function(e,t){if(1&e&&l.ɵɵviewQuery(C,1),2&e){var n;l.ɵɵqueryRefresh(n=l.ɵɵloadQuery())&&(t.simpleEditControl=n.first)}},decls:25,vars:13,consts:[[1,""],["id","app-container",1,"container-fluid"],[1,"row"],["id","navigator-left-sidebar",1,"col-md-5","lw-inner-col",2,"height","calc(100vh - 145px)","overflow-y","auto"],[1,"col-md-12"],[1,"location-management-widget-section"],[2,"margin-right","10px"],["key","changeOverTime.forDate","ng-reflect-key","changeOverTime.forDate"],["label","",2,"display","inline-grid",3,"value","inputName","disable","allowInfinity","allowFutureDates","required","classNames","placement","valueChange","change"],["class","error-message",4,"ngIf"],["class","row",4,"ngIf"],["id","site-explorer-map",1,"col-md-7"],[1,"base-layer-panel"],[3,"layerChange"],["id","map",1,"map-view-port"],["style","position:absolute;top:185px;right:10px;color:white;",4,"ngIf"],[1,"error-message"],["key","geoobject.editor.forDate.requiredErrorMessage"],[1,"input-group"],["type","text","name","text",1,"form-control",3,"ngModel","disabled","keyup.enter","ngModelChange"],[1,"input-group-btn"],["type","button",1,"btn","btn-primary",3,"disabled","click"],["aria-hidden","true",1,"glyphicon","glyphicon-search"],["style","padding: 20px 0;",4,"ngIf"],[2,"padding","20px 0"],["aria-hidden","true",1,"fa","fa-arrow-left","clickable",3,"click"],["key","explorer.back.to.results"],["id","hierarchy-tree-container",1,"location-management-widget-section","location-management-list-container"],[1,"list-group"],["class","list-group-item",4,"ngFor","ngForOf"],[1,"list-group-item"],[1,"card","card-default",3,"click"],[1,"card-body"],["aria-hidden","true",1,"fa","fa-map-marker","clickable",2,"float","right","font-size","25px",3,"title","click"],["title","View Geo-Object details",1,"clickable",2,"word-break","break-all"],[3,"type","code","forDate","readOnly","featureChange","modeChange","panelCancel","panelSubmit"],[2,"position","absolute","top","185px","right","10px","color","white"],["key","geoobject.editor.geometry.latitude.label"],[1,"text-left"],["name","latitude","type","number","required","",1,"form-control",3,"ngModel","ngModelChange","change"],["key","geoobject.editor.geometry.longitude.label"],["name","longitude","type","number","required","",1,"form-control",3,"ngModel","ngModelChange","change"]],template:function(e,t){1&e&&(l.ɵɵelementStart(0,"div",0),l.ɵɵelement(1,"cgr-header"),l.ɵɵelement(2,"loading-bar"),l.ɵɵelementStart(3,"div",1),l.ɵɵelementStart(4,"div",2),l.ɵɵelementStart(5,"div",3),l.ɵɵelementStart(6,"div"),l.ɵɵelementStart(7,"div",2),l.ɵɵelementStart(8,"div",4),l.ɵɵelementStart(9,"div",2),l.ɵɵelementStart(10,"div",4),l.ɵɵelementStart(11,"div",5),l.ɵɵelementStart(12,"span",6),l.ɵɵelement(13,"localize",7),l.ɵɵelementEnd(),l.ɵɵelementStart(14,"date-field",8),l.ɵɵlistener("valueChange",(function(e){return t.dateStr=e}))("change",(function(){return t.handleDateChange()})),l.ɵɵelementEnd(),l.ɵɵtemplate(15,E,2,0,"div",9),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵtemplate(16,O,9,4,"div",10),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵtemplate(17,w,5,1,"div",10),l.ɵɵelementEnd(),l.ɵɵtemplate(18,M,3,4,"div",10),l.ɵɵelementEnd(),l.ɵɵelementStart(19,"div",11),l.ɵɵelementStart(20,"div",2),l.ɵɵelementStart(21,"article",12),l.ɵɵelementStart(22,"layer-panel",13),l.ɵɵlistener("layerChange",(function(e){return t.onContextLayerChange(e)})),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelement(23,"div",14),l.ɵɵtemplate(24,T,15,2,"div",15),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd()),2&e&&(l.ɵɵadvance(14),l.ɵɵproperty("value",t.dateStr)("inputName","dateStr")("disable",t.mode!==t.MODE.SEARCH&&!t.hideSearchOptions)("allowInfinity",!1)("allowFutureDates",!1)("required",!1)("classNames",t.displayDateRequiredError?"date-required-message":"")("placement","right"),l.ɵɵadvance(1),l.ɵɵproperty("ngIf",t.displayDateRequiredError),l.ɵɵadvance(1),l.ɵɵproperty("ngIf",!t.hideSearchOptions),l.ɵɵadvance(1),l.ɵɵproperty("ngIf",t.mode===t.MODE.SEARCH),l.ɵɵadvance(1),l.ɵɵproperty("ngIf",t.mode===t.MODE.VIEW&&null!=t.current),l.ɵɵadvance(6),l.ɵɵproperty("ngIf",t.editingControl&&("POINT"===t.type.geometryType||"MULTIPOINT"===t.type.geometryType)))},directives:[m.CgrHeaderComponent,u.LoadingBarComponent,g.LocalizeComponent,h.DateFieldComponent,f.NgIf,y.LayerPanelComponent,v.DefaultValueAccessor,v.NgControlStatus,v.NgModel,f.NgForOf,b.FeaturePanelComponent,v.NumberValueAccessor,v.RequiredValidator],pipes:[S.LocalizePipe],styles:["#hierarchy-tree-container[_ngcontent-%COMP%] {\n\theight: 100%;\n overflow-y: auto;\n}\n\n.location-management-widget-section[_ngcontent-%COMP%] {\n\tmargin: 5px 0;\n}\n.location-management-widget-section[_ngcontent-%COMP%] > select[_ngcontent-%COMP%] {\n\tfloat: none !important;\n}\n\n.list-group-item[_ngcontent-%COMP%] {\n\tborder: none;\n\tborder-bottom: 1px solid #ddd;\n\tmargin-bottom: 0;\n}\n.list-group-item[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n\theight: auto;\n}\n\n.breadcrumb[_ngcontent-%COMP%]{\n\tpadding: 10px 0;\n\tbackground-color: white;\n\tmargin:0;\n}\n\n.layer-toggle[_ngcontent-%COMP%] {\n\tcursor: pointer; \n\tbackground: #fff; \n\tpadding: 8px; \n\tborder-radius: 4px;\n\twidth: fit-content;\n}\n\n.layer-toggle[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n\theight: auto;\n}\n.layer-toggle[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n\tmargin-left: 5px;\n}\n\n.arrow[_ngcontent-%COMP%] {\n border: solid black;\n border-width: 0 1px 1px 0;\n display: inline-block;\n padding: 5px;\n}\n.arrow-right[_ngcontent-%COMP%] {\n transform: rotate(-45deg);\n -webkit-transform: rotate(-45deg);\n}\n.arrow-down[_ngcontent-%COMP%] {\n transform: rotate(45deg);\n -webkit-transform: rotate(45deg);\n}\n\n.fa.fa-arrow-left[_ngcontent-%COMP%]::before {\n\tmargin-right:5px;\n}"]}),e}();t.LocationManagerComponent=j,("undefined"==typeof ngDevMode||ngDevMode)&&l.ɵsetClassMetadata(j,[{type:r.Component,args:[{selector:"location-manager",templateUrl:"./location-manager.component.html",styleUrls:["./location-manager.css"]}]}],(function(){return[{type:s.BsModalService},{type:c.MapService},{type:c.GeometryService},{type:c.RegistryService},{type:d.ActivatedRoute},{type:d.Router},{type:p.LocalizationService}]}),{simpleEditControl:[{type:r.ViewChild,args:["simpleEditControl"]}]})},616:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ContextLayerModalComponent=void 0;var r=n(0),i=(n(30),n(31)),o=n(0),a=n(30),l=n(68),s=n(22),c=n(1);function d(e,t){if(1&e&&(o.ɵɵelementStart(0,"div"),o.ɵɵelementStart(1,"input",15),o.ɵɵlistener("change",(function(){var e=t.$implicit;return e.enabled=!e.enabled})),o.ɵɵelementEnd(),o.ɵɵtext(2),o.ɵɵelementEnd()),2&e){var n=t.$implicit;o.ɵɵadvance(1),o.ɵɵproperty("checked",n.enabled),o.ɵɵadvance(1),o.ɵɵtextInterpolate1(" ",n.displayLabel," ")}}function p(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",14),o.ɵɵelementStart(1,"h4"),o.ɵɵtext(2),o.ɵɵelementEnd(),o.ɵɵelementStart(3,"div",6),o.ɵɵtemplate(4,d,3,2,"div",7),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext().$implicit;o.ɵɵadvance(2),o.ɵɵtextInterpolate(n.displayLabel),o.ɵɵadvance(2),o.ɵɵproperty("ngForOf",n.contextLayers)}}function m(e,t){if(1&e&&(o.ɵɵelementStart(0,"div"),o.ɵɵtemplate(1,p,5,2,"div",13),o.ɵɵelementEnd()),2&e){var n=t.$implicit,r=o.ɵɵnextContext();o.ɵɵadvance(1),o.ɵɵproperty("ngIf",r.groupHasContextLayers(n.oid))}}var u=function(){function e(e){this.bsModalRef=e}return e.prototype.ngOnInit=function(){this.onSubmit=new i.Subject},e.prototype.groupHasContextLayers=function(e){var t=!1;return this.contextLayerGroups.forEach((function(n){n.oid===e&&n.contextLayers.length>0&&(t=!0)})),t},e.prototype.confirm=function(){this.onSubmit.next(this.contextLayerGroups),this.bsModalRef.hide()},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.BsModalRef))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["context-layer-modal"]],decls:19,vars:1,consts:[[1,"modal-body"],[1,"heading"],["key","explorer.add.context.layers.modal.title"],["name","export-form",1,"modal-form"],[1,"row"],[1,"col-md-12"],[1,"list-group"],[4,"ngFor","ngForOf"],[1,"button-holder"],["type","button","role","button","aria-disabled","false",1,"btn","btn-default",3,"click"],["key","modal.button.cancel"],["type","button","role","button",1,"btn","btn-primary",3,"click"],["key","modal.button.submit"],["class","list-group-item","style","border: none;",4,"ngIf"],[1,"list-group-item",2,"border","none"],["type","checkbox",2,"margin-left","10px",3,"checked","change"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵelementStart(1,"div",1),o.ɵɵelementStart(2,"h2"),o.ɵɵelement(3,"localize",2),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(4,"form",3),o.ɵɵelementStart(5,"fieldset"),o.ɵɵelementStart(6,"div",4),o.ɵɵelementStart(7,"div",5),o.ɵɵelementStart(8,"div",6),o.ɵɵtemplate(9,m,2,1,"div",7),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(10,"div",4),o.ɵɵelementStart(11,"div",5),o.ɵɵelementStart(12,"div",8),o.ɵɵelementStart(13,"button",9),o.ɵɵlistener("click",(function(){return t.bsModalRef.hide()})),o.ɵɵelementStart(14,"span"),o.ɵɵelement(15,"localize",10),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(16,"button",11),o.ɵɵlistener("click",(function(){return t.confirm()})),o.ɵɵelementStart(17,"span"),o.ɵɵelement(18,"localize",12),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(9),o.ɵɵproperty("ngForOf",t.contextLayerGroups))},directives:[l.LocalizeComponent,s.ɵangular_packages_forms_forms_ba,s.NgControlStatusGroup,s.NgForm,c.NgForOf,c.NgIf],styles:["#hierarchy-tree-container[_ngcontent-%COMP%] {\n\theight: 100%;\n overflow-y: auto;\n}\n\n.location-management-widget-section[_ngcontent-%COMP%] {\n\tmargin: 5px 0;\n}\n.location-management-widget-section[_ngcontent-%COMP%] > select[_ngcontent-%COMP%] {\n\tfloat: none !important;\n}\n\n.list-group-item[_ngcontent-%COMP%] {\n\tborder: none;\n\tborder-bottom: 1px solid #ddd;\n\tmargin-bottom: 0;\n}\n.list-group-item[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n\theight: auto;\n}\n\n.breadcrumb[_ngcontent-%COMP%]{\n\tpadding: 10px 0;\n\tbackground-color: white;\n\tmargin:0;\n}\n\n.layer-toggle[_ngcontent-%COMP%] {\n\tcursor: pointer; \n\tbackground: #fff; \n\tpadding: 8px; \n\tborder-radius: 4px;\n\twidth: fit-content;\n}\n\n.layer-toggle[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n\theight: auto;\n}\n.layer-toggle[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n\tmargin-left: 5px;\n}\n\n.arrow[_ngcontent-%COMP%] {\n border: solid black;\n border-width: 0 1px 1px 0;\n display: inline-block;\n padding: 5px;\n}\n.arrow-right[_ngcontent-%COMP%] {\n transform: rotate(-45deg);\n -webkit-transform: rotate(-45deg);\n}\n.arrow-down[_ngcontent-%COMP%] {\n transform: rotate(45deg);\n -webkit-transform: rotate(45deg);\n}\n\n.fa.fa-arrow-left[_ngcontent-%COMP%]::before {\n\tmargin-right:5px;\n}"]}),e}();t.ContextLayerModalComponent=u,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(u,[{type:r.Component,args:[{selector:"context-layer-modal",templateUrl:"./context-layer-modal.component.html",styleUrls:["./location-manager.css"]}]}],(function(){return[{type:a.BsModalRef}]}),null)},617:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DatasetLocationManagerComponent=void 0;var r=n(0),i=(n(33),n(30),n(263)),o=(n(519),n(112),n(111)),a=(n(16),n(0)),l=n(519),s=n(30),c=n(33),d=n(16),p=n(112),m=n(122),u=n(86),g=n(1),h=n(558),f=n(68),y=n(559);function v(e,t){if(1&e&&(a.ɵɵelementStart(0,"h3"),a.ɵɵtext(1),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext(2);a.ɵɵadvance(1),a.ɵɵtextInterpolate(n.type.label.localizedValue)}}function b(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",8),a.ɵɵelementStart(1,"div",1),a.ɵɵelementStart(2,"div",9),a.ɵɵelementStart(3,"div",10),a.ɵɵtemplate(4,v,2,1,"h3",11),a.ɵɵelementStart(5,"h4"),a.ɵɵelement(6,"localize",12),a.ɵɵtext(7),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(8,"feature-panel",13),a.ɵɵlistener("featureChange",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().onFeatureChange()}))("modeChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().onModeChange(e)}))("panelCancel",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().onPanelCancel()}))("panelSubmit",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().onPanelSubmit(e)})),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext();a.ɵɵadvance(4),a.ɵɵproperty("ngIf",r.type),a.ɵɵadvance(3),a.ɵɵtextInterpolate1(": ",r.formatDate(r.forDate),""),a.ɵɵadvance(1),a.ɵɵproperty("type",r.type)("code",r.code)("forDate",r.forDate)("datasetId",r.datasetId)("readOnly",r.readOnly)}}function S(e,t){1&e&&a.ɵɵelement(0,"i",17)}function C(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",18),a.ɵɵelementStart(1,"span",19),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(2).onNewGeoObject()})),a.ɵɵelementStart(2,"button",20),a.ɵɵelement(3,"localize",21),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()}}function E(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",14),a.ɵɵlistener("mouseenter",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().toolsIconHover=!0}))("mouseleave",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().toolsIconHover=!1})),a.ɵɵtemplate(1,S,1,0,"i",15),a.ɵɵtemplate(2,C,4,0,"div",16),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext();a.ɵɵadvance(1),a.ɵɵproperty("ngIf",!r.toolsIconHover),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",r.toolsIconHover)}}var x=function(e,t){return{"col-md-7":e,"col-md-12":t}},O=function(e){return[e]},I=function(){function e(e,t,n,r,i,o,a,l,s){this.mapService=e,this.geomService=t,this.service=n,this.modalService=r,this.route=i,this.lService=a,this.dateService=l,this.router=s,this.coordinate={longitude:null,latitude:null},this.MODE={VERSIONS:"VERSIONS",ATTRIBUTES:"ATTRIBUTES",HIERARCHY:"HIERARCHY"},this.toolsIconHover=!1,this.readOnly=!1,this.editOnly=!1,this.isEdit=!1,this.vectorLayers=[],this.baseLayers=[{name:"Satellite",label:"Satellite",id:"satellite-v9",sprite:"mapbox://sprites/mapbox/satellite-v9",url:"mapbox://mapbox.satellite",selected:!0}],this.mode=null,this.forDate=new Date,this.isMaintainer=o.isAdmin()||o.isMaintainer()}return e.prototype.ngOnInit=function(){var e=this;this.datasetId=this.route.snapshot.params.datasetId,this.typeCode=this.route.snapshot.params.typeCode,this.date=this.route.snapshot.params.date,this.readOnly="true"===this.route.snapshot.params.readOnly,this.editOnly="true"===this.route.snapshot.params.editOnly,this.backReference=this.route.snapshot.params.backReference,null!=this.route.snapshot.params.code&&(this.code=this.route.snapshot.params.code),this.forDate=this.dateService.getDateFromDateString(this.date),this.service.getGeoObjectTypes([this.typeCode],null).then((function(t){e.type=t[0],e.geomService.initialize(e.map,e.type.geometryType,!e.isEdit)})).catch((function(t){e.error(t)}))},e.prototype.onPanelCancel=function(){if(null!=this.backReference&&this.backReference.length>=2&&"ML"===this.backReference.substring(0,2)){var e="T"===this.backReference.substring(3,3),t=this.backReference.substring(3);this.router.navigate(["/registry/master-list",t,e])}this.showOriginalGeometry()},e.prototype.onPanelSubmit=function(e){var t=this;if(this.geomService.saveEdits(),this.bsModalRef=this.modalService.show(o.GenericModalComponent,{backdrop:!0,class:"error-white-space-pre"}),e.isChangeRequest){var n=this.lService.decode("geoobject-editor.changerequest.submitted");(r=[]).push({label:this.lService.decode("geoobject-editor.cancel.returnList"),onClick:function(){t.onPanelCancel()},shouldClose:!0,class:"btn-primary"}),r.push({label:this.lService.decode("geoobject-editor.changerequest.view"),onClick:function(){t.router.navigate(["/registry/change-requests",e.changeRequestId])},shouldClose:!0,class:"btn-default"}),r.push({label:this.lService.decode("geoobject-editor.continueEditing"),onClick:function(){},shouldClose:!0,class:"btn-default"}),this.bsModalRef.content.init(n,r)}else{var r;n=this.lService.decode("geoobject-editor.edit.submitted");(r=[]).push({label:this.lService.decode("geoobject-editor.cancel.returnList"),onClick:function(){t.onPanelCancel()},shouldClose:!0,class:"btn-primary"}),r.push({label:this.lService.decode("geoobject-editor.continueEditing"),onClick:function(){},shouldClose:!0,class:"btn-default"}),this.bsModalRef.content.init(n,r)}},e.prototype.ngOnDestroy=function(){this.geomService.destroy()},e.prototype.ngAfterViewInit=function(){var e=this,t=this.baseLayers[0];this.map=new i.Map({container:"dataset-map",style:{version:8,name:t.name,metadata:{"mapbox:autocomposite":!0},sources:{"mapbox-satellite":{type:"raster",url:t.url,tileSize:256}},sprite:t.sprite,glyphs:window.location.protocol+"//"+window.location.host+acp+"/glyphs/{fontstack}/{range}.pbf",layers:[]},zoom:2,attributionControl:!1,center:[-78.880453,42.897852]}),this.map.on("load",(function(){e.initMap()}))},e.prototype.onModeChange=function(e){this.isEdit=e,this.geomService.destroy(!1)},e.prototype.initMap=function(){var e=this;"__NEW__"!==this.code&&this.service.getGeoObjectBoundsAtDate(this.code,this.typeCode,this.date).then((function(t){if(t){var n=new i.LngLatBounds([t[0],t[1]],[t[2],t[3]]),r=50,o=20;"POINT"!==e.type.geometryType&&"MULTIPOINT"!==e.type.geometryType||(r=100,o=12),e.map.fitBounds(n,{padding:r,animate:!1,maxZoom:o})}})),this.map.on("style.load",(function(){e.addLayers()})),this.addLayers(),this.map.addControl(new i.NavigationControl({visualizePitch:!0})),this.map.addControl(new i.AttributionControl({compact:!0}),"bottom-right"),this.map.on("click",this.datasetId+"-points",(function(t){e.handleMapClickEvent(t)})),this.map.on("click",this.datasetId+"-polygon",(function(t){e.handleMapClickEvent(t)})),this.showOriginalGeometry()},e.prototype.showOriginalGeometry=function(){this.addVectorLayer(this.datasetId)},e.prototype.hideOriginalGeometry=function(){this.removeVectorLayer(this.datasetId)},e.prototype.addLayers=function(){var e=this;this.map.addLayer({type:"raster",id:"satellite-map",source:"mapbox-satellite"}),this.vectorLayers.forEach((function(t){e.addVectorLayer(t)}))},e.prototype.handleBasemapStyle=function(e){"streets-v11"===e.id?this.map.setStyle(e.url):"satellite-v9"===e.id&&this.map.setStyle({version:8,name:e.name,metadata:{"mapbox:autocomposite":!0},sources:{"mapbox-satellite":{type:"raster",url:e.url,tileSize:256}},sprite:e.sprite,glyphs:window.location.protocol+"//"+window.location.host+acp+"/glyphs/{fontstack}/{range}.pbf",layers:[{id:e.id,type:"raster",source:"mapbox-satellite"}]})},e.prototype.onContextLayerChange=function(e){e.active?this.addVectorLayer(e.oid):this.removeVectorLayer(e.oid)},e.prototype.removeVectorLayer=function(e){var t=this.vectorLayers.indexOf(e);-1!==t&&(this.map.removeLayer(e+"-points"),this.map.removeLayer(e+"-polygon"),this.map.removeLayer(e+"-points-selected"),this.map.removeLayer(e+"-polygon-selected"),this.map.removeLayer(e+"-label"),this.map.removeSource(e),this.vectorLayers.splice(t,1))},e.prototype.addVectorLayer=function(e){if(-1===this.vectorLayers.indexOf(e)){var t=e!==this.datasetId?this.datasetId+"-points":null,n=window.location.protocol,r=window.location.host;this.map.addSource(e,{type:"vector",tiles:[n+"//"+r+acp+"/master-list/tile?x={x}&y={y}&z={z}&config="+encodeURIComponent(JSON.stringify({oid:e}))]}),this.map.addLayer({id:e+"-points",type:"circle",source:e,"source-layer":"context",paint:{"circle-radius":10,"circle-color":"#80cdc1","circle-stroke-width":2,"circle-stroke-color":"#FFFFFF"},filter:["all",["match",["geometry-type"],["Point","MultiPont"],!0,!1]]},t),this.map.addLayer({id:e+"-polygon",type:"fill",source:e,"source-layer":"context",layout:{},paint:{"fill-color":"#80cdc1","fill-opacity":.8,"fill-outline-color":"black"},filter:["all",["match",["geometry-type"],["Polygon","MultiPolygon"],!0,!1]]},t),e===this.datasetId&&(this.map.addLayer({id:e+"-points-selected",type:"circle",source:e,"source-layer":"context",paint:{"circle-radius":10,"circle-color":"#800000","circle-stroke-width":2,"circle-stroke-color":"#FFFFFF"},filter:["all",["==",["get","code"],null!=this.code?this.code:""],["match",["geometry-type"],["Point","MultiPont"],!0,!1]]},t),this.map.addLayer({id:e+"-polygon-selected",type:"fill",source:e,"source-layer":"context",layout:{},paint:{"fill-color":"#800000","fill-opacity":.8,"fill-outline-color":"black"},filter:["all",["==",["get","code"],null!=this.code?this.code:""],["match",["geometry-type"],["Polygon","MultiPolygon"],!0,!1]]},t)),this.map.addLayer({id:e+"-label",source:e,"source-layer":"context",type:"symbol",paint:{"text-color":"black","text-halo-color":"#fff","text-halo-width":2},layout:{"text-field":["case",["has","displayLabel_"+navigator.language.toLowerCase()],["coalesce",["string",["get","displayLabel_"+navigator.language.toLowerCase()]],["string",["get","displayLabel"]]],["string",["get","displayLabel"]]],"text-font":["NotoSansRegular"],"text-offset":[0,.6],"text-anchor":"top","text-size":12}},t),this.vectorLayers.push(e)}},e.prototype.onFeatureChange=function(){this.hideOriginalGeometry(),this.showOriginalGeometry()},e.prototype.handleMapClickEvent=function(e){if(!this.isEdit&&null!=e.features&&e.features.length>0){var t=e.features[0];null!=t.properties.code&&this.code!==t.properties.code&&(this.code=t.properties.code,this.map.setFilter(this.datasetId+"-points-selected",["all",["==",["get","code"],null!=this.code?this.code:""],["match",["geometry-type"],["Point","MultiPont"],!0,!1]]),this.map.setFilter(this.datasetId+"-polygon-selected",["all",["==",["get","code"],null!=this.code?this.code:""],["match",["geometry-type"],["Polygon","MultiPolygon"],!0,!1]]))}},e.prototype.onNewGeoObject=function(){this.code="__NEW__"},e.prototype.formatDate=function(e){return this.dateService.formatDateForDisplay(e)},e.prototype.error=function(e){this.bsModalRef=o.ErrorHandler.showErrorAsDialog(e,this.modalService)},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(l.MapService),a.ɵɵdirectiveInject(l.GeometryService),a.ɵɵdirectiveInject(l.RegistryService),a.ɵɵdirectiveInject(s.BsModalService),a.ɵɵdirectiveInject(c.ActivatedRoute),a.ɵɵdirectiveInject(d.AuthService),a.ɵɵdirectiveInject(d.LocalizationService),a.ɵɵdirectiveInject(p.DateService),a.ɵɵdirectiveInject(c.Router))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["dataset-location-manager"]],decls:12,vars:9,consts:[["id","app-container",1,"container-fluid"],[1,"row"],["id","navigator-left-sidebar","class","col-md-5 lw-inner-col","style","height: calc(100vh - 145px);overflow-y: auto;",4,"ngIf"],["id","site-explorer-map",3,"ngClass"],[1,"base-layer-panel"],[3,"filter","layerChange","baseLayerChange"],["class","layer-toggle","style","margin-top:10px;",3,"mouseenter","mouseleave",4,"ngIf"],["id","dataset-map",1,"map-view-port"],["id","navigator-left-sidebar",1,"col-md-5","lw-inner-col",2,"height","calc(100vh - 145px)","overflow-y","auto"],[1,"col-md-12"],["id","attributes-header"],[4,"ngIf"],["key","cgr.validity.valid.on.label"],[3,"type","code","forDate","datasetId","readOnly","featureChange","modeChange","panelCancel","panelSubmit"],[1,"layer-toggle",2,"margin-top","10px",3,"mouseenter","mouseleave"],["class","fa fa-plus-square","style","vertical-align: middle; font-size: 18px; color: black;",4,"ngIf"],["style","margin-top:10px;",4,"ngIf"],[1,"fa","fa-plus-square",2,"vertical-align","middle","font-size","18px","color","black"],[2,"margin-top","10px"],["role","button",3,"click"],[1,"btn","btn-primary"],["key","masterlist.newGeoObject"]],template:function(e,t){1&e&&(a.ɵɵelementStart(0,"div"),a.ɵɵelement(1,"cgr-header"),a.ɵɵelement(2,"loading-bar"),a.ɵɵelementStart(3,"div",0),a.ɵɵelementStart(4,"div",1),a.ɵɵtemplate(5,b,9,7,"div",2),a.ɵɵelementStart(6,"div",3),a.ɵɵelementStart(7,"div",1),a.ɵɵelementStart(8,"article",4),a.ɵɵelementStart(9,"layer-panel",5),a.ɵɵlistener("layerChange",(function(e){return t.onContextLayerChange(e)}))("baseLayerChange",(function(e){return t.handleBasemapStyle(e)})),a.ɵɵelementEnd(),a.ɵɵtemplate(10,E,3,2,"div",6),a.ɵɵelementEnd(),a.ɵɵelement(11,"div",7),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()),2&e&&(a.ɵɵadvance(5),a.ɵɵproperty("ngIf",null!=t.type&&null!=t.code),a.ɵɵadvance(1),a.ɵɵproperty("ngClass",a.ɵɵpureFunction2(4,x,null!=t.code,null==t.code)),a.ɵɵadvance(3),a.ɵɵproperty("filter",a.ɵɵpureFunction1(7,O,t.datasetId)),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",!t.editOnly))},directives:[m.CgrHeaderComponent,u.LoadingBarComponent,g.NgIf,g.NgClass,h.LayerPanelComponent,f.LocalizeComponent,y.FeaturePanelComponent],styles:["#hierarchy-tree-container[_ngcontent-%COMP%] {\n\theight: calc(100vh - 429px);\n overflow-y: auto;\n}\n\n.location-management-widget-section[_ngcontent-%COMP%] {\n\tmargin: 5px 0;\n}\n.location-management-widget-section[_ngcontent-%COMP%] > select[_ngcontent-%COMP%] {\n\tfloat: none !important;\n}\n\n.list-group-item[_ngcontent-%COMP%] {\n\tborder: none;\n\tborder-bottom: 1px solid #ddd;\n\tmargin-bottom: 0;\n}\n.list-group-item[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n\theight: auto;\n}\n\n.breadcrumb[_ngcontent-%COMP%]{\n\tpadding: 10px 0;\n\tbackground-color: white;\n\tmargin:0;\n}\n\n.layer-toggle[_ngcontent-%COMP%] {\n\tcursor: pointer; \n\tbackground: #fff; \n\tpadding: 8px; \n\tborder-radius: 4px;\n\twidth: fit-content;\n}\n\n.layer-toggle[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n\theight: auto;\n}\n.layer-toggle[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n\tmargin-left: 5px;\n}\n\n#attributes-header[_ngcontent-%COMP%] {\n\tbackground: #adadad;\n padding: 2px 15px;\n margin: 10px 0;\n color: white;\n border-radius: 3px;\n}"]}),e}();t.DatasetLocationManagerComponent=I,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(I,[{type:r.Component,args:[{selector:"dataset-location-manager",templateUrl:"./dataset-location-manager.component.html",styleUrls:["./dataset-location-manager.css"]}]}],(function(){return[{type:l.MapService},{type:l.GeometryService},{type:l.RegistryService},{type:s.BsModalService},{type:c.ActivatedRoute},{type:d.AuthService},{type:d.LocalizationService},{type:p.DateService},{type:c.Router}]}),null)},618:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HistoricalEventModuleComponent=void 0;var r=n(0),i=n(0),o=n(122),a=n(86),l=n(1),s=n(33),c=n(68),d=n(619),p=n(621);function m(e,t){1&e&&i.ɵɵelement(0,"localize",10)}function u(e,t){1&e&&i.ɵɵelement(0,"localize",12)}function g(e,t){1&e&&i.ɵɵelement(0,"transition-event-table")}function h(e,t){1&e&&i.ɵɵelement(0,"historical-report")}var f=function(){function e(){this.tab="HISTORICAL-EVENT"}return e.prototype.handleTab=function(e){this.tab=e},e.ɵfac=function(t){return new(t||e)},e.ɵcmp=i.ɵɵdefineComponent({type:e,selectors:[["historical-event-module"]],decls:24,vars:6,consts:[[1,"new-admin-design-main"],["id","app-container",1,"container-fluid",2,"height","100%"],[1,"row"],[1,"col-md-12"],[1,"heading"],["key","transition.event.events",4,"ngIf"],["key","historical.row.report",4,"ngIf"],[1,"inner-col-content-wrapper",2,"padding-top","30px","margin-top","10px"],[1,"form-group","button-row"],[2,"border-bottom","1px solid",3,"routerLink","ngClass","click"],["key","transition.event.events"],[2,"margin-left","5px","border-bottom","1px solid",3,"routerLink","ngClass","click"],["key","historical.row.report"],[2,"border-top","solid 3px #6BA542"],[4,"ngIf"]],template:function(e,t){1&e&&(i.ɵɵelementStart(0,"div",0),i.ɵɵelement(1,"cgr-header"),i.ɵɵelement(2,"loading-bar"),i.ɵɵelementStart(3,"div",1),i.ɵɵelementStart(4,"div",2),i.ɵɵelementStart(5,"div",3),i.ɵɵelementStart(6,"div"),i.ɵɵelementStart(7,"div",4),i.ɵɵelementStart(8,"h2"),i.ɵɵtemplate(9,m,1,0,"localize",5),i.ɵɵtemplate(10,u,1,0,"localize",6),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(11,"div",7),i.ɵɵelementStart(12,"div",2),i.ɵɵelementStart(13,"div",3),i.ɵɵelementStart(14,"div",8),i.ɵɵelementStart(15,"a",9),i.ɵɵlistener("click",(function(){return t.handleTab("HISTORICAL-EVENT")})),i.ɵɵelement(16,"localize",10),i.ɵɵelementEnd(),i.ɵɵelementStart(17,"a",11),i.ɵɵlistener("click",(function(){return t.handleTab("HISTORICAL-REPORT")})),i.ɵɵelement(18,"localize",12),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelement(19,"hr",13),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(20,"div",2),i.ɵɵelementStart(21,"div",3),i.ɵɵtemplate(22,g,1,0,"transition-event-table",14),i.ɵɵtemplate(23,h,1,0,"historical-report",14),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd()),2&e&&(i.ɵɵadvance(9),i.ɵɵproperty("ngIf","HISTORICAL-EVENT"===t.tab),i.ɵɵadvance(1),i.ɵɵproperty("ngIf","HISTORICAL-REPORT"===t.tab),i.ɵɵadvance(5),i.ɵɵproperty("ngClass","HISTORICAL-EVENT"===t.tab?"cr-filter-link-active":""),i.ɵɵadvance(2),i.ɵɵproperty("ngClass","HISTORICAL-REPORT"===t.tab?"cr-filter-link-active":""),i.ɵɵadvance(5),i.ɵɵproperty("ngIf","HISTORICAL-EVENT"===t.tab),i.ɵɵadvance(1),i.ɵɵproperty("ngIf","HISTORICAL-REPORT"===t.tab))},directives:[o.CgrHeaderComponent,a.LoadingBarComponent,l.NgIf,s.RouterLinkWithHref,l.NgClass,c.LocalizeComponent,d.TransitionEventTableComponent,p.HistoricalReportComponent],encapsulation:2}),e}();t.HistoricalEventModuleComponent=f,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(f,[{type:r.Component,args:[{selector:"historical-event-module",templateUrl:"./historical-event-module.component.html",styleUrls:[]}]}],null,null)},619:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TransitionEventTableComponent=void 0;var r=n(0),i=n(7),o=(n(30),n(111)),a=(n(523),n(620)),l=(n(16),n(519),n(0)),s=n(523),c=n(30),d=n(519),p=n(16),m=n(68),u=n(22),g=n(1),h=n(260),f=n(204);function y(e,t){if(1&e&&(l.ɵɵelementStart(0,"h5"),l.ɵɵtext(1),l.ɵɵelementEnd()),2&e){var n=t.item;l.ɵɵadvance(1),l.ɵɵtextInterpolate2("",n.name," : ",n.code,"")}}function v(e,t){if(1&e&&(l.ɵɵelementStart(0,"option",31),l.ɵɵtext(1),l.ɵɵelementEnd()),2&e){var n=t.$implicit;l.ɵɵproperty("value",n.code),l.ɵɵadvance(1),l.ɵɵtextInterpolate(n.label)}}function b(e,t){1&e&&(l.ɵɵelementStart(0,"span",32),l.ɵɵelement(1,"localize",33),l.ɵɵelementEnd())}var S=function(e,t){return{"fa-pencil":e,"fa-eye":t}};function C(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"a",40),l.ɵɵlistener("click",(function(){l.ɵɵrestoreView(n);var e=l.ɵɵnextContext().$implicit;return l.ɵɵnextContext().onView(e)})),l.ɵɵelementEnd()}if(2&e){var r=l.ɵɵnextContext().$implicit;l.ɵɵproperty("ngClass",l.ɵɵpureFunction2(1,S,-1!==r.permissions.indexOf("WRITE"),-1===r.permissions.indexOf("WRITE")))}}function E(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"a",41),l.ɵɵlistener("click",(function(e){l.ɵɵrestoreView(n);var t=l.ɵɵnextContext().$implicit;return l.ɵɵnextContext().deleteEvent(e,t)})),l.ɵɵelementEnd()}}function x(e,t){if(1&e&&(l.ɵɵelementStart(0,"tr",34),l.ɵɵelementStart(1,"td",35),l.ɵɵtemplate(2,C,1,4,"a",36),l.ɵɵtemplate(3,E,1,0,"a",37),l.ɵɵelementEnd(),l.ɵɵelementStart(4,"td",38),l.ɵɵelementStart(5,"h5"),l.ɵɵelementStart(6,"strong"),l.ɵɵtext(7),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(8,"td",2),l.ɵɵelementStart(9,"h5"),l.ɵɵelementStart(10,"strong"),l.ɵɵtext(11),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(12,"td",39),l.ɵɵelementStart(13,"h5"),l.ɵɵelementStart(14,"strong"),l.ɵɵtext(15),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(16,"td",39),l.ɵɵelementStart(17,"h5"),l.ɵɵelementStart(18,"strong"),l.ɵɵtext(19),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(20,"td",39),l.ɵɵelementStart(21,"h5"),l.ɵɵelementStart(22,"strong"),l.ɵɵtext(23),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd()),2&e){var n=t.$implicit,r=l.ɵɵnextContext();l.ɵɵadvance(2),l.ɵɵproperty("ngIf",n.permissions.includes("READ")),l.ɵɵadvance(1),l.ɵɵproperty("ngIf",n.permissions.includes("DELETE")),l.ɵɵadvance(4),l.ɵɵtextInterpolate(r.formatDate(n.eventDate)),l.ɵɵadvance(4),l.ɵɵtextInterpolate(n.description.localizedValue),l.ɵɵadvance(4),l.ɵɵtextInterpolate(n.beforeTypeLabel),l.ɵɵadvance(4),l.ɵɵtextInterpolate(n.afterTypeLabel),l.ɵɵadvance(4),l.ɵɵtextInterpolate(n.eventId)}}function O(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"div",29),l.ɵɵelementStart(1,"pagination-controls",42),l.ɵɵlistener("pageChange",(function(e){return l.ɵɵrestoreView(n),l.ɵɵnextContext().refresh(e)})),l.ɵɵelementEnd(),l.ɵɵelementEnd()}}var I=function(){return["form-control"]},w=function(e,t,n){return{itemsPerPage:e,currentPage:t,totalItems:n}},M=function(){function e(e,t,n,r,i,o){this.service=e,this.modalService=t,this.iService=n,this.dateService=r,this.authService=i,this.localizeService=o,this.page={count:0,pageNumber:1,pageSize:10,resultSet:[]},this.attrConditions=[],this.dateCondition={attribute:"eventDate",startDate:"",endDate:""},this.beforeTypeCondition={attribute:"beforeTypeCode",value:""},this.types=[]}return e.prototype.ngOnInit=function(){var e=this;this.refresh(),this.attrConditions.push(this.dateCondition),this.attrConditions.push(this.beforeTypeCondition),this.iService.listGeoObjectTypes(!1).then((function(t){for(var n=[],r=0;r0))},directives:[m.LocalizeComponent,u.SelectControlValueAccessor,u.NgControlStatus,u.NgModel,u.NgSelectOption,u.ɵangular_packages_forms_forms_z,g.NgForOf,h.DateFieldComponent,g.NgIf,g.NgClass,f.PaginationControlsComponent],pipes:[f.PaginatePipe],styles:[".vertical-center {\n\tposition: relative;\n\ttop: 50%;\n\ttransform: translateY(-50%);\n}\n\n.fa.fa-pencil {\n\tmargin-right:10px;\n}\n\n.status-pending {\n\tcolor: orange;\n}\n\n.status-accepted,\n.status-partial {\n\tcolor: #6BA542;\n}\n\n.status-rejected {\n\tcolor: #d43f3a;\n}\n\n.status-pending-container {\n\tborder: solid 2px orange;\n}\n.status-accepted-container,\n.status-partial-container {\n\tborder: solid 2px #6BA542;\n}\n.status-rejected-container {\n\tborder: solid 2px #d43f3a;\n}\n\n.cr-filter-link-active,\n.cr-filter-link-active:active {\n\t/* border: solid 1px #6BA542; */\n border-radius: 10px;\n background: #6BA542;\n color: white;\n font-weight: bold;\n padding: 3px 15px 3px 15px;\n}\n.cr-filter-link-active:hover,\n.cr-filter-link-active:focus {\n\tcolor:white;\n}\n\n/* .btn {\n\tborder: 2px solid; \n}\n.btn:disabled {\n\tborder: none;\n}\n\n.btn.btn-danger {\n\tbackground-color:#ffeeed; \n\tcolor:#d43f3a;\n}\n.btn.btn-danger:hover,\n.btn.btn-danger:active {\n\tcolor:#d43f3a;\n\tbackground-color:#fff7f6; \n\tborder-color: #d43f3a;\n}\n.btn.btn-danger:disabled:hover {\n\tbackground-color:#ffeeed; \n}\n\n.btn.btn-warning {\n\tbackground-color: #ffefd7;\n\tcolor: orange;\n}\n.btn.btn-warning:hover {\n\tbackground-color: #fff4e5;\n\tborder-color: orange;\n}\n.btn.btn-warning:disabled {\n\tbackground-color: #ffefd7;\n}\n\n.clickable:hover {\n\tbackground-color: #f7f7f7;\n\tcursor: pointer;\n}\n.clickable:hover .arrow.arrow-right {\n\ttransform: rotate(45deg);\n -webkit-transform: rotate(45deg);\n} */\n\ntr.row-active {\n\tbackground-color:#f7f7f7;\n}\n\n\n.arrow {\n border: solid black;\n border-width: 0 1px 1px 0;\n display: inline-block;\n padding: 5px;\n}\n.arrow-right {\n transform: rotate(-45deg);\n -webkit-transform: rotate(-45deg);\n}\n.arrow-down {\n transform: rotate(45deg);\n -webkit-transform: rotate(45deg);\n}\n\n.form-group textarea:focus {\n\tborder-color: #edf4e8;\n\t-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(107,165,66,.6);\n\tbox-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(107,165,66,.6);\n\n}\ntextarea[readonly]:focus {\n\tbox-shadow: none;\n\tborder: 1px solid #ccc;\n\tcursor: not-allowed;\n}\n\n\n.geoobject-panel-header{\n width: 100%;\n background: grey;\n color: white;\n padding: 10px;\n}\n"],encapsulation:2,data:{animation:[[i.trigger("fadeInOut",[i.transition(":enter",[i.style({opacity:0}),i.animate("300ms")]),i.transition(":leave",i.animate("100ms",i.style({opacity:0})))]),i.trigger("fadeIn",[i.transition(":enter",[i.style({opacity:0}),i.animate("500ms")])])]]}}),e}();t.TransitionEventTableComponent=M,("undefined"==typeof ngDevMode||ngDevMode)&&l.ɵsetClassMetadata(M,[{type:r.Component,args:[{selector:"transition-event-table",templateUrl:"./transition-event-table.component.html",styleUrls:["./transition-event-table.css"],encapsulation:r.ViewEncapsulation.None,animations:[[i.trigger("fadeInOut",[i.transition(":enter",[i.style({opacity:0}),i.animate("300ms")]),i.transition(":leave",i.animate("100ms",i.style({opacity:0})))]),i.trigger("fadeIn",[i.transition(":enter",[i.style({opacity:0}),i.animate("500ms")])])]]}]}],(function(){return[{type:s.TransitionEventService},{type:c.BsModalService},{type:d.IOService},{type:p.DateService},{type:p.AuthService},{type:p.LocalizationService}]}),null)},620:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TransitionEventModalComponent=t.GRAPH_LINE_COLOR=t.GRAPH_CIRCLE_FILL=t.GRAPH_GO_LABEL_COLOR=t.GRAPH_ACTIVE_TRANSITION_HIGHLIGHT_COLOR=t.VIEWPORT_SCALE_FACTOR_Y=t.VIEWPORT_SCALE_FACTOR_X=t.DRAW_SCALE_MULTIPLIER=void 0;var r=n(0),i=(n(30),n(31)),o=(n(519),n(112),n(111)),a=(n(16),n(523),n(377)),l=n(378),s=n(0),c=n(523),d=n(519),p=n(16),m=n(30),u=n(112),g=n(1),h=n(22),f=n(68),y=n(260),v=n(259),b=n(516),S=n(154),C=["typeaheadParent"];function E(e,t){if(1&e&&(s.ɵɵelementStart(0,"h5"),s.ɵɵtext(1),s.ɵɵelementEnd()),2&e){var n=t.item;s.ɵɵadvance(1),s.ɵɵtextInterpolate2("",n.name," : ",n.code,"")}}function x(e,t){if(1&e&&(s.ɵɵelementStart(0,"div",6),s.ɵɵtext(1),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext();s.ɵɵadvance(1),s.ɵɵtextInterpolate(n.message)}}function O(e,t){if(1&e&&(s.ɵɵelementStart(0,"span",29),s.ɵɵtext(1),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext(2);s.ɵɵadvance(1),s.ɵɵtextInterpolate1(" ",n.formatDate(n.event.eventDate)," ")}}var I=function(){return["form-control"]};function w(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"date-field",30),s.ɵɵlistener("valueChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).event.eventDate=e}))("validChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).validChange(e)})),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(2);s.ɵɵproperty("value",r.event.eventDate)("classNames",s.ɵɵpureFunction0(6,I))("inputName","eventDate")("allowFutureDates",!1)("required",!0)("disable",r.readonly||r.event.transitions.length>0)}}function M(e,t){if(1&e&&(s.ɵɵelementStart(0,"div",8),s.ɵɵelementStart(1,"div",9),s.ɵɵelementStart(2,"label"),s.ɵɵelement(3,"localize",31),s.ɵɵelementStart(4,"span",32),s.ɵɵtext(5," ("),s.ɵɵelement(6,"convert-key-label",27),s.ɵɵtext(7,")"),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(8,"div",11),s.ɵɵelementStart(9,"input",33),s.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.value=e})),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd()),2&e){var n=t.$implicit,r=s.ɵɵnextContext(2);s.ɵɵadvance(6),s.ɵɵproperty("key",n.locale),s.ɵɵadvance(3),s.ɵɵproperty("ngModel",n.value)("name","label-"+n.locale)("disabled",r.readonly)("required",!1)}}function T(e,t){if(1&e&&(s.ɵɵelementStart(0,"option",36),s.ɵɵtext(1),s.ɵɵelementEnd()),2&e){var n=t.$implicit;s.ɵɵproperty("value",n.code),s.ɵɵadvance(1),s.ɵɵtextInterpolate(n.label)}}function j(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"div",11),s.ɵɵelementStart(1,"select",34),s.ɵɵlistener("ngModelChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).event.beforeTypeCode=e}))("change",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).onChange()})),s.ɵɵelement(2,"option"),s.ɵɵtemplate(3,T,2,2,"option",35),s.ɵɵelementEnd(),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(2);s.ɵɵadvance(1),s.ɵɵproperty("ngModel",r.event.beforeTypeCode)("disabled",r.event.transitions.length>0),s.ɵɵadvance(2),s.ɵɵproperty("ngForOf",r.types)}}function k(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"div",11),s.ɵɵelementStart(1,"input",37),s.ɵɵlistener("ngModelChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).event.beforeTypeLabel=e})),s.ɵɵelementEnd(),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(2);s.ɵɵadvance(1),s.ɵɵproperty("ngModel",r.event.beforeTypeLabel)}}function z(e,t){if(1&e&&(s.ɵɵelementStart(0,"option",36),s.ɵɵtext(1),s.ɵɵelementEnd()),2&e){var n=t.$implicit;s.ɵɵproperty("value",n.code),s.ɵɵadvance(1),s.ɵɵtextInterpolate(n.label)}}function D(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"div",11),s.ɵɵelementStart(1,"select",38),s.ɵɵlistener("ngModelChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).event.afterTypeCode=e}))("change",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).onChange()})),s.ɵɵelement(2,"option"),s.ɵɵtemplate(3,z,2,2,"option",35),s.ɵɵelementEnd(),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(2);s.ɵɵadvance(1),s.ɵɵproperty("ngModel",r.event.afterTypeCode)("disabled",r.event.transitions.length>0),s.ɵɵadvance(2),s.ɵɵproperty("ngForOf",r.allTypes)}}function R(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"div",11),s.ɵɵelementStart(1,"input",39),s.ɵɵlistener("ngModelChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).event.afterTypeLabel=e})),s.ɵɵelementEnd(),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(2);s.ɵɵadvance(1),s.ɵɵproperty("ngModel",r.event.afterTypeLabel)}}function P(e,t){1&e&&s.ɵɵelement(0,"th",46)}function A(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"span",65),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext().$implicit;return s.ɵɵnextContext(3).clear(e,"sourceText")})),s.ɵɵelement(1,"i",66),s.ɵɵelementEnd()}}function V(e,t){1&e&&s.ɵɵelement(0,"span",67)}function N(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"span",65),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext().$implicit;return s.ɵɵnextContext(3).clear(e,"targetText")})),s.ɵɵelement(1,"i",66),s.ɵɵelementEnd()}}function L(e,t){1&e&&s.ɵɵelement(0,"span",67)}function _(e,t){if(1&e&&(s.ɵɵelementStart(0,"label"),s.ɵɵtext(1),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext(2).$implicit,r=s.ɵɵnextContext(3);s.ɵɵadvance(1),s.ɵɵtextInterpolate(r.localizeTransitionType(n.transitionType))}}function F(e,t){if(1&e&&(s.ɵɵelementStart(0,"label",69),s.ɵɵtext(1),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext(2).$implicit,r=s.ɵɵnextContext(3);s.ɵɵadvance(1),s.ɵɵtextInterpolate(r.localizeTransitionType(n.typePart))}}function H(e,t){if(1&e&&(s.ɵɵelementStart(0,"td",62),s.ɵɵtemplate(1,_,2,1,"label",5),s.ɵɵtemplate(2,F,2,1,"label",68),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext().$implicit;s.ɵɵadvance(1),s.ɵɵproperty("ngIf",!n.typeUpdown),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",n.typePart)}}function G(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"select",71),s.ɵɵlistener("ngModelChange",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).$implicit.typeUpdown=e}))("change",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext(2).$implicit;return s.ɵɵnextContext(3).onChangeTypeUpdown(e)})),s.ɵɵelementStart(1,"option",72),s.ɵɵelement(2,"localize",73),s.ɵɵelementEnd(),s.ɵɵelementStart(3,"option",74),s.ɵɵelement(4,"localize",75),s.ɵɵelementEnd(),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(2),i=r.$implicit,o=r.index,a=s.ɵɵnextContext(3);s.ɵɵproperty("name","transition.transitionType-updown-"+i.oid+"-"+o)("ngModel",i.typeUpdown)("disabled",a.readonly)}}function q(e,t){if(1&e&&(s.ɵɵelementStart(0,"td"),s.ɵɵtemplate(1,G,5,3,"select",70),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext().$implicit;s.ɵɵadvance(1),s.ɵɵproperty("ngIf",n.typeUpdown)}}function B(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"td",62),s.ɵɵelementStart(1,"span",76),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext().index;return s.ɵɵnextContext(3).remove(e)})),s.ɵɵelement(2,"a",77),s.ɵɵelementEnd(),s.ɵɵelementEnd()}}function U(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"tr",53),s.ɵɵlistener("dndStart",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(3).onDragStart(e)}))("dndCopied",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(3).onDraggableCopied(e)}))("dndLinked",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(3).onDraggableLinked(e)}))("dndMoved",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(3).onDraggableMoved(e)}))("dndCanceled",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(3).onDragCanceled(e)}))("dndEnd",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(3).onDragEnd(e)})),s.ɵɵelementStart(1,"td",54),s.ɵɵelement(2,"a",55),s.ɵɵelementEnd(),s.ɵɵelementStart(3,"td"),s.ɵɵelementStart(4,"div",56),s.ɵɵelementStart(5,"input",57),s.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.sourceText=e}))("typeaheadOnSelect",(function(e){s.ɵɵrestoreView(n);var r=t.$implicit;return s.ɵɵnextContext(3).typeaheadOnSelect(e,r,"sourceText")})),s.ɵɵelementEnd(),s.ɵɵelementStart(6,"div",58),s.ɵɵelement(7,"div",59),s.ɵɵelementEnd(),s.ɵɵtemplate(8,A,2,0,"span",60),s.ɵɵtemplate(9,V,1,0,"span",61),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(10,"td",62),s.ɵɵelementStart(11,"label"),s.ɵɵtext(12),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(13,"td"),s.ɵɵelementStart(14,"div",56),s.ɵɵelementStart(15,"input",57),s.ɵɵlistener("ngModelChange",(function(e){return t.$implicit.targetText=e}))("typeaheadOnSelect",(function(e){s.ɵɵrestoreView(n);var r=t.$implicit;return s.ɵɵnextContext(3).typeaheadOnSelect(e,r,"targetText")})),s.ɵɵelementEnd(),s.ɵɵelementStart(16,"div",58),s.ɵɵelement(17,"div",59),s.ɵɵelementEnd(),s.ɵɵtemplate(18,N,2,0,"span",60),s.ɵɵtemplate(19,L,1,0,"span",61),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵtemplate(20,H,3,2,"td",63),s.ɵɵtemplate(21,q,2,1,"td",5),s.ɵɵtemplate(22,B,3,0,"td",64),s.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=t.index,o=s.ɵɵnextContext(3),a=s.ɵɵreference(1);s.ɵɵproperty("dndDraggable",r)("dndEffectAllowed",o.draggable.effectAllowed)("dndDisableIf",o.draggable.disable),s.ɵɵattribute("data-transOid",r.oid),s.ɵɵadvance(5),s.ɵɵproperty("name","transition.source-"+r.oid+"-"+i)("disabled",o.readonly)("ngModel",r.sourceText)("typeaheadAsync",!0)("typeahead",o.getTypeAheadObservable(!0,r,o.event.beforeTypeCode,"sourceText"))("typeaheadOptionsLimit",7)("typeaheadItemTemplate",a)("typeaheadMinLength",0)("typeaheadWaitMs",300)("container","#typeaheadParentS-"+i),s.ɵɵadvance(2),s.ɵɵproperty("id","typeaheadParentS-"+i),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",!o.readonly),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",o.readonly),s.ɵɵadvance(3),s.ɵɵtextInterpolate(o.localizeTransitionImpact(r.impact)),s.ɵɵadvance(3),s.ɵɵproperty("name","transition.target-"+r.oid+"-"+i)("disabled",o.readonly)("ngModel",r.targetText)("typeaheadAsync",!0)("typeahead",o.getTypeAheadObservable(!1,r,o.event.afterTypeCode,"targetText"))("typeaheadOptionsLimit",7)("typeaheadItemTemplate",a)("typeaheadMinLength",0)("typeaheadWaitMs",300)("container","#typeaheadParentT-"+i),s.ɵɵadvance(2),s.ɵɵproperty("id","typeaheadParentT-"+i),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",!o.readonly),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",o.readonly),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",r.typePart||!r.typeUpdown),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",r.typeUpdown),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",!o.readonly)}}function $(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"div",78),s.ɵɵelementStart(1,"div",7),s.ɵɵelementStart(2,"i",79),s.ɵɵlistener("click",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext(3).onCreate()})),s.ɵɵelement(3,"localize",80),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd()}}function J(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"div",8),s.ɵɵelementStart(1,"table",40),s.ɵɵelementStart(2,"thead"),s.ɵɵelementStart(3,"tr",41),s.ɵɵelement(4,"th"),s.ɵɵelementStart(5,"th",42),s.ɵɵelement(6,"localize",21),s.ɵɵelementEnd(),s.ɵɵelementStart(7,"th",43),s.ɵɵelement(8,"localize",44),s.ɵɵelementEnd(),s.ɵɵelementStart(9,"th",42),s.ɵɵelement(10,"localize",22),s.ɵɵelementEnd(),s.ɵɵelementStart(11,"th",43),s.ɵɵelement(12,"localize",45),s.ɵɵelementEnd(),s.ɵɵelement(13,"th",46),s.ɵɵtemplate(14,P,1,0,"th",47),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(15,"tbody",48),s.ɵɵlistener("dndDrop",(function(e){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).onDrop(e)})),s.ɵɵelementStart(16,"tr",49),s.ɵɵelement(17,"td",50),s.ɵɵelementEnd(),s.ɵɵtemplate(18,U,23,34,"tr",51),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵtemplate(19,$,4,0,"div",52),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(2);s.ɵɵadvance(14),s.ɵɵproperty("ngIf",!r.readonly),s.ɵɵadvance(4),s.ɵɵproperty("ngForOf",r.event.transitions),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",!r.readonly)}}function W(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"button",81),s.ɵɵlistener("click",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).onSubmit()})),s.ɵɵelement(1,"localize",82),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext(2),i=s.ɵɵreference(5);s.ɵɵproperty("disabled",i.invalid||!r.valid)}}function K(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"fieldset"),s.ɵɵelementStart(1,"div",7),s.ɵɵelementStart(2,"div",8),s.ɵɵelementStart(3,"div",9),s.ɵɵelementStart(4,"label"),s.ɵɵelement(5,"localize",10),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(6,"div",11),s.ɵɵtemplate(7,O,2,1,"span",12),s.ɵɵtemplate(8,w,1,7,"date-field",13),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵtemplate(9,M,10,5,"div",14),s.ɵɵelementStart(10,"div",8),s.ɵɵelementStart(11,"div",9),s.ɵɵelementStart(12,"label",15),s.ɵɵelement(13,"localize",16),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵtemplate(14,j,4,3,"div",17),s.ɵɵtemplate(15,k,2,1,"div",17),s.ɵɵelementEnd(),s.ɵɵelementStart(16,"div",8),s.ɵɵelementStart(17,"div",9),s.ɵɵelementStart(18,"label",18),s.ɵɵelement(19,"localize",19),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵtemplate(20,D,4,3,"div",17),s.ɵɵtemplate(21,R,2,1,"div",17),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementStart(22,"div",7),s.ɵɵelementStart(23,"div",20),s.ɵɵelementStart(24,"label",7),s.ɵɵelement(25,"localize",21),s.ɵɵelementEnd(),s.ɵɵelementStart(26,"label",7),s.ɵɵelement(27,"localize",22),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelement(28,"div",23),s.ɵɵelementEnd(),s.ɵɵtemplate(29,J,20,3,"div",24),s.ɵɵelementStart(30,"div",8),s.ɵɵelement(31,"div",9),s.ɵɵelementStart(32,"div",11),s.ɵɵelementStart(33,"div",25),s.ɵɵelementStart(34,"button",26),s.ɵɵlistener("click",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext().onCancel()})),s.ɵɵelement(35,"localize",27),s.ɵɵelementEnd(),s.ɵɵtemplate(36,W,2,1,"button",28),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd(),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext();s.ɵɵadvance(7),s.ɵɵproperty("ngIf",r.readonly),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",!r.readonly),s.ɵɵadvance(1),s.ɵɵproperty("ngForOf",r.event.description.localeValues),s.ɵɵadvance(5),s.ɵɵproperty("ngIf",!r.readonly&&null!=r.types),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",r.readonly),s.ɵɵadvance(5),s.ɵɵproperty("ngIf",!r.readonly&&null!=r.allTypes),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",r.readonly),s.ɵɵadvance(8),s.ɵɵproperty("ngIf",null!=r.event.beforeTypeCode&&""!==r.event.beforeTypeCode&&null!=r.event.afterTypeCode&&""!==r.event.afterTypeCode&&null!=r.event.eventDate&&""!==r.event.eventDate),s.ɵɵadvance(6),s.ɵɵproperty("key",r.readonly?"io.back":"io.cancel"),s.ɵɵadvance(1),s.ɵɵproperty("ngIf",!r.readonly)}}t.DRAW_SCALE_MULTIPLIER=1,t.VIEWPORT_SCALE_FACTOR_X=1,t.VIEWPORT_SCALE_FACTOR_Y=1,t.GRAPH_ACTIVE_TRANSITION_HIGHLIGHT_COLOR="#6BA542",t.GRAPH_GO_LABEL_COLOR="black",t.GRAPH_CIRCLE_FILL="#999",t.GRAPH_LINE_COLOR="#999";var Q=function(){function e(e,t,n,r,i,o,a,l){this.service=e,this.changeDetector=t,this.rService=n,this.iService=r,this.lService=i,this.bsModalRef=o,this.authService=a,this.dateService=l,this.message=null,this.event=null,this.activeTransition=null,this.allTypes=[],this.types=[],this.readonly=!1,this.valid=!1,this.draggable={data:"myDragData",effectAllowed:"all",disable:!1,handle:!0}}return e.prototype.ngOnInit=function(){var e=this;this.onEventChange=new i.Subject,this.iService.listGeoObjectTypes(!1).then((function(t){for(var n=[],r=0;r0&&e.event.transitions.length>0&&null!=e.event.afterTypeCode&&null!=e.event.beforeTypeCode}),0)},e.prototype.remove=function(e){this.event.transitions.splice(e,1),this.onChange()},e.prototype.onSubmit=function(){var e=this;this.service.apply(this.event).then((function(t){e.onEventChange.next(t),e.bsModalRef.hide()})).catch((function(t){e.error(t)}))},e.prototype.onCancel=function(){this.bsModalRef.hide()},e.prototype.formatDate=function(e){return this.dateService.formatDateForDisplay(e)},e.prototype.error=function(e){this.message=o.ErrorHandler.getMessageFromError(e)},e.prototype.calculateDerivedAttributes=function(){var e={};this.event.transitions.forEach((function(t){null!=t.sourceCode&&""!==t.sourceCode&&null!=t.targetCode&&""!==t.targetCode&&(null==e[t.sourceCode]?e[t.sourceCode]={source:1,target:0}:e[t.sourceCode].source++,null==e[t.targetCode]?e[t.targetCode]={source:0,target:1}:e[t.targetCode].target++)})),this.event.transitions.forEach((function(t){if(null!=t.sourceCode&&""!==t.sourceCode&&null!=t.targetCode&&""!==t.targetCode){var n=e[t.sourceCode],r=e[t.targetCode],i="UPGRADE";null!=t.transitionType&&-1!==t.transitionType.indexOf("DOWNGRADE")&&(i="DOWNGRADE"),1===n.source&&1===r.target?(t.transitionType="REASSIGN",t.impact="FULL"):n.source>1?(t.impact="PARTIAL",r.target>1?t.transitionType="MERGE":t.transitionType="SPLIT"):r.target>1&&(t.impact="FULL",t.transitionType="MERGE"),t.sourceType!==t.targetType?"REASSIGN"===t.transitionType?(t.typeUpdown=i,delete t.typePart,t.transitionType=t.typeUpdown):(t.typeUpdown=i,t.typePart=t.transitionType,t.transitionType=t.typeUpdown+"_"+t.typePart):delete t.typePart}}))},e.prototype.onChangeTypeUpdown=function(e){e.typePart?e.transitionType=e.typeUpdown+"_"+e.typePart:e.transitionType=e.typeUpdown},e.prototype.onDragStart=function(e){},e.prototype.onDragEnd=function(e){},e.prototype.onDragged=function(e,t){},e.prototype.onDraggableCopied=function(e){},e.prototype.onDraggableLinked=function(e){},e.prototype.onDraggableMoved=function(e){},e.prototype.onDragCanceled=function(e){},e.prototype.onDragover=function(e){},e.prototype.onDrop=function(e){var t=this,n=e.data,r=e.index;this.event.transitions.splice(n.order,1);var i=r>n.order?r-1:r;this.event.transitions.splice(i,0,n);for(var o=0;o0)}},directives:[p.ɵangular_packages_forms_forms_ba,p.NgControlStatusGroup,p.NgForm,m.LocalizeComponent,p.SelectControlValueAccessor,p.RequiredValidator,p.NgControlStatus,p.NgModel,p.NgSelectOption,p.ɵangular_packages_forms_forms_z,u.NgForOf,g.DateFieldComponent,u.NgIf,h.PaginationControlsComponent],pipes:[h.PaginatePipe],encapsulation:2,data:{animation:[[o.trigger("fadeInOut",[o.transition(":enter",[o.style({opacity:0}),o.animate("300ms")]),o.transition(":leave",o.animate("100ms",o.style({opacity:0})))]),o.trigger("fadeIn",[o.transition(":enter",[o.style({opacity:0}),o.animate("500ms")])])]]}}),e}();t.HistoricalReportComponent=C,("undefined"==typeof ngDevMode||ngDevMode)&&l.ɵsetClassMetadata(C,[{type:r.Component,args:[{selector:"historical-report",templateUrl:"./historical-report.component.html",styleUrls:[],encapsulation:r.ViewEncapsulation.None,animations:[[o.trigger("fadeInOut",[o.transition(":enter",[o.style({opacity:0}),o.animate("300ms")]),o.transition(":leave",o.animate("100ms",o.style({opacity:0})))]),o.trigger("fadeIn",[o.transition(":enter",[o.style({opacity:0}),o.animate("500ms")])])]]}]}],(function(){return[{type:s.TransitionEventService},{type:c.IOService},{type:d.AuthService},{type:d.DateService}]}),null)},625:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SvgHierarchyNode=void 0;var r=n(378),i=n(550),o=n(580),a=n(534),l=n(111),s=function(){function e(e,t,n,r,i,o,a){this.localizeService=i,this.modalService=o,this.authService=a,this.hierarchyComponent=e,this.svgHierarchyType=t,this.geoObjectType=n,this.treeNode=r}return e.prototype.getCode=function(){return this.geoObjectType.code},e.prototype.setPos=function(e,t,n){var i=this.getBbox();r.select('.g-hierarchy[data-primary=true] .svg-got-body-rect[data-gotCode="'+this.getCode()+'"]').classed("dragging",n).attr("x",e).attr("y",t),r.select('.g-hierarchy[data-primary=true] .svg-got-header-rect[data-gotCode="'+this.getCode()+'"]').classed("dragging",n).attr("x",e).attr("y",t-o.SvgHierarchyType.gotRectH/2+2),r.select('.g-hierarchy[data-primary=true] .svg-got-label-text[data-gotCode="'+this.getCode()+'"]').classed("dragging",n).attr("x",e+5).attr("y",t+1),r.select('.g-hierarchy[data-primary=true] .svg-got-relatedhiers-button[data-gotCode="'+this.getCode()+'"]').classed("dragging",n).attr("x",e+i.width-20).attr("y",t+17);var a=r.select('.g-hierarchy[data-primary=true] .hierarchy-inherit-button[data-gotCode="'+this.getCode()+'"]').node();if(null!=a){var l=e+i.width-60,s=t+i.height-24,c=a.getBBox();r.select('.g-hierarchy[data-primary=true] .hierarchy-inherit-button[data-gotCode="'+this.getCode()+'"]').classed("dragging",n).attr("transform","translate("+(l-c.x)+" "+(s-c.y)+")")}var d=r.select('.g-hierarchy[data-primary=true] .hierarchy-uninherit-button[data-gotCode="'+this.getCode()+'"]').node();if(null!=d){l=e+i.width-71,s=t+i.height-24;var p=d.getBBox();r.select('.g-hierarchy[data-primary=true] .hierarchy-uninherit-button[data-gotCode="'+this.getCode()+'"]').classed("dragging",n).attr("transform","translate("+(l-p.x)+" "+(s-p.y)+")")}},e.prototype.getPos=function(){var e=r.select('.g-hierarchy[data-primary=true] .svg-got-body-rect[data-gotCode="'+this.getCode()+'"]');return{x:parseInt(e.attr("x")),y:parseInt(e.attr("y"))}},e.prototype.getBbox=function(){var e=r.select('.g-hierarchy[data-primary=true] .svg-got-body-rect[data-gotCode="'+this.getCode()+'"]');return{x:parseInt(e.attr("x")),y:parseInt(e.attr("y"))-3,width:parseInt(e.attr("width")),height:parseInt(e.attr("height"))+3}},e.prototype.getTreeNode=function(){return this.treeNode},e.prototype.hideRelatedHierarchy=function(){var e=r.select('.g-hierarchy[data-primary="false"]');if(null!=e.node())return e.remove(),this.hierarchyComponent.calculateSvgViewBox(),e.attr("data-code")},e.prototype.renderRelatedHierarchiesMenu=function(){var e=this,t=this,n=r.select(".g-context-menu");if(null==n.node()){var a=r.select("#svg").append("g").classed("g-context-menu",!0),l=this.svgHierarchyType.getRelatedHierarchies(this.getCode()),s=this.authService.isSRA()||this.authService.isOrganizationRA(this.svgHierarchyType.hierarchyType.organizationCode),c=this.getBbox(),d=c.x+c.width-5,p=c.y+c.height/2-8,m=this.hierarchyComponent.localize("hierarchy.content.relatedHierarchies"),u=this.hierarchyComponent.localize("hierarchy.content.actionsTitle"),g=this.hierarchyComponent.localize("hierarchy.content.removeFromHierarchy"),h=this.hierarchyComponent.localize("hierarchy.content.noRelatedHierarchies"),f=this.hierarchyComponent.localize("hierarchy.content.hideRelatedHierarchy"),y=this.hierarchyComponent.localize("hierarchy.content.uninherit"),v=this.hierarchyComponent.localize("hierarchy.content.inherit"),b=null!=r.select('.g-hierarchy[data-primary="false"]').node(),S=s?b?2:1:0,C=i.calculateTextWidth(m,9),E=i.calculateTextWidth(g,8);if(C=E>C?E:C,b){var x=i.calculateTextWidth(f,8);C=x>C?x:C}if(null!=this.treeNode.parent&&null!=this.treeNode.parent.data.inheritedHierarchyCode&&""!=this.treeNode.parent.data.inheritedHierarchyCode){var O=i.calculateTextWidth(y,8);C=O>C?O:C,S++}else{if(null!=(k=r.select('.g-hierarchy[data-primary="false"]')).node()){var I=k.attr("data-code"),w=this.hierarchyComponent.findHierarchyByCode(I),M=null!=new o.SvgHierarchyType(this.hierarchyComponent,r.select("#svg"),w,!0,this.localizeService,this.modalService,this.authService).getNodeByCode(this.getCode()).getTreeNode().parent;if(null==this.treeNode.parent&&M){var T=i.calculateTextWidth(v,8);C=T>C?T:C,S++}}}if(l.length>0)l.forEach((function(t){var n=e.hierarchyComponent.findHierarchyByCode(t),r=n.label.localizedValue;null!=e.treeNode.parent&&e.treeNode.parent.data.inheritedHierarchyCode===n.code&&(r=r+" ("+e.hierarchyComponent.localize("hierarchy.content.inherited")+")");var o=i.calculateTextWidth(r,8);o>C&&(C=o)}));else{var j=i.calculateTextWidth(h,8);C=j>C?j:C}C+=10;var k,z=l.length>0?S+2:S+3;if(a.append("rect").classed("contextmenu-relatedhiers-background",!0).attr("x",d).attr("y",p).attr("rx",5).attr("width",C).attr("height",20*(l.length+z)).attr("fill","white").attr("stroke-width",.5).attr("stroke","#aaaaaa"),a.append("text").classed("contextmenu-relatedhiers-title",!0).attr("x",d+5).attr("y",p+10+4.5).attr("font-size",9).attr("font-family","sans-serif").attr("font-weight","bold").text(m),p+=20,a.append("line").classed("contextmenu-relatedhiers-divider",!0).attr("x1",d).attr("y1",p).attr("x2",d+C).attr("y2",p).attr("stroke","#aaaaaa").attr("stroke-width",.5),l.length>0)for(var D=function(e){var n=l[e],r=R.hierarchyComponent.findHierarchyByCode(n),i=r.label.localizedValue;null!=R.treeNode.parent&&R.treeNode.parent.data.inheritedHierarchyCode===r.code&&(i=i+" ("+R.hierarchyComponent.localize("hierarchy.content.inherited")+")"),a.append("text").classed("contextmenu-relatedhiers-text",!0).attr("data-hierCode",n).attr("x",d+5).attr("y",p+10+4).attr("font-size",8).attr("font-family","sans-serif").text(i).style("cursor","pointer").on("click",(function(e,n){t.renderSecondaryHierarchy(r)})),p+=20,e=0;--t){var n=this.hierarchyOverTime.types[t];if(Object.prototype.hasOwnProperty.call(e,n.code)&&e[n.code].geoObject)return e[n.code]}return null},Object.defineProperty(t.prototype,"value",{get:function(){return null!=this.diff&&void 0!==this.diff.parents?this.diff:null!=this.hierarchyEntry?this.hierarchyEntry:null},set:function(e){throw new Error("Invoke setParentValue instead")},enumerable:!1,configurable:!0}),t.prototype.removeType=function(e){var t=JSON.parse(JSON.stringify(this.value.parents));t[e.code]={text:"",geoObject:null};for(var n=this.value,r=this.hierarchyOverTime.types.length-1;r>=0;--r){var i=this.hierarchyOverTime.types[r];if(Object.prototype.hasOwnProperty.call(n.parents,i.code)&&n.parents[i.code].geoObject)return void this.setParentValue(i,t)}this.setParentValue(null,t)},t.prototype.createEmptyHierarchyEntry=function(){var e=new a.HierarchyOverTimeEntry;if(e.loading={},e.oid=s.v4(),e.parents={},this.hierarchyOverTime)for(var t=0;t-1&&t.attributeDiff.valuesOverTime.splice(i,1)}else{if(null!=this.diff)return delete this.diff.newValue,delete this.diff.newStartDate,delete this.diff.newEndDate,this.removeEmptyDiff(),void this.onChange(c.ChangeType.REMOVE);if(null!=this.hierarchyEntry&&null==this.diff){var n=this.getLowestLevelFromHierarchyEntry(this.hierarchyEntry.parents).geoObject,r=null==n?null:n.properties.type+"_~VST~_"+n.properties.code;this.diff=new l.ValueOverTimeDiff,this.diff.action="DELETE",this.diff.oid=this.hierarchyEntry.oid,this.diff.oldValue=r,this.diff.oldStartDate=this.hierarchyEntry.startDate,this.diff.oldEndDate=this.hierarchyEntry.endDate,this.action.attributeDiff.valuesOverTime.push(this.diff),this.action.attributeDiff.hierarchyCode=this.hierarchyOverTime.code}}else if("CreateGeoObjectAction"===this.action.actionType){var i;-1!==(i=this.hierarchyOverTime.entries.findIndex((function(t){return t.oid===e.hierarchyEntry.oid})))&&this.hierarchyOverTime.entries.splice(i,1)}this.onChange(c.ChangeType.REMOVE)},t}(o.ValueOverTimeCREditor);t.HierarchyCREditor=d},629:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StandardAttributeCRModel=void 0;var r=n(521),i=n(258),o=function(){function e(e,t,n){this._isValid=!0,this.attribute=e,this.geoObject=t,this.changeRequest=n,this.initialize()}return e.prototype.initialize=function(){var e=this,t=this.changeRequest.actions;"CreateGeoObject"===this.changeRequest.type?t.length>0&&t[0].actionType===i.ActionTypes.CREATEGEOOBJECTACTION&&(this.editAction=t[0]):(t.forEach((function(t){if(t.actionType===i.ActionTypes.UPDATEATTRIBUTETACTION){var n=t;e.attribute.code===n.attributeName&&(e.editAction=t)}})),null==this.editAction&&(this.editAction=new r.UpdateAttributeAction(this.attribute.code)));for(var n=this.changeRequest.actions.length,o=0;o0&&this.conflictMessagesHasSeverity("ERROR")},e.prototype.hasWarning=function(){return!this.hasError()&&this.editor.conflictMessages&&this.editor.conflictMessages.size>0&&this.conflictMessagesHasSeverity("WARNING")},e}();t.VersionDiffView=a},631:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CreateUpdateGeoObjectDetailComponent=void 0;var r=n(0),i=(n(30),n(519),n(16),n(111)),o=n(0),a=n(519),l=n(30),s=n(16),c=n(68),d=n(22),p=n(1),m=n(525),u=["attributeEditor"],g=["geometryEditor"],h=function(e){return[e]},f=function(e,t){return{geoObject:e,actions:t}};function y(e,t){if(1&e&&o.ɵɵelement(0,"geoobject-shared-attribute-editor",16,17),2&e){var n=o.ɵɵnextContext();o.ɵɵproperty("readOnly",n.readOnly)("geoObjectType",n.geoObjectType)("geoObjectData",o.ɵɵpureFunction2(8,f,n.postGeoObject,o.ɵɵpureFunction1(6,h,n.action)))("forDate",n.forDate)("readOnly",!1)("isGeometryInlined",!0)}}function v(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"button",18),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext().startEdit()})),o.ɵɵelement(1,"localize",19),o.ɵɵelementEnd()}}function b(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"button",20),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext().endEdit()})),o.ɵɵelement(1,"localize",21),o.ɵɵelementEnd()}}function S(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"button",18),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext().applyAction()})),o.ɵɵelement(1,"localize",22),o.ɵɵelementEnd()}}var C=function(){function e(e,t,n,r){this.changeRequestService=e,this.modalService=t,this.registryService=n,this.authService=r,this.isMaintainer=!1,this.preGeoObject=null,this.postGeoObject=null,this.geoObjectType=null,this.isEditing=!1,this.dateStr=null,this.forDate=null,this.isMaintainer=r.isAdmin()||r.isMaintainer(),this.forDate=new Date;var i=this.forDate.getUTCDate();this.dateStr=this.forDate.getUTCFullYear()+"-"+(this.forDate.getUTCMonth()+1)+"-"+(i<10?"0":"")+i}return e.prototype.ngOnInit=function(){this.postGeoObject=this.action.geoObjectJson,this.geoObjectType=this.action.geoObjectType,this.isNew()&&(this.preGeoObject=this.postGeoObject),this.onSelect(this.action)},e.prototype.isNew=function(){return"net.geoprism.registry.action.geoobject.CreateGeoObjectAction"===this.action.actionType},e.prototype.handleDateChange=function(){this.forDate=new Date(Date.parse(this.dateStr))},e.prototype.applyAction=function(){var e=this.action;e.geoObjectJson=this.attributeEditor.getGeoObject(),null!=this.geometryEditor&&(e.geoObjectJson.geometry=this.geometryEditor.saveDraw().geometry)},e.prototype.onSelect=function(e){var t=this;"net.geoprism.registry.action.geoobject.UpdateGeoObjectAction"===this.action.actionType&&this.registryService.getGeoObjectOverTime(this.postGeoObject.attributes.code,this.geoObjectType.code).then((function(e){t.preGeoObject=e})).catch((function(e){t.error(e)}))},e.prototype.startEdit=function(){},e.prototype.endEdit=function(){},e.prototype.getUsername=function(){return this.authService.getUsername()},e.prototype.error=function(e){this.bsModalRef=i.ErrorHandler.showErrorAsDialog(e,this.modalService)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.ChangeRequestService),o.ɵɵdirectiveInject(l.BsModalService),o.ɵɵdirectiveInject(a.RegistryService),o.ɵɵdirectiveInject(s.AuthService))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["crtable-detail-create-geo-object"]],viewQuery:function(e,t){if(1&e&&(o.ɵɵviewQuery(u,1),o.ɵɵviewQuery(g,1)),2&e){var n=void 0;o.ɵɵqueryRefresh(n=o.ɵɵloadQuery())&&(t.attributeEditor=n.first),o.ɵɵqueryRefresh(n=o.ɵɵloadQuery())&&(t.geometryEditor=n.first)}},inputs:{action:"action",readOnly:"readOnly"},decls:22,vars:9,consts:[[1,"crtable-detail-container"],[1,"heading","text-center"],[1,"action-detail-header"],[1,"detail-content"],["key","io.geoObjectType"],[2,"margin","20px 0"],[2,"margin-right","10px"],["key","changeOverTime.forDate"],["type","date","name","dateStr",3,"ngModel","ngModelChange","change"],[3,"readOnly","geoObjectType","geoObjectData","forDate","isGeometryInlined",4,"ngIf"],[1,"detail-label"],["key","change.request.action.detail.contributorNotes"],[1,"detail-value",2,"width","100%","border-radius","8px","height","70px",3,"ngModel","disabled","ngModelChange"],[1,"button-holder","text-right",2,"margin","40px 0 20px 0"],["class","btn btn-primary detail-accept",3,"click",4,"ngIf"],["class","btn btn-default detail-reject",3,"click",4,"ngIf"],[3,"readOnly","geoObjectType","geoObjectData","forDate","isGeometryInlined"],["attributeEditor",""],[1,"btn","btn-primary","detail-accept",3,"click"],["key","modal.button.edit"],[1,"btn","btn-default","detail-reject",3,"click"],["key","modal.button.cancel"],["key","modal.button.submit"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵelementStart(1,"div",1),o.ɵɵelementStart(2,"h1",2),o.ɵɵtext(3),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(4,"div",3),o.ɵɵelementStart(5,"h4"),o.ɵɵelement(6,"localize",4),o.ɵɵtext(7),o.ɵɵelementEnd(),o.ɵɵelementStart(8,"div",5),o.ɵɵelementStart(9,"span",6),o.ɵɵelement(10,"localize",7),o.ɵɵelementEnd(),o.ɵɵelementStart(11,"input",8),o.ɵɵlistener("ngModelChange",(function(e){return t.dateStr=e}))("change",(function(){return t.handleDateChange()})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵtemplate(12,y,2,11,"geoobject-shared-attribute-editor",9),o.ɵɵelementStart(13,"div"),o.ɵɵelementStart(14,"label",10),o.ɵɵelement(15,"localize",11),o.ɵɵtext(16," : "),o.ɵɵelementEnd(),o.ɵɵelementStart(17,"textarea",12),o.ɵɵlistener("ngModelChange",(function(e){return t.action.contributorNotes=e})),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(18,"div",13),o.ɵɵtemplate(19,v,2,0,"button",14),o.ɵɵtemplate(20,b,2,0,"button",15),o.ɵɵtemplate(21,S,2,0,"button",14),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(3),o.ɵɵtextInterpolate(t.action.actionLabel),o.ɵɵadvance(4),o.ɵɵtextInterpolate1(": ",t.action.geoObjectType.code," "),o.ɵɵadvance(4),o.ɵɵproperty("ngModel",t.dateStr),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",t.action),o.ɵɵadvance(5),o.ɵɵproperty("ngModel",t.action.contributorNotes)("disabled",!t.isEditing),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",!t.readOnly&&!t.isEditing),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",!t.readOnly&&t.isEditing),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",!t.readOnly&&t.isEditing))},directives:[c.LocalizeComponent,d.DefaultValueAccessor,d.NgControlStatus,d.NgModel,p.NgIf,m.GeoObjectSharedAttributeEditorComponent],styles:["/* \n WARNING viewencapsulation on the detail.component.tx was set to none to set these css\n values to be globally scoped \n*/\n.crtable-detail-container .modal-form .label-holder {\n display: none;\n}\n\n.crtable-detail-container .modal-form .holder {\n border-left: 0;\n width: 100%;\n padding: 0;\n}\n\n.crtable-detail-container .modal-form .holder .panel .panel-body {\n padding: 0;\n}"],encapsulation:2}),e}();t.CreateUpdateGeoObjectDetailComponent=C,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(C,[{type:r.Component,args:[{selector:"crtable-detail-create-geo-object",templateUrl:"./detail.component.html",styleUrls:["./crtable-detail-create-geo-object.css"],encapsulation:r.ViewEncapsulation.None}]}],(function(){return[{type:a.ChangeRequestService},{type:l.BsModalService},{type:a.RegistryService},{type:s.AuthService}]}),{action:[{type:r.Input}],readOnly:[{type:r.Input}],attributeEditor:[{type:r.ViewChild,args:["attributeEditor"]}],geometryEditor:[{type:r.ViewChild,args:["geometryEditor"]}]})},632:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StabilityPeriodComponent=void 0;var r=n(0),i=n(7),o=(n(16),n(112),n(590)),a=(n(535),n(525),n(0)),l=n(16),s=n(112),c=n(1),d=n(68);function p(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"a",15),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(2).setActiveTimelineEntry(null)})),a.ɵɵtext(1,"("),a.ɵɵelement(2,"localize",16),a.ɵɵtext(3,")"),a.ɵɵelementEnd()}}function m(e,t){1&e&&(a.ɵɵelementStart(0,"div",17),a.ɵɵelement(1,"localize",18),a.ɵɵelementEnd()),2&e&&a.ɵɵproperty("@fadeInOut",void 0)}function u(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"a",15),a.ɵɵlistener("click",(function(){a.ɵɵrestoreView(n);var e=a.ɵɵnextContext(2);return e.setActiveTimelineEntry(e.forDateEntry)})),a.ɵɵtext(1,"("),a.ɵɵelement(2,"localize",19),a.ɵɵtext(3,")"),a.ɵɵelementEnd()}}function g(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"a",15),a.ɵɵlistener("click",(function(){a.ɵɵrestoreView(n);var e=a.ɵɵnextContext(2);return e.setActiveTimelineEntry(e.forDateEntry)})),a.ɵɵtext(1,"("),a.ɵɵelement(2,"localize",20),a.ɵɵtext(3,")"),a.ɵɵelementEnd()}}function h(e,t){1&e&&(a.ɵɵelementStart(0,"span",21),a.ɵɵtext(1," ("),a.ɵɵelement(2,"localize",22),a.ɵɵtext(3,") "),a.ɵɵelementEnd())}function f(e,t){if(1&e&&(a.ɵɵelementContainerStart(0),a.ɵɵtext(1),a.ɵɵelementContainerEnd()),2&e){var n=a.ɵɵnextContext(2);a.ɵɵadvance(1),a.ɵɵtextInterpolate2(" ",n.activeEntry.period.startDate," - ",n.dateService.formatDateForDisplay(n.activeEntry.period.endDate)," ")}}function y(e,t){if(1&e&&(a.ɵɵelementContainerStart(0),a.ɵɵtext(1),a.ɵɵelementContainerEnd()),2&e){var n=a.ɵɵnextContext(2);a.ɵɵadvance(1),a.ɵɵtextInterpolate2(" ",n.dataTimeSpan.displayStartDate," - ",n.dataTimeSpan.displayEndDate," ")}}var v=function(e,t){return{"active-timeline-entry":e,"not-clickable":t}},b=function(e,t){return{width:e,left:t}};function S(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"a",25),a.ɵɵlistener("click",(function(){a.ɵɵrestoreView(n);var e=t.$implicit;return a.ɵɵnextContext(3).setActiveTimelineEntry(e)})),a.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=a.ɵɵnextContext(3);a.ɵɵproperty("ngClass",a.ɵɵpureFunction2(2,v,null==i.activeEntry||null!=i.activeEntry&&r.period.startDate===i.activeEntry.period.startDate,i.periods.length<=1))("ngStyle",a.ɵɵpureFunction2(5,b,r.width+"%",r.x+"%"))}}function C(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",23),a.ɵɵtemplate(1,S,1,8,"a",24),a.ɵɵelementEnd()),2&e){var n=t.$implicit;a.ɵɵadvance(1),a.ɵɵproperty("ngForOf",n)}}function E(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",1),a.ɵɵelementStart(1,"span",2),a.ɵɵelement(2,"localize",3),a.ɵɵelementStart(3,"span"),a.ɵɵtemplate(4,p,4,0,"a",4),a.ɵɵtemplate(5,m,2,1,"div",5),a.ɵɵtemplate(6,u,4,0,"a",4),a.ɵɵtemplate(7,g,4,0,"a",4),a.ɵɵtemplate(8,h,4,0,"span",6),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(9,"span",7),a.ɵɵtemplate(10,f,2,2,"ng-container",8),a.ɵɵtemplate(11,y,2,2,"ng-container",8),a.ɵɵelementEnd(),a.ɵɵelementStart(12,"div",9),a.ɵɵtemplate(13,C,2,1,"div",10),a.ɵɵelementStart(14,"div",11),a.ɵɵelementStart(15,"a",12),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().navigateRelative(-1)})),a.ɵɵelement(16,"i",13),a.ɵɵelementEnd(),a.ɵɵelementStart(17,"a",12),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().navigateRelative(1)})),a.ɵɵelement(18,"i",14),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext();a.ɵɵadvance(4),a.ɵɵproperty("ngIf",r.activeEntry),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",r._showHint),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",!r.activeEntry&&r.forDate&&"LIST"===r.context),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",!r.activeEntry&&r.forDate&&"EXPLORER"===r.context),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",!r.activeEntry&&!r.forDate),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",r.activeEntry),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",!r.activeEntry),a.ɵɵadvance(2),a.ɵɵproperty("ngForOf",r.timelines)}}var x=function(){function e(e,t){this.lService=e,this.dateService=t,this.latestPeriodIsActive=!1,this.periods=[],this.activeEntry=null,this.forDateEntry=null,this.infinityDayPadding=15,this.dataTimeSpan=null,this._showHint=!1}return Object.defineProperty(e.prototype,"showHint",{set:function(e){var t=this;this._showHint=e,setTimeout((function(){t.showHint=!1}),1e4)},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){var e=this;this.generate(),this.changeRequestEditor.onChangeSubject.subscribe((function(){e.generate()}));var t=this.timelines[0];if(t&&t.length>1){if(null!=this.filterDate){var n=t.findIndex((function(t){return e.dateService.between(e.filterDate,t.period.startDate,t.period.endDate)}));-1!==n&&(this.activeEntry=t[n])}else this.latestPeriodIsActive&&this.setActiveTimelineEntry(t[t.length-1]);if(null!=this.forDate){var r=t.findIndex((function(t){return e.dateService.between(e.forDate,t.period.startDate,t.period.endDate)}));-1!==r&&(this.forDateEntry=t[r])}}},e.prototype.navigateRelative=function(e){var t=this,n=this.timelines[0];if(null!=n&&0!==n.length)if(null!=this.activeEntry){var r=n.findIndex((function(e){return e.period.startDate===t.activeEntry.period.startDate}));if(-1!==r){var i=r+e;i<0?i=n.length-1:i>=n.length&&(i=0),this.setActiveTimelineEntry(n[i])}}else this.setActiveTimelineEntry(n[0])},e.prototype.setActiveTimelineEntry=function(e,t){void 0===t&&(t=!0),this.periods.length<=1&&(e=null),this.activeEntry&&e&&e.period.startDate===this.activeEntry.period.startDate&&(e=null),this.activeEntry=e,this.sharedAttributeEditor.setFilterDate(null==e?null:e.period.startDate,t)},e.prototype.generate=function(){this.generatePeriods(),this.generateTimelines()},e.prototype.calculateDataTimeSpan=function(){var e=null,t=null,n=null,r=null;this.periods.length>0&&(e=this.periods[0].startDate,t=this.periods[this.periods.length-1].endDate,r=this.dateService.getDateFromDateString(e).getTime()/864e5,"5000-12-31"===t?this.periods.length>1?(n=this.dateService.getDateFromDateString(this.periods[this.periods.length-1].startDate).getTime()/864e5,this.infinityDayPadding=.05*(n-r),n=this.infinityDayPadding+n):n=r+this.infinityDayPadding:n=this.dateService.getDateFromDateString(t).getTime()/864e5),this.dataTimeSpan={startDay:r,startDate:e,displayStartDate:this.dateService.formatDateForDisplay(e),endDay:n,endDate:t,displayEndDate:this.dateService.formatDateForDisplay(t),span:n-r}},e.prototype.generateTimelines=function(){if(this.timelines=[],0!==this.periods.length){1===this.periods.length&&this.setActiveTimelineEntry(null,!1),this.calculateDataTimeSpan();var e=[];this.timelines.push(e);for(var t=this.dataTimeSpan.span,n=this.periods.length,r=0;rc?null:e[r+1];if(d.isStart&&d.isEnd&&this.periods.push({startDate:d.date,endDate:d.date}),!d.isEnd||null==p||!p.isStart||this.dateService.addDay(1,d.date)!==p.date){var m=d.isEnd?this.dateService.addDay(1,d.date):d.date;if(null!=p&&this.changeRequestEditor.existsAtDate(m)){var u=p.isStart?this.dateService.addDay(-1,p.date):p.date;this.periods.push({startDate:m,endDate:u})}}}this.dateService.sort(this.periods)},e.prototype.formatDate=function(e){return this.dateService.formatDateForDisplay(e)},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(l.LocalizationService),a.ɵɵdirectiveInject(s.DateService))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["stability-period"]],inputs:{changeRequestEditor:"changeRequestEditor",sharedAttributeEditor:"sharedAttributeEditor",filterDate:"filterDate",forDate:"forDate",context:"context",latestPeriodIsActive:"latestPeriodIsActive",showHint:"showHint"},decls:1,vars:1,consts:[["style","margin-bottom:10px;",4,"ngIf"],[2,"margin-bottom","10px"],[2,"margin-left","20px"],["key","manage.versions.historyTitle"],["class","view-all",3,"click",4,"ngIf"],["id","time-hint",4,"ngIf"],["class","view-all",4,"ngIf"],[2,"float","right","color","#6ba542","margin-right","20px"],[4,"ngIf"],[2,"padding","0 20px"],["class","timeline",4,"ngFor","ngForOf"],[1,"timeline-nav-btn-wrapper"],[3,"click"],[1,"fa","fa-chevron-left"],[1,"fa","fa-chevron-right"],[1,"view-all",3,"click"],["key","manage.versions.history.viewAll"],["id","time-hint"],["key","changeovertime.manageVersions.time.hint.message"],["key","manage.versions.history.viewListPeriod"],["key","manage.versions.history.viewExplorerPeriod"],[1,"view-all"],["key","manage.versions.history.viewingAll"],[1,"timeline"],["class","timeline-entry",3,"ngClass","ngStyle","click",4,"ngFor","ngForOf"],[1,"timeline-entry",3,"ngClass","ngStyle","click"]],template:function(e,t){1&e&&a.ɵɵtemplate(0,E,19,8,"div",0),2&e&&a.ɵɵproperty("ngIf",t.dataTimeSpan)},directives:[c.NgIf,d.LocalizeComponent,c.NgForOf,c.NgClass,c.NgStyle],styles:['.timeline[_ngcontent-%COMP%] {\n\t height: 50px;\n\t width: 100%;\n\t position:relative;\n\t display: inline-block;\n\t z-index: 99;\n}\n.timeline[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:first-child {\n border-top-left-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.timeline[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:last-child {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n}\n\n.timeline-entry[_ngcontent-%COMP%] {\n\t height: 50px;\n\t border:1px solid lightgrey;\n\t position: absolute;\n\t display: inline-block;\n}\n\n.timeline-entry.not-clickable[_ngcontent-%COMP%] {\n\t cursor: default;\n}\n\n.active-timeline-entry[_ngcontent-%COMP%] {\n\t background-color:#EDF4E8;\n\t border-color: #6ba542;\n}\n\n.timeline-nav-btn[_ngcontent-%COMP%] {\n\n}\n\n.timeline-nav-btn-wrapper[_ngcontent-%COMP%] {\n top: 36px;\n width: 100%;\n position: absolute;\n height: 20px;\n right: 0;\n left: 0;\n padding: 0 15px;\n z-index:0;\n}\n.timeline-nav-btn-wrapper[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:last-child {\n float: right;\n}\n\n.navigation-controls[_ngcontent-%COMP%] {\n\t width: 100%;\n\t text-align:center;\n}\n\n.navigation-controls[_ngcontent-%COMP%] a[_ngcontent-%COMP%] {\n\n\n\n\t \n\t \n\t -webkit-touch-callout: none; \n -webkit-user-select: none; \n -khtml-user-select: none; \n -moz-user-select: none; \n -ms-user-select: none; \n user-select: none; \n}\n\n.view-all[_ngcontent-%COMP%] {\n\t margin-left: 5px;\n}\n\n#time-hint[_ngcontent-%COMP%] {\n width: fit-content;\n background: lightgrey;\n padding: 5px;\n margin-left: 70px;\n position: absolute;\n margin-top: 9px;\n z-index: 999;\n border-radius: 3px;\n}\n#time-hint[_ngcontent-%COMP%]:before {\n content: "";\n display: block;\n position: absolute;\n left: 15px;\n top: -10px;\n border-bottom: 10px solid lightgrey;\n border-left: 10px solid transparent;\n border-right: 10px solid transparent;\n}'],data:{animation:[[i.trigger("fadeInOut",[i.transition(":enter",[i.style({opacity:0}),i.animate("1000ms")]),i.transition(":leave",i.animate("1000ms",i.style({opacity:0})))])]]}}),e}();t.StabilityPeriodComponent=x,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(x,[{type:r.Component,args:[{selector:"stability-period",templateUrl:"./stability-period.component.html",styleUrls:["./stability-period.component.css"],animations:[[i.trigger("fadeInOut",[i.transition(":enter",[i.style({opacity:0}),i.animate("1000ms")]),i.transition(":leave",i.animate("1000ms",i.style({opacity:0})))])]]}]}],(function(){return[{type:l.LocalizationService},{type:s.DateService}]}),{changeRequestEditor:[{type:r.Input}],sharedAttributeEditor:[{type:r.Input}],filterDate:[{type:r.Input}],forDate:[{type:r.Input}],context:[{type:r.Input}],latestPeriodIsActive:[{type:r.Input}],showHint:[{type:r.Input}]})},633:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StandardAttributeEditorComponent=void 0;var r=n(0),i=n(7),o=(n(203),n(521)),a=n(258),l=(n(87),n(111)),s=(n(30),n(519),n(522),n(112),n(16),n(22)),c=(n(535),n(0)),d=n(519),p=n(16),m=n(112),u=n(87),g=n(522),h=n(30),f=n(1),y=n(22),v=n(68),b=n(113);function S(e,t){if(1&e&&(c.ɵɵelementStart(0,"div",7),c.ɵɵtext(1),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext(2);c.ɵɵadvance(1),c.ɵɵtextInterpolate1(" ",n.view.summaryKeyLocalized," ")}}var C=function(e){return{"has-changed":e}};function E(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"div"),c.ɵɵelementStart(1,"div"),c.ɵɵelementStart(2,"label",8),c.ɵɵelementStart(3,"input",9),c.ɵɵlistener("change",(function(){return c.ɵɵrestoreView(n),c.ɵɵnextContext(2).onValueChange()}))("ngModelChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext(2).changeRequestAttributeEditor.value=e})),c.ɵɵelementEnd(),c.ɵɵelementStart(4,"span",10),c.ɵɵelement(5,"localize",11),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementStart(6,"label",12),c.ɵɵelementStart(7,"input",9),c.ɵɵlistener("change",(function(){return c.ɵɵrestoreView(n),c.ɵɵnextContext(2).onValueChange()}))("ngModelChange",(function(e){return c.ɵɵrestoreView(n),c.ɵɵnextContext(2).changeRequestAttributeEditor.value=e})),c.ɵɵelementEnd(),c.ɵɵelementStart(8,"span",10),c.ɵɵelement(9,"localize",13),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵelementEnd()}if(2&e){var r=c.ɵɵnextContext(2);c.ɵɵadvance(3),c.ɵɵpropertyInterpolate1("id","mod-",r.geoObjectType.code,"-true"),c.ɵɵpropertyInterpolate1("name","mod-",r.geoObjectType.code,"-true"),c.ɵɵproperty("checked","invalid"===r.view.attributeCode?!1===r.view.value:!0===r.view.value)("value","invalid"!==r.view.attributeCode)("ngModel",r.changeRequestAttributeEditor.value)("disabled",r.readonly),c.ɵɵadvance(1),c.ɵɵproperty("ngClass",c.ɵɵpureFunction1(14,C,r.view.oldValue&&!r.isNew)),c.ɵɵadvance(3),c.ɵɵpropertyInterpolate1("id","mod-",r.geoObjectType.code,"-false"),c.ɵɵpropertyInterpolate1("name","mod-",r.geoObjectType.code,"-false"),c.ɵɵproperty("checked","invalid"===r.view.attributeCode?!0===r.changeRequestAttributeEditor.value:!1===r.changeRequestAttributeEditor.value)("value","invalid"===r.view.attributeCode)("ngModel",r.changeRequestAttributeEditor.value)("disabled",r.readonly),c.ɵɵadvance(1),c.ɵɵproperty("ngClass",c.ɵɵpureFunction1(16,C,r.view.oldValue&&!r.isNew))}}function x(e,t){1&e&&(c.ɵɵelementStart(0,"span"),c.ɵɵelement(1,"localize",11),c.ɵɵelementEnd())}function O(e,t){1&e&&(c.ɵɵelementStart(0,"span"),c.ɵɵelement(1,"localize",13),c.ɵɵelementEnd())}function I(e,t){if(1&e&&(c.ɵɵelementStart(0,"span"),c.ɵɵtemplate(1,x,2,0,"span",6),c.ɵɵtemplate(2,O,2,0,"span",6),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext(3);c.ɵɵadvance(1),c.ɵɵproperty("ngIf","invalid"===n.view.attributeCode?!1===n.view.oldValue:!0===n.view.oldValue),c.ɵɵadvance(1),c.ɵɵproperty("ngIf","invalid"===n.view.attributeCode?!0===n.view.oldValue:!1===n.view.oldValue)}}function w(e,t){if(1&e&&(c.ɵɵelementStart(0,"span"),c.ɵɵtext(1),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext(3);c.ɵɵadvance(1),c.ɵɵtextInterpolate1(" ",n.view.oldValue," ")}}function M(e,t){if(1&e&&(c.ɵɵelementStart(0,"div"),c.ɵɵelementStart(1,"p",14),c.ɵɵelement(2,"localize",15),c.ɵɵtext(3,"  "),c.ɵɵtemplate(4,I,3,2,"span",6),c.ɵɵtemplate(5,w,2,1,"span",6),c.ɵɵelementEnd(),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext(2);c.ɵɵadvance(4),c.ɵɵproperty("ngIf","boolean"===n.attributeType.type),c.ɵɵadvance(1),c.ɵɵproperty("ngIf","boolean"!==n.attributeType.type)}}var T=function(e){return{warning:e}};function j(e,t){if(1&e&&(c.ɵɵelementStart(0,"div",3),c.ɵɵtemplate(1,S,2,1,"div",4),c.ɵɵelementStart(2,"div",5),c.ɵɵtemplate(3,E,10,18,"div",6),c.ɵɵtemplate(4,M,6,2,"div",6),c.ɵɵelementEnd(),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext();c.ɵɵproperty("ngClass",c.ɵɵpureFunction1(4,T,n.view.summaryKey&&"UNMODIFIED"!==n.view.summaryKey)),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",n.view.summaryKey&&"UNMODIFIED"!==n.view.summaryKey),c.ɵɵadvance(2),c.ɵɵproperty("ngIf","boolean"===n.attributeType.type),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",null!==n.view.oldValue&&void 0!==n.view.oldValue&&!n.isNew)}}function k(e,t){if(1&e){var n=c.ɵɵgetCurrentView();c.ɵɵelementStart(0,"div"),c.ɵɵelementStart(1,"button",17),c.ɵɵlistener("click",(function(){return c.ɵɵrestoreView(n),c.ɵɵnextContext(2).onApprove()})),c.ɵɵpipe(2,"localize"),c.ɵɵelement(3,"localize",18),c.ɵɵelementEnd(),c.ɵɵelementStart(4,"button",19),c.ɵɵlistener("click",(function(){return c.ɵɵrestoreView(n),c.ɵɵnextContext(2).onReject()})),c.ɵɵpipe(5,"localize"),c.ɵɵelement(6,"localize",20),c.ɵɵelementEnd(),c.ɵɵelementStart(7,"button",21),c.ɵɵlistener("click",(function(){return c.ɵɵrestoreView(n),c.ɵɵnextContext(2).onPending()})),c.ɵɵpipe(8,"localize"),c.ɵɵelement(9,"localize",22),c.ɵɵelementEnd(),c.ɵɵelementEnd()}if(2&e){var r=c.ɵɵnextContext(2);c.ɵɵadvance(1),c.ɵɵproperty("disabled","ACCEPTED"===r.changeRequestAttributeEditor.editAction.approvalStatus)("title",c.ɵɵpipeBind1(2,6,"change.request.action.accept.btn.hover")),c.ɵɵadvance(3),c.ɵɵproperty("disabled","REJECTED"===r.changeRequestAttributeEditor.editAction.approvalStatus)("title",c.ɵɵpipeBind1(5,8,"change.request.action.reject.btn.hover")),c.ɵɵadvance(3),c.ɵɵproperty("disabled","PENDING"===r.changeRequestAttributeEditor.editAction.approvalStatus)("title",c.ɵɵpipeBind1(8,10,"change.request.action.pending.btn.hover"))}}function z(e,t){1&e&&(c.ɵɵelementStart(0,"strong",25),c.ɵɵelement(1,"localize",26),c.ɵɵelementEnd())}function D(e,t){1&e&&(c.ɵɵelementStart(0,"strong",27),c.ɵɵelement(1,"localize",28),c.ɵɵelementEnd())}function R(e,t){if(1&e&&(c.ɵɵelementStart(0,"div"),c.ɵɵtemplate(1,z,2,0,"strong",23),c.ɵɵtemplate(2,D,2,0,"strong",24),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext(2);c.ɵɵadvance(1),c.ɵɵproperty("ngIf","ACCEPTED"===n.changeRequestAttributeEditor.editAction.approvalStatus),c.ɵɵadvance(1),c.ɵɵproperty("ngIf","REJECTED"===n.changeRequestAttributeEditor.editAction.approvalStatus)}}function P(e,t){if(1&e&&(c.ɵɵelementStart(0,"div",16),c.ɵɵtemplate(1,k,10,12,"div",6),c.ɵɵtemplate(2,R,3,2,"div",6),c.ɵɵelementEnd()),2&e){var n=c.ɵɵnextContext();c.ɵɵadvance(1),c.ɵɵproperty("ngIf","PENDING"===n.changeRequest.approvalStatus&&n.changeRequest.permissions.includes("WRITE_APPROVAL_STATUS")&&n.changeRequestAttributeEditor.editAction&&n.changeRequestAttributeEditor.diff),c.ɵɵadvance(1),c.ɵɵproperty("ngIf","PENDING"!==n.changeRequest.approvalStatus)}}var A=function(){function e(e,t,n,i,o,a,l,s,c){this.cdr=e,this.service=t,this.lService=n,this.changeDetectorRef=i,this.dateService=o,this.authService=a,this.requestService=l,this.modalService=s,this.elementRef=c,this.isNew=!1,this.message=null,this.isValid=!0,this.isValidChange=new r.EventEmitter,this.readonly=!1,this.isNewGeoObject=!1}return e.prototype.ngOnInit=function(){this.changeRequestAttributeEditor=this.changeRequestEditor.getEditorForAttribute(this.attributeType,null),this.calculateView()},e.prototype.ngAfterViewInit=function(){},e.prototype.calculateView=function(){var e=this.changeRequestAttributeEditor.diff;if(null!=e){var t=null==e.newValue?null:JSON.parse(JSON.stringify(e.newValue));this.view={value:t,summaryKey:o.SummaryKey.VALUE_CHANGE,summaryKeyLocalized:this.lService.decode("changeovertime.manageVersions.summaryKey."+o.SummaryKey.VALUE_CHANGE),attributeCode:this.changeRequestAttributeEditor.attribute.code},null!==e.oldValue&&void 0!==e.oldValue&&(this.view.oldValue=JSON.parse(JSON.stringify(e.oldValue)))}else this.view={value:this.changeRequestAttributeEditor.value,summaryKey:o.SummaryKey.UNMODIFIED,summaryKeyLocalized:this.lService.decode("changeovertime.manageVersions.summaryKey."+o.SummaryKey.UNMODIFIED),attributeCode:this.changeRequestAttributeEditor.attribute.code}},e.prototype.onValueChange=function(){this.calculateView()},e.prototype.onApprove=function(){var e=this,t=this.changeRequestAttributeEditor.editAction;this.requestService.setActionStatus(t.oid,a.GovernanceStatus.ACCEPTED).then((function(e){t.approvalStatus=a.GovernanceStatus.ACCEPTED})).catch((function(t){e.error(t)}))},e.prototype.onReject=function(){var e=this,t=this.changeRequestAttributeEditor.editAction;this.requestService.setActionStatus(t.oid,a.GovernanceStatus.REJECTED).then((function(e){t.approvalStatus=a.GovernanceStatus.REJECTED})).catch((function(t){e.error(t)}))},e.prototype.onPending=function(){var e=this,t=this.changeRequestAttributeEditor.editAction;this.requestService.setActionStatus(t.oid,a.GovernanceStatus.PENDING).then((function(e){t.approvalStatus=a.GovernanceStatus.PENDING})).catch((function(t){e.error(t)}))},e.prototype.error=function(e){this.bsModalRef=l.ErrorHandler.showErrorAsDialog(e,this.modalService)},e.ɵfac=function(t){return new(t||e)(c.ɵɵdirectiveInject(c.ChangeDetectorRef),c.ɵɵdirectiveInject(d.RegistryService),c.ɵɵdirectiveInject(p.LocalizationService),c.ɵɵdirectiveInject(c.ChangeDetectorRef),c.ɵɵdirectiveInject(m.DateService),c.ɵɵdirectiveInject(u.AuthService),c.ɵɵdirectiveInject(g.ChangeRequestService),c.ɵɵdirectiveInject(h.BsModalService),c.ɵɵdirectiveInject(c.ElementRef))},e.ɵcmp=c.ɵɵdefineComponent({type:e,selectors:[["standard-attribute-editor"]],hostVars:1,hostBindings:function(e,t){2&e&&c.ɵɵsyntheticHostProperty("@fadeInOut",!0)},inputs:{isNew:"isNew",readonly:"readonly",attributeType:"attributeType",changeRequest:"changeRequest",geoObjectType:"geoObjectType",geoObject:"geoObject",isNewGeoObject:"isNewGeoObject",changeRequestEditor:"changeRequestEditor"},outputs:{isValidChange:"isValidChange"},features:[c.ɵɵProvidersFeature([],[{provide:s.ControlContainer,useExisting:s.NgForm}])],decls:4,vars:3,consts:[[1,"value-box"],["class","value-box-wrapper",3,"ngClass",4,"ngIf"],["class","cr-maintainer-options",4,"ngIf"],[1,"value-box-wrapper",3,"ngClass"],["class","value-box-indicator",4,"ngIf"],[1,"inner-value"],[4,"ngIf"],[1,"value-box-indicator"],[1,"radio","radio-inline",2,"padding-left","0"],["type","radio",1,"inline-radio-input",3,"checked","value","ngModel","id","name","disabled","change","ngModelChange"],[3,"ngClass"],["key","change.request.boolean.option.true"],[1,"radio","radio-inline"],["key","change.request.boolean.option.false"],[1,"warning-text","display-current-value",2,"color","var(--theme-text-dark)"],["key","change.request.changed.value.prefix"],[1,"cr-maintainer-options"],["type","submit","role","button",1,"btn","btn-primary",3,"disabled","title","click"],["key","change.request.accept.btn"],["type","submit","role","button",1,"btn","btn-danger",3,"disabled","title","click"],["key","change.request.reject.btn"],["type","submit","role","button",1,"btn","btn-warning",3,"disabled","title","click"],["key","change.request.pending.btn"],["style","color:#6BA542;",4,"ngIf"],["style","color:#6d0400;",4,"ngIf"],[2,"color","#6BA542"],["key","change.request.status.accepted"],[2,"color","#6d0400"],["key","change.request.status.rejected"]],template:function(e,t){1&e&&(c.ɵɵelementStart(0,"div"),c.ɵɵelementStart(1,"div",0),c.ɵɵtemplate(2,j,5,6,"div",1),c.ɵɵelementEnd(),c.ɵɵtemplate(3,P,3,2,"div",2),c.ɵɵelementEnd()),2&e&&(c.ɵɵadvance(1),c.ɵɵproperty("@fadeInOut",void 0),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",t.view),c.ɵɵadvance(1),c.ɵɵproperty("ngIf",t.changeRequest&&!t.changeRequest.isNew))},directives:[f.NgIf,f.NgClass,y.RadioControlValueAccessor,y.DefaultValueAccessor,y.NgControlStatus,y.NgModel,v.LocalizeComponent],pipes:[b.LocalizePipe],styles:[".cr-maintainer-options[_ngcontent-%COMP%] {\n\tpadding-top:15px;\n}\n\np.warning-text.display-current-value[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: bold;\n}\n\n.value-box-wrapper[_ngcontent-%COMP%] {\n\tpadding-top: 0px;\n\tpadding-left: 0px;\n\tborder: solid 1px lightgrey;\n}\n.value-box-wrapper.warning[_ngcontent-%COMP%] {\n background-color: inherit;\n border-color: orange;\n border-left: solid 5px orange;\n}\n\n.value-box[_ngcontent-%COMP%] {\n background-color: #f9f9f9;\n margin-top: 10px;\n}\n\n.value-box[_ngcontent-%COMP%] .inner-value[_ngcontent-%COMP%] {\n\tpadding-left: 10px;\n}\n\n.value-box-wrapper[_ngcontent-%COMP%] .value-box-indicator[_ngcontent-%COMP%] {\n\tposition: relative;\n\tbackground: grey;\n color: white;\n left: -1px;\n font-size: 14px;\n font-weight: bold;\n padding: 0 6px;\n width: fit-content;\n top: -1px;\n}\n.value-box-wrapper.warning[_ngcontent-%COMP%] .value-box-indicator[_ngcontent-%COMP%] {\n background-color: orange;\n}\n\n.value-box-wrapper[_ngcontent-%COMP%] .manage-version-button[_ngcontent-%COMP%] {\n border: solid 1px lightgrey;\n}\n.value-box-wrapper.warning[_ngcontent-%COMP%] .manage-version-button[_ngcontent-%COMP%] {\n border-color: orange;\n}\n\n.has-changed[_ngcontent-%COMP%] {\n\tcolor: orange;\n}"],data:{animation:[[i.trigger("fadeInOut",[i.transition("void => *",[i.style({opacity:0}),i.animate("500ms")]),i.transition(":leave",i.animate("500ms",i.style({opacity:0})))])]]}}),e}();t.StandardAttributeEditorComponent=A,("undefined"==typeof ngDevMode||ngDevMode)&&c.ɵsetClassMetadata(A,[{type:r.Component,args:[{selector:"standard-attribute-editor",templateUrl:"./standard-attribute-editor.component.html",styleUrls:["./standard-attribute-editor.component.css"],host:{"[@fadeInOut]":"true"},animations:[[i.trigger("fadeInOut",[i.transition("void => *",[i.style({opacity:0}),i.animate("500ms")]),i.transition(":leave",i.animate("500ms",i.style({opacity:0})))])]],viewProviders:[{provide:s.ControlContainer,useExisting:s.NgForm}]}]}],(function(){return[{type:c.ChangeDetectorRef},{type:d.RegistryService},{type:p.LocalizationService},{type:c.ChangeDetectorRef},{type:m.DateService},{type:u.AuthService},{type:g.ChangeRequestService},{type:h.BsModalService},{type:c.ElementRef}]}),{isNew:[{type:r.Input}],isValidChange:[{type:r.Output}],readonly:[{type:r.Input}],attributeType:[{type:r.Input}],changeRequest:[{type:r.Input}],geoObjectType:[{type:r.Input}],geoObject:[{type:r.Input}],isNewGeoObject:[{type:r.Input}],changeRequestEditor:[{type:r.Input}]})},634:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GeoObjectEditorMapComponent=void 0;var r=n(0),i=(n(519),n(263)),o=n(0),a=n(519),l=["mapDiv"],s=["geometryType",""],c=function(){function e(e,t,n){this.geomService=e,this.registryService=t,this.mapService=n,this._mapHeight=400,this.readOnly=!1}return Object.defineProperty(e.prototype,"mapHeight",{set:function(e){e>400&&(this._mapHeight=e)},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){},e.prototype.ngAfterViewInit=function(){var e=this;setTimeout((function(){e.mapDiv.nativeElement.id=Math.floor(899999*Math.random())+1e5,e.map=new i.Map({container:e.mapDiv.nativeElement.id,style:"mapbox://styles/mapbox/satellite-v9",zoom:2,center:[110.880453,10.897852]}),e.map.on("load",(function(){e.initMap()}))}),0)},e.prototype.ngOnDestroy=function(){this.geomService.destroy()},e.prototype.getIsValid=function(){return this.geomService.isValid()},e.prototype.initMap=function(){this.map.on("style.load",(function(){})),this.geomService.initialize(this.map,this.geometryType,this.readOnly),this.map.addControl(new i.NavigationControl),this.zoomToBbox()},e.prototype.zoomToBbox=function(){this.geomService.zoomToLayersExtent()},e.prototype.error=function(e){console.log("ERROR",e)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.GeometryService),o.ɵɵdirectiveInject(a.RegistryService),o.ɵɵdirectiveInject(a.MapService))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["geoobject-editor-map","geometryType",""]],viewQuery:function(e,t){if(1&e&&o.ɵɵviewQuery(l,1),2&e){var n;o.ɵɵqueryRefresh(n=o.ɵɵloadQuery())&&(t.mapDiv=n.first)}},inputs:{mapHeight:"mapHeight",geometryType:"geometryType",bboxCode:"bboxCode",bboxType:"bboxType",bboxDate:"bboxDate",readOnly:"readOnly"},attrs:s,decls:3,vars:2,consts:[[1,"geoobject-editor-map-wrapper"],[1,"map-view-port-inline","text-left",2,"width","calc(100% - 15px)"],["mapDiv",""]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵelement(1,"div",1,2),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(1),o.ɵɵstyleProp("height",t._mapHeight,"px"))},styles:[""]}),e}();t.GeoObjectEditorMapComponent=c,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(c,[{type:r.Component,args:[{selector:"geoobject-editor-map[geometryType]",templateUrl:"./geoobject-editor-map.component.html",styleUrls:["./geoobject-editor-map.component.css"]}]}],(function(){return[{type:a.GeometryService},{type:a.RegistryService},{type:a.MapService}]}),{mapHeight:[{type:r.Input}],geometryType:[{type:r.Input}],bboxCode:[{type:r.Input}],bboxType:[{type:r.Input}],bboxDate:[{type:r.Input}],readOnly:[{type:r.Input}],mapDiv:[{type:r.ViewChild,args:["mapDiv"]}]})},635:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SimpleEditControl=void 0;var r=n(0),i=n(0),o=n(1),a=n(68),l=n(113),s=function(e,t){return{"fa-pencil-square-o":e,"fa-save":t}};function c(e,t){if(1&e&&(i.ɵɵelement(0,"button",3),i.ɵɵpipe(1,"localize")),2&e){var n=i.ɵɵnextContext();i.ɵɵproperty("ngClass",i.ɵɵpureFunction2(4,s,!n.save,n.save))("title",i.ɵɵpipeBind1(1,2,"changeovertime.manageVersions.button.label"))}}function d(e,t){1&e&&(i.ɵɵelementStart(0,"div",4),i.ɵɵelementStart(1,"div",5),i.ɵɵelement(2,"localize",6),i.ɵɵelementEnd(),i.ɵɵelement(3,"div",7),i.ɵɵelementEnd())}var p=function(){function e(e){this.editEmitter=new r.EventEmitter,this.visible=!0,this.editSessionEnabled=!1,this.save=!1,this.elRef=e}return e.prototype.onAdd=function(e){return this.elRef.nativeElement},e.prototype.onRemove=function(e){this.elRef.nativeElement.remove()},e.prototype.onClick=function(){this.editEmitter.emit()},e.ɵfac=function(t){return new(t||e)(i.ɵɵdirectiveInject(i.ElementRef))},e.ɵcmp=i.ɵɵdefineComponent({type:e,selectors:[["simple-edit-control"]],inputs:{visible:"visible",editSessionEnabled:"editSessionEnabled",save:"save"},outputs:{editEmitter:"editEmitter"},decls:3,vars:2,consts:[[1,"mapboxgl-ctrl-group","mapboxgl-ctrl",3,"click"],["class","fa","style","color: black; font-size: 18px;",3,"ngClass","title",4,"ngIf"],["class","map-button-info-hint-wrapper",4,"ngIf"],[1,"fa",2,"color","black","font-size","18px",3,"ngClass","title"],[1,"map-button-info-hint-wrapper"],[1,"map-button-info-hint"],["key","map.button.info.hint"],[1,"map-button-pointer"]],template:function(e,t){1&e&&(i.ɵɵelementStart(0,"div",0),i.ɵɵlistener("click",(function(){return t.onClick()})),i.ɵɵtemplate(1,c,2,7,"button",1),i.ɵɵtemplate(2,d,4,0,"div",2),i.ɵɵelementEnd()),2&e&&(i.ɵɵadvance(1),i.ɵɵproperty("ngIf",t.editSessionEnabled),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",t.editSessionEnabled))},directives:[o.NgIf,o.NgClass,a.LocalizeComponent],pipes:[l.LocalizePipe],styles:[".mapboxgl-ctrl-group.mapboxgl-ctrl[_ngcontent-%COMP%] > button[_ngcontent-%COMP%]:hover, .mapboxgl-ctrl-group.mapboxgl-ctrl[_ngcontent-%COMP%]:hover {\n\tcursor: pointer;\n}\n\n.map-button-info-hint-wrapper[_ngcontent-%COMP%] {\n\tanimation: fadeIn ease 2s;\n\t-webkit-animation: fadeIn ease 2s;\n\t-moz-animation: fadeIn ease 2s;\n\t-o-animation: fadeIn ease 2s;\n\t-ms-animation: fadeIn ease 2s;\n}\n\n@keyframes fadeIn {\n0% {opacity:0;}\n100% {opacity:1;}\n}\n\n@-moz-keyframes fadeIn {\n0% {opacity:0;}\n100% {opacity:1;}\n}\n\n@-webkit-keyframes fadeIn {\n0% {opacity:0;}\n100% {opacity:1;}\n}\n\n@-o-keyframes fadeIn {\n0% {opacity:0;}\n100% {opacity:1;}\n}\n\n@-ms-keyframes fadeIn {\n0% {opacity:0;}\n100% {opacity:1;}\n}\n\n\n.map-button-info-hint[_ngcontent-%COMP%] {\n\tposition: absolute;\n\ttop: 0;\n\tright: 45px;\n\tbackground: rgba(255,255,255,.9);\n\tpadding: 5px;\n\twhite-space: nowrap;\n}\n\n.map-button-pointer[_ngcontent-%COMP%] {\n\tborder: solid 15px transparent;\n border-left-color: rgba(255,255,255,.9);\n position: absolute;\n margin: -29px 0 0 -16px;\n}"]}),e}();t.SimpleEditControl=p,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(p,[{type:r.Component,args:[{selector:"simple-edit-control",templateUrl:"./simple-edit-control.component.html",styleUrls:["./simple-edit-control.css"]}]}],(function(){return[{type:i.ElementRef}]}),{editEmitter:[{type:r.Output}],visible:[{type:r.Input}],editSessionEnabled:[{type:r.Input}],save:[{type:r.Input}]})},636:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TreeGeoSelector=void 0;var r=n(0),i=(n(203),n(0)),o=n(1),a=n(208),l=n(68);function s(e,t){if(1&e&&(i.ɵɵelementStart(0,"div",6),i.ɵɵelement(1,"tree-root",7),i.ɵɵelementEnd()),2&e){var n=i.ɵɵnextContext();i.ɵɵadvance(1),i.ɵɵproperty("nodes",n.nodes)("options",n.options)}}function c(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"button",8),i.ɵɵlistener("click",(function(){return i.ɵɵrestoreView(n),i.ɵɵnextContext().onEdit()})),i.ɵɵelement(1,"localize",9),i.ɵɵelementEnd()}}var d=function(){function e(){this.readOnly=!1,this.forDate=null,this.onManageVersion=new r.EventEmitter,this.nodes=[],this.actionMapping={mouse:{click:null}},this.options={displayField:"name",isExpandedField:"expanded",idField:"code",actionMapping:this.actionMapping}}return e.prototype.ngOnInit=function(){this.calculate()},e.prototype.ngOnChanges=function(e){e.forDate&&this.calculate()},e.prototype.calculate=function(){var e=this,t=null;null!=this.forDate&&(t=this.forDate.getTime());var n=[],r=null;this.hierarchy.entries.forEach((function(i){var o=Date.parse(i.startDate),a=Date.parse(i.endDate);(null==t||t>=o&&t<=a)&&e.hierarchy.types.forEach((function(e){var o={code:e.code,label:e.label,children:[],expanded:!1};null!=i.parents[e.code]&&(o.name=i.parents[e.code].text,null==t&&(o.name=o.name+" ("+i.startDate+" -> "+i.endDate+")"),o.geoObject=i.parents[e.code].geoObject),null==r?n.push(o):(r.children.push(o),r.expanded=!0),r=o})),r=null})),this.nodes=n},e.prototype.onEdit=function(){this.onManageVersion.emit(this.hierarchy)},e.ɵfac=function(t){return new(t||e)},e.ɵcmp=i.ɵɵdefineComponent({type:e,selectors:[["tree-geo-selector"]],inputs:{hierarchy:"hierarchy",readOnly:"readOnly",forDate:"forDate"},outputs:{onManageVersion:"onManageVersion"},features:[i.ɵɵNgOnChangesFeature],decls:8,vars:3,consts:[[1,"panel","panel-default"],[1,"panel-heading"],[2,"margin","0"],[1,"panel-body"],["class","tree",4,"ngIf"],["class","btn btn-primary","style","width:100%;margin-top:10px;",3,"click",4,"ngIf"],[1,"tree"],[3,"nodes","options"],[1,"btn","btn-primary",2,"width","100%","margin-top","10px",3,"click"],["key","modal.button.edit"]],template:function(e,t){1&e&&(i.ɵɵelementStart(0,"div"),i.ɵɵelementStart(1,"div",0),i.ɵɵelementStart(2,"div",1),i.ɵɵelementStart(3,"h4",2),i.ɵɵtext(4),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(5,"div",3),i.ɵɵtemplate(6,s,2,2,"div",4),i.ɵɵtemplate(7,c,2,0,"button",5),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd()),2&e&&(i.ɵɵadvance(4),i.ɵɵtextInterpolate(t.hierarchy.label),i.ɵɵadvance(2),i.ɵɵproperty("ngIf",t.nodes.length>0),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",!t.readOnly))},directives:[o.NgIf,a.TreeComponent,l.LocalizeComponent],styles:[""]}),e}();t.TreeGeoSelector=d,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(d,[{type:r.Component,args:[{selector:"tree-geo-selector",templateUrl:"./tree-geo-selector.html",styleUrls:["./tree-geo-selector.css"]}]}],(function(){return[]}),{hierarchy:[{type:r.Input}],readOnly:[{type:r.Input}],forDate:[{type:r.Input}],onManageVersion:[{type:r.Output}]})},637:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActionDetailModalComponent=void 0;var r=n(0),i=(n(30),n(0)),o=n(30),a=["cuDetail"],l=["arDetail"],s=["spDetail"];function c(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"crtable-detail-create-geo-object",7,8),i.ɵɵlistener("actionChange",(function(e){return i.ɵɵrestoreView(n),i.ɵɵnextContext().action=e})),i.ɵɵelementEnd()}if(2&e){var r=i.ɵɵnextContext();i.ɵɵproperty("action",r.action)("readOnly",r.readonly)}}function d(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"crtable-detail-add-remove-child",7,9),i.ɵɵlistener("actionChange",(function(e){return i.ɵɵrestoreView(n),i.ɵɵnextContext().action=e})),i.ɵɵelementEnd()}if(2&e){var r=i.ɵɵnextContext();i.ɵɵproperty("action",r.action)("readOnly",r.readonly)}}function p(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"set-parent-detail",7,10),i.ɵɵlistener("actionChange",(function(e){return i.ɵɵrestoreView(n),i.ɵɵnextContext().action=e})),i.ɵɵelementEnd()}if(2&e){var r=i.ɵɵnextContext();i.ɵɵproperty("action",r.action)("readOnly",r.readonly)}}var m=function(){function e(e){this.bsModalRef=e}return e.prototype.curAction=function(e,t){this.action=e,this.readonly=t},e.prototype.ngOnInit=function(){},e.prototype.cancel=function(){null!=this.cuDetail&&this.cuDetail.endEdit(),null!=this.arDetail&&this.arDetail.endEdit(),null!=this.spDetail&&this.spDetail.endEdit(),this.bsModalRef.hide()},e.prototype.confirm=function(){this.bsModalRef.hide()},e.ɵfac=function(t){return new(t||e)(i.ɵɵdirectiveInject(o.BsModalRef))},e.ɵcmp=i.ɵɵdefineComponent({type:e,selectors:[["action-detail-modal"]],viewQuery:function(e,t){if(1&e&&(i.ɵɵviewQuery(a,1),i.ɵɵviewQuery(l,1),i.ɵɵviewQuery(s,1)),2&e){var n=void 0;i.ɵɵqueryRefresh(n=i.ɵɵloadQuery())&&(t.cuDetail=n.first),i.ɵɵqueryRefresh(n=i.ɵɵloadQuery())&&(t.arDetail=n.first),i.ɵɵqueryRefresh(n=i.ɵɵloadQuery())&&(t.spDetail=n.first)}},inputs:{curAction:"curAction"},decls:13,vars:3,consts:[["tabindex","-1","role","dialog",1,"modal-body"],[1,"row"],[1,"col-md-12"],[3,"action","readOnly","actionChange",4,"ngIf"],[1,"button-holder","text-right"],["type","button","role","button","aria-disabled","false",1,"btn","btn-default",3,"click"],["key","modal.button.close"],[3,"action","readOnly","actionChange"],["cuDetail",""],["arDetail",""],["spDetail",""]],template:function(e,t){1&e&&(i.ɵɵelementStart(0,"div",0),i.ɵɵelementStart(1,"div",1),i.ɵɵelementStart(2,"div",2),i.ɵɵtemplate(3,c,2,2,"crtable-detail-create-geo-object",3),i.ɵɵtemplate(4,d,2,2,"crtable-detail-add-remove-child",3),i.ɵɵtemplate(5,p,2,2,"set-parent-detail",3),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelement(6,"hr"),i.ɵɵelementStart(7,"div",1),i.ɵɵelementStart(8,"div",2),i.ɵɵelementStart(9,"div",4),i.ɵɵelementStart(10,"button",5),i.ɵɵlistener("click",(function(){return t.cancel()})),i.ɵɵelementStart(11,"span"),i.ɵɵelement(12,"localize",6),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd()),2&e&&(i.ɵɵadvance(3),i.ɵɵproperty("ngIf",t.action&&(t.action.actionType.endsWith("CreateGeoObjectAction")||t.action.actionType.endsWith("UpdateGeoObjectAction"))),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",t.action&&(t.action.actionType.endsWith("AddChildAction")||t.action.actionType.endsWith("RemoveChildAction"))),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",t.action&&t.action.actionType.endsWith("SetParentAction")))},encapsulation:2}),e}();t.ActionDetailModalComponent=m,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(m,[{type:r.Component,args:[{selector:"action-detail-modal",templateUrl:"./action-detail-modal.component.html",styleUrls:[]}]}],(function(){return[{type:o.BsModalRef}]}),{cuDetail:[{type:r.ViewChild,args:["cuDetail"]}],arDetail:[{type:r.ViewChild,args:["arDetail"]}],spDetail:[{type:r.ViewChild,args:["spDetail"]}],curAction:[{type:r.Input}]})},638:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DataExportComponent=void 0;var r=n(0),i=(n(30),n(111)),o=(n(519),n(16),n(0)),a=n(519),l=n(30),s=n(16),c=n(86),d=n(1),p=n(22),m=n(68);function u(e,t){if(1&e&&(o.ɵɵelementStart(0,"option",19),o.ɵɵtext(1),o.ɵɵelementEnd()),2&e){var n=t.$implicit;o.ɵɵproperty("value",n.code),o.ɵɵadvance(1),o.ɵɵtextInterpolate(n.label)}}function g(e,t){if(1&e&&(o.ɵɵelementStart(0,"option",19),o.ɵɵtext(1),o.ɵɵelementEnd()),2&e){var n=t.$implicit;o.ɵɵproperty("value",n.code),o.ɵɵadvance(1),o.ɵɵtextInterpolate(n.label)}}function h(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",2),o.ɵɵelementStart(1,"label",20),o.ɵɵelement(2,"localize",21),o.ɵɵelementEnd(),o.ɵɵelementStart(3,"div",5),o.ɵɵelementStart(4,"select",22),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).hierarchy=e})),o.ɵɵelement(5,"option"),o.ɵɵtemplate(6,g,2,2,"option",7),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(2);o.ɵɵadvance(4),o.ɵɵproperty("ngModel",r.hierarchy),o.ɵɵadvance(2),o.ɵɵproperty("ngForOf",r.hierarchies)}}function f(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"form",null,1),o.ɵɵelementStart(2,"div",2),o.ɵɵelementStart(3,"label",3),o.ɵɵelement(4,"localize",4),o.ɵɵelementEnd(),o.ɵɵelementStart(5,"div",5),o.ɵɵelementStart(6,"select",6),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext().code=e}))("change",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext().onChange(e.target.value)})),o.ɵɵelement(7,"option"),o.ɵɵtemplate(8,u,2,2,"option",7),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵtemplate(9,h,7,2,"div",8),o.ɵɵelementStart(10,"div",2),o.ɵɵelementStart(11,"label",9),o.ɵɵelement(12,"localize",10),o.ɵɵelementEnd(),o.ɵɵelementStart(13,"div",5),o.ɵɵelementStart(14,"select",11),o.ɵɵlistener("ngModelChange",(function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext().format=e})),o.ɵɵelement(15,"option"),o.ɵɵelementStart(16,"option",12),o.ɵɵelement(17,"localize",13),o.ɵɵelementEnd(),o.ɵɵelementStart(18,"option",14),o.ɵɵelement(19,"localize",15),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementStart(20,"div",2),o.ɵɵelementStart(21,"div",16),o.ɵɵelementStart(22,"button",17),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext().onExport()})),o.ɵɵelement(23,"localize",18),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵreference(1),i=o.ɵɵnextContext();o.ɵɵadvance(6),o.ɵɵproperty("ngModel",i.code),o.ɵɵadvance(2),o.ɵɵproperty("ngForOf",i.types),o.ɵɵadvance(1),o.ɵɵproperty("ngIf",i.hierarchies.length>0),o.ɵɵadvance(5),o.ɵɵproperty("ngModel",i.format),o.ɵɵadvance(8),o.ɵɵproperty("disabled",r.invalid)}}var y=function(){function e(e,t,n){this.service=e,this.modalService=t,this.authService=n,this.code=null,this.hierarchies=[],this.hierarchy=null,this.format=null}return e.prototype.ngOnInit=function(){var e=this;this.service.listGeoObjectTypes(!0).then((function(t){for(var n=[],r=0;r0?this.service.getHierarchiesForType(e,!1).then((function(e){t.hierarchies=e,t.hierarchy=null})).catch((function(e){t.error(e)})):(this.hierarchies=[],this.hierarchy=null)},e.prototype.onExport=function(){"SHAPEFILE"===this.format?window.location.href=acp+"/shapefile/export-shapefile?type="+this.code+"&hierarchyType="+this.hierarchy:"EXCEL"===this.format&&(window.location.href=acp+"/excel/export-spreadsheet?type="+this.code+"&hierarchyType="+this.hierarchy)},e.prototype.error=function(e){this.bsModalRef=i.ErrorHandler.showErrorAsDialog(e,this.modalService)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.IOService),o.ɵɵdirectiveInject(l.BsModalService),o.ɵɵdirectiveInject(s.AuthService))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["data-export"]],decls:2,vars:1,consts:[[4,"ngIf"],["form","ngForm"],[1,"form-group","row"],["for","code",1,"col-md-3","text-right"],["key","io.geoObjectType"],[1,"col-md-9"],["id","code","name","code","required","",1,"select-area",3,"ngModel","ngModelChange","change"],[3,"value",4,"ngFor","ngForOf"],["class","form-group row",4,"ngIf"],["for","format",1,"col-md-3","text-right"],["key","io.format"],["id","format","name","format","required","",1,"select-area",3,"ngModel","ngModelChange"],["value","EXCEL"],["key","io.spreadsheet"],["value","SHAPEFILE"],["key","io.shapefile"],[1,"col-md-12","text-right"],["type","submit",1,"btn","btn-primary",3,"disabled","click"],["key","io.export"],[3,"value"],[1,"col-sm-3","text-right"],["key","io.modal.hierarchy"],["name","hierarchy","required","",1,"select-area",3,"ngModel","ngModelChange"]],template:function(e,t){1&e&&(o.ɵɵelement(0,"loading-bar"),o.ɵɵtemplate(1,f,24,5,"form",0)),2&e&&(o.ɵɵadvance(1),o.ɵɵproperty("ngIf",t.types))},directives:[c.LoadingBarComponent,d.NgIf,p.ɵangular_packages_forms_forms_ba,p.NgControlStatusGroup,p.NgForm,m.LocalizeComponent,p.SelectControlValueAccessor,p.RequiredValidator,p.NgControlStatus,p.NgModel,p.NgSelectOption,p.ɵangular_packages_forms_forms_z,d.NgForOf],encapsulation:2}),e}();t.DataExportComponent=y,("undefined"==typeof ngDevMode||ngDevMode)&&o.ɵsetClassMetadata(y,[{type:r.Component,args:[{selector:"data-export",templateUrl:"./data-export.component.html",styleUrls:[]}]}],(function(){return[{type:a.IOService},{type:l.BsModalService},{type:s.AuthService}]}),null)},639:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GeometryPanelComponent=void 0;var r=n(0),i=n(7),o=n(203),a=(n(16),n(112),n(3)),l=n(0),s=n(16),c=n(112),d=n(1),p=n(22),m=n(68),u=n(260),g=n(113),h=["dateFieldComponents"];function f(e,t){1&e&&(l.ɵɵelementStart(0,"div",11),l.ɵɵelement(1,"localize",12),l.ɵɵelementEnd())}function y(e,t){1&e&&(l.ɵɵelementStart(0,"p",23),l.ɵɵelement(1,"localize",24),l.ɵɵelementEnd())}function v(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"tr",37),l.ɵɵelementStart(1,"td",38),l.ɵɵelementStart(2,"button",39),l.ɵɵlistener("click",(function(){l.ɵɵrestoreView(n);var e=l.ɵɵnextContext(),t=e.$implicit,r=e.index;return l.ɵɵnextContext(2).edit(t,r)})),l.ɵɵelement(3,"localize",40),l.ɵɵelementEnd(),l.ɵɵelementStart(4,"button",41),l.ɵɵlistener("click",(function(){l.ɵɵrestoreView(n);var e=l.ɵɵnextContext().$implicit;return l.ɵɵnextContext(2).onCloneGeometryToNewVersion(e)})),l.ɵɵelement(5,"localize",42),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd()}}var b=function(e,t){return{"error-message":e,"warning-message":t}};function S(e,t){if(1&e&&(l.ɵɵelementStart(0,"p",25),l.ɵɵtext(1),l.ɵɵelementEnd()),2&e){var n=t.$implicit;l.ɵɵproperty("ngClass",l.ɵɵpureFunction2(2,b,"ERROR"===n.type,"WARNING"===n.type)),l.ɵɵadvance(1),l.ɵɵtextInterpolate1(" ",n.message," ")}}function C(e,t){if(1&e&&(l.ɵɵelementStart(0,"tr"),l.ɵɵtemplate(1,S,2,5,"p",19),l.ɵɵelementEnd()),2&e){var n=l.ɵɵnextContext().$implicit;l.ɵɵadvance(1),l.ɵɵproperty("ngForOf",n.conflictMessage)}}var E=function(e,t){return{"error-border":e,"warning-border":t}},x=function(e){return{active:e}};function O(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"tr",25),l.ɵɵelementStart(1,"td",25),l.ɵɵelementStart(2,"table"),l.ɵɵtemplate(3,v,6,0,"tr",26),l.ɵɵelementStart(4,"tr",27),l.ɵɵelementStart(5,"td"),l.ɵɵelementStart(6,"h5"),l.ɵɵelement(7,"localize",28),l.ɵɵelementEnd(),l.ɵɵelementStart(8,"date-field",29,30),l.ɵɵlistener("valueChange",(function(e){return t.$implicit.startDate=e}))("change",(function(){return l.ɵɵrestoreView(n),l.ɵɵnextContext(2).onDateChange()})),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(10,"td"),l.ɵɵelementStart(11,"div",31),l.ɵɵelementStart(12,"h5"),l.ɵɵelement(13,"localize",32),l.ɵɵelementEnd(),l.ɵɵelementStart(14,"date-field",33,30),l.ɵɵlistener("valueChange",(function(e){return t.$implicit.endDate=e}))("change",(function(){return l.ɵɵrestoreView(n),l.ɵɵnextContext(2).onDateChange()})),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵtemplate(16,C,2,1,"tr",34),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(17,"td",35),l.ɵɵlistener("click",(function(){l.ɵɵrestoreView(n);var e=t.$implicit;return l.ɵɵnextContext(2).remove(e)})),l.ɵɵpipe(18,"localize"),l.ɵɵelement(19,"i",36),l.ɵɵelementEnd(),l.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=t.index,o=l.ɵɵnextContext(2);l.ɵɵproperty("ngClass",l.ɵɵpureFunction2(17,E,r.conflictMessage&&r.conflictMessage.length>0&&"ERROR"===r.conflictMessage[0].type,r.conflictMessage&&r.conflictMessage.length>0&&"WARNING"===r.conflictMessage[0].type)),l.ɵɵadvance(1),l.ɵɵproperty("ngClass",l.ɵɵpureFunction1(20,x,i===o.isVersionForHighlight)),l.ɵɵadvance(2),l.ɵɵproperty("ngIf",o.geoObjectType.isGeometryEditable),l.ɵɵadvance(5),l.ɵɵproperty("value",r.startDate)("inputName","startDate_"+i)("allowFutureDates",!1)("required",!0),l.ɵɵadvance(6),l.ɵɵproperty("value",r.endDate)("inputName","endDate_"+i)("allowInfinity",!0)("allowFutureDates",!0)("required",!0)("placement","bottom"),l.ɵɵadvance(2),l.ɵɵproperty("ngIf",r.conflictMessage&&r.conflictMessage.length>0),l.ɵɵadvance(1),l.ɵɵproperty("title",l.ɵɵpipeBind1(18,15,"changeovertime.manageVersions.remove.version"))}}function I(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"div",13),l.ɵɵelementStart(1,"ul",14),l.ɵɵelementStart(2,"li",15),l.ɵɵelementStart(3,"table",16),l.ɵɵelementStart(4,"tbody",17),l.ɵɵtemplate(5,y,2,0,"p",18),l.ɵɵtemplate(6,O,20,22,"tr",19),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(7,"li",20),l.ɵɵelementStart(8,"i",21),l.ɵɵlistener("click",(function(){return l.ɵɵrestoreView(n),l.ɵɵnextContext().onAddNewVersion(null)})),l.ɵɵelement(9,"localize",22),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd()}if(2&e){var r=l.ɵɵnextContext();l.ɵɵadvance(5),l.ɵɵproperty("ngIf",0===r.geoObjectOverTime.attributes.geometry.values.length),l.ɵɵadvance(1),l.ɵɵproperty("ngForOf",r.geoObjectOverTime.attributes.geometry.values)}}function w(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"button",41),l.ɵɵlistener("click",(function(){return l.ɵɵrestoreView(n),l.ɵɵnextContext().onCancel()})),l.ɵɵelement(1,"localize",43),l.ɵɵelementEnd()}}function M(e,t){if(1&e){var n=l.ɵɵgetCurrentView();l.ɵɵelementStart(0,"button",44),l.ɵɵlistener("click",(function(){return l.ɵɵrestoreView(n),l.ɵɵnextContext().onSubmit()})),l.ɵɵelement(1,"localize",45),l.ɵɵelementEnd()}if(2&e){var r=l.ɵɵnextContext(),i=l.ɵɵreference(3);l.ɵɵproperty("disabled",!r.isValid||!i.valid)}}var T=function(){function e(e,t,n){this.lService=e,this.changeDetectorRef=t,this.dateService=n,this.currentDate=new Date,this.isValid=!0,this.message=null,this.readonly=!1,this.hasConflict=!1,this.onChange=new r.EventEmitter,this.onCloneGeometry=new r.EventEmitter,this.onEdit=new r.EventEmitter,this.isNewGeoObject=!1,this.hasDuplicateDate=!1}return Object.defineProperty(e.prototype,"geoObjectOverTimeInput",{set:function(e){this.originalGeoObjectOverTime=JSON.parse(JSON.stringify(e)),this.geoObjectOverTime=e},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){},e.prototype.checkDateFieldValidity=function(){for(var e=this.dateFieldComponentsArray.toArray(),t=0;t-1&&t.values.splice(n,1)},e.prototype.formatDate=function(e){var t=a.localeData(e).longDateFormat("L");return a().format(t)},e.prototype.setInfinity=function(e,t){e.endDate===o.PRESENT?e.endDate=new Date:e.endDate=o.PRESENT,this.onDateChange()},e.prototype.sort=function(e){e.sort((function(e,t){return null==e.startDate||""===e.startDate?1:null==t.startDate||""===t.startDate?-1:new Date(e.startDate)-new Date(t.startDate)}))},e.prototype.onCloneGeometryToNewVersion=function(e){this.onAddNewVersion(e)},e.prototype.onSubmit=function(){this.onChange.emit(this.geoObjectOverTime)},e.prototype.onCancel=function(){this.onChange.emit(this.originalGeoObjectOverTime)},e.ɵfac=function(t){return new(t||e)(l.ɵɵdirectiveInject(s.LocalizationService),l.ɵɵdirectiveInject(l.ChangeDetectorRef),l.ɵɵdirectiveInject(c.DateService))},e.ɵcmp=l.ɵɵdefineComponent({type:e,selectors:[["geometry-panel"]],viewQuery:function(e,t){if(1&e&&l.ɵɵviewQuery(h,1),2&e){var n;l.ɵɵqueryRefresh(n=l.ɵɵloadQuery())&&(t.dateFieldComponentsArray=n)}},hostVars:1,hostBindings:function(e,t){2&e&&l.ɵɵsyntheticHostProperty("@fadeInOut",!0)},inputs:{geoObjectType:"geoObjectType",geoObjectOverTimeInput:"geoObjectOverTimeInput",isNewGeoObject:"isNewGeoObject"},outputs:{onChange:"onChange",onCloneGeometry:"onCloneGeometry",onEdit:"onEdit"},decls:13,vars:4,consts:[["class","alert alert-danger","role","alert",4,"ngIf"],["autocomplete","off",1,"modal-form"],["versionsform","ngForm"],[1,"row"],[1,"col-md-12"],["class","attribute-version-wrapper",4,"ngIf"],[1,"row-holder"],[1,"holder",2,"border","none","width","100%"],[1,"button-holder","pull-right"],["type","submit","class","btn btn-default","role","button",3,"click",4,"ngIf"],["type","submit","class","btn btn-primary","role","button",3,"disabled","click",4,"ngIf"],["role","alert",1,"alert","alert-danger"],["key","changeovertime.manageVersions.duplicateDate"],[1,"attribute-version-wrapper"],[1,"list-group"],[1,"list-group-item",2,"text-align","left","padding","0"],[1,"table","table-striped"],[1,"attribute-element-wrapper"],["class","message",4,"ngIf"],[3,"ngClass",4,"ngFor","ngForOf"],[1,"list-group-item",2,"text-align","left"],[1,"fa","fa-plus","clickable",3,"click"],["key","changeovertime.manageVersions.newVersion"],[1,"message"],["key","changeovertime.manageVersions.no.versions.message"],[3,"ngClass"],["class","attribute-value-row",4,"ngIf"],[1,"attribute-date-input-row"],["key","changeovertime.manageVersions.tableHeader.label.startDate"],["label","",3,"value","inputName","allowFutureDates","required","valueChange","change"],["dateFieldComponents",""],[1,"version-edit-date-container"],["key","changeovertime.manageVersions.tableHeader.label.endDate"],["label","",3,"value","inputName","allowInfinity","allowFutureDates","required","placement","valueChange","change"],[4,"ngIf"],[1,"manage-version-button","clickable",2,"vertical-align","middle",3,"title","click"],[1,"fa","fa-times"],[1,"attribute-value-row"],["colspan","2"],["role","button",1,"btn","btn-primary",3,"click"],["key","changeovertime.manageVersions.geometry.edit"],["type","submit","role","button",1,"btn","btn-default",3,"click"],["key","changeovertime.manageVersions.copy.geometry.button"],["key","io.cancel"],["type","submit","role","button",1,"btn","btn-primary",3,"disabled","click"],["key","modal.button.submit"]],template:function(e,t){1&e&&(l.ɵɵelementStart(0,"div"),l.ɵɵtemplate(1,f,2,0,"div",0),l.ɵɵelementStart(2,"form",1,2),l.ɵɵelementStart(4,"fieldset"),l.ɵɵelementStart(5,"div",3),l.ɵɵelementStart(6,"div",4),l.ɵɵtemplate(7,I,10,2,"div",5),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementStart(8,"div",6),l.ɵɵelementStart(9,"div",7),l.ɵɵelementStart(10,"div",8),l.ɵɵtemplate(11,w,2,0,"button",9),l.ɵɵtemplate(12,M,2,1,"button",10),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd(),l.ɵɵelementEnd()),2&e&&(l.ɵɵadvance(1),l.ɵɵproperty("ngIf",t.hasDuplicateDate),l.ɵɵadvance(6),l.ɵɵproperty("ngIf",t.geoObjectOverTime),l.ɵɵadvance(4),l.ɵɵproperty("ngIf",!t.readonly),l.ɵɵadvance(1),l.ɵɵproperty("ngIf",!t.readonly))},directives:[d.NgIf,p.ɵangular_packages_forms_forms_ba,p.NgControlStatusGroup,p.NgForm,m.LocalizeComponent,d.NgForOf,d.NgClass,u.DateFieldComponent],pipes:[g.LocalizePipe],styles:['@charset "UTF-8";\n\n.active[_ngcontent-%COMP%] {\n\tbackground-color: #f4fcef !important;\n\tborder: solid 1px #6BA542;\n}'],data:{animation:[[i.trigger("fadeInOut",[i.transition("void => *",[i.style({opacity:0}),i.animate("500ms")]),i.transition(":leave",i.animate("500ms",i.style({opacity:0})))])]]}}),e}();t.GeometryPanelComponent=T,("undefined"==typeof ngDevMode||ngDevMode)&&l.ɵsetClassMetadata(T,[{type:r.Component,args:[{selector:"geometry-panel",templateUrl:"./geometry-panel.component.html",styleUrls:["./geometry-panel.css"],host:{"[@fadeInOut]":"true"},animations:[[i.trigger("fadeInOut",[i.transition("void => *",[i.style({opacity:0}),i.animate("500ms")]),i.transition(":leave",i.animate("500ms",i.style({opacity:0})))])]]}]}],(function(){return[{type:s.LocalizationService},{type:l.ChangeDetectorRef},{type:c.DateService}]}),{dateFieldComponentsArray:[{type:r.ViewChildren,args:["dateFieldComponents"]}],onChange:[{type:r.Output}],onCloneGeometry:[{type:r.Output}],onEdit:[{type:r.Output}],geoObjectType:[{type:r.Input}],geoObjectOverTimeInput:[{type:r.Input}],isNewGeoObject:[{type:r.Input}]})},640:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GeoObjectTypePipe=void 0;var r=n(0),i=n(0),o=function(){function e(){}return e.prototype.transform=function(e,t){if(!e||!t)return e;var n=[];return this.buildUnassignedGeoObjTypes(t,n),e.filter((function(e){return-1===n.indexOf(e.code)}))},e.prototype.buildUnassignedGeoObjTypes=function(e,t){var n=this;e.forEach((function(e){n.processHierarchyNodes(e,t)}))},e.prototype.processHierarchyNodes=function(e,t){var n=this;t.push(e.geoObjectType),e.children.forEach((function(e){n.processHierarchyNodes(e,t)}))},e.ɵfac=function(t){return new(t||e)},e.ɵpipe=i.ɵɵdefinePipe({name:"geoobjecttype",type:e,pure:!1}),e}();t.GeoObjectTypePipe=o,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(o,[{type:r.Pipe,args:[{name:"geoobjecttype",pure:!1}]}],null,null)},641:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GeoObjectAttributeExcludesPipe=void 0;var r=n(0),i=n(0),o=function(){function e(){}return e.prototype.transform=function(e,t){return e&&t?e.filter((function(e){return-1===t.indexOf(e.code)})):e},e.ɵfac=function(t){return new(t||e)},e.ɵpipe=i.ɵɵdefinePipe({name:"geoObjectAttributeExcludesFilter",type:e,pure:!0}),e}();t.GeoObjectAttributeExcludesPipe=o,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(o,[{type:r.Pipe,args:[{name:"geoObjectAttributeExcludesFilter",pure:!0}]}],null,null)},642:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ToEpochDateTimePipe=void 0;var r=n(0),i=n(0),o=function(){function e(){}return e.prototype.transform=function(e){return e?new Date(e).getTime():e},e.ɵfac=function(t){return new(t||e)},e.ɵpipe=i.ɵɵdefinePipe({name:"toEpochDateTime",type:e,pure:!0}),e}();t.ToEpochDateTimePipe=o,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(o,[{type:r.Pipe,args:[{name:"toEpochDateTime",pure:!0}]}],null,null)},643:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RegistryRoutingModule=void 0;var r=n(0),i=n(1),o=n(33),a=n(534),l=n(555),s=n(587),c=n(595),d=n(598),p=n(585),m=n(593),u=n(599),g=n(600),h=n(607),f=n(610),y=n(613),v=n(614),b=n(615),S=n(617),C=n(123),E=n(618),x=n(0),O=n(33),I=[{path:"",component:a.HierarchyComponent,canActivate:[C.AuthGuard]},{path:"hierarchies",component:a.HierarchyComponent,canActivate:[C.AuthGuard]},{path:"data",component:p.DataPageComponent,canActivate:[C.MaintainerGuard]},{path:"change-requests",component:m.ChangeRequestPageComponent,canActivate:[C.ContributerGuard]},{path:"change-requests/:oid",component:m.ChangeRequestPageComponent,canActivate:[C.ContributerGuard]},{path:"master-lists",component:s.MasterListManagerComponent,canActivate:[C.AuthGuard]},{path:"scheduled-jobs",component:u.ScheduledJobsComponent,canActivate:[C.MaintainerGuard]},{path:"job/:oid",component:g.JobComponent,canActivate:[C.MaintainerGuard]},{path:"master-list/:oid/:published",component:c.MasterListComponent,canActivate:[C.AuthGuard]},{path:"master-list-view/:oid",component:d.MasterListViewComponent,canActivate:[C.AuthGuard]},{path:"change-request",component:l.SubmitChangeRequestComponent,canActivate:[C.ContributerGuard]},{path:"tasks",component:h.TaskViewerComponent,canActivate:[C.MaintainerGuard]},{path:"synchronization-configs",component:f.SynchronizationConfigManagerComponent,canActivate:[C.AuthGuard]},{path:"synchronization-config/:oid",component:y.SynchronizationConfigComponent,canActivate:[C.AuthGuard]},{path:"location-manager",component:b.LocationManagerComponent,canActivate:[C.AuthGuard]},{path:"location-manager/:geoobjectuid/:geoobjecttypecode/:datestr/:hideSearchOptions",component:b.LocationManagerComponent,canActivate:[C.AuthGuard]},{path:"location-manager/:geoobjectuid/:geoobjecttypecode/:datestr/:hideSearchOptions/:backReference",component:b.LocationManagerComponent,canActivate:[C.AuthGuard]},{path:"dataset-location-manager/:datasetId/:typeCode/:readOnly/:date",component:S.DatasetLocationManagerComponent,canActivate:[C.AuthGuard]},{path:"dataset-location-manager/:datasetId/:typeCode/:readOnly/:date/:code",component:S.DatasetLocationManagerComponent,canActivate:[C.AuthGuard]},{path:"dataset-location-manager/:datasetId/:typeCode/:readOnly/:date/:code/:editOnly",component:S.DatasetLocationManagerComponent,canActivate:[C.AuthGuard]},{path:"dataset-location-manager/:datasetId/:typeCode/:readOnly/:date/:code/:editOnly/:backReference",component:S.DatasetLocationManagerComponent,canActivate:[C.AuthGuard]},{path:"sync/details/:config/:oid",component:v.SyncDetailsComponent,canActivate:[C.MaintainerGuard]},{path:"historical-events",component:E.HistoricalEventModuleComponent,canActivate:[C.MaintainerGuard]}],w=function(){function e(){}return e.ɵfac=function(t){return new(t||e)},e.ɵmod=x.ɵɵdefineNgModule({type:e}),e.ɵinj=x.ɵɵdefineInjector({providers:[{provide:i.LocationStrategy,useClass:i.HashLocationStrategy}],imports:[[o.RouterModule.forChild(I)],o.RouterModule]}),e}();t.RegistryRoutingModule=w,("undefined"==typeof ngJitMode||ngJitMode)&&x.ɵɵsetNgModuleScope(w,{imports:[O.RouterModule],exports:[o.RouterModule]}),("undefined"==typeof ngDevMode||ngDevMode)&&x.ɵsetClassMetadata(w,[{type:r.NgModule,args:[{imports:[o.RouterModule.forChild(I)],exports:[o.RouterModule],providers:[{provide:i.LocationStrategy,useClass:i.HashLocationStrategy}]}]}],null,null)}}]); //# sourceMappingURL=1.chunk.js.map \ No newline at end of file diff --git a/georegistry-web/src/main/webapp/dist/1.chunk.js.map b/georegistry-web/src/main/webapp/dist/1.chunk.js.map index 6e51200f2..8dc9f9a98 100644 --- a/georegistry-web/src/main/webapp/dist/1.chunk.js.map +++ b/georegistry-web/src/main/webapp/dist/1.chunk.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./src/app/registry/service/geometry.service.ts","webpack:///./src/app/registry/registry.module.ts","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/app/registry/service/index.ts","webpack:///./src/app/registry/model/crtable.ts","webpack:///./src/app/registry/service/change-request.service.ts","webpack:///./src/app/registry/service/transition-event.service.ts","webpack:///./src/app/registry/model/io.ts","webpack:///./src/app/registry/component/geoobject-shared-attribute-editor/geoobject-shared-attribute-editor.component.ts","webpack:///./src/app/registry/component/geoobject-shared-attribute-editor/geoobject-shared-attribute-editor.component.html","webpack:///./src/app/registry/component/form-fields/localized-text/localized-text.component.ts","webpack:///./src/app/registry/component/form-fields/localized-text/localized-text.component.html","webpack:///./src/app/registry/service/geoobjecttype-management.service.ts","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/attribute-input.component.ts","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/attribute-input.component.html","webpack:///./src/app/registry/component/master-list/publish-modal.component.ts","webpack:///./src/app/registry/component/master-list/publish-modal.component.html","webpack:///./src/app/registry/component/form-fields/localized-input/localized-input.component.ts","webpack:///./src/app/registry/component/form-fields/localized-input/localized-input.component.html","webpack:///./src/app/registry/component/hierarchy/hierarchy.component.ts","webpack:///./src/app/registry/component/hierarchy/hierarchy.component.html","webpack:///./src/app/registry/component/geoobject-shared-attribute-editor/change-request-editor.ts","webpack:///./src/app/registry/service/hierarchy.service.ts","webpack:///./src/app/registry/service/io.service.ts","webpack:///./src/app/registry/service/localization-manager.service.ts","webpack:///./src/app/registry/service/map.service.ts","webpack:///./src/app/registry/service/registry.service.ts","webpack:///./src/app/registry/service/synchronization-config.service.ts","webpack:///./src/app/registry/service/task.service.ts","webpack:///./src/app/registry/component/hierarchy/d3/svg-util.ts","webpack:///./src/app/registry/component/importer/modals/attributes-page.component.ts","webpack:///./src/app/registry/component/importer/modals/attributes-page.component.html","webpack:///./src/app/registry/component/importer/modals/location-page.component.ts","webpack:///./src/app/registry/component/importer/modals/location-page.component.html","webpack:///./src/app/registry/component/importer/modals/location-problem-page.component.ts","webpack:///./src/app/registry/component/importer/modals/location-problem-page.component.html","webpack:///./src/app/registry/component/importer/modals/term-problem-page.component.ts","webpack:///./src/app/registry/component/importer/modals/term-problem-page.component.html","webpack:///./src/app/registry/component/submit-change-request/submit-change-request.component.ts","webpack:///./src/app/registry/component/submit-change-request/submit-change-request.component.html","webpack:///./src/app/registry/component/geoobject-editor/geoobject-editor.component.ts","webpack:///./src/app/registry/component/geoobject-editor/geoobject-editor.component.html","webpack:///./src/app/registry/component/scheduled-jobs/step-indicator.component.ts","webpack:///./src/app/registry/component/scheduled-jobs/step-indicator.component.html","webpack:///./src/app/registry/component/location-manager/layer-panel.component.ts","webpack:///./src/app/registry/component/location-manager/layer-panel.component.html","webpack:///./src/app/registry/component/location-manager/feature-panel.component.ts","webpack:///./src/app/registry/component/location-manager/feature-panel.component.html","webpack:///./src/app/registry/component/hierarchy/modals/import-types-modal.component.ts","webpack:///./src/app/registry/component/hierarchy/modals/import-types-modal.component.html","webpack:///./src/app/registry/component/master-list/export-system-modal.component.ts","webpack:///./src/app/registry/component/master-list/export-system-modal.component.html","webpack:///./src/app/registry/component/hierarchy/modals/create-hierarchy-type-modal.component.ts","webpack:///./src/app/registry/component/hierarchy/modals/create-hierarchy-type-modal.component.html","webpack:///./src/app/registry/component/hierarchy/modals/create-geoobjtype-modal.component.ts","webpack:///./src/app/registry/component/hierarchy/modals/create-geoobjtype-modal.component.html","webpack:///./src/app/registry/component/hierarchy/modals/manage-geoobjecttype-modal.component.ts","webpack:///./src/app/registry/component/hierarchy/modals/manage-geoobjecttype-modal.component.html","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/geoobjecttype-input.component.ts","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/geoobjecttype-input.component.html","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/define-attribute-modal-content.component.ts","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/define-attribute-modal-content.component.html","webpack:///./src/app/registry/factory/form-validation.factory.ts","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/edit-attribute-modal-content.component.ts","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/edit-attribute-modal-content.component.html","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/term-option-widget.component.ts","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/term-option-widget.component.html","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/manage-term-options.component.ts","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/manage-term-options.component.html","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/edit-term-option-input.component.ts","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/edit-term-option-input.component.html","webpack:///./src/app/registry/component/hierarchy/d3/svg-hierarchy-type.ts","webpack:///./src/app/registry/component/importer/modals/shapefile-modal.component.ts","webpack:///./src/app/registry/component/importer/modals/shapefile-modal.component.html","webpack:///./src/app/registry/component/importer/modals/location-problem.component.ts","webpack:///./src/app/registry/component/importer/modals/location-problem.component.html","webpack:///./src/app/registry/component/importer/modals/term-problem.component.ts","webpack:///./src/app/registry/component/importer/modals/term-problem.component.html","webpack:///./src/app/registry/component/importer/modals/spreadsheet-modal.component.ts","webpack:///./src/app/registry/component/importer/modals/spreadsheet-modal.component.html","webpack:///./src/app/registry/component/data-page/data-page.component.ts","webpack:///./src/app/registry/component/data-page/data-page.component.html","webpack:///./src/app/registry/component/importer/dataimporter.component.ts","webpack:///./src/app/registry/component/importer/dataimporter.component.html","webpack:///./src/app/registry/component/master-list/master-list-manager.component.ts","webpack:///./src/app/registry/component/master-list/master-list-manager.component.html","webpack:///./src/app/registry/component/master-list/export-format-modal.component.ts","webpack:///./src/app/registry/component/master-list/export-format-modal.component.html","webpack:///./src/app/registry/component/crtable/request-table.component.ts","webpack:///./src/app/registry/component/crtable/request-table.component.html","webpack:///./src/app/registry/component/geoobject-shared-attribute-editor/change-request-change-over-time-attribute-editor.ts","webpack:///./src/app/registry/component/geoobject-shared-attribute-editor/ValueOverTimeCREditor.ts","webpack:///./src/app/registry/component/geoobject-shared-attribute-editor/manage-versions.component.ts","webpack:///./src/app/registry/component/geoobject-shared-attribute-editor/manage-versions.component.html","webpack:///./src/app/registry/component/change-request-page/change-request-page.component.ts","webpack:///./src/app/registry/component/change-request-page/change-request-page.component.html","webpack:///./src/app/registry/component/cascading-geo-selector/cascading-geo-selector.ts","webpack:///./src/app/registry/component/cascading-geo-selector/cascading-geo-selector.html","webpack:///./src/app/registry/component/master-list/master-list.component.ts","webpack:///./src/app/registry/component/master-list/master-list.component.html","webpack:///./src/app/registry/component/master-list/published-master-list-history.component.ts","webpack:///./src/app/registry/component/master-list/published-master-list-history.component.html","webpack:///./src/app/registry/component/master-list/master-list-history.component.ts","webpack:///./src/app/registry/component/master-list/master-list-history.component.html","webpack:///./src/app/registry/component/master-list/master-list-view.component.ts","webpack:///./src/app/registry/component/master-list/master-list-view.component.html","webpack:///./src/app/registry/component/scheduled-jobs/scheduled-jobs.component.ts","webpack:///./src/app/registry/component/scheduled-jobs/scheduled-jobs.component.html","webpack:///./src/app/registry/component/scheduled-jobs/job.component.ts","webpack:///./src/app/registry/component/scheduled-jobs/job.component.html","webpack:///./src/app/registry/component/scheduled-jobs/conflict-widgets/job-conflict-modal.component.ts","webpack:///./src/app/registry/component/scheduled-jobs/conflict-widgets/job-conflict-modal.component.html","webpack:///./src/app/registry/component/scheduled-jobs/conflict-widgets/import-problem-widget.component.ts","webpack:///./src/app/registry/component/scheduled-jobs/conflict-widgets/import-problem-widget.component.html","webpack:///./src/app/registry/component/scheduled-jobs/conflict-widgets/parent-reference-problem-widget.component.ts","webpack:///./src/app/registry/component/scheduled-jobs/conflict-widgets/parent-reference-problem-widget.component.html","webpack:///./src/app/registry/component/scheduled-jobs/conflict-widgets/term-reference-problem-widget.component.ts","webpack:///./src/app/registry/component/scheduled-jobs/conflict-widgets/term-reference-problem-widget.component.html","webpack:///./src/app/registry/component/scheduled-jobs/conflict-widgets/row-validation-problem-widget.component.ts","webpack:///./src/app/registry/component/scheduled-jobs/conflict-widgets/row-validation-problem-widget.component.html","webpack:///./src/app/registry/component/scheduled-jobs/conflict-widgets/reupload-modal.component.ts","webpack:///./src/app/registry/component/scheduled-jobs/conflict-widgets/reupload-modal.component.html","webpack:///./src/app/registry/component/task-viewer/task-viewer.component.ts","webpack:///./src/app/registry/component/task-viewer/task-viewer.component.html","webpack:///./src/app/registry/component/synchronization-config/fhir-export-synchronization-config.component.ts","webpack:///./src/app/registry/component/synchronization-config/fhir-export-synchronization-config.component.html","webpack:///./src/app/registry/component/synchronization-config/dhis2-synchronization-config.component.ts","webpack:///./src/app/registry/component/synchronization-config/dhis2-synchronization-config.component.html","webpack:///./src/app/registry/component/synchronization-config/synchronization-config-manager.component.ts","webpack:///./src/app/registry/component/synchronization-config/synchronization-config-manager.component.html","webpack:///./src/app/registry/component/synchronization-config/synchronization-config-modal.component.ts","webpack:///./src/app/registry/component/synchronization-config/synchronization-config-modal.component.html","webpack:///./src/app/registry/component/synchronization-config/fhir-import-synchronization-config.component.ts","webpack:///./src/app/registry/component/synchronization-config/fhir-import-synchronization-config.component.html","webpack:///./src/app/registry/component/synchronization-config/synchronization-config.component.ts","webpack:///./src/app/registry/component/synchronization-config/synchronization-config.component.html","webpack:///./src/app/registry/component/synchronization-config/details.component.ts","webpack:///./src/app/registry/component/synchronization-config/details.component.html","webpack:///./src/app/registry/component/location-manager/location-manager.component.ts","webpack:///./src/app/registry/component/location-manager/location-manager.component.html","webpack:///./src/app/registry/component/location-manager/context-layer-modal.component.ts","webpack:///./src/app/registry/component/location-manager/context-layer-modal.component.html","webpack:///./src/app/registry/component/location-manager/dataset-location-manager.component.ts","webpack:///./src/app/registry/component/location-manager/dataset-location-manager.component.html","webpack:///./src/app/registry/component/historical-event-module/historical-event-module.component.ts","webpack:///./src/app/registry/component/historical-event-module/historical-event-module.component.html","webpack:///./src/app/registry/component/transition-event/transition-event-table.component.ts","webpack:///./src/app/registry/component/transition-event/transition-event-table.component.html","webpack:///./src/app/registry/component/transition-event/transition-event-modal.component.ts","webpack:///./src/app/registry/component/transition-event/transition-event-modal.component.html","webpack:///./src/app/registry/component/historical-report/historical-report.component.ts","webpack:///./src/app/registry/component/historical-report/historical-report.component.html","webpack:///./src/app/registry/component/hierarchy/d3/svg-hierarchy-node.ts","webpack:///./src/app/registry/component/hierarchy/modals/add-child-to-hierarchy-modal.component.ts","webpack:///./src/app/registry/component/hierarchy/modals/add-child-to-hierarchy-modal.component.html","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/manage-attributes-modal.component.ts","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/manage-attributes-modal.component.html","webpack:///./src/app/registry/component/geoobject-shared-attribute-editor/HierarchyCREditor.ts","webpack:///./src/app/registry/component/geoobject-shared-attribute-editor/StandardAttributeCRModel.ts","webpack:///./src/app/registry/component/geoobject-shared-attribute-editor/manage-versions-model.ts","webpack:///./src/app/registry/component/crtable/action-detail/create-update-geo-object/detail.component.ts","webpack:///./src/app/registry/component/crtable/action-detail/create-update-geo-object/detail.component.html","webpack:///./src/app/registry/component/geoobject-shared-attribute-editor/stability-period.component.ts","webpack:///./src/app/registry/component/geoobject-shared-attribute-editor/stability-period.component.html","webpack:///./src/app/registry/component/geoobject-shared-attribute-editor/standard-attribute-editor.component.ts","webpack:///./src/app/registry/component/geoobject-shared-attribute-editor/standard-attribute-editor.component.html","webpack:///./src/app/registry/component/geoobject-editor-map/geoobject-editor-map.component.ts","webpack:///./src/app/registry/component/geoobject-editor-map/geoobject-editor-map.component.html","webpack:///./src/app/registry/component/geoobject-editor-map/simple-edit-control/simple-edit-control.component.ts","webpack:///./src/app/registry/component/geoobject-editor-map/simple-edit-control/simple-edit-control.component.html","webpack:///./src/app/registry/component/tree-geo-selector/tree-geo-selector.ts","webpack:///./src/app/registry/component/tree-geo-selector/tree-geo-selector.html","webpack:///./src/app/registry/component/crtable/action-detail/action-detail-modal.component.ts","webpack:///./src/app/registry/component/crtable/action-detail/action-detail-modal.component.html","webpack:///./src/app/registry/component/data-export/data-export.component.ts","webpack:///./src/app/registry/component/data-export/data-export.component.html","webpack:///./src/app/registry/component/location-manager/geometry-panel.component.ts","webpack:///./src/app/registry/component/location-manager/geometry-panel.component.html","webpack:///./src/app/registry/pipe/geoobjecttype.pipe.ts","webpack:///./src/app/registry/pipe/geoobject-attribute-excludes.pipe.ts","webpack:///./src/app/registry/pipe/to-epoch-date-time.pipe.ts","webpack:///./src/app/registry/registry-routing.module.ts"],"names":["layers","editingControl","simpleEditControl","geometryChange","EventEmitter","ngOnInit","window","onbeforeunload","destroy","initialize","map","geometryType","readOnly","this","addLayers","on","saveEdits","destroyMap","removeControl","remove","removeLayers","forEach","layer","isEditing","isRendering","editingLayer","startEditing","stopEditing","enableEditing","addEditingLayers","rerender","deleteAll","setPointCoordinates","lat","long","set","type","features","id","oid","properties","geometry","coordinates","changeMode","featureIds","isValid","getAll","length","geoJson","getDrawGeometry","editPropagator","value","reload","setEditing","setRendering","addLayer","newLayer","existingIndex","findIndex","findLayer","splice","push","sort","a","b","zindex","getLayers","getRenderedLayers","filter","setLayers","controls","point","line_string","polygon","trash","combine_features","uncombine_features","userProperties","styles","paint","getSource","addControl","add","removeSource","prefix","sourceName","getLayer","removeLayer","len","i","renderGeometryAsLayer","geojson","color","finalSourceName","addSource","data","source","layout","setData","featureCollection","polygons","feature","j","points","lines","createEmptyGeometryValue","zoomToLayersExtent","coords","LngLatBounds","coord","extend","center","getCenter","pt","LngLat","lng","flyTo","zoom","essential","polys","subpoly","fitBounds","padding","subline","GeometryService","Injectable","Output","RegistryModule","MapService","HierarchyService","LocalizationManagerService","ChangeRequestService","IOService","GeoObjectTypeManagementService","RegistryService","TaskService","DatePipe","ToEpochDateTimePipe","StepIndicatorComponent","SynchronizationConfigService","TransitionEventService","CommonModule","RouterModule","FormsModule","ReactiveFormsModule","FileUploadModule","TreeModule","ContextMenuModule","BsDropdownModule","ButtonsModule","TypeaheadModule","ProgressbarModule","TabsModule","CollapseModule","NgxPaginationModule","SharedModule","RegistryRoutingModule","DndModule","AccordionModule","forRoot","HierarchyComponent","RequestTableComponent","CreateUpdateGeoObjectDetailComponent","ImportTypesModalComponent","ExportSystemModalComponent","FhirExportSynchronizationConfigComponent","FhirImportSynchronizationConfigComponent","Dhis2SynchronizationConfigComponent","CreateHierarchyTypeModalComponent","AddChildToHierarchyModalComponent","CreateGeoObjTypeModalComponent","ManageAttributesModalComponent","DefineAttributeModalContentComponent","ShapefileModalComponent","AttributesPageComponent","LocationPageComponent","LocationProblemPageComponent","LocationProblemComponent","TermProblemPageComponent","TermProblemComponent","SpreadsheetModalComponent","GeoObjectTypePipe","GeoObjectAttributeCodeValidator","EditAttributeModalContentComponent","TermOptionWidgetComponent","AttributeInputComponent","EditTermOptionInputComponent","ManageGeoObjectTypeModalComponent","GeoObjectTypeInputComponent","ManageTermOptionsComponent","LocalizedInputComponent","LocalizedTextComponent","GeoObjectSharedAttributeEditorComponent","StabilityPeriodComponent","ManageVersionsComponent","StandardAttributeEditorComponent","SubmitChangeRequestComponent","GeoObjectEditorComponent","GeoObjectAttributeExcludesPipe","GeoObjectEditorMapComponent","SimpleEditControl","DataPageComponent","ChangeRequestPageComponent","CascadingGeoSelector","TreeGeoSelector","ActionDetailModalComponent","DataImporterComponent","DataExportComponent","MasterListManagerComponent","MasterListComponent","MasterListHistoryComponent","PublishedMasterListHistoryComponent","PublishModalComponent","MasterListViewComponent","ExportFormatModalComponent","ScheduledJobsComponent","JobComponent","JobConflictModalComponent","ReuploadModalComponent","ParentReferenceProblemWidgetComponent","TermReferenceProblemWidgetComponent","RowValidationProblemWidgetComponent","ImportProblemWidgetComponent","TaskViewerComponent","SynchronizationConfigManagerComponent","SynchronizationConfigModalComponent","SynchronizationConfigComponent","SyncDetailsComponent","LocationManagerComponent","DatasetLocationManagerComponent","ContextLayerModalComponent","LayerPanelComponent","FeaturePanelComponent","GeometryPanelComponent","TransitionEventTableComponent","TransitionEventModalComponent","HistoricalReportComponent","HistoricalEventModuleComponent","NgModule","imports","declarations","providers","entryComponents","webpackContext","req","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","services","SummaryKey","Document","Geometry","ValueOverTimeDiff","AbstractAction","actionType","ActionTypes","CREATEGEOOBJECTACTION","CreateGeoObjectAction","attributeName","UPDATEATTRIBUTETACTION","attributeDiff","valuesOverTime","UpdateAttributeOverTimeAction","UpdateAttributeAction","ChangeRequestCurrentObject","UpdateChangeRequestCurrentObject","isNew","getActionsForAttribute","cr","hierarchyCode","actions","newActions","action","updateAttrAction","ChangeRequest","GovernanceStatus","PageEvent","http","eventService","implementDecisions","request","headers","HttpHeaders","start","post","acp","JSON","stringify","pipe","finalize","complete","toPromise","update","setActionStatus","actionOid","status","getAllRequests","pageSize","pageNumber","params","HttpParams","toString","get","rejectChangeRequest","delete","requestId","deleteFile","crOid","fileId","vfOid","getPage","attrConditions","getDetails","apply","event","eventId","getHistoricalReport","typeCode","startDate","endDate","ImportSheet","Location","Term","TermProblem","LocationProblem","Exclusion","Synonym","ImportConfiguration","changeRequestEditor","lService","geomService","authService","dateService","postGeoObject","showAllInstances","tabIndex","attributeExcludes","isGeometryInlined","modifiedTermOption","currentTermOption","filterDate","forDate","datasetId","geoObjectAttributeExcludes","showStabilityPeriods","geometryAttributeType","getAttribute","AttributeType","LocalizedValue","parentAttributeType","changeRequest","createNewChangeRequest","ChangeRequestEditor","geoObjectType","hierarchies","shouldForceSetExist","changePage","got","current","orgCode","organizationCode","isSRA","isOrganizationRA","isGeoObjectTypeOrSuperRM","isGeoObjectTypeOrSuperRC","setFilterDate","date","refresh","manageVersions","manageVersion","getChangeRequestEditor","approvalStatus","createAction","geoObjectJson","parentJson","attributes","values","undefined","name","nextPage","hasChanges","hasErrors","attributeEditors","getEditors","filteredEditors","editor","indexOf","attribute","hierarchy","getEditorForAttribute","invalid","existsAttribute","GeoObjectType","existsEditor","prototype","hasOwnProperty","call","allValid","att","validate","getActions","trigger","transition","style","opacity","animate","state","left","Component","selector","templateUrl","styleUrls","animations","Input","attributeForm","ViewChild","ViewChildren","key","disabled","inlinelayout","valueChange","modalStateChangedSource","Subject","modalStepChange","asObservable","getModalState","modalState","setModalState","next","hierarchyService","cdr","disableCodeField","excludeDescription","isDecimal","attributeChange","message","ngAfterViewInit","detectChanges","ngOnChanges","ngOnDestroy","handleOnSubmit","toggleIsUnique","unique","onAnimationDone","label","localeValues","precision","scale","service","iService","bsModalRef","currentDate","Date","readonly","edit","originalPublishStartDate","onMasterListChange","master","listGeoObjectTypes","then","types","myOrgTypes","superTypeCode","isGeoObjectTypeRM","catch","err","error","displayLabel","create","representativityDate","publishingStartDate","publishDate","descriptionLocal","processLocal","progressLocal","accessConstraintsLocal","useConstraintsLocal","acknowledgementsLocal","disclaimerLocal","contactName","organization","telephoneNumber","email","subtypeHierarchies","leaf","frequency","isMaster","visibility","ngAfterContentInit","init","org","getIsDisabled","elClasses","target","classList","onChange","getHierarchiesForType","getHierarchiesForSubtypes","onSubmit","createMasterList","response","hide","obj","onCancel","unsubscribe","formatDate","formatDateForDisplay","ErrorHandler","getMessageFromError","TREE_SCALE_FACTOR_X","TREE_SCALE_FACTOR_Y","DEFAULT_NODE_FILL","DEFAULT_NODE_BANNER_COLOR","INHERITED_NODE_FILL","INHERITED_NODE_BANNER_COLOR","RELATED_NODE_BANNER_COLOR","Instance","modalService","contextMenuService","localizeService","registryService","userOrganization","currentHierarchy","instance","geoObjectTypes","hierarchiesByOrg","typesByOrg","filteredHierarchiesByOrg","filteredTypesByOrg","hierarchyTypeDeleteExclusions","geoObjectTypeDeleteExclusions","_opened","options","displayField","actionMapping","mouse","click","tree","node","$event","treeNodeOnClick","contextMenu","handleOnMenu","refreshAll","fromEvent","searchInput","nativeElement","Boolean","debounceTime","distinctUntilChanged","tap","onFilterChange","subscribe","localize","decode","renderTree","rootGeoObjectTypes","d3","select","canDrag","overflowDiv","scrollLeft","scrollRight","svg","append","attr","primarySvgHierarchy","SvgHierarchyType","render","calculateSvgViewBox","overflowDiv2","calculateCanDrag","getBBox","x","y","width","height","xPadding","yPadding","hierarchyComponent","getNodeByCode","isAbstract","child","calculateRelatedHierarchies","relatedHiers","hierarchyType","descendants","find","inheritedHierarchyCode","registerDragHandlers","deltaX","deltaY","that","dropTargets","dropSelector","onDrag","dragEl","dropEl","emptyHierarchyDropZone","closest","onDrop","addChild","mouseTarget","clearDropZones","lastDropEl","svgMousePoint","svgPoint","sourceEvent","pageX","pageY","getD3Tree","isPointWithin","dropZoneBbox","activeDropZones","parent","gotRectW","gotRectH","clearGhostNodes","isDragGroup","classed","dropNode","isDropGroup","findGeoObjectTypeByCode","dropElX","parseInt","dropElY","childW","childH","dzg","dropTargetHasChildren","children","isChildDZActive","childDzBacker","childDz","addChildLabel","childDzText","calculateTextWidth","text","parentDzBacker","gotHeaderH","parentDz","addParentLabel","parentDzText","ghostCode","parentIndex","addSiblingLabel","ghostingCode","siblingGhostBody","getBboxFromSelection","activeDz","dragGot","youngest","insertBetweenTypes","ghostNode","drag","rect","getBoundingClientRect","top","selThis","document","elementFromPoint","selectAll","each","sidebarDragHandler","registerSvgHandlers","startPoint","svgGot","getPos","setPos","split","svgDragHandler","findHierarchyByCode","ht","findOrganizationByCode","organizations","parentGeoObjectTypeCode","childGeoObjectTypeCode","addChildToHierarchy","index","relatedHierarchies","refreshPrimaryHierarchy","middleGeoObjectTypeCode","youngestGeoObjectTypeCode","isRA","dropZone","getTypesByOrg","orgTypes","getHierarchiesByOrg","orgHierarchies","desiredHierarchy","setLocales","locales","setGeoObjectTypes","pos","getGeoObjectTypePosition","setHierarchies","setNodesOnInit","updateViewDatastructures","setAbstractTypes","localizedValue","toLowerCase","setType","excludeHierarchyTypeDeletes","excludeGeoObjectTypeDeletes","h","setCurrentHierarchy","getHierarchy","hierarchyId","rootGeoObjectType","processHierarchyNodes","getHierarchyLabel","geoObjectTypeCode","gOT","show","childType","nodeMenuComponent","leafMenuComponent","item","preventDefault","stopPropagation","treeModel","setFocusedNode","isExpanded","collapse","expandAll","hierarchyOnClick","createHierarchy","animated","backdrop","ignoreBackdropClick","content","onHierarchytTypeCreate","nameA","toUpperCase","nameB","deleteHierarchyType","ConfirmModalComponent","submitText","onConfirm","removeHierarchyType","editHierarchyType","getHierarchyTypePosition","description","progress","acknowledgement","disclaimer","useConstraints","accessConstraints","contact","phoneNumber","isPrimaryHierarchy","createGeoObjectType","groupSuperType","onGeoObjTypeCreate","deleteGeoObjectType","ModalTypes","danger","removeGeoObjectType","errCallback","manageGeoObjectType","onGeoObjectTypeSubmitted","position","removeFromHierarchy","parentGotCode","gotCode","isActive","filtered","setTimeout","handleInheritHierarchy","hierarchyTypeCode","inheritedHierarchyTypeCode","setInheritedHierarchy","handleUninheritHierarchy","removeInheritedHierarchy","importTypes","onNodeChange","showErrorAsDialog","static","geoObject","localizationService","onChangeSubject","generateAttributeEditors","editors","attrs","slice","isChangeOverTime","ChangeRequestChangeOverTimeAttributeEditor","StandardAttributeCRModel","attributeEditor","_isValid","skipExists","findExistingValueOverTimeByOid","attributeCode","vot","existsAtDate","existEditors","valLen","isDelete","between","getHierarchyTypes","getHierarchyGroupedTypes","createHierarchyType","htJSON","updateHierarchyType","importSpreadsheet","configuration","json","cancelImport","importShapefile","includeAbstractTypes","getTypeAncestors","includeInheritedTypes","includeTypes","getGeoObjectSuggestions","createGeoObjectSynonym","entityId","deleteGeoObjectSynonym","synonymId","vOid","getTermSuggestions","mdAttributeId","limit","createTermSynonym","classifierId","deleteTermSynonym","createTerm","parentTermCode","termJSON","removeTerm","termCode","getNewLocaleInfo","installLocale","language","country","variant","mapboxgl","accessToken","roots","search","getGeoObjectTypes","getParentGeoObjects","childId","childTypeCode","parentTypes","recursive","getChildGeoObjects","parentId","parentTypeCode","childrenTypes","newGeoObjectInstance","gtJSON","updateGeoObjectType","addAttributeType","geoObjTypeId","attributeType","updateAttributeType","deleteAttributeType","addAttributeTermTypeOption","term","updateAttributeTermTypeOption","deleteAttributeTermTypeOption","getGeoObject","getGeoObjectBounds","getGeoObjectBoundsAtDate","getGeoObjectByCode","getHierarchiesForGeoObject","getGeoObjectSuggestionsTypeAhead","getScheduledJobs","sortAttr","isAscending","getCompletedScheduledJobs","getScheduledJob","historyId","onlyUnresolved","getExportDetails","resolveScheduledJob","submitValidationResolve","config","submitErrorResolve","getMasterLists","getMasterListHistory","versionType","getAllMasterListVersions","getMasterListVersion","getLocales","getGeoObjectOverTime","geoObjectCode","newGeoObjectOverTime","setAttributeVersions","collection","list","createMasterListVersion","publishMasterListVersions","deleteMasterList","deleteMasterListVersion","publishMasterList","getMasterList","applyGeoObjectEdit","masterListId","notes","applyGeoObjectCreate","parentTreeNode","prop","val","getTime","valueAttribute","publishShapefile","getMasterListsByOrg","getPublishMasterListJobs","getDatasetBounds","getOrganizations","exportToFhir","systemId","getCustomAttrCfg","externalId","getConfigForES","externalSystemId","unlock","run","getJobs","getFhirExportImplementations","getFhirImportImplementations","getMyTasks","pageNum","whereStatus","completeTask","taskId","setTaskStatus","bbox","fontSize","createSVGPoint","matrixTransform","getScreenCTM","inverse","bbox1","bbox2","selection","configurationChange","stateChange","onNext","emit","locations","onBack","hasProblems","locationProblems","resolved","handleError","exclusions","problem","exclusion","termProblems","changeRequestService","geoObjectId","reason","dateStr","loading","dataSource","Observable","observer","results","isGeoObjectTypeRC","handleDateChange","parse","onValidChange","newValid","geometryEditor","getIsValid","changeTypeaheadLoading","typeaheadOnSelect","cancel","isNewGeoObject","submitFunction","arePropertiesValid","areParentsValid","isEditingGeometries","isAdmin","isMaintainer","isContributor","isContributer","day","getUTCDate","getUTCFullYear","getUTCMonth","findVotWithStartDate","votArray","setMasterListId","setOnSuccessCallback","func","onSuccessCallback","configureAsNew","isGeometryEditable","fetchGeoObjectType","fetchLocales","retJson","goPropertiesPre","GeoObjectOverTime","goPropertiesPost","configureFromImportError","importError","object","parents","importErrorId","resolution","goSubmit","configureAsExisting","fetchGeoObject","fetchHierarchies","console","log","typeTypeCode","getTypeAheadObservable","ptn","parentSelector","force","persistModelChanges","getHierarchies","submit","_stepConfig","steps","layerChange","baseLayerChange","baselayerIconHover","lists","baseLayers","sprite","url","selected","contextLayerGroups","updateContextGroups","changes","currentValue","previousValue","contextGroup","contextLayers","versions","version","thisContextLayer","active","enabled","groupHasEnabledContextLayers","group","hasEnabled","cLayerGroup","cLayer","hasEnabledContextLayers","toggleContextLayer","removeContextLayer","addContextLayerModal","toggleBaseLayer","bl","geometryService","MODE","VERSIONS","ATTRIBUTES","HIERARCHY","GEOMETRY","_code","featureChange","modeChange","panelCancel","panelSubmit","mode","isEdit","updateCode","setValid","valid","preGeoObject","setEditMode","onCancelInternal","canSubmit","trim","applyInfo","isChangeRequest","onManageAttributeVersion","onManageHiearchyVersion","onEditAttributes","getElementById","scroll","behavior","queueLimit","removeAfterUpload","uploader","FileUploader","onBuildItemForm","fileItem","form","onBeforeUploadItem","onCompleteItem","fileRef","onSuccessItem","onErrorItem","onSelect","onClick","queue","uploadAll","externalSystemService","systems","system","onSystemSet","getExternalSystems","resultSet","sys","confirm","auth","orgs","organizationLabel","getOrganizationLabelFromCode","isLeaf","isPrivate","toggleIsLeaf","toggleIsGeometryEditable","toggleIsAbstract","confirmBsModalRef","geoObjectTypeManagementService","GeoObjectTypeModalStates","termOption","modalStateSubscription","onModalStateChange","onGeoObjectTypeChange","close","modalStepIndicatorService","geoObjectTypeChange","modalStepConfig","editGeoObjectType","setStepConfig","fetchOrganizationLabel","defineAttributeModal","defineAttribute","manageAttributes","editAttribute","removeAttributeType","in","newAttribute","setAttribute","attributeInputComponent","AttributeTermType","AttributeDecimalType","isFormValid","isAttrValid","validator","c","geoObjectAttributeCode","provide","NG_VALIDATORS","useExisting","multi","Directive","assign","back","manageTermOption","openAddTermOptionForm","enableTermOptionForm","replace","addTermOption","rootTerm","clearTermOption","deleteTermOption","removeTermOption","editTermOption","cancelTermOption","t","svgEl","isPrimary","d3Hierarchy","d3Tree","nodeSize","separation","getCode","treeNode","SvgHierarchyNode","renderHierarchyHeader","hg","colHeaderLabel","colHeader","headerg","hierarchyLabelW","hierarchyLabelH","headerFontSize","hierarchyLabelY","lineWidth","textWidth","html","d","headerGBbox","getRelatedHierarchies","nodeMouseover","element","nodeMousemove","nodeTooltipBbox","documentElement","scrollHeight","scrollWidth","nodeMouseleave","descends","insert","gtree","links","join","gHeader","gotHeaderW","MOUSE_HOVER_EVENT_ENTER","MOUSE_HOVER_EVENT_MOVE","MOUSE_HOVER_EVENT_EXIT","gotHeaderFontSize","substring","arrowRectD","gArrow","gotBodyFontSize","gotOptionsButtonFontSize","renderRelatedHierarchiesMenu","router","onStateChange","handleBack","handleNext","handleCancel","postalCode","handleSubmit","cancelText","navigate","onError","entityLabel","hasSynonym","createSynonym","ignoreDataAtLocation","locationLabel","undoAction","termLabel","termId","createOption","parentCode","ignoreValue","renderContent","pageTitle","sysService","changeDetectorRef","showImportConfig","importStrategies","strategy","ImportStrategy","NEW_AND_UPDATE","NEW_ONLY","UPDATE_ONLY","isExternal","isLoading","copyBlank","paginatedSystems","externalSystems","views","allHierarchyViews","allTypeViews","len0","view","len2","len9","view2","findType","findHier","filteredHierarchyViews","filteredTypeViews","getUrl","format","importStrategy","externalSystem","onSelectHierarchy","onSelectType","checkDates","setImportSource","checkDateFieldValidity","startDateField","dateFields","dateFieldComponentsArray","toArray","field","inputName","setInvalid","onCreate","createDate","lastUpdateDate","write","read","onView","onEdit","pair","ret","onDelete","arr","onFormat","route","location","today","todayString","getDateString","objectKeys","page","count","requests","columns","filterCriteria","ascending","hasBaseDropZoneOver","sortable","snapshot","paramMap","toggleId","uploadRequest","doc","documents","isSorting","onSort","getGOTLabel","onUpload","onDownloadFile","fileOid","href","onDeleteFile","fileOverBase","pageChange","onExecute","getFirstGeoObjectInActions","uid","onReject","deletedRequestId","onUpdate","applyActionStatusProperties","decisionMaker","getUsername","requestTrackBy","toggle","replaceState","parentElement","className","includes","criteria","getActiveDetailComponent","endsWith","isRequestTooOld","firstAction","UPDATEGEOOBJECTACTION","canEdit","permissions","encapsulation","ViewEncapsulation","None","getEditAction","entries","hierarchyEntry","generateEditors","editAction","validEditors","validateEditors","hasTimeConflict","checkRanges","hasExistConflict","checkExistRanges","includeUnmodified","diff","entry","HierarchyCREditor","ValueOverTimeCREditor","valueOverTime","votDiff","createNewVersion","original","createEmptyHierarchyEntry","hierarchyOverTime","ValueOverTime","constructNewDiff","terms","getGeoObjectTypeTermAttributeOptions","ChangeType","ADD","changeRequestAttributeEditor","getGeoObjectTimeRangeStorage","getValueFromGeoObjectForDiff","validateDate","getDateFromDateString","end","validateUpdateReference","missingReference","conflictMessages","Set","newStartDate","oldStartDate","goRange","oldValue","removeEmptyDiff","START_DATE","oldEndDate","newEndDate","END_DATE","newValue","coordinate","Number","parseFloat","toFixed","areValuesEqual","VALUE","setLocalizedValue","diffs","val1","val2","localeValue","lv2","getValueAtLocale","locale","lv1","lv","getValue","updateAction","REMOVE","votc","requestService","elementRef","isValidChange","viewModels","isRootOfHierarchy","isInitialized","calculateViewModels","onAddNewVersion","hasLocalizationChanged","viewModel","onDateChange","summaryKey","NEW","v","VersionDiffView","termAttributeCode","onApprove","ACCEPTED","REJECTED","onPending","PENDING","pType","loopI","goCode","ancestors","p","ancestor","setParentValue","toggleGeometryEditing","toggleGeometryView","mapRowHeight","getElementsByClassName","offsetHeight","getOrCreateLayer","toggleOldGeometryView","context","Layer","LayerColor","oldLayer","OLD","manualCoordinateChange","newCoordinateX","newCoordinateY","newX","newY","num","latValid","isFinite","Math","abs","longValid","isLongitude","ControlContainer","NgForm","host","viewProviders","isContributorOnly","isContributerOnly","urlSubscriber","highlightOid","customEvent","onManageVersion","cHierarchies","parentMap","calculate","time","pot","onManageVersions","mainForm","pService","order","isPublished","isRefreshing","isWritable","showInvalid","searchPlaceholder","setList","onPageChange","refreshProgress","handleProgressChange","baseUrl","hostname","port","notifier","webSocket","_list","listAttrs","calculateListAttributes","onShowInvalidChange","getFilter","clearFilters","toggleFilter","isCollapsed","newFilter","getTypeaheadDataObservable","base","unshift","total","f","s","handleInputChange","handleListChange","isFilterable","dependency","editModal","onPublish","historyOid","onNewGeoObject","onExport","encodeURIComponent","onWheel","onDeleteMasterListVersion","updateList","onViewMetadata","onPublishShapefile","onExportToFhir","onDownloadShapefile","isForDateValid","ioService","activeJobsPage","completeJobsPage","activeTimeCounter","completeTimeCounter","isViewAllOpen","onActiveJobsPageChange","pollingData","interval","onCompleteJobsPageChange","formatJobStatus","job","formatStepConfig","stepConfig","stage","getJobStatus","getCompletedStatus","jobStage","targetStage","jobPos","onViewAllCompleteJobs","onCancelScheduledJob","jobId","onResolveScheduledJob","allSelected","timeCounter","isPolling","hasRowValidationProblem","formatAffectedRows","rows","formatValidationResolve","onProblemResolved","getFriendlyProblemType","probType","onConflictAction","importErrors","problems","onViewAllActiveJobs","toggleAll","row","onReuploadAndResume","onProblemResolvedListener","onEditGeoObject","searchLabel","getString","conflict","getValidationProblemDisplayLabel","onIgnore","cfg","validationProblemId","onCreateSynonym","title","warning","errorMessage","taskService","inProgressTasks","completedTasks","onInProgressTasksPageChange","onCompletedTasksPageChange","onCompleteTask","task","onMoveTaskToInProgress","onToggleCompletedTasks","rService","subscription","implementations","reset","fieldChange","levels","level","onSelectMasterList","addLevel","versionId","removeLevel","DEFAULT_MAPPING_STRATEGY","cOrg","levelRows","orgUnitGroups","levelRow","levelNum","isAttributeEditor","esConfig","clearMappingData","onChangeHierarchy","buildDefaultMappings","lvl","mappings","orgUnitGroupId","onSelectLevelType","attrCfg","editorIndex","getEditorIndex","mapping","attrConfigInfos","info","cgrAttr","cgrAttrName","deleteMapping","addNewMapping","attributeMappingStrategy","dhis2AttrName","levelRowIndex","newLevelNum","configureAttributes","onSelectGeoObjectType","getTermOptions","dhis2Id","dhis2Attrs","dhis2Attr","onChangeDHIS2Attr","isDifferentGot","infos","mapCgrAttr","isOrgUnitGroup","attributeMappingStrategies","onChangeTargetType","onSuccess","onRemove","isImport","cSystem","oIndex","sIndex","handleFieldChange","onOrganizationSelected","onChangeExternalSystem","implementation","onRun","onGenerateFile","open","stepLabel","configService","configOid","exportErrors","mapService","longitude","latitude","SEARCH","VIEW","editSessionEnabled","displayDateRequiredError","vectorLayers","preventSingleClick","hideSearchOptions","geoObjectUid","backReference","geoObj","Map","container","metadata","sources","mapbox","tileSize","glyphs","protocol","attributionControl","initMap","onModeChange","NavigationControl","visualizePitch","AttributionControl","compact","handleMapClickEvent","fc","zoomToFeature","showOriginalGeometry","addVectorLayer","hideOriginalGeometry","removeVectorLayer","onPanelCancel","onPanelSubmit","SuccessModalComponent","class","changeRequestId","handleBasemapStyle","baseLayer","setStyle","timer","bounds","maxZoom","onContextLayerChange","tiles","navigator","groupHasContextLayers","hasCLayers","toolsIconHover","editOnly","published","GenericModalComponent","buttons","shouldClose","llb","vLayer","prevLayer","onFeatureChange","setFilter","tab","handleTab","dateCondition","beforeTypeCondition","filterChange","onEventChange","deleteEvent","jsEvent","transitionEvent","DRAW_SCALE_MULTIPLIER","VIEWPORT_SCALE_FACTOR_X","VIEWPORT_SCALE_FACTOR_Y","GRAPH_ACTIVE_TRANSITION_HIGHLIGHT_COLOR","GRAPH_GO_LABEL_COLOR","GRAPH_CIRCLE_FILL","GRAPH_LINE_COLOR","changeDetector","activeTransition","allTypes","draggable","effectAllowed","disable","handle","beforeTypeCode","afterTypeCode","eventDate","transitions","setActiveTransition","highlight","trans","sourceCode","targetCode","uuid","v4","sourceType","targetType","transitionType","impact","calculateDerivedAttributes","renderVisual","mouseEvent","transitionOid","validChange","property","targetText","sourceText","clear","localizeTransitionImpact","localizeTransitionType","stats","sourceStats","targetStats","updown","typeUpdown","typePart","onChangeTypeUpdown","onDragStart","onDragEnd","onDragged","onDraggableCopied","onDraggableLinked","onDraggableMoved","onDragCanceled","onDragover","newIndex","root","appData","generateAppData","renderingData","generateRenderingData","depth","linkDataMappings","multipleParentLinks","link","d3Data","dx","dy","d3RenderingData","parentNode","isSource","childNode","grandChild","isChildOfOtherNode","typeaheadParent","exportToExcel","svgHierarchyType","dragging","getBbox","inheritNode","heritX","heritY","inheritBbox","uninheritNode","uninheritBbox","getTreeNode","hideRelatedHierarchy","existingSecondary","existingMenu","contextMenuGroup","hasActionsPermissions","titleLabel","actionsTitle","removeFromHierarchyLabel","noRelatedHierLabel","hideRelatedHierarchyLabel","uninheritLabel","inheritLabel","isSecondaryHierarchyRendered","numActions","removeWidth","hideRelatedWidth","uninheritWidth","existingSecondaryCode","secondaryHierarchy","relatedGotHasParents","inheritWidth","relatedHierarchyCode","relatedHierarchy","relatedHierarchyLabel","noHierLabelWidth","heightAdditions","widthPadding","renderSecondaryHierarchy","removeGotFromHierarchy","onClickUninheritHierarchy","onClickInheritHierarchy","myBbox","primaryHierBbox","gSecondary","paddingLeft","secondaryGot","secondaryGotBbox","gConnector","toRoot","allGeoObjectTypes","gObj","selectedGeoObjectType","onDeleteAttribute","immediateParent","directParent","currentDirectParent","getLowestLevelFromHierarchyEntry","oldParents","newValueStrConcat","removeType","newParents","parentType","HierarchyOverTimeEntry","currentImmediateParent","findAction","component","populate","_value","convertValueForDisplay","calculateSummaryKey","convertDateForDisplay","convertOldValueForDisplay","Array","attrOpts","hasTime","hasValue","UPDATE","TIME_CHANGE","VALUE_CHANGE","UNMODIFIED","DELETE","summaryKeyData","newKey","localizeSummaryKey","summaryKeyLocalized","conflictMessagesHasSeverity","severity","has","msg","hasError","size","hasWarning","applyAction","saveDraw","startEdit","endEdit","latestPeriodIsActive","periods","activeEntry","forDateEntry","infinityDayPadding","dataTimeSpan","_showHint","showHint","generate","timeline","timelines","period","setActiveTimelineEntry","forDateIndex","navigateRelative","amount","nextIndex","sharedAttributeEditor","generatePeriods","generateTimelines","calculateDataTimeSpan","endDay","startDay","displayStartDate","displayEndDate","span","currentTimeline","daysLeft","daysInPeriod","daysInFirstEntry","timelineEntry1","timelineEntry2","timelineEntry","boundaries","startIndex","boundary","isStart","isEnd","endIndex","dlen","addDay","calculateView","newVal","onValueChange","_mapHeight","mapDiv","floor","random","zoomToBbox","mapHeight","bboxCode","bboxType","bboxDate","elRef","editEmitter","visible","save","onAdd","nodes","isExpandedField","idField","expanded","curAction","cuDetail","arDetail","spDetail","hasConflict","onCloneGeometry","hasDuplicateDate","originalGeoObjectOverTime","geoObjectOverTime","vAttributes","isVersionForHighlight","votArr","getVersionData","vAttribute","getDefaultLocaleVal","defVal","locVal","setDateAttribute","moment","localeData","longDateFormat","setInfinity","PRESENT","onCloneGeometryToNewVersion","geoObjectOverTimeInput","transform","items","unassignedGeoObjTypes","buildUnassignedGeoObjTypes","Pipe","pure","routes","path","canActivate","AuthGuard","MaintainerGuard","ContributerGuard","LocationStrategy","useClass","HashLocationStrategy","forChild"],"mappings":"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AAQ,CACvBC,QAAS,WAGd,GAA0B,SAAtB,EAAK/G,cAAiD,cAAtB,EAAKA,aAA8B,CAC1E,IAAIgG,EAEJ,GAFIA,EAASrF,EAAMqE,QAAQjD,YAEf,CACR,IAAI,EAAS,IAAI,EAAAkE,aACjBD,EAAOtF,SAAQ,SAAAmF,GACXA,EAAMnF,SAAQ,SAAAsG,GACVA,EAAQtG,SAAQ,SAAAwF,GACZ,EAAOC,OAAOD,YAK1B,EAAKnG,IAAI+G,UAAU,EAAQ,CACvBC,QAAS,W,iCAtkBxBE,I,oCAAAA,EAAe,QAAfA,EAAe,O,EAD5B,GACa,EAAAA,mB,+DAAAA,EAAe,E,KAD3B,EAAAC,c,uBAmBa1H,eAAc,E,KAAvB,EAAA2H,Y,0GChCL,WACA,OACA,QACA,QACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UAEA,UACA,UACA,UACA,UACA,UACA,UAEA,UAEA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UAEA,UACA,UAEA,UAEA,OACA,cACA,UACA,UACA,UACA,UACA,UAEA,U,8FAEA,4B,wCA2JaC,I,iCAAAA,I,sCA/CE,CACP,GAAAC,WACA,GAAAC,iBACA,GAAAC,2BACA,GAAAC,qBACA,GAAAC,UACA,GAAAC,+BACA,GAAAC,gBACA,GAAAC,YACA,EAAAC,SACA,GAAAC,oBACA,GAAAC,uBACA,GAAAC,6BACA,GAAAC,wBACH,SAzHQ,CACL,EAAAC,aACA,EAAAC,aACA,EAAAC,YACA,EAAAC,oBACA,EAAAC,iBA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","file":"1.chunk.js","sourcesContent":["import { Injectable, Output, EventEmitter } from \"@angular/core\";\n\nimport MapboxDraw from \"@mapbox/mapbox-gl-draw\";\nimport { Map, LngLat, LngLatBounds } from \"mapbox-gl\";\n\nimport { Layer } from \"../component/geoobject-shared-attribute-editor/manage-versions-model\";\n\n// eslint-disable-next-line no-unused-vars\ndeclare let acp: any;\n\n/**\n * This is a generic service used for rendering layers from ValueOverTime objects\n */\n@Injectable()\nexport class GeometryService {\n\n map: Map;\n\n layers: Layer[] = [];\n\n geometryType: String;\n\n readOnly: boolean;\n\n // @Output() layersChange: EventEmitter = new EventEmitter();\n\n editingControl: any = null;\n\n simpleEditControl: any = null;\n\n editingLayer: Layer;\n\n @Output() geometryChange = new EventEmitter();\n\n // eslint-disable-next-line no-useless-constructor\n constructor() { }\n\n ngOnInit() {\n window.onbeforeunload = () => this.destroy();\n }\n\n initialize(map: Map, geometryType: String, readOnly: boolean) {\n this.map = map;\n this.geometryType = geometryType;\n // this.editingControl = null;\n\n this.addLayers();\n\n this.map.on(\"draw.create\", () => {\n this.saveEdits();\n });\n this.map.on(\"draw.delete\", () => {\n this.saveEdits();\n });\n this.map.on(\"draw.update\", () => {\n this.saveEdits();\n });\n }\n\n destroy(destroyMap: boolean = true): void {\n if (this.editingControl != null) {\n this.map.removeControl(this.editingControl);\n this.editingControl = null;\n }\n\n if (this.map != null && destroyMap) {\n this.map.remove();\n this.map = null;\n } else if (this.map != null) {\n this.removeLayers();\n }\n\n if (this.layers != null) {\n this.layers.forEach(layer => {\n layer.isEditing = false;\n layer.isRendering = false;\n });\n }\n\n this.editingLayer = null;\n this.layers = [];\n }\n\n startEditing(layer: Layer) {\n if (this.isEditing()) {\n this.stopEditing();\n }\n\n this.editingLayer = layer;\n this.editingLayer.isEditing = true;\n\n if (!this.readOnly) {\n this.enableEditing();\n }\n\n this.addEditingLayers();\n }\n\n stopEditing(rerender: boolean = true) {\n if (this.isEditing()) {\n this.saveEdits(rerender);\n\n this.editingLayer.isEditing = false;\n this.editingLayer = null;\n\n this.editingControl.deleteAll();\n this.map.removeControl(this.editingControl);\n\n this.editingControl = null;\n }\n }\n\n isEditing(): boolean {\n return this.editingLayer != null;\n }\n\n setPointCoordinates(lat: any, long: any) {\n if (this.editingLayer != null) {\n this.editingControl.set({\n type: \"FeatureCollection\",\n features: [{\n id: this.editingLayer.oid,\n type: \"Feature\",\n properties: {},\n geometry: { type: \"Point\", coordinates: [long, lat] }\n }]\n });\n\n this.editingControl.changeMode(\"simple_select\", { featureIds: this.editingLayer.oid });\n\n this.saveEdits();\n\n /*\n this.editingLayer.value = {\n type: 'FeatureCollection',\n features: [{\n id: this.editingLayer.oid,\n type: 'Feature',\n properties: {},\n geometry: { type: 'Point', coordinates: [ long, lat ] }\n }]\n };\n */\n\n /*\n this.editingLayer.value.coordinates = [ -97.4870830718814, 41.84836050415993 ];\n\n this.editingControl.set(this.editingLayer.value);\n\n this.removeLayers();\n this.addLayers();\n\n this.editingControl.changeMode( 'simple_select', { featureIds: this.editingLayer.oid } );\n */\n }\n }\n\n isValid(): boolean {\n if (!this.readOnly) {\n let isValid: boolean = false;\n\n if (this.editingControl != null) {\n let featureCollection: any = this.editingControl.getAll();\n\n if (featureCollection.features.length > 0) {\n isValid = true;\n }\n }\n\n return isValid;\n }\n\n return true;\n }\n\n saveEdits(rerender: boolean = true): void {\n if (this.editingLayer != null) {\n let geoJson = this.getDrawGeometry();\n\n this.editingLayer.editPropagator.value = geoJson;\n\n if (rerender) {\n this.removeLayers();\n this.addLayers();\n }\n }\n }\n\n public reload(): void {\n if (this.map != null) {\n this.removeLayers();\n this.addLayers();\n\n if (this.editingControl != null) {\n this.editingControl.deleteAll();\n }\n\n this.addEditingLayers();\n }\n }\n\n setEditing(isEditing: boolean, layer: Layer) {\n if (this.isEditing()) {\n this.stopEditing();\n }\n\n layer.isEditing = isEditing;\n\n if (isEditing) {\n this.startEditing(layer);\n }\n }\n\n setRendering(isRendering: boolean, layer: Layer) {\n layer.isRendering = isRendering;\n this.addLayer(layer);\n }\n\n addLayer(newLayer: Layer) {\n let existingIndex = this.layers.findIndex((findLayer: Layer) => { return findLayer.oid === newLayer.oid; });\n\n if (existingIndex !== -1) {\n this.layers.splice(existingIndex, 1);\n this.layers.push(newLayer);\n } else {\n this.layers.push(newLayer);\n }\n\n if (newLayer.isEditing) {\n this.startEditing(newLayer);\n }\n\n this.layers = this.layers.sort((a, b) => { return a.zindex - b.zindex; });\n\n this.removeLayers();\n this.addLayers();\n }\n\n getLayers(): Layer[] {\n return this.layers;\n }\n\n getRenderedLayers(): Layer[] {\n return this.layers.filter(layer => layer.isRendering);\n }\n\n setLayers(layers: Layer[]): void {\n this.removeLayers();\n\n this.layers = layers.sort((a, b) => { return a.zindex - b.zindex; });\n\n this.addLayers();\n }\n\n enableEditing(): void {\n if (this.editingControl == null) {\n if (this.geometryType === \"MULTIPOLYGON\" || this.geometryType === \"POLYGON\") {\n this.editingControl = new MapboxDraw({\n controls: {\n point: false,\n line_string: false,\n polygon: true,\n trash: true,\n combine_features: false,\n uncombine_features: false\n }\n });\n } else if (this.geometryType === \"POINT\" || this.geometryType === \"MULTIPOINT\") {\n this.editingControl = new MapboxDraw({\n userProperties: true,\n controls: {\n point: true,\n line_string: false,\n polygon: false,\n trash: true,\n combine_features: false,\n uncombine_features: false\n },\n styles: [\n {\n id: \"highlight-active-points\",\n type: \"circle\",\n filter: [\"all\",\n [\"==\", \"$type\", \"Point\"],\n [\"==\", \"meta\", \"feature\"],\n [\"==\", \"active\", \"true\"]],\n paint: {\n \"circle-radius\": 13,\n \"circle-color\": \"#33FFF9\",\n \"circle-stroke-width\": 4,\n \"circle-stroke-color\": \"white\"\n }\n },\n {\n id: \"points-are-blue\",\n type: \"circle\",\n filter: [\"all\",\n [\"==\", \"$type\", \"Point\"],\n [\"==\", \"meta\", \"feature\"],\n [\"==\", \"active\", \"false\"]],\n paint: {\n \"circle-radius\": 10,\n \"circle-color\": \"#800000\",\n \"circle-stroke-width\": 2,\n \"circle-stroke-color\": \"white\"\n }\n }\n ]\n });\n } else if (this.geometryType === \"LINE\" || this.geometryType === \"MULTILINE\") {\n this.editingControl = new MapboxDraw({\n controls: {\n point: false,\n line_string: true,\n polygon: false,\n trash: true,\n combine_features: false,\n uncombine_features: false\n }\n });\n }\n\n if (this.map.getSource(\"mapbox-gl-draw-cold\") == null) {\n this.map.addControl(this.editingControl);\n }\n }\n }\n\n addEditingLayers(): void {\n if (this.editingLayer != null && this.editingControl != null) {\n let val = this.editingLayer.editPropagator.value;\n\n if (val) {\n this.editingControl.add(this.editingLayer.editPropagator.value);\n }\n }\n }\n\n removeSource(prefix: string): void {\n if (!this.map) {\n return;\n }\n\n let sourceName: string = prefix + \"-geoobject\";\n\n if (this.geometryType === \"MULTIPOLYGON\" || this.geometryType === \"POLYGON\") {\n if (this.map.getLayer(sourceName + \"-polygon\") != null) {\n this.map.removeLayer(sourceName + \"-polygon\");\n }\n } else if (this.geometryType === \"POINT\" || this.geometryType === \"MULTIPOINT\") {\n if (this.map.getLayer(sourceName + \"-point\") != null) {\n this.map.removeLayer(sourceName + \"-point\");\n }\n } else if (this.geometryType === \"LINE\" || this.geometryType === \"MultiLine\") {\n if (this.map.getLayer(sourceName + \"-line\") != null) {\n this.map.removeLayer(sourceName + \"-line\");\n }\n }\n\n if (this.map.getSource(sourceName) != null) {\n this.map.removeSource(sourceName);\n }\n }\n\n removeLayers(): void {\n if (this.layers != null && this.layers.length > 0) {\n let len = this.layers.length;\n\n for (let i = 0; i < len; ++i) {\n let layer = this.layers[i];\n this.removeSource(layer.oid);\n }\n }\n }\n\n addLayers(): void {\n if (this.layers != null && this.layers.length > 0) {\n let len = this.layers.length;\n for (let i = 0; i < len; ++i) {\n let layer = this.layers[i];\n\n if (layer.isRendering) {\n this.renderGeometryAsLayer(layer.editPropagator == null ? layer.geojson : layer.editPropagator.value, layer.oid, layer.color);\n }\n }\n }\n }\n\n renderGeometryAsLayer(geometry: any, sourceName: string, color: string) {\n let finalSourceName: string = sourceName + \"-geoobject\";\n\n if (!this.map) {\n return;\n }\n if (!geometry) {\n return;\n }\n\n this.map.addSource(finalSourceName, {\n type: \"geojson\",\n data: {\n type: \"FeatureCollection\",\n features: []\n }\n });\n\n if (this.geometryType === \"MULTIPOLYGON\" || this.geometryType === \"POLYGON\") {\n // Polygon Layer\n this.map.addLayer({\n id: finalSourceName + \"-polygon\",\n type: \"fill\",\n source: finalSourceName,\n paint: {\n \"fill-color\": color,\n \"fill-outline-color\": \"black\",\n \"fill-opacity\": 0.7\n }\n });\n } else if (this.geometryType === \"POINT\" || this.geometryType === \"MULTIPOINT\") {\n // Point layer\n this.map.addLayer({\n id: finalSourceName + \"-point\",\n type: \"circle\",\n source: finalSourceName,\n paint: {\n \"circle-radius\": 3,\n \"circle-color\": color,\n \"circle-stroke-width\": 2,\n \"circle-stroke-color\": \"#FFFFFF\"\n }\n });\n } else if (this.geometryType === \"LINE\" || this.geometryType === \"MULTILINE\") {\n this.map.addLayer({\n id: finalSourceName + \"-line\",\n source: finalSourceName,\n type: \"line\",\n layout: {\n \"line-join\": \"round\",\n \"line-cap\": \"round\"\n },\n paint: {\n \"line-color\": color,\n \"line-width\": 2\n }\n });\n }\n\n ( this.map.getSource(finalSourceName)).setData(geometry);\n }\n\n getDrawGeometry(): any {\n if (this.editingControl != null) {\n let featureCollection: any = this.editingControl.getAll();\n\n if (featureCollection.features.length > 0) {\n // The first Feature is our GeoObject.\n\n // Any additional features were created using the draw editor. Combine them into the GeoObject if its a multi-polygon.\n if (this.geometryType === \"MULTIPOLYGON\") {\n let polygons = [];\n\n for (let i = 0; i < featureCollection.features.length; i++) {\n let feature = featureCollection.features[i];\n\n if (feature.geometry.type === \"MultiPolygon\") {\n for (let j = 0; j < feature.geometry.coordinates.length; j++) {\n polygons.push(feature.geometry.coordinates[j]);\n }\n } else {\n polygons.push(feature.geometry.coordinates);\n }\n }\n\n return {\n coordinates: polygons,\n type: \"MultiPolygon\"\n };\n } else if (this.geometryType === \"MULTIPOINT\") {\n let points = [];\n\n for (let i = 0; i < featureCollection.features.length; i++) {\n let feature = featureCollection.features[i];\n\n if (feature.geometry.type === \"MultiPoint\") {\n for (let j = 0; j < feature.geometry.coordinates.length; j++) {\n points.push(feature.geometry.coordinates[j]);\n }\n } else {\n points.push(feature.geometry.coordinates);\n }\n }\n\n return {\n coordinates: points,\n type: \"MultiPoint\"\n };\n } else if (this.geometryType === \"MULTILINE\") {\n let lines = [];\n\n for (let i = 0; i < featureCollection.features.length; i++) {\n let feature = featureCollection.features[i];\n\n if (feature.geometry.type === \"MultiLineString\") {\n for (let j = 0; j < feature.geometry.coordinates.length; j++) {\n lines.push(feature.geometry.coordinates[j]);\n }\n } else {\n lines.push(feature.geometry.coordinates);\n }\n }\n\n return {\n coordinates: lines,\n type: \"MultiLineString\"\n };\n } else {\n return featureCollection.features[0].geometry;\n }\n }\n }\n\n return null;\n }\n\n public static createEmptyGeometryValue(geometryType: String): any {\n let value = { type: geometryType, coordinates: [] };\n\n if (geometryType === \"MULTIPOLYGON\") {\n value.type = \"MultiPolygon\";\n } else if (geometryType === \"POLYGON\") {\n value.type = \"Polygon\";\n } else if (geometryType === \"POINT\") {\n value.type = \"Point\";\n } else if (geometryType === \"MULTIPOINT\") {\n value.type = \"MultiPoint\";\n } else if (geometryType === \"LINE\") {\n value.type = \"Line\";\n } else if (geometryType === \"MULTILINE\") {\n value.type = \"MultiLine\";\n }\n\n return value;\n }\n\n zoomToLayersExtent(): void {\n this.layers.forEach(layer => {\n if (layer.geojson != null) {\n if (this.geometryType === \"MULTIPOINT\" || this.geometryType === \"POINT\") {\n let coords = layer.geojson.coordinates;\n\n if (coords) {\n let bounds = new LngLatBounds();\n coords.forEach(coord => {\n bounds.extend(coord);\n });\n\n let center = bounds.getCenter();\n let pt = new LngLat(center.lng, center.lat);\n\n this.map.flyTo({\n center: pt,\n zoom: 9,\n essential: true\n });\n }\n } else if (this.geometryType === \"MULTIPOLYGON\" || this.geometryType === \"POLYGON\") {\n let coords = layer.geojson.coordinates;\n\n if (coords) {\n let bounds = new LngLatBounds();\n coords.forEach(polys => {\n polys.forEach(subpoly => {\n subpoly.forEach(coord => {\n bounds.extend(coord);\n });\n });\n });\n\n this.map.fitBounds(bounds, {\n padding: 20\n });\n }\n } else if (this.geometryType === \"LINE\" || this.geometryType === \"MULTILINE\") {\n let coords = layer.geojson.coordinates;\n\n if (coords) {\n let bounds = new LngLatBounds();\n coords.forEach(lines => {\n lines.forEach(subline => {\n subline.forEach(coord => {\n bounds.extend(coord);\n });\n });\n });\n\n this.map.fitBounds(bounds, {\n padding: 20\n });\n }\n }\n }\n });\n }\n\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule, DatePipe } from \"@angular/common\";\nimport { RouterModule } from \"@angular/router\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { TreeModule } from \"@circlon/angular-tree-component\";\nimport { ContextMenuModule } from \"ngx-contextmenu\";\nimport { BsDropdownModule } from \"ngx-bootstrap/dropdown\";\nimport { ButtonsModule } from \"ngx-bootstrap/buttons\";\nimport { TypeaheadModule } from \"ngx-bootstrap/typeahead\";\nimport { FileUploadModule } from \"ng2-file-upload\";\nimport { NgxPaginationModule } from \"ngx-pagination\";\nimport { ProgressbarModule } from \"ngx-bootstrap/progressbar\";\nimport { CollapseModule } from \"ngx-bootstrap/collapse\";\nimport { TabsModule } from \"ngx-bootstrap/tabs\";\nimport { ImportTypesModalComponent } from './component/hierarchy/modals/import-types-modal.component';\nimport { ExportSystemModalComponent } from './component/master-list/export-system-modal.component';\nimport { LocalizedInputComponent } from \"./component/form-fields/localized-input/localized-input.component\";\nimport { LocalizedTextComponent } from \"./component/form-fields/localized-text/localized-text.component\";\nimport { HierarchyComponent } from \"./component/hierarchy/hierarchy.component\";\nimport { CreateHierarchyTypeModalComponent } from \"./component/hierarchy/modals/create-hierarchy-type-modal.component\";\nimport { AddChildToHierarchyModalComponent } from \"./component/hierarchy/modals/add-child-to-hierarchy-modal.component\";\nimport { CreateGeoObjTypeModalComponent } from \"./component/hierarchy/modals/create-geoobjtype-modal.component\";\nimport { ManageAttributesModalComponent } from \"./component/hierarchy/geoobjecttype-management/manage-attributes-modal.component\";\nimport { DefineAttributeModalContentComponent } from \"./component/hierarchy/geoobjecttype-management/define-attribute-modal-content.component\";\nimport { EditAttributeModalContentComponent } from \"./component/hierarchy/geoobjecttype-management/edit-attribute-modal-content.component\";\nimport { ShapefileModalComponent } from \"./component/importer/modals/shapefile-modal.component\";\nimport { AttributesPageComponent } from \"./component/importer/modals/attributes-page.component\";\nimport { LocationPageComponent } from \"./component/importer/modals/location-page.component\";\nimport { LocationProblemPageComponent } from \"./component/importer/modals/location-problem-page.component\";\nimport { LocationProblemComponent } from \"./component/importer/modals/location-problem.component\";\nimport { TermProblemPageComponent } from \"./component/importer/modals/term-problem-page.component\";\nimport { TermProblemComponent } from \"./component/importer/modals/term-problem.component\";\nimport { SpreadsheetModalComponent } from \"./component/importer/modals/spreadsheet-modal.component\";\nimport { DataPageComponent } from \"./component/data-page/data-page.component\";\nimport { TermOptionWidgetComponent } from \"./component/hierarchy/geoobjecttype-management/term-option-widget.component\";\nimport { AttributeInputComponent } from \"./component/hierarchy/geoobjecttype-management/attribute-input.component\";\nimport { EditTermOptionInputComponent } from \"./component/hierarchy/geoobjecttype-management/edit-term-option-input.component\";\nimport { ManageTermOptionsComponent } from \"./component/hierarchy/geoobjecttype-management/manage-term-options.component\";\nimport { GeoObjectTypeInputComponent } from \"./component/hierarchy/geoobjecttype-management/geoobjecttype-input.component\";\nimport { ManageGeoObjectTypeModalComponent } from \"./component/hierarchy/modals/manage-geoobjecttype-modal.component\";\nimport { MasterListManagerComponent } from \"./component/master-list/master-list-manager.component\";\nimport { PublishModalComponent } from \"./component/master-list/publish-modal.component\";\nimport { ExportFormatModalComponent } from \"./component/master-list/export-format-modal.component\";\nimport { RequestTableComponent } from \"./component/crtable/request-table.component\";\nimport { CreateUpdateGeoObjectDetailComponent } from \"./component/crtable/action-detail/create-update-geo-object/detail.component\";\nimport { GeoObjectSharedAttributeEditorComponent } from \"./component/geoobject-shared-attribute-editor/geoobject-shared-attribute-editor.component\";\nimport { StabilityPeriodComponent } from \"./component/geoobject-shared-attribute-editor/stability-period.component\";\nimport { ManageVersionsComponent } from \"./component/geoobject-shared-attribute-editor/manage-versions.component\";\nimport { StandardAttributeEditorComponent } from \"./component/geoobject-shared-attribute-editor/standard-attribute-editor.component\";\nimport { SubmitChangeRequestComponent } from \"./component/submit-change-request/submit-change-request.component\";\nimport { ChangeRequestPageComponent } from \"./component/change-request-page/change-request-page.component\";\nimport { GeoObjectEditorComponent } from \"./component/geoobject-editor/geoobject-editor.component\";\nimport { GeoObjectEditorMapComponent } from \"./component/geoobject-editor-map/geoobject-editor-map.component\";\nimport { SimpleEditControl } from \"./component/geoobject-editor-map/simple-edit-control/simple-edit-control.component\";\nimport { CascadingGeoSelector } from \"./component/cascading-geo-selector/cascading-geo-selector\";\nimport { TreeGeoSelector } from \"./component/tree-geo-selector/tree-geo-selector\";\nimport { ActionDetailModalComponent } from \"./component/crtable/action-detail/action-detail-modal.component\";\nimport { DataImporterComponent } from \"./component/importer/dataimporter.component\";\nimport { DataExportComponent } from \"./component/data-export/data-export.component\";\nimport { MasterListComponent } from \"./component/master-list/master-list.component\";\nimport { PublishedMasterListHistoryComponent } from \"./component/master-list/published-master-list-history.component\";\nimport { MasterListHistoryComponent } from \"./component/master-list/master-list-history.component\";\nimport { MasterListViewComponent } from \"./component/master-list/master-list-view.component\";\nimport { ScheduledJobsComponent } from \"./component/scheduled-jobs/scheduled-jobs.component\";\nimport { JobComponent } from \"./component/scheduled-jobs/job.component\";\nimport { JobConflictModalComponent } from \"./component/scheduled-jobs/conflict-widgets/job-conflict-modal.component\";\nimport { ReuploadModalComponent } from \"./component/scheduled-jobs/conflict-widgets/reupload-modal.component\";\nimport { ParentReferenceProblemWidgetComponent } from \"./component/scheduled-jobs/conflict-widgets/parent-reference-problem-widget.component\";\nimport { TermReferenceProblemWidgetComponent } from \"./component/scheduled-jobs/conflict-widgets/term-reference-problem-widget.component\";\nimport { RowValidationProblemWidgetComponent } from \"./component/scheduled-jobs/conflict-widgets/row-validation-problem-widget.component\";\nimport { StepIndicatorComponent } from \"./component/scheduled-jobs/step-indicator.component\";\nimport { ImportProblemWidgetComponent } from \"./component/scheduled-jobs/conflict-widgets/import-problem-widget.component\";\nimport { TaskViewerComponent } from \"./component/task-viewer/task-viewer.component\";\nimport { FhirExportSynchronizationConfigComponent } from './component/synchronization-config/fhir-export-synchronization-config.component';\nimport { Dhis2SynchronizationConfigComponent } from './component/synchronization-config/dhis2-synchronization-config.component';\nimport { SynchronizationConfigManagerComponent } from \"./component/synchronization-config/synchronization-config-manager.component\";\nimport { SynchronizationConfigModalComponent } from \"./component/synchronization-config/synchronization-config-modal.component\";\nimport { SynchronizationConfigComponent } from \"./component/synchronization-config/synchronization-config.component\";\nimport { SyncDetailsComponent } from \"./component/synchronization-config/details.component\";\n\nimport { LocationManagerComponent } from \"./component/location-manager/location-manager.component\";\nimport { DatasetLocationManagerComponent } from \"./component/location-manager/dataset-location-manager.component\";\nimport { ContextLayerModalComponent } from \"./component/location-manager/context-layer-modal.component\";\nimport { LayerPanelComponent } from \"./component/location-manager/layer-panel.component\";\nimport { FeaturePanelComponent } from \"./component/location-manager/feature-panel.component\";\nimport { GeometryPanelComponent } from \"./component/location-manager/geometry-panel.component\";\n\nimport { GeoObjectAttributeCodeValidator } from \"./factory/form-validation.factory\";\n\nimport { GeoObjectTypePipe } from \"./pipe/geoobjecttype.pipe\";\nimport { GeoObjectAttributeExcludesPipe } from \"./pipe/geoobject-attribute-excludes.pipe\";\nimport { ToEpochDateTimePipe } from \"./pipe/to-epoch-date-time.pipe\";\nimport { RegistryService } from \"./service/registry.service\";\nimport { TaskService } from \"./service/task.service\";\nimport { HierarchyService } from \"./service/hierarchy.service\";\nimport { SynchronizationConfigService } from \"./service/synchronization-config.service\";\nimport { LocalizationManagerService } from \"./service/localization-manager.service\";\nimport { ChangeRequestService } from \"./service/change-request.service\";\nimport { IOService } from \"./service/io.service\";\nimport { MapService } from \"./service/map.service\";\nimport { GeoObjectTypeManagementService } from \"./service/geoobjecttype-management.service\";\n\nimport { RegistryRoutingModule } from \"./registry-routing.module\";\nimport { SharedModule } from \"../shared/shared.module\";\n\nimport { AccordionModule } from \"ngx-bootstrap/accordion\";\n\nimport \"../rxjs-extensions\";\nimport { FhirImportSynchronizationConfigComponent } from \"./component/synchronization-config/fhir-import-synchronization-config.component\";\nimport { TransitionEventService } from \"./service/transition-event.service\";\nimport { TransitionEventTableComponent } from \"./component/transition-event/transition-event-table.component\";\nimport { TransitionEventModalComponent } from \"./component/transition-event/transition-event-modal.component\";\nimport { HistoricalReportComponent } from \"./component/historical-report/historical-report.component\";\nimport { HistoricalEventModuleComponent } from \"./component/historical-event-module/historical-event-module.component\";\n\nimport { DndModule } from \"ngx-drag-drop\";\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n FormsModule,\n ReactiveFormsModule,\n FileUploadModule,\n TreeModule,\n ContextMenuModule,\n BsDropdownModule,\n ButtonsModule,\n TypeaheadModule,\n ProgressbarModule,\n TabsModule,\n CollapseModule,\n NgxPaginationModule,\n SharedModule,\n RegistryRoutingModule,\n DndModule,\n AccordionModule.forRoot()\n ],\n declarations: [\n HierarchyComponent,\n RequestTableComponent,\n CreateUpdateGeoObjectDetailComponent,\n ImportTypesModalComponent,\n ExportSystemModalComponent,\n FhirExportSynchronizationConfigComponent,\n FhirImportSynchronizationConfigComponent,\n Dhis2SynchronizationConfigComponent,\n CreateHierarchyTypeModalComponent,\n AddChildToHierarchyModalComponent,\n CreateGeoObjTypeModalComponent,\n ManageAttributesModalComponent,\n DefineAttributeModalContentComponent,\n ShapefileModalComponent,\n AttributesPageComponent,\n LocationPageComponent,\n LocationProblemPageComponent,\n LocationProblemComponent,\n TermProblemPageComponent,\n TermProblemComponent,\n SpreadsheetModalComponent,\n GeoObjectTypePipe,\n GeoObjectAttributeCodeValidator,\n EditAttributeModalContentComponent,\n TermOptionWidgetComponent,\n AttributeInputComponent,\n EditTermOptionInputComponent,\n ManageGeoObjectTypeModalComponent,\n GeoObjectTypeInputComponent,\n ManageTermOptionsComponent,\n LocalizedInputComponent,\n LocalizedTextComponent,\n GeoObjectSharedAttributeEditorComponent,\n StabilityPeriodComponent,\n ManageVersionsComponent,\n StandardAttributeEditorComponent,\n SubmitChangeRequestComponent,\n GeoObjectEditorComponent,\n GeoObjectAttributeExcludesPipe,\n ToEpochDateTimePipe,\n GeoObjectEditorMapComponent,\n SimpleEditControl,\n DataPageComponent,\n ChangeRequestPageComponent,\n CascadingGeoSelector,\n TreeGeoSelector,\n ActionDetailModalComponent,\n HierarchyComponent,\n DataImporterComponent,\n DataExportComponent,\n // Master List screens\n MasterListManagerComponent,\n MasterListComponent,\n MasterListHistoryComponent,\n PublishedMasterListHistoryComponent,\n PublishModalComponent,\n MasterListViewComponent,\n // Scheduled jobs\n ExportFormatModalComponent,\n ScheduledJobsComponent,\n JobComponent,\n JobConflictModalComponent,\n ReuploadModalComponent,\n ParentReferenceProblemWidgetComponent,\n TermReferenceProblemWidgetComponent,\n RowValidationProblemWidgetComponent,\n StepIndicatorComponent,\n ImportProblemWidgetComponent,\n TaskViewerComponent,\n // Synchronization Config\n SynchronizationConfigManagerComponent,\n SynchronizationConfigModalComponent,\n SynchronizationConfigComponent,\n SyncDetailsComponent,\n // Location manager\n LocationManagerComponent,\n DatasetLocationManagerComponent,\n ContextLayerModalComponent,\n LayerPanelComponent,\n FeaturePanelComponent,\n GeometryPanelComponent,\n TransitionEventTableComponent,\n TransitionEventModalComponent,\n HistoricalReportComponent,\n HistoricalEventModuleComponent\n ],\n providers: [\n MapService,\n HierarchyService,\n LocalizationManagerService,\n ChangeRequestService,\n IOService,\n GeoObjectTypeManagementService,\n RegistryService,\n TaskService,\n DatePipe,\n ToEpochDateTimePipe,\n StepIndicatorComponent,\n SynchronizationConfigService,\n TransitionEventService\n ],\n entryComponents: [\n AddChildToHierarchyModalComponent,\n CreateGeoObjTypeModalComponent,\n ManageAttributesModalComponent,\n DefineAttributeModalContentComponent,\n EditAttributeModalContentComponent,\n CreateHierarchyTypeModalComponent,\n ShapefileModalComponent,\n SpreadsheetModalComponent,\n TermOptionWidgetComponent,\n AttributeInputComponent,\n EditTermOptionInputComponent,\n ManageGeoObjectTypeModalComponent,\n GeoObjectTypeInputComponent,\n ManageTermOptionsComponent,\n GeoObjectSharedAttributeEditorComponent,\n SubmitChangeRequestComponent,\n GeoObjectEditorComponent,\n PublishModalComponent,\n ExportFormatModalComponent,\n DataPageComponent,\n ChangeRequestPageComponent,\n ActionDetailModalComponent,\n JobConflictModalComponent,\n ReuploadModalComponent,\n StepIndicatorComponent,\n SynchronizationConfigModalComponent,\n ContextLayerModalComponent,\n ExportSystemModalComponent,\n TransitionEventModalComponent\n ]\n})\nexport class RegistryModule { }\n","var map = {\n\t\"./af\": 381,\n\t\"./af.js\": 381,\n\t\"./ar\": 382,\n\t\"./ar-dz\": 383,\n\t\"./ar-dz.js\": 383,\n\t\"./ar-kw\": 384,\n\t\"./ar-kw.js\": 384,\n\t\"./ar-ly\": 385,\n\t\"./ar-ly.js\": 385,\n\t\"./ar-ma\": 386,\n\t\"./ar-ma.js\": 386,\n\t\"./ar-sa\": 387,\n\t\"./ar-sa.js\": 387,\n\t\"./ar-tn\": 388,\n\t\"./ar-tn.js\": 388,\n\t\"./ar.js\": 382,\n\t\"./az\": 389,\n\t\"./az.js\": 389,\n\t\"./be\": 390,\n\t\"./be.js\": 390,\n\t\"./bg\": 391,\n\t\"./bg.js\": 391,\n\t\"./bm\": 392,\n\t\"./bm.js\": 392,\n\t\"./bn\": 393,\n\t\"./bn-bd\": 394,\n\t\"./bn-bd.js\": 394,\n\t\"./bn.js\": 393,\n\t\"./bo\": 395,\n\t\"./bo.js\": 395,\n\t\"./br\": 396,\n\t\"./br.js\": 396,\n\t\"./bs\": 397,\n\t\"./bs.js\": 397,\n\t\"./ca\": 398,\n\t\"./ca.js\": 398,\n\t\"./cs\": 399,\n\t\"./cs.js\": 399,\n\t\"./cv\": 400,\n\t\"./cv.js\": 400,\n\t\"./cy\": 401,\n\t\"./cy.js\": 401,\n\t\"./da\": 402,\n\t\"./da.js\": 402,\n\t\"./de\": 403,\n\t\"./de-at\": 404,\n\t\"./de-at.js\": 404,\n\t\"./de-ch\": 405,\n\t\"./de-ch.js\": 405,\n\t\"./de.js\": 403,\n\t\"./dv\": 406,\n\t\"./dv.js\": 406,\n\t\"./el\": 407,\n\t\"./el.js\": 407,\n\t\"./en-au\": 408,\n\t\"./en-au.js\": 408,\n\t\"./en-ca\": 409,\n\t\"./en-ca.js\": 409,\n\t\"./en-gb\": 410,\n\t\"./en-gb.js\": 410,\n\t\"./en-ie\": 411,\n\t\"./en-ie.js\": 411,\n\t\"./en-il\": 412,\n\t\"./en-il.js\": 412,\n\t\"./en-in\": 413,\n\t\"./en-in.js\": 413,\n\t\"./en-nz\": 414,\n\t\"./en-nz.js\": 414,\n\t\"./en-sg\": 415,\n\t\"./en-sg.js\": 415,\n\t\"./eo\": 416,\n\t\"./eo.js\": 416,\n\t\"./es\": 417,\n\t\"./es-do\": 418,\n\t\"./es-do.js\": 418,\n\t\"./es-mx\": 419,\n\t\"./es-mx.js\": 419,\n\t\"./es-us\": 420,\n\t\"./es-us.js\": 420,\n\t\"./es.js\": 417,\n\t\"./et\": 421,\n\t\"./et.js\": 421,\n\t\"./eu\": 422,\n\t\"./eu.js\": 422,\n\t\"./fa\": 423,\n\t\"./fa.js\": 423,\n\t\"./fi\": 424,\n\t\"./fi.js\": 424,\n\t\"./fil\": 425,\n\t\"./fil.js\": 425,\n\t\"./fo\": 426,\n\t\"./fo.js\": 426,\n\t\"./fr\": 427,\n\t\"./fr-ca\": 428,\n\t\"./fr-ca.js\": 428,\n\t\"./fr-ch\": 429,\n\t\"./fr-ch.js\": 429,\n\t\"./fr.js\": 427,\n\t\"./fy\": 430,\n\t\"./fy.js\": 430,\n\t\"./ga\": 431,\n\t\"./ga.js\": 431,\n\t\"./gd\": 432,\n\t\"./gd.js\": 432,\n\t\"./gl\": 433,\n\t\"./gl.js\": 433,\n\t\"./gom-deva\": 434,\n\t\"./gom-deva.js\": 434,\n\t\"./gom-latn\": 435,\n\t\"./gom-latn.js\": 435,\n\t\"./gu\": 436,\n\t\"./gu.js\": 436,\n\t\"./he\": 437,\n\t\"./he.js\": 437,\n\t\"./hi\": 438,\n\t\"./hi.js\": 438,\n\t\"./hr\": 439,\n\t\"./hr.js\": 439,\n\t\"./hu\": 440,\n\t\"./hu.js\": 440,\n\t\"./hy-am\": 441,\n\t\"./hy-am.js\": 441,\n\t\"./id\": 442,\n\t\"./id.js\": 442,\n\t\"./is\": 443,\n\t\"./is.js\": 443,\n\t\"./it\": 444,\n\t\"./it-ch\": 445,\n\t\"./it-ch.js\": 445,\n\t\"./it.js\": 444,\n\t\"./ja\": 446,\n\t\"./ja.js\": 446,\n\t\"./jv\": 447,\n\t\"./jv.js\": 447,\n\t\"./ka\": 448,\n\t\"./ka.js\": 448,\n\t\"./kk\": 449,\n\t\"./kk.js\": 449,\n\t\"./km\": 450,\n\t\"./km.js\": 450,\n\t\"./kn\": 451,\n\t\"./kn.js\": 451,\n\t\"./ko\": 452,\n\t\"./ko.js\": 452,\n\t\"./ku\": 453,\n\t\"./ku.js\": 453,\n\t\"./ky\": 454,\n\t\"./ky.js\": 454,\n\t\"./lb\": 455,\n\t\"./lb.js\": 455,\n\t\"./lo\": 456,\n\t\"./lo.js\": 456,\n\t\"./lt\": 457,\n\t\"./lt.js\": 457,\n\t\"./lv\": 458,\n\t\"./lv.js\": 458,\n\t\"./me\": 459,\n\t\"./me.js\": 459,\n\t\"./mi\": 460,\n\t\"./mi.js\": 460,\n\t\"./mk\": 461,\n\t\"./mk.js\": 461,\n\t\"./ml\": 462,\n\t\"./ml.js\": 462,\n\t\"./mn\": 463,\n\t\"./mn.js\": 463,\n\t\"./mr\": 464,\n\t\"./mr.js\": 464,\n\t\"./ms\": 465,\n\t\"./ms-my\": 466,\n\t\"./ms-my.js\": 466,\n\t\"./ms.js\": 465,\n\t\"./mt\": 467,\n\t\"./mt.js\": 467,\n\t\"./my\": 468,\n\t\"./my.js\": 468,\n\t\"./nb\": 469,\n\t\"./nb.js\": 469,\n\t\"./ne\": 470,\n\t\"./ne.js\": 470,\n\t\"./nl\": 471,\n\t\"./nl-be\": 472,\n\t\"./nl-be.js\": 472,\n\t\"./nl.js\": 471,\n\t\"./nn\": 473,\n\t\"./nn.js\": 473,\n\t\"./oc-lnc\": 474,\n\t\"./oc-lnc.js\": 474,\n\t\"./pa-in\": 475,\n\t\"./pa-in.js\": 475,\n\t\"./pl\": 476,\n\t\"./pl.js\": 476,\n\t\"./pt\": 477,\n\t\"./pt-br\": 478,\n\t\"./pt-br.js\": 478,\n\t\"./pt.js\": 477,\n\t\"./ro\": 479,\n\t\"./ro.js\": 479,\n\t\"./ru\": 480,\n\t\"./ru.js\": 480,\n\t\"./sd\": 481,\n\t\"./sd.js\": 481,\n\t\"./se\": 482,\n\t\"./se.js\": 482,\n\t\"./si\": 483,\n\t\"./si.js\": 483,\n\t\"./sk\": 484,\n\t\"./sk.js\": 484,\n\t\"./sl\": 485,\n\t\"./sl.js\": 485,\n\t\"./sq\": 486,\n\t\"./sq.js\": 486,\n\t\"./sr\": 487,\n\t\"./sr-cyrl\": 488,\n\t\"./sr-cyrl.js\": 488,\n\t\"./sr.js\": 487,\n\t\"./ss\": 489,\n\t\"./ss.js\": 489,\n\t\"./sv\": 490,\n\t\"./sv.js\": 490,\n\t\"./sw\": 491,\n\t\"./sw.js\": 491,\n\t\"./ta\": 492,\n\t\"./ta.js\": 492,\n\t\"./te\": 493,\n\t\"./te.js\": 493,\n\t\"./tet\": 494,\n\t\"./tet.js\": 494,\n\t\"./tg\": 495,\n\t\"./tg.js\": 495,\n\t\"./th\": 496,\n\t\"./th.js\": 496,\n\t\"./tk\": 497,\n\t\"./tk.js\": 497,\n\t\"./tl-ph\": 498,\n\t\"./tl-ph.js\": 498,\n\t\"./tlh\": 499,\n\t\"./tlh.js\": 499,\n\t\"./tr\": 500,\n\t\"./tr.js\": 500,\n\t\"./tzl\": 501,\n\t\"./tzl.js\": 501,\n\t\"./tzm\": 502,\n\t\"./tzm-latn\": 503,\n\t\"./tzm-latn.js\": 503,\n\t\"./tzm.js\": 502,\n\t\"./ug-cn\": 504,\n\t\"./ug-cn.js\": 504,\n\t\"./uk\": 505,\n\t\"./uk.js\": 505,\n\t\"./ur\": 506,\n\t\"./ur.js\": 506,\n\t\"./uz\": 507,\n\t\"./uz-latn\": 508,\n\t\"./uz-latn.js\": 508,\n\t\"./uz.js\": 507,\n\t\"./vi\": 509,\n\t\"./vi.js\": 509,\n\t\"./x-pseudo\": 510,\n\t\"./x-pseudo.js\": 510,\n\t\"./yo\": 511,\n\t\"./yo.js\": 511,\n\t\"./zh-cn\": 512,\n\t\"./zh-cn.js\": 512,\n\t\"./zh-hk\": 513,\n\t\"./zh-hk.js\": 513,\n\t\"./zh-mo\": 514,\n\t\"./zh-mo.js\": 514,\n\t\"./zh-tw\": 515,\n\t\"./zh-tw.js\": 515\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 517;","import { ChangeRequestService } from './change-request.service';\nimport { GeoObjectTypeManagementService } from './geoobjecttype-management.service';\nimport { HierarchyService } from './hierarchy.service';\nimport { IOService } from './io.service';\nimport { LocalizationManagerService } from './localization-manager.service';\nimport { MapService } from './map.service';\nimport { RegistryService } from './registry.service';\nimport { SynchronizationConfigService } from './synchronization-config.service';\nimport { TaskService } from './task.service';\nimport { GeometryService} from './geometry.service';\n\nexport const services: any[] = [\n\tChangeRequestService,\n\tGeoObjectTypeManagementService,\n\tHierarchyService,\n\tIOService,\n\tLocalizationManagerService,\n\tMapService,\n\tRegistryService,\n\tSynchronizationConfigService,\n\tTaskService,\n\tGeometryService\n];\n\nexport * from './change-request.service';\nexport * from './geoobjecttype-management.service';\nexport * from './hierarchy.service';\nexport * from './io.service';\nexport * from './localization-manager.service';\nexport * from './map.service';\nexport * from './registry.service';\nexport * from './synchronization-config.service';\nexport * from './task.service';\nexport * from './geometry.service';","/* eslint-disable no-unused-vars */\n/* eslint-disable padded-blocks */\nimport { GeoObjectOverTime, HierarchyOverTime, GeoObjectType, AttributeType } from \"./registry\";\nimport { ActionTypes } from \"./constants\";\nimport { ValueOverTimeCREditor } from \"@registry/component/geoobject-shared-attribute-editor/ValueOverTimeCREditor\";\n\nexport enum SummaryKey {\n NEW = \"NEW\",\n UNMODIFIED = \"UNMODIFIED\",\n DELETE = \"DELETE\",\n UPDATE = \"UPDATE\",\n TIME_CHANGE = \"TIME_CHANGE\",\n VALUE_CHANGE = \"VALUE_CHANGE\",\n}\n\nexport class Document {\n fileName: string;\n oid: string;\n}\n\nexport class Geometry {\n type: string;\n coordinates: number[][] | number[];\n}\n\nexport class ValueOverTimeDiff {\n oid: string;\n action: string; // Can be one of DELETE, UPDATE, CREATE\n oldValue: any;\n newValue: any;\n newStartDate: string;\n newEndDate: string;\n oldStartDate: string;\n oldEndDate: string;\n parents?: any;\n oldParents?: any;\n}\n\n// export class AbstractAction {\n// approvalStatus: string;\n// createActionDate: Date;\n// label: string;\n// oid: string;\n// actionType: string;\n// actionLabel: string;\n// decisionMaker?: string;\n// documents: Document[];\n// }\n\nexport class AbstractAction {\n oid: string;\n actionType: ActionTypes;\n actionLabel: string;\n createActionDate: string;\n contributorNotes?: string;\n maintainerNotes?: string;\n additionalNotes?: string;\n approvalStatus: string;\n statusLabel: string;\n createdBy: string;\n documents: any[];\n permissions: string[];\n}\n\nexport class CreateGeoObjectAction extends AbstractAction {\n geoObjectJson: GeoObjectOverTime;\n parentJson: HierarchyOverTime[];\n\n constructor() {\n super();\n this.actionType = ActionTypes.CREATEGEOOBJECTACTION;\n }\n}\n\nexport class UpdateAttributeOverTimeAction extends AbstractAction {\n attributeName: string;\n attributeDiff: { \"valuesOverTime\": ValueOverTimeDiff[], hierarchyCode?: string };\n\n constructor(attributeName: string) {\n super();\n this.actionType = ActionTypes.UPDATEATTRIBUTETACTION;\n this.attributeName = attributeName;\n this.attributeDiff = { valuesOverTime: [] };\n }\n}\n\nexport class UpdateAttributeAction extends AbstractAction {\n attributeName: string;\n attributeDiff: { oldValue?: any, newValue?: any };\n\n constructor(attributeName: string) {\n super();\n this.actionType = ActionTypes.UPDATEATTRIBUTETACTION;\n this.attributeName = attributeName;\n this.attributeDiff = {};\n }\n}\n\nexport class ChangeRequestCurrentObject {\n geoObjectType: GeoObjectType;\n}\n\nexport class UpdateChangeRequestCurrentObject {\n geoObjectType: GeoObjectType;\n geoObject: GeoObjectOverTime;\n}\n\nexport class ChangeRequest {\n oid: string;\n createdBy: string;\n createDate: Date;\n approvalStatus: string;\n total: number;\n pending: number;\n documents: Document[];\n actions: AbstractAction[];\n current?: ChangeRequestCurrentObject & UpdateChangeRequestCurrentObject;\n type: string; // Can be one of [\"CreateGeoObject\", \"UpdateGeoObject\"]\n statusLabel?: string;\n phoneNumber?: string;\n email?: string;\n permissions?: string[];\n isNew?: boolean;\n\n constructor() {\n this.isNew = true;\n }\n\n public static getActionsForAttribute(cr: ChangeRequest, attributeName: string, hierarchyCode: string): AbstractAction[] {\n if (cr.type === \"CreateGeoObject\") {\n return cr.actions;\n } else {\n let newActions = [];\n\n for (let i = 0; i < cr.actions.length; ++i) {\n let action = cr.actions[i];\n\n if (action.actionType === \"UpdateAttributeAction\") {\n let updateAttrAction = action as UpdateAttributeOverTimeAction;\n\n if (updateAttrAction.attributeName === attributeName &&\n (attributeName !== \"_PARENT_\" || updateAttrAction.attributeDiff.hierarchyCode === hierarchyCode)) {\n newActions.push(cr.actions[i]);\n }\n }\n }\n\n return newActions;\n }\n }\n}\n\n// export class UpdateGeoObjectAction extends AbstractAction {\n// geoObjectJson: GeoObjectOverTime;\n// }\n//\n// export class CreateGeoObjectAction extends AbstractAction {\n// geoObjectJson: GeoObjectOverTime;\n// }\n//\n// export class AddChildAction extends AbstractAction {\n// childId: string;\n// childTypeCode: string;\n// parentId: string;\n// parentTypeCode: string;\n// hierarchyTypeCode: string;\n// contributorNotes: string;\n// maintainerNotes: string;\n// createdBy: string;\n// }\n\n// export class RemoveChildAction extends AbstractAction {\n// childId: string;\n// childTypeCode: string;\n// parentId: string;\n// parentTypeCode: string;\n// hierarchyCode: string;\n// }\n\n// export class SetParentAction extends AbstractAction {\n// childCode: string;\n// childTypeCode: string;\n// json: HierarchyOverTime[];\n// }\n\nexport class GovernanceStatus {\n key: string;\n label: string;\n}\n\nexport class PageEvent {\n type: string;\n data: any;\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpHeaders, HttpClient, HttpParams } from \"@angular/common/http\";\nimport { finalize } from \"rxjs/operators\";\n\nimport { ChangeRequest } from \"@registry/model/crtable\";\nimport { EventService } from \"@shared/service\";\nimport { PageResult } from \"@shared/model/core\";\n\nimport { ImportConfiguration } from \"@registry/model/io\";\n\ndeclare let acp: any;\n\n@Injectable()\nexport class ChangeRequestService {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private http: HttpClient, private eventService: EventService) { }\n\n implementDecisions(request: ChangeRequest): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/changerequest/implement-decisions\", JSON.stringify({ request: request }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n update(request: ChangeRequest): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/changerequest/update\", JSON.stringify({ request: request }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n setActionStatus(actionOid: String, status: String): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/changerequest/set-action-status\", JSON.stringify({ actionOid: actionOid, status: status }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n getAllRequests(pageSize: number, pageNumber: number, filter: string, sort: any[], oid:string): Promise> {\n let params: HttpParams = new HttpParams();\n params = params.set(\"pageSize\", pageSize.toString());\n params = params.set(\"pageNumber\", pageNumber.toString());\n params = params.set(\"filter\", filter);\n params = params.set(\"sort\", JSON.stringify(sort));\n\n if (oid != null) {\n params = params.set(\"oid\", oid);\n }\n\n this.eventService.start();\n\n return this.http.get>(acp + \"/changerequest/get-all-requests\", { params: params })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n rejectChangeRequest(request: ChangeRequest): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http.post(acp + \"/changerequest/reject\", JSON.stringify({ request: request }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n delete(requestId: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http.post(acp + \"/changerequest/delete\", JSON.stringify({ requestId: requestId }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n deleteFile(crOid: string, fileId: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/changerequest/delete-file-cr\", JSON.stringify({ crOid: crOid, vfOid: fileId }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\nimport { finalize } from \"rxjs/operators\";\n\nimport { EventService } from \"@shared/service\";\nimport { PageResult } from \"@shared/model/core\";\n\nimport { HistoricalRow, TransitionEvent } from \"@registry/model/transition-event\";\n\ndeclare let acp: any;\n\n@Injectable()\nexport class TransitionEventService {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private http: HttpClient, private eventService: EventService) { }\n\n getPage(pageSize: number, pageNumber: number, attrConditions: any): Promise> {\n let params: HttpParams = new HttpParams();\n params = params.set(\"pageSize\", pageSize.toString());\n params = params.set(\"pageNumber\", pageNumber.toString());\n params = params.set(\"attrConditions\", JSON.stringify(attrConditions));\n\n this.eventService.start();\n\n return this.http.get>(acp + \"/transition-event/page\", { params: params })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n getDetails(oid: string): Promise {\n let params: HttpParams = new HttpParams();\n params = params.set(\"oid\", oid);\n\n this.eventService.start();\n\n return this.http.get(acp + \"/transition-event/get-details\", { params: params })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n apply(event: TransitionEvent): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/transition-event/apply\", JSON.stringify({ event: event }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n delete(event: TransitionEvent): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/transition-event/delete\", JSON.stringify({ eventId: event.oid }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n getHistoricalReport(typeCode: string, startDate: string, endDate: string, pageSize: number, pageNumber: number): Promise> {\n let params: HttpParams = new HttpParams();\n params = params.set(\"typeCode\", typeCode.toString());\n params = params.set(\"startDate\", startDate.toString());\n params = params.set(\"endDate\", endDate.toString());\n params = params.set(\"pageSize\", pageSize.toString());\n params = params.set(\"pageNumber\", pageNumber.toString());\n\n this.eventService.start();\n\n return this.http.get>(acp + \"/transition-event/historical-report\", { params: params })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n}\n","/* eslint-disable padded-blocks */\nimport { GeoObjectType } from \"./registry\";\n\nexport class ImportSheet {\n name: string;\n attributes: {\n boolean: string[];\n date: string[];\n numeric: string[];\n text: string[];\n }\n}\n\nexport class Location {\n label: string;\n code: string;\n target: string;\n matchStrategy: string;\r\n}\n\nexport class Term {\n code: string;\n label: string;\n}\n\nexport class TermProblem {\n label: string;\n parentCode: string;\n mdAttributeId: string;\n attributeCode: string;\n attributeLabel: string;\n action: any;\n resolved: boolean;\n}\n\nexport class LocationProblem {\n label: string;\n type: string;\n typeLabel: string;\n parent: string;\n context: { label: string, type: string }[];\n action: any;\n resolved: boolean;\n}\n\nexport class Exclusion {\n code: string;\n value: string;\n}\n\nexport class Synonym {\n label: string;\n synonymId: string;\n vOid?: string;\n}\n\nexport class ImportConfiguration {\n type: GeoObjectType;\n sheet: ImportSheet;\n directory: string;\n filename: string;\n hierarchy: string;\n postalCode: boolean;\n hasPostalCode: boolean;\n locations: Location[];\n formatType: string;\n objectType: string;\n locationProblems: LocationProblem[];\n termProblems: TermProblem[];\n exclusions: Exclusion[];\n hierarchies: { code: string, label: string }[];\n startDate: string;\n endDate: string;\n isExternal: string;\n externalSystemId: string;\n externalSystem?: any;\n revealGeometryColumn?: any;\n onValidChange: any;\n externalIdAttributeTarget: string;\n}\n\n","import { Component, OnInit, ViewChild, Input, ViewChildren, QueryList } from \"@angular/core\";\nimport { DatePipe } from \"@angular/common\";\nimport {\n trigger,\n style,\n animate,\n transition,\n state\n} from \"@angular/animations\";\n\nimport { LocalizedValue } from \"@shared/model/core\";\nimport { LocalizationService, AuthService } from \"@shared/service\";\nimport { GeometryService } from \"@registry/service\";\nimport { DateService } from \"@shared/service/date.service\";\n\nimport { GeoObjectType, GeoObjectOverTime, AttributeType, Term, HierarchyOverTime } from \"@registry/model/registry\";\nimport { UpdateAttributeOverTimeAction, AbstractAction, CreateGeoObjectAction, ChangeRequest } from \"@registry/model/crtable\";\nimport { ActionTypes } from \"@registry/model/constants\";\nimport { ChangeRequestEditor } from \"./change-request-editor\";\nimport { ManageVersionsComponent } from \"./manage-versions.component\";\n\n@Component({\n selector: \"geoobject-shared-attribute-editor\",\n templateUrl: \"./geoobject-shared-attribute-editor.component.html\",\n styleUrls: [\"./geoobject-shared-attribute-editor.css\"],\n providers: [DatePipe],\n animations: [\n [\n trigger(\"fadeInOut\", [\n transition(\":enter\", [\n style({\n opacity: 0\n }),\n animate(\"500ms\")\n ]),\n transition(\":leave\",\n animate(\"500ms\",\n style({\n opacity: 0\n })\n )\n )\n ]),\n trigger(\"slide\", [\n state(\"left\", style({ left: 0 })),\n state(\"right\", style({ left: \"100%\" })),\n transition(\"* => *\", animate(200))\n ])\n ]]\n})\n\n/**\n * IMPORTANT\n * This component is shared between:\n * - crtable (request-table.component.ts)\n * - change-request (for submitting change requests)\n * - master list geoobject editing widget (feature-panel.component.ts)\n * Be wary of changing this component for one usecase and breaking other usecases!\n */\nexport class GeoObjectSharedAttributeEditorComponent implements OnInit {\n\n // The changed state of the GeoObject in the GeoRegistry\n @Input() postGeoObject: GeoObjectOverTime = null;\n\n showAllInstances: boolean = false;\n\n tabIndex: number = 0;\n\n // The current state of the GeoObject in the GeoRegistry\n// @Input() action: Action = null;\n\n changeRequestEditor: ChangeRequestEditor;\n\n @Input() geoObjectType: GeoObjectType;\n\n @Input() attributeExcludes: string[] = [];\n\n @Input() readOnly: boolean = false;\n\n @Input() isNew: boolean = false;\n\n @Input() isGeometryInlined = false;\n\n @Input() changeRequest: ChangeRequest;\n\n @Input() hierarchies: HierarchyOverTime[];\n\n modifiedTermOption: Term = null;\n currentTermOption: Term = null;\n\n @Input() filterDate: string = null;\n\n // used in context of a list where reference back to the list forDate is needed\n @Input() forDate: string = null;\n @Input() datasetId: string = null;\n\n // TODO : This was copy / pasted into manage-versions.component::onDateChange and ChangeRequestEditor::generateAttributeEditors\n geoObjectAttributeExcludes: string[] = [\"uid\", \"sequence\", \"type\", \"lastUpdateDate\", \"createDate\", \"invalid\", \"exists\"];\n\n @ViewChild(\"attributeForm\") attributeForm;\n\n @ViewChildren(ManageVersionsComponent) manageVersions: QueryList;\n\n public parentAttributeType: AttributeType;\n\n public geometryAttributeType: AttributeType;\n\n showStabilityPeriods = false;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private lService: LocalizationService, private geomService: GeometryService, private authService: AuthService, private dateService: DateService) {\n\n }\n\n ngOnInit(): void {\n if (this.attributeExcludes != null) {\n this.geoObjectAttributeExcludes.push.apply(this.geoObjectAttributeExcludes, this.attributeExcludes);\n\n if (!this.isGeometryInlined) {\n this.geoObjectAttributeExcludes.push(\"geometry\");\n }\n }\n\n this.geometryAttributeType = this.getAttribute(\"geometry\");\n if (this.geometryAttributeType == null) {\n this.geometryAttributeType = new AttributeType(\"geometry\", \"geometry\", new LocalizedValue(\"Geometry\", null), new LocalizedValue(\"Geometry\", null), true, false, false, true);\n }\n\n this.parentAttributeType = new AttributeType(\"_PARENT_\", \"_PARENT_\", new LocalizedValue(\"Parents\", null), new LocalizedValue(\"Parents\", null), true, false, false, true);\n\n if (this.changeRequest == null) {\n this.changeRequest = this.createNewChangeRequest();\n } else {\n if (!this.changeRequest.actions) {\n this.changeRequest.actions = [];\n }\n\n if (this.changeRequest.actions.length === 0 && this.isNew) {\n this.changeRequest.actions = this.createNewChangeRequest().actions;\n }\n }\n\n this.changeRequestEditor = new ChangeRequestEditor(this.changeRequest, this.postGeoObject, this.geoObjectType, this.hierarchies, this.geometryAttributeType, this.parentAttributeType, this.lService, this.dateService);\n\n if (this.shouldForceSetExist()) {\n this.changePage(3);\n }\n\n if (this.isNew) {\n this.filterDate = null;\n }\n\n let got = this.changeRequest.current ? this.changeRequest.current.geoObjectType : this.postGeoObject.geoObjectType;\n let orgCode = got.organizationCode;\n\n // Don't show the stability bar on the Change Requests page.\n // Change Requests don't have oid when the page is loaded for non-change request use cases.\n if (!this.changeRequest.oid) {\n this.showStabilityPeriods = (this.authService.isSRA() || this.authService.isOrganizationRA(orgCode) || this.authService.isGeoObjectTypeOrSuperRM(got) || this.authService.isGeoObjectTypeOrSuperRC(got));\n }\n\n this.showAllInstances = (this.changeRequestEditor.changeRequest.isNew || this.changeRequestEditor.changeRequest.type === \"CreateGeoObject\");\n }\n\n setFilterDate(date: string, refresh: boolean = true) {\n this.filterDate = date;\n\n if (this.manageVersions != null) {\n this.manageVersions.forEach(manageVersion => manageVersion.setFilterDate(this.filterDate, refresh));\n }\n }\n\n getChangeRequestEditor(): ChangeRequestEditor {\n return this.changeRequestEditor;\n }\n\n createNewChangeRequest(): ChangeRequest {\n let cr = new ChangeRequest();\n cr.approvalStatus = \"PENDING\";\n cr.actions = [];\n\n if (this.isNew) {\n cr.type = \"CreateGeoObject\";\n\n let createAction: CreateGeoObjectAction = new CreateGeoObjectAction();\n createAction.geoObjectJson = this.postGeoObject;\n createAction.parentJson = this.hierarchies;\n cr.actions[0] = createAction;\n } else {\n cr.type = \"UpdateGeoObject\";\n }\n\n return cr;\n }\n\n shouldForceSetExist() {\n let isNew = this.changeRequestEditor.changeRequest.isNew;\n\n if (isNew && !this.readOnly && this.postGeoObject.attributes[\"exists\"]) {\n let values = this.postGeoObject.attributes[\"exists\"].values;\n\n if (values && values.length > 0) {\n let value = values[0];\n\n return value.startDate == null || value.endDate == null || value.value === undefined || value.value === null;\n }\n }\n\n return isNew && !this.readOnly;\n }\n\n getAttribute(name: string): AttributeType {\n if (name === \"_PARENT_\") {\n return this.parentAttributeType;\n } else if (name === \"geometry\") {\n return this.geometryAttributeType;\n }\n\n for (let i = 0; i < this.geoObjectType.attributes.length; ++i) {\n if (this.geoObjectType.attributes[i].code === name) {\n return this.geoObjectType.attributes[i];\n }\n }\n\n return null;\n }\n\n changePage(nextPage: number): void {\n if (this.shouldForceSetExist() && nextPage !== 3) {\n return;\n }\n\n this.geomService.destroy(false);\n\n this.tabIndex = nextPage;\n }\n\n hasChanges(tabIndex: number) {\n let len = this.changeRequest.actions.length;\n\n if (len > 0) {\n for (let i = 0; i < len; ++i) {\n let action: AbstractAction = this.changeRequest.actions[i];\n\n if (action.actionType === ActionTypes.CREATEGEOOBJECTACTION) {\n return false;\n } else if (action.actionType === ActionTypes.UPDATEATTRIBUTETACTION) {\n let updateAttrAction: UpdateAttributeOverTimeAction = action as UpdateAttributeOverTimeAction;\n\n if (updateAttrAction.attributeName === \"_PARENT_\" && tabIndex === 1) {\n return true;\n } else if (updateAttrAction.attributeName === \"geometry\" && tabIndex === 2) {\n return true;\n } else if ((updateAttrAction.attributeName === \"invalid\" || updateAttrAction.attributeName === \"exists\") && tabIndex === 3) {\n return true;\n } else if (tabIndex === 0 && updateAttrAction.attributeName !== \"_PARENT_\" && updateAttrAction.attributeName !== \"geometry\" && updateAttrAction.attributeName !== \"exists\" && updateAttrAction.attributeName !== \"invalid\") {\n return true;\n }\n }\n }\n }\n\n return false;\n }\n\n hasErrors(tabIndex: number) {\n let attributeEditors = this.changeRequestEditor.getEditors();\n\n if (tabIndex === 0) {\n let filter = [\"invalid\", \"exists\", \"_PARENT_\", \"geometry\"];\n let filteredEditors = attributeEditors.filter(editor => filter.indexOf(editor.attribute.code) === -1);\n\n for (let i = 0; i < filteredEditors.length; ++i) {\n let editor = filteredEditors[i];\n\n if (!editor.isValid()) {\n return true;\n }\n }\n } else if (tabIndex === 1) {\n for (let i = 0; i < this.hierarchies.length; ++i) {\n let hierarchy = this.hierarchies[i];\n\n if (!this.changeRequestEditor.getEditorForAttribute(this.parentAttributeType, hierarchy).isValid()) {\n return true;\n }\n }\n } else if (tabIndex === 2) {\n return !this.changeRequestEditor.getEditorForAttribute(this.geometryAttributeType).isValid();\n } else if (tabIndex === 3) {\n let invalid = this.getAttribute(\"invalid\");\n\n let existsAttribute: AttributeType = GeoObjectType.getAttribute(this.changeRequestEditor.geoObjectType, \"exists\");\n let existsEditor = this.changeRequestEditor.getEditorForAttribute(existsAttribute);\n\n return (Object.prototype.hasOwnProperty.call(invalid, \"isValid\") && !invalid.isValid) ||\n !existsEditor.isValid();\n }\n\n return false;\n }\n\n public isValid(): boolean {\n let allValid:boolean = true;\n\n this.geoObjectType.attributes.forEach(att => {\n if (att.isValid != null && !att.isValid) {\n allValid = false;\n }\n });\n\n if (this.parentAttributeType.isValid != null && !this.parentAttributeType.isValid) {\n allValid = false;\n }\n\n if (this.geometryAttributeType.isValid != null && !this.geometryAttributeType.isValid) {\n allValid = false;\n }\n\n return allValid && this.changeRequestEditor.validate();\n }\n\n public getActions(): AbstractAction[] {\n return this.changeRequestEditor.changeRequest.actions;\n }\n\n}\n","
\n
\n \n
\n
\n\n
\n
\n \n
\n
\n\n
\n \n
\n
\n \n \n \n \n
\n
\n
\n\n
\n
\n \n
\n
\n \n \n
\n\n \n
    \n
  • \n
    \n
    \n

    \n \n \n \n \n \n \n {{attr.label.localizedValue}} \n

    \n
    \n\n
    \n
    \n \n \n
    \n\n
    \n \n\n
    \n \n
    \n
    \n
    \n
    \n
  • \n
\n
\n
\n
\n
\n\t
    \n\t\t
  • \n\t\t
    \n\t
    \n\t

    \n\t {{hierarchy.label}} \n\t

    \n\t
    \n\t\t\t\t \n\t\t\t\t
    \n\t\t\t\t \n\t\t\t\t
    \n\t\t\t
    \n\t\t
  • \n\t
\n
\n
\n \n
\n
\n
\n

\n \n

\n
\n \n
\n \n
\n
\n
\n \n
\n
\n
\n

\n {{getAttribute('exists').label.localizedValue}} \n

\n
\n \n
\n \n
\n
\n
\n
\n

\n \n \n \n \n

\n
\n \n
\n \n
\n
\n
\n
\n \n
\n
\n","import { Component, Input, Output, EventEmitter } from \"@angular/core\";\nimport { LocalizedValue } from \"@shared/model/core\";\n\n@Component({\n selector: \"localized-text\",\n templateUrl: \"./localized-text.component.html\",\n styleUrls: [\"./localized-text.css\"],\n})\nexport class LocalizedTextComponent {\n\n @Input() public key: string = \"\";\n @Input() public value: LocalizedValue;\n @Input() public disabled: boolean = false;\n @Input() public inlinelayout: boolean = false;\n @Output() public valueChange = new EventEmitter();\n\n // eslint-disable-next-line no-useless-constructor\n constructor() { }\n}","\n
\n
\n
\n
\n
\n \n
\n
\n \n \n \n
\n
\n
\n
\n
\n","import { Injectable } from \"@angular/core\";\r\nimport { Subject } from \"rxjs\";\r\n\r\nimport { ManageGeoObjectTypeModalState } from \"@registry/model/registry\";\r\n\r\n@Injectable()\r\nexport class GeoObjectTypeManagementService {\r\n\r\n modalState: ManageGeoObjectTypeModalState;\r\n private modalStateChangedSource = new Subject();\r\n modalStepChange = this.modalStateChangedSource.asObservable();\r\n\r\n // eslint-disable-next-line no-useless-constructor\n constructor() { }\r\n\r\n public getModalState(): ManageGeoObjectTypeModalState {\r\n return this.modalState;\r\n }\r\n\r\n public setModalState(state: ManageGeoObjectTypeModalState): void {\r\n this.modalState = state;\r\n\r\n this.modalStateChangedSource.next(this.modalState);\r\n }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectorRef } from \"@angular/core\";\nimport {\n trigger,\n state,\n style,\n animate,\n transition\n} from \"@angular/animations\";\n\nimport { GeoObjectType, AttributeType } from \"@registry/model/registry\";\nimport { HierarchyService } from \"@registry/service\";\nimport { ErrorHandler } from \"@shared/component\";\n\n@Component({\n selector: \"attribute-input\",\n templateUrl: \"./attribute-input.component.html\",\n styleUrls: [\"./attribute-input.css\"],\n animations: [\n trigger(\"toggleInputs\", [\n state(\"none, void\",\n style({ opacity: 0 })\n ),\n state(\"show\",\n style({ opacity: 1 })\n ),\n transition(\"none => show\", animate(\"300ms\"))\n // transition('show => none', animate('100ms'))\n ])\n ]\n})\nexport class AttributeInputComponent implements OnInit {\n\n @Input() disableCodeField: boolean = false;\n @Input() excludeDescription: boolean = false;\n @Input() isDecimal: boolean = false;\n @Input() geoObjectType: GeoObjectType;\n @Input() attribute: AttributeType;\n @Output() attributeChange = new EventEmitter();\n message: string = null;\n\n state: string = \"none\";\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private hierarchyService: HierarchyService, private cdr: ChangeDetectorRef) { }\n\n ngOnInit(): void {\n\n }\n\n ngAfterViewInit() {\n this.state = \"show\";\n this.cdr.detectChanges();\n }\n\n ngOnChanges() {\n\n }\n\n ngOnDestroy() {\n\n }\n\n handleOnSubmit(): void {\n\n }\n\n toggleIsUnique(): void {\n this.attribute.unique = !this.attribute.unique;\n }\n\n animate(): void {\n this.state = \"none\";\n }\n\n onAnimationDone(event: AnimationEvent): void {\n this.state = \"show\";\n }\n\n isValid(): boolean {\n if (this.attribute.code) {\n // if code has a space\n if (this.attribute.code.indexOf(\" \") !== -1) {\n return false;\n }\n\n if (this.attribute.label.localeValues[0].value.length === 0) {\n return false;\n }\n\n if (this.isDecimal && (this.attribute.precision == null || this.attribute.precision.toString() == \"\")) {\n return false;\n }\n\n if (this.isDecimal && (this.attribute.scale == null || this.attribute.scale.toString() == \"\")) {\n return false;\n }\n\n return true;\n }\n\n return false;\n }\n\n}\n","
\n
\n
\n \n
\n
\n \n \n \n
\n
\n\n \n \n\n\n
\n
\n \n
\n
\n \n \n \n
\n
\n\n
\n
\n \n
\n
\n \n \n \n
\n
\n
","import { Component, OnInit } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Subject } from \"rxjs\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { MasterList, MasterListByOrg } from \"@registry/model/registry\";\nimport { RegistryService, IOService } from \"@registry/service\";\nimport { DateService } from \"@shared/service/date.service\";\n\nimport { ErrorHandler } from \"@shared/component\";\nimport { LocalizationService, AuthService } from \"@shared/service\";\n\n@Component({\n selector: \"publish-modal\",\n templateUrl: \"./publish-modal.component.html\",\n styleUrls: []\n})\nexport class PublishModalComponent implements OnInit {\n\n currentDate: Date = new Date();\n message: string = null;\n\n master: MasterList;\n\n /*\n * Observable subject for MasterList changes. Called when an update is successful\n */\n onMasterListChange: Subject;\n\n /*\n * List of geo object types from the system\n */\n types: { label: string, code: string }[]\n\n /*\n * List of geo object types from the system\n */\n readonly: boolean = false;\n\n /*\n * List of geo object types from the system\n */\n edit: boolean = false;\n\n isNew: boolean = false;\n\n originalPublishStartDate: string = null;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: RegistryService, private iService: IOService, private lService: LocalizationService, public bsModalRef: BsModalRef, private authService: AuthService,\n private dateService: DateService) {}\n\n ngOnInit(): void {\n this.onMasterListChange = new Subject();\n\n if (!this.master || !this.readonly) {\n this.iService.listGeoObjectTypes(true).then(types => {\n let myOrgTypes = [];\n for (let i = 0; i < types.length; ++i) {\n const orgCode = types[i].orgCode;\n const typeCode = types[i].superTypeCode != null ? types[i].superTypeCode : types[i].code;\n\n if (this.authService.isGeoObjectTypeRM(orgCode, typeCode)) {\n myOrgTypes.push(types[i]);\n }\n }\n this.types = myOrgTypes;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n\n this.master = {\n oid: null,\n typeCode: \"\",\n displayLabel: this.lService.create(),\n code: \"\",\n representativityDate: null,\n publishingStartDate: null,\n publishDate: null,\n descriptionLocal: this.lService.create(),\n processLocal: this.lService.create(),\n progressLocal: this.lService.create(),\n accessConstraintsLocal: this.lService.create(),\n useConstraintsLocal: this.lService.create(),\n acknowledgementsLocal: this.lService.create(),\n disclaimerLocal: this.lService.create(),\n contactName: \"\",\n organization: \"\",\n telephoneNumber: \"\",\n email: \"\",\n hierarchies: [],\n subtypeHierarchies: [],\n leaf: false,\n frequency: \"ANNUAL\",\n isMaster: null,\n visibility: null\n };\n }\n }\n\n ngAfterContentInit() {\n\n }\n\n init(org: MasterListByOrg): void {\n this.master.organization = org.oid;\n }\n\n getIsDisabled(event): boolean {\n let elClasses = event.target.classList;\n for (let i = 0; i < elClasses.length; i++) {\n let c = elClasses[i];\n if (c === \"disabled\") {\n return true;\n }\n }\n\n return false;\n }\n\n onChange(): void {\n if (this.master.typeCode != null && this.master.typeCode.length > 0) {\n this.iService.getHierarchiesForType(this.master.typeCode, true).then(hierarchies => {\n this.master.hierarchies = hierarchies;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n\n this.iService.getHierarchiesForSubtypes(this.master.typeCode, false).then(hierarchies => {\n this.master.subtypeHierarchies = hierarchies;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n } else {\n this.master.hierarchies = [];\n }\n }\n\n onSubmit(): void {\n this.service.createMasterList(this.master).then(response => {\n this.onMasterListChange.next(response);\n this.bsModalRef.hide();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n stringify(obj: any): string {\n return JSON.stringify(obj);\n }\n\n onCancel(): void {\n this.bsModalRef.hide();\n }\n\n ngOnDestroy() {\n this.onMasterListChange.unsubscribe();\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n
{{message}}
\n\n
\n

\n \n

\n

\n {{master.displayLabel.localizedValue}}\n \n

\n
\n \n
\n\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n \n {{formatDate(master.publishingStartDate)}}\n \n \n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n\n
\n \n
\n
\n
\n
\n
\n\n\n \n \n\n\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n\n
\n
\n
\n \n
\n
\n\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n\n
0\">\n
\n
\n \n
\n
\n\n
\n
\n
\n \n
\n
\n
\n \n\n
\n\n \n
\n \n
\n\n \n\n \n
\n \n \n
\n
\n
\n
\n \n
0\">\n
\n
\n \n
\n
\n
\n \n\n
\n\n \n
\n \n
\n\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n \n
\n
\n
\n\n
\n
\n \n
","import { Component, Input, Output, EventEmitter } from \"@angular/core\";\nimport { LocalizedValue } from \"@shared/model/core\";\n\n@Component({\n selector: \"localized-input\",\n templateUrl: \"./localized-input.component.html\",\n styleUrls: []\n})\nexport class LocalizedInputComponent {\n\n @Input() public key: string = \"\";\n @Input() public value: LocalizedValue;\n @Input() public disabled: boolean = false;\n @Output() public valueChange = new EventEmitter();\n\n // eslint-disable-next-line no-useless-constructor\n constructor() { }\n}","
\n
\n \n
\n
\n \n \n \n
\n
\n","import { Component, OnInit, ViewChild, ElementRef, ChangeDetectorRef } from '@angular/core';\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { debounceTime, distinctUntilChanged, filter, tap } from \"rxjs/operators\";\nimport { fromEvent } from 'rxjs';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { ContextMenuService, ContextMenuComponent } from 'ngx-contextmenu';\nimport * as d3 from 'd3';\n\nimport { CreateHierarchyTypeModalComponent } from './modals/create-hierarchy-type-modal.component';\nimport { CreateGeoObjTypeModalComponent } from './modals/create-geoobjtype-modal.component';\nimport { ManageGeoObjectTypeModalComponent } from './modals/manage-geoobjecttype-modal.component';\n\nimport { ErrorHandler, ConfirmModalComponent, ErrorModalComponent } from '@shared/component';\nimport { LocalizationService, AuthService } from '@shared/service';\nimport { ModalTypes } from '@shared/model/modal'\n\nimport { HierarchyType, HierarchyNode } from '@registry/model/hierarchy';\nimport { GeoObjectType } from '@registry/model/registry';\nimport { Organization } from '@shared/model/core';\nimport { RegistryService, HierarchyService } from '@registry/service';\n\nimport { SvgHierarchyType } from './d3/svg-hierarchy-type';\nimport { svgPoint, isPointWithin, calculateTextWidth, getBboxFromSelection } from './d3/svg-util';\nimport { SvgHierarchyNode } from './d3/svg-hierarchy-node';\nimport { ImportTypesModalComponent } from './modals/import-types-modal.component';\n\nexport const TREE_SCALE_FACTOR_X: number = 1.8;\nexport const TREE_SCALE_FACTOR_Y: number = 1.8;\n\nexport const DEFAULT_NODE_FILL = '#e6e6e6';\nexport const DEFAULT_NODE_BANNER_COLOR = '#A29BAB';\nexport const INHERITED_NODE_FILL = '#d4d4d4';\nexport const INHERITED_NODE_BANNER_COLOR = '#a0a0a0';\nexport const RELATED_NODE_BANNER_COLOR = INHERITED_NODE_BANNER_COLOR;\n\nexport class Instance {\n active: boolean;\n label: string;\n}\n\nexport interface DropTarget {\n dropSelector: string;\n onDrag(dragEl: Element, dropEl: Element, event: any): void;\n onDrop(dragEl: Element, event: any): void;\n [others: string]: any;\n}\n\n@Component({\n\n selector: 'hierarchies',\n templateUrl: './hierarchy.component.html',\n styleUrls: ['./hierarchy.css']\n})\nexport class HierarchyComponent implements OnInit {\n\n userOrganization: string = null;\n\n primarySvgHierarchy: SvgHierarchyType;\n currentHierarchy: HierarchyType = null;\n\n instance: Instance = new Instance();\n hierarchies: HierarchyType[];\n organizations: Organization[];\n geoObjectTypes: GeoObjectType[] = [];\n\n hierarchiesByOrg: { org: Organization, hierarchies: HierarchyType[] }[] = [];\n typesByOrg: { org: Organization, types: GeoObjectType[] }[] = [];\n\n filter: string = '';\n filteredHierarchiesByOrg: { org: Organization, hierarchies: HierarchyType[] }[] = [];\n filteredTypesByOrg: { org: Organization, types: GeoObjectType[] }[] = [];\n @ViewChild('searchInput', { static: true }) searchInput: ElementRef;\n\n hierarchyTypeDeleteExclusions: string[] = ['AllowedIn', 'IsARelationship'];\n geoObjectTypeDeleteExclusions: string[] = ['ROOT'];\n\n _opened: boolean = false;\n\n /*\n * Reference to the modal current showing\n */\n private bsModalRef: BsModalRef;\n\n /*\n * Template for tree node menu\n */\n @ViewChild('nodeMenu') public nodeMenuComponent: ContextMenuComponent;\n\n /*\n * Template for leaf menu\n */\n @ViewChild('leafMenu') public leafMenuComponent: ContextMenuComponent;\n\n /* \n * Currently clicked on id for delete confirmation modal \n */\n current: any;\n\n isSRA: boolean = false;\n\n hierarchyService: HierarchyService;\n\n localizeService: LocalizationService;\n\n options = {\n // allowDrag: (any) => node.isLeaf,\n // allowDrop: (element:Element, { parent, index }: {parent:TreeNode,index:number}) => {\n // return true / false based on element, to.parent, to.index. e.g.\n // return parent.hasChildren;\n // },\n displayField: \"label\",\n actionMapping: {\n mouse: {\n click: (tree: any, node: any, $event: any) => {\n this.treeNodeOnClick(node, $event);\n },\n contextMenu: (tree: any, node: any, $event: any) => {\n this.handleOnMenu(node, $event);\n }\n }\n },\n mouse: {\n // drop: (tree: any, node: TreeNode, $event: any, {from, to}: {from:TreeNode, to:TreeNode}) => {\n // console.log('drag', from, to); // from === {name: 'first'}\n // // Add a node to `to.parent` at `to.index` based on the data in `from`\n // // Then call tree.update()\n // }\n }\n };\n\n\n\n constructor(hierarchyService: HierarchyService, private modalService: BsModalService,\n private contextMenuService: ContextMenuService,\n localizeService: LocalizationService, private registryService: RegistryService, private authService: AuthService) {\n\n this.isSRA = authService.isSRA();\n\n this.hierarchyService = hierarchyService;\n this.localizeService = localizeService;\n }\n\n ngOnInit(): void {\n this.refreshAll(null);\n\n fromEvent(this.searchInput.nativeElement, 'keyup').pipe(\n\n // get value\n filter(Boolean),\n debounceTime(500),\n distinctUntilChanged(),\n tap(() => {\n this.onFilterChange();\n })\n // subscription for response\n ).subscribe();\n }\n\n localize(key: string): string {\n return this.localizeService.decode(key);\n }\n\n private renderTree(): void {\n if (this.currentHierarchy == null || this.currentHierarchy.rootGeoObjectTypes == null || this.currentHierarchy.rootGeoObjectTypes.length == 0) {\n d3.select(\"#svg\").remove();\n\n let canDrag = false;\n if (this.currentHierarchy != null) {\n canDrag = (this.authService.isSRA() || this.authService.isOrganizationRA(this.currentHierarchy.organizationCode));\n }\n\n this.geoObjectTypes.forEach((got: GeoObjectType) => {\n got.canDrag = canDrag;\n });\n return;\n }\n\n d3.select(\".g-context-menu\").remove();\n d3.select(\".hierarchy-inherit-button\").remove();\n d3.select(\".g-hierarchy-got-connector\").remove();\n\n let overflowDiv: any = d3.select(\"#overflow-div\").node();\n let scrollLeft = overflowDiv.scrollLeft;\n let scrollRight = overflowDiv.scrollRight;\n\n let svg = d3.select(\"#svg\");\n\n if (svg.node() == null) {\n svg = d3.select(\"#svgHolder\").append(\"svg\");\n svg.attr(\"id\", \"svg\");\n }\n\n this.primarySvgHierarchy = new SvgHierarchyType(this, svg, this.currentHierarchy, true, this.localizeService, this.modalService, this.authService);\n this.primarySvgHierarchy.render();\n\n this.calculateSvgViewBox();\n\n let overflowDiv2: any = d3.select(\"#overflow-div\").node();\n overflowDiv2.scrollLeft = scrollLeft;\n overflowDiv2.scrollRight = scrollRight;\n\n //this.registerSvgHandlers();\n\n this.geoObjectTypes.forEach((got: GeoObjectType) => {\n got.canDrag = this.calculateCanDrag(got);\n });\n }\n\n calculateSvgViewBox(): void {\n let svg: any = d3.select(\"#svg\");\n let svgNode: any = svg.node();\n\n let { x, y, width, height } = svgNode.getBBox();\n\n const xPadding = 30;\n const yPadding = 40;\n svg.attr(\"viewBox\", (x - xPadding) + \" \" + (y - yPadding) + \" \" + (width + xPadding * 2) + \" \" + (height + yPadding * 2));\n\n width = (width + xPadding * 2) * TREE_SCALE_FACTOR_X;\n height = (height + yPadding * 2) * TREE_SCALE_FACTOR_Y;\n\n d3.select(\"#svgHolder\").style(\"width\", width + \"px\");\n //d3.select(\"#svgHolder\").style(\"height\", height + \"px\"); \n }\n\n calculateCanDrag(got: GeoObjectType): boolean {\n let hierarchyComponent = this;\n\n if (this.primarySvgHierarchy != null) {\n // Check permissions against GOT and Hierarchy org\n if (!(this.authService.isSRA() || this.authService.isOrganizationRA(this.currentHierarchy.organizationCode))) {\n return false;\n }\n\n // If the child is already on the graph, they cannot drag.\n if (this.primarySvgHierarchy.getNodeByCode(got.code) != null) {\n return false;\n }\n\n // If we are abstract, and one of our children is on the graph, they cannot drag.\n if (got.isAbstract) {\n let isChildOnGraph = false;\n\n this.geoObjectTypes.forEach((child: GeoObjectType) => {\n if (child.superTypeCode === got.code) {\n if (hierarchyComponent.primarySvgHierarchy.getNodeByCode(child.code) != null) {\n isChildOnGraph = true;\n }\n }\n });\n\n if (isChildOnGraph) {\n return false;\n }\n }\n // If we are a child of an abstract type, and our abstract type is on the graph, we cannot drag.\n else if (got.superTypeCode != null) {\n if (hierarchyComponent.primarySvgHierarchy.getNodeByCode(got.superTypeCode) != null) {\n return false;\n }\n }\n }\n else {\n // If there is no selected hierarchy, they cannot drag.\n return false;\n }\n\n return true;\n }\n\n calculateRelatedHierarchies(got: GeoObjectType): string[] {\n let relatedHiers = [];\n\n for (let i = 0; i < this.hierarchies.length; ++i) {\n let hierarchyType = this.hierarchies[i];\n\n if (hierarchyType.rootGeoObjectTypes != null && hierarchyType.rootGeoObjectTypes.length > 0) {\n let d3Hierarchy = d3.hierarchy(hierarchyType.rootGeoObjectTypes[0]).descendants();\n\n let found = d3Hierarchy.find((node) => {\n return node.data.geoObjectType === got.code && node.data.inheritedHierarchyCode == null;\n });\n\n if (found) {\n relatedHiers.push(hierarchyType.code);\n }\n }\n }\n\n return relatedHiers;\n }\n\n private registerDragHandlers(): any {\n let that = this;\n\n let dropTargets: DropTarget[] = [];\n\n // Empty Hierarchy Drop Zone\n dropTargets.push({\n dropSelector: \".drop-box-container\", onDrag: function(dragEl: Element, dropEl: Element) {\n if (this.dropEl != null) {\n this.dropEl.style(\"border-color\", null);\n this.dropEl = null;\n }\n\n if (dropEl != null) {\n let emptyHierarchyDropZone = dropEl.closest(\".drop-box-container\");\n\n if (emptyHierarchyDropZone != null) {\n this.dropEl = d3.select(emptyHierarchyDropZone).style(\"border-color\", \"#6BA542\");\n }\n }\n }, onDrop: function(dragEl: Element) {\n if (this.dropEl != null) {\n this.dropEl.style(\"border-color\", null);\n that.addChild(that.currentHierarchy.code, \"ROOT\", d3.select(dragEl).attr(\"id\"));\n this.dropEl = null;\n }\n }\n });\n\n // SVG GeoObjectType Drop Zone\n dropTargets.push({\n dropSelector: \".svg-got-body-rect\", onDrag: function(dragEl: Element, mouseTarget: Element, event: any) {\n this.clearDropZones();\n\n let lastDropEl = this.dropEl;\n\n // translate page to SVG co-ordinate\n let svg: any = d3.select(\"#svg\").node();\n\n if (svg == null) {\n return;\n }\n let svgMousePoint = svgPoint(event.sourceEvent.pageX, event.sourceEvent.pageY);\n\n // Find out if we've dragged the GeoObjectType inside of a HierarchyNode. If we have, then\n // we need to expand the HierarchyNode's BoundingBox to accomodate our new drop zones. \n that.primarySvgHierarchy.getD3Tree().descendants().forEach((node: any) => {\n if (node.data.geoObjectType !== \"GhostNode\" && isPointWithin(svgMousePoint, node.data.dropZoneBbox)) {\n this.dropEl = d3.select('.g-hierarchy[data-primary=true] .svg-got-body-rect[data-gotCode=\"' + node.data.geoObjectType + '\"]');\n node.data.activeDropZones = true;\n\n if (node.parent == null) {\n node.data.dropZoneBbox = { x: node.x - SvgHierarchyType.gotRectW / 2, y: node.y - SvgHierarchyType.gotRectH * 2, width: SvgHierarchyType.gotRectW, height: SvgHierarchyType.gotRectH * 4 };\n }\n }\n else {\n node.data.activeDropZones = false;\n\n if (node.parent == null) {\n node.data.dropZoneBbox = { x: node.x - SvgHierarchyType.gotRectW / 2, y: node.y - SvgHierarchyType.gotRectH / 2, width: SvgHierarchyType.gotRectW, height: SvgHierarchyType.gotRectH };\n }\n }\n });\n\n if (this.dropEl == null || (lastDropEl != null && this.dropEl != null && lastDropEl.attr(\"data-gotCode\") != this.dropEl.attr(\"data-gotCode\"))) {\n this.clearGhostNodes(true);\n }\n\n if (this.dropEl != null) {\n let isDragGroup = d3.select(dragEl).classed(\"got-group-parent\");\n const gotCode = this.dropEl.attr(\"data-gotCode\");\n let dropNode = that.primarySvgHierarchy.getD3Tree().find((node) => { return node.data.geoObjectType === gotCode; });\n let isDropGroup = that.findGeoObjectTypeByCode(gotCode).isAbstract;\n\n this.dropEl.attr(\"stroke\", \"blue\");\n\n const dropElX = parseInt(this.dropEl.attr(\"x\"));\n const dropElY = parseInt(this.dropEl.attr(\"y\"));\n\n // Add drop zones\n const childW: number = SvgHierarchyType.gotRectW;\n const childH: number = SvgHierarchyType.gotRectH;\n\n let dzg = d3.select(\"#svg\").append(\"g\").classed(\"svg-dropZone-g\", true);\n\n // Render Child Drop Zone\n let dropTargetHasChildren = !(dropNode.children == null || dropNode.children.length == 0);\n let isChildDZActive = !isDropGroup && (!isDragGroup || !dropTargetHasChildren);\n if (isChildDZActive) {\n this.childDzBacker = dzg.append(\"rect\").classed(\"svg-got-child-dz-backer\", true)\n .attr(\"x\", dropElX + (SvgHierarchyType.gotRectW / 2) - (childW / 2))\n .attr(\"y\", dropElY + SvgHierarchyType.gotRectH + 10)\n .attr(\"width\", childW)\n .attr(\"height\", childH)\n .attr(\"fill\", \"white\")\n\n this.childDz = dzg.append(\"rect\").classed(\"svg-got-child-dz\", true)\n .attr(\"x\", dropElX + (SvgHierarchyType.gotRectW / 2) - (childW / 2))\n .attr(\"y\", dropElY + SvgHierarchyType.gotRectH + 10)\n .attr(\"width\", childW)\n .attr(\"height\", childH)\n .attr(\"fill\", \"none\")\n .attr(\"stroke\", \"black\")\n .attr(\"stroke-width\", \"1\")\n .attr(\"stroke-dasharray\", \"5,5\");\n\n let addChildLabel = dropTargetHasChildren ? that.localizeService.decode(\"hierarchy.content.intersectChild\") : that.localizeService.decode(\"hierarchy.content.addChild\");\n this.childDzText = dzg.append(\"text\").classed(\"svg-got-child-dz-text\", true)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"font-size\", 10)\n .attr(\"fill\", \"black\")\n .attr(\"x\", dropElX + (SvgHierarchyType.gotRectW / 2) - calculateTextWidth(addChildLabel, 10) / 2)\n .attr(\"y\", dropElY + SvgHierarchyType.gotRectH + 10 + childH / 2 + 2)\n .text(addChildLabel);\n }\n\n // Render Parent Drop Zone\n if (!isDragGroup) // Don't render it if we're a group\n {\n this.parentDzBacker = dzg.append(\"rect\").classed(\"svg-got-parent-dz-backer\", true)\n .attr(\"x\", dropElX + (SvgHierarchyType.gotRectW / 2) - (childW / 2))\n .attr(\"y\", dropElY - SvgHierarchyType.gotHeaderH - childH)\n .attr(\"width\", childW)\n .attr(\"height\", childH)\n .attr(\"fill\", \"white\")\n\n this.parentDz = dzg.append(\"rect\").classed(\"svg-got-parent-dz\", true)\n .attr(\"x\", dropElX + (SvgHierarchyType.gotRectW / 2) - (childW / 2))\n .attr(\"y\", dropElY - SvgHierarchyType.gotHeaderH - childH)\n .attr(\"width\", childW)\n .attr(\"height\", childH)\n .attr(\"fill\", \"none\")\n .attr(\"stroke\", \"black\")\n .attr(\"stroke-width\", \"1\")\n .attr(\"stroke-dasharray\", \"5,5\");\n\n d3.select(\".svg-got-parent-dz-text\").remove();\n let addParentLabel = dropNode.parent == null ? that.localizeService.decode(\"hierarchy.content.addParent\") : that.localizeService.decode(\"hierarchy.content.intersectParent\");\n this.parentDzText = dzg.append(\"text\").classed(\"svg-got-parent-dz-text\", true)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"font-size\", 10)\n .attr(\"fill\", \"black\")\n .attr(\"x\", dropElX + (SvgHierarchyType.gotRectW / 2) - calculateTextWidth(addParentLabel, 10) / 2)\n .attr(\"y\", dropElY - SvgHierarchyType.gotHeaderH - childH / 2 + 2)\n .text(addParentLabel);\n }\n\n // Render Sibling Drop Zone\n if (this.ghostCode != gotCode) {\n\n\n if (this.ghostCode != null) {\n this.clearGhostNodes(dropNode.parent == null);\n }\n\n if (dropNode.parent != null) {\n let parentIndex = null;\n for (let i = 0; i < dropNode.parent.data.children.length; ++i) {\n let hn: any = dropNode.parent.data.children[i];\n\n if (hn.geoObjectType === gotCode) {\n parentIndex = i + 1;\n }\n };\n\n let addSiblingLabel = that.localizeService.decode(\"hierarchy.content.addChild\");\n dropNode.parent.data.children.splice(parentIndex, 0, { ghostingCode: gotCode, geoObjectType: \"GhostNode\", label: addSiblingLabel, children: [] });\n\n that.renderTree();\n this.ghostCode = gotCode;\n }\n }\n\n let siblingGhostBody = d3.select(\".svg-sibling-ghost-body-dz\");\n\n if (!isDragGroup && isPointWithin(svgMousePoint, getBboxFromSelection(this.parentDz))) {\n this.parentDz.attr(\"stroke\", \"blue\");\n this.parentDzText.attr(\"fill\", \"blue\");\n isChildDZActive && this.childDz.attr(\"stroke\", \"black\");\n isChildDZActive && this.childDzText.attr(\"fill\", \"black\");\n siblingGhostBody.attr(\"stroke\", \"black\");\n this.activeDz = this.parentDz;\n }\n else if (isChildDZActive && isPointWithin(svgMousePoint, getBboxFromSelection(this.childDz))) {\n !isDragGroup && this.parentDz.attr(\"stroke\", \"black\");\n !isDragGroup && this.parentDzText.attr(\"fill\", \"black\");\n this.childDz.attr(\"stroke\", \"blue\");\n this.childDzText.attr(\"fill\", \"blue\");\n siblingGhostBody.attr(\"stroke\", \"black\");\n this.activeDz = this.childDz;\n }\n else if (siblingGhostBody.node() != null && isPointWithin(svgMousePoint, getBboxFromSelection(siblingGhostBody))) {\n !isDragGroup && this.parentDz.attr(\"stroke\", \"black\");\n !isDragGroup && this.parentDzText.attr(\"fill\", \"black\");\n isChildDZActive && this.childDz.attr(\"stroke\", \"black\");\n isChildDZActive && this.childDzText.attr(\"fill\", \"black\");\n siblingGhostBody.attr(\"stroke\", \"blue\");\n this.activeDz = \"sibling\";\n }\n }\n }, onDrop: function(dragEl: Element) {\n if (this.dropEl != null && this.activeDz != null) {\n let dropGot = this.dropEl.attr(\"data-gotCode\");\n let dropNode = that.primarySvgHierarchy.getD3Tree().find((node) => { return node.data.geoObjectType === dropGot; });\n let dragGot = d3.select(dragEl).attr(\"id\");\n\n if (this.activeDz === this.childDz) {\n if (dropNode.data.children.length == 0) {\n that.addChild(that.currentHierarchy.code, dropGot, dragGot);\n }\n else {\n let youngest = \"\";\n\n for (let i = 0; i < dropNode.data.children.length; ++i) {\n youngest = youngest + dropNode.data.children[i].geoObjectType;\n\n if (i < dropNode.data.children.length - 1) {\n youngest = youngest + \",\";\n }\n }\n\n that.insertBetweenTypes(that.currentHierarchy.code, dropGot, dragGot, youngest);\n }\n }\n else if (this.activeDz === this.parentDz) {\n if (dropNode.parent == null) {\n that.insertBetweenTypes(that.currentHierarchy.code, \"ROOT\", dragGot, dropGot);\n }\n else {\n that.insertBetweenTypes(that.currentHierarchy.code, dropNode.parent.data.geoObjectType, dragGot, dropGot);\n }\n }\n else if (this.activeDz === \"sibling\") {\n that.addChild(that.currentHierarchy.code, dropNode.parent.data.geoObjectType, d3.select(dragEl).attr(\"id\"));\n }\n }\n this.clearDropZones();\n this.clearGhostNodes(true);\n }, clearDropZones: function() {\n if (this.dropEl != null) {\n this.dropEl.attr(\"stroke\", null);\n }\n\n this.dropEl = null;\n this.activeDz = null;\n\n this.childDz = null;\n this.parentDz = null;\n\n d3.select(\".svg-dropZone-g\").remove();\n\n }, clearGhostNodes: function(renderTree: boolean) {\n if (this.ghostCode != null) {\n let ghostNode = that.primarySvgHierarchy.getD3Tree().find((node) => { return node.data.ghostingCode === this.ghostCode; });\n\n if (ghostNode != null) {\n let parentIndex = null;\n for (let i = 0; i < ghostNode.parent.data.children.length; ++i) {\n let hn: any = ghostNode.parent.data.children[i];\n\n if (hn.ghostingCode === this.ghostCode) {\n parentIndex = i;\n }\n };\n\n if (parentIndex != null) {\n ghostNode.parent.data.children.splice(parentIndex, 1);\n if (renderTree) {\n that.renderTree();\n }\n }\n }\n\n this.ghostCode = null;\n }\n }\n });\n\n // GeoObjectTypes and Hierarchies\n let deltaX: number, deltaY: number, width: number;\n let sidebarDragHandler = d3.drag()\n .on(\"start\", function(event: any) {\n let canDrag = d3.select(this).attr(\"data-candrag\");\n if (canDrag === \"false\") {\n return;\n }\n\n let rect = this.getBoundingClientRect();\n deltaX = rect.left - event.sourceEvent.pageX;\n deltaY = rect.top - event.sourceEvent.pageY;\n width = rect.width;\n })\n .on(\"drag\", function(event: any) {\n let canDrag = d3.select(this).attr(\"data-candrag\");\n if (canDrag === \"false\") {\n return;\n }\n\n d3.select(\".g-context-menu\").remove();\n\n let selThis = d3.select(this);\n\n // Kind of a dumb hack, but if we hide our drag element for a sec, then we can check what's underneath it.\n selThis.style(\"display\", \"none\");\n\n let target = document.elementFromPoint(event.sourceEvent.pageX, event.sourceEvent.pageY);\n\n selThis.style(\"display\", null);\n\n for (let i = 0; i < dropTargets.length; ++i) {\n dropTargets[i].onDrag(this, target, event);\n }\n\n // Move the GeoObjectType with the pointer when they move their mouse\n selThis\n .classed(\"dragging\", true)\n .style(\"left\", (event.sourceEvent.pageX + deltaX) + \"px\")\n .style(\"top\", (event.sourceEvent.pageY + deltaY) + \"px\")\n .style(\"width\", width + \"px\");\n\n // If they are moving a GOT group then we have to move the children as well \n if (selThis.classed(\"got-group-parent\")) {\n let index = 1;\n d3.selectAll('.got-group-child[data-superTypeCode=\"' + selThis.attr(\"id\") + '\"]').each(function() {\n let li: any = this;\n let child = d3.select(li);\n\n child\n .classed(\"dragging\", true)\n .style(\"left\", (event.sourceEvent.pageX + deltaX) + \"px\")\n .style(\"top\", (event.sourceEvent.pageY + deltaY + (li.getBoundingClientRect().height + 2) * index) + \"px\")\n .style(\"width\", width + \"px\");\n\n index++;\n });\n }\n }).on(\"end\", function(event: any) {\n let selThis = d3.select(this)\n .classed(\"dragging\", false)\n .style(\"left\", null)\n .style(\"top\", null)\n .style(\"width\", null);\n\n // If they are moving a GOT group then we have to reset the children as well \n if (selThis.classed(\"got-group-parent\")) {\n d3.selectAll('.got-group-child[data-superTypeCode=\"' + selThis.attr(\"id\") + '\"]').each(function() {\n let child = d3.select(this);\n\n child\n .classed(\"dragging\", false)\n .style(\"left\", null)\n .style(\"top\", null)\n .style(\"width\", null);\n });\n }\n\n for (let i = 0; i < dropTargets.length; ++i) {\n dropTargets[i].onDrop(this, event);\n }\n });\n\n sidebarDragHandler(d3.selectAll(\".sidebar-section-content ul.list-group li.got-li-item\"));\n }\n\n private registerSvgHandlers(): void {\n let hierarchyComponent = this;\n\n // SVG Drag Handler\n let deltaX: number, deltaY: number, width: number;\n let startPoint: any;\n let svgGot: SvgHierarchyNode;\n let svgDragHandler = d3.drag()\n .on(\"start\", function(event: any) {\n let svgMousePoint: any = svgPoint(event.sourceEvent.pageX, event.sourceEvent.pageY);\n // let select = d3.select(this);\n\n svgGot = hierarchyComponent.primarySvgHierarchy.getNodeByCode(d3.select(this).attr(\"data-gotCode\"));\n\n\n\n // d3.selectAll(\".svg-got-relatedhiers-button\").sort(function (a: any, b: any) {\n // if (a.data.geoObjectType !== event.subject.data.geoObjectType) {\n // return -1\n // }\n // else {\n // return 1\n // }\n // });\n\n // d3.selectAll(\".svg-got-body-rect\").sort(function (a: any, b: any) {\n // if (a.data.geoObjectType !== event.subject.data.geoObjectType) {\n // return -1\n // }\n // else {\n // return 1\n // }\n // });\n\n // d3.selectAll(\".svg-got-header-rect\").sort(function (a: any, b: any) {\n // if (a.data.geoObjectType !== event.subject.data.geoObjectType) {\n // console.log(\"no --> \",a.data.geoObjectType)\n // return -1\n // }\n // else {\n // console.log(\"yes --> \",a.data.geoObjectType)\n // return 1\n // }\n // });\n\n startPoint = svgGot.getPos();\n\n deltaX = startPoint.x - svgMousePoint.x;\n deltaY = startPoint.y - svgMousePoint.y;\n })\n .on(\"drag\", function(event: any) {\n\n d3.select(\".g-context-menu\").remove();\n\n let svgMousePoint = svgPoint(event.sourceEvent.pageX, event.sourceEvent.pageY);\n\n svgGot = hierarchyComponent.primarySvgHierarchy.getNodeByCode(d3.select(this).attr(\"data-gotCode\"));\n\n svgGot.setPos(svgMousePoint.x + deltaX, svgMousePoint.y + deltaY, true);\n\n }).on(\"end\", function(event: any) {\n\n let bbox: string[] = d3.select(\"#svg\").attr(\"viewBox\").split(\" \");\n\n svgGot.setPos(startPoint.x, startPoint.y, false);\n\n // if (!isBboxPartiallyWithin(svgGot.getBbox(), { x: parseInt(bbox[0]), y: parseInt(bbox[1]), width: parseInt(bbox[2]), height: parseInt(bbox[3]) })) {\n\n // if (hierarchyComponent.isOrganizationRA(hierarchyComponent.currentHierarchy.organizationCode)) {\n // let obj = hierarchyComponent.findGeoObjectTypeByCode(svgGot.getCode());\n\n // hierarchyComponent.bsModalRef = hierarchyComponent.modalService.show(ConfirmModalComponent, {\n // animated: true,\n // backdrop: true,\n // ignoreBackdropClick: true,\n // });\n\n // let message = hierarchyComponent.localizeService.decode(\"confirm.modal.verify.remove.hierarchy\");\n // message = message.replace(\"{label}\", obj.label.localizedValue);\n\n // hierarchyComponent.bsModalRef.content.message = message;\n // hierarchyComponent.bsModalRef.content.data = obj.code;\n\n // (hierarchyComponent.bsModalRef.content).onConfirm.subscribe(data => {\n // let treeNode = svgGot.getTreeNode();\n // let parent = null;\n // if (treeNode.parent == null) {\n // parent = \"ROOT\";\n // }\n // else {\n // if (treeNode.parent.data.inheritedHierarchyCode != null) {\n // parent = \"ROOT\";\n // }\n // else {\n // parent = treeNode.parent.data.geoObjectType;\n // }\n // }\n\n // hierarchyComponent.removeFromHierarchy(parent, svgGot.getCode(), (err: any) => { svgGot.setPos(startPoint.x, startPoint.y, false); });\n // });\n\n // (hierarchyComponent.bsModalRef.content).onCancel.subscribe(data => {\n // svgGot.setPos(startPoint.x, startPoint.y, false);\n // });\n // }\n // else {\n // svgGot.setPos(startPoint.x, startPoint.y, false);\n // }\n\n // }\n // else {\n // svgGot.setPos(startPoint.x, startPoint.y, false);\n // }\n\n });\n\n svgDragHandler(d3.selectAll(\".svg-got-body-rect[data-inherited=false],.svg-got-label-text[data-inherited=false],.svg-got-header-rect[data-inherited=false]\"));\n }\n\n public findGeoObjectTypeByCode(code: string): GeoObjectType {\n for (let i = 0; i < this.geoObjectTypes.length; ++i) {\n let got: GeoObjectType = this.geoObjectTypes[i];\n\n if (got.code === code) {\n return got;\n }\n }\n }\n\n public findHierarchyByCode(code: string): HierarchyType {\n for (let i = 0; i < this.hierarchies.length; ++i) {\n let ht: HierarchyType = this.hierarchies[i];\n\n if (ht.code === code) {\n return ht;\n }\n }\n }\n\n public findOrganizationByCode(code: string): Organization {\n for (let i = 0; i < this.organizations.length; ++i) {\n let org: Organization = this.organizations[i];\n\n if (org.code === code) {\n return org;\n }\n }\n }\n\n private addChild(hierarchyCode: string, parentGeoObjectTypeCode: string, childGeoObjectTypeCode: string): void {\n this.hierarchyService.addChildToHierarchy(hierarchyCode, parentGeoObjectTypeCode, childGeoObjectTypeCode).then((ht: HierarchyType) => {\n let got = this.findGeoObjectTypeByCode(childGeoObjectTypeCode);\n\n let index = null;\n for (let i = 0; i < got.relatedHierarchies.length; ++i) {\n if (got.relatedHierarchies[i] === hierarchyCode) {\n index = i;\n break;\n }\n }\n\n if (index == null) {\n got.relatedHierarchies.push(hierarchyCode);\n }\n\n this.refreshPrimaryHierarchy(ht);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n private insertBetweenTypes(hierarchyCode: string, parentGeoObjectTypeCode: string, middleGeoObjectTypeCode: string, youngestGeoObjectTypeCode: string): void {\n this.hierarchyService.insertBetweenTypes(hierarchyCode, parentGeoObjectTypeCode, middleGeoObjectTypeCode, youngestGeoObjectTypeCode).then((ht: HierarchyType) => {\n this.refreshPrimaryHierarchy(ht);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n ngAfterViewInit() {\n\n }\n\n isRA(): boolean {\n return this.authService.isRA();\n }\n\n isOrganizationRA(orgCode: string, dropZone: boolean = false): boolean {\n return this.isSRA || this.authService.isOrganizationRA(orgCode);\n }\n\n getTypesByOrg(org: Organization): GeoObjectType[] {\n let orgTypes: GeoObjectType[] = [];\n\n for (let i = 0; i < this.geoObjectTypes.length; ++i) {\n let geoObjectType: GeoObjectType = this.geoObjectTypes[i];\n\n if (geoObjectType.organizationCode === org.code) {\n orgTypes.push(geoObjectType);\n }\n }\n\n return orgTypes;\n }\n\n getHierarchiesByOrg(org: Organization): HierarchyType[] {\n let orgHierarchies: HierarchyType[] = [];\n\n for (let i = 0; i < this.hierarchies.length; ++i) {\n let hierarchy: HierarchyType = this.hierarchies[i];\n\n if (hierarchy.organizationCode === org.code) {\n orgHierarchies.push(hierarchy);\n }\n }\n\n return orgHierarchies;\n }\n\n public refreshAll(desiredHierarchy: HierarchyType) {\n\n // Clear the types to then refresh\n this.geoObjectTypes = [];\n\n this.registryService.init().then(response => {\n this.localizeService.setLocales(response.locales);\n\n this.setGeoObjectTypes(response.types);\n\n this.organizations = response.organizations;\n\n this.organizations.forEach(org => {\n if (this.isOrganizationRA(org.code)) {\n this.userOrganization = org.code;\n }\n })\n\n let pos = this.getGeoObjectTypePosition(\"ROOT\");\n if (pos) {\n this.geoObjectTypes.splice(pos, 1);\n }\n\n this.setHierarchies(response.hierarchies);\n\n this.setNodesOnInit(desiredHierarchy);\n\n this.updateViewDatastructures();\n\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n public setGeoObjectTypes(types: GeoObjectType[]): void {\n\n // Set group parent types\n this.setAbstractTypes(types);\n\n // Set GeoObjectTypes that aren't part of a group.\n types.forEach(type => {\n if (!type.isAbstract) {\n if (!type.superTypeCode) {\n this.geoObjectTypes.push(type);\n }\n }\n });\n\n // Sort aphabetically because all other types to add will be children in a group.\n this.geoObjectTypes.sort((a, b) => {\n if (a.label.localizedValue.toLowerCase() < b.label.localizedValue.toLowerCase()) return -1;\n else if (a.label.localizedValue.toLowerCase() > b.label.localizedValue.toLowerCase()) return 1;\n else return 0;\n });\n\n // Add group children\n types.forEach(type => {\n if (!type.isAbstract) {\n if (type.superTypeCode && type.superTypeCode.length > 0) {\n\n for (let i = 0; i < this.geoObjectTypes.length; i++) {\n let setType = this.geoObjectTypes[i];\n if (type.superTypeCode === setType.code) {\n this.geoObjectTypes.splice(i + 1, 0, type);\n }\n }\n\n }\n }\n });\n\n }\n\n private setAbstractTypes(types: GeoObjectType[]): void {\n types.forEach(type => {\n if (type.isAbstract) {\n this.geoObjectTypes.push(type);\n }\n });\n }\n\n public updateViewDatastructures(): void {\n this.hierarchiesByOrg = [];\n this.typesByOrg = [];\n\n for (let i = 0; i < this.organizations.length; ++i) {\n let org: Organization = this.organizations[i];\n\n this.hierarchiesByOrg.push({ org: org, hierarchies: this.getHierarchiesByOrg(org) });\n this.typesByOrg.push({ org: org, types: this.getTypesByOrg(org) });\n }\n\n this.geoObjectTypes.forEach((got: GeoObjectType) => {\n got.canDrag = this.calculateCanDrag(got);\n got.relatedHierarchies = this.calculateRelatedHierarchies(got);\n });\n\n this.onFilterChange();\n }\n\n public excludeHierarchyTypeDeletes(hierarchy: HierarchyType) {\n return (this.hierarchyTypeDeleteExclusions.indexOf(hierarchy.code) !== -1);\n }\n\n public excludeGeoObjectTypeDeletes(geoObjectType: GeoObjectType) {\n return (this.geoObjectTypeDeleteExclusions.indexOf(geoObjectType.code) !== -1);\n }\n\n private setNodesOnInit(desiredHierarchy: HierarchyType): void {\n\n let index = -1;\n\n if (desiredHierarchy != null) {\n index = this.hierarchies.findIndex(h => h.code === desiredHierarchy.code);\n }\n else if (this.hierarchies.length > 0) {\n index = 0;\n }\n\n if (index > -1) {\n const hierarchy = this.hierarchies[index];\n\n this.setCurrentHierarchy(hierarchy);\n\n this.renderTree();\n }\n }\n\n private getHierarchy(hierarchyId: string): HierarchyType {\n let target: HierarchyType = null;\n this.hierarchies.forEach(hierarchy => {\n if (hierarchyId === hierarchy.code) {\n target = hierarchy;\n }\n });\n\n return target;\n }\n\n private setHierarchies(data: HierarchyType[]): void {\n let hierarchies: HierarchyType[] = [];\n data.forEach((hierarchyType, index) => {\n\n if (hierarchyType.rootGeoObjectTypes.length > 0) {\n hierarchyType.rootGeoObjectTypes.forEach(rootGeoObjectType => {\n this.processHierarchyNodes(rootGeoObjectType);\n })\n }\n\n hierarchies.push(hierarchyType);\n\n });\n\n this.hierarchies = hierarchies\n\n this.hierarchies.sort((a, b) => {\n if (a.label.localizedValue.toLowerCase() < b.label.localizedValue.toLowerCase()) return -1;\n else if (a.label.localizedValue.toLowerCase() > b.label.localizedValue.toLowerCase()) return 1;\n else return 0;\n });\n }\n\n private processHierarchyNodes(node: HierarchyNode) {\n if (node != null) {\n node.label = this.getHierarchyLabel(node.geoObjectType);\n\n node.children.forEach(child => {\n this.processHierarchyNodes(child);\n })\n }\n }\n\n private getHierarchyLabel(geoObjectTypeCode: string): string {\n let label: string = null;\n this.geoObjectTypes.forEach(function(gOT) {\n if (gOT.code === geoObjectTypeCode) {\n label = gOT.label.localizedValue;\n }\n });\n\n return label;\n }\n\n public handleOnMenu(node: any, $event: any): void {\n if (this.isOrganizationRA(this.currentHierarchy.organizationCode)) {\n this.contextMenuService.show.next({\n contextMenu: (node.data.childType !== null ? this.nodeMenuComponent : this.leafMenuComponent),\n event: $event,\n item: node,\n });\n $event.preventDefault();\n $event.stopPropagation();\n }\n else {\n $event.preventDefault();\n $event.stopPropagation();\n }\n }\n\n public treeNodeOnClick(node: any, $event: any): void {\n\n node.treeModel.setFocusedNode(node);\n\n if (node.treeModel.isExpanded(node)) {\n node.collapse();\n }\n else {\n node.treeModel.expandAll();\n }\n }\n\n public hierarchyOnClick(event: any, item: HierarchyType) {\n this.setCurrentHierarchy(item);\n this.renderTree();\n }\n\n public createHierarchy(): void {\n this.bsModalRef = this.modalService.show(CreateHierarchyTypeModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true,\n 'class': 'upload-modal'\n });\n\n (this.bsModalRef.content).onHierarchytTypeCreate.subscribe(data => {\n\n this.hierarchies.push(data);\n\n this.hierarchies.sort((a: HierarchyType, b: HierarchyType) => {\n var nameA = a.label.localizedValue.toUpperCase(); // ignore upper and lowercase\n var nameB = b.label.localizedValue.toUpperCase(); // ignore upper and lowercase\n\n if (nameA < nameB) {\n return -1; //nameA comes first\n }\n\n if (nameA > nameB) {\n return 1; // nameB comes first\n }\n\n return 0; // names must be equal\n });\n\n this.updateViewDatastructures();\n });\n }\n\n public deleteHierarchyType(obj: HierarchyType): void {\n this.bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true,\n });\n this.bsModalRef.content.message = this.localizeService.decode(\"confirm.modal.verify.delete\") + ' [' + obj.label.localizedValue + ']';\n this.bsModalRef.content.data = obj.code;\n this.bsModalRef.content.type = \"DANGER\";\n this.bsModalRef.content.submitText = this.localizeService.decode(\"modal.button.delete\");\n\n (this.bsModalRef.content).onConfirm.subscribe(data => {\n this.removeHierarchyType(data);\n });\n }\n\n public editHierarchyType(obj: HierarchyType, readOnly: boolean): void {\n\n this.bsModalRef = this.modalService.show(CreateHierarchyTypeModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true,\n 'class': 'upload-modal'\n });\n this.bsModalRef.content.edit = true;\n this.bsModalRef.content.readOnly = readOnly;\n this.bsModalRef.content.hierarchyType = obj;\n this.bsModalRef.content.onHierarchytTypeCreate.subscribe(data => {\n let pos = this.getHierarchyTypePosition(data.code);\n\n this.hierarchies[pos].label = data.label;\n this.hierarchies[pos].description = data.description;\n this.hierarchies[pos].progress = data.progress;\n this.hierarchies[pos].acknowledgement = data.acknowledgement;\n this.hierarchies[pos].disclaimer = data.disclaimer;\n this.hierarchies[pos].useConstraints = data.useConstraints;\n this.hierarchies[pos].accessConstraints = data.accessConstraints;\n this.hierarchies[pos].contact = data.contact;\n this.hierarchies[pos].phoneNumber = data.phoneNumber;\n this.hierarchies[pos].email = data.email;\n\n this.updateViewDatastructures();\n\n if (this.currentHierarchy.code === data.code) {\n this.setCurrentHierarchy(this.hierarchies[pos]);\n\n this.renderTree();\n }\n });\n }\n\n setCurrentHierarchy(hierarchyType: HierarchyType): void {\n this.currentHierarchy = hierarchyType;\n }\n\n isPrimaryHierarchy(hierarchy: HierarchyType): boolean {\n // return hierarchy.isPrimary;\n return hierarchy.code === this.currentHierarchy.code;\n }\n\n public removeHierarchyType(code: string): void {\n this.hierarchyService.deleteHierarchyType(code).then(response => {\n\n let pos = this.getHierarchyTypePosition(code);\n this.hierarchies.splice(pos, 1);\n this.updateViewDatastructures();\n\n if (this.hierarchies.length > 0) {\n this.setCurrentHierarchy(this.hierarchies[0]);\n }\n else {\n this.currentHierarchy = null;\n }\n\n this.renderTree();\n\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n public createGeoObjectType(groupSuperType: GeoObjectType, isAbstract: boolean, org: Organization): void {\n this.bsModalRef = this.modalService.show(CreateGeoObjTypeModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true,\n 'class': 'upload-modal'\n });\n this.bsModalRef.content.init(org, this.geoObjectTypes, groupSuperType, isAbstract);\n\n this.bsModalRef.content.onGeoObjTypeCreate.subscribe(data => {\n\n data.relatedHierarchies = this.calculateRelatedHierarchies(data);\n\n this.refreshAll(this.currentHierarchy);\n\n });\n }\n\n public deleteGeoObjectType(obj: GeoObjectType): void {\n this.bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true,\n });\n this.bsModalRef.content.message = this.localizeService.decode(\"confirm.modal.verify.delete\") + ' [' + obj.label.localizedValue + ']';\n this.bsModalRef.content.data = obj.code;\n this.bsModalRef.content.submitText = this.localizeService.decode(\"modal.button.delete\");\n this.bsModalRef.content.type = ModalTypes.danger;\n\n (this.bsModalRef.content).onConfirm.subscribe(data => {\n this.removeGeoObjectType(data);\n });\n }\n\n public removeGeoObjectType(code: string, errCallback: (err: HttpErrorResponse) => void = null): void {\n this.registryService.deleteGeoObjectType(code).then(response => {\n\n let pos = this.getGeoObjectTypePosition(code);\n this.geoObjectTypes.splice(pos, 1);\n\n this.refreshAll(this.currentHierarchy);\n\n }).catch((err: HttpErrorResponse) => {\n if (errCallback != null) {\n errCallback(err);\n }\n this.error(err);\n });\n }\n\n public manageGeoObjectType(geoObjectType: GeoObjectType, readOnly: boolean): void {\n\n this.bsModalRef = this.modalService.show(ManageGeoObjectTypeModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true,\n 'class': 'manage-geoobjecttype-modal'\n });\n\n geoObjectType.attributes.sort((a, b) => {\n if (a.label.localizedValue < b.label.localizedValue) return -1;\n else if (a.label.localizedValue > b.label.localizedValue) return 1;\n else return 0;\n });\n this.bsModalRef.content.geoObjectType = geoObjectType;\n this.bsModalRef.content.readOnly = readOnly;\n\n (this.bsModalRef.content).onGeoObjectTypeSubmitted.subscribe(data => {\n\n if (data.isAbstract) {\n this.refreshAll(this.currentHierarchy);\n }\n else {\n const position = this.getGeoObjectTypePosition(data.code);\n\n if (position !== -1) {\n this.geoObjectTypes[position] = data;\n }\n\n // Update all of the hierarchies for the new geo object type\n this.updateViewDatastructures();\n\n this.hierarchies.forEach((hierarchyType: HierarchyType) => {\n this.processHierarchyNodes(hierarchyType.rootGeoObjectTypes[0]);\n });\n\n // Update the current hierarchy view\n if (this.currentHierarchy != null) {\n this.processHierarchyNodes(this.currentHierarchy.rootGeoObjectTypes[0]);\n }\n\n this.renderTree();\n }\n });\n }\n\n private getHierarchyTypePosition(code: string): number {\n for (let i = 0; i < this.hierarchies.length; i++) {\n let obj = this.hierarchies[i];\n if (obj.code === code) {\n return i;\n }\n }\n }\n\n private getGeoObjectTypePosition(code: string): number {\n for (let i = 0; i < this.geoObjectTypes.length; i++) {\n let obj = this.geoObjectTypes[i];\n if (obj.code === code) {\n return i;\n }\n }\n\n return null;\n }\n\n public refreshPrimaryHierarchy(hierarchyType: HierarchyType) {\n this.processHierarchyNodes(hierarchyType.rootGeoObjectTypes[0]);\n\n for (let i = 0; i < this.hierarchies.length; ++i) {\n let hierarchy = this.hierarchies[i];\n\n if (hierarchy.code === hierarchyType.code) {\n this.hierarchies[i] = hierarchyType;\n\n this.setCurrentHierarchy(hierarchyType);\n }\n }\n\n this.updateViewDatastructures();\n\n this.renderTree();\n }\n\n public removeFromHierarchy(parentGotCode, gotCode, errCallback: (err: HttpErrorResponse) => void = null): void {\n const that = this;\n\n this.hierarchyService.removeFromHierarchy(this.currentHierarchy.code, parentGotCode, gotCode).then(hierarchyType => {\n\n let got = that.findGeoObjectTypeByCode(gotCode);\n\n let index = null;\n for (let i = 0; i < got.relatedHierarchies.length; ++i) {\n if (got.relatedHierarchies[i] === hierarchyType.code) {\n index = i;\n break;\n }\n }\n\n if (index != null) {\n got.relatedHierarchies.splice(index, 1);\n }\n\n that.refreshPrimaryHierarchy(hierarchyType);\n\n }).catch((err: HttpErrorResponse) => {\n if (errCallback != null) {\n errCallback(err);\n }\n\n this.error(err);\n });\n }\n\n public isActive(item: HierarchyType) {\n return this.currentHierarchy === item;\n };\n\n onFilterChange(): void {\n const label = this.filter.toLowerCase();\n\n this.filteredHierarchiesByOrg = [];\n this.filteredTypesByOrg = [];\n\n this.hierarchiesByOrg.forEach((item: { org: Organization, hierarchies: HierarchyType[] }) => {\n\n const filtered = item.hierarchies.filter((hierarchy: HierarchyType) => {\n const index = hierarchy.label.localizedValue.toLowerCase().indexOf(label);\n\n return (index !== -1);\n });\n\n this.filteredHierarchiesByOrg.push({ org: item.org, hierarchies: filtered });\n });\n\n this.typesByOrg.forEach((item: { org: Organization, types: GeoObjectType[] }) => {\n\n const filtered = item.types.filter((type: GeoObjectType) => {\n const index = type.label.localizedValue.toLowerCase().indexOf(label);\n\n return (index !== -1);\n });\n\n this.filteredTypesByOrg.push({ org: item.org, types: filtered });\n });\n\n setTimeout(() => { this.registerDragHandlers(); }, 500);\n }\n\n handleInheritHierarchy(hierarchyTypeCode: string, inheritedHierarchyTypeCode: string, geoObjectTypeCode: string) {\n this.hierarchyService.setInheritedHierarchy(hierarchyTypeCode, inheritedHierarchyTypeCode, geoObjectTypeCode).then((ht: HierarchyType) => {\n this.refreshPrimaryHierarchy(ht);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n handleUninheritHierarchy(hierarchyTypeCode: string, geoObjectTypeCode: string) {\n this.hierarchyService.removeInheritedHierarchy(hierarchyTypeCode, geoObjectTypeCode).then((ht: HierarchyType) => {\n this.refreshPrimaryHierarchy(ht);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n public importTypes(): void {\n this.bsModalRef = this.modalService.show(ImportTypesModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true,\n 'class': 'upload-modal'\n });\n\n this.bsModalRef.content.init(this.organizations);\n\n this.bsModalRef.content.onNodeChange.subscribe(data => {\n // Reload the page\n this.refreshAll(null);\n });\n }\n\n\n\n public error(err: HttpErrorResponse): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n}\n","
\n\t\n\n\t\n\n\t
\n\n\t\t\n\t\t
\n\n\t\t\t\n\n\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t\t
\n
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n
\n
\n

\n \n

\n
\n
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
\n\n
\n","import { ChangeType } from \"@registry/model/constants\";\nimport { ChangeRequest } from \"@registry/model/crtable\";\nimport { AttributeType, GeoObjectOverTime, GeoObjectType, HierarchyOverTime, ValueOverTime } from \"@registry/model/registry\";\nimport { DateService, LocalizationService } from \"@shared/service\";\nimport { Subject } from \"rxjs\";\nimport { ChangeRequestChangeOverTimeAttributeEditor } from \"./change-request-change-over-time-attribute-editor\";\nimport { StandardAttributeCRModel } from \"./StandardAttributeCRModel\";\nimport { ValueOverTimeCREditor } from \"./ValueOverTimeCREditor\";\n\nexport class ChangeRequestEditor {\n\n changeRequest: ChangeRequest;\n\n // eslint-disable-next-line no-undef\n attributeEditors: (ChangeRequestChangeOverTimeAttributeEditor | StandardAttributeCRModel)[];\n\n geometryAttributeType: AttributeType;\n\n parentAttributeType: AttributeType;\n\n geoObject: GeoObjectOverTime;\n\n geoObjectType: GeoObjectType;\n\n hierarchies: HierarchyOverTime[];\n\n private _isValid: boolean;\n\n onChangeSubject : Subject = new Subject();\n\n localizationService: LocalizationService;\n\n dateService: DateService;\n\n constructor(changeRequest: ChangeRequest, geoObject: GeoObjectOverTime, geoObjectType: GeoObjectType, hierarchies: HierarchyOverTime[], geometryAttributeType: AttributeType, parentAttributeType: AttributeType, localizationService: LocalizationService, dateService: DateService) {\n this.changeRequest = changeRequest;\n this.geoObject = geoObject;\n this.geoObjectType = geoObjectType;\n this.geometryAttributeType = geometryAttributeType;\n this.parentAttributeType = parentAttributeType;\n this.hierarchies = hierarchies;\n this.localizationService = localizationService;\n this.dateService = dateService;\n\n this.attributeEditors = this.generateAttributeEditors();\n this.validate();\n }\n\n private generateAttributeEditors() {\n let geoObjectAttributeExcludes: string[] = [\"uid\", \"sequence\", \"type\", \"lastUpdateDate\", \"createDate\"];\n\n let editors = [];\n\n let attrs = this.geoObjectType.attributes.slice(); // intentionally a shallow copy\n attrs = attrs.filter(attr => geoObjectAttributeExcludes.indexOf(attr.code) === -1);\n attrs.push(this.geometryAttributeType);\n attrs.push(this.parentAttributeType);\n\n attrs.forEach(attr => {\n if (attr.code !== \"_PARENT_\") {\n if (attr.isChangeOverTime) {\n let editor = new ChangeRequestChangeOverTimeAttributeEditor(this, attr, null);\n\n editors.push(editor);\n } else {\n let editor = new StandardAttributeCRModel(attr, this.geoObject, this.changeRequest);\n\n editors.push(editor);\n }\n } else {\n this.hierarchies.forEach(hierarchy => {\n let editor = new ChangeRequestChangeOverTimeAttributeEditor(this, attr, hierarchy);\n\n editors.push(editor);\n });\n }\n });\n\n return editors;\n }\n\n public hasChanges(): boolean {\n let hasChanges = false;\n\n this.attributeEditors.forEach(attributeEditor => {\n if (attributeEditor.hasChanges()) {\n hasChanges = true;\n }\n });\n\n return hasChanges;\n }\n\n public isValid(): boolean {\n return this._isValid;\n }\n\n public validate(skipExists: boolean = false): boolean {\n this._isValid = true;\n\n this.attributeEditors.forEach(attributeEditor => {\n if (!skipExists || attributeEditor.attribute.code !== \"exists\") {\n attributeEditor.validate(true);\n\n if (!attributeEditor.isValid()) {\n this._isValid = false;\n }\n }\n });\n\n return this._isValid;\n }\n\n findExistingValueOverTimeByOid(oid: string, attributeCode: string) {\n if (this.geoObject.attributes[attributeCode]) {\n let index = this.geoObject.attributes[attributeCode].values.findIndex((vot: ValueOverTime) => vot.oid === oid);\n\n if (index !== -1) {\n return this.geoObject.attributes[attributeCode].values[index];\n }\n }\n\n return null;\n }\n\n public getEditorForAttribute(attribute: AttributeType, hierarchy: HierarchyOverTime = null): ChangeRequestChangeOverTimeAttributeEditor | StandardAttributeCRModel {\n let indexOf = this.attributeEditors.findIndex(editor => (!editor.attribute.isChangeOverTime || (hierarchy == null && (editor as ChangeRequestChangeOverTimeAttributeEditor).hierarchy == null) || ((editor as ChangeRequestChangeOverTimeAttributeEditor).hierarchy != null && (editor as ChangeRequestChangeOverTimeAttributeEditor).hierarchy.code === hierarchy.code)) && editor.attribute.code === attribute.code);\n\n if (indexOf === -1) {\n return null;\n } else {\n return this.attributeEditors[indexOf];\n }\n }\n\n public getEditors(): (ChangeRequestChangeOverTimeAttributeEditor | StandardAttributeCRModel)[] {\n return this.attributeEditors;\n }\n\n public onChange(type: ChangeType) {\n this.onChangeSubject.next(type);\n }\n\n public existsAtDate(date: string) {\n let existsAttribute: AttributeType = GeoObjectType.getAttribute(this.geoObjectType, \"exists\");\n let existEditors = (this.getEditorForAttribute(existsAttribute) as ChangeRequestChangeOverTimeAttributeEditor).getEditors();\n\n let valLen = existEditors.length;\n for (let j = 0; j < valLen; ++j) {\n let editor: ValueOverTimeCREditor = existEditors[j];\n\n if (editor.startDate != null && editor.endDate != null && !editor.isDelete() && editor.value === true && this.dateService.between(date, editor.startDate, editor.endDate)) {\n return true;\n }\n }\n\n return false;\n }\n\n}\n","///\n/// Copyright (c) 2015 TerraFrame, Inc. All rights reserved.\n///\n/// This file is part of Runway SDK(tm).\n///\n/// Runway SDK(tm) is free software: you can redistribute it and/or modify\n/// it under the terms of the GNU Lesser General Public License as\n/// published by the Free Software Foundation, either version 3 of the\n/// License, or (at your option) any later version.\n///\n/// Runway SDK(tm) is distributed in the hope that it will be useful, but\n/// WITHOUT ANY WARRANTY; without even the implied warranty of\n/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n/// GNU Lesser General Public License for more details.\n///\n/// You should have received a copy of the GNU Lesser General Public\n/// License along with Runway SDK(tm). If not, see .\n///\n\nimport { Injectable } from \"@angular/core\";\nimport { HttpHeaders, HttpClient, HttpParams } from \"@angular/common/http\";\n// import 'rxjs/add/operator/toPromise';\nimport { finalize } from \"rxjs/operators\";\n\nimport { HierarchyType, HierarchyGroupedTypeView } from \"@registry/model/hierarchy\";\nimport { TreeEntity } from \"@registry/model/registry\";\nimport { EventService } from \"@shared/service\";\n\ndeclare var acp: any;\n\n@Injectable()\nexport class HierarchyService {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private http: HttpClient, private eventService: EventService) { }\n\n getHierarchyTypes(types: any): Promise {\n let params: HttpParams = new HttpParams();\n params = params.set(\"types\", JSON.stringify(types));\n\n return this.http\n .get(acp + \"/cgr/hierarchytype/get-all\", { params: params })\n .toPromise();\n }\n\n getHierarchyGroupedTypes(): Promise {\n let params: HttpParams = new HttpParams();\n\n return this.http\n .get(acp + \"/hierarchy/groupedTypes\", { params: params })\n .toPromise();\n }\n\n addChildToHierarchy(hierarchyCode: string, parentGeoObjectTypeCode: string, childGeoObjectTypeCode: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/cgr/hierarchytype/add\", JSON.stringify({ hierarchyCode: hierarchyCode, parentGeoObjectTypeCode: parentGeoObjectTypeCode, childGeoObjectTypeCode: childGeoObjectTypeCode }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n insertBetweenTypes(hierarchyCode: string, parentGeoObjectTypeCode: string, middleGeoObjectTypeCode: string, youngestGeoObjectTypeCode: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/hierarchy/insertBetweenTypes\", JSON.stringify({ hierarchyCode: hierarchyCode, parentGeoObjectTypeCode: parentGeoObjectTypeCode, middleGeoObjectTypeCode: middleGeoObjectTypeCode, youngestGeoObjectTypeCode: youngestGeoObjectTypeCode }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n removeFromHierarchy(hierarchyCode: string, parentGeoObjectTypeCode: string, childGeoObjectTypeCode: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/cgr/hierarchytype/remove\", JSON.stringify({ hierarchyCode: hierarchyCode, parentGeoObjectTypeCode: parentGeoObjectTypeCode, childGeoObjectTypeCode: childGeoObjectTypeCode }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n createHierarchyType(htJSON: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/cgr/hierarchytype/create\", JSON.stringify({ htJSON: htJSON }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n updateHierarchyType(htJSON: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/cgr/hierarchytype/update\", JSON.stringify({ htJSON: htJSON }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n deleteHierarchyType(code: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/cgr/hierarchytype/delete\", { code: code }, { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n setInheritedHierarchy(hierarchyTypeCode: string, inheritedHierarchyTypeCode: string, geoObjectTypeCode: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/hierarchy/setInherited\", JSON.stringify({ hierarchyTypeCode: hierarchyTypeCode, inheritedHierarchyTypeCode: inheritedHierarchyTypeCode, geoObjectTypeCode: geoObjectTypeCode }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n removeInheritedHierarchy(hierarchyTypeCode: string, geoObjectTypeCode: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/hierarchy/removeInherited\", JSON.stringify({ hierarchyTypeCode: hierarchyTypeCode, geoObjectTypeCode: geoObjectTypeCode }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n}\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpHeaders, HttpClient, HttpParams } from \"@angular/common/http\";\r\nimport { finalize } from \"rxjs/operators\";\r\n\r\nimport { ImportConfiguration, Synonym, Location, Term } from \"@registry/model/io\";\r\nimport { EventService } from \"@shared/service\";\r\n\r\ndeclare let acp: string;\r\n\r\n@Injectable()\r\nexport class IOService {\r\n\r\n constructor(private http: HttpClient, private eventService: EventService) { }\r\n\r\n importSpreadsheet(configuration: ImportConfiguration): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/etl/import\", JSON.stringify({ json: configuration }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n cancelImport(configuration: ImportConfiguration): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/etl/cancel-import\", JSON.stringify({ configuration: configuration }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n importShapefile(configuration: ImportConfiguration): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/etl/import\", JSON.stringify({ json: configuration }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n listGeoObjectTypes(includeAbstractTypes: boolean): Promise<{ label: string, code: string, orgCode: string, superTypeCode?: string }[]> {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"includeAbstractTypes\", includeAbstractTypes.toString());\r\n\r\n return this.http\r\n .get<{ label: string, code: string, orgCode: string }[]>(acp + \"/cgr/geoobjecttype/list-types\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getTypeAncestors(code: string, hierarchyCode: string, includeInheritedTypes: boolean): Promise {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"code\", code);\r\n params = params.set(\"hierarchyCode\", hierarchyCode);\r\n params = params.set(\"includeInheritedTypes\", includeInheritedTypes.toString());\r\n\r\n return this.http\r\n .get(acp + \"/cgr/geoobjecttype/get-ancestors\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getHierarchiesForType(code: string, includeTypes: boolean): Promise<{ label: string, code: string, parents: { label: string, code: string }[] }[]> {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"code\", code);\r\n params = params.set(\"includeTypes\", includeTypes.toString());\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .get<{ label: string, code: string, parents: { label: string, code: string }[] }[]>(acp + \"/cgr/geoobjecttype/get-hierarchies\", { params: params })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n getHierarchiesForSubtypes(code: string, includeTypes: boolean): Promise<{ label: string, code: string, parents: { label: string, code: string }[] }[]> {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"code\", code);\r\n params = params.set(\"includeTypes\", includeTypes.toString());\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .get<{ label: string, code: string, parents: { label: string, code: string }[] }[]>(acp + \"/cgr/geoobjecttype/get-subtype-hierarchies\", { params: params })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n getGeoObjectSuggestions(text: string, type: string, parent: string, hierarchy: string): Promise {\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n let params = {\r\n text: text,\r\n type: type\r\n } as any;\r\n\r\n if (parent != null && hierarchy != null) {\r\n params.parent = parent;\r\n params.hierarchy = parent;\r\n }\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobject/suggestions\", JSON.stringify(params), { headers: headers })\r\n .toPromise();\r\n }\r\n\r\n createGeoObjectSynonym(entityId: string, label: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/geo-synonym/createGeoEntitySynonym\", JSON.stringify({ entityId: entityId, label: label }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n deleteGeoObjectSynonym(synonymId: string, vOid: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/geo-synonym/deleteGeoEntitySynonym\", JSON.stringify({ synonymId: synonymId, vOid: vOid }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n getTermSuggestions(mdAttributeId: string, text: string, limit: string): Promise<{ text: string, data: any }[]> {\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"mdAttributeId\", mdAttributeId);\r\n params = params.set(\"text\", text);\r\n params = params.set(\"limit\", limit);\r\n\r\n return this.http\r\n .get<{ text: string, data: any }[]>(acp + \"/uploader/getClassifierSuggestions\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n createTermSynonym(classifierId: string, label: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n let data = JSON.stringify({ classifierId: classifierId, label: label });\r\n\r\n return this.http\r\n .post(acp + \"/uploader/createClassifierSynonym\", data, { headers: headers })\r\n .toPromise();\r\n }\r\n\r\n deleteTermSynonym(synonymId: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n let data = JSON.stringify({ synonymId: synonymId });\r\n\r\n return this.http\r\n .post(acp + \"/uploader/deleteClassifierSynonym\", data, { headers: headers })\r\n .toPromise();\r\n }\r\n\r\n createTerm(label: string, code: string, parentTermCode: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n let params = { parentTermCode: parentTermCode, termJSON: { label: label, code: code } };\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobjecttype/addterm\", JSON.stringify(params), { headers: headers })\r\n .toPromise();\r\n }\r\n\r\n removeTerm(parentTermCode: string, termCode: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobjecttype/deleteterm\", JSON.stringify({ parentTermCode: parentTermCode, termCode: termCode }), { headers: headers })\r\n .toPromise();\r\n }\r\n\r\n}\r\n","///\n/// Copyright (c) 2015 TerraFrame, Inc. All rights reserved.\n///\n/// This file is part of Runway SDK(tm).\n///\n/// Runway SDK(tm) is free software: you can redistribute it and/or modify\n/// it under the terms of the GNU Lesser General Public License as\n/// published by the Free Software Foundation, either version 3 of the\n/// License, or (at your option) any later version.\n///\n/// Runway SDK(tm) is distributed in the hope that it will be useful, but\n/// WITHOUT ANY WARRANTY; without even the implied warranty of\n/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n/// GNU Lesser General Public License for more details.\n///\n/// You should have received a copy of the GNU Lesser General Public\n/// License along with Runway SDK(tm). If not, see .\n///\n\nimport { Injectable } from \"@angular/core\";\nimport { HttpClient, HttpParams } from \"@angular/common/http\";\n// import 'rxjs/add/operator/toPromise';\n\nimport { EventService } from \"@shared/service\";\n\nimport { AllLocaleInfo } from \"@registry/model/localization-manager\";\n\ndeclare let acp: any;\n\n@Injectable()\nexport class LocalizationManagerService {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private http: HttpClient, private eventService: EventService) { }\n\n getNewLocaleInfo(): Promise {\n return this.http\n .get(acp + \"/localization/getNewLocaleInformation\")\n .toPromise();\n }\n\n installLocale(language: string, country: string, variant: string): Promise {\n let params: HttpParams = new HttpParams();\n\n if (language != null) {\n params = params.set(\"language\", language);\n }\n\n if (country != null) {\n params = params.set(\"country\", country);\n }\n\n if (variant != null) {\n params = params.set(\"variant\", variant);\n }\n\n return this.http\n .get(acp + \"/localization/installLocale\", { params: params })\n .toPromise();\n }\n\n}\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpParams } from \"@angular/common/http\";\r\nimport { finalize } from \"rxjs/operators\";\r\nimport * as mapboxgl from \"mapbox-gl\";\r\n\r\nimport { LocationInformation } from \"@registry/model/location-manager\";\r\nimport { EventService } from \"@shared/service\";\r\nimport { GeoObject } from \"@registry/model/registry\";\n\r\ndeclare let acp: any;\r\n\r\n@Injectable()\r\nexport class MapService {\r\n\r\n constructor(private http: HttpClient, private eventService: EventService) {\r\n (mapboxgl as any).accessToken = \"pk.eyJ1IjoidGVycmFmcmFtZSIsImEiOiJjanZxNWE5bWkwazYwNGFtb3loOGxsbjR1In0.ZNEwT-pBnGookEb-BF_jQQ\";\r\n }\r\n\r\n roots(typeCode: string, hierarchyCode: string, date: string): Promise {\n let params: HttpParams = new HttpParams();\r\n\r\n if (typeCode != null) {\r\n params = params.set(\"typeCode\", typeCode);\r\n }\r\n\r\n if (hierarchyCode != null) {\r\n params = params.set(\"hierarchyCode\", hierarchyCode);\r\n }\r\n\r\n if (date != null) {\r\n params = params.set(\"date\", date);\r\n }\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .get(acp + \"/registrylocation/roots\", { params: params })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n search(text: string, date: string): Promise<{ type: string, features: GeoObject[] }> {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"text\", text);\r\n\r\n if (date != null) {\r\n params = params.set(\"date\", date);\r\n }\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .get<{ type: string, features: GeoObject[] }>(acp + \"/registrylocation/search\", { params: params })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n}\n","///\r\n/// Copyright (c) 2015 TerraFrame, Inc. All rights reserved.\r\n///\r\n/// This file is part of Runway SDK(tm).\r\n///\r\n/// Runway SDK(tm) is free software: you can redistribute it and/or modify\r\n/// it under the terms of the GNU Lesser General Public License as\r\n/// published by the Free Software Foundation, either version 3 of the\r\n/// License, or (at your option) any later version.\r\n///\r\n/// Runway SDK(tm) is distributed in the hope that it will be useful, but\r\n/// WITHOUT ANY WARRANTY; without even the implied warranty of\r\n/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n/// GNU Lesser General Public License for more details.\r\n///\r\n/// You should have received a copy of the GNU Lesser General Public\r\n/// License along with Runway SDK(tm). If not, see .\r\n///\r\n\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpHeaders, HttpClient, HttpParams } from \"@angular/common/http\";\r\n\r\nimport { Observable } from \"rxjs\";\r\nimport { finalize } from \"rxjs/operators\";\r\n\r\nimport {\r\n GeoObject, GeoObjectType, AttributeType, Term, MasterList, MasterListVersion, ParentTreeNode,\r\n ChildTreeNode, ValueOverTime, GeoObjectOverTime, HierarchyOverTime, ScheduledJob, PaginationPage,\r\n MasterListByOrg\r\n} from \"@registry/model/registry\";\r\n\r\nimport { HierarchyType } from \"@registry/model/hierarchy\";\r\nimport { Progress } from \"@shared/model/progress\";\r\n\r\nimport { Organization, LocaleView } from \"@shared/model/core\";\r\nimport { EventService } from \"@shared/service\";\r\n\r\ndeclare let acp: any;\r\n\r\n@Injectable()\r\nexport class RegistryService {\r\n\r\n // eslint-disable-next-line no-useless-constructor\r\n constructor(private http: HttpClient, private eventService: EventService) { }\r\n\r\n init(): Promise<{ types: GeoObjectType[], hierarchies: HierarchyType[], organizations: Organization[], locales: LocaleView[] }> {\r\n return this.http.get<{ types: GeoObjectType[], hierarchies: HierarchyType[], organizations: Organization[], locales: LocaleView[] }>(acp + \"/cgr/init\")\r\n .toPromise();\r\n }\r\n\r\n // param types: array of GeoObjectType codes. If empty array then all GeoObjectType objects are returned.\r\n getGeoObjectTypes(types: string[], hierarchies: string[]): Promise {\r\n let params: HttpParams = new HttpParams();\r\n\r\n if (types != null) {\r\n params = params.set(\"types\", JSON.stringify(types));\r\n }\r\n\r\n if (hierarchies != null) {\r\n params = params.set(\"hierarchies\", JSON.stringify(hierarchies));\r\n }\r\n\r\n return this.http\r\n .get(acp + \"/cgr/geoobjecttype/get-all\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getParentGeoObjects(childId: string, childTypeCode: string, parentTypes: any, recursive: boolean, date: string): Promise {\r\n let params: HttpParams = new HttpParams();\r\n\r\n params = params.set(\"childId\", childId);\r\n params = params.set(\"childTypeCode\", childTypeCode);\r\n params = params.set(\"parentTypes\", JSON.stringify(parentTypes));\r\n params = params.set(\"recursive\", JSON.stringify(recursive));\r\n\r\n if (date != null) {\r\n params = params.set(\"date\", date);\r\n }\r\n\r\n return this.http\r\n .get(acp + \"/cgr/geoobject/get-parent-geoobjects\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getChildGeoObjects(parentId: string, parentTypeCode: string, childrenTypes: any, recursive: boolean): Promise {\r\n let params: HttpParams = new HttpParams();\r\n\r\n params = params.set(\"parentId\", parentId);\r\n params = params.set(\"parentTypeCode\", parentTypeCode);\r\n params = params.set(\"childrenTypes\", JSON.stringify(childrenTypes));\r\n params = params.set(\"recursive\", JSON.stringify(recursive));\r\n\r\n return this.http\r\n .get(acp + \"/cgr/geoobject/getchildren\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n newGeoObjectInstance(typeCode: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobject/newGeoObjectInstance\", JSON.stringify({ typeCode: typeCode }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n createGeoObjectType(gtJSON: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobjecttype/create\", JSON.stringify({ gtJSON: gtJSON }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n updateGeoObjectType(gtJSON: GeoObjectType): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobjecttype/update\", JSON.stringify({ gtJSON: gtJSON }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n deleteGeoObjectType(code: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobjecttype/delete\", JSON.stringify({ code: code }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n addAttributeType(geoObjTypeId: string, attribute: AttributeType): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobjecttype/addattribute\", JSON.stringify({ geoObjTypeId: geoObjTypeId, attributeType: attribute }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n updateAttributeType(geoObjTypeId: string, attribute: AttributeType): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobjecttype/updateattribute\", JSON.stringify({ geoObjTypeId: geoObjTypeId, attributeType: attribute }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n deleteAttributeType(geoObjTypeId: string, attributeName: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobjecttype/deleteattribute\", JSON.stringify({ geoObjTypeId: geoObjTypeId, attributeName: attributeName }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n addAttributeTermTypeOption(parentTermCode: string, term: Term): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobjecttype/addterm\", JSON.stringify({ parentTermCode: parentTermCode, termJSON: term }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n updateAttributeTermTypeOption(parentTermCode: string, termJSON: Term): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobjecttype/updateterm\", JSON.stringify({ parentTermCode: parentTermCode, termJSON: termJSON }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n deleteAttributeTermTypeOption(parentTermCode: string, termCode: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobjecttype/deleteterm\", JSON.stringify({ parentTermCode: parentTermCode, termCode: termCode }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n getGeoObject(id: string, typeCode: string): Promise {\r\n let params: HttpParams = new HttpParams();\r\n\r\n params = params.set(\"id\", id);\r\n params = params.set(\"typeCode\", typeCode);\r\n\r\n return this.http\r\n .get(acp + \"/cgr/geoobject/get\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getGeoObjectBounds(code: string, typeCode: string): Promise {\r\n let params: HttpParams = new HttpParams();\r\n\r\n params = params.set(\"code\", code);\r\n params = params.set(\"typeCode\", typeCode);\r\n\r\n return this.http\r\n .get(acp + \"/cgr/geoobject/get-bounds\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getGeoObjectBoundsAtDate(code: string, typeCode: string, date: string): Promise {\r\n let params: HttpParams = new HttpParams();\r\n\r\n params = params.set(\"code\", code);\r\n params = params.set(\"typeCode\", typeCode);\r\n params = params.set(\"date\", date);\r\n\r\n return this.http\r\n .get(acp + \"/cgr/geoobject-time/get-bounds\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getGeoObjectByCode(code: string, typeCode: string): Promise {\r\n let params: HttpParams = new HttpParams();\r\n\r\n params = params.set(\"code\", code);\r\n params = params.set(\"typeCode\", typeCode);\r\n\r\n return this.http\r\n .get(acp + \"/cgr/geoobject/get-code\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getHierarchiesForGeoObject(code: string, typeCode: string): Promise {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"code\", code);\r\n params = params.set(\"typeCode\", typeCode);\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .get(acp + \"/cgr/geoobject/get-hierarchies-over-time\", { params: params })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n getGeoObjectSuggestions(text: string, type: string, parent: string, parentTypeCode: string, hierarchy: string, startDate: string, endDate: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n let params = {\r\n text: text,\r\n type: type\r\n } as any;\r\n\r\n if (parent != null && hierarchy != null) {\r\n params.parent = parent;\r\n params.hierarchy = hierarchy;\r\n }\r\n\r\n if (parentTypeCode != null) {\r\n params.parentTypeCode = parentTypeCode;\r\n }\r\n\r\n if (startDate != null && endDate != null) {\r\n params.startDate = startDate;\r\n params.endDate = endDate;\r\n }\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobject/suggestions\", JSON.stringify(params), { headers: headers })\r\n .toPromise();\r\n }\r\n\r\n getGeoObjectSuggestionsTypeAhead(text: string, type: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n let params = {\r\n text: text,\r\n type: type\r\n } as any;\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobject/suggestions\", JSON.stringify(params), { headers: headers })\r\n .toPromise();\r\n }\r\n\r\n getScheduledJobs(pageSize: number, pageNumber: number, sortAttr: string, isAscending: boolean): Promise {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"pageSize\", pageSize.toString());\r\n params = params.set(\"pageNumber\", pageNumber.toString());\r\n params = params.set(\"sortAttr\", sortAttr);\r\n params = params.set(\"isAscending\", isAscending.toString());\r\n\r\n return this.http\r\n .get(acp + \"/etl/get-active\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getCompletedScheduledJobs(pageSize: number, pageNumber: number, sortAttr: string, isAscending: boolean): Promise {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"pageSize\", pageSize.toString());\r\n params = params.set(\"pageNumber\", pageNumber.toString());\r\n params = params.set(\"sortAttr\", sortAttr);\r\n params = params.set(\"isAscending\", isAscending.toString());\r\n\r\n return this.http\r\n .get(acp + \"/etl/get-completed\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getScheduledJob(historyId: string, pageSize: number, pageNumber: number, onlyUnresolved: boolean): Promise {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"historyId\", historyId);\r\n params = params.set(\"pageSize\", pageSize.toString());\r\n params = params.set(\"pageNumber\", pageNumber.toString());\r\n params = params.set(\"onlyUnresolved\", onlyUnresolved.toString());\r\n\r\n return this.http\r\n .get(acp + \"/etl/get-import-details\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getExportDetails(historyId: string, pageSize: number, pageNumber: number): Promise {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"historyId\", historyId);\r\n params = params.set(\"pageSize\", pageSize.toString());\r\n params = params.set(\"pageNumber\", pageNumber.toString());\r\n\r\n return this.http\r\n .get(acp + \"/etl/get-export-details\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n resolveScheduledJob(historyId: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/etl/import-resolve\", JSON.stringify({ historyId: historyId }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n submitValidationResolve(config: any): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/etl/validation-resolve\", JSON.stringify({ config: config }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n submitErrorResolve(config: any): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/etl/error-resolve\", JSON.stringify({ config: config }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n getMasterLists(): Promise<{ locales: string[], lists: { label: string, oid: string, createDate: string, lastUpdateDate: string }[] }> {\r\n let params: HttpParams = new HttpParams();\r\n\r\n return this.http\r\n .get<{ locales: string[], lists: { label: string, oid: string, createDate: string, lastUpdateDate: string }[] }>(acp + \"/master-list/list-all\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getMasterListHistory(oid: string, versionType: string): Promise {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"oid\", oid);\r\n params = params.set(\"versionType\", versionType);\r\n\r\n return this.http\r\n .get(acp + \"/master-list/versions\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getAllMasterListVersions(): Promise {\r\n let params: HttpParams = new HttpParams();\r\n\r\n return this.http\r\n .get(acp + \"/master-list/list-all-versions\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getMasterListVersion(oid: string): Promise {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"oid\", oid);\r\n\r\n return this.http\r\n .get(acp + \"/master-list/version\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getLocales(): Promise {\r\n let params: HttpParams = new HttpParams();\r\n\r\n return this.http\r\n .get(acp + \"/localization/get-locales\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getGeoObjectOverTime(geoObjectCode: string, geoObjectTypeCode: string): Promise {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"code\", geoObjectCode);\r\n params = params.set(\"typeCode\", geoObjectTypeCode);\r\n\r\n return this.http\r\n .get(acp + \"/cgr/geoobject-time/get-code\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n newGeoObjectOverTime(typeCode: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobject-time/newGeoObjectInstance\", JSON.stringify({ typeCode: typeCode }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n setAttributeVersions(geoObjectCode: string, geoObjectTypeCode: string, attributeName: string, collection: ValueOverTime[]): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n let params = {\r\n geoObjectCode: geoObjectCode,\r\n geoObjectTypeCode: geoObjectTypeCode,\r\n attributeName: attributeName,\r\n collection: collection\r\n\r\n } as any;\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobject/setAttributeVersions\", JSON.stringify(params), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n createMasterList(list: MasterList): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/master-list/create\", JSON.stringify({ list: list }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n createMasterListVersion(oid: string, forDate: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/master-list/create-version\", JSON.stringify({ oid: oid, forDate: forDate }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n publishMasterListVersions(oid: string): Promise<{ job: string }> {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post<{ job: string }>(acp + \"/master-list/publish-versions\", JSON.stringify({ oid: oid }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n deleteMasterList(oid: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/master-list/remove\", JSON.stringify({ oid: oid }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n deleteMasterListVersion(oid: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/master-list/remove-version\", JSON.stringify({ oid: oid }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n publishMasterList(oid: string): Observable {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n return this.http.post(acp + \"/master-list/publish\", JSON.stringify({ oid: oid }), { headers: headers });\r\n }\r\n\r\n getMasterList(oid: string): Promise {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"oid\", oid);\r\n\r\n return this.http\r\n .get(acp + \"/master-list/get\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n /*\r\n * Not really part of the RegistryService\r\n */\r\n applyGeoObjectEdit(geoObjectCode: string, geoObjectTypeCode: string, actions: string, masterListId: string, notes: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n\t // TODO\r\n\t\t// Custom attributes of Date type need to be encoded to date/time. The Date picker requires this format to be yyyy-mm-dd.\r\n\t\t// This conversion allows the date picker to work while ensuring the server recieves the correct format.\r\n\t\t// for(const prop in geoObject.attributes) {\r\n\t\t//\tlet attr = geoObject.attributes[prop];\r\n \t\t//\tif(attr.type === \"date\"){\r\n\t\t//\t\tattr.values.forEach( val => {\r\n\t\t//\t\t\tval.value = new Date(val.value).getTime().toString();\r\n\t\t//\t\t})\r\n\t\t//\t}\r\n\t\t// }\r\n\r\n let params = { geoObjectCode: geoObjectCode, geoObjectTypeCode: geoObjectTypeCode, actions: actions };\r\n\r\n if (masterListId != null) {\r\n params[\"masterListId\"] = masterListId;\r\n }\r\n if (notes != null) {\r\n params[\"notes\"] = notes;\r\n }\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/geoobject-editor/updateGeoObject\", JSON.stringify(params), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n /*\r\n * Not really part of the RegistryService\r\n */\r\n applyGeoObjectCreate(parentTreeNode: HierarchyOverTime[], geoObject: GeoObjectOverTime, isNew: boolean, masterListId: string, notes: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n // Custom attributes of Date type need to be encoded to date/time. The Date picker requires this format to be yyyy-mm-dd.\r\n // This conversion allows the date picker to work while ensuring the server recieves the correct format.\r\n for (const prop in geoObject.attributes) {\r\n let attr = geoObject.attributes[prop];\r\n if (attr.type === \"date\") {\r\n attr.values.forEach(val => {\r\n val.value = new Date(val.value).getTime().toString();\r\n });\r\n }\r\n }\r\n\r\n let params = { geoObject: geoObject, isNew: isNew, masterListId: masterListId };\r\n\r\n if (parentTreeNode != null) {\r\n params[\"parentTreeNode\"] = parentTreeNode;\r\n }\r\n if (notes != null) {\r\n params[\"notes\"] = notes;\r\n }\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/geoobject-editor/createGeoObject\", JSON.stringify(params), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n data(oid: string, pageNumber: number, pageSize: number, filter: { attribute: string, value: string }[], sort: { attribute: string, order: string }): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n let params = {\r\n oid: oid,\r\n sort: sort\r\n } as any;\r\n\r\n if (pageNumber != null) {\r\n params.pageNumber = pageNumber;\r\n }\r\n\r\n if (pageSize != null) {\r\n params.pageSize = pageSize;\r\n }\r\n\r\n if (filter.length > 0) {\r\n params.filter = filter;\r\n }\r\n\r\n return this.http\r\n .post(acp + \"/master-list/data\", JSON.stringify(params), { headers: headers })\r\n .toPromise();\r\n }\r\n\r\n values(oid: string, value: string, attributeName: string, valueAttribute: string, filter: { attribute: string, value: string }[]): Promise<{ label: string, value: string }[]> {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n let params = {\r\n oid: oid,\r\n attributeName: attributeName,\r\n valueAttribute: valueAttribute\r\n } as any;\r\n\r\n if (filter.length > 0) {\r\n params.filter = filter;\r\n }\r\n\r\n if (value != null && value.length > 0) {\r\n params.value = value;\r\n }\r\n\r\n return this.http\r\n .post<{ label: string, value: string }[]>(acp + \"/master-list/values\", JSON.stringify(params), { headers: headers })\r\n .toPromise();\r\n }\r\n\r\n publishShapefile(oid: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n let params = {\r\n oid: oid\r\n } as any;\r\n\r\n return this.http\r\n .post(acp + \"/master-list/generate-shapefile\", JSON.stringify(params), { headers: headers })\r\n .toPromise();\r\n }\r\n\r\n progress(oid: string): Promise {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"oid\", oid);\r\n\r\n return this.http\r\n .get(acp + \"/master-list/progress\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getMasterListsByOrg(): Promise<{ orgs: MasterListByOrg[] }> {\r\n let params: HttpParams = new HttpParams();\r\n\r\n return this.http\r\n .get<{ locales: string[], orgs: MasterListByOrg[] }>(acp + \"/master-list/list-org\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getPublishMasterListJobs(oid: string, pageSize: number, pageNumber: number, sortAttr: string, isAscending: boolean): Promise {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"oid\", oid);\r\n params = params.set(\"pageSize\", pageSize.toString());\r\n params = params.set(\"pageNumber\", pageNumber.toString());\r\n params = params.set(\"sortAttr\", sortAttr);\r\n params = params.set(\"isAscending\", isAscending.toString());\r\n\r\n return this.http\r\n .get(acp + \"/master-list/get-publish-jobs\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getDatasetBounds(oid: string): Promise {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"oid\", oid);\r\n\r\n return this.http\r\n .get(acp + \"/master-list/bounds\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n\tgetOrganizations(): Promise {\r\n\r\n\t\tthis.eventService.start();\r\n\r\n\t\treturn this.http\r\n\t\t\t.get(acp + '/cgr/organizations/get-all')\r\n\t\t\t.pipe(finalize(() => {\r\n\t\t\t\tthis.eventService.complete();\r\n\t\t\t}))\r\n\t\t\t.toPromise();\r\n\t}\r\n\r\n exportToFhir(oid: string, systemId: string): Promise {\r\n let headers = new HttpHeaders({\r\n 'Content-Type': 'application/json'\r\n });\r\n\r\n let params = {\r\n oid: oid,\r\n systemId: systemId\r\n } as any;\r\n\r\n return this.http\r\n .post(acp + '/master-list/export-to-fhir', JSON.stringify(params), { headers: headers })\r\n .toPromise();\r\n }\r\n\r\n}\r\n","///\n/// Copyright (c) 2015 TerraFrame, Inc. All rights reserved.\n///\n/// This file is part of Runway SDK(tm).\n///\n/// Runway SDK(tm) is free software: you can redistribute it and/or modify\n/// it under the terms of the GNU Lesser General Public License as\n/// published by the Free Software Foundation, either version 3 of the\n/// License, or (at your option) any later version.\n///\n/// Runway SDK(tm) is distributed in the hope that it will be useful, but\n/// WITHOUT ANY WARRANTY; without even the implied warranty of\n/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n/// GNU Lesser General Public License for more details.\n///\n/// You should have received a copy of the GNU Lesser General Public\n/// License along with Runway SDK(tm). If not, see .\n///\n\nimport { Injectable } from \"@angular/core\";\nimport { HttpHeaders, HttpClient, HttpParams } from \"@angular/common/http\";\n\nimport { finalize } from \"rxjs/operators\";\n\nimport { EventService } from \"@shared/service\";\n\nimport { PageResult } from \"@shared/model/core\";\nimport { SynchronizationConfig, OrgSyncInfo, ExportScheduledJob } from \"@registry/model/registry\";\nimport { AttributeConfigInfo } from \"@registry/model/sync\";\n\ndeclare let acp: any;\n\n@Injectable()\nexport class SynchronizationConfigService {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private http: HttpClient, private eventService: EventService) { }\n\n getPage(pageNumber: number, pageSize: number): Promise> {\n let params: HttpParams = new HttpParams();\n params = params.set(\"pageNumber\", pageNumber.toString());\n params = params.set(\"pageSize\", pageSize.toString());\n\n this.eventService.start();\n\n return this.http\n .get>(acp + \"/synchronization-config/get-all\", { params: params })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n get(oid: string): Promise {\n let params: HttpParams = new HttpParams();\n params = params.set(\"oid\", oid);\n\n this.eventService.start();\n\n return this.http\n .get(acp + \"/synchronization-config/get\", { params: params })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n getCustomAttrCfg(geoObjectTypeCode: string, externalId: string): Promise {\n let params: HttpParams = new HttpParams();\n params = params.set(\"externalId\", externalId);\n params = params.set(\"geoObjectTypeCode\", geoObjectTypeCode);\n\n this.eventService.start();\n\n return this.http\n .get(acp + \"/synchronization-config/get-custom-attr\", { params: params })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n getConfigForES(externalSystemId: string, hierarchyTypeCode: string): Promise {\n let params: HttpParams = new HttpParams();\n params = params.set(\"externalSystemId\", externalSystemId);\n params = params.set(\"hierarchyTypeCode\", hierarchyTypeCode);\n\n this.eventService.start();\n\n return this.http\n .get(acp + \"/synchronization-config/get-config-for-es\", { params: params })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n apply(config: SynchronizationConfig): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/synchronization-config/apply\", JSON.stringify({ config: config }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n edit(oid: string): Promise<{ config: SynchronizationConfig, orgs: OrgSyncInfo[] }> {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n let params = {};\n\n if (oid != null) {\n params = { oid: oid };\n }\n\n this.eventService.start();\n\n return this.http\n .post<{ config: SynchronizationConfig, orgs: OrgSyncInfo[] }>(acp + \"/synchronization-config/edit\", JSON.stringify(params), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n remove(oid: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/synchronization-config/remove\", JSON.stringify({ oid: oid }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n unlock(oid: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/synchronization-config/unlock\", JSON.stringify({ oid: oid }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n run(oid: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/synchronization-config/run\", JSON.stringify({ oid: oid }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n getJobs(oid: string, pageNumber: number, pageSize: number): Promise> {\n let params: HttpParams = new HttpParams();\n params = params.set(\"oid\", oid);\n params = params.set(\"pageNumber\", pageNumber.toString());\n params = params.set(\"pageSize\", pageSize.toString());\n\n // this.eventService.start();\n\n return this.http\n .get>(acp + \"/synchronization-config/get-jobs\", { params: params })\n // .pipe(finalize(() => {\n // this.eventService.complete();\n // }))\n .toPromise();\n }\n\n getFhirExportImplementations(): Promise<{ className: string, label: string }[]> {\n let params: HttpParams = new HttpParams();\n\n return this.http\n .get(acp + \"/synchronization-config/get-fhir-export-implementations\", { params: params })\n .toPromise();\n }\n\n getFhirImportImplementations(): Promise<{ className: string, label: string }[]> {\n let params: HttpParams = new HttpParams();\n\n return this.http\n .get(acp + \"/synchronization-config/get-fhir-import-implementations\", { params: params })\n .toPromise();\n }\n\n}\n","///\r\n/// Copyright (c) 2015 TerraFrame, Inc. All rights reserved.\r\n///\r\n/// This file is part of Runway SDK(tm).\r\n///\r\n/// Runway SDK(tm) is free software: you can redistribute it and/or modify\r\n/// it under the terms of the GNU Lesser General Public License as\r\n/// published by the Free Software Foundation, either version 3 of the\r\n/// License, or (at your option) any later version.\r\n///\r\n/// Runway SDK(tm) is distributed in the hope that it will be useful, but\r\n/// WITHOUT ANY WARRANTY; without even the implied warranty of\r\n/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n/// GNU Lesser General Public License for more details.\r\n///\r\n/// You should have received a copy of the GNU Lesser General Public\r\n/// License along with Runway SDK(tm). If not, see .\r\n///\r\n\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpHeaders, HttpClient, HttpParams } from \"@angular/common/http\";\r\nimport { finalize } from \"rxjs/operators\";\r\n\r\nimport { PaginationPage } from \"@registry/model/registry\";\r\nimport { EventService } from \"@shared/service\";\r\n\r\ndeclare let acp: any;\r\n\r\n@Injectable()\r\nexport class TaskService {\r\n\r\n // eslint-disable-next-line no-useless-constructor\n constructor(private http: HttpClient, private eventService: EventService) { }\r\n\r\n getMyTasks(pageNum: number, pageSize: number, whereStatus: string): Promise {\r\n let params: HttpParams = new HttpParams();\r\n\r\n params = params.set(\"orderBy\", \"createDate\");\r\n params = params.set(\"pageNum\", pageNum.toString());\r\n params = params.set(\"pageSize\", pageSize.toString());\r\n params = params.set(\"whereStatus\", whereStatus);\r\n\r\n return this.http\r\n .get(acp + \"/tasks/get\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n completeTask(taskId: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/tasks/complete\", JSON.stringify({ id: taskId }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n setTaskStatus(taskId: string, status: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/tasks/setTaskStatus\", JSON.stringify({ id: taskId, status: status }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n}\r\n","import * as d3 from \"d3\";\n\nexport function calculateTextWidth(text: string, fontSize: number): number {\n let svg = d3.select(\"#svg\");\n\n let textCalcGroup = svg.append(\"g\").classed(\"g-text-calc\", true);\n\n let textEl = textCalcGroup.append(\"text\")\n .attr(\"x\", -5000)\n .attr(\"y\", -5000)\n .attr(\"font-size\", fontSize)\n .text(text);\n\n let bbox = textEl.node().getBBox();\n\n d3.select(\".g-text-calc\").remove();\n\n return bbox.width + 2; // +2 is for padding. I caught this truncating just ever so slightly\n}\n\nexport function svgPoint(x: number, y: number) {\n let svg: any = d3.select(\"#svg\").node();\n let pt = svg.createSVGPoint();\n\n pt.x = x;\n pt.y = y;\n\n return pt.matrixTransform(svg.getScreenCTM().inverse());\n}\n\nexport function isPointWithin(point: { x: number, y: number }, bbox: { x: number, y: number, width: number, height: number }) {\n return point.y > bbox.y && point.y < (bbox.y + bbox.height) && point.x > bbox.x && point.x < (bbox.x + bbox.width);\n}\n\nexport function isBboxPartiallyWithin(bbox1: { x: number, y: number, width: number, height: number }, bbox2: { x: number, y: number, width: number, height: number }) {\n return isPointWithin({ x: bbox1.x, y: bbox1.y }, bbox2) || isPointWithin({ x: bbox1.x + bbox1.width, y: bbox1.y + bbox1.height }, bbox2) ||\n isPointWithin({ x: bbox1.x + bbox1.width, y: bbox1.y }, bbox2) || isPointWithin({ x: bbox1.x, y: bbox1.y + bbox1.height }, bbox2);\n}\n\nexport function isBboxTotallyWithin(bbox1: { x: number, y: number, width: number, height: number }, bbox2: { x: number, y: number, width: number, height: number }) {\n return isPointWithin({ x: bbox1.x, y: bbox1.y }, bbox2) && isPointWithin({ x: bbox1.x + bbox1.width, y: bbox1.y + bbox1.height }, bbox2) &&\n isPointWithin({ x: bbox1.x + bbox1.width, y: bbox1.y }, bbox2) && isPointWithin({ x: bbox1.x, y: bbox1.y + bbox1.height }, bbox2);\n}\n\nexport function getBboxFromSelection(selection: any) {\n return { x: parseInt(selection.attr(\"x\")), y: parseInt(selection.attr(\"y\")), width: parseInt(selection.attr(\"width\")), height: parseInt(selection.attr(\"height\")) };\n}\n\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\n\nimport { ImportConfiguration } from '@registry/model/io';\n\n@Component( {\n selector: 'attributes-page',\n templateUrl: './attributes-page.component.html',\n styleUrls: []\n} )\nexport class AttributesPageComponent {\n\n @Input() configuration: ImportConfiguration;\n @Output() configurationChange = new EventEmitter();\n @Output() stateChange = new EventEmitter();\n\n constructor() {\n }\n\n onNext(): void {\n this.configurationChange.emit( this.configuration );\n this.stateChange.emit( 'NEXT' );\n }\n\n onCancel(): void {\n this.stateChange.emit( 'CANCEL' );\n }\n}\n","
\n
\n

\n \n

\n

\n \n

\n
\n \n \n
\n\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n\n
\n\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n \n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n\n \n\n
\n
\n
\n \n \n
\n
\n
\n
\n \n
","import { Component, OnInit, Input, Output, EventEmitter, Directive } from '@angular/core';\n\nimport { ImportConfiguration } from '@registry/model/io';\n\nimport { IOService } from '@registry/service';\n\n@Component( {\n\n selector: 'location-page',\n templateUrl: './location-page.component.html',\n styleUrls: []\n} )\nexport class LocationPageComponent implements OnInit {\n\n @Input() configuration: ImportConfiguration;\n @Output() configurationChange = new EventEmitter();\n @Output() stateChange = new EventEmitter();\n\n constructor( private service: IOService ) { }\n\n ngOnInit(): void {\n this.service.getTypeAncestors( this.configuration.type.code, this.configuration.hierarchy, true ).then( locations => {\n this.configuration.locations = locations;\n } );\n }\n\n onNext(): void {\n // Map the universals\n this.configurationChange.emit( this.configuration );\n this.stateChange.emit( 'NEXT' );\n }\n\n onBack(): void {\n this.stateChange.emit( 'BACK' );\n }\n\n onCancel(): void {\n this.stateChange.emit( 'CANCEL' );\n }\n}\n","
\n
\n

\n \n

\n

\n \n

\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n\n
\n
\n
\n \n \n \n
\n
\n
\n \n \n
\n","import { Component, Input, OnInit, EventEmitter, Output } from '@angular/core';\nimport { ImportConfiguration, LocationProblem } from '@registry/model/io';\nimport { ErrorHandler } from '@shared/component';\n\n@Component( {\n\n selector: 'location-problem-page',\n templateUrl: './location-problem-page.component.html',\n styleUrls: []\n} )\nexport class LocationProblemPageComponent implements OnInit {\n\n @Input() configuration: ImportConfiguration;\n @Output() stateChange = new EventEmitter();\n message: string = null;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n hasProblems(): boolean {\n for ( let i = 0; i < this.configuration.locationProblems.length; i++ ) {\n\n if ( !this.configuration.locationProblems[i].resolved ) {\n return true;\n }\n }\n\n return false;\n }\n\n handleError( err: any ): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n onNext(): void {\n if ( this.configuration.exclusions == null ) {\n this.configuration.exclusions = [];\n }\n\n for ( let i = 0; i < this.configuration.locationProblems.length; i++ ) {\n const problem = this.configuration.locationProblems[i];\n\n if ( problem.resolved && problem.action.name == 'IGNOREATLOCATION' ) {\n const value = ( problem.parent != null ? problem.parent + \"-\" + problem.label : problem.label );\n const exclusion = { code: '##PARENT##', value: value };\n\n this.configuration.exclusions.push( exclusion );\n }\n }\n\n\n this.stateChange.emit( 'NEXT' );\n }\n\n onCancel(): void {\n this.stateChange.emit( 'CANCEL' );\n }\n}\n","
\n
\n

\n \n

\n

\n \n

\n
\n
\n
\n
\n \n
\n
\n
\n
{{message}}
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n
\n
","import { Component, Input, OnInit, EventEmitter, Output } from '@angular/core';\nimport { ImportConfiguration, TermProblem } from '@registry/model/io';\n\n@Component( {\n\n selector: 'term-problem-page',\n templateUrl: './term-problem-page.component.html',\n styleUrls: []\n} )\nexport class TermProblemPageComponent implements OnInit {\n\n @Input() configuration: ImportConfiguration;\n @Output() stateChange = new EventEmitter();\n message: string = null;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n hasProblems(): boolean {\n for ( let i = 0; i < this.configuration.termProblems.length; i++ ) {\n\n if ( !this.configuration.termProblems[i].resolved ) {\n return true;\n }\n }\n\n return false;\n }\n\n onNext(): void {\n if ( this.configuration.exclusions == null ) {\n this.configuration.exclusions = [];\n }\n\n for ( let i = 0; i < this.configuration.termProblems.length; i++ ) {\n const problem = this.configuration.termProblems[i];\n\n if ( problem.resolved && problem.action.name == 'IGNORE' ) {\n const exclusion = { code: problem.attributeCode, value: problem.label };\n\n this.configuration.exclusions.push( exclusion );\n }\n }\n\n this.stateChange.emit( 'NEXT' );\n }\n\n onCancel(): void {\n this.stateChange.emit( 'CANCEL' );\n }\n}\n","
\n
\n

\n \n

\n

\n \n

\n
\n
\n
\n
\n \n
\n
\n
\n
{{message}}
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n
\n
","import { Component, OnInit, ViewChild } from \"@angular/core\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { Observable } from \"rxjs\";\nimport { TypeaheadMatch } from \"ngx-bootstrap/typeahead\";\n\nimport { ErrorHandler, ErrorModalComponent, SuccessModalComponent } from \"@shared/component\";\nimport { LocalizationService, AuthService } from \"@shared/service\";\n\nimport { RegistryService, ChangeRequestService } from \"@registry/service\";\nimport { GeoObjectType, GeoObjectOverTime } from \"@registry/model/registry\";\n\n@Component({\n selector: \"submit-change-request\",\n templateUrl: \"./submit-change-request.component.html\",\n styleUrls: [\"./submit-change-request.css\"]\n})\nexport class SubmitChangeRequestComponent implements OnInit {\n\n /*\n * Reference to the modal current showing\n */\n\n bsModalRef: BsModalRef;\n\n geoObjectType: GeoObjectType;\n\n geoObjectTypes: GeoObjectType[] = [];\n\n geoObjectId: string = \"\";\n\n reason: string = \"\";\n\n dataSource: Observable;\n\n dateStr: string = null;\n\n forDate: Date = null;\n\n @ViewChild(\"attributeEditor\") attributeEditor;\n\n @ViewChild(\"geometryEditor\") geometryEditor;\n\n geoObject: GeoObjectOverTime = null;\n\n isValid: boolean = false;\n\n loading: boolean = false;\n\n geoObjectAttributeExcludes: string[] = [\"uid\", \"sequence\", \"type\", \"lastUpdateDate\", \"createDate\", \"status\"];\n\n constructor(private modalService: BsModalService, private registryService: RegistryService,\n private changeRequestService: ChangeRequestService, private localizeService: LocalizationService, private authService: AuthService) {\n this.dataSource = Observable.create((observer: any) => {\n this.registryService.getGeoObjectSuggestionsTypeAhead(this.geoObjectId, this.geoObjectType.code).then(results => {\n observer.next(results);\n });\n });\n }\n\n ngOnInit(): void {\n this.registryService.getGeoObjectTypes([], null).then(types => {\n let myOrgTypes = [];\n for (let i = 0; i < types.length; ++i) {\n const type = types[i];\n const orgCode = type.organizationCode;\n const typeCode = type.superTypeCode != null && type.superTypeCode != \"\" ? type.superTypeCode : type.code;\n\n if (this.authService.isGeoObjectTypeRC(orgCode, typeCode)) {\n myOrgTypes.push(types[i]);\n }\n }\n this.geoObjectTypes = myOrgTypes;\n\n this.geoObjectTypes.sort((a, b) => {\n if (a.label.localizedValue.toLowerCase() < b.label.localizedValue.toLowerCase()) return -1;\n else if (a.label.localizedValue.toLowerCase() > b.label.localizedValue.toLowerCase()) return 1;\n else return 0;\n });\n\n let pos = this.getGeoObjectTypePosition(\"ROOT\");\n if (pos) {\n this.geoObjectTypes.splice(pos, 1);\n }\n\n // this.currentGeoObjectType = this.geoObjectTypes[1];\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n public handleDateChange() {\n if (this.dateStr != null) {\n this.forDate = new Date(Date.parse(this.dateStr));\n } else {\n this.forDate = null;\n }\n }\n\n public onValidChange(newValid: boolean) {\n if (this.geoObject == null) {\n this.isValid = false;\n return;\n }\n\n if (this.geometryEditor != null && !this.geometryEditor.getIsValid()) {\n this.isValid = false;\n return;\n }\n\n if (this.attributeEditor != null && !this.attributeEditor.getIsValid()) {\n this.isValid = false;\n return;\n }\n\n this.isValid = true;\n }\n\n private getGeoObjectTypePosition(code: string): number {\n for (let i = 0; i < this.geoObjectTypes.length; i++) {\n let obj = this.geoObjectTypes[i];\n if (obj.code === code) {\n return i;\n }\n }\n\n return null;\n }\n\n changeTypeaheadLoading(e: boolean): void {\n this.loading = e;\n }\n\n typeaheadOnSelect(e: TypeaheadMatch): void {\n this.registryService.getGeoObjectOverTime(e.item.code, this.geoObjectType.code).then(geoObject => {\n this.geoObject = geoObject;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n cancel(): void {\n this.isValid = false;\n this.geoObject = null;\n this.geoObjectId = null;\n this.geoObjectType = null;\n this.reason = null;\n }\n\n public error(err: any): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n}\n","
\n
\n
\n

\n
\n\n
\n \n \n
\n \n
\n \n \n
\n \n
\n \n \n
\n \n
\n \n \n \n \n \n \n \n \n
\n\n
\n \n
\n
\n
","import { Component, OnInit, ViewChild, Input } from \"@angular/core\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { DatePipe } from \"@angular/common\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { ErrorHandler, ErrorModalComponent } from \"@shared/component\";\n\nimport { RegistryService } from \"@registry/service\";\nimport { LocalizationService, AuthService } from \"@shared/service\";\n\nimport { GeoObjectType, GeoObjectOverTime, HierarchyOverTime, ParentTreeNode, ImportError, ValueOverTime } from \"@registry/model/registry\";\n\nimport { Observable } from \"rxjs\";\nimport { TypeaheadMatch } from \"ngx-bootstrap/typeahead\";\n\n@Component({\n selector: \"geoobject-editor\",\n templateUrl: \"./geoobject-editor.component.html\",\n styleUrls: [\"./geoobject-editor.component.css\"],\n providers: [DatePipe]\n})\n\n/**\n * This component is used in the master list when editing a row. In the future it will also be used by the navigator and has\n * potential to also be used in the submit change request and manage change requests.\n */\nexport class GeoObjectEditorComponent implements OnInit {\n\n @Input() geoObjectType: GeoObjectType;\n\n isValid: boolean = false;\n\n isGeometryEditable: boolean;\n\n tabIndex: number = 0;\n\n dataSource: Observable;\n\n masterListId: string;\n notes: string;\n\n isNewGeoObject: boolean = false;\n\n @Input() onSuccessCallback: Function;\n\n submitFunction: Function = null;\n\n isAdmin: boolean;\n isMaintainer: boolean;\n isContributor: boolean;\n\n /*\n * GeoObject Property Editor\n */\n @ViewChild(\"attributeEditor\") attributeEditor;\n\n arePropertiesValid: boolean = false;\n\n // The current state of the GeoObject in the GeoRegistry\n goPropertiesPre: GeoObjectOverTime;\n\n // The state of the GeoObject after our edit has been applied\n goPropertiesPost: GeoObjectOverTime;\n\n // /*\n // * GeoObject Geometry Editor\n // */\n // @ViewChild( \"geometryEditor\" ) geometryEditor;\n //\n // areGeometriesValid: boolean = false;\n\n /*\n * GeoObject Cascading Parent Selector\n */\n @ViewChild(\"parentSelector\") parentSelector;\n\n areParentsValid: boolean = true;\n\n hierarchies: HierarchyOverTime[];\n\n /*\n * Date in which the modal is shown for\n */\n dateStr: string = null;\n\n /*\n * Date in which the modal is shown for\n */\n forDate: Date = null;\n\n isEditingGeometries: boolean = false;\n\n /*\n * The final artifacts which will be submitted\n */\n private goSubmit: GeoObjectOverTime;\n\n constructor(private modalService: BsModalService, public bsModalRef: BsModalRef,\n private registryService: RegistryService, private localizeService: LocalizationService,\n authService: AuthService) {\n this.isAdmin = authService.isAdmin();\n this.isMaintainer = this.isAdmin || authService.isMaintainer();\n this.isContributor = this.isAdmin || this.isMaintainer || authService.isContributer();\n\n this.forDate = new Date();\n\n const day = this.forDate.getUTCDate();\n this.dateStr = this.forDate.getUTCFullYear() + \"-\" + (this.forDate.getUTCMonth() + 1) + \"-\" + (day < 10 ? \"0\" : \"\") + day;\n }\n\n ngOnInit(): void {\n\n }\n\n findVotWithStartDate(votArray: ValueOverTime[], startDate: string): any {\n for (let i: number = 0; i < votArray.length; ++i) {\n if (votArray[i].startDate === startDate) {\n return votArray[i];\n }\n }\n\n return null;\n }\n\n setMasterListId(id: string) {\n this.masterListId = id;\n }\n\n handleDateChange(): void {\n this.forDate = new Date(Date.parse(this.dateStr));\n }\n\n setOnSuccessCallback(func: Function) {\n this.onSuccessCallback = func;\n }\n\n // Configures the widget to be used in a \"New\" context, that is to say\n // that it will be used to create a new GeoObject.\n public configureAsNew(typeCode: string, dateStr: string, isGeometryEditable: boolean) {\n this.isNewGeoObject = true;\n this.dateStr = dateStr;\n this.forDate = new Date(Date.parse(this.dateStr));\n this.isGeometryEditable = isGeometryEditable;\n\n this.fetchGeoObjectType(typeCode);\n this.fetchLocales();\n\n this.registryService.newGeoObjectOverTime(typeCode).then(retJson => {\n this.goPropertiesPre = new GeoObjectOverTime(this.geoObjectType, retJson.geoObject.attributes);\n this.goPropertiesPost = new GeoObjectOverTime(this.geoObjectType, JSON.parse(JSON.stringify(this.goPropertiesPre)).attributes);\n\n this.hierarchies = retJson.hierarchies;\n });\n }\n\n // Configures the widget to be used to resolve an ImportError\n public configureFromImportError(importError: ImportError, historyId: string, dateStr: string, isGeometryEditable: boolean) {\n let typeCode = importError.object.geoObject.attributes.type;\n this.isNewGeoObject = importError.object.isNew;\n this.dateStr = dateStr;\n this.forDate = new Date(Date.parse(dateStr));\n this.isGeometryEditable = isGeometryEditable;\n\n this.fetchGeoObjectType(typeCode);\n this.fetchLocales();\n\n if (importError.object != null && importError.object.parents != null && importError.object.parents.length > 0) {\n this.hierarchies = importError.object.parents;\n this.areParentsValid = true;\n } else {\n this.registryService.newGeoObjectOverTime(typeCode).then(retJson => {\n this.hierarchies = retJson.hierarchies;\n });\n this.areParentsValid = false;\n }\n\n // TODO : Maybe we should ask the server for the pre object, if it exists.\n this.goPropertiesPre = new GeoObjectOverTime(this.geoObjectType, importError.object.geoObject.attributes);\n this.goPropertiesPost = new GeoObjectOverTime(this.geoObjectType, importError.object.geoObject.attributes);\n\n this.submitFunction = () => {\n let config = {\n historyId: historyId,\n importErrorId: importError.id,\n resolution: \"APPLY_GEO_OBJECT\",\n parentTreeNode: this.hierarchies,\n geoObject: this.goSubmit,\n isNew: importError.object.isNew\n };\n\n this.registryService.submitErrorResolve(config)\n .then(() => {\n if (this.onSuccessCallback != null) {\n this.onSuccessCallback();\n }\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n };\n }\n\n // Configures the widget to be used in an \"Edit Existing\" context\n public configureAsExisting(code: string, typeCode: string, dateStr: string, isGeometryEditable: boolean): void {\n this.isNewGeoObject = false;\n this.dateStr = dateStr;\n this.forDate = new Date(Date.parse(this.dateStr));\n this.isGeometryEditable = isGeometryEditable;\n\n this.fetchGeoObject(code, typeCode);\n this.fetchGeoObjectType(typeCode);\n this.fetchHierarchies(code, typeCode);\n this.fetchLocales();\n }\n\n private fetchGeoObject(code: string, typeCode: string) {\n this.registryService.getGeoObjectOverTime(code, typeCode).then(geoObject => {\n this.goPropertiesPre = new GeoObjectOverTime(this.geoObjectType, JSON.parse(JSON.stringify(geoObject)).attributes);\n this.goPropertiesPost = new GeoObjectOverTime(this.geoObjectType, JSON.parse(JSON.stringify(this.goPropertiesPre)).attributes);\n // this.goPropertiesPost = JSON.parse( JSON.stringify( this.goPropertiesPre ) );\n\n this.goSubmit = this.goPropertiesPost;\n\n // this.areGeometriesValid = true;\n this.arePropertiesValid = true;\n this.isValid = true;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n private fetchLocales() {\n this.registryService.getLocales().then(locales => {\n this.localizeService.setLocales(locales);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n private fetchGeoObjectType(code: string) {\n this.registryService.getGeoObjectTypes([code], null)\n .then(geoObjectType => {\n this.geoObjectType = geoObjectType[0];\n\n if (this.goPropertiesPre != null) {\n this.goPropertiesPre.geoObjectType = this.geoObjectType;\n }\n if (this.goPropertiesPost != null) {\n this.goPropertiesPost.geoObjectType = this.geoObjectType;\n }\n\n if (!this.geoObjectType.isGeometryEditable) {\n // this.areGeometriesValid = true;\n }\n }).catch((err: HttpErrorResponse) => {\n console.log(err);\n // this.error( err );\n });\n }\n\n private fetchHierarchies(code: string, typeTypeCode: string) {\n this.registryService.getHierarchiesForGeoObject(code, typeTypeCode)\n .then((hierarchies: any) => {\n this.hierarchies = hierarchies;\n\n // this.parentTreeNode = CascadingGeoSelector.staticGetParents( this.hierarchies );\n this.areParentsValid = true;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n getTypeAheadObservable(text, typeCode) {\n return Observable.create((observer: any) => {\n this.registryService.getGeoObjectSuggestionsTypeAhead(text, typeCode).then(results => {\n observer.next(results);\n });\n });\n }\n\n typeaheadOnSelect(e: TypeaheadMatch, ptn: ParentTreeNode): void {\n this.registryService.getGeoObjectByCode(e.item.code, ptn.geoObject.properties.type)\n .then(geoObject => {\n ptn.geoObject = geoObject;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n public onValidChange() {\n if (this.attributeEditor != null) {\n this.arePropertiesValid = this.attributeEditor.getIsValid();\n }\n // if ( this.geometryEditor != null ) {\n // this.areGeometriesValid = this.geometryEditor.getIsValid();\n // }\n if (this.parentSelector != null) {\n this.areParentsValid = this.parentSelector.getIsValid();\n }\n\n // this.isValid = this.arePropertiesValid && this.areGeometriesValid && this.areParentsValid;\n this.isValid = this.arePropertiesValid && this.areParentsValid;\n }\n\n changePage(nextPage: number, force: boolean = false): void {\n if (nextPage === this.tabIndex && !force) {\n return;\n }\n\n this.persistModelChanges();\n\n this.tabIndex = nextPage;\n\n this.onValidChange();\n\n if (nextPage === 2) {\n this.isEditingGeometries = true;\n } else {\n this.isEditingGeometries = false;\n }\n }\n\n private persistModelChanges(): void {\n if (this.attributeEditor != null) {\n this.goPropertiesPost = this.attributeEditor.getGeoObject();\n }\n if (this.parentSelector != null) {\n this.hierarchies = this.parentSelector.getHierarchies();\n }\n\n this.goSubmit = this.goPropertiesPost;\n\n // if ( this.parentTreeNode != null ) {\n // this.parentTreeNode.geoObject = this.goSubmit;\n // }\n }\n\n public error(err: HttpErrorResponse): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n public cancel(): void {\n this.bsModalRef.hide();\n }\n\n public submit(): void {\n if (this.isValid) {\n this.bsModalRef.hide();\n\n this.persistModelChanges();\n\n if (this.submitFunction == null) {\n /*\n this.registryService.applyGeoObjectEdit(this.hierarchies, this.goSubmit, this.isNewGeoObject, this.masterListId, this.notes)\n .then(() => {\n\n if (this.onSuccessCallback != null) {\n this.onSuccessCallback();\n }\n\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n */\n } else {\n this.submitFunction();\n }\n }\n }\n\n}\n","
\n \n
\n \n\n
\n
\n \n
\n \n
\n
\n
\n
\n \n
\n
\n \n \n \n
\n
\n
\n\n\n \n \n \n\n\n \n
\n \n \n
\n\n \n \n\n
\n
\n
\n \n
\n

Notes are required.

\n
\n
\n
\n\n
\n
\n
\n \n
\n
\n \n
\n \n
\n
\n \n \n
\n
\n
\n
\n
","import { Component, Input } from \"@angular/core\";\n\nimport { Step, StepConfig } from \"@registry/model/registry\";\n\n@Component({\n selector: \"step-indicator\",\n templateUrl: \"./step-indicator.component.html\",\n styleUrls: [\"./step-indicator.css\"]\n})\nexport class StepIndicatorComponent {\n\n // eslint-disable-next-line accessor-pairs\n @Input(\"steps\")\n set steps(value: StepConfig) {\n this._stepConfig = value;\n }\n\n _stepConfig: StepConfig;\n step: Step;\n\n constructor() {\n this._stepConfig = { steps: [] };\n }\n\n ngOnInit(): void {\n }\n\n ngOnDestroy() {\n\n }\n\n}\n","
\n
    0\" class=\"nav nav-justified\">\n
  • \n {{step.label}}\n
  • \n
\n
","import { Component, Input, Output, EventEmitter, OnInit, OnChanges, SimpleChanges } from \"@angular/core\";\nimport { BsModalService } from \"ngx-bootstrap/modal\";\n\nimport { ContextLayer, ContextLayerGroup, MasterList } from \"@registry/model/registry\";\nimport { ContextLayerModalComponent } from \"./context-layer-modal.component\";\nimport { RegistryService } from \"@registry/service\";\n\n@Component({\n selector: \"layer-panel\",\n templateUrl: \"./layer-panel.component.html\",\n styleUrls: [\"./location-manager.css\"]\n})\nexport class LayerPanelComponent implements OnInit, OnChanges {\n\n @Input() filter: string[] = [];\n @Output() layerChange = new EventEmitter();\n @Output() baseLayerChange = new EventEmitter();\n\n baselayerIconHover = false;\n\n lists: MasterList[] = [];\n\n /*\n * List of base layers\n */\n baseLayers: any[] = [\n {\n name: \"Satellite\",\n label: \"baselayer.satellite\",\n id: \"satellite-v9\",\n sprite: \"mapbox://sprites/mapbox/satellite-v9\",\n url: \"mapbox://mapbox.satellite\",\n selected: true\n }\n// {\n// name: 'Streets',\n// label: 'baselayer.streets',\n// id: 'streets-v11',\n// sprite: 'mapbox://sprites/mapbox/streets-v11',\n// url: 'mapbox://styles/mapbox/streets-v11'\n// }\n ];\n\n contextLayerGroups: ContextLayerGroup[] = [];\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private modalService: BsModalService, public service: RegistryService) { }\n\n ngOnInit(): void {\n this.service.getAllMasterListVersions().then(lists => {\n this.lists = lists;\n\n this.updateContextGroups();\n });\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.filter.currentValue !== changes.filter.previousValue) {\n this.updateContextGroups();\n }\n }\n\n updateContextGroups(): void {\n this.lists.forEach(list => {\n let contextGroup = { oid: list.oid, displayLabel: list.displayLabel.localizedValue, contextLayers: [] };\n\n list.versions.forEach(version => {\n const index = this.filter.indexOf(version.oid);\n\n if (index === -1) {\n let thisContextLayer = { oid: version.oid, displayLabel: version.forDate, active: false, enabled: false };\n\n contextGroup.contextLayers.push(thisContextLayer);\n }\n });\n\n if (contextGroup.contextLayers.length > 0) {\n this.contextLayerGroups.push(contextGroup);\n }\n });\n }\n\n groupHasEnabledContextLayers(group: string): boolean {\n let hasEnabled = false;\n this.contextLayerGroups.forEach(cLayerGroup => {\n if (cLayerGroup.oid === group) {\n cLayerGroup.contextLayers.forEach(cLayer => {\n if (cLayer.enabled) {\n hasEnabled = true;\n }\n });\n }\n });\n\n return hasEnabled;\n }\n\n hasEnabledContextLayers(): boolean {\n let hasEnabled = false;\n this.contextLayerGroups.forEach(cLayerGroup => {\n cLayerGroup.contextLayers.forEach(cLayer => {\n if (cLayer.enabled) {\n hasEnabled = true;\n }\n });\n });\n\n return hasEnabled;\n }\n\n toggleContextLayer(layer: ContextLayer): void {\n layer.active = !layer.active;\n\n this.layerChange.emit(layer);\n }\n\n removeContextLayer(layer: ContextLayer): void {\n layer.active = false;\n layer.enabled = false;\n\n this.layerChange.emit(layer);\n }\n\n addContextLayerModal(): void {\n let bsModalRef = this.modalService.show(ContextLayerModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true,\n // eslint-disable-next-line quote-props\n \"class\": \"context-layer-modal\"\n });\n bsModalRef.content.contextLayerGroups = this.contextLayerGroups;\n\n // bsModalRef.content.onSubmit.subscribe(() => {\n //\n // this.contextLayerGroups.forEach(cLayerGroup => {\n // cLayerGroup.contextLayers.forEach(cLayer => {\n //\n // console.log(\"Emitting event\", cLayer);\n // this.layerChange.emit(cLayer);\n // });\n // })\n //\n // });\n }\n\n toggleBaseLayer(layer: any): void {\n this.baseLayers.forEach(bl => {\n bl.active = false;\n });\n\n layer.active = true;\n\n this.baseLayerChange.emit(layer);\n }\n\n}\n","\n
\n\n \n
\n\n
\n

\n \n

\n
\n \n \n
\n
\n
\n
\n

\n \n

\n
\n
\n
\n \n
\n
\n
\n {{ cLayer.displayLabel }} \n
\n
\n
\n
\n
\n\n
\n
\n\n \n
\n\n
\n\n
\n\n\n","import { Component, OnInit, Input, Output, EventEmitter, ViewChild, ElementRef } from \"@angular/core\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { BsModalRef, BsModalService } from \"ngx-bootstrap/modal\";\n\nimport { GeoObjectType, GeoObjectOverTime, AttributeType, HierarchyOverTime } from \"@registry/model/registry\";\nimport { RegistryService, GeometryService } from \"@registry/service\";\nimport { AuthService } from \"@shared/service\";\nimport { ErrorModalComponent, ErrorHandler } from \"@shared/component\";\n\n@Component({\n selector: \"feature-panel\",\n templateUrl: \"./feature-panel.component.html\",\n styleUrls: [\"./dataset-location-manager.css\"]\n})\nexport class FeaturePanelComponent implements OnInit {\n\n MODE = {\n VERSIONS: \"VERSIONS\",\n ATTRIBUTES: \"ATTRIBUTES\",\n HIERARCHY: \"HIERARCHY\",\n GEOMETRY: \"GEOMETRY\"\n }\n\n @Input() datasetId: string;\n\n @Input() type: GeoObjectType;\n\n @Input() forDate: Date = new Date();\n\n @Input() readOnly: boolean = false;\n\n // eslint-disable-next-line accessor-pairs\n @Input() set code(value: string) {\n this.updateCode(value);\n }\n\n @ViewChild(\"attributeEditor\") attributeEditor;\n\n _code: string = null;\n\n @Output() featureChange = new EventEmitter();\n @Output() modeChange = new EventEmitter();\n @Output() panelCancel = new EventEmitter();\n @Output() panelSubmit = new EventEmitter<{isChangeRequest:boolean, geoObject?: any, changeRequestId?: string}>();\n\n _isValid: boolean = true;\n\n bsModalRef: BsModalRef;\n\n mode: string = null;\n\n isMaintainer: boolean;\n\n // The current state of the GeoObject in the GeoRegistry\n preGeoObject: GeoObjectOverTime;\n\n // The state of the GeoObject after our edit has been applied\n postGeoObject: GeoObjectOverTime;\n\n attribute: AttributeType = null;\n\n isNew: boolean = false;\n\n isEdit: boolean = false;\n\n hierarchies: HierarchyOverTime[];\n\n hierarchy: HierarchyOverTime = null;\n\n reason: string = \"\";\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public service: RegistryService, private modalService: BsModalService, private authService: AuthService, private geometryService: GeometryService) { }\n\n ngOnInit(): void {\n this.isMaintainer = this.authService.isSRA() || this.authService.isOrganizationRA(this.type.organizationCode) || this.authService.isGeoObjectTypeOrSuperRM(this.type);\n this.mode = \"ATTRIBUTES\";\n\n// this.isEdit = !this.readOnly;\n }\n\n setValid(valid: boolean): void {\n this._isValid = valid;\n }\n\n isValid(): boolean {\n return this._isValid && this.attributeEditor && this.attributeEditor.isValid();\n }\n\n updateCode(code: string): void {\n this._code = code;\n this.postGeoObject = null;\n this.preGeoObject = null;\n this.hierarchies = null;\n\n if (code != null && this.type != null) {\n if (code !== \"__NEW__\") {\n this.isNew = false;\n\n this.service.getGeoObjectOverTime(code, this.type.code).then(geoObject => {\n this.preGeoObject = new GeoObjectOverTime(this.type, JSON.parse(JSON.stringify(geoObject)).attributes);\n this.postGeoObject = new GeoObjectOverTime(this.type, JSON.parse(JSON.stringify(this.preGeoObject)).attributes);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n\n this.service.getHierarchiesForGeoObject(code, this.type.code).then((hierarchies: HierarchyOverTime[]) => {\n this.hierarchies = hierarchies;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n } else {\n this.isNew = true;\n\n this.service.newGeoObjectOverTime(this.type.code).then(retJson => {\n this.preGeoObject = new GeoObjectOverTime(this.type, retJson.geoObject.attributes);\n this.postGeoObject = new GeoObjectOverTime(this.type, JSON.parse(JSON.stringify(this.preGeoObject)).attributes);\n\n this.hierarchies = retJson.hierarchies;\n this.setEditMode(true);\n });\n }\n }\n }\n\n onCancelInternal(): void {\n this.panelCancel.emit();\n\n // if (this._code === '__NEW__') {\n // this.updateCode(null);\n // }\n // else {\n // this.updateCode(this._code);\n // }\n }\n\n canSubmit(): boolean {\n return this.isValid() &&\n (this.isMaintainer || (this.reason && this.reason.trim().length > 0)) &&\n (this.isNew || (this.attributeEditor && this.attributeEditor.getChangeRequestEditor().hasChanges()));\n }\n\n onSubmit(): void {\n if (this.isNew) {\n this.service.applyGeoObjectCreate(this.hierarchies, this.postGeoObject, this.isNew, this.datasetId, this.reason).then((applyInfo: any) => {\n if (!applyInfo.isChangeRequest) {\n this.featureChange.emit(this.postGeoObject);\n this.updateCode(this._code);\n }\n this.panelSubmit.emit(applyInfo);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n } else {\n this.service.applyGeoObjectEdit(this.postGeoObject.attributes.code, this.type.code, this.attributeEditor.getActions(), this.datasetId, this.reason).then((applyInfo: any) => {\n if (!applyInfo.isChangeRequest) {\n this.featureChange.emit(this.postGeoObject);\n this.updateCode(this._code);\n }\n this.panelSubmit.emit(applyInfo);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n this.geometryService.stopEditing();\n }\n\n onManageAttributeVersion(attribute: AttributeType): void {\n this.attribute = attribute;\n this.mode = this.MODE.VERSIONS;\n }\n\n onManageHiearchyVersion(hierarchy: HierarchyOverTime): void {\n this.hierarchy = hierarchy;\n this.mode = this.MODE.HIERARCHY;\n }\n\n onEditAttributes(): void {\n this.setEditMode(!this.isEdit);\n\n window.document.getElementById(\"navigator-left-sidebar\").scroll({\n top: 0,\n behavior: \"smooth\"\n });\n }\n\n setEditMode(value: boolean): void {\n this.isEdit = value;\n this.reason = null;\n\n this.modeChange.emit(this.isEdit);\n }\n\n public error(err: HttpErrorResponse): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n}\n","
\n
\n \n \n \n \n
\n \n \n
\n\n
\n \n \n \n \n \n\n
\n
\n
","import { Component, OnInit, ElementRef, ViewChild } from '@angular/core';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { Subject } from 'rxjs';\nimport { ErrorHandler } from '@shared/component';\nimport { Organization } from '@shared/model/core';\nimport { FileUploader, FileUploaderOptions } from 'ng2-file-upload';\nimport { EventService, LocalizationService } from '@shared/service';\n\ndeclare var acp: string;\n\n@Component({\n selector: 'import-types-modal',\n templateUrl: './import-types-modal.component.html',\n styleUrls: []\n})\nexport class ImportTypesModalComponent implements OnInit {\n\n public organizations: Organization[] = [];\n public orgCode: string;\n\n\n /*\n * File uploader\n */\n uploader: FileUploader;\n\n @ViewChild('myFile')\n fileRef: ElementRef;\n\n message: string = null;\n\n public onNodeChange: Subject;\n\n constructor(private eventService: EventService, private localizationService: LocalizationService, public bsModalRef: BsModalRef) {\n }\n\n ngOnInit(): void {\n this.onNodeChange = new Subject();\n }\n\n init(organizations: Organization[]): void {\n this.organizations = organizations;\n\n let options: FileUploaderOptions = {\n queueLimit: 1,\n removeAfterUpload: true,\n url: acp + '/cgr/import-types'\n };\n\n this.uploader = new FileUploader(options);\n\n this.uploader.onBuildItemForm = (fileItem: any, form: any) => {\n form.append('orgCode', this.orgCode);\n };\n this.uploader.onBeforeUploadItem = (fileItem: any) => {\n this.eventService.start();\n };\n this.uploader.onCompleteItem = (item: any, response: any, status: any, headers: any) => {\n this.fileRef.nativeElement.value = \"\";\n this.eventService.complete();\n };\n this.uploader.onSuccessItem = (item: any, response: string, status: number, headers: any) => {\n this.onNodeChange.next(true);\n this.bsModalRef.hide();\n };\n this.uploader.onErrorItem = (item: any, response: string, status: number, headers: any) => {\n const error = JSON.parse(response)\n\n this.error({ error: error });\n }\n\n }\n\n onSelect(orgCode: string): void {\n this.orgCode = orgCode;\n }\n\n onClick(): void {\n\n if (this.uploader.queue != null && this.uploader.queue.length > 0) {\n this.uploader.uploadAll();\n }\n else {\n this.error({\n message: this.localizationService.decode('io.missing.file'),\n error: {},\n });\n }\n }\n\n\n public error(err: any): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n}\n","
\n
{{message}}
\n\n
\n

\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { Subject } from 'rxjs';\n\nimport { ExternalSystemService } from '@shared/service';\nimport { ExternalSystem } from '@shared/model/core';\nimport { HttpErrorResponse } from '@angular/common/http';\n\n@Component({\n selector: 'export-system-modal',\n templateUrl: './export-system-modal.component.html',\n styleUrls: []\n})\nexport class ExportSystemModalComponent {\n\n systems: ExternalSystem[] = [];\n\n system: string = null;\n\n /*\n * Called on confirm\n */\n public onSystemSet: Subject;\n\n constructor(public bsModalRef: BsModalRef, private externalSystemService: ExternalSystemService) { }\n\n ngOnInit(): void {\n this.onSystemSet = new Subject();\n\n this.externalSystemService.getExternalSystems(1, 1000).then(systems => {\n this.systems = systems.resultSet.filter(sys => sys.type === 'FhirExternalSystem');\n }).catch((err: HttpErrorResponse) => {\n });\n\n }\n\n confirm(): void {\n this.bsModalRef.hide();\n this.onSystemSet.next(this.system);\n }\n}\n","
\n
\n

\n \n

\n
\n\n
\n
\n
\n
\n \n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n","import { Component, OnInit } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Subject } from \"rxjs\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { ErrorHandler } from \"@shared/component\";\nimport { HierarchyType } from \"@registry/model/hierarchy\";\nimport { RegistryService, HierarchyService } from \"@registry/service\";\n\nimport { LocalizationService, AuthService } from \"@shared/service\";\n\n@Component({\n selector: \"create-hierarchy-type-modal\",\n templateUrl: \"./create-hierarchy-type-modal.component.html\",\n styleUrls: []\n})\nexport class CreateHierarchyTypeModalComponent implements OnInit {\n\n hierarchyType: HierarchyType;\n organizations: any = [];\n message: string = null;\n\n edit: boolean = false; // if true, we are updating an existing. If false, we are creating new\n\n readOnly: boolean = false;\n\n organizationLabel: string;\n\n /*\n * Observable subject for TreeNode changes. Called when create is successful\n */\n public onHierarchytTypeCreate: Subject;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private lService: LocalizationService, private auth: AuthService, private registryService: RegistryService, private hierarchyService: HierarchyService, public bsModalRef: BsModalRef) { }\n\n ngOnInit(): void {\n this.onHierarchytTypeCreate = new Subject();\n\n this.hierarchyType = {\n code: \"\",\n label: this.lService.create(),\n description: this.lService.create(),\n rootGeoObjectTypes: [],\n organizationCode: \"\"\n };\n\n this.registryService.getOrganizations().then(orgs => {\n // Filter out organizations they're not RA's of, unless we're readOnly.\n if (!this.readOnly) {\n this.organizations = [];\n\n for (var i = 0; i < orgs.length; ++i) {\n if (this.auth.isOrganizationRA(orgs[i].code)) {\n this.organizations.push(orgs[i]);\n }\n }\n } else {\n this.organizations = orgs;\n }\n\n if (!this.edit && this.organizations.length === 1) {\n this.hierarchyType.organizationCode = this.organizations[0].code;\n this.organizationLabel = this.organizations[0].label.localizedValue;\n } else if (this.edit || this.readOnly) {\n this.organizationLabel = this.getOrganizationLabelFromCode(this.hierarchyType.organizationCode);\n }\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n getOrganizationLabelFromCode(orgCode: string) {\n for (var i = 0; i < this.organizations.length; ++i) {\n if (this.organizations[i].code === orgCode) {\n return this.organizations[i].label.localizedValue;\n }\n }\n\n console.log(\"Did not find org with code [\" + orgCode + \"]\");\n return orgCode;\n }\n\n handleOnSubmit(): void {\n this.message = null;\n\n if (this.readOnly) {\n this.bsModalRef.hide();\n return;\n }\n\n if (this.edit) {\n this.hierarchyService.updateHierarchyType(JSON.stringify(this.hierarchyType)).then(data => {\n this.onHierarchytTypeCreate.next(data);\n this.bsModalRef.hide();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n } else {\n this.hierarchyService.createHierarchyType(JSON.stringify(this.hierarchyType)).then(data => {\n this.onHierarchytTypeCreate.next(data);\n this.bsModalRef.hide();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n\n
\n \n\n
{{message}}
\n\n
\n

\n \n

\n
\n \n
\n \n \n
\n
\n \n \n
\n \n \n\n
\n \n \n \n \n
\n \n
\n \n \n
\n\n
\n \n \n
\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n \n
\n \n
\n

\n \n

\n
\n \n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n
\n
\n \n \n
\n
\n
\n\n \n
\n\n","import { Component, OnInit } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Subject } from \"rxjs\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { ErrorHandler } from \"@shared/component\";\nimport { GeoObjectType } from \"@registry/model/registry\";\n\nimport { RegistryService } from \"@registry/service\";\nimport { LocalizationService, AuthService } from \"@shared/service\";\nimport { Organization } from \"@shared/model/core\";\nimport { HierarchyType } from \"@registry/model/hierarchy\";\n\n@Component({\n selector: \"create-geoobjtype-modal\",\n templateUrl: \"./create-geoobjtype-modal.component.html\",\n styleUrls: []\n})\nexport class CreateGeoObjTypeModalComponent implements OnInit {\n\n geoObjectType: GeoObjectType;\n organization: Organization = null;\n message: string = null;\n parents: GeoObjectType[];\n hierarchyType: HierarchyType;\n organizationLabel: string;\n\n /*\n * Observable subject for TreeNode changes. Called when create is successful\n */\n public onGeoObjTypeCreate: Subject;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private lService: LocalizationService, private auth: AuthService, private registryService: RegistryService, public bsModalRef: BsModalRef) { }\n\n ngOnInit(): void {\n this.onGeoObjTypeCreate = new Subject();\n\n this.geoObjectType = {\n code: \"\",\n label: this.lService.create(),\n description: this.lService.create(),\n geometryType: \"MULTIPOINT\",\n isLeaf: false,\n isGeometryEditable: true,\n organizationCode: \"\",\n attributes: []\n };\n }\n\n init(organization: Organization, parents: GeoObjectType[], groupSuperType: GeoObjectType, isAbstract: boolean) {\n this.geoObjectType.isAbstract = isAbstract ? isAbstract : false;\n\n if (groupSuperType) {\n this.geoObjectType.superTypeCode = groupSuperType.code;\n this.geoObjectType.geometryType = groupSuperType.geometryType;\n this.geoObjectType.isPrivate = groupSuperType.isPrivate;\n }\n\n // Filter out parents that are not abstract\n this.parents = parents.filter(parent => parent.isAbstract);\n\n // Filter out organizations they're not RA's of\n this.organization = organization;\n this.geoObjectType.organizationCode = this.organization.code;\n this.organizationLabel = this.organization.label.localizedValue;\n }\n\n handleOnSubmit(): void {\n this.message = null;\n\n this.registryService.createGeoObjectType(JSON.stringify(this.geoObjectType)).then(data => {\n this.onGeoObjTypeCreate.next(data);\n this.bsModalRef.hide();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n toggleIsLeaf(): void {\n this.geoObjectType.isLeaf = !this.geoObjectType.isLeaf;\n }\n\n toggleIsGeometryEditable(): void {\n this.geoObjectType.isGeometryEditable = !this.geoObjectType.isGeometryEditable;\n }\n\n toggleIsAbstract(): void {\n this.geoObjectType.isAbstract = !this.geoObjectType.isAbstract;\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n}\n","
\n\n
\n
{{message}}
\n\n
\n

\n \n \n

\n
\n\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n\n
\n
\n \n
\n
\n \n
\n
\n
\n \n
\n \n
\n
\n
\n
\n \n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n \n\n
\n
\n
\n
\n
\n \n
\n\n \n
\n
\n
\n
\n \n
\n
\n
\n \n \n \n \n
\n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n\n
\n
\n","import { Component, OnInit } from \"@angular/core\";\nimport {\n trigger,\n style,\n animate,\n transition\n} from \"@angular/animations\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Subject, Subscription } from \"rxjs\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { ErrorHandler } from \"@shared/component\";\nimport { ManageGeoObjectTypeModalState, GeoObjectType } from \"@registry/model/registry\";\nimport { GeoObjectTypeModalStates } from \"@registry/model/constants\";\n\nimport { GeoObjectTypeManagementService } from \"@registry/service\";\n\n@Component({\n selector: \"manage-geoobjecttype-modal\",\n templateUrl: \"./manage-geoobjecttype-modal.component.html\",\n styleUrls: [\"./manage-geoobjecttype-modal.css\"],\n // host: { '[@fadeInOut]': 'true' },\n animations: [\n [\n trigger(\"fadeInOut\", [\n transition(\"void => *\", [\n style({\n opacity: 0\n }),\n animate(\"500ms\")\n ]),\n transition(\":leave\",\n animate(\"500ms\",\n style({\n opacity: 0\n })\n )\n )\n ])\n ]]\n})\nexport class ManageGeoObjectTypeModalComponent implements OnInit {\n\n message: string = null;\n modalState: ManageGeoObjectTypeModalState = { state: GeoObjectTypeModalStates.manageGeoObjectType, attribute: \"\", termOption: \"\" };\n modalStateSubscription: Subscription;\n geoObjectType: GeoObjectType;\n public onGeoObjectTypeSubmitted: Subject;\n readOnly: boolean = false;\n\n constructor(public bsModalRef: BsModalRef, public confirmBsModalRef: BsModalRef, geoObjectTypeManagementService: GeoObjectTypeManagementService) {\n this.modalStateSubscription = geoObjectTypeManagementService.modalStepChange.subscribe(modalState => {\n this.modalState = modalState;\n });\n }\n\n ngOnInit(): void {\n this.onGeoObjectTypeSubmitted = new Subject();\n }\n\n ngOnDestroy() {\n this.modalStateSubscription.unsubscribe();\n }\n\n onModalStateChange(state: any): void {\n this.modalState = state;\n }\n\n onGeoObjectTypeChange(data: any): void {\n // send persisted geoobjecttype to the parent calling component (hierarchy.component) so the\n // updated GeoObjectType can be reflected in the template\n this.onGeoObjectTypeSubmitted.next(data);\n }\n\n update(): void {\n\n }\n\n close(): void {\n this.bsModalRef.hide();\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","\n
\n\n \n\n \n\n\n\n\n \n\n \n\n \n\n \n\n
","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\nimport {\n trigger,\n style,\n animate,\n transition\n} from \"@angular/animations\";\nimport { BsModalRef, BsModalService } from \"ngx-bootstrap/modal\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { StepConfig, ModalTypes } from \"@shared/model/modal\";\nimport { ErrorHandler, ConfirmModalComponent } from \"@shared/component\";\n\nimport { LocalizationService, ModalStepIndicatorService } from \"@shared/service\";\n\nimport { GeoObjectType, ManageGeoObjectTypeModalState, AttributeType } from \"@registry/model/registry\";\nimport { GeoObjectTypeModalStates } from \"@registry/model/constants\";\nimport { RegistryService, GeoObjectTypeManagementService } from \"@registry/service\";\n\n@Component({\n selector: \"geoobjecttype-input\",\n templateUrl: \"./geoobjecttype-input.component.html\",\n styleUrls: [\"./geoobjecttype-input.css\"],\n // host: { '[@fadeInOut]': 'true' },\n animations: [\n [\n trigger(\"fadeInOut\", [\n transition(\"void => *\", [\n style({\n opacity: 0\n }),\n animate(\"500ms\")\n ]),\n transition(\":leave\",\n animate(\"500ms\",\n style({\n opacity: 0\n })\n )\n )\n ])\n ]]\n})\nexport class GeoObjectTypeInputComponent implements OnInit {\n\n @Input() readOnly: boolean = false;\n @Input() geoObjectType: GeoObjectType;\n @Output() geoObjectTypeChange: EventEmitter = new EventEmitter();\n editGeoObjectType: GeoObjectType;\n\n organizationLabel: string;\n\n // eslint-disable-next-line accessor-pairs\n @Input(\"setGeoObjectType\")\n set in(geoObjectType: GeoObjectType) {\n if (geoObjectType) {\n this.editGeoObjectType = JSON.parse(JSON.stringify(geoObjectType));\n }\n }\n\n message: string = null;\n\n modalState: ManageGeoObjectTypeModalState = { state: GeoObjectTypeModalStates.manageGeoObjectType, attribute: \"\", termOption: \"\" };\n\n modalStepConfig: StepConfig = {\n steps: [\n { label: this.localizationService.decode(\"modal.step.indicator.manage.geoobjecttype\"), active: true, enabled: true }\n ]\n };\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef, public confirmBsModalRef: BsModalRef, private modalService: BsModalService,\n private modalStepIndicatorService: ModalStepIndicatorService, private geoObjectTypeManagementService: GeoObjectTypeManagementService,\n private localizationService: LocalizationService, private registryService: RegistryService) { }\n\n ngOnInit(): void {\n this.modalStepIndicatorService.setStepConfig(this.modalStepConfig);\n this.geoObjectTypeManagementService.setModalState(this.modalState);\n\n this.fetchOrganizationLabel();\n }\n\n defineAttributeModal(): void {\n this.geoObjectTypeManagementService.setModalState({ state: GeoObjectTypeModalStates.defineAttribute, attribute: \"\", termOption: \"\" });\n }\n\n fetchOrganizationLabel(): void {\n this.registryService.getOrganizations().then(orgs => {\n for (let i = 0; i < orgs.length; ++i) {\n if (orgs[i].code === this.editGeoObjectType.organizationCode) {\n this.organizationLabel = orgs[i].label.localizedValue;\n }\n }\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n manageAttributes(): void {\n this.geoObjectTypeManagementService.setModalState({ state: GeoObjectTypeModalStates.manageAttributes, attribute: \"\", termOption: \"\" });\n }\n\n onModalStateChange(state: ManageGeoObjectTypeModalState): void {\n this.modalState = state;\n }\n\n update(): void {\n this.registryService.updateGeoObjectType(this.editGeoObjectType).then(geoObjectType => {\n // emit the persisted geoobjecttype to the parent widget component (manage-geoobjecttype.component)\n // so that the change can be updated in the template\n this.geoObjectTypeChange.emit(geoObjectType);\n\n this.close();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n // resetGeoObjectType(): void {\n // this.geoObjectType = this.geoObjectTypeOriginal;\n // }\n\n close(): void {\n // this.resetGeoObjectType();\n this.bsModalRef.hide();\n }\n\n isValid(): boolean {\n // if(this.attribute.code && this.attribute.label) {\n\n // // if code has a space\n // if(this.attribute.code.indexOf(\" \") !== -1){\n // return false;\n // }\n\n // // If label is only spaces\n // if(this.attribute.label.replace(/\\s/g, '').length === 0) {\n // return false\n // }\n\n // return true;\n // }\n\n // return false;\n\n return true;\n }\n\n editAttribute(attr: AttributeType, e: any): void {\n this.geoObjectTypeManagementService.setModalState({ state: GeoObjectTypeModalStates.editAttribute, attribute: attr, termOption: \"\" });\n }\n\n removeAttributeType(attr: AttributeType, e: any): void {\n this.confirmBsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n this.confirmBsModalRef.content.message = this.localizationService.decode(\"confirm.modal.verify.delete\") + \"[\" + attr.label.localizedValue + \"]\";\n this.confirmBsModalRef.content.data = { attributeType: attr, geoObjectType: this.geoObjectType };\n this.confirmBsModalRef.content.submitText = this.localizationService.decode(\"modal.button.delete\");\n this.confirmBsModalRef.content.type = ModalTypes.danger;\n\n ( this.confirmBsModalRef.content).onConfirm.subscribe(data => {\n this.deleteAttributeType(data.geoObjectType.code, data.attributeType);\n });\n }\n\n deleteAttributeType(geoObjectTypeCode: string, attr: AttributeType): void {\n this.registryService.deleteAttributeType(geoObjectTypeCode, attr.code).then(data => {\n if (data) {\n this.geoObjectType.attributes.splice(this.geoObjectType.attributes.indexOf(attr), 1);\n }\n\n this.geoObjectTypeChange.emit(this.geoObjectType);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","\n
\n
{{message}}
\n\n
\n
\n

\n \n : {{editGeoObjectType.label.localizedValue}}\n

\n
\n
\n
\n
\n \n
\n
\n \n \n
\n
\n \n \n \n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n {{geoObjectType.superTypeCode}}\n \n
\n
\n\n\n
\n
\n \n
\n
\n \n
\n
\n\n\n
\n
\n \n
\n
\n\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n\n
\n
\n \n
\n
\n
\n
\n\n\n\n\n\n\n\n\n
\n \n\n\n\n\n\n\n\n\n\n\n \n \n \n \n \n \n
{{attr.label.localizedValue}}\n \n \n
\n
\n \n \n \n \n
\n
\n
\n
\n\n
\n
\n \n \n
\n
\n
\n
\n
\n\n\n","import { Component, OnInit, ViewChild, Input, EventEmitter, Output } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { ErrorHandler } from \"@shared/component\";\nimport { StepConfig } from \"@shared/model/modal\";\n\nimport { LocalizationService, ModalStepIndicatorService } from \"@shared/service\";\n\nimport { GeoObjectType, AttributeType, AttributeTermType, AttributeDecimalType, ManageGeoObjectTypeModalState } from \"@registry/model/registry\";\nimport { GeoObjectTypeModalStates } from \"@registry/model/constants\";\nimport { RegistryService, GeoObjectTypeManagementService } from \"@registry/service\";\nimport { AttributeInputComponent } from \"../geoobjecttype-management/attribute-input.component\";\n\n@Component({\n selector: \"define-attribute-modal-content\",\n templateUrl: \"./define-attribute-modal-content.component.html\",\n styleUrls: [\"./define-attribute-modal-content.css\"]\n})\nexport class DefineAttributeModalContentComponent implements OnInit {\n\n @Input() geoObjectType: GeoObjectType;\n @Output() geoObjectTypeChange: EventEmitter = new EventEmitter();\n\n message: string = null;\n newAttribute: AttributeType = null;\n modalStepConfig: StepConfig = {\n steps: [\n { label: this.localizeService.decode(\"modal.step.indicator.manage.geoobjecttype\"), active: true, enabled: false },\n { label: this.localizeService.decode(\"modal.step.indicator.manage.attributes\"), active: true, enabled: false },\n { label: this.localizeService.decode(\"modal.step.indicator.create.attribute\"), active: true, enabled: true }\n ]\n };\n\n modalState: ManageGeoObjectTypeModalState = { state: GeoObjectTypeModalStates.defineAttribute, attribute: \"\", termOption: \"\" };\n\n @ViewChild(AttributeInputComponent) attributeInputComponent: AttributeInputComponent;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(\n public bsModalRef: BsModalRef,\n private modalStepIndicatorService: ModalStepIndicatorService,\n private geoObjectTypeManagementService: GeoObjectTypeManagementService,\n private localizeService: LocalizationService,\n private registryService: RegistryService) { }\n\n ngOnInit(): void {\n this.setAttribute(\"character\");\n this.modalStepIndicatorService.setStepConfig(this.modalStepConfig);\n }\n\n ngAfterViewInit(): void {\n if (this.attributeInputComponent) {\n this.attributeInputComponent.animate();\n }\n }\n\n handleOnSubmit(): void {\n this.registryService.addAttributeType(this.geoObjectType.code, this.newAttribute).then(data => {\n this.geoObjectType.attributes.push(data);\n\n this.geoObjectTypeManagementService.setModalState({ state: GeoObjectTypeModalStates.manageGeoObjectType, attribute: \"\", termOption: \"\" });\n\n this.geoObjectTypeChange.emit(this.geoObjectType);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n setAttribute(type: string): void {\n if (type === \"term\") {\n this.newAttribute = new AttributeTermType(\"\", type, this.localizeService.create(), this.localizeService.create(), false, false, false, true);\n } else if (type === \"float\") {\n this.newAttribute = new AttributeDecimalType(\"\", type, this.localizeService.create(), this.localizeService.create(), false, false, false, true);\n } else {\n this.newAttribute = new AttributeType(\"\", type, this.localizeService.create(), this.localizeService.create(), false, false, false, true);\n }\n }\n\n isFormValid(): boolean {\n let isAttrValid: boolean = false;\n\n if (this.attributeInputComponent) {\n isAttrValid = this.attributeInputComponent.isValid();\n }\n\n if (isAttrValid) {\n return true;\n }\n\n return false;\n }\n\n cancel(): void {\n this.geoObjectTypeManagementService.setModalState({ state: GeoObjectTypeModalStates.manageGeoObjectType, attribute: \"\", termOption: \"\" });\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n\n \n\n
\n
\n
\n
{{message}}
\n \n
\n

\n \n

\n
\n\n
\n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n
\n\n \n\n
\n
\n \n \n
\n \n \n
\n
\n
\n
\n
\n
\n
\n\n
\n","import { Directive } from \"@angular/core\";\nimport { NG_VALIDATORS, AbstractControl, ValidatorFn, Validator, FormControl } from \"@angular/forms\";\n\n// validation function\nfunction validateGeoObjectAttributeCodeValidator(): ValidatorFn {\n return (c: AbstractControl) => {\n if (c.value) {\n let isValid = c.value.indexOf(\" \") === -1;\n\n if (isValid) {\n return null;\n } else {\n return {\n geoObjectAttributeCode: {\n valid: false\n }\n };\n }\n }\n };\n}\n\n@Directive({\n selector: \"[geoObjectAttributeCode][ngModel]\",\n providers: [\n // eslint-disable-next-line no-use-before-define\n { provide: NG_VALIDATORS, useExisting: GeoObjectAttributeCodeValidator, multi: true }\n ]\n})\nexport class GeoObjectAttributeCodeValidator implements Validator {\n\n validator: ValidatorFn;\n\n constructor() {\n this.validator = validateGeoObjectAttributeCodeValidator();\n }\n\n validate(c: FormControl) {\n return this.validator(c);\n }\n\n}\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from \"@angular/core\";\nimport {\n trigger,\n style,\n animate,\n transition\n} from \"@angular/animations\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { GeoObjectType, AttributeType, ManageGeoObjectTypeModalState } from \"@registry/model/registry\";\nimport { GeoObjectTypeModalStates } from \"@registry/model/constants\";\n\nimport { ErrorHandler } from \"@shared/component\";\nimport { StepConfig } from \"@shared/model/modal\";\n\nimport { LocalizationService, ModalStepIndicatorService } from \"@shared/service\";\n\nimport { RegistryService, GeoObjectTypeManagementService } from \"@registry/service\";\n\nimport { AttributeInputComponent } from \"../geoobjecttype-management/attribute-input.component\";\n\n@Component({\n selector: \"edit-attribute-modal-content\",\n templateUrl: \"./edit-attribute-modal-content.component.html\",\n styleUrls: [\"./edit-attribute-modal-content.css\"],\n // host: { '[@fadeInOut]': 'true' },\n animations: [\n [\n trigger(\"fadeInOut\", [\n transition(\"void => *\", [\n style({\n opacity: 0\n }),\n animate(\"500ms\")\n ])\n ])\n ]]\n})\nexport class EditAttributeModalContentComponent implements OnInit {\n\n @Input() geoObjectType: GeoObjectType;\n @Input() attribute: AttributeType = null;\n @Output() geoObjectTypeChange: EventEmitter = new EventEmitter();\n\n message: string = null;\n modalState: ManageGeoObjectTypeModalState = { state: GeoObjectTypeModalStates.editAttribute, attribute: this.attribute, termOption: \"\" };\n modalStepConfig: StepConfig = {\n steps: [\n { label: this.localizeService.decode(\"modal.step.indicator.manage.geoobjecttype\"), active: true, enabled: false },\n { label: this.localizeService.decode(\"modal.step.indicator.manage.attributes\"), active: true, enabled: false },\n { label: this.localizeService.decode(\"modal.step.indicator.edit.attribute\"), active: true, enabled: true }\n ]\n };\n\n @ViewChild(AttributeInputComponent) attributeInputComponent: AttributeInputComponent;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef,\n private modalStepIndicatorService: ModalStepIndicatorService,\n private geoObjectTypeManagementService: GeoObjectTypeManagementService,\n private localizeService: LocalizationService,\n private registryService: RegistryService) { }\n\n ngOnInit(): void {\n this.modalStepIndicatorService.setStepConfig(this.modalStepConfig);\n }\n\n ngAfterViewInit() {\n\n }\n\n ngOnDestroy() {\n }\n\n handleOnSubmit(): void {\n this.registryService.updateAttributeType(this.geoObjectType.code, this.attribute).then(data => {\n for (let i = 0; i < this.geoObjectType.attributes.length; i++) {\n let attr = this.geoObjectType.attributes[i];\n if (attr.code === data.code) {\n Object.assign(attr, data);\n break;\n }\n }\n\n this.geoObjectTypeManagementService.setModalState({ state: GeoObjectTypeModalStates.manageGeoObjectType, attribute: \"\", termOption: \"\" });\n\n this.geoObjectTypeChange.emit(this.geoObjectType);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n isFormValid(): boolean {\n // let isAttrValid: boolean = this.attributeInputComponent.isValid();\n\n // if(isAttrValid){\n // return true;\n // }\n\n // return false;\n return true;\n }\n\n cancel(): void {\n this.geoObjectTypeManagementService.setModalState({ state: GeoObjectTypeModalStates.manageGeoObjectType, attribute: \"\", termOption: \"\" });\n }\n\n back(): void {\n this.geoObjectTypeManagementService.setModalState({ state: GeoObjectTypeModalStates.manageGeoObjectType, attribute: \"\", termOption: \"\" });\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n\n
\n
\n
\n
{{message}}
\n \n
\n

\n : {{attribute.label.localizedValue}}\n

\n \n

:

\n

:

\n

:

\n

:

\n

:

\n

:

\n
\n \n \n\n
\n\n \n\n \n \n\n
\n
\n \n \n
\n \n \n
\n
\n
\n
\n
\n
\n
\n \n\n
\n","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectorRef } from \"@angular/core\";\nimport {\n trigger,\n state,\n style,\n animate,\n transition\n} from \"@angular/animations\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { GeoObjectType, AttributeTermType, ManageGeoObjectTypeModalState } from \"@registry/model/registry\";\nimport { GeoObjectTypeModalStates } from \"@registry/model/constants\";\nimport { GeoObjectTypeManagementService } from \"@registry/service/geoobjecttype-management.service\";\n\n@Component({\n selector: \"term-option-widget\",\n templateUrl: \"./term-option-widget.component.html\",\n styleUrls: [\"./term-option-widget.css\"],\n animations: [\n trigger(\"toggleInputs\", [\n state(\"none, void\",\n style({ opacity: 0 })\n ),\n state(\"show\",\n style({ opacity: 1 })\n ),\n transition(\"none => show\", animate(\"300ms\")),\n transition(\"show => none\", animate(\"100ms\"))\n ]),\n trigger(\"openClose\",\n [\n transition(\n \":enter\", [\n style({ opacity: 0 }),\n animate(\"500ms\", style({ opacity: 1 }))\n ]\n ),\n transition(\n \":leave\", [\n style({ opacity: 1 }),\n animate(\"0ms\", style({ opacity: 0 }))\n\n ]\n )]\n )\n ]\n})\nexport class TermOptionWidgetComponent implements OnInit {\n\n @Input() geoObjectType: GeoObjectType;\n @Input() attribute: AttributeTermType = null;\n @Output() attributeChange = new EventEmitter();\n message: string = null;\n state: string = \"none\";\n modalState: ManageGeoObjectTypeModalState = { state: GeoObjectTypeModalStates.manageTermOption, attribute: this.attribute, termOption: \"\" };\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef, private cdr: ChangeDetectorRef, private geoObjectTypeManagementService: GeoObjectTypeManagementService) { }\n\n ngOnInit(): void {\n\n }\n\n ngAfterViewInit() {\n this.state = \"show\";\n this.cdr.detectChanges();\n }\n\n ngOnDestroy() {\n\n }\n\n handleOnSubmit(): void {\n\n }\n\n animate(): void {\n this.state = \"none\";\n }\n\n onAnimationDone(event: AnimationEvent): void {\n this.state = \"show\";\n }\n\n // isValid(): boolean {\n // if(this.termOption.code && this.termOption.code.length > 0 && this.termOption.label && this.termOption.label.length > 0){\n\n // // If code has a space\n // if(this.termOption.code.indexOf(\" \") !== -1){\n // return false;\n // }\n\n // // If label is only spaces\n // if(this.termOption.label.replace(/\\s/g, '').length === 0) {\n // return false\n // }\n\n // return true;\n // }\n // else if(this.termOption.code && this.termOption.code.indexOf(\" \") !== -1){\n // return false;\n // }\n\n // return false\n // }\n\n openAddTermOptionForm(): void {\n this.geoObjectTypeManagementService.setModalState({ state: GeoObjectTypeModalStates.manageTermOption, attribute: this.attribute, termOption: \"\" });\n }\n\n}\n","
\n\n
\n
\n \n
\n
\n
\n
\n
    \n
  • {{term.label.localizedValue}}
  • \n
\n\n \n
\n
\n
\n
\n\n
\n\n\n","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectorRef } from \"@angular/core\";\nimport {\n trigger,\n state,\n style,\n animate,\n transition\n} from \"@angular/animations\";\nimport { BsModalRef, BsModalService } from \"ngx-bootstrap/modal\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { StepConfig, ModalTypes } from \"@shared/model/modal\";\nimport { ErrorHandler, ConfirmModalComponent } from \"@shared/component\";\nimport { LocalizationService, ModalStepIndicatorService } from \"@shared/service\";\n\nimport { RegistryService, GeoObjectTypeManagementService } from \"@registry/service\";\nimport { GeoObjectType, AttributeTermType, Term } from \"@registry/model/registry\";\nimport { GeoObjectTypeModalStates } from \"@registry/model/constants\";\n\n@Component({\n selector: \"manage-term-options\",\n templateUrl: \"./manage-term-options.component.html\",\n styleUrls: [\"./manage-term-options.css\"],\n animations: [\n trigger(\"toggleInputs\", [\n state(\"none, void\",\n style({ opacity: 0 })\n ),\n state(\"show\",\n style({ opacity: 1 })\n ),\n transition(\"none => show\", animate(\"300ms\")),\n transition(\"show => none\", animate(\"100ms\"))\n ]),\n trigger(\"openClose\",\n [\n transition(\n \":enter\", [\n style({ opacity: 0 }),\n animate(\"500ms\", style({ opacity: 1 }))\n ]\n ),\n transition(\n \":leave\", [\n style({ opacity: 1 }),\n animate(\"0ms\", style({ opacity: 0 }))\n\n ]\n )]\n )\n ]\n})\nexport class ManageTermOptionsComponent implements OnInit {\n\n @Input() geoObjectType: GeoObjectType;\n @Input() attribute: AttributeTermType;\n @Output() attributeChange = new EventEmitter();\n message: string = null;\n termOption: Term;\n state: string = \"none\";\n enableTermOptionForm = false;\n modalStepConfig: StepConfig = {\r\n steps: [\n { label: this.localizeService.decode(\"modal.step.indicator.manage.geoobjecttype\"), active: true, enabled: false },\n { label: this.localizeService.decode(\"modal.step.indicator.manage.attributes\"), active: true, enabled: false },\n { label: this.localizeService.decode(\"modal.step.indicator.edit.attribute\"), active: true, enabled: false },\n { label: this.localizeService.decode(\"modal.step.indicator.manage.term.options\"), active: true, enabled: true }\n ]\r\n };\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef, private cdr: ChangeDetectorRef, private geoObjectTypeManagementService: GeoObjectTypeManagementService,\n private modalService: BsModalService, private localizeService: LocalizationService, private modalStepIndicatorService: ModalStepIndicatorService,\n private registryService: RegistryService) { }\n\n ngOnInit(): void {\n this.modalStepIndicatorService.setStepConfig(this.modalStepConfig);\n this.termOption = new Term(\"\", this.localizeService.create(), this.localizeService.create());\n }\n\n ngAfterViewInit() {\n this.state = \"show\";\n this.cdr.detectChanges();\n }\n\n ngOnDestroy() {\n\n }\n\n handleOnSubmit(): void {\n\n }\n\n animate(): void {\n this.state = \"none\";\n }\n\n onAnimationDone(event: AnimationEvent): void {\n this.state = \"show\";\n }\n\n isValid(): boolean {\n if (this.termOption.code && this.termOption.code.length > 0) {\n // If code has a space\n if (this.termOption.code.indexOf(\" \") !== -1) {\n return false;\n }\n\n // If label is only spaces\n for (let i = 0; i < this.termOption.label.localeValues.length; i++) {\n if (this.termOption.label.localeValues[i].value.replace(/\\s/g, \"\").length === 0) {\n return false;\n }\n }\n\n return true;\n } else if (this.termOption.code && this.termOption.code.indexOf(\" \") !== -1) {\n return false;\n }\n\n return false;\n }\n\n addTermOption(): void {\n this.registryService.addAttributeTermTypeOption(this.attribute.rootTerm.code, this.termOption).then(data => {\n this.attribute.rootTerm.children.push(data);\n\n this.attributeChange.emit(this.attribute);\n\n this.clearTermOption();\n\n this.enableTermOptionForm = false;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n deleteTermOption(termOption: Term): void {\n this.registryService.deleteAttributeTermTypeOption(this.attribute.rootTerm.code, termOption.code).then(data => {\n if (this.attribute.rootTerm.children.indexOf(termOption) !== -1) {\n this.attribute.rootTerm.children.splice(this.attribute.rootTerm.children.indexOf(termOption), 1);\n }\n\n this.attributeChange.emit(this.attribute);\n\n this.clearTermOption();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n removeTermOption(termOption: Term): void {\n this.bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n this.bsModalRef.content.message = this.localizeService.decode(\"confirm.modal.verify.delete\") + \"[\" + termOption.label + \"]\";\n this.bsModalRef.content.submitText = this.localizeService.decode(\"modal.button.delete\");\n this.bsModalRef.content.type = ModalTypes.danger;\n\n ( this.bsModalRef.content).onConfirm.subscribe(data => {\n this.deleteTermOption(termOption);\n });\n }\n\n editTermOption(termOption: Term): void {\n const state = {\n state: GeoObjectTypeModalStates.editTermOption,\n attribute: this.attribute,\n termOption: JSON.parse(JSON.stringify(termOption))\n };\n\n this.geoObjectTypeManagementService.setModalState(state);\n }\n\n clearTermOption(): void {\n this.termOption.code = \"\";\n this.termOption.label = this.localizeService.create();\n this.termOption.description = this.localizeService.create();\n }\n\n cancelTermOption(): void {\n this.clearTermOption();\n this.enableTermOptionForm = false;\n }\n\n openAddTermOptionForm(): void {\n this.enableTermOptionForm = true;\n }\n\n close(): void {\n this.geoObjectTypeManagementService.setModalState({ state: GeoObjectTypeModalStates.editAttribute, attribute: this.attribute, termOption: \"\" });\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n\n
\n
\n\n
{{message}}
\n \n
\n

\n : {{attribute.label.localizedValue}}\n

\n
\n
\n
\n
\n \n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n
\n \n \n ()\n \n \n
{{option.code}}{{localeValue.value}}\n \n \n
\n \n \n \n \n \n \n \n \n\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n","import { Component, OnInit, Input } from \"@angular/core\";\nimport {\n trigger,\n style,\n animate,\n transition\n} from \"@angular/animations\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { StepConfig } from \"@shared/model/modal\";\nimport { LocalizationService, ModalStepIndicatorService } from \"@shared/service\";\nimport { ErrorHandler } from \"@shared/component\";\n\nimport { GeoObjectType, AttributeTermType, Term, ManageGeoObjectTypeModalState } from \"@registry/model/registry\";\nimport { GeoObjectTypeModalStates } from \"@registry/model/constants\";\nimport { RegistryService, GeoObjectTypeManagementService } from \"@registry/service\";\n\n@Component({\n selector: \"edit-term-option-input\",\n templateUrl: \"./edit-term-option-input.component.html\",\n styleUrls: [],\n animations: [\n trigger(\"openClose\",\n [\n transition(\n \":enter\", [\n style({ opacity: 0 }),\n animate(\"500ms\", style({ opacity: 1 }))\n ]\n ),\n transition(\n \":leave\", [\n style({ opacity: 1 }),\n animate(\"0ms\", style({ opacity: 0 }))\n ]\n )]\n )\n ]\n})\nexport class EditTermOptionInputComponent implements OnInit {\n\n @Input() geoObjectType: GeoObjectType;\n @Input() attribute: AttributeTermType = null;\n @Input() termOption: Term;\n\n message: string = null;\n modalState: ManageGeoObjectTypeModalState = { state: GeoObjectTypeModalStates.editAttribute, attribute: this.attribute, termOption: \"\" };\n modalStepConfig: StepConfig = {\n steps: [\n { label: this.localizeService.decode(\"modal.step.indicator.manage.geoobjecttype\"), active: true, enabled: false },\n { label: this.localizeService.decode(\"modal.step.indicator.manage.attributes\"), active: true, enabled: false },\n { label: this.localizeService.decode(\"modal.step.indicator.edit.attribute\"), active: true, enabled: false },\n { label: this.localizeService.decode(\"modal.step.indicator.manage.term.options\"), active: true, enabled: false },\n { label: this.localizeService.decode(\"modal.step.indicator.edit.term.option\"), active: true, enabled: true }\n\n ]\n };\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef, private modalStepIndicatorService: ModalStepIndicatorService, private geoObjectTypeManagementService: GeoObjectTypeManagementService,\n private localizeService: LocalizationService, private registryService: RegistryService) { }\n\n ngOnInit(): void {\n this.modalStepIndicatorService.setStepConfig(this.modalStepConfig);\n }\n\n ngAfterViewInit() {\n\n }\n\n ngOnDestroy() {\n }\n\n handleOnSubmit(): void {\n this.registryService.updateAttributeTermTypeOption(this.attribute.rootTerm.code, this.termOption).then(data => {\n // Update the term definition on the attribute\n const index = this.attribute.rootTerm.children.findIndex(t => t.code === data.code);\n\n if (index !== -1) {\n this.attribute.rootTerm.children[index] = data;\n }\n\n this.geoObjectTypeManagementService.setModalState({ state: GeoObjectTypeModalStates.manageGeoObjectType, attribute: this.attribute, termOption: null });\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n isFormValid(): boolean {\n // let isAttrValid: boolean = this.attributeInputComponent.isValid();\n\n // if(isAttrValid){\n // return true;\n // }\n\n // return false;\n return true;\n }\n\n cancel(): void {\n this.geoObjectTypeManagementService.setModalState({ state: GeoObjectTypeModalStates.manageTermOption, attribute: this.attribute, termOption: null });\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n
{{message}}
\n\n
\n \n
\n
\n
\n

\n \n

\n
\n\n
\n
\n
\n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n\n\n
\n","/* eslint-disable no-floating-decimal */\nimport * as d3 from \"d3\";\n\nimport { HierarchyType } from \"@registry/model/hierarchy\";\nimport { GeoObjectType } from \"@registry/model/registry\";\n\nimport { SvgHierarchyNode } from \"./svg-hierarchy-node\";\nimport { calculateTextWidth } from \"./svg-util\";\nimport { INHERITED_NODE_BANNER_COLOR, DEFAULT_NODE_BANNER_COLOR, RELATED_NODE_BANNER_COLOR, DEFAULT_NODE_FILL, INHERITED_NODE_FILL, HierarchyComponent, TREE_SCALE_FACTOR_X, TREE_SCALE_FACTOR_Y } from \"../hierarchy.component\";\n\nimport { LocalizationService, AuthService } from \"@shared/service\";\nimport { BsModalService } from \"ngx-bootstrap/modal\";\n\nexport class SvgHierarchyType {\n\n public static gotRectW: number = 150;\n public static gotRectH: number = 25;\n public static gotBodyFontSize: number = 8;\n public static gotOptionsButtonFontSize: number = 12;\n\n public static gotHeaderW: number = 150;\n public static gotHeaderH: number = 14;\n public static gotHeaderFontSize: number = 8;\n\n public static MOUSE_HOVER_EVENT_ENTER = \"mouseenter\";\n\n public static MOUSE_HOVER_EVENT_MOVE = \"mousemove\";\n\n public static MOUSE_HOVER_EVENT_EXIT = \"mouseleave\";\n\n hierarchyComponent: HierarchyComponent;\n\n hierarchyType: HierarchyType;\n\n svgEl: any;\n\n d3Hierarchy: any;\n\n d3Tree: any;\n\n isPrimary: boolean;\n\n tooltip: any;\n\n public constructor(hierarchyComponent: HierarchyComponent, svgEl: any, ht: HierarchyType, isPrimary: boolean, public localizationService: LocalizationService, public modalService: BsModalService, public authService: AuthService) {\n const hierarchyType = ht;\n\n this.hierarchyComponent = hierarchyComponent;\n this.hierarchyType = hierarchyType;\n this.svgEl = svgEl;\n\n this.d3Hierarchy = d3.hierarchy(hierarchyType.rootGeoObjectTypes[0]);\n this.isPrimary = isPrimary;\n\n this.d3Tree = d3.tree().nodeSize([SvgHierarchyType.gotRectW * TREE_SCALE_FACTOR_X, (SvgHierarchyType.gotRectH + SvgHierarchyType.gotHeaderH) * TREE_SCALE_FACTOR_Y]).separation((a, b) => 0.8)(this.d3Hierarchy);\n }\n\n public getD3Tree() {\n return this.d3Tree;\n }\n\n public getCode(): string {\n return this.hierarchyType.code;\n }\n\n public getNodeByCode(gotCode: string): SvgHierarchyNode {\n let treeNode = this.getD3Tree().find((node) => { return node.data.geoObjectType === gotCode; });\n\n if (treeNode == null) {\n return null;\n }\n\n return new SvgHierarchyNode(this.hierarchyComponent, this, this.hierarchyComponent.findGeoObjectTypeByCode(gotCode), treeNode, this.localizationService, this.modalService, this.authService);\n }\n\n public renderHierarchyHeader(hg: any, colHeaderLabel: string) {\n let bbox = hg.node().getBBox();\n\n let colHeader = hg.append(\"g\").classed(\"g-hierarchy-header\", true);\n\n let headerg = hg.append(\"g\").classed(\"g-hierarchy-header\", true);\n\n const headerFontSize: number = 10;\n const iconWidth: number = 20;\n const maxHierarchyLabelLength = 200;\n\n let hierarchyLabelW: number = calculateTextWidth(this.hierarchyType.label.localizedValue, headerFontSize);\n let hierarchyLabelH:number = headerFontSize * 2;\n let hierarchyLabelY:number = bbox.y + headerFontSize * 1.6;\n if (hierarchyLabelW > maxHierarchyLabelLength) {\n hierarchyLabelW = maxHierarchyLabelLength;\n hierarchyLabelH = headerFontSize * 3;\n hierarchyLabelY = bbox.y + headerFontSize;\n }\n\n let lineWidth = bbox.width;\n let textWidth = hierarchyLabelW + iconWidth;\n\n if (textWidth > lineWidth) {\n lineWidth = textWidth;\n }\n\n // Hierarchy icon (font awesome)\n headerg.append(\"text\").classed(\"hierarchy-header-icon\", true)\n .attr(\"x\", bbox.x)\n .attr(\"y\", bbox.y)\n .style(\"font-family\", \"FontAwesome\")\n .attr(\"fill\", \"grey\")\n .attr(\"font-size\", 12)\n .text(\"\\uf0e8\");\n\n // Hierarchy display label\n colHeader.append(\"foreignObject\").classed(\"hierarchy-header-label\", true)\n .attr(\"font-size\", headerFontSize)\n .attr(\"stroke-linejoin\", \"round\")\n .attr(\"stroke-width\", 3)\n .attr(\"x\", bbox.x + iconWidth)\n .attr(\"y\", hierarchyLabelY)\n .attr(\"width\", hierarchyLabelW)\n .attr(\"height\", hierarchyLabelH)\n .append(\"xhtml:p\")\n .attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\")\n .attr(\"text-anchor\", \"start\")\n .attr(\"text-align\", \"left\")\n .style(\"vertical-align\", \"middle\")\n .style(\"display\", \"table-cell\")\n .style(\"color\", \"gray\")\n // .style(\"width\", SvgHierarchyType.gotRectW - 32 + 5 + \"px\")\n .style(\"height\", SvgHierarchyType.gotRectH - 4 + \"px\")\n .html((d: any) => this.hierarchyType.label.localizedValue);\n\n // Line underneath the header\n headerg.append(\"line\").classed(\"hierarchy-header-line\", true)\n .attr(\"x1\", bbox.x)\n .attr(\"y1\", bbox.y + headerFontSize)\n .attr(\"x2\", bbox.x + lineWidth)\n .attr(\"y2\", bbox.y + headerFontSize)\n .attr(\"stroke\", \"grey\")\n .attr(\"stroke-width\", .5);\n\n let headerGBbox = headerg.node().getBBox();\n headerg.attr(\"transform\", \"translate(0 -\" + headerGBbox.height + \")\");\n\n // Col header label\n colHeader.append(\"text\").classed(\"hierarchy-header-label\", true)\n .attr(\"font-size\", headerFontSize + 2)\n .attr(\"font-weight\", \"bold\")\n .attr(\"stroke-linejoin\", \"round\")\n .attr(\"stroke-width\", 3)\n .attr(\"fill\", \"grey\")\n .attr(\"x\", bbox.x)\n .attr(\"y\", bbox.y)\n .text(colHeaderLabel);\n\n colHeader.attr(\"transform\", \"translate(0 -\" + headerGBbox.height * 2.5 + \")\");\n\n return headerg;\n }\n\n getRelatedHierarchies(gotCode: string): string[] {\n let got: GeoObjectType = this.hierarchyComponent.findGeoObjectTypeByCode(gotCode);\n\n if (got.relatedHierarchies == null) {\n got.relatedHierarchies = this.hierarchyComponent.calculateRelatedHierarchies(got);\n }\n\n let relatedHiers: string[] = got.relatedHierarchies;\n\n let index = null;\n for (let i = 0; i < relatedHiers.length; ++i) {\n if (relatedHiers[i] === this.getCode()) {\n index = i;\n }\n }\n\n if (index != null) {\n relatedHiers.splice(index, 1);\n }\n\n return relatedHiers;\n }\n\n private nodeMouseover(d: any, element: any, data:any) {\n d3.select(\"#NodeTooltip\")\n .style(\"opacity\", 1);\n }\n\n private nodeMousemove(event: any, element: any, data:any) {\n d3.select(\"#hierarchyLabel\").html(this.hierarchyType.label.localizedValue);\n d3.select(\"#hierarchyCodeLabel\").html(this.hierarchyType.code);\n\n d3.select(\"#geoObjectTypeLabel\").html(data.data.label);\n d3.select(\"#geoObjectTypeCodeLabel\").html(data.data.geoObjectType);\n\n d3.select(\"#hierarchyOrganizationLabel\").html(this.hierarchyComponent.findOrganizationByCode(this.hierarchyType.organizationCode).label.localizedValue);\n d3.select(\"#geoObjectTypeOrganizationLabel\").html(this.hierarchyComponent.findOrganizationByCode(this.hierarchyComponent.findGeoObjectTypeByCode(data.data.geoObjectType).organizationCode).label.localizedValue);\n\n let nodeTooltip: any = d3.select(\"#NodeTooltip\").node();\n let nodeTooltipBbox: DOMRect = nodeTooltip.getBoundingClientRect();\n\n let pos = { x: event.pageX, y: event.pageY };\n const yPointerOffset: number = 50;\n const xPointerOffset: number = 0;\n\n // If overflow off bottom of page\n if ((event.pageY + nodeTooltipBbox.height + yPointerOffset) > document.documentElement.scrollHeight) {\n // render above mouse pointer\n pos.y = event.pageY - nodeTooltipBbox.height - yPointerOffset;\n }\n\n // If overflow off right side of page\n if ((event.pageX + nodeTooltipBbox.width + xPointerOffset) > document.documentElement.scrollWidth) {\n // render to the left of the mouse pointer\n pos.x = event.pageX - nodeTooltipBbox.width - xPointerOffset;\n }\n\n d3.select(\"#NodeTooltip\")\n .style(\"left\", pos.x + \"px\")\n .style(\"top\", pos.y + \"px\");\n }\n\n private nodeMouseleave(d: any, element: any, data:any) {\n d3.select(\"#NodeTooltip\")\n .style(\"opacity\", 0)\n .style(\"left\", \"-10000px\")\n .style(\"top\", \"-10000px\");\n }\n\n public render() {\n let that = this;\n let descends: any = this.d3Tree.descendants();\n\n d3.select(\".g-hierarchy[data-primary=\\\"false\\\"]\").remove();\n if (this.isPrimary) {\n d3.select(\".g-hierarchy[data-primary=\\\"true\\\"]\").remove();\n }\n\n let hg = this.svgEl.insert(\"g\", \".g-hierarchy\").classed(\"g-hierarchy\", true).attr(\"data-code\", this.hierarchyType.code).attr(\"data-primary\", this.isPrimary);\n hg.attr(\"font-family\", \"sans-serif\");\n\n let gtree = hg.append(\"g\").classed(\"g-hierarchy-tree\", true).attr(\"data-code\", this.hierarchyType.code);\n\n // Edge\n gtree.append(\"g\").classed(\"g-got-edge\", true)\n .attr(\"fill\", \"none\")\n .attr(\"stroke\", \"#555\")\n .attr(\"stroke-opacity\", 0.4)\n .attr(\"stroke-width\", 1.5)\n .selectAll(\"path\")\n .data(this.d3Tree.links())\n .join(\"path\")\n // .attr(\"d\", d3.linkVertical().x(function(d:any) { return d.x; }).y(function(d:any) { return d.y; })); // draws edges as curved lines\n .attr(\"d\", (d: any, i) => { // draws edges as square bracket lines\n return \"M\" + d.source.x + \",\" + (d.source.y) +\n \"V\" + ((d.source.y + d.target.y) / 2) +\n \"H\" + d.target.x +\n \"V\" + (d.target.y);\n });\n\n // Header on square which denotes which hierarchy it's a part of\n let gHeader = gtree.append(\"g\").classed(\"g-got-header\", true);\n gHeader.selectAll(\"rect\")\n .data(descends)\n .join(\"rect\")\n .filter(function(d: any) { return d.data.geoObjectType !== \"GhostNode\"; })\n .classed(\"svg-got-header-rect\", true)\n .attr(\"x\", (d: any) => d.x - (SvgHierarchyType.gotRectW / 2))\n .attr(\"y\", (d: any) => d.y - SvgHierarchyType.gotRectH / 2 - SvgHierarchyType.gotHeaderH + 4)\n .attr(\"fill\", (d: any) => this.isPrimary ? (d.data.inheritedHierarchyCode != null ? INHERITED_NODE_BANNER_COLOR : DEFAULT_NODE_BANNER_COLOR) : RELATED_NODE_BANNER_COLOR)\n .attr(\"width\", SvgHierarchyType.gotHeaderW)\n .attr(\"height\", SvgHierarchyType.gotHeaderH)\n .attr(\"cursor\", (d: any) => this.isPrimary ? (d.data.inheritedHierarchyCode != null ? null : \"grab\") : null)\n .attr(\"rx\", 3)\n .attr(\"data-gotCode\", (d: any) => d.data.geoObjectType)\n .attr(\"data-inherited\", (d: any) =>\n d.data.inheritedHierarchyCode != null\n )\n .on(SvgHierarchyType.MOUSE_HOVER_EVENT_ENTER, function(event: any, data: any) { that.nodeMouseover(event, this, data); })\n .on(SvgHierarchyType.MOUSE_HOVER_EVENT_MOVE, function(event: any, data: any) { that.nodeMousemove(event, this, data); })\n .on(SvgHierarchyType.MOUSE_HOVER_EVENT_EXIT, function(event: any, data: any) { that.nodeMouseleave(event, this, data); });\n\n // Write the name of the hierarchy on the header\n gHeader.selectAll(\"foreignObject\")\n .data(descends)\n .join(\"foreignObject\")\n .filter(function(d: any) { return d.data.geoObjectType !== \"GhostNode\"; })\n .classed(\"svg-got-header-rect\", true)\n .attr(\"x\", (d: any) =>\n d.x - (SvgHierarchyType.gotHeaderW / 2)\n )\n .attr(\"y\", (d: any) => d.y - SvgHierarchyType.gotRectH / 2 - SvgHierarchyType.gotHeaderH + 4)\n .attr(\"font-size\", SvgHierarchyType.gotHeaderFontSize + \"px\")\n .attr(\"cursor\", (d: any) => this.isPrimary ? (d.data.inheritedHierarchyCode != null ? null : \"grab\") : null)\n .attr(\"data-gotCode\", (d: any) => d.data.geoObjectType)\n .attr(\"data-inherited\", (d: any) => d.data.inheritedHierarchyCode != null)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"font-weight\", \"bold\")\n .attr(\"font-size\", SvgHierarchyType.gotHeaderFontSize)\n .attr(\"stroke-linejoin\", \"round\")\n .attr(\"stroke-width\", 3)\n .attr(\"width\", SvgHierarchyType.gotHeaderW)\n .attr(\"height\", SvgHierarchyType.gotHeaderH - 4)\n .append(\"xhtml:p\")\n .attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\")\n .attr(\"fill\", \"white\")\n .attr(\"height\", SvgHierarchyType.gotHeaderH - 4)\n .style(\"text-align\", \"center\")\n .style(\"vertical-align\", \"middle\")\n .style(\"display\", \"table-cell\")\n .style(\"color\", \"white\")\n .style(\"height\", (SvgHierarchyType.gotHeaderH - 4) + \"px\")\n .style(\"width\", SvgHierarchyType.gotHeaderW + \"px\")\n .html(function(d: any) {\n let name = d.data.inheritedHierarchyCode != null ? that.hierarchyComponent.findHierarchyByCode(d.data.inheritedHierarchyCode).label.localizedValue : that.hierarchyType.label.localizedValue;\n // eslint-disable-next-line no-unused-expressions\n calculateTextWidth(name, SvgHierarchyType.gotHeaderFontSize) > (SvgHierarchyType.gotHeaderW - 5) ? name = name.substring(0, 34) + \"...\" : true;\n return name;\n })\n .on(SvgHierarchyType.MOUSE_HOVER_EVENT_ENTER, function(event: any, data: any) { that.nodeMouseover(event, this, data); })\n .on(SvgHierarchyType.MOUSE_HOVER_EVENT_MOVE, function(event: any, data: any) { that.nodeMousemove(event, this, data); })\n .on(SvgHierarchyType.MOUSE_HOVER_EVENT_EXIT, function(event: any, data: any) { that.nodeMouseleave(event, this, data); });\n\n // GeoObjectType Body Square\n gtree.append(\"g\").classed(\"g-got\", true)\n .selectAll(\"rect\")\n .data(descends)\n .join(\"rect\")\n .filter(function(d: any) { return d.data.geoObjectType !== \"GhostNode\"; })\n .classed(\"svg-got-body-rect\", true)\n .attr(\"x\", (d: any) => d.x - (SvgHierarchyType.gotRectW / 2))\n .attr(\"y\", (d: any) => d.y - (SvgHierarchyType.gotRectH / 2))\n .attr(\"fill\", (d: any) => d.data.inheritedHierarchyCode != null ? INHERITED_NODE_FILL : DEFAULT_NODE_FILL)\n .attr(\"width\", SvgHierarchyType.gotRectW)\n .attr(\"height\", SvgHierarchyType.gotRectH)\n .attr(\"rx\", 3)\n .attr(\"cursor\", (d: any) => this.isPrimary ? (d.data.inheritedHierarchyCode != null ? null : \"grab\") : null)\n .attr(\"data-gotCode\", (d: any) => d.data.geoObjectType)\n .attr(\"data-inherited\", (d: any) => d.data.inheritedHierarchyCode != null)\n .each(function(d: any) {\n if (d.data.geoObjectType !== \"GhostNode\") {\n if (d.data.activeDropZones) {\n d.data.dropZoneBbox = { x: d.x - SvgHierarchyType.gotRectW / 2, y: d.y - SvgHierarchyType.gotRectH * 2, width: SvgHierarchyType.gotRectW * 2 + 100, height: SvgHierarchyType.gotRectH * 4 };\n } else {\n d.data.dropZoneBbox = { x: d.x - SvgHierarchyType.gotRectW / 2, y: d.y - SvgHierarchyType.gotRectH / 2, width: SvgHierarchyType.gotRectW, height: SvgHierarchyType.gotRectH };\n }\n }\n })\n .on(SvgHierarchyType.MOUSE_HOVER_EVENT_ENTER, function(event: any, data: any) { that.nodeMouseover(event, this, data); })\n .on(SvgHierarchyType.MOUSE_HOVER_EVENT_MOVE, function(event: any, data: any) { that.nodeMousemove(event, this, data); })\n .on(SvgHierarchyType.MOUSE_HOVER_EVENT_EXIT, function(event: any, data: any) { that.nodeMouseleave(event, this, data); });\n\n // Arrows on Edges\n const arrowRectD = { height: 7, width: 10 };\n let gArrow = gtree.append(\"g\").classed(\"g-got-connector-arrow\", true);\n gArrow.selectAll(\"rect\").data(this.d3Tree.links()).join(\"rect\") // .filter(function(d:any){return d.data.geoObjectType !== \"GhostNode\";})\n .classed(\"got-connector-arrow-rect\", true)\n .attr(\"x\", (d: any) => d.source.x - arrowRectD.width / 2)\n .attr(\"y\", (d: any) => d.source.y + SvgHierarchyType.gotRectH / 2 - arrowRectD.height / 2)\n .attr(\"width\", arrowRectD.width)\n .attr(\"height\", arrowRectD.height)\n .attr(\"fill\", (d: any) => this.isPrimary ? (d.source.data.inheritedHierarchyCode != null ? INHERITED_NODE_BANNER_COLOR : DEFAULT_NODE_BANNER_COLOR) : RELATED_NODE_BANNER_COLOR);\n gArrow.selectAll(\"path\").data(this.d3Tree.links()).join(\"path\") // .filter(function(d:any){return d.data.geoObjectType !== \"GhostNode\";})\n .classed(\"got-connector-arrow-path\", true)\n .attr(\"fill\", \"none\")\n .attr(\"stroke\", \"white\")\n .attr(\"stroke-width\", 1.5)\n .attr(\"d\", (d: any) => \"M\" + (d.source.x - arrowRectD.width / 2 + ((arrowRectD.width * 2) / 3)) + \",\" + (d.source.y + SvgHierarchyType.gotRectH / 2 - arrowRectD.height / 2 + ((arrowRectD.height * 2) / 3)) +\n \"L\" + (d.source.x) + \",\" + (d.source.y + SvgHierarchyType.gotRectH / 2 - arrowRectD.height / 2 + (arrowRectD.height / 3)) +\n \"L\" + (d.source.x - arrowRectD.width / 2 + (arrowRectD.width / 3)) + \",\" + (d.source.y + SvgHierarchyType.gotRectH / 2 + arrowRectD.height / 2 - arrowRectD.height / 3)\n );\n\n // Ghost Drop Zone (Sibling) Backer\n gtree.append(\"g\").classed(\"g-sibling-ghost-backer\", true)\n .selectAll(\"rect\")\n .data(descends)\n .join(\"rect\")\n .filter(function(d: any) { return d.data.geoObjectType === \"GhostNode\"; })\n .classed(\"svg-sibling-ghost-backer-dz\", true)\n .attr(\"x\", (d: any) => d.x - (SvgHierarchyType.gotRectW / 2))\n .attr(\"y\", (d: any) => d.y - (SvgHierarchyType.gotRectH / 2))\n .attr(\"width\", SvgHierarchyType.gotRectW)\n .attr(\"height\", SvgHierarchyType.gotRectH)\n .attr(\"fill\", \"white\");\n\n // Ghost Drop Zone (Sibling) Body Rectangle\n gtree.append(\"g\").classed(\"g-sibling-ghost-body\", true)\n .selectAll(\"rect\")\n .data(descends)\n .join(\"rect\")\n .filter(function(d: any) { return d.data.geoObjectType === \"GhostNode\"; })\n .classed(\"svg-sibling-ghost-body-dz\", true)\n .attr(\"x\", (d: any) => d.x - (SvgHierarchyType.gotRectW / 2))\n .attr(\"y\", (d: any) => d.y - (SvgHierarchyType.gotRectH / 2))\n .attr(\"width\", SvgHierarchyType.gotRectW)\n .attr(\"height\", SvgHierarchyType.gotRectH)\n .attr(\"fill\", \"none\")\n .attr(\"stroke\", \"#6BA542\")\n .attr(\"stroke-width\", \"1\")\n .attr(\"stroke-dasharray\", \"5,5\")\n .attr(\"data-gotCode\", (d: any) => d.data.geoObjectType);\n\n // GeoObjectType label\n gtree.append(\"g\").classed(\"g-got-codelabel\", true)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"font-size\", SvgHierarchyType.gotBodyFontSize)\n .attr(\"stroke-linejoin\", \"round\")\n .attr(\"stroke-width\", 3)\n .selectAll(\"foreignObject\")\n .data(descends)\n .join(\"foreignObject\")\n .classed(\"svg-got-label-text\", true)\n .attr(\"x\", (d: any) => d.x - (SvgHierarchyType.gotRectW / 2) + 5)\n .attr(\"y\", (d: any) => d.y - (SvgHierarchyType.gotRectH / 2) + 2)\n .attr(\"width\", SvgHierarchyType.gotRectW - 32 + 5)\n .attr(\"height\", SvgHierarchyType.gotRectH - 4)\n // .filter(function(d: any) {\n // return calculateTextWidth(d.data.label, 10) > SvgHierarchyType.gotRectW - 32 + 5;\n // })\n // .style(\"height\", SvgHierarchyType.gotRectH + 20 + \"px\")\n .attr(\"cursor\", (d: any) => this.isPrimary ? (d.data.inheritedHierarchyCode != null ? null : \"grab\") : null)\n .attr(\"data-gotCode\", (d: any) => d.data.geoObjectType)\n .attr(\"data-inherited\", (d: any) => d.data.inheritedHierarchyCode != null)\n .append(\"xhtml:p\")\n .attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\")\n .attr(\"text-anchor\", \"start\")\n .attr(\"text-align\", \"left\")\n .style(\"vertical-align\", \"middle\")\n .style(\"display\", \"table-cell\")\n .style(\"width\", SvgHierarchyType.gotRectW - 32 + 5 + \"px\")\n .style(\"height\", SvgHierarchyType.gotRectH - 4 + \"px\")\n .html((d: any) => d.data.label)\n .on(SvgHierarchyType.MOUSE_HOVER_EVENT_ENTER, function(event: any, data: any) { that.nodeMouseover(event, this, data); })\n .on(SvgHierarchyType.MOUSE_HOVER_EVENT_MOVE, function(event: any, data: any) { that.nodeMousemove(event, this, data); })\n .on(SvgHierarchyType.MOUSE_HOVER_EVENT_EXIT, function(event: any, data: any) { that.nodeMouseleave(event, this, data); });\n\n let headerg;\n if (this.isPrimary) {\n gtree.append(\"g\").classed(\"g-got-relatedhiers-button\", true)\n .selectAll(\"text\")\n .data(descends)\n .join(\"text\")\n .filter(function(d: any) {\n return (d.data.geoObjectType === \"GhostNode\" ? false : true) && d.data.inheritedHierarchyCode == null;\n })\n .classed(\"svg-got-relatedhiers-button\", true)\n .attr(\"data-gotCode\", (d: any) => d.data.geoObjectType)\n .attr(\"x\", (d: any) => d.x + (SvgHierarchyType.gotRectW / 2) - (SvgHierarchyType.gotOptionsButtonFontSize) - 3)\n .attr(\"y\", (d: any) => d.y + (SvgHierarchyType.gotOptionsButtonFontSize * 0.8) - SvgHierarchyType.gotOptionsButtonFontSize / 2)\n .style(\"font-family\", \"FontAwesome\")\n .style(\"cursor\", \"pointer\")\n .style(\"fill\", \"#767676\")\n .style(\"font-size\", SvgHierarchyType.gotOptionsButtonFontSize + \"px\")\n .text(\"\\uf013\")\n .on(\"click\", function(event, node) { that.getNodeByCode(node.data.geoObjectType).renderRelatedHierarchiesMenu(); });\n\n headerg = this.renderHierarchyHeader(hg, \"Selected Hierarchy\");\n } else {\n headerg = this.renderHierarchyHeader(hg, \"Related Hierarchy\");\n }\n\n\n // let paddingTop = (headerg.node().getBBox().height + 20);\n // gtree.attr(\"transform\", \"translate(0 \" + paddingTop + \")\");\n }\n}\n","import { Component, OnInit, AfterViewInit, ViewChild, ElementRef } from '@angular/core';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { Router } from '@angular/router';\n\nimport { LocalizationService } from '@shared/service';\nimport { ErrorHandler, SuccessModalComponent, ConfirmModalComponent } from '@shared/component';\n\nimport { ImportConfiguration } from '@registry/model/io';\n\nimport { IOService } from '@registry/service';\n\n@Component( {\n selector: 'shapefile-modal',\n templateUrl: './shapefile-modal.component.html',\n styleUrls: []\n} )\nexport class ShapefileModalComponent implements OnInit {\n\n configuration: ImportConfiguration;\n message: string = null;\n state: string = 'MAP';\n\n constructor( private service: IOService, public bsModalRef: BsModalRef, private modalService: BsModalService,\n private localizeService: LocalizationService, private router: Router ) {\n }\n\n ngOnInit(): void {\n }\n\n onStateChange( event: string ): void {\n if ( event === 'BACK' ) {\n this.handleBack();\n }\n else if ( event === 'NEXT' ) {\n this.handleNext();\n }\n else if ( event === 'CANCEL' ) {\n this.handleCancel();\n }\n }\n\n handleBack(): void {\n if ( this.state === 'LOCATION' ) {\n this.state = 'MAP';\n }\n }\n\n handleNext(): void {\n if ( this.state === 'MAP' ) {\n\n if ( !this.configuration.postalCode ) {\n this.state = 'LOCATION';\n }\n else {\n this.handleSubmit();\n }\n }\n else if ( this.state === 'LOCATION' ) {\n this.handleSubmit();\n }\n else if ( this.state === 'LOCATION-PROBLEM' ) {\n\n if ( this.configuration.termProblems != null ) {\n this.state = 'TERM-PROBLEM';\n }\n else {\n this.handleSubmit();\n }\n }\n else if ( this.state === 'TERM-PROBLEM' ) {\n this.handleSubmit();\n }\n }\n\n handleSubmit(): void {\n this.message = null;\n\n this.service.importShapefile( this.configuration ).then( config => {\n\n if ( config.locationProblems != null ) {\n this.state = 'LOCATION-PROBLEM';\n this.configuration = config;\n }\n else if ( config.termProblems != null ) {\n this.state = 'TERM-PROBLEM';\n this.configuration = config;\n }\n else {\n this.bsModalRef.hide()\n\n this.bsModalRef = this.modalService.show( ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true,\n } );\n this.bsModalRef.content.message = this.localizeService.decode( \"data.import.go.to.scheduled.jobs.confirm.message\" );\n this.bsModalRef.content.submitText = this.localizeService.decode( \"data.import.go.to.scheduled.jobs.button\" );\n this.bsModalRef.content.cancelText = this.localizeService.decode( \"modal.button.close\" );\n\n ( this.bsModalRef.content ).onConfirm.subscribe( data => {\n this.router.navigate(['/registry/scheduled-jobs']);\n } );\n }\n } ).catch(( response: HttpErrorResponse ) => {\n this.error( response );\n } );\n\n }\n\n handleCancel(): void {\n this.message = null;\n\n this.service.cancelImport( this.configuration ).then( response => {\n this.bsModalRef.hide()\n } ).catch(( err: HttpErrorResponse ) => {\n this.error( err );\n } );\n }\n\n error( err: HttpErrorResponse ): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n}\n","
\n
{{message}}
\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\nimport { TypeaheadMatch } from 'ngx-bootstrap/typeahead';\nimport { Observable } from 'rxjs';\n\nimport { ImportConfiguration, LocationProblem } from '@registry/model/io';\nimport { IOService } from '@registry/service';\n\n@Component( {\n\n selector: 'location-problem',\n templateUrl: './location-problem.component.html',\n styleUrls: []\n} )\nexport class LocationProblemComponent implements OnInit {\n\n @Input() configuration: ImportConfiguration;\n @Input() problem: LocationProblem;\n @Input() index: number;\n @Output() onError: EventEmitter = new EventEmitter();\n\n // show: boolean;\n dataSource: Observable;\n hasSynonym: boolean;\n\n entityLabel: string;\n entityId: string;\n\n constructor( private service: IOService ) {\n this.dataSource = Observable.create(( observer: any ) => {\n this.service.getGeoObjectSuggestions( this.entityLabel, this.problem.type, this.problem.parent, this.configuration.hierarchy ).then( results => {\n observer.next( results );\n } );\n } );\n }\n\n ngOnInit(): void {\n this.entityLabel = null;\n this.entityId = null;\n this.hasSynonym = false;\n }\n\n typeaheadOnSelect( e: TypeaheadMatch ): void {\n this.entityId = e.item.id;\n this.hasSynonym = ( this.entityId != null );\n }\n\n createSynonym(): void {\n if ( this.hasSynonym ) {\n this.onError.emit( null );\n\n this.service.createGeoObjectSynonym( this.entityId, this.problem.label ).then( response => {\n this.problem.resolved = true;\n this.problem.action = {\n name: 'SYNONYM',\n synonymId: response.synonymId,\n vOid: response.vOid, \n label: response.label\n };\n } ).catch( e => {\n this.onError.emit( e.error );\n } );\n }\n }\n\n ignoreDataAtLocation(): void {\n let locationLabel = this.problem.label;\n let universal = this.problem.type;\n\n this.problem.resolved = true;\n\n this.problem.action = {\n name: 'IGNOREATLOCATION',\n label: locationLabel,\n };\n }\n\n undoAction(): void {\n let locationLabel = this.problem.label;\n let universal = this.problem.type;\n\n if ( this.problem.resolved ) {\n let action = this.problem.action;\n\n if ( action.name == 'IGNOREATLOCATION' ) {\n this.problem.resolved = false;\n this.problem.action = null;\n }\n else if ( action.name == 'SYNONYM' ) {\n this.onError.emit( null );\n\n this.service.deleteGeoObjectSynonym( action.synonymId, action.vOid ).then( response => {\n this.problem.resolved = false;\n this.problem.action = null;\n\n this.entityLabel = null;\n this.hasSynonym = ( this.entityLabel != null );\n } ).catch( e => {\n this.onError.emit( e.error );\n } );\n }\n\n }\n }\n}\n","
\n
\n
\n
    0\">\n
  1. {{context.label}} ({{context.type}})
  2. \n
\n
\n
{{problem.label}} ({{problem.typeLabel}})
\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n \n [{{problem.action.label}}]\n \n \n
    \n \n
  • {{ancestor.label}}
  • \n
\n
\n
\n
\n \n [{{problem.action.label}}]\n
\n
\n \n
\n
\n
\n
","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\nimport { TypeaheadMatch } from 'ngx-bootstrap/typeahead';\nimport { Observable } from 'rxjs';\nimport { v4 as uuid } from 'uuid';\n\nimport { ImportConfiguration, TermProblem } from '@registry/model/io';\nimport { IOService } from '@registry/service';\n\n@Component( {\n\n selector: 'term-problem',\n templateUrl: './term-problem.component.html',\n styleUrls: []\n} )\nexport class TermProblemComponent implements OnInit {\n\n @Input() configuration: ImportConfiguration;\n @Input() problem: TermProblem;\n @Input() index: number;\n @Output() onError: EventEmitter = new EventEmitter();\n\n // show: boolean;\n dataSource: Observable;\n hasSynonym: boolean;\n\n termLabel: string;\n termId: string;\n\n constructor( private service: IOService ) {\n this.dataSource = Observable.create(( observer: any ) => {\n this.service.getTermSuggestions( this.problem.mdAttributeId, this.termLabel, '20' ).then( results => {\n observer.next( results );\n } );\n } );\n }\n\n ngOnInit(): void {\n this.termLabel = null;\n this.termId = null;\n this.hasSynonym = false;\n }\n\n typeaheadOnSelect( e: TypeaheadMatch ): void {\n this.termId = e.item.value;\n this.hasSynonym = ( this.termId != null );\n }\n\n createSynonym(): void {\n if ( this.hasSynonym ) {\n this.onError.emit( null );\n\n this.service.createTermSynonym( this.termId, this.problem.label ).then( response => {\n this.problem.resolved = true;\n this.problem.action = {\n name: 'SYNONYM',\n synonymId: response.synonymId,\n label: response.label\n };\n } ).catch( e => {\n this.onError.emit( e.error );\n } );\n }\n }\n\n createOption(): void {\n this.onError.emit( null );\n \n this.service.createTerm( this.problem.label, uuid(), this.problem.parentCode).then( term => {\n this.problem.resolved = true;\n this.problem.action = {\n name: 'OPTION',\n term: term\n };\n } ).catch( e => {\n this.onError.emit( e.error );\n } );\n }\n\n ignoreValue(): void {\n this.problem.resolved = true;\n\n this.problem.action = {\n name: 'IGNORE'\n };\n }\n\n undoAction(): void {\n\n if ( this.problem.resolved ) {\n\n let action = this.problem.action;\n\n if ( action.name == 'IGNORE' ) {\n this.problem.resolved = false;\n this.problem.action = null;\n }\n else if ( action.name == 'SYNONYM' ) {\n this.onError.emit( null );\n\n this.service.deleteTermSynonym( action.synonymId ).then( response => {\n this.problem.resolved = false;\n this.problem.action = null;\n } ).catch( e => {\n this.onError.emit( e.error );\n } );\n }\n else if ( action.name == 'OPTION' ) {\n this.onError.emit( null );\n\n this.service.removeTerm(this.problem.parentCode, action.term.code ).then( response => {\n this.problem.resolved = false;\n this.problem.action = null;\n } ).catch( e => {\n this.onError.emit( e.error );\n } );\n }\n }\n }\n}\n","
\n
\n
{{problem.attributeLabel}}
\n
{{problem.label}}
\n
\n
\n \n
\n
\n \n \n \n
\n
\n
\n
\n \n
\n
\n \n [{{problem.action.label}}]\n
\n
\n \n [{{problem.label}}]\n
\n
\n \n
\n
\n
\n
","import { Component, OnInit, AfterViewInit, ViewChild, ElementRef } from '@angular/core';\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { Router } from '@angular/router';\n\nimport { LocalizationService } from '@shared/service';\nimport { ErrorHandler, SuccessModalComponent, ConfirmModalComponent } from '@shared/component';\n\nimport { ImportConfiguration } from '@registry/model/io';\nimport { IOService } from '@registry/service';\n\n@Component( {\n selector: 'spreadsheet-modal',\n templateUrl: './spreadsheet-modal.component.html',\n styleUrls: []\n} )\nexport class SpreadsheetModalComponent implements OnInit {\n\n configuration: ImportConfiguration;\n message: string = null;\n state: string = 'MAP';\n\n constructor( private service: IOService, public bsModalRef: BsModalRef, private modalService: BsModalService,\n private localizeService: LocalizationService, private router: Router ) {\n }\n\n ngOnInit(): void {\n }\n\n onStateChange( event: string ): void {\n if ( event === 'BACK' ) {\n this.handleBack();\n }\n else if ( event === 'NEXT' ) {\n this.handleNext();\n }\n else if ( event === 'CANCEL' ) {\n this.handleCancel();\n }\n }\n\n handleBack(): void {\n if ( this.state === 'LOCATION' ) {\n this.state = 'MAP';\n }\n }\n\n handleNext(): void {\n if ( this.state === 'MAP' ) {\n if ( !this.configuration.postalCode ) {\n this.state = 'LOCATION';\n }\n else {\n this.handleSubmit();\n }\n }\n else if ( this.state === 'LOCATION' ) {\n this.handleSubmit();\n }\n else if ( this.state === 'LOCATION-PROBLEM' ) {\n\n if ( this.configuration.termProblems != null ) {\n this.state = 'TERM-PROBLEM';\n }\n else {\n this.handleSubmit();\n }\n }\n else if ( this.state === 'TERM-PROBLEM' ) {\n this.handleSubmit();\n }\n }\n\n handleSubmit(): void {\n this.service.importSpreadsheet( this.configuration ).then( config => {\n\n if ( config.locationProblems != null ) {\n this.state = 'LOCATION-PROBLEM';\n this.configuration = config;\n }\n else if ( config.termProblems != null ) {\n this.state = 'TERM-PROBLEM';\n this.configuration = config;\n }\n else {\n this.bsModalRef.hide()\n\n this.bsModalRef = this.modalService.show( ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true,\n } );\n this.bsModalRef.content.message = this.localizeService.decode( \"data.import.go.to.scheduled.jobs.confirm.message\" );\n this.bsModalRef.content.submitText = this.localizeService.decode( \"data.import.go.to.scheduled.jobs.button\" );\n\n ( this.bsModalRef.content ).onConfirm.subscribe( data => {\n this.router.navigate(['/registry/scheduled-jobs']);\n } );\n\n }\n } ).catch(( err: HttpErrorResponse) => {\n this.error( err );\n } );\n\n }\n\n handleCancel(): void {\n this.service.cancelImport( this.configuration ).then( response => {\n this.bsModalRef.hide()\n } ).catch(( err: HttpErrorResponse) => {\n this.error( err );\n } );\n }\n\n error( err: HttpErrorResponse ): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n
{{message}}
\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
","import { Component, OnInit } from \"@angular/core\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { ErrorHandler, ErrorModalComponent } from \"@shared/component\";\nimport { LocalizationService, AuthService } from \"@shared/service\";\n\ndeclare let acp: string;\n\n@Component({\n\n selector: \"data-page\",\n templateUrl: \"./data-page.component.html\",\n styleUrls: [\"./data-page.css\"]\n})\nexport class DataPageComponent implements OnInit {\n\n content: string = \"SPREADSHEET\";\n pageTitle: string;\n bsModalRef: BsModalRef;\n isAdmin: boolean;\n isMaintainer: boolean;\n isContributor: boolean;\n\n constructor(private localizationService: LocalizationService, private modalService: BsModalService, private service: AuthService) {\n this.isAdmin = service.isAdmin();\n this.isMaintainer = this.isAdmin || service.isMaintainer();\n this.isContributor = this.isAdmin || this.isMaintainer || service.isContributer();\n\n this.isMaintainer ? this.renderContent(\"SPREADSHEET\") : this.renderContent(\"EXPORT\");\n }\n\n ngOnInit(): void {\n }\n\n renderContent(content: string): void {\n this.content = content;\n\n if (content === \"SPREADSHEET\") {\n this.pageTitle = this.localizationService.decode(\"spreadsheet.title\");\n } else if (content === \"SHAPEFILE\") {\n this.pageTitle = this.localizationService.decode(\"shapefile.title\");\n } else if (content === \"EXPORT\") {\n this.pageTitle = this.localizationService.decode(\"io.export.title\");\n }\n }\n\n public error(err: HttpErrorResponse): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n}\n","
\n \n \n\n
\n\n \n\n
\n
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t

\n\t\t\t\t\t\t{{pageTitle}}\n\t\t\t\t\t

\n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t\t\t\n \n \n\t\t\t\t\t\n \n \n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n
\n
\n
\n
\n","import { Component, OnInit, Input, ViewChild, ViewChildren, ElementRef, QueryList, ChangeDetectorRef } from \"@angular/core\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\nimport { FileUploader, FileUploaderOptions } from \"ng2-file-upload\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { DateFieldComponent } from \"../../../shared/component/form-fields/date-field/date-field.component\";\n\nimport { ErrorHandler } from \"@shared/component\";\nimport { LocalizationService, AuthService, EventService, ExternalSystemService } from \"@shared/service\";\nimport { HierarchyService, IOService } from \"@registry/service\";\nimport { ExternalSystem } from \"@shared/model/core\";\n\nimport { SpreadsheetModalComponent } from \"./modals/spreadsheet-modal.component\";\nimport { ShapefileModalComponent } from \"./modals/shapefile-modal.component\";\nimport { ImportStrategy } from \"@registry/model/constants\";\nimport { HierarchyGroupedTypeView, TypeGroupedHierachyView } from \"@registry/model/hierarchy\";\n\ndeclare let acp: string;\n\n@Component({\n\n selector: \"dataimporter\",\n templateUrl: \"./dataimporter.component.html\",\n styleUrls: [\"./dataimporter.css\"]\n})\nexport class DataImporterComponent implements OnInit {\n\n @ViewChildren(\"dateFieldComponents\") dateFieldComponentsArray:QueryList;\n\n currentDate : Date = new Date();\n\n showImportConfig: boolean = false;\n\n isValid: boolean = false;\n\n /*\n * GeoObjectTypes grouped by hierarchy\n */\n allHierarchyViews: HierarchyGroupedTypeView[];\n\n filteredHierarchyViews: any[];\n\n /*\n * Hierarchies grouped by GeoObjectType\n */\n allTypeViews: TypeGroupedHierachyView[];\n\n filteredTypeViews: any[];\n\n importStrategy: ImportStrategy;\n importStrategies: any[] = [\n { strategy: ImportStrategy.NEW_AND_UPDATE, label: this.localizationService.decode(\"etl.import.ImportStrategy.NEW_AND_UPDATE\") },\n { strategy: ImportStrategy.NEW_ONLY, label: this.localizationService.decode(\"etl.import.ImportStrategy.NEW_ONLY\") },\n { strategy: ImportStrategy.UPDATE_ONLY, label: this.localizationService.decode(\"etl.import.ImportStrategy.UPDATE_ONLY\") }\n ]\n\n /*\n * Code of the currently selected GeoObjectType\n */\n typeCode: string = null;\n\n /*\n * Code of the currently selected Hierarchy\n */\n hierarchyCode: string = null;\n\n /*\n * Start date\n */\n startDate: Date = null;\n\n /*\n * End date\n */\n endDate: Date | string = null;\n\n /*\n * Reference to the modal current showing\n */\n bsModalRef: BsModalRef;\n\n /*\n * File uploader\n */\n uploader: FileUploader;\n\n @ViewChild(\"myFile\")\n fileRef: ElementRef;\n\n @Input()\n format: string; // Can be SHAPEFILE or EXCEL\n\n isExternal: boolean = false;\n\n /*\n * List of available external systems (filtered based on user's org)\n */\n externalSystems: ExternalSystem[];\n\n /*\n * currently selected external system.\n */\n externalSystemId: string;\n\n isLoading: boolean = true;\n\n copyBlank: boolean = true;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: IOService,\n private eventService: EventService,\n private modalService: BsModalService,\n private localizationService: LocalizationService,\n private authService: AuthService,\n private sysService: ExternalSystemService,\n private hierarchyService: HierarchyService,\n private changeDetectorRef: ChangeDetectorRef\n ) { }\n\n ngOnInit(): void {\n this.sysService.getExternalSystems(1, 100).then(paginatedSystems => {\n this.externalSystems = paginatedSystems.resultSet;\n\n if (this.externalSystems.length === 0) {\n this.isExternal = false;\n this.showImportConfig = true; // Show the upload widget if there are no external systems registered\n }\n\n this.isLoading = false;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n\n this.hierarchyService.getHierarchyGroupedTypes().then(views => {\n this.allHierarchyViews = views;\n this.allTypeViews = [];\n\n // Make sure we are using the same object references for all types\n let len0 = this.allHierarchyViews.length;\n for (let i = 0; i < len0; ++i) {\n let view = this.allHierarchyViews[i];\n\n let len2 = view.types.length;\n for (let j = 0; j < len2; ++j) {\n let type = view.types[j];\n\n let len9 = this.allHierarchyViews.length;\n for (let j = 0; j < len9; ++j) {\n let view2 = this.allHierarchyViews[j];\n\n let indexOf = view2.types.findIndex(findType => type.code === findType.code);\n\n if (indexOf !== -1) {\n view2.types[indexOf] = type;\n }\n }\n }\n }\n\n // Generate a TypeGroupedHierarchy lookup structure from the HierarchyGroupedType structure\n let len = this.allHierarchyViews.length;\n for (let i = 0; i < len; ++i) {\n let view = this.allHierarchyViews[i];\n\n let len2 = view.types.length;\n for (let j = 0; j < len2; ++j) {\n let type = view.types[j];\n\n let indexOf = this.allTypeViews.findIndex(findType => findType.code === type.code);\n\n if (indexOf !== -1) {\n let findType = this.allTypeViews[indexOf];\n\n let existingHierarchyIndex = findType.hierarchies.findIndex(findHier => findHier.code === view.code);\n\n if (existingHierarchyIndex === -1) {\n findType.hierarchies.push(view);\n }\n } else {\n if (type.hierarchies == null) {\n type.hierarchies = [];\n }\n type.hierarchies.push(view);\n this.allTypeViews.push(type);\n }\n }\n }\n\n this.filteredHierarchyViews = this.allHierarchyViews;\n this.filteredTypeViews = this.allTypeViews;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n\n let getUrl = acp + \"/excel/get-configuration\";\n if (this.format === \"SHAPEFILE\") {\n getUrl = acp + \"/shapefile/get-shapefile-configuration\";\n\n // this.showImportConfig = true; // show the upload widget if shapefile because external system from shapefile isn't supported\n }\n\n let options: FileUploaderOptions = {\n queueLimit: 1,\n removeAfterUpload: true,\n url: getUrl\n };\n\n this.uploader = new FileUploader(options);\n\n this.uploader.onBuildItemForm = (fileItem: any, form: any) => {\n form.append(\"type\", this.typeCode);\n form.append(\"copyBlank\", this.copyBlank);\n\n if (this.startDate != null) {\n form.append(\"startDate\", this.startDate);\n }\n if (this.endDate != null) {\n form.append(\"endDate\", this.endDate);\n }\n if (this.importStrategy) {\n form.append(\"strategy\", this.importStrategy);\n }\n };\n this.uploader.onBeforeUploadItem = (fileItem: any) => {\n this.eventService.start();\n };\n this.uploader.onCompleteItem = (item: any, response: any, status: any, headers: any) => {\n this.fileRef.nativeElement.value = \"\";\n this.eventService.complete();\n };\n this.uploader.onSuccessItem = (item: any, response: string, status: number, headers: any) => {\n const configuration = JSON.parse(response);\n\n configuration.isExternal = this.isExternal;\n configuration.hierarchy = this.hierarchyCode;\n\n let externalSystem: ExternalSystem = null;\n for (let i = 0; i < this.externalSystems.length; ++i) {\n let sys: ExternalSystem = this.externalSystems[i];\n\n if (sys.oid === this.externalSystemId) {\n externalSystem = sys;\n }\n }\n\n configuration.externalSystemId = this.externalSystemId;\n configuration.externalSystem = externalSystem;\n\n if (this.format === \"SHAPEFILE\") {\n this.bsModalRef = this.modalService.show(ShapefileModalComponent, { backdrop: true, ignoreBackdropClick: true });\n } else {\n this.bsModalRef = this.modalService.show(SpreadsheetModalComponent, { backdrop: true, ignoreBackdropClick: true });\n }\n\n this.bsModalRef.content.configuration = configuration;\n };\n this.uploader.onErrorItem = (item: any, response: string, status: number, headers: any) => {\n const error = JSON.parse(response);\n\n this.error({ error: error });\n };\n }\n\n onSelectHierarchy(): void {\n let view: HierarchyGroupedTypeView = null;\n\n let len = this.allHierarchyViews.length;\n for (let i = 0; i < len; ++i) {\n if (this.allHierarchyViews[i].code === this.hierarchyCode) {\n view = this.allHierarchyViews[i];\n break;\n }\n }\n\n if (view != null) {\n this.filteredTypeViews = view.types;\n } else {\n this.filteredTypeViews = this.allTypeViews;\n }\n }\n\n onSelectType(): void {\n let view: TypeGroupedHierachyView = null;\n\n let len = this.allTypeViews.length;\n for (let i = 0; i < len; ++i) {\n if (this.allTypeViews[i].code === this.typeCode) {\n view = this.allTypeViews[i];\n break;\n }\n }\n\n if (view != null) {\n this.filteredHierarchyViews = view.hierarchies;\n } else {\n this.filteredHierarchyViews = this.allHierarchyViews;\n }\n\n this.checkDates();\n }\n\n onClick(): void {\n if (this.uploader.queue != null && this.uploader.queue.length > 0) {\n this.uploader.uploadAll();\n } else {\n this.error({\n message: this.localizationService.decode(\"io.missing.file\"),\n error: {}\n });\n }\n }\n\n setImportSource(event, type): void {\n if (type === \"EXTERNAL\") {\n this.isExternal = true;\n } else {\n this.isExternal = false;\n }\n }\n\n onNext(): void {\n this.showImportConfig = true;\n }\n\n onBack(): void {\n this.showImportConfig = false;\n }\n\n// setInfinity(endDate: any): void {\n//\n// if(endDate === PRESENT){\n// this.endDate = null;\n// }\n// else{\n// this.endDate = PRESENT;\n// }\n// }\n\n checkDates(): any {\n setTimeout(() => {\n this.isValid = this.checkDateFieldValidity();\n }, 0);\n }\n\n checkDateFieldValidity(): boolean {\n let dateFields = this.dateFieldComponentsArray.toArray();\n\n let startDateField: DateFieldComponent;\n for (let i = 0; i < dateFields.length; i++) {\n let field = dateFields[i];\n\n if (field.inputName === \"startDate\") {\n // set startDateField so we can use it in the next check\n startDateField = field;\n }\n\n if (!field.valid) {\n return false;\n }\n }\n\n if (this.startDate > this.endDate) {\n startDateField.setInvalid(this.localizationService.decode(\"date.input.startdate.after.enddate.error.message\"));\n\n this.changeDetectorRef.detectChanges();\n }\n\n return true;\n }\n\n public error(err: any): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n}\n","\n
0\">\n
\n
\n\n
\n
\n\n \n \n \n\n
\n \n
\n
\n
\n\t
\n
\n
\n\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n \n
\n \n
\n \n
\n
\n
\n \n
\n \n
\n \n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n\n
\n
\n
\n\n\n\n \n
\n
\n
\n
\n
\n
\n","import { Component, OnInit } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { MasterListByOrg } from \"@registry/model/registry\";\nimport { RegistryService } from \"@registry/service\";\nimport { PublishModalComponent } from \"./publish-modal.component\";\n\nimport { ErrorHandler, ConfirmModalComponent } from \"@shared/component\";\nimport { LocalizationService } from \"@shared/service\";\n\n@Component({\n selector: \"master-list-manager\",\n templateUrl: \"./master-list-manager.component.html\",\n styleUrls: [\"./master-list-manager.css\"]\n})\nexport class MasterListManagerComponent implements OnInit {\n\n message: string = null;\n orgs: MasterListByOrg[];\n\n /*\n * Reference to the modal current showing\n */\n bsModalRef: BsModalRef;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public service: RegistryService, private modalService: BsModalService, private router: Router, private localizeService: LocalizationService) { }\n\n ngOnInit(): void {\n this.service.getMasterListsByOrg().then(response => {\n this.orgs = response.orgs;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onCreate(org: MasterListByOrg): void {\n this.bsModalRef = this.modalService.show(PublishModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n this.bsModalRef.content.init(org);\n this.bsModalRef.content.isNew = true;\n this.bsModalRef.content.onMasterListChange.subscribe((list: any) => {\n const obj = {\n label: list.displayLabel.localizedValue,\n oid: list.oid,\n createDate: list.createDate,\n lastUpdateDate: list.lastUpdateDate,\n isMaster: list.isMaster,\n write: list.write,\n read: list.read,\n visibility: list.visibility\n };\n\n org.lists.push(obj);\n });\n }\n\n onView(code: string): void {\n this.router.navigate([\"/registry/master-list-view/\", code])\n }\n\n onEdit(pair: { label: string, oid: string, visibility: string }): void {\n this.service.getMasterList(pair.oid).then(list => {\n this.bsModalRef = this.modalService.show(PublishModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n this.bsModalRef.content.edit = true;\n this.bsModalRef.content.readonly = !list.write;\n this.bsModalRef.content.master = list;\n this.bsModalRef.content.originalPublishStartDate = list.publishingStartDate;\n this.bsModalRef.content.isNew = false;\n\n this.bsModalRef.content.onMasterListChange.subscribe(ret => {\n pair.label = ret.displayLabel.localizedValue;\n pair.visibility = ret.visibility;\n });\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onDelete(org: MasterListByOrg, list: { label: string, oid: string }): void {\n this.bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n this.bsModalRef.content.message = this.localizeService.decode(\"confirm.modal.verify.delete\") + \" [\" + list.label + \"]\";\n this.bsModalRef.content.submitText = this.localizeService.decode(\"modal.button.delete\");\n this.bsModalRef.content.type = \"danger\";\n\n this.bsModalRef.content.onConfirm.subscribe(data => {\n this.service.deleteMasterList(list.oid).then(response => {\n org.lists = org.lists.filter((value, index, arr) => {\n return value.oid !== list.oid;\n });\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n });\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n \n \n\n\n
\n\n
\n

\n \n

\n
\n\n
{{message}}
\n\n
\n
\n
\n
\n
\n

{{org.label}}

\n
\n
\n
\n\n
\n
\n
\n

\n
\n
\n
\n\n \n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
","import { Component } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Subject } from \"rxjs\";\n\n\n@Component({\n selector: \"export-format-modal\",\n templateUrl: \"./export-format-modal.component.html\",\n styleUrls: []\n})\nexport class ExportFormatModalComponent {\n\n format: string;\n\n /*\n * Called on confirm\n */\n public onFormat: Subject;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef) { }\n\n ngOnInit(): void {\n this.onFormat = new Subject();\n }\n\n confirm(): void {\n this.bsModalRef.hide();\n this.onFormat.next(this.format);\n }\n}\n","
\n
\n

\n \n

\n
\n\n
\n
\n
\n
\n \n\n \n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n","import { Component, ViewEncapsulation, ViewChild, ElementRef, Input } from \"@angular/core\";\nimport { Router, ActivatedRoute } from \"@angular/router\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { Location } from \"@angular/common\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\nimport {\n trigger,\n style,\n animate,\n transition\n} from \"@angular/animations\";\n\nimport { FileUploader, FileUploaderOptions } from \"ng2-file-upload\";\n\nimport { AbstractAction, ChangeRequest, CreateGeoObjectAction, UpdateAttributeAction } from \"@registry/model/crtable\";\nimport { ActionTypes } from \"@registry/model/constants\";\nimport { GeoObjectOverTime } from \"@registry/model/registry\";\n\nimport { ChangeRequestService, GeometryService } from \"@registry/service\";\nimport { LocalizationService, AuthService, EventService } from \"@shared/service\";\nimport { DateService } from \"@shared/service/date.service\";\n\nimport { ErrorHandler, ConfirmModalComponent } from \"@shared/component\";\n\ndeclare var acp: string;\n\n@Component({\n\n selector: \"request-table\",\n templateUrl: \"./request-table.component.html\",\n styleUrls: [\"./request-table.css\"],\n encapsulation: ViewEncapsulation.None,\n animations: [\n [\n trigger(\"fadeInOut\", [\n transition(\":enter\", [\n style({\n opacity: 0\n }),\n animate(\"300ms\")\n ]),\n transition(\":leave\",\n animate(\"100ms\",\n style({\n opacity: 0\n })\n )\n )\n ]),\n trigger(\"fadeIn\", [\n transition(\":enter\", [\n style({\n opacity: 0\n }),\n animate(\"500ms\")\n ])\n ])\n ]\n ]\n})\nexport class RequestTableComponent {\n\n today: Date = new Date();\n todayString: string = this.dateService.getDateString(new Date());\n\n objectKeys = Object.keys;\n\n bsModalRef: BsModalRef;\n\n page: any = {\n count: 0,\n pageNumber: 1,\n pageSize: 10,\n resultSet: []\n };\n\n requests: ChangeRequest[] = [];\n\n actions: AbstractAction[];\n\n columns: any[] = [];\n\n @Input() toggleId: string;\n\n uploadRequest: ChangeRequest;\n\n filterCriteria: string = \"ALL\";\n\n sort: any[] = [{ attribute: \"createDate\", ascending: false }];\n\n hasBaseDropZoneOver: boolean = false;\n\n // Restrict page to the specified oid\n oid: string = null;\n\n /*\n * File uploader\n */\n uploader: FileUploader;\n\n @ViewChild(\"myFile\")\n fileRef: ElementRef;\n\n isValid: boolean = true;\n\n isEditing: boolean = false;\n\n constructor(private service: ChangeRequestService, private geomService: GeometryService, private modalService: BsModalService, private authService: AuthService, private localizationService: LocalizationService,\n private eventService: EventService, private route: ActivatedRoute, private router: Router, private dateService: DateService, private location: Location) {\n this.columns = [\n { name: localizationService.decode(\"change.request.user\"), prop: \"createdBy\", sortable: false },\n { name: localizationService.decode(\"change.request.createDate\"), prop: \"createDate\", sortable: false, width: 195 },\n { name: localizationService.decode(\"change.request.status\"), prop: \"approvalStatus\", sortable: false }\n ];\n }\n\n ngOnInit(): void {\n this.oid = this.route.snapshot.paramMap.get(\"oid\");\n\n this.route.paramMap.subscribe(params => {\n this.oid = params.get(\"oid\");\n this.refresh();\n });\n\n if (this.oid != null) {\n this.toggleId = this.oid;\n }\n\n let getUrl = acp + \"/changerequest/upload-file-cr\";\n\n let options: FileUploaderOptions = {\n queueLimit: 1,\n removeAfterUpload: true,\n url: getUrl\n };\n\n this.uploader = new FileUploader(options);\n\n this.uploader.onBuildItemForm = (fileItem: any, form: any) => {\n form.append(\"crOid\", this.uploadRequest.oid);\n };\n this.uploader.onBeforeUploadItem = (fileItem: any) => {\n this.eventService.start();\n };\n this.uploader.onCompleteItem = (item: any, response: any, status: any, headers: any) => {\n this.fileRef.nativeElement.value = \"\";\n this.eventService.complete();\n };\n this.uploader.onSuccessItem = (item: any, response: any, status: number, headers: any) => {\n const doc = JSON.parse(response);\n\n const index = this.requests.findIndex(request => request.oid === doc.requestId);\n\n if (index !== -1) {\n this.requests[index].documents.push(doc);\n }\n };\n this.uploader.onErrorItem = (item: any, response: string, status: number, headers: any) => {\n const error = JSON.parse(response);\n\n this.error({ error: error });\n };\n\n this.refresh();\n }\n\n isSorting(attribute: string) {\n return this.sort.length > 0 && this.sort[0].attribute === attribute;\n }\n\n isAscending(attribute: string) {\n return this.sort.length > 0 && this.sort[0].ascending;\n }\n\n onSort(attribute: string) {\n let index = this.sort.findIndex(item => item.attribute === attribute);\n\n if (index !== -1) {\n let item = this.sort[index];\n\n item.ascending = !item.ascending;\n } else {\n this.sort = [{\n attribute: attribute,\n ascending: true\n }];\n }\n\n this.refresh();\n }\n\n getGOTLabel(action: any): string {\n if (action.geoObjectJson && action.geoObjectJson.attributes && action.geoObjectJson.attributes.displayLabel && action.geoObjectJson.attributes.displayLabel.values &&\n action.geoObjectJson.attributes.displayLabel.values[0] && action.geoObjectJson.attributes.displayLabel.values[0].value && action.geoObjectJson.attributes.displayLabel.values[0].value.localeValues &&\n action.geoObjectJson.attributes.displayLabel.values[0].value.localeValues[0] && action.geoObjectJson.attributes.displayLabel.values[0].value.localeValues[0].value) {\n return action.geoObjectJson.attributes.displayLabel.values[0].value.localeValues[0].value;\n } else if (action.geoObjectJson && action.geoObjectJson.attributes && action.geoObjectJson.attributes.code) {\n return action.geoObjectJson.attributes.code;\n } else {\n return this.localizationService.decode(\"geoObject.label\");\n }\n }\n\n setValid(valid: boolean): void {\n this.isValid = valid;\n }\n\n onUpload(request: ChangeRequest): void {\n this.uploadRequest = request;\n\n if (this.uploader.queue != null && this.uploader.queue.length > 0) {\n this.uploader.uploadAll();\n } else {\n this.error({\n message: this.localizationService.decode(\"io.missing.file\"),\n error: {}\n });\n }\n }\n\n onDownloadFile(request: ChangeRequest, fileOid: string): void {\n window.location.href = acp + \"/changerequest/download-file-cr?crOid=\" + request.oid + \"&\" + \"vfOid=\" + fileOid;\n }\n\n onDeleteFile(request: ChangeRequest, fileOid: string): void {\n this.service.deleteFile(request.oid, fileOid).then(() => {\n const index = request.documents.findIndex(doc => doc.oid === fileOid);\n\n if (index !== -1) {\n request.documents.splice(index, 1);\n }\n }).catch((response: HttpErrorResponse) => {\n this.error(response);\n });\n }\n\n public fileOverBase(e: any): void {\n this.hasBaseDropZoneOver = e;\n }\n\n pageChange(pageNumber: number = 1): void {\n this.oid = null;\n this.refresh(pageNumber);\n }\n\n refresh(pageNumber: number = 1): void {\n this.geomService.destroy();\n\n this.service.getAllRequests(this.page.pageSize, pageNumber, this.filterCriteria, this.sort, this.oid).then(requests => {\n this.page = requests;\n this.requests = requests.resultSet;\n\n // Copying the Geo-Object to add consistency for template processing\n this.requests.forEach((req) => {\n if (!req.current.geoObject) {\n for (let i = 0; i < req.actions.length; i++) {\n if (req.actions[0].actionType === ActionTypes.CREATEGEOOBJECTACTION) {\n // This is the state of the Geo-Object as the Registry Contributor configured it.\n req.current.geoObject = JSON.parse(JSON.stringify((req.actions[0] as CreateGeoObjectAction).geoObjectJson));\n }\n }\n }\n });\n }).catch((response: HttpErrorResponse) => {\n this.error(response);\n });\n }\n\n onSelect(selected: any): void {\n // this.request = selected.selected;\n\n this.geomService.destroy();\n\n this.service.getAllRequests(this.page.pageSize, 1, \"ALL\", this.sort, this.oid).then(requests => {\n this.requests = requests.resultSet;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onExecute(changeRequest: ChangeRequest): void {\n if (changeRequest != null) {\n this.service.implementDecisions(changeRequest).then(request => {\n changeRequest = request;\n\n // TODO: Determine if there is a way to update an individual record\n this.refresh();\n\n const bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n\n bsModalRef.content.submitText = this.localizationService.decode(\"change.requests.more.geoobject.updates.submit.btn\");\n bsModalRef.content.cancelText = this.localizationService.decode(\"change.requests.more.geoobject.updates.cancel.btn\");\n bsModalRef.content.message = this.localizationService.decode(\"change.requests.more.geoobject.updates.message\");\n\n bsModalRef.content.onConfirm.subscribe(() => {\n const object = this.getFirstGeoObjectInActions(request);\n\n if (object != null) {\n this.router.navigate([\"/registry/location-manager\", object.attributes.uid, object.geoObjectType.code, this.todayString, true]);\n } else {\n let object = request.current.geoObject;\n let type = request.current.geoObjectType;\n\n if (object != null && type != null) {\n this.router.navigate([\"/registry/location-manager\", object.attributes.uid, type.code, this.todayString, true]);\n }\n }\n });\n }).catch((response: HttpErrorResponse) => {\n this.error(response);\n });\n }\n }\n\n onReject(cr: ChangeRequest): void {\n this.service.rejectChangeRequest(cr).then(() => {\n // TODO: Determine if there is a way to update an individual record\n // TODO : cr.statusLabel needs to be updated...\n /*\n cr.approvalStatus = \"REJECTED\";\n\n let len = this.actions.length;\n for (let i = 0; i < len; ++i) {\n let action: AbstractAction = this.actions[i];\n\n action.approvalStatus = \"REJECTED\";\n }\n */\n\n this.refresh();\n }).catch((response: HttpErrorResponse) => {\n this.error(response);\n });\n }\n\n getFirstGeoObjectInActions(request: ChangeRequest): GeoObjectOverTime {\n for (let i = 0; i < request.actions.length; i++) {\n let action = request.actions[i];\n\n // eslint-disable-next-line no-prototype-builtins\n if (action.hasOwnProperty(\"geoObjectJson\")) {\n return action[\"geoObjectJson\"];\n }\n }\n\n return null;\n }\n\n onDelete(changeRequest: ChangeRequest): void {\n if (changeRequest != null) {\n const bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n\n bsModalRef.content.type = \"danger\";\n bsModalRef.content.submitText = this.localizationService.decode(\"change.request.delete.request.confirm.btn\");\n bsModalRef.content.message = this.localizationService.decode(\"change.request.delete.request.message\");\n\n bsModalRef.content.onConfirm.subscribe(data => {\n this.service.delete(changeRequest.oid).then(deletedRequestId => {\n let pos = -1;\n for (let i = 0; i < this.requests.length; i++) {\n let req = this.requests[i];\n if (req.oid === deletedRequestId) {\n pos = i;\n break;\n }\n }\n\n if (pos > -1) {\n this.requests.splice(pos, 1);\n }\n\n this.refresh();\n }).catch((response: HttpErrorResponse) => {\n this.error(response);\n });\n });\n }\n }\n\n onUpdate(changeRequest: ChangeRequest): void {\n if (changeRequest != null) {\n this.service.update(changeRequest).then(request => {\n this.refresh();\n\n this.isEditing = false;\n }).catch((response: HttpErrorResponse) => {\n this.error(response);\n });\n }\n }\n\n applyActionStatusProperties(action: any): void {\n // var action = JSON.parse(JSON.stringify(this.action));\n // action.geoObjectJson = this.attributeEditor.getGeoObject();\n\n this.service.setActionStatus(action.oid, action.approvalStatus).then(response => {\n action.decisionMaker = (action.approvalStatus !== \"PENDING\") ? this.authService.getUsername() : \"\";\n\n // this.crtable.refresh()\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n public error(err: any): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n requestTrackBy(index: number, request: ChangeRequest) {\n return request.oid;\n }\n\n toggle(event: any, oid: string): void {\n this.location.replaceState(\"/registry/change-requests/\" + oid);\n\n if (!event.target.parentElement.className.includes(\"btn\") && !event.target.className.includes(\"btn\")) {\n if (this.toggleId === oid) {\n this.toggleId = null;\n } else {\n this.toggleId = oid;\n // this.onSelect({ selected: [{ oid: oid }] });\n this.requests.forEach(req => {\n if (req.oid === oid) {\n this.actions = req.actions;\n }\n });\n }\n }\n }\n\n filter(criteria: string): void {\n this.filterCriteria = criteria;\n\n this.refresh(1);\n }\n\n setActionStatus(action: CreateGeoObjectAction | UpdateAttributeAction, status: string): void {\n const bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n\n bsModalRef.content.onConfirm.subscribe(data => {\n action.approvalStatus = status;\n\n this.applyActionStatusProperties(action);\n });\n }\n\n getActiveDetailComponent(action: CreateGeoObjectAction | UpdateAttributeAction): any {\n // TODO: I know this scales poorly to lots of different action types but I'm not sure how to do it better\n if (action.actionType.endsWith(\"CreateGeoObjectAction\") || action.actionType.endsWith(\"UpdateGeoObjectAction\")) {\n // return this.cuDetail;\n }\n // if (this.arDetail != null && (this.action.actionType.endsWith('AddChildAction') || this.action.actionType.endsWith('RemoveChildAction')))\n // {\n // return this.arDetail;\n // }\n\n return action;\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n getUsername(): string {\n return this.authService.getUsername();\n }\n\n isRequestTooOld(request: ChangeRequest): boolean {\n if (request.actions && request.actions.length > 0) {\n let firstAction = request.actions[0];\n\n if (firstAction.actionType === ActionTypes.UPDATEGEOOBJECTACTION) {\n return true;\n } else if (firstAction.actionType === ActionTypes.CREATEGEOOBJECTACTION && !(firstAction as CreateGeoObjectAction).geoObjectJson.attributes[\"exists\"]) {\n return true;\n } else {\n return false;\n }\n } else {\n return true;\n }\n }\n\n onEditAttributes(): void {\n this.isEditing = !this.isEditing;\n }\n\n canEdit(request: ChangeRequest) : boolean {\n return (request.permissions.includes(\"WRITE_DETAILS\") && this.isEditing);\n }\n\n}\n","
\n
\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n
\n
\n\n
\n
\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
{{req.createdBy}}
\n
\n
{{req.geoObjectType.label}}
\n
\n
{{req.geoObject.label}}
\n
\n \n {{formatDate(req.createDate)}}\n \n \n
\n {{req.statusLabel}}\n
\n
\n
{{req.oid}}
\n
\n \n
\n
\n \n
\n

{{req.geoObject.label}}

\n

{{req.geoObject.code}}

\n \n

\n

\n
\n
\n \n
\n \n
\n \n
\n \n
\n
\n \n
\n \n
\n \n \n
\n \n
\n

 {{req.createdBy}}

\n

 {{req.email}}

\n

 {{req.phoneNumber}}

\n
\n \n
\n\t
\n\t
\n\t
\n\t \n\t \n\t \n\t \n\t
\n\t
\n\t \n\t
\n\t
\n\t
\n\t \n\t \n\t
\n\t \n\t
\n\t \n\t \n\t
\n\t
\n\t \n\t
\n\t
\n\t \n\t
0\" style=\"border:1px solid #ccc;border-radius: 4px;\">\n\t \n\t
\n\t

\n\t \n\t

\n\t \n\t
\n\t \n\t \n\t \n\t \n\t
\n\t
\n\t \n\t
\n\t
\n\t
\n\t \n\t \n\t
\n\t \n\t \n\t \n\t \n\n \n \n \n \n \n \n \n\t
\n
\n
\n \n
\n \n
\n
\n\t
0\" class=\"solid-table-footer\">\n \n\t
\n
\n
\n
\n","import { ActionTypes, ChangeType } from \"@registry/model/constants\";\nimport { AbstractAction, ChangeRequest, CreateGeoObjectAction, UpdateAttributeOverTimeAction, ValueOverTimeDiff } from \"@registry/model/crtable\";\nimport { AttributeType, GeoObjectType, HierarchyOverTime, HierarchyOverTimeEntry, ValueOverTime } from \"@registry/model/registry\";\nimport { ChangeRequestEditor } from \"./change-request-editor\";\nimport { ValueOverTimeCREditor } from \"./ValueOverTimeCREditor\";\nimport { HierarchyCREditor } from \"./HierarchyCREditor\";\nimport { v4 as uuid } from \"uuid\";\nimport { GeometryService } from \"@registry/service\";\nimport { Subject } from \"rxjs\";\n\nexport class ChangeRequestChangeOverTimeAttributeEditor {\n\n changeRequestEditor: ChangeRequestEditor;\n\n attribute: AttributeType;\n\n editAction: AbstractAction;\n\n hierarchy: HierarchyOverTime;\n\n editors: ValueOverTimeCREditor[];\n\n private _isValid: boolean;\n\n onChangeSubject: Subject = new Subject();\n\n constructor(changeRequestEditor: ChangeRequestEditor, attribute: AttributeType, hierarchy: HierarchyOverTime) {\n this.changeRequestEditor = changeRequestEditor;\n this.attribute = attribute;\n this.hierarchy = hierarchy;\n\n this.getEditAction();\n\n if (hierarchy != null) {\n for (let j = 0; j < this.hierarchy.entries.length; j++) {\n let hierarchyEntry = this.hierarchy.entries[j];\n\n if (hierarchyEntry.parents == null) {\n hierarchyEntry.parents = {};\n }\n if (hierarchyEntry.loading == null) {\n hierarchyEntry.loading = {};\n }\n\n for (let i = 0; i < this.hierarchy.types.length; i++) {\n let current = this.hierarchy.types[i];\n\n if (hierarchyEntry.parents[current.code] == null) {\n hierarchyEntry.parents[current.code] = { text: \"\", geoObject: null };\n }\n }\n }\n }\n\n this.editors = this.generateEditors();\n }\n\n getEditAction() {\n if (this.editAction == null) {\n let actions = ChangeRequest.getActionsForAttribute(this.changeRequestEditor.changeRequest, this.attribute.code, this.hierarchy == null ? null : this.hierarchy.code);\n\n if (actions.length === 0) {\n this.editAction = new UpdateAttributeOverTimeAction(this.attribute.code);\n\n if (this.attribute.code === \"_PARENT_\") {\n (this.editAction as UpdateAttributeOverTimeAction).attributeDiff.hierarchyCode = this.hierarchy.code;\n }\n } else {\n this.editAction = actions[actions.length - 1];\n }\n }\n\n return this.editAction;\n }\n\n onChange(type: ChangeType) {\n // If our attribute action has changes it needs to be added to the ChangeRequest actions. Otherwise we can remove it.\n let hasChanges: boolean = this.hasChanges();\n\n let index = this.changeRequestEditor.changeRequest.actions.findIndex(action => this.editAction === action);\n\n if (index !== -1 && !hasChanges) {\n this.changeRequestEditor.changeRequest.actions.splice(index, 1);\n } else if (index === -1 && hasChanges) {\n this.changeRequestEditor.changeRequest.actions.push(this.editAction);\n }\n\n this.validate();\n\n this.onChangeSubject.next(type);\n this.changeRequestEditor.onChange(type);\n }\n\n hasChanges(): boolean {\n let hasChanges: boolean = true;\n\n if (this.editAction.actionType === ActionTypes.UPDATEATTRIBUTETACTION) {\n let updateAction: UpdateAttributeOverTimeAction = this.editAction as UpdateAttributeOverTimeAction;\n\n if (updateAction.attributeDiff.valuesOverTime.length === 0) {\n hasChanges = false;\n }\n }\n\n return hasChanges;\n }\n\n public isValid(): boolean {\n return this._isValid;\n }\n\n validate(skipExists: boolean = false): boolean {\n let validEditors = this.validateEditors();\n let hasTimeConflict = this.changeRequestEditor.dateService.checkRanges(this.attribute, this.editors);\n\n let hasExistConflict = false;\n if (this.attribute.code !== \"exists\") {\n let existsAttribute: AttributeType = GeoObjectType.getAttribute(this.changeRequestEditor.geoObjectType, \"exists\");\n let existEditors = (this.changeRequestEditor.getEditorForAttribute(existsAttribute) as ChangeRequestChangeOverTimeAttributeEditor).getEditors();\n hasExistConflict = this.changeRequestEditor.dateService.checkExistRanges(this.editors, existEditors);\n } else if (!skipExists) {\n this.changeRequestEditor.validate(true); // If the exists attribute has changed we must revalidate all other attributes\n }\n\n this._isValid = validEditors && !hasTimeConflict && !hasExistConflict;\n\n return this._isValid;\n }\n\n private validateEditors(): boolean {\n let valid: boolean = true;\n\n this.editors.forEach(editor => {\n if (!editor.validate()) {\n valid = false;\n }\n });\n\n return valid;\n }\n\n findExistingValueOverTimeByOid(oid: string, attributeCode: string) {\n if (this.changeRequestEditor.geoObject.attributes[attributeCode]) {\n let index = this.changeRequestEditor.geoObject.attributes[attributeCode].values.findIndex((vot: ValueOverTime) => vot.oid === oid);\n\n if (index !== -1) {\n return this.changeRequestEditor.geoObject.attributes[attributeCode].values[index];\n }\n }\n\n return null;\n }\n\n public getEditors(includeUnmodified: boolean = true): ValueOverTimeCREditor[] {\n return this.editors.filter(editor => includeUnmodified || editor.diff != null);\n }\n\n generateEditors(): ValueOverTimeCREditor[] {\n let actions = ChangeRequest.getActionsForAttribute(this.changeRequestEditor.changeRequest, this.attribute.code, this.hierarchy == null ? null : this.hierarchy.code);\n\n let editors: ValueOverTimeCREditor[] = [];\n\n // First, we have to create a view for every ValueOverTime object. This is done to simply display what's currently\n // on the GeoObject\n if (this.attribute.code === \"_PARENT_\") {\n this.hierarchy.entries.forEach((entry: HierarchyOverTimeEntry) => {\n let editor = new HierarchyCREditor(this, this.attribute, this.editAction, entry, this.hierarchy);\n\n editors.push(editor);\n });\n } else {\n if (this.changeRequestEditor.geoObject.attributes[this.attribute.code]) {\n this.changeRequestEditor.geoObject.attributes[this.attribute.code].values.forEach((vot: ValueOverTime) => {\n let editor = new ValueOverTimeCREditor(this, this.attribute, this.editAction);\n\n editor.valueOverTime = vot;\n\n editors.push(editor);\n });\n }\n }\n\n // Next, we must apply all changes which may exist in the actions.\n if (this.changeRequestEditor.changeRequest.type === \"UpdateGeoObject\") {\n let len = actions.length;\n for (let i = 0; i < len; ++i) {\n let updateAttrAction: UpdateAttributeOverTimeAction = actions[i] as UpdateAttributeOverTimeAction;\n\n updateAttrAction.attributeDiff.valuesOverTime.forEach((votDiff: ValueOverTimeDiff) => {\n let index = editors.findIndex(editor => editor.oid === votDiff.oid);\n let editor = (index === -1) ? null : editors[index];\n\n if (editor == null) {\n if (this.attribute.code === \"_PARENT_\") {\n editor = new HierarchyCREditor(this, this.attribute, this.editAction, null, this.hierarchy);\n } else {\n editor = new ValueOverTimeCREditor(this, this.attribute, this.editAction);\n }\n\n editor.diff = votDiff;\n\n editors.push(editor);\n } else {\n editor.diff = votDiff;\n\n if (this.attribute.code === \"_PARENT_\") {\n (editor as HierarchyCREditor).hierarchyEntry.parents = votDiff.parents;\n }\n }\n });\n }\n }\n\n return editors;\n }\n\n public createNewVersion(original?: ValueOverTimeCREditor): ValueOverTimeCREditor {\n let editor: ValueOverTimeCREditor;\n\n // Create an instance of the appropriate editor object\n if (this.attribute.code === \"_PARENT_\") {\n editor = new HierarchyCREditor(this, this.attribute, this.editAction, null, this.hierarchy);\n } else {\n editor = new ValueOverTimeCREditor(this, this.attribute, this.editAction);\n }\n\n // If we're creating a new GeoObject, add it to that GeoObject\n if (this.changeRequestEditor.changeRequest.type === \"CreateGeoObject\") {\n if (this.attribute.code === \"_PARENT_\") {\n (editor as HierarchyCREditor).hierarchyEntry = (editor as HierarchyCREditor).createEmptyHierarchyEntry();\n (editor as HierarchyCREditor).hierarchyOverTime.entries.push((editor as HierarchyCREditor).hierarchyEntry);\n } else {\n let vot = new ValueOverTime();\n vot.oid = uuid();\n\n (this.editAction as CreateGeoObjectAction).geoObjectJson.attributes[this.attribute.code].values.push(vot);\n\n editor.valueOverTime = vot;\n }\n } else {\n editor.constructNewDiff(\"CREATE\");\n }\n\n // Set any default values\n if (this.attribute.type === \"local\") {\n editor.value = this.changeRequestEditor.localizationService.create();\n } else if (this.attribute.type === \"geometry\") {\n let editors = this.getEditors(true);\n\n if (editors.length > 0) {\n\n if (original != null) {\n editor.value = JSON.parse(JSON.stringify(original.value));\n }\n else {\n editor.value = JSON.parse(JSON.stringify(editors[editors.length - 1].value));\n }\n } else {\n editor.value = GeometryService.createEmptyGeometryValue(this.changeRequestEditor.geoObjectType.geometryType);\n }\n } else if (this.attribute.type === \"term\") {\n let terms = GeoObjectType.getGeoObjectTypeTermAttributeOptions(this.changeRequestEditor.geoObjectType, this.attribute.code);\n\n if (terms && terms.length > 0) {\n editor.value = terms[0].code;\n }\n } else if (this.attribute.code === \"_PARENT_\" && this.changeRequestEditor.changeRequest.type === \"UpdateGeoObject\") {\n (editor as HierarchyCREditor).hierarchyEntry = (editor as HierarchyCREditor).createEmptyHierarchyEntry();\n } else if (this.attribute.code !== \"_PARENT_\") {\n editor.value = null;\n }\n\n this.editors.push(editor);\n\n this.onChange(ChangeType.ADD);\n\n return editor;\n }\n\n public remove(editor: ValueOverTimeCREditor) {\n if ((editor.diff != null && editor.diff.action === \"CREATE\") || this.changeRequestEditor.changeRequest.type === \"CreateGeoObject\") {\n let index = this.editors.findIndex(find => find.oid === editor.oid);\n\n if (index !== -1) {\n this.editors.splice(index, 1);\n }\n }\n\n editor.remove();\n\n this.validate();\n }\n\n}\n","import { ValueOverTime, AttributeType, TimeRangeEntry, ConflictMessage } from \"@registry/model/registry\";\nimport { CreateGeoObjectAction, UpdateAttributeOverTimeAction, AbstractAction, ValueOverTimeDiff } from \"@registry/model/crtable\";\nimport { v4 as uuid } from \"uuid\";\n// eslint-disable-next-line camelcase\nimport turf_booleanequal from \"@turf/boolean-equal\";\nimport { LocalizedValue } from \"@shared/model/core\";\nimport { GeometryService } from \"@registry/service\";\nimport { ChangeRequestChangeOverTimeAttributeEditor } from \"./change-request-change-over-time-attribute-editor\";\nimport { Subject } from \"rxjs\";\nimport { ChangeType, ConflictType } from \"@registry/model/constants\";\n\nexport class ValueOverTimeCREditor implements TimeRangeEntry {\n\n diff?: ValueOverTimeDiff; // Any existing diff which may be associated with this object.\n valueOverTime?: ValueOverTime; // Represents a vot on an existing GeoObject. If this is set and the action is UpdateAttribute, we must be doing an UPDATE, and valueOverTime represents the original value in the DB.\n action: AbstractAction;\n changeRequestAttributeEditor: ChangeRequestChangeOverTimeAttributeEditor;\n attr: AttributeType;\n conflictMessages: Set;\n\n onChangeSubject : Subject = new Subject();\n\n _isValid: boolean = true;\n\n constructor(changeRequestAttributeEditor: ChangeRequestChangeOverTimeAttributeEditor, attr: AttributeType, action: AbstractAction) {\n this.attr = attr;\n this.changeRequestAttributeEditor = changeRequestAttributeEditor;\n this.action = action;\n }\n\n onChange(type: ChangeType) {\n this.changeRequestAttributeEditor.onChange(type);\n this.onChangeSubject.next(type);\n }\n\n getGeoObjectTimeRangeStorage(): TimeRangeEntry {\n return this.valueOverTime;\n }\n\n getValueFromGeoObjectForDiff(): any {\n return this.valueOverTime.value;\n }\n\n validate(): boolean {\n let dateService = this.changeRequestAttributeEditor.changeRequestEditor.dateService;\n let start = dateService.validateDate(this.startDate == null ? null : dateService.getDateFromDateString(this.startDate), true, true);\n let end = dateService.validateDate(this.endDate == null ? null : dateService.getDateFromDateString(this.endDate), true, true);\n this._isValid = true;\n\n if (!start.valid || !end.valid) {\n this._isValid = false;\n }\n\n this.validateUpdateReference();\n\n return this._isValid;\n }\n\n /**\n * If we're referencing an existing value over time, that object should exist on our GeoObject (which represents the current state of the database)\n */\n validateUpdateReference() {\n let missingReference = this.changeRequestAttributeEditor.changeRequestEditor.dateService.missingReference;\n\n if (!this.conflictMessages) {\n this.conflictMessages = new Set();\n }\n\n this.conflictMessages.delete(missingReference);\n\n if (this.changeRequestAttributeEditor.changeRequestEditor.changeRequest.type === \"UpdateGeoObject\" && this.diff != null && this.diff.action !== \"CREATE\") {\n let existingVot = this.findExistingValueOverTimeByOid(this.diff.oid, this.attr.code);\n\n if (existingVot == null) {\n this._isValid = false;\n\n this.conflictMessages.add(missingReference);\n }\n }\n }\n\n findExistingValueOverTimeByOid(oid: string, attributeCode: string) {\n if (this.changeRequestAttributeEditor.changeRequestEditor.geoObject.attributes[attributeCode]) {\n let index = this.changeRequestAttributeEditor.changeRequestEditor.geoObject.attributes[attributeCode].values.findIndex((vot: ValueOverTime) => vot.oid === oid);\n\n if (index !== -1) {\n return this.changeRequestAttributeEditor.changeRequestEditor.geoObject.attributes[attributeCode].values[index];\n }\n }\n\n return null;\n }\n\n set oid(oid: string) {\n if (this.diff != null) {\n this.diff.oid = oid;\n } else if (this.getGeoObjectTimeRangeStorage() != null) {\n this.getGeoObjectTimeRangeStorage().oid = oid;\n }\n }\n\n get oid(): string {\n if (this.diff != null) {\n return this.diff.oid;\n } else if (this.getGeoObjectTimeRangeStorage() != null) {\n return this.getGeoObjectTimeRangeStorage().oid;\n }\n\n return null;\n }\n\n get startDate(): string {\n if (this.diff != null && this.diff.newStartDate !== undefined) {\n return this.diff.newStartDate;\n } else if (this.diff != null && this.diff.oldStartDate !== undefined) {\n return this.diff.oldStartDate;\n } else if (this.getGeoObjectTimeRangeStorage() != null) {\n return this.getGeoObjectTimeRangeStorage().startDate;\n }\n\n return null;\n }\n\n constructNewDiff(action: string): void {\n this.diff = new ValueOverTimeDiff();\n this.diff.action = action;\n (this.action as UpdateAttributeOverTimeAction).attributeDiff.valuesOverTime.push(this.diff);\n\n if (action === \"CREATE\") {\n this.diff.oid = uuid();\n } else {\n let goRange = this.getGeoObjectTimeRangeStorage();\n\n this.diff.oid = goRange.oid;\n this.diff.oldStartDate = goRange.startDate;\n this.diff.oldEndDate = goRange.endDate;\n }\n }\n\n set oldStartDate(oldStartDate: string) {\n if (this.diff != null) {\n this.diff.oldStartDate = oldStartDate;\n }\n }\n\n get oldStartDate(): string {\n if (this.diff != null) {\n return this.diff.oldStartDate;\n }\n\n return null;\n }\n\n get endDate(): string {\n if (this.diff != null && this.diff.newEndDate !== undefined) {\n return this.diff.newEndDate;\n } else if (this.diff != null && this.diff.oldStartDate !== undefined) {\n return this.diff.oldEndDate;\n } else if (this.getGeoObjectTimeRangeStorage() != null) {\n return this.getGeoObjectTimeRangeStorage().endDate;\n }\n\n return null;\n }\n\n set startDate(startDate: string) {\n if (this.isDelete()) {\n return; // There are various view components (like the date widgets) which will invoke this method\n }\n\n let goRange = this.getGeoObjectTimeRangeStorage();\n\n if (this.action.actionType === \"UpdateAttributeAction\") {\n if (this.diff == null) {\n if (this.getGeoObjectTimeRangeStorage() == null) {\n this.constructNewDiff(\"CREATE\");\n } else {\n if (goRange.startDate === startDate) {\n return;\n }\n\n this.constructNewDiff(\"UPDATE\");\n\n this.diff.oldValue = this.getValueFromGeoObjectForDiff();\n }\n }\n\n if (startDate === this.diff.oldStartDate) {\n delete this.diff.newStartDate;\n } else {\n this.diff.newStartDate = startDate;\n }\n\n // If no changes have been made then remove the diff\n this.removeEmptyDiff();\n } else if (this.action.actionType === \"CreateGeoObjectAction\") {\n goRange.startDate = startDate;\n }\n\n this.onChange(ChangeType.START_DATE);\n }\n\n set endDate(endDate: string) {\n if (this.isDelete()) {\n return; // There are various view components (like the date widgets) which will invoke this method\n }\n\n let goRange = this.getGeoObjectTimeRangeStorage();\n\n if (this.action.actionType === \"UpdateAttributeAction\") {\n if (this.diff == null) {\n if (goRange == null) {\n this.constructNewDiff(\"CREATE\");\n } else {\n if (goRange.endDate === endDate) {\n return;\n }\n\n this.constructNewDiff(\"UPDATE\");\n\n this.diff.oldValue = this.getValueFromGeoObjectForDiff();\n }\n }\n\n if (endDate === this.diff.oldEndDate) {\n delete this.diff.newEndDate;\n } else {\n this.diff.newEndDate = endDate;\n }\n\n // If no changes have been made then remove the diff\n this.removeEmptyDiff();\n } else if (this.action.actionType === \"CreateGeoObjectAction\") {\n goRange.endDate = endDate;\n }\n\n this.onChange(ChangeType.END_DATE);\n }\n\n set oldEndDate(oldEndDate: string) {\n if (this.diff != null) {\n this.diff.oldEndDate = oldEndDate;\n }\n }\n\n get oldEndDate(): string {\n if (this.diff != null) {\n return this.diff.oldEndDate;\n }\n\n return null;\n }\n\n get value(): any {\n if (this.diff != null && this.diff.newValue !== undefined) {\n return this.diff.newValue;\n } else if (this.diff != null && this.diff.oldValue !== undefined) {\n return this.diff.oldValue;\n } else if (this.getGeoObjectTimeRangeStorage() != null) {\n return this.getGeoObjectTimeRangeStorage().value;\n }\n\n return null;\n }\n\n set value(value: any) {\n if (this.isDelete()) {\n return; // There are various view components (like the date widgets) which will invoke this method\n }\n\n if (value != null) {\n if (this.attr.type === \"term\") {\n value = [value];\n } else if (this.attr.type === \"date\") {\n value = new Date(value).getTime();\n } else if (this.attr.type === \"geometry\") {\n // Limit max precision for point geometries\n let maxCoordinatePrecision = 6;\n\n if (value.type === \"MultiPoint\") {\n for (let i = 0; i < value.coordinates.length; ++i) {\n let coordinate: number[] = value.coordinates[i];\n\n coordinate[0] = Number.parseFloat(coordinate[0].toFixed(maxCoordinatePrecision));\n coordinate[1] = Number.parseFloat(coordinate[1].toFixed(maxCoordinatePrecision));\n }\n } else if (value.type === \"Point\") {\n value.coordinates = [Number.parseFloat(value.coordinates[0].toFixed(maxCoordinatePrecision)), Number.parseFloat(value.coordinates[1].toFixed(maxCoordinatePrecision))];\n }\n }\n } else if (value == null) {\n if (this.attr.type === \"geometry\") {\n value = GeometryService.createEmptyGeometryValue(this.changeRequestAttributeEditor.changeRequestEditor.geoObjectType.geometryType);\n } else if (this.attr.type === \"character\") {\n value = \"\";\n }\n }\n\n if (this.action.actionType === \"UpdateAttributeAction\") {\n if (this.diff == null) {\n if (this.getGeoObjectTimeRangeStorage() == null) {\n this.diff = new ValueOverTimeDiff();\n this.diff.oid = uuid();\n this.diff.action = \"CREATE\";\n (this.action as UpdateAttributeOverTimeAction).attributeDiff.valuesOverTime.push(this.diff);\n } else {\n if (this.areValuesEqual(this.valueOverTime.value, value)) {\n return;\n }\n\n this.diff = new ValueOverTimeDiff();\n this.diff.action = \"UPDATE\";\n this.diff.oid = this.getGeoObjectTimeRangeStorage().oid;\n this.diff.oldValue = this.valueOverTime.value;\n this.diff.oldStartDate = this.getGeoObjectTimeRangeStorage().startDate;\n this.diff.oldEndDate = this.getGeoObjectTimeRangeStorage().endDate;\n (this.action as UpdateAttributeOverTimeAction).attributeDiff.valuesOverTime.push(this.diff);\n }\n }\n\n if (this.diff.action !== \"CREATE\" && this.areValuesEqual(this.diff.oldValue, value)) {\n delete this.diff.newValue;\n } else {\n this.diff.newValue = JSON.parse(JSON.stringify(value));\n }\n\n // If no changes have been made then remove the diff\n this.removeEmptyDiff();\n } else if (this.action.actionType === \"CreateGeoObjectAction\") {\n this.valueOverTime.value = value;\n }\n\n this.onChange(ChangeType.VALUE);\n }\n\n set oldValue(oldValue: any) {\n if (this.diff != null) {\n this.diff.oldValue = oldValue;\n }\n }\n\n get oldValue(): any {\n if (this.diff != null) {\n return this.diff.oldValue;\n }\n\n return null;\n }\n\n public setLocalizedValue(localizedValue: LocalizedValue) {\n this.value = JSON.parse(JSON.stringify(localizedValue));\n }\n\n removeEmptyDiff(): void {\n if (this.diff != null && this.diff.newValue === undefined && this.diff.newStartDate === undefined && this.diff.newEndDate === undefined) {\n const diffs = (this.action as UpdateAttributeOverTimeAction).attributeDiff.valuesOverTime;\n\n const index = diffs.findIndex(d => d.oid === this.diff.oid);\n\n if (index !== -1) {\n diffs.splice(index, 1);\n }\n\n this.diff = null;\n }\n }\n\n areValuesEqual(val1: any, val2: any): boolean {\n if (this.attr.type === \"boolean\") {\n return val1 === val2;\n }\n\n if ((val1 === \"\" && val2 == null) || (val2 === \"\" && val1 == null)) {\n return true;\n }\n\n if (!val1 && !val2) {\n return true;\n } else if ((!val1 && val2) || (!val2 && val1)) {\n return false;\n }\n\n if (this.attr.type === \"term\") {\n if (val1 != null && val2 != null) {\n return val1.length === val2.length && val1[0] === val2[0];\n }\n } else if (this.attr.type === \"geometry\") {\n return turf_booleanequal(val1, val2);\n } else if (this.attr.type === \"date\") {\n let casted1 = (typeof val1 === \"string\") ? parseInt(val1) : val1;\n let casted2 = (typeof val2 === \"string\") ? parseInt(val2) : val2;\n\n return casted1 === casted2;\n } else if (this.attr.type === \"local\") {\n if ((!val1.localeValues || !val2.localeValues) || val1.localeValues.length !== val2.localeValues.length) {\n return false;\n }\n\n let len = val1.localeValues.length;\n for (let i = 0; i < len; ++i) {\n let localeValue = val1.localeValues[i];\n\n let lv2 = this.getValueAtLocale(val2, localeValue.locale);\n let lv1 = localeValue.value;\n\n if ((lv1 === \"\" && lv2 == null) || (lv2 === \"\" && lv1 == null)) {\n continue;\n } else if (lv1 !== lv2) {\n return false;\n }\n }\n\n return true;\n }\n\n return val1 === val2;\n }\n\n getValueAtLocale(lv: LocalizedValue, locale: string) {\n return new LocalizedValue(lv.localizedValue, lv.localeValues).getValue(locale);\n }\n\n public remove(): void {\n if (this.action.actionType === \"UpdateAttributeAction\") {\n if (this.diff != null && this.diff.action === \"CREATE\") {\n // Its a new entry, just remove the diff from the diff array\n let updateAction: UpdateAttributeOverTimeAction = this.action as UpdateAttributeOverTimeAction;\n\n const index = updateAction.attributeDiff.valuesOverTime.findIndex(vot => vot.oid === this.diff.oid);\n\n if (index > -1) {\n updateAction.attributeDiff.valuesOverTime.splice(index, 1);\n }\n } else if (this.diff != null) {\n delete this.diff.newValue;\n delete this.diff.newStartDate;\n delete this.diff.newEndDate;\n this.removeEmptyDiff();\n this.onChange(ChangeType.REMOVE);\n return;\n } else if (this.valueOverTime != null && this.diff == null) {\n this.diff = new ValueOverTimeDiff();\n this.diff.action = \"DELETE\";\n this.diff.oid = this.valueOverTime.oid;\n this.diff.oldValue = this.valueOverTime.value;\n this.diff.oldStartDate = this.valueOverTime.startDate;\n this.diff.oldEndDate = this.valueOverTime.endDate;\n (this.action as UpdateAttributeOverTimeAction).attributeDiff.valuesOverTime.push(this.diff);\n }\n } else if (this.action.actionType === \"CreateGeoObjectAction\") {\n let votc = (this.action as CreateGeoObjectAction).geoObjectJson.attributes[this.attr.code].values;\n\n let index = votc.findIndex((vot) => { return vot.oid === this.valueOverTime.oid; });\n\n if (index !== -1) {\n votc.splice(index, 1);\n }\n }\n\n this.onChange(ChangeType.REMOVE);\n }\n\n public isDelete() {\n return this.diff != null && this.diff.action === \"DELETE\";\n }\n\n}\n","import {\n Component,\n OnInit,\n Input,\n Output,\n ChangeDetectorRef,\n EventEmitter,\n ViewChildren,\n QueryList,\n ElementRef,\n SimpleChanges\n} from \"@angular/core\";\nimport {\n trigger,\n style,\n animate,\n transition\n} from \"@angular/animations\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { GeoObjectType, AttributeType, HierarchyOverTime } from \"@registry/model/registry\";\nimport { SummaryKey } from \"@registry/model/crtable\";\nimport { LocalizedValue } from \"@shared/model/core\";\nimport { GovernanceStatus, LayerColor } from \"@registry/model/constants\";\nimport { AuthService } from \"@shared/service/auth.service\";\n\nimport { DateFieldComponent } from \"../../../shared/component/form-fields/date-field/date-field.component\";\nimport { ErrorHandler } from \"@shared/component\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { RegistryService, GeometryService } from \"@registry/service\";\nimport { ChangeRequestService } from \"@registry/service/change-request.service\";\nimport { DateService } from \"@shared/service/date.service\";\n\nimport { LocalizationService } from \"@shared/service\";\n\nimport { VersionDiffView, Layer } from \"./manage-versions-model\";\nimport { ControlContainer, NgForm } from \"@angular/forms\";\nimport { Observable } from \"rxjs\";\nimport { ValueOverTimeCREditor } from \"./ValueOverTimeCREditor\";\nimport { TypeaheadMatch } from \"ngx-bootstrap/typeahead\";\nimport { HierarchyCREditor } from \"./HierarchyCREditor\";\nimport { ChangeRequestEditor } from \"./change-request-editor\";\nimport { ChangeRequestChangeOverTimeAttributeEditor } from \"./change-request-change-over-time-attribute-editor\";\n\n@Component({\n selector: \"manage-versions\",\n templateUrl: \"./manage-versions.component.html\",\n styleUrls: [\"./manage-versions.css\"],\n host: { \"[@fadeInOut]\": \"true\" },\n animations: [\n [\n trigger(\"fadeInOut\", [\n transition(\"void => *\", [\n style({\n opacity: 0\n }),\n animate(\"500ms\")\n ]),\n transition(\":leave\",\n animate(\"500ms\",\n style({\n opacity: 0\n })\n )\n )\n ])\n ]],\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }]\n\n})\nexport class ManageVersionsComponent implements OnInit {\n\n // height (as number) in pixels\n mapRowHeight: number;\n\n bsModalRef: BsModalRef;\n\n @Input() isNew: boolean = false;\n\n @ViewChildren(\"dateFieldComponents\") dateFieldComponentsArray: QueryList;\n\n message: string = null;\n\n currentDate: Date = new Date();\n\n isValid: boolean = true;\n @Output() isValidChange = new EventEmitter();\n\n @Input() readonly: boolean = false;\n\n @Input() isGeometryInlined: boolean = false;\n\n @Input() changeRequestEditor: ChangeRequestEditor;\n\n changeRequestAttributeEditor: ChangeRequestChangeOverTimeAttributeEditor;\n\n @Input() geoObjectType: GeoObjectType;\n\n @Input() attributeType: AttributeType;\n\n @Input() hierarchy: HierarchyOverTime = null;\n\n @Input() filterDate: string = null;\n\n @Input() showAllInstances: boolean = true;\n\n viewModels: VersionDiffView[] = [];\n\n isRootOfHierarchy: boolean = false;\n\n isInitialized: boolean = false;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public geomService: GeometryService, public cdr: ChangeDetectorRef, public service: RegistryService, public lService: LocalizationService,\n public changeDetectorRef: ChangeDetectorRef, public dateService: DateService, private authService: AuthService,\n private requestService: ChangeRequestService, private modalService: BsModalService, private elementRef: ElementRef) { }\n\n ngOnInit(): void {\n this.changeRequestAttributeEditor = this.changeRequestEditor.getEditorForAttribute(this.attributeType, this.hierarchy) as ChangeRequestChangeOverTimeAttributeEditor;\n\n this.calculateViewModels();\n this.isRootOfHierarchy = this.attributeType.type === \"_PARENT_\" && (this.hierarchy == null || this.hierarchy.types == null || this.hierarchy.types.length === 0);\n this.isInitialized = true;\n }\n\n ngAfterViewInit() {\n if (this.isNew && this.attributeType.code === \"exists\" && this.viewModels.length === 0) {\n this.onAddNewVersion();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.isInitialized && changes.showAllInstances && changes.showAllInstances.previousValue !== changes.showAllInstances.currentValue) {\n this.calculateViewModels();\n }\n }\n\n setFilterDate(filterDate: string, refresh: boolean = true): void {\n this.filterDate = filterDate;\n if (refresh) {\n this.calculateViewModels();\n }\n }\n\n checkDateFieldValidity(): boolean {\n let dateFields = this.dateFieldComponentsArray.toArray();\n\n for (let i = 0; i < dateFields.length; i++) {\n let field = dateFields[i];\n if (!field.valid) {\n return false;\n }\n }\n\n return true;\n }\n\n hasLocalizationChanged(viewModel: VersionDiffView, locale: string): boolean {\n return viewModel.editor.oldValue != null && this.getValueAtLocale(viewModel.editor.oldValue, locale) !== this.getValueAtLocale(viewModel.editor.value, locale);\n }\n\n onDateChange(): any {\n setTimeout(() => {\n this.isValid = this.changeRequestAttributeEditor.validate() && this.checkDateFieldValidity();\n\n this.isValidChange.emit(this.isValid);\n }, 0);\n }\n\n remove(view: VersionDiffView): void {\n if (this.geomService.isEditing()) {\n this.geomService.stopEditing();\n }\n\n this.changeRequestAttributeEditor.remove(view.editor);\n\n if (view.summaryKey === SummaryKey.NEW || this.changeRequestEditor.changeRequest.type === \"CreateGeoObject\") {\n const index = this.viewModels.findIndex(v => v.editor.oid === view.editor.oid);\n\n if (index > -1) {\n this.viewModels.splice(index, 1);\n }\n }\n\n if (this.attributeType.type === \"geometry\") {\n this.geomService.reload();\n }\n }\n\n onAddNewVersion(original?: ValueOverTimeCREditor): void {\n let editor = this.changeRequestAttributeEditor.createNewVersion(original);\n\n if (this.isNew && this.changeRequestEditor.geoObject.attributes[\"exists\"]) {\n let values = this.changeRequestEditor.geoObject.attributes[\"exists\"].values;\n\n if (values && values.length > 0) {\n let value = values[0];\n\n editor.startDate = value.startDate;\n editor.endDate = value.endDate;\n }\n }\n\n this.viewModels.push(new VersionDiffView(this, editor));\n }\n\n getValueAtLocale(lv: LocalizedValue, locale: string) {\n return lv == null ? null : new LocalizedValue(lv.localizedValue, lv.localeValues).getValue(locale);\n }\n\n public getGeoObjectTypeTermAttributeOptions(termAttributeCode: string) {\n return GeoObjectType.getGeoObjectTypeTermAttributeOptions(this.geoObjectType, termAttributeCode);\n }\n\n calculateViewModels(): void {\n let viewModels: VersionDiffView[] = [];\n\n let editors = this.changeRequestAttributeEditor.getEditors(this.showAllInstances);\n editors.forEach((editor: ValueOverTimeCREditor) => {\n if (this.filterDate == null || this.dateService.between(this.filterDate, editor.startDate, editor.endDate)) {\n let view = new VersionDiffView(this, editor);\n viewModels.push(view);\n }\n });\n\n this.viewModels = viewModels;\n }\n\n onApprove(): void {\n this.requestService.setActionStatus(this.changeRequestAttributeEditor.editAction.oid, GovernanceStatus.ACCEPTED).then(results => {\n this.changeRequestAttributeEditor.editAction.approvalStatus = GovernanceStatus.ACCEPTED;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onReject(): void {\n this.requestService.setActionStatus(this.changeRequestAttributeEditor.editAction.oid, GovernanceStatus.REJECTED).then(results => {\n this.changeRequestAttributeEditor.editAction.approvalStatus = GovernanceStatus.REJECTED;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onPending(): void {\n this.requestService.setActionStatus(this.changeRequestAttributeEditor.editAction.oid, GovernanceStatus.PENDING).then(results => {\n this.changeRequestAttributeEditor.editAction.approvalStatus = GovernanceStatus.PENDING;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n public error(err: any): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n /**\n * Hierarchy Editing\n */\n\n getTypeAheadObservable(editor: HierarchyCREditor, startDate: string, endDate: string, type: any, entry: any, index: number): Observable {\n let geoObjectTypeCode = type.code;\n\n let parentCode = null;\n let parentTypeCode = null;\n let hierarchyCode = null;\n\n if (index > 0) {\n let pType = editor.changeRequestAttributeEditor.hierarchy.types[index - 1];\n const parent = entry.parents[pType.code];\n\n if (parent.geoObject != null && parent.geoObject.properties.code != null) {\n hierarchyCode = editor.changeRequestAttributeEditor.hierarchy.code;\n parentCode = parent.geoObject.properties.code;\n parentTypeCode = parent.geoObject.properties.type;\n }\n }\n\n return Observable.create((observer: any) => {\n if (parentCode == null) {\n let loopI = index;\n\n while (parentCode == null && loopI > 0) {\n loopI = loopI - 1;\n\n let parent = entry.parents[editor.changeRequestAttributeEditor.hierarchy.types[loopI].code];\n\n if (parent != null) {\n if (parent.geoObject != null && parent.geoObject.properties.code != null) {\n parentCode = parent.geoObject.properties.code;\n hierarchyCode = editor.changeRequestAttributeEditor.hierarchy.code;\n parentTypeCode = editor.changeRequestAttributeEditor.hierarchy.types[loopI].code;\n } else if (parent.goCode != null) {\n parentCode = parent.goCode;\n hierarchyCode = editor.changeRequestAttributeEditor.hierarchy.code;\n parentTypeCode = editor.changeRequestAttributeEditor.hierarchy.types[loopI].code;\n }\n }\n }\n }\n\n this.service.getGeoObjectSuggestions(entry.parents[type.code].text, geoObjectTypeCode, parentCode, parentTypeCode, hierarchyCode, startDate, endDate).then(results => {\n observer.next(results);\n });\n });\n }\n\n typeaheadOnSelect(editor: HierarchyCREditor, e: TypeaheadMatch, type: any, entry: any, date: string): void {\n // let ptn: ParentTreeNode = parent.ptn;\n\n entry.parents[type.code].text = e.item.name + \" : \" + e.item.code;\n entry.parents[type.code].goCode = e.item.code;\n\n let parentTypes = [];\n\n for (let i = 0; i < editor.changeRequestAttributeEditor.hierarchy.types.length; i++) {\n let current = editor.changeRequestAttributeEditor.hierarchy.types[i];\n\n parentTypes.push(current.code);\n\n if (current.code === type.code) {\n break;\n }\n }\n\n this.service.getParentGeoObjects(e.item.uid, type.code, parentTypes, true, date).then(ancestors => {\n // First filter the response for ancestors of only the correct hierarchy\n ancestors.parents = ancestors.parents.filter(p => p.hierarchyType === editor.changeRequestAttributeEditor.hierarchy.code);\n\n delete entry.parents[type.code].goCode;\n entry.parents[type.code].geoObject = ancestors.geoObject;\n entry.parents[type.code].text = ancestors.geoObject.properties.displayLabel.localizedValue + \" : \" + ancestors.geoObject.properties.code;\n\n for (let i = 0; i < editor.changeRequestAttributeEditor.hierarchy.types.length; i++) {\n let current = editor.changeRequestAttributeEditor.hierarchy.types[i];\n let ancestor = ancestors;\n\n while (ancestor != null && ancestor.geoObject.properties.type !== current.code) {\n if (ancestor.parents.length > 0) {\n ancestor = ancestor.parents[0];\n } else {\n ancestor = null;\n }\n }\n\n if (ancestor != null) {\n entry.parents[current.code].geoObject = ancestor.geoObject;\n entry.parents[current.code].text = ancestor.geoObject.properties.displayLabel.localizedValue + \" : \" + ancestor.geoObject.properties.code;\n }\n }\n\n editor.setParentValue(type, entry.parents);\n });\n }\n\n /**\n * GEOMETRY EDITING\n */\n\n toggleGeometryEditing(view: VersionDiffView) {\n this.geomService.setEditing(!view.newLayer.isEditing, view.newLayer);\n\n if (this.geoObjectType.geometryType === \"POINT\" || this.geoObjectType.geometryType === \"MULTIPOINT\") {\n view.coordinate = {};\n }\n }\n\n toggleGeometryView(view: VersionDiffView) {\n // Using setTimeout() to pull the calc out of the animation stack so the dom can finish mutating before getting final height.\n setTimeout(() => {\n this.mapRowHeight = this.elementRef.nativeElement.children[0].getElementsByClassName(\"attribute-element-wrapper\")[0].offsetHeight;\n }, 0);\n\n let layer: Layer = this.getOrCreateLayer(view, \"NEW\");\n\n if (layer.isEditing) {\n this.geomService.stopEditing();\n }\n\n this.geomService.setRendering(!layer.isRendering, layer);\n }\n\n toggleOldGeometryView(view: VersionDiffView) {\n let layer: Layer = this.getOrCreateLayer(view, \"OLD\");\n\n this.geomService.setRendering(!layer.isRendering, layer);\n }\n\n getOrCreateLayer(view: VersionDiffView, context: string): Layer {\n if (context === \"NEW\") {\n if (view.newLayer != null) {\n return view.newLayer;\n }\n\n view.newLayer = new Layer();\n view.newLayer.oid = \"NEW_\" + view.editor.oid;\n view.newLayer.isEditing = false;\n view.newLayer.isRendering = false;\n view.newLayer.zindex = 1;\n view.newLayer.color = LayerColor.NEW;\n view.newLayer.geojson = view.editor.value;\n view.newLayer.editPropagator = view.editor;\n\n return view.newLayer;\n } else {\n if (view.oldLayer != null) {\n return view.oldLayer;\n }\n\n view.oldLayer = new Layer();\n view.oldLayer.oid = \"OLD_\" + view.editor.oid;\n view.oldLayer.isEditing = false;\n view.oldLayer.isRendering = false;\n view.oldLayer.zindex = 0;\n view.oldLayer.color = LayerColor.OLD;\n view.oldLayer.geojson = view.editor.oldValue;\n view.oldLayer.editPropagator = null;\n\n return view.oldLayer;\n }\n }\n\n manualCoordinateChange(view: VersionDiffView): void {\n if (view.newCoordinateX || view.newCoordinateY) {\n let newX = view.newCoordinateX;\n if (view.value.coordinates && view.value.coordinates[0]) {\n newX = view.value.coordinates[0];\n }\n let newY = view.newCoordinateY;\n if (view.value.coordinates && view.value.coordinates[0]) {\n newY = view.value.coordinates[1];\n }\n view.value.coordinates = [[newX || 0, newY || 0]];\n delete view.newCoordinateX;\n delete view.newCoordinateY;\n return;\n }\n\n const isLatitude = num => isFinite(num) && Math.abs(num) <= 90;\n const isLongitude = num => isFinite(num) && Math.abs(num) <= 180;\n\n view.coordinate.latValid = isLatitude(view.value.coordinates[0][1]);\n view.coordinate.longValid = isLongitude(view.value.coordinates[0][0]);\n\n if (!view.coordinate.latValid || !view.coordinate.longValid) {\n // outside EPSG bounds\n this.isValid = false;\n this.isValidChange.emit(this.isValid);\n return;\n }\n\n this.geomService.setPointCoordinates(view.value.coordinates[0][1], view.value.coordinates[0][0]);\n }\n\n}\n","
\n \n
{{model.name }} : {{ model.code }}
\n
\n\n \n
\n\n
\n
\n\n \n
0) ? '45%' : '100%'}\" style=\"display:inline-block;\" class=\"col\">\n
\n
    \n
  • \n
    \n \n \n

    \n \n

    \n
    \n \n
    \n \n \n \n\t \n \n\t \n \n\n\n \n \n \n \n \n\t \n\t \n \n
    \n\t
    \n {{viewModel.summaryKeyLocalized}}\n
    \n\t \n\t \n\t \n\t \n\t \n\t\t \n\t\t \n\t\t \n\t \n\t \n\t \n\n\t \n\t \n\t \n\t \n\t \n\t 0\">\n\t

    \n\t {{msg.message}}\n\t

    \n\t \n\t
    \n\t\t
    \n\t\t \n\t\t \n\t\t \n\t\t
    \n\t\t

    \n\t\t \n\t\t

    \n\t\t
    \n\t\t \n\t\t
    \n\t\t

    \n\t\t \n\t\t {{ getValueAtLocale(viewModel.oldValue, loc.locale) }}\n\t\t

    \n\t\t
    \n\t\t
    \n \n\t
    \n\t \n\t
    \n\t
    \n\t \n\t
    \n\t \n\t
    \n\t \n\t
    \n\t \n\t
    \n\t \n\t
    \n\t \n\t
    \n\t \n\t \n\t
    \n\t \n\t
    \n 0\">\n\t\t
    \n\t\t\t {{type.label}}\n\t\t\t
    \n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t \n \n \n\t\t\t \n\t\t\t \n\t\t\t
    \n\t\t\t
    \n
    \n\t
    \n
    \n

    \n \n {{ viewModel.oldValue }}\n

    \n
    \n \n \n \n\n \n\n \n \n \n \n \n \n \n \n \n \n\n\n
    \n \n \n \n \n\n \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n

    \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n

    \n \n

    \n
    \n
    \n
    \n\t
    \n\t \n\t
    \n\t \n\t \n\t \n\t
    \n\t

    \n\t \n\t {{ viewModel.oldStartDate }}\n\t

    \n\t
    \n\t
    \n\t
    \n\t
    \n\t \n\t
    \n\t \n\t \n\t \n\t
    \n\t
    \n\t \n\t
    \n \n \n \n
    \n
    \n
  • \n \n
  • \n \n \n \n
  • \n \n
\n \n \n
\n \n \n \n
\n
\n \n \n \n \n \n \n
\n \n
\n
\n\t 0\" #geometryEditor [geometryType]=\"this.geoObjectType.geometryType\" \n\t [mapHeight]=\"mapRowHeight\" [readOnly]=\"!geoObjectType.isGeometryEditable && readonly\"\n\t [bboxCode]=\"this.changeRequestEditor.geoObject.attributes.code\" [bboxType]=\"this.geoObjectType.code\" [bboxDate]=\"geomService.getRenderedLayers()[0].startDate\">\n\t \n
\n\n
\n
\n
\n\n","import { Component, OnInit } from \"@angular/core\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { ActivatedRoute } from \"@angular/router\";\n\nimport { LocalizationService, AuthService } from \"@shared/service\";\n\nimport { ErrorHandler, ErrorModalComponent } from \"@shared/component\";\n\ndeclare let acp: string;\n\n@Component({\n\n selector: \"change-request-page\",\n templateUrl: \"./change-request-page.component.html\",\n styleUrls: [\"./change-request-page.css\"]\n})\nexport class ChangeRequestPageComponent implements OnInit {\n\n pageTitle: string;\n bsModalRef: BsModalRef;\n isAdmin: boolean;\n isMaintainer: boolean;\n isContributor: boolean;\n isContributorOnly: boolean;\n\n urlSubscriber: any;\n\n highlightOid: string;\n\n constructor(private localizationService: LocalizationService, private modalService: BsModalService, private service: AuthService, private route: ActivatedRoute) {\n this.isAdmin = service.isAdmin();\n this.isMaintainer = this.isAdmin || service.isMaintainer();\n this.isContributor = this.isAdmin || this.isMaintainer || service.isContributer();\n this.isContributorOnly = service.isContributerOnly();\n }\n\n ngOnInit(): void {\n this.urlSubscriber = this.route.params.subscribe(params => {\n this.highlightOid = params[\"oid\"];\n });\n }\n\n ngOnDestroy(): void {\n this.urlSubscriber.unsubscribe();\n }\n\n public error(err: HttpErrorResponse): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n}\n","
\n \n \n\n
\n\n
\n
\n
\n
\n

{{pageTitle}}

\n
\n\n
\n\n \n \n \n \n
\n
\n\n
\n
\n
\n
\n","import { Component, Input, EventEmitter, Output, ViewChild, SimpleChanges } from \"@angular/core\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { HierarchyOverTime } from \"@registry/model/registry\";\nimport { RegistryService } from \"@registry/service\";\n\nimport { ErrorHandler, ErrorModalComponent } from \"@shared/component\";\n\n@Component({\n\n selector: \"cascading-geo-selector\",\n templateUrl: \"./cascading-geo-selector.html\"\n})\nexport class CascadingGeoSelector {\n\n @Input() hierarchies: HierarchyOverTime[];\n\n @Output() valid = new EventEmitter();\n\n @Input() isValid: boolean = true;\n @Input() readOnly: boolean = false;\n\n @ViewChild(\"mainForm\") mainForm;\n\n @Input() forDate: Date = new Date();\n\n @Input() customEvent: boolean = false;\n\n @Output() onManageVersion = new EventEmitter();\n\n dateStr: string;\n\n cHierarchies: any[] = [];\n\n parentMap: any = {};\n\n bsModalRef: BsModalRef;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private modalService: BsModalService, private registryService: RegistryService) { }\n\n ngOnInit(): void {\n const day = this.forDate.getUTCDate();\n\n this.dateStr = this.forDate.getUTCFullYear() + \"-\" + (this.forDate.getUTCMonth() + 1) + \"-\" + (day < 10 ? \"0\" : \"\") + day;\n\n // Truncate any hours/minutes/etc which may be part of the date\n this.forDate = new Date(Date.parse(this.dateStr));\n\n this.calculate();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes[\"forDate\"]) {\n this.calculate();\n }\n }\n\n calculate(): any {\n const time = this.forDate.getTime();\n\n this.isValid = true;\n\n this.cHierarchies = [];\n this.hierarchies.forEach(hierarchy => {\n const object = {};\n object[\"label\"] = hierarchy.label;\n object[\"code\"] = hierarchy.code;\n\n this.isValid = this.isValid && (this.hierarchies.length > 0);\n\n hierarchy.entries.forEach(pot => {\n const startDate = Date.parse(pot.startDate);\n const endDate = Date.parse(pot.endDate);\n\n if (time >= startDate && time <= endDate) {\n let parents = [];\n\n hierarchy.types.forEach(type => {\n let parent: any = {\n code: type.code,\n label: type.label\n }\n\n if (pot.parents[type.code] != null) {\n parent.text = pot.parents[type.code].text;\n parent.geoObject = pot.parents[type.code].geoObject;\n }\n\n parents.push(parent);\n });\n\n object[\"parents\"] = parents;\n }\n });\n\n this.cHierarchies.push(object);\n });\n\n this.valid.emit();\n }\n\n public getIsValid(): boolean {\n return true;\n }\n\n public getHierarchies(): any {\n return this.hierarchies;\n }\n\n onManageVersions(code: string): void {\n const hierarchy = this.hierarchies.find(h => h.code === code);\n\n if (this.customEvent) {\n this.onManageVersion.emit(hierarchy);\n } else {\n/*\n this.bsModalRef = this.modalService.show(ManageParentVersionsModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true,\n });\n this.bsModalRef.content.init(hierarchy);\n this.bsModalRef.content.onVersionChange.subscribe(hierarchy => {\n this.calculate();\n });\n */\n }\n }\n\n public error(err: HttpErrorResponse): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n}\n","\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n {{parent.label}}\n\n \n \n
\n \n
\n\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
","import { Component, OnInit, OnDestroy } from \"@angular/core\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\nimport { TypeaheadMatch } from \"ngx-bootstrap/typeahead\";\nimport { Observable } from \"rxjs\";\nimport { webSocket, WebSocketSubject } from \"rxjs/webSocket\";\n\nimport { MasterListVersion } from \"@registry/model/registry\";\nimport { RegistryService } from \"@registry/service\";\nimport { DateService } from \"@shared/service/date.service\";\nimport { ExportFormatModalComponent } from \"./export-format-modal.component\";\nimport { GeoObjectEditorComponent } from \"../geoobject-editor/geoobject-editor.component\";\n\nimport { ErrorHandler } from \"@shared/component\";\nimport { LocalizationService, AuthService, ProgressService } from \"@shared/service\";\n\ndeclare let acp: string;\n\n@Component({\n selector: \"master-list\",\n templateUrl: \"./master-list.component.html\",\n styleUrls: [\"./master-list.component.css\"]\n})\nexport class MasterListComponent implements OnInit, OnDestroy {\n\n message: string = null;\n list: MasterListVersion = null;\n p: number = 1;\n current: string = \"\";\n filter: { attribute: string, value: string, label: string }[] = [];\n selected: string[] = [];\n page: any = {\n count: 0,\n pageNumber: 1,\n pageSize: 100,\n results: []\n };\n\n sort = { attribute: \"code\", order: \"ASC\" };\n isPublished: boolean = true;\n isRefreshing: boolean = false;\n isWritable: boolean = false;\n listAttrs: any[];\n\n showInvalid = false;\n\n /*\n * Reference to the modal current showing\n */\n private bsModalRef: BsModalRef;\n\n public searchPlaceholder = \"\";\n\n notifier: WebSocketSubject<{ type: string, content: any }>;\n\n constructor(public service: RegistryService, private pService: ProgressService, private route: ActivatedRoute, private dateService: DateService,\n private modalService: BsModalService, private localizeService: LocalizationService, private authService: AuthService) {\n this.searchPlaceholder = localizeService.decode(\"masterlist.search\");\n }\n\n ngOnInit(): void {\n const oid = this.route.snapshot.paramMap.get(\"oid\");\n this.isPublished = (this.route.snapshot.paramMap.get(\"published\") === \"true\");\n\n this.service.getMasterListVersion(oid).then(version => {\n this.setList(version);\n const orgCode = this.list.orgCode;\n const typeCode = this.list.superTypeCode != null ? this.list.superTypeCode : this.list.typeCode;\n\n this.isWritable = this.authService.isGeoObjectTypeRC(orgCode, typeCode);\n\n this.onPageChange(1);\n\n if (version.refreshProgress != null) {\n this.handleProgressChange(version.refreshProgress);\n }\n });\n\n let baseUrl = \"wss://\" + window.location.hostname + (window.location.port ? \":\" + window.location.port : \"\") + acp;\n\n this.notifier = webSocket(baseUrl + \"/websocket/progress/\" + oid);\n this.notifier.subscribe(message => {\n if (message.content != null) {\n this.handleProgressChange(message.content);\n } else {\n this.handleProgressChange(message);\n }\n });\n }\n\n ngOnDestroy() {\n this.notifier.complete();\n }\n\n ngAfterViewInit() {\n\n }\n\n setList(_list: MasterListVersion): void {\n this.list = _list;\n this.listAttrs = this.calculateListAttributes();\n }\n\n onShowInvalidChange() {\n this.onPageChange(1);\n }\n\n onPageChange(pageNumber: number): void {\n this.message = null;\n\n this.service.data(this.list.oid, pageNumber, this.page.pageSize, this.getFilter(), this.sort).then(page => {\n this.page = page;\n this.listAttrs = this.calculateListAttributes();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onSort(attribute: { name: string, label: string }): void {\n if (this.sort.attribute === attribute.name) {\n this.sort.order = (this.sort.order === \"ASC\" ? \"DESC\" : \"ASC\");\n } else {\n this.sort = { attribute: attribute.name, order: \"ASC\" };\n }\n\n this.onPageChange(1);\n }\n\n clearFilters(): void {\n this.list.attributes.forEach(attr => {\n attr.search = null;\n });\n\n this.filter = [];\n this.showInvalid = false;\n this.selected = [];\n\n this.onPageChange(1);\n }\n\n toggleFilter(attribute: any): void {\n attribute.isCollapsed = !attribute.isCollapsed;\n }\n\n getFilter(): { attribute: string, value: string, label: string }[] {\n let newFilter = JSON.parse(JSON.stringify(this.filter));\n\n if (!this.showInvalid) {\n newFilter.push({ attribute: \"invalid\", value: \"false\" });\n }\n\n return newFilter;\n }\n\n calculateListAttributes() {\n let attrs: any[];\n\n if (this.showInvalid) {\n attrs = this.list.attributes;\n } else {\n attrs = JSON.parse(JSON.stringify(this.list.attributes));\n\n let index = attrs.findIndex(attr => attr.name === \"invalid\");\n\n if (index !== -1) {\n attrs.splice(index, 1);\n }\n }\n\n attrs.forEach(attribute => {\n attribute.isCollapsed = true;\n });\n\n return attrs;\n }\n\n getTypeaheadDataObservable(attribute: any): void {\n return Observable.create((observer: any) => {\n this.message = null;\n\n // Get the valid values\n this.service.values(this.list.oid, attribute.search, attribute.name, attribute.base, this.getFilter()).then(options => {\n options.unshift({ label: \"[\" + this.localizeService.decode(\"masterlist.nofilter\") + \"]\", value: null });\n\n observer.next(options);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n });\n }\n\n handleProgressChange(progress: any): void {\n this.isRefreshing = (progress.current < progress.total);\n\n this.pService.progress(progress);\n\n if (!this.isRefreshing) {\n // Refresh the resultSet\n this.onPageChange(1);\n }\n }\n\n handleDateChange(attribute: any): void {\n attribute.isCollapsed = true;\n\n // Remove the current attribute filter if it exists\n this.filter = this.filter.filter(f => f.attribute !== attribute.base);\n this.selected = this.selected.filter(s => s !== attribute.base);\n\n if (attribute.value != null && ((attribute.value.start != null && attribute.value.start !== \"\") || (attribute.value.end != null && attribute.value.end !== \"\"))) {\n let label = \"[\" + attribute.label + \"] : [\";\n\n if (attribute.value.start != null) {\n label += attribute.value.start;\n }\n\n if (attribute.value.start != null && attribute.value.end != null) {\n label += \" - \";\n }\n\n if (attribute.value.end != null) {\n label += attribute.value.end;\n }\n\n label += \"]\";\n\n this.filter.push({ attribute: attribute.base, value: attribute.value, label: label });\n this.selected.push(attribute.base);\n }\n\n this.onPageChange(1);\n }\n\n handleInputChange(attribute: any): void {\n attribute.isCollapsed = true;\n\n // Remove the current attribute filter if it exists\n this.filter = this.filter.filter(f => f.attribute !== attribute.base);\n this.selected = this.selected.filter(s => s !== attribute.base);\n\n if (attribute.value != null && attribute.value !== \"\") {\n const label = \"[\" + attribute.label + \"] : \" + \"[\" + attribute.value + \"]\";\n\n this.filter.push({ attribute: attribute.base, value: attribute.value, label: label });\n this.selected.push(attribute.base);\n }\n\n this.onPageChange(1);\n }\n\n handleListChange(e: TypeaheadMatch, attribute: any): void {\n attribute.value = e.item;\n attribute.isCollapsed = true;\n\n this.selected = this.selected.filter(s => s !== attribute.base);\n\n this.list.attributes.forEach(attr => {\n if (attr.base === attribute.base) {\n attr.search = \"\";\n }\n });\n\n if (attribute.value.value != null && attribute.value.value !== \"\") {\n const label = \"[\" + attribute.label + \"] : \" + \"[\" + attribute.value.label + \"]\";\n\n this.filter.push({ attribute: attribute.base, value: e.item.value, label: label });\n this.selected.push(attribute.base);\n attribute.search = e.item.label;\n } else {\n this.filter = this.filter.filter(f => f.attribute !== attribute.base);\n attribute.search = \"\";\n }\n\n this.onPageChange(1);\n }\n\n isFilterable(attribute: any): boolean {\n return attribute.type !== \"none\" && attribute.name !== \"invalid\" && (attribute.dependency.length === 0 || this.selected.indexOf(attribute.base) !== -1 || this.selected.filter(value => attribute.dependency.includes(value)).length > 0);\n }\n\n onEdit(data): void {\n let editModal = this.modalService.show(GeoObjectEditorComponent, { backdrop: true, ignoreBackdropClick: true });\n editModal.content.configureAsExisting(data.code, this.list.typeCode, this.list.forDate, this.list.isGeometryEditable);\n editModal.content.setMasterListId(this.list.oid);\n editModal.content.setOnSuccessCallback(() => {\n // Refresh the page\n this.onPageChange(this.page.pageNumber);\n });\n }\n\n onPublish(): void {\n this.message = null;\n\n this.service.publishMasterList(this.list.oid).toPromise()\n .then((historyOid: string) => {\n this.isRefreshing = true;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n\n // this.list = list;\n // this.list.attributes.forEach(attribute => {\n // attribute.isCollapsed = true;\n // });\n\n // Refresh the resultSet\n // this.onPageChange(1);\n }\n\n onNewGeoObject(): void {\n let editModal = this.modalService.show(GeoObjectEditorComponent, { backdrop: true, ignoreBackdropClick: true });\n // editModal.content.fetchGeoObject( data.code, this.list.typeCode );\n editModal.content.configureAsNew(this.list.typeCode, this.list.forDate, this.list.isGeometryEditable);\n editModal.content.setMasterListId(this.list.oid);\n editModal.content.setOnSuccessCallback(() => {\n // Refresh the page\n this.onPageChange(this.page.pageNumber);\n });\n }\n\n onExport(): void {\n this.bsModalRef = this.modalService.show(ExportFormatModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n this.bsModalRef.content.onFormat.subscribe(format => {\n if (format === \"SHAPEFILE\") {\n window.location.href = acp + \"/master-list/export-shapefile?oid=\" + this.list.oid + \"&filter=\" + encodeURIComponent(JSON.stringify(this.getFilter()));\n } else if (format === \"EXCEL\") {\n window.location.href = acp + \"/master-list/export-spreadsheet?oid=\" + this.list.oid + \"&filter=\" + encodeURIComponent(JSON.stringify(this.getFilter()));\n }\n });\n }\n\n changeTypeaheadLoading(attribute: any, loading: boolean): void {\n attribute.loading = loading;\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n onWheel(event: WheelEvent): void {\n let tableEl = (event.target).parentElement.closest(\"table\").parentElement;\n\n tableEl.scrollLeft += event.deltaY;\n event.preventDefault();\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n \n \n \n \n \n\n
\n
{{message}}
\n\n
\n
\n

\n \n {{list.displayLabel}}\n

\n
\n
\n
\n\n
\n

\n \n : \n {{formatDate(list.publishDate)}}\n \n

\n \n

\n \n : \n {{formatDate(list.forDate)}}\n \n

\n
\n
0\" class=\"col-md-6\">\n\t\t
\n\t\t \n\t\t
    \n\t\t
  1. {{f.label}}
  2. \n\t\t
\n\t\t
\n\t\t
\n
\n\n\n\n\n\n \n\n\n\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n \n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t\t\t\t
  • {{subtype.label}}
  • \n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n \n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n
\n\t \n\t\t\t \n\t \n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t {{attribute.label}} \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n \n\n
\n \n
\n\t \n\t
\n\t\n\t\n\t \n\t \n\t
\n\t \n\n
\n
\n
\n \n {{ result[attribute.name] }}
\n
\n
\n \n\n
\n
\n \n \n \n  {{(page.pageNumber-1)*page.pageSize}} \n - {{page.pageNumber*page.pageSize}} \n   {{page.count}}\n \n
\n
\n
\n \n
\n","import { Component, OnInit, OnDestroy, Input } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { webSocket, WebSocketSubject } from \"rxjs/webSocket\";\n\nimport { HttpErrorResponse } from '@angular/common/http';\n\nimport { PublishModalComponent } from './publish-modal.component';\nimport { ExportFormatModalComponent } from './export-format-modal.component';\nimport { MasterList, MasterListVersion } from '@registry/model/registry';\n\nimport { ErrorHandler, ConfirmModalComponent } from '@shared/component';\nimport { RegistryService } from '@registry/service';\nimport { DateService } from '@shared/service/date.service';\nimport { AuthService, LocalizationService } from '@shared/service';\nimport { ExportSystemModalComponent } from './export-system-modal.component';\n\ndeclare var acp: any;\n\n@Component({\n selector: 'published-master-list-history',\n templateUrl: './published-master-list-history.component.html',\n styleUrls: []\n})\nexport class PublishedMasterListHistoryComponent implements OnInit, OnDestroy {\n message: string = null;\n list: MasterList = null;\n page: any = {\n pageSize: 10,\n pageNumber: 1,\n count: 1,\n results: []\n };\n\n @Input() oid: string;\n\n /*\n * Reference to the modal current showing\n */\n bsModalRef: BsModalRef;\n\n notifier: WebSocketSubject<{ type: string, content: any }>;\n\n isAdmin: boolean;\n\n\n constructor(public service: RegistryService, private router: Router, private modalService: BsModalService, public authService: AuthService, private localizeService: LocalizationService,\n private dateService: DateService) {\n\n this.isAdmin = authService.isAdmin();\n }\n\n ngOnInit(): void {\n this.service.getMasterListHistory(this.oid, \"PUBLISHED\").then(list => {\n this.list = list;\n\n this.onPageChange(1);\n });\n\n let baseUrl = \"wss://\" + window.location.hostname + (window.location.port ? ':' + window.location.port : '') + acp;\n\n this.notifier = webSocket(baseUrl + '/websocket/notify');\n this.notifier.subscribe(message => {\n if (message.type === 'PUBLISH_JOB_CHANGE') {\n this.onPageChange(this.page.pageNumber);\n }\n });\n }\n\n ngOnDestroy() {\n this.notifier.complete();\n }\n\n //isGeoObjectTypeRM(type: string): boolean {\n // return this.authService.isGeoObjectTypeRM(type);\n //}\n\n onDeleteMasterListVersion(version: MasterListVersion): void {\n this.bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true,\n });\n this.bsModalRef.content.message = this.localizeService.decode(\"confirm.modal.verify.delete\") + ' [' + version.forDate + ']';\n this.bsModalRef.content.submitText = this.localizeService.decode(\"modal.button.delete\");\n\n this.bsModalRef.content.onConfirm.subscribe(data => {\n this.service.deleteMasterListVersion(version.oid).then(response => {\n this.updateList();\n\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n });\n }\n\n updateList(): void {\n // update the list of versions. \n this.service.getMasterListHistory(this.oid, \"PUBLISHED\").then(list => {\n this.list = list;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onPublish(): void {\n this.message = null;\n\n this.service.publishMasterListVersions(this.list.oid).then((data: { job: string }) => {\n // Refresh the page\n this.onPageChange(this.page.pageNumber);\n\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onPageChange(pageNumber: number): void {\n if (this.list != null) {\n\n this.message = null;\n\n this.service.getPublishMasterListJobs(this.list.oid, this.page.pageSize, pageNumber, \"createDate\", true).then(response => {\n\n this.page = response;\n\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n\n this.updateList();\n }\n }\n\n onViewMetadata(): void {\n this.bsModalRef = this.modalService.show(PublishModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true,\n });\n this.bsModalRef.content.readonly = true;\n this.bsModalRef.content.master = this.list;\n this.bsModalRef.content.isNew = false;\n }\n\n\n onView(version: MasterListVersion): void {\n this.router.navigate(['/registry/master-list/', version.oid, true])\n }\n\n onPublishShapefile(version: MasterListVersion): void {\n\n this.service.publishShapefile(version.oid).then(() => {\n\n this.onPageChange(this.page.pageNumber);\n\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onExportToFhir(version: MasterListVersion): void {\n this.bsModalRef = this.modalService.show(ExportSystemModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true,\n });\n this.bsModalRef.content.onSystemSet.subscribe(systemId => {\n this.service.exportToFhir(version.oid, systemId).then(() => {\n\n this.onPageChange(this.page.pageNumber);\n\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n });\n }\n\n onDownloadShapefile(version: MasterListVersion): void {\n window.location.href = acp + '/master-list/download-shapefile?oid=' + version.oid;\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n
{{message}}
\n\n
\n
\n
\n
\n \n
\n
\n
\n
\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n
\n
\n \n {{formatDate(version.forDate)}}\n \n \n \n {{formatDate(version.publishDate)}}\n \n
\n
\n
\n\n\n
\n
\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n \n

    \n {{job.createDate}} \n {{job.author}} \n {{job.type}} \n {{job.status}} \n {{job.exception.message}} \n {{job.message}} \n

    \n
    \n
    \n
    0\" class=\"solid-table-footer\">\n \n
    \n
    \n
\n
\n
\n
\n","import { Component, OnInit, Input } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { MasterList, MasterListVersion } from \"@registry/model/registry\";\nimport { ErrorHandler, ConfirmModalComponent } from \"@shared/component\";\nimport { PublishModalComponent } from \"./publish-modal.component\";\n\nimport { RegistryService } from \"@registry/service\";\nimport { DateService } from \"@shared/service/date.service\";\nimport { LocalizationService } from \"@shared/service\";\n\n@Component({\n selector: \"master-list-history\",\n templateUrl: \"./master-list-history.component.html\",\n styleUrls: []\n})\nexport class MasterListHistoryComponent implements OnInit {\n\n message: string = null;\n list: MasterList = null;\n forDate: string = \"\";\n isForDateValid: boolean = true;\n\n @Input() oid: string;\n\n /*\n * Reference to the modal current showing\n */\n bsModalRef: BsModalRef;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public service: RegistryService, private router: Router, private modalService: BsModalService, private localizeService: LocalizationService,\n private dateService: DateService) { }\n\n ngOnInit(): void {\n this.service.getMasterListHistory(this.oid, \"EXPLORATORY\").then(list => {\n this.list = list;\n });\n }\n\n onPublish(): void {\n this.message = null;\n\n this.service.createMasterListVersion(this.list.oid, this.forDate).then(version => {\n this.list.versions.push(version);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onViewMetadata(): void {\n this.bsModalRef = this.modalService.show(PublishModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n this.bsModalRef.content.readonly = true;\n this.bsModalRef.content.master = this.list;\n this.bsModalRef.content.originalPublishStartDate = this.list.publishingStartDate;\n this.bsModalRef.content.isNew = false;\n }\n\n onView(version: MasterListVersion): void {\n this.router.navigate([\"/registry/master-list/\", version.oid, false]);\n }\n\n onDelete(version: MasterListVersion): void {\n this.bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n this.bsModalRef.content.message = this.localizeService.decode(\"confirm.modal.verify.delete\") + \" [\" + version.forDate + \"]\";\n this.bsModalRef.content.submitText = this.localizeService.decode(\"modal.button.delete\");\n\n this.bsModalRef.content.onConfirm.subscribe(data => {\n this.service.deleteMasterListVersion(version.oid).then(response => {\n this.list.versions = this.list.versions.filter((value, index, arr) => {\n return value.oid !== version.oid;\n });\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n });\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n
{{message}}
\n\n
\n\n
\n
\n
\n \n\n \n\n \n
\n
\n
\n
\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n
\n
\n \n {{formatDate(version.forDate)}}\n \n \n \n {{formatDate(version.createDate)}}\n \n
\n
\n
\n
\n","import { Component, OnInit } from \"@angular/core\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { MasterList } from \"@registry/model/registry\";\nimport { RegistryService } from \"@registry/service\";\nimport { PublishModalComponent } from \"./publish-modal.component\";\n\n@Component({\n\n selector: \"master-list-view\",\n templateUrl: \"./master-list-view.component.html\",\n styleUrls: [\"./master-list-view.component.css\"]\n})\nexport class MasterListViewComponent implements OnInit {\n\n content: string = \"\";\n list: MasterList = null;\n\n /*\n * Reference to the modal current showing\n */\n bsModalRef: BsModalRef;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: RegistryService, private modalService: BsModalService, private route: ActivatedRoute) { }\n\n ngOnInit(): void {\n const oid = this.route.snapshot.paramMap.get(\"oid\");\n\n if (oid != null) {\n this.content = \"PUB\";\n }\n\n this.service.getMasterList(oid).then(list => {\n this.list = list;\n\n if (list.read) {\n this.content = \"EXP\";\n }\n });\n }\n\n onViewMetadata(event: any): void {\n event.preventDefault();\n\n this.bsModalRef = this.modalService.show(PublishModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n this.bsModalRef.content.readonly = true;\n this.bsModalRef.content.master = this.list;\n this.bsModalRef.content.isNew = false;\n }\n\n renderContent(content: string): void {\n this.content = content;\n }\n\n}\n","
\n \n \n\n
\n\n\n
\n
\n\n
\n
\n

{{list.displayLabel.localizedValue}}

\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n \n \n
\n\n
\n \n \n
\n\n
\n
\n
\n
\n","import { Component, OnInit } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { interval } from \"rxjs\";\n\nimport { RegistryService, IOService } from \"@registry/service\";\nimport { ScheduledJob, ScheduledJobOverview, PaginationPage } from \"@registry/model/registry\";\n\nimport { ErrorHandler, ConfirmModalComponent } from \"@shared/component\";\nimport { LocalizationService, AuthService } from \"@shared/service\";\nimport { DateService } from \"@shared/service/date.service\";\nimport { ModalTypes } from \"@shared/model/modal\";\n\n@Component({\n selector: \"scheduled-jobs\",\n templateUrl: \"./scheduled-jobs.component.html\",\n styleUrls: [\"./scheduled-jobs.css\"]\n})\nexport class ScheduledJobsComponent implements OnInit {\n\n message: string = null;\n\n activeJobsPage: PaginationPage = {\n count: 0,\n pageNumber: 1,\n pageSize: 10,\n results: []\n };\n\n completeJobsPage: PaginationPage = {\n count: 0,\n pageNumber: 1,\n pageSize: 10,\n results: []\n };\n\n /*\n * Reference to the modal current showing\n */\n bsModalRef: BsModalRef;\n\n isAdmin: boolean;\n isMaintainer: boolean;\n isContributor: boolean;\n\n activeTimeCounter: number = 0;\n completeTimeCounter: number = 0;\n\n pollingData: any;\n\n isViewAllOpen: boolean = false;\n\n constructor(public service: RegistryService, private modalService: BsModalService, private router: Router, private dateService: DateService,\n private localizeService: LocalizationService, authService: AuthService, public ioService: IOService) {\n this.isAdmin = authService.isAdmin();\n this.isMaintainer = this.isAdmin || authService.isMaintainer();\n this.isContributor = this.isAdmin || this.isMaintainer || authService.isContributer();\n }\n\n ngOnInit(): void {\n this.onActiveJobsPageChange(1);\n\n this.pollingData = interval(1000).subscribe(() => {\n this.activeTimeCounter++;\n this.completeTimeCounter++;\n\n if (this.isViewAllOpen) {\n if (this.activeTimeCounter >= 4) {\n this.onActiveJobsPageChange(this.activeJobsPage.pageNumber);\n\n this.activeTimeCounter = 0;\n }\n if (this.completeTimeCounter >= 7) {\n this.onCompleteJobsPageChange(this.completeJobsPage.pageNumber);\n\n this.completeTimeCounter = 0;\n }\n } else {\n if (this.activeTimeCounter >= 2) {\n this.onActiveJobsPageChange(this.activeJobsPage.pageNumber);\n\n this.activeTimeCounter = 0;\n }\n }\n });\n }\n\n ngOnDestroy() {\n this.pollingData.unsubscribe();\n }\n\n formatJobStatus(job: ScheduledJobOverview) {\n if (job.status === \"FEEDBACK\") {\n return this.localizeService.decode(\"etl.JobStatus.FEEDBACK\");\n } else if (job.status === \"RUNNING\" || job.status === \"NEW\") {\n return this.localizeService.decode(\"etl.JobStatus.RUNNING\");\n } else if (job.status === \"QUEUED\") {\n return this.localizeService.decode(\"etl.JobStatus.QUEUED\");\n } else if (job.status === \"SUCCESS\") {\n return this.localizeService.decode(\"etl.JobStatus.SUCCESS\");\n } else if (job.status === \"CANCELED\") {\n return this.localizeService.decode(\"etl.JobStatus.CANCELED\");\n } else if (job.status === \"FAILURE\") {\n return this.localizeService.decode(\"etl.JobStatus.FAILURE\");\n } else {\n return this.localizeService.decode(\"etl.JobStatus.RUNNING\");\n }\n }\n\n formatStepConfig(page: PaginationPage): void {\n page.results.forEach(job => {\n let stepConfig = {\n steps: [\n { label: this.localizeService.decode(\"scheduler.step.fileImport\"), status: \"COMPLETE\" },\n\n {\n label: this.localizeService.decode(\"scheduler.step.staging\"),\n status: job.stage === \"NEW\" ? this.getJobStatus(job) : this.getCompletedStatus(job.stage, \"NEW\")\n },\n\n {\n label: this.localizeService.decode(\"scheduler.step.validation\"),\n status: job.stage === \"VALIDATE\" || job.stage === \"VALIDATION_RESOLVE\" ? this.getJobStatus(job) : this.getCompletedStatus(job.stage, \"VALIDATE\")\n },\n\n {\n label: this.localizeService.decode(\"scheduler.step.databaseImport\"),\n status: job.stage === \"IMPORT\" || job.stage === \"IMPORT_RESOLVE\" || job.stage === \"RESUME_IMPORT\" ? this.getJobStatus(job) : \"\"\n }\n ]\n };\n\n job = job as ScheduledJobOverview;\n job.stepConfig = stepConfig;\n });\n }\n\n getCompletedStatus(jobStage: string, targetStage: string): string {\n let order = [\"NEW\", \"VALIDATE\", \"VALIDATION_RESOLVE\", \"IMPORT\", \"IMPORT_RESOLVE\", \"RESUME_IMPORT\"];\n\n let jobPos = order.indexOf(jobStage);\n let targetPos = order.indexOf(targetStage);\n if (targetPos < jobPos) {\n return \"COMPLETE\";\n } else {\n return \"\";\n }\n }\n\n getJobStatus(job: ScheduledJob): string {\n if (job.status === \"QUEUED\" || job.status === \"RUNNING\") {\n return \"WORKING\";\n } else if (job.status === \"FEEDBACK\") {\n return \"STUCK\";\n }\n\n return \"\";\n }\n\n onViewAllCompleteJobs(): void {\n this.onCompleteJobsPageChange(1);\n\n this.isViewAllOpen = true;\n }\n\n onView(code: string): void {\n this.router.navigate([\"/registry/master-list-history/\", code]);\n }\n\n onActiveJobsPageChange(pageNumber: any): void {\n this.message = null;\n\n this.service.getScheduledJobs(this.activeJobsPage.pageSize, pageNumber, \"createDate\", false).then(response => {\n this.activeJobsPage = response;\n this.formatStepConfig(this.activeJobsPage);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onCompleteJobsPageChange(pageNumber: any): void {\n this.message = null;\n\n this.service.getCompletedScheduledJobs(this.completeJobsPage.pageSize, pageNumber, \"createDate\", false).then(response => {\n this.completeJobsPage = response;\n this.formatStepConfig(this.completeJobsPage);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onCancelScheduledJob(historyId: string, job: ScheduledJob): void {\n this.bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n\n this.bsModalRef.content.message = this.localizeService.decode(\"etl.import.cancel.modal.description\");\n this.bsModalRef.content.submitText = this.localizeService.decode(\"etl.import.cancel.modal.button\");\n\n this.bsModalRef.content.type = ModalTypes.danger;\n\n this.bsModalRef.content.onConfirm.subscribe(data => {\n this.ioService.cancelImport(job.configuration).then(response => {\n this.bsModalRef.hide();\n\n for (let i = 0; i < this.activeJobsPage.results.length; ++i) {\n let activeJob = this.activeJobsPage.results[i];\n\n if (activeJob.jobId === job.jobId) {\n this.activeJobsPage.results.splice(i, 1);\n break;\n }\n }\n\n this.onViewAllCompleteJobs();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n });\n }\n\n onResolveScheduledJob(historyId: string, job: ScheduledJob): void {\n this.bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n\n this.bsModalRef.content.message = this.localizeService.decode(\"etl.import.resume.modal.importDescription\");\n this.bsModalRef.content.submitText = this.localizeService.decode(\"etl.import.resume.modal.importButton\");\n\n this.bsModalRef.content.type = ModalTypes.danger;\n\n this.bsModalRef.content.onConfirm.subscribe(data => {\n this.service.resolveScheduledJob(historyId).then(response => {\n this.bsModalRef.hide();\n\n for (let i = 0; i < this.activeJobsPage.results.length; ++i) {\n let activeJob = this.activeJobsPage.results[i];\n\n if (activeJob.jobId === job.jobId) {\n this.activeJobsPage.results.splice(i, 1);\n break;\n }\n }\n\n this.onViewAllCompleteJobs();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n });\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n \n \n\n
\n
{{message}}
\n\n
\n

\n \n

\n
\n
\n
\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n
    \n \n
    \n
    \n \n

    \n \n {{job.fileName}}\n \n \n \n {{formatDate(job.createDate)}}\n \n \n \n {{formatJobStatus(job)}}\n \n

    \n\n \n\n
    \n
    \n\n
    \n \n \n \n \n \n
    \n
    \n
    0\" class=\"solid-table-footer\">\n \n
    \n
    \n\n
    \n\t \n\t \n\t \n\t \n\t \n\t \n \n \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n \n \n\t \n\t \n\t \n\t
    \n\t \n\t 0\" style=\"width:15%;border-bottom: none;\">\n\t \n\t 0\" style=\"width:15%;border-bottom: none;\">\n \n 0\" style=\"width:15%;border-bottom: none;\">\n \n 0\" style=\"width:15%;border-bottom: none;\">\n \n \n\t \n\t 0\" style=\"border-bottom: none; width:0%\">\n
    \n\t
    \n \n

    {{job.fileName}}

    \n\t
    \n\t
    \n\t

    {{formatJobStatus(job)}}

    \n\t
    \n

    {{job.importedRecords}}

    \n
    \n \n {{formatDate(job.createDate)}}\n \n \n \n {{formatDate(job.lastUpdateDate)}}\n \n \n\t \n\t \n\t
    \n\t\n\t
    0\" class=\"solid-table-footer\">\n \n\t
    \n
    \n
\n\n
\n
\n
\n
","import { Component, OnInit } from \"@angular/core\";\nimport { Router, ActivatedRoute } from \"@angular/router\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { webSocket, WebSocketSubject } from \"rxjs/webSocket\";\n\nimport { JobConflictModalComponent } from \"./conflict-widgets/job-conflict-modal.component\";\nimport { ReuploadModalComponent } from \"./conflict-widgets/reupload-modal.component\";\nimport { RegistryService, IOService } from \"@registry/service\";\nimport { DateService } from \"@shared/service/date.service\";\nimport { ScheduledJob } from \"@registry/model/registry\";\n\nimport { ErrorHandler, ConfirmModalComponent } from \"@shared/component\";\nimport { LocalizationService, AuthService } from \"@shared/service\";\nimport { ModalTypes } from \"@shared/model/modal\";\n\ndeclare let acp: any;\n\n@Component({\n selector: \"job\",\n templateUrl: \"./job.component.html\",\n styleUrls: [\"./scheduled-jobs.css\"]\n})\nexport class JobComponent implements OnInit {\n\n message: string = null;\n job: ScheduledJob;\n allSelected: boolean = false;\n historyId: string = \"\";\n\n page: any = {\n count: 0,\n pageNumber: 1,\n pageSize: 10,\n results: []\n };\n\n timeCounter: number = 0;\n\n /*\n * Reference to the modal current showing\n */\n bsModalRef: BsModalRef;\n\n isAdmin: boolean;\n isMaintainer: boolean;\n isContributor: boolean;\n\n isPolling: boolean = false;\n hasRowValidationProblem: boolean = false;\n\n notifier: WebSocketSubject<{ type: string, message: string }>;\n\n constructor(public service: RegistryService, private modalService: BsModalService,\n private router: Router, private route: ActivatedRoute, private dateService: DateService,\n private localizeService: LocalizationService, authService: AuthService, public ioService: IOService) {\n this.isAdmin = authService.isAdmin();\n this.isMaintainer = this.isAdmin || authService.isMaintainer();\n this.isContributor = this.isAdmin || this.isMaintainer || authService.isContributer();\n }\n\n ngOnInit(): void {\n this.historyId = this.route.snapshot.params[\"oid\"];\n\n this.onPageChange(1);\n\n let baseUrl = \"wss://\" + window.location.hostname + (window.location.port ? \":\" + window.location.port : \"\") + acp;\n\n this.notifier = webSocket(baseUrl + \"/websocket/notify\");\n this.notifier.subscribe(message => {\n if (message.type === \"IMPORT_JOB_CHANGE\") {\n this.onPageChange(this.page.pageNumber);\n }\n });\n }\n\n ngOnDestroy() {\n }\n\n formatAffectedRows(rows: string) {\n return rows.replace(/,/g, \", \");\n }\n\n formatValidationResolve(obj: any) {\n return JSON.stringify(obj);\n }\n\n onProblemResolved(problem: any): void {\n for (let i = 0; i < this.page.results.length; ++i) {\n let pageConflict = this.page.results[i];\n\n if (pageConflict.id === problem.id) {\n this.page.results.splice(i, 1);\n }\n }\n }\n\n getFriendlyProblemType(probType: string): string {\n if (probType === \"net.geoprism.registry.io.ParentCodeException\") {\n return this.localizeService.decode(\"scheduledjobs.job.problem.type.parent.lookup\");\n }\n\n if (probType === \"net.geoprism.registry.io.PostalCodeLocationException\") {\n return this.localizeService.decode(\"scheduledjobs.job.problem.type.postal.code.lookup\");\n }\n\n if (probType === \"net.geoprism.registry.io.AmbiguousParentException\") {\n return this.localizeService.decode(\"scheduledjobs.job.problem.type.multi.parent.lookup\");\n }\n\n if (probType === \"net.geoprism.registry.io.InvalidGeometryException\") {\n return this.localizeService.decode(\"scheduledjobs.job.problem.type.invalid.geom.lookup\");\n }\n\n if (probType === \"net.geoprism.registry.DataNotFoundException\") {\n return this.localizeService.decode(\"scheduledjobs.job.problem.type.datanotfound\");\n }\n \n if (probType === \"net.geoprism.registry.geoobject.ImportOutOfRangeException\") {\n return this.localizeService.decode(\"scheduledjobs.job.problem.type.importOutOfRange\");\n }\n\n if (\n probType === \"net.geoprism.registry.roles.CreateGeoObjectPermissionException\" ||\n probType === \"net.geoprism.registry.roles.WriteGeoObjectPermissionException\" ||\n probType === \"net.geoprism.registry.roles.DeleteGeoObjectPermissionException\" ||\n probType === \"net.geoprism.registry.roles.ReadGeoObjectPermissionException\"\n ) {\n return this.localizeService.decode(\"scheduledjobs.job.problem.type.permission\");\n }\n\n // if(probType === \"net.geoprism.registry.io.TermValueException\"){\n // return this.localizeService.decode( \"scheduledjobs.job.problem.type.postal.code.lookup\" );\n // }\n\n if (\n probType === \"com.runwaysdk.dataaccess.DuplicateDataException\" ||\n probType === \"net.geoprism.registry.DuplicateGeoObjectException\" ||\n probType === \"net.geoprism.registry.DuplicateGeoObjectCodeException\"\n ) {\n return this.localizeService.decode(\"scheduledjobs.job.problem.type.duplicate.data.lookup\");\n }\n\n return probType;\n }\n\n onEdit(problem: any): void {\n // this.router.navigate( ['/registry/master-list-history/', code] )\n\n this.bsModalRef = this.modalService.show(JobConflictModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n this.bsModalRef.content.problem = problem;\n this.bsModalRef.content.job = this.job;\n this.bsModalRef.content.onConflictAction.subscribe(data => {\n if (data.action === \"RESOLVED\") {\n this.onProblemResolved(data.data);\n }\n });\n }\n\n onPageChange(pageNumber: any): void {\n this.message = null;\n\n this.service.getScheduledJob(this.historyId, this.page.pageSize, pageNumber, true).then(response => {\n this.job = response;\n\n if (this.job.stage === \"IMPORT_RESOLVE\") {\n this.page = this.job.importErrors;\n } else if (this.job.stage === \"VALIDATION_RESOLVE\") {\n this.page = this.job.problems;\n\n for (let i = 0; i < this.page.results.length; ++i) {\n let problem = this.page.results[i];\n\n if (problem.type === \"RowValidationProblem\") {\n this.hasRowValidationProblem = true;\n }\n }\n }\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onViewAllActiveJobs(): void {\n\n }\n\n onViewAllCompleteJobs(): void {\n\n }\n\n toggleAll(): void {\n this.allSelected = !this.allSelected;\n\n this.job.importErrors.results.forEach(row => {\n row.selected = this.allSelected;\n });\n }\n\n onReuploadAndResume(historyId: string): void {\n this.bsModalRef = this.modalService.show(ReuploadModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n\n this.bsModalRef.content.job = this.job;\n\n this.bsModalRef.content.onConfirm.subscribe(data => {\n this.router.navigate([\"/registry/scheduled-jobs\"]);\n });\n }\n\n onResolveScheduledJob(historyId: string): void {\n if (this.page.results.length === 0) {\n this.service.resolveScheduledJob(historyId).then(response => {\n this.router.navigate([\"/registry/scheduled-jobs\"]);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n } else {\n this.bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n\n if (this.job.stage === \"VALIDATION_RESOLVE\") {\n this.bsModalRef.content.message = this.localizeService.decode(\"etl.import.resume.modal.validationDescription\");\n this.bsModalRef.content.submitText = this.localizeService.decode(\"etl.import.resume.modal.validationButton\");\n } else {\n this.bsModalRef.content.message = this.localizeService.decode(\"etl.import.resume.modal.importDescription\");\n this.bsModalRef.content.submitText = this.localizeService.decode(\"etl.import.resume.modal.importButton\");\n }\n\n this.bsModalRef.content.type = ModalTypes.danger;\n\n this.bsModalRef.content.onConfirm.subscribe(data => {\n this.service.resolveScheduledJob(historyId).then(response => {\n this.router.navigate([\"/registry/scheduled-jobs\"]);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n });\n }\n }\n\n onCancelScheduledJob(historyId: string): void {\n this.bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n\n this.bsModalRef.content.message = this.localizeService.decode(\"etl.import.cancel.modal.description\");\n this.bsModalRef.content.submitText = this.localizeService.decode(\"etl.import.cancel.modal.button\");\n\n this.bsModalRef.content.type = ModalTypes.danger;\n\n this.bsModalRef.content.onConfirm.subscribe(data => {\n this.ioService.cancelImport(this.job.configuration).then(response => {\n // this.bsModalRef.hide()\n this.router.navigate([\"/registry/scheduled-jobs\"]);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n });\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n \n \n\n
\n
{{message}}
\n\n
\n

\n \n

\n
\n
\n
\n
\n\n \n

\n \n {{job.fileName}}\n \n \n \n {{job.author}}\n \n \n \n \n {{formatDate(job.createDate)}}\n \n \n

\n\n
\n
\n
\n
\n\n
{{job.importedRecords}} \n \n {{job.workTotal}} \n \n
\n
{{job.workTotal - job.importedRecords}}
\n\n
\n
\n
\n
\n \n \n \n \n
\n \n
\n \n \n \n \n
\n \n
0 && !hasRowValidationProblem\" class=\"button-holder\" style=\"display:block; margin:10px;text-align: right;\">\n \n
\n \n
\n \n
\n \n \n
\n
\n
0\" class=\"row\">\n
\n \n
    \n \n \n \n \n\t \n\t \n\t \n\t \n\t \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n\n \n\t \n\t \n\t \n\t \n \n\t \n\t \n \n
    \n\t \n\t \n \n\t \n \n \n\t \n\t
    \n \n \n \n \n \n \n \n
    \n

    {{getFriendlyProblemType(row.exception.type)}}

    \n
    \n

    {{row.exception.message}}

    \n
    \n

    {{row.rowNum}}

    \n
    \n \n
    \n\t

    {{row.type}}

    \n\t
    \n

    {{row.exception.message}}

    \n

    {{row.label}}

    \n
    \n

    {{formatAffectedRows(row.affectedRows)}}

    \n
    \n\t \n\t
    \n
    \n
    0\" class=\"solid-table-footer\">\n \n
    \n
    \n
\n
\n
\n
\n
","import { Component, OnInit } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Subject } from \"rxjs\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { ScheduledJobOverview } from \"@registry/model/registry\";\n\nimport { RegistryService, IOService } from \"@registry/service\";\n\nimport { ErrorHandler } from \"@shared/component\";\nimport { LocalizationService } from \"@shared/service\";\n\n@Component({\n selector: \"job-conflict-modal\",\n templateUrl: \"./job-conflict-modal.component.html\",\n styleUrls: []\n})\nexport class JobConflictModalComponent implements OnInit {\n\n message: string = null;\n problem: any;\n job: ScheduledJobOverview;\n\n /*\n * Observable subject for submission. Called when an update is successful\n */\n onConflictAction: Subject;\n\n readonly: boolean = false;\n edit: boolean = false;\n\n constructor(private service: RegistryService, private iService: IOService, private lService: LocalizationService, public bsModalRef: BsModalRef) {\n this.onConflictAction = new Subject();\n }\n\n ngOnInit(): void {\n\n }\n\n onProblemResolvedListener(problem: any): void {\n this.onConflictAction.next({ action: \"RESOLVED\", data: problem });\n }\n\n onCancel(): void {\n this.bsModalRef.hide();\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n
{{message}}
\n\n
\n

\n \n

\n
\n \n
\n\n
\n \n
\n \n
\n
\n \n \n \n
\n \n
\n \n
\n
\n \n
\n
\n
\n\n
\n
\n \n
","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\nimport { BsModalRef, BsModalService } from \"ngx-bootstrap/modal\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { ScheduledJob, ImportError } from \"@registry/model/registry\";\n\nimport { GeoObjectEditorComponent } from \"../../geoobject-editor/geoobject-editor.component\";\n\nimport { RegistryService, IOService } from \"@registry/service\";\nimport { DateService } from \"@shared/service/date.service\";\nimport { ErrorHandler } from \"@shared/component\";\nimport { LocalizationService } from \"@shared/service\";\n\n@Component({\n selector: \"import-problem-widget\",\n templateUrl: \"./import-problem-widget.component.html\",\n styleUrls: []\n})\nexport class ImportProblemWidgetComponent implements OnInit {\n\n message: string = null;\n @Input() problem: ImportError;\n @Input() job: ScheduledJob;\n @Output() public onProblemResolved = new EventEmitter();\n\n readonly: boolean = false;\n edit: boolean = false;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: RegistryService, private iService: IOService, private dateService: DateService,\n private lService: LocalizationService, public bsModalRef: BsModalRef, private modalService: BsModalService\n ) { }\n\n ngOnInit(): void {\n\n }\n\n onEditGeoObject(): void {\n let editModal = this.modalService.show(GeoObjectEditorComponent, {\n backdrop: true,\n ignoreBackdropClick: true\n });\n\n editModal.content.configureFromImportError(this.problem, this.job.historyId, this.job.configuration.startDate, true);\n editModal.content.setMasterListId(null);\n editModal.content.setOnSuccessCallback(() => {\n this.onProblemResolved.emit(this.problem);\n this.bsModalRef.hide();\n });\n }\n\n getFriendlyProblemType(probType: string): string {\n if (probType === \"net.geoprism.registry.io.ParentCodeException\") {\n return this.lService.decode(\"scheduledjobs.job.problem.type.parent.lookup\");\n }\n\n if (probType === \"net.geoprism.registry.io.PostalCodeLocationException\") {\n return this.lService.decode(\"scheduledjobs.job.problem.type.postal.code.lookup\");\n }\n\n if (probType === \"net.geoprism.registry.io.AmbiguousParentException\") {\n return this.lService.decode(\"scheduledjobs.job.problem.type.multi.parent.lookup\");\n }\n\n if (probType === \"net.geoprism.registry.io.InvalidGeometryException\") {\n return this.lService.decode(\"scheduledjobs.job.problem.type.invalid.geom.lookup\");\n }\n\n if (probType === \"net.geoprism.registry.DataNotFoundException\") {\n return this.lService.decode(\"scheduledjobs.job.problem.type.datanotfound\");\n }\n\n if (\n probType === \"net.geoprism.registry.roles.CreateGeoObjectPermissionException\" ||\n probType === \"net.geoprism.registry.roles.WriteGeoObjectPermissionException\" ||\n probType === \"net.geoprism.registry.roles.DeleteGeoObjectPermissionException\" ||\n probType === \"net.geoprism.registry.roles.ReadGeoObjectPermissionException\"\n ) {\n return this.lService.decode(\"scheduledjobs.job.problem.type.permission\");\n }\n\n // if(probType === \"net.geoprism.registry.io.TermValueException\"){\n // return this.localizeService.decode( \"scheduledjobs.job.problem.type.postal.code.lookup\" );\n // }\n if (\n probType === \"com.runwaysdk.dataaccess.DuplicateDataException\" ||\n probType === \"net.geoprism.registry.DuplicateGeoObjectException\" ||\n probType === \"net.geoprism.registry.DuplicateGeoObjectCodeException\"\n ) {\n return this.lService.decode(\"scheduledjobs.job.problem.type.duplicate.data.lookup\");\n }\n\n return probType;\n }\n\n onSubmit(): void {\n\n }\n\n onCancel(): void {\n this.bsModalRef.hide();\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n
{{message}}
\n\n\n \n\n \n
\n
\n
\n\n \n

\n \n {{job.fileName}}\n \n \n : {{job.author}}\n \n \n :\n \n {{formatDate(job.createDate)}}\n \n \n

\n\n
\n
\n
\n
\n\n
\n
\n\n
\n
\n
\n

\n

{{getFriendlyProblemType(problem.exception.type)}}

\n\n

\n

{{problem.exception.message}}

\n\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n\n
","import { Component, OnInit, Input, EventEmitter, Output } from \"@angular/core\";\nimport { BsModalRef, BsModalService } from \"ngx-bootstrap/modal\";\n\nimport { Observable } from \"rxjs\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { TypeaheadMatch } from \"ngx-bootstrap/typeahead\";\n\nimport { ScheduledJob } from \"@registry/model/registry\";\nimport { RegistryService, IOService } from \"@registry/service\";\nimport { DateService } from \"@shared/service/date.service\";\n\nimport { ErrorHandler } from \"@shared/component\";\nimport { LocalizationService } from \"@shared/service\";\n\n@Component({\n selector: \"parent-reference-problem-widget\",\n templateUrl: \"./parent-reference-problem-widget.component.html\",\n styleUrls: []\n})\nexport class ParentReferenceProblemWidgetComponent implements OnInit {\n\n message: string = null;\n @Input() problem: any;\n @Input() job: ScheduledJob;\n @Output() public onProblemResolved = new EventEmitter();\n\n searchLabel: string;\n\n /*\n * Observable subject for submission. Called when an update is successful\n */\n // onConflictAction: Subject;\n\n readonly: boolean = false;\n edit: boolean = false;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: RegistryService, private iService: IOService, private dateService: DateService,\n private lService: LocalizationService, public bsModalRef: BsModalRef, private modalService: BsModalService\n ) { }\n\n ngOnInit(): void {\n // this.onConflictAction = new Subject();\n\n // this.searchLabel = this.problem.label;\n\n this.problem.parent = null;\n this.searchLabel = \"\";\n }\n\n getString(conflict: any): string {\n return JSON.stringify(conflict);\n }\n\n getValidationProblemDisplayLabel(conflict: any): string {\n return conflict.type;\n }\n\n getTypeAheadObservable(typeCode: string, conflict: any): Observable {\n let parentCode = null;\n let hierarchyCode = this.job.configuration.hierarchy;\n\n return Observable.create((observer: any) => {\n this.service.getGeoObjectSuggestions(this.searchLabel, typeCode, parentCode, null, hierarchyCode, this.job.startDate, this.job.endDate).then(results => {\n observer.next(results);\n });\n });\n }\n\n typeaheadOnSelect(e: TypeaheadMatch, conflict: any): void {\n this.service.getParentGeoObjects(e.item.uid, conflict.typeCode, [], false, this.job.startDate).then(ancestors => {\n conflict.parent = ancestors.geoObject;\n this.searchLabel = ancestors.geoObject.properties.displayLabel.localizedValue;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onIgnore(): void {\n let cfg = {\n resolution: \"IGNORE\",\n validationProblemId: this.problem.id\n };\n\n this.service.submitValidationResolve(cfg).then(response => {\n this.onProblemResolved.emit(this.problem);\n\n this.bsModalRef.hide();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onCreateSynonym(): void {\n let cfg = {\n validationProblemId: this.problem.id,\n resolution: \"SYNONYM\",\n code: this.problem.parent.properties.code,\n typeCode: this.problem.parent.properties.type,\n label: this.problem.label\n };\n\n this.service.submitValidationResolve(cfg).then(response => {\n this.onProblemResolved.emit(this.problem);\n\n this.bsModalRef.hide();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onCancel(): void {\n this.bsModalRef.hide();\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n
{{message}}
\n\n\n \n\n \n
\n
\n
\n\n \n

\n \n {{job.fileName}}\n \n \n : {{job.author}}\n \n \n : \n \n {{formatDate(job.createDate)}}\n \n \n

\n\n
\n
\n
\n
\n\n
\n
\n\n
\n
\n

\n

{{getValidationProblemDisplayLabel(problem)}}

\n\n

\n

\n \n

\n\n

\n

\n \n

\n
\n
\n\t
\n\t
\n\t\t \n\t
\n\t
\n\t
0\" style=\"margin-top:10px;\">\n\t\t
    \n\t\t\t\t\t\t\t\t
  1. {{con.label}} ({{con.type}})
  2. \n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t
\n\t
\n\t
\n\t
\n\t \n\t
\n\t
\n\t {{problem.label}}\n\t
\n\t
\n\t
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n
\n
\n\n
","import { Component, OnInit, Input, EventEmitter, Output } from \"@angular/core\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { BsModalRef, BsModalService } from \"ngx-bootstrap/modal\";\nimport { Observable } from \"rxjs\";\nimport { TypeaheadMatch } from \"ngx-bootstrap/typeahead\";\n\nimport { ScheduledJob } from \"@registry/model/registry\";\nimport { RegistryService, IOService } from \"@registry/service\";\nimport { DateService } from \"@shared/service/date.service\";\n\nimport { LocalizationService } from \"@shared/service\";\nimport { ErrorHandler } from \"@shared/component\";\n\n@Component({\n selector: \"term-reference-problem-widget\",\n templateUrl: \"./term-reference-problem-widget.component.html\",\n styleUrls: []\n})\nexport class TermReferenceProblemWidgetComponent implements OnInit {\n\n message: string = null;\n @Input() problem: any;\n @Input() job: ScheduledJob;\n @Output() public onProblemResolved = new EventEmitter();\n\n termId: string = null;\n searchLabel: string;\n\n readonly: boolean = false;\n edit: boolean = false;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: RegistryService, private iService: IOService, private dateService: DateService,\n private lService: LocalizationService, public bsModalRef: BsModalRef, private modalService: BsModalService\n ) { }\n\n ngOnInit(): void {\n this.problem.parent = null;\n this.searchLabel = \"\";\n }\n\n getValidationProblemDisplayLabel(conflict: any): string {\n return conflict.type;\n }\n\n getTypeAheadObservable(conflict: any): Observable {\n return Observable.create((observer: any) => {\n this.iService.getTermSuggestions(conflict.mdAttributeId, this.searchLabel, \"20\").then(results => {\n observer.next(results);\n });\n });\n }\n\n typeaheadOnSelect(e: TypeaheadMatch): void {\n this.termId = e.item.value;\n }\n\n onIgnore(): void {\n let cfg = {\n resolution: \"IGNORE\",\n validationProblemId: this.problem.id\n };\n\n this.service.submitValidationResolve(cfg).then(response => {\n this.onProblemResolved.emit(this.problem);\n\n this.bsModalRef.hide();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onCreateSynonym(): void {\n let cfg = {\n validationProblemId: this.problem.id,\n resolution: \"SYNONYM\",\n classifierId: this.termId,\n label: this.problem.label\n };\n\n this.service.submitValidationResolve(cfg).then(response => {\n this.onProblemResolved.emit(this.problem);\n\n this.bsModalRef.hide();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onCancel(): void {\n this.bsModalRef.hide();\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n
{{message}}
\n\n\n \n\n \n
\n
\n
\n\n \n

\n \n {{job.fileName}}\n \n \n : {{job.author}}\n \n \n : \n \n {{formatDate(job.createDate)}}\n \n \n

\n\n
\n
\n
\n
\n\n
\n
\n\n
\n
\n

\n

{{getValidationProblemDisplayLabel(problem)}}

\n\n

\n

\n \n

\n\n

\n

\n
\n
\n\t
\n
\n \n
\n
\n {{problem.attributeLabel}}\n
\n
\n\t
\n\t
\n\t \n\t
\n\t
\n\t {{problem.label}}\n\t
\n\t
\n\t
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n
\n
\n\n
","import { Component, OnInit, Input, EventEmitter, Output } from \"@angular/core\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { Observable } from \"rxjs\";\n\nimport { TypeaheadMatch } from \"ngx-bootstrap/typeahead\";\n\nimport { ScheduledJob } from \"@registry/model/registry\";\nimport { RegistryService, IOService } from \"@registry/service\";\nimport { DateService } from \"@shared/service/date.service\";\n\nimport { ErrorHandler } from \"@shared/component\";\nimport { LocalizationService } from \"@shared/service\";\n\n@Component({\n selector: \"row-validation-problem-widget\",\n templateUrl: \"./row-validation-problem-widget.component.html\",\n styleUrls: []\n})\nexport class RowValidationProblemWidgetComponent implements OnInit {\n\n message: string = null;\n @Input() problem: any;\n @Input() job: ScheduledJob;\n @Output() public onProblemResolved = new EventEmitter();\n\n searchLabel: string;\n\n /*\n * Observable subject for submission. Called when an update is successful\n */\n // onConflictAction: Subject;\n\n readonly: boolean = false;\n edit: boolean = false;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: RegistryService, private iService: IOService, private dateService: DateService,\n private lService: LocalizationService, public bsModalRef: BsModalRef\n ) { }\n\n ngOnInit(): void {\n // this.onConflictAction = new Subject();\n\n // this.searchLabel = this.problem.label;\n\n this.problem.parent = null;\n this.searchLabel = \"\";\n }\n\n getString(conflict: any): string {\n return JSON.stringify(conflict);\n }\n\n getValidationProblemDisplayLabel(conflict: any): string {\n return conflict.type;\n }\n\n getTypeAheadObservable(typeCode: string, conflict: any): Observable {\n let parentCode = null;\n let hierarchyCode = this.job.configuration.hierarchy;\n\n return Observable.create((observer: any) => {\n this.service.getGeoObjectSuggestions(this.searchLabel, typeCode, parentCode, null, hierarchyCode, this.job.startDate, this.job.endDate).then(results => {\n observer.next(results);\n });\n });\n }\n\n typeaheadOnSelect(e: TypeaheadMatch, conflict: any): void {\n this.service.getParentGeoObjects(e.item.uid, conflict.typeCode, [], false, this.job.startDate).then(ancestors => {\n conflict.parent = ancestors.geoObject;\n this.searchLabel = ancestors.geoObject.properties.displayLabel.localizedValue;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onIgnore(): void {\n let cfg = {\n resolution: \"IGNORE\",\n validationProblemId: this.problem.id\n };\n\n this.service.submitValidationResolve(cfg).then(response => {\n this.onProblemResolved.emit(this.problem);\n\n this.bsModalRef.hide();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n formatAffectedRows(rows: string) {\n return rows.replace(/,/g, \", \");\n }\n\n onCreateSynonym(): void {\n let cfg = {\n validationProblemId: this.problem.id,\n resolution: \"SYNONYM\",\n code: this.problem.parent.properties.code,\n typeCode: this.problem.parent.properties.type,\n label: this.problem.label\n };\n\n this.service.submitValidationResolve(cfg).then(response => {\n this.onProblemResolved.emit(this.problem);\n\n this.bsModalRef.hide();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n onCancel(): void {\n this.bsModalRef.hide();\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n
{{message}}
\n\n\n \n\n \n
\n
\n
\n\n \n

\n \n {{job.fileName}}\n \n \n : {{job.author}}\n \n \n : \n \n {{formatDate(job.createDate)}}\n \n \n

\n\n
\n
\n
\n
\n\n
\n
\n\n
\n
\n

\n

{{getValidationProblemDisplayLabel(problem)}}

\n\n

\n

\n\n

\n

\n
\n
\n\t
\n\t
\n\t\t \n\t
\n\t
\n {{formatAffectedRows(problem.affectedRows)}}\n
\n\t
\n\t
\n\t
\n\t \n\t
\n\t
\n\t {{problem.exception.message}}\n\t
\n\t
\n
\n
\n
\n
\n\n
","import { Component, Input, ViewChild, ElementRef } from '@angular/core';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { Subject } from 'rxjs';\nimport { FileUploader, FileUploaderOptions } from 'ng2-file-upload';\n\nimport { ModalTypes } from '@shared/model/modal';\nimport { LocalizationService, EventService } from '@shared/service';\nimport { ErrorHandler } from '@shared/component';\n\nimport { ScheduledJob } from '@registry/model/registry';\n\ndeclare var acp: any;\n\n@Component( {\n selector: 'reupload-modal',\n templateUrl: './reupload-modal.component.html',\n styleUrls: []\n} )\nexport class ReuploadModalComponent {\n @Input() title: string = this.localizeService.decode(\"reuploadmodal.title\");\n\n @Input() message: string = this.localizeService.decode(\"reuploadmodal.message\");\n \n @Input() data: any;\n \n @Input() submitText: string = this.localizeService.decode(\"reuploadmodal.import\");\n \n @Input() cancelText: string = this.localizeService.decode(\"modal.button.cancel\");\n \n @Input() type: ModalTypes = ModalTypes.warning;\n \n @Input() job: ScheduledJob;\n \n @ViewChild( 'myFile' )\n fileRef: ElementRef;\n \n /*\n * File uploader\n */\n uploader: FileUploader;\n \n errorMessage: string;\n \n /*\n * Called on confirm\n */\n public onConfirm: Subject;\n \n constructor( public bsModalRef: BsModalRef, private localizeService: LocalizationService, private eventService: EventService ) { }\n \n ngOnInit(): void {\n this.onConfirm = new Subject();\n \n let options: FileUploaderOptions = {\n queueLimit: 1,\n removeAfterUpload: true,\n url: acp + '/etl/reimport'\n };\n \n this.uploader = new FileUploader( options );\n this.uploader.onBuildItemForm = ( fileItem: any, form: any ) => {\n form.append( 'json', JSON.stringify(this.job.configuration) );\n };\n this.uploader.onBeforeUploadItem = ( fileItem: any ) => {\n this.eventService.start();\n };\n this.uploader.onCompleteItem = ( item: any, response: any, status: any, headers: any ) => {\n this.fileRef.nativeElement.value = \"\";\n this.eventService.complete();\n };\n this.uploader.onSuccessItem = ( item: any, response: string, status: number, headers: any ) => {\n this.onConfirm.next( this.data );\n this.bsModalRef.hide();\n };\n this.uploader.onErrorItem = ( item: any, response: string, status: number, headers: any ) => {\n this.error( JSON.parse( response ) );\n }\n }\n \n toString(data: any): string\n {\n return JSON.stringify(data);\n }\n \n confirm(): void {\n if ( this.uploader.queue != null && this.uploader.queue.length > 0 ) {\n this.uploader.uploadAll();\n }\n else {\n this.error( { message: this.localizeService.decode( 'io.missing.file' ), error: {} } );\n }\n }\n \n public error( err: any ): void {\n this.errorMessage = ErrorHandler.getMessageFromError(err);\n }\n}\n","
\n\n
{{errorMessage}}
\n\n
\n

{{title}}

\n
\n\n
{{message}}
\n\n
\n
\n \n
\n \n \n
\n
\n\n
\n
\n \n \n
\n
\n
\n
","import { Component, OnInit, Input } from \"@angular/core\";\nimport { DatePipe } from \"@angular/common\";\n\nimport { TaskService } from \"@registry/service\";\nimport { DateService } from \"@shared/service/date.service\";\nimport { GeoObjectType, PaginationPage } from \"@registry/model/registry\";\n\nimport { LocalizationService } from \"@shared/service\";\n\n@Component({\n selector: \"task-viewer\",\n templateUrl: \"./task-viewer.component.html\",\n styleUrls: [\"./task-viewer.component.css\"],\n providers: [DatePipe]\n})\n\nexport class TaskViewerComponent implements OnInit {\n\n @Input() geoObjectType: GeoObjectType;\n\n inProgressTasks: PaginationPage = {\n count: 0,\n pageNumber: 1,\n pageSize: 10,\n results: []\n };\n\n completedTasks: PaginationPage = {\n count: 0,\n pageNumber: 1,\n pageSize: 10,\n results: []\n };\n\n isViewAllOpen: boolean = false;\n\n activeTimeCounter: number = 0;\n completeTimeCounter: number = 0;\n\n pollingData: any;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private taskService: TaskService, private localizeService: LocalizationService, private dateService: DateService) { }\n\n ngOnInit(): void {\n this.onInProgressTasksPageChange(1);\n }\n\n onInProgressTasksPageChange(pageNumber: any): void {\n this.taskService.getMyTasks(pageNumber, this.inProgressTasks.pageSize, \"UNRESOLVED\").then(page => {\n this.inProgressTasks = page;\n });\n }\n\n onCompletedTasksPageChange(pageNumber: any): void {\n this.taskService.getMyTasks(pageNumber, this.completedTasks.pageSize, \"RESOLVED\").then(page => {\n this.completedTasks = page;\n });\n }\n\n onCompleteTask(task: any): void {\n // this.isViewAllOpen = true;\n\n this.taskService.completeTask(task.id).then(() => {\n const index = this.inProgressTasks.results.findIndex(t => t.id === task.id);\n\n if (index !== -1) {\n this.inProgressTasks.results.splice(index, 1);\n }\n\n if(this.isViewAllOpen) {\n this.onCompletedTasksPageChange(this.completedTasks.pageNumber);\n }\n });\n }\n\n onMoveTaskToInProgress(task: any): void {\n this.isViewAllOpen = true;\n\n this.taskService.setTaskStatus(task.id, \"UNRESOLVED\").then(() => {\n const index = this.completedTasks.results.findIndex(t => t.id === task.id);\n\n if (index !== -1) {\n this.completedTasks.results.splice(index, 1);\n }\n\n this.completedTasks.results.splice(index, 1);\n this.inProgressTasks.results.push(task);\n });\n }\n\n onToggleCompletedTasks(): void {\n this.isViewAllOpen = !this.isViewAllOpen;\n\n if (this.isViewAllOpen) {\n this.onCompletedTasksPageChange(1);\n }\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n}\n","
\n \n\n
\n\n \n\n

\n \n

\n
\n\n
0\">\n
\n
\n \n
\n

{{task.title}}

\n
\n\n
\n
\n
\n

{{task.msg}}

\n \n \n {{formatDate(task.createDate)}}\n \n
\n
\n \n\n \n
\n
\n
\n
\n
0\" class=\"solid-table-footer\">\n \n \n
\n
\n
\n
\n\n\n
\n

\n \n

\n \n
\n
\n\n
\n
\n
0\">\n \n
\n

{{task.title}}

\n
\n\n
\n
\n
\n

{{task.msg}}

\n \n \n {{formatDate(task.createDate)}}\n \n \n \n {{formatDate(task.completedDate)}}\n \n
\n
\n\n \n \n
\n
\n
\n
\n
0\" class=\"solid-table-footer\">\n \n \n
\n
\n
\n

\n \n

\n
\n
\n
\n\n\n
\n","import { Component, OnInit, Input, OnDestroy, EventEmitter, Output } from '@angular/core';\nimport { Observable, Subject, Subscription } from 'rxjs';\nimport { HttpErrorResponse } from '@angular/common/http';\n\nimport { SynchronizationConfig, MasterList, MasterListView } from '@registry/model/registry';\nimport { RegistryService, SynchronizationConfigService } from '@registry/service';\n\ninterface FhirSyncLevel {\n masterListId: string;\n versionId: string;\n level: number;\n}\n\n@Component({\n selector: 'fhir-export-synchronization-config',\n templateUrl: './fhir-export-synchronization-config.component.html',\n styleUrls: []\n})\nexport class FhirExportSynchronizationConfigComponent implements OnInit, OnDestroy {\n message: string = null;\n\n @Input() config: SynchronizationConfig;\n @Input() fieldChange: Subject;\n @Output() onError = new EventEmitter();\n\n subscription: Subscription = null;\n versions: { [key: string]: MasterList } = {};\n implementations: { className: string, label: string }[] = [];\n lists: MasterListView[] = [];\n\n constructor(private service: SynchronizationConfigService, private rService: RegistryService) { }\n\n ngOnInit(): void {\n\n this.reset();\n\n this.subscription = this.fieldChange.subscribe((field: string) => {\n if (field === 'organization' || field === 'system') {\n this.reset();\n }\n });\n\n this.service.getFhirExportImplementations().then(implementations => {\n this.implementations = implementations;\n });\n }\n\n ngOnDestroy(): void {\n\n if (this.subscription != null) {\n this.subscription.unsubscribe();\n }\n }\n\n reset(): void {\n\n if (this.config.configuration == null) {\n this.config.configuration = {\n levels: [],\n hierarchy: null\n }\n }\n\n if (this.config.configuration.levels != null) {\n for (var i = 0; i < this.config.configuration.levels.length; ++i) {\n var level = this.config.configuration.levels[i];\n\n // Get version options\n this.onSelectMasterList(level);\n }\n }\n else {\n this.config.configuration.levels = [];\n }\n\n // Get \n this.rService.getMasterListsByOrg().then(response => {\n\n this.lists = [];\n\n response.orgs.forEach(org => {\n org.lists.forEach(view => {\n if (view.read) {\n this.lists.push(view);\n }\n });\n })\n });\n }\n\n onSelectMasterList(level: FhirSyncLevel): void {\n\n if (level.masterListId != null) {\n\n this.rService.getMasterListHistory(level.masterListId, 'PUBLISHED').then(list => {\n this.versions[level.masterListId] = list;\n });\n }\n else {\n this.versions[level.masterListId] = null;\n }\n }\n\n addLevel(): void {\n var level = {\n masterListId: null,\n versionId: null,\n level: this.config.configuration.levels.length,\n };\n\n this.config.configuration.levels.push(level);\n }\n\n removeLevel(i: number): void {\n this.config.configuration.levels.splice(i, 1);\n\n // Reorder the level\n if (this.config.configuration != null && this.config.configuration.levels != null) {\n for (var i = 0; i < this.config.configuration.levels.length; ++i) {\n this.config.configuration.levels[i].level = i;\n }\n }\n }\n\n error(err: HttpErrorResponse): void {\n this.onError.emit(err);\n }\n\n}\n","
\n
\n \n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n
\n\n
\n
\n
","import { Component, OnInit, Input, OnDestroy, Output, EventEmitter } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { HttpErrorResponse } from '@angular/common/http';\n\nimport { SynchronizationConfig, OrgSyncInfo, GeoObjectType } from '@registry/model/registry';\nimport { SynchronizationConfigService } from '@registry/service';\nimport { AttributeConfigInfo, DHIS2AttributeMapping, SyncLevel } from '@registry/model/sync';\n\nlet DEFAULT_MAPPING_STRATEGY = \"net.geoprism.registry.etl.DHIS2AttributeMapping\";\n\nexport interface LevelRow {\n isAttributeEditor: boolean;\n\n level?: SyncLevel;\n levelNum?: number;\n\n attrCfg?: GOTAttributeConfig;\n}\nexport interface GOTAttributeConfig {\n geoObjectTypeCode?: string;\n mappings: DHIS2AttributeMapping[];\n attrConfigInfos: AttributeConfigInfo[];\n}\n\n@Component({\n selector: 'dhis2-synchronization-config',\n templateUrl: './dhis2-synchronization-config.component.html',\n styleUrls: []\n})\nexport class Dhis2SynchronizationConfigComponent implements OnInit, OnDestroy {\n message: string = null;\n\n @Input() config: SynchronizationConfig;\n @Input() cOrg: OrgSyncInfo = null;\n\n @Input() fieldChange: Subject;\n @Output() onError = new EventEmitter();\n\n organizations: OrgSyncInfo[] = [];\n\n types: GeoObjectType[] = [];\n\n levelRows: LevelRow[] = [];\n\n orgUnitGroups: any[] = [];\n\n\n constructor(private service: SynchronizationConfigService) { }\n\n ngOnInit(): void {\n // Get the types \n //this.registryService.getGeoObjectTypes(null, [this.config.hierarchy]).then(types => {\n // this.types = types;\n //});\n\n if (this.config.configuration == null) {\n this.config.configuration = {\n levels: [],\n hierarchy: null\n }\n }\n\n this.levelRows = [];\n\n if (this.config.configuration.levels != null) {\n\n for (var i = 0; i < this.config.configuration.levels.length; ++i) {\n var level = this.config.configuration.levels[i];\n\n var levelRow: LevelRow = { level: level, levelNum: i, isAttributeEditor: false };\n\n this.levelRows.push(levelRow);\n }\n }\n else {\n this.config.configuration.levels = [];\n }\n\n if (this.config.configuration.hierarchy != null) {\n this.service.getConfigForES(this.config.system, this.config.configuration.hierarchy).then(esConfig => {\n this.types = esConfig.types;\n this.orgUnitGroups = esConfig.orgUnitGroups;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n this.fieldChange.subscribe(() => {\n this.clearMappingData();\n });\n }\n\n ngOnDestroy(): void {\n this.fieldChange.unsubscribe();\n }\n\n onChangeHierarchy(): void {\n this.clearMappingData();\n }\n\n\n\n buildDefaultMappings(): DHIS2AttributeMapping[] {\n return [\n {\n \"attributeMappingStrategy\": DEFAULT_MAPPING_STRATEGY,\n \"isOrgUnitGroup\": false,\n \"cgrAttrName\": \"displayLabel\",\n \"externalId\": null,\n \"dhis2Id\": \"name\",\n \"dhis2AttrName\": \"name\"\n },\n {\n \"attributeMappingStrategy\": DEFAULT_MAPPING_STRATEGY,\n \"isOrgUnitGroup\": false,\n \"cgrAttrName\": \"displayLabel\",\n \"externalId\": null,\n \"dhis2Id\": \"shortName\",\n \"dhis2AttrName\": \"shortName\"\n },\n {\n \"attributeMappingStrategy\": DEFAULT_MAPPING_STRATEGY,\n \"isOrgUnitGroup\": false,\n \"cgrAttrName\": \"code\",\n \"dhis2Id\": \"code\",\n \"externalId\": null,\n \"dhis2AttrName\": \"code\"\n },\n {\n \"attributeMappingStrategy\": DEFAULT_MAPPING_STRATEGY,\n \"isOrgUnitGroup\": false,\n \"cgrAttrName\": \"createDate\",\n \"externalId\": null,\n \"dhis2Id\": \"openingDate\",\n \"dhis2AttrName\": \"openingDate\"\n }\n /*\n {\n \"attributeMappingStrategy\": DEFAULT_MAPPING_STRATEGY,\n \"isOrgUnitGroup\": false,\n \"cgrAttrName\": \"createDate\",\n \"externalId\": null,\n \"dhis2Id\": \"created\",\n \"dhis2AttrName\": \"created\"\n },\n {\n \"attributeMappingStrategy\": DEFAULT_MAPPING_STRATEGY,\n \"isOrgUnitGroup\": false,\n \"cgrAttrName\": \"lastUpdateDate\",\n \"externalId\": null,\n \"dhis2Id\": \"lastUpdated\",\n \"dhis2AttrName\": \"lastUpdated\"\n },\n */\n ];\n }\n\n clearMappingData(): void {\n this.types = [];\n this.levelRows = [];\n this.config.configuration['levels'] = [];\n\n if (this.config.configuration.hierarchy != null) {\n this.service.getConfigForES(this.config.system, this.config.configuration.hierarchy).then(esConfig => {\n this.types = esConfig.types;\n this.orgUnitGroups = esConfig.orgUnitGroups;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n var lvl = {\n type: null,\n geoObjectType: null,\n level: 0,\n mappings: [],\n orgUnitGroupId: null\n };\n this.config.configuration['levels'] = [lvl];\n this.levelRows.push({ level: lvl, levelNum: 0, isAttributeEditor: false });\n }\n\n onSelectLevelType(levelRow: LevelRow): void {\n if (levelRow.level.type == \"RELATIONSHIPS\") {\n levelRow.attrCfg.mappings = [];\n levelRow.level.mappings = [];\n\n let editorIndex = this.getEditorIndex();\n if (editorIndex != -1) {\n this.levelRows.splice(editorIndex, 1);\n }\n }\n else {\n if (levelRow.attrCfg.mappings.length == 0) {\n levelRow.attrCfg.mappings = this.buildDefaultMappings();\n levelRow.level.mappings = levelRow.attrCfg.mappings;\n\n let len = levelRow.level.mappings.length;\n for (let i = 0; i < len; ++i) {\n let mapping = levelRow.level.mappings[i];\n\n levelRow.attrCfg.attrConfigInfos.forEach((info) => {\n if (info.cgrAttr.name === mapping.cgrAttrName) {\n mapping.info = info;\n }\n });\n }\n }\n }\n }\n\n deleteMapping(levelRow: LevelRow, index: number): void {\n levelRow.attrCfg.mappings.splice(index, 1);\n }\n\n addNewMapping(levelRow: LevelRow): void {\n levelRow.attrCfg.mappings.push({\n attributeMappingStrategy: DEFAULT_MAPPING_STRATEGY,\n cgrAttrName: null,\n dhis2AttrName: null,\n externalId: null,\n terms: []\n });\n }\n\n addLevel(): void {\n var lvl = {\n type: null,\n geoObjectType: null,\n level: this.config.configuration.levels.length,\n mappings: [],\n orgUnitGroupId: null\n };\n var len = this.config.configuration['levels'].push(lvl);\n this.levelRows.push({ level: lvl, levelNum: len - 1, isAttributeEditor: false });\n }\n\n removeLevel(levelNum: number, levelRowIndex: number): void {\n if (levelNum < this.config.configuration['levels'].length) {\n var editorIndex = this.getEditorIndex();\n if (editorIndex === levelRowIndex + 1) {\n this.levelRows.splice(editorIndex, 1);\n }\n\n this.levelRows.splice(levelRowIndex, 1);\n\n var newLevelNum = 0;\n for (var i = 0; i < this.levelRows.length; ++i) {\n var levelRow: LevelRow = this.levelRows[i];\n\n levelRow.levelNum = newLevelNum;\n\n if (!levelRow.isAttributeEditor) {\n newLevelNum = newLevelNum + 1;\n }\n }\n\n this.config.configuration['levels'].splice(levelNum, 1);\n }\n }\n\n getEditorIndex(): number {\n for (var i = 0; i < this.levelRows.length; ++i) {\n var levelRow = this.levelRows[i];\n\n if (levelRow.isAttributeEditor) {\n return i;\n }\n }\n\n return -1;\n }\n\n configureAttributes(levelRow: any): void {\n var editorIndex = this.getEditorIndex();\n\n if (editorIndex != -1) {\n this.levelRows.splice(editorIndex, 1);\n\n if (editorIndex == levelRow.levelNum + 1) {\n return;\n }\n }\n\n this.onSelectGeoObjectType(levelRow.level.geoObjectType, levelRow.levelNum, false);\n }\n\n getTermOptions(info: AttributeConfigInfo, dhis2Id: string) {\n for (var i = 0; i < info.dhis2Attrs.length; ++i) {\n var dhis2Attr = info.dhis2Attrs[i];\n\n if (dhis2Attr.dhis2Id === dhis2Id) {\n return dhis2Attr.options;\n }\n }\n }\n\n onChangeDHIS2Attr(mapping: DHIS2AttributeMapping) {\n if (mapping.dhis2Id == null || mapping.dhis2Id === \"\") {\n if (mapping.terms != null) {\n mapping.terms = {};\n }\n\n mapping.dhis2AttrName = null;\n\n return;\n }\n\n mapping.terms = {};\n\n let len = mapping.info.dhis2Attrs.length;\n for (let i = 0; i < len; ++i) {\n if (mapping.info.dhis2Attrs[i].dhis2Id === mapping.dhis2Id) {\n if (mapping.info.dhis2Attrs[i].dhis2Id != mapping.info.dhis2Attrs[i].name) {\n mapping.externalId = mapping.info.dhis2Attrs[i].dhis2Id;\n }\n else {\n mapping.externalId = null;\n }\n mapping.dhis2AttrName = mapping.info.dhis2Attrs[i].name;\n }\n }\n }\n\n onSelectGeoObjectType(geoObjectTypeCode: string, levelRowIndex: number, isDifferentGot: boolean = true) {\n if (geoObjectTypeCode === \"\" || geoObjectTypeCode == null) {\n var levelRow: LevelRow = this.levelRows[levelRowIndex];\n\n levelRow.attrCfg = null;\n levelRow.level.mappings = [];\n\n var editorIndex = this.getEditorIndex();\n\n if (editorIndex != -1 && editorIndex === levelRowIndex + 1) {\n this.levelRows.splice(editorIndex, 1);\n }\n\n return;\n }\n\n var attrCfg = this.levelRows[levelRowIndex].attrCfg;\n if (attrCfg != null && attrCfg.geoObjectTypeCode === geoObjectTypeCode) {\n // Resume an editing session on attributes that we fetched previously\n\n var editorIndex = this.getEditorIndex();\n\n if (editorIndex != -1 && editorIndex !== levelRowIndex + 1) {\n this.levelRows.splice(editorIndex, 1);\n\n if (editorIndex < levelRowIndex) {\n levelRowIndex = levelRowIndex - 1;\n }\n }\n\n this.levelRows.splice(levelRowIndex + 1, 0, { isAttributeEditor: true, attrCfg: attrCfg });\n }\n else {\n this.service.getCustomAttrCfg(geoObjectTypeCode, this.config.system).then((infos: AttributeConfigInfo[]) => {\n var editorIndex = this.getEditorIndex();\n var levelRow: LevelRow = this.levelRows[levelRowIndex];\n var level = levelRow.level;\n\n if (level.mappings == null) {\n level.mappings = [];\n }\n\n if (level.mappings.length == 0 || isDifferentGot) {\n level.mappings = this.buildDefaultMappings();\n }\n\n let len = level.mappings.length;\n for (let i = 0; i < len; ++i) {\n let mapping = level.mappings[i];\n\n infos.forEach((info) => {\n if (info.cgrAttr.name === mapping.cgrAttrName) {\n mapping.info = info;\n }\n });\n }\n\n levelRow.attrCfg = { geoObjectTypeCode: geoObjectTypeCode, mappings: level.mappings, attrConfigInfos: infos };\n\n if (editorIndex != -1 && (editorIndex === levelRowIndex + 1 || infos.length > 0)) {\n this.levelRows.splice(editorIndex, 1);\n\n if (editorIndex < levelRowIndex) {\n levelRowIndex = levelRowIndex - 1;\n }\n }\n\n if (!isDifferentGot) {\n this.levelRows.splice(levelRowIndex + 1, 0, { isAttributeEditor: true, attrCfg: levelRow.attrCfg, level: levelRow.level, levelNum: levelRow.levelNum });\n }\n\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n }\n\n mapCgrAttr(info: AttributeConfigInfo, mapping: DHIS2AttributeMapping) {\n if (info == null) {\n mapping.cgrAttrName = null;\n mapping.info = null;\n mapping.dhis2AttrName = null;\n mapping.externalId = null;\n mapping.terms = null;\n mapping.isOrgUnitGroup = null;\n return;\n }\n\n mapping.cgrAttrName = info.cgrAttr.name;\n mapping.info = info;\n mapping.dhis2AttrName = null;\n mapping.externalId = null;\n mapping.terms = {};\n mapping.isOrgUnitGroup = false;\n mapping.attributeMappingStrategy = info.attributeMappingStrategies[0];\n }\n\n onChangeTargetType(mapping: DHIS2AttributeMapping): void {\n mapping.externalId = null;\n\n for (const key in mapping.terms) {\n if (mapping.terms.hasOwnProperty(key)) {\n mapping.terms[key] = null;\n }\n }\n }\n\n error(err: HttpErrorResponse): void {\n this.onError.emit(err);\n }\n}\n","
\n
\n
\n \n
\n
\n \n \n \n
\n
\n \n
\n \n
\n \n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n 0\">\n \n \n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n

\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
0) || mapping.isOrgUnitGroup)\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n
\n \n \n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n","import { Component, OnInit } from \"@angular/core\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { Router } from \"@angular/router\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { PageResult } from \"@shared/model/core\";\nimport { LocalizationService } from \"@shared/service\";\nimport { ModalTypes } from \"@shared/model/modal\";\nimport { ErrorHandler, ConfirmModalComponent } from \"@shared/component\";\n\nimport { SynchronizationConfig } from \"@registry/model/registry\";\nimport { SynchronizationConfigService } from \"@registry/service\";\nimport { SynchronizationConfigModalComponent } from \"./synchronization-config-modal.component\";\n\n@Component({\n selector: \"synchronization-config-manager\",\n templateUrl: \"./synchronization-config-manager.component.html\",\n styleUrls: []\n})\nexport class SynchronizationConfigManagerComponent implements OnInit {\n\n message: string = null;\n\n page: PageResult = {\n resultSet: [],\n count: 0,\n pageNumber: 1,\n pageSize: 20\n };\n\n /*\n * Reference to the modal current showing\n */\n bsModalRef: BsModalRef;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public service: SynchronizationConfigService, private lService: LocalizationService, private router: Router, private modalService: BsModalService) { }\n\n ngOnInit(): void {\n this.onPageChange(1);\n }\n\n onPageChange(pageNumber: number): void {\n this.service.getPage(pageNumber, this.page.pageSize).then(page => {\n this.page = page;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n create(): void {\n this.service.edit(null).then(response => {\n let bsModalRef = this.modalService.show(SynchronizationConfigModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n bsModalRef.content.init(null, response.orgs);\n bsModalRef.content.onSuccess.subscribe(() => {\n this.onPageChange(this.page.pageNumber);\n });\n });\n }\n\n onEdit(config: SynchronizationConfig): void {\n this.service.edit(config.oid).then(response => {\n let bsModalRef = this.modalService.show(SynchronizationConfigModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n bsModalRef.content.init(response.config, response.orgs);\n bsModalRef.content.onSuccess.subscribe(() => {\n this.onPageChange(this.page.pageNumber);\n });\n });\n }\n\n onRemove(config: SynchronizationConfig): void {\n this.bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n this.bsModalRef.content.message = this.lService.decode(\"confirm.modal.verify.delete\") + \" [\" + config.label.localizedValue + \"]\";\n this.bsModalRef.content.submitText = this.lService.decode(\"modal.button.delete\");\n this.bsModalRef.content.type = ModalTypes.danger;\n\n this.bsModalRef.content.onConfirm.subscribe(() => {\n this.service.remove(config.oid).then(() => {\n this.onPageChange(this.page.pageNumber);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n });\n }\n\n onView(config: SynchronizationConfig): void {\n this.router.navigate([\"/registry/synchronization-config/\", config.oid]);\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n \n \n\n
\n\n
\n

\n \n

\n
\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n {{config.label.localizedValue}} \n \n \n \n \n
\n \n\n
\n
\n \n
\n
\n
\n
\n
\n
","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { Subject } from 'rxjs';\nimport { HttpErrorResponse } from '@angular/common/http';\n\nimport { LocalizationService } from '@shared/service';\nimport { ErrorHandler } from '@shared/component';\n\nimport { SynchronizationConfig, OrgSyncInfo } from '@registry/model/registry';\nimport { SynchronizationConfigService, RegistryService } from '@registry/service';\n\n@Component({\n selector: 'synchronization-config-modal',\n templateUrl: './synchronization-config-modal.component.html',\n styleUrls: []\n})\nexport class SynchronizationConfigModalComponent implements OnInit, OnDestroy {\n message: string = null;\n\n config: SynchronizationConfig = {\n organization: null,\n system: null,\n hierarchy: null,\n isImport: false,\n label: this.lService.create(),\n configuration: {}\n };\n\n organizations: OrgSyncInfo[] = [];\n\n cOrg: OrgSyncInfo = null;\n cSystem: { label: string, oid: string, type: string } = null;\n\n fieldChange: Subject;\n\n /*\n * Observable subject for MasterList changes. Called when an update is successful \n */\n onSuccess: Subject;\n\n\n constructor(private service: SynchronizationConfigService, private lService: LocalizationService, private bsModalRef: BsModalRef) { }\n\n ngOnInit(): void {\n this.onSuccess = new Subject();\n this.fieldChange = new Subject();\n }\n\n ngOnDestroy(): void {\n this.onSuccess.unsubscribe();\n this.fieldChange.unsubscribe();\n }\n\n init(config: SynchronizationConfig, organizations: OrgSyncInfo[]): void {\n\n this.organizations = organizations;\n\n if (config != null) {\n this.config = config;\n\n let oIndex = this.organizations.findIndex(org => org.code === this.config.organization);\n\n if (oIndex !== -1) {\n this.cOrg = this.organizations[oIndex];\n }\n\n let sIndex = this.cOrg.systems.findIndex(system => system.oid === this.config.system);\n\n if (sIndex !== -1) {\n this.cSystem = this.cOrg.systems[sIndex];\n }\n }\n }\n\n handleFieldChange(field: string): void {\n this.fieldChange.next(field);\n }\n\n onOrganizationSelected(): void {\n let index = this.organizations.findIndex(org => org.code === this.config.organization);\n\n if (index !== -1) {\n this.cOrg = this.organizations[index];\n }\n else {\n this.cOrg = null;\n }\n\n this.cSystem = null;\n\n this.handleFieldChange('organization');\n }\n\n onChangeExternalSystem(): void {\n let index = this.cOrg.systems.findIndex(system => system.oid === this.config.system);\n\n if (index !== -1) {\n this.cSystem = this.cOrg.systems[index];\n }\n else {\n this.cSystem = null;\n }\n\n this.handleFieldChange('system');\n }\n\n onSubmit(): void {\n /*\n let levelIndex = 0;\n let len = this.levelRows.length;\n for (let i = 0; i < len; ++i)\n {\n let levelRow: LevelRow = this.levelRows[i];\n \n if (levelRow.isAttributeEditor)\n {\n continue;\n }\n else if (levelRow.attrCfg == null)\n {\n levelIndex++;\n continue;\n }\n \n let mappings = this.config.configuration.levels[levelIndex].mappings;\n let mappingsLen = levelRow.attrCfg.mappings.length;\n for (let j = 0; j < mappingsLen; ++j)\n {\n let mapping = JSON.parse(JSON.stringify(levelRow.attrCfg.mappings[j]));\n delete mapping.info;\n mappings.push(mapping);\n }\n \n levelIndex++;\n }\n */\n\n this.service.apply(this.config).then(cfg => {\n\n this.onSuccess.next(cfg);\n this.bsModalRef.hide();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n cancel(): void {\n\n if (this.config.oid != null) {\n this.service.unlock(this.config.oid).then(() => {\n this.bsModalRef.hide();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n\n }\n else {\n this.bsModalRef.hide();\n }\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n
{{message}}
\n\n
\n

\n \n

\n
\n
\n\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n \n \n
\n
\n \n
\n
\n \n
\n
\n \n \n \n
\n
\n\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n \n \n \n
\n\n
\n
\n
\n
\n \n \n
\n
\n
\n\n
\n
\n
","import { Component, OnInit, Input, OnDestroy, EventEmitter, Output } from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { HttpErrorResponse } from '@angular/common/http';\n\nimport { SynchronizationConfig, MasterList, MasterListView } from '@registry/model/registry';\nimport { RegistryService, SynchronizationConfigService } from '@registry/service';\n\ninterface FhirSyncLevel {\n masterListId: string;\n versionId: string;\n level: number;\n}\n\n@Component({\n selector: 'fhir-import-synchronization-config',\n templateUrl: './fhir-import-synchronization-config.component.html',\n styleUrls: []\n})\nexport class FhirImportSynchronizationConfigComponent implements OnInit, OnDestroy {\n message: string = null;\n\n @Input() config: SynchronizationConfig;\n @Input() fieldChange: Subject;\n @Output() onError = new EventEmitter();\n subscription: Subscription = null;\n\n implementations: { className: string, label: string }[] = [];\n\n constructor(private service: SynchronizationConfigService) { }\n\n ngOnInit(): void {\n this.reset();\n\n this.subscription = this.fieldChange.subscribe((field: string) => {\n if (field === 'organization' || field === 'system') {\n this.reset();\n }\n });\n\n this.service.getFhirImportImplementations().then(implementations => {\n this.implementations = implementations;\n });\n }\n\n ngOnDestroy(): void {\n if (this.subscription != null) {\n this.subscription.unsubscribe();\n }\n }\n\n reset(): void {\n\n if (this.config.configuration == null) {\n this.config.configuration = {\n implementation: null\n }\n }\n }\n\n error(err: HttpErrorResponse): void {\n this.onError.emit(err);\n }\n\n}\n","
\n
\n \n
\n
\n \n
\n
","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { webSocket, WebSocketSubject } from \"rxjs/webSocket\";\n\nimport { PageResult } from '@shared/model/core'\nimport { LocalizationService } from '@shared/service';\n\nimport { SynchronizationConfig, ExportScheduledJob } from '@registry/model/registry';\nimport { SynchronizationConfigService } from '@registry/service';\nimport { ErrorHandler } from '@shared/component/error-handler/error-handler';\n\ndeclare var acp: any;\n\n@Component({\n selector: 'synchronization-config',\n templateUrl: './synchronization-config.component.html',\n styleUrls: []\n})\nexport class SynchronizationConfigComponent implements OnInit {\n message: string = null;\n\n config: SynchronizationConfig = null;\n\n page: PageResult = {\n pageSize: 10,\n pageNumber: 1,\n count: 1,\n resultSet: []\n };\n\n notifier: WebSocketSubject<{ type: string, content: any }>;\n\n constructor(private service: SynchronizationConfigService, private lService: LocalizationService, private route: ActivatedRoute) { }\n\n ngOnInit(): void {\n const oid = this.route.snapshot.paramMap.get('oid');\n\n this.service.get(oid).then(config => {\n this.config = config;\n this.onPageChange(1);\n });\n\n let baseUrl = \"wss://\" + window.location.hostname + (window.location.port ? ':' + window.location.port : '') + acp;\n\n this.notifier = webSocket(baseUrl + '/websocket/notify');\n this.notifier.subscribe(message => {\n if (message.type === 'DATA_EXPORT_JOB_CHANGE') {\n this.onPageChange(this.page.pageNumber);\n }\n });\n }\n\n ngOnDestroy() {\n\n if (this.notifier != null) {\n this.notifier.complete();\n }\n }\n\n onRun(): void {\n this.message = null;\n\n this.service.run(this.config.oid).then(() => {\n // Refresh the page\n this.onPageChange(this.page.pageNumber);\n\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onGenerateFile(): void {\n\n window.open(acp + '/synchronization-config/generate-file?oid=' + encodeURIComponent(this.config.oid));\n }\n\n onPageChange(pageNumber: number): void {\n if (this.config != null) {\n\n this.message = null;\n\n this.service.getJobs(this.config.oid, pageNumber, this.page.pageSize).then(response => {\n\n this.formatStepConfig(response);\n this.page = response;\n\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n }\n\n formatJobStatus(job: ExportScheduledJob): string {\n if (job.status === \"FEEDBACK\") {\n return this.lService.decode(\"etl.JobStatus.FEEDBACK\");\n }\n else if (job.status === \"RUNNING\" || job.status === \"NEW\") {\n return this.lService.decode(\"etl.JobStatus.RUNNING\");\n }\n else if (job.status === \"QUEUED\") {\n return this.lService.decode(\"etl.JobStatus.QUEUED\");\n }\n else if (job.status === \"SUCCESS\") {\n return this.lService.decode(\"etl.JobStatus.SUCCESS\");\n }\n else if (job.status === \"CANCELED\") {\n return this.lService.decode(\"etl.JobStatus.CANCELED\");\n }\n else if (job.status === \"FAILURE\") {\n return this.lService.decode(\"etl.JobStatus.FAILURE\");\n }\n else {\n return this.lService.decode(\"etl.JobStatus.RUNNING\");\n }\n }\n\n formatStepConfig(page: PageResult): void {\n\n page.resultSet.forEach((job: ExportScheduledJob) => {\n\n const steps = [\n {\n \"label\": this.lService.decode(\"synchronization.step.Queued\"),\n \"status\": job.stage === \"NEW\" ? this.getJobStatus(job) : this.getCompletedStatus(job.stage, \"NEW\")\n },\n\n {\n \"label\": this.lService.decode(\"synchronization.step.Connecting\"),\n \"status\": job.stage === \"CONNECTING\" || job.stage === \"CONNECTION_FAILED\" ? this.getJobStatus(job) : this.getCompletedStatus(job.stage, \"CONNECTION_FAILED\")\n }\n ];\n\n const stepLabel = this.config.isImport ? \"Importing\" : this.lService.decode(\"synchronization.step.DatabaseExport\");\n\n steps.push({\n \"label\": stepLabel,\n \"status\": job.stage === \"EXPORT\" || job.stage === \"EXPORT_RESOLVE\" || job.stage === \"RESUME_EXPORT\" ? this.getJobStatus(job) : \"\"\n });\n\n job.stepConfig = {\n \"steps\": steps\n }\n });\n }\n\n getCompletedStatus(jobStage: string, targetStage: string): string {\n let order = [\"CONNECTING\", \"CONNECTION_FAILED\", \"EXPORT\", \"EXPORT_RESOLVE\", \"RESUME_EXPORT\"];\n\n let jobPos = order.indexOf(jobStage);\n let targetPos = order.indexOf(targetStage);\n\n if (targetPos < jobPos) {\n return \"COMPLETE\";\n }\n else {\n return \"\";\n }\n }\n\n getJobStatus(job: ExportScheduledJob): string {\n if (job.status === \"QUEUED\" || job.status === \"RUNNING\") {\n return \"WORKING\"\n }\n else if (job.status === \"FEEDBACK\" || job.status === \"FAILURE\") {\n return \"STUCK\";\n }\n\n return \"\";\n }\n\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n \n \n\n
\n\n
{{message}}
\n\n
\n
\n\n
\n
\n

{{config.label.localizedValue}}

\n
\n
\n\n
\n
\n
\n \n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n\n
\n
\n\n

\n \n

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n
\n {{i + 1}}\n \n {{level.geoObjectType}}\n \n \n \n \n \n
\n\n
\n
\n\n
\n
\n\n

\n \n

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n
\n {{i + 1}}\n \n {{level.typeLabel}}\n \n {{level.forDate}}\n
\n\n
\n
\n\n\n
\n
\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n
    \n \n
    \n
    \n \n

    \n {{job.fileName}} \n {{job.createDate}} \n {{formatJobStatus(job)}} \n \n {{job.exception.message}}\n \n

    \n\n \n\n
    \n
    \n \n
    \n
    0\" class=\"solid-table-footer\">\n \n
    \n
    \n
\n
\n
\n
\n
\n
\n
\n
","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { HttpErrorResponse } from '@angular/common/http';\n\nimport { ErrorHandler } from '@shared/component';\n\nimport { RegistryService, IOService, SynchronizationConfigService } from '@registry/service';\nimport { ScheduledJob, SynchronizationConfig } from '@registry/model/registry';\n\n@Component({\n selector: 'job',\n templateUrl: './details.component.html',\n styleUrls: ['./details.css']\n})\nexport class SyncDetailsComponent implements OnInit {\n message: string = null;\n job: ScheduledJob;\n historyId: string = \"\";\n\n config: SynchronizationConfig = null;\n\n page: any = {\n count: 0,\n pageNumber: 1,\n pageSize: 10,\n results: []\n };\n\n constructor(private configService: SynchronizationConfigService, public service: RegistryService, private route: ActivatedRoute, public ioService: IOService) {\n }\n\n ngOnInit(): void {\n\n this.historyId = this.route.snapshot.params[\"oid\"];\n\n const configOid = this.route.snapshot.paramMap.get('config');\n\n this.configService.get(configOid).then(config => {\n this.config = config;\n\n this.onPageChange(1);\n });\n }\n\n ngOnDestroy() {\n }\n\n formatAffectedRows(rows: string) {\n return rows.replace(/,/g, \", \");\n }\n\n formatValidationResolve(obj: any) {\n return JSON.stringify(obj);\n }\n\n onPageChange(pageNumber: any): void {\n\n this.message = null;\n\n this.service.getExportDetails(this.historyId, this.page.pageSize, pageNumber).then(response => {\n\n this.job = response;\n\n this.page = this.job.exportErrors;\n\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n \n \n\n
\n
{{message}}
\n\n
\n

\n \n

\n
\n
\n
\n
\n\n \n

\n \n \n {{job.author}}\n \n \n \n {{job.createDate}}\n \n

\n\n
\n
\n
\n
\n\n
{{job.exportedRecords}} \n \n {{job.workTotal}} \n \n
\n
{{job.workTotal - job.exportedRecords}}
\n\n
\n
\n
\n
0\" class=\"row\">\n
\n \n
    \n \n \n \n \n\t \n\t \n\t \n \n \n\n \n \n \n \n \n \n \n
    \n \n\t  \n \n Resource\n\t \n \n \n \n
    \n

    {{row.code}}

    \n
    \n

    {{row.message}}

    \n
    \n

    {{row.rowNum}}

    \n
    \n
    \n
    0\" class=\"solid-table-footer\">\n \n
    \n
    \n
\n
\n
\n
\n
","import { Component, OnInit, OnDestroy, AfterViewInit, ViewChild } from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { Map, LngLatBoundsLike, NavigationControl, MapboxEvent, AttributionControl, IControl } from \"mapbox-gl\";\n\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { AllGeoJSON } from \"@turf/helpers\";\nimport bbox from \"@turf/bbox\";\n\nimport { Subject } from \"rxjs\";\n\nimport { GeoObject, ContextLayer, GeoObjectType, ValueOverTime } from \"@registry/model/registry\";\nimport { ModalState } from \"@registry/model/location-manager\";\n\nimport { MapService, RegistryService, GeometryService } from \"@registry/service\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { ErrorHandler, ErrorModalComponent, ConfirmModalComponent, SuccessModalComponent } from \"@shared/component\";\n\nimport { LocalizationService } from \"@shared/service\";\n\ndeclare let acp: string;\n\nconst DEFAULT_COLOR = \"#80cdc1\";\nconst SELECTED_COLOR = \"#800000\";\n\n@Component({\n selector: \"location-manager\",\n templateUrl: \"./location-manager.component.html\",\n styleUrls: [\"./location-manager.css\"]\n})\nexport class LocationManagerComponent implements OnInit, AfterViewInit, OnDestroy {\n\n coordinate: {\n longitude: number,\n latitude: number\n } = { longitude: null, latitude: null };\n\n MODE: ModalState = {\n SEARCH: 0,\n VIEW: 1\n }\n\n urlSubscriber: any;\n\n editSessionEnabled: boolean = false;\n\n bsModalRef: BsModalRef;\n\n /*\n * Root nodes of the tree\n */\n data: GeoObject[] = [];\n\n /*\n * Search Text\n */\n text: string = \"\";\n\n /*\n * MODE\n */\n mode: number = this.MODE.SEARCH;\n\n /*\n * Date of data for explorer\n */\n dateStr: string = null;\n\n forDate: Date = null;\n\n /*\n * Currently selected geo object\n */\n current: GeoObject;\n\n /*\n * Currently selected geo object type\n */\n type: GeoObjectType;\n\n /*\n * Flag denoting if an object is currently being editted\n */\n isEdit: boolean = false;\n\n /*\n * mapbox-gl map\n */\n map: Map;\n\n /*\n * Flag denoting the draw control is active\n */\n active: boolean = false;\n\n public displayDateRequiredError: boolean = false;\n\n vectorLayers: string[] = [];\n\n backReference: string;\n\n /*\n * List of base layers\n */\n baseLayers: any[] = [\n {\n name: \"Satellite\",\n label: \"Satellite\",\n id: \"satellite-v9\",\n sprite: \"mapbox://sprites/mapbox/satellite-v9\",\n url: \"mapbox://mapbox.satellite\",\n selected: true\n }\n // {\n // name: 'Streets',\n // label: 'Streets',\n // id: 'streets-v9',\n // sprite: 'mapbox://sprites/mapbox/basic-v9',\n // url: 'mapbox://mapbox.basic-v9'\n // }\n ];\n\n hoverFeatureId: string;\n\n preventSingleClick: boolean = false;\n\n hideSearchOptions: boolean = false;\n\n /*\n * Timer for determining double click vs single click\n */\n timer: any;\n\n /*\n * debounced subject for map extent change events\n */\n subject: Subject>;\n\n vot: ValueOverTime = null;\n\n @ViewChild(\"simpleEditControl\") simpleEditControl: IControl;\n\n editingControl: any;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private modalService: BsModalService, private mapService: MapService, private geomService: GeometryService, public service: RegistryService,\n private route: ActivatedRoute, private router: Router, private lService: LocalizationService) { }\n\n ngOnInit(): void {\n this.urlSubscriber = this.route.params.subscribe(params => {\n let geoObjectUid = params[\"geoobjectuid\"];\n let geoObjectTypeCode = params[\"geoobjecttypecode\"];\n this.hideSearchOptions = params[\"hideSearchOptions\"];\n this.backReference = this.route.snapshot ? this.route.snapshot.params[\"backReference\"] : null;\n\n this.dateStr = params[\"datestr\"];\n this.handleDateChange();\n\n if (geoObjectUid && geoObjectTypeCode && this.dateStr) {\n this.service.getGeoObject(geoObjectUid, geoObjectTypeCode).then(geoObj => {\n this.setData([geoObj]);\n this.select(geoObj, null);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n });\n }\n\n ngOnDestroy(): void {\n this.geomService.destroy();\n this.urlSubscriber.unsubscribe();\n }\n\n ngAfterViewInit() {\n const layer = this.baseLayers[0];\n\n this.map = new Map({\n container: \"map\",\n style: {\n version: 8,\n name: layer.name,\n metadata: {\n \"mapbox:autocomposite\": true\n },\n sources: {\n mapbox: {\n type: \"raster\",\n url: layer.url,\n tileSize: 256\n }\n },\n sprite: layer.sprite,\n glyphs: window.location.protocol + \"//\" + window.location.host + acp + \"/glyphs/{fontstack}/{range}.pbf\",\n layers: [\n {\n id: layer.id,\n type: \"raster\",\n source: \"mapbox\"\n // \"source-layer\": \"mapbox_satellite_full\"\n }\n ]\n },\n zoom: 2,\n attributionControl: false,\n center: [-78.880453, 42.897852]\n });\n\n this.map.on(\"load\", () => {\n this.initMap();\n });\n\n if (this.simpleEditControl) {\n this.map.addControl(this.simpleEditControl);\n }\n }\n\n changeMode(mode: number): void {\n this.mode = mode;\n\n if (this.mode === this.MODE.SEARCH) {\n this.isEdit = false;\n }\n\n this.geomService.destroy(false);\n\n this.vot = null;\n }\n\n onModeChange(value: boolean): void {\n this.isEdit = value;\n }\n\n handleDateChange(): void {\n if (this.dateStr != null) {\n this.forDate = new Date(Date.parse(this.dateStr));\n this.displayDateRequiredError = false;\n }\n }\n\n initMap(): void {\n this.map.on(\"style.load\", () => {\n this.addLayers();\n });\n\n this.addLayers();\n\n // Add zoom and rotation controls to the map.\n this.map.addControl(new NavigationControl({ visualizePitch: true }));\n this.map.addControl(new AttributionControl({ compact: true }), \"bottom-right\");\n\n this.map.on(\"click\", \"children-points\", (event: any) => {\n this.handleMapClickEvent(event);\n });\n\n this.map.on(\"click\", \"children-polygon\", (event: any) => {\n this.handleMapClickEvent(event);\n });\n\n // Set map data on page load with URL params (single Geo-Object)\n if (this.data) {\n let fc = { type: \"FeatureCollection\", features: this.data };\n ( this.map.getSource(\"children\")).setData(fc);\n\n this.zoomToFeature(this.data[0], null);\n }\n\n this.showOriginalGeometry();\n }\n\n showOriginalGeometry() {\n if (this.current) {\n this.addVectorLayer(this.current.properties.uid);\n }\n }\n\n hideOriginalGeometry() {\n if (this.current) {\n this.removeVectorLayer(this.current.properties.uid);\n }\n }\n\n handleMapClickEvent(event: any): void {\n if (!this.isEdit && event.features != null && event.features.length > 0) {\n const feature = event.features[0];\n\n if (feature.properties.code != null && (this.current == null || this.current.properties.code !== feature.properties.code)) {\n this.select(feature, null);\n }\n }\n }\n\n onPanelCancel(): void {\n if (this.backReference != null && this.backReference.length >= 2) {\n let ref = this.backReference.substring(0, 2);\n\n if (ref === \"CR\") {\n this.router.navigate([\"/registry/change-requests\"]);\n }\n } else {\n this.changeMode(this.MODE.SEARCH);\n }\n\n this.showOriginalGeometry();\n }\n\n onPanelSubmit(applyInfo: { isChangeRequest: boolean, geoObject?: any, changeRequestId?: string }): void {\n // Save everything first\n this.geomService.saveEdits();\n\n if (applyInfo.isChangeRequest) {\n if (this.backReference != null && this.backReference.length >= 2 && this.backReference.substring(0, 2) === \"CR\") {\n this.bsModalRef = this.modalService.show(SuccessModalComponent, { backdrop: true, class: \"error-white-space-pre\" });\n\n this.bsModalRef.content.message = this.lService.decode(\"geoobject-editor.changerequest.submitted\");\n this.bsModalRef.content.submitText = this.lService.decode(\"geoobject-editor.changerequest.view\");\n\n this.bsModalRef.content.onConfirm.subscribe(() => {\n this.router.navigate([\"/registry/change-requests\", applyInfo.changeRequestId]);\n });\n } else {\n this.bsModalRef = this.modalService.show(ConfirmModalComponent, { backdrop: true, class: \"error-white-space-pre\" });\n\n this.bsModalRef.content.message = this.lService.decode(\"geoobject-editor.changerequest.submitted\");\n this.bsModalRef.content.submitText = this.lService.decode(\"geoobject-editor.changerequest.view\");\n this.bsModalRef.content.cancelText = this.lService.decode(\"geoobject-editor.cancel.returnExplorer\");\n\n this.bsModalRef.content.onConfirm.subscribe(() => {\n this.router.navigate([\"/registry/change-requests\", applyInfo.changeRequestId]);\n });\n this.bsModalRef.content.onCancel.subscribe(() => {\n this.changeMode(this.MODE.SEARCH);\n });\n }\n } else {\n this.bsModalRef = this.modalService.show(SuccessModalComponent, { backdrop: true, class: \"error-white-space-pre\" });\n\n this.bsModalRef.content.message = this.lService.decode(\"geoobject-editor.edit.submitted\");\n this.bsModalRef.content.submitText = this.lService.decode(\"geoobject-editor.cancel.returnExplorer\");\n\n this.bsModalRef.content.onConfirm.subscribe(() => {\n this.onPanelCancel();\n });\n }\n }\n\n addLayers(): void {\n const source = \"children\";\n\n this.map.addSource(source, {\n type: \"geojson\",\n data: {\n type: \"FeatureCollection\",\n features: []\n }\n });\n\n // Polygon layer\n this.map.addLayer({\n id: source + \"-polygon\",\n type: \"fill\",\n source: source,\n layout: {},\n paint: {\n \"fill-color\": DEFAULT_COLOR,\n \"fill-opacity\": 0.8,\n \"fill-outline-color\": \"black\"\n },\n filter: [\"all\",\n [\"match\", [\"geometry-type\"], [\"Polygon\", \"MultiPolygon\"], true, false]\n ]\n });\n\n // Point layer\n this.map.addLayer({\n id: source + \"-points\",\n type: \"circle\",\n source: source,\n paint: {\n \"circle-radius\": 10,\n \"circle-color\": DEFAULT_COLOR,\n \"circle-stroke-width\": 2,\n \"circle-stroke-color\": \"#FFFFFF\"\n },\n filter: [\"all\",\n [\"match\", [\"geometry-type\"], [\"Point\", \"MultiPont\"], true, false]\n ]\n });\n\n // // Selected layers\n // this.map.addLayer({\n // \"id\": source + \"-points-selected\",\n // \"type\": \"circle\",\n // \"source\": source,\n // \"paint\": {\n // \"circle-radius\": 10,\n // \"circle-color\": DEFAULT_COLOR,\n // \"circle-stroke-width\": 2,\n // \"circle-stroke-color\": '#FFFFFF'\n // },\n // filter: ['all',\n // [\"==\", ['get', 'code'], this.current != null ? this.current.properties.code : ''],\n // [\"match\", [\"geometry-type\"], [\"Point\", \"MultiPont\"], true, false]\n // ]\n // });\n //\n // this.map.addLayer({\n // 'id': source + '-polygon-selected',\n // 'type': 'fill',\n // 'source': source,\n // 'layout': {},\n // 'paint': {\n // 'fill-color': DEFAULT_COLOR,\n // 'fill-opacity': 0.8,\n // 'fill-outline-color': 'black'\n // },\n // filter: ['all',\n // [\"==\", ['get', 'code'], this.current != null ? this.current.properties.code : ''],\n // [\"match\", [\"geometry-type\"], [\"Polygon\", \"MultiPolygon\"], true, false]\n // ]\n // });\n\n // Label layer\n this.map.addLayer({\n id: source + \"-label\",\n source: source,\n type: \"symbol\",\n paint: {\n \"text-color\": \"black\",\n \"text-halo-color\": \"#fff\",\n \"text-halo-width\": 2\n },\n layout: {\n \"text-field\": [\"get\", \"localizedValue\", [\"get\", \"displayLabel\"]],\n \"text-font\": [\"NotoSansRegular\"],\n \"text-offset\": [0, 0.6],\n \"text-anchor\": \"top\",\n \"text-size\": 12\n }\n });\n\n this.vectorLayers.forEach(cLayer => {\n this.addVectorLayer(cLayer);\n });\n }\n\n handleBasemapStyle(layer: any): void {\n // this.map.setStyle('mapbox://styles/mapbox/' + layer.id);\n\n this.baseLayers.forEach(baseLayer => {\n baseLayer.selected = false;\n });\n\n layer.selected = true;\n\n this.map.setStyle({\n version: 8,\n name: layer.name,\n metadata: {\n \"mapbox:autocomposite\": true\n },\n sources: {\n mapbox: {\n type: \"raster\",\n url: layer.url,\n tileSize: 256\n }\n },\n sprite: layer.sprite,\n glyphs: window.location.protocol + \"//\" + window.location.host + acp + \"/glyphs/{fontstack}/{range}.pbf\",\n layers: [\n {\n id: layer.id,\n type: \"raster\",\n source: \"mapbox\"\n // \"source-layer\": \"mapbox_satellite_full\"\n }\n ]\n });\n }\n\n search(): void {\n this.geomService.destroy(false);\n this.mapService.search(this.text, this.dateStr).then(data => {\n ( this.map.getSource(\"children\")).setData(data);\n\n this.setData(data.features);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n zoomToFeature(node: GeoObject, event: MouseEvent): void {\n if (event != null) {\n event.stopPropagation();\n }\n\n this.preventSingleClick = false;\n const delay = 200;\n\n this.timer = setTimeout(() => {\n if (!this.preventSingleClick) {\n if (node && node.geometry != null) {\n const bounds = bbox(node as AllGeoJSON) as LngLatBoundsLike;\n\n let padding = 50;\n let maxZoom = 20;\n\n // Zoom level was requested to be reduced when displaying point types as per #420\n if (node.geometry.type === \"Point\" || node.geometry.type === \"MultiPoint\") {\n padding = 100;\n maxZoom = 12;\n }\n\n this.map.fitBounds(bounds, { padding: padding, animate: true, maxZoom: maxZoom });\n }\n }\n }, delay);\n }\n\n select(node: GeoObject, event: MouseEvent): void {\n /*\n if (this.forDate == null) {\n this.displayDateRequiredError = true;\n\n return;\n }\n */\n\n if (event != null) {\n event.stopPropagation();\n }\n\n this.service.getGeoObjectTypes([node.properties.type], null).then(types => {\n this.type = types[0];\n this.current = node;\n this.mode = this.MODE.VIEW;\n\n this.geomService.initialize(this.map, this.type.geometryType, !this.isEdit);\n this.geomService.zoomToLayersExtent();\n\n // const code = this.current.properties.code;\n //\n // // Update the filter properties\n // this.map.setFilter('children-points-selected', ['all',\n // [\"==\", ['get', 'code'], code != null ? code : ''],\n // [\"match\", [\"geometry-type\"], [\"Point\", \"MultiPont\"], true, false]\n // ]);\n //\n // this.map.setFilter('children-polygon-selected', ['all',\n // [\"==\", ['get', 'code'], code != null ? code : ''],\n // [\"match\", [\"geometry-type\"], [\"Polygon\", \"MultiPolygon\"], true, false]\n // ]);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n setData(data: GeoObject[]): void {\n this.data = data;\n }\n\n onContextLayerChange(layer: ContextLayer): void {\n if (layer.active) {\n this.addVectorLayer(layer.oid);\n } else {\n this.removeVectorLayer(layer.oid);\n }\n }\n\n removeVectorLayer(source: string): void {\n const index = this.vectorLayers.indexOf(source);\n\n if (index !== -1) {\n this.map.removeLayer(source + \"-points\");\n this.map.removeLayer(source + \"-polygon\");\n this.map.removeLayer(source + \"-label\");\n this.map.removeSource(source);\n\n this.vectorLayers.splice(index, 1);\n }\n }\n\n addVectorLayer(source: string): void {\n const index = this.vectorLayers.indexOf(source);\n\n if (index === -1) {\n const prevLayer = \"children-polygon\";\n\n let protocol = window.location.protocol;\n let host = window.location.host;\n\n this.map.addSource(source, {\n type: \"vector\",\n tiles: [protocol + \"//\" + host + acp + \"/master-list/tile?x={x}&y={y}&z={z}&config=\" + encodeURIComponent(JSON.stringify({ oid: source }))]\n });\n\n // Point layer\n this.map.addLayer({\n id: source + \"-points\",\n type: \"circle\",\n source: source,\n \"source-layer\": \"context\",\n paint: {\n \"circle-radius\": 10,\n \"circle-color\": SELECTED_COLOR,\n \"circle-stroke-width\": 2,\n \"circle-stroke-color\": \"#FFFFFF\"\n },\n filter: [\"all\",\n [\"match\", [\"geometry-type\"], [\"Point\", \"MultiPont\"], true, false]\n ]\n }, prevLayer);\n\n // Polygon layer\n this.map.addLayer({\n id: source + \"-polygon\",\n type: \"fill\",\n source: source,\n \"source-layer\": \"context\",\n layout: {},\n paint: {\n \"fill-color\": SELECTED_COLOR,\n \"fill-opacity\": 0.8,\n \"fill-outline-color\": \"black\"\n },\n filter: [\"all\",\n [\"match\", [\"geometry-type\"], [\"Polygon\", \"MultiPolygon\"], true, false]\n ]\n }, prevLayer);\n\n // Label layer\n this.map.addLayer({\n id: source + \"-label\",\n source: source,\n \"source-layer\": \"context\",\n type: \"symbol\",\n paint: {\n \"text-color\": \"black\",\n \"text-halo-color\": \"#fff\",\n \"text-halo-width\": 2\n },\n layout: {\n \"text-field\": [\"case\",\n [\"has\", \"displayLabel_\" + navigator.language.toLowerCase()],\n [\"coalesce\", [\"string\", [\"get\", \"displayLabel_\" + navigator.language.toLowerCase()]], [\"string\", [\"get\", \"displayLabel\"]]],\n [\"string\", [\"get\", \"displayLabel\"]]\n ],\n \"text-font\": [\"NotoSansRegular\"],\n \"text-offset\": [0, 0.6],\n \"text-anchor\": \"top\",\n \"text-size\": 12\n }\n }, prevLayer);\n\n this.vectorLayers.push(source);\n }\n }\n\n// TODO : Not sure what the point of this code was\n/*\n refreshInputsFromDraw(): void {\n let geom = this.getDrawGeometry();\n let point = geom.coordinates[0];\n\n this.coordinate.latitude = point[1];\n this.coordinate.longitude = point[0];\n }\n\n refreshDrawFromInput(): void {\n\n if( this.coordinate.longitude != null && this.coordinate.latitude != null ) {\n\n const isLatitude = num => isFinite(num) && Math.abs(num) <= 90;\n const isLongitude = num => isFinite(num) && Math.abs(num) <= 180;\n\n if( !isLatitude(this.coordinate.latitude) || !isLongitude(this.coordinate.longitude)){\n // outside EPSG bounds\n }\n\n this.editingControl.set({\n type: 'FeatureCollection',\n features: [{\n id: this.current.properties.uid,\n type: 'Feature',\n properties: {},\n geometry: { type: 'Point', coordinates: [ this.coordinate.longitude, this.coordinate.latitude ] }\n }]\n });\n\n this.editingControl.changeMode( 'simple_select', { featureIds: this.current.properties.uid } );\n\n this.editSessionEnabled = true;\n }\n }\n */\n\n error(err: HttpErrorResponse): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n}\n","
\n \n \n\n\n
\n\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n\n \n
\n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n
\n
\n \n
\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n \n
\n
\n \n

{{node.properties.code}} - {{node.properties.displayLabel.localizedValue}}

\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n\n\n\n \n
\n
\n
\n\n
\n
\n \n
\n \n
\n\n
\n\n \n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
","import { Component } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Subject } from \"rxjs\";\n\nimport { ContextLayerGroup } from \"@registry/model/registry\";\n\n\n@Component({\n selector: \"context-layer-modal\",\n templateUrl: \"./context-layer-modal.component.html\",\n styleUrls: [\"./location-manager.css\"]\n})\nexport class ContextLayerModalComponent {\n\n contextLayerGroups: ContextLayerGroup[];\n\n\n /*\n * Called on confirm\n */\n public onSubmit: Subject;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef) { }\n\n ngOnInit(): void {\n this.onSubmit = new Subject();\n }\n\n groupHasContextLayers(group:string): boolean {\n let hasCLayers = false;\n this.contextLayerGroups.forEach(cLayerGroup => {\n if (cLayerGroup.oid === group && cLayerGroup.contextLayers.length > 0) {\n hasCLayers = true;\n }\n });\n\n return hasCLayers;\n }\n\n confirm(): void {\n this.onSubmit.next(this.contextLayerGroups);\n this.bsModalRef.hide();\n }\n\n}\n","
\n
\n

\n \n

\n
\n\n
\n
\n
\n
\n
\n
\n
\n

{{ cLayerGroup.displayLabel }}

\n
\n
\n {{ cLayer.displayLabel }}\n \n \n \n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n","import { Component, OnInit, OnDestroy, AfterViewInit } from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { BsModalRef, BsModalService } from \"ngx-bootstrap/modal\";\nimport { Map, NavigationControl, AttributionControl, LngLatBounds } from \"mapbox-gl\";\n\nimport { ContextLayer, GeoObjectType, ValueOverTime } from \"@registry/model/registry\";\n// MapService IS REQUIRED to set the mapbox access token for the map\nimport { MapService, RegistryService, GeometryService } from \"@registry/service\";\nimport { DateService } from \"@shared/service/date.service\";\nimport { ErrorHandler, GenericModalComponent } from \"@shared/component\";\n\nimport { LocalizationService, AuthService } from \"@shared/service\";\n\ndeclare let acp: string;\n\nconst DEFAULT_COLOR = \"#80cdc1\";\nconst SELECTED_COLOR = \"#800000\";\n\n@Component({\n selector: \"dataset-location-manager\",\n templateUrl: \"./dataset-location-manager.component.html\",\n styleUrls: [\"./dataset-location-manager.css\"]\n})\nexport class DatasetLocationManagerComponent implements OnInit, AfterViewInit, OnDestroy {\n\n coordinate: {\n longitude: number,\n latitude: number\n } = { longitude: null, latitude: null };\n\n MODE = {\n VERSIONS: \"VERSIONS\",\n ATTRIBUTES: \"ATTRIBUTES\",\n HIERARCHY: \"HIERARCHY\"\n }\n\n toolsIconHover: boolean = false;\n datasetId: string;\n typeCode: string;\n readOnly: boolean = false;\n editOnly: boolean = false;\n isEdit: boolean = false;\n date: string;\n code: string;\n type: GeoObjectType;\n bsModalRef: BsModalRef;\n backReference: string;\n\n /*\n * mapbox-gl map\n */\n map: Map;\n\n vectorLayers: string[] = [];\n\n /*\n * List of base layers\n */\n baseLayers: any[] = [\n {\n name: \"Satellite\",\n label: \"Satellite\",\n id: \"satellite-v9\",\n sprite: \"mapbox://sprites/mapbox/satellite-v9\",\n url: \"mapbox://mapbox.satellite\",\n selected: true\n }\n // {\n // name: 'Streets',\n // label: 'Streets',\n // id: 'streets-v11',\n // sprite: 'mapbox://sprites/mapbox/basic-v11',\n // url: 'mapbox://styles/mapbox/streets-v11'\n // }\n ];\n\n mode: string = null;\n isMaintainer: boolean;\n forDate: Date = new Date();\n\n vot: ValueOverTime;\n\n constructor(private mapService: MapService, public geomService: GeometryService, public service: RegistryService, private modalService: BsModalService, private route: ActivatedRoute,\n authService: AuthService, private lService: LocalizationService, private dateService: DateService, private router: Router) {\n this.isMaintainer = authService.isAdmin() || authService.isMaintainer();\n }\n\n ngOnInit(): void {\n this.datasetId = this.route.snapshot.params[\"datasetId\"];\n this.typeCode = this.route.snapshot.params[\"typeCode\"];\n this.date = this.route.snapshot.params[\"date\"];\n this.readOnly = this.route.snapshot.params[\"readOnly\"] === \"true\";\n this.editOnly = this.route.snapshot.params[\"editOnly\"] === \"true\";\n this.backReference = this.route.snapshot.params[\"backReference\"];\n\n if (this.route.snapshot.params[\"code\"] != null) {\n this.code = this.route.snapshot.params[\"code\"];\n }\n\n this.forDate = this.dateService.getDateFromDateString(this.date);\n\n this.service.getGeoObjectTypes([this.typeCode], null).then(types => {\n this.type = types[0];\n this.geomService.initialize(this.map, this.type.geometryType, !this.isEdit);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onPanelCancel(): void {\n if (this.backReference != null && this.backReference.length >= 2) {\n let ref = this.backReference.substring(0, 2);\n\n if (ref === \"ML\") {\n let published = this.backReference.substring(3, 3) === \"T\";\n let oid = this.backReference.substring(3);\n\n this.router.navigate([\"/registry/master-list\", oid, published]);\n }\n }\n\n this.showOriginalGeometry();\n }\n\n onPanelSubmit(applyInfo: { isChangeRequest: boolean, geoObject?: any, changeRequestId?: string }): void {\n // Save everything first\n this.geomService.saveEdits();\n\n this.bsModalRef = this.modalService.show(GenericModalComponent, { backdrop: true, class: \"error-white-space-pre\" });\n\n if (applyInfo.isChangeRequest) {\n const message = this.lService.decode(\"geoobject-editor.changerequest.submitted\");\n const buttons = [];\n\n buttons.push({\n label: this.lService.decode(\"geoobject-editor.cancel.returnList\"),\n onClick: () => { this.onPanelCancel(); },\n shouldClose: true,\n class: \"btn-primary\"\n });\n\n buttons.push({\n label: this.lService.decode(\"geoobject-editor.changerequest.view\"),\n onClick: () => {\n this.router.navigate([\"/registry/change-requests\", applyInfo.changeRequestId]);\n },\n shouldClose: true,\n class: \"btn-default\"\n });\n\n buttons.push({\n label: this.lService.decode(\"geoobject-editor.continueEditing\"),\n onClick: () => { },\n shouldClose: true,\n class: \"btn-default\"\n });\n\n this.bsModalRef.content.init(message, buttons);\n } else {\n const message = this.lService.decode(\"geoobject-editor.edit.submitted\");\n const buttons = [];\n\n buttons.push({\n label: this.lService.decode(\"geoobject-editor.cancel.returnList\"),\n onClick: () => { this.onPanelCancel(); },\n shouldClose: true,\n class: \"btn-primary\"\n });\n\n buttons.push({\n label: this.lService.decode(\"geoobject-editor.continueEditing\"),\n onClick: () => { },\n shouldClose: true,\n class: \"btn-default\"\n });\n\n this.bsModalRef.content.init(message, buttons);\n }\n }\n\n ngOnDestroy(): void {\n this.geomService.destroy();\n }\n\n ngAfterViewInit() {\n const layer = this.baseLayers[0];\n // eslint-disable-next-line no-import-assign\n this.map = new Map({\n container: \"dataset-map\",\n style: {\n version: 8,\n name: layer.name,\n metadata: {\n \"mapbox:autocomposite\": true\n },\n sources: {\n \"mapbox-satellite\": {\n type: \"raster\",\n url: layer.url,\n tileSize: 256\n }\n },\n sprite: layer.sprite,\n glyphs: window.location.protocol + \"//\" + window.location.host + acp + \"/glyphs/{fontstack}/{range}.pbf\",\n layers: [\n // {\n // \"id\": layer.id,\n // \"type\": 'raster',\n // \"source\": 'mapbox-satellite',\n // }\n ]\n },\n zoom: 2,\n attributionControl: false,\n center: [-78.880453, 42.897852]\n });\n\n this.map.on(\"load\", () => {\n this.initMap();\n });\n }\n\n onModeChange(value: boolean): void {\n this.isEdit = value;\n this.geomService.destroy(false);\n }\n\n initMap(): void {\n if (this.code !== \"__NEW__\") {\n this.service.getGeoObjectBoundsAtDate(this.code, this.typeCode, this.date).then(bounds => {\n if (bounds) {\n let llb = new LngLatBounds([bounds[0], bounds[1]], [bounds[2], bounds[3]]);\n\n let padding = 50;\n let maxZoom = 20;\n\n // Zoom level was requested to be reduced when displaying point types as per #420\n if (this.type.geometryType === \"POINT\" || this.type.geometryType === \"MULTIPOINT\") {\n padding = 100;\n maxZoom = 12;\n }\n\n this.map.fitBounds(llb, { padding: padding, animate: false, maxZoom: maxZoom });\n }\n });\n }\n\n this.map.on(\"style.load\", () => {\n this.addLayers();\n });\n\n this.addLayers();\n\n // Add zoom and rotation controls to the map.\n this.map.addControl(new NavigationControl({ visualizePitch: true }));\n this.map.addControl(new AttributionControl({ compact: true }), \"bottom-right\");\n\n this.map.on(\"click\", this.datasetId + \"-points\", (event: any) => {\n this.handleMapClickEvent(event);\n });\n\n this.map.on(\"click\", this.datasetId + \"-polygon\", (event: any) => {\n this.handleMapClickEvent(event);\n });\n\n this.showOriginalGeometry();\n }\n\n showOriginalGeometry() {\n this.addVectorLayer(this.datasetId);\n }\n\n hideOriginalGeometry() {\n this.removeVectorLayer(this.datasetId);\n }\n\n addLayers(): void {\n this.map.addLayer({\n type: \"raster\",\n id: \"satellite-map\",\n source: \"mapbox-satellite\"\n });\n\n this.vectorLayers.forEach(vLayer => {\n this.addVectorLayer(vLayer);\n });\n }\n\n handleBasemapStyle(layer: any): void {\n if (layer.id === \"streets-v11\") {\n this.map.setStyle(layer.url);\n } else if (layer.id === \"satellite-v9\") {\n this.map.setStyle({\n version: 8,\n name: layer.name,\n metadata: {\n \"mapbox:autocomposite\": true\n },\n sources: {\n \"mapbox-satellite\": {\n type: \"raster\",\n url: layer.url,\n tileSize: 256\n }\n },\n sprite: layer.sprite,\n glyphs: window.location.protocol + \"//\" + window.location.host + acp + \"/glyphs/{fontstack}/{range}.pbf\",\n layers: [\n {\n id: layer.id,\n type: \"raster\",\n source: \"mapbox-satellite\"\n }\n ]\n });\n }\n }\n\n onContextLayerChange(layer: ContextLayer): void {\n if (layer.active) {\n this.addVectorLayer(layer.oid);\n } else {\n this.removeVectorLayer(layer.oid);\n }\n }\n\n removeVectorLayer(source: string): void {\n const index = this.vectorLayers.indexOf(source);\n\n if (index !== -1) {\n this.map.removeLayer(source + \"-points\");\n this.map.removeLayer(source + \"-polygon\");\n this.map.removeLayer(source + \"-points-selected\");\n this.map.removeLayer(source + \"-polygon-selected\");\n this.map.removeLayer(source + \"-label\");\n this.map.removeSource(source);\n\n this.vectorLayers.splice(index, 1);\n }\n }\n\n addVectorLayer(source: string): void {\n const index = this.vectorLayers.indexOf(source);\n\n if (index === -1) {\n const prevLayer = (source !== this.datasetId) ? this.datasetId + \"-points\" : null;\n\n let protocol = window.location.protocol;\n let host = window.location.host;\n\n this.map.addSource(source, {\n type: \"vector\",\n tiles: [protocol + \"//\" + host + acp + \"/master-list/tile?x={x}&y={y}&z={z}&config=\" + encodeURIComponent(JSON.stringify({ oid: source }))]\n });\n\n // Point layer\n this.map.addLayer({\n id: source + \"-points\",\n type: \"circle\",\n source: source,\n \"source-layer\": \"context\",\n paint: {\n \"circle-radius\": 10,\n \"circle-color\": DEFAULT_COLOR,\n \"circle-stroke-width\": 2,\n \"circle-stroke-color\": \"#FFFFFF\"\n },\n filter: [\"all\",\n [\"match\", [\"geometry-type\"], [\"Point\", \"MultiPont\"], true, false]\n ]\n }, prevLayer);\n\n // Polygon layer\n this.map.addLayer({\n id: source + \"-polygon\",\n type: \"fill\",\n source: source,\n \"source-layer\": \"context\",\n layout: {},\n paint: {\n \"fill-color\": DEFAULT_COLOR,\n \"fill-opacity\": 0.8,\n \"fill-outline-color\": \"black\"\n },\n filter: [\"all\",\n [\"match\", [\"geometry-type\"], [\"Polygon\", \"MultiPolygon\"], true, false]\n ]\n }, prevLayer);\n\n // Selected object layers\n if (source === this.datasetId) {\n this.map.addLayer({\n id: source + \"-points-selected\",\n type: \"circle\",\n source: source,\n \"source-layer\": \"context\",\n paint: {\n \"circle-radius\": 10,\n \"circle-color\": SELECTED_COLOR,\n \"circle-stroke-width\": 2,\n \"circle-stroke-color\": \"#FFFFFF\"\n },\n filter: [\"all\",\n [\"==\", [\"get\", \"code\"], this.code != null ? this.code : \"\"],\n [\"match\", [\"geometry-type\"], [\"Point\", \"MultiPont\"], true, false]\n ]\n }, prevLayer);\n\n this.map.addLayer({\n id: source + \"-polygon-selected\",\n type: \"fill\",\n source: source,\n \"source-layer\": \"context\",\n layout: {},\n paint: {\n \"fill-color\": SELECTED_COLOR,\n \"fill-opacity\": 0.8,\n \"fill-outline-color\": \"black\"\n },\n filter: [\"all\",\n [\"==\", [\"get\", \"code\"], this.code != null ? this.code : \"\"],\n [\"match\", [\"geometry-type\"], [\"Polygon\", \"MultiPolygon\"], true, false]\n ]\n }, prevLayer);\n }\n\n // Label layer\n this.map.addLayer({\n id: source + \"-label\",\n source: source,\n \"source-layer\": \"context\",\n type: \"symbol\",\n paint: {\n \"text-color\": \"black\",\n \"text-halo-color\": \"#fff\",\n \"text-halo-width\": 2\n },\n layout: {\n \"text-field\": [\"case\",\n [\"has\", \"displayLabel_\" + navigator.language.toLowerCase()],\n [\"coalesce\", [\"string\", [\"get\", \"displayLabel_\" + navigator.language.toLowerCase()]], [\"string\", [\"get\", \"displayLabel\"]]],\n [\"string\", [\"get\", \"displayLabel\"]]\n ],\n \"text-font\": [\"NotoSansRegular\"],\n \"text-offset\": [0, 0.6],\n \"text-anchor\": \"top\",\n \"text-size\": 12\n }\n }, prevLayer);\n\n this.vectorLayers.push(source);\n }\n }\n\n onFeatureChange(): void {\n // Refresh the layer\n this.hideOriginalGeometry();\n this.showOriginalGeometry();\n }\n\n handleMapClickEvent(event: any): void {\n if (!this.isEdit && event.features != null && event.features.length > 0) {\n const feature = event.features[0];\n\n if (feature.properties.code != null && this.code !== feature.properties.code) {\n this.code = feature.properties.code;\n\n // Update the filter properties\n this.map.setFilter(this.datasetId + \"-points-selected\", [\"all\",\n [\"==\", [\"get\", \"code\"], this.code != null ? this.code : \"\"],\n [\"match\", [\"geometry-type\"], [\"Point\", \"MultiPont\"], true, false]\n ]);\n\n this.map.setFilter(this.datasetId + \"-polygon-selected\", [\"all\",\n [\"==\", [\"get\", \"code\"], this.code != null ? this.code : \"\"],\n [\"match\", [\"geometry-type\"], [\"Polygon\", \"MultiPolygon\"], true, false]\n ]);\n }\n }\n }\n\n onNewGeoObject(): void {\n this.code = \"__NEW__\";\n }\n\n formatDate(date: Date): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n public error(err: HttpErrorResponse): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n}\n","
\n \n \n\n\n
\n\n
\n
\n
\n
\n \n
\n

{{type.label.localizedValue}}

\n

: {{formatDate(forDate)}}

\n
\n \n \n
\n
\n
\n\n
\n
\n\n
\n \n \n
\n \n \n
\n \n \n \n \n
\n \n
\n
\n\n
\n
\n
\n
\n
\n
","import { Component } from \"@angular/core\";\n\n@Component({\n\n selector: \"historical-event-module\",\n templateUrl: \"./historical-event-module.component.html\",\n styleUrls: [],\n})\nexport class HistoricalEventModuleComponent {\n\n tab: string = 'HISTORICAL-EVENT';\n\n handleTab(tab: string): void {\n this.tab = tab;\n }\n\n}\n","
\n \n \n\n
\n\n
\n
\n
\n
\n

\n \n \n

\n
\n\n
\n\n
\n
\n
\n\n \n \n \n \n \n \n\n
\n
\n\n
\n
\n
\n
\n \n \n
\n
\n\n
\n
\n\n
\n
\n
\n
","import { Component, ViewEncapsulation } from \"@angular/core\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { trigger, style, animate, transition } from \"@angular/animations\";\nimport { BsModalRef, BsModalService } from \"ngx-bootstrap/modal\";\n\nimport { ConfirmModalComponent, ErrorHandler } from \"@shared/component\";\nimport { PageResult } from \"@shared/model/core\";\nimport { TransitionEventService } from \"@registry/service/transition-event.service\";\nimport { TransitionEvent } from \"@registry/model/transition-event\";\nimport { TransitionEventModalComponent } from \"./transition-event-modal.component\";\nimport { AuthService, DateService, LocalizationService } from \"@shared/service\";\nimport { IOService } from \"@registry/service\";\n\n@Component({\n\n selector: \"transition-event-table\",\n templateUrl: \"./transition-event-table.component.html\",\n styleUrls: [\"./transition-event-table.css\"],\n encapsulation: ViewEncapsulation.None,\n animations: [\n [\n trigger(\"fadeInOut\", [\n transition(\":enter\", [\n style({\n opacity: 0\n }),\n animate(\"300ms\")\n ]),\n transition(\":leave\",\n animate(\"100ms\",\n style({\n opacity: 0\n })\n )\n )\n ]),\n trigger(\"fadeIn\", [\n transition(\":enter\", [\n style({\n opacity: 0\n }),\n animate(\"500ms\")\n ])\n ])\n ]\n ]\n})\nexport class TransitionEventTableComponent {\n\n page: PageResult = {\n count: 0,\n pageNumber: 1,\n pageSize: 10,\n resultSet: []\n };\n\n attrConditions: any = [];\n\n dateCondition = {\n attribute: \"eventDate\",\n startDate: \"\",\n endDate: \"\"\n };\n\n beforeTypeCondition = {\n attribute: \"beforeTypeCode\",\n value: \"\"\n };\n\n /*\n * List of geo object types from the system\n */\n types: { label: string, code: string }[] = [];\n\n bsModalRef: BsModalRef;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: TransitionEventService, private modalService: BsModalService, private iService: IOService, private dateService: DateService, private authService: AuthService, private localizeService: LocalizationService) { }\n\n ngOnInit(): void {\n this.refresh();\n\n this.attrConditions.push(this.dateCondition);\n this.attrConditions.push(this.beforeTypeCondition);\n\n this.iService.listGeoObjectTypes(false).then(types => {\n let myOrgTypes = [];\n for (let i = 0; i < types.length; ++i) {\n const orgCode = types[i].orgCode;\n const typeCode = types[i].superTypeCode != null ? types[i].superTypeCode : types[i].code;\n\n if (this.authService.isGeoObjectTypeRM(orgCode, typeCode)) {\n myOrgTypes.push(types[i]);\n }\n }\n this.types = myOrgTypes;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n refresh(pageNumber: number = 1): void {\n this.service.getPage(this.page.pageSize, pageNumber, this.attrConditions).then(page => {\n this.page = page;\n }).catch((response: HttpErrorResponse) => {\n this.error(response);\n });\n }\n\n filterChange(): void {\n this.refresh(this.page.pageNumber);\n }\n\n onCreate(): void {\n this.bsModalRef = this.modalService.show(TransitionEventModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n this.bsModalRef.content.init(false);\n this.bsModalRef.content.onEventChange.subscribe((event: TransitionEvent) => {\n this.refresh(this.page.pageNumber);\n });\n }\n\n deleteEvent(jsEvent, transitionEvent: TransitionEvent): void {\n jsEvent.stopPropagation();\n\n this.bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n this.bsModalRef.content.message = this.localizeService.decode(\"confirm.modal.verify.delete\") + \" [\" + transitionEvent.description.localizedValue + \"]\";\n this.bsModalRef.content.data = transitionEvent;\n this.bsModalRef.content.type = \"DANGER\";\n this.bsModalRef.content.submitText = this.localizeService.decode(\"modal.button.delete\");\n\n ( this.bsModalRef.content).onConfirm.subscribe(data => {\n this.service.delete(transitionEvent).then(response => {\n this.refresh(this.page.pageNumber);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n });\n }\n\n onView(event: TransitionEvent): void {\n this.service.getDetails(event.oid).then(response => {\n this.bsModalRef = this.modalService.show(TransitionEventModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n this.bsModalRef.content.init(false, response);\n this.bsModalRef.content.onEventChange.subscribe((event: TransitionEvent) => {\n this.refresh(this.page.pageNumber);\n });\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n public error(err: any): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n}\n","\n
{{model.name }} : {{ model.code }}
\n
\n\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n
{{formatDate(event.eventDate)}}
\n
\n
{{event.description.localizedValue}}
\n
\n
{{event.beforeTypeLabel}}
\n
\n
{{event.afterTypeLabel}}
\n
\n
{{event.eventId}}
\n
\n
\n
\n \n
\n
\n
\n
0\" class=\"solid-table-footer\">\n \n
\n
\n
\n
\n
","/* eslint-disable indent */\n/* eslint-disable quotes */\nimport { Component, OnDestroy, OnInit, ViewChild, ChangeDetectorRef } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Observable, Subject } from \"rxjs\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { IOService, RegistryService } from \"@registry/service\";\nimport { DateService } from \"@shared/service/date.service\";\n\nimport { ErrorHandler } from \"@shared/component\";\nimport { LocalizationService, AuthService } from \"@shared/service\";\nimport { Transition, TransitionEvent } from \"@registry/model/transition-event\";\nimport { TransitionEventService } from \"@registry/service/transition-event.service\";\n\nimport { DndDropEvent } from \"ngx-drag-drop\";\nimport * as uuid from \"uuid\";\n\n/* D3 Stuffs */\nimport * as d3 from \"d3\";\n\nexport const DRAW_SCALE_MULTIPLIER: number = 1.0;\n\nexport const VIEWPORT_SCALE_FACTOR_X: number = 1.0;\nexport const VIEWPORT_SCALE_FACTOR_Y: number = 1.0;\n\nexport const GRAPH_ACTIVE_TRANSITION_HIGHLIGHT_COLOR: string = \"#6BA542\"; // #3E2A5A or \"purple\"\nexport const GRAPH_GO_LABEL_COLOR: string = \"black\";\nexport const GRAPH_CIRCLE_FILL: string = \"#999\";\nexport const GRAPH_LINE_COLOR: string = \"#999\";\n\n@Component({\n selector: \"transition-event-modal\",\n templateUrl: \"./transition-event-modal.component.html\",\n styleUrls: [\"./transition-event-modal.component.css\"]\n})\nexport class TransitionEventModalComponent implements OnInit, OnDestroy {\n\n @ViewChild(\"typeaheadParent\") typeaheadParent;\n\n message: string = null;\n\n event: TransitionEvent = null;\n\n activeTransition: Transition = null;\n\n /*\n * Observable subject for MasterList changes. Called when an update is successful\n */\n onEventChange: Subject;\n\n /*\n * All Geo-ObjectTypes in the system\n */\n allTypes: { label: string, code: string, orgCode: string, superTypeCode?: string }[] = [];\n\n /*\n * Types that we have write permission to\n */\n types: { label: string, code: string, orgCode: string, superTypeCode?: string }[] = [];\n\n /*\n * List of geo object types from the system\n */\n readonly: boolean = false;\n\n valid: boolean = false;\n\n draggable = {\n // note that data is handled with JSON.stringify/JSON.parse\n // only set simple data or POJO's as methods will be lost\n data: \"myDragData\",\n effectAllowed: \"all\",\n disable: false,\n handle: true\n };\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: TransitionEventService, private changeDetector: ChangeDetectorRef, public rService: RegistryService, private iService: IOService, private lService: LocalizationService, public bsModalRef: BsModalRef, private authService: AuthService,\n private dateService: DateService) { }\n\n ngOnInit(): void {\n this.onEventChange = new Subject();\n\n this.iService.listGeoObjectTypes(false).then(types => {\n let myOrgTypes = [];\n for (let i = 0; i < types.length; ++i) {\n const orgCode = types[i].orgCode;\n const typeCode = types[i].superTypeCode != null ? types[i].superTypeCode : types[i].code;\n\n if (this.authService.isGeoObjectTypeRM(orgCode, typeCode)) {\n myOrgTypes.push(types[i]);\n }\n }\n this.types = myOrgTypes;\n this.allTypes = types;\n\n this.readonly = this.readonly || this.event.permissions.indexOf(\"WRITE\") === -1;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n ngOnDestroy(): void {\n this.onEventChange.unsubscribe();\n }\n\n init(readonly: boolean, event?: TransitionEvent): void {\n this.readonly = readonly;\n\n if (event != null) {\n this.event = event;\n } else {\n this.event = {\n beforeTypeCode: \"\",\n afterTypeCode: \"\",\n eventDate: \"\",\n permissions: [\"WRITE\", \"READ\", \"DELETE\", \"CREATE\"],\n description: this.lService.create(),\n transitions: []\n };\n }\n\n setTimeout(() => {\n this.onChange();\n }, 0);\n }\n\n setActiveTransition(transition: Transition) {\n let highlight = (active: boolean, trans: Transition) => {\n let colorable = d3.selectAll('#svgHolder p[data-goCode=\"' + trans.sourceCode + '\"][data-depth=\"1\"],p[data-goCode=\"' + trans.targetCode + '\"][data-depth=\"2\"]');\n colorable.style(\"color\", active ? GRAPH_ACTIVE_TRANSITION_HIGHLIGHT_COLOR : GRAPH_GO_LABEL_COLOR);\n\n let fillable = d3.selectAll('#svgHolder circle[data-goCode=\"' + trans.sourceCode + '\"][data-depth=\"1\"],circle[data-goCode=\"' + trans.targetCode + '\"][data-depth=\"2\"]');\n fillable.attr(\"fill\", active ? GRAPH_ACTIVE_TRANSITION_HIGHLIGHT_COLOR : GRAPH_CIRCLE_FILL);\n\n let strokeable = d3.selectAll('#svgHolder path[data-transOid=\"' + trans.oid + '\"]');\n strokeable.attr(\"stroke\", active ? GRAPH_ACTIVE_TRANSITION_HIGHLIGHT_COLOR : GRAPH_LINE_COLOR);\n };\n\n if (this.activeTransition != null) {\n highlight(false, this.activeTransition);\n }\n\n this.activeTransition = transition;\n\n if (transition != null) {\n highlight(true, transition);\n }\n }\n\n onCreate(): void {\n this.event.transitions.push({\n oid: uuid.v4(),\n isNew: true,\n sourceCode: \"\",\n sourceType: \"\",\n targetCode: \"\",\n targetType: \"\",\n transitionType: \"\",\n impact: \"\",\n order: this.event.transitions.length - 1\n });\n }\n\n onChange(): void {\n this.calculateDerivedAttributes();\n this.renderVisual();\n\n // Register highlight event listeners\n let that = this;\n\n setTimeout(() => {\n d3.selectAll(\".transition\").on(\"mouseover\", function(mouseEvent) {\n let d3This: any = this;\n let transitionOid = d3This.getAttribute(\"data-transOid\");\n\n let index = that.event.transitions.findIndex(trans => trans.oid === transitionOid);\n\n that.setActiveTransition(that.event.transitions[index]);\n });\n d3.select(\"#transition-container\").on(\"mouseleave\", function(mouseEvent) {\n that.setActiveTransition(null);\n });\n }, 0);\n\n this.validChange();\n }\n\n getTypeAheadObservable(transition: Transition, typeCode: string, property: string): Observable {\n return new Observable((observer: any) => {\n this.rService.getGeoObjectSuggestions(transition[property], typeCode, null, null, null, this.event.eventDate, this.event.eventDate).then(results => {\n observer.next(results);\n });\n });\n }\n\n typeaheadOnSelect(selection: any, transition: Transition, property: string): void {\n if (property === \"targetText\") {\n transition.targetCode = selection.item.code;\n transition.targetType = selection.item.typeCode;\n transition.targetText = selection.item.name + \" (\" + selection.item.code + \")\";\n } else {\n transition.sourceCode = selection.item.code;\n transition.sourceType = selection.item.typeCode;\n transition.sourceText = selection.item.name + \" (\" + selection.item.code + \")\";\n }\n\n this.onChange();\n }\n\n clear(transition: Transition, property: string): void {\n if (property === \"targetText\") {\n transition.targetCode = \"\";\n transition.targetType = \"\";\n transition.targetText = \"\";\n } else {\n transition.sourceCode = \"\";\n transition.sourceType = \"\";\n transition.sourceText = \"\";\n }\n\n this.onChange();\n }\n\n localizeTransitionImpact(impact: string): string {\n return this.lService.decode(\"transition.event.\" + impact.toLowerCase());\n }\n\n localizeTransitionType(type: string): string {\n return type == null ? null : this.lService.decode(\"transition.event.type.\" + type.toLowerCase());\n }\n\n validChange() {\n setTimeout(() => {\n this.valid = (this.event.eventDate != null && this.event.eventDate.length > 0) &&\n this.event.transitions.length > 0 &&\n this.event.description != null &&\n this.event.afterTypeCode != null &&\n this.event.beforeTypeCode != null;\n }, 0);\n }\n\n remove(index: number): void {\n this.event.transitions.splice(index, 1);\n this.onChange();\n }\n\n onSubmit(): void {\n this.service.apply(this.event).then(response => {\n this.onEventChange.next(response);\n this.bsModalRef.hide();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onCancel(): void {\n this.bsModalRef.hide();\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n calculateDerivedAttributes(): void {\n let stats = {};\n this.event.transitions.forEach(trans => {\n if (trans.sourceCode != null && trans.sourceCode !== \"\" && trans.targetCode != null && trans.targetCode !== \"\") {\n if (stats[trans.sourceCode] == null) {\n stats[trans.sourceCode] = {\n source: 1,\n target: 0\n };\n } else {\n stats[trans.sourceCode].source++;\n }\n\n if (stats[trans.targetCode] == null) {\n stats[trans.targetCode] = {\n source: 0,\n target: 1\n };\n } else {\n stats[trans.targetCode].target++;\n }\n }\n });\n\n this.event.transitions.forEach(trans => {\n if (trans.sourceCode != null && trans.sourceCode !== \"\" && trans.targetCode != null && trans.targetCode !== \"\") {\n let sourceStats = stats[trans.sourceCode];\n let targetStats = stats[trans.targetCode];\n\n let updown = \"UPGRADE\";\n if (trans.transitionType != null && trans.transitionType.indexOf(\"DOWNGRADE\") !== -1) {\n updown = \"DOWNGRADE\";\n }\n\n if (sourceStats.source > 1) {\n trans.impact = \"PARTIAL\";\n trans.transitionType = \"SPLIT\";\n } else {\n if (targetStats.target > 1) {\n trans.transitionType = \"MERGE\";\n } else {\n trans.transitionType = \"REASSIGN\";\n }\n\n trans.impact = \"FULL\";\n }\n\n if (trans.sourceType !== trans.targetType) {\n trans.typeUpdown = updown;\n trans.typePart = trans.transitionType;\n trans.transitionType = trans.typeUpdown + \"_\" + trans.typePart;\n }\n }\n });\n }\n\n onChangeTypeUpdown(transition: any): void {\n transition.transitionType = transition.typeUpdown + \"_\" + transition.typePart;\n }\n\n /* Drag Drop Transitions */\n onDragStart(event:DragEvent) {\n // console.log(\"drag started\", JSON.stringify(event, null, 2));\n }\n\n onDragEnd(event:DragEvent) {\n // console.log(\"drag ended\", JSON.stringify(event, null, 2));\n }\n\n onDragged(item: any, type: string) {\n // console.log(\"onDragged\", item, type);\n }\n\n onDraggableCopied(event:DragEvent) {\n // console.log(\"draggable copied\", JSON.stringify(event, null, 2));\n }\n\n onDraggableLinked(event:DragEvent) {\n // console.log(\"draggable linked\", JSON.stringify(event, null, 2));\n }\n\n onDraggableMoved(event:DragEvent) {\n // console.log(\"draggable moved\", JSON.stringify(event, null, 2));\n }\n\n onDragCanceled(event:DragEvent) {\n // console.log(\"drag cancelled\", JSON.stringify(event, null, 2));\n }\n\n onDragover(event:DragEvent) {\n // console.log(\"dragover\", JSON.stringify(event, null, 2));\n }\n\n onDrop(event:DndDropEvent) {\n let transition: Transition = event.data;\n let index: number = event.index;\n\n // Remove from array\n this.event.transitions.splice(transition.order, 1);\n\n // Calculate new index, which may have shifted due to us removing the transition.\n let newIndex = (index > transition.order) ? index - 1 : index;\n\n // Insert us back into the array at newIndex\n this.event.transitions.splice(newIndex, 0, transition);\n\n // Update order for all transitions as elements have shifted\n for (let i = 0; i < this.event.transitions.length; ++i) {\n this.event.transitions[i].order = i;\n }\n\n window.setTimeout(() => { this.onChange(); }, 0);\n }\n\n /* D3 Stuff */\n private renderVisual(): void {\n if (this.event.transitions == null || this.event.transitions.length === 0) {\n d3.select(\"#svg\").remove();\n return;\n }\n d3.select(\"#svg\").remove();\n\n let svg = d3.select(\"#svg\");\n\n if (svg.node() == null) {\n svg = d3.select(\"#svgHolder\").append(\"svg\");\n svg.attr(\"id\", \"svg\");\n }\n\n let appData = this.generateAppData();\n let renderingData = this.generateRenderingData(appData);\n\n /*\n let autoBox = function autoBox() {\n document.body.appendChild(this);\n const { x, y, width, height } = svg.node().getBBox();\n document.body.removeChild(this);\n return [x, y, width, height];\n };\n */\n\n let chart = () => {\n const root = renderingData.d3;\n\n let links = svg.append(\"g\")\n .attr(\"fill\", \"none\")\n .attr(\"stroke\", GRAPH_LINE_COLOR)\n .attr(\"stroke-opacity\", 0.4)\n .attr(\"stroke-width\", 0.4 * DRAW_SCALE_MULTIPLIER);\n links.selectAll(\"path\")\n .data(root.links())\n .join(\"path\")\n .style(\"display\", function(d: any) {\n return d.source.depth === 0 ? \"none\" : null;\n })\n .attr(\"d\", (d: any) => `\n M${d.target.y},${d.target.x}\n ${d.source.y},${d.source.x}\n `)\n .attr(\"data-transOid\", (d: any) => d.source.data.name === \"root\" ? null : appData.linkDataMappings[d.source.data.code + \":\" + d.target.data.code]);\n\n svg.append(\"g\")\n .selectAll(\"circle\")\n .data(root.descendants())\n .join(\"circle\")\n .style(\"display\", function(d: any) {\n return d.depth === 0 ? \"none\" : null;\n })\n .attr(\"cx\", (d: any) => d.y)\n .attr(\"cy\", (d: any) => d.x)\n .attr(\"fill\", (d: any) => GRAPH_CIRCLE_FILL)\n .attr(\"r\", 0.9 * DRAW_SCALE_MULTIPLIER)\n .attr(\"data-goCode\", (d: any) => d.data.code)\n .attr(\"data-depth\", (d: any) => d.depth);\n\n svg.append(\"g\")\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"font-size\", 2 * DRAW_SCALE_MULTIPLIER)\n .attr(\"stroke-linejoin\", \"round\")\n .attr(\"stroke-width\", 3)\n .selectAll(\"foreignObject\")\n .data(root.descendants())\n .join(\"foreignObject\")\n .style(\"display\", function(d: any) {\n return d.depth === 0 ? \"none\" : null;\n })\n .attr(\"x\", (d: any) => (d.y + ((d.depth === 1) ? -13 : 1)))\n .attr(\"y\", (d: any) => (d.x) + ((d.depth === 1) ? -2 : -3))\n .attr(\"font-size\", \"0.7em\")\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"font-weight\", \"bold\")\n .attr(\"width\", 12)\n .attr(\"height\", 8)\n .append(\"xhtml:p\")\n .attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\")\n .attr(\"data-goCode\", (d: any) => d.data.code)\n .attr(\"data-depth\", (d: any) => d.depth)\n .style(\"margin\", \"0.5px\")\n .style(\"vertical-align\", \"middle\")\n .style(\"line-height\", 1.5)\n .style(\"color\", GRAPH_GO_LABEL_COLOR)\n .style(\"padding-left\", \"0.4px\")\n .style(\"padding-top\", \"0.2px\")\n .html((d: any) => d.data.name)\n .filter((d: any) => d.depth === 1)\n .style(\"text-align\", \"right\");\n\n renderingData.multipleParentLinks.forEach(function(link) {\n links.append(\"path\")\n .attr(\"d\", () => `\n M${link.parent.y},${link.parent.x}\n ${link.child.y},${link.child.x}\n `)\n .attr(\"data-transOid\", () => link.oid);\n });\n\n // return svg.attr(\"viewBox\", autoBox).node();\n };\n\n chart();\n\n this.calculateSvgViewBox();\n }\n\n generateRenderingData(appData: any): any {\n let width = 100;\n\n const root: any = d3.hierarchy(appData.d3Data).sort((a, b) => d3.ascending(a.data.order, b.data.order));\n root.dx = 5 * DRAW_SCALE_MULTIPLIER;\n root.dy = width / (root.height + 1);\n let d3RenderingData = d3.tree().nodeSize([root.dx, root.dy]).separation(() => 1.5)(root);\n\n let multipleParentLinks = [];\n appData.multipleParentLinks.forEach(function(link) {\n let parentNode = root.find(node => node.data.isSource && node.data.code === link.parent.code);\n let childNode = root.find(node => !node.data.isSource && node.data.code === link.child.code);\n\n if (parentNode != null && childNode != null) {\n multipleParentLinks.push({\n parent: parentNode,\n child: childNode,\n oid: link.oid\n });\n }\n });\n\n return {\n d3: d3RenderingData,\n multipleParentLinks: multipleParentLinks\n };\n }\n\n generateAppData(): any {\n let children = [];\n let multipleParentLinks = []; // D3 can't handle multiple parents so we have to draw them ourselves.\n let linkDataMappings = {}; // D3 doesn't allow us to put data on the link itself. Our link needs an oid. So this is a hack to store data on a link.\n\n let isChildOfOtherNode = (code: string) => {\n for (let i = 0; i < children.length; ++i) {\n let child = children[i];\n\n if (child.children) {\n for (let j = 0; j < child.children.length; ++j) {\n let grandChild = child.children[j];\n\n if (grandChild.code === code) {\n return true;\n }\n }\n }\n }\n\n return false;\n };\n\n this.event.transitions.forEach(trans => {\n if (trans.sourceCode != null && trans.sourceCode !== \"\" && trans.targetCode != null && trans.targetCode !== \"\") {\n let index = children.findIndex(child => child.code === trans.sourceCode);\n linkDataMappings[trans.sourceCode + \":\" + trans.targetCode] = trans.oid;\n\n let childExists = isChildOfOtherNode(trans.targetCode);\n let grandChild = null;\n if (!childExists) {\n grandChild = {\n name: trans.targetText,\n code: trans.targetCode,\n isSource: false,\n children: []\n };\n } else {\n multipleParentLinks.push({\n oid: trans.oid,\n child: {\n code: trans.targetCode,\n text: trans.targetText,\n type: trans.targetType\n },\n parent: {\n code: trans.sourceCode,\n text: trans.sourceText,\n type: trans.sourceType\n }\n });\n }\n\n if (index !== -1) {\n let child = children[index];\n\n let index2 = child.children.findIndex(child => child.code === trans.targetCode);\n\n if (index2 != null && grandChild != null) {\n child.children.push(grandChild);\n }\n } else {\n let child: any = {\n name: trans.sourceText,\n code: trans.sourceCode,\n children: [],\n isSource: true\n };\n\n if (grandChild != null) {\n child.children.push(grandChild);\n }\n\n children.push(child);\n }\n }\n });\n\n return {\n d3Data: {\n name: \"root\",\n children: children\n },\n multipleParentLinks: multipleParentLinks,\n linkDataMappings: linkDataMappings\n };\n }\n\n calculateSvgViewBox(): void {\n let svg: any = d3.select(\"#svg\");\n let svgNode: any = svg.node();\n\n let { x, y, width, height } = svgNode.getBBox();\n\n const xPadding = 0;\n const yPadding = 2;\n svg.attr(\"viewBox\", (x - xPadding) + \" \" + (y - yPadding) + \" \" + (width + xPadding * 2) * VIEWPORT_SCALE_FACTOR_X + \" \" + (height + yPadding * 2) * VIEWPORT_SCALE_FACTOR_Y);\n\n // width = (width + xPadding * 2) * VIEWPORT_SCALE_FACTOR_X;\n // height = (height + yPadding * 2) * VIEWPORT_SCALE_FACTOR_Y;\n\n // d3.select(\"#svgHolder\").style(\"width\", width + \"px\");\n // d3.select(\"#svgHolder\").style(\"height\", height + \"px\");\n }\n\n}\n","\n
{{model.name }} : {{ model.code }}
\n
\n\n
\n
{{message}}
\n\n
\n\n
\n
\n\t\t
\n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t \n\t\t {{formatDate(event.eventDate)}}\n\t\t \n\t\t 0\">\n\t\t
\n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t\n\t\t
\n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t \n\t\t
\n\t\t
\n
\n \n
\n\t\t\t\t
\n\t\t\t\t \n\t\t\t\t \n\t\t\t\t
\n\t\t\t\t \n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t \n
\n \n \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n
\n \n\n
\n
\n
\n
\n\n \n \n \n\n \n \n \n
\n
\n \n \n
\n \n \n
\n
\n
\n
\n\n \n \n \n\n \n \n \n
\n
\n \n \n \n \n \n \n \n \n
\n
\n
\n \n \n \n
\n
\n\n
\n\n
\n
\n
\n
\n \n \n
\n
\n
\n\n
\n
\n
\n","import { Component, ViewEncapsulation } from \"@angular/core\";\nimport { HttpErrorResponse, HttpParams } from \"@angular/common/http\";\nimport { trigger, style, animate, transition } from \"@angular/animations\";\n\nimport { ErrorHandler } from \"@shared/component\";\nimport { PageResult } from \"@shared/model/core\";\nimport { TransitionEventService } from \"@registry/service/transition-event.service\";\nimport { HistoricalRow } from \"@registry/model/transition-event\";\nimport { AuthService, DateService } from \"@shared/service\";\nimport { IOService } from \"@registry/service\";\n\ndeclare let acp: string;\n\n@Component({\n\n selector: \"historical-report\",\n templateUrl: \"./historical-report.component.html\",\n styleUrls: [],\n encapsulation: ViewEncapsulation.None,\n animations: [\n [\n trigger(\"fadeInOut\", [\n transition(\":enter\", [\n style({\n opacity: 0\n }),\n animate(\"300ms\")\n ]),\n transition(\":leave\",\n animate(\"100ms\",\n style({\n opacity: 0\n })\n )\n )\n ]),\n trigger(\"fadeIn\", [\n transition(\":enter\", [\n style({\n opacity: 0\n }),\n animate(\"500ms\")\n ])\n ])\n ]\n ]\n})\nexport class HistoricalReportComponent {\n\n message: string = null;\n\n page: PageResult = {\n count: 0,\n pageNumber: 1,\n pageSize: 10,\n resultSet: []\n };\n\n data = {\n type: '',\n startDate: '',\n endDate: ''\n }\n\n types: { label: string, code: string }[] = [];\n\n isValid: boolean = false;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: TransitionEventService, private iService: IOService, private authService: AuthService,\n private dateService: DateService) { }\n\n ngOnInit(): void {\n\n this.iService.listGeoObjectTypes(true).then(types => {\n this.types = types.filter(t => {\n const orgCode = t.orgCode;\n const typeCode = t.superTypeCode != null ? t.superTypeCode : t.code;\n\n return this.authService.isGeoObjectTypeRM(orgCode, typeCode);\n });\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n refresh(pageNumber: number = 1): void {\n this.service.getHistoricalReport(this.data.type, this.data.startDate, this.data.endDate, this.page.pageSize, pageNumber).then(page => {\n this.page = page;\n }).catch((response: HttpErrorResponse) => {\n this.error(response);\n });\n }\n\n exportToExcel(): void {\n let params: HttpParams = new HttpParams();\n params = params.set(\"typeCode\", this.data.type.toString());\n params = params.set(\"startDate\", this.data.startDate.toString());\n params = params.set(\"endDate\", this.data.endDate.toString());\n\n window.location.href = acp + \"/transition-event/export-excel?\" + params.toString();\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n checkDates(): any {\n setTimeout(() => {\n this.isValid = (this.data.startDate != null && this.data.endDate != null);\n }, 0);\n }\n\n public error(err: any): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n\n
\n
\n \n
\n \n
\n
\n
\n
\n \n
\n \n
\n\n \n
\n \n
\n\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n {{row.eventId}}\n \n {{formatDate(row.eventDate)}}\n \n {{row.eventType}}\n \n {{row.description.localizedValue}}\n \n {{row.beforeType}}\n \n {{row.beforeCode}}\n \n {{row.beforeLabel.localizedValue}}\n \n {{row.afterType}}\n \n {{row.afterCode}}\n \n {{row.afterLabel.localizedValue}}\n
\n
\n
0\" class=\"solid-table-footer\">\n \n
\n
\n\n
\n
\n
","/* eslint-disable no-floating-decimal */\nimport * as d3 from \"d3\";\nimport { calculateTextWidth } from \"./svg-util\";\n\nimport { GeoObjectType } from \"@registry/model/registry\";\nimport { HierarchyType } from \"@registry/model/hierarchy\";\n\nimport { SvgHierarchyType } from \"./svg-hierarchy-type\";\nimport { HierarchyComponent, RELATED_NODE_BANNER_COLOR } from \"../hierarchy.component\";\n\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { ErrorHandler, ConfirmModalComponent, ErrorModalComponent } from \"@shared/component\";\nimport { LocalizationService, AuthService } from \"@shared/service\";\n\nexport class SvgHierarchyNode {\n\n private hierarchyComponent: HierarchyComponent;\n\n private svgHierarchyType: SvgHierarchyType;\n\n private geoObjectType: GeoObjectType;\n\n private treeNode: any;\n\n /*\n * Reference to the modal current showing\n */\n private bsModalRef: BsModalRef;\n\n constructor(hierarchyComponent: HierarchyComponent, svgHierarchyType: SvgHierarchyType, geoObjectType: GeoObjectType, treeNode: any,\n public localizeService: LocalizationService, public modalService: BsModalService, public authService: AuthService) {\n this.hierarchyComponent = hierarchyComponent;\n this.svgHierarchyType = svgHierarchyType;\n this.geoObjectType = geoObjectType;\n this.treeNode = treeNode;\n }\n\n getCode(): string {\n return this.geoObjectType.code;\n }\n\n setPos(x: number, y: number, dragging: boolean) {\n let bbox = this.getBbox();\n\n // Move the GeoObjectType with the pointer when they move their mouse\n d3.select(\".g-hierarchy[data-primary=true] .svg-got-body-rect[data-gotCode=\\\"\" + this.getCode() + \"\\\"]\")\n .classed(\"dragging\", dragging)\n .attr(\"x\", x)\n .attr(\"y\", y);\n\n d3.select(\".g-hierarchy[data-primary=true] .svg-got-header-rect[data-gotCode=\\\"\" + this.getCode() + \"\\\"]\")\n .classed(\"dragging\", dragging)\n .attr(\"x\", x)\n .attr(\"y\", y - SvgHierarchyType.gotRectH / 2 + 2);\n\n d3.select(\".g-hierarchy[data-primary=true] .svg-got-label-text[data-gotCode=\\\"\" + this.getCode() + \"\\\"]\")\n .classed(\"dragging\", dragging)\n .attr(\"x\", x + 5)\n .attr(\"y\", y + 1);\n\n d3.select(\".g-hierarchy[data-primary=true] .svg-got-relatedhiers-button[data-gotCode=\\\"\" + this.getCode() + \"\\\"]\")\n .classed(\"dragging\", dragging)\n .attr(\"x\", x + bbox.width - 20)\n .attr(\"y\", y + 17);\n\n // Move inherit and uninherit buttons with the node they're moving\n\n let inheritNode: any = d3.select(\".g-hierarchy[data-primary=true] .hierarchy-inherit-button[data-gotCode=\\\"\" + this.getCode() + \"\\\"]\").node();\n if (inheritNode != null) {\n const heritX = (x + bbox.width - 60);\n const heritY = (y + bbox.height - 24);\n let inheritBbox = inheritNode.getBBox();\n d3.select(\".g-hierarchy[data-primary=true] .hierarchy-inherit-button[data-gotCode=\\\"\" + this.getCode() + \"\\\"]\")\n .classed(\"dragging\", dragging)\n .attr(\"transform\", \"translate(\" + (heritX - inheritBbox.x) + \" \" + (heritY - inheritBbox.y) + \")\");\n }\n\n let uninheritNode: any = d3.select(\".g-hierarchy[data-primary=true] .hierarchy-uninherit-button[data-gotCode=\\\"\" + this.getCode() + \"\\\"]\").node();\n if (uninheritNode != null) {\n const heritX = (x + bbox.width - 71);\n const heritY = (y + bbox.height - 24);\n let uninheritBbox = uninheritNode.getBBox();\n d3.select(\".g-hierarchy[data-primary=true] .hierarchy-uninherit-button[data-gotCode=\\\"\" + this.getCode() + \"\\\"]\")\n .classed(\"dragging\", dragging)\n .attr(\"transform\", \"translate(\" + (heritX - uninheritBbox.x) + \" \" + (heritY - uninheritBbox.y) + \")\");\n }\n }\n\n getPos() {\n let select = d3.select(\".g-hierarchy[data-primary=true] .svg-got-body-rect[data-gotCode=\\\"\" + this.getCode() + \"\\\"]\");\n\n return { x: parseInt(select.attr(\"x\")), y: parseInt(select.attr(\"y\")) };\n }\n\n getBbox() {\n let select = d3.select(\".g-hierarchy[data-primary=true] .svg-got-body-rect[data-gotCode=\\\"\" + this.getCode() + \"\\\"]\");\n\n return { x: parseInt(select.attr(\"x\")), y: parseInt(select.attr(\"y\")) - 3, width: parseInt(select.attr(\"width\")), height: parseInt(select.attr(\"height\")) + 3 };\n }\n\n getTreeNode() {\n return this.treeNode;\n }\n\n hideRelatedHierarchy(): string {\n let existingSecondary = d3.select(\".g-hierarchy[data-primary=\\\"false\\\"]\");\n if (existingSecondary.node() != null) {\n existingSecondary.remove();\n this.hierarchyComponent.calculateSvgViewBox();\n\n let existingSecondaryCode = existingSecondary.attr(\"data-code\");\n return existingSecondaryCode;\n }\n }\n\n renderRelatedHierarchiesMenu() {\n let that = this;\n let existingMenu = d3.select(\".g-context-menu\");\n\n if (existingMenu.node() == null) {\n //let parent = d3.select('g.g-hierarchy-tree[data-code=\"' + this.svgHierarchyType.hierarchyType.code + '\"]');\n let parent = d3.select(\"#svg\");\n\n let contextMenuGroup = parent.append(\"g\").classed(\"g-context-menu\", true);\n\n let relatedHierarchies = this.svgHierarchyType.getRelatedHierarchies(this.getCode());\n\n const hasActionsPermissions = this.authService.isSRA() || this.authService.isOrganizationRA(this.svgHierarchyType.hierarchyType.organizationCode);\n\n let bbox = this.getBbox();\n let x = bbox.x + bbox.width - 5;\n let y = bbox.y + bbox.height / 2 - 8;\n const height = 20;\n const fontSize = 8;\n const widthPadding = 10;\n const borderColor = \"#aaaaaa\";\n const dividerColor = \"#e4e4e4\";\n const fontFamily = \"sans-serif\";\n const titleFontSize = 9;\n\n const titleLabel = this.hierarchyComponent.localize(\"hierarchy.content.relatedHierarchies\");\n const actionsTitle = this.hierarchyComponent.localize(\"hierarchy.content.actionsTitle\");\n const removeFromHierarchyLabel = this.hierarchyComponent.localize(\"hierarchy.content.removeFromHierarchy\");\n const noRelatedHierLabel = this.hierarchyComponent.localize(\"hierarchy.content.noRelatedHierarchies\");\n const hideRelatedHierarchyLabel = this.hierarchyComponent.localize(\"hierarchy.content.hideRelatedHierarchy\");\n const uninheritLabel = this.hierarchyComponent.localize(\"hierarchy.content.uninherit\");\n const inheritLabel = this.hierarchyComponent.localize(\"hierarchy.content.inherit\");\n\n let isSecondaryHierarchyRendered = (d3.select(\".g-hierarchy[data-primary=\\\"false\\\"]\").node() != null);\n\n let numActions = hasActionsPermissions ? (isSecondaryHierarchyRendered ? 2 : 1) : 0;\n\n // Calculate the width of our title\n let width = calculateTextWidth(titleLabel, titleFontSize);\n\n // Calculate with of remove text\n let removeWidth = calculateTextWidth(removeFromHierarchyLabel, fontSize);\n width = removeWidth > width ? removeWidth : width;\n\n if (isSecondaryHierarchyRendered) {\n // Calculate width of \"hide related hierarchy\" label\n let hideRelatedWidth = calculateTextWidth(hideRelatedHierarchyLabel, fontSize);\n width = hideRelatedWidth > width ? hideRelatedWidth : width;\n }\n\n if (this.treeNode.parent != null && this.treeNode.parent.data.inheritedHierarchyCode != null && this.treeNode.parent.data.inheritedHierarchyCode != \"\") {\n let uninheritWidth = calculateTextWidth(uninheritLabel, fontSize);\n width = uninheritWidth > width ? uninheritWidth : width;\n numActions++;\n } else {\n let existingSecondary = d3.select(\".g-hierarchy[data-primary=\\\"false\\\"]\");\n if (existingSecondary.node() != null) {\n let existingSecondaryCode = existingSecondary.attr(\"data-code\");\n let secondaryHierarchy = this.hierarchyComponent.findHierarchyByCode(existingSecondaryCode);\n\n let svgSecondaryHierarchy = new SvgHierarchyType(this.hierarchyComponent, d3.select(\"#svg\"), secondaryHierarchy, true, this.localizeService, this.modalService, this.authService);\n let relatedGotHasParents = svgSecondaryHierarchy.getNodeByCode(this.getCode()).getTreeNode().parent != null;\n\n if (this.treeNode.parent == null && relatedGotHasParents) {\n let inheritWidth = calculateTextWidth(inheritLabel, fontSize);\n width = inheritWidth > width ? inheritWidth : width;\n numActions++;\n }\n }\n }\n\n // Calculate the width of our context menu, which is based on how long the text inside it will be.\n // We don't know how long text is until we render it. So we'll need to loop over all the text and\n // render and destroy all of it.\n if (relatedHierarchies.length > 0) {\n relatedHierarchies.forEach((relatedHierarchyCode: string) => {\n let relatedHierarchy = this.hierarchyComponent.findHierarchyByCode(relatedHierarchyCode);\n\n let relatedHierarchyLabel = relatedHierarchy.label.localizedValue;\n if (this.treeNode.parent != null && this.treeNode.parent.data.inheritedHierarchyCode === relatedHierarchy.code) {\n relatedHierarchyLabel = relatedHierarchyLabel + \" (\" + this.hierarchyComponent.localize(\"hierarchy.content.inherited\") + \")\";\n }\n\n let textWidth = calculateTextWidth(relatedHierarchyLabel, fontSize);\n\n if (textWidth > width) {\n width = textWidth;\n }\n });\n } else {\n let noHierLabelWidth = calculateTextWidth(noRelatedHierLabel, fontSize);\n width = noHierLabelWidth > width ? noHierLabelWidth : width;\n }\n\n width = width + widthPadding;\n\n let heightAdditions: number = relatedHierarchies.length > 0 ? (numActions + 2) : (numActions + 3);\n\n // Background rectangle with border\n contextMenuGroup.append(\"rect\")\n .classed(\"contextmenu-relatedhiers-background\", true)\n .attr(\"x\", x)\n .attr(\"y\", y)\n .attr(\"rx\", 5)\n .attr(\"width\", width)\n .attr(\"height\", height * (relatedHierarchies.length + heightAdditions))\n .attr(\"fill\", \"white\")\n .attr(\"stroke-width\", .5)\n .attr(\"stroke\", borderColor);\n\n // Related Hierarchies Title\n contextMenuGroup.append(\"text\")\n .classed(\"contextmenu-relatedhiers-title\", true)\n .attr(\"x\", x + widthPadding / 2)\n .attr(\"y\", y + (height / 2) + (titleFontSize / 2))\n .attr(\"font-size\", titleFontSize)\n .attr(\"font-family\", fontFamily)\n .attr(\"font-weight\", \"bold\")\n .text(titleLabel);\n\n y = y + height;\n\n // Dividing line at the bottom\n contextMenuGroup.append(\"line\")\n .classed(\"contextmenu-relatedhiers-divider\", true)\n .attr(\"x1\", x)\n .attr(\"y1\", y)\n .attr(\"x2\", x + width)\n .attr(\"y2\", y)\n .attr(\"stroke\", borderColor)\n .attr(\"stroke-width\", .5);\n\n\n if (relatedHierarchies.length > 0) {\n // Loop over all related hierarchies and draw them as list items\n for (let i = 0; i < relatedHierarchies.length; ++i) {\n let relatedHierarchyCode = relatedHierarchies[i];\n let relatedHierarchy = this.hierarchyComponent.findHierarchyByCode(relatedHierarchyCode);\n\n let relatedHierarchyLabel = relatedHierarchy.label.localizedValue;\n if (this.treeNode.parent != null && this.treeNode.parent.data.inheritedHierarchyCode === relatedHierarchy.code) {\n relatedHierarchyLabel = relatedHierarchyLabel + \" (\" + this.hierarchyComponent.localize(\"hierarchy.content.inherited\") + \")\";\n }\n\n // Text that says the hierarchy's display label\n contextMenuGroup.append(\"text\")\n .classed(\"contextmenu-relatedhiers-text\", true)\n .attr(\"data-hierCode\", relatedHierarchyCode)\n .attr(\"x\", x + widthPadding / 2)\n .attr(\"y\", y + (height / 2) + (fontSize / 2))\n .attr(\"font-size\", fontSize)\n .attr(\"font-family\", fontFamily)\n .text(relatedHierarchyLabel)\n .style(\"cursor\", \"pointer\")\n .on(\"click\", function(event, node) { that.renderSecondaryHierarchy(relatedHierarchy); });\n\n y = y + height;\n\n // Dividing line at the bottom\n if (i < relatedHierarchies.length) {\n contextMenuGroup.append(\"line\")\n .classed(\"contextmenu-relatedhiers-divider\", true)\n .attr(\"data-hierCode\", relatedHierarchyCode)\n .attr(\"x1\", x + 5)\n .attr(\"y1\", y)\n .attr(\"x2\", x + width - 5)\n .attr(\"y2\", y)\n .attr(\"stroke\", dividerColor)\n .attr(\"stroke-width\", .5);\n }\n }\n } else {\n // Text that says \"No related Hierarchies\"\n contextMenuGroup.append(\"text\")\n .classed(\"contextmenu-relatedhiers-text\", true)\n .attr(\"x\", x + widthPadding / 2)\n .attr(\"y\", y + (height / 2) + (fontSize / 2))\n .attr(\"font-size\", fontSize)\n .attr(\"font-family\", fontFamily)\n .text(noRelatedHierLabel);\n\n y = y + height;\n\n // Dividing line at the bottom\n contextMenuGroup.append(\"line\")\n .classed(\"contextmenu-relatedhiers-divider\", true)\n .attr(\"x1\", x + 5)\n .attr(\"y1\", y)\n .attr(\"x2\", x + width - 5)\n .attr(\"y2\", y)\n .attr(\"stroke\", dividerColor)\n .attr(\"stroke-width\", .5);\n }\n\n // Actions Section\n if (hasActionsPermissions) {\n // Actions Title\n contextMenuGroup.append(\"text\")\n .classed(\"contextmenu-relatedhiers-title\", true)\n .attr(\"x\", x + widthPadding / 2)\n .attr(\"y\", y + (height / 2) + (titleFontSize / 2))\n .attr(\"font-size\", titleFontSize)\n .attr(\"font-family\", fontFamily)\n .attr(\"font-weight\", \"bold\")\n .text(actionsTitle);\n\n y = y + height;\n\n // Dividing line at the bottom\n contextMenuGroup.append(\"line\")\n .classed(\"contextmenu-relatedhiers-divider\", true)\n .attr(\"x1\", x)\n .attr(\"y1\", y)\n .attr(\"x2\", x + width)\n .attr(\"y2\", y)\n .attr(\"stroke\", borderColor)\n .attr(\"stroke-width\", .5);\n\n // \"Remove from hierarchy\" button\n contextMenuGroup.append(\"text\")\n .classed(\"contextmenu-relatedhiers-text\", true)\n .attr(\"data-remove\", \"REPLACE---gotCode\")\n .attr(\"x\", x + widthPadding / 2)\n .attr(\"y\", y + (height / 2) + (fontSize / 2))\n .attr(\"font-size\", fontSize)\n .attr(\"font-family\", fontFamily)\n .text(removeFromHierarchyLabel)\n .style(\"cursor\", \"pointer\")\n .on(\"click\", function(event, node) { that.removeGotFromHierarchy(); });\n\n y = y + height;\n\n // Inherit / Uninherit buttons\n if (this.treeNode.parent != null && this.treeNode.parent.data.inheritedHierarchyCode != null && this.treeNode.parent.data.inheritedHierarchyCode != \"\") {\n contextMenuGroup.append(\"line\")\n .classed(\"contextmenu-relatedhiers-divider\", true)\n .attr(\"x1\", x)\n .attr(\"y1\", y)\n .attr(\"x2\", x + width)\n .attr(\"y2\", y)\n .attr(\"stroke\", borderColor)\n .attr(\"stroke-width\", .5);\n\n contextMenuGroup.append(\"text\")\n .classed(\"contextmenu-relatedhiers-text\", true)\n .attr(\"x\", x + widthPadding / 2)\n .attr(\"y\", y + (height / 2) + (fontSize / 2))\n .attr(\"font-size\", fontSize)\n .attr(\"font-family\", fontFamily)\n .text(uninheritLabel)\n .style(\"cursor\", \"pointer\")\n .on(\"click\", function(event, node) { that.onClickUninheritHierarchy(); });\n\n y = y + height;\n } else {\n let existingSecondary = d3.select(\".g-hierarchy[data-primary=\\\"false\\\"]\");\n if (existingSecondary.node() != null) {\n let existingSecondaryCode = existingSecondary.attr(\"data-code\");\n let secondaryHierarchy = this.hierarchyComponent.findHierarchyByCode(existingSecondaryCode);\n\n let svgSecondaryHierarchy = new SvgHierarchyType(this.hierarchyComponent, d3.select(\"#svg\"), secondaryHierarchy, true, this.localizeService, this.modalService, this.authService);\n let relatedGotHasParents = svgSecondaryHierarchy.getNodeByCode(this.getCode()).getTreeNode().parent != null;\n\n if (this.treeNode.parent == null && relatedGotHasParents) {\n contextMenuGroup.append(\"line\")\n .classed(\"contextmenu-relatedhiers-divider\", true)\n .attr(\"x1\", x)\n .attr(\"y1\", y)\n .attr(\"x2\", x + width)\n .attr(\"y2\", y)\n .attr(\"stroke\", borderColor)\n .attr(\"stroke-width\", .5);\n\n contextMenuGroup.append(\"text\")\n .classed(\"contextmenu-relatedhiers-text\", true)\n .attr(\"x\", x + widthPadding / 2)\n .attr(\"y\", y + (height / 2) + (fontSize / 2))\n .attr(\"font-size\", fontSize)\n .attr(\"font-family\", fontFamily)\n .text(inheritLabel)\n .style(\"cursor\", \"pointer\")\n .on(\"click\", function(event, node) { that.onClickInheritHierarchy(secondaryHierarchy); });\n\n y = y + height;\n }\n }\n }\n }\n\n if (isSecondaryHierarchyRendered) {\n contextMenuGroup.append(\"line\")\n .classed(\"contextmenu-relatedhiers-divider\", true)\n .attr(\"x1\", x)\n .attr(\"y1\", y)\n .attr(\"x2\", x + width)\n .attr(\"y2\", y)\n .attr(\"stroke\", borderColor)\n .attr(\"stroke-width\", .5);\n\n contextMenuGroup.append(\"text\")\n .classed(\"contextmenu-relatedhiers-text\", true)\n .attr(\"x\", x + widthPadding / 2)\n .attr(\"y\", y + (height / 2) + (fontSize / 2))\n .attr(\"font-size\", fontSize)\n .attr(\"font-family\", fontFamily)\n .text(hideRelatedHierarchyLabel)\n .style(\"cursor\", \"pointer\")\n .on(\"click\", function(event, node) {\n that.hideRelatedHierarchy();\n\n let existingMenu = d3.select(\".g-context-menu\");\n if (existingMenu.node() != null) {\n existingMenu.remove();\n }\n\n d3.select(\".g-hierarchy-got-connector\").remove();\n });\n }\n\n this.hierarchyComponent.calculateSvgViewBox();\n } else {\n existingMenu.remove();\n }\n }\n\n removeGotFromHierarchy() {\n let svgGot = this.hierarchyComponent.primarySvgHierarchy.getNodeByCode(this.geoObjectType.code);\n\n let obj = this.hierarchyComponent.findGeoObjectTypeByCode(svgGot.getCode());\n\n this.bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n\n let message = this.localizeService.decode(\"confirm.modal.verify.remove.hierarchy\");\n message = message.replace(\"{label}\", obj.label.localizedValue);\n\n this.bsModalRef.content.message = message;\n this.bsModalRef.content.data = obj.code;\n\n ( this.bsModalRef.content).onConfirm.subscribe(data => {\n let treeNode = svgGot.getTreeNode();\n let parent = null;\n if (treeNode.parent == null) {\n parent = \"ROOT\";\n } else {\n if (treeNode.parent.data.inheritedHierarchyCode != null) {\n parent = \"ROOT\";\n } else {\n parent = treeNode.parent.data.geoObjectType;\n }\n }\n\n this.hierarchyComponent.removeFromHierarchy(parent, svgGot.getCode(), (err: any) => { console.log(err); });\n });\n }\n\n renderSecondaryHierarchy(relatedHierarchy: HierarchyType) {\n d3.select(\".g-context-menu\").remove();\n d3.select(\".g-hierarchy-got-connector\").remove();\n\n let myBbox = this.getBbox();\n let svg = d3.select(\"#svg\");\n\n // Remove any secondary hierarchy that may already be rendered\n if (this.hideRelatedHierarchy() === relatedHierarchy.code) {\n return;\n }\n\n // Get the bounding box for our primary hierarchy\n let primaryHierBbox = (d3.select(\".g-hierarchy[data-primary=true]\").node() as any).getBBox();\n\n // Render the secondary hierarchy\n let svgHt: SvgHierarchyType = new SvgHierarchyType(this.hierarchyComponent, svg, relatedHierarchy, false, this.localizeService, this.modalService, this.authService);\n svgHt.render();\n let gSecondary = d3.select(\".g-hierarchy[data-primary=\\\"false\\\"]\");\n\n // Translate the secondary hierarchy to the right of the primary hierarchy\n let gHierarchy: any = d3.select(\".g-hierarchy[data-primary=\\\"false\\\"]\").node();\n let bbox = gHierarchy.getBBox();\n let paddingLeft: number = primaryHierBbox.width + 40 + (primaryHierBbox.x - bbox.x);\n gSecondary.attr(\"transform\", \"translate(\" + paddingLeft + \" 0)\");\n\n // Draw dotted line between the shared node in the hierarchies\n let secondaryGot = d3.select(\".g-hierarchy[data-primary=false] .svg-got-body-rect[data-gotCode=\\\"\" + this.getCode() + \"\\\"]\");\n let secondaryGotBbox = { x: parseInt(secondaryGot.attr(\"x\")), y: parseInt(secondaryGot.attr(\"y\")) - 3, width: parseInt(secondaryGot.attr(\"width\")), height: parseInt(secondaryGot.attr(\"height\")) + 3 };\n secondaryGotBbox.x = secondaryGotBbox.x + paddingLeft; // Apply transformation\n d3.select(\".g-hierarchy-got-connector\").remove();\n let gConnector = d3.select(\"#svg\").append(\"g\").classed(\"g-hierarchy-got-connector\", true);\n gConnector.append(\"path\")\n .classed(\"hierarchy-got-connector\", true)\n .attr(\"fill\", \"none\")\n .attr(\"stroke\", \"#555\")\n .attr(\"stroke-opacity\", 0.4)\n .attr(\"stroke-dasharray\", \"5,5\")\n .attr(\"stroke-width\", 1.5)\n .attr(\n \"d\",\n \"M\" + (myBbox.x + myBbox.width) + \",\" + (myBbox.y + myBbox.height / 2) +\n \"H\" + (((secondaryGotBbox.x) - (myBbox.x + myBbox.width)) / 2 + myBbox.x + myBbox.width) +\n \"V\" + (secondaryGotBbox.y + secondaryGotBbox.height / 2) +\n \"H\" + secondaryGotBbox.x\n );\n\n // Draw arrow for dotted line\n const arrowRectD = { height: 10, width: 7 };\n let gArrow = gConnector.append(\"g\").classed(\"g-hierarchy-got-connector-arrow\", true);\n gArrow.append(\"rect\")\n .classed(\"hierarchy-got-connector-arrow-rect\", true)\n .attr(\"x\", myBbox.x + myBbox.width - arrowRectD.width / 2)\n .attr(\"y\", myBbox.y + myBbox.height / 2 - arrowRectD.height / 2)\n .attr(\"width\", arrowRectD.width)\n .attr(\"height\", arrowRectD.height)\n .attr(\"fill\", RELATED_NODE_BANNER_COLOR);\n gArrow.append(\"path\")\n .classed(\"hierarchy-got-connector-arrow-path\", true)\n .attr(\"fill\", \"none\")\n .attr(\"stroke\", \"white\")\n .attr(\"stroke-width\", 1.5)\n .attr(\"d\",\n \"M\" + (myBbox.x + myBbox.width - arrowRectD.width / 2 + ((arrowRectD.width * 2) / 3)) + \",\" + (myBbox.y + myBbox.height / 2 - arrowRectD.height / 2 + ((arrowRectD.height * 2) / 3)) +\n \"L\" + (myBbox.x + myBbox.width + arrowRectD.width / 2 - ((arrowRectD.width * 2) / 3)) + \",\" + (myBbox.y + myBbox.height / 2) +\n \"L\" + (myBbox.x + myBbox.width - arrowRectD.width / 2 + ((arrowRectD.width * 2) / 3)) + \",\" + (myBbox.y + myBbox.height / 2 - arrowRectD.height / 2 + arrowRectD.height / 3)\n );\n\n // Recalculate the viewbox (should probably be the last thing that happens)\n this.hierarchyComponent.calculateSvgViewBox();\n }\n\n onClickInheritHierarchy(hierarchy: HierarchyType) {\n this.hierarchyComponent.handleInheritHierarchy(this.svgHierarchyType.getCode(), hierarchy.code, this.getCode());\n }\n\n onClickUninheritHierarchy() {\n this.hierarchyComponent.handleUninheritHierarchy(this.svgHierarchyType.getCode(), this.getCode());\n }\n\n}\n","import { Component, OnInit } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Subject } from \"rxjs\";\nimport { TreeNode } from \"@circlon/angular-tree-component\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { ErrorHandler } from \"@shared/component\";\nimport { HierarchyType, HierarchyNode } from \"@registry/model/hierarchy\";\nimport { GeoObjectType } from \"@registry/model/registry\";\nimport { HierarchyService } from \"@registry/service\";\n\n\n@Component({\n selector: \"add-child-to-hierarchy-modal\",\n templateUrl: \"./add-child-to-hierarchy-modal.component.html\",\n styleUrls: []\n})\nexport class AddChildToHierarchyModalComponent implements OnInit {\n\n /*\n * parent id of the node being created\n */\n public parent: TreeNode;\n public hierarchyType: HierarchyType;\n public nodes: HierarchyNode[];\n public allGeoObjectTypes: GeoObjectType[];\n public selectedGeoObjectType: GeoObjectType;\n private toRoot: boolean = false;\n selectUndefinedOptionValue: any;\n message: string = null;\n\n /*\n * Observable subject for TreeNode changes. Called when create is successful\n */\n public onNodeChange: Subject;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private hierarchyService: HierarchyService, public bsModalRef: BsModalRef) { }\n\n ngOnInit(): void {\n this.onNodeChange = new Subject();\n }\n\n onSelect(value: string): void {\n this.allGeoObjectTypes.forEach(gObj => {\n if (gObj.code === value) {\n this.selectedGeoObjectType = gObj;\n }\n });\n }\n\n handleOnSubmit(): void {\n this.message = null;\n\n let parent = (this.toRoot) ? \"ROOT\" : this.parent.data.geoObjectType;\n this.hierarchyService.addChildToHierarchy(this.hierarchyType.code, parent, this.selectedGeoObjectType.code).then(data => {\n this.onNodeChange.next(data);\n this.bsModalRef.hide();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n\n
\n\n
{{message}}
\n\n
\n

\n \n

\n
\n
\n\n
\n\n \n\n
\n\n
\n \n \n
\n
\n
\n
\n","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\nimport { BsModalRef, BsModalService } from \"ngx-bootstrap/modal\";\nimport { Subject } from \"rxjs\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { StepConfig, ModalTypes } from \"@shared/model/modal\";\nimport { ErrorHandler, ConfirmModalComponent } from \"@shared/component\";\nimport { LocalizationService, ModalStepIndicatorService } from \"@shared/service\";\n\nimport { GeoObjectType, AttributeType, ManageGeoObjectTypeModalState } from \"@registry/model/registry\";\nimport { GeoObjectTypeModalStates } from \"@registry/model/constants\";\n\nimport { RegistryService, GeoObjectTypeManagementService } from \"@registry/service\";\n\n@Component({\n selector: \"manage-attributes-modal\",\n templateUrl: \"./manage-attributes-modal.component.html\",\n styleUrls: [\"./manage-attributes-modal.css\"]\n})\nexport class ManageAttributesModalComponent implements OnInit {\n\n @Input() geoObjectType: GeoObjectType;\n @Input() attribute: AttributeType = null;\n @Output() geoObjectTypeChange: EventEmitter = new EventEmitter();\n\n message: string = null;\n modalStepConfig: StepConfig = {\n steps: [\n { label: this.localizeService.decode(\"modal.step.indicator.manage.geoobjecttype\"), active: true, enabled: false },\n { label: this.localizeService.decode(\"modal.step.indicator.manage.attributes\"), active: true, enabled: true }\n ]\n };\n\n modalState: ManageGeoObjectTypeModalState = { state: GeoObjectTypeModalStates.manageAttributes, attribute: this.attribute, termOption: \"\" };\n\n /*\n * Observable subject for TreeNode changes. Called when create is successful\n */\n public onDeleteAttribute: Subject;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef, public confirmBsModalRef: BsModalRef, private modalService: BsModalService, private localizeService: LocalizationService,\n private modalStepIndicatorService: ModalStepIndicatorService, private geoObjectTypeManagementService: GeoObjectTypeManagementService, private registryService: RegistryService) { }\n\n ngOnInit(): void {\n this.onDeleteAttribute = new Subject();\n this.modalStepIndicatorService.setStepConfig(this.modalStepConfig);\n }\n\n ngOnDestroy() {\n this.onDeleteAttribute.unsubscribe();\n }\n\n defineAttributeModal(): void {\n this.geoObjectTypeManagementService.setModalState({ state: GeoObjectTypeModalStates.defineAttribute, attribute: \"\", termOption: \"\" });\n }\n\n editAttribute(attr: AttributeType, e: any): void {\n this.geoObjectTypeManagementService.setModalState({ state: GeoObjectTypeModalStates.editAttribute, attribute: attr, termOption: \"\" });\n }\n\n removeAttributeType(attr: AttributeType, e: any): void {\n this.confirmBsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n this.confirmBsModalRef.content.message = this.localizeService.decode(\"confirm.modal.verify.delete\") + \"[\" + attr.label.localizedValue + \"]\";\n this.confirmBsModalRef.content.data = { attributeType: attr, geoObjectType: this.geoObjectType };\n this.confirmBsModalRef.content.submitText = this.localizeService.decode(\"modal.button.delete\");\n this.confirmBsModalRef.content.type = ModalTypes.danger;\n\n ( this.confirmBsModalRef.content).onConfirm.subscribe(data => {\n this.deleteAttributeType(data.geoObjectType.code, data.attributeType);\n });\n }\n\n deleteAttributeType(geoObjectTypeCode: string, attr: AttributeType): void {\n this.registryService.deleteAttributeType(geoObjectTypeCode, attr.code).then(data => {\n this.onDeleteAttribute.next(data);\n\n if (data) {\n this.geoObjectType.attributes.splice(this.geoObjectType.attributes.indexOf(attr), 1);\n }\n\n this.geoObjectTypeChange.emit(this.geoObjectType);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n close(): void {\n this.geoObjectTypeManagementService.setModalState({ state: GeoObjectTypeModalStates.manageGeoObjectType, attribute: this.attribute, termOption: \"\" });\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n
{{message}}
\n\n
\n
\n

\n {{geoObjectType.label.localizedValue}}

\n
\n
\n\n
\n
\n \n
\n
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n
{{attr.label.localizedValue}}\n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n\n
\n
\n
\n \n
\n
\n
\n
\n
\n\n
\n\n","import { ValueOverTimeCREditor } from \"./ValueOverTimeCREditor\";\nimport { HierarchyOverTimeEntry, GeoObject, HierarchyOverTimeEntryParent, HierarchyOverTime, AttributeType, TimeRangeEntry } from \"@registry/model/registry\";\nimport { UpdateAttributeOverTimeAction, AbstractAction, ValueOverTimeDiff } from \"@registry/model/crtable\";\nimport { v4 as uuid } from \"uuid\";\nimport { ChangeRequestChangeOverTimeAttributeEditor } from \"./change-request-change-over-time-attribute-editor\";\nimport { ChangeType } from \"@registry/model/constants\";\n\nexport class HierarchyCREditor extends ValueOverTimeCREditor {\n\n hierarchyOverTime: HierarchyOverTime;\n\n hierarchyEntry: HierarchyOverTimeEntry;\n\n constructor(changeRequestAttributeEditor: ChangeRequestChangeOverTimeAttributeEditor, attr: AttributeType, action: AbstractAction, hierarchyEntry: HierarchyOverTimeEntry, hierarchyOverTime: HierarchyOverTime) {\n super(changeRequestAttributeEditor, attr, action);\n this.hierarchyEntry = hierarchyEntry;\n this.hierarchyOverTime = hierarchyOverTime;\n\n if (this.hierarchyEntry != null) {\n this.hierarchyEntry.loading = {};\n }\n }\n\n // @Override\n getGeoObjectTimeRangeStorage(): TimeRangeEntry {\n return this.hierarchyEntry;\n }\n\n // @Override\n getValueFromGeoObjectForDiff(): any {\n let immediateParent: GeoObject = this.hierarchyEntry.parents[this.hierarchyOverTime.types[this.hierarchyOverTime.types.length - 1].code].geoObject;\n let goVal: string = immediateParent == null ? null : immediateParent.properties.type + \"_~VST~_\" + immediateParent.properties.code;\n return goVal;\n }\n\n // @Override\n validateUpdateReference() {\n // We could potentially try to check for this, but it won't be easy. So for now we're doing nothing.\n }\n\n setParentValue(type: {code: string, label: string}, parents: { [k: string]: HierarchyOverTimeEntryParent }) {\n if (this.diff != null && this.diff.action === \"DELETE\") {\n return; // There are various view components (like the date widgets) which will invoke this method\n }\n\n let directParent: GeoObject = null;\n if (type != null) {\n directParent = parents[type.code].geoObject;\n }\n\n if (this.action.actionType === \"UpdateAttributeAction\") {\n if (this.diff == null) {\n if (this.hierarchyEntry == null) {\n this.diff = new ValueOverTimeDiff();\n this.diff.oid = uuid();\n this.diff.action = \"CREATE\";\n (this.action as UpdateAttributeOverTimeAction).attributeDiff.hierarchyCode = this.hierarchyOverTime.code;\n (this.action as UpdateAttributeOverTimeAction).attributeDiff.valuesOverTime.push(this.diff);\n } else {\n // let currentDirectParent: GeoObject = this.hierarchyEntry.parents[type.code].geoObject;\n let currentDirectParent: GeoObject = this.getLowestLevelFromHierarchyEntry(this.hierarchyEntry.parents).geoObject;\n let oldValue: string = currentDirectParent == null ? null : currentDirectParent.properties.type + \"_~VST~_\" + currentDirectParent.properties.code;\n\n if (\n (currentDirectParent == null && directParent == null) ||\n ((currentDirectParent != null && directParent != null) &&\n currentDirectParent.properties.code === directParent.properties.code)) {\n return;\n }\n\n this.diff = new ValueOverTimeDiff();\n this.diff.action = \"UPDATE\";\n this.diff.oid = this.hierarchyEntry.oid;\n this.diff.oldValue = oldValue;\n this.diff.oldParents = JSON.parse(JSON.stringify(this.hierarchyEntry.parents));\n this.diff.oldStartDate = this.hierarchyEntry.startDate;\n this.diff.oldEndDate = this.hierarchyEntry.endDate;\n (this.action as UpdateAttributeOverTimeAction).attributeDiff.hierarchyCode = this.hierarchyOverTime.code;\n (this.action as UpdateAttributeOverTimeAction).attributeDiff.valuesOverTime.push(this.diff);\n }\n }\n\n let newValueStrConcat: string = null;\n if (directParent != null) {\n newValueStrConcat = directParent.properties.type + \"_~VST~_\" + directParent.properties.code;\n }\n\n if (newValueStrConcat === this.diff.oldValue) {\n delete this.diff.newValue;\n } else {\n this.diff.newValue = newValueStrConcat;\n }\n\n this.diff.parents = parents;\n\n // If no changes have been made then remove the diff\n this.removeEmptyDiff();\n } else if (this.action.actionType === \"CreateGeoObjectAction\") {\n this.hierarchyEntry.parents = parents;\n }\n\n this.onChange(ChangeType.VALUE);\n }\n\n public getLowestLevelFromHierarchyEntry(parents: any): {geoObject: GeoObject, text: string} {\n let len = this.hierarchyOverTime.types.length;\n for (let i = len - 1; i >= 0; --i) {\n let type = this.hierarchyOverTime.types[i];\n\n if (Object.prototype.hasOwnProperty.call(parents, type.code) && parents[type.code].geoObject) {\n return parents[type.code];\n }\n }\n\n return null;\n }\n\n set value(val: any) {\n throw new Error(\"Invoke setParentValue instead\");\n }\n\n get value() {\n if (this.diff != null && this.diff.parents !== undefined) {\n return this.diff;\n } else if (this.hierarchyEntry != null) {\n return this.hierarchyEntry;\n }\n\n return null;\n }\n\n public removeType(type): void {\n // this.value.parents[type.code] = { text: \"\", geoObject: null };\n\n let newParents = JSON.parse(JSON.stringify(this.value.parents));\n newParents[type.code] = { text: \"\", geoObject: null };\n\n // Set the value to be the next existing ancestor.\n let entry = this.value;\n let len = this.hierarchyOverTime.types.length;\n for (let i = len - 1; i >= 0; --i) {\n let parentType = this.hierarchyOverTime.types[i];\n\n if (Object.prototype.hasOwnProperty.call(entry.parents, parentType.code) && entry.parents[parentType.code].geoObject) {\n this.setParentValue(parentType, newParents);\n return;\n }\n }\n\n // If we do not have a next existing ancestor, then we must set the value to null.\n this.setParentValue(null, newParents);\n }\n\n createEmptyHierarchyEntry(): HierarchyOverTimeEntry {\n let hierarchyEntry = new HierarchyOverTimeEntry();\n hierarchyEntry.loading = {};\n hierarchyEntry.oid = uuid();\n\n hierarchyEntry.parents = {};\n\n if (this.hierarchyOverTime) {\n for (let i = 0; i < this.hierarchyOverTime.types.length; i++) {\n let current = this.hierarchyOverTime.types[i];\n\n hierarchyEntry.parents[current.code] = { text: \"\", geoObject: null };\n\n hierarchyEntry.loading = {};\n }\n }\n\n return hierarchyEntry;\n }\n\n public remove(): void {\n if (this.action.actionType === \"UpdateAttributeAction\") {\n if (this.diff != null && this.diff.action === \"CREATE\") {\n // Its a new entry, just remove the diff from the diff array\n let updateAction: UpdateAttributeOverTimeAction = this.action as UpdateAttributeOverTimeAction;\n\n const index = updateAction.attributeDiff.valuesOverTime.findIndex(vot => vot.oid === this.diff.oid);\n\n if (index > -1) {\n updateAction.attributeDiff.valuesOverTime.splice(index, 1);\n }\n } else if (this.diff != null) {\n delete this.diff.newValue;\n delete this.diff.newStartDate;\n delete this.diff.newEndDate;\n this.removeEmptyDiff();\n this.onChange(ChangeType.REMOVE);\n return;\n } else if (this.hierarchyEntry != null && this.diff == null) {\n let currentImmediateParent: GeoObject = this.getLowestLevelFromHierarchyEntry(this.hierarchyEntry.parents).geoObject;\n let oldValue: string = currentImmediateParent == null ? null : currentImmediateParent.properties.type + \"_~VST~_\" + currentImmediateParent.properties.code;\n\n this.diff = new ValueOverTimeDiff();\n this.diff.action = \"DELETE\";\n this.diff.oid = this.hierarchyEntry.oid;\n this.diff.oldValue = oldValue;\n this.diff.oldStartDate = this.hierarchyEntry.startDate;\n this.diff.oldEndDate = this.hierarchyEntry.endDate;\n (this.action as UpdateAttributeOverTimeAction).attributeDiff.valuesOverTime.push(this.diff);\n (this.action as UpdateAttributeOverTimeAction).attributeDiff.hierarchyCode = this.hierarchyOverTime.code;\n }\n } else if (this.action.actionType === \"CreateGeoObjectAction\") {\n let index = this.hierarchyOverTime.entries.findIndex(vot => vot.oid === this.hierarchyEntry.oid);\n\n if (index !== -1) {\n this.hierarchyOverTime.entries.splice(index, 1);\n }\n }\n\n this.onChange(ChangeType.REMOVE);\n }\n\n}\n","\nimport { ChangeRequest, AbstractAction, UpdateAttributeAction } from \"@registry/model/crtable\";\nimport { AttributeType, GeoObjectOverTime } from \"@registry/model/registry\";\nimport { ActionTypes } from \"@registry/model/constants\";\n\nexport class StandardAttributeCRModel {\n\n changeRequest: ChangeRequest;\n\n diff: { oldValue?: any, newValue?: any };\n\n attribute: AttributeType;\n\n geoObject: GeoObjectOverTime;\n\n editAction: AbstractAction;\n\n code: string;\n\n private _isValid: boolean = true;\n\n constructor(attr: AttributeType, geoObject: GeoObjectOverTime, cr: ChangeRequest) {\n this.attribute = attr;\n this.geoObject = geoObject;\n this.changeRequest = cr;\n this.initialize();\n }\n\n initialize(): void {\n let actions = this.changeRequest.actions;\n\n if (this.changeRequest.type === \"CreateGeoObject\") {\n if (actions.length > 0 && actions[0].actionType === ActionTypes.CREATEGEOOBJECTACTION) {\n this.editAction = actions[0];\n }\n } else {\n actions.forEach((action: AbstractAction) => {\n if (action.actionType === ActionTypes.UPDATEATTRIBUTETACTION) {\n let updateAttrAction: UpdateAttributeAction = action as UpdateAttributeAction;\n\n if (this.attribute.code === updateAttrAction.attributeName) {\n this.editAction = action;\n }\n }\n });\n\n if (this.editAction == null) {\n this.editAction = new UpdateAttributeAction(this.attribute.code);\n }\n }\n\n let len = this.changeRequest.actions.length;\n for (let i = 0; i < len; ++i) {\n let action: AbstractAction = actions[i];\n\n if (action.actionType === ActionTypes.UPDATEATTRIBUTETACTION) {\n let updateAttrAction: UpdateAttributeAction = action as UpdateAttributeAction;\n\n if (this.attribute.code === updateAttrAction.attributeName) {\n this.diff = updateAttrAction.attributeDiff;\n }\n } else if (action.actionType === ActionTypes.CREATEGEOOBJECTACTION) {\n // Nothing to do here. Create actions don't have diffs.\n } else {\n console.log(\"Unexpected action : \" + action.actionType, action);\n }\n }\n }\n\n public hasChanges(): boolean {\n return this.diff != null;\n }\n\n isValid(): boolean {\n return this._isValid;\n }\n\n validate(): boolean {\n return this._isValid;\n }\n\n set value(val: any) {\n if (this.changeRequest.type === \"CreateGeoObject\") {\n this.geoObject.attributes[this.attribute.code] = val;\n } else {\n if (this.diff != null) {\n if (this.areValuesEqual(this.diff.oldValue, val)) {\n delete (this.editAction as UpdateAttributeAction).attributeDiff;\n this.diff = null;\n\n let index = this.changeRequest.actions.findIndex(findAction => findAction === this.editAction);\n if (index !== -1) {\n this.changeRequest.actions.splice(index, 1);\n }\n } else {\n this.diff.newValue = val;\n }\n } else {\n this.diff = { oldValue: this.geoObject.attributes[this.attribute.code], newValue: val };\n\n (this.editAction as UpdateAttributeAction).attributeDiff = this.diff;\n this.changeRequest.actions.push(this.editAction);\n }\n }\n }\n\n get value(): any {\n if (this.changeRequest.type === \"CreateGeoObject\") {\n return this.geoObject.attributes[this.attribute.code];\n } else {\n if (this.diff != null) {\n return this.diff.newValue;\n } else {\n return this.geoObject.attributes[this.attribute.code];\n }\n }\n }\n\n areValuesEqual(val1: any, val2: any): boolean {\n if (this.attribute.type === \"boolean\") {\n return val1 === val2;\n }\n\n if ((val1 === \"\" && val2 == null) || (val2 === \"\" && val1 == null)) {\n return true;\n }\n\n if (!val1 && !val2) {\n return true;\n } else if ((!val1 && val2) || (!val2 && val1)) {\n return false;\n }\n\n return val1 === val2;\n }\n\n}\n","\nimport { ManageVersionsComponent } from \"./manage-versions.component\";\nimport { ValueOverTimeDiff, SummaryKey } from \"@registry/model/crtable\";\nimport { ValueOverTimeCREditor } from \"./ValueOverTimeCREditor\";\nimport { LayerColor } from \"@registry/model/constants\";\nimport { LocalizedValue } from \"@shared/model/core\";\nimport { AttributeTermType, ConflictMessage, Term } from \"@registry/model/registry\";\n\nexport class Layer {\n\n oid: string;\n isEditing: boolean;\n isRendering: boolean;\n color: LayerColor;\n zindex: number;\n geojson: any;\n editPropagator: ValueOverTimeCREditor;\n\n}\n\n/*\n * This class exists purely for the purpose of storing what data to be rendered to the front-end. Any storage or submission of this data to the back-end must be translated\n * using the editor.\n */\nexport class VersionDiffView {\n\n component: ManageVersionsComponent;\n summaryKeyData: SummaryKey;\n summaryKeyLocalized: string; // If we try to localize this in the html with a localize element then it won't update as frequently as we need so we're doing stuff manually here.\n newLayer: Layer = null;\n oldLayer: Layer = null;\n coordinate?: any;\n newCoordinateX?: any;\n newCoordinateY? : any;\n editor: ValueOverTimeCREditor;\n\n // We must track our own value, so that they can be diffed when setting.\n _value: any;\n\n constructor(component: ManageVersionsComponent, editor: ValueOverTimeCREditor) {\n this.component = component;\n this.editor = editor;\n\n this.populate(editor);\n this.editor.onChangeSubject.subscribe(() => {\n this.populate(this.editor);\n });\n }\n\n populate(editor: ValueOverTimeCREditor) {\n if (this.component.attributeType.type === \"local\" && this._value != null && this.editor.value != null) {\n // The front-end glitches out if we swap to a new object. We have to update the existing object to be the same\n LocalizedValue.populate(this._value, this.editor.value);\n } else if (this.component.attributeType.code === \"_PARENT_\" && this._value != null && this.editor.value != null && this.editor.value.parents != null) {\n for (let i = 0; i < this.component.hierarchy.types.length; i++) {\n let current = this.component.hierarchy.types[i];\n\n this._value.parents[current.code].text = this.editor.value.parents[current.code].text;\n this._value.parents[current.code].geoObject = this.editor.value.parents[current.code].geoObject;\n }\n } else if (this.component.attributeType.code === \"_PARENT_\") {\n this._value = JSON.parse(JSON.stringify(this.editor.value));\n } else {\n this._value = this.convertValueForDisplay(this.editor.value == null ? null : JSON.parse(JSON.stringify(this.editor.value)));\n }\n\n if (this.component.attributeType.code === \"_PARENT_\") {\n this._value.loading = {};\n }\n\n this.calculateSummaryKey();\n }\n\n set oid(oid: string) {\n this.editor.oid = oid;\n }\n\n get oid(): string {\n return this.editor.oid;\n }\n\n get startDate(): string {\n if (this.editor.diff != null && this.editor.diff.action === \"DELETE\") {\n return this.editor.oldStartDate;\n }\n\n return this.editor.startDate;\n }\n\n set startDate(startDate: string) {\n this.editor.startDate = startDate;\n this.calculateSummaryKey();\n }\n\n set oldStartDate(oldStartDate: string) {\n this.editor.oldStartDate = oldStartDate;\n }\n\n get oldStartDate(): string {\n if (this.editor.diff != null && this.editor.diff.action === \"DELETE\") {\n return null;\n }\n\n if (this.editor.diff != null && this.editor.diff.newStartDate != null && this.editor.oldStartDate !== undefined) {\n return this.convertDateForDisplay(this.editor.oldStartDate);\n }\n\n return null;\n }\n\n get endDate(): string {\n if (this.editor.diff != null && this.editor.diff.action === \"DELETE\") {\n return this.editor.oldEndDate;\n }\n\n return this.editor.endDate;\n }\n\n set endDate(endDate: string) {\n this.editor.endDate = endDate;\n this.calculateSummaryKey();\n }\n\n set oldEndDate(oldEndDate: string) {\n this.editor.oldEndDate = oldEndDate;\n }\n\n get oldEndDate(): string {\n if (this.editor.diff != null && this.editor.diff.action === \"DELETE\") {\n return null;\n }\n\n if (this.editor.diff != null && this.editor.diff.newEndDate != null && this.editor.oldEndDate !== undefined) {\n return this.convertDateForDisplay(this.editor.oldEndDate);\n }\n\n return null;\n }\n\n get value(): any {\n return this._value;\n }\n\n set value(value: any) {\n this.editor.value = value;\n }\n\n set oldValue(oldValue: any) {\n this.editor.oldValue = oldValue;\n }\n\n get oldValue(): any {\n if (this.editor.diff != null && this.editor.diff.action === \"DELETE\") {\n return null;\n }\n\n if (this.editor.diff != null && this.editor.diff.newValue != null && this.editor.oldValue !== undefined) {\n return this.convertOldValueForDisplay(this.editor.oldValue);\n }\n\n return null;\n }\n\n convertDateForDisplay(date: string): string {\n return (date == null || date.length === 0) ? null : this.component.dateService.formatDateForDisplay(date);\n }\n\n convertOldValueForDisplay(val: any): any {\n if (this.component.attributeType.type === \"date\") {\n return this.component.dateService.formatDateForDisplay(new Date(val));\n } else if (this.component.attributeType.code === \"_PARENT_\" && val.includes(\"_~VST~_\")) {\n let split = val.split(\"_~VST~_\");\n // let parentTypeCode = split[0];\n let parentCode = split[1];\n\n return parentCode;\n } else if (this.component.attributeType.type === \"term\") {\n let code = val;\n if (code instanceof Array) {\n code = val[0];\n }\n\n let attrOpts = (this.component.attributeType as AttributeTermType).rootTerm.children;\n\n let index = attrOpts.findIndex((term:Term) => term.code === code);\n\n if (index !== -1) {\n return attrOpts[index].label.localizedValue;\n } else {\n return val;\n }\n }\n\n return val;\n }\n\n convertValueForDisplay(val: any): any {\n if (val == null) {\n return null;\n }\n\n return val;\n }\n\n calculateSummaryKey() {\n if (this.editor.diff == null) {\n this.summaryKey = SummaryKey.UNMODIFIED;\n return;\n }\n\n if (this.editor.diff.action === \"CREATE\") {\n this.summaryKey = SummaryKey.NEW;\n return;\n } else if (this.editor.diff.action === \"DELETE\") {\n this.summaryKey = SummaryKey.DELETE;\n return;\n }\n\n let hasTime = this.editor.diff.newStartDate != null || this.editor.diff.newEndDate != null;\n let hasValue = Object.prototype.hasOwnProperty.call(this.editor.diff, \"newValue\");\n\n if (hasTime && hasValue) {\n this.summaryKey = SummaryKey.UPDATE;\n } else if (hasTime) {\n this.summaryKey = SummaryKey.TIME_CHANGE;\n } else if (hasValue) {\n this.summaryKey = SummaryKey.VALUE_CHANGE;\n } else {\n this.summaryKey = SummaryKey.UNMODIFIED;\n }\n }\n\n set summaryKey(newKey: SummaryKey) {\n this.summaryKeyData = newKey;\n this.localizeSummaryKey();\n }\n\n get summaryKey(): SummaryKey {\n return this.summaryKeyData;\n }\n\n private localizeSummaryKey(): void {\n this.summaryKeyLocalized = this.component.lService.decode(\"changeovertime.manageVersions.summaryKey.\" + this.summaryKeyData);\n }\n\n private conflictMessagesHasSeverity(severity: string) {\n let has = false;\n\n this.editor.conflictMessages.forEach(msg => {\n if (msg.severity === severity) {\n has = true;\n }\n });\n\n return has;\n }\n\n hasError(): boolean {\n return this.editor.conflictMessages && this.editor.conflictMessages.size > 0 && this.conflictMessagesHasSeverity(\"ERROR\");\n }\n\n hasWarning(): boolean {\n return !this.hasError() && this.editor.conflictMessages && this.editor.conflictMessages.size > 0 && this.conflictMessagesHasSeverity(\"WARNING\");\n }\n\n}\n","import { Input, Component, ViewChild, ViewEncapsulation } from \"@angular/core\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { GeoObjectOverTime, GeoObjectType } from \"@registry/model/registry\";\nimport { AbstractAction } from \"@registry/model/crtable\";\n\nimport { RegistryService, ChangeRequestService } from \"@registry/service\";\n\nimport { AuthService } from \"@shared/service\";\n\nimport { ErrorHandler } from \"@shared/component\";\n\nimport { ActionDetailComponent } from \"../action-detail-modal.component\";\n\ndeclare var acp: any;\ndeclare var $: any;\n\n@Component({\n\n selector: \"crtable-detail-create-geo-object\",\n templateUrl: \"./detail.component.html\",\n styleUrls: [\"./crtable-detail-create-geo-object.css\"],\n encapsulation: ViewEncapsulation.None\n})\n// export class CreateUpdateGeoObjectDetailComponent implements ComponentCanDeactivate, ActionDetailComponent {\nexport class CreateUpdateGeoObjectDetailComponent implements ActionDetailComponent {\n\n isMaintainer: boolean = false;\n\n @Input() action: any;\n\n preGeoObject: GeoObjectOverTime = null;\n\n postGeoObject: GeoObjectOverTime = null;\n\n geoObjectType: GeoObjectType = null;\n\n @Input() readOnly: boolean;\n\n isEditing: boolean = false;\n\n @ViewChild(\"attributeEditor\") attributeEditor;\n\n @ViewChild(\"geometryEditor\") geometryEditor;\n\n bsModalRef: BsModalRef;\n\n /*\n * Date in which the modal is shown for\n */\n dateStr: string = null;\n\n /*\n * Date in which the modal is shown for\n */\n forDate: Date = null;\n\n constructor(private changeRequestService: ChangeRequestService, private modalService: BsModalService, private registryService: RegistryService,\n private authService: AuthService) {\n\n this.isMaintainer = authService.isAdmin() || authService.isMaintainer();\n\n this.forDate = new Date();\n\n const day = this.forDate.getUTCDate();\n this.dateStr = this.forDate.getUTCFullYear() + \"-\" + (this.forDate.getUTCMonth() + 1) + \"-\" + (day < 10 ? \"0\" : \"\") + day;\n\n }\n\n ngOnInit(): void {\n\n this.postGeoObject = this.action.geoObjectJson;\n this.geoObjectType = this.action.geoObjectType;\n\n if (this.isNew()) {\n\n this.preGeoObject = this.postGeoObject;\n\n }\n\n this.onSelect(this.action);\n\n }\n\n isNew(): boolean {\n\n return (this.action.actionType === \"net.geoprism.registry.action.geoobject.CreateGeoObjectAction\");\n\n }\n\n handleDateChange(): void {\n\n this.forDate = new Date(Date.parse(this.dateStr));\n\n }\n\n applyAction() {\n\n // var action = JSON.parse( JSON.stringify( this.action ) );\n let action = this.action;\n\n action.geoObjectJson = this.attributeEditor.getGeoObject();\n\n if (this.geometryEditor != null) {\n\n action.geoObjectJson.geometry = this.geometryEditor.saveDraw().geometry;\n\n }\n\n /*\n this.changeRequestService.applyAction(action).then(response => {\n\n this.endEdit();\n\n }).catch((err: HttpErrorResponse) => {\n\n this.error(err);\n\n });\n */\n\n }\n\n onSelect(action: AbstractAction) {\n\n // There are multiple ways we could show a diff of an object.\n //\n // This line will show a diff only when a person is typing so as to show the\n // change they are creating.\n //\n // The method below (getGeoObjectByCode) will compare what is in the database\n // at that time with the change request. This will only track state compared to\n // what is currently in the database which isn't necessarily the original change.\n //\n // A third option which is NOT implemented yet would store the state of a geoobject\n // (original and target) with the change request so as to manage state at time of\n // the change request submission.\n //\n // Display diff when a user is changing a value\n // this.preGeoObject = JSON.parse(JSON.stringify(this.postGeoObject));\n\n // Display diff of what's in the database\n if (\n this.action.actionType === \"net.geoprism.registry.action.geoobject.UpdateGeoObjectAction\"\n // && typeof this.postGeoObject.properties.createDate !== 'undefined'\n ) {\n\n this.registryService.getGeoObjectOverTime(this.postGeoObject.attributes.code, this.geoObjectType.code).then(geoObject => {\n\n this.preGeoObject = geoObject;\n\n }).catch((err: HttpErrorResponse) => {\n\n this.error(err);\n\n });\n\n }\n\n }\n\n // Big thanks to https://stackoverflow.com/questions/35922071/warn-user-of-unsaved-changes-before-leaving-page\n // @HostListener( 'window:beforeunload' )\n // canDeactivate(): Observable | boolean {\n // if ( this.isEditing ) {\n // //event.preventDefault();\n // //event.returnValue = 'Are you sure?';\n // //return 'Are you sure?';\n//\n // return false;\n // }\n//\n // return true;\n // }\n\n // afterDeactivate( isDeactivating: boolean ) {\n // if ( isDeactivating && this.isEditing ) {\n // this.unlockActionSync();\n // }\n // }\n\n startEdit(): void {\n\n //this.lockAction();\n\n }\n\n public endEdit(): void {\n\n //this.unlockAction();\n\n }\n/*\n lockAction() {\n\n this.changeRequestService.lockAction(this.action.oid).then(response => {\n\n this.isEditing = true;\n if (this.geometryEditor != null) {\n\n this.geometryEditor.enableEditing(true);\n\n }\n\n }).catch((err: HttpErrorResponse) => {\n\n this.error(err);\n\n });\n\n }\n\n unlockAction() {\n\n this.changeRequestService.unlockAction(this.action.oid).then(response => {\n\n this.isEditing = false;\n if (this.geometryEditor != null) {\n\n this.geometryEditor.enableEditing(false);\n\n }\n\n }).catch((err: HttpErrorResponse) => {\n\n this.error(err);\n\n });\n\n }\n\n // https://stackoverflow.com/questions/4945932/window-onbeforeunload-ajax-request-in-chrome\n unlockActionSync() {\n\n $.ajax({\n url: acp + \"/changerequest/unlockAction\",\n method: \"POST\",\n data: { actionId: this.action.oid },\n success: function(a) {\n\n },\n async: false\n });\n\n }\n*/\n getUsername(): string {\n\n return this.authService.getUsername();\n\n }\n\n public error(err: HttpErrorResponse): void {\n\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n\n }\n\n}\n","
\n\n
\n

{{action.actionLabel}}

\n\t
\n \n
\n

\n : {{action.geoObjectType.code}}\n

\n \n
\n \n \n
\n \n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n
\n \n \n
\n\n
\n \n \n \n
\n
\n
","import { Component, OnInit, Input } from \"@angular/core\";\nimport {\n trigger,\n style,\n animate,\n transition,\n state\n} from \"@angular/animations\";\n\nimport { TimeRangeEntry } from \"@registry/model/registry\";\nimport { LocalizationService } from \"@shared/service\";\nimport { DateService } from \"@shared/service/date.service\";\nimport { ChangeRequestChangeOverTimeAttributeEditor } from \"./change-request-change-over-time-attribute-editor\";\nimport { ChangeRequestEditor } from \"./change-request-editor\";\nimport { GeoObjectSharedAttributeEditorComponent } from \"./geoobject-shared-attribute-editor.component\";\nimport { StandardAttributeCRModel } from \"./StandardAttributeCRModel\";\nimport { ValueOverTimeCREditor } from \"./ValueOverTimeCREditor\";\n\nexport interface DateBoundary { date: string; isStart: boolean; isEnd: boolean }\n\nexport interface TimelineEntry { width: number, x: number, period: TimeRangeEntry }\n\nexport interface DataTimeSpan {startDay: number, startDate: string, displayStartDate: string, endDay: number, endDate: string, displayEndDate: string, span: number}\n\n/*\n * This component is shared between:\n * -\n *\n * Be wary of changing this component for one usecase and breaking other usecases!\n */\n@Component({\n selector: \"stability-period\",\n templateUrl: \"./stability-period.component.html\",\n styleUrls: [\"./stability-period.component.css\"],\n animations: [\n [\n trigger(\"fadeInOut\", [\n transition(\":enter\", [\n style({\n opacity: 0\n }),\n animate(\"1000ms\")\n ]),\n transition(\":leave\",\n animate(\"1000ms\",\n style({\n opacity: 0\n })\n )\n )\n ])\n ]]\n})\nexport class StabilityPeriodComponent implements OnInit {\n\n @Input() changeRequestEditor: ChangeRequestEditor;\n\n @Input() sharedAttributeEditor: GeoObjectSharedAttributeEditorComponent;\n\n @Input() filterDate: string;\n\n @Input() forDate: string;\n\n @Input() context: string;\n\n @Input() latestPeriodIsActive: boolean = false;\n\n periods: TimeRangeEntry[] = [];\n\n timelines: [TimelineEntry[]];\n\n activeEntry: TimelineEntry = null;\n\n forDateEntry: TimelineEntry = null;\n\n private infinityDayPadding: number = 15;\n\n dataTimeSpan: DataTimeSpan = null;\n\n _showHint: boolean = false;\n // eslint-disable-next-line accessor-pairs\n @Input() set showHint(val: boolean) {\n this._showHint = val;\n\n setTimeout(() => {\n this.showHint = false;\n }, 10000);\n }\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private lService: LocalizationService, public dateService: DateService) {}\n\n ngOnInit(): void {\n this.generate();\n\n this.changeRequestEditor.onChangeSubject.subscribe(() => {\n this.generate();\n });\n\n let timeline = this.timelines[0];\n if (timeline && timeline.length > 1) {\n if (this.filterDate != null) {\n let index = timeline.findIndex(entry => this.dateService.between(this.filterDate, entry.period.startDate, entry.period.endDate));\n\n if (index !== -1) {\n this.activeEntry = timeline[index];\n }\n } else if (this.latestPeriodIsActive) {\n this.setActiveTimelineEntry(timeline[timeline.length - 1]);\n }\n\n if (this.forDate != null) {\n let forDateIndex = timeline.findIndex(entry => this.dateService.between(this.forDate, entry.period.startDate, entry.period.endDate));\n\n if (forDateIndex !== -1) {\n this.forDateEntry = timeline[forDateIndex];\n }\n }\n }\n }\n\n navigateRelative(amount: number) {\n let timeline: TimelineEntry[] = this.timelines[0];\n if (timeline == null || timeline.length === 0) { return; }\n\n if (this.activeEntry == null) {\n this.setActiveTimelineEntry(timeline[0]);\n return;\n }\n\n let index = timeline.findIndex(entry => entry.period.startDate === this.activeEntry.period.startDate);\n\n if (index !== -1) {\n let nextIndex = index + amount;\n\n if (nextIndex < 0) {\n nextIndex = timeline.length - 1;\n } else if (nextIndex >= timeline.length) {\n nextIndex = 0;\n }\n\n this.setActiveTimelineEntry(timeline[nextIndex]);\n }\n }\n\n setActiveTimelineEntry(entry: TimelineEntry, refresh: boolean = true) {\n if (this.periods.length <= 1) {\n entry = null;\n }\n\n if (this.activeEntry && entry && entry.period.startDate === this.activeEntry.period.startDate) {\n entry = null;\n }\n\n this.activeEntry = entry;\n this.sharedAttributeEditor.setFilterDate(entry == null ? null : entry.period.startDate, refresh);\n }\n\n generate() {\n this.generatePeriods();\n this.generateTimelines();\n }\n\n calculateDataTimeSpan(): void {\n let startDate: string = null;\n let endDate: string = null;\n let endDay: number = null;\n let startDay: number = null;\n\n if (this.periods.length > 0) {\n startDate = this.periods[0].startDate;\n endDate = this.periods[this.periods.length - 1].endDate;\n\n startDay = this.dateService.getDateFromDateString(startDate).getTime() / (1000 * 60 * 60 * 24);\n\n if (endDate === \"5000-12-31\") {\n if (this.periods.length > 1) {\n endDay = this.dateService.getDateFromDateString(this.periods[this.periods.length - 1].startDate).getTime() / (1000 * 60 * 60 * 24);\n this.infinityDayPadding = (endDay - startDay) * 0.05;\n endDay = this.infinityDayPadding + endDay;\n } else {\n endDay = startDay + this.infinityDayPadding;\n }\n } else {\n endDay = this.dateService.getDateFromDateString(endDate).getTime() / (1000 * 60 * 60 * 24);\n }\n }\n\n this.dataTimeSpan = { startDay: startDay, startDate: startDate, displayStartDate: this.dateService.formatDateForDisplay(startDate), endDay: endDay, endDate: endDate, displayEndDate: this.dateService.formatDateForDisplay(endDate), span: (endDay - startDay) };\n }\n\n generateTimelines() {\n this.timelines = [] as any;\n\n if (this.periods.length === 0) {\n return;\n } else if (this.periods.length === 1) {\n this.setActiveTimelineEntry(null, false);\n }\n\n this.calculateDataTimeSpan();\n\n let currentTimeline: any = [];\n this.timelines.push(currentTimeline);\n let daysLeft = this.dataTimeSpan.span;\n\n let len = this.periods.length;\n for (let i = 0; i < len; ++i) {\n let period = this.periods[i];\n\n let start: Date = this.dateService.getDateFromDateString(period.startDate);\n let end: Date = this.dateService.getDateFromDateString(period.endDate);\n\n let startDay = start.getTime() / (1000 * 60 * 60 * 24);\n let endDay = end.getTime() / (1000 * 60 * 60 * 24);\n if (period.endDate === \"5000-12-31\") {\n endDay = startDay + this.infinityDayPadding;\n }\n\n let daysInPeriod: number = (endDay - startDay);\n if (daysLeft - daysInPeriod < 0) {\n let daysInFirstEntry = daysLeft;\n let timelineEntry1: TimelineEntry = { width: (daysInFirstEntry / this.dataTimeSpan.span) * 100, x: ((startDay - this.dataTimeSpan.startDay) / this.dataTimeSpan.span) * 100, period: period };\n currentTimeline.push(timelineEntry1);\n\n currentTimeline = [];\n this.timelines.push(currentTimeline);\n daysLeft = this.dataTimeSpan.span;\n\n let timelineEntry2: TimelineEntry = { width: ((daysInPeriod - daysInFirstEntry) / this.dataTimeSpan.span) * 100, x: ((startDay - this.dataTimeSpan.startDay) / this.dataTimeSpan.span) * 100, period: period };\n currentTimeline.push(timelineEntry2);\n } else {\n let timelineEntry: TimelineEntry = { width: (daysInPeriod / this.dataTimeSpan.span) * 100, x: ((startDay - this.dataTimeSpan.startDay) / this.dataTimeSpan.span) * 100, period: period };\n currentTimeline.push(timelineEntry);\n daysLeft = daysLeft - daysInPeriod;\n\n if (daysLeft === 0) {\n currentTimeline = [];\n this.timelines.push(currentTimeline);\n daysLeft = this.dataTimeSpan.span;\n }\n }\n }\n\n // console.log(this.timelines);\n }\n\n generatePeriods() {\n let boundaries: DateBoundary[] = [];\n\n // Create an array which contains all the unique start and end dates\n let editors: (ChangeRequestChangeOverTimeAttributeEditor | StandardAttributeCRModel)[] = this.changeRequestEditor.getEditors();\n let len = editors.length;\n\n for (let i = 0; i < len; ++i) {\n if (editors[i] instanceof ChangeRequestChangeOverTimeAttributeEditor) {\n let editor: ChangeRequestChangeOverTimeAttributeEditor = editors[i] as ChangeRequestChangeOverTimeAttributeEditor;\n let values = editor.getEditors();\n\n let valLen = values.length;\n for (let j = 0; j < valLen; ++j) {\n let period: ValueOverTimeCREditor = values[j];\n\n if (period.startDate != null && period.endDate != null && !period.isDelete()) {\n let startIndex = boundaries.findIndex(boundary => period.startDate === boundary.date);\n if (startIndex !== -1) {\n boundaries[startIndex].isStart = true;\n } else {\n boundaries.push({ date: period.startDate, isStart: true, isEnd: false });\n }\n\n let endIndex = boundaries.findIndex(boundary => period.endDate === boundary.date);\n if (endIndex !== -1) {\n boundaries[endIndex].isEnd = true;\n } else {\n boundaries.push({ date: period.endDate, isStart: false, isEnd: true });\n }\n }\n }\n }\n }\n\n // Sort the date boundaries\n boundaries.sort(function(a, b) {\n if (a.date == null || a.date === \"\") {\n return 1;\n } else if (b.date == null || b.date === \"\") {\n return -1;\n }\n\n let first: any = new Date(a.date);\n let next: any = new Date(b.date);\n return first - next;\n });\n\n // Loop over the boundaries and create versions between all the boundaries, but only if there is data between them\n this.periods = [];\n let dlen = boundaries.length;\n for (let i = 0; i < dlen; ++i) {\n let current: DateBoundary = boundaries[i];\n let next: DateBoundary = i + 1 > dlen ? null : boundaries[i + 1];\n\n if (current.isStart && current.isEnd) {\n this.periods.push({ startDate: current.date, endDate: current.date });\n }\n if (current.isEnd && (next != null && next.isStart && this.dateService.addDay(1, current.date) === next.date)) {\n continue;\n }\n\n let startDate = (current.isEnd ? this.dateService.addDay(1, current.date) : current.date);\n\n if (next != null && this.changeRequestEditor.existsAtDate(startDate)) {\n let endDate = (!next.isStart ? next.date : this.dateService.addDay(-1, next.date));\n\n this.periods.push({ startDate: startDate, endDate: endDate });\n }\n }\n\n this.dateService.sort(this.periods);\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n}\n","
\n \n \n \n \n ()\n
\n \n
\n \n ()\n ()\n \n ()\n \n
\n\n
\n \n \n\t\t {{activeEntry.period.startDate}}\n\t\t -\n\t\t {{dateService.formatDateForDisplay(activeEntry.period.endDate)}}\n \n \n {{dataTimeSpan.displayStartDate}}\n -\n {{dataTimeSpan.displayEndDate}}\n \n \n\t \n
\n
\n\t \n\t \n\t
\n \n
\n\n \n\n\n \n\n
\n
\n\n\n\n\n\n
","import {\n Component,\n OnInit,\n Input,\n Output,\n ChangeDetectorRef,\n EventEmitter,\n ElementRef\n} from \"@angular/core\";\nimport {\n trigger,\n style,\n animate,\n transition\n} from \"@angular/animations\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { GeoObjectType, AttributeType, GeoObjectOverTime } from \"@registry/model/registry\";\nimport { ChangeRequest, SummaryKey } from \"@registry/model/crtable\";\nimport { GovernanceStatus } from \"@registry/model/constants\";\nimport { AuthService } from \"@shared/service/auth.service\";\n\nimport { ErrorHandler } from \"@shared/component\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { RegistryService } from \"@registry/service\";\nimport { ChangeRequestService } from \"@registry/service/change-request.service\";\nimport { DateService } from \"@shared/service/date.service\";\n\nimport { LocalizationService } from \"@shared/service\";\n\nimport { ControlContainer, NgForm } from \"@angular/forms\";\nimport { StandardAttributeCRModel } from \"./StandardAttributeCRModel\";\nimport { ChangeRequestEditor } from \"./change-request-editor\";\n\n@Component({\n selector: \"standard-attribute-editor\",\n templateUrl: \"./standard-attribute-editor.component.html\",\n styleUrls: [\"./standard-attribute-editor.component.css\"],\n host: { \"[@fadeInOut]\": \"true\" },\n animations: [\n [\n trigger(\"fadeInOut\", [\n transition(\"void => *\", [\n style({\n opacity: 0\n }),\n animate(\"500ms\")\n ]),\n transition(\":leave\",\n animate(\"500ms\",\n style({\n opacity: 0\n })\n )\n )\n ])\n ]],\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }]\n\n})\nexport class StandardAttributeEditorComponent implements OnInit {\n\n bsModalRef: BsModalRef;\n\n @Input() isNew: boolean = false;\n\n message: string = null;\n\n isValid: boolean = true;\n @Output() isValidChange = new EventEmitter();\n\n @Input() readonly: boolean = false;\n\n @Input() attributeType: AttributeType;\n\n @Input() changeRequest: ChangeRequest;\n\n @Input() geoObjectType: GeoObjectType;\n\n @Input() geoObject: GeoObjectOverTime;\n\n @Input() isNewGeoObject: boolean = false;\n\n view: {\n summaryKey: SummaryKey;\n summaryKeyLocalized: string;\n oldValue?: any;\n value: any;\n attributeCode: string;\n };\n\n @Input() changeRequestEditor: ChangeRequestEditor;\n\n changeRequestAttributeEditor: StandardAttributeCRModel;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public cdr: ChangeDetectorRef, public service: RegistryService, public lService: LocalizationService,\n public changeDetectorRef: ChangeDetectorRef, public dateService: DateService, private authService: AuthService,\n private requestService: ChangeRequestService, private modalService: BsModalService, private elementRef: ElementRef) { }\n\n ngOnInit(): void {\n this.changeRequestAttributeEditor = this.changeRequestEditor.getEditorForAttribute(this.attributeType, null) as StandardAttributeCRModel;\n this.calculateView();\n }\n\n ngAfterViewInit() {\n }\n\n calculateView(): void {\n let diff = this.changeRequestAttributeEditor.diff;\n\n if (diff != null) {\n let newVal = diff.newValue == null ? null : JSON.parse(JSON.stringify(diff.newValue));\n this.view = {\n value: newVal,\n summaryKey: SummaryKey.VALUE_CHANGE,\n summaryKeyLocalized: this.lService.decode(\"changeovertime.manageVersions.summaryKey.\" + SummaryKey.VALUE_CHANGE),\n attributeCode: this.changeRequestAttributeEditor.attribute.code\n };\n\n if (diff.oldValue !== null && diff.oldValue !== undefined) {\n this.view.oldValue = JSON.parse(JSON.stringify(diff.oldValue));\n }\n } else {\n this.view = {\n value: this.changeRequestAttributeEditor.value,\n summaryKey: SummaryKey.UNMODIFIED,\n summaryKeyLocalized: this.lService.decode(\"changeovertime.manageVersions.summaryKey.\" + SummaryKey.UNMODIFIED),\n attributeCode: this.changeRequestAttributeEditor.attribute.code\n };\n }\n }\n\n onValueChange(): void {\n this.calculateView();\n }\n\n onApprove(): void {\n let editAction = this.changeRequestAttributeEditor.editAction;\n\n this.requestService.setActionStatus(editAction.oid, GovernanceStatus.ACCEPTED).then(results => {\n editAction.approvalStatus = GovernanceStatus.ACCEPTED;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onReject(): void {\n let editAction = this.changeRequestAttributeEditor.editAction;\n\n this.requestService.setActionStatus(editAction.oid, GovernanceStatus.REJECTED).then(results => {\n editAction.approvalStatus = GovernanceStatus.REJECTED;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onPending(): void {\n let editAction = this.changeRequestAttributeEditor.editAction;\n\n this.requestService.setActionStatus(editAction.oid, GovernanceStatus.PENDING).then(results => {\n editAction.approvalStatus = GovernanceStatus.PENDING;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n public error(err: any): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n}\n","
\n
\n\t
\n\t\t
\n\t\t {{view.summaryKeyLocalized}}\n\t\t
\n\t\t \n\t\t
\n\t\t\t
\n \n \n
\n \n \n \t\t\t \n
\n \n
\n \n \n
\n \n\t\t\t
\n\t\t\t \n\t\t\t
\n\t\t\t

\n\t\t\t  \n \n \n \n \n \n \n \n \n \n \n {{ view.oldValue }}\n \n\t\t\t

\n\t\t\t
\n\t\t
\n\t
\n
\n \n \n \n
\n\t
\n\t \n\t \n\t \n\t
\n\t
\n\t \n\t \n\t \n\t \n\t \n\t \n\t
\n\t
\n
\n","import { Component, OnInit, ViewChild, OnDestroy, Input } from \"@angular/core\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { RegistryService, MapService, GeometryService } from \"@registry/service\";\n\nimport { Map, NavigationControl } from \"mapbox-gl\";\n\n// eslint-disable-next-line no-unused-vars\ndeclare let acp: string;\n\n@Component({\n selector: \"geoobject-editor-map[geometryType]\",\n templateUrl: \"./geoobject-editor-map.component.html\",\n styleUrls: [\"./geoobject-editor-map.component.css\"]\n})\n\n/**\n * This component is used when viewing change requests\n */\nexport class GeoObjectEditorMapComponent implements OnInit, OnDestroy {\n\n _mapHeight: number = 400;\n // eslint-disable-next-line accessor-pairs\n @Input() set mapHeight(height: number) {\n if (height > 400) {\n this._mapHeight = height;\n }\n }\n\n /*\n * Required. The GeometryType of the GeoJSON. Expected to be in uppercase (because that's how it is in the GeoObjectType for some reason)\n */\n @Input() geometryType: string;\n\n /*\n * Optional. If specified, we will fetch the bounding box from this GeoObject code.\n */\n @Input() bboxCode: string;\n\n /*\n * Optional. If specified, we will fetch the bounding box from this GeoObjectType at the date.\n */\n @Input() bboxType: string;\n\n @Input() bboxDate: string;\n\n /*\n * Optional. If set to true the edit controls will not be displayed. Defaults to false.\n */\n @Input() readOnly: boolean = false;\n\n @ViewChild(\"mapDiv\") mapDiv;\n\n map: Map;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private geomService: GeometryService, private registryService: RegistryService, private mapService: MapService) { }\n\n ngOnInit(): void {\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this.mapDiv.nativeElement.id = Math.floor(Math.random() * (899999)) + 100000;\n\n this.map = new Map({\n container: this.mapDiv.nativeElement.id,\n style: \"mapbox://styles/mapbox/satellite-v9\",\n zoom: 2,\n center: [110.880453, 10.897852]\n });\n\n this.map.on(\"load\", () => {\n this.initMap();\n });\n }, 0);\n }\n\n ngOnDestroy(): void {\n this.geomService.destroy();\n }\n\n getIsValid(): boolean {\n return this.geomService.isValid();\n }\n\n initMap(): void {\n this.map.on(\"style.load\", () => {\n // this.addLayers();\n // this.geomService.initialize(this.map, this.geometryType, this.readOnly);\n });\n\n this.geomService.initialize(this.map, this.geometryType, this.readOnly);\n\n // Add zoom and rotation controls to the map.\n this.map.addControl(new NavigationControl());\n\n this.zoomToBbox();\n }\n\n zoomToBbox(): void {\n this.geomService.zoomToLayersExtent();\n }\n\n public error(err: HttpErrorResponse): void {\n // TODO\n console.log(\"ERROR\", err);\n }\n\n}\n","
\n
\n
","\nimport { Component, ElementRef, Input, Output, EventEmitter } from \"@angular/core\";\n\n@Component({\n selector: \"simple-edit-control\",\n templateUrl: \"./simple-edit-control.component.html\",\n styleUrls: [\"./simple-edit-control.css\"]\n})\nexport class SimpleEditControl {\n\n elRef: ElementRef\n\n @Output() editEmitter = new EventEmitter();\n\n @Input() visible: boolean = true;\n @Input() editSessionEnabled: boolean = false;\n @Input() save: boolean = false;\n\n constructor(elRef: ElementRef) {\n this.elRef = elRef;\n }\n\n onAdd(map): any {\n return this.elRef.nativeElement;\n }\n\n onRemove(map): void {\n this.elRef.nativeElement.remove();\n }\n\n onClick(): void {\n this.editEmitter.emit();\n }\n}\n","
\n \n
\n
\n \n
\n
\n
\n
","import { Component, Input, EventEmitter, Output, SimpleChanges } from \"@angular/core\";\nimport { IActionMapping, ITreeOptions } from \"@circlon/angular-tree-component\";\n\nimport { HierarchyOverTime } from \"@registry/model/registry\";\n\n@Component({\n\n selector: \"tree-geo-selector\",\n templateUrl: \"./tree-geo-selector.html\",\n styleUrls: [\"./tree-geo-selector.css\"]\n})\nexport class TreeGeoSelector {\n\n @Input() hierarchy: HierarchyOverTime;\n\n @Input() readOnly: boolean = false;\n\n @Input() forDate: Date = null;\n\n @Output() onManageVersion = new EventEmitter();\n\n nodes: any[] = [];\n\n actionMapping: IActionMapping = {\n mouse: {\n click: null\n }\n }\n\n options: ITreeOptions = {\n displayField: \"name\",\n isExpandedField: \"expanded\",\n idField: \"code\",\n actionMapping: this.actionMapping\n };\n\n // eslint-disable-next-line no-useless-constructor\n constructor() {\n\n }\n\n ngOnInit(): void {\n this.calculate();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes[\"forDate\"]) {\n this.calculate();\n }\n }\n\n calculate(): any {\n let time = null;\n\n if (this.forDate != null) {\n time = this.forDate.getTime();\n }\n\n let nodes = [];\n let current = null;\n\n this.hierarchy.entries.forEach(pot => {\n const startDate = Date.parse(pot.startDate);\n const endDate = Date.parse(pot.endDate);\n\n // eslint-disable-next-line no-mixed-operators\n if (time == null || time >= startDate && time <= endDate) {\n this.hierarchy.types.forEach(type => {\n let node: any = {\n code: type.code,\n label: type.label,\n children: [],\n expanded: false\n };\n\n if (pot.parents[type.code] != null) {\n node.name = pot.parents[type.code].text;\n\n if (time == null) {\n node.name = node.name + \" (\" + pot.startDate + \" -> \" + pot.endDate + \")\";\n }\n\n node.geoObject = pot.parents[type.code].geoObject;\n }\n\n if (current == null) {\n nodes.push(node);\n } else {\n current.children.push(node);\n current.expanded = true;\n }\n\n current = node;\n });\n }\n\n current = null;\n });\n\n this.nodes = nodes;\n }\n\n onEdit(): void {\n this.onManageVersion.emit(this.hierarchy);\n }\n\n}\n","
\n\n
\n
\n

{{hierarchy.label}}

\n
\n
\n\n\n
0\" class=\"tree\" >\n \n
\n\n\n\n\n \n \n\n
\n
\n
","import { Component, Input, ViewChild } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Subject } from \"rxjs\";\n\nexport interface ActionDetailComponent {\n endEdit(): void;\n}\n\n@Component({\n selector: \"action-detail-modal\",\n templateUrl: \"./action-detail-modal.component.html\",\n styleUrls: []\n})\nexport class ActionDetailModalComponent {\n\n action: any;\n\n readonly: boolean;\n\n @ViewChild(\"cuDetail\") cuDetail: ActionDetailComponent;\n @ViewChild(\"arDetail\") arDetail: ActionDetailComponent;\n @ViewChild(\"spDetail\") spDetail: ActionDetailComponent;\n\n @Input()\n curAction(action: any, readonly: boolean) {\n this.action = action;\n this.readonly = readonly;\n }\n\n /*\n * Called on confirm\n */\n public onFormat: Subject;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef) { }\n\n ngOnInit(): void {\n }\n\n cancel(): void {\n if (this.cuDetail != null) {\n this.cuDetail.endEdit();\n }\n\n if (this.arDetail != null) {\n this.arDetail.endEdit();\n }\n\n if (this.spDetail != null) {\n this.spDetail.endEdit();\n }\n\n this.bsModalRef.hide();\n }\n\n confirm(): void {\n this.bsModalRef.hide();\n }\n}\n","
\n \n\n
\n
\n \n \n \n
\n
\n\n
\n
\n
\n
\n \n
\n
\n
\n\n
\n","import { Component, OnInit } from \"@angular/core\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { ErrorHandler, ErrorModalComponent } from \"@shared/component\";\n\nimport { IOService } from \"@registry/service\";\nimport { AuthService } from \"@shared/service\";\n\ndeclare let acp: string;\n\n@Component({\n\n selector: \"data-export\",\n templateUrl: \"./data-export.component.html\",\n styleUrls: []\n})\nexport class DataExportComponent implements OnInit {\n\n /*\n * List of geo object types from the system\n */\n types: { label: string, code: string }[]\n\n /*\n * Currently selected code\n */\n code: string = null;\n\n /*\n * List of the hierarchies this type is part of\n */\n hierarchies: { label: string, code: string }[] = [];\n\n /*\n * Currently selected hierarchy\n */\n hierarchy: string = null;\n\n /*\n * Currently selected format\n */\n format: string = null;\n\n /*\n * Reference to the modal current showing\n */\n bsModalRef: BsModalRef;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: IOService, private modalService: BsModalService, private authService: AuthService) { }\n\n ngOnInit(): void {\n this.service.listGeoObjectTypes(true).then(types => {\n // this.types = types;\n\n let myOrgTypes = [];\n for (let i = 0; i < types.length; ++i) {\n if (this.authService.isOrganizationRA(types[i].orgCode)) {\n myOrgTypes.push(types[i]);\n }\n }\n this.types = myOrgTypes;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onChange(code: string): void {\n if (code != null && code.length > 0) {\n this.service.getHierarchiesForType(code, false).then(hierarchies => {\n this.hierarchies = hierarchies;\n this.hierarchy = null;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n } else {\n this.hierarchies = [];\n this.hierarchy = null;\n }\n }\n\n onExport(): void {\n if (this.format === \"SHAPEFILE\") {\n window.location.href = acp + \"/shapefile/export-shapefile?type=\" + this.code + \"&hierarchyType=\" + this.hierarchy;\n } else if (this.format === \"EXCEL\") {\n window.location.href = acp + \"/excel/export-spreadsheet?type=\" + this.code + \"&hierarchyType=\" + this.hierarchy;\n }\n }\n\n public error(err: HttpErrorResponse): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n}\n","\n \n \n\n \n\n \n
\n
\n \n
\n \n
\n
\n
0\">\n \n
\n \n
\n
\n
\n \n
\n \n
\n
\n
\n
\n \n
\n
\n
\n \n \n","import {\n Component,\n OnInit,\n Input,\n Output,\n ChangeDetectorRef,\n EventEmitter,\n ViewChildren,\n QueryList\n} from \"@angular/core\";\nimport {\n trigger,\n style,\n animate,\n transition\n} from \"@angular/animations\";\nimport { GeoObjectType, AttributeType, ValueOverTime, GeoObjectOverTime, PRESENT } from \"@registry/model/registry\";\nimport { DateFieldComponent } from \"../../../shared/component/form-fields/date-field/date-field.component\";\nimport { LocalizationService } from \"@shared/service\";\nimport { DateService } from \"@shared/service/date.service\";\nimport * as moment from \"moment\";\n\n@Component({\n selector: \"geometry-panel\",\n templateUrl: \"./geometry-panel.component.html\",\n styleUrls: [\"./geometry-panel.css\"],\n host: { \"[@fadeInOut]\": \"true\" },\n animations: [\n [\n trigger(\"fadeInOut\", [\n transition(\"void => *\", [\n style({\n opacity: 0\n }),\n animate(\"500ms\")\n ]),\n transition(\":leave\",\n animate(\"500ms\",\n style({\n opacity: 0\n })\n )\n )\n ])\n ]]\n})\nexport class GeometryPanelComponent implements OnInit {\n\n @ViewChildren(\"dateFieldComponents\") dateFieldComponentsArray: QueryList;\n\n currentDate: Date = new Date();\n\n isValid: boolean = true;\n\n isVersionForHighlight: number;\n\n message: string = null;\n\n readonly: boolean = false;\n\n hasConflict: boolean = false;\n\n /*\n * Observable subject for MasterList changes. Called when an update is successful\n */\n @Output() onChange = new EventEmitter();\n\n @Output() onCloneGeometry = new EventEmitter();\n\n @Output() onEdit = new EventEmitter();\n\n @Input() geoObjectType: GeoObjectType;\n\n originalGeoObjectOverTime: GeoObjectOverTime;\n geoObjectOverTime: GeoObjectOverTime;\n\n // eslint-disable-next-line accessor-pairs\n @Input() set geoObjectOverTimeInput(value: GeoObjectOverTime) {\n this.originalGeoObjectOverTime = JSON.parse(JSON.stringify(value));\n this.geoObjectOverTime = value;\n }\n\n @Input() isNewGeoObject: boolean = false;\n\n goGeometries: GeoObjectOverTime;\n\n newVersion: ValueOverTime;\n\n hasDuplicateDate: boolean = false;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private lService: LocalizationService, public changeDetectorRef: ChangeDetectorRef, private dateService: DateService) { }\n\n ngOnInit(): void {\n }\n\n checkDateFieldValidity(): boolean {\n let dateFields = this.dateFieldComponentsArray.toArray();\n\n for (let i = 0; i < dateFields.length; i++) {\n let field = dateFields[i];\n if (!field.valid) {\n return false;\n }\n }\n\n return true;\n }\n\n onDateChange(): any {\n this.hasConflict = false;\n\n this.isValid = this.checkDateFieldValidity();\n\n let vAttributes = this.geoObjectOverTime.attributes[\"geometry\"].values;\n\n this.hasConflict = this.dateService.checkRanges(null, vAttributes);\n }\n\n edit(vot: ValueOverTime, isVersionForHighlight: number): void {\n this.onEdit.emit(vot);\n\n this.isVersionForHighlight = isVersionForHighlight;\n }\n\n onAddNewVersion(geometry: ValueOverTime): void {\n let votArr: ValueOverTime[] = this.geoObjectOverTime.attributes[\"geometry\"].values;\n\n let vot: ValueOverTime = new ValueOverTime();\n vot.startDate = null; // Utils.formatDateString(new Date());\n vot.endDate = null; // Utils.formatDateString(new Date());\n\n if (geometry && geometry.value) {\n vot.value = geometry.value;\n } else {\n vot.value = { type: this.geoObjectType.geometryType, coordinates: [] };\n }\n\n if (this.geoObjectType.geometryType === \"MULTIPOLYGON\") {\n vot.value.type = \"MultiPolygon\";\n } else if (this.geoObjectType.geometryType === \"POLYGON\") {\n vot.value.type = \"Polygon\";\n } else if (this.geoObjectType.geometryType === \"POINT\") {\n vot.value.type = \"Point\";\n } else if (this.geoObjectType.geometryType === \"MULTIPOINT\") {\n vot.value.type = \"MultiPoint\";\n } else if (this.geoObjectType.geometryType === \"LINE\") {\n vot.value.type = \"Line\";\n } else if (this.geoObjectType.geometryType === \"MULTILINE\") {\n vot.value.type = \"MultiLine\";\n }\n\n votArr.push(vot);\n\n this.changeDetectorRef.detectChanges();\n }\n\n getVersionData(attribute: AttributeType) {\n let versions: ValueOverTime[] = [];\n\n this.geoObjectOverTime.attributes[attribute.code].values.forEach(vAttribute => {\n vAttribute.value.localeValues.forEach(val => {\n versions.push(val);\n });\n });\n\n return versions;\n }\n\n getDefaultLocaleVal(locale: any): string {\n let defVal = null;\n\n locale.localeValues.forEach(locVal => {\n if (locVal.locale === \"defaultLocale\") {\n defVal = locVal.value;\n }\n });\n\n return defVal;\n }\n\n setDateAttribute(vot: ValueOverTime, val: string): void {\n vot.value = new Date(val).getTime().toString();\n }\n\n remove(version: any): void {\n let val = this.geoObjectOverTime.attributes[\"geometry\"];\n\n let position = -1;\n for (let i = 0; i < val.values.length; i++) {\n let vals = val.values[i];\n\n if (vals.startDate === version.startDate) {\n position = i;\n }\n }\n\n if (position > -1) {\n val.values.splice(position, 1);\n }\n }\n\n formatDate(date: string) {\n let localeData = moment.localeData(date);\n let format = localeData.longDateFormat(\"L\");\n return moment().format(format);\n }\n\n setInfinity(vAttribute, attributes): void {\n if (vAttribute.endDate === PRESENT) {\n vAttribute.endDate = new Date();\n } else {\n vAttribute.endDate = PRESENT;\n }\n\n this.onDateChange();\n }\n\n sort(votArr: ValueOverTime[]): void {\n // Sort the data by start date\n votArr.sort(function(a, b) {\n if (a.startDate == null || a.startDate === \"\") {\n return 1;\n } else if (b.startDate == null || b.startDate === \"\") {\n return -1;\n }\n\n let first: any = new Date(a.startDate);\n let next: any = new Date(b.startDate);\n return first - next;\n });\n }\n\n onCloneGeometryToNewVersion(geometry: ValueOverTime): void {\n this.onAddNewVersion(geometry);\n }\n\n onSubmit(): void {\n this.onChange.emit(this.geoObjectOverTime);\n }\n\n onCancel(): void {\n this.onChange.emit(this.originalGeoObjectOverTime);\n }\n\n}\n","
\n
\n \n
\n\n \n
\n\n
\n
\n\n \n
\n
\n\n
    \n
  • \n \n\n \n

    \n \n

    \n\n 0 && vAttribute.conflictMessage[0].type === 'ERROR', 'warning-border': vAttribute.conflictMessage && vAttribute.conflictMessage.length > 0 && vAttribute.conflictMessage[0].type === 'WARNING'}\">\n \n \n \n \n
    \n \n \n \n \n \n \n \n \n 0\">\n\n\n\n

    \n {{msg.message}}\n

    \n \n
    \n \n \n
    \n
    \n \n
    \n \n \n \n
    \n
    \n
    \n \n
    \n \n \n \n
    \n
    \n
    \n \n
    \n
  • \n\n
  • \n \n \n
  • \n
\n
\n
\n\n
\n\n
\n \n
\n
\n \n \n
\n
\n
\n\n
\n
\n
\n\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { HierarchyNode } from \"@registry/model/hierarchy\";\nimport { GeoObjectType } from \"@registry/model/registry\";\n\n@Pipe({\n name: \"geoobjecttype\",\n pure: false\n})\nexport class GeoObjectTypePipe implements PipeTransform {\n\n transform(items: GeoObjectType[], filter: HierarchyNode[]): any {\n if (!items || !filter) {\n return items;\n }\n\n let unassignedGeoObjTypes: string[] = [];\n this.buildUnassignedGeoObjTypes(filter, unassignedGeoObjTypes)\n\n // filter items array, items which match and return true will be\n // kept, false will be filtered out\n return items.filter(item => unassignedGeoObjTypes.indexOf(item.code) === -1);\n }\n\n buildUnassignedGeoObjTypes(filter: HierarchyNode[], unassignedGeoObjTypes: string[]): void {\n filter.forEach(f => {\n this.processHierarchyNodes(f, unassignedGeoObjTypes);\n })\n }\n\n processHierarchyNodes(node: HierarchyNode, unassignedGeoObjTypes: string[]) {\n unassignedGeoObjTypes.push(node.geoObjectType)\n\n node.children.forEach(child => {\n this.processHierarchyNodes(child, unassignedGeoObjTypes);\n })\n }\n}","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: \"geoObjectAttributeExcludesFilter\",\n pure: true\n})\nexport class GeoObjectAttributeExcludesPipe implements PipeTransform {\n\n transform(items: any[], filter: string[]): any {\n if (!items || !filter) {\n return items;\n }\n\n return items.filter(item => filter.indexOf(item.code) === -1)\n }\n}","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: \"toEpochDateTime\",\n pure: true\n})\nexport class ToEpochDateTimePipe implements PipeTransform {\n\n transform(date: string): any {\n if (!date) {\n return date;\n }\n\n return new Date(date).getTime();\n }\n}","import { NgModule } from \"@angular/core\";\nimport { LocationStrategy, HashLocationStrategy } from \"@angular/common\";\nimport { Routes, RouterModule } from \"@angular/router\";\n\nimport { HierarchyComponent } from \"./component/hierarchy/hierarchy.component\";\nimport { SubmitChangeRequestComponent } from \"./component/submit-change-request/submit-change-request.component\";\nimport { MasterListManagerComponent } from \"./component/master-list/master-list-manager.component\";\nimport { MasterListComponent } from \"./component/master-list/master-list.component\";\nimport { MasterListViewComponent } from \"./component/master-list/master-list-view.component\";\nimport { DataPageComponent } from \"./component/data-page/data-page.component\";\nimport { ChangeRequestPageComponent } from \"./component/change-request-page/change-request-page.component\";\nimport { ScheduledJobsComponent } from \"./component/scheduled-jobs/scheduled-jobs.component\";\nimport { JobComponent } from \"./component/scheduled-jobs/job.component\";\nimport { TaskViewerComponent } from \"./component/task-viewer/task-viewer.component\";\nimport { SynchronizationConfigManagerComponent } from \"./component/synchronization-config/synchronization-config-manager.component\";\nimport { SynchronizationConfigComponent } from \"./component/synchronization-config/synchronization-config.component\";\nimport { SyncDetailsComponent } from \"./component/synchronization-config/details.component\";\nimport { LocationManagerComponent } from \"./component/location-manager/location-manager.component\";\nimport { DatasetLocationManagerComponent } from \"./component/location-manager/dataset-location-manager.component\";\n\nimport { MaintainerGuard, ContributerGuard, AuthGuard } from \"../shared/service/guard.service\";\nimport { HistoricalEventModuleComponent } from \"./component/historical-event-module/historical-event-module.component\";\n\nconst routes: Routes = [\n {\n path: \"\",\n component: HierarchyComponent,\n canActivate: [AuthGuard]\n },\n {\n path: \"hierarchies\",\n component: HierarchyComponent,\n canActivate: [AuthGuard]\n },\n {\n path: \"data\",\n component: DataPageComponent,\n canActivate: [MaintainerGuard]\n },\n {\n path: \"change-requests\",\n component: ChangeRequestPageComponent,\n canActivate: [ContributerGuard]\n },\n {\n path: \"change-requests/:oid\",\n component: ChangeRequestPageComponent,\n canActivate: [ContributerGuard]\n },\n {\n path: \"master-lists\",\n component: MasterListManagerComponent,\n canActivate: [AuthGuard]\n },\n {\n path: \"scheduled-jobs\",\n component: ScheduledJobsComponent,\n canActivate: [MaintainerGuard]\n },\n {\n path: \"job/:oid\",\n component: JobComponent,\n canActivate: [MaintainerGuard]\n },\n {\n path: \"master-list/:oid/:published\",\n component: MasterListComponent,\n canActivate: [AuthGuard]\n },\n {\n path: \"master-list-view/:oid\",\n component: MasterListViewComponent,\n canActivate: [AuthGuard]\n },\n {\n path: \"change-request\",\n component: SubmitChangeRequestComponent,\n canActivate: [ContributerGuard]\n },\n {\n path: \"tasks\",\n component: TaskViewerComponent,\n canActivate: [MaintainerGuard]\n },\n {\n path: \"synchronization-configs\",\n component: SynchronizationConfigManagerComponent,\n canActivate: [AuthGuard]\n },\n {\n path: \"synchronization-config/:oid\",\n component: SynchronizationConfigComponent,\n canActivate: [AuthGuard]\n },\n {\n path: \"location-manager\",\n component: LocationManagerComponent,\n canActivate: [AuthGuard]\n },\n {\n path: \"location-manager/:geoobjectuid/:geoobjecttypecode/:datestr/:hideSearchOptions\",\n component: LocationManagerComponent,\n canActivate: [AuthGuard]\n },\n {\n path: \"location-manager/:geoobjectuid/:geoobjecttypecode/:datestr/:hideSearchOptions/:backReference\",\n component: LocationManagerComponent,\n canActivate: [AuthGuard]\n },\n {\n path: \"dataset-location-manager/:datasetId/:typeCode/:readOnly/:date\",\n component: DatasetLocationManagerComponent,\n canActivate: [AuthGuard]\n },\n {\n path: \"dataset-location-manager/:datasetId/:typeCode/:readOnly/:date/:code\",\n component: DatasetLocationManagerComponent,\n canActivate: [AuthGuard]\n },\n {\n path: \"dataset-location-manager/:datasetId/:typeCode/:readOnly/:date/:code/:editOnly\",\n component: DatasetLocationManagerComponent,\n canActivate: [AuthGuard]\n },\n {\n path: \"dataset-location-manager/:datasetId/:typeCode/:readOnly/:date/:code/:editOnly/:backReference\",\n component: DatasetLocationManagerComponent,\n canActivate: [AuthGuard]\n },\n {\n path: 'sync/details/:config/:oid',\n component: SyncDetailsComponent,\n canActivate: [MaintainerGuard]\n },\n {\n path: \"historical-events\",\n component: HistoricalEventModuleComponent,\n canActivate: [MaintainerGuard]\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n providers: [\n { provide: LocationStrategy, useClass: HashLocationStrategy }\n ]\n})\nexport class RegistryRoutingModule { }\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./src/app/registry/service/geometry.service.ts","webpack:///./src/app/registry/registry.module.ts","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/app/registry/service/index.ts","webpack:///./src/app/registry/model/crtable.ts","webpack:///./src/app/registry/service/change-request.service.ts","webpack:///./src/app/registry/service/transition-event.service.ts","webpack:///./src/app/registry/model/io.ts","webpack:///./src/app/registry/component/geoobject-shared-attribute-editor/geoobject-shared-attribute-editor.component.ts","webpack:///./src/app/registry/component/geoobject-shared-attribute-editor/geoobject-shared-attribute-editor.component.html","webpack:///./src/app/registry/component/form-fields/localized-text/localized-text.component.ts","webpack:///./src/app/registry/component/form-fields/localized-text/localized-text.component.html","webpack:///./src/app/registry/service/geoobjecttype-management.service.ts","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/attribute-input.component.ts","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/attribute-input.component.html","webpack:///./src/app/registry/component/master-list/publish-modal.component.ts","webpack:///./src/app/registry/component/master-list/publish-modal.component.html","webpack:///./src/app/registry/component/form-fields/localized-input/localized-input.component.ts","webpack:///./src/app/registry/component/form-fields/localized-input/localized-input.component.html","webpack:///./src/app/registry/component/hierarchy/hierarchy.component.ts","webpack:///./src/app/registry/component/hierarchy/hierarchy.component.html","webpack:///./src/app/registry/component/geoobject-shared-attribute-editor/change-request-editor.ts","webpack:///./src/app/registry/service/hierarchy.service.ts","webpack:///./src/app/registry/service/io.service.ts","webpack:///./src/app/registry/service/localization-manager.service.ts","webpack:///./src/app/registry/service/map.service.ts","webpack:///./src/app/registry/service/registry.service.ts","webpack:///./src/app/registry/service/synchronization-config.service.ts","webpack:///./src/app/registry/service/task.service.ts","webpack:///./src/app/registry/component/hierarchy/d3/svg-util.ts","webpack:///./src/app/registry/component/importer/modals/attributes-page.component.ts","webpack:///./src/app/registry/component/importer/modals/attributes-page.component.html","webpack:///./src/app/registry/component/importer/modals/location-page.component.ts","webpack:///./src/app/registry/component/importer/modals/location-page.component.html","webpack:///./src/app/registry/component/importer/modals/location-problem-page.component.ts","webpack:///./src/app/registry/component/importer/modals/location-problem-page.component.html","webpack:///./src/app/registry/component/importer/modals/term-problem-page.component.ts","webpack:///./src/app/registry/component/importer/modals/term-problem-page.component.html","webpack:///./src/app/registry/component/submit-change-request/submit-change-request.component.ts","webpack:///./src/app/registry/component/submit-change-request/submit-change-request.component.html","webpack:///./src/app/registry/component/geoobject-editor/geoobject-editor.component.ts","webpack:///./src/app/registry/component/geoobject-editor/geoobject-editor.component.html","webpack:///./src/app/registry/component/scheduled-jobs/step-indicator.component.ts","webpack:///./src/app/registry/component/scheduled-jobs/step-indicator.component.html","webpack:///./src/app/registry/component/location-manager/layer-panel.component.ts","webpack:///./src/app/registry/component/location-manager/layer-panel.component.html","webpack:///./src/app/registry/component/location-manager/feature-panel.component.ts","webpack:///./src/app/registry/component/location-manager/feature-panel.component.html","webpack:///./src/app/registry/component/hierarchy/modals/import-types-modal.component.ts","webpack:///./src/app/registry/component/hierarchy/modals/import-types-modal.component.html","webpack:///./src/app/registry/component/master-list/export-system-modal.component.ts","webpack:///./src/app/registry/component/master-list/export-system-modal.component.html","webpack:///./src/app/registry/component/hierarchy/modals/create-hierarchy-type-modal.component.ts","webpack:///./src/app/registry/component/hierarchy/modals/create-hierarchy-type-modal.component.html","webpack:///./src/app/registry/component/hierarchy/modals/create-geoobjtype-modal.component.ts","webpack:///./src/app/registry/component/hierarchy/modals/create-geoobjtype-modal.component.html","webpack:///./src/app/registry/component/hierarchy/modals/manage-geoobjecttype-modal.component.ts","webpack:///./src/app/registry/component/hierarchy/modals/manage-geoobjecttype-modal.component.html","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/geoobjecttype-input.component.ts","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/geoobjecttype-input.component.html","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/define-attribute-modal-content.component.ts","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/define-attribute-modal-content.component.html","webpack:///./src/app/registry/factory/form-validation.factory.ts","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/edit-attribute-modal-content.component.ts","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/edit-attribute-modal-content.component.html","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/term-option-widget.component.ts","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/term-option-widget.component.html","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/manage-term-options.component.ts","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/manage-term-options.component.html","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/edit-term-option-input.component.ts","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/edit-term-option-input.component.html","webpack:///./src/app/registry/component/hierarchy/d3/svg-hierarchy-type.ts","webpack:///./src/app/registry/component/importer/modals/shapefile-modal.component.ts","webpack:///./src/app/registry/component/importer/modals/shapefile-modal.component.html","webpack:///./src/app/registry/component/importer/modals/location-problem.component.ts","webpack:///./src/app/registry/component/importer/modals/location-problem.component.html","webpack:///./src/app/registry/component/importer/modals/term-problem.component.ts","webpack:///./src/app/registry/component/importer/modals/term-problem.component.html","webpack:///./src/app/registry/component/importer/modals/spreadsheet-modal.component.ts","webpack:///./src/app/registry/component/importer/modals/spreadsheet-modal.component.html","webpack:///./src/app/registry/component/data-page/data-page.component.ts","webpack:///./src/app/registry/component/data-page/data-page.component.html","webpack:///./src/app/registry/component/importer/dataimporter.component.ts","webpack:///./src/app/registry/component/importer/dataimporter.component.html","webpack:///./src/app/registry/component/master-list/master-list-manager.component.ts","webpack:///./src/app/registry/component/master-list/master-list-manager.component.html","webpack:///./src/app/registry/component/master-list/export-format-modal.component.ts","webpack:///./src/app/registry/component/master-list/export-format-modal.component.html","webpack:///./src/app/registry/component/crtable/request-table.component.ts","webpack:///./src/app/registry/component/crtable/request-table.component.html","webpack:///./src/app/registry/component/geoobject-shared-attribute-editor/change-request-change-over-time-attribute-editor.ts","webpack:///./src/app/registry/component/geoobject-shared-attribute-editor/ValueOverTimeCREditor.ts","webpack:///./src/app/registry/component/geoobject-shared-attribute-editor/manage-versions.component.ts","webpack:///./src/app/registry/component/geoobject-shared-attribute-editor/manage-versions.component.html","webpack:///./src/app/registry/component/change-request-page/change-request-page.component.ts","webpack:///./src/app/registry/component/change-request-page/change-request-page.component.html","webpack:///./src/app/registry/component/cascading-geo-selector/cascading-geo-selector.ts","webpack:///./src/app/registry/component/cascading-geo-selector/cascading-geo-selector.html","webpack:///./src/app/registry/component/master-list/master-list.component.ts","webpack:///./src/app/registry/component/master-list/master-list.component.html","webpack:///./src/app/registry/component/master-list/published-master-list-history.component.ts","webpack:///./src/app/registry/component/master-list/published-master-list-history.component.html","webpack:///./src/app/registry/component/master-list/master-list-history.component.ts","webpack:///./src/app/registry/component/master-list/master-list-history.component.html","webpack:///./src/app/registry/component/master-list/master-list-view.component.ts","webpack:///./src/app/registry/component/master-list/master-list-view.component.html","webpack:///./src/app/registry/component/scheduled-jobs/scheduled-jobs.component.ts","webpack:///./src/app/registry/component/scheduled-jobs/scheduled-jobs.component.html","webpack:///./src/app/registry/component/scheduled-jobs/job.component.ts","webpack:///./src/app/registry/component/scheduled-jobs/job.component.html","webpack:///./src/app/registry/component/scheduled-jobs/conflict-widgets/job-conflict-modal.component.ts","webpack:///./src/app/registry/component/scheduled-jobs/conflict-widgets/job-conflict-modal.component.html","webpack:///./src/app/registry/component/scheduled-jobs/conflict-widgets/import-problem-widget.component.ts","webpack:///./src/app/registry/component/scheduled-jobs/conflict-widgets/import-problem-widget.component.html","webpack:///./src/app/registry/component/scheduled-jobs/conflict-widgets/parent-reference-problem-widget.component.ts","webpack:///./src/app/registry/component/scheduled-jobs/conflict-widgets/parent-reference-problem-widget.component.html","webpack:///./src/app/registry/component/scheduled-jobs/conflict-widgets/term-reference-problem-widget.component.ts","webpack:///./src/app/registry/component/scheduled-jobs/conflict-widgets/term-reference-problem-widget.component.html","webpack:///./src/app/registry/component/scheduled-jobs/conflict-widgets/row-validation-problem-widget.component.ts","webpack:///./src/app/registry/component/scheduled-jobs/conflict-widgets/row-validation-problem-widget.component.html","webpack:///./src/app/registry/component/scheduled-jobs/conflict-widgets/reupload-modal.component.ts","webpack:///./src/app/registry/component/scheduled-jobs/conflict-widgets/reupload-modal.component.html","webpack:///./src/app/registry/component/task-viewer/task-viewer.component.ts","webpack:///./src/app/registry/component/task-viewer/task-viewer.component.html","webpack:///./src/app/registry/component/synchronization-config/fhir-export-synchronization-config.component.ts","webpack:///./src/app/registry/component/synchronization-config/fhir-export-synchronization-config.component.html","webpack:///./src/app/registry/component/synchronization-config/dhis2-synchronization-config.component.ts","webpack:///./src/app/registry/component/synchronization-config/dhis2-synchronization-config.component.html","webpack:///./src/app/registry/component/synchronization-config/synchronization-config-manager.component.ts","webpack:///./src/app/registry/component/synchronization-config/synchronization-config-manager.component.html","webpack:///./src/app/registry/component/synchronization-config/synchronization-config-modal.component.ts","webpack:///./src/app/registry/component/synchronization-config/synchronization-config-modal.component.html","webpack:///./src/app/registry/component/synchronization-config/fhir-import-synchronization-config.component.ts","webpack:///./src/app/registry/component/synchronization-config/fhir-import-synchronization-config.component.html","webpack:///./src/app/registry/component/synchronization-config/synchronization-config.component.ts","webpack:///./src/app/registry/component/synchronization-config/synchronization-config.component.html","webpack:///./src/app/registry/component/synchronization-config/details.component.ts","webpack:///./src/app/registry/component/synchronization-config/details.component.html","webpack:///./src/app/registry/component/location-manager/location-manager.component.ts","webpack:///./src/app/registry/component/location-manager/location-manager.component.html","webpack:///./src/app/registry/component/location-manager/context-layer-modal.component.ts","webpack:///./src/app/registry/component/location-manager/context-layer-modal.component.html","webpack:///./src/app/registry/component/location-manager/dataset-location-manager.component.ts","webpack:///./src/app/registry/component/location-manager/dataset-location-manager.component.html","webpack:///./src/app/registry/component/historical-event-module/historical-event-module.component.ts","webpack:///./src/app/registry/component/historical-event-module/historical-event-module.component.html","webpack:///./src/app/registry/component/transition-event/transition-event-table.component.ts","webpack:///./src/app/registry/component/transition-event/transition-event-table.component.html","webpack:///./src/app/registry/component/transition-event/transition-event-modal.component.ts","webpack:///./src/app/registry/component/transition-event/transition-event-modal.component.html","webpack:///./src/app/registry/component/historical-report/historical-report.component.ts","webpack:///./src/app/registry/component/historical-report/historical-report.component.html","webpack:///./src/app/registry/component/hierarchy/d3/svg-hierarchy-node.ts","webpack:///./src/app/registry/component/hierarchy/modals/add-child-to-hierarchy-modal.component.ts","webpack:///./src/app/registry/component/hierarchy/modals/add-child-to-hierarchy-modal.component.html","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/manage-attributes-modal.component.ts","webpack:///./src/app/registry/component/hierarchy/geoobjecttype-management/manage-attributes-modal.component.html","webpack:///./src/app/registry/component/geoobject-shared-attribute-editor/HierarchyCREditor.ts","webpack:///./src/app/registry/component/geoobject-shared-attribute-editor/StandardAttributeCRModel.ts","webpack:///./src/app/registry/component/geoobject-shared-attribute-editor/manage-versions-model.ts","webpack:///./src/app/registry/component/crtable/action-detail/create-update-geo-object/detail.component.ts","webpack:///./src/app/registry/component/crtable/action-detail/create-update-geo-object/detail.component.html","webpack:///./src/app/registry/component/geoobject-shared-attribute-editor/stability-period.component.ts","webpack:///./src/app/registry/component/geoobject-shared-attribute-editor/stability-period.component.html","webpack:///./src/app/registry/component/geoobject-shared-attribute-editor/standard-attribute-editor.component.ts","webpack:///./src/app/registry/component/geoobject-shared-attribute-editor/standard-attribute-editor.component.html","webpack:///./src/app/registry/component/geoobject-editor-map/geoobject-editor-map.component.ts","webpack:///./src/app/registry/component/geoobject-editor-map/geoobject-editor-map.component.html","webpack:///./src/app/registry/component/geoobject-editor-map/simple-edit-control/simple-edit-control.component.ts","webpack:///./src/app/registry/component/geoobject-editor-map/simple-edit-control/simple-edit-control.component.html","webpack:///./src/app/registry/component/tree-geo-selector/tree-geo-selector.ts","webpack:///./src/app/registry/component/tree-geo-selector/tree-geo-selector.html","webpack:///./src/app/registry/component/crtable/action-detail/action-detail-modal.component.ts","webpack:///./src/app/registry/component/crtable/action-detail/action-detail-modal.component.html","webpack:///./src/app/registry/component/data-export/data-export.component.ts","webpack:///./src/app/registry/component/data-export/data-export.component.html","webpack:///./src/app/registry/component/location-manager/geometry-panel.component.ts","webpack:///./src/app/registry/component/location-manager/geometry-panel.component.html","webpack:///./src/app/registry/pipe/geoobjecttype.pipe.ts","webpack:///./src/app/registry/pipe/geoobject-attribute-excludes.pipe.ts","webpack:///./src/app/registry/pipe/to-epoch-date-time.pipe.ts","webpack:///./src/app/registry/registry-routing.module.ts"],"names":["layers","editingControl","simpleEditControl","geometryChange","EventEmitter","ngOnInit","window","onbeforeunload","destroy","initialize","map","geometryType","readOnly","this","addLayers","on","saveEdits","destroyMap","removeControl","remove","removeLayers","forEach","layer","isEditing","isRendering","editingLayer","startEditing","stopEditing","enableEditing","addEditingLayers","rerender","deleteAll","setPointCoordinates","lat","long","set","type","features","id","oid","properties","geometry","coordinates","changeMode","featureIds","isValid","getAll","length","geoJson","getDrawGeometry","editPropagator","value","reload","setEditing","setRendering","addLayer","newLayer","existingIndex","findIndex","findLayer","splice","push","sort","a","b","zindex","getLayers","getRenderedLayers","filter","setLayers","controls","point","line_string","polygon","trash","combine_features","uncombine_features","userProperties","styles","paint","getSource","addControl","add","removeSource","prefix","sourceName","getLayer","removeLayer","len","i","renderGeometryAsLayer","geojson","color","finalSourceName","addSource","data","source","layout","setData","featureCollection","polygons","feature","j","points","lines","createEmptyGeometryValue","zoomToLayersExtent","coords","LngLatBounds","coord","extend","center","getCenter","pt","LngLat","lng","flyTo","zoom","essential","polys","subpoly","fitBounds","padding","subline","GeometryService","Injectable","Output","RegistryModule","MapService","HierarchyService","LocalizationManagerService","ChangeRequestService","IOService","GeoObjectTypeManagementService","RegistryService","TaskService","DatePipe","ToEpochDateTimePipe","StepIndicatorComponent","SynchronizationConfigService","TransitionEventService","CommonModule","RouterModule","FormsModule","ReactiveFormsModule","FileUploadModule","TreeModule","ContextMenuModule","BsDropdownModule","ButtonsModule","TypeaheadModule","ProgressbarModule","TabsModule","CollapseModule","NgxPaginationModule","SharedModule","RegistryRoutingModule","DndModule","AccordionModule","forRoot","HierarchyComponent","RequestTableComponent","CreateUpdateGeoObjectDetailComponent","ImportTypesModalComponent","ExportSystemModalComponent","FhirExportSynchronizationConfigComponent","FhirImportSynchronizationConfigComponent","Dhis2SynchronizationConfigComponent","CreateHierarchyTypeModalComponent","AddChildToHierarchyModalComponent","CreateGeoObjTypeModalComponent","ManageAttributesModalComponent","DefineAttributeModalContentComponent","ShapefileModalComponent","AttributesPageComponent","LocationPageComponent","LocationProblemPageComponent","LocationProblemComponent","TermProblemPageComponent","TermProblemComponent","SpreadsheetModalComponent","GeoObjectTypePipe","GeoObjectAttributeCodeValidator","EditAttributeModalContentComponent","TermOptionWidgetComponent","AttributeInputComponent","EditTermOptionInputComponent","ManageGeoObjectTypeModalComponent","GeoObjectTypeInputComponent","ManageTermOptionsComponent","LocalizedInputComponent","LocalizedTextComponent","GeoObjectSharedAttributeEditorComponent","StabilityPeriodComponent","ManageVersionsComponent","StandardAttributeEditorComponent","SubmitChangeRequestComponent","GeoObjectEditorComponent","GeoObjectAttributeExcludesPipe","GeoObjectEditorMapComponent","SimpleEditControl","DataPageComponent","ChangeRequestPageComponent","CascadingGeoSelector","TreeGeoSelector","ActionDetailModalComponent","DataImporterComponent","DataExportComponent","MasterListManagerComponent","MasterListComponent","MasterListHistoryComponent","PublishedMasterListHistoryComponent","PublishModalComponent","MasterListViewComponent","ExportFormatModalComponent","ScheduledJobsComponent","JobComponent","JobConflictModalComponent","ReuploadModalComponent","ParentReferenceProblemWidgetComponent","TermReferenceProblemWidgetComponent","RowValidationProblemWidgetComponent","ImportProblemWidgetComponent","TaskViewerComponent","SynchronizationConfigManagerComponent","SynchronizationConfigModalComponent","SynchronizationConfigComponent","SyncDetailsComponent","LocationManagerComponent","DatasetLocationManagerComponent","ContextLayerModalComponent","LayerPanelComponent","FeaturePanelComponent","GeometryPanelComponent","TransitionEventTableComponent","TransitionEventModalComponent","HistoricalReportComponent","HistoricalEventModuleComponent","NgModule","imports","declarations","providers","entryComponents","webpackContext","req","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","services","SummaryKey","Document","Geometry","ValueOverTimeDiff","AbstractAction","actionType","ActionTypes","CREATEGEOOBJECTACTION","CreateGeoObjectAction","attributeName","UPDATEATTRIBUTETACTION","attributeDiff","valuesOverTime","UpdateAttributeOverTimeAction","UpdateAttributeAction","ChangeRequestCurrentObject","UpdateChangeRequestCurrentObject","isNew","getActionsForAttribute","cr","hierarchyCode","actions","newActions","action","updateAttrAction","ChangeRequest","GovernanceStatus","PageEvent","http","eventService","implementDecisions","request","headers","HttpHeaders","start","post","acp","JSON","stringify","pipe","finalize","complete","toPromise","update","setActionStatus","actionOid","status","getAllRequests","pageSize","pageNumber","params","HttpParams","toString","get","rejectChangeRequest","delete","requestId","deleteFile","crOid","fileId","vfOid","getPage","attrConditions","getDetails","apply","event","eventId","getHistoricalReport","typeCode","startDate","endDate","ImportSheet","Location","Term","TermProblem","LocationProblem","Exclusion","Synonym","ImportConfiguration","changeRequestEditor","lService","geomService","authService","dateService","postGeoObject","showAllInstances","tabIndex","attributeExcludes","isGeometryInlined","modifiedTermOption","currentTermOption","filterDate","forDate","datasetId","geoObjectAttributeExcludes","showStabilityPeriods","geometryAttributeType","getAttribute","AttributeType","LocalizedValue","parentAttributeType","changeRequest","createNewChangeRequest","ChangeRequestEditor","geoObjectType","hierarchies","shouldForceSetExist","changePage","got","current","orgCode","organizationCode","isSRA","isOrganizationRA","isGeoObjectTypeOrSuperRM","isGeoObjectTypeOrSuperRC","setFilterDate","date","refresh","manageVersions","manageVersion","getChangeRequestEditor","approvalStatus","createAction","geoObjectJson","parentJson","attributes","values","undefined","name","nextPage","hasChanges","hasErrors","attributeEditors","getEditors","filteredEditors","editor","indexOf","attribute","hierarchy","getEditorForAttribute","invalid","existsAttribute","GeoObjectType","existsEditor","prototype","hasOwnProperty","call","allValid","att","validate","getActions","trigger","transition","style","opacity","animate","state","left","Component","selector","templateUrl","styleUrls","animations","Input","attributeForm","ViewChild","ViewChildren","key","disabled","inlinelayout","valueChange","modalStateChangedSource","Subject","modalStepChange","asObservable","getModalState","modalState","setModalState","next","hierarchyService","cdr","disableCodeField","excludeDescription","isDecimal","attributeChange","message","ngAfterViewInit","detectChanges","ngOnChanges","ngOnDestroy","handleOnSubmit","toggleIsUnique","unique","onAnimationDone","label","localeValues","precision","scale","service","iService","bsModalRef","currentDate","Date","readonly","edit","originalPublishStartDate","onMasterListChange","master","listGeoObjectTypes","then","types","myOrgTypes","superTypeCode","isGeoObjectTypeRM","catch","err","error","displayLabel","create","representativityDate","publishingStartDate","publishDate","descriptionLocal","processLocal","progressLocal","accessConstraintsLocal","useConstraintsLocal","acknowledgementsLocal","disclaimerLocal","contactName","organization","telephoneNumber","email","subtypeHierarchies","leaf","frequency","isMaster","visibility","ngAfterContentInit","init","org","getIsDisabled","elClasses","target","classList","onChange","getHierarchiesForType","getHierarchiesForSubtypes","onSubmit","createMasterList","response","hide","obj","onCancel","unsubscribe","formatDate","formatDateForDisplay","ErrorHandler","getMessageFromError","TREE_SCALE_FACTOR_X","TREE_SCALE_FACTOR_Y","DEFAULT_NODE_FILL","DEFAULT_NODE_BANNER_COLOR","INHERITED_NODE_FILL","INHERITED_NODE_BANNER_COLOR","RELATED_NODE_BANNER_COLOR","Instance","modalService","contextMenuService","localizeService","registryService","userOrganization","currentHierarchy","instance","geoObjectTypes","hierarchiesByOrg","typesByOrg","filteredHierarchiesByOrg","filteredTypesByOrg","hierarchyTypeDeleteExclusions","geoObjectTypeDeleteExclusions","_opened","options","displayField","actionMapping","mouse","click","tree","node","$event","treeNodeOnClick","contextMenu","handleOnMenu","refreshAll","fromEvent","searchInput","nativeElement","Boolean","debounceTime","distinctUntilChanged","tap","onFilterChange","subscribe","localize","decode","renderTree","rootGeoObjectTypes","d3","select","canDrag","overflowDiv","scrollLeft","scrollRight","svg","append","attr","primarySvgHierarchy","SvgHierarchyType","render","calculateSvgViewBox","overflowDiv2","calculateCanDrag","getBBox","x","y","width","height","xPadding","yPadding","hierarchyComponent","getNodeByCode","isAbstract","child","calculateRelatedHierarchies","relatedHiers","hierarchyType","descendants","find","inheritedHierarchyCode","registerDragHandlers","deltaX","deltaY","that","dropTargets","dropSelector","onDrag","dragEl","dropEl","emptyHierarchyDropZone","closest","onDrop","addChild","mouseTarget","clearDropZones","lastDropEl","svgMousePoint","svgPoint","sourceEvent","pageX","pageY","getD3Tree","isPointWithin","dropZoneBbox","activeDropZones","parent","gotRectW","gotRectH","clearGhostNodes","isDragGroup","classed","dropNode","isDropGroup","findGeoObjectTypeByCode","dropElX","parseInt","dropElY","childW","childH","dzg","dropTargetHasChildren","children","isChildDZActive","childDzBacker","childDz","addChildLabel","childDzText","calculateTextWidth","text","parentDzBacker","gotHeaderH","parentDz","addParentLabel","parentDzText","ghostCode","parentIndex","addSiblingLabel","ghostingCode","siblingGhostBody","getBboxFromSelection","activeDz","dragGot","youngest","insertBetweenTypes","ghostNode","drag","rect","getBoundingClientRect","top","selThis","document","elementFromPoint","selectAll","each","sidebarDragHandler","registerSvgHandlers","startPoint","svgGot","getPos","setPos","split","svgDragHandler","findHierarchyByCode","ht","findOrganizationByCode","organizations","parentGeoObjectTypeCode","childGeoObjectTypeCode","addChildToHierarchy","index","relatedHierarchies","refreshPrimaryHierarchy","middleGeoObjectTypeCode","youngestGeoObjectTypeCode","isRA","dropZone","getTypesByOrg","orgTypes","getHierarchiesByOrg","orgHierarchies","desiredHierarchy","setLocales","locales","setGeoObjectTypes","pos","getGeoObjectTypePosition","setHierarchies","setNodesOnInit","updateViewDatastructures","setAbstractTypes","localizedValue","toLowerCase","setType","excludeHierarchyTypeDeletes","excludeGeoObjectTypeDeletes","h","setCurrentHierarchy","getHierarchy","hierarchyId","rootGeoObjectType","processHierarchyNodes","getHierarchyLabel","geoObjectTypeCode","gOT","show","childType","nodeMenuComponent","leafMenuComponent","item","preventDefault","stopPropagation","treeModel","setFocusedNode","isExpanded","collapse","expandAll","hierarchyOnClick","createHierarchy","animated","backdrop","ignoreBackdropClick","content","onHierarchytTypeCreate","nameA","toUpperCase","nameB","deleteHierarchyType","ConfirmModalComponent","submitText","onConfirm","removeHierarchyType","editHierarchyType","getHierarchyTypePosition","description","progress","acknowledgement","disclaimer","useConstraints","accessConstraints","contact","phoneNumber","isPrimaryHierarchy","createGeoObjectType","groupSuperType","onGeoObjTypeCreate","deleteGeoObjectType","ModalTypes","danger","removeGeoObjectType","errCallback","manageGeoObjectType","onGeoObjectTypeSubmitted","position","removeFromHierarchy","parentGotCode","gotCode","isActive","filtered","setTimeout","handleInheritHierarchy","hierarchyTypeCode","inheritedHierarchyTypeCode","setInheritedHierarchy","handleUninheritHierarchy","removeInheritedHierarchy","importTypes","onNodeChange","showErrorAsDialog","static","geoObject","localizationService","onChangeSubject","generateAttributeEditors","editors","attrs","slice","isChangeOverTime","ChangeRequestChangeOverTimeAttributeEditor","StandardAttributeCRModel","attributeEditor","_isValid","skipExists","findExistingValueOverTimeByOid","attributeCode","vot","existsAtDate","existEditors","valLen","isDelete","between","getHierarchyTypes","getHierarchyGroupedTypes","createHierarchyType","htJSON","updateHierarchyType","importSpreadsheet","configuration","json","cancelImport","importShapefile","includeAbstractTypes","getTypeAncestors","includeInheritedTypes","includeTypes","getGeoObjectSuggestions","createGeoObjectSynonym","entityId","deleteGeoObjectSynonym","synonymId","vOid","getTermSuggestions","mdAttributeId","limit","createTermSynonym","classifierId","deleteTermSynonym","createTerm","parentTermCode","termJSON","removeTerm","termCode","getNewLocaleInfo","installLocale","language","country","variant","mapboxgl","accessToken","roots","search","getGeoObjectTypes","getParentGeoObjects","childId","childTypeCode","parentTypes","recursive","getChildGeoObjects","parentId","parentTypeCode","childrenTypes","newGeoObjectInstance","gtJSON","updateGeoObjectType","addAttributeType","geoObjTypeId","attributeType","updateAttributeType","deleteAttributeType","addAttributeTermTypeOption","term","updateAttributeTermTypeOption","deleteAttributeTermTypeOption","getGeoObject","getGeoObjectBounds","getGeoObjectBoundsAtDate","getGeoObjectByCode","getHierarchiesForGeoObject","getGeoObjectSuggestionsTypeAhead","getScheduledJobs","sortAttr","isAscending","getCompletedScheduledJobs","getScheduledJob","historyId","onlyUnresolved","getExportDetails","resolveScheduledJob","submitValidationResolve","config","submitErrorResolve","getMasterLists","getMasterListHistory","versionType","getAllMasterListVersions","getMasterListVersion","getLocales","getGeoObjectOverTime","geoObjectCode","newGeoObjectOverTime","setAttributeVersions","collection","list","createMasterListVersion","publishMasterListVersions","deleteMasterList","deleteMasterListVersion","publishMasterList","getMasterList","applyGeoObjectEdit","masterListId","notes","applyGeoObjectCreate","parentTreeNode","prop","val","getTime","valueAttribute","publishShapefile","getMasterListsByOrg","getPublishMasterListJobs","getDatasetBounds","getOrganizations","exportToFhir","systemId","getCustomAttrCfg","externalId","getConfigForES","externalSystemId","unlock","run","getJobs","getFhirExportImplementations","getFhirImportImplementations","getMyTasks","pageNum","whereStatus","completeTask","taskId","setTaskStatus","bbox","fontSize","createSVGPoint","matrixTransform","getScreenCTM","inverse","bbox1","bbox2","selection","configurationChange","stateChange","onNext","emit","locations","onBack","hasProblems","locationProblems","resolved","handleError","exclusions","problem","exclusion","termProblems","changeRequestService","geoObjectId","reason","dateStr","loading","dataSource","Observable","observer","results","isGeoObjectTypeRC","handleDateChange","parse","onValidChange","newValid","geometryEditor","getIsValid","changeTypeaheadLoading","typeaheadOnSelect","cancel","isNewGeoObject","submitFunction","arePropertiesValid","areParentsValid","isEditingGeometries","isAdmin","isMaintainer","isContributor","isContributer","day","getUTCDate","getUTCFullYear","getUTCMonth","findVotWithStartDate","votArray","setMasterListId","setOnSuccessCallback","func","onSuccessCallback","configureAsNew","isGeometryEditable","fetchGeoObjectType","fetchLocales","retJson","goPropertiesPre","GeoObjectOverTime","goPropertiesPost","configureFromImportError","importError","object","parents","importErrorId","resolution","goSubmit","configureAsExisting","fetchGeoObject","fetchHierarchies","console","log","typeTypeCode","getTypeAheadObservable","ptn","parentSelector","force","persistModelChanges","getHierarchies","submit","_stepConfig","steps","layerChange","baseLayerChange","baselayerIconHover","lists","baseLayers","sprite","url","selected","contextLayerGroups","updateContextGroups","changes","currentValue","previousValue","contextGroup","contextLayers","versions","version","thisContextLayer","active","enabled","groupHasEnabledContextLayers","group","hasEnabled","cLayerGroup","cLayer","hasEnabledContextLayers","toggleContextLayer","removeContextLayer","addContextLayerModal","toggleBaseLayer","bl","geometryService","MODE","VERSIONS","ATTRIBUTES","HIERARCHY","GEOMETRY","_code","featureChange","modeChange","panelCancel","panelSubmit","mode","isEdit","updateCode","setValid","valid","preGeoObject","setEditMode","onCancelInternal","canSubmit","trim","applyInfo","isChangeRequest","onManageAttributeVersion","onManageHiearchyVersion","onEditAttributes","getElementById","scroll","behavior","queueLimit","removeAfterUpload","uploader","FileUploader","onBuildItemForm","fileItem","form","onBeforeUploadItem","onCompleteItem","fileRef","onSuccessItem","onErrorItem","onSelect","onClick","queue","uploadAll","externalSystemService","systems","system","onSystemSet","getExternalSystems","resultSet","sys","confirm","auth","orgs","organizationLabel","getOrganizationLabelFromCode","isLeaf","isPrivate","toggleIsLeaf","toggleIsGeometryEditable","toggleIsAbstract","confirmBsModalRef","geoObjectTypeManagementService","GeoObjectTypeModalStates","termOption","modalStateSubscription","onModalStateChange","onGeoObjectTypeChange","close","modalStepIndicatorService","geoObjectTypeChange","modalStepConfig","editGeoObjectType","setStepConfig","fetchOrganizationLabel","defineAttributeModal","defineAttribute","manageAttributes","editAttribute","removeAttributeType","in","newAttribute","setAttribute","attributeInputComponent","AttributeTermType","AttributeDecimalType","isFormValid","isAttrValid","validator","c","geoObjectAttributeCode","provide","NG_VALIDATORS","useExisting","multi","Directive","assign","back","manageTermOption","openAddTermOptionForm","enableTermOptionForm","replace","addTermOption","rootTerm","clearTermOption","deleteTermOption","removeTermOption","editTermOption","cancelTermOption","t","svgEl","isPrimary","d3Hierarchy","d3Tree","nodeSize","separation","getCode","treeNode","SvgHierarchyNode","renderHierarchyHeader","hg","colHeaderLabel","colHeader","headerg","hierarchyLabelW","hierarchyLabelH","headerFontSize","hierarchyLabelY","lineWidth","textWidth","html","d","headerGBbox","getRelatedHierarchies","nodeMouseover","element","nodeMousemove","nodeTooltipBbox","documentElement","scrollHeight","scrollWidth","nodeMouseleave","descends","insert","gtree","links","join","gHeader","gotHeaderW","MOUSE_HOVER_EVENT_ENTER","MOUSE_HOVER_EVENT_MOVE","MOUSE_HOVER_EVENT_EXIT","gotHeaderFontSize","substring","arrowRectD","gArrow","gotBodyFontSize","gotOptionsButtonFontSize","renderRelatedHierarchiesMenu","router","onStateChange","handleBack","handleNext","handleCancel","postalCode","handleSubmit","cancelText","navigate","onError","entityLabel","hasSynonym","createSynonym","ignoreDataAtLocation","locationLabel","undoAction","termLabel","termId","createOption","parentCode","ignoreValue","renderContent","pageTitle","sysService","changeDetectorRef","showImportConfig","importStrategies","strategy","ImportStrategy","NEW_AND_UPDATE","NEW_ONLY","UPDATE_ONLY","isExternal","isLoading","copyBlank","paginatedSystems","externalSystems","views","allHierarchyViews","allTypeViews","len0","view","len2","len9","view2","findType","findHier","filteredHierarchyViews","filteredTypeViews","getUrl","format","importStrategy","externalSystem","onSelectHierarchy","onSelectType","checkDates","setImportSource","checkDateFieldValidity","startDateField","dateFields","dateFieldComponentsArray","toArray","field","inputName","setInvalid","onCreate","createDate","lastUpdateDate","write","read","onView","onEdit","pair","ret","onDelete","arr","onFormat","route","location","today","todayString","getDateString","objectKeys","page","count","requests","columns","filterCriteria","ascending","hasBaseDropZoneOver","sortable","snapshot","paramMap","toggleId","uploadRequest","doc","documents","isSorting","onSort","getGOTLabel","onUpload","onDownloadFile","fileOid","href","onDeleteFile","fileOverBase","pageChange","onExecute","getFirstGeoObjectInActions","uid","onReject","deletedRequestId","onUpdate","applyActionStatusProperties","decisionMaker","getUsername","requestTrackBy","toggle","replaceState","parentElement","className","includes","criteria","getActiveDetailComponent","endsWith","isRequestTooOld","firstAction","UPDATEGEOOBJECTACTION","canEdit","permissions","encapsulation","ViewEncapsulation","None","getEditAction","entries","hierarchyEntry","generateEditors","editAction","validEditors","validateEditors","hasTimeConflict","checkRanges","hasExistConflict","checkExistRanges","includeUnmodified","diff","entry","HierarchyCREditor","ValueOverTimeCREditor","valueOverTime","votDiff","createNewVersion","original","createEmptyHierarchyEntry","hierarchyOverTime","ValueOverTime","constructNewDiff","terms","getGeoObjectTypeTermAttributeOptions","ChangeType","ADD","changeRequestAttributeEditor","getGeoObjectTimeRangeStorage","getValueFromGeoObjectForDiff","validateDate","getDateFromDateString","end","validateUpdateReference","missingReference","conflictMessages","Set","newStartDate","oldStartDate","goRange","oldValue","removeEmptyDiff","START_DATE","oldEndDate","newEndDate","END_DATE","newValue","coordinate","Number","parseFloat","toFixed","areValuesEqual","VALUE","setLocalizedValue","diffs","val1","val2","localeValue","lv2","getValueAtLocale","locale","lv1","lv","getValue","updateAction","REMOVE","votc","requestService","elementRef","isValidChange","viewModels","isRootOfHierarchy","isInitialized","calculateViewModels","onAddNewVersion","hasLocalizationChanged","viewModel","onDateChange","summaryKey","NEW","v","VersionDiffView","termAttributeCode","onApprove","ACCEPTED","REJECTED","onPending","PENDING","pType","loopI","goCode","ancestors","p","ancestor","setParentValue","toggleGeometryEditing","toggleGeometryView","mapRowHeight","getElementsByClassName","offsetHeight","getOrCreateLayer","toggleOldGeometryView","context","Layer","LayerColor","oldLayer","OLD","manualCoordinateChange","newCoordinateX","newCoordinateY","newX","newY","num","latValid","isFinite","Math","abs","longValid","isLongitude","ControlContainer","NgForm","host","viewProviders","isContributorOnly","isContributerOnly","urlSubscriber","highlightOid","customEvent","onManageVersion","cHierarchies","parentMap","calculate","time","pot","onManageVersions","mainForm","pService","order","isPublished","isRefreshing","isWritable","showInvalid","searchPlaceholder","setList","onPageChange","refreshProgress","handleProgressChange","baseUrl","hostname","port","notifier","webSocket","_list","listAttrs","calculateListAttributes","onShowInvalidChange","getFilter","clearFilters","toggleFilter","isCollapsed","newFilter","getTypeaheadDataObservable","base","unshift","total","f","s","handleInputChange","handleListChange","isFilterable","dependency","editModal","onPublish","historyOid","onNewGeoObject","onExport","encodeURIComponent","onWheel","onDeleteMasterListVersion","updateList","onViewMetadata","onPublishShapefile","onExportToFhir","onDownloadShapefile","isForDateValid","ioService","activeJobsPage","completeJobsPage","activeTimeCounter","completeTimeCounter","isViewAllOpen","onActiveJobsPageChange","pollingData","interval","onCompleteJobsPageChange","formatJobStatus","job","formatStepConfig","stepConfig","stage","getJobStatus","getCompletedStatus","jobStage","targetStage","jobPos","onViewAllCompleteJobs","onCancelScheduledJob","jobId","onResolveScheduledJob","allSelected","timeCounter","isPolling","hasRowValidationProblem","formatAffectedRows","rows","formatValidationResolve","onProblemResolved","getFriendlyProblemType","probType","onConflictAction","importErrors","problems","onViewAllActiveJobs","toggleAll","row","onReuploadAndResume","onProblemResolvedListener","onEditGeoObject","searchLabel","getString","conflict","getValidationProblemDisplayLabel","onIgnore","cfg","validationProblemId","onCreateSynonym","title","warning","errorMessage","taskService","inProgressTasks","completedTasks","onInProgressTasksPageChange","onCompletedTasksPageChange","onCompleteTask","task","onMoveTaskToInProgress","onToggleCompletedTasks","rService","subscription","implementations","reset","fieldChange","levels","level","onSelectMasterList","addLevel","versionId","removeLevel","DEFAULT_MAPPING_STRATEGY","cOrg","levelRows","orgUnitGroups","levelRow","levelNum","isAttributeEditor","esConfig","clearMappingData","onChangeHierarchy","buildDefaultMappings","attributeMappingStrategy","isOrgUnitGroup","cgrAttrName","dhis2Id","dhis2AttrName","lvl","mappings","orgUnitGroupId","onSelectLevelType","attrCfg","editorIndex","getEditorIndex","mapping","attrConfigInfos","info","cgrAttr","deleteMapping","addNewMapping","levelRowIndex","newLevelNum","configureAttributes","onSelectGeoObjectType","getTermOptions","dhis2Attrs","dhis2Attr","onChangeDHIS2Attr","isDifferentGot","infos","mapCgrAttr","attributeMappingStrategies","onChangeTargetType","onSuccess","onRemove","isImport","cSystem","oIndex","sIndex","handleFieldChange","onOrganizationSelected","onChangeExternalSystem","implementation","onRun","onGenerateFile","open","stepLabel","configService","configOid","exportErrors","mapService","longitude","latitude","SEARCH","VIEW","editSessionEnabled","displayDateRequiredError","vectorLayers","preventSingleClick","hideSearchOptions","geoObjectUid","backReference","geoObj","Map","container","metadata","sources","mapbox","tileSize","glyphs","protocol","attributionControl","initMap","onModeChange","NavigationControl","visualizePitch","AttributionControl","compact","handleMapClickEvent","fc","zoomToFeature","showOriginalGeometry","addVectorLayer","hideOriginalGeometry","removeVectorLayer","onPanelCancel","onPanelSubmit","SuccessModalComponent","class","changeRequestId","handleBasemapStyle","baseLayer","setStyle","timer","bounds","maxZoom","onContextLayerChange","tiles","navigator","groupHasContextLayers","hasCLayers","toolsIconHover","editOnly","published","GenericModalComponent","buttons","shouldClose","llb","vLayer","prevLayer","onFeatureChange","setFilter","tab","handleTab","dateCondition","beforeTypeCondition","filterChange","onEventChange","deleteEvent","jsEvent","transitionEvent","DRAW_SCALE_MULTIPLIER","VIEWPORT_SCALE_FACTOR_X","VIEWPORT_SCALE_FACTOR_Y","GRAPH_ACTIVE_TRANSITION_HIGHLIGHT_COLOR","GRAPH_GO_LABEL_COLOR","GRAPH_CIRCLE_FILL","GRAPH_LINE_COLOR","changeDetector","activeTransition","allTypes","draggable","effectAllowed","disable","handle","beforeTypeCode","afterTypeCode","eventDate","transitions","setActiveTransition","highlight","trans","sourceCode","targetCode","uuid","v4","sourceType","targetType","transitionType","impact","calculateDerivedAttributes","renderVisual","mouseEvent","transitionOid","validChange","isSource","property","addDay","result","targetText","sourceText","clear","localizeTransitionImpact","localizeTransitionType","stats","sourceStats","targetStats","updown","typeUpdown","typePart","onChangeTypeUpdown","onDragStart","onDragEnd","onDragged","onDraggableCopied","onDraggableLinked","onDraggableMoved","onDragCanceled","onDragover","newIndex","root","appData","generateAppData","renderingData","generateRenderingData","depth","linkDataMappings","multipleParentLinks","link","d3Data","dx","dy","d3RenderingData","parentNode","childNode","grandChild","isChildOfOtherNode","typeaheadParent","exportToExcel","after","svgHierarchyType","dragging","getBbox","inheritNode","heritX","heritY","inheritBbox","uninheritNode","uninheritBbox","getTreeNode","hideRelatedHierarchy","existingSecondary","existingMenu","contextMenuGroup","hasActionsPermissions","titleLabel","actionsTitle","removeFromHierarchyLabel","noRelatedHierLabel","hideRelatedHierarchyLabel","uninheritLabel","inheritLabel","isSecondaryHierarchyRendered","numActions","removeWidth","hideRelatedWidth","uninheritWidth","existingSecondaryCode","secondaryHierarchy","relatedGotHasParents","inheritWidth","relatedHierarchyCode","relatedHierarchy","relatedHierarchyLabel","noHierLabelWidth","heightAdditions","widthPadding","renderSecondaryHierarchy","removeGotFromHierarchy","onClickUninheritHierarchy","onClickInheritHierarchy","myBbox","primaryHierBbox","gSecondary","paddingLeft","secondaryGot","secondaryGotBbox","gConnector","toRoot","allGeoObjectTypes","gObj","selectedGeoObjectType","onDeleteAttribute","immediateParent","directParent","currentDirectParent","getLowestLevelFromHierarchyEntry","oldParents","newValueStrConcat","removeType","newParents","parentType","HierarchyOverTimeEntry","currentImmediateParent","findAction","component","populate","_value","convertValueForDisplay","calculateSummaryKey","convertDateForDisplay","convertOldValueForDisplay","Array","attrOpts","hasTime","hasValue","UPDATE","TIME_CHANGE","VALUE_CHANGE","UNMODIFIED","DELETE","summaryKeyData","newKey","localizeSummaryKey","summaryKeyLocalized","conflictMessagesHasSeverity","severity","has","msg","hasError","size","hasWarning","applyAction","saveDraw","startEdit","endEdit","latestPeriodIsActive","periods","activeEntry","forDateEntry","infinityDayPadding","dataTimeSpan","_showHint","showHint","generate","timeline","timelines","period","setActiveTimelineEntry","forDateIndex","navigateRelative","amount","nextIndex","sharedAttributeEditor","generatePeriods","generateTimelines","calculateDataTimeSpan","endDay","startDay","displayStartDate","displayEndDate","span","currentTimeline","daysLeft","daysInPeriod","daysInFirstEntry","timelineEntry1","timelineEntry2","timelineEntry","boundaries","startIndex","boundary","isStart","isEnd","endIndex","dlen","calculateView","newVal","onValueChange","_mapHeight","mapDiv","floor","random","zoomToBbox","mapHeight","bboxCode","bboxType","bboxDate","elRef","editEmitter","visible","save","onAdd","nodes","isExpandedField","idField","expanded","curAction","cuDetail","arDetail","spDetail","hasConflict","onCloneGeometry","hasDuplicateDate","originalGeoObjectOverTime","geoObjectOverTime","vAttributes","isVersionForHighlight","votArr","getVersionData","vAttribute","getDefaultLocaleVal","defVal","locVal","setDateAttribute","moment","localeData","longDateFormat","setInfinity","PRESENT","onCloneGeometryToNewVersion","geoObjectOverTimeInput","transform","items","unassignedGeoObjTypes","buildUnassignedGeoObjTypes","Pipe","pure","routes","path","canActivate","AuthGuard","MaintainerGuard","ContributerGuard","LocationStrategy","useClass","HashLocationStrategy","forChild"],"mappings":"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AAQ,CACvBC,QAAS,WAGd,GAA0B,SAAtB,EAAK/G,cAAiD,cAAtB,EAAKA,aAA8B,CAC1E,IAAIgG,EAEJ,GAFIA,EAASrF,EAAMqE,QAAQjD,YAEf,CACR,IAAI,EAAS,IAAI,EAAAkE,aACjBD,EAAOtF,SAAQ,SAAAmF,GACXA,EAAMnF,SAAQ,SAAAsG,GACVA,EAAQtG,SAAQ,SAAAwF,GACZ,EAAOC,OAAOD,YAK1B,EAAKnG,IAAI+G,UAAU,EAAQ,CACvBC,QAAS,W,iCAtkBxBE,I,oCAAAA,EAAe,QAAfA,EAAe,O,EAD5B,GACa,EAAAA,mB,+DAAAA,EAAe,E,KAD3B,EAAAC,c,uBAmBa1H,eAAc,E,KAAvB,EAAA2H,Y,0GChCL,WACA,OACA,QACA,QACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UAEA,UACA,UACA,UACA,UACA,UACA,UAEA,UAEA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UAEA,UACA,UAEA,UAEA,OACA,cACA,UACA,UACA,UACA,UACA,UAEA,U,8FAEA,4B,wCA2JaC,I,iCAAAA,I,sCA/CE,CACP,GAAAC,WACA,GAAAC,iBACA,GAAAC,2BACA,GAAAC,qBACA,GAAAC,UACA,GAAAC,+BACA,GAAAC,gBACA,GAAAC,YACA,EAAAC,SACA,GAAAC,oBACA,GAAAC,uBACA,GAAAC,6BACA,GAAAC,wBACH,SAzHQ,CACL,EAAAC,aACA,EAAAC,aACA,EAAAC,YACA,EAAAC,oBACA,EAAAC,iBACA,EAAAC,WACA,EAAAC,kBACA,EAAAC,iBACA,EAAAC,cACA,EAAAC,gBACA,EAAAC,kBACA,EAAAC,WACA,EAAAC,eACA,EAAAC,oBACA,GAAAC,aACA,GAAAC,sBACA,GAAAC,UACA,GAAAC,gBAAgBC,c,EAnBxB,GA2Ja,EAAAhC,mB,iEAAAA,GAAc,eArInB,EAAAiC,mBACA,EAAAC,sBACA,EAAAC,qCACA,EAAAC,0BACA,EAAAC,2BACA,GAAAC,yCACA,GAAAC,yCACA,GAAAC,oCACA,EAAAC,kCACA,EAAAC,kCACA,EAAAC,+BACA,EAAAC,+BACA,EAAAC,qCACA,EAAAC,wBACA,EAAAC,wBACA,EAAAC,sBACA,EAAAC,6BACA,EAAAC,yBACA,EAAAC,yBACA,EAAAC,qBACA,EAAAC,0BACA,GAAAC,kBACA,GAAAC,gCACA,EAAAC,mCACA,EAAAC,0BACA,EAAAC,wBACA,EAAAC,6BACA,EAAAC,kCACA,EAAAC,4BACA,EAAAC,2BACA,EAAAC,wBACA,EAAAC,uBACA,EAAAC,wCACA,EAAAC,yBACA,EAAAC,wBACA,EAAAC,iCACA,EAAAC,6BACA,GAAAC,yBACA,GAAAC,+BACA,GAAA7D,oBACA,GAAA8D,4BACA,GAAAC,kBACA,EAAAC,kBACA,EAAAC,2BACA,GAAAC,qBACA,GAAAC,gBACA,GAAAC,2BACA,EAAA7C,mBACA,GAAA8C,sBACA,GAAAC,oBAEA,EAAAC,2BACA,GAAAC,oBACA,GAAAC,2BACA,GAAAC,oCACA,EAAAC,sBACA,GAAAC,wBAEA,EAAAC,2BACA,GAAAC,uBACA,GAAAC,aACA,GAAAC,0BACA,GAAAC,uBACA,GAAAC,sCACA,GAAAC,oCACA,GAAAC,oCACA,GAAAnF,uBACA,GAAAoF,6BACA,GAAAC,oBAEA,GAAAC,sCACA,GAAAC,oCACA,GAAAC,+BACA,GAAAC,qBAEA,GAAAC,yBACA,GAAAC,gCACA,GAAAC,2BACA,GAAAC,oBACA,GAAAC,sBACA,GAAAC,uBACA,GAAAC,8BACA,GAAAC,8BACA,GAAAC,0BACA,GAAAC,gCAA8B,SAxG9B,EAAAhG,aACA,EAAAC,aACA,EAAAC,YACA,EAAAC,oBACA,EAAAC,iBACA,EAAAC,WACA,EAAAC,kBACA,EAAAC,iBACA,EAAAC,cACA,EAAAC,gBACA,EAAAC,kBACA,EAAAC,WACA,EAAAC,eACA,EAAAC,oBACA,GAAAC,aACA,GAAAC,sBACA,GAAAC,UAAS,uB,gEAyIJ9B,GAAc,E,KA3J1B,EAAA+G,S,MAAS,CACNC,QAAS,CACL,EAAAlG,aACA,EAAAC,aACA,EAAAC,YACA,EAAAC,oBACA,EAAAC,iBACA,EAAAC,WACA,EAAAC,kBACA,EAAAC,iBACA,EAAAC,cACA,EAAAC,gBACA,EAAAC,kBACA,EAAAC,WACA,EAAAC,eACA,EAAAC,oBACA,GAAAC,aACA,GAAAC,sBACA,GAAAC,UACA,GAAAC,gBAAgBC,WAEpBiF,aAAc,CACV,EAAAhF,mBACA,EAAAC,sBACA,EAAAC,qCACA,EAAAC,0BACA,EAAAC,2BACA,GAAAC,yCACA,GAAAC,yCACA,GAAAC,oCACA,EAAAC,kCACA,EAAAC,kCACA,EAAAC,+BACA,EAAAC,+BACA,EAAAC,qCACA,EAAAC,wBACA,EAAAC,wBACA,EAAAC,sBACA,EAAAC,6BACA,EAAAC,yBACA,EAAAC,yBACA,EAAAC,qBACA,EAAAC,0BACA,GAAAC,kBACA,GAAAC,gCACA,EAAAC,mCACA,EAAAC,0BACA,EAAAC,wBACA,EAAAC,6BACA,EAAAC,kCACA,EAAAC,4BACA,EAAAC,2BACA,EAAAC,wBACA,EAAAC,uBACA,EAAAC,wCACA,EAAAC,yBACA,EAAAC,wBACA,EAAAC,iCACA,EAAAC,6BACA,GAAAC,yBACA,GAAAC,+BACA,GAAA7D,oBACA,GAAA8D,4BACA,GAAAC,kBACA,EAAAC,kBACA,EAAAC,2BACA,GAAAC,qBACA,GAAAC,gBACA,GAAAC,2BACA,EAAA7C,mBACA,GAAA8C,sBACA,GAAAC,oBAEA,EAAAC,2BACA,GAAAC,oBACA,GAAAC,2BACA,GAAAC,oCACA,EAAAC,sBACA,GAAAC,wBAEA,EAAAC,2BACA,GAAAC,uBACA,GAAAC,aACA,GAAAC,0BACA,GAAAC,uBACA,GAAAC,sCACA,GAAAC,oCACA,GAAAC,oCACA,GAAAnF,uBACA,GAAAoF,6BACA,GAAAC,oBAEA,GAAAC,sCACA,GAAAC,oCACA,GAAAC,+BACA,GAAAC,qBAEA,GAAAC,yBACA,GAAAC,gCACA,GAAAC,2BACA,GAAAC,oBACA,GAAAC,sBACA,GAAAC,uBACA,GAAAC,8BACA,GAAAC,8BACA,GAAAC,0BACA,GAAAC,gCAEJI,UAAW,CACP,GAAAjH,WACA,GAAAC,iBACA,GAAAC,2BACA,GAAAC,qBACA,GAAAC,UACA,GAAAC,+BACA,GAAAC,gBACA,GAAAC,YACA,EAAAC,SACA,GAAAC,oBACA,GAAAC,uBACA,GAAAC,6BACA,GAAAC,wBAEJsG,gBAAiB,CACb,EAAAzE,kCACA,EAAAC,+BACA,EAAAC,+BACA,EAAAC,qCACA,EAAAW,mCACA,EAAAf,kCACA,EAAAK,wBACA,EAAAO,0BACA,EAAAI,0BACA,EAAAC,wBACA,EAAAC,6BACA,EAAAC,kCACA,EAAAC,4BACA,EAAAC,2BACA,EAAAG,wCACA,EAAAI,6BACA,GAAAC,yBACA,EAAAe,sBACA,EAAAE,2BACA,EAAAb,kBACA,EAAAC,2BACA,GAAAG,2BACA,GAAAY,0BACA,GAAAC,uBACA,GAAAhF,uBACA,GAAAuF,oCACA,GAAAK,2BACA,EAAAlE,2BACA,GAAAuE,mC,kCAlGA,EAAA3C,wCAAuC,SACvC,EAAAC,yBAAwB,0IACxB,EAAAC,wBAAuB,2EACvB,EAAAC,kCAAgC,CAGhC,GAAAG,iC,uBAJA,EAAAJ,wBAAuB,sZAMvB,GAAAK,6BAA2B,mB,uBAM3B,GAAAM,2BAA0B,SA5C1B,EAAA3C,qCAAoC,2B,oBC7I5C,IAAIxJ,EAAM,CACT,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,QAAS,IACT,WAAY,IACZ,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,gBAAiB,IACjB,aAAc,IACd,gBAAiB,IACjB,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,UAAW,IACX,aAAc,IACd,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,WAAY,IACZ,cAAe,IACf,UAAW,IACX,aAAc,IACd,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,YAAa,IACb,eAAgB,IAChB,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,QAAS,IACT,WAAY,IACZ,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,UAAW,IACX,aAAc,IACd,QAAS,IACT,WAAY,IACZ,OAAQ,IACR,UAAW,IACX,QAAS,IACT,WAAY,IACZ,QAAS,IACT,aAAc,IACd,gBAAiB,IACjB,WAAY,IACZ,UAAW,IACX,aAAc,IACd,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,YAAa,IACb,eAAgB,IAChB,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,gBAAiB,IACjB,OAAQ,IACR,UAAW,IACX,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,KAIf,SAASyO,EAAeC,GACvB,IAAI9M,EAAK+M,EAAsBD,GAC/B,OAAOE,EAAoBhN,GAE5B,SAAS+M,EAAsBD,GAC9B,IAAIE,EAAoBC,EAAE7O,EAAK0O,GAAM,CACpC,IAAII,EAAI,IAAIC,MAAM,uBAAyBL,EAAM,KAEjD,MADAI,EAAEE,KAAO,mBACHF,EAEP,OAAO9O,EAAI0O,GAEZD,EAAeQ,KAAO,WACrB,OAAOC,OAAOD,KAAKjP,IAEpByO,EAAeU,QAAUR,EACzBS,EAAOC,QAAUZ,EACjBA,EAAe7M,GAAK,K,6aCnSpB,aACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SAEa,EAAA0N,SAAkB,CAC9B,EAAA7H,qBACA,EAAAE,+BACA,EAAAJ,iBACA,EAAAG,UACA,EAAAF,2BACA,EAAAF,WACA,EAAAM,gBACA,EAAAK,6BACA,EAAAJ,YACA,EAAAX,iBAGD,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,a,ssBC9BA,cAGA,SAAYqI,GACR,YACA,0BACA,kBACA,kBACA,4BACA,8BANJ,CAAY,EAAAA,aAAA,EAAAA,WAAU,KAStB,mBAAa,EAAAC,WAKb,mBAAa,EAAAC,WAKb,mBAAa,EAAAC,oBAwBb,mBAAa,EAAAC,iBAeb,kBAII,mBACI,cAAO,K,OACP,EAAKC,WAAa,EAAAC,YAAYC,sB,EAEtC,OAR2C,OAQ3C,EARA,CAA2CH,GAA9B,EAAAI,wBAUb,kBAII,WAAYC,GAAZ,MACI,cAAO,K,OACP,EAAKJ,WAAa,EAAAC,YAAYI,uBAC9B,EAAKD,cAAgBA,EACrB,EAAKE,cAAgB,CAAEC,eAAgB,I,EAE/C,OAVmD,OAUnD,EAVA,CAAmDR,GAAtC,EAAAS,gCAYb,kBAII,WAAYJ,GAAZ,MACI,cAAO,K,OACP,EAAKJ,WAAa,EAAAC,YAAYI,uBAC9B,EAAKD,cAAgBA,EACrB,EAAKE,cAAgB,G,EAE7B,OAV2C,OAU3C,EAVA,CAA2CP,GAA9B,EAAAU,wBAYb,mBAAa,EAAAC,6BAIb,mBAAa,EAAAC,mCAKb,iBAiBI,aACIpQ,KAAKqQ,OAAQ,EAyBrB,OAtBkB,EAAAC,uBAAd,SAAqCC,EAAmBV,EAAuBW,GAC3E,GAAgB,oBAAZD,EAAGhP,KACH,OAAOgP,EAAGE,QAIV,IAFA,IAAIC,EAAa,GAER9L,EAAI,EAAGA,EAAI2L,EAAGE,QAAQvO,SAAU0C,EAAG,CACxC,IAAI+L,EAASJ,EAAGE,QAAQ7L,GAExB,GAA0B,0BAAtB+L,EAAOlB,WAAwC,CAC/C,IAAImB,EAAmBD,EAEnBC,EAAiBf,gBAAkBA,GAClB,aAAlBA,GAAgCe,EAAiBb,cAAcS,gBAAkBA,GAChFE,EAAW1N,KAAKuN,EAAGE,QAAQ7L,KAKvC,OAAO8L,GAGnB,EA3CA,GAAa,EAAAG,gBA8Eb,mBAAa,EAAAC,mBAKb,mBAAa,EAAAC,a,gHC9Lb,WACA,QACA,Q,GAGA,M,sBAOA,aAII,WAAoBC,EAA0BC,GAA1B,KAAAD,OAA0B,KAAAC,e,OAE9C,YAAAC,mBAAA,SAAmBC,GAAnB,WACQC,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAoBC,IAAM,qCAAsCC,KAAKC,UAAU,CAAEP,QAASA,IAAY,CAAEC,QAASA,IACjHO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAC,OAAA,SAAOZ,GAAP,WACQC,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAoBC,IAAM,wBAAyBC,KAAKC,UAAU,CAAEP,QAASA,IAAY,CAAEC,QAASA,IACpGO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAE,gBAAA,SAAgBC,EAAmBC,GAAnC,WACQd,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAWC,IAAM,mCAAoCC,KAAKC,UAAU,CAAEO,UAAWA,EAAWC,OAAQA,IAAW,CAAEd,QAASA,IAC1HO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAK,eAAA,SAAeC,EAAkBC,EAAoB9O,EAAgBN,EAAavB,GAAlF,WACQ4Q,EAAqB,IAAI,EAAAC,WAY7B,OARAD,GADAA,GADAA,GADAA,EAASA,EAAOhR,IAAI,WAAY8Q,EAASI,aACzBlR,IAAI,aAAc+Q,EAAWG,aAC7BlR,IAAI,SAAUiC,IACdjC,IAAI,OAAQmQ,KAAKC,UAAUzO,IAEhC,MAAPvB,IACA4Q,EAASA,EAAOhR,IAAI,MAAOI,IAG/B1B,KAAKiR,aAAaK,QAEXtR,KAAKgR,KAAKyB,IAA+BjB,IAAM,kCAAmC,CAAEc,OAAQA,IAC9FX,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAY,oBAAA,SAAoBvB,GAApB,WACQC,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KAAKO,KAAWC,IAAM,wBAAyBC,KAAKC,UAAU,CAAEP,QAASA,IAAY,CAAEC,QAASA,IACvGO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAa,OAAA,SAAOC,GAAP,WACQxB,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KAAKO,KAAaC,IAAM,wBAAyBC,KAAKC,UAAU,CAAEkB,UAAWA,IAAc,CAAExB,QAASA,IAC7GO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAe,WAAA,SAAWC,EAAeC,GAA1B,WACQ3B,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAA0BC,IAAM,gCAAiCC,KAAKC,UAAU,CAAEoB,MAAOA,EAAOE,MAAOD,IAAW,CAAE3B,QAASA,IAC7HO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,a,iCA9GAxK,GAAoB,sD,oCAApBA,EAAoB,QAApBA,EAAoB,O,EADjC,GACa,EAAAA,wB,+DAAAA,EAAoB,E,KADhC,EAAAN,c,wLCZD,WACA,QACA,Q,GAEA,M,sBAOA,aAII,WAAoBgK,EAA0BC,GAA1B,KAAAD,OAA0B,KAAAC,e,OAE9C,YAAAgC,QAAA,SAAQb,EAAkBC,EAAoBa,GAA9C,WACQZ,EAAqB,IAAI,EAAAC,WAO7B,OAJAD,GADAA,GADAA,EAASA,EAAOhR,IAAI,WAAY8Q,EAASI,aACzBlR,IAAI,aAAc+Q,EAAWG,aAC7BlR,IAAI,iBAAkBmQ,KAAKC,UAAUwB,IAErDlT,KAAKiR,aAAaK,QAEXtR,KAAKgR,KAAKyB,IAAiCjB,IAAM,yBAA0B,CAAEc,OAAQA,IACvFX,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAqB,WAAA,SAAWzR,GAAX,WACQ4Q,EAAqB,IAAI,EAAAC,WAK7B,OAJAD,EAASA,EAAOhR,IAAI,MAAOI,GAE3B1B,KAAKiR,aAAaK,QAEXtR,KAAKgR,KAAKyB,IAAqBjB,IAAM,gCAAiC,CAAEc,OAAQA,IAClFX,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAsB,MAAA,SAAMC,GAAN,WACQjC,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAsBC,IAAM,0BAA2BC,KAAKC,UAAU,CAAE2B,MAAOA,IAAU,CAAEjC,QAASA,IACpGO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAa,OAAA,SAAOU,GAAP,WACQjC,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAsBC,IAAM,2BAA4BC,KAAKC,UAAU,CAAE4B,QAASD,EAAM3R,MAAQ,CAAE0P,QAASA,IAC3GO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAyB,oBAAA,SAAoBC,EAAkBC,EAAmBC,EAAiBtB,EAAkBC,GAA5F,WACQC,EAAqB,IAAI,EAAAC,WAS7B,OAJAD,GADAA,GADAA,GADAA,GADAA,EAASA,EAAOhR,IAAI,WAAYkS,EAAShB,aACzBlR,IAAI,YAAamS,EAAUjB,aAC3BlR,IAAI,UAAWoS,EAAQlB,aACvBlR,IAAI,WAAY8Q,EAASI,aACzBlR,IAAI,aAAc+Q,EAAWG,YAE7CxS,KAAKiR,aAAaK,QAEXtR,KAAKgR,KAAKyB,IAA+BjB,IAAM,sCAAuC,CAAEc,OAAQA,IAClGX,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,a,iCA7EA/J,GAAsB,sD,oCAAtBA,EAAsB,QAAtBA,EAAsB,O,EADnC,GACa,EAAAA,0B,+DAAAA,EAAsB,E,KADlC,EAAAf,c,2QCRD,mBAAa,EAAA2M,cAUb,mBAAa,EAAAC,WAOb,mBAAa,EAAAC,OAKb,mBAAa,EAAAC,cAUb,mBAAa,EAAAC,kBAUb,mBAAa,EAAAC,YAKb,mBAAa,EAAAC,UAMb,mBAAa,EAAAC,uB,mICxDb,WACA,OACA,OAQA,SAKA,GAJA,MACA,OACA,OAEA,QACA,SACA,SACA,SACA,S,6ECjBI,qC,6BAA+C,qCAAsB,4CAAtB,CAAsB,0BAAtB,CAAsB,oBAAtB,CAAsB,8CAAtB,CAAsB,0BAAtB,CAAsB,uF,mDAMrE,uCAAgI,0GAA0E,iB,gCAA1E,yCAA4B,e,qBAUjI,yB,qBACE,yB,qBAIF,yB,qBACE,yB,qBAIF,yB,qBACE,yB,qBAIF,yB,qBACE,yB,sBAyBb,2BACE,6BACF,kB,sBACA,2BACE,6BACF,kB,yBACA,2BAAoE,YAA8B,kB,wCAA9B,qE,yBAKtE,0BACE,oCAIF,kB,6DAHM,6DAA+B,4CAA/B,CAA+B,kBAA/B,CAA+B,sBAA/B,CAA+B,gBAA/B,CAA+B,0BAA/B,CAA+B,wC,mDAMnC,+BAAiF,0HAAaC,oBAAA,yBAAgD7R,MAAD,KAA7I,iB,gEACuF,oEAD8D,gDACjJ,kDAD6E,6EAAmE,mD,yBAGpJ,0BACI,8CAEJ,kB,6DAF+B,yEAA2C,gCAA3C,CAA2C,gCAA3C,CAA2C,kBAA3C,CAA2C,4CAA3C,CAA2C,sBAA3C,CAA2C,kB,yBAL5E,0BACE,iCAGA,+BAIF,kB,6DAPU,qFAGF,qD,yBAzBZ,6BACE,6BACE,4BACE,gCAGA,gCAGA,gCACF,iBACF,iBAEA,6BACE,+BAOA,+BASF,iBACF,kB,uCA5Ba,oDAGA,4DAGA,6EAKH,wEAOA,yD,yBAtBZ,4BACE,+BAgCF,kB,4CAhCQ,qH,yBAZd,4BAOE,4BAEE,yBACA,4BACE,8B,+CAkCF,iBACF,iBACF,kB,8BApC2B,mH,yBAyCrB,6BACG,6BACE,4BACE,2BAAO,YAAoB,iBAC7B,iBACF,iBAEH,6BACE,oCAEF,iBACD,kB,4DARe,qDAKK,6DAA+B,4CAA/B,CAA+B,sCAA/B,CAA+B,sBAA/B,CAA+B,gBAA/B,CAA+B,0BAA/B,CAA+B,cAA/B,CAA+B,wC,yBATpD,4BACE,+BAYF,kB,4CAZQ,2I,yBAJZ,4BACE,4BACC,4BACC,8BAcD,iBACD,iBACF,kB,8BAhB8B,sD,yBAmB5B,6BACE,6BACE,4BACE,2BAAO,6BAAuE,iBAChF,iBACF,iBAEA,6BACE,oCAEF,iBACF,kB,8BAHqB,6DAA+B,4CAA/B,CAA+B,wCAA/B,CAA+B,sBAA/B,CAA+B,gBAA/B,CAA+B,wCAA/B,CAA+B,0BAA/B,CAA+B,wC,yBATtD,0BACE,+BAYF,kB,8BAZQ,2I,yBAeN,6BACE,6BACE,4BACE,2BAAM,YAA+C,iBACvD,iBACF,iBAEA,6BACE,oCAEF,iBACF,kB,8BARY,kFAKS,6DAA+B,4CAA/B,CAA+B,yCAA/B,CAA+B,sBAA/B,CAA+B,gBAA/B,CAA+B,wCAA/B,CAA+B,0BAA/B,CAA+B,wC,yBAIpD,6BACE,6BACE,4BAGI,6BAEJ,iBACF,iBAEA,6BACE,8CAEF,iBACF,kB,8BAH+B,yEAA2C,gCAA3C,CAA2C,gCAA3C,CAA2C,0CAA3C,CAA2C,4CAA3C,CAA2C,sBAA3C,CAA2C,kB,yBAxB5E,0BACE,+BAYA,+BAeF,kB,8BA3BQ,2IAYA,6I,yBAlGV,0BACE,+BAgDA,+BAqBA,+BAeA,+BA6BF,kB,6BAjHQ,mDAgDA,mDAqBA,mDAeA,oD,iFD3GZ,aAyFI,WAAoB8R,EAAuCC,EAAsCC,EAAkCC,GAA/G,KAAAH,WAAuC,KAAAC,cAAsC,KAAAC,cAAkC,KAAAC,cAhD1H,KAAAC,cAAmC,KAE5C,KAAAC,kBAA4B,EAE5B,KAAAC,SAAmB,EASV,KAAAC,kBAA8B,GAE9B,KAAA5U,UAAoB,EAEpB,KAAAsQ,OAAiB,EAEjB,KAAAuE,mBAAoB,EAM7B,KAAAC,mBAA2B,KAC3B,KAAAC,kBAA0B,KAEjB,KAAAC,WAAqB,KAGrB,KAAAC,QAAkB,KAClB,KAAAC,UAAoB,KAG7B,KAAAC,2BAAuC,CAAC,MAAO,WAAY,OAAQ,iBAAkB,aAAc,UAAW,UAU9G,KAAAC,sBAAuB,E,OAOvB,YAAA3V,SAAA,WACkC,MAA1BQ,KAAK2U,oBACL3U,KAAKkV,2BAA2BlS,KAAKoQ,MAAMpT,KAAKkV,2BAA4BlV,KAAK2U,mBAE5E3U,KAAK4U,mBACN5U,KAAKkV,2BAA2BlS,KAAK,aAI7ChD,KAAKoV,sBAAwBpV,KAAKqV,aAAa,YACb,MAA9BrV,KAAKoV,wBACLpV,KAAKoV,sBAAwB,IAAI,EAAAE,cAAc,WAAY,WAAY,IAAI,EAAAC,eAAe,WAAY,MAAO,IAAI,EAAAA,eAAe,WAAY,OAAO,GAAM,GAAO,GAAO,IAG3KvV,KAAKwV,oBAAsB,IAAI,EAAAF,cAAc,WAAY,WAAY,IAAI,EAAAC,eAAe,UAAW,MAAO,IAAI,EAAAA,eAAe,UAAW,OAAO,GAAM,GAAO,GAAO,GAEzI,MAAtBvV,KAAKyV,cACLzV,KAAKyV,cAAgBzV,KAAK0V,0BAErB1V,KAAKyV,cAAchF,UACpBzQ,KAAKyV,cAAchF,QAAU,IAGS,IAAtCzQ,KAAKyV,cAAchF,QAAQvO,QAAgBlC,KAAKqQ,QAChDrQ,KAAKyV,cAAchF,QAAUzQ,KAAK0V,yBAAyBjF,UAInEzQ,KAAKmU,oBAAsB,IAAI,EAAAwB,oBAAoB3V,KAAKyV,cAAezV,KAAKwU,cAAexU,KAAK4V,cAAe5V,KAAK6V,YAAa7V,KAAKoV,sBAAuBpV,KAAKwV,oBAAqBxV,KAAKoU,SAAUpU,KAAKuU,aAEvMvU,KAAK8V,uBACL9V,KAAK+V,WAAW,GAGhB/V,KAAKqQ,QACLrQ,KAAK+U,WAAa,MAGtB,IAAIiB,EAAMhW,KAAKyV,cAAcQ,QAAUjW,KAAKyV,cAAcQ,QAAQL,cAAgB5V,KAAKwU,cAAcoB,cACjGM,EAAUF,EAAIG,iBAIbnW,KAAKyV,cAAc/T,MACpB1B,KAAKmV,qBAAwBnV,KAAKsU,YAAY8B,SAAWpW,KAAKsU,YAAY+B,iBAAiBH,IAAYlW,KAAKsU,YAAYgC,yBAAyBN,IAAQhW,KAAKsU,YAAYiC,yBAAyBP,IAGvMhW,KAAKyU,iBAAoBzU,KAAKmU,oBAAoBsB,cAAcpF,OAAyD,oBAAhDrQ,KAAKmU,oBAAoBsB,cAAclU,MAGpH,YAAAiV,cAAA,SAAcC,EAAcC,GAA5B,gBAA4B,IAAAA,OAAA,GACxB1W,KAAK+U,WAAa0B,EAES,MAAvBzW,KAAK2W,gBACL3W,KAAK2W,eAAenW,SAAQ,SAAAoW,GAAiB,OAAAA,EAAcJ,cAAc,EAAKzB,WAAY2B,OAIlG,YAAAG,uBAAA,WACI,OAAO7W,KAAKmU,qBAGhB,YAAAuB,uBAAA,WACI,IAAInF,EAAK,IAAI,EAAAM,cAIb,GAHAN,EAAGuG,eAAiB,UACpBvG,EAAGE,QAAU,GAETzQ,KAAKqQ,MAAO,CACZE,EAAGhP,KAAO,kBAEV,IAAIwV,EAAsC,IAAI,EAAAnH,sBAC9CmH,EAAaC,cAAgBhX,KAAKwU,cAClCuC,EAAaE,WAAajX,KAAK6V,YAC/BtF,EAAGE,QAAQ,GAAKsG,OAEhBxG,EAAGhP,KAAO,kBAGd,OAAOgP,GAGX,YAAAuF,oBAAA,WACI,IAAIzF,EAAQrQ,KAAKmU,oBAAoBsB,cAAcpF,MAEnD,GAAIA,IAAUrQ,KAAKD,UAAYC,KAAKwU,cAAc0C,WAAmB,OAAG,CACpE,IAAIC,EAASnX,KAAKwU,cAAc0C,WAAmB,OAAEC,OAErD,GAAIA,GAAUA,EAAOjV,OAAS,EAAG,CAC7B,IAAII,EAAQ6U,EAAO,GAEnB,OAA0B,MAAnB7U,EAAMmR,WAAsC,MAAjBnR,EAAMoR,cAAmC0D,IAAhB9U,EAAMA,OAAuC,OAAhBA,EAAMA,OAItG,OAAO+N,IAAUrQ,KAAKD,UAG1B,YAAAsV,aAAA,SAAagC,GACT,GAAa,aAATA,EACA,OAAOrX,KAAKwV,oBACT,GAAa,aAAT6B,EACP,OAAOrX,KAAKoV,sBAGhB,IAAK,IAAIxQ,EAAI,EAAGA,EAAI5E,KAAK4V,cAAcsB,WAAWhV,SAAU0C,EACxD,GAAI5E,KAAK4V,cAAcsB,WAAWtS,GAAGiK,OAASwI,EAC1C,OAAOrX,KAAK4V,cAAcsB,WAAWtS,GAI7C,OAAO,MAGX,YAAAmR,WAAA,SAAWuB,GACHtX,KAAK8V,uBAAsC,IAAbwB,IAIlCtX,KAAKqU,YAAY1U,SAAQ,GAEzBK,KAAK0U,SAAW4C,IAGpB,YAAAC,WAAA,SAAW7C,GACP,IAAI/P,EAAM3E,KAAKyV,cAAchF,QAAQvO,OAErC,GAAIyC,EAAM,EACN,IAAK,IAAIC,EAAI,EAAGA,EAAID,IAAOC,EAAG,CAC1B,IAAI+L,EAAyB3Q,KAAKyV,cAAchF,QAAQ7L,GAExD,GAAI+L,EAAOlB,aAAe,EAAAC,YAAYC,sBAClC,OAAO,EACJ,GAAIgB,EAAOlB,aAAe,EAAAC,YAAYI,uBAAwB,CACjE,IAAIc,EAAkDD,EAEtD,GAAuC,aAAnCC,EAAiBf,eAA6C,IAAb6E,EACjD,OAAO,EACJ,GAAuC,aAAnC9D,EAAiBf,eAA6C,IAAb6E,EACxD,OAAO,EACJ,IAAwC,YAAnC9D,EAAiBf,eAAkE,WAAnCe,EAAiBf,gBAA4C,IAAb6E,EACxG,OAAO,EACJ,GAAiB,IAAbA,GAAqD,aAAnC9D,EAAiBf,eAAmE,aAAnCe,EAAiBf,eAAmE,WAAnCe,EAAiBf,eAAiE,YAAnCe,EAAiBf,cAC3L,OAAO,GAMvB,OAAO,GAGX,YAAA2H,UAAA,SAAU9C,GACN,IAAI+C,EAAmBzX,KAAKmU,oBAAoBuD,aAEhD,GAAiB,IAAbhD,EAIA,IAHA,IAAI,EAAS,CAAC,UAAW,SAAU,WAAY,YAC3CiD,EAAkBF,EAAiBlU,QAAO,SAAAqU,GAAU,OAA2C,IAA3C,EAAOC,QAAQD,EAAOE,UAAUjJ,SAE/EjK,EAAI,EAAGA,EAAI+S,EAAgBzV,SAAU0C,EAAG,CAG7C,IAFa+S,EAAgB/S,GAEjB5C,UACR,OAAO,OAGZ,GAAiB,IAAb0S,EACP,IAAS9P,EAAI,EAAGA,EAAI5E,KAAK6V,YAAY3T,SAAU0C,EAAG,CAC9C,IAAImT,EAAY/X,KAAK6V,YAAYjR,GAEjC,IAAK5E,KAAKmU,oBAAoB6D,sBAAsBhY,KAAKwV,oBAAqBuC,GAAW/V,UACrF,OAAO,MAGZ,IAAiB,IAAb0S,EACP,OAAQ1U,KAAKmU,oBAAoB6D,sBAAsBhY,KAAKoV,uBAAuBpT,UAChF,GAAiB,IAAb0S,EAAgB,CACvB,IAAIuD,EAAUjY,KAAKqV,aAAa,WAE5B6C,EAAiC,EAAAC,cAAc9C,aAAarV,KAAKmU,oBAAoByB,cAAe,UACpGwC,EAAepY,KAAKmU,oBAAoB6D,sBAAsBE,GAElE,OAAQnJ,OAAOsJ,UAAUC,eAAeC,KAAKN,EAAS,aAAeA,EAAQjW,UAC5EoW,EAAapW,WAGlB,OAAO,GAGJ,YAAAA,QAAP,WACI,IAAIwW,GAAmB,EAgBvB,OAdAxY,KAAK4V,cAAcsB,WAAW1W,SAAQ,SAAAiY,GACf,MAAfA,EAAIzW,SAAoByW,EAAIzW,UAC5BwW,GAAW,MAIqB,MAApCxY,KAAKwV,oBAAoBxT,SAAoBhC,KAAKwV,oBAAoBxT,UACtEwW,GAAW,GAG2B,MAAtCxY,KAAKoV,sBAAsBpT,SAAoBhC,KAAKoV,sBAAsBpT,UAC1EwW,GAAW,GAGRA,GAAYxY,KAAKmU,oBAAoBuE,YAGzC,YAAAC,WAAP,WACI,OAAO3Y,KAAKmU,oBAAoBsB,cAAchF,S,iCAxQzCtF,GAAuC,0J,iCAAvCA,EAAuC,0E,GAAA,M,iCA0ClC,EAAAE,wBAAuB,I,udA5E1B,CAAC,EAAA1D,YAAS,ypECzBzB,4BACE,4BACE,2CACF,iBACF,iBAEA,4BACE,4BACE,wCACF,iBACF,iBAEA,4BAEE,4BACE,4BACE,8BAAiH,wCAAS,EAAAoO,WAAW,MACnI,8BAA+C,6BAAoD,iBACnG,6BAAuB,gCAAuD,iBAC9E,+BAAyB,iCAAyD,iBACpF,iBACA,+BAAiH,wCAAS,EAAAA,WAAW,MACnI,8BAA+C,8BAAmD,iBAClG,6BAAuB,gCAAuD,iBAC9E,+BAAyB,iCAAyD,iBACpF,iBACA,+BAAiH,wCAAS,EAAAA,WAAW,MACnI,8BAA+C,8BAAmD,iBAClG,6BAAuB,gCAAuD,iBAC9E,+BAAyB,iCAAyD,iBACpF,iBACA,gCAAyF,wCAAS,EAAAA,WAAW,MAC3G,8BAA+C,uBAAyB,iBACxE,6BAAuB,gCAAuD,iBAC9E,+BAAyB,iCAAyD,iBACpF,iBACF,iBACF,iBACF,iBAEA,kCACE,gCAEE,gCAoHF,iBACF,kB,MA9JuB,2DAMH,6IAQ6B,sGAEX,mDACE,oDAES,sGAEX,mDACE,oDAES,sGAEX,mDACE,oDAEkB,8EAEpB,mDACE,oDAS9B,6F,+0FDjBM,CACR,CACI,EAAA6C,QAAQ,YAAa,CACjB,EAAAC,WAAW,SAAU,CACjB,EAAAC,MAAM,CACFC,QAAS,IAEb,EAAAC,QAAQ,WAEZ,EAAAH,WAAW,SACP,EAAAG,QAAQ,QACJ,EAAAF,MAAM,CACFC,QAAS,QAKzB,EAAAH,QAAQ,QAAS,CACb,EAAAK,MAAM,OAAQ,EAAAH,MAAM,CAAEI,KAAM,KAC5B,EAAAD,MAAM,QAAS,EAAAH,MAAM,CAAEI,KAAM,UAC7B,EAAAL,WAAW,SAAU,EAAAG,QAAQ,a,EAzB7C,GAsCa,EAAA7N,2C,+DAAAA,EAAuC,E,KAtCnD,EAAAgO,U,MAAU,CACPC,SAAU,oCACVC,YAAa,qDACbC,UAAW,CAAC,2CACZlL,UAAW,CAAC,EAAAzG,UACZ4R,WAAY,CACR,CACI,EAAAX,QAAQ,YAAa,CACjB,EAAAC,WAAW,SAAU,CACjB,EAAAC,MAAM,CACFC,QAAS,IAEb,EAAAC,QAAQ,WAEZ,EAAAH,WAAW,SACP,EAAAG,QAAQ,QACJ,EAAAF,MAAM,CACFC,QAAS,QAKzB,EAAAH,QAAQ,QAAS,CACb,EAAAK,MAAM,OAAQ,EAAAH,MAAM,CAAEI,KAAM,KAC5B,EAAAD,MAAM,QAAS,EAAAH,MAAM,CAAEI,KAAM,UAC7B,EAAAL,WAAW,SAAU,EAAAG,QAAQ,e,sHAgBhCxE,cAAe,CAAF,C,KAArB,EAAAgF,QAWQ5D,cAAe,CAAF,C,KAArB,EAAA4D,QAEQ7E,kBAAmB,CAAF,C,KAAzB,EAAA6E,QAEQzZ,SAAU,CAAF,C,KAAhB,EAAAyZ,QAEQnJ,MAAO,CAAF,C,KAAb,EAAAmJ,QAEQ5E,kBAAiB,E,KAAzB,EAAA4E,QAEQ/D,cAAe,CAAF,C,KAArB,EAAA+D,QAEQ3D,YAAa,CAAF,C,KAAnB,EAAA2D,QAKQzE,WAAY,CAAF,C,KAAlB,EAAAyE,QAGQxE,QAAS,CAAF,C,KAAf,EAAAwE,QACQvE,UAAW,CAAF,C,KAAjB,EAAAuE,QAK2BC,cAAa,E,KAAxC,EAAAC,U,MAAU,mBAE4B/C,eAAgB,CAAF,C,KAApD,EAAAgD,a,MAAa,EAAAtO,8B,kHErGlB,W,GACA,O,0NCAA,0BACE,4BACE,4BACE,4BACE,4BACE,4BACE,4BACA,6BAA6B,iBAAO,qCAAkE,iBAAC,iBACzG,iBACF,iBACA,6BACE,8BACE,kCAAU,wEAAmG,iBAC/G,iBACF,iBACF,iBACF,iBACF,iBACF,kB,2CAjBO,6FACE,8EAEI,+EAES,yCAC6C,4CAGtD,+EAES,+CAA+B,sBAA/B,CAA+B,iCDVrD,iBAcI,aAPgB,KAAAuO,IAAc,GAEd,KAAAC,UAAoB,EACpB,KAAAC,cAAwB,EACvB,KAAAC,YAAc,IAAI,EAAAxa,a,wCAN1B2L,I,iCAAAA,EAAsB,wVCPnC,gC,KAA6B,8C,0ODE7B,GAKa,EAAAA,0B,+DAAAA,EAAsB,E,KALlC,EAAAiO,U,MAAU,CACPC,SAAU,iBACVC,YAAa,kCACbC,UAAW,CAAC,6B,uBAIIM,IAAK,CAAF,C,KAAlB,EAAAJ,QACelX,MAAO,CAAF,C,KAApB,EAAAkX,QACeK,SAAU,CAAF,C,KAAvB,EAAAL,QACeM,aAAc,CAAF,C,KAA3B,EAAAN,QACgBO,YAAW,E,KAA3B,EAAA9S,Y,0HEdL,WACA,Q,OAIA,aAQI,aAJQ,KAAA+S,wBAA0B,IAAI,EAAAC,QACtC,KAAAC,gBAAkBla,KAAKga,wBAAwBG,e,OAKxC,YAAAC,cAAP,WACI,OAAOpa,KAAKqa,YAGT,YAAAC,cAAP,SAAqBrB,GACjBjZ,KAAKqa,WAAapB,EAElBjZ,KAAKga,wBAAwBO,KAAKva,KAAKqa,a,iCAhBlC7S,I,oCAAAA,EAA8B,QAA9BA,EAA8B,O,EAD3C,GACa,EAAAA,kC,+DAAAA,EAA8B,E,KAD1C,EAAAR,c,gJCLD,WACA,O,GAQA,OACA,O,6HCKE,uCAA4C,+GAAwE,iB,gCAAxE,+C,mDAG5C,4BACE,4BACE,4BACE,6BACF,iBACF,iBACA,4BACE,6BACE,+BAAmB,+GAAnB,iBACF,iBACF,iBACF,iB,gCAHyB,8D,mDAKzB,4BACE,4BACE,4BACE,6BACF,iBACF,iBACA,4BACE,6BACE,+BAAmB,2GAAnB,iBACF,iBACF,iBACF,iB,gCAHyB,0DD1B3B,iBA8BI,WAAoBwT,EAA4CC,GAA5C,KAAAD,mBAA4C,KAAAC,MAXvD,KAAAC,kBAA4B,EAC5B,KAAAC,oBAA8B,EAC9B,KAAAC,WAAqB,EAGpB,KAAAC,gBAAkB,IAAI,EAAAtb,aAChC,KAAAub,QAAkB,KAElB,KAAA7B,MAAgB,O,OAKhB,YAAAzZ,SAAA,aAIA,YAAAub,gBAAA,WACI/a,KAAKiZ,MAAQ,OACbjZ,KAAKya,IAAIO,iBAGb,YAAAC,YAAA,aAIA,YAAAC,YAAA,aAIA,YAAAC,eAAA,aAIA,YAAAC,eAAA,WACIpb,KAAK8X,UAAUuD,QAAUrb,KAAK8X,UAAUuD,QAG5C,YAAArC,QAAA,WACIhZ,KAAKiZ,MAAQ,QAGjB,YAAAqC,gBAAA,SAAgBjI,GACZrT,KAAKiZ,MAAQ,QAGjB,YAAAjX,QAAA,WACI,QAAIhC,KAAK8X,UAAUjJ,QAE2B,IAAtC7O,KAAK8X,UAAUjJ,KAAKgJ,QAAQ,OAI0B,IAAtD7X,KAAK8X,UAAUyD,MAAMC,aAAa,GAAGlZ,MAAMJ,WAI3ClC,KAAK4a,WAA0C,MAA5B5a,KAAK8X,UAAU2D,WAA4D,IAAvCzb,KAAK8X,UAAU2D,UAAUjJ,eAIhFxS,KAAK4a,WAAsC,MAAxB5a,KAAK8X,UAAU4D,OAAoD,IAAnC1b,KAAK8X,UAAU4D,MAAMlJ,gB,iCA/D3E5H,GAAuB,mF,iCAAvBA,EAAuB,khCC9BpC,0BACE,4BACE,4BACE,4BACE,4BACF,iBACF,iBACA,4BACE,6BACE,8BAA2D,uEAA3D,iBACF,iBACF,iBACF,iBAEA,wCAAiB,sEAA4D,iBAC7E,yCAGA,+BAaA,+BAYF,kB,MAlCqC,2DAA6B,4BAK/C,uDACA,0DAGQ,gDAaA,kD,+eDdX,CACR,EAAAgO,QAAQ,eAAgB,CACpB,EAAAK,MAAM,aACF,EAAAH,MAAM,CAAEC,QAAS,KAErB,EAAAE,MAAM,OACF,EAAAH,MAAM,CAAEC,QAAS,KAErB,EAAAF,WAAW,eAAgB,EAAAG,QAAQ,gB,EAZ/C,GAiBa,EAAApO,2B,+DAAAA,EAAuB,E,KAjBnC,EAAAuO,U,MAAU,CACPC,SAAU,kBACVC,YAAa,mCACbC,UAAW,CAAC,yBACZC,WAAY,CACR,EAAAX,QAAQ,eAAgB,CACpB,EAAAK,MAAM,aACF,EAAAH,MAAM,CAAEC,QAAS,KAErB,EAAAE,MAAM,OACF,EAAAH,MAAM,CAAEC,QAAS,KAErB,EAAAF,WAAW,eAAgB,EAAAG,QAAQ,kB,2EAOlC0B,iBAAkB,CAAF,C,KAAxB,EAAAlB,QACQmB,mBAAoB,CAAF,C,KAA1B,EAAAnB,QACQoB,UAAW,CAAF,C,KAAjB,EAAApB,QACQ5D,cAAe,CAAF,C,KAArB,EAAA4D,QACQ1B,UAAW,CAAF,C,KAAjB,EAAA0B,QACSqB,gBAAe,E,KAAxB,EAAA5T,Y,iHErCL,WAEA,GADA,MACA,OAOA,GAHA,OACA,OAEA,Q,GACA,M,0GCTI,6BAAqE,YAAW,kB,6BAAX,+C,sBAGjE,yBACI,6BACJ,kB,yBACA,yBACI,YACA,6BACJ,kB,6BAFI,mF,yBAQA,4BACI,4BACI,4BAAQ,6BACR,8BAA6B,iBAAO,sCAAkE,gBAAC,iBACvG,iBACJ,iBACA,6BACI,+BAAO,wEAAP,iBACJ,iBACJ,kB,2CAN+D,4CAIhD,+CAA+B,yBAA/B,CAA+B,sBAA/B,CAA+B,wC,yBAWlC,gCAAuD,YAAc,kB,uBAAlC,6BAAoB,6C,mDARnE,4BACI,4BACI,+BAAuB,6BACvB,iBACJ,iBACA,6BACI,gCAA0D,2GAA6B,+EACnF,wBACA,kCACJ,iBACJ,iBACJ,iB,gCALkE,yDAE7B,gD,mDAIrC,4BACI,4BACI,+BAAuB,6BACvB,iBACJ,iBACA,6BACE,+BAAO,2HAAP,iBACF,iBACJ,iB,gCAFa,0E,sBAwBL,+BAAuE,6BAAuD,kB,yBAS9H,8BACU,YACV,kB,6BADU,yF,4FAEV,oCAA8B,oHAC0E,iB,gCAD1E,mDAAsC,oCAAtC,CAAsC,kCAAtC,CAAsC,sBAAtC,CAAsC,cAAtC,CAAsC,uB,sBAEpE,+BAAwH,6BAAuD,kB,yBAwDvL,4BACI,4BACI,4BAAQ,6BACR,8BAA6B,iBAAO,sCAAkE,gBAAC,iBACvG,iBACJ,iBACA,6BACI,kCAAU,wEAAyI,iBACvJ,iBACJ,kB,2CAN+D,4CAI7C,+CAA+B,sBAA/B,CAA+B,gB,yBAGjD,4BACI,4BACI,4BAAQ,6BACR,8BAA6B,iBAAO,sCAAkE,gBAAC,iBACvG,iBACJ,iBACA,6BACI,kCAAU,wEAAqI,iBACnJ,iBACJ,kB,2CAN+D,4CAI7C,+CAA+B,sBAA/B,CAA+B,gB,yBAGjD,4BACI,4BACI,4BAAQ,6BACR,8BAA6B,iBAAO,sCAAkE,gBAAC,iBACvG,iBACJ,iBACA,6BACI,+BAAO,wEAAP,iBACJ,iBACJ,kB,2CAN+D,4CAIhD,+CAA+B,4BAA/B,CAA+B,sBAA/B,CAA+B,gB,yBAG9C,4BACI,4BACI,4BAAQ,6BACR,8BAA6B,iBAAO,sCAAkE,gBAAC,iBACvG,iBACJ,iBACA,6BACI,+BAAO,wEAAP,iBACJ,iBACJ,kB,2CAN+D,4CAIhD,+CAA+B,qCAA/B,CAA+B,sBAA/B,CAA+B,gB,yBAG9C,4BACI,4BACI,4BAAQ,6BACR,8BAA6B,iBAAO,sCAAkE,gBAAC,iBACvG,iBACJ,iBACA,6BACI,+BAAO,wEAAP,iBACJ,iBACJ,kB,2CAN+D,4CAIhD,+CAA+B,kCAA/B,CAA+B,sBAA/B,CAA+B,gB,yBAG9C,4BACI,4BACI,4BAAQ,6BACR,8BAA6B,iBAAO,sCAAkE,gBAAC,iBACvG,iBACJ,iBACA,6BACI,kCAAU,wEAA8I,iBAC5J,iBACJ,kB,2CAN+D,4CAI7C,+CAA+B,sBAA/B,CAA+B,gB,yBAGjD,4BACI,4BACI,4BAAQ,6BACR,8BAA6B,iBAAO,sCAAkE,gBAAC,iBACvG,iBACJ,iBACA,6BACI,kCAAU,wEAAwI,iBACtJ,iBACJ,kB,2CAN+D,4CAI7C,+CAA+B,sBAA/B,CAA+B,gB,sBAuCjD,4BACI,uBACA,6BACI,6BACJ,iBACJ,kB,2GAQY,6BAGI,6BAGI,6BAAK,kHAAiC,KAAO,EAAH,wBACtC,sBACJ,iBAEA,+BAAiC,YAAgB,iBAGrD,iBAGJ,iB,+CAVyF,4FAIhD,6C,yBAhBrD,0BACI,4BACI,4BACI,4BAAQ,YAAoB,iBAChC,iBACA,6BACI,+BAiBJ,iBACJ,iBACJ,kB,uBAtBoB,qDAG4B,kD,mDA2BpC,6BAGI,6BAGI,6BAAK,kHAAiC,KAAO,EAAH,wBACtC,sBACJ,iBAEA,+BAAiC,YAAmB,iBACxD,iBACJ,iB,+CAN+F,4FAItD,6C,yBAhBrD,0BACI,4BACI,4BACI,4BAAQ,6BAA0D,iBACtE,iBACA,6BACI,+BAaJ,iBACJ,iBACJ,kB,6BAfmD,oE,mDAwBvC,gCAAwC,2FACpC,6BACJ,iB,iDAFmG,oCDxS3H,iBAqCI,WAAoB0U,EAAkCC,EAA6BxH,EAAsCyH,EAAgCvH,EAC7IC,GADQ,KAAAoH,UAAkC,KAAAC,WAA6B,KAAAxH,WAAsC,KAAAyH,aAAgC,KAAAvH,cAC7I,KAAAC,cA/BZ,KAAAuH,YAAoB,IAAIC,KACxB,KAAAjB,QAAkB,KAiBlB,KAAAkB,UAAoB,EAKpB,KAAAC,MAAgB,EAEhB,KAAA5L,OAAiB,EAEjB,KAAA6L,yBAAmC,K,OAMnC,YAAA1c,SAAA,sBACIQ,KAAKmc,mBAAqB,IAAI,EAAAlC,QAEzBja,KAAKoc,QAAWpc,KAAKgc,WACtBhc,KAAK4b,SAASS,oBAAmB,GAAMC,MAAK,SAAAC,GAExC,IADA,IAAIC,EAAa,GACR5X,EAAI,EAAGA,EAAI2X,EAAMra,SAAU0C,EAAG,CACnC,IAAMsR,EAAUqG,EAAM3X,GAAGsR,QACnB1C,EAAqC,MAA1B+I,EAAM3X,GAAG6X,cAAwBF,EAAM3X,GAAG6X,cAAgBF,EAAM3X,GAAGiK,KAEhF,EAAKyF,YAAYoI,kBAAkBxG,EAAS1C,IAC5CgJ,EAAWxZ,KAAKuZ,EAAM3X,IAG9B,EAAK2X,MAAQC,KACdG,OAAM,SAACC,GACN,EAAKC,MAAMD,MAGf5c,KAAKoc,OAAS,CACV1a,IAAK,KACL8R,SAAU,GACVsJ,aAAc9c,KAAKoU,SAAS2I,SAC5BlO,KAAM,GACNmO,qBAAsB,KACtBC,oBAAqB,KACrBC,YAAa,KACbC,iBAAkBnd,KAAKoU,SAAS2I,SAChCK,aAAcpd,KAAKoU,SAAS2I,SAC5BM,cAAerd,KAAKoU,SAAS2I,SAC7BO,uBAAwBtd,KAAKoU,SAAS2I,SACtCQ,oBAAqBvd,KAAKoU,SAAS2I,SACnCS,sBAAuBxd,KAAKoU,SAAS2I,SACrCU,gBAAiBzd,KAAKoU,SAAS2I,SAC/BW,YAAa,GACbC,aAAc,GACdC,gBAAiB,GACjBC,MAAO,GACPhI,YAAa,GACbiI,mBAAoB,GACpBC,MAAM,EACNC,UAAW,SACXC,SAAU,KACVC,WAAY,QAKxB,YAAAC,mBAAA,aAIA,YAAAC,KAAA,SAAKC,GACDre,KAAKoc,OAAOuB,aAAeU,EAAI3c,KAGnC,YAAA4c,cAAA,SAAcjL,GAEV,IADA,IAAIkL,EAAYlL,EAAMmL,OAAOC,UACpB7Z,EAAI,EAAGA,EAAI2Z,EAAUrc,OAAQ0C,IAAK,CAEvC,GAAU,aADF2Z,EAAU3Z,GAEd,OAAO,EAIf,OAAO,GAGX,YAAA8Z,SAAA,sBACgC,MAAxB1e,KAAKoc,OAAO5I,UAAoBxT,KAAKoc,OAAO5I,SAAStR,OAAS,GAC9DlC,KAAK4b,SAAS+C,sBAAsB3e,KAAKoc,OAAO5I,UAAU,GAAM8I,MAAK,SAAAzG,GACjE,EAAKuG,OAAOvG,YAAcA,KAC3B8G,OAAM,SAACC,GACN,EAAKC,MAAMD,MAGf5c,KAAK4b,SAASgD,0BAA0B5e,KAAKoc,OAAO5I,UAAU,GAAO8I,MAAK,SAAAzG,GACtE,EAAKuG,OAAO0B,mBAAqBjI,KAClC8G,OAAM,SAACC,GACN,EAAKC,MAAMD,OAGf5c,KAAKoc,OAAOvG,YAAc,IAIlC,YAAAgJ,SAAA,sBACI7e,KAAK2b,QAAQmD,iBAAiB9e,KAAKoc,QAAQE,MAAK,SAAAyC,GAC5C,EAAK5C,mBAAmB5B,KAAKwE,GAC7B,EAAKlD,WAAWmD,UACjBrC,OAAM,SAACC,GACN,EAAKC,MAAMD,OAInB,YAAAlL,UAAA,SAAUuN,GACN,OAAOxN,KAAKC,UAAUuN,IAG1B,YAAAC,SAAA,WACIlf,KAAK6b,WAAWmD,QAGpB,YAAA9D,YAAA,WACIlb,KAAKmc,mBAAmBgD,eAG5B,YAAAC,WAAA,SAAW3I,GACP,OAAOzW,KAAKuU,YAAY8K,qBAAqB5I,IAGjD,YAAAoG,MAAA,SAAMD,GACF5c,KAAK8a,QAAU,EAAAwE,aAAaC,oBAAoB3C,I,iCAnJ3CrQ,GAAqB,6N,iCAArBA,EAAqB,+4H,GAAA,MCjBlC,4BACI,8BAEA,4BACI,6BAGA,6BAIJ,iBAEA,+BAEI,+BACI,+BAUA,8BAYA,+BASA,6BACI,6BACI,6BAAQ,8BACR,iBACJ,iBACA,8BACI,gCAAO,oEAAP,iBACJ,iBACJ,iBACA,6BACI,6BACI,6BAAQ,8BAAyD,iBACrE,iBACA,8BACI,oCAA6C,yEACzC,yBACA,iCAAuB,8BAAwD,iBAC/E,iCAAyB,8BAA0D,iBACnF,iCAAwB,8BAAyD,iBACjF,iCAAwB,8BAAyD,iBACrF,iBACA,kCACJ,iBACJ,iBACA,6BACI,6BACI,6BAAQ,8BACR,iBACJ,iBACA,8BACI,iCAGA,uCAEA,kCACJ,iBACJ,iBAEA,6BACI,6BACI,6BAAO,8BAAiD,iBAC5D,iBACA,8BACI,iCAA8C,0EAC1C,yBACA,iCAAuB,8BAA6C,iBACpE,iCAAwB,8BAA8C,iBAC1E,iBACJ,iBACJ,iBACA,6BACI,6BACI,6BAAQ,8BAAgD,iBAC5D,iBACA,8BACI,8BACI,8BAEI,8BAAK,yCAAS,EAAA+R,cAAA,GAAwB,KAAO,EAAH,sCACtC,uBACJ,iBACJ,iBACJ,iBACJ,iBACJ,iBA0BA,gCAUA,gCAUA,gCAUA,gCAUA,gCAUA,gCAUA,gCAWA,6BACI,wBACA,8BACI,8BACJ,iBACJ,iBAEA,6BACI,6BACI,6BAAQ,8BACR,iBACJ,iBACA,8BACI,gCAAO,2EAAP,iBACJ,iBACJ,iBACA,6BACI,6BACI,6BAAQ,8BACR,iBACJ,iBACA,8BACI,gCAAO,+EAAP,iBACJ,iBACJ,iBACA,6BACI,6BACI,6BAAQ,8BACR,iBACJ,iBACA,8BACI,gCAAO,qEAAP,iBACJ,iBACJ,iBAEA,+BAOA,gCA2BA,+BAuBA,6BACI,wBACA,8BACI,8BACI,iCAAsB,wCAAS,EAAAY,cAC3B,8BACJ,iBACA,oCAGJ,iBACJ,iBACJ,iBAEJ,iBACJ,iBAEJ,kB,6BA7TU,oDAGG,4CAGA,6CAS+C,0EAUvB,mEAYA,kEAeV,qDAAyB,+BAQa,0DAA8B,uBAOnE,qDASD,+CAGM,gDAEL,+GASsC,2DAA+B,uBAe4B,qGAgCjE,8EAUA,0EAUA,2EAUA,oFAUA,iFAUA,mFAUA,6EAwBjC,6DAAgC,uBAShC,gEAAoC,uBASpC,sDAA0B,uBAIhB,kEAOE,4DA2BrB,yEA4BoB,oEAEL,kD,iVDxSjC,GAKa,EAAA3S,yB,+DAAAA,EAAqB,E,KALjC,EAAA4M,U,MAAU,CACPC,SAAU,gBACVC,YAAa,iCACbC,UAAW,Q,sREff,W,GACA,O,+DCDA,4BACE,4BACE,4BACE,4BACA,6BAA6B,iBAAO,qCAAkE,gBAAC,iBACzG,iBACF,iBACA,4BACE,6BACE,+BAAO,wEAAP,iBACF,iBACF,iBACF,kB,2CATgB,yCAC6C,4CAKhD,+CAA+B,yBAA/B,CAA+B,sBAA/B,CAA+B,wCDN5C,iBAaI,aANgB,KAAAM,IAAc,GAEd,KAAAC,UAAoB,EACnB,KAAAE,YAAc,IAAI,EAAAxa,a,wCAL1B0L,I,iCAAAA,EAAuB,8YCRpC,+B,KAAgD,8C,wJDGhD,GAKa,EAAAA,2B,+DAAAA,EAAuB,E,KALnC,EAAAkO,U,MAAU,CACPC,SAAU,kBACVC,YAAa,mCACbC,UAAW,Q,uBAIKM,IAAK,CAAF,C,KAAlB,EAAAJ,QACelX,MAAO,CAAF,C,KAApB,EAAAkX,QACeK,SAAU,CAAF,C,KAAvB,EAAAL,QACgBO,YAAW,E,KAA3B,EAAA9S,Y,qSEbL,WAEA,QACA,QAIA,GAHA,MAEA,OACA,QAEA,SACA,SACA,SAEA,SAEA,GADA,MACA,QAOA,GAFA,OAEA,QACA,SAEA,S,sMCSS,6BACC,gCAAQ,mIAA6B,MAAM,EAAO,EAAF,QAE/C,6BACD,iBAE8B,gCAAQ,mIAA6B,MAAM,EAAM,EAAF,QAE3C,6BACJ,iBAC/B,kB,mDAWE,2BAEC,2I,uBAEgC,iB,KADhC,kE,mDAQgC,2BACI,qKAAmC,EAAO,EAAF,QAE5C,kB,mDAhBlC,8BAEC,6BAMA,2BACC,uIAAmC,M,uBAEH,iBAEA,6BAIlC,iB,+DAdG,sEAOD,+EAGoC,kD,mDAMtC,8BACC,2BACC,uIAAmC,M,uBACU,iBAC/C,iB,MADE,gF,+FA7BH,4BAKC,YAEA,gCAmBA,gCAKD,kB,uBA7BuD,0BAAgB,yFADrD,mGAA6G,0BAI9H,oEAEO,oEAmBA,sG,yBA7CV,4BACC,0BAEC,6BACC,4BAAO,YAAsC,iBAC9C,iBAEA,+BAYA,+BAgCD,iBACD,kB,2CAhDU,+DAGF,6EAc6B,gD,mDAiDnC,6BACC,gCAAQ,mGAEP,6BACD,iBACD,kB,mDASE,2BAEC,2I,uBAC8C,iB,KAA9C,kE,mDAJF,8BACC,6BAIA,2BACC,qIAAsC,M,uBACO,iBAC/C,iB,+DAPK,sEAMH,gF,mDAGF,8BACC,2BACC,qIAAsC,M,uBACO,iBAC/C,iB,MADE,gF,mGAnBH,4BAGC,0HACA,sBAA8B,YAE9B,gCAUA,gCAKD,iB,+CArB0D,0BAAqB,2GAIhD,oEAEvB,2EAUA,6E,yBA9BV,4BACC,0BAEC,6BACC,4BAAO,YAA2C,iBACnD,iBAEA,+BAOA,8BAsBD,iBACD,kB,2CAjCU,+DAGF,6EAOoB,sD,mDA2B3B,6BACE,gCAAQ,8FACN,6BACF,iBACF,kB,sBAOc,6BAChB,6BACC,6BACC,2BACC,6BACD,iBACD,iBACD,iBACgB,kB,sBACA,0BACI,2BACI,6BACJ,iBACJ,kB,yBAdjB,0BACiB,+BASA,+BAKF,kB,6BAdQ,+FASA,iGD5Hf,EAAAuY,oBAA8B,IAC9B,EAAAC,oBAA8B,IAE9B,EAAAC,kBAAoB,UACpB,EAAAC,0BAA4B,UAC5B,EAAAC,oBAAsB,UACtB,EAAAC,4BAA8B,UAC9B,EAAAC,0BAA4B,EAAAD,4BAEzC,mBAAa,EAAAE,WAYb,iBAqFE,WAAYvF,EAA4CwF,EAC9CC,EACRC,EAA8CC,EAA0C7L,GAF1F,WAAwD,KAAA0L,eAC9C,KAAAC,qBACsC,KAAAE,kBAA0C,KAAA7L,cA/E1F,KAAA8L,iBAA2B,KAG3B,KAAAC,iBAAkC,KAElC,KAAAC,SAAqB,IAAIP,EAGzB,KAAAQ,eAAkC,GAElC,KAAAC,iBAA0E,GAC1E,KAAAC,WAA8D,GAE9D,KAAAld,OAAiB,GACjB,KAAAmd,yBAAkF,GAClF,KAAAC,mBAAsE,GAGtE,KAAAC,8BAA0C,CAAC,YAAa,mBACxD,KAAAC,8BAA0C,CAAC,QAE3C,KAAAC,SAAmB,EAsBnB,KAAA1K,OAAiB,EAMjB,KAAA2K,QAAU,CAMRC,aAAc,QACdC,cAAe,CACbC,MAAO,CACLC,MAAO,SAACC,EAAWC,EAAWC,GAC5B,EAAKC,gBAAgBF,EAAMC,IAE7BE,YAAa,SAACJ,EAAWC,EAAWC,GAClC,EAAKG,aAAaJ,EAAMC,MAI9BJ,MAAO,IAePlhB,KAAKoW,MAAQ9B,EAAY8B,QAEzBpW,KAAKwa,iBAAmBA,EACxBxa,KAAKkgB,gBAAkBA,E,OAGzB,YAAA1gB,SAAA,sBACEQ,KAAK0hB,WAAW,MAEhB,EAAAC,UAAU3hB,KAAK4hB,YAAYC,cAAe,SAASlQ,KAGjD,EAAApO,OAAOue,SACP,EAAAC,aAAa,KACb,EAAAC,uBACA,EAAAC,KAAI,WACF,EAAKC,qBAGPC,aAGJ,YAAAC,SAAA,SAASxI,GACP,OAAO5Z,KAAKkgB,gBAAgBmC,OAAOzI,IAG7B,YAAA0I,WAAR,sBACE,GAA6B,MAAzBtiB,KAAKqgB,kBAAwE,MAA5CrgB,KAAKqgB,iBAAiBkC,oBAAiF,GAAnDviB,KAAKqgB,iBAAiBkC,mBAAmBrgB,OAAa,CAC7IsgB,EAAGC,OAAO,QAAQniB,SAElB,IAAI,GAAU,EAQd,OAP6B,MAAzBN,KAAKqgB,mBACP,EAAWrgB,KAAKsU,YAAY8B,SAAWpW,KAAKsU,YAAY+B,iBAAiBrW,KAAKqgB,iBAAiBlK,wBAGjGnW,KAAKugB,eAAe/f,SAAQ,SAACwV,GAC3BA,EAAI0M,QAAU,KAKlBF,EAAGC,OAAO,mBAAmBniB,SAC7BkiB,EAAGC,OAAO,6BAA6BniB,SACvCkiB,EAAGC,OAAO,8BAA8BniB,SAExC,IAAIqiB,EAAmBH,EAAGC,OAAO,iBAAiBpB,OAC9CuB,EAAaD,EAAYC,WACzBC,EAAcF,EAAYE,YAE1BC,EAAMN,EAAGC,OAAO,QAEF,MAAdK,EAAIzB,SACNyB,EAAMN,EAAGC,OAAO,cAAcM,OAAO,QACjCC,KAAK,KAAM,OAGjBhjB,KAAKijB,oBAAsB,IAAI,EAAAC,iBAAiBljB,KAAM8iB,EAAK9iB,KAAKqgB,kBAAkB,EAAMrgB,KAAKkgB,gBAAiBlgB,KAAKggB,aAAchgB,KAAKsU,aACtItU,KAAKijB,oBAAoBE,SAEzBnjB,KAAKojB,sBAEL,IAAIC,EAAoBb,EAAGC,OAAO,iBAAiBpB,OACnDgC,EAAaT,WAAaA,EAC1BS,EAAaR,YAAcA,EAI3B7iB,KAAKugB,eAAe/f,SAAQ,SAACwV,GAC3BA,EAAI0M,QAAU,EAAKY,iBAAiBtN,OAIxC,YAAAoN,oBAAA,WACE,IAAIN,EAAWN,EAAGC,OAAO,QAGrB,EAFeK,EAAIzB,OAEekC,UAAhCC,EAAC,IAAEC,EAAC,IAAEC,EAAK,QAAEC,EAAM,SAIzBb,EAAIE,KAAK,UAAYQ,EAFJ,GAEoB,KAAOC,EAD3B,IAC2C,KAAOC,EAAQE,IAAgB,KAAOD,EAASE,KAE3GH,GAASA,EAAQE,IAAgB,EAAApE,oBACjCmE,GAAUA,EAASE,IAAgB,EAAApE,oBAEnC+C,EAAGC,OAAO,cAAc3J,MAAM,QAAS4K,EAAQ,OAIjD,YAAAJ,iBAAA,SAAiBtN,GACf,IAAI8N,EAAqB9jB,KAEzB,GAAgC,MAA5BA,KAAKijB,oBAoCP,OAAO,EAlCP,IAAMjjB,KAAKsU,YAAY8B,UAAWpW,KAAKsU,YAAY+B,iBAAiBrW,KAAKqgB,iBAAiBlK,kBACxF,OAAO,EAIT,GAAwD,MAApDnW,KAAKijB,oBAAoBc,cAAc/N,EAAInH,MAC7C,OAAO,EAIT,GAAImH,EAAIgO,WAAY,CAClB,IAAI,GAAiB,EAUrB,GARAhkB,KAAKugB,eAAe/f,SAAQ,SAACyjB,GACvBA,EAAMxH,gBAAkBzG,EAAInH,MAC0C,MAApEiV,EAAmBb,oBAAoBc,cAAcE,EAAMpV,QAC7D,GAAiB,MAKnB,EACF,OAAO,OAIN,GAAyB,MAArBmH,EAAIyG,eACoE,MAA3EqH,EAAmBb,oBAAoBc,cAAc/N,EAAIyG,eAC3D,OAAO,EASb,OAAO,GAGT,YAAAyH,4BAAA,SAA4BlO,GAG1B,IAFA,IAAImO,EAAe,GAEVvf,EAAI,EAAGA,EAAI5E,KAAK6V,YAAY3T,SAAU0C,EAAG,CAChD,IAAIwf,EAAgBpkB,KAAK6V,YAAYjR,GAErC,GAAwC,MAApCwf,EAAc7B,oBAA8B6B,EAAc7B,mBAAmBrgB,OAAS,EACtEsgB,EAAGzK,UAAUqM,EAAc7B,mBAAmB,IAAI8B,cAE5CC,MAAK,SAACjD,GAC5B,OAAOA,EAAKnc,KAAK0Q,gBAAkBI,EAAInH,MAA4C,MAApCwS,EAAKnc,KAAKqf,2BAIzDJ,EAAanhB,KAAKohB,EAAcvV,MAKtC,OAAOsV,GAGD,YAAAK,qBAAR,WACE,IAsRIC,EAAgBC,EAAgBhB,EAtRhCiB,EAAO3kB,KAEP4kB,EAA4B,GAGhCA,EAAY5hB,KAAK,CACf6hB,aAAc,sBAAuBC,OAAQ,SAASC,EAAiBC,GAMrE,GALmB,MAAfhlB,KAAKglB,SACPhlB,KAAKglB,OAAOlM,MAAM,eAAgB,MAClC9Y,KAAKglB,OAAS,MAGF,MAAVA,EAAgB,CAClB,IAAIC,EAAyBD,EAAOE,QAAQ,uBAEd,MAA1BD,IACFjlB,KAAKglB,OAASxC,EAAGC,OAAOwC,GAAwBnM,MAAM,eAAgB,cAGzEqM,OAAQ,SAASJ,GACC,MAAf/kB,KAAKglB,SACPhlB,KAAKglB,OAAOlM,MAAM,eAAgB,MAClC6L,EAAKS,SAAST,EAAKtE,iBAAiBxR,KAAM,OAAQ2T,EAAGC,OAAOsC,GAAQ/B,KAAK,OACzEhjB,KAAKglB,OAAS,SAMpBJ,EAAY5hB,KAAK,CACf6hB,aAAc,qBAAsBC,OAAQ,SAASC,EAAiBM,EAAsBhS,GAAhD,WAC1CrT,KAAKslB,iBAEL,IAAIC,EAAavlB,KAAKglB,OAKtB,GAAW,MAFIxC,EAAGC,OAAO,QAAQpB,OAEjC,CAGA,IAAImE,EAAgB,EAAAC,SAASpS,EAAMqS,YAAYC,MAAOtS,EAAMqS,YAAYE,OA0BxE,GAtBAjB,EAAK1B,oBAAoB4C,YAAYxB,cAAc7jB,SAAQ,SAAC6gB,GAC1B,cAA5BA,EAAKnc,KAAK0Q,eAAiC,EAAAkQ,cAAcN,EAAenE,EAAKnc,KAAK6gB,eACpF,EAAKf,OAASxC,EAAGC,OAAO,oEAAsEpB,EAAKnc,KAAK0Q,cAAgB,MACxHyL,EAAKnc,KAAK8gB,iBAAkB,EAET,MAAf3E,EAAK4E,SACP5E,EAAKnc,KAAK6gB,aAAe,CAAEvC,EAAGnC,EAAKmC,EAAI,EAAAN,iBAAiBgD,SAAW,EAAGzC,EAAGpC,EAAKoC,EAAgC,EAA5B,EAAAP,iBAAiBiD,SAAczC,MAAO,EAAAR,iBAAiBgD,SAAUvC,OAAoC,EAA5B,EAAAT,iBAAiBiD,aAI9K9E,EAAKnc,KAAK8gB,iBAAkB,EAET,MAAf3E,EAAK4E,SACP5E,EAAKnc,KAAK6gB,aAAe,CAAEvC,EAAGnC,EAAKmC,EAAI,EAAAN,iBAAiBgD,SAAW,EAAGzC,EAAGpC,EAAKoC,EAAI,EAAAP,iBAAiBiD,SAAW,EAAGzC,MAAO,EAAAR,iBAAiBgD,SAAUvC,OAAQ,EAAAT,iBAAiBiD,gBAK/J,MAAfnmB,KAAKglB,QAAiC,MAAdO,GAAqC,MAAfvlB,KAAKglB,QAAkBO,EAAWvC,KAAK,iBAAmBhjB,KAAKglB,OAAOhC,KAAK,kBAC3HhjB,KAAKomB,iBAAgB,GAGJ,MAAfpmB,KAAKglB,OAAgB,CACvB,IAAIqB,EAAc7D,EAAGC,OAAOsC,GAAQuB,QAAQ,oBACtC,EAAUtmB,KAAKglB,OAAOhC,KAAK,gBAC7BuD,EAAW5B,EAAK1B,oBAAoB4C,YAAYvB,MAAK,SAACjD,GAAW,OAAOA,EAAKnc,KAAK0Q,gBAAkB,KACpG4Q,EAAc7B,EAAK8B,wBAAwB,GAASzC,WAExDhkB,KAAKglB,OAAOhC,KAAK,SAAU,QAE3B,IAAM0D,EAAUC,SAAS3mB,KAAKglB,OAAOhC,KAAK,MACpC4D,EAAUD,SAAS3mB,KAAKglB,OAAOhC,KAAK,MAGpC6D,EAAiB,EAAA3D,iBAAiBgD,SAClCY,EAAiB,EAAA5D,iBAAiBiD,SAEpCY,EAAMvE,EAAGC,OAAO,QAAQM,OAAO,KAAKuD,QAAQ,kBAAkB,GAG9DU,IAA+C,MAArBT,EAASU,UAAgD,GAA5BV,EAASU,SAAS/kB,QACzEglB,IAAmBV,GAAiBH,GAAgBW,GACxD,GAAIE,EAAiB,CACnBlnB,KAAKmnB,cAAgBJ,EAAIhE,OAAO,QAAQuD,QAAQ,2BAA2B,GACxEtD,KAAK,IAAK0D,EAAW,EAAAxD,iBAAiBgD,SAAW,EAAMW,EAAS,GAChE7D,KAAK,IAAK4D,EAAU,EAAA1D,iBAAiBiD,SAAW,IAChDnD,KAAK,QAAS6D,GACd7D,KAAK,SAAU8D,GACf9D,KAAK,OAAQ,SAEhBhjB,KAAKonB,QAAUL,EAAIhE,OAAO,QAAQuD,QAAQ,oBAAoB,GAC3DtD,KAAK,IAAK0D,EAAW,EAAAxD,iBAAiBgD,SAAW,EAAMW,EAAS,GAChE7D,KAAK,IAAK4D,EAAU,EAAA1D,iBAAiBiD,SAAW,IAChDnD,KAAK,QAAS6D,GACd7D,KAAK,SAAU8D,GACf9D,KAAK,OAAQ,QACbA,KAAK,SAAU,SACfA,KAAK,eAAgB,KACrBA,KAAK,mBAAoB,OAE5B,IAAIqE,EAAgBL,EAAwBrC,EAAKzE,gBAAgBmC,OAAO,oCAAsCsC,EAAKzE,gBAAgBmC,OAAO,8BAC1IriB,KAAKsnB,YAAcP,EAAIhE,OAAO,QAAQuD,QAAQ,yBAAyB,GACpEtD,KAAK,cAAe,cACpBA,KAAK,YAAa,IAClBA,KAAK,OAAQ,SACbA,KAAK,IAAK0D,EAAW,EAAAxD,iBAAiBgD,SAAW,EAAK,EAAAqB,mBAAmBF,EAAe,IAAM,GAC9FrE,KAAK,IAAK4D,EAAU,EAAA1D,iBAAiBiD,SAAW,GAAKW,EAAS,EAAI,GAClEU,KAAKH,GAIV,IAAKhB,EACL,CACErmB,KAAKynB,eAAiBV,EAAIhE,OAAO,QAAQuD,QAAQ,4BAA4B,GAC1EtD,KAAK,IAAK0D,EAAW,EAAAxD,iBAAiBgD,SAAW,EAAMW,EAAS,GAChE7D,KAAK,IAAK4D,EAAU,EAAA1D,iBAAiBwE,WAAaZ,GAClD9D,KAAK,QAAS6D,GACd7D,KAAK,SAAU8D,GACf9D,KAAK,OAAQ,SAEhBhjB,KAAK2nB,SAAWZ,EAAIhE,OAAO,QAAQuD,QAAQ,qBAAqB,GAC7DtD,KAAK,IAAK0D,EAAW,EAAAxD,iBAAiBgD,SAAW,EAAMW,EAAS,GAChE7D,KAAK,IAAK4D,EAAU,EAAA1D,iBAAiBwE,WAAaZ,GAClD9D,KAAK,QAAS6D,GACd7D,KAAK,SAAU8D,GACf9D,KAAK,OAAQ,QACbA,KAAK,SAAU,SACfA,KAAK,eAAgB,KACrBA,KAAK,mBAAoB,OAE5BR,EAAGC,OAAO,2BAA2BniB,SACrC,IAAIsnB,EAAoC,MAAnBrB,EAASN,OAAiBtB,EAAKzE,gBAAgBmC,OAAO,+BAAiCsC,EAAKzE,gBAAgBmC,OAAO,qCACxIriB,KAAK6nB,aAAed,EAAIhE,OAAO,QAAQuD,QAAQ,0BAA0B,GACtEtD,KAAK,cAAe,cACpBA,KAAK,YAAa,IAClBA,KAAK,OAAQ,SACbA,KAAK,IAAK0D,EAAW,EAAAxD,iBAAiBgD,SAAW,EAAK,EAAAqB,mBAAmBK,EAAgB,IAAM,GAC/F5E,KAAK,IAAK4D,EAAU,EAAA1D,iBAAiBwE,WAAaZ,EAAS,EAAI,GAC/DU,KAAKI,GAIV,GAAI5nB,KAAK8nB,WAAa,IAGE,MAAlB9nB,KAAK8nB,WACP9nB,KAAKomB,gBAAmC,MAAnBG,EAASN,QAGT,MAAnBM,EAASN,QAAgB,CAE3B,IADA,IAAI8B,EAAc,KACTnjB,EAAI,EAAGA,EAAI2hB,EAASN,OAAO/gB,KAAK+hB,SAAS/kB,SAAU0C,EAAG,CAC/C2hB,EAASN,OAAO/gB,KAAK+hB,SAASriB,GAErCgR,gBAAkB,IACvBmS,EAAcnjB,EAAI,GAItB,IAAIojB,EAAkBrD,EAAKzE,gBAAgBmC,OAAO,8BAClDkE,EAASN,OAAO/gB,KAAK+hB,SAASlkB,OAAOglB,EAAa,EAAG,CAAEE,aAAc,EAASrS,cAAe,YAAa2F,MAAOyM,EAAiBf,SAAU,KAE5ItC,EAAKrC,aACLtiB,KAAK8nB,UAAY,EAIrB,IAAII,EAAmB1F,EAAGC,OAAO,+BAE5B4D,GAAe,EAAAP,cAAcN,EAAe,EAAA2C,qBAAqBnoB,KAAK2nB,YACzE3nB,KAAK2nB,SAAS3E,KAAK,SAAU,QAC7BhjB,KAAK6nB,aAAa7E,KAAK,OAAQ,QAC/BkE,GAAmBlnB,KAAKonB,QAAQpE,KAAK,SAAU,SAC/CkE,GAAmBlnB,KAAKsnB,YAAYtE,KAAK,OAAQ,SACjDkF,EAAiBlF,KAAK,SAAU,SAChChjB,KAAKooB,SAAWpoB,KAAK2nB,UAEdT,GAAmB,EAAApB,cAAcN,EAAe,EAAA2C,qBAAqBnoB,KAAKonB,YAChFf,GAAermB,KAAK2nB,SAAS3E,KAAK,SAAU,UAC5CqD,GAAermB,KAAK6nB,aAAa7E,KAAK,OAAQ,SAC/ChjB,KAAKonB,QAAQpE,KAAK,SAAU,QAC5BhjB,KAAKsnB,YAAYtE,KAAK,OAAQ,QAC9BkF,EAAiBlF,KAAK,SAAU,SAChChjB,KAAKooB,SAAWpoB,KAAKonB,SAEa,MAA3Bc,EAAiB7G,QAAkB,EAAAyE,cAAcN,EAAe,EAAA2C,qBAAqBD,OAC3F7B,GAAermB,KAAK2nB,SAAS3E,KAAK,SAAU,UAC5CqD,GAAermB,KAAK6nB,aAAa7E,KAAK,OAAQ,SAC/CkE,GAAmBlnB,KAAKonB,QAAQpE,KAAK,SAAU,SAC/CkE,GAAmBlnB,KAAKsnB,YAAYtE,KAAK,OAAQ,SACjDkF,EAAiBlF,KAAK,SAAU,QAChChjB,KAAKooB,SAAW,cAGnBjD,OAAQ,SAASJ,GAClB,GAAmB,MAAf/kB,KAAKglB,QAAmC,MAAjBhlB,KAAKooB,SAAkB,CAChD,IAAI,EAAUpoB,KAAKglB,OAAOhC,KAAK,gBAC3BuD,EAAW5B,EAAK1B,oBAAoB4C,YAAYvB,MAAK,SAACjD,GAAW,OAAOA,EAAKnc,KAAK0Q,gBAAkB,KACpGyS,EAAU7F,EAAGC,OAAOsC,GAAQ/B,KAAK,MAErC,GAAIhjB,KAAKooB,WAAapoB,KAAKonB,QACzB,GAAqC,GAAjCb,EAASrhB,KAAK+hB,SAAS/kB,OACzByiB,EAAKS,SAAST,EAAKtE,iBAAiBxR,KAAM,EAASwZ,OAEhD,CAGH,IAFA,IAAIC,EAAW,GAEN1jB,EAAI,EAAGA,EAAI2hB,EAASrhB,KAAK+hB,SAAS/kB,SAAU0C,EACnD0jB,GAAsB/B,EAASrhB,KAAK+hB,SAASriB,GAAGgR,cAE5ChR,EAAI2hB,EAASrhB,KAAK+hB,SAAS/kB,OAAS,IACtComB,GAAsB,KAI1B3D,EAAK4D,mBAAmB5D,EAAKtE,iBAAiBxR,KAAM,EAASwZ,EAASC,QAGjEtoB,KAAKooB,WAAapoB,KAAK2nB,SACP,MAAnBpB,EAASN,OACXtB,EAAK4D,mBAAmB5D,EAAKtE,iBAAiBxR,KAAM,OAAQwZ,EAAS,GAGrE1D,EAAK4D,mBAAmB5D,EAAKtE,iBAAiBxR,KAAM0X,EAASN,OAAO/gB,KAAK0Q,cAAeyS,EAAS,GAG1E,YAAlBroB,KAAKooB,UACZzD,EAAKS,SAAST,EAAKtE,iBAAiBxR,KAAM0X,EAASN,OAAO/gB,KAAK0Q,cAAe4M,EAAGC,OAAOsC,GAAQ/B,KAAK,OAGzGhjB,KAAKslB,iBACLtlB,KAAKomB,iBAAgB,IACpBd,eAAgB,WACE,MAAftlB,KAAKglB,QACPhlB,KAAKglB,OAAOhC,KAAK,SAAU,MAG7BhjB,KAAKglB,OAAS,KACdhlB,KAAKooB,SAAW,KAEhBpoB,KAAKonB,QAAU,KACfpnB,KAAK2nB,SAAW,KAEhBnF,EAAGC,OAAO,mBAAmBniB,UAE5B8lB,gBAAiB,SAAS9D,GAAT,WAClB,GAAsB,MAAlBtiB,KAAK8nB,UAAmB,CAC1B,IAAIU,EAAY7D,EAAK1B,oBAAoB4C,YAAYvB,MAAK,SAACjD,GAAW,OAAOA,EAAKnc,KAAK+iB,eAAiB,EAAKH,aAE7G,GAAiB,MAAbU,EAAmB,CAErB,IADA,IAAIT,EAAc,KACTnjB,EAAI,EAAGA,EAAI4jB,EAAUvC,OAAO/gB,KAAK+hB,SAAS/kB,SAAU0C,EAAG,CAChD4jB,EAAUvC,OAAO/gB,KAAK+hB,SAASriB,GAEtCqjB,eAAiBjoB,KAAK8nB,YAC3BC,EAAcnjB,GAIC,MAAfmjB,IACFS,EAAUvC,OAAO/gB,KAAK+hB,SAASlkB,OAAOglB,EAAa,GAC/CzF,GACFqC,EAAKrC,cAKXtiB,KAAK8nB,UAAY,SAOEtF,EAAGiG,OACzBvoB,GAAG,SAAS,SAASmT,GAEpB,GAAgB,UADFmP,EAAGC,OAAOziB,MAAMgjB,KAAK,gBACnC,CAIA,IAAI0F,EAAO1oB,KAAK2oB,wBAChBlE,EAASiE,EAAKxP,KAAO7F,EAAMqS,YAAYC,MACvCjB,EAASgE,EAAKE,IAAMvV,EAAMqS,YAAYE,MACtClC,EAAQgF,EAAKhF,UAEdxjB,GAAG,QAAQ,SAASmT,GAEnB,GAAgB,UADFmP,EAAGC,OAAOziB,MAAMgjB,KAAK,gBACnC,CAIAR,EAAGC,OAAO,mBAAmBniB,SAE7B,IAAIuoB,EAAUrG,EAAGC,OAAOziB,MAGxB6oB,EAAQ/P,MAAM,UAAW,QAEzB,IAAI0F,EAASsK,SAASC,iBAAiB1V,EAAMqS,YAAYC,MAAOtS,EAAMqS,YAAYE,OAElFiD,EAAQ/P,MAAM,UAAW,MAEzB,IAAK,IAAIlU,EAAI,EAAGA,EAAIggB,EAAY1iB,SAAU0C,EACxCggB,EAAYhgB,GAAGkgB,OAAO9kB,KAAMwe,EAAQnL,GAWtC,GAPAwV,EACGvC,QAAQ,YAAY,GACpBxN,MAAM,OAASzF,EAAMqS,YAAYC,MAAQlB,EAAU,MACnD3L,MAAM,MAAQzF,EAAMqS,YAAYE,MAAQlB,EAAU,MAClD5L,MAAM,QAAS4K,EAAQ,MAGtBmF,EAAQvC,QAAQ,oBAAqB,CACvC,IAAI,EAAQ,EACZ9D,EAAGwG,UAAU,wCAA0CH,EAAQ7F,KAAK,MAAQ,MAAMiG,MAAK,WAEzEzG,EAAGC,OADDziB,MAIXsmB,QAAQ,YAAY,GACpBxN,MAAM,OAASzF,EAAMqS,YAAYC,MAAQlB,EAAU,MACnD3L,MAAM,MAAQzF,EAAMqS,YAAYE,MAAQlB,GAN7B1kB,KAM0C2oB,wBAAwBhF,OAAS,GAAK,EAAS,MACpG7K,MAAM,QAAS4K,EAAQ,MAE1B,YAGHxjB,GAAG,OAAO,SAASmT,GACpB,IAAIwV,EAAUrG,EAAGC,OAAOziB,MACrBsmB,QAAQ,YAAY,GACpBxN,MAAM,OAAQ,MACdA,MAAM,MAAO,MACbA,MAAM,QAAS,MAGd+P,EAAQvC,QAAQ,qBAClB9D,EAAGwG,UAAU,wCAA0CH,EAAQ7F,KAAK,MAAQ,MAAMiG,MAAK,WACzEzG,EAAGC,OAAOziB,MAGnBsmB,QAAQ,YAAY,GACpBxN,MAAM,OAAQ,MACdA,MAAM,MAAO,MACbA,MAAM,QAAS,SAItB,IAAK,IAAIlU,EAAI,EAAGA,EAAIggB,EAAY1iB,SAAU0C,EACxCggB,EAAYhgB,GAAGugB,OAAOnlB,KAAMqT,KAIlC6V,CAAmB1G,EAAGwG,UAAU,2DAG1B,YAAAG,oBAAR,WACE,IAGI1E,EAAgBC,EAChB0E,EACAC,EALAvF,EAAqB9jB,KAMJwiB,EAAGiG,OACrBvoB,GAAG,SAAS,SAASmT,GACpB,IAAImS,EAAqB,EAAAC,SAASpS,EAAMqS,YAAYC,MAAOtS,EAAMqS,YAAYE,OAG7EyD,EAASvF,EAAmBb,oBAAoBc,cAAcvB,EAAGC,OAAOziB,MAAMgjB,KAAK,iBAiCnFoG,EAAaC,EAAOC,SAEpB7E,EAAS2E,EAAW5F,EAAIgC,EAAchC,EACtCkB,EAAS0E,EAAW3F,EAAI+B,EAAc/B,KAEvCvjB,GAAG,QAAQ,SAASmT,GAEnBmP,EAAGC,OAAO,mBAAmBniB,SAE7B,IAAIklB,EAAgB,EAAAC,SAASpS,EAAMqS,YAAYC,MAAOtS,EAAMqS,YAAYE,QAExEyD,EAASvF,EAAmBb,oBAAoBc,cAAcvB,EAAGC,OAAOziB,MAAMgjB,KAAK,kBAE5EuG,OAAO/D,EAAchC,EAAIiB,EAAQe,EAAc/B,EAAIiB,GAAQ,MAEjExkB,GAAG,OAAO,SAASmT,GAECmP,EAAGC,OAAO,QAAQO,KAAK,WAAWwG,MAAM,KAE7DH,EAAOE,OAAOH,EAAW5F,EAAG4F,EAAW3F,GAAG,KAoD9CgG,CAAejH,EAAGwG,UAAU,mIAGvB,YAAAvC,wBAAP,SAA+B5X,GAC7B,IAAK,IAAIjK,EAAI,EAAGA,EAAI5E,KAAKugB,eAAere,SAAU0C,EAAG,CACnD,IAAIoR,EAAqBhW,KAAKugB,eAAe3b,GAE7C,GAAIoR,EAAInH,OAASA,EACf,OAAOmH,IAKN,YAAA0T,oBAAP,SAA2B7a,GACzB,IAAK,IAAIjK,EAAI,EAAGA,EAAI5E,KAAK6V,YAAY3T,SAAU0C,EAAG,CAChD,IAAI+kB,EAAoB3pB,KAAK6V,YAAYjR,GAEzC,GAAI+kB,EAAG9a,OAASA,EACd,OAAO8a,IAKN,YAAAC,uBAAP,SAA8B/a,GAC5B,IAAK,IAAIjK,EAAI,EAAGA,EAAI5E,KAAK6pB,cAAc3nB,SAAU0C,EAAG,CAClD,IAAIyZ,EAAoBre,KAAK6pB,cAAcjlB,GAE3C,GAAIyZ,EAAIxP,OAASA,EACf,OAAOwP,IAKL,YAAA+G,SAAR,SAAiB5U,EAAuBsZ,EAAiCC,GAAzE,WACE/pB,KAAKwa,iBAAiBwP,oBAAoBxZ,EAAesZ,EAAyBC,GAAwBzN,MAAK,SAACqN,GAI9G,IAHA,IAAI3T,EAAM,EAAKyQ,wBAAwBsD,GAEnCE,EAAQ,KACHrlB,EAAI,EAAGA,EAAIoR,EAAIkU,mBAAmBhoB,SAAU0C,EACnD,GAAIoR,EAAIkU,mBAAmBtlB,KAAO4L,EAAe,CAC/CyZ,EAAQrlB,EACR,MAIS,MAATqlB,GACFjU,EAAIkU,mBAAmBlnB,KAAKwN,GAG9B,EAAK2Z,wBAAwBR,MAC5BhN,OAAM,SAACC,GACR,EAAKC,MAAMD,OAIP,YAAA2L,mBAAR,SAA2B/X,EAAuBsZ,EAAiCM,EAAiCC,GAApH,WACErqB,KAAKwa,iBAAiB+N,mBAAmB/X,EAAesZ,EAAyBM,EAAyBC,GAA2B/N,MAAK,SAACqN,GACzI,EAAKQ,wBAAwBR,MAC5BhN,OAAM,SAACC,GACR,EAAKC,MAAMD,OAIf,YAAA7B,gBAAA,aAIA,YAAAuP,KAAA,WACE,OAAOtqB,KAAKsU,YAAYgW,QAG1B,YAAAjU,iBAAA,SAAiBH,EAAiBqU,GAChC,YADgC,IAAAA,OAAA,GACzBvqB,KAAKoW,OAASpW,KAAKsU,YAAY+B,iBAAiBH,IAGzD,YAAAsU,cAAA,SAAcnM,GAGZ,IAFA,IAAIoM,EAA4B,GAEvB7lB,EAAI,EAAGA,EAAI5E,KAAKugB,eAAere,SAAU0C,EAAG,CACnD,IAAIgR,EAA+B5V,KAAKugB,eAAe3b,GAEnDgR,EAAcO,mBAAqBkI,EAAIxP,MACzC4b,EAASznB,KAAK4S,GAIlB,OAAO6U,GAGT,YAAAC,oBAAA,SAAoBrM,GAGlB,IAFA,IAAIsM,EAAkC,GAE7B/lB,EAAI,EAAGA,EAAI5E,KAAK6V,YAAY3T,SAAU0C,EAAG,CAChD,IAAImT,EAA2B/X,KAAK6V,YAAYjR,GAE5CmT,EAAU5B,mBAAqBkI,EAAIxP,MACrC8b,EAAe3nB,KAAK+U,GAIxB,OAAO4S,GAGF,YAAAjJ,WAAP,SAAkBkJ,GAAlB,WAGE5qB,KAAKugB,eAAiB,GAEtBvgB,KAAKmgB,gBAAgB/B,OAAO9B,MAAK,SAAAyC,GAC/B,EAAKmB,gBAAgB2K,WAAW9L,EAAS+L,SAEzC,EAAKC,kBAAkBhM,EAASxC,OAEhC,EAAKsN,cAAgB9K,EAAS8K,cAE9B,EAAKA,cAAcrpB,SAAQ,SAAA6d,GACrB,EAAKhI,iBAAiBgI,EAAIxP,QAC5B,EAAKuR,iBAAmB/B,EAAIxP,SAIhC,IAAImc,EAAM,EAAKC,yBAAyB,QACpCD,GACF,EAAKzK,eAAexd,OAAOioB,EAAK,GAGlC,EAAKE,eAAenM,EAASlJ,aAE7B,EAAKsV,eAAeP,GAEpB,EAAKQ,8BAEJzO,OAAM,SAACC,GACR,EAAKC,MAAMD,OAIR,YAAAmO,kBAAP,SAAyBxO,GAAzB,WAGEvc,KAAKqrB,iBAAiB9O,GAGtBA,EAAM/b,SAAQ,SAAAe,GACPA,EAAKyiB,YACHziB,EAAKkb,eACR,EAAK8D,eAAevd,KAAKzB,MAM/BvB,KAAKugB,eAAetd,MAAK,SAACC,EAAGC,GAC3B,OAAID,EAAEqY,MAAM+P,eAAeC,cAAgBpoB,EAAEoY,MAAM+P,eAAeC,eAAuB,EAChFroB,EAAEqY,MAAM+P,eAAeC,cAAgBpoB,EAAEoY,MAAM+P,eAAeC,cAAsB,EACjF,KAIdhP,EAAM/b,SAAQ,SAAAe,GACZ,IAAKA,EAAKyiB,YACJziB,EAAKkb,eAAiBlb,EAAKkb,cAAcva,OAAS,EAEpD,IAAK,IAAI0C,EAAI,EAAGA,EAAI,EAAK2b,eAAere,OAAQ0C,IAAK,CACnD,IAAI4mB,EAAU,EAAKjL,eAAe3b,GAC9BrD,EAAKkb,gBAAkB+O,EAAQ3c,MACjC,EAAK0R,eAAexd,OAAO6B,EAAI,EAAG,EAAGrD,QAUzC,YAAA8pB,iBAAR,SAAyB9O,GAAzB,WACEA,EAAM/b,SAAQ,SAAAe,GACRA,EAAKyiB,YACP,EAAKzD,eAAevd,KAAKzB,OAKxB,YAAA6pB,yBAAP,sBACEprB,KAAKwgB,iBAAmB,GACxBxgB,KAAKygB,WAAa,GAElB,IAAK,IAAI7b,EAAI,EAAGA,EAAI5E,KAAK6pB,cAAc3nB,SAAU0C,EAAG,CAClD,IAAIyZ,EAAoBre,KAAK6pB,cAAcjlB,GAE3C5E,KAAKwgB,iBAAiBxd,KAAK,CAAEqb,IAAKA,EAAKxI,YAAa7V,KAAK0qB,oBAAoBrM,KAC7Ere,KAAKygB,WAAWzd,KAAK,CAAEqb,IAAKA,EAAK9B,MAAOvc,KAAKwqB,cAAcnM,KAG7Dre,KAAKugB,eAAe/f,SAAQ,SAACwV,GAC3BA,EAAI0M,QAAU,EAAKY,iBAAiBtN,GACpCA,EAAIkU,mBAAqB,EAAKhG,4BAA4BlO,MAG5DhW,KAAKkiB,kBAGA,YAAAuJ,4BAAP,SAAmC1T,GACjC,OAAwE,IAAhE/X,KAAK4gB,8BAA8B/I,QAAQE,EAAUlJ,OAGxD,YAAA6c,4BAAP,SAAmC9V,GACjC,OAA4E,IAApE5V,KAAK6gB,8BAA8BhJ,QAAQjC,EAAc/G,OAG3D,YAAAsc,eAAR,SAAuBP,GAErB,IAAIX,GAAS,EASb,GAPwB,MAApBW,EACFX,EAAQjqB,KAAK6V,YAAYhT,WAAU,SAAA8oB,GAAK,OAAAA,EAAE9c,OAAS+b,EAAiB/b,QAE7D7O,KAAK6V,YAAY3T,OAAS,IACjC+nB,EAAQ,GAGNA,GAAS,EAAG,CACd,IAAMlS,EAAY/X,KAAK6V,YAAYoU,GAEnCjqB,KAAK4rB,oBAAoB7T,GAEzB/X,KAAKsiB,eAID,YAAAuJ,aAAR,SAAqBC,GACnB,IAAItN,EAAwB,KAO5B,OANAxe,KAAK6V,YAAYrV,SAAQ,SAAAuX,GACnB+T,IAAgB/T,EAAUlJ,OAC5B2P,EAASzG,MAINyG,GAGD,YAAA0M,eAAR,SAAuBhmB,GAAvB,WACM2Q,EAA+B,GACnC3Q,EAAK1E,SAAQ,SAAC4jB,EAAe6F,GAEvB7F,EAAc7B,mBAAmBrgB,OAAS,GAC5CkiB,EAAc7B,mBAAmB/hB,SAAQ,SAAAurB,GACvC,EAAKC,sBAAsBD,MAI/BlW,EAAY7S,KAAKohB,MAInBpkB,KAAK6V,YAAcA,EAEnB7V,KAAK6V,YAAY5S,MAAK,SAACC,EAAGC,GACxB,OAAID,EAAEqY,MAAM+P,eAAeC,cAAgBpoB,EAAEoY,MAAM+P,eAAeC,eAAuB,EAChFroB,EAAEqY,MAAM+P,eAAeC,cAAgBpoB,EAAEoY,MAAM+P,eAAeC,cAAsB,EACjF,MAIR,YAAAS,sBAAR,SAA8B3K,GAA9B,WACc,MAARA,IACFA,EAAK9F,MAAQvb,KAAKisB,kBAAkB5K,EAAKzL,eAEzCyL,EAAK4F,SAASzmB,SAAQ,SAAAyjB,GACpB,EAAK+H,sBAAsB/H,QAKzB,YAAAgI,kBAAR,SAA0BC,GACxB,IAAI3Q,EAAgB,KAOpB,OANAvb,KAAKugB,eAAe/f,SAAQ,SAAS2rB,GAC/BA,EAAItd,OAASqd,IACf3Q,EAAQ4Q,EAAI5Q,MAAM+P,mBAIf/P,GAGF,YAAAkG,aAAP,SAAoBJ,EAAWC,GACzBthB,KAAKqW,iBAAiBrW,KAAKqgB,iBAAiBlK,mBAC9CnW,KAAKigB,mBAAmBmM,KAAK7R,KAAK,CAChCiH,YAAsC,OAAxBH,EAAKnc,KAAKmnB,UAAqBrsB,KAAKssB,kBAAoBtsB,KAAKusB,kBAC3ElZ,MAAOiO,EACPkL,KAAMnL,IAERC,EAAOmL,iBACPnL,EAAOoL,oBAGPpL,EAAOmL,iBACPnL,EAAOoL,oBAIJ,YAAAnL,gBAAP,SAAuBF,EAAWC,GAEhCD,EAAKsL,UAAUC,eAAevL,GAE1BA,EAAKsL,UAAUE,WAAWxL,GAC5BA,EAAKyL,WAGLzL,EAAKsL,UAAUI,aAIZ,YAAAC,iBAAP,SAAwB3Z,EAAYmZ,GAClCxsB,KAAK4rB,oBAAoBY,GACzBxsB,KAAKsiB,cAGA,YAAA2K,gBAAP,sBACEjtB,KAAK6b,WAAa7b,KAAKggB,aAAaoM,KAAK,EAAAziB,kCAAmC,CAC1EujB,UAAU,EACVC,UAAU,EACVC,qBAAqB,EACrB,MAAS,iBAGyBptB,KAAK6b,WAAWwR,QAASC,uBAAuBnL,WAAU,SAAAjd,GAE5F,EAAK2Q,YAAY7S,KAAKkC,GAEtB,EAAK2Q,YAAY5S,MAAK,SAACC,EAAkBC,GACvC,IAAIoqB,EAAQrqB,EAAEqY,MAAM+P,eAAekC,cAC/BC,EAAQtqB,EAAEoY,MAAM+P,eAAekC,cAEnC,OAAID,EAAQE,GACF,EAGNF,EAAQE,EACH,EAGF,KAGT,EAAKrC,+BAIF,YAAAsC,oBAAP,SAA2BzO,GAA3B,WACEjf,KAAK6b,WAAa7b,KAAKggB,aAAaoM,KAAK,EAAAuB,sBAAuB,CAC9DT,UAAU,EACVC,UAAU,EACVC,qBAAqB,IAEvBptB,KAAK6b,WAAWwR,QAAQvS,QAAU9a,KAAKkgB,gBAAgBmC,OAAO,+BAAiC,KAAOpD,EAAI1D,MAAM+P,eAAiB,IACjItrB,KAAK6b,WAAWwR,QAAQnoB,KAAO+Z,EAAIpQ,KACnC7O,KAAK6b,WAAWwR,QAAQ9rB,KAAO,SAC/BvB,KAAK6b,WAAWwR,QAAQO,WAAa5tB,KAAKkgB,gBAAgBmC,OAAO,uBAEzCriB,KAAK6b,WAAWwR,QAASQ,UAAU1L,WAAU,SAAAjd,GACnE,EAAK4oB,oBAAoB5oB,OAItB,YAAA6oB,kBAAP,SAAyB9O,EAAoBlf,GAA7C,WAEEC,KAAK6b,WAAa7b,KAAKggB,aAAaoM,KAAK,EAAAziB,kCAAmC,CAC1EujB,UAAU,EACVC,UAAU,EACVC,qBAAqB,EACrB,MAAS,iBAEXptB,KAAK6b,WAAWwR,QAAQpR,MAAO,EAC/Bjc,KAAK6b,WAAWwR,QAAQttB,SAAWA,EACnCC,KAAK6b,WAAWwR,QAAQjJ,cAAgBnF,EACxCjf,KAAK6b,WAAWwR,QAAQC,uBAAuBnL,WAAU,SAAAjd,GACvD,IAAI8lB,EAAM,EAAKgD,yBAAyB9oB,EAAK2J,MAE7C,EAAKgH,YAAYmV,GAAKzP,MAAQrW,EAAKqW,MACnC,EAAK1F,YAAYmV,GAAKiD,YAAc/oB,EAAK+oB,YACzC,EAAKpY,YAAYmV,GAAKkD,SAAWhpB,EAAKgpB,SACtC,EAAKrY,YAAYmV,GAAKmD,gBAAkBjpB,EAAKipB,gBAC7C,EAAKtY,YAAYmV,GAAKoD,WAAalpB,EAAKkpB,WACxC,EAAKvY,YAAYmV,GAAKqD,eAAiBnpB,EAAKmpB,eAC5C,EAAKxY,YAAYmV,GAAKsD,kBAAoBppB,EAAKopB,kBAC/C,EAAKzY,YAAYmV,GAAKuD,QAAUrpB,EAAKqpB,QACrC,EAAK1Y,YAAYmV,GAAKwD,YAActpB,EAAKspB,YACzC,EAAK3Y,YAAYmV,GAAKnN,MAAQ3Y,EAAK2Y,MAEnC,EAAKuN,2BAED,EAAK/K,iBAAiBxR,OAAS3J,EAAK2J,OACtC,EAAK+c,oBAAoB,EAAK/V,YAAYmV,IAE1C,EAAK1I,kBAKX,YAAAsJ,oBAAA,SAAoBxH,GAClBpkB,KAAKqgB,iBAAmB+D,GAG1B,YAAAqK,mBAAA,SAAmB1W,GAEjB,OAAOA,EAAUlJ,OAAS7O,KAAKqgB,iBAAiBxR,MAG3C,YAAAif,oBAAP,SAA2Bjf,GAA3B,WACE7O,KAAKwa,iBAAiBkT,oBAAoB7e,GAAMyN,MAAK,SAAAyC,GAEnD,IAAIiM,EAAM,EAAKgD,yBAAyBnf,GACxC,EAAKgH,YAAY9S,OAAOioB,EAAK,GAC7B,EAAKI,2BAED,EAAKvV,YAAY3T,OAAS,EAC5B,EAAK0pB,oBAAoB,EAAK/V,YAAY,IAG1C,EAAKwK,iBAAmB,KAG1B,EAAKiC,gBAEJ3F,OAAM,SAACC,GACR,EAAKC,MAAMD,OAIR,YAAA8R,oBAAP,SAA2BC,EAA+B3K,EAAqB3F,GAA/E,WACEre,KAAK6b,WAAa7b,KAAKggB,aAAaoM,KAAK,EAAAviB,+BAAgC,CACvEqjB,UAAU,EACVC,UAAU,EACVC,qBAAqB,EACrB,MAAS,iBAEXptB,KAAK6b,WAAWwR,QAAQjP,KAAKC,EAAKre,KAAKugB,eAAgBoO,EAAgB3K,GAEvEhkB,KAAK6b,WAAWwR,QAAQuB,mBAAmBzM,WAAU,SAAAjd,GAEnDA,EAAKglB,mBAAqB,EAAKhG,4BAA4Bhf,GAE3D,EAAKwc,WAAW,EAAKrB,sBAKlB,YAAAwO,oBAAP,SAA2B5P,GAA3B,WACEjf,KAAK6b,WAAa7b,KAAKggB,aAAaoM,KAAK,EAAAuB,sBAAuB,CAC9DT,UAAU,EACVC,UAAU,EACVC,qBAAqB,IAEvBptB,KAAK6b,WAAWwR,QAAQvS,QAAU9a,KAAKkgB,gBAAgBmC,OAAO,+BAAiC,KAAOpD,EAAI1D,MAAM+P,eAAiB,IACjItrB,KAAK6b,WAAWwR,QAAQnoB,KAAO+Z,EAAIpQ,KACnC7O,KAAK6b,WAAWwR,QAAQO,WAAa5tB,KAAKkgB,gBAAgBmC,OAAO,uBACjEriB,KAAK6b,WAAWwR,QAAQ9rB,KAAO,EAAAutB,WAAWC,OAElB/uB,KAAK6b,WAAWwR,QAASQ,UAAU1L,WAAU,SAAAjd,GACnE,EAAK8pB,oBAAoB9pB,OAItB,YAAA8pB,oBAAP,SAA2BngB,EAAcogB,GAAzC,gBAAyC,IAAAA,MAAA,MACvCjvB,KAAKmgB,gBAAgB0O,oBAAoBhgB,GAAMyN,MAAK,SAAAyC,GAElD,IAAIiM,EAAM,EAAKC,yBAAyBpc,GACxC,EAAK0R,eAAexd,OAAOioB,EAAK,GAEhC,EAAKtJ,WAAW,EAAKrB,qBAEpB1D,OAAM,SAACC,GACW,MAAfqS,GACFA,EAAYrS,GAEd,EAAKC,MAAMD,OAIR,YAAAsS,oBAAP,SAA2BtZ,EAA8B7V,GAAzD,WAEEC,KAAK6b,WAAa7b,KAAKggB,aAAaoM,KAAK,EAAAthB,kCAAmC,CAC1EoiB,UAAU,EACVC,UAAU,EACVC,qBAAqB,EACrB,MAAS,+BAGXxX,EAAcsB,WAAWjU,MAAK,SAACC,EAAGC,GAChC,OAAID,EAAEqY,MAAM+P,eAAiBnoB,EAAEoY,MAAM+P,gBAAwB,EACpDpoB,EAAEqY,MAAM+P,eAAiBnoB,EAAEoY,MAAM+P,eAAuB,EACrD,KAEdtrB,KAAK6b,WAAWwR,QAAQzX,cAAgBA,EACxC5V,KAAK6b,WAAWwR,QAAQttB,SAAWA,EAECC,KAAK6b,WAAWwR,QAAS8B,yBAAyBhN,WAAU,SAAAjd,GAE9F,GAAIA,EAAK8e,WACP,EAAKtC,WAAW,EAAKrB,sBAElB,CACH,IAAM+O,EAAW,EAAKnE,yBAAyB/lB,EAAK2J,OAElC,IAAdugB,IACF,EAAK7O,eAAe6O,GAAYlqB,GAIlC,EAAKkmB,2BAEL,EAAKvV,YAAYrV,SAAQ,SAAC4jB,GACxB,EAAK4H,sBAAsB5H,EAAc7B,mBAAmB,OAIjC,MAAzB,EAAKlC,kBACP,EAAK2L,sBAAsB,EAAK3L,iBAAiBkC,mBAAmB,IAGtE,EAAKD,kBAKH,YAAA0L,yBAAR,SAAiCnf,GAC/B,IAAK,IAAIjK,EAAI,EAAGA,EAAI5E,KAAK6V,YAAY3T,OAAQ0C,IAAK,CAEhD,GADU5E,KAAK6V,YAAYjR,GACnBiK,OAASA,EACf,OAAOjK,IAKL,YAAAqmB,yBAAR,SAAiCpc,GAC/B,IAAK,IAAIjK,EAAI,EAAGA,EAAI5E,KAAKugB,eAAere,OAAQ0C,IAAK,CAEnD,GADU5E,KAAKugB,eAAe3b,GACtBiK,OAASA,EACf,OAAOjK,EAIX,OAAO,MAGF,YAAAulB,wBAAP,SAA+B/F,GAC7BpkB,KAAKgsB,sBAAsB5H,EAAc7B,mBAAmB,IAE5D,IAAK,IAAI3d,EAAI,EAAGA,EAAI5E,KAAK6V,YAAY3T,SAAU0C,EAAG,CAChC5E,KAAK6V,YAAYjR,GAEnBiK,OAASuV,EAAcvV,OACnC7O,KAAK6V,YAAYjR,GAAKwf,EAEtBpkB,KAAK4rB,oBAAoBxH,IAI7BpkB,KAAKorB,2BAELprB,KAAKsiB,cAGA,YAAA+M,oBAAP,SAA2BC,EAAeC,EAASN,GAAnD,gBAAmD,IAAAA,MAAA,MACjD,IAAMtK,EAAO3kB,KAEbA,KAAKwa,iBAAiB6U,oBAAoBrvB,KAAKqgB,iBAAiBxR,KAAMygB,EAAeC,GAASjT,MAAK,SAAA8H,GAKjG,IAHA,IAAIpO,EAAM2O,EAAK8B,wBAAwB8I,GAEnCtF,EAAQ,KACHrlB,EAAI,EAAGA,EAAIoR,EAAIkU,mBAAmBhoB,SAAU0C,EACnD,GAAIoR,EAAIkU,mBAAmBtlB,KAAOwf,EAAcvV,KAAM,CACpDob,EAAQrlB,EACR,MAIS,MAATqlB,GACFjU,EAAIkU,mBAAmBnnB,OAAOknB,EAAO,GAGvCtF,EAAKwF,wBAAwB/F,MAE5BzH,OAAM,SAACC,GACW,MAAfqS,GACFA,EAAYrS,GAGd,EAAKC,MAAMD,OAIR,YAAA4S,SAAP,SAAgBhD,GACd,OAAOxsB,KAAKqgB,mBAAqBmM,GAGnC,YAAAtK,eAAA,sBACQ3G,EAAQvb,KAAKuD,OAAOgoB,cAE1BvrB,KAAK0gB,yBAA2B,GAChC1gB,KAAK2gB,mBAAqB,GAE1B3gB,KAAKwgB,iBAAiBhgB,SAAQ,SAACgsB,GAE7B,IAAMiD,EAAWjD,EAAK3W,YAAYtS,QAAO,SAACwU,GAGxC,OAAmB,IAFLA,EAAUwD,MAAM+P,eAAeC,cAAc1T,QAAQ0D,MAKrE,EAAKmF,yBAAyB1d,KAAK,CAAEqb,IAAKmO,EAAKnO,IAAKxI,YAAa4Z,OAGnEzvB,KAAKygB,WAAWjgB,SAAQ,SAACgsB,GAEvB,IAAMiD,EAAWjD,EAAKjQ,MAAMhZ,QAAO,SAAChC,GAGlC,OAAmB,IAFLA,EAAKga,MAAM+P,eAAeC,cAAc1T,QAAQ0D,MAKhE,EAAKoF,mBAAmB3d,KAAK,CAAEqb,IAAKmO,EAAKnO,IAAK9B,MAAOkT,OAGvDC,YAAW,WAAQ,EAAKlL,yBAA2B,MAGrD,YAAAmL,uBAAA,SAAuBC,EAA2BC,EAAoC3D,GAAtF,WACElsB,KAAKwa,iBAAiBsV,sBAAsBF,EAAmBC,EAA4B3D,GAAmB5P,MAAK,SAACqN,GAClH,EAAKQ,wBAAwBR,MAC5BhN,OAAM,SAACC,GACR,EAAKC,MAAMD,OAIf,YAAAmT,yBAAA,SAAyBH,EAA2B1D,GAApD,WACElsB,KAAKwa,iBAAiBwV,yBAAyBJ,EAAmB1D,GAAmB5P,MAAK,SAACqN,GACzF,EAAKQ,wBAAwBR,MAC5BhN,OAAM,SAACC,GACR,EAAKC,MAAMD,OAIR,YAAAqT,YAAP,sBACEjwB,KAAK6b,WAAa7b,KAAKggB,aAAaoM,KAAK,EAAA9iB,0BAA2B,CAClE4jB,UAAU,EACVC,UAAU,EACVC,qBAAqB,EACrB,MAAS,iBAGXptB,KAAK6b,WAAWwR,QAAQjP,KAAKpe,KAAK6pB,eAElC7pB,KAAK6b,WAAWwR,QAAQ6C,aAAa/N,WAAU,SAAAjd,GAE7C,EAAKwc,WAAW,UAMb,YAAA7E,MAAP,SAAaD,GACX5c,KAAK6b,WAAa,EAAAyD,aAAa6Q,kBAAkBvT,EAAK5c,KAAKggB,e,iCAx2ClD7W,GAAkB,+O,iCAAlBA,EAAkB,oD,GAAA,M,qqHCtD/B,4BACC,4BAEA,6BAEA,4BAGC,4BAEC,4BAEC,4BACC,4BACC,gCAC0D,+D,wBAD1D,iBAED,iBACD,iBACA,mCACC,yCACC,8BACC,4BACC,uBACD,iBACA,8BACD,iBACA,8BACC,+BAqDD,iBACD,iBACA,0CACC,8BACC,4BACC,uBACD,iBACA,8BACD,iBACA,8BACC,+BAsCD,iBACD,iBACD,iBACI,gCAKL,iBAEA,8BACC,8BAEC,gCAiBA,yBAGA,8BACS,8BACE,8BACE,8BACE,8BACG,6BACE,8BACF,iBACF,iBACA,8BACE,2BACF,iBACH,iBACA,8BACE,8BACG,6BACE,8BACF,iBACF,iBACA,8BACE,2BACF,iBACH,iBACA,8BACE,8BACE,6BACE,8BACF,iBACF,iBACA,8BACE,2BACF,iBACF,iBACA,8BACE,8BACG,6BACE,8BACF,iBACF,iBACA,8BACE,2BACF,iBACH,iBACA,8BACE,8BACG,6BACE,8BACF,iBACF,iBACA,8BACE,2BACF,iBACH,iBACF,iBACF,iBACF,iBAmBR,iBACD,iBACD,iBACD,iBAED,kB,MAjOO,8FAAwD,oBAGhD,6CAAmB,kBACZ,sEAQW,4DAuDX,yCAAe,0CAQC,kEAyCxB,4CAUH,+J,isID7FX,GAMa,EAAAA,sB,+DAAAA,EAAkB,E,KAN9B,EAAAgQ,U,MAAU,CAETC,SAAU,cACVC,YAAa,6BACbC,UAAW,CAAC,wB,+KAoBgCsI,YAAa,CAAF,C,KAAtD,EAAAlI,U,MAAU,cAAe,CAAE0W,QAAQ,MAeN9D,kBAAmB,CAAF,C,KAA9C,EAAA5S,U,MAAU,cAKmB6S,kBAAmB,CAAF,C,KAA9C,EAAA7S,U,MAAU,iB,+GE1Fb,aAEA,QACA,SACA,SAGA,aAyBI,WAAYjE,EAA8B4a,EAA8Bza,EAA8BC,EAAkCT,EAAsCI,EAAoC8a,EAA0C/b,GAN5P,KAAAgc,gBAAiC,IAAI,EAAAtW,QAOjCja,KAAKyV,cAAgBA,EACrBzV,KAAKqwB,UAAYA,EACjBrwB,KAAK4V,cAAgBA,EACrB5V,KAAKoV,sBAAwBA,EAC7BpV,KAAKwV,oBAAsBA,EAC3BxV,KAAK6V,YAAcA,EACnB7V,KAAKswB,oBAAsBA,EAC3BtwB,KAAKuU,YAAcA,EAEnBvU,KAAKyX,iBAAmBzX,KAAKwwB,2BAC7BxwB,KAAK0Y,WAkHb,OA/GY,YAAA8X,yBAAR,sBACQtb,EAAuC,CAAC,MAAO,WAAY,OAAQ,iBAAkB,cAErFub,EAAU,GAEVC,EAAQ1wB,KAAK4V,cAAcsB,WAAWyZ,QAyB1C,OAxBAD,EAAQA,EAAMntB,QAAO,SAAAyf,GAAQ,OAAmD,IAAnD9N,EAA2B2C,QAAQmL,EAAKnU,UAC/D7L,KAAKhD,KAAKoV,uBAChBsb,EAAM1tB,KAAKhD,KAAKwV,qBAEhBkb,EAAMlwB,SAAQ,SAAAwiB,GACV,GAAkB,aAAdA,EAAKnU,KACL,GAAImU,EAAK4N,iBAAkB,CACvB,IAAIhZ,EAAS,IAAI,EAAAiZ,2CAA2C,EAAM7N,EAAM,MAExEyN,EAAQztB,KAAK4U,OACV,CACCA,EAAS,IAAI,EAAAkZ,yBAAyB9N,EAAM,EAAKqN,UAAW,EAAK5a,eAErEgb,EAAQztB,KAAK4U,QAGjB,EAAK/B,YAAYrV,SAAQ,SAAAuX,GACrB,IAAIH,EAAS,IAAI,EAAAiZ,2CAA2C,EAAM7N,EAAMjL,GAExE0Y,EAAQztB,KAAK4U,SAKlB6Y,GAGJ,YAAAlZ,WAAP,WACI,IAAIA,GAAa,EAQjB,OANAvX,KAAKyX,iBAAiBjX,SAAQ,SAAAuwB,GACtBA,EAAgBxZ,eAChBA,GAAa,MAIdA,GAGJ,YAAAvV,QAAP,WACI,OAAOhC,KAAKgxB,UAGT,YAAAtY,SAAP,SAAgBuY,GAAhB,WAaI,YAbY,IAAAA,OAAA,GACZjxB,KAAKgxB,UAAW,EAEhBhxB,KAAKyX,iBAAiBjX,SAAQ,SAAAuwB,GACrBE,GAAiD,WAAnCF,EAAgBjZ,UAAUjJ,OACzCkiB,EAAgBrY,UAAS,GAEpBqY,EAAgB/uB,YACjB,EAAKgvB,UAAW,OAKrBhxB,KAAKgxB,UAGhB,YAAAE,+BAAA,SAA+BxvB,EAAayvB,GACxC,GAAInxB,KAAKqwB,UAAUnZ,WAAWia,GAAgB,CAC1C,IAAIlH,EAAQjqB,KAAKqwB,UAAUnZ,WAAWia,GAAeha,OAAOtU,WAAU,SAACuuB,GAAuB,OAAAA,EAAI1vB,MAAQA,KAE1G,IAAe,IAAXuoB,EACA,OAAOjqB,KAAKqwB,UAAUnZ,WAAWia,GAAeha,OAAO8S,GAI/D,OAAO,MAGJ,YAAAjS,sBAAP,SAA6BF,EAA0BC,QAAA,IAAAA,MAAA,MACnD,IAAIF,EAAU7X,KAAKyX,iBAAiB5U,WAAU,SAAA+U,GAAU,QAAEA,EAAOE,UAAU8Y,kBAAkC,MAAb7Y,GAAyF,MAAnEH,EAAsDG,WAA2F,MAAnEH,EAAsDG,WAAsBH,EAAsDG,UAAUlJ,OAASkJ,EAAUlJ,OAAU+I,EAAOE,UAAUjJ,OAASiJ,EAAUjJ,QAEjZ,OAAiB,IAAbgJ,EACO,KAEA7X,KAAKyX,iBAAiBI,IAI9B,YAAAH,WAAP,WACI,OAAO1X,KAAKyX,kBAGT,YAAAiH,SAAP,SAAgBnd,GACZvB,KAAKuwB,gBAAgBhW,KAAKhZ,IAGvB,YAAA8vB,aAAP,SAAoB5a,GAKhB,IAJA,IAAIyB,EAAiC,EAAAC,cAAc9C,aAAarV,KAAK4V,cAAe,UAChF0b,EAAgBtxB,KAAKgY,sBAAsBE,GAAgER,aAE3G6Z,EAASD,EAAapvB,OACjBuD,EAAI,EAAGA,EAAI8rB,IAAU9rB,EAAG,CAC7B,IAAImS,EAAgC0Z,EAAa7rB,GAEjD,GAAwB,MAApBmS,EAAOnE,WAAuC,MAAlBmE,EAAOlE,UAAoBkE,EAAO4Z,aAA+B,IAAjB5Z,EAAOtV,OAAkBtC,KAAKuU,YAAYkd,QAAQhb,EAAMmB,EAAOnE,UAAWmE,EAAOlE,SAC7J,OAAO,EAIf,OAAO,GAGf,EAtJA,GAAa,EAAAiC,uB,4GCUb,WACA,QAEA,Q,GAIA,M,sBAIA,aAII,WAAoB3E,EAA0BC,GAA1B,KAAAD,OAA0B,KAAAC,e,OAE9C,YAAAygB,kBAAA,SAAkBnV,GACd,IAAIjK,EAAqB,IAAI,EAAAC,WAG7B,OAFAD,EAASA,EAAOhR,IAAI,QAASmQ,KAAKC,UAAU6K,IAErCvc,KAAKgR,KACPyB,IAAqBjB,IAAM,6BAA8B,CAAEc,OAAQA,IACnER,aAGT,YAAA6f,yBAAA,WACI,IAAIrf,EAAqB,IAAI,EAAAC,WAE7B,OAAOvS,KAAKgR,KACPyB,IAAgCjB,IAAM,0BAA2B,CAAEc,OAAQA,IAC3ER,aAGT,YAAAkY,oBAAA,SAAoBxZ,EAAuBsZ,EAAiCC,GAA5E,WACQ3Y,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAoBC,IAAM,yBAA0BC,KAAKC,UAAU,CAAElB,cAAeA,EAAesZ,wBAAyBA,EAAyBC,uBAAwBA,IAA2B,CAAE3Y,QAASA,IACnNO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAyW,mBAAA,SAAmB/X,EAAuBsZ,EAAiCM,EAAiCC,GAA5G,WACQjZ,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAoBC,IAAM,gCAAiCC,KAAKC,UAAU,CAAElB,cAAeA,EAAesZ,wBAAyBA,EAAyBM,wBAAyBA,EAAyBC,0BAA2BA,IAA8B,CAAEjZ,QAASA,IAClRO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAud,oBAAA,SAAoB7e,EAAuBsZ,EAAiCC,GAA5E,WACQ3Y,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAoBC,IAAM,4BAA6BC,KAAKC,UAAU,CAAElB,cAAeA,EAAesZ,wBAAyBA,EAAyBC,uBAAwBA,IAA2B,CAAE3Y,QAASA,IACtNO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAA8f,oBAAA,SAAoBC,GAApB,WACQzgB,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAoBC,IAAM,4BAA6BC,KAAKC,UAAU,CAAEmgB,OAAQA,IAAW,CAAEzgB,QAASA,IACtGO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAggB,oBAAA,SAAoBD,GAApB,WACQzgB,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAoBC,IAAM,4BAA6BC,KAAKC,UAAU,CAAEmgB,OAAQA,IAAW,CAAEzgB,QAASA,IACtGO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAA4b,oBAAA,SAAoB7e,GAApB,WACQuC,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAiBC,IAAM,4BAA6B,CAAE3C,KAAMA,GAAQ,CAAEuC,QAASA,IAC/EO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAge,sBAAA,SAAsBF,EAA2BC,EAAoC3D,GAArF,WACQ9a,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAoBC,IAAM,0BAA2BC,KAAKC,UAAU,CAAEke,kBAAmBA,EAAmBC,2BAA4BA,EAA4B3D,kBAAmBA,IAAsB,CAAE9a,QAASA,IACxNO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAke,yBAAA,SAAyBJ,EAA2B1D,GAApD,WACQ9a,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAoBC,IAAM,6BAA8BC,KAAKC,UAAU,CAAEke,kBAAmBA,EAAmB1D,kBAAmBA,IAAsB,CAAE9a,QAASA,IACnKO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,a,iCA3IA1K,GAAgB,sD,oCAAhBA,EAAgB,QAAhBA,EAAgB,O,EAD7B,GACa,EAAAA,oB,+DAAAA,EAAgB,E,KAD5B,EAAAJ,c,2KC9BD,WACA,QACA,Q,GAGA,M,sBAIA,aAGI,WAAoBgK,EAA0BC,GAA1B,KAAAD,OAA0B,KAAAC,e,OAE9C,YAAA8gB,kBAAA,SAAkBC,GAAlB,WACQ5gB,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAA0BC,IAAM,cAAeC,KAAKC,UAAU,CAAEugB,KAAMD,IAAkB,CAAE5gB,QAASA,IACnGO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAogB,aAAA,SAAaF,GAAb,WACQ5gB,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAWC,IAAM,qBAAsBC,KAAKC,UAAU,CAAEsgB,cAAeA,IAAkB,CAAE5gB,QAASA,IACpGO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAqgB,gBAAA,SAAgBH,GAAhB,WACQ5gB,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAA0BC,IAAM,cAAeC,KAAKC,UAAU,CAAEugB,KAAMD,IAAkB,CAAE5gB,QAASA,IACnGO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAuK,mBAAA,SAAmB+V,GACf,IAAI9f,EAAqB,IAAI,EAAAC,WAG7B,OAFAD,EAASA,EAAOhR,IAAI,uBAAwB8wB,EAAqB5f,YAE1DxS,KAAKgR,KACPyB,IAAwDjB,IAAM,gCAAiC,CAAEc,OAAQA,IACzGR,aAGT,YAAAugB,iBAAA,SAAiBxjB,EAAc2B,EAAuB8hB,GAClD,IAAIhgB,EAAqB,IAAI,EAAAC,WAK7B,OAFAD,GADAA,GADAA,EAASA,EAAOhR,IAAI,OAAQuN,IACZvN,IAAI,gBAAiBkP,IACrBlP,IAAI,wBAAyBgxB,EAAsB9f,YAE5DxS,KAAKgR,KACPyB,IAAgBjB,IAAM,mCAAoC,CAAEc,OAAQA,IACpER,aAGT,YAAA6M,sBAAA,SAAsB9P,EAAc0jB,GAApC,WACQjgB,EAAqB,IAAI,EAAAC,WAM7B,OAJAD,GADAA,EAASA,EAAOhR,IAAI,OAAQuN,IACZvN,IAAI,eAAgBixB,EAAa/f,YAEjDxS,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPyB,IAAmFjB,IAAM,qCAAsC,CAAEc,OAAQA,IACzIX,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAA8M,0BAAA,SAA0B/P,EAAc0jB,GAAxC,WACQjgB,EAAqB,IAAI,EAAAC,WAM7B,OAJAD,GADAA,EAASA,EAAOhR,IAAI,OAAQuN,IACZvN,IAAI,eAAgBixB,EAAa/f,YAEjDxS,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPyB,IAAmFjB,IAAM,6CAA8C,CAAEc,OAAQA,IACjJX,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAA0gB,wBAAA,SAAwBhL,EAAcjmB,EAAc0kB,EAAgBlO,GAChE,IAAI3G,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAGhBiB,EAAS,CACTkV,KAAMA,EACNjmB,KAAMA,GAQV,OALc,MAAV0kB,GAA+B,MAAblO,IAClBzF,EAAO2T,OAASA,EAChB3T,EAAOyF,UAAYkO,GAGhBjmB,KAAKgR,KACPO,KAAUC,IAAM,6BAA8BC,KAAKC,UAAUY,GAAS,CAAElB,QAASA,IACjFU,aAGT,YAAA2gB,uBAAA,SAAuBC,EAAkBnX,GAAzC,WACQnK,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAcC,IAAM,sCAAuCC,KAAKC,UAAU,CAAEghB,SAAUA,EAAUnX,MAAOA,IAAU,CAAEnK,QAASA,IAC5HO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAA6gB,uBAAA,SAAuBC,EAAmBC,GAA1C,WACQzhB,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAWC,IAAM,sCAAuCC,KAAKC,UAAU,CAAEkhB,UAAWA,EAAWC,KAAMA,IAAS,CAAEzhB,QAASA,IACzHO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAghB,mBAAA,SAAmBC,EAAuBvL,EAAcwL,GACpD,IAAI1gB,EAAqB,IAAI,EAAAC,WAK7B,OAFAD,GADAA,GADAA,EAASA,EAAOhR,IAAI,gBAAiByxB,IACrBzxB,IAAI,OAAQkmB,IACZlmB,IAAI,QAAS0xB,GAEtBhzB,KAAKgR,KACPyB,IAAmCjB,IAAM,qCAAsC,CAAEc,OAAQA,IACzFR,aAGT,YAAAmhB,kBAAA,SAAkBC,EAAsB3X,GACpC,IAAInK,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAGhBnM,EAAOuM,KAAKC,UAAU,CAAEwhB,aAAcA,EAAc3X,MAAOA,IAE/D,OAAOvb,KAAKgR,KACPO,KAAcC,IAAM,oCAAqCtM,EAAM,CAAEkM,QAASA,IAC1EU,aAGT,YAAAqhB,kBAAA,SAAkBP,GACd,IAAIxhB,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAGhBnM,EAAOuM,KAAKC,UAAU,CAAEkhB,UAAWA,IAEvC,OAAO5yB,KAAKgR,KACPO,KAAWC,IAAM,oCAAqCtM,EAAM,CAAEkM,QAASA,IACvEU,aAGT,YAAAshB,WAAA,SAAW7X,EAAe1M,EAAcwkB,GACpC,IAAIjiB,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAGhBiB,EAAS,CAAE+gB,eAAgBA,EAAgBC,SAAU,CAAE/X,MAAOA,EAAO1M,KAAMA,IAE/E,OAAO7O,KAAKgR,KACPO,KAAWC,IAAM,6BAA8BC,KAAKC,UAAUY,GAAS,CAAElB,QAASA,IAClFU,aAGT,YAAAyhB,WAAA,SAAWF,EAAwBG,GAC/B,IAAIpiB,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAGpB,OAAOrR,KAAKgR,KACPO,KAAWC,IAAM,gCAAiCC,KAAKC,UAAU,CAAE2hB,eAAgBA,EAAgBG,SAAUA,IAAa,CAAEpiB,QAASA,IACrIU,a,iCA3MAvK,GAAS,sD,oCAATA,EAAS,QAATA,EAAS,O,EADtB,GACa,EAAAA,a,+DAAAA,EAAS,E,KADrB,EAAAP,c,4LCUD,WACA,Q,GAGA,M,sBAMA,aAII,WAAoBgK,EAA0BC,GAA1B,KAAAD,OAA0B,KAAAC,e,OAE9C,YAAAwiB,iBAAA,WACI,OAAOzzB,KAAKgR,KACPyB,IAAmBjB,IAAM,yCACzBM,aAGT,YAAA4hB,cAAA,SAAcC,EAAkBC,EAAiBC,GAC7C,IAAIvhB,EAAqB,IAAI,EAAAC,WAc7B,OAZgB,MAAZohB,IACArhB,EAASA,EAAOhR,IAAI,WAAYqyB,IAGrB,MAAXC,IACAthB,EAASA,EAAOhR,IAAI,UAAWsyB,IAGpB,MAAXC,IACAvhB,EAASA,EAAOhR,IAAI,UAAWuyB,IAG5B7zB,KAAKgR,KACPyB,IAAUjB,IAAM,8BAA+B,CAAEc,OAAQA,IACzDR,a,iCA5BAzK,GAA0B,sD,oCAA1BA,EAA0B,QAA1BA,EAA0B,O,EADvC,GACa,EAAAA,8B,+DAAAA,EAA0B,E,KADtC,EAAAL,c,4KC7BD,WACA,QACA,QACA,S,GAGA,M,sBAKA,aAGI,WAAoBgK,EAA0BC,GAA1B,KAAAD,OAA0B,KAAAC,eACzC6iB,EAAiBC,YAAc,gG,OAGpC,YAAAC,MAAA,SAAMxgB,EAAkBhD,EAAuBiG,GAA/C,WACQnE,EAAqB,IAAI,EAAAC,WAgB7B,OAdgB,MAAZiB,IACAlB,EAASA,EAAOhR,IAAI,WAAYkS,IAGf,MAAjBhD,IACA8B,EAASA,EAAOhR,IAAI,gBAAiBkP,IAG7B,MAARiG,IACAnE,EAASA,EAAOhR,IAAI,OAAQmV,IAGhCzW,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPyB,IAAyBjB,IAAM,0BAA2B,CAAEc,OAAQA,IACpEX,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAmiB,OAAA,SAAOzM,EAAc/Q,GAArB,WACQnE,EAAqB,IAAI,EAAAC,WAS7B,OARAD,EAASA,EAAOhR,IAAI,OAAQkmB,GAEhB,MAAR/Q,IACAnE,EAASA,EAAOhR,IAAI,OAAQmV,IAGhCzW,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPyB,IAA6CjB,IAAM,2BAA4B,CAAEc,OAAQA,IACzFX,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,a,iCA9CA3K,GAAU,sD,oCAAVA,EAAU,QAAVA,EAAU,O,EADvB,GACa,EAAAA,c,+DAAAA,EAAU,E,KADtB,EAAAH,c,iLCQD,WACA,QAGA,Q,GAYA,M,sBAIA,aAII,WAAoBgK,EAA0BC,GAA1B,KAAAD,OAA0B,KAAAC,e,OAE9C,YAAAmN,KAAA,WACI,OAAOpe,KAAKgR,KAAKyB,IAAoHjB,IAAM,aACtIM,aAIT,YAAAoiB,kBAAA,SAAkB3X,EAAiB1G,GAC/B,IAAIvD,EAAqB,IAAI,EAAAC,WAU7B,OARa,MAATgK,IACAjK,EAASA,EAAOhR,IAAI,QAASmQ,KAAKC,UAAU6K,KAG7B,MAAf1G,IACAvD,EAASA,EAAOhR,IAAI,cAAemQ,KAAKC,UAAUmE,KAG/C7V,KAAKgR,KACPyB,IAAqBjB,IAAM,6BAA8B,CAAEc,OAAQA,IACnER,aAGT,YAAAqiB,oBAAA,SAAoBC,EAAiBC,EAAuBC,EAAkBC,EAAoB9d,GAC9F,IAAInE,EAAqB,IAAI,EAAAC,WAW7B,OANAD,GADAA,GADAA,GADAA,EAASA,EAAOhR,IAAI,UAAW8yB,IACf9yB,IAAI,gBAAiB+yB,IACrB/yB,IAAI,cAAemQ,KAAKC,UAAU4iB,KAClChzB,IAAI,YAAamQ,KAAKC,UAAU6iB,IAEpC,MAAR9d,IACAnE,EAASA,EAAOhR,IAAI,OAAQmV,IAGzBzW,KAAKgR,KACPyB,IAAoBjB,IAAM,uCAAwC,CAAEc,OAAQA,IAC5ER,aAGT,YAAA0iB,mBAAA,SAAmBC,EAAkBC,EAAwBC,EAAoBJ,GAC7E,IAAIjiB,EAAqB,IAAI,EAAAC,WAO7B,OAFAD,GADAA,GADAA,GADAA,EAASA,EAAOhR,IAAI,WAAYmzB,IAChBnzB,IAAI,iBAAkBozB,IACtBpzB,IAAI,gBAAiBmQ,KAAKC,UAAUijB,KACpCrzB,IAAI,YAAamQ,KAAKC,UAAU6iB,IAEzCv0B,KAAKgR,KACPyB,IAAmBjB,IAAM,6BAA8B,CAAEc,OAAQA,IACjER,aAGT,YAAA8iB,qBAAA,SAAqBphB,GAArB,WACQpC,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAUC,IAAM,sCAAuCC,KAAKC,UAAU,CAAE8B,SAAUA,IAAa,CAAEpC,QAASA,IAC1GO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAA4c,oBAAA,SAAoBmG,GAApB,WACQzjB,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAoBC,IAAM,4BAA6BC,KAAKC,UAAU,CAAEmjB,OAAQA,IAAW,CAAEzjB,QAASA,IACtGO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAgjB,oBAAA,SAAoBD,GAApB,WACQzjB,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAoBC,IAAM,4BAA6BC,KAAKC,UAAU,CAAEmjB,OAAQA,IAAW,CAAEzjB,QAASA,IACtGO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAA+c,oBAAA,SAAoBhgB,GAApB,WACQuC,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAWC,IAAM,4BAA6BC,KAAKC,UAAU,CAAE7C,KAAMA,IAAS,CAAEuC,QAASA,IACzFO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAijB,iBAAA,SAAiBC,EAAsBld,GAAvC,WACQ1G,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAoBC,IAAM,kCAAmCC,KAAKC,UAAU,CAAEsjB,aAAcA,EAAcC,cAAend,IAAc,CAAE1G,QAASA,IAClJO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAojB,oBAAA,SAAoBF,EAAsBld,GAA1C,WACQ1G,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAoBC,IAAM,qCAAsCC,KAAKC,UAAU,CAAEsjB,aAAcA,EAAcC,cAAend,IAAc,CAAE1G,QAASA,IACrJO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAqjB,oBAAA,SAAoBH,EAAsBnlB,GAA1C,WACQuB,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAcC,IAAM,qCAAsCC,KAAKC,UAAU,CAAEsjB,aAAcA,EAAcnlB,cAAeA,IAAkB,CAAEuB,QAASA,IACnJO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAsjB,2BAAA,SAA2B/B,EAAwBgC,GAAnD,WACQjkB,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAWC,IAAM,6BAA8BC,KAAKC,UAAU,CAAE2hB,eAAgBA,EAAgBC,SAAU+B,IAAS,CAAEjkB,QAASA,IAC9HO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAwjB,8BAAA,SAA8BjC,EAAwBC,GAAtD,WACQliB,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAWC,IAAM,gCAAiCC,KAAKC,UAAU,CAAE2hB,eAAgBA,EAAgBC,SAAUA,IAAa,CAAEliB,QAASA,IACrIO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAyjB,8BAAA,SAA8BlC,EAAwBG,GAAtD,WACQpiB,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAoBC,IAAM,gCAAiCC,KAAKC,UAAU,CAAE2hB,eAAgBA,EAAgBG,SAAUA,IAAa,CAAEpiB,QAASA,IAC9IO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAA0jB,aAAA,SAAa/zB,EAAY+R,GACrB,IAAIlB,EAAqB,IAAI,EAAAC,WAK7B,OAFAD,GADAA,EAASA,EAAOhR,IAAI,KAAMG,IACVH,IAAI,WAAYkS,GAEzBxT,KAAKgR,KACPyB,IAAejB,IAAM,qBAAsB,CAAEc,OAAQA,IACrDR,aAGT,YAAA2jB,mBAAA,SAAmB5mB,EAAc2E,GAC7B,IAAIlB,EAAqB,IAAI,EAAAC,WAK7B,OAFAD,GADAA,EAASA,EAAOhR,IAAI,OAAQuN,IACZvN,IAAI,WAAYkS,GAEzBxT,KAAKgR,KACPyB,IAAcjB,IAAM,4BAA6B,CAAEc,OAAQA,IAC3DR,aAGT,YAAA4jB,yBAAA,SAAyB7mB,EAAc2E,EAAkBiD,GACrD,IAAInE,EAAqB,IAAI,EAAAC,WAM7B,OAFAD,GADAA,GADAA,EAASA,EAAOhR,IAAI,OAAQuN,IACZvN,IAAI,WAAYkS,IAChBlS,IAAI,OAAQmV,GAErBzW,KAAKgR,KACPyB,IAAcjB,IAAM,iCAAkC,CAAEc,OAAQA,IAChER,aAGT,YAAA6jB,mBAAA,SAAmB9mB,EAAc2E,GAC7B,IAAIlB,EAAqB,IAAI,EAAAC,WAK7B,OAFAD,GADAA,EAASA,EAAOhR,IAAI,OAAQuN,IACZvN,IAAI,WAAYkS,GAEzBxT,KAAKgR,KACPyB,IAAejB,IAAM,0BAA2B,CAAEc,OAAQA,IAC1DR,aAGT,YAAA8jB,2BAAA,SAA2B/mB,EAAc2E,GAAzC,WACQlB,EAAqB,IAAI,EAAAC,WAM7B,OAJAD,GADAA,EAASA,EAAOhR,IAAI,OAAQuN,IACZvN,IAAI,WAAYkS,GAEhCxT,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPyB,IAAyBjB,IAAM,2CAA4C,CAAEc,OAAQA,IACrFX,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAA0gB,wBAAA,SAAwBhL,EAAcjmB,EAAc0kB,EAAgByO,EAAwB3c,EAAmBtE,EAAmBC,GAC9H,IAAItC,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAGhBiB,EAAS,CACTkV,KAAMA,EACNjmB,KAAMA,GAiBV,OAdc,MAAV0kB,GAA+B,MAAblO,IAClBzF,EAAO2T,OAASA,EAChB3T,EAAOyF,UAAYA,GAGD,MAAlB2c,IACApiB,EAAOoiB,eAAiBA,GAGX,MAAbjhB,GAAgC,MAAXC,IACrBpB,EAAOmB,UAAYA,EACnBnB,EAAOoB,QAAUA,GAGd1T,KAAKgR,KACPO,KAAgFC,IAAM,6BAA8BC,KAAKC,UAAUY,GAAS,CAAElB,QAASA,IACvJU,aAGT,YAAA+jB,iCAAA,SAAiCrO,EAAcjmB,GAC3C,IAAI6P,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAGhBiB,EAAS,CACTkV,KAAMA,EACNjmB,KAAMA,GAGV,OAAOvB,KAAKgR,KACPO,KAAgBC,IAAM,6BAA8BC,KAAKC,UAAUY,GAAS,CAAElB,QAASA,IACvFU,aAGT,YAAAgkB,iBAAA,SAAiB1jB,EAAkBC,EAAoB0jB,EAAkBC,GACrE,IAAI1jB,EAAqB,IAAI,EAAAC,WAM7B,OAFAD,GADAA,GADAA,GADAA,EAASA,EAAOhR,IAAI,WAAY8Q,EAASI,aACzBlR,IAAI,aAAc+Q,EAAWG,aAC7BlR,IAAI,WAAYy0B,IAChBz0B,IAAI,cAAe00B,EAAYxjB,YAExCxS,KAAKgR,KACPyB,IAAoBjB,IAAM,kBAAmB,CAAEc,OAAQA,IACvDR,aAGT,YAAAmkB,0BAAA,SAA0B7jB,EAAkBC,EAAoB0jB,EAAkBC,GAC9E,IAAI1jB,EAAqB,IAAI,EAAAC,WAM7B,OAFAD,GADAA,GADAA,GADAA,EAASA,EAAOhR,IAAI,WAAY8Q,EAASI,aACzBlR,IAAI,aAAc+Q,EAAWG,aAC7BlR,IAAI,WAAYy0B,IAChBz0B,IAAI,cAAe00B,EAAYxjB,YAExCxS,KAAKgR,KACPyB,IAAoBjB,IAAM,qBAAsB,CAAEc,OAAQA,IAC1DR,aAGT,YAAAokB,gBAAA,SAAgBC,EAAmB/jB,EAAkBC,EAAoB+jB,GACrE,IAAI9jB,EAAqB,IAAI,EAAAC,WAM7B,OAFAD,GADAA,GADAA,GADAA,EAASA,EAAOhR,IAAI,YAAa60B,IACjB70B,IAAI,WAAY8Q,EAASI,aACzBlR,IAAI,aAAc+Q,EAAWG,aAC7BlR,IAAI,iBAAkB80B,EAAe5jB,YAE9CxS,KAAKgR,KACPyB,IAAkBjB,IAAM,0BAA2B,CAAEc,OAAQA,IAC7DR,aAGT,YAAAukB,iBAAA,SAAiBF,EAAmB/jB,EAAkBC,GAClD,IAAIC,EAAqB,IAAI,EAAAC,WAK7B,OAFAD,GADAA,GADAA,EAASA,EAAOhR,IAAI,YAAa60B,IACjB70B,IAAI,WAAY8Q,EAASI,aACzBlR,IAAI,aAAc+Q,EAAWG,YAEtCxS,KAAKgR,KACPyB,IAAkBjB,IAAM,0BAA2B,CAAEc,OAAQA,IAC7DR,aAGT,YAAAwkB,oBAAA,SAAoBH,GAApB,WACQ/kB,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAWC,IAAM,sBAAuBC,KAAKC,UAAU,CAAEykB,UAAWA,IAAc,CAAE/kB,QAASA,IAC7FO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAykB,wBAAA,SAAwBC,GAAxB,WACQplB,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAiBC,IAAM,0BAA2BC,KAAKC,UAAU,CAAE8kB,OAAQA,IAAW,CAAEplB,QAASA,IACjGO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAA2kB,mBAAA,SAAmBD,GAAnB,WACQplB,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAiBC,IAAM,qBAAsBC,KAAKC,UAAU,CAAE8kB,OAAQA,IAAW,CAAEplB,QAASA,IAC5FO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAA4kB,eAAA,WACI,IAAIpkB,EAAqB,IAAI,EAAAC,WAE7B,OAAOvS,KAAKgR,KACPyB,IAAgHjB,IAAM,wBAAyB,CAAEc,OAAQA,IACzJR,aAGT,YAAA6kB,qBAAA,SAAqBj1B,EAAak1B,GAC9B,IAAItkB,EAAqB,IAAI,EAAAC,WAI7B,OAFAD,GADAA,EAASA,EAAOhR,IAAI,MAAOI,IACXJ,IAAI,cAAes1B,GAE5B52B,KAAKgR,KACPyB,IAAgBjB,IAAM,wBAAyB,CAAEc,OAAQA,IACzDR,aAGT,YAAA+kB,yBAAA,WACI,IAAIvkB,EAAqB,IAAI,EAAAC,WAE7B,OAAOvS,KAAKgR,KACPyB,IAAkBjB,IAAM,iCAAkC,CAAEc,OAAQA,IACpER,aAGT,YAAAglB,qBAAA,SAAqBp1B,GACjB,IAAI4Q,EAAqB,IAAI,EAAAC,WAG7B,OAFAD,EAASA,EAAOhR,IAAI,MAAOI,GAEpB1B,KAAKgR,KACPyB,IAAuBjB,IAAM,uBAAwB,CAAEc,OAAQA,IAC/DR,aAGT,YAAAilB,WAAA,WACI,IAAIzkB,EAAqB,IAAI,EAAAC,WAE7B,OAAOvS,KAAKgR,KACPyB,IAAkBjB,IAAM,4BAA6B,CAAEc,OAAQA,IAC/DR,aAGT,YAAAklB,qBAAA,SAAqBC,EAAuB/K,GACxC,IAAI5Z,EAAqB,IAAI,EAAAC,WAI7B,OAFAD,GADAA,EAASA,EAAOhR,IAAI,OAAQ21B,IACZ31B,IAAI,WAAY4qB,GAEzBlsB,KAAKgR,KACPyB,IAAuBjB,IAAM,+BAAgC,CAAEc,OAAQA,IACvER,aAGT,YAAAolB,qBAAA,SAAqB1jB,GAArB,WACQpC,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAUC,IAAM,2CAA4CC,KAAKC,UAAU,CAAE8B,SAAUA,IAAa,CAAEpC,QAASA,IAC/GO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAqlB,qBAAA,SAAqBF,EAAuB/K,EAA2Brc,EAAuBunB,GAA9F,WACQhmB,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAGhBiB,EAAS,CACT2kB,cAAeA,EACf/K,kBAAmBA,EACnBrc,cAAeA,EACfunB,WAAYA,GAMhB,OAFAp3B,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAeC,IAAM,sCAAuCC,KAAKC,UAAUY,GAAS,CAAElB,QAASA,IAC/FO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAgN,iBAAA,SAAiBuY,GAAjB,WACQjmB,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAiBC,IAAM,sBAAuBC,KAAKC,UAAU,CAAE2lB,KAAMA,IAAS,CAAEjmB,QAASA,IACzFO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAwlB,wBAAA,SAAwB51B,EAAasT,GAArC,WACQ5D,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAwBC,IAAM,8BAA+BC,KAAKC,UAAU,CAAEhQ,IAAKA,EAAKsT,QAASA,IAAY,CAAE5D,QAASA,IACxHO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAylB,0BAAA,SAA0B71B,GAA1B,WACQ0P,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAsBC,IAAM,gCAAiCC,KAAKC,UAAU,CAAEhQ,IAAKA,IAAQ,CAAE0P,QAASA,IACtGO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAA0lB,iBAAA,SAAiB91B,GAAjB,WACQ0P,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAWC,IAAM,sBAAuBC,KAAKC,UAAU,CAAEhQ,IAAKA,IAAQ,CAAE0P,QAASA,IACjFO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAA2lB,wBAAA,SAAwB/1B,GAAxB,WACQ0P,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAWC,IAAM,8BAA+BC,KAAKC,UAAU,CAAEhQ,IAAKA,IAAQ,CAAE0P,QAASA,IACzFO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAA4lB,kBAAA,SAAkBh2B,GACd,IAAI0P,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAGpB,OAAOrR,KAAKgR,KAAKO,KAAaC,IAAM,uBAAwBC,KAAKC,UAAU,CAAEhQ,IAAKA,IAAQ,CAAE0P,QAASA,KAGzG,YAAAumB,cAAA,SAAcj2B,GACV,IAAI4Q,EAAqB,IAAI,EAAAC,WAG7B,OAFAD,EAASA,EAAOhR,IAAI,MAAOI,GAEpB1B,KAAKgR,KACPyB,IAAgBjB,IAAM,mBAAoB,CAAEc,OAAQA,IACpDR,aAMT,YAAA8lB,mBAAA,SAAmBX,EAAuB/K,EAA2Bzb,EAAiBonB,EAAsBC,GAA5G,WACQ1mB,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAehBiB,EAAS,CAAE2kB,cAAeA,EAAe/K,kBAAmBA,EAAmBzb,QAASA,GAW5F,OAToB,MAAhBonB,IACAvlB,EAAqB,aAAIulB,GAEhB,MAATC,IACAxlB,EAAc,MAAIwlB,GAGtB93B,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAWC,IAAM,oCAAqCC,KAAKC,UAAUY,GAAS,CAAElB,QAASA,IACzFO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAMT,YAAAimB,qBAAA,SAAqBC,EAAqC3H,EAA8BhgB,EAAgBwnB,EAAsBC,GAA9H,WACQ1mB,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,IAAK,IAAM4mB,KAAQ5H,EAAUnZ,WAAY,CACrC,IAAI8L,EAAOqN,EAAUnZ,WAAW+gB,GACd,SAAdjV,EAAKzhB,MACLyhB,EAAK7L,OAAO3W,SAAQ,SAAA03B,GAChBA,EAAI51B,MAAQ,IAAIyZ,KAAKmc,EAAI51B,OAAO61B,UAAU3lB,cAKtD,IAAIF,EAAS,CAAE+d,UAAWA,EAAWhgB,MAAOA,EAAOwnB,aAAcA,GAWjE,OATsB,MAAlBG,IACA1lB,EAAuB,eAAI0lB,GAElB,MAATF,IACAxlB,EAAc,MAAIwlB,GAGtB93B,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAWC,IAAM,oCAAqCC,KAAKC,UAAUY,GAAS,CAAElB,QAASA,IACzFO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAA5M,KAAA,SAAKxD,EAAa2Q,EAAoBD,EAAkB7O,EAAgDN,GACpG,IAAImO,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAGhBiB,EAAS,CACT5Q,IAAKA,EACLuB,KAAMA,GAeV,OAZkB,MAAdoP,IACAC,EAAOD,WAAaA,GAGR,MAAZD,IACAE,EAAOF,SAAWA,GAGlB7O,EAAOrB,OAAS,IAChBoQ,EAAO/O,OAASA,GAGbvD,KAAKgR,KACPO,KAAUC,IAAM,oBAAqBC,KAAKC,UAAUY,GAAS,CAAElB,QAASA,IACxEU,aAGT,YAAAqF,OAAA,SAAOzV,EAAaY,EAAeuN,EAAuBuoB,EAAwB70B,GAC9E,IAAI6N,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAGhBiB,EAAS,CACT5Q,IAAKA,EACLmO,cAAeA,EACfuoB,eAAgBA,GAWpB,OARI70B,EAAOrB,OAAS,IAChBoQ,EAAO/O,OAASA,GAGP,MAATjB,GAAiBA,EAAMJ,OAAS,IAChCoQ,EAAOhQ,MAAQA,GAGZtC,KAAKgR,KACPO,KAAyCC,IAAM,sBAAuBC,KAAKC,UAAUY,GAAS,CAAElB,QAASA,IACzGU,aAGT,YAAAumB,iBAAA,SAAiB32B,GACb,IAAI0P,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAGhBiB,EAAS,CACT5Q,IAAKA,GAGT,OAAO1B,KAAKgR,KACPO,KAAwBC,IAAM,kCAAmCC,KAAKC,UAAUY,GAAS,CAAElB,QAASA,IACpGU,aAGT,YAAAoc,SAAA,SAASxsB,GACL,IAAI4Q,EAAqB,IAAI,EAAAC,WAG7B,OAFAD,EAASA,EAAOhR,IAAI,MAAOI,GAEpB1B,KAAKgR,KACPyB,IAAcjB,IAAM,wBAAyB,CAAEc,OAAQA,IACvDR,aAGT,YAAAwmB,oBAAA,WACI,IAAIhmB,EAAqB,IAAI,EAAAC,WAE7B,OAAOvS,KAAKgR,KACPyB,IAAoDjB,IAAM,wBAAyB,CAAEc,OAAQA,IAC7FR,aAGT,YAAAymB,yBAAA,SAAyB72B,EAAa0Q,EAAkBC,EAAoB0jB,EAAkBC,GAC1F,IAAI1jB,EAAqB,IAAI,EAAAC,WAO7B,OAFAD,GADAA,GADAA,GADAA,GADAA,EAASA,EAAOhR,IAAI,MAAOI,IACXJ,IAAI,WAAY8Q,EAASI,aACzBlR,IAAI,aAAc+Q,EAAWG,aAC7BlR,IAAI,WAAYy0B,IAChBz0B,IAAI,cAAe00B,EAAYxjB,YAExCxS,KAAKgR,KACPyB,IAAoBjB,IAAM,gCAAiC,CAAEc,OAAQA,IACrER,aAGT,YAAA0mB,iBAAA,SAAiB92B,GACb,IAAI4Q,EAAqB,IAAI,EAAAC,WAG7B,OAFAD,EAASA,EAAOhR,IAAI,MAAOI,GAEpB1B,KAAKgR,KACPyB,IAAcjB,IAAM,sBAAuB,CAAEc,OAAQA,IACrDR,aAGZ,YAAA2mB,iBAAA,sBAIC,OAFAz4B,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACVyB,IAAoBjB,IAAM,8BAC1BG,KAAK,EAAAC,UAAS,WACd,EAAKX,aAAaY,eAElBC,aAGF,YAAA4mB,aAAA,SAAah3B,EAAai3B,GACxB,IAAIvnB,EAAU,IAAI,EAAAC,YAAY,CAC5B,eAAgB,qBAGdiB,EAAS,CACX5Q,IAAKA,EACLi3B,SAAUA,GAGZ,OAAO34B,KAAKgR,KACTO,KAAwBC,IAAM,8BAA+BC,KAAKC,UAAUY,GAAS,CAAElB,QAASA,IAChGU,a,iCAvxBMrK,GAAe,sD,oCAAfA,EAAe,QAAfA,EAAe,O,EAD5B,GACa,EAAAA,mB,+DAAAA,EAAe,E,KAD3B,EAAAT,c,8LCpBD,WACA,QAEA,Q,GAEA,M,sBAQA,aAII,WAAoBgK,EAA0BC,GAA1B,KAAAD,OAA0B,KAAAC,e,OAE9C,YAAAgC,QAAA,SAAQZ,EAAoBD,GAA5B,WACQE,EAAqB,IAAI,EAAAC,WAM7B,OAJAD,GADAA,EAASA,EAAOhR,IAAI,aAAc+Q,EAAWG,aAC7BlR,IAAI,WAAY8Q,EAASI,YAEzCxS,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPyB,IAAuCjB,IAAM,kCAAmC,CAAEc,OAAQA,IAC1FX,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAW,IAAA,SAAI/Q,GAAJ,WACQ4Q,EAAqB,IAAI,EAAAC,WAK7B,OAJAD,EAASA,EAAOhR,IAAI,MAAOI,GAE3B1B,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPyB,IAA2BjB,IAAM,8BAA+B,CAAEc,OAAQA,IAC1EX,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAA8mB,iBAAA,SAAiB1M,EAA2B2M,GAA5C,WACQvmB,EAAqB,IAAI,EAAAC,WAM7B,OAJAD,GADAA,EAASA,EAAOhR,IAAI,aAAcu3B,IAClBv3B,IAAI,oBAAqB4qB,GAEzClsB,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPyB,IAA2BjB,IAAM,0CAA2C,CAAEc,OAAQA,IACtFX,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAgnB,eAAA,SAAeC,EAA0BnJ,GAAzC,WACQtd,EAAqB,IAAI,EAAAC,WAM7B,OAJAD,GADAA,EAASA,EAAOhR,IAAI,mBAAoBy3B,IACxBz3B,IAAI,oBAAqBsuB,GAEzC5vB,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPyB,IAAWjB,IAAM,4CAA6C,CAAEc,OAAQA,IACxEX,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAsB,MAAA,SAAMojB,GAAN,WACQplB,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAA4BC,IAAM,gCAAiCC,KAAKC,UAAU,CAAE8kB,OAAQA,IAAW,CAAEplB,QAASA,IAClHO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAmK,KAAA,SAAKva,GAAL,WACQ0P,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAGhBiB,EAAS,GAQb,OANW,MAAP5Q,IACA4Q,EAAS,CAAE5Q,IAAKA,IAGpB1B,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAA6DC,IAAM,+BAAgCC,KAAKC,UAAUY,GAAS,CAAElB,QAASA,IACtIO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAxR,OAAA,SAAOoB,GAAP,WACQ0P,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAUC,IAAM,iCAAkCC,KAAKC,UAAU,CAAEhQ,IAAKA,IAAQ,CAAE0P,QAASA,IAC3FO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAknB,OAAA,SAAOt3B,GAAP,WACQ0P,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAUC,IAAM,iCAAkCC,KAAKC,UAAU,CAAEhQ,IAAKA,IAAQ,CAAE0P,QAASA,IAC3FO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAmnB,IAAA,SAAIv3B,GAAJ,WACQ0P,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAUC,IAAM,8BAA+BC,KAAKC,UAAU,CAAEhQ,IAAKA,IAAQ,CAAE0P,QAASA,IACxFO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAAonB,QAAA,SAAQx3B,EAAa2Q,EAAoBD,GACrC,IAAIE,EAAqB,IAAI,EAAAC,WAO7B,OAJAD,GADAA,GADAA,EAASA,EAAOhR,IAAI,MAAOI,IACXJ,IAAI,aAAc+Q,EAAWG,aAC7BlR,IAAI,WAAY8Q,EAASI,YAIlCxS,KAAKgR,KACPyB,IAAoCjB,IAAM,mCAAoC,CAAEc,OAAQA,IAIxFR,aAGT,YAAAqnB,6BAAA,WACI,IAAI7mB,EAAqB,IAAI,EAAAC,WAE7B,OAAOvS,KAAKgR,KACPyB,IAAWjB,IAAM,0DAA2D,CAAEc,OAAQA,IACtFR,aAGT,YAAAsnB,6BAAA,WACI,IAAI9mB,EAAqB,IAAI,EAAAC,WAE7B,OAAOvS,KAAKgR,KACPyB,IAAWjB,IAAM,0DAA2D,CAAEc,OAAQA,IACtFR,a,iCA9KAhK,GAA4B,sD,oCAA5BA,EAA4B,QAA5BA,EAA4B,O,EADzC,GACa,EAAAA,gC,+DAAAA,EAA4B,E,KADxC,EAAAd,c,6KCbD,WACA,QACA,Q,GAGA,M,sBAIA,aAII,WAAoBgK,EAA0BC,GAA1B,KAAAD,OAA0B,KAAAC,e,OAE9C,YAAAooB,WAAA,SAAWC,EAAiBlnB,EAAkBmnB,GAC1C,IAAIjnB,EAAqB,IAAI,EAAAC,WAO7B,OAFAD,GADAA,GADAA,GADAA,EAASA,EAAOhR,IAAI,UAAW,eACfA,IAAI,UAAWg4B,EAAQ9mB,aACvBlR,IAAI,WAAY8Q,EAASI,aACzBlR,IAAI,cAAei4B,GAE5Bv5B,KAAKgR,KACPyB,IAAoBjB,IAAM,aAAc,CAAEc,OAAQA,IAClDR,aAGT,YAAA0nB,aAAA,SAAaC,GAAb,WACQroB,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAUC,IAAM,kBAAmBC,KAAKC,UAAU,CAAEjQ,GAAIg4B,IAAW,CAAEroB,QAASA,IAC9EO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,aAGT,YAAA4nB,cAAA,SAAcD,EAAgBvnB,GAA9B,WACQd,EAAU,IAAI,EAAAC,YAAY,CAC1B,eAAgB,qBAKpB,OAFArR,KAAKiR,aAAaK,QAEXtR,KAAKgR,KACPO,KAAUC,IAAM,uBAAwBC,KAAKC,UAAU,CAAEjQ,GAAIg4B,EAAQvnB,OAAQA,IAAW,CAAEd,QAASA,IACnGO,KAAK,EAAAC,UAAS,WACX,EAAKX,aAAaY,eAErBC,a,iCA7CApK,GAAW,sD,oCAAXA,EAAW,QAAXA,EAAW,O,EADxB,GACa,EAAAA,e,+DAAAA,EAAW,E,KADvB,EAAAV,c,oRC5BD,aA8BA,SAAgB8e,EAAcpiB,EAAiCi2B,GAC3D,OAAOj2B,EAAM+f,EAAIkW,EAAKlW,GAAK/f,EAAM+f,EAAKkW,EAAKlW,EAAIkW,EAAKhW,QAAWjgB,EAAM8f,EAAImW,EAAKnW,GAAK9f,EAAM8f,EAAKmW,EAAKnW,EAAImW,EAAKjW,MA7BhH,8BAAmC8D,EAAcoS,GAC7C,IAUID,EAVMnX,EAAGC,OAAO,QAEIM,OAAO,KAAKuD,QAAQ,eAAe,GAEhCvD,OAAO,QAC7BC,KAAK,KAAM,KACXA,KAAK,KAAM,KACXA,KAAK,YAAa4W,GAClBpS,KAAKA,GAEQnG,OAAOkC,UAIzB,OAFAf,EAAGC,OAAO,gBAAgBniB,SAEnBq5B,EAAKjW,MAAQ,GAGxB,oBAAyBF,EAAWC,GAChC,IAAIX,EAAWN,EAAGC,OAAO,QAAQpB,OAC7Bjb,EAAK0c,EAAI+W,iBAKb,OAHAzzB,EAAGod,EAAIA,EACPpd,EAAGqd,EAAIA,EAEArd,EAAG0zB,gBAAgBhX,EAAIiX,eAAeC,YAGjD,kBAIA,iCAAsCC,EAAgEC,GAClG,OAAOpU,EAAc,CAAEtC,EAAGyW,EAAMzW,EAAGC,EAAGwW,EAAMxW,GAAKyW,IAAUpU,EAAc,CAAEtC,EAAGyW,EAAMzW,EAAIyW,EAAMvW,MAAOD,EAAGwW,EAAMxW,EAAIwW,EAAMtW,QAAUuW,IAC9HpU,EAAc,CAAEtC,EAAGyW,EAAMzW,EAAIyW,EAAMvW,MAAOD,EAAGwW,EAAMxW,GAAKyW,IAAUpU,EAAc,CAAEtC,EAAGyW,EAAMzW,EAAGC,EAAGwW,EAAMxW,EAAIwW,EAAMtW,QAAUuW,IAGnI,+BAAoCD,EAAgEC,GAChG,OAAOpU,EAAc,CAAEtC,EAAGyW,EAAMzW,EAAGC,EAAGwW,EAAMxW,GAAKyW,IAAUpU,EAAc,CAAEtC,EAAGyW,EAAMzW,EAAIyW,EAAMvW,MAAOD,EAAGwW,EAAMxW,EAAIwW,EAAMtW,QAAUuW,IAC9HpU,EAAc,CAAEtC,EAAGyW,EAAMzW,EAAIyW,EAAMvW,MAAOD,EAAGwW,EAAMxW,GAAKyW,IAAUpU,EAAc,CAAEtC,EAAGyW,EAAMzW,EAAGC,EAAGwW,EAAMxW,EAAIwW,EAAMtW,QAAUuW,IAGnI,gCAAqCC,GACjC,MAAO,CAAE3W,EAAGmD,SAASwT,EAAUnX,KAAK,MAAOS,EAAGkD,SAASwT,EAAUnX,KAAK,MAAOU,MAAOiD,SAASwT,EAAUnX,KAAK,UAAWW,OAAQgD,SAASwT,EAAUnX,KAAK,c,mHC7C3J,W,GAGA,O,sDCwBc,gCAA+F,YAAQ,kB,uBAAvB,mCAAe,uC,yBATvG,4BACE,4BACE,6BACE,+BAAgB,YAAkC,iBACpD,iBACA,6BACE,gCACE,yEACA,wBACA,kCACF,iBACF,iBACF,iBACF,kB,2CAVsB,2DAGR,wEAA4E,mBAA5E,CAA4E,2CAGzD,qF,8FAQjC,4BACE,4BACE,6BACE,+BACE,6BACF,iBACF,iBACA,6BACE,6BACE,6BAAK,6IAGH,sBACF,iBACF,iBAEF,iBACF,iBACF,iB,gCARU,0F,yBAmBF,gCAAmF,YAAQ,kB,uBAAvB,mCAAe,uC,yBAanF,gCAAmF,YAAQ,kB,uBAAvB,mCAAe,uC,mDARzF,4BACE,6BACE,+BAAgB,6BAA6D,iBAC/E,iBACA,6BACE,gCACE,+HACA,wBACA,kCACF,iBACF,iBACF,iB,iCALM,4EAAgD,eAEvB,8E,mDAtBjC,4BACE,4BACE,6BACE,+BAAgB,6BAA6C,iBAC/D,iBACA,6BACE,gCACE,mIACA,wBACA,kCACF,iBACF,iBACF,iBAEA,+BAYF,iB,gCAnBQ,iFAAqD,eAE5B,6EAKzB,wI,qBA+CE,6B,qBACA,6BDhHhB,iBAWI,aAHU,KAAAoX,oBAAsB,IAAI,EAAA76B,aAC1B,KAAA86B,YAAc,IAAI,EAAA96B,a,OAK5B,YAAA+6B,OAAA,WACIt6B,KAAKo6B,oBAAoBG,KAAMv6B,KAAKgyB,eACpChyB,KAAKq6B,YAAYE,KAAM,SAG3B,YAAArb,SAAA,WACIlf,KAAKq6B,YAAYE,KAAM,W,iCAflBtwB,I,iCAAAA,EAAuB,0vC,GAAA,MCVpC,0BACE,4BACE,yBACE,4BACF,iBACA,0BACE,4BACF,iBACF,iBAQE,+BAEE,8BAeA,oBAEA,+BAoBA,gCAsDA,6BACE,6BACE,8BACE,iCAAsB,wCAAS,EAAAiV,cAC3B,8BACJ,iBACA,iCAAsB,wCAAS,EAAAob,YAC3B,qCACA,qCACJ,iBACF,iBACF,iBACF,iBACF,iBAEJ,kB,4BA1GoD,uEAiBxC,kEAoBA,+DA4D+E,kDAChE,gEACA,iE,mRDhH3B,GAKa,EAAArwB,2B,+DAAAA,EAAuB,E,KALnC,EAAAkP,U,MAAW,CACRC,SAAU,kBACVC,YAAa,mCACbC,UAAW,Q,uBAIF0Y,cAAe,CAAF,C,KAArB,EAAAxY,QACS4gB,oBAAmB,E,KAA5B,EAAAnzB,SACSozB,YAAW,E,KAApB,EAAApzB,Y,iHEdL,W,GAEA,OAEA,O,+DCmBkB,gCAAgF,YAAQ,kB,uBAAvB,wBAAe,uC,sBAWnF,gCAA0D,6BAA6C,kB,sBACvG,gCAA2H,6BAA8C,kB,yBAvBlL,6BACE,4BACE,6BACE,6BAA2B,4BAAQ,YAAmB,iBAAQ,iBAC9D,6BACE,6BACE,4BAAO,6BAAyD,iBAClE,iBACA,8BACE,iCAA4B,yEAC1B,4BACA,mCACF,iBACF,iBACA,8BACE,6BAAO,8BAAgE,iBACzE,iBACA,8BACE,iCAA0D,gFAC3D,yBACA,iCAAoB,8BAAwC,iBAC5D,iCAAqB,8BAAyC,iBAC9D,mCACA,mCACF,iBACC,iBACF,iBACF,iBACF,iBACF,kB,qDA1ByC,qDAMH,gDAA6B,sBAE9B,6EAOnB,uDAA6B,0BAA7B,CAA6B,0CAI7B,+DACA,6HD7BxB,iBAYI,WAAqB0U,GAAA,KAAAA,UAHX,KAAAye,oBAAsB,IAAI,EAAA76B,aAC1B,KAAA86B,YAAc,IAAI,EAAA96B,a,OAI5B,YAAAC,SAAA,sBACIQ,KAAK2b,QAAQ0W,iBAAkBryB,KAAKgyB,cAAczwB,KAAKsN,KAAM7O,KAAKgyB,cAAcja,WAAW,GAAOuE,MAAM,SAAAke,GACpG,EAAKxI,cAAcwI,UAAYA,MAIvC,YAAAF,OAAA,WAEIt6B,KAAKo6B,oBAAoBG,KAAMv6B,KAAKgyB,eACpChyB,KAAKq6B,YAAYE,KAAM,SAG3B,YAAAE,OAAA,WACIz6B,KAAKq6B,YAAYE,KAAM,SAG3B,YAAArb,SAAA,WACIlf,KAAKq6B,YAAYE,KAAM,W,iCAzBlBrwB,GAAqB,mC,iCAArBA,EAAqB,uzC,GAAA,MCZlC,6BACE,4BACE,yBACE,4BACF,iBACA,0BACE,4BACF,iBACF,iBACA,4BACE,kCAEE,+BA+BA,6BACE,6BACE,8BACE,iCAAsB,wCAAS,EAAAuwB,YAC3B,8BACJ,iBACA,iCAAmB,wCAAS,EAAAvb,cACxB,8BACJ,iBACA,iCAAsB,wCAAS,EAAAob,YAC3B,8BACJ,iBACF,iBACF,iBACF,iBAEF,iBACF,iBACF,kB,4BAjDmD,iEAwCwC,oD,yQD9C3F,GAMa,EAAApwB,yB,+DAAAA,EAAqB,E,KANjC,EAAAiP,U,MAAW,CAERC,SAAU,gBACVC,YAAa,iCACbC,UAAW,Q,yCAIF0Y,cAAe,CAAF,C,KAArB,EAAAxY,QACS4gB,oBAAmB,E,KAA5B,EAAAnzB,SACSozB,YAAW,E,KAApB,EAAApzB,Y,wHEhBL,WAEA,GADA,OACA,Q,6DCQI,4BACE,6BACE,6BACF,iBACF,kB,yBACA,4BACE,6BAAgC,YAAW,iBAC7C,kB,6BADkC,+C,mDAyBhC,0BACE,0CAAkF,kGAAgC,iBACpH,iB,wDADoB,yCAAmB,gCAAnB,CAAmB,Y,qBAW/B,6B,qBACA,6BDlDd,iBAYI,aAHU,KAAAozB,YAAc,IAAI,EAAA96B,aAC5B,KAAAub,QAAkB,K,OAIlB,YAAAtb,SAAA,aAGA,YAAAk7B,YAAA,WACI,IAAM,IAAI91B,EAAI,EAAGA,EAAI5E,KAAKgyB,cAAc2I,iBAAiBz4B,OAAQ0C,IAE7D,IAAM5E,KAAKgyB,cAAc2I,iBAAiB/1B,GAAGg2B,SACzC,OAAO,EAIf,OAAO,GAGX,YAAAC,YAAA,SAAaje,GACL5c,KAAK8a,QAAU,EAAAwE,aAAaC,oBAAoB3C,IAGxD,YAAA0d,OAAA,WAC0C,MAAjCt6B,KAAKgyB,cAAc8I,aACpB96B,KAAKgyB,cAAc8I,WAAa,IAGpC,IAAM,IAAIl2B,EAAI,EAAGA,EAAI5E,KAAKgyB,cAAc2I,iBAAiBz4B,OAAQ0C,IAAM,CACnE,IAAMm2B,EAAU/6B,KAAKgyB,cAAc2I,iBAAiB/1B,GAEpD,GAAKm2B,EAAQH,UAAmC,oBAAvBG,EAAQpqB,OAAO0G,KAA6B,CACjE,IACM2jB,EAAY,CAAEnsB,KAAM,aAAcvM,MADN,MAAlBy4B,EAAQ9U,OAAiB8U,EAAQ9U,OAAS,IAAM8U,EAAQxf,MAAQwf,EAAQxf,OAGxFvb,KAAKgyB,cAAc8I,WAAW93B,KAAMg4B,IAK5Ch7B,KAAKq6B,YAAYE,KAAM,SAG3B,YAAArb,SAAA,WACIlf,KAAKq6B,YAAYE,KAAM,W,iCA/ClBpwB,I,iCAAAA,EAA4B,q6BCVzC,0BACE,4BACE,yBACE,4BACF,iBACA,0BACE,4BACF,iBACF,iBACA,0BACE,8BAKA,8BAGA,kCACE,6BACE,6BACE,6BACE,6BACF,iBACF,iBACA,6BACE,6BACE,8BACF,iBACF,iBACA,6BACE,6BACE,8BACF,iBACF,iBACA,6BACE,6BACE,8BACF,iBACF,iBACF,iBACA,gCAGA,6BACE,8BACE,iCAAsB,wCAAS,EAAA+U,cAC7B,4BACE,8BACF,iBACF,iBACA,iCAAsB,wCAAS,EAAAob,YAC7B,4BACE,qCACA,qCACF,iBACF,iBACF,iBACF,iBACF,iBACF,iBACF,kB,MAnDU,oDAKA,oDA0BqB,yEAU0D,wDAEhE,uEACA,yE,oKDlDzB,GAMa,EAAAnwB,gC,+DAAAA,EAA4B,E,KANxC,EAAAgP,U,MAAW,CAERC,SAAU,wBACVC,YAAa,yCACbC,UAAW,Q,uBAIF0Y,cAAe,CAAF,C,KAArB,EAAAxY,QACS6gB,YAAW,E,KAApB,EAAApzB,Y,oHEbL,W,GACA,O,4DCSI,4BACE,6BACE,6BACF,iBACF,kB,yBACA,4BACE,6BAAgC,YAAW,iBAC7C,kB,6BADkC,+C,yBAyBhC,0BACE,iCACF,kB,qDADgB,yCAAmB,gCAAnB,CAAmB,YDvCzC,iBAYI,aAHU,KAAAozB,YAAc,IAAI,EAAA96B,aAC5B,KAAAub,QAAkB,K,OAIlB,YAAAtb,SAAA,aAGA,YAAAk7B,YAAA,WACI,IAAM,IAAI91B,EAAI,EAAGA,EAAI5E,KAAKgyB,cAAciJ,aAAa/4B,OAAQ0C,IAEzD,IAAM5E,KAAKgyB,cAAciJ,aAAar2B,GAAGg2B,SACrC,OAAO,EAIf,OAAO,GAGX,YAAAN,OAAA,WAC0C,MAAjCt6B,KAAKgyB,cAAc8I,aACpB96B,KAAKgyB,cAAc8I,WAAa,IAGpC,IAAM,IAAIl2B,EAAI,EAAGA,EAAI5E,KAAKgyB,cAAciJ,aAAa/4B,OAAQ0C,IAAM,CAC/D,IAAMm2B,EAAU/6B,KAAKgyB,cAAciJ,aAAar2B,GAEhD,GAAKm2B,EAAQH,UAAmC,UAAvBG,EAAQpqB,OAAO0G,KAAmB,CACvD,IAAM2jB,EAAY,CAAEnsB,KAAMksB,EAAQ5J,cAAe7uB,MAAOy4B,EAAQxf,OAEhEvb,KAAKgyB,cAAc8I,WAAW93B,KAAMg4B,IAI5Ch7B,KAAKq6B,YAAYE,KAAM,SAG3B,YAAArb,SAAA,WACIlf,KAAKq6B,YAAYE,KAAM,W,iCAzClBlwB,I,iCAAAA,EAAwB,o0BCTrC,0BACE,4BACE,yBACE,4BACF,iBACA,0BACE,4BACF,iBACF,iBACA,4BACE,8BAKA,8BAGA,kCACE,6BACE,6BACE,6BACE,6BACF,iBACF,iBACA,8BACE,6BACE,8BACF,iBACF,iBACA,6BACE,6BACE,8BACF,iBACF,iBACA,8BACE,6BACE,8BACF,iBACF,iBACF,iBACA,gCAGA,6BACE,8BACE,iCAAsB,wCAAS,EAAA6U,cAC7B,4BACE,8BACF,iBACF,iBACA,iCAAsB,wCAAS,EAAAob,YAC7B,4BACE,8BACF,iBACF,iBACF,iBACF,iBACF,iBACF,iBACF,kB,MAlDU,oDAKA,oDA0BqB,qEAU0D,0D,gKDhDzF,GAMa,EAAAjwB,4B,+DAAAA,EAAwB,E,KANpC,EAAA8O,U,MAAW,CAERC,SAAU,oBACVC,YAAa,qCACbC,UAAW,Q,uBAIF0Y,cAAe,CAAF,C,KAArB,EAAAxY,QACS6gB,YAAW,E,KAApB,EAAApzB,Y,wHEZL,WAIA,GAFA,MAEA,OAGA,S,GACA,MAEA,O,6JCAY,gCAA2D,YAA4B,kB,uBAA5C,0BAAgB,4D,uGAqB5D,2BACC,gCAAoD,6BAA4E,iBAClI,kB,6BAFiC,oH,sBAGjC,gCAAoG,6BAA4E,kB,8CDrB1L,aAuCI,WAAoB+Y,EAAsCG,EAC9C+a,EAAoDhb,EAA8C5L,GAD9G,WAAoB,KAAA0L,eAAsC,KAAAG,kBAC9C,KAAA+a,uBAAoD,KAAAhb,kBAA8C,KAAA5L,cAzB9G,KAAAiM,eAAkC,GAElC,KAAA4a,YAAsB,GAEtB,KAAAC,OAAiB,GAIjB,KAAAC,QAAkB,KAElB,KAAArmB,QAAgB,KAMhB,KAAAqb,UAA+B,KAE/B,KAAAruB,SAAmB,EAEnB,KAAAs5B,SAAmB,EAEnB,KAAApmB,2BAAuC,CAAC,MAAO,WAAY,OAAQ,iBAAkB,aAAc,UAI/FlV,KAAKu7B,WAAa,EAAAC,WAAWze,QAAO,SAAC0e,GACjC,EAAKtb,gBAAgB0V,iCAAiC,EAAKsF,YAAa,EAAKvlB,cAAc/G,MAAMyN,MAAK,SAAAof,GAClGD,EAASlhB,KAAKmhB,S,OAK1B,YAAAl8B,SAAA,sBACIQ,KAAKmgB,gBAAgB+T,kBAAkB,GAAI,MAAM5X,MAAK,SAAAC,GAElD,IADA,IAAIC,EAAa,GACR5X,EAAI,EAAGA,EAAI2X,EAAMra,SAAU0C,EAAG,CACnC,IAAMrD,EAAOgb,EAAM3X,GACbsR,EAAU3U,EAAK4U,iBACf3C,EAAiC,MAAtBjS,EAAKkb,eAA+C,IAAtBlb,EAAKkb,cAAsBlb,EAAKkb,cAAgBlb,EAAKsN,KAEhG,EAAKyF,YAAYqnB,kBAAkBzlB,EAAS1C,IAC5CgJ,EAAWxZ,KAAKuZ,EAAM3X,IAG9B,EAAK2b,eAAiB/D,EAEtB,EAAK+D,eAAetd,MAAK,SAACC,EAAGC,GACzB,OAAID,EAAEqY,MAAM+P,eAAeC,cAAgBpoB,EAAEoY,MAAM+P,eAAeC,eAAuB,EAChFroB,EAAEqY,MAAM+P,eAAeC,cAAgBpoB,EAAEoY,MAAM+P,eAAeC,cAAsB,EACjF,KAGhB,IAAIP,EAAM,EAAKC,yBAAyB,QACpCD,GACA,EAAKzK,eAAexd,OAAOioB,EAAK,MAIrCrO,OAAM,SAACC,GACN,EAAKC,MAAMD,OAIZ,YAAAgf,iBAAP,WACwB,MAAhB57B,KAAKq7B,QACLr7B,KAAKgV,QAAU,IAAI+G,KAAKA,KAAK8f,MAAM77B,KAAKq7B,UAExCr7B,KAAKgV,QAAU,MAIhB,YAAA8mB,cAAP,SAAqBC,GACK,MAAlB/7B,KAAKqwB,YAKkB,MAAvBrwB,KAAKg8B,gBAA2Bh8B,KAAKg8B,eAAeC,gBAK5B,MAAxBj8B,KAAK+wB,iBAA4B/wB,KAAK+wB,gBAAgBkL,cAK1Dj8B,KAAKgC,SAAU,EAdXhC,KAAKgC,SAAU,GAiBf,YAAAipB,yBAAR,SAAiCpc,GAC7B,IAAK,IAAIjK,EAAI,EAAGA,EAAI5E,KAAKugB,eAAere,OAAQ0C,IAAK,CAEjD,GADU5E,KAAKugB,eAAe3b,GACtBiK,OAASA,EACb,OAAOjK,EAIf,OAAO,MAGX,YAAAs3B,uBAAA,SAAuBvtB,GACnB3O,KAAKs7B,QAAU3sB,GAGnB,YAAAwtB,kBAAA,SAAkBxtB,GAAlB,WACI3O,KAAKmgB,gBAAgB6W,qBAAqBroB,EAAE6d,KAAK3d,KAAM7O,KAAK4V,cAAc/G,MAAMyN,MAAK,SAAA+T,GACjF,EAAKA,UAAYA,KAClB1T,OAAM,SAACC,GACN,EAAKC,MAAMD,OAInB,YAAAwf,OAAA,WACIp8B,KAAKgC,SAAU,EACfhC,KAAKqwB,UAAY,KACjBrwB,KAAKm7B,YAAc,KACnBn7B,KAAK4V,cAAgB,KACrB5V,KAAKo7B,OAAS,MAGX,YAAAve,MAAP,SAAaD,GACT5c,KAAK6b,WAAa,EAAAyD,aAAa6Q,kBAAkBvT,EAAK5c,KAAKggB,e,iCArItDzU,GAA4B,yM,iCAA5BA,EAA4B,8D,GAAA,M,09CClBzC,4BACE,4BACE,4BACE,2BAAiC,4BAAsE,iBACvG,4BAEE,4BACE,4BACA,+BAAgF,sEAC9E,wBACA,kCACF,iBACF,iBAEA,6BACE,6BACA,qCAAY,8DAAmB,4BAA4C,EAAAqwB,sBAC6C,iBAC1H,iBAEA,8BACE,8BACA,gCAA0D,oEAAyB,wCAAsH,EAAAO,kBAAA,KAA/I,CAAyB,uCACL,EAAAD,uBAAA,M,wBAD9E,iBAEF,iBAEA,8BACE,wBAIC,8BAGD,mCACF,iBAEF,iBAEF,iBACF,iBACF,kB,MAjC0F,uDAEtD,wDAMd,+CAAmB,sBAAnB,CAAmB,2BAAnB,CAAmB,mBAAnB,CAAmB,sBAAnB,CAAmB,cAAnB,CAAmB,qBAMZ,yEAAsC,wBAAtC,CAAsC,4BAAtC,CAAsC,oBAAtC,CAAsC,yBAAtC,CAAsC,0BAAtC,CAAsC,8DASpD,2DAGI,gE,yuBDrBnB,GAKa,EAAA3wB,gC,+DAAAA,EAA4B,E,KALxC,EAAA4N,U,MAAU,CACPC,SAAU,wBACVC,YAAa,yCACbC,UAAW,CAAC,oC,uJAwBkByX,gBAAe,E,KAA5C,EAAArX,U,MAAU,qBAEkBsiB,eAAc,E,KAA1C,EAAAtiB,U,MAAU,uB,oHE1Cf,WAGA,GAFA,MAEA,MAGA,SAKA,GAHA,OACA,MAEA,QAEA,Q,0ICAgB,6BACE,6BACF,kB,mDAsBR,8DAGI,gGAOJ,iB,gCANI,8CAAoC,iCAApC,CAAoC,mCAApC,CAAoC,oBAApC,CAAoC,yBAApC,CAAoC,8C,mDAUxC,0BACE,mDAC2B,gGAG3B,iBACF,iB,gCAJI,iDAAwB,oBAAxB,CAAwB,8B,sBAqBpB,2BAAwC,kCAAmB,kB,mDALnE,6BACI,6BAA0B,4BAAO,6BAAyE,iBAAQ,iBAClH,6BACE,kCAAiG,iGAA0C,iBAC3I,6BACE,6BACF,iBACF,iBACJ,iB,gCALuG,+CAE3F,8C,2HD1DpB,aAkFI,WAAoBsG,EAAqCnE,EAC7CsE,EAA0CD,EAClD5L,GAFgB,KAAA0L,eAAqC,KAAAnE,aAC7C,KAAAsE,kBAA0C,KAAAD,kBApEtD,KAAAle,SAAmB,EAInB,KAAA0S,SAAmB,EAOnB,KAAA2nB,gBAA0B,EAI1B,KAAAC,eAA2B,KAW3B,KAAAC,oBAA8B,EAoB9B,KAAAC,iBAA2B,EAO3B,KAAAnB,QAAkB,KAKlB,KAAArmB,QAAgB,KAEhB,KAAAynB,qBAA+B,EAU3Bz8B,KAAK08B,QAAUpoB,EAAYooB,UAC3B18B,KAAK28B,aAAe38B,KAAK08B,SAAWpoB,EAAYqoB,eAChD38B,KAAK48B,cAAgB58B,KAAK08B,SAAW18B,KAAK28B,cAAgBroB,EAAYuoB,gBAEtE78B,KAAKgV,QAAU,IAAI+G,KAEnB,IAAM+gB,EAAM98B,KAAKgV,QAAQ+nB,aACzB/8B,KAAKq7B,QAAUr7B,KAAKgV,QAAQgoB,iBAAmB,KAAOh9B,KAAKgV,QAAQioB,cAAgB,GAAK,KAAOH,EAAM,GAAK,IAAM,IAAMA,E,OAG1H,YAAAt9B,SAAA,aAIA,YAAA09B,qBAAA,SAAqBC,EAA2B1pB,GAC5C,IAAK,IAAI7O,EAAY,EAAGA,EAAIu4B,EAASj7B,SAAU0C,EAC3C,GAAIu4B,EAASv4B,GAAG6O,YAAcA,EAC1B,OAAO0pB,EAASv4B,GAIxB,OAAO,MAGX,YAAAw4B,gBAAA,SAAgB37B,GACZzB,KAAK63B,aAAep2B,GAGxB,YAAAm6B,iBAAA,WACI57B,KAAKgV,QAAU,IAAI+G,KAAKA,KAAK8f,MAAM77B,KAAKq7B,WAG5C,YAAAgC,qBAAA,SAAqBC,GACjBt9B,KAAKu9B,kBAAoBD,GAKtB,YAAAE,eAAP,SAAsBhqB,EAAkB6nB,EAAiBoC,GAAzD,WACIz9B,KAAKq8B,gBAAiB,EACtBr8B,KAAKq7B,QAAUA,EACfr7B,KAAKgV,QAAU,IAAI+G,KAAKA,KAAK8f,MAAM77B,KAAKq7B,UACxCr7B,KAAKy9B,mBAAqBA,EAE1Bz9B,KAAK09B,mBAAmBlqB,GACxBxT,KAAK29B,eAEL39B,KAAKmgB,gBAAgB+W,qBAAqB1jB,GAAU8I,MAAK,SAAAshB,GACrD,EAAKC,gBAAkB,IAAI,EAAAC,kBAAkB,EAAKloB,cAAegoB,EAAQvN,UAAUnZ,YACnF,EAAK6mB,iBAAmB,IAAI,EAAAD,kBAAkB,EAAKloB,cAAenE,KAAKoqB,MAAMpqB,KAAKC,UAAU,EAAKmsB,kBAAkB3mB,YAEnH,EAAKrB,YAAc+nB,EAAQ/nB,gBAK5B,YAAAmoB,yBAAP,SAAgCC,EAA0B9H,EAAmBkF,EAAiBoC,GAA9F,WACQjqB,EAAWyqB,EAAYC,OAAO7N,UAAUnZ,WAAW3V,KACvDvB,KAAKq8B,eAAiB4B,EAAYC,OAAO7tB,MACzCrQ,KAAKq7B,QAAUA,EACfr7B,KAAKgV,QAAU,IAAI+G,KAAKA,KAAK8f,MAAMR,IACnCr7B,KAAKy9B,mBAAqBA,EAE1Bz9B,KAAK09B,mBAAmBlqB,GACxBxT,KAAK29B,eAEqB,MAAtBM,EAAYC,QAAgD,MAA9BD,EAAYC,OAAOC,SAAmBF,EAAYC,OAAOC,QAAQj8B,OAAS,GACxGlC,KAAK6V,YAAcooB,EAAYC,OAAOC,QACtCn+B,KAAKw8B,iBAAkB,IAEvBx8B,KAAKmgB,gBAAgB+W,qBAAqB1jB,GAAU8I,MAAK,SAAAshB,GACrD,EAAK/nB,YAAc+nB,EAAQ/nB,eAE/B7V,KAAKw8B,iBAAkB,GAI3Bx8B,KAAK69B,gBAAkB,IAAI,EAAAC,kBAAkB99B,KAAK4V,cAAeqoB,EAAYC,OAAO7N,UAAUnZ,YAC9FlX,KAAK+9B,iBAAmB,IAAI,EAAAD,kBAAkB99B,KAAK4V,cAAeqoB,EAAYC,OAAO7N,UAAUnZ,YAE/FlX,KAAKs8B,eAAiB,WAClB,IAAI9F,EAAS,CACTL,UAAWA,EACXiI,cAAeH,EAAYx8B,GAC3B48B,WAAY,mBACZrG,eAAgB,EAAKniB,YACrBwa,UAAW,EAAKiO,SAChBjuB,MAAO4tB,EAAYC,OAAO7tB,OAG9B,EAAK8P,gBAAgBsW,mBAAmBD,GACnCla,MAAK,WAC4B,MAA1B,EAAKihB,mBACL,EAAKA,uBAEV5gB,OAAM,SAACC,GACN,EAAKC,MAAMD,QAMpB,YAAA2hB,oBAAP,SAA2B1vB,EAAc2E,EAAkB6nB,EAAiBoC,GACxEz9B,KAAKq8B,gBAAiB,EACtBr8B,KAAKq7B,QAAUA,EACfr7B,KAAKgV,QAAU,IAAI+G,KAAKA,KAAK8f,MAAM77B,KAAKq7B,UACxCr7B,KAAKy9B,mBAAqBA,EAE1Bz9B,KAAKw+B,eAAe3vB,EAAM2E,GAC1BxT,KAAK09B,mBAAmBlqB,GACxBxT,KAAKy+B,iBAAiB5vB,EAAM2E,GAC5BxT,KAAK29B,gBAGD,YAAAa,eAAR,SAAuB3vB,EAAc2E,GAArC,WACIxT,KAAKmgB,gBAAgB6W,qBAAqBnoB,EAAM2E,GAAU8I,MAAK,SAAA+T,GAC3D,EAAKwN,gBAAkB,IAAI,EAAAC,kBAAkB,EAAKloB,cAAenE,KAAKoqB,MAAMpqB,KAAKC,UAAU2e,IAAYnZ,YACvG,EAAK6mB,iBAAmB,IAAI,EAAAD,kBAAkB,EAAKloB,cAAenE,KAAKoqB,MAAMpqB,KAAKC,UAAU,EAAKmsB,kBAAkB3mB,YAGnH,EAAKonB,SAAW,EAAKP,iBAGrB,EAAKxB,oBAAqB,EAC1B,EAAKv6B,SAAU,KAChB2a,OAAM,SAACC,GACN,EAAKC,MAAMD,OAIX,YAAA+gB,aAAR,sBACI39B,KAAKmgB,gBAAgB4W,aAAaza,MAAK,SAAAwO,GACnC,EAAK5K,gBAAgB2K,WAAWC,MACjCnO,OAAM,SAACC,GACN,EAAKC,MAAMD,OAIX,YAAA8gB,mBAAR,SAA2B7uB,GAA3B,WACI7O,KAAKmgB,gBAAgB+T,kBAAkB,CAACrlB,GAAO,MAC1CyN,MAAK,SAAA1G,GACF,EAAKA,cAAgBA,EAAc,GAEP,MAAxB,EAAKioB,kBACL,EAAKA,gBAAgBjoB,cAAgB,EAAKA,eAEjB,MAAzB,EAAKmoB,mBACL,EAAKA,iBAAiBnoB,cAAgB,EAAKA,eAG1C,EAAKA,cAAc6nB,sBAGzB9gB,OAAM,SAACC,GACN8hB,QAAQC,IAAI/hB,OAKhB,YAAA6hB,iBAAR,SAAyB5vB,EAAc+vB,GAAvC,WACI5+B,KAAKmgB,gBAAgByV,2BAA2B/mB,EAAM+vB,GACjDtiB,MAAK,SAACzG,GACH,EAAKA,YAAcA,EAGnB,EAAK2mB,iBAAkB,KACxB7f,OAAM,SAACC,GACN,EAAKC,MAAMD,OAIvB,YAAAiiB,uBAAA,SAAuBrX,EAAMhU,GAA7B,WACI,OAAO,EAAAgoB,WAAWze,QAAO,SAAC0e,GACtB,EAAKtb,gBAAgB0V,iCAAiCrO,EAAMhU,GAAU8I,MAAK,SAAAof,GACvED,EAASlhB,KAAKmhB,UAK1B,YAAAS,kBAAA,SAAkBxtB,EAAmBmwB,GAArC,WACI9+B,KAAKmgB,gBAAgBwV,mBAAmBhnB,EAAE6d,KAAK3d,KAAMiwB,EAAIzO,UAAU1uB,WAAWJ,MACzE+a,MAAK,SAAA+T,GACFyO,EAAIzO,UAAYA,KACjB1T,OAAM,SAACC,GACN,EAAKC,MAAMD,OAIhB,YAAAkf,cAAP,WACgC,MAAxB97B,KAAK+wB,kBACL/wB,KAAKu8B,mBAAqBv8B,KAAK+wB,gBAAgBkL,cAKxB,MAAvBj8B,KAAK++B,iBACL/+B,KAAKw8B,gBAAkBx8B,KAAK++B,eAAe9C,cAI/Cj8B,KAAKgC,QAAUhC,KAAKu8B,oBAAsBv8B,KAAKw8B,iBAGnD,YAAAzmB,WAAA,SAAWuB,EAAkB0nB,QAAA,IAAAA,OAAA,IACrB1nB,IAAatX,KAAK0U,UAAasqB,KAInCh/B,KAAKi/B,sBAELj/B,KAAK0U,SAAW4C,EAEhBtX,KAAK87B,gBAGD97B,KAAKy8B,oBADQ,IAAbnlB,IAOA,YAAA2nB,oBAAR,WACgC,MAAxBj/B,KAAK+wB,kBACL/wB,KAAK+9B,iBAAmB/9B,KAAK+wB,gBAAgByE,gBAEtB,MAAvBx1B,KAAK++B,iBACL/+B,KAAK6V,YAAc7V,KAAK++B,eAAeG,kBAG3Cl/B,KAAKs+B,SAAWt+B,KAAK+9B,kBAOlB,YAAAlhB,MAAP,SAAaD,GACT5c,KAAK6b,WAAa,EAAAyD,aAAa6Q,kBAAkBvT,EAAK5c,KAAKggB,eAGxD,YAAAoc,OAAP,WACIp8B,KAAK6b,WAAWmD,QAGb,YAAAmgB,OAAP,WACQn/B,KAAKgC,UACLhC,KAAK6b,WAAWmD,OAEhBhf,KAAKi/B,sBAEsB,MAAvBj/B,KAAKs8B,gBAcLt8B,KAAKs8B,mB,iCAlVR9wB,GAAwB,+L,iCAAxBA,EAAwB,yD,GAAA,M,wSAPtB,CAAC,EAAA7D,YAAS,umD,GAAA,MCpBzB,4BAEI,+BAQI,4BACI,4BAEI,8BAGJ,iBACJ,iBACA,4BAEI,4BACI,4BACI,8BAAqF,wCAAS,aAAgB,MAC1G,6BACJ,iBACA,+BAA8G,wCAAS,aAAgB,MACnI,6BACJ,iBACA,+BAAoH,8DAA+B,aAAgB,MAC/J,8BACJ,iBACJ,iBACJ,iBACJ,iBAIA,8DAcA,gCAkBA,gCAUC,8BACG,8BAA0B,6BAAO,8BAAkD,iBAAQ,iBAC3F,8BACI,gCAAuC,gEAAqB,4BAAW,EAAAi0B,sBAAvE,iBACJ,iBACJ,iBAEA,6BAEI,6BACI,8BACI,iCAA8C,wCAAS,EAAAQ,YACnD,8BACJ,iBACA,iCAA8C,wCAAS,EAAA+C,YACnD,8BACJ,iBACJ,iBACJ,iBACJ,iBACJ,iBACJ,kB,4BAvFsB,uDASyC,8EAGA,iGAGA,oGAUlD,6HAaC,wEAkBA,oDAayC,iDAW8B,8DACnD,sG,kmBD9ElC,GAWa,EAAA3zB,4B,+DAAAA,EAAwB,E,KAXpC,EAAA2N,U,MAAU,CACPC,SAAU,mBACVC,YAAa,oCACbC,UAAW,CAAC,oCACZlL,UAAW,CAAC,EAAAzG,e,6IASHiO,cAAe,CAAF,C,KAArB,EAAA4D,QAeQ+jB,kBAAmB,CAAF,C,KAAzB,EAAA/jB,QAW6BuX,gBAAe,E,KAA5C,EAAArX,U,MAAU,qBAoBkBqlB,eAAc,E,KAA1C,EAAArlB,U,MAAU,uB,kHE3Ef,W,GAEA,O,8FCAQ,2BAGI,YACJ,kB,uBAFI,6GACA,sD,yBAJR,2BACI,6BAKJ,kB,6BAJyB,4DDC7B,iBAgBI,aACI1Z,KAAKo/B,YAAc,CAAEC,MAAO,I,OAThC,sBACI,oBAAK,C,IADT,SACU/8B,GACNtC,KAAKo/B,YAAc98B,G,gCAUvB,YAAA9C,SAAA,aAGA,YAAA0b,YAAA,a,iCAlBSrT,I,iCAAAA,EAAsB,iRCTnC,4BACI,6BAOJ,kB,MAPS,uG,ioDDGT,GAKa,EAAAA,0B,+DAAAA,EAAsB,E,KALlC,EAAAsR,U,MAAU,CACPC,SAAU,iBACVC,YAAa,kCACbC,UAAW,CAAC,6B,uBAMR+lB,MAAK,E,KADR,EAAA7lB,M,MAAM,c,+GEZX,WAIA,GAHA,MAGA,Q,GACA,O,2DCFE,qB,mDAOI,6BACE,+BAAuH,sHAAvH,iBACA,+BAAkC,6BAA6C,iBACjF,iB,0BAFmE,0CAAsB,sBAC3C,4C,mDAclC,6BACE,+BAAiD,yIAAjD,iBAAuF,YAA0B,2BAA+D,yIAAqC,iBACvN,iB,0CADyB,gDAAgE,6D,yBAF3F,0BACE,+BAGF,kB,uBAHsD,+C,yBAJ1D,6BACE,4BAAO,YAA8B,iBACrC,6BACE,+BAKF,iBACF,kB,uCARS,mDAEmB,wD,yBAJ9B,0BACE,+BAUF,kB,4CAVQ,2E,yBANZ,0BACE,yBACE,6BACF,iBACA,6BACE,+BAaF,iBACF,kB,6BAdiC,6DDdvC,iBAuCI,WAAoBwG,EAAqCrE,GAArC,KAAAqE,eAAqC,KAAArE,UAhChD,KAAApY,OAAmB,GAClB,KAAA+7B,YAAc,IAAI,EAAA//B,aAClB,KAAAggC,gBAAkB,IAAI,EAAAhgC,aAEhC,KAAAigC,oBAAqB,EAErB,KAAAC,MAAsB,GAKtB,KAAAC,WAAoB,CAChB,CACIroB,KAAM,YACNkE,MAAO,sBACP9Z,GAAI,eACJk+B,OAAQ,uCACRC,IAAK,4BACLC,UAAU,IAWlB,KAAAC,mBAA0C,G,OAK1C,YAAAtgC,SAAA,sBACIQ,KAAK2b,QAAQkb,2BAA2Bva,MAAK,SAAAmjB,GACzC,EAAKA,MAAQA,EAEb,EAAKM,0BAIb,YAAA9kB,YAAA,SAAY+kB,GACJA,EAAQz8B,OAAO08B,eAAiBD,EAAQz8B,OAAO28B,eAC/ClgC,KAAK+/B,uBAIb,YAAAA,oBAAA,sBACI//B,KAAKy/B,MAAMj/B,SAAQ,SAAA62B,GACf,IAAI8I,EAAe,CAAEz+B,IAAK21B,EAAK31B,IAAKob,aAAcua,EAAKva,aAAawO,eAAgB8U,cAAe,IAEnG/I,EAAKgJ,SAAS7/B,SAAQ,SAAA8/B,GAGlB,IAAe,IAFD,EAAK/8B,OAAOsU,QAAQyoB,EAAQ5+B,KAExB,CACd,IAAI6+B,EAAmB,CAAE7+B,IAAK4+B,EAAQ5+B,IAAKob,aAAcwjB,EAAQtrB,QAASwrB,QAAQ,EAAOC,SAAS,GAElGN,EAAaC,cAAcp9B,KAAKu9B,OAIpCJ,EAAaC,cAAcl+B,OAAS,GACpC,EAAK49B,mBAAmB98B,KAAKm9B,OAKzC,YAAAO,6BAAA,SAA6BC,GACzB,IAAIC,GAAa,EAWjB,OAVA5gC,KAAK8/B,mBAAmBt/B,SAAQ,SAAAqgC,GACxBA,EAAYn/B,MAAQi/B,GACpBE,EAAYT,cAAc5/B,SAAQ,SAAAsgC,GAC1BA,EAAOL,UACPG,GAAa,SAMtBA,GAGX,YAAAG,wBAAA,WACI,IAAIH,GAAa,EASjB,OARA5gC,KAAK8/B,mBAAmBt/B,SAAQ,SAAAqgC,GAC5BA,EAAYT,cAAc5/B,SAAQ,SAAAsgC,GAC1BA,EAAOL,UACPG,GAAa,SAKlBA,GAGX,YAAAI,mBAAA,SAAmBvgC,GACfA,EAAM+/B,QAAU//B,EAAM+/B,OAEtBxgC,KAAKs/B,YAAY/E,KAAK95B,IAG1B,YAAAwgC,mBAAA,SAAmBxgC,GACfA,EAAM+/B,QAAS,EACf//B,EAAMggC,SAAU,EAEhBzgC,KAAKs/B,YAAY/E,KAAK95B,IAG1B,YAAAygC,qBAAA,WACqBlhC,KAAKggB,aAAaoM,KAAK,EAAA3e,2BAA4B,CAChEyf,UAAU,EACVC,UAAU,EACVC,qBAAqB,EAErB,MAAS,wBAEFC,QAAQyS,mBAAqB9/B,KAAK8/B,oBAejD,YAAAqB,gBAAA,SAAgB1gC,GACZT,KAAK0/B,WAAWl/B,SAAQ,SAAA4gC,GACpBA,EAAGZ,QAAS,KAGhB//B,EAAM+/B,QAAS,EAEfxgC,KAAKu/B,gBAAgBhF,KAAK95B,I,iCA7IrBiN,GAAmB,+E,iCAAnBA,EAAmB,6jCCXhC,4BAA0B,mEAAmC,IAAnC,CAAwC,sDAAoC,KAEpG,4BACA,4BAEE,4BACE,yBACE,4BACF,iBACA,8BAIF,iBACA,0BACE,8BAqBA,+BAAgC,wCAAS,EAAAwzB,0BAAwB,kBAAE,6BAAmE,iBACxI,iBAEF,iBAEF,kB,MAvCyB,0DAClB,4DAM2C,oDAMtC,kE,82CDTZ,GAKa,EAAAxzB,uB,+DAAAA,EAAmB,E,KAL/B,EAAAyL,U,MAAU,CACPC,SAAU,cACVC,YAAa,+BACbC,UAAW,CAAC,+B,uEAIH/V,OAAQ,CAAF,C,KAAd,EAAAiW,QACS8lB,YAAW,E,KAApB,EAAAr4B,SACSs4B,gBAAe,E,KAAxB,EAAAt4B,Y,iHEhBL,WAIA,GAFA,MAEA,QAGA,GAFA,OACA,MACA,Q,yICJI,4DAQE,8FAKF,iB,iCAXE,qCAAsB,gCAAtB,CAAsB,gBAAtB,CAAsB,uBAAtB,CAAsB,4BAAtB,CAAsB,qBAAtB,CAAsB,uBAAtB,CAAsB,oBAAtB,CAAsB,0B,mDAaxB,4BACE,4BACE,6BACF,iBACA,kCAA6B,mGAAuE,iBACtG,iB,iCAD+B,iD,mDAK7B,gCAAmD,oGACjD,6BACF,kB,mDAEA,gCAA6D,oGAC3D,6BACF,kB,mDACA,gCAAqC,4FACnC,6BACF,iB,iCAFgG,wCACpF,qG,yBAlChB,0BAEE,4DAeA,8BAOA,4BAEE,iCAIA,iCAGA,iCAIF,iBACF,kB,6BApCuC,kDAe/B,8DASK,2DAIA,6CAGA,8CDzBf,iBA+DI,WAAmB0U,EAAkCqE,EAAsC1L,EAAkC+sB,GAA1G,KAAA1lB,UAAkC,KAAAqE,eAAsC,KAAA1L,cAAkC,KAAA+sB,kBAxD7H,KAAAC,KAAO,CACHC,SAAU,WACVC,WAAY,aACZC,UAAW,YACXC,SAAU,YAOL,KAAA1sB,QAAgB,IAAI+G,KAEpB,KAAAhc,UAAoB,EAS7B,KAAA4hC,MAAgB,KAEN,KAAAC,cAAgB,IAAI,EAAAriC,aACpB,KAAAsiC,WAAa,IAAI,EAAAtiC,aACjB,KAAAuiC,YAAc,IAAI,EAAAviC,aAClB,KAAAwiC,YAAc,IAAI,EAAAxiC,aAE5B,KAAAyxB,UAAoB,EAIpB,KAAAgR,KAAe,KAUf,KAAAlqB,UAA2B,KAE3B,KAAAzH,OAAiB,EAEjB,KAAA4xB,QAAkB,EAIlB,KAAAlqB,UAA+B,KAE/B,KAAAqjB,OAAiB,G,OArCjB,sBAAa,mBAAI,C,IAAjB,SAAkB94B,GACdtC,KAAKkiC,WAAW5/B,I,gCAyCpB,YAAA9C,SAAA,WACIQ,KAAK28B,aAAe38B,KAAKsU,YAAY8B,SAAWpW,KAAKsU,YAAY+B,iBAAiBrW,KAAKuB,KAAK4U,mBAAqBnW,KAAKsU,YAAYgC,yBAAyBtW,KAAKuB,MAChKvB,KAAKgiC,KAAO,cAKhB,YAAAG,SAAA,SAASC,GACLpiC,KAAKgxB,SAAWoR,GAGpB,YAAApgC,QAAA,WACI,OAAOhC,KAAKgxB,UAAYhxB,KAAK+wB,iBAAmB/wB,KAAK+wB,gBAAgB/uB,WAGzE,YAAAkgC,WAAA,SAAWrzB,GAAX,WACI7O,KAAK2hC,MAAQ9yB,EACb7O,KAAKwU,cAAgB,KACrBxU,KAAKqiC,aAAe,KACpBriC,KAAK6V,YAAc,KAEP,MAARhH,GAA6B,MAAb7O,KAAKuB,OACR,YAATsN,GACA7O,KAAKqQ,OAAQ,EAEbrQ,KAAK2b,QAAQqb,qBAAqBnoB,EAAM7O,KAAKuB,KAAKsN,MAAMyN,MAAK,SAAA+T,GACzD,EAAKgS,aAAe,IAAI,EAAAvE,kBAAkB,EAAKv8B,KAAMkQ,KAAKoqB,MAAMpqB,KAAKC,UAAU2e,IAAYnZ,YAC3F,EAAK1C,cAAgB,IAAI,EAAAspB,kBAAkB,EAAKv8B,KAAMkQ,KAAKoqB,MAAMpqB,KAAKC,UAAU,EAAK2wB,eAAenrB,eACrGyF,OAAM,SAACC,GACN,EAAKC,MAAMD,MAGf5c,KAAK2b,QAAQia,2BAA2B/mB,EAAM7O,KAAKuB,KAAKsN,MAAMyN,MAAK,SAACzG,GAChE,EAAKA,YAAcA,KACpB8G,OAAM,SAACC,GACN,EAAKC,MAAMD,QAGf5c,KAAKqQ,OAAQ,EAEbrQ,KAAK2b,QAAQub,qBAAqBl3B,KAAKuB,KAAKsN,MAAMyN,MAAK,SAAAshB,GACnD,EAAKyE,aAAe,IAAI,EAAAvE,kBAAkB,EAAKv8B,KAAMq8B,EAAQvN,UAAUnZ,YACvE,EAAK1C,cAAgB,IAAI,EAAAspB,kBAAkB,EAAKv8B,KAAMkQ,KAAKoqB,MAAMpqB,KAAKC,UAAU,EAAK2wB,eAAenrB,YAEpG,EAAKrB,YAAc+nB,EAAQ/nB,YAC3B,EAAKysB,aAAY,SAMjC,YAAAC,iBAAA,WACIviC,KAAK8hC,YAAYvH,QAUrB,YAAAiI,UAAA,WACI,OAAOxiC,KAAKgC,YACThC,KAAK28B,cAAiB38B,KAAKo7B,QAAUp7B,KAAKo7B,OAAOqH,OAAOvgC,OAAS,KACjElC,KAAKqQ,OAAUrQ,KAAK+wB,iBAAmB/wB,KAAK+wB,gBAAgBla,yBAAyBU,eAG5F,YAAAsH,SAAA,sBACQ7e,KAAKqQ,MACLrQ,KAAK2b,QAAQoc,qBAAqB/3B,KAAK6V,YAAa7V,KAAKwU,cAAexU,KAAKqQ,MAAOrQ,KAAKiV,UAAWjV,KAAKo7B,QAAQ9e,MAAK,SAAComB,GAC9GA,EAAUC,kBACX,EAAKf,cAAcrH,KAAK,EAAK/lB,eAC7B,EAAK0tB,WAAW,EAAKP,QAEzB,EAAKI,YAAYxH,KAAKmI,MACvB/lB,OAAM,SAACC,GACN,EAAKC,MAAMD,MAGf5c,KAAK2b,QAAQic,mBAAmB53B,KAAKwU,cAAc0C,WAAWrI,KAAM7O,KAAKuB,KAAKsN,KAAM7O,KAAK+wB,gBAAgBpY,aAAc3Y,KAAKiV,UAAWjV,KAAKo7B,QAAQ9e,MAAK,SAAComB,GACjJA,EAAUC,kBACX,EAAKf,cAAcrH,KAAK,EAAK/lB,eAC7B,EAAK0tB,WAAW,EAAKP,QAEzB,EAAKI,YAAYxH,KAAKmI,MACvB/lB,OAAM,SAACC,GACN,EAAKC,MAAMD,MAInB5c,KAAKqhC,gBAAgBvgC,eAGzB,YAAA8hC,yBAAA,SAAyB9qB,GACrB9X,KAAK8X,UAAYA,EACjB9X,KAAKgiC,KAAOhiC,KAAKshC,KAAKC,UAG1B,YAAAsB,wBAAA,SAAwB9qB,GACpB/X,KAAK+X,UAAYA,EACjB/X,KAAKgiC,KAAOhiC,KAAKshC,KAAKG,WAG1B,YAAAqB,iBAAA,WACI9iC,KAAKsiC,aAAatiC,KAAKiiC,QAEvBxiC,OAAOqpB,SAASia,eAAe,0BAA0BC,OAAO,CAC5Dpa,IAAK,EACLqa,SAAU,YAIlB,YAAAX,YAAA,SAAYhgC,GACRtC,KAAKiiC,OAAS3/B,EACdtC,KAAKo7B,OAAS,KAEdp7B,KAAK6hC,WAAWtH,KAAKv6B,KAAKiiC,SAGvB,YAAAplB,MAAP,SAAaD,GACT5c,KAAK6b,WAAa,EAAAyD,aAAa6Q,kBAAkBvT,EAAK5c,KAAKggB,e,iCArLtDrS,GAAqB,yJ,iCAArBA,EAAqB,sD,GAAA,K,w+CCdlC,0BACE,8BAuCF,kB,MAvCQ,uF,6tCDQR,GAKa,EAAAA,yB,+DAAAA,EAAqB,E,KALjC,EAAAwL,U,MAAU,CACPC,SAAU,gBACVC,YAAa,iCACbC,UAAW,CAAC,uC,qHAWHrE,UAAW,CAAF,C,KAAjB,EAAAuE,QAEQjY,KAAM,CAAF,C,KAAZ,EAAAiY,QAEQxE,QAAS,CAAF,C,KAAf,EAAAwE,QAEQzZ,SAAU,CAAF,C,KAAhB,EAAAyZ,QAGY3K,KAAI,E,KAAhB,EAAA2K,QAI6BuX,gBAAe,E,KAA5C,EAAArX,U,MAAU,qBAIDkoB,cAAa,E,KAAtB,EAAA36B,SACS46B,WAAU,E,KAAnB,EAAA56B,SACS66B,YAAW,E,KAApB,EAAA76B,SACS86B,YAAW,E,KAApB,EAAA96B,Y,qHE3CL,WAEA,GADA,MACA,OACA,SAEA,S,GACA,M,4FCLI,6BAAqE,YAAW,kB,6BAAX,+C,yBAc3D,gCAA+E,YAAqC,kB,uBAAjE,wCAA4B,4DDL7F,iBAuBE,WAAoBgK,EAAoCqf,EAAiDzU,GAArF,KAAA5K,eAAoC,KAAAqf,sBAAiD,KAAAzU,aAhBlG,KAAAgO,cAAgC,GAYvC,KAAA/O,QAAkB,K,OAOlB,YAAAtb,SAAA,WACEQ,KAAKkwB,aAAe,IAAI,EAAAjW,SAG1B,YAAAmE,KAAA,SAAKyL,GAAL,WACE7pB,KAAK6pB,cAAgBA,EAErB,IAAI9I,EAA+B,CACjCmiB,WAAY,EACZC,mBAAmB,EACnBvD,IAAKpuB,IAAM,qBAGbxR,KAAKojC,SAAW,IAAI,EAAAC,aAAatiB,GAEjC/gB,KAAKojC,SAASE,gBAAkB,SAACC,EAAeC,GAC9CA,EAAKzgB,OAAO,UAAW,EAAK7M,UAE9BlW,KAAKojC,SAASK,mBAAqB,SAACF,GAClC,EAAKtyB,aAAaK,SAEpBtR,KAAKojC,SAASM,eAAiB,SAAClX,EAAWzN,EAAe7M,EAAad,GACrE,EAAKuyB,QAAQ9hB,cAAcvf,MAAQ,GACnC,EAAK2O,aAAaY,YAEpB7R,KAAKojC,SAASQ,cAAgB,SAACpX,EAAWzN,EAAkB7M,EAAgBd,GAC1E,EAAK8e,aAAa3V,MAAK,GACvB,EAAKsB,WAAWmD,QAElBhf,KAAKojC,SAASS,YAAc,SAACrX,EAAWzN,EAAkB7M,EAAgBd,GACxE,IAAMyL,EAAQpL,KAAKoqB,MAAM9c,GAEzB,EAAKlC,MAAM,CAAEA,MAAOA,MAKxB,YAAAinB,SAAA,SAAS5tB,GACPlW,KAAKkW,QAAUA,GAGjB,YAAA6tB,QAAA,WAE6B,MAAvB/jC,KAAKojC,SAASY,OAAiBhkC,KAAKojC,SAASY,MAAM9hC,OAAS,EAC9DlC,KAAKojC,SAASa,YAGdjkC,KAAK6c,MAAM,CACT/B,QAAS9a,KAAKswB,oBAAoBjO,OAAO,mBACzCxF,MAAO,MAMN,YAAAA,MAAP,SAAaD,GACX5c,KAAK8a,QAAU,EAAAwE,aAAaC,oBAAoB3C,I,iCA7EvCtT,GAAyB,mH,iCAAzBA,EAAyB,2D,GAAA,K,46BCftC,4BACI,8BAEA,4BACE,yBAAK,4BAA0D,iBACjE,iBACA,+BACE,+BACE,4BACE,4BACE,6BAAQ,6BAAyD,iBACnE,iBACA,6BACE,iCAAQ,0CAAU,EAAAw6B,SAAA,mBAChB,yBACA,mCACF,iBACF,iBACF,iBACA,6BACE,6BACE,6BAAQ,8BAAsD,iBAChE,iBACA,6BACE,8BACF,iBACF,iBACA,6BACE,wBACA,6BACE,8BACE,iCAAsB,wCAAS,EAAAjoB,WAAA,UAC7B,4BACE,8BACF,iBACF,iBACA,iCAAsB,wCAAS,EAAAkoB,aAC7B,4BACE,8BACF,iBACF,iBACF,iBACF,iBACF,iBACF,iBACF,iBACJ,kB,MA7CU,oDAcqC,wDASsC,qD,kNDdrF,GAKa,EAAAz6B,6B,+DAAAA,EAAyB,E,KALrC,EAAA6P,U,MAAU,CACTC,SAAU,qBACVC,YAAa,sCACbC,UAAW,Q,6FAcXqqB,QAAS,CAAF,C,KADN,EAAAjqB,U,MAAU,e,sHE1Bb,WAEA,GADA,MACA,O,GAEA,M,sECUwB,gCAA4D,YAA+B,kB,uBAApD,4BAAqB,4DDNpF,iBAgBE,WAAmBmC,EAAgCqoB,GAAhC,KAAAroB,aAAgC,KAAAqoB,wBATnD,KAAAC,QAA4B,GAE5B,KAAAC,OAAiB,K,OASjB,YAAA5kC,SAAA,sBACEQ,KAAKqkC,YAAc,IAAI,EAAApqB,QAEvBja,KAAKkkC,sBAAsBI,mBAAmB,EAAG,KAAMhoB,MAAK,SAAA6nB,GAC1D,EAAKA,QAAUA,EAAQI,UAAUhhC,QAAO,SAAAihC,GAAO,MAAa,uBAAbA,EAAIjjC,WAClDob,OAAM,SAACC,QAKZ,YAAA6nB,QAAA,WACEzkC,KAAK6b,WAAWmD,OAChBhf,KAAKqkC,YAAY9pB,KAAKva,KAAKokC,S,iCAzBlB76B,GAA0B,iF,iCAA1BA,EAA0B,yqBCbvC,4BACI,4BACI,yBACI,4BACJ,iBACJ,iBAEA,6BACI,+BACI,4BACI,4BACI,4BAAQ,4BACR,iBAAS,gCAAsD,+DAC3D,yBACA,kCACJ,iBACJ,iBACJ,iBAEA,6BACI,6BACI,6BACI,iCAAsB,wCAAS,EAAAsS,WAAA,UAC3B,4BACI,8BACJ,iBACJ,iBACA,iCAAsB,wCAAS,EAAA4oB,aAC3B,4BACI,8BACJ,iBACJ,iBACJ,iBACJ,iBACJ,iBACJ,iBACJ,iBACJ,kB,MAzBmF,iDAEhC,iDAae,uE,kQDnBlE,GAKa,EAAAl7B,8B,+DAAAA,EAA0B,E,KALtC,EAAA4P,U,MAAU,CACTC,SAAU,sBACVC,YAAa,uCACbC,UAAW,Q,4MEXb,WAEA,GADA,MACA,OAEA,S,GAEA,OAEA,M,iGCHM,6BAAqE,YAAW,kB,6BAAX,+C,qBAI/D,6B,qBACA,6B,yBAWN,4BACE,+BACE,6BACA,8BAA8B,iBAAO,sCAAkE,gBAAC,iBAC1G,iBACA,+BAA6B,wEAA7B,iBAEF,kB,2CAJ4D,4CAEnD,mDAAqB,kBAArB,CAAqB,2B,yBAa1B,gCAA6D,YAA4B,kB,uBAA/C,6BAAmB,4D,mDAH/D,gCACE,0HACA,wBACA,kCACF,iB,gCAJkD,4CAA6B,4CAGrD,wD,mDAE1B,8BAA8D,+BAAmB,6GAAnB,iBAAyF,iB,gCAAtE,4D,mDACjF,8BAAgC,+BAAmB,6GAAnB,iBAAyF,iB,gCAAtE,4D,mDAwD/C,gCACE,iGACA,6BACF,iB,mDAHwC,mEDxFpD,iBAuBI,WAAoBlF,EAAuCswB,EAA2BvkB,EAA0C3F,EAA2CqB,GAAvJ,KAAAzH,WAAuC,KAAAswB,OAA2B,KAAAvkB,kBAA0C,KAAA3F,mBAA2C,KAAAqB,aAf3K,KAAAgO,cAAqB,GACrB,KAAA/O,QAAkB,KAElB,KAAAmB,MAAgB,EAEhB,KAAAlc,UAAoB,E,OAYpB,YAAAP,SAAA,sBACIQ,KAAKstB,uBAAyB,IAAI,EAAArT,QAElCja,KAAKokB,cAAgB,CACjBvV,KAAM,GACN0M,MAAOvb,KAAKoU,SAAS2I,SACrBkR,YAAajuB,KAAKoU,SAAS2I,SAC3BwF,mBAAoB,GACpBpM,iBAAkB,IAGtBnW,KAAKmgB,gBAAgBsY,mBAAmBnc,MAAK,SAAAqoB,GAEzC,GAAK,EAAK5kC,SASN,EAAK8pB,cAAgB8a,MATL,CAChB,EAAK9a,cAAgB,GAErB,IAAK,IAAIjlB,EAAI,EAAGA,EAAI+/B,EAAKziC,SAAU0C,EAC3B,EAAK8/B,KAAKruB,iBAAiBsuB,EAAK//B,GAAGiK,OACnC,EAAKgb,cAAc7mB,KAAK2hC,EAAK//B,IAOpC,EAAKqX,MAAsC,IAA9B,EAAK4N,cAAc3nB,QAG1B,EAAK+Z,MAAQ,EAAKlc,YACzB,EAAK6kC,kBAAoB,EAAKC,6BAA6B,EAAKzgB,cAAcjO,oBAH9E,EAAKiO,cAAcjO,iBAAmB,EAAK0T,cAAc,GAAGhb,KAC5D,EAAK+1B,kBAAoB,EAAK/a,cAAc,GAAGtO,MAAM+P,mBAI1D3O,OAAM,SAACC,GACN,EAAKC,MAAMD,OAInB,YAAAioB,6BAAA,SAA6B3uB,GACzB,IAAK,IAAItR,EAAI,EAAGA,EAAI5E,KAAK6pB,cAAc3nB,SAAU0C,EAC7C,GAAI5E,KAAK6pB,cAAcjlB,GAAGiK,OAASqH,EAC/B,OAAOlW,KAAK6pB,cAAcjlB,GAAG2W,MAAM+P,eAK3C,OADAoT,QAAQC,IAAI,+BAAiCzoB,EAAU,KAChDA,GAGX,YAAAiF,eAAA,sBACInb,KAAK8a,QAAU,KAEX9a,KAAKD,SACLC,KAAK6b,WAAWmD,OAIhBhf,KAAKic,KACLjc,KAAKwa,iBAAiBsX,oBAAoBrgB,KAAKC,UAAU1R,KAAKokB,gBAAgB9H,MAAK,SAAApX,GAC/E,EAAKooB,uBAAuB/S,KAAKrV,GACjC,EAAK2W,WAAWmD,UACjBrC,OAAM,SAACC,GACN,EAAKC,MAAMD,MAGf5c,KAAKwa,iBAAiBoX,oBAAoBngB,KAAKC,UAAU1R,KAAKokB,gBAAgB9H,MAAK,SAAApX,GAC/E,EAAKooB,uBAAuB/S,KAAKrV,GACjC,EAAK2W,WAAWmD,UACjBrC,OAAM,SAACC,GACN,EAAKC,MAAMD,OAKvB,YAAAC,MAAA,SAAMD,GACF5c,KAAK8a,QAAU,EAAAwE,aAAaC,oBAAoB3C,I,iCA7F3CjT,GAAiC,iM,iCAAjCA,EAAiC,k1FCf9C,2BAEE,4BACE,+BAEE,8BAEE,4BACE,yBACE,mCACA,mCACF,iBACF,iBAEF,4BACE,+BACE,6BACF,iBACA,gCAAO,2EAAP,iBAEF,iBACA,gCASA,yCAAgB,gFAAwH,iBAExI,6BACE,gCACE,8BACF,iBACA,mCAKA,iCACA,iCACF,iBAEA,6BACE,6BAAO,8BAAwD,iBAC/D,mCAAU,+EAAgG,iBAC5G,iBAEA,6BACE,6BAAO,8BAA+D,iBACtE,mCAAU,sFAA8G,iBAC1H,iBACA,6BACE,6BAAO,8BAA0D,iBACjE,mCAAU,iFAAgH,iBAC5H,iBAEA,6BACE,6BAAO,8BAAiE,iBACxE,mCAAU,wFAA8H,iBAC1I,iBAEA,6BACE,6BAAO,8BAA8D,iBACrE,mCAAU,qFAAwH,iBACpI,iBAEA,qBAEA,6BACE,0BACE,8BACF,iBACF,iBAEA,6BACE,6BAAO,8BAAuD,iBAC9D,gCAAO,8EAAP,iBACF,iBAEA,6BACE,6BAAO,8BAA2D,iBAClE,gCAAO,kFAAP,iBACF,iBAEA,6BACE,6BAAO,8BAAqD,iBAC5D,gCAAO,4EAAP,iBACF,iBAEA,8BACE,8BACE,8BACE,iCAA8C,wCAAS,EAAAkS,WAAA,UACrD,8BACF,iBACA,mCAIF,iBACF,iBACF,iBAEF,iBACF,iBACF,kB,MAvGY,oDAIW,4CACA,2CAQR,4DAAgC,+BAGO,0EAShC,iEAAqC,kBAArC,CAAqC,uBAM1C,sEAKF,uEACA,2CAKG,gEAAoC,uBAKpC,uEAA2C,uBAI3C,kEAAsC,uBAKtC,yEAA6C,uBAK7C,sEAA0C,uBAa7C,+DAAmC,uBAKnC,mEAAuC,uBAKvC,6DAAiC,uBAS3B,kD,2UDxFrB,GAKa,EAAAlS,qC,+DAAAA,EAAiC,E,KAL7C,EAAAwP,U,MAAU,CACPC,SAAU,8BACVC,YAAa,+CACbC,UAAW,Q,+QEbf,WAEA,GADA,MACA,OAEA,S,GAGA,OACA,M,0GCLI,6BAAqE,YAAW,kB,6BAAX,+C,qBAIjE,6B,qBACA,6B,yBAoBA,4BACE,4BACE,6BACA,8BAA6B,iBAAO,sCAAkE,gBAAC,iBACzG,iBACA,+BAAO,wEAAP,iBAEF,kB,uBAJ2D,4CAElD,+CAA+B,yBAA/B,CAA+B,wC,mDAY5C,4BACE,6BACE,4BACE,+BACE,6BACF,iBACA,6BACE,uCAAgC,kHAAuF,iBACzH,iBACF,iBACF,iBACF,iB,gCAJuB,0CAAgB,mCAAhB,CAAgB,kD,2CDxC3C,aAoBI,WAAoBlF,EAAuCswB,EAA2BvkB,EAAyCtE,GAA3G,KAAAzH,WAAuC,KAAAswB,OAA2B,KAAAvkB,kBAAyC,KAAAtE,aAZ/H,KAAA8B,aAA6B,KAC7B,KAAA7C,QAAkB,K,OAalB,YAAAtb,SAAA,WACIQ,KAAK4uB,mBAAqB,IAAI,EAAA3U,QAE9Bja,KAAK4V,cAAgB,CACjB/G,KAAM,GACN0M,MAAOvb,KAAKoU,SAAS2I,SACrBkR,YAAajuB,KAAKoU,SAAS2I,SAC3Bjd,aAAc,aACdglC,QAAQ,EACRrH,oBAAoB,EACpBtnB,iBAAkB,GAClBe,WAAY,KAIpB,YAAAkH,KAAA,SAAKT,EAA4BwgB,EAA0BxP,EAA+B3K,GACtFhkB,KAAK4V,cAAcoO,WAAaA,IAA0B,EAEtD2K,IACA3uB,KAAK4V,cAAc6G,cAAgBkS,EAAe9f,KAClD7O,KAAK4V,cAAc9V,aAAe6uB,EAAe7uB,aACjDE,KAAK4V,cAAcmvB,UAAYpW,EAAeoW,WAIlD/kC,KAAKm+B,QAAUA,EAAQ56B,QAAO,SAAA0iB,GAAU,OAAAA,EAAOjC,cAG/ChkB,KAAK2d,aAAeA,EACpB3d,KAAK4V,cAAcO,iBAAmBnW,KAAK2d,aAAa9O,KACxD7O,KAAK4kC,kBAAoB5kC,KAAK2d,aAAapC,MAAM+P,gBAGrD,YAAAnQ,eAAA,sBACInb,KAAK8a,QAAU,KAEf9a,KAAKmgB,gBAAgBuO,oBAAoBjd,KAAKC,UAAU1R,KAAK4V,gBAAgB0G,MAAK,SAAApX,GAC9E,EAAK0pB,mBAAmBrU,KAAKrV,GAC7B,EAAK2W,WAAWmD,UACjBrC,OAAM,SAACC,GACN,EAAKC,MAAMD,OAInB,YAAAooB,aAAA,WACIhlC,KAAK4V,cAAckvB,QAAU9kC,KAAK4V,cAAckvB,QAGpD,YAAAG,yBAAA,WACIjlC,KAAK4V,cAAc6nB,oBAAsBz9B,KAAK4V,cAAc6nB,oBAGhE,YAAAyH,iBAAA,WACIllC,KAAK4V,cAAcoO,YAAchkB,KAAK4V,cAAcoO,YAGxD,YAAAnH,MAAA,SAAMD,GACF5c,KAAK8a,QAAU,EAAAwE,aAAaC,oBAAoB3C,I,iCA1E3C/S,GAA8B,yJ,iCAA9BA,EAA8B,wjE,2BCjB3C,+BAAqB,sFAA0B,EAAAsR,oBAE7C,4BACE,8BAEA,4BACE,yBACE,mCACA,mCACF,iBACF,iBAEA,4BACE,4BACE,6BACE,2BACE,gCACE,8BACF,iBACA,gCAAO,2EAAP,iBAEF,iBACF,iBACF,iBACF,iBAEA,6BACE,6BACE,gCAQF,iBACF,iBAEA,6BACE,6BACE,yCAAgB,gFAAkG,iBACpH,iBACF,iBAEA,gCAaA,6BACE,8BACE,6BAEE,gCACE,8BACF,iBACA,8BACE,wCAA+D,8EAAwF,iBACzJ,iBACF,iBACF,iBACF,iBAEA,6BACE,6BACE,6BACE,gCACE,8BACF,iBACA,iCAAgD,mFAC9C,yBAmBC,iCACC,8BACF,iBACA,iCACE,8BACF,iBACA,iCACE,8BACF,iBACF,iBACF,iBACF,iBACF,iBAeA,6BACE,8BACE,6BACE,8BACE,8BAAK,wCAAS,EAAA8pB,8BAEZ,uBACF,iBAEA,gCACE,8BACF,iBACF,iBACF,iBACF,iBACF,iBAEA,6BACE,6BACE,6BACE,gCACE,8BACF,iBACA,+BACE,gCAAuC,0EAAvC,iBACF,iBACF,iBACF,iBACF,iBAEA,6BACE,6BACE,8BACE,iCAA8C,wCAAS,EAAAppB,WAAA,UACrD,8BACF,iBACA,iCACE,8BACF,iBACF,iBACF,iBACF,iBAEF,iBACF,iB,+BAtKU,oDAIS,+DACA,gEAWA,4DASqC,0EAahC,iEAAqC,mBAIvC,mEAqBK,2EAA+C,kCAA/C,CAA+C,mDAYhB,oEAAwC,mFAmD5C,mGAoBH,4DAYnB,oD,6WDrJhC,GAKa,EAAAhS,kC,+DAAAA,EAA8B,E,KAL1C,EAAAsP,U,MAAU,CACPC,SAAU,0BACVC,YAAa,2CACbC,UAAW,Q,wPEff,WACA,OAOA,GADA,MACA,OAEA,SAEA,S,GAEA,O,+ICTE,4CAAiG,wHAAyH,iB,gCAA/I,oCAAqB,gCAArB,CAAqB,qC,mDAKhG,uDAAgH,wHAAsD,iB,gCAAtF,+C,mDAEhF,qDAA+I,wHAAsD,iB,gCAAzH,8CAA+B,qC,wBAE3G,uC,6BAAuE,8CAA+B,qC,wBAEtG,0C,6BAAwE,8CAA+B,mCAA/B,CAA+B,uCDAzG,iBAiCI,WAAmBuC,EAA+BspB,EAA+BC,GAAjF,WAAmB,KAAAvpB,aAA+B,KAAAspB,oBAPlD,KAAArqB,QAAkB,KAClB,KAAAT,WAA4C,CAAEpB,MAAO,EAAAosB,yBAAyBnW,oBAAqBpX,UAAW,GAAIwtB,WAAY,IAI9H,KAAAvlC,UAAoB,EAGhBC,KAAKulC,uBAAyBH,EAA+BlrB,gBAAgBiI,WAAU,SAAA9H,GACnF,EAAKA,WAAaA,K,OAI1B,YAAA7a,SAAA,WACIQ,KAAKmvB,yBAA2B,IAAI,EAAAlV,SAGxC,YAAAiB,YAAA,WACIlb,KAAKulC,uBAAuBpmB,eAGhC,YAAAqmB,mBAAA,SAAmBvsB,GACfjZ,KAAKqa,WAAapB,GAGtB,YAAAwsB,sBAAA,SAAsBvgC,GAGlBlF,KAAKmvB,yBAAyB5U,KAAKrV,IAGvC,YAAA6M,OAAA,aAIA,YAAA2zB,MAAA,WACI1lC,KAAK6b,WAAWmD,QAGpB,YAAAnC,MAAA,SAAMD,GACF5c,KAAK8a,QAAU,EAAAwE,aAAaC,oBAAoB3C,I,iCA1C3C9R,GAAiC,4H,iCAAjCA,EAAiC,unBCvC9C,2BAEE,sCAEA,8CAKA,yDAEA,uDAEA,8CAEA,iDAEF,kB,MAbwB,kFAKW,4EAEF,0EAET,8EAEG,8E,uTDKX,CACR,CACI,EAAA8N,QAAQ,YAAa,CACjB,EAAAC,WAAW,YAAa,CACpB,EAAAC,MAAM,CACFC,QAAS,IAEb,EAAAC,QAAQ,WAEZ,EAAAH,WAAW,SACP,EAAAG,QAAQ,QACJ,EAAAF,MAAM,CACFC,QAAS,a,EAjBrC,GAwBa,EAAAjO,qC,+DAAAA,EAAiC,E,KAxB7C,EAAAqO,U,MAAU,CACPC,SAAU,6BACVC,YAAa,8CACbC,UAAW,CAAC,oCAEZC,WAAY,CACR,CACI,EAAAX,QAAQ,YAAa,CACjB,EAAAC,WAAW,YAAa,CACpB,EAAAC,MAAM,CACFC,QAAS,IAEb,EAAAC,QAAQ,WAEZ,EAAAH,WAAW,SACP,EAAAG,QAAQ,QACJ,EAAAF,MAAM,CACFC,QAAS,e,mOEjCrC,WACA,OAQA,GAFA,MAEA,QACA,SAKA,GAHA,MAEA,OACA,Q,GACA,O,2HCdI,4BAAqE,YAAW,kB,8BAAX,+C,yBAyC7D,4BACI,6BACI,6BACJ,iBACA,6BACI,8BACI,YACJ,iBACJ,iBACJ,kB,8BAHY,4E,mDA6EsB,2BAAoG,uI,uBACvD,iB,KAAzC,6D,mDACJ,2BAAuG,6I,uBACxD,iB,KAA3C,+D,yBANZ,yBACI,yBAAI,YAA6B,iBACjC,4BACI,6BAEA,6BAEJ,iBACJ,kB,uBAPQ,2DAEI,qEAEA,sE,mDAQxB,2BAAkH,wGAC9G,6BACJ,kB,mDAWF,gCAAwF,0FACpF,6BACJ,iB,iCAFgE,uC,mDAjJpF,+BAAkE,wFAC9D,4BACI,yBACI,4BACA,YACJ,iBACJ,iBACA,+BACI,4BACI,6BACI,4BAAO,8BAAoD,iBAC/D,iBACA,8BACI,+BAAoB,gCAAmB,mHAAnB,iBACpB,iBACJ,iBACJ,iBAEA,0CAAuC,kHAAoE,iBAC3G,yCAAsC,wHAAgF,iBAEtH,6BACI,8BACI,6BAAO,8BAAiD,iBAC5D,iBACA,8BACI,wCAAgC,mHAAuF,iBAC3H,iBACJ,iBAEA,6BACI,8BACI,6BAAO,8BAA+D,iBAC1E,iBACA,8BACI,wCAAmE,sHAA4F,iBACnK,iBACJ,iBAEA,gCAYA,6BACI,8BACI,6BAAO,8BAA4D,iBACvE,iBACA,8BACI,iCAA4B,2HACxB,yBACC,iCAA2B,8BAAsD,iBAClF,iCAA0B,8BAAqD,iBAC/E,iCAA6B,8BAAwD,iBAOzF,iBACJ,iBACJ,iBAGA,6BACI,8BACI,6BAAO,8BAA8E,iBACzF,iBACA,8BAEI,wCAAoC,+HAA6H,iBACrK,iBACJ,iBAEA,6BACE,8BACE,6BAAO,8BAAwD,iBACjE,iBACA,8BACE,+BAAoB,gCAAmB,8GAAnB,iBAAyF,iBAC/G,iBACF,iBAEA,6BACI,8BACI,6BAAO,8BAA0F,iBACrG,iBACA,8BACI,8BACI,8BASA,8BACM,gCAWI,6BACI,+BASJ,iBACJ,iBACJ,iBAEA,8BAGF,iBACJ,iBACJ,iBACJ,iBAEA,6BACQ,8BACI,iCAA8C,yFAC1C,8BACJ,iBACA,mCAGJ,iBACJ,iBACR,iBACJ,iB,iCAnJY,wFAS2C,gEAK9B,mDAAqB,mCACtB,mDAAqB,yCAOd,0CAAgB,mCAAhB,CAAgB,iDAShB,iFAAmD,sCAAnD,CAAmD,mDAIjD,+FAiBW,wEAsBb,mDAAoB,+CAApB,CAAoB,2EASA,2DAgCI,mEAa7B,gDAaG,iD,yBApJjC,4BACI,8BAEA,iCAwJJ,kB,6BA1JU,oDAEgB,yDDc1B,iBAoDI,WAAmB8C,EAA+BspB,EAAuCnlB,EAC7E2lB,EAA8DP,EAC9D9U,EAAkDnQ,GAF3C,KAAAtE,aAA+B,KAAAspB,oBAAuC,KAAAnlB,eAC7E,KAAA2lB,4BAA8D,KAAAP,iCAC9D,KAAA9U,sBAAkD,KAAAnQ,kBA5BrD,KAAApgB,UAAoB,EAEnB,KAAA6lC,oBAAmD,IAAI,EAAArmC,aAajE,KAAAub,QAAkB,KAElB,KAAAT,WAA4C,CAAEpB,MAAO,EAAAosB,yBAAyBnW,oBAAqBpX,UAAW,GAAIwtB,WAAY,IAE9H,KAAAO,gBAA8B,CAC1BxG,MAAO,CACH,CAAE9jB,MAAOvb,KAAKswB,oBAAoBjO,OAAO,6CAA8Cme,QAAQ,EAAMC,SAAS,K,OAbtH,sBACI,iBAAE,C,IADN,SACO7qB,GACCA,IACA5V,KAAK8lC,kBAAoBr0B,KAAKoqB,MAAMpqB,KAAKC,UAAUkE,M,gCAmB3D,YAAApW,SAAA,WACIQ,KAAK2lC,0BAA0BI,cAAc/lC,KAAK6lC,iBAClD7lC,KAAKolC,+BAA+B9qB,cAActa,KAAKqa,YAEvDra,KAAKgmC,0BAGT,YAAAC,qBAAA,WACIjmC,KAAKolC,+BAA+B9qB,cAAc,CAAErB,MAAO,EAAAosB,yBAAyBa,gBAAiBpuB,UAAW,GAAIwtB,WAAY,MAGpI,YAAAU,uBAAA,sBACIhmC,KAAKmgB,gBAAgBsY,mBAAmBnc,MAAK,SAAAqoB,GACzC,IAAK,IAAI//B,EAAI,EAAGA,EAAI+/B,EAAKziC,SAAU0C,EAC3B+/B,EAAK//B,GAAGiK,OAAS,EAAKi3B,kBAAkB3vB,mBACxC,EAAKyuB,kBAAoBD,EAAK//B,GAAG2W,MAAM+P,mBAGhD3O,OAAM,SAACC,GACN,EAAKC,MAAMD,OAInB,YAAAupB,iBAAA,WACInmC,KAAKolC,+BAA+B9qB,cAAc,CAAErB,MAAO,EAAAosB,yBAAyBc,iBAAkBruB,UAAW,GAAIwtB,WAAY,MAGrI,YAAAE,mBAAA,SAAmBvsB,GACfjZ,KAAKqa,WAAapB,GAGtB,YAAAlH,OAAA,sBACI/R,KAAKmgB,gBAAgB2U,oBAAoB90B,KAAK8lC,mBAAmBxpB,MAAK,SAAA1G,GAGlE,EAAKgwB,oBAAoBrL,KAAK3kB,GAE9B,EAAK8vB,WACN/oB,OAAM,SAACC,GACN,EAAKC,MAAMD,OAQnB,YAAA8oB,MAAA,WAEI1lC,KAAK6b,WAAWmD,QAGpB,YAAAhd,QAAA,WAkBI,OAAO,GAGX,YAAAokC,cAAA,SAAcpjB,EAAqBrU,GAC/B3O,KAAKolC,+BAA+B9qB,cAAc,CAAErB,MAAO,EAAAosB,yBAAyBe,cAAetuB,UAAWkL,EAAMsiB,WAAY,MAGpI,YAAAe,oBAAA,SAAoBrjB,EAAqBrU,GAAzC,WACI3O,KAAKmlC,kBAAoBnlC,KAAKggB,aAAaoM,KAAK,EAAAuB,sBAAuB,CACnET,UAAU,EACVC,UAAU,EACVC,qBAAqB,IAEzBptB,KAAKmlC,kBAAkB9X,QAAQvS,QAAU9a,KAAKswB,oBAAoBjO,OAAO,+BAAiC,IAAMW,EAAKzH,MAAM+P,eAAiB,IAC5ItrB,KAAKmlC,kBAAkB9X,QAAQnoB,KAAO,CAAE+vB,cAAejS,EAAMpN,cAAe5V,KAAK4V,eACjF5V,KAAKmlC,kBAAkB9X,QAAQO,WAAa5tB,KAAKswB,oBAAoBjO,OAAO,uBAC5EriB,KAAKmlC,kBAAkB9X,QAAQ9rB,KAAO,EAAAutB,WAAWC,OAExB/uB,KAAKmlC,kBAAkB9X,QAASQ,UAAU1L,WAAU,SAAAjd,GACzE,EAAKiwB,oBAAoBjwB,EAAK0Q,cAAc/G,KAAM3J,EAAK+vB,mBAI/D,YAAAE,oBAAA,SAAoBjJ,EAA2BlJ,GAA/C,WACIhjB,KAAKmgB,gBAAgBgV,oBAAoBjJ,EAAmBlJ,EAAKnU,MAAMyN,MAAK,SAAApX,GACpEA,GACA,EAAK0Q,cAAcsB,WAAWnU,OAAO,EAAK6S,cAAcsB,WAAWW,QAAQmL,GAAO,GAGtF,EAAK4iB,oBAAoBrL,KAAK,EAAK3kB,kBACpC+G,OAAM,SAACC,GACN,EAAKC,MAAMD,OAInB,YAAAC,MAAA,SAAMD,GACF5c,KAAK8a,QAAU,EAAAwE,aAAaC,oBAAoB3C,I,iCA1I3C7R,GAA2B,qS,iCAA3BA,EAA2B,mhFCzCxC,8B,KAAyB,oE,ysBDsBT,CACR,CACI,EAAA6N,QAAQ,YAAa,CACjB,EAAAC,WAAW,YAAa,CACpB,EAAAC,MAAM,CACFC,QAAS,IAEb,EAAAC,QAAQ,WAEZ,EAAAH,WAAW,SACP,EAAAG,QAAQ,QACJ,EAAAF,MAAM,CACFC,QAAS,a,EAjBrC,GAwBa,EAAAhO,+B,+DAAAA,EAA2B,E,KAxBvC,EAAAoO,U,MAAU,CACPC,SAAU,sBACVC,YAAa,uCACbC,UAAW,CAAC,6BAEZC,WAAY,CACR,CACI,EAAAX,QAAQ,YAAa,CACjB,EAAAC,WAAW,YAAa,CACpB,EAAAC,MAAM,CACFC,QAAS,IAEb,EAAAC,QAAQ,WAEZ,EAAAH,WAAW,SACP,EAAAG,QAAQ,QACJ,EAAAF,MAAM,CACFC,QAAS,e,uNASxBhZ,SAAU,CAAF,C,KAAhB,EAAAyZ,QACQ5D,cAAe,CAAF,C,KAArB,EAAA4D,QACSosB,oBAAqB,CAAF,C,KAA5B,EAAA3+B,SAOGq/B,GAAE,E,KADL,EAAA9sB,M,MAAM,yB,gIEpDX,WAGA,GAFA,MAEA,QAKA,GAFA,MAEA,QACA,SAEA,GADA,OACA,Q,yFCJgB,6BAAqE,YAAW,kB,6BAAX,+C,oCDMrF,aAyBI,WACWqC,EACC8pB,EACAP,EACAllB,EACAC,GAJD,KAAAtE,aACC,KAAA8pB,4BACA,KAAAP,iCACA,KAAAllB,kBACA,KAAAC,kBAtBF,KAAAylB,oBAAmD,IAAI,EAAArmC,aAEjE,KAAAub,QAAkB,KAClB,KAAAyrB,aAA8B,KAC9B,KAAAV,gBAA8B,CAC1BxG,MAAO,CACH,CAAE9jB,MAAOvb,KAAKkgB,gBAAgBmC,OAAO,6CAA8Cme,QAAQ,EAAMC,SAAS,GAC1G,CAAEllB,MAAOvb,KAAKkgB,gBAAgBmC,OAAO,0CAA2Cme,QAAQ,EAAMC,SAAS,GACvG,CAAEllB,MAAOvb,KAAKkgB,gBAAgBmC,OAAO,yCAA0Cme,QAAQ,EAAMC,SAAS,KAI9G,KAAApmB,WAA4C,CAAEpB,MAAO,EAAAosB,yBAAyBa,gBAAiBpuB,UAAW,GAAIwtB,WAAY,I,OAY1H,YAAA9lC,SAAA,WACIQ,KAAKwmC,aAAa,aAClBxmC,KAAK2lC,0BAA0BI,cAAc/lC,KAAK6lC,kBAGtD,YAAA9qB,gBAAA,WACQ/a,KAAKymC,yBACLzmC,KAAKymC,wBAAwBztB,WAIrC,YAAAmC,eAAA,sBACInb,KAAKmgB,gBAAgB4U,iBAAiB/0B,KAAK4V,cAAc/G,KAAM7O,KAAKumC,cAAcjqB,MAAK,SAAApX,GACnF,EAAK0Q,cAAcsB,WAAWlU,KAAKkC,GAEnC,EAAKkgC,+BAA+B9qB,cAAc,CAAErB,MAAO,EAAAosB,yBAAyBnW,oBAAqBpX,UAAW,GAAIwtB,WAAY,KAEpI,EAAKM,oBAAoBrL,KAAK,EAAK3kB,kBACpC+G,OAAM,SAACC,GACN,EAAKC,MAAMD,OAInB,YAAA4pB,aAAA,SAAajlC,GAELvB,KAAKumC,aADI,SAAThlC,EACoB,IAAI,EAAAmlC,kBAAkB,GAAInlC,EAAMvB,KAAKkgB,gBAAgBnD,SAAU/c,KAAKkgB,gBAAgBnD,UAAU,GAAO,GAAO,GAAO,GACvH,UAATxb,EACa,IAAI,EAAAolC,qBAAqB,GAAIplC,EAAMvB,KAAKkgB,gBAAgBnD,SAAU/c,KAAKkgB,gBAAgBnD,UAAU,GAAO,GAAO,GAAO,GAEtH,IAAI,EAAAzH,cAAc,GAAI/T,EAAMvB,KAAKkgB,gBAAgBnD,SAAU/c,KAAKkgB,gBAAgBnD,UAAU,GAAO,GAAO,GAAO,IAI3I,YAAA6pB,YAAA,WACI,IAAIC,GAAuB,EAM3B,OAJI7mC,KAAKymC,0BACLI,EAAc7mC,KAAKymC,wBAAwBzkC,aAG3C6kC,GAOR,YAAAzK,OAAA,WACIp8B,KAAKolC,+BAA+B9qB,cAAc,CAAErB,MAAO,EAAAosB,yBAAyBnW,oBAAqBpX,UAAW,GAAIwtB,WAAY,MAGxI,YAAAzoB,MAAA,SAAMD,GACF5c,KAAK8a,QAAU,EAAAwE,aAAaC,oBAAoB3C,I,iCA/E3C7S,GAAoC,6N,iCAApCA,EAAoC,uE,GAAA,K,cAiBlC,EAAAa,wBAAuB,G,skCCnCtC,4BAII,+BAAwC,2CAAY,EAAAuQ,oBAChD,4BACI,4BACI,8BAEA,4BACI,yBACI,4BACJ,iBACJ,iBAEA,4BACI,6BACI,6BACI,gCAAmG,wCAAS,EAAAqrB,aAAa,gBACrH,8BACJ,iBACA,gCAAiG,wCAAS,EAAAA,aAAa,cACnH,8BACJ,iBACA,gCAA+F,wCAAS,EAAAA,aAAa,YACjH,8BACJ,iBACA,gCAA8F,wCAAS,EAAAA,aAAa,WAChH,8BACJ,iBACA,gCAAiG,wCAAS,EAAAA,aAAa,cACnH,8BACJ,iBACA,gCAA8F,wCAAS,EAAAA,aAAa,WAChH,8BACJ,iBACJ,iBACJ,iBACJ,iBAEA,gCAEI,0CAAoI,uEAA6B,iBAEjK,6BACI,8BAII,8BACI,iCAA8C,wCAAS,EAAApK,YACnD,8BACJ,iBACA,iCACI,8BACJ,iBACJ,iBACJ,iBACJ,iBACJ,iBACJ,iBACJ,iBACJ,iBAEJ,kB,MAzDsB,oDAWiD,iGAGA,+FAGA,6FAGA,4FAGA,+FAGA,4FASlC,mDAA0B,wBAA1B,CAA0B,0CAA1B,CAA0B,4BAWe,2D,6QDxC9E,GAKa,EAAAryB,wC,+DAAAA,EAAoC,E,KALhD,EAAAoP,U,MAAU,CACPC,SAAU,iCACVC,YAAa,kDACbC,UAAW,CAAC,6C,2KAIH1D,cAAe,CAAF,C,KAArB,EAAA4D,QACSosB,oBAAqB,CAAF,C,KAA5B,EAAA3+B,SAcmCw/B,wBAAyB,CAAF,C,KAA1D,EAAA/sB,U,MAAU,EAAA9O,8B,2HEnCf,WACA,Q,OAqBA,iBAWI,aACI5K,KAAK8mC,UA7BF,SAACC,GACJ,GAAIA,EAAEzkC,MAGF,OAFwC,IAA1BykC,EAAEzkC,MAAMuV,QAAQ,KAGnB,KAEA,CACHmvB,uBAAwB,CACpB5E,OAAO,K,OAuB3B,YAAA1pB,SAAA,SAASquB,GACL,OAAO/mC,KAAK8mC,UAAUC,I,iCATjBt8B,I,iCAAAA,EAA+B,yFAL7B,CAEP,CAAEw8B,QAAS,EAAAC,cAAeC,YAAa18B,EAAiC28B,OAAO,Q,EAJvF,GAOa,EAAA38B,mC,+DAAAA,EAA+B,E,KAP3C,EAAA48B,U,MAAU,CACPjuB,SAAU,oCACVhL,UAAW,CAEP,CAAE64B,QAAS,EAAAC,cAAeC,YAAa18B,EAAiC28B,OAAO,S,2JC1BvF,WACA,OAUA,GAJA,MAGA,OACA,QAEA,SAOA,GAJA,MAEA,OAEA,Q,kGCfgB,6BAAqE,YAAW,kB,6BAAX,+C,sBAOjE,4BAA6D,6BAAwE,iBAAE,6BAAgD,kB,sBACvL,4BAA2D,6BAAwE,iBAAE,6BAAmD,kB,sBACxL,4BAAyD,6BAAwE,iBAAE,6BAAiD,kB,sBACpL,4BAA2D,6BAAwE,iBAAE,6BAAmD,kB,sBACxL,4BAAwD,6BAAwE,iBAAE,6BAAgD,kB,sBAClL,4BAAwD,6BAAwE,iBAAE,6BAAgD,kB,mDAUlL,4CAAuE,uGAA0D,iB,gCAA1D,sCAAyB,kCDLpH,iBAoCI,WAAmBvrB,EACP8pB,EACAP,EACAllB,EACAC,GAJO,KAAAtE,aACP,KAAA8pB,4BACA,KAAAP,iCACA,KAAAllB,kBACA,KAAAC,kBApBH,KAAArI,UAA2B,KAC1B,KAAA8tB,oBAAmD,IAAI,EAAArmC,aAEjE,KAAAub,QAAkB,KAClB,KAAAT,WAA4C,CAAEpB,MAAO,EAAAosB,yBAAyBe,cAAetuB,UAAW9X,KAAK8X,UAAWwtB,WAAY,IACpI,KAAAO,gBAA8B,CAC1BxG,MAAO,CACH,CAAE9jB,MAAOvb,KAAKkgB,gBAAgBmC,OAAO,6CAA8Cme,QAAQ,EAAMC,SAAS,GAC1G,CAAEllB,MAAOvb,KAAKkgB,gBAAgBmC,OAAO,0CAA2Cme,QAAQ,EAAMC,SAAS,GACvG,CAAEllB,MAAOvb,KAAKkgB,gBAAgBmC,OAAO,uCAAwCme,QAAQ,EAAMC,SAAS,K,OAa5G,YAAAjhC,SAAA,WACIQ,KAAK2lC,0BAA0BI,cAAc/lC,KAAK6lC,kBAGtD,YAAA9qB,gBAAA,aAIA,YAAAG,YAAA,aAGA,YAAAC,eAAA,sBACInb,KAAKmgB,gBAAgB+U,oBAAoBl1B,KAAK4V,cAAc/G,KAAM7O,KAAK8X,WAAWwE,MAAK,SAAApX,GACnF,IAAK,IAAIN,EAAI,EAAGA,EAAI,EAAKgR,cAAcsB,WAAWhV,OAAQ0C,IAAK,CAC3D,IAAIoe,EAAO,EAAKpN,cAAcsB,WAAWtS,GACzC,GAAIoe,EAAKnU,OAAS3J,EAAK2J,KAAM,CACzBE,OAAOu4B,OAAOtkB,EAAM9d,GACpB,OAIR,EAAKkgC,+BAA+B9qB,cAAc,CAAErB,MAAO,EAAAosB,yBAAyBnW,oBAAqBpX,UAAW,GAAIwtB,WAAY,KAEpI,EAAKM,oBAAoBrL,KAAK,EAAK3kB,kBACpC+G,OAAM,SAACC,GACN,EAAKC,MAAMD,OAInB,YAAAgqB,YAAA,WAQI,OAAO,GAGX,YAAAxK,OAAA,WACIp8B,KAAKolC,+BAA+B9qB,cAAc,CAAErB,MAAO,EAAAosB,yBAAyBnW,oBAAqBpX,UAAW,GAAIwtB,WAAY,MAGxI,YAAAiC,KAAA,WACIvnC,KAAKolC,+BAA+B9qB,cAAc,CAAErB,MAAO,EAAAosB,yBAAyBnW,oBAAqBpX,UAAW,GAAIwtB,WAAY,MAGxI,YAAAzoB,MAAA,SAAMD,GACF5c,KAAK8a,QAAU,EAAAwE,aAAaC,oBAAoB3C,I,iCA1E3ClS,GAAkC,6N,iCAAlCA,EAAkC,qE,GAAA,K,cAgBhC,EAAAE,wBAAuB,G,isCCvDtC,4BAEI,+BAAwC,sFAA0B,EAAAuQ,oBAC9D,4BACI,4BACI,8BAEA,4BACI,yBACI,4BAAqE,YACzE,iBAEA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACJ,iBAIA,gCAEI,yCAAmK,oEAA0B,iBAG7L,8CAEA,8BACI,8BAII,8BACI,iCAA8C,wCAAS,EAAAihB,YACnD,8BACJ,iBACA,iCACI,8BACJ,iBACJ,iBACJ,iBACJ,iBACJ,iBACJ,iBACJ,iBACJ,iBAGJ,iB,MA7CsB,oDAIuE,+EAGlD,mEACA,iEACA,+DACA,iEACA,8DACA,8DAON,mDAAyB,+CAAzB,CAAyB,uCAAzB,CAAyB,yBAGrB,+EAWqC,2D,8hBDX9D,CACR,CACI,EAAAxjB,QAAQ,YAAa,CACjB,EAAAC,WAAW,YAAa,CACpB,EAAAC,MAAM,CACFC,QAAS,IAEb,EAAAC,QAAQ,kB,EAZ5B,GAiBa,EAAAtO,sC,+DAAAA,EAAkC,E,KAjB9C,EAAAyO,U,MAAU,CACPC,SAAU,+BACVC,YAAa,gDACbC,UAAW,CAAC,sCAEZC,WAAY,CACR,CACI,EAAAX,QAAQ,YAAa,CACjB,EAAAC,WAAW,YAAa,CACpB,EAAAC,MAAM,CACFC,QAAS,IAEb,EAAAC,QAAQ,oB,2KAOfpD,cAAe,CAAF,C,KAArB,EAAA4D,QACQ1B,UAAW,CAAF,C,KAAjB,EAAA0B,QACSosB,oBAAqB,CAAF,C,KAA5B,EAAA3+B,SAYmCw/B,wBAAyB,CAAF,C,KAA1D,EAAA/sB,U,MAAU,EAAA9O,8B,qHEvDf,WACA,OAUA,GAHA,MAEA,OACA,Q,GACA,O,+DCAwB,4BAA6E,YAA6B,kB,uBAA7B,4DDErG,iBA2CI,WAAmBiR,EAAgCpB,EAAgC2qB,GAAhE,KAAAvpB,aAAgC,KAAApB,MAAgC,KAAA2qB,iCAP1E,KAAAttB,UAA+B,KAC9B,KAAA+C,gBAAkB,IAAI,EAAAtb,aAChC,KAAAub,QAAkB,KAClB,KAAA7B,MAAgB,OAChB,KAAAoB,WAA4C,CAAEpB,MAAO,EAAAosB,yBAAyBmC,iBAAkB1vB,UAAW9X,KAAK8X,UAAWwtB,WAAY,I,OAKvI,YAAA9lC,SAAA,aAIA,YAAAub,gBAAA,WACI/a,KAAKiZ,MAAQ,OACbjZ,KAAKya,IAAIO,iBAGb,YAAAE,YAAA,aAIA,YAAAC,eAAA,aAIA,YAAAnC,QAAA,WACIhZ,KAAKiZ,MAAQ,QAGjB,YAAAqC,gBAAA,SAAgBjI,GACZrT,KAAKiZ,MAAQ,QAyBjB,YAAAwuB,sBAAA,WACIznC,KAAKolC,+BAA+B9qB,cAAc,CAAErB,MAAO,EAAAosB,yBAAyBmC,iBAAkB1vB,UAAW9X,KAAK8X,UAAWwtB,WAAY,M,iCA5DxI36B,GAAyB,mI,iCAAzBA,EAAyB,sjBC/CtC,4BAAgD,sDAAsB,EAAA2Q,gBAAA,MAElE,0BACI,4BACI,4BACI,4BACJ,iBACJ,iBACA,4BACI,4BACI,4BACI,2BACI,6BACJ,iBAEA,gCAAyD,wCAAS,EAAAmsB,2BAC9D,6BACJ,iBACJ,iBACJ,iBACJ,iBACJ,iBAEJ,kB,MAvBwB,sCAYqB,uE,2nBDM7B,CACR,EAAA7uB,QAAQ,eAAgB,CACpB,EAAAK,MAAM,aACF,EAAAH,MAAM,CAAEC,QAAS,KAErB,EAAAE,MAAM,OACF,EAAAH,MAAM,CAAEC,QAAS,KAErB,EAAAF,WAAW,eAAgB,EAAAG,QAAQ,UACnC,EAAAH,WAAW,eAAgB,EAAAG,QAAQ,YAEvC,EAAAJ,QAAQ,YACJ,CACI,EAAAC,WACI,SAAU,CACN,EAAAC,MAAM,CAAEC,QAAS,IACjB,EAAAC,QAAQ,QAAS,EAAAF,MAAM,CAAEC,QAAS,OAG1C,EAAAF,WACI,SAAU,CACN,EAAAC,MAAM,CAAEC,QAAS,IACjB,EAAAC,QAAQ,MAAO,EAAAF,MAAM,CAAEC,QAAS,a,EA1BxD,GAiCa,EAAApO,6B,+DAAAA,EAAyB,E,KAjCrC,EAAAwO,U,MAAU,CACPC,SAAU,qBACVC,YAAa,sCACbC,UAAW,CAAC,4BACZC,WAAY,CACR,EAAAX,QAAQ,eAAgB,CACpB,EAAAK,MAAM,aACF,EAAAH,MAAM,CAAEC,QAAS,KAErB,EAAAE,MAAM,OACF,EAAAH,MAAM,CAAEC,QAAS,KAErB,EAAAF,WAAW,eAAgB,EAAAG,QAAQ,UACnC,EAAAH,WAAW,eAAgB,EAAAG,QAAQ,YAEvC,EAAAJ,QAAQ,YACJ,CACI,EAAAC,WACI,SAAU,CACN,EAAAC,MAAM,CAAEC,QAAS,IACjB,EAAAC,QAAQ,QAAS,EAAAF,MAAM,CAAEC,QAAS,OAG1C,EAAAF,WACI,SAAU,CACN,EAAAC,MAAM,CAAEC,QAAS,IACjB,EAAAC,QAAQ,MAAO,EAAAF,MAAM,CAAEC,QAAS,e,6GAS3CnD,cAAe,CAAF,C,KAArB,EAAA4D,QACQ1B,UAAW,CAAF,C,KAAjB,EAAA0B,QACSqB,gBAAe,E,KAAxB,EAAA5T,Y,sHEnDL,WACA,OAUA,GAHA,MAGA,QACA,SAIA,GAHA,MAEA,OACA,QACA,S,iGCZY,6BAAqE,YAAW,kB,6BAAX,+C,yBAuBrC,yBACI,6BAAsD,iBAAC,sCAAkE,iBAC7H,kB,uBAD8E,6C,yBAU9E,yBAA0D,YAAqB,kB,uBAArB,6C,mDAF9D,yBACI,yBAAI,YAAe,iBACnB,8BACA,4BACI,2BAAiD,oHAAiC,iBAClF,2BAAoD,sHAAmC,iBAC3F,iBACJ,iB,0BANQ,2CACwB,6D,yBAU5B,yBACI,+BAAmB,wEAAnB,iBACJ,kB,2CADuB,+CAA+B,mCAA/B,CAA+B,uCD/BlG,iBAoDI,WAAmB4U,EAAgCpB,EAAgC2qB,EACvEplB,EAAsCE,EAA8CylB,EACpFxlB,GAFO,KAAAtE,aAAgC,KAAApB,MAAgC,KAAA2qB,iCACvE,KAAAplB,eAAsC,KAAAE,kBAA8C,KAAAylB,4BACpF,KAAAxlB,kBAjBF,KAAAtF,gBAAkB,IAAI,EAAAtb,aAChC,KAAAub,QAAkB,KAElB,KAAA7B,MAAgB,OAChB,KAAAyuB,sBAAuB,EACvB,KAAA7B,gBAA8B,CAC1BxG,MAAO,CACH,CAAE9jB,MAAOvb,KAAKkgB,gBAAgBmC,OAAO,6CAA8Cme,QAAQ,EAAMC,SAAS,GAC1G,CAAEllB,MAAOvb,KAAKkgB,gBAAgBmC,OAAO,0CAA2Cme,QAAQ,EAAMC,SAAS,GACvG,CAAEllB,MAAOvb,KAAKkgB,gBAAgBmC,OAAO,uCAAwCme,QAAQ,EAAMC,SAAS,GACpG,CAAEllB,MAAOvb,KAAKkgB,gBAAgBmC,OAAO,4CAA6Cme,QAAQ,EAAMC,SAAS,K,OASjH,YAAAjhC,SAAA,WACIQ,KAAK2lC,0BAA0BI,cAAc/lC,KAAK6lC,iBAClD7lC,KAAKslC,WAAa,IAAI,EAAAzxB,KAAK,GAAI7T,KAAKkgB,gBAAgBnD,SAAU/c,KAAKkgB,gBAAgBnD,WAGvF,YAAAhC,gBAAA,WACI/a,KAAKiZ,MAAQ,OACbjZ,KAAKya,IAAIO,iBAGb,YAAAE,YAAA,aAIA,YAAAC,eAAA,aAIA,YAAAnC,QAAA,WACIhZ,KAAKiZ,MAAQ,QAGjB,YAAAqC,gBAAA,SAAgBjI,GACZrT,KAAKiZ,MAAQ,QAGjB,YAAAjX,QAAA,WACI,GAAIhC,KAAKslC,WAAWz2B,MAAQ7O,KAAKslC,WAAWz2B,KAAK3M,OAAS,EAAG,CAEzD,IAA2C,IAAvClC,KAAKslC,WAAWz2B,KAAKgJ,QAAQ,KAC7B,OAAO,EAIX,IAAK,IAAIjT,EAAI,EAAGA,EAAI5E,KAAKslC,WAAW/pB,MAAMC,aAAatZ,OAAQ0C,IAC3D,GAA8E,IAA1E5E,KAAKslC,WAAW/pB,MAAMC,aAAa5W,GAAGtC,MAAMqlC,QAAQ,MAAO,IAAIzlC,OAC/D,OAAO,EAIf,OAAO,EACJ,OAAIlC,KAAKslC,WAAWz2B,MAAQ7O,KAAKslC,WAAWz2B,KAAKgJ,QAAQ,MACrD,GAMf,YAAA+vB,cAAA,sBACI5nC,KAAKmgB,gBAAgBiV,2BAA2Bp1B,KAAK8X,UAAU+vB,SAASh5B,KAAM7O,KAAKslC,YAAYhpB,MAAK,SAAApX,GAChG,EAAK4S,UAAU+vB,SAAS5gB,SAASjkB,KAAKkC,GAEtC,EAAK2V,gBAAgB0f,KAAK,EAAKziB,WAE/B,EAAKgwB,kBAEL,EAAKJ,sBAAuB,KAC7B/qB,OAAM,SAACC,GACN,EAAKC,MAAMD,OAInB,YAAAmrB,iBAAA,SAAiBzC,GAAjB,WACItlC,KAAKmgB,gBAAgBoV,8BAA8Bv1B,KAAK8X,UAAU+vB,SAASh5B,KAAMy2B,EAAWz2B,MAAMyN,MAAK,SAAApX,IACrC,IAA1D,EAAK4S,UAAU+vB,SAAS5gB,SAASpP,QAAQytB,IACzC,EAAKxtB,UAAU+vB,SAAS5gB,SAASlkB,OAAO,EAAK+U,UAAU+vB,SAAS5gB,SAASpP,QAAQytB,GAAa,GAGlG,EAAKzqB,gBAAgB0f,KAAK,EAAKziB,WAE/B,EAAKgwB,qBACNnrB,OAAM,SAACC,GACN,EAAKC,MAAMD,OAInB,YAAAorB,iBAAA,SAAiB1C,GAAjB,WACItlC,KAAK6b,WAAa7b,KAAKggB,aAAaoM,KAAK,EAAAuB,sBAAuB,CAC5DT,UAAU,EACVC,UAAU,EACVC,qBAAqB,IAEzBptB,KAAK6b,WAAWwR,QAAQvS,QAAU9a,KAAKkgB,gBAAgBmC,OAAO,+BAAiC,IAAMijB,EAAW/pB,MAAQ,IACxHvb,KAAK6b,WAAWwR,QAAQO,WAAa5tB,KAAKkgB,gBAAgBmC,OAAO,uBACjEriB,KAAK6b,WAAWwR,QAAQ9rB,KAAO,EAAAutB,WAAWC,OAEjB/uB,KAAK6b,WAAWwR,QAASQ,UAAU1L,WAAU,SAAAjd,GAClE,EAAK6iC,iBAAiBzC,OAI9B,YAAA2C,eAAA,SAAe3C,GACX,IAAMrsB,EAAQ,CACVA,MAAO,EAAAosB,yBAAyB4C,eAChCnwB,UAAW9X,KAAK8X,UAChBwtB,WAAY7zB,KAAKoqB,MAAMpqB,KAAKC,UAAU4zB,KAG1CtlC,KAAKolC,+BAA+B9qB,cAAcrB,IAGtD,YAAA6uB,gBAAA,WACI9nC,KAAKslC,WAAWz2B,KAAO,GACvB7O,KAAKslC,WAAW/pB,MAAQvb,KAAKkgB,gBAAgBnD,SAC7C/c,KAAKslC,WAAWrX,YAAcjuB,KAAKkgB,gBAAgBnD,UAGvD,YAAAmrB,iBAAA,WACIloC,KAAK8nC,kBACL9nC,KAAK0nC,sBAAuB,GAGhC,YAAAD,sBAAA,WACIznC,KAAK0nC,sBAAuB,GAGhC,YAAAhC,MAAA,WACI1lC,KAAKolC,+BAA+B9qB,cAAc,CAAErB,MAAO,EAAAosB,yBAAyBe,cAAetuB,UAAW9X,KAAK8X,UAAWwtB,WAAY,MAG9I,YAAAzoB,MAAA,SAAMD,GACF5c,KAAK8a,QAAU,EAAAwE,aAAaC,oBAAoB3C,I,iCAhJ3C5R,GAA0B,4S,iCAA1BA,EAA0B,grC,2BCpDvC,4BAEI,+BAAwC,wFACpC,+BAEI,8BAEA,4BACI,yBACI,iCAA6D,YAAoC,iBACrG,iBACJ,iBACA,4BAAgD,sDAAsB,EAAAsQ,gBAAA,MAClE,2BACI,6BACI,6BACI,6BACJ,iBACJ,iBACA,6BACI,+BACI,8BACI,gCACI,6BACI,0BACI,0BACI,8BACJ,iBACA,+BAGA,6BACI,8BACJ,iBACJ,iBACJ,iBACA,6BACI,+BAQA,0BACI,0BACI,gCAAmB,wEAAnB,iBACJ,iBACA,+BAGA,6BACI,iCAAsE,wCAAS,EAAAssB,mBAC3E,8BACJ,iBAOJ,iBACJ,iBAYJ,iBACJ,iBACJ,iBACJ,iBACJ,iBACJ,iBACJ,iBAEA,6BACI,wBAEA,6BACI,8BACI,iCAA8C,wCAAS,EAAAlC,WACnD,8BACJ,iBACJ,iBACJ,iBACJ,iBACJ,iBACJ,iBACJ,iB,MA3FkB,oDAI+D,8EAG7C,qDACf,iDAemD,wEAST,qEAUI,yDAA6B,uCAExB,uEAIsB,uD,wyBD9B9E,CACR,EAAA9sB,QAAQ,eAAgB,CACpB,EAAAK,MAAM,aACF,EAAAH,MAAM,CAAEC,QAAS,KAErB,EAAAE,MAAM,OACF,EAAAH,MAAM,CAAEC,QAAS,KAErB,EAAAF,WAAW,eAAgB,EAAAG,QAAQ,UACnC,EAAAH,WAAW,eAAgB,EAAAG,QAAQ,YAEvC,EAAAJ,QAAQ,YACJ,CACI,EAAAC,WACI,SAAU,CACN,EAAAC,MAAM,CAAEC,QAAS,IACjB,EAAAC,QAAQ,QAAS,EAAAF,MAAM,CAAEC,QAAS,OAG1C,EAAAF,WACI,SAAU,CACN,EAAAC,MAAM,CAAEC,QAAS,IACjB,EAAAC,QAAQ,MAAO,EAAAF,MAAM,CAAEC,QAAS,a,EA1BxD,GAiCa,EAAA/N,8B,+DAAAA,EAA0B,E,KAjCtC,EAAAmO,U,MAAU,CACPC,SAAU,sBACVC,YAAa,uCACbC,UAAW,CAAC,6BACZC,WAAY,CACR,EAAAX,QAAQ,eAAgB,CACpB,EAAAK,MAAM,aACF,EAAAH,MAAM,CAAEC,QAAS,KAErB,EAAAE,MAAM,OACF,EAAAH,MAAM,CAAEC,QAAS,KAErB,EAAAF,WAAW,eAAgB,EAAAG,QAAQ,UACnC,EAAAH,WAAW,eAAgB,EAAAG,QAAQ,YAEvC,EAAAJ,QAAQ,YACJ,CACI,EAAAC,WACI,SAAU,CACN,EAAAC,MAAM,CAAEC,QAAS,IACjB,EAAAC,QAAQ,QAAS,EAAAF,MAAM,CAAEC,QAAS,OAG1C,EAAAF,WACI,SAAU,CACN,EAAAC,MAAM,CAAEC,QAAS,IACjB,EAAAC,QAAQ,MAAO,EAAAF,MAAM,CAAEC,QAAS,e,8NAS3CnD,cAAe,CAAF,C,KAArB,EAAA4D,QACQ1B,UAAW,CAAF,C,KAAjB,EAAA0B,QACSqB,gBAAe,E,KAAxB,EAAA5T,Y,wHExDL,WACA,OAWA,GALA,MAIA,MACA,QAGA,GADA,OACA,Q,GACA,O,wFCfI,6BAAqE,YAAW,kB,6BAAX,+CDiBzE,iBA0CI,WAAmB4U,EAAgC8pB,EAA8DP,EACrGllB,EAA8CC,GADvC,KAAAtE,aAAgC,KAAA8pB,4BAA8D,KAAAP,iCACrG,KAAAllB,kBAA8C,KAAAC,kBAlBjD,KAAArI,UAA+B,KAGxC,KAAAgD,QAAkB,KAClB,KAAAT,WAA4C,CAAEpB,MAAO,EAAAosB,yBAAyBe,cAAetuB,UAAW9X,KAAK8X,UAAWwtB,WAAY,IACpI,KAAAO,gBAA8B,CAC1BxG,MAAO,CACH,CAAE9jB,MAAOvb,KAAKkgB,gBAAgBmC,OAAO,6CAA8Cme,QAAQ,EAAMC,SAAS,GAC1G,CAAEllB,MAAOvb,KAAKkgB,gBAAgBmC,OAAO,0CAA2Cme,QAAQ,EAAMC,SAAS,GACvG,CAAEllB,MAAOvb,KAAKkgB,gBAAgBmC,OAAO,uCAAwCme,QAAQ,EAAMC,SAAS,GACpG,CAAEllB,MAAOvb,KAAKkgB,gBAAgBmC,OAAO,4CAA6Cme,QAAQ,EAAMC,SAAS,GACzG,CAAEllB,MAAOvb,KAAKkgB,gBAAgBmC,OAAO,yCAA0Cme,QAAQ,EAAMC,SAAS,K,OAS9G,YAAAjhC,SAAA,WACIQ,KAAK2lC,0BAA0BI,cAAc/lC,KAAK6lC,kBAGtD,YAAA9qB,gBAAA,aAIA,YAAAG,YAAA,aAGA,YAAAC,eAAA,sBACInb,KAAKmgB,gBAAgBmV,8BAA8Bt1B,KAAK8X,UAAU+vB,SAASh5B,KAAM7O,KAAKslC,YAAYhpB,MAAK,SAAApX,GAEnG,IAAM+kB,EAAQ,EAAKnS,UAAU+vB,SAAS5gB,SAASpkB,WAAU,SAAAslC,GAAK,OAAAA,EAAEt5B,OAAS3J,EAAK2J,SAE/D,IAAXob,IACA,EAAKnS,UAAU+vB,SAAS5gB,SAASgD,GAAS/kB,GAG9C,EAAKkgC,+BAA+B9qB,cAAc,CAAErB,MAAO,EAAAosB,yBAAyBnW,oBAAqBpX,UAAW,EAAKA,UAAWwtB,WAAY,UACjJ3oB,OAAM,SAACC,GACN,EAAKC,MAAMD,OAInB,YAAAgqB,YAAA,WAQI,OAAO,GAGX,YAAAxK,OAAA,WACIp8B,KAAKolC,+BAA+B9qB,cAAc,CAAErB,MAAO,EAAAosB,yBAAyBmC,iBAAkB1vB,UAAW9X,KAAK8X,UAAWwtB,WAAY,QAGjJ,YAAAzoB,MAAA,SAAMD,GACF5c,KAAK8a,QAAU,EAAAwE,aAAaC,oBAAoB3C,I,iCAjE3C/R,GAA4B,6N,iCAA5BA,EAA4B,yzB,2BCxCzC,4BACI,8BAEA,+BAAyC,yFAA8B,EAAAsQ,oBAEnE,4BACI,4BACI,4BACI,yBACI,4BACJ,iBACJ,iBAEA,+BACI,6BACI,6BACI,6BACI,6BACJ,iBACJ,iBACA,8BACI,+BACI,gCAAqC,wEAArC,iBACJ,iBACJ,iBACJ,iBAEA,0CAAiB,uEAA6D,iBAE9E,6BACI,wBAEA,8BACI,8BACI,iCAA8C,wCAAS,EAAAihB,YACnD,8BACJ,iBACA,iCACI,8BACJ,iBACJ,iBACJ,iBACJ,iBACJ,iBACJ,iBACJ,iBACJ,iBAGJ,iB,+BAhDU,oDAqByC,4CAAiB,6BAK/B,wDAUyC,oD,wNDf9D,CACR,EAAAxjB,QAAQ,YACJ,CACI,EAAAC,WACI,SAAU,CACN,EAAAC,MAAM,CAAEC,QAAS,IACjB,EAAAC,QAAQ,QAAS,EAAAF,MAAM,CAAEC,QAAS,OAG1C,EAAAF,WACI,SAAU,CACN,EAAAC,MAAM,CAAEC,QAAS,IACjB,EAAAC,QAAQ,MAAO,EAAAF,MAAM,CAAEC,QAAS,a,EAhBxD,GAsBa,EAAAlO,gC,+DAAAA,EAA4B,E,KAtBxC,EAAAsO,U,MAAU,CACPC,SAAU,yBACVC,YAAa,0CACbC,UAAW,GACXC,WAAY,CACR,EAAAX,QAAQ,YACJ,CACI,EAAAC,WACI,SAAU,CACN,EAAAC,MAAM,CAAEC,QAAS,IACjB,EAAAC,QAAQ,QAAS,EAAAF,MAAM,CAAEC,QAAS,OAG1C,EAAAF,WACI,SAAU,CACN,EAAAC,MAAM,CAAEC,QAAS,IACjB,EAAAC,QAAQ,MAAO,EAAAF,MAAM,CAAEC,QAAS,e,2KAQ3CnD,cAAe,CAAF,C,KAArB,EAAA4D,QACQ1B,UAAW,CAAF,C,KAAjB,EAAA0B,QACQ8rB,WAAY,CAAF,C,KAAlB,EAAA9rB,W,4GE3CL,aAKA,SACA,SACA,SAKA,aA+BI,WAAmBsK,EAAwCskB,EAAYze,EAAmB0e,EAA2B/X,EAAiDtQ,EAAqC1L,GAAtF,KAAAgc,sBAAiD,KAAAtQ,eAAqC,KAAA1L,cACvM,IAAM8P,EAAgBuF,EAEtB3pB,KAAK8jB,mBAAqBA,EAC1B9jB,KAAKokB,cAAgBA,EACrBpkB,KAAKooC,MAAQA,EAEbpoC,KAAKsoC,YAAc9lB,EAAGzK,UAAUqM,EAAc7B,mBAAmB,IACjEviB,KAAKqoC,UAAYA,EAEjBroC,KAAKuoC,OAAS/lB,EAAGpB,OAAOonB,SAAS,CAACtlB,EAAiBgD,SAAW,EAAA1G,qBAAsB0D,EAAiBiD,SAAWjD,EAAiBwE,YAAc,EAAAjI,sBAAsBgpB,YAAW,SAACvlC,EAAGC,GAAM,WAA5Kqf,CAAiLxiB,KAAKsoC,aA0Z5M,OAvZW,YAAAziB,UAAP,WACI,OAAO7lB,KAAKuoC,QAGT,YAAAG,QAAP,WACI,OAAO1oC,KAAKokB,cAAcvV,MAGvB,YAAAkV,cAAP,SAAqBwL,GACjB,IAAIoZ,EAAW3oC,KAAK6lB,YAAYvB,MAAK,SAACjD,GAAW,OAAOA,EAAKnc,KAAK0Q,gBAAkB2Z,KAEpF,OAAgB,MAAZoZ,EACO,KAGJ,IAAI,EAAAC,iBAAiB5oC,KAAK8jB,mBAAoB9jB,KAAMA,KAAK8jB,mBAAmB2C,wBAAwB8I,GAAUoZ,EAAU3oC,KAAKswB,oBAAqBtwB,KAAKggB,aAAchgB,KAAKsU,cAG9K,YAAAu0B,sBAAP,SAA6BC,EAASC,GAAtC,WACQpP,EAAOmP,EAAGznB,OAAOkC,UAEjBylB,EAAYF,EAAG/lB,OAAO,KAAKuD,QAAQ,sBAAsB,GAEzD2iB,EAAUH,EAAG/lB,OAAO,KAAKuD,QAAQ,sBAAsB,GAMvD4iB,EAA0B,EAAA3hB,mBAAmBvnB,KAAKokB,cAAc7I,MAAM+P,eAJ3C,IAK3B6d,EAAyBC,GACzBC,EAAyB1P,EAAKlW,EAAI2lB,GAClCF,EAL4B,MAM5BA,EAN4B,IAO5BC,EAAkBC,GAClBC,EAAkB1P,EAAKlW,EAVI,IAa/B,IAAI6lB,EAAY3P,EAAKjW,MACjB6lB,EAAYL,EAbU,GAetBK,EAAYD,IACZA,EAAYC,GAIhBN,EAAQlmB,OAAO,QAAQuD,QAAQ,yBAAyB,GACnDtD,KAAK,IAAK2W,EAAKnW,GACfR,KAAK,IAAK2W,EAAKlW,GACf3K,MAAM,cAAe,eACrBkK,KAAK,OAAQ,QACbA,KAAK,YAAa,IAClBwE,KAAK,KAGVwhB,EAAUjmB,OAAO,iBAAiBuD,QAAQ,0BAA0B,GAC/DtD,KAAK,YA/BqB,IAgC1BA,KAAK,kBAAmB,SACxBA,KAAK,eAAgB,GACrBA,KAAK,IAAK2W,EAAKnW,EAjCM,IAkCrBR,KAAK,IAAKqmB,GACVrmB,KAAK,QAASkmB,GACdlmB,KAAK,SAAUmmB,GACfpmB,OAAO,WACPC,KAAK,QAAS,gCACdA,KAAK,cAAe,SACpBA,KAAK,aAAc,QACnBlK,MAAM,iBAAkB,UACxBA,MAAM,UAAW,cACjBA,MAAM,QAAS,QAEfA,MAAM,SAAUoK,EAAiBiD,SAAW,EAAI,MAChDqjB,MAAK,SAACC,GAAW,SAAKrlB,cAAc7I,MAAM+P,kBAG/C2d,EAAQlmB,OAAO,QAAQuD,QAAQ,yBAAyB,GACnDtD,KAAK,KAAM2W,EAAKnW,GAChBR,KAAK,KAAM2W,EAAKlW,EApDU,IAqD1BT,KAAK,KAAM2W,EAAKnW,EAAI8lB,GACpBtmB,KAAK,KAAM2W,EAAKlW,EAtDU,IAuD1BT,KAAK,SAAU,QACfA,KAAK,eAAgB,IAE1B,IAAI0mB,EAAcT,EAAQ5nB,OAAOkC,UAgBjC,OAfA0lB,EAAQjmB,KAAK,YAAa,gBAAkB0mB,EAAY/lB,OAAS,KAGjEqlB,EAAUjmB,OAAO,QAAQuD,QAAQ,0BAA0B,GACtDtD,KAAK,YAAaomB,IAClBpmB,KAAK,cAAe,QACpBA,KAAK,kBAAmB,SACxBA,KAAK,eAAgB,GACrBA,KAAK,OAAQ,QACbA,KAAK,IAAK2W,EAAKnW,GACfR,KAAK,IAAK2W,EAAKlW,GACf+D,KAAKuhB,GAEVC,EAAUhmB,KAAK,YAAa,gBAAuC,IAArB0mB,EAAY/lB,OAAe,KAElEslB,GAGX,YAAAU,sBAAA,SAAsBpa,GAClB,IAAIvZ,EAAqBhW,KAAK8jB,mBAAmB2C,wBAAwB8I,GAE3C,MAA1BvZ,EAAIkU,qBACJlU,EAAIkU,mBAAqBlqB,KAAK8jB,mBAAmBI,4BAA4BlO,IAMjF,IAHA,IAAImO,EAAyBnO,EAAIkU,mBAE7BD,EAAQ,KACHrlB,EAAI,EAAGA,EAAIuf,EAAajiB,SAAU0C,EACnCuf,EAAavf,KAAO5E,KAAK0oC,YACzBze,EAAQrlB,GAQhB,OAJa,MAATqlB,GACA9F,EAAaphB,OAAOknB,EAAO,GAGxB9F,GAGH,YAAAylB,cAAR,SAAsBH,EAAQI,EAAc3kC,GACxCsd,EAAGC,OAAO,gBACL3J,MAAM,UAAW,IAGlB,YAAAgxB,cAAR,SAAsBz2B,EAAYw2B,EAAc3kC,GAC5Csd,EAAGC,OAAO,mBAAmB+mB,KAAKxpC,KAAKokB,cAAc7I,MAAM+P,gBAC3D9I,EAAGC,OAAO,uBAAuB+mB,KAAKxpC,KAAKokB,cAAcvV,MAEzD2T,EAAGC,OAAO,uBAAuB+mB,KAAKtkC,EAAKA,KAAKqW,OAChDiH,EAAGC,OAAO,2BAA2B+mB,KAAKtkC,EAAKA,KAAK0Q,eAEpD4M,EAAGC,OAAO,+BAA+B+mB,KAAKxpC,KAAK8jB,mBAAmB8F,uBAAuB5pB,KAAKokB,cAAcjO,kBAAkBoF,MAAM+P,gBACxI9I,EAAGC,OAAO,mCAAmC+mB,KAAKxpC,KAAK8jB,mBAAmB8F,uBAAuB5pB,KAAK8jB,mBAAmB2C,wBAAwBvhB,EAAKA,KAAK0Q,eAAeO,kBAAkBoF,MAAM+P,gBAElM,IACIye,EADmBvnB,EAAGC,OAAO,gBAAgBpB,OACNsH,wBAEvCqC,EAAM,CAAExH,EAAGnQ,EAAMsS,MAAOlC,EAAGpQ,EAAMuS,OAKhCvS,EAAMuS,MAAQmkB,EAAgBpmB,OAJJ,GAI+BmF,SAASkhB,gBAAgBC,eAEnFjf,EAAIvH,EAAIpQ,EAAMuS,MAAQmkB,EAAgBpmB,OANX,IAU1BtQ,EAAMsS,MAAQokB,EAAgBrmB,MATJ,EAS8BoF,SAASkhB,gBAAgBE,cAElFlf,EAAIxH,EAAInQ,EAAMsS,MAAQokB,EAAgBrmB,MAXX,GAc/BlB,EAAGC,OAAO,gBACL3J,MAAM,OAAQkS,EAAIxH,EAAI,MACtB1K,MAAM,MAAOkS,EAAIvH,EAAI,OAGtB,YAAA0mB,eAAR,SAAuBV,EAAQI,EAAc3kC,GACzCsd,EAAGC,OAAO,gBACL3J,MAAM,UAAW,GACjBA,MAAM,OAAQ,YACdA,MAAM,MAAO,aAGf,YAAAqK,OAAP,sBACQwB,EAAO3kB,KACPoqC,EAAgBpqC,KAAKuoC,OAAOlkB,cAEhC7B,EAAGC,OAAO,sCAAwCniB,SAC9CN,KAAKqoC,WACL7lB,EAAGC,OAAO,qCAAuCniB,SAGrD,IAAIwoC,EAAK9oC,KAAKooC,MAAMiC,OAAO,IAAK,gBAAgB/jB,QAAQ,eAAe,GAAMtD,KAAK,YAAahjB,KAAKokB,cAAcvV,MAAMmU,KAAK,eAAgBhjB,KAAKqoC,WAClJS,EAAG9lB,KAAK,cAAe,cAEvB,IAAIsnB,EAAQxB,EAAG/lB,OAAO,KAAKuD,QAAQ,oBAAoB,GAAMtD,KAAK,YAAahjB,KAAKokB,cAAcvV,MAGlGy7B,EAAMvnB,OAAO,KAAKuD,QAAQ,cAAc,GACnCtD,KAAK,OAAQ,QACbA,KAAK,SAAU,QACfA,KAAK,iBAAkB,IACvBA,KAAK,eAAgB,KACrBgG,UAAU,QACV9jB,KAAKlF,KAAKuoC,OAAOgC,SACjBC,KAAK,QAELxnB,KAAK,KAAK,SAACymB,EAAQ7kC,GAChB,MAAO,IAAM6kC,EAAEtkC,OAAOqe,EAAI,IAAOimB,EAAEtkC,OAAQ,EACvC,KAAQskC,EAAEtkC,OAAOse,EAAIgmB,EAAEjrB,OAAOiF,GAAK,EACnC,IAAMgmB,EAAEjrB,OAAOgF,EACf,IAAOimB,EAAEjrB,OAAQ,KAI7B,IAAIisB,EAAUH,EAAMvnB,OAAO,KAAKuD,QAAQ,gBAAgB,GACxDmkB,EAAQzhB,UAAU,QACb9jB,KAAKklC,GACLI,KAAK,QACLjnC,QAAO,SAASkmC,GAAU,MAAgC,cAAzBA,EAAEvkC,KAAK0Q,iBACxC0Q,QAAQ,uBAAuB,GAC/BtD,KAAK,KAAK,SAACymB,GAAW,OAAAA,EAAEjmB,EAAKN,EAAiBgD,SAAW,KACzDlD,KAAK,KAAK,SAACymB,GAAW,OAAAA,EAAEhmB,EAAIP,EAAiBiD,SAAW,EAAIjD,EAAiBwE,WAAa,KAC1F1E,KAAK,QAAQ,SAACymB,GAAW,SAAKpB,UAA8C,MAAjCoB,EAAEvkC,KAAKqf,uBAAiC,EAAA1E,4BAA8B,EAAAF,0BAA6B,EAAAG,6BAC9IkD,KAAK,QAASE,EAAiBwnB,YAC/B1nB,KAAK,SAAUE,EAAiBwE,YAChC1E,KAAK,UAAU,SAACymB,GAAW,SAAKpB,UAA8C,MAAjCoB,EAAEvkC,KAAKqf,uBAAiC,KAAO,OAAU,QACtGvB,KAAK,KAAM,GACXA,KAAK,gBAAgB,SAACymB,GAAW,OAAAA,EAAEvkC,KAAK0Q,iBACxCoN,KAAK,kBAAkB,SAACymB,GACrB,OAAiC,MAAjCA,EAAEvkC,KAAKqf,0BAEVrkB,GAAGgjB,EAAiBynB,yBAAyB,SAASt3B,EAAYnO,GAAayf,EAAKilB,cAAcv2B,EAAOrT,KAAMkF,MAC/GhF,GAAGgjB,EAAiB0nB,wBAAwB,SAASv3B,EAAYnO,GAAayf,EAAKmlB,cAAcz2B,EAAOrT,KAAMkF,MAC9GhF,GAAGgjB,EAAiB2nB,wBAAwB,SAASx3B,EAAYnO,GAAayf,EAAKwlB,eAAe92B,EAAOrT,KAAMkF,MAGpHulC,EAAQzhB,UAAU,iBACb9jB,KAAKklC,GACLI,KAAK,iBACLjnC,QAAO,SAASkmC,GAAU,MAAgC,cAAzBA,EAAEvkC,KAAK0Q,iBACxC0Q,QAAQ,uBAAuB,GAC/BtD,KAAK,KAAK,SAACymB,GACR,OAAAA,EAAEjmB,EAAKN,EAAiBwnB,WAAa,KAExC1nB,KAAK,KAAK,SAACymB,GAAW,OAAAA,EAAEhmB,EAAIP,EAAiBiD,SAAW,EAAIjD,EAAiBwE,WAAa,KAC1F1E,KAAK,YAAaE,EAAiB4nB,kBAAoB,MACvD9nB,KAAK,UAAU,SAACymB,GAAW,SAAKpB,UAA8C,MAAjCoB,EAAEvkC,KAAKqf,uBAAiC,KAAO,OAAU,QACtGvB,KAAK,gBAAgB,SAACymB,GAAW,OAAAA,EAAEvkC,KAAK0Q,iBACxCoN,KAAK,kBAAkB,SAACymB,GAAW,OAAiC,MAAjCA,EAAEvkC,KAAKqf,0BAC1CvB,KAAK,cAAe,cACpBA,KAAK,cAAe,QACpBA,KAAK,YAAaE,EAAiB4nB,mBACnC9nB,KAAK,kBAAmB,SACxBA,KAAK,eAAgB,GACrBA,KAAK,QAASE,EAAiBwnB,YAC/B1nB,KAAK,SAAUE,EAAiBwE,WAAa,GAC7C3E,OAAO,WACPC,KAAK,QAAS,gCACdA,KAAK,OAAQ,SACbA,KAAK,SAAUE,EAAiBwE,WAAa,GAC7C5O,MAAM,aAAc,UACpBA,MAAM,iBAAkB,UACxBA,MAAM,UAAW,cACjBA,MAAM,QAAS,SACfA,MAAM,SAAWoK,EAAiBwE,WAAa,EAAK,MACpD5O,MAAM,QAASoK,EAAiBwnB,WAAa,MAC7ClB,MAAK,SAASC,GACX,IAAIpyB,EAAwC,MAAjCoyB,EAAEvkC,KAAKqf,uBAAiCI,EAAKb,mBAAmB4F,oBAAoB+f,EAAEvkC,KAAKqf,wBAAwBhJ,MAAM+P,eAAiB3G,EAAKP,cAAc7I,MAAM+P,eAG9K,QADA,EAAA/D,mBAAmBlQ,EAAM6L,EAAiB4nB,mBAAsB5nB,EAAiBwnB,WAAa,KAAKrzB,EAAOA,EAAK0zB,UAAU,EAAG,IAAM,OAC3H1zB,KAEVnX,GAAGgjB,EAAiBynB,yBAAyB,SAASt3B,EAAYnO,GAAayf,EAAKilB,cAAcv2B,EAAOrT,KAAMkF,MAC/GhF,GAAGgjB,EAAiB0nB,wBAAwB,SAASv3B,EAAYnO,GAAayf,EAAKmlB,cAAcz2B,EAAOrT,KAAMkF,MAC9GhF,GAAGgjB,EAAiB2nB,wBAAwB,SAASx3B,EAAYnO,GAAayf,EAAKwlB,eAAe92B,EAAOrT,KAAMkF,MAGpHolC,EAAMvnB,OAAO,KAAKuD,QAAQ,SAAS,GAC9B0C,UAAU,QACV9jB,KAAKklC,GACLI,KAAK,QACLjnC,QAAO,SAASkmC,GAAU,MAAgC,cAAzBA,EAAEvkC,KAAK0Q,iBACxC0Q,QAAQ,qBAAqB,GAC7BtD,KAAK,KAAK,SAACymB,GAAW,OAAAA,EAAEjmB,EAAKN,EAAiBgD,SAAW,KACzDlD,KAAK,KAAK,SAACymB,GAAW,OAAAA,EAAEhmB,EAAKP,EAAiBiD,SAAW,KACzDnD,KAAK,QAAQ,SAACymB,GAAW,OAAiC,MAAjCA,EAAEvkC,KAAKqf,uBAAiC,EAAA3E,oBAAsB,EAAAF,qBACvFsD,KAAK,QAASE,EAAiBgD,UAC/BlD,KAAK,SAAUE,EAAiBiD,UAChCnD,KAAK,KAAM,GACXA,KAAK,UAAU,SAACymB,GAAW,SAAKpB,UAA8C,MAAjCoB,EAAEvkC,KAAKqf,uBAAiC,KAAO,OAAU,QACtGvB,KAAK,gBAAgB,SAACymB,GAAW,OAAAA,EAAEvkC,KAAK0Q,iBACxCoN,KAAK,kBAAkB,SAACymB,GAAW,OAAiC,MAAjCA,EAAEvkC,KAAKqf,0BAC1C0E,MAAK,SAASwgB,GACkB,cAAzBA,EAAEvkC,KAAK0Q,gBACH6zB,EAAEvkC,KAAK8gB,gBACPyjB,EAAEvkC,KAAK6gB,aAAe,CAAEvC,EAAGimB,EAAEjmB,EAAIN,EAAiBgD,SAAW,EAAGzC,EAAGgmB,EAAEhmB,EAAgC,EAA5BP,EAAiBiD,SAAczC,MAAmC,EAA5BR,EAAiBgD,SAAe,IAAKvC,OAAoC,EAA5BT,EAAiBiD,UAE7KsjB,EAAEvkC,KAAK6gB,aAAe,CAAEvC,EAAGimB,EAAEjmB,EAAIN,EAAiBgD,SAAW,EAAGzC,EAAGgmB,EAAEhmB,EAAIP,EAAiBiD,SAAW,EAAGzC,MAAOR,EAAiBgD,SAAUvC,OAAQT,EAAiBiD,cAI9KjmB,GAAGgjB,EAAiBynB,yBAAyB,SAASt3B,EAAYnO,GAAayf,EAAKilB,cAAcv2B,EAAOrT,KAAMkF,MAC/GhF,GAAGgjB,EAAiB0nB,wBAAwB,SAASv3B,EAAYnO,GAAayf,EAAKmlB,cAAcz2B,EAAOrT,KAAMkF,MAC9GhF,GAAGgjB,EAAiB2nB,wBAAwB,SAASx3B,EAAYnO,GAAayf,EAAKwlB,eAAe92B,EAAOrT,KAAMkF,MAGpH,IAAM8lC,EAAuB,EAAvBA,EAAiC,GACnCC,EAASX,EAAMvnB,OAAO,KAAKuD,QAAQ,yBAAyB,GAChE2kB,EAAOjiB,UAAU,QAAQ9jB,KAAKlF,KAAKuoC,OAAOgC,SAASC,KAAK,QACnDlkB,QAAQ,4BAA4B,GACpCtD,KAAK,KAAK,SAACymB,GAAW,OAAAA,EAAEtkC,OAAOqe,EAAIwnB,EAAmB,KACtDhoB,KAAK,KAAK,SAACymB,GAAW,OAAAA,EAAEtkC,OAAOse,EAAIP,EAAiBiD,SAAW,EAAI6kB,EAAoB,KACvFhoB,KAAK,QAASgoB,GACdhoB,KAAK,SAAUgoB,GACfhoB,KAAK,QAAQ,SAACymB,GAAW,SAAKpB,UAAqD,MAAxCoB,EAAEtkC,OAAOD,KAAKqf,uBAAiC,EAAA1E,4BAA8B,EAAAF,0BAA6B,EAAAG,6BAC1JmrB,EAAOjiB,UAAU,QAAQ9jB,KAAKlF,KAAKuoC,OAAOgC,SAASC,KAAK,QACnDlkB,QAAQ,4BAA4B,GACpCtD,KAAK,OAAQ,QACbA,KAAK,SAAU,SACfA,KAAK,eAAgB,KACrBA,KAAK,KAAK,SAACymB,GAAW,WAAOA,EAAEtkC,OAAOqe,EAAIwnB,EAAmB,EAAyB,EAAnBA,EAAwB,GAAM,KAAOvB,EAAEtkC,OAAOse,EAAIP,EAAiBiD,SAAW,EAAI6kB,EAAoB,EAA0B,EAApBA,EAAyB,GACrM,IAAOvB,EAAEtkC,OAAQ,EAAI,KAAOskC,EAAEtkC,OAAOse,EAAIP,EAAiBiD,SAAW,EAAI6kB,EAAoB,EAAKA,EAAoB,GACtH,KAAOvB,EAAEtkC,OAAOqe,EAAIwnB,EAAmB,EAAKA,EAAmB,GAAM,KAAOvB,EAAEtkC,OAAOse,EAAIP,EAAiBiD,SAAW,EAAI6kB,EAAoB,EAAIA,EAAoB,MAI7KV,EAAMvnB,OAAO,KAAKuD,QAAQ,0BAA0B,GAC/C0C,UAAU,QACV9jB,KAAKklC,GACLI,KAAK,QACLjnC,QAAO,SAASkmC,GAAU,MAAgC,cAAzBA,EAAEvkC,KAAK0Q,iBACxC0Q,QAAQ,+BAA+B,GACvCtD,KAAK,KAAK,SAACymB,GAAW,OAAAA,EAAEjmB,EAAKN,EAAiBgD,SAAW,KACzDlD,KAAK,KAAK,SAACymB,GAAW,OAAAA,EAAEhmB,EAAKP,EAAiBiD,SAAW,KACzDnD,KAAK,QAASE,EAAiBgD,UAC/BlD,KAAK,SAAUE,EAAiBiD,UAChCnD,KAAK,OAAQ,SAGlBsnB,EAAMvnB,OAAO,KAAKuD,QAAQ,wBAAwB,GAC7C0C,UAAU,QACV9jB,KAAKklC,GACLI,KAAK,QACLjnC,QAAO,SAASkmC,GAAU,MAAgC,cAAzBA,EAAEvkC,KAAK0Q,iBACxC0Q,QAAQ,6BAA6B,GACrCtD,KAAK,KAAK,SAACymB,GAAW,OAAAA,EAAEjmB,EAAKN,EAAiBgD,SAAW,KACzDlD,KAAK,KAAK,SAACymB,GAAW,OAAAA,EAAEhmB,EAAKP,EAAiBiD,SAAW,KACzDnD,KAAK,QAASE,EAAiBgD,UAC/BlD,KAAK,SAAUE,EAAiBiD,UAChCnD,KAAK,OAAQ,QACbA,KAAK,SAAU,WACfA,KAAK,eAAgB,KACrBA,KAAK,mBAAoB,OACzBA,KAAK,gBAAgB,SAACymB,GAAW,OAAAA,EAAEvkC,KAAK0Q,iBAG7C00B,EAAMvnB,OAAO,KAAKuD,QAAQ,mBAAmB,GACxCtD,KAAK,cAAe,cACpBA,KAAK,YAAaE,EAAiBgoB,iBACnCloB,KAAK,kBAAmB,SACxBA,KAAK,eAAgB,GACrBgG,UAAU,iBACV9jB,KAAKklC,GACLI,KAAK,iBACLlkB,QAAQ,sBAAsB,GAC9BtD,KAAK,KAAK,SAACymB,GAAW,OAAAA,EAAEjmB,EAAKN,EAAiBgD,SAAW,EAAK,KAC9DlD,KAAK,KAAK,SAACymB,GAAW,OAAAA,EAAEhmB,EAAKP,EAAiBiD,SAAW,EAAK,KAC9DnD,KAAK,QAASE,EAAiBgD,SAAW,GAAK,GAC/ClD,KAAK,SAAUE,EAAiBiD,SAAW,GAK3CnD,KAAK,UAAU,SAACymB,GAAW,SAAKpB,UAA8C,MAAjCoB,EAAEvkC,KAAKqf,uBAAiC,KAAO,OAAU,QACtGvB,KAAK,gBAAgB,SAACymB,GAAW,OAAAA,EAAEvkC,KAAK0Q,iBACxCoN,KAAK,kBAAkB,SAACymB,GAAW,OAAiC,MAAjCA,EAAEvkC,KAAKqf,0BAC1CxB,OAAO,WACPC,KAAK,QAAS,gCACdA,KAAK,cAAe,SACpBA,KAAK,aAAc,QACnBlK,MAAM,iBAAkB,UACxBA,MAAM,UAAW,cACjBA,MAAM,QAASoK,EAAiBgD,SAAW,GAAK,EAAI,MACpDpN,MAAM,SAAUoK,EAAiBiD,SAAW,EAAI,MAChDqjB,MAAK,SAACC,GAAW,OAAAA,EAAEvkC,KAAKqW,SACxBrb,GAAGgjB,EAAiBynB,yBAAyB,SAASt3B,EAAYnO,GAAayf,EAAKilB,cAAcv2B,EAAOrT,KAAMkF,MAC/GhF,GAAGgjB,EAAiB0nB,wBAAwB,SAASv3B,EAAYnO,GAAayf,EAAKmlB,cAAcz2B,EAAOrT,KAAMkF,MAC9GhF,GAAGgjB,EAAiB2nB,wBAAwB,SAASx3B,EAAYnO,GAAayf,EAAKwlB,eAAe92B,EAAOrT,KAAMkF,MAGhHlF,KAAKqoC,WACLiC,EAAMvnB,OAAO,KAAKuD,QAAQ,6BAA6B,GAClD0C,UAAU,QACV9jB,KAAKklC,GACLI,KAAK,QACLjnC,QAAO,SAASkmC,GACb,MAAiC,cAAzBA,EAAEvkC,KAAK0Q,eAAkF,MAAjC6zB,EAAEvkC,KAAKqf,0BAE1E+B,QAAQ,+BAA+B,GACvCtD,KAAK,gBAAgB,SAACymB,GAAW,OAAAA,EAAEvkC,KAAK0Q,iBACxCoN,KAAK,KAAK,SAACymB,GAAW,OAAAA,EAAEjmB,EAAKN,EAAiBgD,SAAW,EAAMhD,EAAyC,yBAAI,KAC5GF,KAAK,KAAK,SAACymB,GAAW,OAAAA,EAAEhmB,EAAiD,GAA5CP,EAAiBioB,yBAAkCjoB,EAAiBioB,yBAA2B,KAC5HryB,MAAM,cAAe,eACrBA,MAAM,SAAU,WAChBA,MAAM,OAAQ,WACdA,MAAM,YAAaoK,EAAiBioB,yBAA2B,MAC/D3jB,KAAK,KACLtnB,GAAG,SAAS,SAASmT,EAAOgO,GAAQsD,EAAKZ,cAAc1C,EAAKnc,KAAK0Q,eAAew1B,kCAE3EprC,KAAK6oC,sBAAsBC,EAAI,uBAE/B9oC,KAAK6oC,sBAAsBC,EAAI,sBA1bnC,EAAA5iB,SAAmB,IACnB,EAAAC,SAAmB,GACnB,EAAA+kB,gBAA0B,EAC1B,EAAAC,yBAAmC,GAEnC,EAAAT,WAAqB,IACrB,EAAAhjB,WAAqB,GACrB,EAAAojB,kBAA4B,EAE5B,EAAAH,wBAA0B,aAE1B,EAAAC,uBAAyB,YAEzB,EAAAC,uBAAyB,aAob3C,EAncA,GAAa,EAAA3nB,oB,mHCbb,WAOA,GANA,MACA,MAEA,MAEA,MACA,Q,GAIA,O,2GCVE,4BAAqE,YAAW,kB,6BAAX,+C,mDAGnE,0BACE,wCAAiB,gHAAiC,4FAAuC,iBAC3F,iB,iCADmB,8D,mDAEnB,0BACE,sCAAe,gHAAiC,4FAAuC,iBACzF,iB,iCADiB,8D,mDAEjB,0BACE,8CAAuB,gHAAiC,4FAAuC,iBACjG,iB,iCADyB,8D,mDAEzB,0BACE,0CAAmB,gHAAiC,4FAAuC,iBAC7F,iB,iCADqB,8D,yBAXvB,0BACE,8BAGA,8BAGA,8BAGA,8BAGF,kB,6BAZQ,oDAGA,yDAGA,iEAGA,8DDAV,iBAWI,WAAqBvH,EAA2BE,EAAgCmE,EACpEE,EAA8CmrB,GADrC,KAAA1vB,UAA2B,KAAAE,aAAgC,KAAAmE,eACpE,KAAAE,kBAA8C,KAAAmrB,SAJ1D,KAAAvwB,QAAkB,KAClB,KAAA7B,MAAgB,M,OAMhB,YAAAzZ,SAAA,aAGA,YAAA8rC,cAAA,SAAej4B,GACI,SAAVA,EACDrT,KAAKurC,aAEW,SAAVl4B,EACNrT,KAAKwrC,aAEW,WAAVn4B,GACNrT,KAAKyrC,gBAIb,YAAAF,WAAA,WACwB,aAAfvrC,KAAKiZ,QACNjZ,KAAKiZ,MAAQ,QAIrB,YAAAuyB,WAAA,WACwB,QAAfxrC,KAAKiZ,MAEAjZ,KAAKgyB,cAAc0Z,WAIrB1rC,KAAK2rC,eAHL3rC,KAAKiZ,MAAQ,WAMI,aAAfjZ,KAAKiZ,MACXjZ,KAAK2rC,eAEgB,qBAAf3rC,KAAKiZ,MAE6B,MAAnCjZ,KAAKgyB,cAAciJ,aACpBj7B,KAAKiZ,MAAQ,eAGbjZ,KAAK2rC,eAGY,iBAAf3rC,KAAKiZ,OACXjZ,KAAK2rC,gBAIb,YAAAA,aAAA,sBACI3rC,KAAK8a,QAAU,KAEf9a,KAAK2b,QAAQwW,gBAAiBnyB,KAAKgyB,eAAgB1V,MAAM,SAAAka,GAErB,MAA3BA,EAAOmE,kBACR,EAAK1hB,MAAQ,mBACb,EAAK+Y,cAAgBwE,GAEQ,MAAvBA,EAAOyE,cACb,EAAKhiB,MAAQ,eACb,EAAK+Y,cAAgBwE,IAGrB,EAAK3a,WAAWmD,OAEhB,EAAKnD,WAAa,EAAKmE,aAAaoM,KAAM,EAAAuB,sBAAuB,CAC7DT,UAAU,EACVC,UAAU,EACVC,qBAAqB,IAEzB,EAAKvR,WAAWwR,QAAQvS,QAAU,EAAKoF,gBAAgBmC,OAAQ,oDAC/D,EAAKxG,WAAWwR,QAAQO,WAAa,EAAK1N,gBAAgBmC,OAAQ,2CAClE,EAAKxG,WAAWwR,QAAQue,WAAa,EAAK1rB,gBAAgBmC,OAAQ,sBAEzC,EAAKxG,WAAWwR,QAAUQ,UAAU1L,WAAW,SAAAjd,GACpE,EAAKmmC,OAAOQ,SAAS,CAAC,oCAG9BlvB,OAAM,SAAEoC,GACR,EAAKlC,MAAOkC,OAKpB,YAAA0sB,aAAA,sBACIzrC,KAAK8a,QAAU,KAEf9a,KAAK2b,QAAQuW,aAAclyB,KAAKgyB,eAAgB1V,MAAM,SAAAyC,GAClD,EAAKlD,WAAWmD,UAChBrC,OAAM,SAAEC,GACR,EAAKC,MAAOD,OAIpB,YAAAC,MAAA,SAAOD,GACC5c,KAAK8a,QAAU,EAAAwE,aAAaC,oBAAoB3C,I,iCAxG/C5S,GAAuB,oL,iCAAvBA,EAAuB,0QClBpC,4BACE,8BAEA,8BAcF,kB,MAhBQ,oDAEA,6E,oJDUR,GAKa,EAAAA,2B,+DAAAA,EAAuB,E,KALnC,EAAAmP,U,MAAW,CACRC,SAAU,kBACVC,YAAa,mCACbC,UAAW,Q,4PEhBf,WAEA,Q,GAEA,OACA,O,iFCDQ,yBAA4C,YAAoC,kB,uBAApC,iE,yBAD9C,yBACE,6BACF,kB,6BAD0B,0D,yFAI5B,0BACE,4BACE,8BAAgC,uGAAyB,qGAAzD,iBACF,iBACA,4BACE,0BAA8E,gG,uBAA+F,iBAC7K,0BAA8C,uG,uBAA6F,iBAC7I,iBACF,iB,gCANW,oDAAwB,wBAAxB,CAAwB,oBAAxB,CAAwB,yBAAxB,CAAwB,2BAG5B,6EAAmC,4EACyC,iG,yBAa3E,yBAAsD,YAAkB,kB,uBAAlB,6C,yBAT5D,4BACE,wBACE,sBACA,sBACA,6BAAyD,YAC3D,iBACA,2BACE,yBACE,6BACA,6BACF,iBACF,iBACF,kB,8BAR6D,sEAK9B,mE,yBAI/B,4BACE,6BACA,YACF,kB,8BADE,uE,mDAhBJ,0BACE,gCAaA,+BAIA,4BACE,2BAAsC,6F,uBAAoF,iBAC5H,iBACF,iB,gCApByB,qEAaA,8EAKwC,iGD7BrE,iBAoBI,WAAqBqC,GAArB,WAAqB,KAAAA,UATX,KAAAmwB,QAA6B,IAAI,EAAAvsC,aAUvCS,KAAKu7B,WAAa,EAAAC,WAAWze,QAAO,SAAE0e,GAClC,EAAK9f,QAAQ6W,wBAAyB,EAAKuZ,YAAa,EAAKhR,QAAQx5B,KAAM,EAAKw5B,QAAQ9U,OAAQ,EAAK+L,cAAcja,WAAYuE,MAAM,SAAAof,GACjID,EAASlhB,KAAMmhB,S,OAK3B,YAAAl8B,SAAA,WACIQ,KAAK+rC,YAAc,KACnB/rC,KAAK0yB,SAAW,KAChB1yB,KAAKgsC,YAAa,GAGtB,YAAA7P,kBAAA,SAAmBxtB,GACf3O,KAAK0yB,SAAW/jB,EAAE6d,KAAK/qB,GACvBzB,KAAKgsC,WAAgC,MAAjBhsC,KAAK0yB,UAG7B,YAAAuZ,cAAA,sBACSjsC,KAAKgsC,aACNhsC,KAAK8rC,QAAQvR,KAAM,MAEnBv6B,KAAK2b,QAAQ8W,uBAAwBzyB,KAAK0yB,SAAU1yB,KAAK+6B,QAAQxf,OAAQe,MAAM,SAAAyC,GAC3E,EAAKgc,QAAQH,UAAW,EACxB,EAAKG,QAAQpqB,OAAS,CAClB0G,KAAM,UACNub,UAAW7T,EAAS6T,UACpBC,KAAM9T,EAAS8T,KACftX,MAAOwD,EAASxD,UAEpBoB,OAAO,SAAAhO,GACP,EAAKm9B,QAAQvR,KAAM5rB,EAAEkO,YAKjC,YAAAqvB,qBAAA,WACI,IAAIC,EAAgBnsC,KAAK+6B,QAAQxf,MACjBvb,KAAK+6B,QAAQx5B,KAE7BvB,KAAK+6B,QAAQH,UAAW,EAExB56B,KAAK+6B,QAAQpqB,OAAS,CAClB0G,KAAM,mBACNkE,MAAO4wB,IAIf,YAAAC,WAAA,sBACwBpsC,KAAK+6B,QAAQxf,MACjBvb,KAAK+6B,QAAQx5B,KAE7B,GAAKvB,KAAK+6B,QAAQH,SAAW,CACzB,IAAIjqB,EAAS3Q,KAAK+6B,QAAQpqB,OAEN,oBAAfA,EAAO0G,MACRrX,KAAK+6B,QAAQH,UAAW,EACxB56B,KAAK+6B,QAAQpqB,OAAS,MAED,WAAfA,EAAO0G,OACbrX,KAAK8rC,QAAQvR,KAAM,MAEnBv6B,KAAK2b,QAAQgX,uBAAwBhiB,EAAOiiB,UAAWjiB,EAAOkiB,MAAOvW,MAAM,SAAAyC,GACvE,EAAKgc,QAAQH,UAAW,EACxB,EAAKG,QAAQpqB,OAAS,KAEtB,EAAKo7B,YAAc,KACnB,EAAKC,WAAmC,MAApB,EAAKD,eACzBpvB,OAAO,SAAAhO,GACP,EAAKm9B,QAAQvR,KAAM5rB,EAAEkO,a,iCApF5BzS,GAAwB,mC,iCAAxBA,EAAwB,w8BCbrC,4BACE,kCACE,4BACE,6BAGF,iBACA,4BAAoC,YAAyC,iBAC7E,+BASA,8BAsBF,iBACF,kB,MArCW,+DAI6B,qFAC9B,wDASA,yD,kPDVV,GAMa,EAAAA,4B,+DAAAA,EAAwB,E,KANpC,EAAA+O,U,MAAW,CAERC,SAAU,mBACVC,YAAa,oCACbC,UAAW,Q,yCAIF0Y,cAAe,CAAF,C,KAArB,EAAAxY,QACQuhB,QAAS,CAAF,C,KAAf,EAAAvhB,QACQyQ,MAAO,CAAF,C,KAAb,EAAAzQ,QACSsyB,QAAS,CAAF,C,KAAhB,EAAA7kC,Y,gHElBL,WAEA,QACA,S,GAEA,OACA,O,6ICFI,0BACE,4BACE,8BAAgC,qGAAuB,qGAAvD,iBACF,iBACA,4BACE,0BAA8E,gG,uBAA2F,iBACzK,0BAAsC,+F,uBAAoF,iBAC1H,0BAA8C,8F,uBAAkF,iBAClI,iBACF,iB,gCAPW,oDAAwB,sBAAxB,CAAwB,oBAAxB,CAAwB,yBAAxB,CAAwB,2BAG5B,6EAAmC,wEACyB,+FACO,+F,sBAIxE,4BACE,6BACF,kB,yBACA,4BACE,6BACA,YACF,kB,8BADE,uE,yBAEF,4BACE,6BACA,YACF,kB,8BADE,gE,mDAVJ,0BACE,+BAGA,+BAIA,+BAIA,4BACE,2BAAsC,6F,uBAAoF,iBAC5H,iBACF,iB,gCAdyB,oEAGA,qEAIA,oEAKwC,iGDnBrE,iBAoBI,WAAqB0U,GAArB,WAAqB,KAAAA,UATX,KAAAmwB,QAA6B,IAAI,EAAAvsC,aAUvCS,KAAKu7B,WAAa,EAAAC,WAAWze,QAAO,SAAE0e,GAClC,EAAK9f,QAAQmX,mBAAoB,EAAKiI,QAAQhI,cAAe,EAAKsZ,UAAW,MAAO/vB,MAAM,SAAAof,GACtFD,EAASlhB,KAAMmhB,S,OAK3B,YAAAl8B,SAAA,WACIQ,KAAKqsC,UAAY,KACjBrsC,KAAKssC,OAAS,KACdtsC,KAAKgsC,YAAa,GAGtB,YAAA7P,kBAAA,SAAmBxtB,GACf3O,KAAKssC,OAAS39B,EAAE6d,KAAKlqB,MACrBtC,KAAKgsC,WAA8B,MAAfhsC,KAAKssC,QAG7B,YAAAL,cAAA,sBACSjsC,KAAKgsC,aACNhsC,KAAK8rC,QAAQvR,KAAM,MAEnBv6B,KAAK2b,QAAQsX,kBAAmBjzB,KAAKssC,OAAQtsC,KAAK+6B,QAAQxf,OAAQe,MAAM,SAAAyC,GACpE,EAAKgc,QAAQH,UAAW,EACxB,EAAKG,QAAQpqB,OAAS,CAClB0G,KAAM,UACNub,UAAW7T,EAAS6T,UACpBrX,MAAOwD,EAASxD,UAEpBoB,OAAO,SAAAhO,GACP,EAAKm9B,QAAQvR,KAAM5rB,EAAEkO,YAKjC,YAAA0vB,aAAA,sBACIvsC,KAAK8rC,QAAQvR,KAAM,MAEnBv6B,KAAK2b,QAAQyX,WAAYpzB,KAAK+6B,QAAQxf,MAAO,OAAQvb,KAAK+6B,QAAQyR,YAAYlwB,MAAM,SAAA+Y,GAChF,EAAK0F,QAAQH,UAAW,EACxB,EAAKG,QAAQpqB,OAAS,CAClB0G,KAAM,SACNge,KAAMA,MAEV1Y,OAAO,SAAAhO,GACP,EAAKm9B,QAAQvR,KAAM5rB,EAAEkO,WAI7B,YAAA4vB,YAAA,WACIzsC,KAAK+6B,QAAQH,UAAW,EAExB56B,KAAK+6B,QAAQpqB,OAAS,CAClB0G,KAAM,WAId,YAAA+0B,WAAA,sBAEI,GAAKpsC,KAAK+6B,QAAQH,SAAW,CAEzB,IAAIjqB,EAAS3Q,KAAK+6B,QAAQpqB,OAEN,UAAfA,EAAO0G,MACRrX,KAAK+6B,QAAQH,UAAW,EACxB56B,KAAK+6B,QAAQpqB,OAAS,MAED,WAAfA,EAAO0G,MACbrX,KAAK8rC,QAAQvR,KAAM,MAEnBv6B,KAAK2b,QAAQwX,kBAAmBxiB,EAAOiiB,WAAYtW,MAAM,SAAAyC,GACrD,EAAKgc,QAAQH,UAAW,EACxB,EAAKG,QAAQpqB,OAAS,QACtBgM,OAAO,SAAAhO,GACP,EAAKm9B,QAAQvR,KAAM5rB,EAAEkO,WAGJ,UAAflM,EAAO0G,OACbrX,KAAK8rC,QAAQvR,KAAM,MAEnBv6B,KAAK2b,QAAQ4X,WAAWvzB,KAAK+6B,QAAQyR,WAAY77B,EAAO0kB,KAAKxmB,MAAOyN,MAAM,SAAAyC,GACtE,EAAKgc,QAAQH,UAAW,EACxB,EAAKG,QAAQpqB,OAAS,QACtBgM,OAAO,SAAAhO,GACP,EAAKm9B,QAAQvR,KAAM5rB,EAAEkO,a,iCAnG5BvS,GAAoB,mC,iCAApBA,EAAoB,y1BCdjC,4BACE,kCACE,4BAAsB,YAA0B,iBAChD,4BAAoC,YAAiB,iBACrD,gCAUA,8BAgBF,iBACF,kB,MA7B0B,6DACc,oDAC9B,wDAUA,yD,wODNV,GAMa,EAAAA,wB,+DAAAA,EAAoB,E,KANhC,EAAA6O,U,MAAW,CAERC,SAAU,eACVC,YAAa,gCACbC,UAAW,Q,yCAIF0Y,cAAe,CAAF,C,KAArB,EAAAxY,QACQuhB,QAAS,CAAF,C,KAAf,EAAAvhB,QACQyQ,MAAO,CAAF,C,KAAb,EAAAzQ,QACSsyB,QAAS,CAAF,C,KAAhB,EAAA7kC,Y,qHEnBL,WAOA,GALA,MACA,MACA,MAEA,MACA,Q,GAGA,O,2GCTE,4BAAqE,YAAW,kB,6BAAX,+C,mDAGnE,0BACE,wCAAiB,gHAAiC,4FAAuC,iBAC3F,iB,iCADmB,8D,mDAEnB,0BACE,sCAAe,gHAAiC,4FAAuC,iBACzF,iB,iCADiB,8D,mDAEjB,0BACE,8CAAuB,gHAAiC,4FAAuC,iBACjG,iB,iCADyB,8D,mDAEzB,0BACE,0CAAmB,gHAAiC,4FAAuC,iBAC7F,iB,iCADqB,8D,yBAXvB,0BACE,8BAGA,8BAGA,8BAGA,8BAGF,kB,6BAZQ,oDAGA,yDAGA,iEAGA,8DDDV,iBAWE,WAAqB0U,EAA2BE,EAAgCmE,EACtEE,EAA8CmrB,GADnC,KAAA1vB,UAA2B,KAAAE,aAAgC,KAAAmE,eACtE,KAAAE,kBAA8C,KAAAmrB,SAJtD,KAAAvwB,QAAkB,KAClB,KAAA7B,MAAgB,M,OAMhB,YAAAzZ,SAAA,aAGA,YAAA8rC,cAAA,SAAej4B,GACI,SAAVA,EACDrT,KAAKurC,aAEW,SAAVl4B,EACNrT,KAAKwrC,aAEW,WAAVn4B,GACNrT,KAAKyrC,gBAIb,YAAAF,WAAA,WACwB,aAAfvrC,KAAKiZ,QACNjZ,KAAKiZ,MAAQ,QAIrB,YAAAuyB,WAAA,WACwB,QAAfxrC,KAAKiZ,MACAjZ,KAAKgyB,cAAc0Z,WAIrB1rC,KAAK2rC,eAHL3rC,KAAKiZ,MAAQ,WAMI,aAAfjZ,KAAKiZ,MACXjZ,KAAK2rC,eAEgB,qBAAf3rC,KAAKiZ,MAE6B,MAAnCjZ,KAAKgyB,cAAciJ,aACpBj7B,KAAKiZ,MAAQ,eAGbjZ,KAAK2rC,eAGY,iBAAf3rC,KAAKiZ,OACXjZ,KAAK2rC,gBAIb,YAAAA,aAAA,sBACI3rC,KAAK2b,QAAQoW,kBAAmB/xB,KAAKgyB,eAAgB1V,MAAM,SAAAka,GAEvB,MAA3BA,EAAOmE,kBACR,EAAK1hB,MAAQ,mBACb,EAAK+Y,cAAgBwE,GAEQ,MAAvBA,EAAOyE,cACb,EAAKhiB,MAAQ,eACb,EAAK+Y,cAAgBwE,IAGvB,EAAK3a,WAAWmD,OAEhB,EAAKnD,WAAa,EAAKmE,aAAaoM,KAAM,EAAAuB,sBAAuB,CAC3DT,UAAU,EACVC,UAAU,EACVC,qBAAqB,IAEzB,EAAKvR,WAAWwR,QAAQvS,QAAU,EAAKoF,gBAAgBmC,OAAQ,oDAC/D,EAAKxG,WAAWwR,QAAQO,WAAa,EAAK1N,gBAAgBmC,OAAQ,2CAEzC,EAAKxG,WAAWwR,QAAUQ,UAAU1L,WAAW,SAAAjd,GACpE,EAAKmmC,OAAOQ,SAAS,CAAC,oCAI9BlvB,OAAM,SAAEC,GACR,EAAKC,MAAOD,OAKpB,YAAA6uB,aAAA,sBACIzrC,KAAK2b,QAAQuW,aAAclyB,KAAKgyB,eAAgB1V,MAAM,SAAAyC,GAClD,EAAKlD,WAAWmD,UAChBrC,OAAM,SAAEC,GACR,EAAKC,MAAOD,OAIpB,YAAAC,MAAA,SAAOD,GACC5c,KAAK8a,QAAU,EAAAwE,aAAaC,oBAAoB3C,I,iCAnG/CrS,GAAyB,oL,iCAAzBA,EAAyB,4QCjBtC,4BACE,8BAEA,8BAcF,kB,MAhBQ,oDAEA,6E,oJDSR,GAKa,EAAAA,6B,+DAAAA,EAAyB,E,KALrC,EAAA4O,U,MAAW,CACRC,SAAU,oBACVC,YAAa,qCACbC,UAAW,Q,qPEff,WAIA,GAFA,MAEA,Q,GACA,M,0JCqBK,0BAAoI,2FAAuB,kBAC1I,6BACF,iB,gCAFmE,0E,mDAGlF,0BAAkI,2FAAuB,gBACxI,6BACF,iB,gCAFmE,wE,qBAMlF,iC,KAAgD,+B,qBAChD,iC,KAA8C,mCD3BnD,iBAeI,WAAoBgX,EAAkDtQ,EAAsCrE,GAAxF,KAAA2U,sBAAkD,KAAAtQ,eAAsC,KAAArE,UAP5G,KAAA0R,QAAkB,cAQdrtB,KAAK08B,QAAU/gB,EAAQ+gB,UACvB18B,KAAK28B,aAAe38B,KAAK08B,SAAW/gB,EAAQghB,eAC5C38B,KAAK48B,cAAgB58B,KAAK08B,SAAW18B,KAAK28B,cAAgBhhB,EAAQkhB,gBAElE78B,KAAK28B,aAAe38B,KAAK0sC,cAAc,eAAiB1sC,KAAK0sC,cAAc,U,OAG/E,YAAAltC,SAAA,aAGA,YAAAktC,cAAA,SAAcrf,GACVrtB,KAAKqtB,QAAUA,EAEC,gBAAZA,EACArtB,KAAK2sC,UAAY3sC,KAAKswB,oBAAoBjO,OAAO,qBAC9B,cAAZgL,EACPrtB,KAAK2sC,UAAY3sC,KAAKswB,oBAAoBjO,OAAO,mBAC9B,WAAZgL,IACPrtB,KAAK2sC,UAAY3sC,KAAKswB,oBAAoBjO,OAAO,qBAIlD,YAAAxF,MAAP,SAAaD,GACT5c,KAAK6b,WAAa,EAAAyD,aAAa6Q,kBAAkBvT,EAAK5c,KAAKggB,e,iCAjCtDpU,GAAiB,sH,iCAAjBA,EAAiB,qmBCf9B,4BACI,4BACA,6BAEA,4BAWI,4BACI,uBACT,4BAEC,4BACC,yBACC,YACD,iBACD,iBAEA,2BACC,6BAGA,6BAGD,iBAEA,6BACC,wCACA,wCACD,iBAEQ,iBACA,wBACJ,iBACR,iBA1CA,kB,MAqBM,yDAK6C,mDAGA,mDAM/B,8DACA,8D,+ND3BpB,GAMa,EAAAA,qB,+DAAAA,EAAiB,E,KAN7B,EAAAuN,U,MAAU,CAEPC,SAAU,YACVC,YAAa,6BACbC,UAAW,CAAC,wB,uNEbhB,WAEA,GADA,MACA,QAIA,SAKA,GAJA,MACA,OAGA,QACA,SACA,S,4MCZA,0BACE,0BACE,4BAEI,uBACA,4BAEI,8BACI,8BAA8D,iGAAkC,WAAhG,iBACA,6BACI,4BACJ,iBACA,0BACI,6BACJ,iBACJ,iBAEA,+BACI,+BAA8D,iGAAkC,eAAhG,iBACA,8BACI,8BACJ,iBACA,2BACI,8BACJ,iBACJ,iBAEA,8BACI,iCAA8C,yFAC1C,8BACJ,iBACJ,iBACJ,iBACA,yBACL,iBACD,iBACF,iB,gCA5BuC,wCAAc,yBAC/B,4EASiB,wCAAe,wBAChC,4E,yBA4BE,gCAAoF,YAAuC,kB,uBAApE,uCAA6B,4D,mDANhG,6BACI,+BACI,6BACJ,iBACA,6BACI,gCAAsE,6GAClE,kCACJ,iBACJ,iBACA,wBACJ,iB,iCAL8E,0DAC/B,0D,yBAUnC,gCAAwE,YAAc,kB,uBAAlC,wCAAoB,6C,mDALpF,6BACI,+BAAwD,6BAA8C,iBACtG,6BACI,gCAAoE,0GAA2B,yFAC3F,wBACA,kCACJ,iBACJ,iBACA,wBACJ,iB,iCAN4E,uDAEvC,iE,yBAUzB,gCAAmE,YAAmE,kB,uBAAvF,wCAAoB,iF,mDAL/E,6BACI,+BAA+C,6BAA4C,iBAC3F,6BACI,gCAAkD,qGAAsB,oFACpE,wBACA,kCACJ,iBACJ,iBACA,wBACJ,iB,iCAN0D,kDAErB,4D,qBAO7B,6B,qBACA,6B,yBAII,gCAA8E,YAAkB,kB,uBAA9C,4CAA4B,6C,qBA+BlF,6B,qBACA,6B,wBAGA,6B,8BACI,qC,wBACJ,6B,8BACI,qC,mDA/ExB,0BACI,0BACI,iCACI,+BAWA,+BAUA,+BAUA,6BACI,+BACI,oCACA,qCACJ,iBACA,8BACI,iCAA0D,0GAA4B,iFAClF,mCACJ,iBACJ,iBACA,yBACJ,iBACA,8BACI,gCAAmD,8BAAwC,iBAC3F,8BACE,wCAAiC,mGAAqB,iFAAuF,iBAC/I,iBAEA,yBACJ,iBACA,8BACI,gCAAiD,8BAAsC,iBACvF,8BACE,wCAAiC,iGAAmB,iFAA8H,iBACpL,iBAEA,yBACJ,iBACA,8BAEI,gCAAmD,8BAAyD,iBAC5G,8BACG,wCAAe,mGAA+B,iBACjD,iBACA,yBACJ,iBACA,8BACI,gCACI,qCACA,qCACJ,iBACA,8BACI,kCAEA,kCAEJ,iBACA,yBACJ,iBAEA,8BACI,yBACA,8BAII,iCAAoF,0FAChF,8BACJ,iBACJ,iBACA,yBACJ,iBACJ,iBACJ,iBACJ,iB,mDA/FkB,iDAWuB,6DAUA,wDAYV,uDACA,2DAG+C,wDACzB,0DAQF,iDAAqB,wBAArB,CAAqB,uBAQrB,+CAAmB,sBAAnB,CAAmB,mBAAnB,CAAmB,sBAAnB,CAAmB,eASpC,iDAMH,uDACA,2DAGH,uDAEA,2DAYsC,+DD/GlE,iBA0FI,WAAoBqC,EACR1K,EACA+O,EACAsQ,EACAhc,EACAs4B,EACApyB,EACAqyB,GAPQ,KAAAlxB,UACR,KAAA1K,eACA,KAAA+O,eACA,KAAAsQ,sBACA,KAAAhc,cACA,KAAAs4B,aACA,KAAApyB,mBACA,KAAAqyB,oBAvFZ,KAAA/wB,YAAqB,IAAIC,KAEzB,KAAA+wB,kBAA4B,EAE5B,KAAA9qC,SAAmB,EAiBnB,KAAA+qC,iBAA0B,CACtB,CAAEC,SAAU,EAAAC,eAAeC,eAAgB3xB,MAAOvb,KAAKswB,oBAAoBjO,OAAO,6CAClF,CAAE2qB,SAAU,EAAAC,eAAeE,SAAU5xB,MAAOvb,KAAKswB,oBAAoBjO,OAAO,uCAC5E,CAAE2qB,SAAU,EAAAC,eAAeG,YAAa7xB,MAAOvb,KAAKswB,oBAAoBjO,OAAO,2CAMnF,KAAA7O,SAAmB,KAKnB,KAAAhD,cAAwB,KAKxB,KAAAiD,UAAkB,KAKlB,KAAAC,QAAyB,KAkBzB,KAAA25B,YAAsB,EAYtB,KAAAC,WAAqB,EAErB,KAAAC,WAAqB,E,OAarB,YAAA/tC,SAAA,sBACIQ,KAAK4sC,WAAWtI,mBAAmB,EAAG,KAAKhoB,MAAK,SAAAkxB,GAC5C,EAAKC,gBAAkBD,EAAiBjJ,UAEJ,IAAhC,EAAKkJ,gBAAgBvrC,SACrB,EAAKmrC,YAAa,EAClB,EAAKP,kBAAmB,GAG5B,EAAKQ,WAAY,KAClB3wB,OAAM,SAACC,GACN,EAAKC,MAAMD,MAGf5c,KAAKwa,iBAAiBmX,2BAA2BrV,MAAK,SAAAoxB,GAClD,EAAKC,kBAAoBD,EACzB,EAAKE,aAAe,GAIpB,IADA,IAAIC,EAAO,EAAKF,kBAAkBzrC,OACzB0C,EAAI,EAAGA,EAAIipC,IAAQjpC,EAIxB,IAHA,IAAIkpC,EAAO,EAAKH,kBAAkB/oC,GAE9BmpC,EAAOD,EAAKvxB,MAAMra,O,WACbuD,GAIL,IAHA,IAAIlE,EAAOusC,EAAKvxB,MAAM9W,GAElBuoC,EAAO,EAAKL,kBAAkBzrC,OACzB,EAAI,EAAG,EAAI8rC,IAAQ,EAAG,CAC3B,IAAIC,EAAQ,EAAKN,kBAAkB,GAE/B91B,EAAUo2B,EAAM1xB,MAAM1Z,WAAU,SAAAqrC,GAAY,OAAA3sC,EAAKsN,OAASq/B,EAASr/B,SAEtD,IAAbgJ,IACAo2B,EAAM1xB,MAAM1E,GAAWtW,KAV1BkE,EAAI,EAAGA,EAAIsoC,IAAQtoC,E,EAAnBA,GAiBb,IAAId,EAAM,EAAKgpC,kBAAkBzrC,O,WACxB0C,GAIL,IAHA,IAAIkpC,EAAO,EAAKH,kBAAkB/oC,GAE9BmpC,EAAOD,EAAKvxB,MAAMra,O,WACbuD,GACL,IAAIlE,EAAOusC,EAAKvxB,MAAM9W,GAElBoS,EAAU,EAAK+1B,aAAa/qC,WAAU,SAAAqrC,GAAY,OAAAA,EAASr/B,OAAStN,EAAKsN,QAE7E,IAAiB,IAAbgJ,EAAgB,CAChB,IAAIq2B,EAAW,EAAKN,aAAa/1B,IAID,IAFHq2B,EAASr4B,YAAYhT,WAAU,SAAAsrC,GAAY,OAAAA,EAASt/B,OAASi/B,EAAKj/B,SAG3Fq/B,EAASr4B,YAAY7S,KAAK8qC,QAGN,MAApBvsC,EAAKsU,cACLtU,EAAKsU,YAAc,IAEvBtU,EAAKsU,YAAY7S,KAAK8qC,GACtB,EAAKF,aAAa5qC,KAAKzB,IAlBtBkE,EAAI,EAAGA,EAAIsoC,IAAQtoC,E,EAAnBA,IAJb,IAASb,EAAI,EAAGA,EAAID,IAAOC,E,EAAlBA,GA2BT,EAAKwpC,uBAAyB,EAAKT,kBACnC,EAAKU,kBAAoB,EAAKT,gBAC/BjxB,OAAM,SAACC,GACN,EAAKC,MAAMD,MAGf,IAAI0xB,EAAS98B,IAAM,2BACC,cAAhBxR,KAAKuuC,SACLD,EAAS98B,IAAM,0CAKnB,IAAIuP,EAA+B,CAC/BmiB,WAAY,EACZC,mBAAmB,EACnBvD,IAAK0O,GAGTtuC,KAAKojC,SAAW,IAAI,EAAAC,aAAatiB,GAEjC/gB,KAAKojC,SAASE,gBAAkB,SAACC,EAAeC,GAC5CA,EAAKzgB,OAAO,OAAQ,EAAKvP,UACzBgwB,EAAKzgB,OAAO,YAAa,EAAKwqB,WAER,MAAlB,EAAK95B,WACL+vB,EAAKzgB,OAAO,YAAa,EAAKtP,WAEd,MAAhB,EAAKC,SACL8vB,EAAKzgB,OAAO,UAAW,EAAKrP,SAE5B,EAAK86B,gBACLhL,EAAKzgB,OAAO,WAAY,EAAKyrB,iBAGrCxuC,KAAKojC,SAASK,mBAAqB,SAACF,GAChC,EAAKtyB,aAAaK,SAEtBtR,KAAKojC,SAASM,eAAiB,SAAClX,EAAWzN,EAAe7M,EAAad,GACnE,EAAKuyB,QAAQ9hB,cAAcvf,MAAQ,GACnC,EAAK2O,aAAaY,YAEtB7R,KAAKojC,SAASQ,cAAgB,SAACpX,EAAWzN,EAAkB7M,EAAgBd,GACxE,IAAM4gB,EAAgBvgB,KAAKoqB,MAAM9c,GAEjCiT,EAAcqb,WAAa,EAAKA,WAChCrb,EAAcja,UAAY,EAAKvH,cAG/B,IADA,IAAIi+B,EAAiC,KAC5B7pC,EAAI,EAAGA,EAAI,EAAK6oC,gBAAgBvrC,SAAU0C,EAAG,CAClD,IAAI4/B,EAAsB,EAAKiJ,gBAAgB7oC,GAE3C4/B,EAAI9iC,MAAQ,EAAKq3B,mBACjB0V,EAAiBjK,GAIzBxS,EAAc+G,iBAAmB,EAAKA,iBACtC/G,EAAcyc,eAAiBA,EAEX,cAAhB,EAAKF,OACL,EAAK1yB,WAAa,EAAKmE,aAAaoM,KAAK,EAAApiB,wBAAyB,CAAEmjB,UAAU,EAAMC,qBAAqB,IAEzG,EAAKvR,WAAa,EAAKmE,aAAaoM,KAAK,EAAA7hB,0BAA2B,CAAE4iB,UAAU,EAAMC,qBAAqB,IAG/G,EAAKvR,WAAWwR,QAAQ2E,cAAgBA,GAE5ChyB,KAAKojC,SAASS,YAAc,SAACrX,EAAWzN,EAAkB7M,EAAgBd,GACtE,IAAMyL,EAAQpL,KAAKoqB,MAAM9c,GAEzB,EAAKlC,MAAM,CAAEA,MAAOA,MAI5B,YAAA6xB,kBAAA,WAII,IAHA,IAAIZ,EAAiC,KAEjCnpC,EAAM3E,KAAK2tC,kBAAkBzrC,OACxB0C,EAAI,EAAGA,EAAID,IAAOC,EACvB,GAAI5E,KAAK2tC,kBAAkB/oC,GAAGiK,OAAS7O,KAAKwQ,cAAe,CACvDs9B,EAAO9tC,KAAK2tC,kBAAkB/oC,GAC9B,MAKJ5E,KAAKquC,kBADG,MAARP,EACyBA,EAAKvxB,MAELvc,KAAK4tC,cAItC,YAAAe,aAAA,WAII,IAHA,IAAIb,EAAgC,KAEhCnpC,EAAM3E,KAAK4tC,aAAa1rC,OACnB0C,EAAI,EAAGA,EAAID,IAAOC,EACvB,GAAI5E,KAAK4tC,aAAahpC,GAAGiK,OAAS7O,KAAKwT,SAAU,CAC7Cs6B,EAAO9tC,KAAK4tC,aAAahpC,GACzB,MAKJ5E,KAAKouC,uBADG,MAARN,EAC8BA,EAAKj4B,YAEL7V,KAAK2tC,kBAGvC3tC,KAAK4uC,cAGT,YAAA7K,QAAA,WAC+B,MAAvB/jC,KAAKojC,SAASY,OAAiBhkC,KAAKojC,SAASY,MAAM9hC,OAAS,EAC5DlC,KAAKojC,SAASa,YAEdjkC,KAAK6c,MAAM,CACP/B,QAAS9a,KAAKswB,oBAAoBjO,OAAO,mBACzCxF,MAAO,MAKnB,YAAAgyB,gBAAA,SAAgBx7B,EAAO9R,GAEfvB,KAAKqtC,WADI,aAAT9rC,GAOR,YAAA+4B,OAAA,WACIt6B,KAAK8sC,kBAAmB,GAG5B,YAAArS,OAAA,WACIz6B,KAAK8sC,kBAAmB,GAa5B,YAAA8B,WAAA,sBACIlf,YAAW,WACP,EAAK1tB,QAAU,EAAK8sC,2BACrB,IAGP,YAAAA,uBAAA,WAII,IAHA,IAEIC,EAFAC,EAAahvC,KAAKivC,yBAAyBC,UAGtCtqC,EAAI,EAAGA,EAAIoqC,EAAW9sC,OAAQ0C,IAAK,CACxC,IAAIuqC,EAAQH,EAAWpqC,GAOvB,GALwB,cAApBuqC,EAAMC,YAENL,EAAiBI,IAGhBA,EAAM/M,MACP,OAAO,EAUf,OANIpiC,KAAKyT,UAAYzT,KAAK0T,UACtBq7B,EAAeM,WAAWrvC,KAAKswB,oBAAoBjO,OAAO,qDAE1DriB,KAAK6sC,kBAAkB7xB,kBAGpB,GAGJ,YAAA6B,MAAP,SAAaD,GACT5c,KAAK6b,WAAa,EAAAyD,aAAa6Q,kBAAkBvT,EAAK5c,KAAKggB,e,iCA1VtD/T,GAAqB,yT,iCAArBA,EAAqB,qD,GAAA,M,2+FCvBlC,gCAsCA,iC,MAtCM,mFAsCA,4F,+rBDrBN,GAMa,EAAAA,yB,+DAAAA,EAAqB,E,KANjC,EAAAkN,U,MAAU,CAEPC,SAAU,eACVC,YAAa,gCACbC,UAAW,CAAC,2B,6NAIyB21B,yBAAwB,E,KAA5D,EAAAt1B,a,MAAa,yBA4DdgqB,QAAS,CAAF,C,KADN,EAAAjqB,U,MAAU,YAIX60B,OAAQ,CAAF,C,KADL,EAAA/0B,W,sHExFL,WAOA,GANA,MACA,MAIA,OACA,QAEA,S,GACA,M,gGCGQ,4BAAqE,YAAW,kB,6BAAX,+C,sBAY7D,4BACI,6BACI,6BACI,2BAA0B,6BAA+D,iBAC7F,iBACJ,iBACJ,kB,sBAcoB,2BAA4B,6BAA6C,kB,qBAGvE,6B,qBACA,6B,mDAYF,gCAAyC,+JACrC,6BACJ,kB,mDAtBR,4BACI,4BACE,2BACE,YACA,gCACA,2BACE,kBACA,oCACA,oCACA,kBACF,iBACF,iBACF,iBACA,6BACI,iCAAsB,iHAClB,8BACJ,iBACA,iCAAsB,6GAClB,8BACJ,iBACA,mCAGJ,iBACJ,iB,0BAtBS,8EACD,qDACO,+CAGM,4DACA,6DAYJ,6C,yBA5B7B,4BACI,+BACI,4BACI,yBACI,4BAAwB,6BAA2C,iBACvE,iBACJ,iBACA,4BACI,+BAyBJ,iBACJ,iBACJ,kB,uCA3BiC,gD,mDA8BzB,0BACI,gCAAsB,8HAClB,6BACJ,iBACJ,kB,yBA5DhB,4BACI,4BACI,4BACI,6BACI,6BACI,yBAAI,YAAa,iBACrB,iBACJ,iBACJ,iBAEA,+BAQA,8BAoCA,6BACI,8BACI,gCAKJ,iBACJ,iBACJ,iBACJ,kB,uBA3DwB,4CAKV,gEAQD,8DAsCS,6CD3D9B,iBAgBI,WAAmBmC,EAAkCqE,EAAsCqrB,EAAwBnrB,GAAhG,KAAAvE,UAAkC,KAAAqE,eAAsC,KAAAqrB,SAAwB,KAAAnrB,kBATnH,KAAApF,QAAkB,K,OAWlB,YAAAtb,SAAA,sBACIQ,KAAK2b,QAAQ2c,sBAAsBhc,MAAK,SAAAyC,GACpC,EAAK4lB,KAAO5lB,EAAS4lB,QACtBhoB,OAAM,SAACC,GACN,EAAKC,MAAMD,OAInB,YAAA0yB,SAAA,SAASjxB,GACLre,KAAK6b,WAAa7b,KAAKggB,aAAaoM,KAAK,EAAA7f,sBAAuB,CAC5D2gB,UAAU,EACVC,UAAU,EACVC,qBAAqB,IAEzBptB,KAAK6b,WAAWwR,QAAQjP,KAAKC,GAC7Bre,KAAK6b,WAAWwR,QAAQhd,OAAQ,EAChCrQ,KAAK6b,WAAWwR,QAAQlR,mBAAmBgG,WAAU,SAACkV,GAClD,IAAMpY,EAAM,CACR1D,MAAO8b,EAAKva,aAAawO,eACzB5pB,IAAK21B,EAAK31B,IACV6tC,WAAYlY,EAAKkY,WACjBC,eAAgBnY,EAAKmY,eACrBvxB,SAAUoZ,EAAKpZ,SACfwxB,MAAOpY,EAAKoY,MACZC,KAAMrY,EAAKqY,KACXxxB,WAAYmZ,EAAKnZ,YAGrBG,EAAIohB,MAAMz8B,KAAKic,OAIvB,YAAA0wB,OAAA,SAAO9gC,GACH7O,KAAKqrC,OAAOQ,SAAS,CAAC,8BAA+Bh9B,KAGzD,YAAA+gC,OAAA,SAAOC,GAAP,WACI7vC,KAAK2b,QAAQgc,cAAckY,EAAKnuC,KAAK4a,MAAK,SAAA+a,GACtC,EAAKxb,WAAa,EAAKmE,aAAaoM,KAAK,EAAA7f,sBAAuB,CAC5D2gB,UAAU,EACVC,UAAU,EACVC,qBAAqB,IAEzB,EAAKvR,WAAWwR,QAAQpR,MAAO,EAC/B,EAAKJ,WAAWwR,QAAQrR,UAAYqb,EAAKoY,MACzC,EAAK5zB,WAAWwR,QAAQjR,OAASib,EACjC,EAAKxb,WAAWwR,QAAQnR,yBAA2Bmb,EAAKpa,oBACxD,EAAKpB,WAAWwR,QAAQhd,OAAQ,EAEhC,EAAKwL,WAAWwR,QAAQlR,mBAAmBgG,WAAU,SAAA2tB,GACjDD,EAAKt0B,MAAQu0B,EAAIhzB,aAAawO,eAC9BukB,EAAK3xB,WAAa4xB,EAAI5xB,iBAE3BvB,OAAM,SAACC,GACN,EAAKC,MAAMD,OAInB,YAAAmzB,SAAA,SAAS1xB,EAAsBgZ,GAA/B,WACIr3B,KAAK6b,WAAa7b,KAAKggB,aAAaoM,KAAK,EAAAuB,sBAAuB,CAC5DT,UAAU,EACVC,UAAU,EACVC,qBAAqB,IAEzBptB,KAAK6b,WAAWwR,QAAQvS,QAAU9a,KAAKkgB,gBAAgBmC,OAAO,+BAAiC,KAAOgV,EAAK9b,MAAQ,IACnHvb,KAAK6b,WAAWwR,QAAQO,WAAa5tB,KAAKkgB,gBAAgBmC,OAAO,uBACjEriB,KAAK6b,WAAWwR,QAAQ9rB,KAAO,SAE/BvB,KAAK6b,WAAWwR,QAAQQ,UAAU1L,WAAU,SAAAjd,GACxC,EAAKyW,QAAQ6b,iBAAiBH,EAAK31B,KAAK4a,MAAK,SAAAyC,GACzCV,EAAIohB,MAAQphB,EAAIohB,MAAMl8B,QAAO,SAACjB,EAAO2nB,EAAO+lB,GACxC,OAAO1tC,EAAMZ,MAAQ21B,EAAK31B,UAE/Bib,OAAM,SAACC,GACN,EAAKC,MAAMD,UAKvB,YAAAC,MAAA,SAAMD,GACF5c,KAAK8a,QAAU,EAAAwE,aAAaC,oBAAoB3C,I,iCA7F3CzQ,GAA0B,wJ,iCAA1BA,EAA0B,4kDCjBvC,4BACI,4BACA,6BAGA,4BAEI,4BACI,yBACI,4BACJ,iBACJ,iBAEA,8BAEA,+BAiEJ,iBACJ,kB,MApEc,oDAE2B,gD,qJDHzC,GAKa,EAAAA,8B,+DAAAA,EAA0B,E,KALtC,EAAAgN,U,MAAU,CACPC,SAAU,sBACVC,YAAa,uCACbC,UAAW,CAAC,kC,gPEfhB,WAEA,GADA,MACA,O,+BAGA,aAeI,WAAmBuC,GAAA,KAAAA,a,OAEnB,YAAArc,SAAA,WACIQ,KAAKiwC,SAAW,IAAI,EAAAh2B,SAGxB,YAAAwqB,QAAA,WACIzkC,KAAK6b,WAAWmD,OAChBhf,KAAKiwC,SAAS11B,KAAKva,KAAKuuC,S,iCAlBnB9hC,GAA0B,oC,iCAA1BA,EAA0B,4sBCVvC,4BACI,4BACI,yBACI,4BACJ,iBACJ,iBAEA,6BACI,+BACI,4BACI,4BACI,4BACI,4BACJ,iBAEA,gCAAsD,+DAClD,yBACA,gCACI,6BACJ,iBACA,iCACI,8BACJ,iBACJ,iBACJ,iBACJ,iBAEA,6BACI,6BACI,8BACI,iCAAsB,wCAAS,EAAAoP,WAAA,UAE3B,4BACI,8BACJ,iBACJ,iBACA,iCAAsB,wCAAS,EAAA4oB,aAE3B,4BACI,8BACJ,iBACJ,iBACJ,iBACJ,iBACJ,iBACJ,iBACJ,iBACJ,kB,MAhC0E,iDAqBR,wE,wPD/BlE,GAKa,EAAAh4B,8B,+DAAAA,EAA0B,E,KALtC,EAAA0M,U,MAAU,CACPC,SAAU,sBACVC,YAAa,uCACbC,UAAW,Q,iKERf,WAKA,GAJA,MAEA,KACA,MACA,MAOA,SAGA,SAOA,GAJA,OACA,MACA,OAEA,Q,iJCS+I,sB,6BAAkC,kF,wBACtC,sB,6BAA2C,2F,wBACnD,sB,6BAAuC,uF,wBACrB,sB,6BAAmC,mF,wBACzC,sB,6BAAuC,uF,wBACtD,sB,6BAA4B,4E,sBA8CpI,4BAAuE,6BAAsE,kB,sBAC7I,4BAAuE,6BAAsE,kB,sBAQnJ,6BACE,6BACF,kB,sBACA,6BACE,6BACF,kB,mDAEA,6BACG,+BAA4C,6BAAmE,iBAC/G,kCAAsG,uHAA2F,iBACpM,iB,2CAFU,6EACG,4EAA4F,2CAAkC,sD,mDAcnI,8DASM,8FACN,iB,+DARK,uCAA0B,wCAA1B,CAA0B,yFAA1B,CAA0B,kBAA1B,CAA0B,sFAA1B,CAA0B,uBAA1B,CAA0B,qC,mDAehC,6BACE,+BAA+C,6BAAkE,iBACjH,kCAAiH,sHAAmG,iBACtN,iB,2CAFS,gFACG,+EAAuG,0CAAiC,+D,mDAGpJ,6BACM,+BAA0C,6BAAyE,iBACnH,+BAA6F,sHAA7F,iBACN,iB,2CAFa,2EACY,0EAA0E,0CAAiC,+D,mDAS5H,4BACE,2BAAG,yJAAwC,YAAgB,iBAC3D,2BAAG,uJAAiH,iBACtH,iB,0BAF6C,gD,yBAHnD,6BACE,4BACI,8BAIJ,iBACF,kB,wCAL0B,oD,sBAM1B,2BACE,6BACF,kB,mDAEA,6BAEI,6BAEA,gCAA6D,+H,uBAC3D,6BACF,iBACJ,iB,iCALiK,mDAExE,oG,mDAgB7F,gCAA2G,+H,uBACtG,6BACF,iB,2CAFK,sDAA6C,mE,mDAJvD,2BACE,gCAAoE,gI,uBAClE,6BACF,iBACA,kCAGF,iB,2CANU,qEAA6C,2EACzC,2IAE2C,gE,mDAMpD,gCAAyC,oGACvC,8BACF,kB,mDACA,iCAAwC,oGACtC,8BACF,kB,mDACA,iCAA8E,+H,uBAC5E,8BACF,iB,KAFsG,+D,mDAItG,iCAA4K,+H,uBAC1K,8BACF,iB,iCAFsE,sCAAuB,mE,yBAX/F,2BACE,kCAGA,kCAGA,kCAIA,kCAGF,kB,4DAbyB,iDAGA,gDAGsC,gDAIkC,qG,yBArBtG,6BACE,gCASG,gCAeL,kB,4DAxBS,oFASG,uH,yBAzEb,6BACC,6BACE,6BACE,4BAEG,6DAYF,iBACH,iBAEA,6BACE,6BACE,+BAKA,+BAIF,iBAEA,6BACE,2BACE,6BAAO,8BAAoE,iBAC3E,gCAQA,8BAIA,gCAQF,iBAEF,iBACF,iBACF,iBAGA,gCA0BD,kB,4DApF4C,sCAiB/B,oFAKA,oFASE,yDAQF,2DAIE,2FAeR,uH,gLAnGf,4BAEE,4BACE,6BAEM,0BACI,4BAA8B,YAAuB,iBACrD,4BAAgC,YAAsB,iBAEtD,8BACA,8BACJ,iBACN,iBAEA,8BAEE,6BAEE,gCAGA,gCAIA,gCAKA,2BACE,yBAAG,8BAAmE,iBAAM,8BAAQ,aAAiB,iBAAS,iBAC9G,yBAAG,8BAAyE,iBAAM,8BAAQ,aAAa,iBAAS,iBAChH,yBAAG,8BAAyE,iBAAM,8BAAQ,aAAmB,iBAAS,iBACxH,iBAEA,iCA0FF,iBAEF,iBAEF,iBACF,kB,2DAnII,kCAAY,yJAM4B,sDACE,qDAE3B,+DACA,+DAQL,wFAGA,yDAIA,qFAMgF,gDACM,4CACA,kDAGtF,yF,wMAjEd,4BAAsE,mHACpE,4BACE,yBAAI,6BAAQ,YAAiB,iBAAS,iBACxC,iBACA,4BACE,yBAAI,6BAAQ,YAA2B,iBAAS,iBAClD,iBACA,4BACE,0BAAI,8BAAQ,aAAuB,iBAAS,iBAC9C,iBACA,6BACG,+BACG,aACH,iBACH,iBACA,6BACE,6BACG,8BAAQ,aAAmB,iBAC9B,iBACF,iBACA,6BACE,0BAAI,8BAAQ,aAAW,iBAAS,iBAClC,iBACA,6BACE,uBACF,iBACF,iBAGA,iC,8CA7BsB,kEAEN,gDAGA,0DAGA,sDAIR,wEAIA,qLACO,kDAIC,0CAQE,wD,oDAyIvB,6BACG,8CAAqB,oGAAkC,iBAC1D,kB,0ED1LL,cAiFI,WAAoBqC,EAAuCtH,EAAsC2L,EAAsC1L,EAAkCgc,EAC7Jrf,EAAoCi/B,EAA+B7E,EAAwB92B,EAAkC47B,GADrH,KAAAx0B,UAAuC,KAAAtH,cAAsC,KAAA2L,eAAsC,KAAA1L,cAAkC,KAAAgc,sBAC7J,KAAArf,eAAoC,KAAAi/B,QAA+B,KAAA7E,SAAwB,KAAA92B,cAAkC,KAAA47B,WA9CzI,KAAAC,MAAc,IAAIr0B,KAClB,KAAAs0B,YAAsBrwC,KAAKuU,YAAY+7B,cAAc,IAAIv0B,MAEzD,KAAAw0B,WAAaxhC,OAAOD,KAIpB,KAAA0hC,KAAY,CACRC,MAAO,EACPp+B,WAAY,EACZD,SAAU,GACVmyB,UAAW,IAGf,KAAAmM,SAA4B,GAI5B,KAAAC,QAAiB,GAMjB,KAAAC,eAAyB,MAEzB,KAAA3tC,KAAc,CAAC,CAAE6U,UAAW,aAAc+4B,WAAW,IAErD,KAAAC,qBAA+B,EAG/B,KAAApvC,IAAc,KAUd,KAAAM,SAAmB,EAEnB,KAAAtB,WAAqB,EAIjBV,KAAK2wC,QAAU,CACX,CAAEt5B,KAAMiZ,EAAoBjO,OAAO,uBAAwB4V,KAAM,YAAa8Y,UAAU,GACxF,CAAE15B,KAAMiZ,EAAoBjO,OAAO,6BAA8B4V,KAAM,aAAc8Y,UAAU,EAAOrtB,MAAO,KAC7G,CAAErM,KAAMiZ,EAAoBjO,OAAO,yBAA0B4V,KAAM,iBAAkB8Y,UAAU,I,OAIvG,YAAAvxC,SAAA,sBACIQ,KAAK0B,IAAM1B,KAAKkwC,MAAMc,SAASC,SAASx+B,IAAI,OAE5CzS,KAAKkwC,MAAMe,SAAS9uB,WAAU,SAAA7P,GAC1B,EAAK5Q,IAAM4Q,EAAOG,IAAI,OACtB,EAAKiE,aAGO,MAAZ1W,KAAK0B,MACL1B,KAAKkxC,SAAWlxC,KAAK0B,KAGzB,IAEIqf,EAA+B,CAC/BmiB,WAAY,EACZC,mBAAmB,EACnBvD,IALSpuB,IAAM,iCAQnBxR,KAAKojC,SAAW,IAAI,EAAAC,aAAatiB,GAEjC/gB,KAAKojC,SAASE,gBAAkB,SAACC,EAAeC,GAC5CA,EAAKzgB,OAAO,QAAS,EAAKouB,cAAczvC,MAE5C1B,KAAKojC,SAASK,mBAAqB,SAACF,GAChC,EAAKtyB,aAAaK,SAEtBtR,KAAKojC,SAASM,eAAiB,SAAClX,EAAWzN,EAAe7M,EAAad,GACnE,EAAKuyB,QAAQ9hB,cAAcvf,MAAQ,GACnC,EAAK2O,aAAaY,YAEtB7R,KAAKojC,SAASQ,cAAgB,SAACpX,EAAWzN,EAAe7M,EAAgBd,GACrE,IAAMggC,EAAM3/B,KAAKoqB,MAAM9c,GAEjBkL,EAAQ,EAAKymB,SAAS7tC,WAAU,SAAAsO,GAAW,OAAAA,EAAQzP,MAAQ0vC,EAAIx+B,cAEtD,IAAXqX,GACA,EAAKymB,SAASzmB,GAAOonB,UAAUruC,KAAKouC,IAG5CpxC,KAAKojC,SAASS,YAAc,SAACrX,EAAWzN,EAAkB7M,EAAgBd,GACtE,IAAMyL,EAAQpL,KAAKoqB,MAAM9c,GAEzB,EAAKlC,MAAM,CAAEA,MAAOA,KAGxB7c,KAAK0W,WAGT,YAAA46B,UAAA,SAAUx5B,GACN,OAAO9X,KAAKiD,KAAKf,OAAS,GAAKlC,KAAKiD,KAAK,GAAG6U,YAAcA,GAG9D,YAAAke,YAAA,SAAYle,GACR,OAAO9X,KAAKiD,KAAKf,OAAS,GAAKlC,KAAKiD,KAAK,GAAG4tC,WAGhD,YAAAU,OAAA,SAAOz5B,GACH,IAAImS,EAAQjqB,KAAKiD,KAAKJ,WAAU,SAAA2pB,GAAQ,OAAAA,EAAK1U,YAAcA,KAE3D,IAAe,IAAXmS,EAAc,CACd,IAAIuC,EAAOxsB,KAAKiD,KAAKgnB,GAErBuC,EAAKqkB,WAAarkB,EAAKqkB,eAEvB7wC,KAAKiD,KAAO,CAAC,CACT6U,UAAWA,EACX+4B,WAAW,IAInB7wC,KAAK0W,WAGT,YAAA86B,YAAA,SAAY7gC,GACR,OAAIA,EAAOqG,eAAiBrG,EAAOqG,cAAcE,YAAcvG,EAAOqG,cAAcE,WAAW4F,cAAgBnM,EAAOqG,cAAcE,WAAW4F,aAAa3F,QACxJxG,EAAOqG,cAAcE,WAAW4F,aAAa3F,OAAO,IAAMxG,EAAOqG,cAAcE,WAAW4F,aAAa3F,OAAO,GAAG7U,OAASqO,EAAOqG,cAAcE,WAAW4F,aAAa3F,OAAO,GAAG7U,MAAMkZ,cACvL7K,EAAOqG,cAAcE,WAAW4F,aAAa3F,OAAO,GAAG7U,MAAMkZ,aAAa,IAAM7K,EAAOqG,cAAcE,WAAW4F,aAAa3F,OAAO,GAAG7U,MAAMkZ,aAAa,GAAGlZ,MACtJqO,EAAOqG,cAAcE,WAAW4F,aAAa3F,OAAO,GAAG7U,MAAMkZ,aAAa,GAAGlZ,MAC7EqO,EAAOqG,eAAiBrG,EAAOqG,cAAcE,YAAcvG,EAAOqG,cAAcE,WAAWrI,KAC3F8B,EAAOqG,cAAcE,WAAWrI,KAEhC7O,KAAKswB,oBAAoBjO,OAAO,oBAI/C,YAAA8f,SAAA,SAASC,GACLpiC,KAAKgC,QAAUogC,GAGnB,YAAAqP,SAAA,SAAStgC,GACLnR,KAAKmxC,cAAgBhgC,EAEM,MAAvBnR,KAAKojC,SAASY,OAAiBhkC,KAAKojC,SAASY,MAAM9hC,OAAS,EAC5DlC,KAAKojC,SAASa,YAEdjkC,KAAK6c,MAAM,CACP/B,QAAS9a,KAAKswB,oBAAoBjO,OAAO,mBACzCxF,MAAO,MAKnB,YAAA60B,eAAA,SAAevgC,EAAwBwgC,GACnClyC,OAAO0wC,SAASyB,KAAOpgC,IAAM,yCAA2CL,EAAQzP,IAAzD8P,UAAgFmgC,GAG3G,YAAAE,aAAA,SAAa1gC,EAAwBwgC,GAArC,WACI3xC,KAAK2b,QAAQ9I,WAAW1B,EAAQzP,IAAKiwC,GAASr1B,MAAK,WAC/C,IAAM2N,EAAQ9Y,EAAQkgC,UAAUxuC,WAAU,SAAAuuC,GAAO,OAAAA,EAAI1vC,MAAQiwC,MAE9C,IAAX1nB,GACA9Y,EAAQkgC,UAAUtuC,OAAOknB,EAAO,MAErCtN,OAAM,SAACoC,GACN,EAAKlC,MAAMkC,OAIZ,YAAA+yB,aAAP,SAAoBnjC,GAChB3O,KAAK8wC,oBAAsBniC,GAG/B,YAAAojC,WAAA,SAAW1/B,QAAA,IAAAA,MAAA,GACPrS,KAAK0B,IAAM,KACX1B,KAAK0W,QAAQrE,IAGjB,YAAAqE,QAAA,SAAQrE,GAAR,gBAAQ,IAAAA,MAAA,GACJrS,KAAKqU,YAAY1U,UAEjBK,KAAK2b,QAAQxJ,eAAenS,KAAKwwC,KAAKp+B,SAAUC,EAAYrS,KAAK4wC,eAAgB5wC,KAAKiD,KAAMjD,KAAK0B,KAAK4a,MAAK,SAAAo0B,GACvG,EAAKF,KAAOE,EACZ,EAAKA,SAAWA,EAASnM,UAGzB,EAAKmM,SAASlwC,SAAQ,SAAC+N,GACnB,IAAKA,EAAI0H,QAAQoa,UACb,IAAK,IAAIzrB,EAAI,EAAGA,EAAI2J,EAAIkC,QAAQvO,OAAQ0C,IAChC2J,EAAIkC,QAAQ,GAAGhB,aAAe,EAAAC,YAAYC,wBAE1CpB,EAAI0H,QAAQoa,UAAY5e,KAAKoqB,MAAMpqB,KAAKC,UAAWnD,EAAIkC,QAAQ,GAA6BuG,uBAK7G2F,OAAM,SAACoC,GACN,EAAKlC,MAAMkC,OAInB,YAAA+kB,SAAA,SAASjE,GAAT,WAGI7/B,KAAKqU,YAAY1U,UAEjBK,KAAK2b,QAAQxJ,eAAenS,KAAKwwC,KAAKp+B,SAAU,EAAG,MAAOpS,KAAKiD,KAAMjD,KAAK0B,KAAK4a,MAAK,SAAAo0B,GAChF,EAAKA,SAAWA,EAASnM,aAC1B5nB,OAAM,SAACC,GACN,EAAKC,MAAMD,OAInB,YAAAo1B,UAAA,SAAUv8B,GAAV,WACyB,MAAjBA,GACAzV,KAAK2b,QAAQzK,mBAAmBuE,GAAe6G,MAAK,SAAAnL,GAChDsE,EAAgBtE,EAGhB,EAAKuF,UAEL,IAAMmF,EAAa,EAAKmE,aAAaoM,KAAK,EAAAuB,sBAAuB,CAC7DT,UAAU,EACVC,UAAU,EACVC,qBAAqB,IAGzBvR,EAAWwR,QAAQO,WAAa,EAAK0C,oBAAoBjO,OAAO,qDAChExG,EAAWwR,QAAQue,WAAa,EAAKtb,oBAAoBjO,OAAO,qDAChExG,EAAWwR,QAAQvS,QAAU,EAAKwV,oBAAoBjO,OAAO,kDAE7DxG,EAAWwR,QAAQQ,UAAU1L,WAAU,WACnC,IAAM+b,EAAS,EAAK+T,2BAA2B9gC,GAE/C,GAAc,MAAV+sB,EACA,EAAKmN,OAAOQ,SAAS,CAAC,6BAA8B3N,EAAOhnB,WAAWg7B,IAAKhU,EAAOtoB,cAAc/G,KAAM,EAAKwhC,aAAa,QACrH,CACH,IAAI,EAASl/B,EAAQ8E,QAAQoa,UACzB9uB,EAAO4P,EAAQ8E,QAAQL,cAEb,MAAV,GAA0B,MAARrU,GAClB,EAAK8pC,OAAOQ,SAAS,CAAC,6BAA8B,EAAO30B,WAAWg7B,IAAK3wC,EAAKsN,KAAM,EAAKwhC,aAAa,WAIrH1zB,OAAM,SAACoC,GACN,EAAKlC,MAAMkC,OAKvB,YAAAozB,SAAA,SAAS5hC,GAAT,WACIvQ,KAAK2b,QAAQjJ,oBAAoBnC,GAAI+L,MAAK,WActC,EAAK5F,aACNiG,OAAM,SAACoC,GACN,EAAKlC,MAAMkC,OAInB,YAAAkzB,2BAAA,SAA2B9gC,GACvB,IAAK,IAAIvM,EAAI,EAAGA,EAAIuM,EAAQV,QAAQvO,OAAQ0C,IAAK,CAC7C,IAAI+L,EAASQ,EAAQV,QAAQ7L,GAG7B,GAAI+L,EAAO2H,eAAe,iBACtB,OAAO3H,EAAsB,cAIrC,OAAO,MAGX,YAAAo/B,SAAA,SAASt6B,GAAT,WACI,GAAqB,MAAjBA,EAAuB,CACvB,IAAMoG,EAAa7b,KAAKggB,aAAaoM,KAAK,EAAAuB,sBAAuB,CAC7DT,UAAU,EACVC,UAAU,EACVC,qBAAqB,IAGzBvR,EAAWwR,QAAQ9rB,KAAO,SAC1Bsa,EAAWwR,QAAQO,WAAa5tB,KAAKswB,oBAAoBjO,OAAO,6CAChExG,EAAWwR,QAAQvS,QAAU9a,KAAKswB,oBAAoBjO,OAAO,yCAE7DxG,EAAWwR,QAAQQ,UAAU1L,WAAU,SAAAjd,GACnC,EAAKyW,QAAQhJ,OAAO8C,EAAc/T,KAAK4a,MAAK,SAAA81B,GAExC,IADA,IAAIpnB,GAAO,EACFpmB,EAAI,EAAGA,EAAI,EAAK8rC,SAASxuC,OAAQ0C,IAAK,CAE3C,GADU,EAAK8rC,SAAS9rC,GAChBlD,MAAQ0wC,EAAkB,CAC9BpnB,EAAMpmB,EACN,OAIJomB,GAAO,GACP,EAAK0lB,SAAS3tC,OAAOioB,EAAK,GAG9B,EAAKtU,aACNiG,OAAM,SAACoC,GACN,EAAKlC,MAAMkC,WAM3B,YAAAszB,SAAA,SAAS58B,GAAT,WACyB,MAAjBA,GACAzV,KAAK2b,QAAQ5J,OAAO0D,GAAe6G,MAAK,SAAAnL,GACpC,EAAKuF,UAEL,EAAKhW,WAAY,KAClBic,OAAM,SAACoC,GACN,EAAKlC,MAAMkC,OAKvB,YAAAuzB,4BAAA,SAA4B3hC,GAA5B,WAII3Q,KAAK2b,QAAQ3J,gBAAgBrB,EAAOjP,IAAKiP,EAAOmG,gBAAgBwF,MAAK,SAAAyC,GACjEpO,EAAO4hC,cAA2C,YAA1B5hC,EAAOmG,eAAgC,EAAKxC,YAAYk+B,cAAgB,MAGjG71B,OAAM,SAACC,GACN,EAAKC,MAAMD,OAIZ,YAAAC,MAAP,SAAaD,GACT5c,KAAK6b,WAAa,EAAAyD,aAAa6Q,kBAAkBvT,EAAK5c,KAAKggB,eAG/D,YAAAyyB,eAAA,SAAexoB,EAAe9Y,GAC1B,OAAOA,EAAQzP,KAGnB,YAAAgxC,OAAA,SAAOr/B,EAAY3R,GAAnB,WACI1B,KAAKmwC,SAASwC,aAAa,6BAA+BjxC,GAErD2R,EAAMmL,OAAOo0B,cAAcC,UAAUC,SAAS,QAAWz/B,EAAMmL,OAAOq0B,UAAUC,SAAS,SACtF9yC,KAAKkxC,WAAaxvC,EAClB1B,KAAKkxC,SAAW,MAEhBlxC,KAAKkxC,SAAWxvC,EAEhB1B,KAAK0wC,SAASlwC,SAAQ,SAAA+N,GACdA,EAAI7M,MAAQA,IACZ,EAAK+O,QAAUlC,EAAIkC,eAOvC,YAAAlN,OAAA,SAAOwvC,GACH/yC,KAAK4wC,eAAiBmC,EAEtB/yC,KAAK0W,QAAQ,IAGjB,YAAA1E,gBAAA,SAAgBrB,EAAuDuB,GAAvE,WACuBlS,KAAKggB,aAAaoM,KAAK,EAAAuB,sBAAuB,CAC7DT,UAAU,EACVC,UAAU,EACVC,qBAAqB,IAGdC,QAAQQ,UAAU1L,WAAU,SAAAjd,GACnCyL,EAAOmG,eAAiB5E,EAExB,EAAKogC,4BAA4B3hC,OAIzC,YAAAqiC,yBAAA,SAAyBriC,GAUrB,OARIA,EAAOlB,WAAWwjC,SAAS,0BAA4BtiC,EAAOlB,WAAWwjC,SAAS,yBAQ/EtiC,GAGX,YAAAyO,WAAA,SAAW3I,GACP,OAAOzW,KAAKuU,YAAY8K,qBAAqB5I,IAGjD,YAAA+7B,YAAA,WACI,OAAOxyC,KAAKsU,YAAYk+B,eAG5B,YAAAU,gBAAA,SAAgB/hC,GACZ,GAAIA,EAAQV,SAAWU,EAAQV,QAAQvO,OAAS,EAAG,CAC/C,IAAIixC,EAAchiC,EAAQV,QAAQ,GAElC,OAAI0iC,EAAY1jC,aAAe,EAAAC,YAAY0jC,uBAEhCD,EAAY1jC,aAAe,EAAAC,YAAYC,wBAA2BwjC,EAAsCn8B,cAAcE,WAAmB,OAMpJ,OAAO,GAIf,YAAA4rB,iBAAA,WACI9iC,KAAKU,WAAaV,KAAKU,WAG3B,YAAA2yC,QAAA,SAAQliC,GACJ,OAAQA,EAAQmiC,YAAYR,SAAS,kBAAoB9yC,KAAKU,W,iCAxbzD0I,GAAqB,oX,iCAArBA,EAAqB,sD,GAAA,K,i+KC5DlC,4BACE,4BACE,4BAEE,0BAAmB,wCAAS,EAAA7F,OAAO,UACjC,4BACF,iBACA,0BAAmB,wCAAS,EAAAA,OAAO,cACjC,4BACF,iBACA,0BAAmB,wCAAS,EAAAA,OAAO,eACjC,4BACF,iBACA,0BAAmB,wCAAS,EAAAA,OAAO,cACjC,6BACF,iBACA,2BAAmB,wCAAS,EAAAA,OAAO,eACjC,6BACF,iBAEF,iBACA,wBAEF,iBACF,iBAEA,6BACE,6BACE,gCACE,6BACE,6BACE,6BAAoC,4BAAG,wCAAS,EAAAguC,OAAO,gBAAc,8BAA4D,iBAAI,8BAAsI,iBAC3Q,6BAAoC,4BAAG,wCAAS,EAAAA,OAAO,yBAAuB,8BAA+C,iBAAI,8BAAwJ,iBACzR,6BAAoC,4BAAG,wCAAS,EAAAA,OAAO,qBAAmB,8BAA2C,iBAAI,8BAAgJ,iBACzQ,6BAAoC,4BAAG,wCAAS,EAAAA,OAAO,iBAAe,8BAAiE,iBAAI,8BAAwI,iBACnR,6BAAoC,4BAAG,wCAAS,EAAAA,OAAO,qBAAmB,8BAAuD,iBAAI,8BAAgJ,iBACrR,6BAAoC,4BAAG,wCAAS,EAAAA,OAAO,UAAQ,8BAAmD,iBAAI,8BAA0H,iBAEhP,qBACF,iBACF,iBACA,6BACE,0C,wBAqKF,iBACF,iBACA,8BACC,iCAGD,iBACF,iBACF,kB,MAnNiD,2FAGI,+FAGC,gGAGD,+FAGC,gGAe6F,8DACJ,sEACR,kEACkB,8DACN,kEACf,uDAMjG,+IAAsH,iCAwK9I,gE,olFDlLK,CACR,CACI,EAAA34B,QAAQ,YAAa,CACjB,EAAAC,WAAW,SAAU,CACjB,EAAAC,MAAM,CACFC,QAAS,IAEb,EAAAC,QAAQ,WAEZ,EAAAH,WAAW,SACP,EAAAG,QAAQ,QACJ,EAAAF,MAAM,CACFC,QAAS,QAKzB,EAAAH,QAAQ,SAAU,CACd,EAAAC,WAAW,SAAU,CACjB,EAAAC,MAAM,CACFC,QAAS,IAEb,EAAAC,QAAQ,kB,EA5B5B,GAkCa,EAAA5P,0B,+DAAAA,GAAqB,E,KAlCjC,EAAA+P,U,MAAU,CAEPC,SAAU,gBACVC,YAAa,iCACbC,UAAW,CAAC,uBACZi6B,cAAe,EAAAC,kBAAkBC,KACjCl6B,WAAY,CACR,CACI,EAAAX,QAAQ,YAAa,CACjB,EAAAC,WAAW,SAAU,CACjB,EAAAC,MAAM,CACFC,QAAS,IAEb,EAAAC,QAAQ,WAEZ,EAAAH,WAAW,SACP,EAAAG,QAAQ,QACJ,EAAAF,MAAM,CACFC,QAAS,QAKzB,EAAAH,QAAQ,SAAU,CACd,EAAAC,WAAW,SAAU,CACjB,EAAAC,MAAM,CACFC,QAAS,IAEb,EAAAC,QAAQ,oB,4PA4Bfk4B,SAAU,CAAF,C,KAAhB,EAAA13B,QAmBDmqB,QAAS,CAAF,C,KADN,EAAAjqB,U,MAAU,e,sIEpGf,aACA,SACA,SAEA,SACA,SACA,SACA,SACA,QAEA,aAgBI,WAAYvF,EAA0C2D,EAA0BC,GAO5E,GATJ,KAAAwY,gBAAgC,IAAI,EAAAtW,QAGhCja,KAAKmU,oBAAsBA,EAC3BnU,KAAK8X,UAAYA,EACjB9X,KAAK+X,UAAYA,EAEjB/X,KAAK0zC,gBAEY,MAAb37B,EACA,IAAK,IAAItS,EAAI,EAAGA,EAAIzF,KAAK+X,UAAU47B,QAAQzxC,OAAQuD,IAAK,CACpD,IAAImuC,EAAiB5zC,KAAK+X,UAAU47B,QAAQluC,GAEd,MAA1BmuC,EAAezV,UACfyV,EAAezV,QAAU,IAEC,MAA1ByV,EAAetY,UACfsY,EAAetY,QAAU,IAG7B,IAAK,IAAI12B,EAAI,EAAGA,EAAI5E,KAAK+X,UAAUwE,MAAMra,OAAQ0C,IAAK,CAClD,IAAIqR,EAAUjW,KAAK+X,UAAUwE,MAAM3X,GAES,MAAxCgvC,EAAezV,QAAQloB,EAAQpH,QAC/B+kC,EAAezV,QAAQloB,EAAQpH,MAAQ,CAAE2Y,KAAM,GAAI6I,UAAW,QAM9ErwB,KAAKywB,QAAUzwB,KAAK6zC,kBA+O5B,OA5OI,YAAAH,cAAA,WACI,GAAuB,MAAnB1zC,KAAK8zC,WAAoB,CACzB,IAAIrjC,EAAU,EAAAI,cAAcP,uBAAuBtQ,KAAKmU,oBAAoBsB,cAAezV,KAAK8X,UAAUjJ,KAAwB,MAAlB7O,KAAK+X,UAAoB,KAAO/X,KAAK+X,UAAUlJ,MAExI,IAAnB4B,EAAQvO,QACRlC,KAAK8zC,WAAa,IAAI,EAAA7jC,8BAA8BjQ,KAAK8X,UAAUjJ,MAEvC,aAAxB7O,KAAK8X,UAAUjJ,OACd7O,KAAK8zC,WAA6C/jC,cAAcS,cAAgBxQ,KAAK+X,UAAUlJ,OAGpG7O,KAAK8zC,WAAarjC,EAAQA,EAAQvO,OAAS,GAInD,OAAOlC,KAAK8zC,YAGhB,YAAAp1B,SAAA,SAASnd,GAAT,WAEQgW,EAAsBvX,KAAKuX,aAE3B0S,EAAQjqB,KAAKmU,oBAAoBsB,cAAchF,QAAQ5N,WAAU,SAAA8N,GAAU,SAAKmjC,aAAenjC,MAEpF,IAAXsZ,GAAiB1S,GAEC,IAAX0S,GAAgB1S,GACvBvX,KAAKmU,oBAAoBsB,cAAchF,QAAQzN,KAAKhD,KAAK8zC,YAFzD9zC,KAAKmU,oBAAoBsB,cAAchF,QAAQ1N,OAAOknB,EAAO,GAKjEjqB,KAAK0Y,WAEL1Y,KAAKuwB,gBAAgBhW,KAAKhZ,GAC1BvB,KAAKmU,oBAAoBuK,SAASnd,IAGtC,YAAAgW,WAAA,WACI,IAAIA,GAAsB,EAEtBvX,KAAK8zC,WAAWrkC,aAAe,EAAAC,YAAYI,yBAGc,IAFP9P,KAAK8zC,WAEtC/jC,cAAcC,eAAe9N,SAC1CqV,GAAa,IAIrB,OAAOA,GAGJ,YAAAvV,QAAP,WACI,OAAOhC,KAAKgxB,UAGhB,YAAAtY,SAAA,SAASuY,QAAA,IAAAA,OAAA,GACL,IAAI8iB,EAAe/zC,KAAKg0C,kBACpBC,EAAkBj0C,KAAKmU,oBAAoBI,YAAY2/B,YAAYl0C,KAAK8X,UAAW9X,KAAKywB,SAExF0jB,GAAmB,EACvB,GAA4B,WAAxBn0C,KAAK8X,UAAUjJ,KAAmB,CAClC,IAAIqJ,EAAiC,EAAAC,cAAc9C,aAAarV,KAAKmU,oBAAoByB,cAAe,UACpG0b,EAAgBtxB,KAAKmU,oBAAoB6D,sBAAsBE,GAAgER,aACnIy8B,EAAmBn0C,KAAKmU,oBAAoBI,YAAY6/B,iBAAiBp0C,KAAKywB,QAASa,QAC/EL,GACRjxB,KAAKmU,oBAAoBuE,UAAS,GAKtC,OAFA1Y,KAAKgxB,SAAW+iB,IAAiBE,IAAoBE,EAE9Cn0C,KAAKgxB,UAGR,YAAAgjB,gBAAR,WACI,IAAI5R,GAAiB,EAQrB,OANApiC,KAAKywB,QAAQjwB,SAAQ,SAAAoX,GACZA,EAAOc,aACR0pB,GAAQ,MAITA,GAGX,YAAAlR,+BAAA,SAA+BxvB,EAAayvB,GACxC,GAAInxB,KAAKmU,oBAAoBkc,UAAUnZ,WAAWia,GAAgB,CAC9D,IAAIlH,EAAQjqB,KAAKmU,oBAAoBkc,UAAUnZ,WAAWia,GAAeha,OAAOtU,WAAU,SAACuuB,GAAuB,OAAAA,EAAI1vB,MAAQA,KAE9H,IAAe,IAAXuoB,EACA,OAAOjqB,KAAKmU,oBAAoBkc,UAAUnZ,WAAWia,GAAeha,OAAO8S,GAInF,OAAO,MAGJ,YAAAvS,WAAP,SAAkB28B,GACd,YADc,IAAAA,OAAA,GACPr0C,KAAKywB,QAAQltB,QAAO,SAAAqU,GAAU,OAAAy8B,GAAoC,MAAfz8B,EAAO08B,SAGrE,YAAAT,gBAAA,sBACQpjC,EAAU,EAAAI,cAAcP,uBAAuBtQ,KAAKmU,oBAAoBsB,cAAezV,KAAK8X,UAAUjJ,KAAwB,MAAlB7O,KAAK+X,UAAoB,KAAO/X,KAAK+X,UAAUlJ,MAE3J4hB,EAAmC,GAuBvC,GAnB4B,aAAxBzwB,KAAK8X,UAAUjJ,KACf7O,KAAK+X,UAAU47B,QAAQnzC,SAAQ,SAAC+zC,GAC5B,IAAI38B,EAAS,IAAI,EAAA48B,kBAAkB,EAAM,EAAK18B,UAAW,EAAKg8B,WAAYS,EAAO,EAAKx8B,WAEtF0Y,EAAQztB,KAAK4U,MAGb5X,KAAKmU,oBAAoBkc,UAAUnZ,WAAWlX,KAAK8X,UAAUjJ,OAC7D7O,KAAKmU,oBAAoBkc,UAAUnZ,WAAWlX,KAAK8X,UAAUjJ,MAAMsI,OAAO3W,SAAQ,SAAC4wB,GAC/E,IAAIxZ,EAAS,IAAI,EAAA68B,sBAAsB,EAAM,EAAK38B,UAAW,EAAKg8B,YAElEl8B,EAAO88B,cAAgBtjB,EAEvBX,EAAQztB,KAAK4U,MAM2B,oBAAhD5X,KAAKmU,oBAAoBsB,cAAclU,KAEvC,IADA,IAAIoD,EAAM8L,EAAQvO,OACT0C,EAAI,EAAGA,EAAID,IAAOC,EAAG,CAC4B6L,EAAQ7L,GAE7CmL,cAAcC,eAAexP,SAAQ,SAACm0C,GACnD,IAAI1qB,EAAQwG,EAAQ5tB,WAAU,SAAA+U,GAAU,OAAAA,EAAOlW,MAAQizC,EAAQjzC,OAC3DkW,GAAqB,IAAXqS,EAAgB,KAAOwG,EAAQxG,GAE/B,MAAVrS,IAEIA,EADwB,aAAxB,EAAKE,UAAUjJ,KACN,IAAI,EAAA2lC,kBAAkB,EAAM,EAAK18B,UAAW,EAAKg8B,WAAY,KAAM,EAAK/7B,WAExE,IAAI,EAAA08B,sBAAsB,EAAM,EAAK38B,UAAW,EAAKg8B,aAG3DQ,KAAOK,EAEdlkB,EAAQztB,KAAK4U,KAEbA,EAAO08B,KAAOK,EAEc,aAAxB,EAAK78B,UAAUjJ,OACd+I,EAA6Bg8B,eAAezV,QAAUwW,EAAQxW,aAOnF,OAAO1N,GAGJ,YAAAmkB,iBAAP,SAAwBC,GACpB,IAAIj9B,EAUJ,GANIA,EADwB,aAAxB5X,KAAK8X,UAAUjJ,KACN,IAAI,EAAA2lC,kBAAkBx0C,KAAMA,KAAK8X,UAAW9X,KAAK8zC,WAAY,KAAM9zC,KAAK+X,WAExE,IAAI,EAAA08B,sBAAsBz0C,KAAMA,KAAK8X,UAAW9X,KAAK8zC,YAId,oBAAhD9zC,KAAKmU,oBAAoBsB,cAAclU,KACvC,GAA4B,aAAxBvB,KAAK8X,UAAUjJ,KACd+I,EAA6Bg8B,eAAkBh8B,EAA6Bk9B,4BAC5El9B,EAA6Bm9B,kBAAkBpB,QAAQ3wC,KAAM4U,EAA6Bg8B,oBACxF,CACH,IAAIxiB,EAAM,IAAI,EAAA4jB,cACd5jB,EAAI1vB,IAAM,OAET1B,KAAK8zC,WAAqC98B,cAAcE,WAAWlX,KAAK8X,UAAUjJ,MAAMsI,OAAOnU,KAAKouB,GAErGxZ,EAAO88B,cAAgBtjB,OAG3BxZ,EAAOq9B,iBAAiB,UAI5B,GAA4B,UAAxBj1C,KAAK8X,UAAUvW,KACfqW,EAAOtV,MAAQtC,KAAKmU,oBAAoBmc,oBAAoBvT,cACzD,GAA4B,aAAxB/c,KAAK8X,UAAUvW,KAAqB,CAC3C,IAAIkvB,EAAUzwB,KAAK0X,YAAW,GAE1B+Y,EAAQvuB,OAAS,EAGb0V,EAAOtV,MADK,MAAZuyC,EACepjC,KAAKoqB,MAAMpqB,KAAKC,UAAUmjC,EAASvyC,QAGnCmP,KAAKoqB,MAAMpqB,KAAKC,UAAU+e,EAAQA,EAAQvuB,OAAS,GAAGI,QAGzEsV,EAAOtV,MAAQ,EAAAyE,gBAAgBnB,yBAAyB5F,KAAKmU,oBAAoByB,cAAc9V,mBAEhG,GAA4B,SAAxBE,KAAK8X,UAAUvW,KAAiB,CACvC,IAAI2zC,EAAQ,EAAA/8B,cAAcg9B,qCAAqCn1C,KAAKmU,oBAAoByB,cAAe5V,KAAK8X,UAAUjJ,MAElHqmC,GAASA,EAAMhzC,OAAS,IACxB0V,EAAOtV,MAAQ4yC,EAAM,GAAGrmC,UAEG,aAAxB7O,KAAK8X,UAAUjJ,MAAuE,oBAAhD7O,KAAKmU,oBAAoBsB,cAAclU,KACnFqW,EAA6Bg8B,eAAkBh8B,EAA6Bk9B,4BAC9C,aAAxB90C,KAAK8X,UAAUjJ,OACtB+I,EAAOtV,MAAQ,MAOnB,OAJAtC,KAAKywB,QAAQztB,KAAK4U,GAElB5X,KAAK0e,SAAS,EAAA02B,WAAWC,KAElBz9B,GAGJ,YAAAtX,OAAP,SAAcsX,GACV,GAAoB,MAAfA,EAAO08B,MAAuC,WAAvB18B,EAAO08B,KAAK3jC,QAAwE,oBAAhD3Q,KAAKmU,oBAAoBsB,cAAclU,KAA4B,CAC/H,IAAI0oB,EAAQjqB,KAAKywB,QAAQ5tB,WAAU,SAAAyhB,GAAQ,OAAAA,EAAK5iB,MAAQkW,EAAOlW,QAEhD,IAAXuoB,GACAjqB,KAAKywB,QAAQ1tB,OAAOknB,EAAO,GAInCrS,EAAOtX,SAEPN,KAAK0Y,YAGb,EA3RA,GAAa,EAAAmY,8C,iHCTb,aACA,SAEA,SACA,SACA,SAEA,QACA,SAEA,aAaI,WAAYykB,EAA0EtyB,EAAqBrS,GAJ3G,KAAA4f,gBAAiC,IAAI,EAAAtW,QAErC,KAAA+W,UAAoB,EAGhBhxB,KAAKgjB,KAAOA,EACZhjB,KAAKs1C,6BAA+BA,EACpCt1C,KAAK2Q,OAASA,EAubtB,OApbI,YAAA+N,SAAA,SAASnd,GACLvB,KAAKs1C,6BAA6B52B,SAASnd,GAC3CvB,KAAKuwB,gBAAgBhW,KAAKhZ,IAG9B,YAAAg0C,6BAAA,WACI,OAAOv1C,KAAK00C,eAGhB,YAAAc,6BAAA,WACI,OAAOx1C,KAAK00C,cAAcpyC,OAG9B,YAAAoW,SAAA,WACI,IAAInE,EAAcvU,KAAKs1C,6BAA6BnhC,oBAAoBI,YACpEjD,EAAQiD,EAAYkhC,aAA+B,MAAlBz1C,KAAKyT,UAAoB,KAAOc,EAAYmhC,sBAAsB11C,KAAKyT,YAAY,GAAM,GAC1HkiC,EAAMphC,EAAYkhC,aAA6B,MAAhBz1C,KAAK0T,QAAkB,KAAOa,EAAYmhC,sBAAsB11C,KAAK0T,UAAU,GAAM,GASxH,OARA1T,KAAKgxB,UAAW,EAEX1f,EAAM8wB,OAAUuT,EAAIvT,QACrBpiC,KAAKgxB,UAAW,GAGpBhxB,KAAK41C,0BAEE51C,KAAKgxB,UAMhB,YAAA4kB,wBAAA,WACI,IAAIC,EAAmB71C,KAAKs1C,6BAA6BnhC,oBAAoBI,YAAYshC,kBAEpF71C,KAAK81C,mBACN91C,KAAK81C,iBAAmB,IAAIC,KAGhC/1C,KAAK81C,iBAAiBnjC,OAAOkjC,GAEoD,oBAA7E71C,KAAKs1C,6BAA6BnhC,oBAAoBsB,cAAclU,MAA2C,MAAbvB,KAAKs0C,MAAqC,WAArBt0C,KAAKs0C,KAAK3jC,UAG9G,MAFD3Q,KAAKkxB,+BAA+BlxB,KAAKs0C,KAAK5yC,IAAK1B,KAAKgjB,KAAKnU,QAG3E7O,KAAKgxB,UAAW,EAEhBhxB,KAAK81C,iBAAiBzxC,IAAIwxC,MAKtC,YAAA3kB,+BAAA,SAA+BxvB,EAAayvB,GACxC,GAAInxB,KAAKs1C,6BAA6BnhC,oBAAoBkc,UAAUnZ,WAAWia,GAAgB,CAC3F,IAAIlH,EAAQjqB,KAAKs1C,6BAA6BnhC,oBAAoBkc,UAAUnZ,WAAWia,GAAeha,OAAOtU,WAAU,SAACuuB,GAAuB,OAAAA,EAAI1vB,MAAQA,KAE3J,IAAe,IAAXuoB,EACA,OAAOjqB,KAAKs1C,6BAA6BnhC,oBAAoBkc,UAAUnZ,WAAWia,GAAeha,OAAO8S,GAIhH,OAAO,MAGX,sBAAI,kBAAG,C,IAQP,WACI,OAAiB,MAAbjqB,KAAKs0C,KACEt0C,KAAKs0C,KAAK5yC,IAC6B,MAAvC1B,KAAKu1C,+BACLv1C,KAAKu1C,+BAA+B7zC,IAGxC,M,IAfX,SAAQA,GACa,MAAb1B,KAAKs0C,KACLt0C,KAAKs0C,KAAK5yC,IAAMA,EAC8B,MAAvC1B,KAAKu1C,iCACZv1C,KAAKu1C,+BAA+B7zC,IAAMA,I,gCAclD,sBAAI,wBAAS,C,IAAb,WACI,OAAiB,MAAb1B,KAAKs0C,WAA2Cl9B,IAA3BpX,KAAKs0C,KAAK0B,aACxBh2C,KAAKs0C,KAAK0B,aACG,MAAbh2C,KAAKs0C,WAA2Cl9B,IAA3BpX,KAAKs0C,KAAK2B,aAC/Bj2C,KAAKs0C,KAAK2B,aAC6B,MAAvCj2C,KAAKu1C,+BACLv1C,KAAKu1C,+BAA+B9hC,UAGxC,M,IA6CX,SAAcA,GACV,IAAIzT,KAAKwxB,WAAT,CAIA,IAAI0kB,EAAUl2C,KAAKu1C,+BAEnB,GAA+B,0BAA3Bv1C,KAAK2Q,OAAOlB,WAAwC,CACpD,GAAiB,MAAbzP,KAAKs0C,KACL,GAA2C,MAAvCt0C,KAAKu1C,+BACLv1C,KAAKi1C,iBAAiB,cACnB,CACH,GAAIiB,EAAQziC,YAAcA,EACtB,OAGJzT,KAAKi1C,iBAAiB,UAEtBj1C,KAAKs0C,KAAK6B,SAAWn2C,KAAKw1C,+BAI9B/hC,IAAczT,KAAKs0C,KAAK2B,oBACjBj2C,KAAKs0C,KAAK0B,aAEjBh2C,KAAKs0C,KAAK0B,aAAeviC,EAI7BzT,KAAKo2C,sBAC6B,0BAA3Bp2C,KAAK2Q,OAAOlB,aACnBymC,EAAQziC,UAAYA,GAGxBzT,KAAK0e,SAAS,EAAA02B,WAAWiB,c,gCA5E7B,YAAApB,iBAAA,SAAiBtkC,GAKb,GAJA3Q,KAAKs0C,KAAO,IAAI,EAAA/kC,kBAChBvP,KAAKs0C,KAAK3jC,OAASA,EAClB3Q,KAAK2Q,OAAyCZ,cAAcC,eAAehN,KAAKhD,KAAKs0C,MAEvE,WAAX3jC,EACA3Q,KAAKs0C,KAAK5yC,IAAM,WACb,CACH,IAAIw0C,EAAUl2C,KAAKu1C,+BAEnBv1C,KAAKs0C,KAAK5yC,IAAMw0C,EAAQx0C,IACxB1B,KAAKs0C,KAAK2B,aAAeC,EAAQziC,UACjCzT,KAAKs0C,KAAKgC,WAAaJ,EAAQxiC,UAIvC,sBAAI,2BAAY,C,IAMhB,WACI,OAAiB,MAAb1T,KAAKs0C,KACEt0C,KAAKs0C,KAAK2B,aAGd,M,IAXX,SAAiBA,GACI,MAAbj2C,KAAKs0C,OACLt0C,KAAKs0C,KAAK2B,aAAeA,I,gCAYjC,sBAAI,sBAAO,C,IAAX,WACI,OAAiB,MAAbj2C,KAAKs0C,WAAyCl9B,IAAzBpX,KAAKs0C,KAAKiC,WACxBv2C,KAAKs0C,KAAKiC,WACG,MAAbv2C,KAAKs0C,WAA2Cl9B,IAA3BpX,KAAKs0C,KAAK2B,aAC/Bj2C,KAAKs0C,KAAKgC,WAC6B,MAAvCt2C,KAAKu1C,+BACLv1C,KAAKu1C,+BAA+B7hC,QAGxC,M,IAwCX,SAAYA,GACR,IAAI1T,KAAKwxB,WAAT,CAIA,IAAI0kB,EAAUl2C,KAAKu1C,+BAEnB,GAA+B,0BAA3Bv1C,KAAK2Q,OAAOlB,WAAwC,CACpD,GAAiB,MAAbzP,KAAKs0C,KACL,GAAe,MAAX4B,EACAl2C,KAAKi1C,iBAAiB,cACnB,CACH,GAAIiB,EAAQxiC,UAAYA,EACpB,OAGJ1T,KAAKi1C,iBAAiB,UAEtBj1C,KAAKs0C,KAAK6B,SAAWn2C,KAAKw1C,+BAI9B9hC,IAAY1T,KAAKs0C,KAAKgC,kBACft2C,KAAKs0C,KAAKiC,WAEjBv2C,KAAKs0C,KAAKiC,WAAa7iC,EAI3B1T,KAAKo2C,sBAC6B,0BAA3Bp2C,KAAK2Q,OAAOlB,aACnBymC,EAAQxiC,QAAUA,GAGtB1T,KAAK0e,SAAS,EAAA02B,WAAWoB,Y,gCAG7B,sBAAI,yBAAU,C,IAMd,WACI,OAAiB,MAAbx2C,KAAKs0C,KACEt0C,KAAKs0C,KAAKgC,WAGd,M,IAXX,SAAeA,GACM,MAAbt2C,KAAKs0C,OACLt0C,KAAKs0C,KAAKgC,WAAaA,I,gCAY/B,sBAAI,oBAAK,C,IAAT,WACI,OAAiB,MAAbt2C,KAAKs0C,WAAuCl9B,IAAvBpX,KAAKs0C,KAAKmC,SACxBz2C,KAAKs0C,KAAKmC,SACG,MAAbz2C,KAAKs0C,WAAuCl9B,IAAvBpX,KAAKs0C,KAAK6B,SAC/Bn2C,KAAKs0C,KAAK6B,SAC6B,MAAvCn2C,KAAKu1C,+BACLv1C,KAAKu1C,+BAA+BjzC,MAGxC,M,IAGX,SAAUA,GACN,IAAItC,KAAKwxB,WAAT,CAIA,GAAa,MAATlvB,GACA,GAAuB,SAAnBtC,KAAKgjB,KAAKzhB,KACVe,EAAQ,CAACA,QACN,GAAuB,SAAnBtC,KAAKgjB,KAAKzhB,KACjBe,EAAQ,IAAIyZ,KAAKzZ,GAAO61B,eACrB,GAAuB,aAAnBn4B,KAAKgjB,KAAKzhB,KAAqB,CAItC,GAAmB,eAAfe,EAAMf,KACN,IAAK,IAAIqD,EAAI,EAAGA,EAAItC,EAAMT,YAAYK,SAAU0C,EAAG,CAC/C,IAAI8xC,EAAuBp0C,EAAMT,YAAY+C,GAE7C8xC,EAAW,GAAKC,OAAOC,WAAWF,EAAW,GAAGG,QAN3B,IAOrBH,EAAW,GAAKC,OAAOC,WAAWF,EAAW,GAAGG,QAP3B,QASH,UAAfv0C,EAAMf,OACbe,EAAMT,YAAc,CAAC80C,OAAOC,WAAWt0C,EAAMT,YAAY,GAAGg1C,QAVnC,IAUqEF,OAAOC,WAAWt0C,EAAMT,YAAY,GAAGg1C,QAV5G,YAajB,MAATv0C,IACgB,aAAnBtC,KAAKgjB,KAAKzhB,KACVe,EAAQ,EAAAyE,gBAAgBnB,yBAAyB5F,KAAKs1C,6BAA6BnhC,oBAAoByB,cAAc9V,cAC3F,cAAnBE,KAAKgjB,KAAKzhB,OACjBe,EAAQ,KAIhB,GAA+B,0BAA3BtC,KAAK2Q,OAAOlB,WAAwC,CACpD,GAAiB,MAAbzP,KAAKs0C,KACL,GAA2C,MAAvCt0C,KAAKu1C,+BACLv1C,KAAKs0C,KAAO,IAAI,EAAA/kC,kBAChBvP,KAAKs0C,KAAK5yC,IAAM,OAChB1B,KAAKs0C,KAAK3jC,OAAS,SAClB3Q,KAAK2Q,OAAyCZ,cAAcC,eAAehN,KAAKhD,KAAKs0C,UACnF,CACH,GAAIt0C,KAAK82C,eAAe92C,KAAK00C,cAAcpyC,MAAOA,GAC9C,OAGJtC,KAAKs0C,KAAO,IAAI,EAAA/kC,kBAChBvP,KAAKs0C,KAAK3jC,OAAS,SACnB3Q,KAAKs0C,KAAK5yC,IAAM1B,KAAKu1C,+BAA+B7zC,IACpD1B,KAAKs0C,KAAK6B,SAAWn2C,KAAK00C,cAAcpyC,MACxCtC,KAAKs0C,KAAK2B,aAAej2C,KAAKu1C,+BAA+B9hC,UAC7DzT,KAAKs0C,KAAKgC,WAAat2C,KAAKu1C,+BAA+B7hC,QAC1D1T,KAAK2Q,OAAyCZ,cAAcC,eAAehN,KAAKhD,KAAKs0C,MAIrE,WAArBt0C,KAAKs0C,KAAK3jC,QAAuB3Q,KAAK82C,eAAe92C,KAAKs0C,KAAK6B,SAAU7zC,UAClEtC,KAAKs0C,KAAKmC,SAEjBz2C,KAAKs0C,KAAKmC,SAAWhlC,KAAKoqB,MAAMpqB,KAAKC,UAAUpP,IAInDtC,KAAKo2C,sBAC6B,0BAA3Bp2C,KAAK2Q,OAAOlB,aACnBzP,KAAK00C,cAAcpyC,MAAQA,GAG/BtC,KAAK0e,SAAS,EAAA02B,WAAW2B,S,gCAG7B,sBAAI,uBAAQ,C,IAMZ,WACI,OAAiB,MAAb/2C,KAAKs0C,KACEt0C,KAAKs0C,KAAK6B,SAGd,M,IAXX,SAAaA,GACQ,MAAbn2C,KAAKs0C,OACLt0C,KAAKs0C,KAAK6B,SAAWA,I,gCAYtB,YAAAa,kBAAP,SAAyB1rB,GACrBtrB,KAAKsC,MAAQmP,KAAKoqB,MAAMpqB,KAAKC,UAAU4Z,KAG3C,YAAA8qB,gBAAA,sBACI,GAAiB,MAAbp2C,KAAKs0C,WAAuCl9B,IAAvBpX,KAAKs0C,KAAKmC,eAAqDr/B,IAA3BpX,KAAKs0C,KAAK0B,mBAAuD5+B,IAAzBpX,KAAKs0C,KAAKiC,WAA0B,CACrI,IAAMU,EAASj3C,KAAK2Q,OAAyCZ,cAAcC,eAErEia,EAAQgtB,EAAMp0C,WAAU,SAAA4mC,GAAK,OAAAA,EAAE/nC,MAAQ,EAAK4yC,KAAK5yC,QAExC,IAAXuoB,GACAgtB,EAAMl0C,OAAOknB,EAAO,GAGxBjqB,KAAKs0C,KAAO,OAIpB,YAAAwC,eAAA,SAAeI,EAAWC,GACtB,GAAuB,YAAnBn3C,KAAKgjB,KAAKzhB,KACV,OAAO21C,IAASC,EAGpB,GAAc,KAATD,GAAuB,MAARC,GAA2B,KAATA,GAAuB,MAARD,EACjD,OAAO,EAGX,IAAKA,IAASC,EACV,OAAO,EACJ,IAAMD,GAAQC,IAAWA,GAAQD,EACpC,OAAO,EAGX,GAAuB,SAAnBl3C,KAAKgjB,KAAKzhB,MACV,GAAY,MAAR21C,GAAwB,MAARC,EAChB,OAAOD,EAAKh1C,SAAWi1C,EAAKj1C,QAAUg1C,EAAK,KAAOC,EAAK,OAExD,IAAuB,aAAnBn3C,KAAKgjB,KAAKzhB,KACjB,OAAO,UAAkB21C,EAAMC,GAC5B,GAAuB,SAAnBn3C,KAAKgjB,KAAKzhB,KAIjB,OAH+B,iBAAT21C,EAAqBvwB,SAASuwB,GAAQA,MAC7B,iBAATC,EAAqBxwB,SAASwwB,GAAQA,GAGzD,GAAuB,UAAnBn3C,KAAKgjB,KAAKzhB,KAAkB,CACnC,IAAM21C,EAAK17B,eAAiB27B,EAAK37B,cAAiB07B,EAAK17B,aAAatZ,SAAWi1C,EAAK37B,aAAatZ,OAC7F,OAAO,EAIX,IADA,IAAIyC,EAAMuyC,EAAK17B,aAAatZ,OACnB0C,EAAI,EAAGA,EAAID,IAAOC,EAAG,CAC1B,IAAIwyC,EAAcF,EAAK17B,aAAa5W,GAEhCyyC,EAAMr3C,KAAKs3C,iBAAiBH,EAAMC,EAAYG,QAC9CC,EAAMJ,EAAY90C,MAEtB,KAAa,KAARk1C,GAAqB,MAAPH,GAAyB,KAARA,GAAqB,MAAPG,IAEvCA,IAAQH,EACf,OAAO,EAIf,OAAO,GAGX,OAAOH,IAASC,GAGpB,YAAAG,iBAAA,SAAiBG,EAAoBF,GACjC,OAAO,IAAI,EAAAhiC,eAAekiC,EAAGnsB,eAAgBmsB,EAAGj8B,cAAck8B,SAASH,IAGpE,YAAAj3C,OAAP,sBACI,GAA+B,0BAA3BN,KAAK2Q,OAAOlB,WACZ,GAAiB,MAAbzP,KAAKs0C,MAAqC,WAArBt0C,KAAKs0C,KAAK3jC,OAAqB,CAEpD,IAAIgnC,EAA8C33C,KAAK2Q,QAEjDsZ,EAAQ0tB,EAAa5nC,cAAcC,eAAenN,WAAU,SAAAuuB,GAAO,OAAAA,EAAI1vB,MAAQ,EAAK4yC,KAAK5yC,SAElF,GACTi2C,EAAa5nC,cAAcC,eAAejN,OAAOknB,EAAO,OAEzD,IAAiB,MAAbjqB,KAAKs0C,KAMZ,cALOt0C,KAAKs0C,KAAKmC,gBACVz2C,KAAKs0C,KAAK0B,oBACVh2C,KAAKs0C,KAAKiC,WACjBv2C,KAAKo2C,uBACLp2C,KAAK0e,SAAS,EAAA02B,WAAWwC,QAEI,MAAtB53C,KAAK00C,eAAsC,MAAb10C,KAAKs0C,OAC1Ct0C,KAAKs0C,KAAO,IAAI,EAAA/kC,kBAChBvP,KAAKs0C,KAAK3jC,OAAS,SACnB3Q,KAAKs0C,KAAK5yC,IAAM1B,KAAK00C,cAAchzC,IACnC1B,KAAKs0C,KAAK6B,SAAWn2C,KAAK00C,cAAcpyC,MACxCtC,KAAKs0C,KAAK2B,aAAej2C,KAAK00C,cAAcjhC,UAC5CzT,KAAKs0C,KAAKgC,WAAat2C,KAAK00C,cAAchhC,QACzC1T,KAAK2Q,OAAyCZ,cAAcC,eAAehN,KAAKhD,KAAKs0C,YAEvF,GAA+B,0BAA3Bt0C,KAAK2Q,OAAOlB,WAAwC,CAC3D,IAEIwa,EAFA4tB,EAAQ73C,KAAK2Q,OAAiCqG,cAAcE,WAAWlX,KAAKgjB,KAAKnU,MAAMsI,QAI5E,KAFX8S,EAAQ4tB,EAAKh1C,WAAU,SAACuuB,GAAU,OAAOA,EAAI1vB,MAAQ,EAAKgzC,cAAchzC,SAGxEm2C,EAAK90C,OAAOknB,EAAO,GAI3BjqB,KAAK0e,SAAS,EAAA02B,WAAWwC,SAGtB,YAAApmB,SAAP,WACI,OAAoB,MAAbxxB,KAAKs0C,MAAqC,WAArBt0C,KAAKs0C,KAAK3jC,QAG9C,EAvcA,GAAa,EAAA8jC,yB,mHCXb,WAYA,OAOA,SACA,SACA,SACA,SAIA,GAHA,MAGA,QASA,GARA,MAEA,OACA,OACA,OAEA,MAEA,QACA,QACA,Q,GAIA,O,4GCvCI,yBAAI,YAAkC,kB,kBAAlC,gE,sBAiBc,2BACE,6BACF,kB,sBACA,0BACE,6BACF,kB,yBASM,6BACI,YACF,kB,uCADE,oE,sBAgBK,2BACE,6BACF,kB,yBAGF,0BACE,2BACE,6BACA,YACF,iBACF,kB,2FAFI,sF,8FAfR,4BACE,4BACE,yBAAI,sCAA0D,iBAE9D,+BAA8N,wEAAuB,yFAAkB,uCAAvQ,iBAEA,6BACE,6BAGF,iBAEA,8BAMF,iBACF,iB,sGAjB2B,4CAEhB,6GAAsF,+CAAtF,CAAsF,0BAAtF,CAAsF,kBAAtF,CAAsF,uCAGvF,yEAKA,oF,yBAbX,6BACC,+BAoBD,2B,uCApBqB,6D,yBA2BZ,gCAA8G,YAA+B,kB,uBAArD,6BAAsB,4D,mDAHpH,0BACE,gCAA4K,4GACxK,2BACA,kCACJ,iBACF,iB,8EAJsE,6EAA5D,oEAA2D,8CAA3D,CAA2D,kBAA3D,CAA2D,gDAEpC,qG,mDAGjC,0BACE,+BAA6H,4GAA7H,iBACF,iB,8EADS,mFAA2D,qBAA3D,CAA2D,kBAA3D,CAA2D,iD,mDAGpE,0BACE,oCAAoF,0GAA2B,qFACzB,iBACxF,iB,8EAFc,qFAAuE,gBAAvE,CAAuE,0BAAvE,CAAuE,mBAAvE,CAAuE,sBAAvE,CAAuE,cAAvE,CAAuE,oBAAvE,CAAuE,kBAAvE,CAAuE,uB,mDAIrF,0BACE,+BAA8H,4GAA9H,iBACF,iB,8EADS,mFAA2D,oBAA3D,CAA2D,kBAA3D,CAA2D,iD,mDAGpE,0BACC,+BACE,+BAAmG,4GAAnG,iBACA,8BAAkE,6BAA8D,iBAClI,iBACA,+BACE,+BAAiK,4GAAjK,iBACA,8BAAkE,6BAA+D,iBACnI,iBACD,iB,8EAPoI,+DAAoB,kDAAtG,qCAAoC,WAApC,CAAoC,kBAApC,CAAoC,gDAC7E,oFAGyL,gEAAqB,mDAA7M,qEAA2D,uBAA3D,CAA2D,WAA3D,CAA2D,kBAA3D,CAA2D,gDAC5D,qF,mDAuBE,8BAAwE,0HAAS,wBAC/E,sBACF,kB,qBAGA,yB,mHAtBP,6BACE,YACA,6BACG,+BAGE,mJAAqD,qLAArD,CAAqD,oIAHvD,iBAcE,gCAKA,gCAEJ,iBACH,iB,yHAxBE,qDAGK,iDAA4B,oFAA5B,CAA4B,uCAA5B,CAA4B,oBAA5B,CAA4B,iFAA5B,CAA4B,+EAA5B,CAA4B,0BAA5B,CAA4B,0BAA5B,CAA4B,uBAA5B,CAA4B,uBAarB,gDAKA,gD,yBAvBhB,6BACE,gCA0BF,2B,8BA1BuD,0D,yBAFzD,0BACE,uCA4BF,kB,8BA5BiB,4G,yBAiCb,6BACE,YACF,2B,wCADE,yD,sBAGA,8BACE,6BACF,kB,sBACA,8BACE,6BACF,kB,yBANF,6BACE,gCAGA,gCAGF,2B,6DANS,qGAGA,sG,yBAXb,0BACE,2BACE,6BAEA,uCAGA,uCAQF,iBACF,kB,8BAZmB,qEAGA,sE,qBAsBT,6B,qBACA,6B,mDAFD,gCAAiF,6IAChF,oCACA,oCACD,iB,2CAH0I,oJAC9H,yEACA,wE,qBAIV,6B,qBACA,6B,qBAIA,6B,qBACA,6B,oDAHF,gCAAiI,6IAE/H,oCACA,oCACF,iB,gEAHE,gKACW,sEACA,sE,oDAGb,2BAAkJ,8IAA4C,kB,oDAW1L,+BAA6P,mHAAyC,GAAG,GAAC,IAA7C,CAA+C,kIAA5S,iB,8EAA6E,kGAAmH,qBAAnH,CAAmH,sC,oDAEhM,+BAA6Q,qHAAsC,kIAAnT,iB,8EAA6F,kGAAmH,qBAAnH,CAAmH,6B,uBAGpN,0BACI,2BACE,6BACF,iBACJ,kB,oDAOI,+BAA8P,mHAAyC,GAAG,GAAC,IAA7C,CAA+C,kIAA7S,iB,8EAA6E,kGAAmH,sBAAnH,CAAmH,sC,oDAEhM,+BAA8Q,qHAAsC,kIAApT,iB,8EAA6F,kGAAmH,sBAAnH,CAAmH,6B,uBAGpN,0BACI,2BACE,6BACF,iBACJ,kB,0BAhCJ,yBAEE,4BACE,yBACE,6BACF,iBACA,6BACI,kCAEA,kCAEJ,iBACA,+BAKF,iBACA,4BACE,yBACE,8BACF,iBACA,8BACI,mCAEA,mCAEJ,iBACA,gCAKF,iBAEF,kB,wCA5BgB,gFAEA,4FAGN,sGAWM,gFAEA,4FAGN,yG,oDAzDf,+BAOK,yBACE,4BAEE,kCAIA,gCAAuD,0IAErD,oCACA,oCACF,iBACA,mCAMA,8BACF,iBACF,iBAEA,+BAsCJ,iB,gEAzDiB,2DAKP,mKACW,yEACA,uEAEJ,2GAML,qIAIH,6P,0BA9Gb,4BACC,4BAEE,8BAMA,8BAIA,8BAKA,8BAIA,+BAWA,8BA8BA,8BAkBA,mCAoEH,iBAEA,kB,4DApJS,kEAMA,uEAIA,kEAKA,qGAIA,qEAWA,sEA8BA,4FAkBE,uE,0BA+EP,0BACE,2BACE,6BACA,YACF,iBACF,kB,uCAFI,6D,8FAwBN,2BACE,YACF,kB,uBAFyD,4FACvD,wD,0BAFJ,yBACE,8BAGF,kB,uCAHqB,kE,oDAavB,6BAEI,6H,uBAEA,uBACJ,iB,iCAFI,yKAFA,+E,oDAMJ,6BACI,6H,uBAEA,uBACJ,iB,KAFI,wF,mLArPR,4BAEI,4BAGA,+BAIA,4BAKE,uCAsBA,gCAwJA,4BACE,yBACE,yBACE,6BACF,iBAEA,wCAA6G,0EAA+B,oF,wBAA2T,iBAEvc,gCAMF,iBACA,0BACE,8BACE,0BACE,8BACF,iBACA,wCAA2G,wEAA6B,oF,wBACsL,iBAUhU,iBACF,iBACF,iBACA,+BAKF,iBAEF,iBAOE,gCAOA,gCAKJ,iB,yDAvPI,kFACmC,sIAG7B,8EASW,4EAsBV,+SA8JgC,yFAA2E,oBAA3E,CAA2E,2BAA3E,CAA2E,sBAA3E,CAA2E,cAA3E,CAA2E,kEAA3E,CAA2E,+HAEtG,6DAY6B,uFAAyE,kBAAzE,CAAyE,yBAAzE,CAAyE,qDAAzE,CAAyE,sBAAzE,CAAyE,cAAzE,CAAyE,qBAAzE,CAAyE,mDAAzE,CAAyE,kEAAzE,CAAyE,wHAc3G,gGAcF,+IAOA,0H,0BArPX,6BAEE,iCAyPF,2B,8BAzP6B,qD,0BAZnC,0BACE,+BACE,+BACE,6BAGA,8BAIA,wCA4PF,iBACF,iBACF,kB,8BArQ0B,kFAGd,wDAIS,0D,oDAiQvB,6BACE,4BAAgC,mGAC9B,8BACF,iBACF,kB,oDAKF,8BACE,iCAAyG,6F,uBACvG,8BACF,iBACA,iCAAyG,4F,uBACvG,8BACF,iBACA,iCAAwG,6F,uBACtG,8BACF,iBACF,iB,iCATU,8GAAkF,qEAGlF,8GAAkF,qEAGlF,6GAAiF,wE,uBAKzF,iCACI,8BACJ,kB,uBACA,iCACI,8BACJ,kB,0BANF,8BACE,oCAGA,oCAGF,kB,8BANkC,0GAGA,2G,0BAtSpC,4BACE,2BACE,2BACE,+BAyQF,iBAEA,+BAMF,iBAGA,kCAWA,gCASF,kB,6BAxSY,oDA2QH,qIASD,6UAWA,gJ,yBAWV,8C,6BAAyL,0DAAgD,2BAAhD,CAAgD,2DAAhD,CAAgD,2DAAhD,CAAgD,gCAAhD,CAAgD,4D,oCD9QjP,cAqEI,WAAmBpgC,EAAqCoG,EAA+BkB,EAAiCvH,EAC7Gy4B,EAA6Ct4B,EAAkCD,EAC9EwjC,EAA8C93B,EAAsC+3B,GAF7E,KAAA1jC,cAAqC,KAAAoG,MAA+B,KAAAkB,UAAiC,KAAAvH,WAC7G,KAAAy4B,oBAA6C,KAAAt4B,cAAkC,KAAAD,cAC9E,KAAAwjC,iBAA8C,KAAA93B,eAAsC,KAAA+3B,aAtCvF,KAAA1nC,OAAiB,EAI1B,KAAAyK,QAAkB,KAElB,KAAAgB,YAAoB,IAAIC,KAExB,KAAA/Z,SAAmB,EACT,KAAAg2C,cAAgB,IAAI,EAAAz4C,aAErB,KAAAyc,UAAoB,EAEpB,KAAApH,mBAA6B,EAU7B,KAAAmD,UAA+B,KAE/B,KAAAhD,WAAqB,KAErB,KAAAN,kBAA4B,EAErC,KAAAwjC,WAAgC,GAEhC,KAAAC,mBAA6B,EAE7B,KAAAC,eAAyB,E,OAOzB,YAAA34C,SAAA,WACIQ,KAAKs1C,6BAA+Bt1C,KAAKmU,oBAAoB6D,sBAAsBhY,KAAKi1B,cAAej1B,KAAK+X,WAE5G/X,KAAKo4C,sBACLp4C,KAAKk4C,kBAAgD,aAA5Bl4C,KAAKi1B,cAAc1zB,OAA0C,MAAlBvB,KAAK+X,WAA6C,MAAxB/X,KAAK+X,UAAUwE,OAAiD,IAAhCvc,KAAK+X,UAAUwE,MAAMra,QACnJlC,KAAKm4C,eAAgB,GAGzB,YAAAp9B,gBAAA,WACQ/a,KAAKqQ,OAAqC,WAA5BrQ,KAAKi1B,cAAcpmB,MAAgD,IAA3B7O,KAAKi4C,WAAW/1C,QACtElC,KAAKq4C,mBAIb,YAAAp9B,YAAA,SAAY+kB,GACJhgC,KAAKm4C,eAAiBnY,EAAQvrB,kBAAoBurB,EAAQvrB,iBAAiByrB,gBAAkBF,EAAQvrB,iBAAiBwrB,cACtHjgC,KAAKo4C,uBAIb,YAAA5hC,cAAA,SAAczB,EAAoB2B,QAAA,IAAAA,OAAA,GAC9B1W,KAAK+U,WAAaA,EACd2B,GACA1W,KAAKo4C,uBAIb,YAAAtJ,uBAAA,WAGI,IAFA,IAAIE,EAAahvC,KAAKivC,yBAAyBC,UAEtCtqC,EAAI,EAAGA,EAAIoqC,EAAW9sC,OAAQ0C,IAAK,CAExC,IADYoqC,EAAWpqC,GACZw9B,MACP,OAAO,EAIf,OAAO,GAGX,YAAAkW,uBAAA,SAAuBC,EAA4BhB,GAC/C,OAAoC,MAA7BgB,EAAU3gC,OAAOu+B,UAAoBn2C,KAAKs3C,iBAAiBiB,EAAU3gC,OAAOu+B,SAAUoB,KAAYv3C,KAAKs3C,iBAAiBiB,EAAU3gC,OAAOtV,MAAOi1C,IAG3J,YAAAiB,aAAA,sBACI9oB,YAAW,WACP,EAAK1tB,QAAU,EAAKszC,6BAA6B58B,YAAc,EAAKo2B,yBAEpE,EAAKkJ,cAAczd,KAAK,EAAKv4B,WAC9B,IAGP,YAAA1B,OAAA,SAAOwtC,GAOH,GANI9tC,KAAKqU,YAAY3T,aACjBV,KAAKqU,YAAYvT,cAGrBd,KAAKs1C,6BAA6Bh1C,OAAOwtC,EAAKl2B,QAE1Ck2B,EAAK2K,aAAe,EAAArpC,WAAWspC,KAAuD,oBAAhD14C,KAAKmU,oBAAoBsB,cAAclU,KAA4B,CACzG,IAAM0oB,EAAQjqB,KAAKi4C,WAAWp1C,WAAU,SAAA81C,GAAK,OAAAA,EAAE/gC,OAAOlW,MAAQosC,EAAKl2B,OAAOlW,OAEtEuoB,GAAS,GACTjqB,KAAKi4C,WAAWl1C,OAAOknB,EAAO,GAIN,aAA5BjqB,KAAKi1B,cAAc1zB,MACnBvB,KAAKqU,YAAY9R,UAIzB,YAAA81C,gBAAA,SAAgBxD,GACZ,IAAIj9B,EAAS5X,KAAKs1C,6BAA6BV,iBAAiBC,GAEhE,GAAI70C,KAAKqQ,OAASrQ,KAAKmU,oBAAoBkc,UAAUnZ,WAAmB,OAAG,CACvE,IAAIC,EAASnX,KAAKmU,oBAAoBkc,UAAUnZ,WAAmB,OAAEC,OAErE,GAAIA,GAAUA,EAAOjV,OAAS,EAAG,CAC7B,IAAII,EAAQ6U,EAAO,GAEnBS,EAAOnE,UAAYnR,EAAMmR,UACzBmE,EAAOlE,QAAUpR,EAAMoR,SAI/B1T,KAAKi4C,WAAWj1C,KAAK,IAAI,EAAA41C,gBAAgB54C,KAAM4X,KAGnD,YAAA0/B,iBAAA,SAAiBG,EAAoBF,GACjC,OAAa,MAANE,EAAa,KAAO,IAAI,EAAAliC,eAAekiC,EAAGnsB,eAAgBmsB,EAAGj8B,cAAck8B,SAASH,IAGxF,YAAApC,qCAAP,SAA4C0D,GACxC,OAAO,EAAA1gC,cAAcg9B,qCAAqCn1C,KAAK4V,cAAeijC,IAGlF,YAAAT,oBAAA,sBACQH,EAAgC,GAEtBj4C,KAAKs1C,6BAA6B59B,WAAW1X,KAAKyU,kBACxDjU,SAAQ,SAACoX,GACb,GAAuB,MAAnB,EAAK7C,YAAsB,EAAKR,YAAYkd,QAAQ,EAAK1c,WAAY6C,EAAOnE,UAAWmE,EAAOlE,SAAU,CACxG,IAAIo6B,EAAO,IAAI,EAAA8K,gBAAgB,EAAMhhC,GACrCqgC,EAAWj1C,KAAK8qC,OAIxB9tC,KAAKi4C,WAAaA,GAGtB,YAAAa,UAAA,sBACI94C,KAAK83C,eAAe9lC,gBAAgBhS,KAAKs1C,6BAA6BxB,WAAWpyC,IAAK,EAAAoP,iBAAiBioC,UAAUz8B,MAAK,SAAAof,GAClH,EAAK4Z,6BAA6BxB,WAAWh9B,eAAiB,EAAAhG,iBAAiBioC,YAChFp8B,OAAM,SAACC,GACN,EAAKC,MAAMD,OAInB,YAAAu1B,SAAA,sBACInyC,KAAK83C,eAAe9lC,gBAAgBhS,KAAKs1C,6BAA6BxB,WAAWpyC,IAAK,EAAAoP,iBAAiBkoC,UAAU18B,MAAK,SAAAof,GAClH,EAAK4Z,6BAA6BxB,WAAWh9B,eAAiB,EAAAhG,iBAAiBkoC,YAChFr8B,OAAM,SAACC,GACN,EAAKC,MAAMD,OAInB,YAAAq8B,UAAA,sBACIj5C,KAAK83C,eAAe9lC,gBAAgBhS,KAAKs1C,6BAA6BxB,WAAWpyC,IAAK,EAAAoP,iBAAiBooC,SAAS58B,MAAK,SAAAof,GACjH,EAAK4Z,6BAA6BxB,WAAWh9B,eAAiB,EAAAhG,iBAAiBooC,WAChFv8B,OAAM,SAACC,GACN,EAAKC,MAAMD,OAIZ,YAAAC,MAAP,SAAaD,GACT5c,KAAK6b,WAAa,EAAAyD,aAAa6Q,kBAAkBvT,EAAK5c,KAAKggB,eAO/D,YAAA6e,uBAAA,SAAuBjnB,EAA2BnE,EAAmBC,EAAiBnS,EAAWgzC,EAAYtqB,GAA7G,WACQiC,EAAoB3qB,EAAKsN,KAEzB29B,EAAa,KACb9X,EAAiB,KACjBlkB,EAAgB,KAEpB,GAAIyZ,EAAQ,EAAG,CACX,IAAIkvB,EAAQvhC,EAAO09B,6BAA6Bv9B,UAAUwE,MAAM0N,EAAQ,GAClE,EAASsqB,EAAMpW,QAAQgb,EAAMtqC,MAEX,MAApB,EAAOwhB,WAAyD,MAApC,EAAOA,UAAU1uB,WAAWkN,OACxD2B,EAAgBoH,EAAO09B,6BAA6Bv9B,UAAUlJ,KAC9D29B,EAAa,EAAOnc,UAAU1uB,WAAWkN,KACzC6lB,EAAiB,EAAOrE,UAAU1uB,WAAWJ,MAIrD,OAAO,EAAAi6B,WAAWze,QAAO,SAAC0e,GACtB,GAAkB,MAAd+Q,EAGA,IAFA,IAAI4M,EAAQnvB,EAES,MAAduiB,GAAsB4M,EAAQ,GAAG,CACpCA,GAAgB,EAEhB,IAAI,EAAS7E,EAAMpW,QAAQvmB,EAAO09B,6BAA6Bv9B,UAAUwE,MAAM68B,GAAOvqC,MAExE,MAAV,IACwB,MAApB,EAAOwhB,WAAyD,MAApC,EAAOA,UAAU1uB,WAAWkN,MACxD29B,EAAa,EAAOnc,UAAU1uB,WAAWkN,KACzC2B,EAAgBoH,EAAO09B,6BAA6Bv9B,UAAUlJ,KAC9D6lB,EAAiB9c,EAAO09B,6BAA6Bv9B,UAAUwE,MAAM68B,GAAOvqC,MACpD,MAAjB,EAAOwqC,SACd7M,EAAa,EAAO6M,OACpB7oC,EAAgBoH,EAAO09B,6BAA6Bv9B,UAAUlJ,KAC9D6lB,EAAiB9c,EAAO09B,6BAA6Bv9B,UAAUwE,MAAM68B,GAAOvqC,OAM5F,EAAK8M,QAAQ6W,wBAAwB+hB,EAAMpW,QAAQ58B,EAAKsN,MAAM2Y,KAAM0E,EAAmBsgB,EAAY9X,EAAgBlkB,EAAeiD,EAAWC,GAAS4I,MAAK,SAAAof,GACvJD,EAASlhB,KAAKmhB,UAK1B,YAAAS,kBAAA,SAAkBvkB,EAA2BjJ,EAAmBpN,EAAWgzC,EAAY99B,GAGnF89B,EAAMpW,QAAQ58B,EAAKsN,MAAM2Y,KAAO7Y,EAAE6d,KAAKnV,KAAO,MAAQ1I,EAAE6d,KAAK3d,KAC7D0lC,EAAMpW,QAAQ58B,EAAKsN,MAAMwqC,OAAS1qC,EAAE6d,KAAK3d,KAIzC,IAFA,IAAIylB,EAAc,GAET1vB,EAAI,EAAGA,EAAIgT,EAAO09B,6BAA6Bv9B,UAAUwE,MAAMra,OAAQ0C,IAAK,CACjF,IAAIqR,EAAU2B,EAAO09B,6BAA6Bv9B,UAAUwE,MAAM3X,GAIlE,GAFA0vB,EAAYtxB,KAAKiT,EAAQpH,MAErBoH,EAAQpH,OAAStN,EAAKsN,KACtB,MAIR7O,KAAK2b,QAAQwY,oBAAoBxlB,EAAE6d,KAAK0lB,IAAK3wC,EAAKsN,KAAMylB,GAAa,EAAM7d,GAAM6F,MAAK,SAAAg9B,GAElFA,EAAUnb,QAAUmb,EAAUnb,QAAQ56B,QAAO,SAAAg2C,GAAK,OAAAA,EAAEn1B,gBAAkBxM,EAAO09B,6BAA6Bv9B,UAAUlJ,eAE7G0lC,EAAMpW,QAAQ58B,EAAKsN,MAAMwqC,OAChC9E,EAAMpW,QAAQ58B,EAAKsN,MAAMwhB,UAAYipB,EAAUjpB,UAC/CkkB,EAAMpW,QAAQ58B,EAAKsN,MAAM2Y,KAAO8xB,EAAUjpB,UAAU1uB,WAAWmb,aAAawO,eAAiB,MAAQguB,EAAUjpB,UAAU1uB,WAAWkN,KAEpI,IAAK,IAAIjK,EAAI,EAAGA,EAAIgT,EAAO09B,6BAA6Bv9B,UAAUwE,MAAMra,OAAQ0C,IAAK,CAIjF,IAHA,IAAIqR,EAAU2B,EAAO09B,6BAA6Bv9B,UAAUwE,MAAM3X,GAC9D40C,EAAWF,EAEI,MAAZE,GAAoBA,EAASnpB,UAAU1uB,WAAWJ,OAAS0U,EAAQpH,MAElE2qC,EADAA,EAASrb,QAAQj8B,OAAS,EACfs3C,EAASrb,QAAQ,GAEjB,KAIH,MAAZqb,IACAjF,EAAMpW,QAAQloB,EAAQpH,MAAMwhB,UAAYmpB,EAASnpB,UACjDkkB,EAAMpW,QAAQloB,EAAQpH,MAAM2Y,KAAOgyB,EAASnpB,UAAU1uB,WAAWmb,aAAawO,eAAiB,MAAQkuB,EAASnpB,UAAU1uB,WAAWkN,MAI7I+I,EAAO6hC,eAAel4C,EAAMgzC,EAAMpW,aAQ1C,YAAAub,sBAAA,SAAsB5L,GAClB9tC,KAAKqU,YAAY7R,YAAYsrC,EAAKnrC,SAASjC,UAAWotC,EAAKnrC,UAEnB,UAApC3C,KAAK4V,cAAc9V,cAAgE,eAApCE,KAAK4V,cAAc9V,eAClEguC,EAAK4I,WAAa,KAI1B,YAAAiD,mBAAA,SAAmB7L,GAAnB,WAEIpe,YAAW,WACP,EAAKkqB,aAAe,EAAK7B,WAAWl2B,cAAcoF,SAAS,GAAG4yB,uBAAuB,6BAA6B,GAAGC,eACtH,GAEH,IAAIr5C,EAAeT,KAAK+5C,iBAAiBjM,EAAM,OAE3CrtC,EAAMC,WACNV,KAAKqU,YAAYvT,cAGrBd,KAAKqU,YAAY5R,cAAchC,EAAME,YAAaF,IAGtD,YAAAu5C,sBAAA,SAAsBlM,GAClB,IAAIrtC,EAAeT,KAAK+5C,iBAAiBjM,EAAM,OAE/C9tC,KAAKqU,YAAY5R,cAAchC,EAAME,YAAaF,IAGtD,YAAAs5C,iBAAA,SAAiBjM,EAAuBmM,GACpC,MAAgB,QAAZA,GACqB,MAAjBnM,EAAKnrC,WAITmrC,EAAKnrC,SAAW,IAAI,EAAAu3C,MACpBpM,EAAKnrC,SAASjB,IAAM,OAASosC,EAAKl2B,OAAOlW,IACzCosC,EAAKnrC,SAASjC,WAAY,EAC1BotC,EAAKnrC,SAAShC,aAAc,EAC5BmtC,EAAKnrC,SAASS,OAAS,EACvB0qC,EAAKnrC,SAASoC,MAAQ,EAAAo1C,WAAWzB,IACjC5K,EAAKnrC,SAASmC,QAAUgpC,EAAKl2B,OAAOtV,MACpCwrC,EAAKnrC,SAASN,eAAiByrC,EAAKl2B,QAVzBk2B,EAAKnrC,WAcK,MAAjBmrC,EAAKsM,WAITtM,EAAKsM,SAAW,IAAI,EAAAF,MACpBpM,EAAKsM,SAAS14C,IAAM,OAASosC,EAAKl2B,OAAOlW,IACzCosC,EAAKsM,SAAS15C,WAAY,EAC1BotC,EAAKsM,SAASz5C,aAAc,EAC5BmtC,EAAKsM,SAASh3C,OAAS,EACvB0qC,EAAKsM,SAASr1C,MAAQ,EAAAo1C,WAAWE,IACjCvM,EAAKsM,SAASt1C,QAAUgpC,EAAKl2B,OAAOu+B,SACpCrI,EAAKsM,SAAS/3C,eAAiB,MAVpByrC,EAAKsM,WAgBxB,YAAAE,uBAAA,SAAuBxM,GACnB,GAAIA,EAAKyM,gBAAkBzM,EAAK0M,eAAgB,CAC5C,IAAIC,EAAO3M,EAAKyM,eACZzM,EAAKxrC,MAAMT,aAAeisC,EAAKxrC,MAAMT,YAAY,KACjD44C,EAAO3M,EAAKxrC,MAAMT,YAAY,IAElC,IAAI64C,EAAO5M,EAAK0M,eAOhB,OANI1M,EAAKxrC,MAAMT,aAAeisC,EAAKxrC,MAAMT,YAAY,KACjD64C,EAAO5M,EAAKxrC,MAAMT,YAAY,IAElCisC,EAAKxrC,MAAMT,YAAc,CAAC,CAAC44C,GAAQ,EAAGC,GAAQ,WACvC5M,EAAKyM,2BACLzM,EAAK0M,eAIhB,IAAmBG,EAMnB,GAHA7M,EAAK4I,WAAWkE,UAHGD,EAGmB7M,EAAKxrC,MAAMT,YAAY,GAAG,GAHtCg5C,SAASF,IAAQG,KAAKC,IAAIJ,IAAQ,IAI5D7M,EAAK4I,WAAWsE,UAHI,SAAAL,GAAO,OAAAE,SAASF,IAAQG,KAAKC,IAAIJ,IAAQ,IAGjCM,CAAYnN,EAAKxrC,MAAMT,YAAY,GAAG,KAE7DisC,EAAK4I,WAAWkE,WAAa9M,EAAK4I,WAAWsE,UAI9C,OAFAh7C,KAAKgC,SAAU,OACfhC,KAAKg4C,cAAczd,KAAKv6B,KAAKgC,SAIjChC,KAAKqU,YAAYlT,oBAAoB2sC,EAAKxrC,MAAMT,YAAY,GAAG,GAAIisC,EAAKxrC,MAAMT,YAAY,GAAG,K,iCA7XxFwJ,GAAuB,uY,iCAAvBA,EAAuB,wD,GAAA,K,8gBAHjB,CAAC,CAAE47B,QAAS,EAAAiU,iBAAkB/T,YAAa,EAAAgU,UAAS,o5MCnEvE,0BACE,oEAKA,6BAEE,+BACE,4BAGE,4BACE,+BA4SF,iBACA,gDAIF,iBAEF,iBACF,iBACF,kB,MAtTa,4IACG,oEA6S0F,sG,w4DDzQ1F,CACR,CACI,EAAAviC,QAAQ,YAAa,CACjB,EAAAC,WAAW,YAAa,CACpB,EAAAC,MAAM,CACFC,QAAS,IAEb,EAAAC,QAAQ,WAEZ,EAAAH,WAAW,SACP,EAAAG,QAAQ,QACJ,EAAAF,MAAM,CACFC,QAAS,a,EAjBrC,GA0Ba,EAAA1N,4B,+DAAAA,GAAuB,E,KA1BnC,EAAA8N,U,MAAU,CACPC,SAAU,kBACVC,YAAa,mCACbC,UAAW,CAAC,yBACZ8hC,KAAM,CAAE,eAAgB,QACxB7hC,WAAY,CACR,CACI,EAAAX,QAAQ,YAAa,CACjB,EAAAC,WAAW,YAAa,CACpB,EAAAC,MAAM,CACFC,QAAS,IAEb,EAAAC,QAAQ,WAEZ,EAAAH,WAAW,SACP,EAAAG,QAAQ,QACJ,EAAAF,MAAM,CACFC,QAAS,UAMjCsiC,cAAe,CAAC,CAAEpU,QAAS,EAAAiU,iBAAkB/T,YAAa,EAAAgU,c,+QAUjD9qC,MAAO,CAAF,C,KAAb,EAAAmJ,QAEoCy1B,yBAA0B,CAAF,C,KAA5D,EAAAt1B,a,MAAa,yBAOJq+B,cAAa,E,KAAtB,EAAA/wC,SAEQ+U,SAAU,CAAF,C,KAAhB,EAAAxC,QAEQ5E,kBAAmB,CAAF,C,KAAzB,EAAA4E,QAEQrF,oBAAqB,CAAF,C,KAA3B,EAAAqF,QAIQ5D,cAAe,CAAF,C,KAArB,EAAA4D,QAEQyb,cAAe,CAAF,C,KAArB,EAAAzb,QAEQzB,UAAW,CAAF,C,KAAjB,EAAAyB,QAEQzE,WAAY,CAAF,C,KAAlB,EAAAyE,QAEQ/E,iBAAkB,CAAF,C,KAAxB,EAAA+E,W,sHExGL,WAOA,GANA,MAEA,MAEA,MAEA,Q,8FCUY,uCDNZ,iBAmBE,WAAoB8W,EAAkDtQ,EAAsCrE,EAA8Bu0B,GAAtH,KAAA5f,sBAAkD,KAAAtQ,eAAsC,KAAArE,UAA8B,KAAAu0B,QACtIlwC,KAAK08B,QAAU/gB,EAAQ+gB,UACvB18B,KAAK28B,aAAe38B,KAAK08B,SAAW/gB,EAAQghB,eAC5C38B,KAAK48B,cAAgB58B,KAAK08B,SAAW18B,KAAK28B,cAAgBhhB,EAAQkhB,gBAClE78B,KAAKs7C,kBAAoB3/B,EAAQ4/B,oB,OAGrC,YAAA/7C,SAAA,sBACIQ,KAAKw7C,cAAgBx7C,KAAKkwC,MAAM59B,OAAO6P,WAAU,SAAA7P,GAC7C,EAAKmpC,aAAenpC,EAAY,QAIxC,YAAA4I,YAAA,WACIlb,KAAKw7C,cAAcr8B,eAGhB,YAAAtC,MAAP,SAAaD,GACT5c,KAAK6b,WAAa,EAAAyD,aAAa6Q,kBAAkBvT,EAAK5c,KAAKggB,e,iCA/BpDnU,GAA0B,4J,iCAA1BA,EAA0B,gUCjBvC,4BACE,4BACA,6BAEA,4BAEE,4BACE,4BACE,0BACE,4BACE,yBAAI,YAAa,iBACnB,iBAEA,6BAEE,kCAEA,iDAEF,iBACF,iBAEF,iBACF,iBACF,iBACF,kB,MAfgB,gDAKW,uDAES,0D,2MDNpC,GAMa,EAAAA,8B,+DAAAA,EAA0B,E,KANtC,EAAAsN,U,MAAU,CAEPC,SAAU,sBACVC,YAAa,uCACbC,UAAW,CAAC,kC,8OEfhB,WAQA,GALA,MAGA,OAEA,Q,uFCKc,6BACE,YAEA,0BAGF,kB,qDALE,qDAGE,0HAA4G,oC,mDAMlH,4BACE,6BACI,6BACI,gCAA+B,2IAC3B,6BACJ,iBACJ,iBACJ,iBACF,kB,yBA3BN,4BACE,4BACE,4BACE,YACF,iBACF,iBACA,4BACE,4BACE,4BACE,8BAQF,iBAEA,8BASF,iBACF,iBACF,kB,2CA3BM,qDAM4E,iDAU1D,iDDb9B,iBA+BI,WAAoB0G,EAAsCG,GAAtC,KAAAH,eAAsC,KAAAG,kBAtBhD,KAAAiiB,MAAQ,IAAI,EAAA7iC,aAEb,KAAAyC,SAAmB,EACnB,KAAAjC,UAAoB,EAIpB,KAAAiV,QAAgB,IAAI+G,KAEpB,KAAA2/B,aAAuB,EAEtB,KAAAC,gBAAkB,IAAI,EAAAp8C,aAIhC,KAAAq8C,aAAsB,GAEtB,KAAAC,UAAiB,G,OAOjB,YAAAr8C,SAAA,WACI,IAAMs9B,EAAM98B,KAAKgV,QAAQ+nB,aAEzB/8B,KAAKq7B,QAAUr7B,KAAKgV,QAAQgoB,iBAAmB,KAAOh9B,KAAKgV,QAAQioB,cAAgB,GAAK,KAAOH,EAAM,GAAK,IAAM,IAAMA,EAGtH98B,KAAKgV,QAAU,IAAI+G,KAAKA,KAAK8f,MAAM77B,KAAKq7B,UAExCr7B,KAAK87C,aAGT,YAAA7gC,YAAA,SAAY+kB,GACJA,EAAiB,SACjBhgC,KAAK87C,aAIb,YAAAA,UAAA,sBACUC,EAAO/7C,KAAKgV,QAAQmjB,UAE1Bn4B,KAAKgC,SAAU,EAEfhC,KAAK47C,aAAe,GACpB57C,KAAK6V,YAAYrV,SAAQ,SAAAuX,GACrB,IAAMmmB,EAAS,GACfA,EAAc,MAAInmB,EAAUwD,MAC5B2iB,EAAa,KAAInmB,EAAUlJ,KAE3B,EAAK7M,QAAU,EAAKA,SAAY,EAAK6T,YAAY3T,OAAS,EAE1D6V,EAAU47B,QAAQnzC,SAAQ,SAAAw7C,GACtB,IAAMvoC,EAAYsI,KAAK8f,MAAMmgB,EAAIvoC,WAC3BC,EAAUqI,KAAK8f,MAAMmgB,EAAItoC,SAE/B,GAAIqoC,GAAQtoC,GAAasoC,GAAQroC,EAAS,CACtC,IAAI,EAAU,GAEdqE,EAAUwE,MAAM/b,SAAQ,SAAAe,GACpB,IAAI0kB,EAAc,CACdpX,KAAMtN,EAAKsN,KACX0M,MAAOha,EAAKga,OAGc,MAA1BygC,EAAI7d,QAAQ58B,EAAKsN,QACjBoX,EAAOuB,KAAOw0B,EAAI7d,QAAQ58B,EAAKsN,MAAM2Y,KACrCvB,EAAOoK,UAAY2rB,EAAI7d,QAAQ58B,EAAKsN,MAAMwhB,WAG9C,EAAQrtB,KAAKijB,MAGjBiY,EAAgB,QAAI,MAI5B,EAAK0d,aAAa54C,KAAKk7B,MAG3Bl+B,KAAKoiC,MAAM7H,QAGR,YAAA0B,WAAP,WACI,OAAO,GAGJ,YAAAiD,eAAP,WACI,OAAOl/B,KAAK6V,aAGhB,YAAAomC,iBAAA,SAAiBptC,GACb,IAAMkJ,EAAY/X,KAAK6V,YAAYyO,MAAK,SAAAqH,GAAK,OAAAA,EAAE9c,OAASA,KAEpD7O,KAAK07C,aACL17C,KAAK27C,gBAAgBphB,KAAKxiB,IAgB3B,YAAA8E,MAAP,SAAaD,GACT5c,KAAK6b,WAAa,EAAAyD,aAAa6Q,kBAAkBvT,EAAK5c,KAAKggB,e,iCAtHtDlU,GAAoB,+E,iCAApBA,EAAoB,+D,GAAA,K,2iCCdjC,+BACE,+BACE,0BACE,8BA+BF,iBACF,iBACF,kB,MAjC8E,wD,yIDM9E,GAKa,EAAAA,wB,+DAAAA,EAAoB,E,KALhC,EAAAqN,U,MAAU,CAEPC,SAAU,yBACVC,YAAa,qC,uEAIJxD,YAAa,CAAF,C,KAAnB,EAAA2D,QAES4oB,MAAK,E,KAAd,EAAAn7B,SAEQjF,QAAS,CAAF,C,KAAf,EAAAwX,QACQzZ,SAAU,CAAF,C,KAAhB,EAAAyZ,QAEsB0iC,SAAQ,E,KAA9B,EAAAxiC,U,MAAU,cAEF1E,QAAS,CAAF,C,KAAf,EAAAwE,QAEQkiC,YAAa,CAAF,C,KAAnB,EAAAliC,QAESmiC,gBAAe,E,KAAxB,EAAA10C,Y,+GE9BL,WAKA,GAHA,MACA,MAEA,OACA,SAKA,GAFA,OACA,OACA,QACA,SAEA,S,GACA,M,2KCZI,8B,yBAUI,6BAAqE,YAAW,kB,6BAAX,+C,yBAGjE,4BACI,yBAEI,YACJ,iBACJ,kB,6BAFQ,kE,yBAyBE,yBAA6B,YAAW,kB,uBAAX,6C,yBAJvC,6BACE,6BACI,6BACA,yBACI,8BACJ,iBACJ,iBACJ,kB,8BAH8B,iD,yBArBhC,4BAEI,6BACI,yBACI,6BACA,kBAAE,8BACI,YACJ,iBACN,iBAEA,yBACI,6BACA,kBAAE,+BACI,aACJ,iBACN,iBACJ,iBACA,gCAQJ,kB,6BAnBkB,8EAOA,0EAIR,uD,mDAsBE,8BACI,uCAAe,qGAAuB,0FAAiF,iBAC3H,iB,gCADmB,mDAAuB,8C,0GAU1C,8BAA6C,4FACzC,sBACA,6BACJ,iB,MAFO,+D,yHAKH,gCAGI,6BACJ,kB,6BAHG,oL,yBAYX,yBAA0C,2BAAgO,YAAiB,iBAAI,kB,4CAAlP,yLAA6N,6C,yBAR9Q,8BACE,gCACE,6BACA,yBACF,iBACA,4BACE,yBAAI,6BAA6F,iBACjG,uBACA,8BACF,iBACF,kB,6BAF4B,wD,qBAIZ,6B,qBACA,6B,mDAaA,6BACC,2BAAY,mIACZ,sB,uBACA,iBACT,iB,0CAHuD,6DACG,kF,qBAK/D,sB,qBACA,sB,mDAQkB,+BAAkE,4GAA6B,kIAA/F,iB,2CAA0C,4BAAuB,oB,mDACjE,0BAGI,oCAAY,gHAAiC,4HAAmN,iBAChQ,oCAAY,8GAA+B,4HAAiN,iBAChQ,iB,2CAFgB,mDAAiC,4BAAjC,CAAiC,2BAAjC,CAAiC,mBAAjC,CAAiC,sBAAjC,CAAiC,cAAjC,CAAiC,sBACjC,iDAA+B,4BAA/B,CAA+B,yBAA/B,CAA+B,mBAA/B,CAA+B,sBAA/B,CAA+B,cAA/B,CAA+B,uB,iGAE/C,+BAIE,6GAA8B,yIAA9B,CAA8B,+I,uBAJhC,iB,gEAEE,yEAAwD,cAAxD,CAAwD,mBAAxD,CAAwD,oBAAxD,CAAwD,4CAAxD,CAAwD,4BAAxD,CAAwD,uBAAxD,CAAwD,sBAAxD,CAAwD,8C,yBAd/D,0BAII,6BACC,iCACA,+BAMA,kCAgBD,iBACJ,kB,uCAzB4B,sDACf,qDACF,oDAME,qD,mDAzBf,4BAEE,+BAKR,2BAAG,6GAAkG,YAAoB,iBAC/H,2BAAG,6GACF,6BACA,6BACa,iBAEA,8BA8BF,iB,+CAzCkF,sDAKa,oDAEtG,oFACA,qFAGe,uD,yBAsCN,4BAA6D,YAA4B,kB,qDAA5B,+C,mHAJjE,4BACI,4BACE,sBACF,iBACA,8BACJ,kB,4CAHyC,+EAAqD,6KAEhE,oD,oGAxD1C,6BACI,+BACI,+BACI,yBACE,4BAAoE,6BAAkD,iBACtH,8BA4CF,iBACJ,iBACA,4BACI,+B,uBAMJ,iBACJ,iBACJ,kB,6BAvDwE,mDA+CrC,iJDxI/C,kBAqCI,WAAmB0U,EAAkCwgC,EAAmCjM,EAA+B37B,EAC3GyL,EAAsCE,EAA8C5L,GAD7E,KAAAqH,UAAkC,KAAAwgC,WAAmC,KAAAjM,QAA+B,KAAA37B,cAC3G,KAAAyL,eAAsC,KAAAE,kBAA8C,KAAA5L,cA/BhG,KAAAwG,QAAkB,KAClB,KAAAuc,KAA0B,KAC1B,KAAAkiB,EAAY,EACZ,KAAAtjC,QAAkB,GAClB,KAAA1S,OAAgE,GAChE,KAAAs8B,SAAqB,GACrB,KAAA2Q,KAAY,CACRC,MAAO,EACPp+B,WAAY,EACZD,SAAU,IACVspB,QAAS,IAGb,KAAAz4B,KAAO,CAAE6U,UAAW,OAAQskC,MAAO,OACnC,KAAAC,aAAuB,EACvB,KAAAC,cAAwB,EACxB,KAAAC,YAAsB,EAGtB,KAAAC,aAAc,EAOP,KAAAC,kBAAoB,GAMvBz8C,KAAKy8C,kBAAoBv8B,EAAgBmC,OAAO,qB,OAGpD,YAAA7iB,SAAA,sBACUkC,EAAM1B,KAAKkwC,MAAMc,SAASC,SAASx+B,IAAI,OAC7CzS,KAAKq8C,YAAiE,SAAlDr8C,KAAKkwC,MAAMc,SAASC,SAASx+B,IAAI,aAErDzS,KAAK2b,QAAQmb,qBAAqBp1B,GAAK4a,MAAK,SAAAgkB,GACxC,EAAKoc,QAAQpc,GACb,IAAMpqB,EAAU,EAAKmhB,KAAKnhB,QACpB1C,EAAsC,MAA3B,EAAK6jB,KAAK5a,cAAwB,EAAK4a,KAAK5a,cAAgB,EAAK4a,KAAK7jB,SAEvF,EAAK+oC,WAAa,EAAKjoC,YAAYqnB,kBAAkBzlB,EAAS1C,GAE9D,EAAKmpC,aAAa,GAEa,MAA3Brc,EAAQsc,iBACR,EAAKC,qBAAqBvc,EAAQsc,oBAI1C,IAAIE,EAAU,SAAWr9C,OAAO0wC,SAAS4M,UAAYt9C,OAAO0wC,SAAS6M,KAAO,IAAMv9C,OAAO0wC,SAAS6M,KAAO,IAAMxrC,IAE/GxR,KAAKi9C,SAAW,EAAAC,UAAUJ,EAAU,uBAAyBp7C,GAC7D1B,KAAKi9C,SAAS96B,WAAU,SAAArH,GACG,MAAnBA,EAAQuS,QACR,EAAKwvB,qBAAqB/hC,EAAQuS,SAElC,EAAKwvB,qBAAqB/hC,OAKtC,YAAAI,YAAA,WACIlb,KAAKi9C,SAASprC,YAGlB,YAAAkJ,gBAAA,aAIA,YAAA2hC,QAAA,SAAQS,GACJn9C,KAAKq3B,KAAO8lB,EACZn9C,KAAKo9C,UAAYp9C,KAAKq9C,2BAG1B,YAAAC,oBAAA,WACIt9C,KAAK28C,aAAa,IAGtB,YAAAA,aAAA,SAAatqC,GAAb,WACIrS,KAAK8a,QAAU,KAEf9a,KAAK2b,QAAQzW,KAAKlF,KAAKq3B,KAAK31B,IAAK2Q,EAAYrS,KAAKwwC,KAAKp+B,SAAUpS,KAAKu9C,YAAav9C,KAAKiD,MAAMqZ,MAAK,SAAAk0B,GAC/F,EAAKA,KAAOA,EACZ,EAAK4M,UAAY,EAAKC,6BACvB1gC,OAAM,SAACC,GACN,EAAKC,MAAMD,OAInB,YAAA20B,OAAA,SAAOz5B,GACC9X,KAAKiD,KAAK6U,YAAcA,EAAUT,KAClCrX,KAAKiD,KAAKm5C,MAA6B,QAApBp8C,KAAKiD,KAAKm5C,MAAkB,OAAS,MAExDp8C,KAAKiD,KAAO,CAAE6U,UAAWA,EAAUT,KAAM+kC,MAAO,OAGpDp8C,KAAK28C,aAAa,IAGtB,YAAAa,aAAA,WACIx9C,KAAKq3B,KAAKngB,WAAW1W,SAAQ,SAAAwiB,GACzBA,EAAKiR,OAAS,QAGlBj0B,KAAKuD,OAAS,GACdvD,KAAKw8C,aAAc,EACnBx8C,KAAK6/B,SAAW,GAEhB7/B,KAAK28C,aAAa,IAGtB,YAAAc,aAAA,SAAa3lC,GACTA,EAAU4lC,aAAe5lC,EAAU4lC,aAGvC,YAAAH,UAAA,WACI,IAAII,EAAYlsC,KAAKoqB,MAAMpqB,KAAKC,UAAU1R,KAAKuD,SAM/C,OAJKvD,KAAKw8C,aACNmB,EAAU36C,KAAK,CAAE8U,UAAW,UAAWxV,MAAO,UAG3Cq7C,GAGX,YAAAN,wBAAA,WACI,IAAI3sB,EAEJ,GAAI1wB,KAAKw8C,YACL9rB,EAAQ1wB,KAAKq3B,KAAKngB,eACf,CAGH,IAAI+S,GAFJyG,EAAQjf,KAAKoqB,MAAMpqB,KAAKC,UAAU1R,KAAKq3B,KAAKngB,cAE1BrU,WAAU,SAAAmgB,GAAQ,MAAc,YAAdA,EAAK3L,SAE1B,IAAX4S,GACAyG,EAAM3tB,OAAOknB,EAAO,GAQ5B,OAJAyG,EAAMlwB,SAAQ,SAAAsX,GACVA,EAAU4lC,aAAc,KAGrBhtB,GAGX,YAAAktB,2BAAA,SAA2B9lC,GAA3B,WACI,OAAO,EAAA0jB,WAAWze,QAAO,SAAC0e,GACtB,EAAK3gB,QAAU,KAGf,EAAKa,QAAQxE,OAAO,EAAKkgB,KAAK31B,IAAKoW,EAAUmc,OAAQnc,EAAUT,KAAMS,EAAU+lC,KAAM,EAAKN,aAAajhC,MAAK,SAAAyE,GACxGA,EAAQ+8B,QAAQ,CAAEviC,MAAO,IAAM,EAAK2E,gBAAgBmC,OAAO,uBAAyB,IAAK/f,MAAO,OAEhGm5B,EAASlhB,KAAKwG,MACfpE,OAAM,SAACC,GACN,EAAKC,MAAMD,UAKvB,YAAAigC,qBAAA,SAAqB3uB,GACjBluB,KAAKs8C,aAAgBpuB,EAASjY,QAAUiY,EAAS6vB,MAEjD/9C,KAAKm8C,SAASjuB,SAASA,GAElBluB,KAAKs8C,cAENt8C,KAAK28C,aAAa,IAI1B,YAAA/gB,iBAAA,SAAiB9jB,GAOb,GANAA,EAAU4lC,aAAc,EAGxB19C,KAAKuD,OAASvD,KAAKuD,OAAOA,QAAO,SAAAy6C,GAAK,OAAAA,EAAElmC,YAAcA,EAAU+lC,QAChE79C,KAAK6/B,SAAW7/B,KAAK6/B,SAASt8B,QAAO,SAAA06C,GAAK,OAAAA,IAAMnmC,EAAU+lC,QAEnC,MAAnB/lC,EAAUxV,QAA4C,MAAzBwV,EAAUxV,MAAMgP,OAA2C,KAA1BwG,EAAUxV,MAAMgP,OAAyC,MAAvBwG,EAAUxV,MAAMqzC,KAAuC,KAAxB79B,EAAUxV,MAAMqzC,KAAc,CAC7J,IAAIp6B,EAAQ,IAAMzD,EAAUyD,MAAQ,QAEP,MAAzBzD,EAAUxV,MAAMgP,QAChBiK,GAASzD,EAAUxV,MAAMgP,OAGA,MAAzBwG,EAAUxV,MAAMgP,OAAwC,MAAvBwG,EAAUxV,MAAMqzC,MACjDp6B,GAAS,OAGc,MAAvBzD,EAAUxV,MAAMqzC,MAChBp6B,GAASzD,EAAUxV,MAAMqzC,KAG7Bp6B,GAAS,IAETvb,KAAKuD,OAAOP,KAAK,CAAE8U,UAAWA,EAAU+lC,KAAMv7C,MAAOwV,EAAUxV,MAAOiZ,MAAOA,IAC7Evb,KAAK6/B,SAAS78B,KAAK8U,EAAU+lC,MAGjC79C,KAAK28C,aAAa,IAGtB,YAAAuB,kBAAA,SAAkBpmC,GAOd,GANAA,EAAU4lC,aAAc,EAGxB19C,KAAKuD,OAASvD,KAAKuD,OAAOA,QAAO,SAAAy6C,GAAK,OAAAA,EAAElmC,YAAcA,EAAU+lC,QAChE79C,KAAK6/B,SAAW7/B,KAAK6/B,SAASt8B,QAAO,SAAA06C,GAAK,OAAAA,IAAMnmC,EAAU+lC,QAEnC,MAAnB/lC,EAAUxV,OAAqC,KAApBwV,EAAUxV,MAAc,CACnD,IAAMiZ,EAAQ,IAAMzD,EAAUyD,MAAhB,QAAuCzD,EAAUxV,MAAQ,IAEvEtC,KAAKuD,OAAOP,KAAK,CAAE8U,UAAWA,EAAU+lC,KAAMv7C,MAAOwV,EAAUxV,MAAOiZ,MAAOA,IAC7Evb,KAAK6/B,SAAS78B,KAAK8U,EAAU+lC,MAGjC79C,KAAK28C,aAAa,IAGtB,YAAAwB,iBAAA,SAAiBxvC,EAAmBmJ,GAYhC,GAXAA,EAAUxV,MAAQqM,EAAE6d,KACpB1U,EAAU4lC,aAAc,EAExB19C,KAAK6/B,SAAW7/B,KAAK6/B,SAASt8B,QAAO,SAAA06C,GAAK,OAAAA,IAAMnmC,EAAU+lC,QAE1D79C,KAAKq3B,KAAKngB,WAAW1W,SAAQ,SAAAwiB,GACrBA,EAAK66B,OAAS/lC,EAAU+lC,OACxB76B,EAAKiR,OAAS,OAIO,MAAzBnc,EAAUxV,MAAMA,OAA2C,KAA1BwV,EAAUxV,MAAMA,MAAc,CAC/D,IAAMiZ,EAAQ,IAAMzD,EAAUyD,MAAhB,QAAuCzD,EAAUxV,MAAMiZ,MAAQ,IAE7Evb,KAAKuD,OAAOP,KAAK,CAAE8U,UAAWA,EAAU+lC,KAAMv7C,MAAOqM,EAAE6d,KAAKlqB,MAAOiZ,MAAOA,IAC1Evb,KAAK6/B,SAAS78B,KAAK8U,EAAU+lC,MAC7B/lC,EAAUmc,OAAStlB,EAAE6d,KAAKjR,WAE1Bvb,KAAKuD,OAASvD,KAAKuD,OAAOA,QAAO,SAAAy6C,GAAK,OAAAA,EAAElmC,YAAcA,EAAU+lC,QAChE/lC,EAAUmc,OAAS,GAGvBj0B,KAAK28C,aAAa,IAGtB,YAAAyB,aAAA,SAAatmC,GACT,MAA0B,SAAnBA,EAAUvW,MAAsC,YAAnBuW,EAAUT,OAAuD,IAAhCS,EAAUumC,WAAWn8C,SAA2D,IAA3ClC,KAAK6/B,SAAShoB,QAAQC,EAAU+lC,OAAgB79C,KAAK6/B,SAASt8B,QAAO,SAAAjB,GAAS,OAAAwV,EAAUumC,WAAWvL,SAASxwC,MAAQJ,OAAS,IAG3O,YAAA0tC,OAAA,SAAO1qC,GAAP,WACQo5C,EAAYt+C,KAAKggB,aAAaoM,KAAK,EAAA5gB,yBAA0B,CAAE2hB,UAAU,EAAMC,qBAAqB,IACxGkxB,EAAUjxB,QAAQkR,oBAAoBr5B,EAAK2J,KAAM7O,KAAKq3B,KAAK7jB,SAAUxT,KAAKq3B,KAAKriB,QAAShV,KAAKq3B,KAAKoG,oBAClG6gB,EAAUjxB,QAAQ+P,gBAAgBp9B,KAAKq3B,KAAK31B,KAC5C48C,EAAUjxB,QAAQgQ,sBAAqB,WAEnC,EAAKsf,aAAa,EAAKnM,KAAKn+B,gBAIpC,YAAAksC,UAAA,sBACIv+C,KAAK8a,QAAU,KAEf9a,KAAK2b,QAAQ+b,kBAAkB13B,KAAKq3B,KAAK31B,KAAKoQ,YACzCwK,MAAK,SAACkiC,GACH,EAAKlC,cAAe,KACrB3/B,OAAM,SAACC,GACN,EAAKC,MAAMD,OAYvB,YAAA6hC,eAAA,sBACQH,EAAYt+C,KAAKggB,aAAaoM,KAAK,EAAA5gB,yBAA0B,CAAE2hB,UAAU,EAAMC,qBAAqB,IAExGkxB,EAAUjxB,QAAQmQ,eAAex9B,KAAKq3B,KAAK7jB,SAAUxT,KAAKq3B,KAAKriB,QAAShV,KAAKq3B,KAAKoG,oBAClF6gB,EAAUjxB,QAAQ+P,gBAAgBp9B,KAAKq3B,KAAK31B,KAC5C48C,EAAUjxB,QAAQgQ,sBAAqB,WAEnC,EAAKsf,aAAa,EAAKnM,KAAKn+B,gBAIpC,YAAAqsC,SAAA,sBACI1+C,KAAK6b,WAAa7b,KAAKggB,aAAaoM,KAAK,EAAA3f,2BAA4B,CACjEygB,UAAU,EACVC,UAAU,EACVC,qBAAqB,IAEzBptB,KAAK6b,WAAWwR,QAAQ4iB,SAAS9tB,WAAU,SAAAosB,GACxB,cAAXA,EACA9uC,OAAO0wC,SAASyB,KAAOpgC,IAAM,qCAAuC,EAAK6lB,KAAK31B,IAAM,WAAai9C,mBAAmBltC,KAAKC,UAAU,EAAK6rC,cACtH,UAAXhP,IACP9uC,OAAO0wC,SAASyB,KAAOpgC,IAAM,uCAAyC,EAAK6lB,KAAK31B,IAAM,WAAai9C,mBAAmBltC,KAAKC,UAAU,EAAK6rC,mBAKtJ,YAAArhB,uBAAA,SAAuBpkB,EAAgBwjB,GACnCxjB,EAAUwjB,QAAUA,GAGxB,YAAAlc,WAAA,SAAW3I,GACP,OAAOzW,KAAKuU,YAAY8K,qBAAqB5I,IAGjD,YAAAmoC,QAAA,SAAQvrC,GACoBA,EAAMmL,OAAQo0B,cAAc1tB,QAAQ,SAAS0tB,cAE7DhwB,YAAcvP,EAAMqR,OAC5BrR,EAAMoZ,kBAGV,YAAA5P,MAAA,SAAMD,GACF5c,KAAK8a,QAAU,EAAAwE,aAAaC,oBAAoB3C,I,iCAxU3CxQ,GAAmB,6Q,iCAAnBA,EAAmB,s1JCxBhC,4BACI,4BACA,6BACA,uCASA,4BACI,8BAEA,4BACI,8BAMJ,iBACA,+BAmCA,4BACI,6BACI,6BAEI,iCAGA,+BAAwB,wCAAS,EAAAoxC,kBAC7B,+BACI,uBACA,uBACJ,iBACA,8BACJ,iBAEA,iCAMI,mCAKZ,iCAWY,iCAAsB,wCAAS,EAAAkB,cAC3B,qCACA,qCACJ,iBACR,iBACJ,iBACJ,iBACA,6BACI,kCA6DJ,iBAKA,6BACI,6BACI,8CAAmD,8CAAc,EAAA/B,aAAA,MAAsB,iBACvF,+BACE,8BACA,aAEM,8BAAoD,aAC5D,iBACJ,iBACJ,iBACJ,iBAEJ,kB,MAnLmB,mDAUL,oDAGI,2CAOJ,2CAuCa,iDAWA,mDAMM,qEAKG,oEAYG,wDACA,sDAMrB,2CAuEA,6HAE0D,4D,olBD7J5E,GAKa,EAAAvwC,wB,+DAAAA,GAAmB,E,KAL/B,EAAA+M,U,MAAU,CACPC,SAAU,cACVC,YAAa,+BACbC,UAAW,CAAC,oC,oUEtBhB,WAIA,GAHA,MACA,MAEA,QAIA,SAIA,SAIA,GAHA,OACA,OACA,MACA,Q,mHCfI,6BAAqE,YAAW,kB,6BAAX,+C,mDAEpE,6BACG,6BACI,mCACI,6BACI,gCAAiD,4F,uBAE7C,6BACJ,iBACJ,iBACJ,iBACJ,iBACJ,iB,+BAP6H,kDAA2B,4D,mDA0B5H,gCAAmD,qIAC/C,6BACJ,kB,mDACA,gCAAmD,yIAC/C,6BACJ,kB,mDACA,gCAAgD,0IAC5C,6BACJ,kB,mDACA,gCAAmD,gJAC/C,6BACJ,kB,mDAjBZ,yBACI,4BACI,6BACI,gCAAsB,6GAClB,6BACJ,iBACA,kCAGA,kCAGA,kCAGA,kCAGJ,iBACJ,iBACA,4BACE,+BACI,aACJ,iBACF,iBACA,6BACE,+BACI,aACJ,iBACF,iBAEJ,iB,+CAzBqB,yDAGA,yDAGA,gDAGA,yDAOX,qEAKA,0E,yBArCtB,6BACI,+BACI,4BACI,yBACI,4BAA4C,6BAA8C,iBAC1F,4BAA4C,6BAA8C,iBAC1F,4BAA4C,6BAAkD,iBAClG,iBACJ,iBACA,6BACI,gCAgCJ,iBACJ,iBACJ,kB,6BAlCoC,yD,yBA0DA,8BAAqD,YAA0B,kB,uCAA1B,kE,yBACrD,8BAAmD,YAAgB,kB,uCAAhB,wD,yBAVnE,yBACI,4BACI,6BACI,sBACA,2BACI,8BAA+B,YAAmB,iBAClD,8BAA+B,YAAe,iBAC9C,8BAA+B,aAAa,iBAC5C,+BAA+B,aAAe,iBAC9C,iCACA,iCACJ,iBACJ,iBACJ,iBACJ,kB,uBAT+C,0DACA,sDACA,oDACA,sDACxB,gDACA,+C,mDAO/B,6BACI,6CAAqB,sGAAoC,iBAC7D,kB,yED3EpB,aA2BE,WAAmBqC,EAAkC0vB,EAAwBrrB,EAAqC1L,EAAkC4L,EAC1I3L,GADS,KAAAoH,UAAkC,KAAA0vB,SAAwB,KAAArrB,eAAqC,KAAA1L,cAAkC,KAAA4L,kBAC1I,KAAA3L,cAtBV,KAAAuG,QAAkB,KAClB,KAAAuc,KAAmB,KACnB,KAAAmZ,KAAY,CACVp+B,SAAU,GACVC,WAAY,EACZo+B,MAAO,EACP/U,QAAS,IAkBT17B,KAAK08B,QAAUpoB,EAAYooB,U,OAG7B,YAAAl9B,SAAA,sBACEQ,KAAK2b,QAAQgb,qBAAqB32B,KAAK0B,IAAK,aAAa4a,MAAK,SAAA+a,GAC5D,EAAKA,KAAOA,EAEZ,EAAKslB,aAAa,MAGpB,IAAIG,EAAU,SAAWr9C,OAAO0wC,SAAS4M,UAAYt9C,OAAO0wC,SAAS6M,KAAO,IAAMv9C,OAAO0wC,SAAS6M,KAAO,IAAMxrC,IAE/GxR,KAAKi9C,SAAW,EAAAC,UAAUJ,EAAU,qBACpC98C,KAAKi9C,SAAS96B,WAAU,SAAArH,GACD,uBAAjBA,EAAQvZ,MACV,EAAKo7C,aAAa,EAAKnM,KAAKn+B,gBAKlC,YAAA6I,YAAA,WACElb,KAAKi9C,SAASprC,YAOhB,YAAAgtC,0BAAA,SAA0Bve,GAA1B,WACEtgC,KAAK6b,WAAa7b,KAAKggB,aAAaoM,KAAK,EAAAuB,sBAAuB,CAC9DT,UAAU,EACVC,UAAU,EACVC,qBAAqB,IAEvBptB,KAAK6b,WAAWwR,QAAQvS,QAAU9a,KAAKkgB,gBAAgBmC,OAAO,+BAAiC,KAAOie,EAAQtrB,QAAU,IACxHhV,KAAK6b,WAAWwR,QAAQO,WAAa5tB,KAAKkgB,gBAAgBmC,OAAO,uBAEjEriB,KAAK6b,WAAWwR,QAAQQ,UAAU1L,WAAU,SAAAjd,GAC1C,EAAKyW,QAAQ8b,wBAAwB6I,EAAQ5+B,KAAK4a,MAAK,SAAAyC,GACrD,EAAK+/B,gBAEJniC,OAAM,SAACC,GACR,EAAKC,MAAMD,UAKjB,YAAAkiC,WAAA,sBAEE9+C,KAAK2b,QAAQgb,qBAAqB32B,KAAK0B,IAAK,aAAa4a,MAAK,SAAA+a,GAC5D,EAAKA,KAAOA,KACX1a,OAAM,SAACC,GACR,EAAKC,MAAMD,OAIf,YAAA2hC,UAAA,sBACEv+C,KAAK8a,QAAU,KAEf9a,KAAK2b,QAAQ4b,0BAA0Bv3B,KAAKq3B,KAAK31B,KAAK4a,MAAK,SAACpX,GAE1D,EAAKy3C,aAAa,EAAKnM,KAAKn+B,eAE3BsK,OAAM,SAACC,GACR,EAAKC,MAAMD,OAIf,YAAA+/B,aAAA,SAAatqC,GAAb,WACmB,MAAbrS,KAAKq3B,OAEPr3B,KAAK8a,QAAU,KAEf9a,KAAK2b,QAAQ4c,yBAAyBv4B,KAAKq3B,KAAK31B,IAAK1B,KAAKwwC,KAAKp+B,SAAUC,EAAY,cAAc,GAAMiK,MAAK,SAAAyC,GAE5G,EAAKyxB,KAAOzxB,KAEXpC,OAAM,SAACC,GACR,EAAKC,MAAMD,MAGb5c,KAAK8+C,eAIT,YAAAC,eAAA,WACE/+C,KAAK6b,WAAa7b,KAAKggB,aAAaoM,KAAK,EAAA7f,sBAAuB,CAC9D2gB,UAAU,EACVC,UAAU,EACVC,qBAAqB,IAEvBptB,KAAK6b,WAAWwR,QAAQrR,UAAW,EACnChc,KAAK6b,WAAWwR,QAAQjR,OAASpc,KAAKq3B,KACtCr3B,KAAK6b,WAAWwR,QAAQhd,OAAQ,GAIlC,YAAAs/B,OAAA,SAAOrP,GACLtgC,KAAKqrC,OAAOQ,SAAS,CAAC,yBAA0BvL,EAAQ5+B,KAAK,KAG/D,YAAAs9C,mBAAA,SAAmB1e,GAAnB,WAEEtgC,KAAK2b,QAAQ0c,iBAAiBiI,EAAQ5+B,KAAK4a,MAAK,WAE9C,EAAKqgC,aAAa,EAAKnM,KAAKn+B,eAE3BsK,OAAM,SAACC,GACR,EAAKC,MAAMD,OAIf,YAAAqiC,eAAA,SAAe3e,GAAf,WACEtgC,KAAK6b,WAAa7b,KAAKggB,aAAaoM,KAAK,EAAA7iB,2BAA4B,CACnE2jB,UAAU,EACVC,UAAU,EACVC,qBAAqB,IAEvBptB,KAAK6b,WAAWwR,QAAQgX,YAAYliB,WAAU,SAAAwW,GAC5C,EAAKhd,QAAQ+c,aAAa4H,EAAQ5+B,IAAKi3B,GAAUrc,MAAK,WAEpD,EAAKqgC,aAAa,EAAKnM,KAAKn+B,eAE3BsK,OAAM,SAACC,GACR,EAAKC,MAAMD,UAKjB,YAAAsiC,oBAAA,SAAoB5e,GAClB7gC,OAAO0wC,SAASyB,KAAOpgC,IAAM,uCAAyC8uB,EAAQ5+B,KAGhF,YAAA0d,WAAA,SAAW3I,GACT,OAAOzW,KAAKuU,YAAY8K,qBAAqB5I,IAG/C,YAAAoG,MAAA,SAAMD,GACJ5c,KAAK8a,QAAU,EAAAwE,aAAaC,oBAAoB3C,I,iCAnKvCtQ,GAAmC,8N,iCAAnCA,EAAmC,m7DCzBhD,0BACI,8BAEC,8BAaD,4BACI,+BA6CJ,iBAGA,4BACI,4BACI,2BACI,4BACI,8BACI,6BACI,4BACI,6BAAoC,8BAA2C,iBACnF,iBACJ,iBACA,6BACI,gC,wBAeJ,iBACJ,iBACA,gCAGJ,iBACJ,iBACJ,iBACJ,iBACJ,kB,MAnGU,oDAEC,yDAcG,2CA2DkC,iJAiBtB,8D,6MDzE1B,GAKa,EAAAA,uC,+DAAAA,EAAmC,E,KAL/C,EAAA6M,U,MAAU,CACTC,SAAU,gCACVC,YAAa,iDACbC,UAAW,Q,8JAYF5X,IAAK,CAAF,C,KAAX,EAAA8X,W,sHEnCH,WAMA,GALA,MACA,MAIA,QACA,S,GAEA,OACA,OACA,M,yGCVI,4BAAqE,YAAW,kB,6BAAX,+C,mDAErE,4BAEI,4BACI,+BACI,4BACI,+BAA+D,6BAAoD,iBAEnH,oCAAY,iGAAmB,2FACwC,iBAEvE,gCAAiD,4FAC7C,6BACJ,iBACJ,iBACJ,iBACJ,iBACJ,iB,mDAT4B,+CAAmB,yBAAnB,CAAmB,sBAAnB,CAAmB,sBAAnB,CAAmB,cAAnB,CAAmB,qBAG8E,sE,mDA0BjG,gCAAyC,+HACrC,6BACJ,kB,mDARZ,yBACI,4BACI,6BACI,gCAAsB,6GAClB,6BACJ,iBACA,kCAGJ,iBACJ,iBACA,4BACE,8BACI,YACJ,iBACF,iBACA,4BACE,+BACI,aACJ,iBACF,iBACJ,iB,+CAfqB,iDAOX,qEAKA,yE,yBA7BtB,6BACI,+BACI,4BACI,yBACI,4BAA4C,6BAA8C,iBAC1F,4BAA4C,6BAA8C,iBAC1F,4BAA4C,6BAAoD,iBACpG,iBACJ,iBACA,6BAEI,gCAsBJ,iBACJ,iBACJ,kB,6BAxBoC,yDDpB5C,iBAoBI,WAAmBmC,EAAkC0vB,EAAwBrrB,EAAsCE,EACvG3L,GADO,KAAAoH,UAAkC,KAAA0vB,SAAwB,KAAArrB,eAAsC,KAAAE,kBACvG,KAAA3L,cAdZ,KAAAuG,QAAkB,KAClB,KAAAuc,KAAmB,KACnB,KAAAriB,QAAkB,GAClB,KAAAmqC,gBAA0B,E,OAa1B,YAAA3/C,SAAA,sBACIQ,KAAK2b,QAAQgb,qBAAqB32B,KAAK0B,IAAK,eAAe4a,MAAK,SAAA+a,GAC5D,EAAKA,KAAOA,MAIpB,YAAAknB,UAAA,sBACIv+C,KAAK8a,QAAU,KAEf9a,KAAK2b,QAAQ2b,wBAAwBt3B,KAAKq3B,KAAK31B,IAAK1B,KAAKgV,SAASsH,MAAK,SAAAgkB,GACnE,EAAKjJ,KAAKgJ,SAASr9B,KAAKs9B,MACzB3jB,OAAM,SAACC,GACN,EAAKC,MAAMD,OAInB,YAAAmiC,eAAA,WACI/+C,KAAK6b,WAAa7b,KAAKggB,aAAaoM,KAAK,EAAA7f,sBAAuB,CAC5D2gB,UAAU,EACVC,UAAU,EACVC,qBAAqB,IAEzBptB,KAAK6b,WAAWwR,QAAQrR,UAAW,EACnChc,KAAK6b,WAAWwR,QAAQjR,OAASpc,KAAKq3B,KACtCr3B,KAAK6b,WAAWwR,QAAQnR,yBAA2Blc,KAAKq3B,KAAKpa,oBAC7Djd,KAAK6b,WAAWwR,QAAQhd,OAAQ,GAGpC,YAAAs/B,OAAA,SAAOrP,GACHtgC,KAAKqrC,OAAOQ,SAAS,CAAC,yBAA0BvL,EAAQ5+B,KAAK,KAGjE,YAAAquC,SAAA,SAASzP,GAAT,WACItgC,KAAK6b,WAAa7b,KAAKggB,aAAaoM,KAAK,EAAAuB,sBAAuB,CAC5DT,UAAU,EACVC,UAAU,EACVC,qBAAqB,IAEzBptB,KAAK6b,WAAWwR,QAAQvS,QAAU9a,KAAKkgB,gBAAgBmC,OAAO,+BAAiC,KAAOie,EAAQtrB,QAAU,IACxHhV,KAAK6b,WAAWwR,QAAQO,WAAa5tB,KAAKkgB,gBAAgBmC,OAAO,uBAEjEriB,KAAK6b,WAAWwR,QAAQQ,UAAU1L,WAAU,SAAAjd,GACxC,EAAKyW,QAAQ8b,wBAAwB6I,EAAQ5+B,KAAK4a,MAAK,SAAAyC,GACnD,EAAKsY,KAAKgJ,SAAW,EAAKhJ,KAAKgJ,SAAS98B,QAAO,SAACjB,EAAO2nB,EAAO+lB,GAC1D,OAAO1tC,EAAMZ,MAAQ4+B,EAAQ5+B,UAElCib,OAAM,SAACC,GACN,EAAKC,MAAMD,UAKvB,YAAAwC,WAAA,SAAW3I,GACP,OAAOzW,KAAKuU,YAAY8K,qBAAqB5I,IAGjD,YAAAoG,MAAA,SAAMD,GACF5c,KAAK8a,QAAU,EAAAwE,aAAaC,oBAAoB3C,I,iCA3E3CvQ,GAA0B,2L,iCAA1BA,EAA0B,q4CClBvC,0BACI,8BAEA,+BAkBA,4BACI,+BAoCJ,iBACJ,kB,MA1DU,oDAEA,+DAmBI,6C,8JDTd,GAKa,EAAAA,8B,+DAAAA,EAA0B,E,KALtC,EAAA8M,U,MAAU,CACPC,SAAU,sBACVC,YAAa,uCACbC,UAAW,Q,yIASF5X,IAAK,CAAF,C,KAAX,EAAA8X,W,mHEzBL,WAMA,GALA,MACA,MAGA,OACA,Q,2GCIgB,4BACI,4BACI,yBAAI,YAAoC,iBAC5C,iBACJ,kB,6BAFY,wE,mDAGZ,4BACI,4BACI,yBACI,wBAAI,2BAAY,mGAAiC,6BAA4C,iBAAI,iBACrG,iBACJ,iBACJ,kB,uFAGI,0BAAoH,2FAAuB,UAAQ,6BAAwD,iB,gCAAjI,kE,wBAK1E,kD,6BAAiE,gC,wBACjE,wC,6BAAuD,gCDtB3E,iBAiBI,WAAoBmC,EAAkCqE,EAAsCkwB,GAAxE,KAAAv0B,UAAkC,KAAAqE,eAAsC,KAAAkwB,QAT5F,KAAA7iB,QAAkB,GAClB,KAAAgK,KAAmB,K,OAUnB,YAAA73B,SAAA,sBACUkC,EAAM1B,KAAKkwC,MAAMc,SAASC,SAASx+B,IAAI,OAElC,MAAP/Q,IACA1B,KAAKqtB,QAAU,OAGnBrtB,KAAK2b,QAAQgc,cAAcj2B,GAAK4a,MAAK,SAAA+a,GACjC,EAAKA,KAAOA,EAERA,EAAKqY,OACL,EAAKriB,QAAU,WAK3B,YAAA0xB,eAAA,SAAe1rC,GACXA,EAAMoZ,iBAENzsB,KAAK6b,WAAa7b,KAAKggB,aAAaoM,KAAK,EAAA7f,sBAAuB,CAC5D2gB,UAAU,EACVC,UAAU,EACVC,qBAAqB,IAEzBptB,KAAK6b,WAAWwR,QAAQrR,UAAW,EACnChc,KAAK6b,WAAWwR,QAAQjR,OAASpc,KAAKq3B,KACtCr3B,KAAK6b,WAAWwR,QAAQhd,OAAQ,GAGpC,YAAAq8B,cAAA,SAAcrf,GACVrtB,KAAKqtB,QAAUA,G,iCA3CV7gB,GAAuB,qH,iCAAvBA,EAAuB,qkBCdpC,4BACI,4BACA,6BAEA,4BAGI,4BACI,4BAEI,8BAKA,8BAQA,0BACI,4BACA,2BAA0F,wCAAS,EAAAkgC,cAAc,UAAQ,6BAAsD,iBACnL,iBAEA,6BACI,yDACA,+CACJ,iBAEJ,iBACJ,iBACJ,iBACJ,kB,MA1BsB,2CAKA,2CASE,wDAC4C,gFAIhB,8DACV,gE,qPDtB1C,GAMa,EAAAlgC,2B,+DAAAA,EAAuB,E,KANnC,EAAA2M,U,MAAU,CAEPC,SAAU,mBACVC,YAAa,oCACbC,UAAW,CAAC,yC,uNEZhB,WAKA,GAJA,MACA,MAGA,OAKA,GAHA,OAGA,QAGA,GAFA,MACA,OACA,Q,4HCRQ,6BAAqE,YAAW,kB,6BAAX,+C,qBAgDzB,6B,qBACA,6B,mDAGR,gCAAiE,uJAC7D,6BACJ,kB,mDACA,gCAA6D,wJACvE,6BACF,kB,yBAdI,4BAEI,6BACI,2BACI,gCACI,oCACA,oCACJ,iBACJ,iBACA,kCAGA,kCAGJ,iBACJ,kB,uCAbW,uEAEgB,+FACA,6FAGV,mEAGA,gE,yBAlCrB,yBACI,4BACI,6BACI,sBACA,2BACI,8BACI,YACJ,iBACA,8BACI,8BACI,YACJ,iBACJ,iBACA,+BACI,aACJ,iBACJ,iBAEA,oCAEJ,iBACJ,iBACA,+BAiBJ,kB,2CAjCoB,wDAII,wEAIJ,kEAIQ,kDAInB,+D,mDAqBjB,6BACI,6CAAqC,gHAA8C,iBACvF,kB,sBAUG,4BACE,6BACF,kB,sBACA,4BACG,6BACF,kB,sBACA,4BACE,6BACF,kB,sBACA,4BACE,6BACF,kB,mDACD,4BACE,gCAAsB,wGACpB,6BACF,iBACF,kB,qBACA,uB,qBA6BF,uB,yBAvBF,yBACE,4BACE,6BACG,sBACA,2BAAyC,YAAgB,iBAC5D,iBACF,iBACA,4BACE,2BAAwC,YAAwB,iBAClE,iBACA,4BACG,4BAAwC,aAAuB,iBACjE,iBACA,6BACI,+BACE,aACF,iBACJ,iBACA,6BACE,+BACI,aACJ,iBACF,iBACD,+BAMD,kB,2CAzB+C,+CAIJ,yDAGC,sDAIpC,wEAKA,4EAGF,+D,mDAUT,6BACG,6CAAuC,kHAAgD,iBAC1F,kB,gLD5HrB,aAuCI,WAAmBqC,EAAkCqE,EAAsCqrB,EAAwB92B,EACvG2L,EAAsC5L,EAAiC8qC,GADhE,KAAAzjC,UAAkC,KAAAqE,eAAsC,KAAAqrB,SAAwB,KAAA92B,cACvG,KAAA2L,kBAAuE,KAAAk/B,YAjCnF,KAAAtkC,QAAkB,KAElB,KAAAukC,eAAiC,CAC7B5O,MAAO,EACPp+B,WAAY,EACZD,SAAU,GACVspB,QAAS,IAGb,KAAA4jB,iBAAmC,CAC/B7O,MAAO,EACPp+B,WAAY,EACZD,SAAU,GACVspB,QAAS,IAYb,KAAA6jB,kBAA4B,EAC5B,KAAAC,oBAA8B,EAI9B,KAAAC,eAAyB,EAIrBz/C,KAAK08B,QAAUpoB,EAAYooB,UAC3B18B,KAAK28B,aAAe38B,KAAK08B,SAAWpoB,EAAYqoB,eAChD38B,KAAK48B,cAAgB58B,KAAK08B,SAAW18B,KAAK28B,cAAgBroB,EAAYuoB,gB,OAG1E,YAAAr9B,SAAA,sBACIQ,KAAK0/C,uBAAuB,GAE5B1/C,KAAK2/C,YAAc,EAAAC,SAAS,KAAMz9B,WAAU,WACxC,EAAKo9B,oBACL,EAAKC,sBAED,EAAKC,eACD,EAAKF,mBAAqB,IAC1B,EAAKG,uBAAuB,EAAKL,eAAehtC,YAEhD,EAAKktC,kBAAoB,GAEzB,EAAKC,qBAAuB,IAC5B,EAAKK,yBAAyB,EAAKP,iBAAiBjtC,YAEpD,EAAKmtC,oBAAsB,IAG3B,EAAKD,mBAAqB,IAC1B,EAAKG,uBAAuB,EAAKL,eAAehtC,YAEhD,EAAKktC,kBAAoB,OAMzC,YAAArkC,YAAA,WACIlb,KAAK2/C,YAAYxgC,eAGrB,YAAA2gC,gBAAA,SAAgBC,GACZ,MAAmB,aAAfA,EAAI7tC,OACGlS,KAAKkgB,gBAAgBmC,OAAO,0BACb,YAAf09B,EAAI7tC,QAAuC,QAAf6tC,EAAI7tC,OAChClS,KAAKkgB,gBAAgBmC,OAAO,yBACb,WAAf09B,EAAI7tC,OACJlS,KAAKkgB,gBAAgBmC,OAAO,wBACb,YAAf09B,EAAI7tC,OACJlS,KAAKkgB,gBAAgBmC,OAAO,yBACb,aAAf09B,EAAI7tC,OACJlS,KAAKkgB,gBAAgBmC,OAAO,0BACb,YAAf09B,EAAI7tC,OACJlS,KAAKkgB,gBAAgBmC,OAAO,yBAE5BriB,KAAKkgB,gBAAgBmC,OAAO,0BAI3C,YAAA29B,iBAAA,SAAiBxP,GAAjB,WACIA,EAAK9U,QAAQl7B,SAAQ,SAAAu/C,GACjB,IAAIE,EAAa,CACb5gB,MAAO,CACH,CAAE9jB,MAAO,EAAK2E,gBAAgBmC,OAAO,6BAA8BnQ,OAAQ,YAE3E,CACIqJ,MAAO,EAAK2E,gBAAgBmC,OAAO,0BACnCnQ,OAAsB,QAAd6tC,EAAIG,MAAkB,EAAKC,aAAaJ,GAAO,EAAKK,mBAAmBL,EAAIG,MAAO,QAG9F,CACI3kC,MAAO,EAAK2E,gBAAgBmC,OAAO,6BACnCnQ,OAAsB,aAAd6tC,EAAIG,OAAsC,uBAAdH,EAAIG,MAAiC,EAAKC,aAAaJ,GAAO,EAAKK,mBAAmBL,EAAIG,MAAO,aAGzI,CACI3kC,MAAO,EAAK2E,gBAAgBmC,OAAO,iCACnCnQ,OAAsB,WAAd6tC,EAAIG,OAAoC,mBAAdH,EAAIG,OAA4C,kBAAdH,EAAIG,MAA4B,EAAKC,aAAaJ,GAAO,OAKzIA,EAAMA,GACFE,WAAaA,MAIzB,YAAAG,mBAAA,SAAmBC,EAAkBC,GACjC,IAAIlE,EAAQ,CAAC,MAAO,WAAY,qBAAsB,SAAU,iBAAkB,iBAE9EmE,EAASnE,EAAMvkC,QAAQwoC,GAE3B,OADgBjE,EAAMvkC,QAAQyoC,GACdC,EACL,WAEA,IAIf,YAAAJ,aAAA,SAAaJ,GACT,MAAmB,WAAfA,EAAI7tC,QAAsC,YAAf6tC,EAAI7tC,OACxB,UACe,aAAf6tC,EAAI7tC,OACJ,QAGJ,IAGX,YAAAsuC,sBAAA,WACIxgD,KAAK6/C,yBAAyB,GAE9B7/C,KAAKy/C,eAAgB,GAGzB,YAAA9P,OAAA,SAAO9gC,GACH7O,KAAKqrC,OAAOQ,SAAS,CAAC,iCAAkCh9B,KAG5D,YAAA6wC,uBAAA,SAAuBrtC,GAAvB,WACIrS,KAAK8a,QAAU,KAEf9a,KAAK2b,QAAQma,iBAAiB91B,KAAKq/C,eAAejtC,SAAUC,EAAY,cAAc,GAAOiK,MAAK,SAAAyC,GAC9F,EAAKsgC,eAAiBtgC,EACtB,EAAKihC,iBAAiB,EAAKX,mBAC5B1iC,OAAM,SAACC,GACN,EAAKC,MAAMD,OAInB,YAAAijC,yBAAA,SAAyBxtC,GAAzB,WACIrS,KAAK8a,QAAU,KAEf9a,KAAK2b,QAAQsa,0BAA0Bj2B,KAAKs/C,iBAAiBltC,SAAUC,EAAY,cAAc,GAAOiK,MAAK,SAAAyC,GACzG,EAAKugC,iBAAmBvgC,EACxB,EAAKihC,iBAAiB,EAAKV,qBAC5B3iC,OAAM,SAACC,GACN,EAAKC,MAAMD,OAInB,YAAA6jC,qBAAA,SAAqBtqB,EAAmB4pB,GAAxC,WACI//C,KAAK6b,WAAa7b,KAAKggB,aAAaoM,KAAK,EAAAuB,sBAAuB,CAC5DT,UAAU,EACVC,UAAU,EACVC,qBAAqB,IAGzBptB,KAAK6b,WAAWwR,QAAQvS,QAAU9a,KAAKkgB,gBAAgBmC,OAAO,uCAC9DriB,KAAK6b,WAAWwR,QAAQO,WAAa5tB,KAAKkgB,gBAAgBmC,OAAO,kCAEjEriB,KAAK6b,WAAWwR,QAAQ9rB,KAAO,EAAAutB,WAAWC,OAE1C/uB,KAAK6b,WAAWwR,QAAQQ,UAAU1L,WAAU,SAAAjd,GACxC,EAAKk6C,UAAUltB,aAAa6tB,EAAI/tB,eAAe1V,MAAK,SAAAyC,GAChD,EAAKlD,WAAWmD,OAEhB,IAAK,IAAIpa,EAAI,EAAGA,EAAI,EAAKy6C,eAAe3jB,QAAQx5B,SAAU0C,EAAG,CAGzD,GAFgB,EAAKy6C,eAAe3jB,QAAQ92B,GAE9B87C,QAAUX,EAAIW,MAAO,CAC/B,EAAKrB,eAAe3jB,QAAQ34B,OAAO6B,EAAG,GACtC,OAIR,EAAK47C,2BACN7jC,OAAM,SAACC,GACN,EAAKC,MAAMD,UAKvB,YAAA+jC,sBAAA,SAAsBxqB,EAAmB4pB,GAAzC,WACI//C,KAAK6b,WAAa7b,KAAKggB,aAAaoM,KAAK,EAAAuB,sBAAuB,CAC5DT,UAAU,EACVC,UAAU,EACVC,qBAAqB,IAGzBptB,KAAK6b,WAAWwR,QAAQvS,QAAU9a,KAAKkgB,gBAAgBmC,OAAO,6CAC9DriB,KAAK6b,WAAWwR,QAAQO,WAAa5tB,KAAKkgB,gBAAgBmC,OAAO,wCAEjEriB,KAAK6b,WAAWwR,QAAQ9rB,KAAO,EAAAutB,WAAWC,OAE1C/uB,KAAK6b,WAAWwR,QAAQQ,UAAU1L,WAAU,SAAAjd,GACxC,EAAKyW,QAAQ2a,oBAAoBH,GAAW7Z,MAAK,SAAAyC,GAC7C,EAAKlD,WAAWmD,OAEhB,IAAK,IAAIpa,EAAI,EAAGA,EAAI,EAAKy6C,eAAe3jB,QAAQx5B,SAAU0C,EAAG,CAGzD,GAFgB,EAAKy6C,eAAe3jB,QAAQ92B,GAE9B87C,QAAUX,EAAIW,MAAO,CAC/B,EAAKrB,eAAe3jB,QAAQ34B,OAAO6B,EAAG,GACtC,OAIR,EAAK47C,2BACN7jC,OAAM,SAACC,GACN,EAAKC,MAAMD,UAKvB,YAAAwC,WAAA,SAAW3I,GACP,OAAOzW,KAAKuU,YAAY8K,qBAAqB5I,IAGjD,YAAAoG,MAAA,SAAMD,GACF5c,KAAK8a,QAAU,EAAAwE,aAAaC,oBAAoB3C,I,iCAlP3ClQ,GAAsB,+P,iCAAtBA,EAAsB,usFCpBnC,4BACI,4BACA,6BAEA,4BACI,8BAEA,4BACI,yBACI,4BACJ,iBACJ,iBACA,4BACI,4BACI,4BACI,6BACI,+BACI,6BACI,6BACI,6BACI,8BACJ,iBACJ,iBACJ,iBACA,6BAEI,gC,wBAyCJ,iBACJ,iBACA,gCAGJ,iBAEA,6BACC,+BACE,6BACE,0BACE,6BACE,8BACF,iBACA,+BAGA,+BAGC,+BAGA,+BAGD,+BAKA,+BAEF,iBACF,iBACA,6BAEA,gC,wBA8BA,iBACF,iBAEA,gCAGD,iBACJ,iBAEJ,iBACJ,iBACJ,iBACJ,kB,MA7Ic,oDAqBsC,2LA2CtB,sEAYE,wEAGA,wEAGC,wEAGA,wEAGD,wEAKA,wEAMW,kMAiChB,0E,skBD1H3B,GAKa,EAAAA,0B,+DAAAA,EAAsB,E,KALlC,EAAAyM,U,MAAU,CACPC,SAAU,iBACVC,YAAa,kCACbC,UAAW,CAAC,6B,+RElBhB,WAKA,GAJA,MACA,MAGA,QAEA,SACA,SAKA,GAJA,OACA,OAGA,QAEA,GADA,MACA,Q,mHCVQ,4BAAqE,YAAW,kB,6BAAX,+C,mDA+C3D,6BACE,8BACE,6BACF,iBACA,gCAAsB,gIACpB,6BACF,iBACF,kB,mDAEA,6BACE,8BACE,6BACF,iBACA,gCAAsB,gIACpB,6BACF,iBACF,kB,qBAIM,6B,sBACA,2BACE,6BACF,kB,mDALN,6BACI,gCAAsB,gIACpB,oCACA,gCAGF,iBACJ,iB,iCALiB,8EACJ,2E,mDAMb,6BACE,gCAAsB,8HAClB,2BACE,6BACF,iBACF,iBACJ,kB,yBAzEN,4BAKI,4BACI,6BAEI,sBACA,2BACI,8BACI,6BAAQ,YAAgB,iBAC5B,iBACA,8BACE,6BACA,aACF,iBACA,+BACE,8BACA,+BACM,aACN,iBACF,iBACJ,iBAEJ,iBACJ,iBACA,8BACI,2BAEI,0BAAI,yBAAG,aACL,8BACA,aACA,8BACF,iBAAI,iBACJ,0BAAI,aAAwC,8BAA6D,iBAE7G,iBACJ,iBACA,8BACE,gCASA,gCASA,gCASA,gCAaF,iBACJ,kB,6BAtE4B,mDAIV,0DAKM,4EAUL,kEAEL,6DAGE,kFAKJ,wGASA,oGASA,sHASA,+D,sBAqBI,4BACI,yBAQC,4BACI,6BACJ,iBACA,4BACK,6BACL,iBACA,4BACG,6BACF,iBACD,uBAGD,iBACJ,kB,sBACA,4BACE,yBAQE,4BACE,6BACF,iBACA,4BACE,6BACF,iBACA,4BACE,6BACF,iBACA,uBAGF,iBACF,kB,mDAiBQ,4BACI,gCAAsB,6HAClB,6BACJ,iBACJ,kB,yBAlBJ,yBAKI,4BACE,wBAAG,YAA8C,iBACnD,iBACA,4BACE,wBAAG,YAAyB,iBAC9B,iBACA,4BACE,wBAAG,YAAc,iBACnB,iBACA,+BAKJ,kB,4CAbS,+EAGA,wDAGA,6CAEqB,+D,kGAflC,4BACI,+B,uBAoBJ,kB,8BApBwB,gJ,yBA+BnB,wBAA+C,YAAyB,kB,uCAAzB,yD,yBAC/C,wBAAwF,YAAa,kB,uCAAb,6C,mDAK3F,4BACC,gCAAsB,6HACjB,6BACL,iBACD,kB,yBAlBD,yBAIC,4BACE,wBAAG,YAAY,iBACjB,iBACA,4BACG,6BACA,6BACF,iBACA,4BACE,wBAAG,YAAwC,iBAC7C,iBACD,+BAKD,kB,4CAdM,2CAGE,oEACA,uGAGD,yEAEoB,+D,yBAf5B,4BACC,+B,uBAoBD,kB,8BApBqB,gJ,mDAuBrB,6BACI,6CAAqB,uGAAoC,iBAC7D,kB,yBArGZ,6BAEI,4BAEI,+BACI,iCAuBA,iCAwBA,iCAuBA,iCAsBJ,iBACA,6BACI,+BAGJ,iBACJ,iBACJ,kB,8BAnGoB,mEAuBA,uEAwBA,mEAuBA,uEAwBF,6D,yBApGtB,6BACI,+BAyGJ,kB,6BAzGuC,2CD5EnD,iBAmCI,WAAmBqC,EAAkCqE,EACzCqrB,EAAwB6E,EAA+B37B,EACvD2L,EAAsC5L,EAAiC8qC,GAFhE,KAAAzjC,UAAkC,KAAAqE,eACzC,KAAAqrB,SAAwB,KAAA6E,QAA+B,KAAA37B,cACvD,KAAA2L,kBAAuE,KAAAk/B,YA9BnF,KAAAtkC,QAAkB,KAElB,KAAA8lC,aAAuB,EACvB,KAAAzqB,UAAoB,GAEpB,KAAAqa,KAAY,CACRC,MAAO,EACPp+B,WAAY,EACZD,SAAU,GACVspB,QAAS,IAGb,KAAAmlB,YAAsB,EAWtB,KAAAC,WAAqB,EACrB,KAAAC,yBAAmC,EAO/B/gD,KAAK08B,QAAUpoB,EAAYooB,UAC3B18B,KAAK28B,aAAe38B,KAAK08B,SAAWpoB,EAAYqoB,eAChD38B,KAAK48B,cAAgB58B,KAAK08B,SAAW18B,KAAK28B,cAAgBroB,EAAYuoB,gB,OAG1E,YAAAr9B,SAAA,sBACIQ,KAAKm2B,UAAYn2B,KAAKkwC,MAAMc,SAAS1+B,OAAY,IAEjDtS,KAAK28C,aAAa,GAElB,IAAIG,EAAU,SAAWr9C,OAAO0wC,SAAS4M,UAAYt9C,OAAO0wC,SAAS6M,KAAO,IAAMv9C,OAAO0wC,SAAS6M,KAAO,IAAMxrC,IAE/GxR,KAAKi9C,SAAW,EAAAC,UAAUJ,EAAU,qBACpC98C,KAAKi9C,SAAS96B,WAAU,SAAArH,GACC,sBAAjBA,EAAQvZ,MACR,EAAKo7C,aAAa,EAAKnM,KAAKn+B,gBAKxC,YAAA6I,YAAA,aAGA,YAAA8lC,mBAAA,SAAmBC,GACf,OAAOA,EAAKtZ,QAAQ,KAAM,OAG9B,YAAAuZ,wBAAA,SAAwBjiC,GACpB,OAAOxN,KAAKC,UAAUuN,IAG1B,YAAAkiC,kBAAA,SAAkBpmB,GACd,IAAK,IAAIn2B,EAAI,EAAGA,EAAI5E,KAAKwwC,KAAK9U,QAAQx5B,SAAU0C,EAAG,CAC5B5E,KAAKwwC,KAAK9U,QAAQ92B,GAEpBnD,KAAOs5B,EAAQt5B,IAC5BzB,KAAKwwC,KAAK9U,QAAQ34B,OAAO6B,EAAG,KAKxC,YAAAw8C,uBAAA,SAAuBC,GACnB,MAAiB,iDAAbA,EACOrhD,KAAKkgB,gBAAgBmC,OAAO,gDAGtB,yDAAbg/B,EACOrhD,KAAKkgB,gBAAgBmC,OAAO,qDAGtB,sDAAbg/B,EACOrhD,KAAKkgB,gBAAgBmC,OAAO,sDAGtB,sDAAbg/B,EACOrhD,KAAKkgB,gBAAgBmC,OAAO,sDAGtB,gDAAbg/B,EACOrhD,KAAKkgB,gBAAgBmC,OAAO,+CAGtB,8DAAbg/B,EACOrhD,KAAKkgB,gBAAgBmC,OAAO,mDAItB,mEAAbg/B,GACa,kEAAbA,GACa,mEAAbA,GACa,iEAAbA,EAEOrhD,KAAKkgB,gBAAgBmC,OAAO,6CAQtB,oDAAbg/B,GACa,sDAAbA,GACa,0DAAbA,EAEOrhD,KAAKkgB,gBAAgBmC,OAAO,wDAGhCg/B,GAGX,YAAAzR,OAAA,SAAO7U,GAAP,WAGI/6B,KAAK6b,WAAa7b,KAAKggB,aAAaoM,KAAK,EAAAxf,0BAA2B,CAChEsgB,UAAU,EACVC,UAAU,EACVC,qBAAqB,IAEzBptB,KAAK6b,WAAWwR,QAAQ0N,QAAUA,EAClC/6B,KAAK6b,WAAWwR,QAAQ0yB,IAAM//C,KAAK+/C,IACnC//C,KAAK6b,WAAWwR,QAAQi0B,iBAAiBn/B,WAAU,SAAAjd,GAC3B,aAAhBA,EAAKyL,QACL,EAAKwwC,kBAAkBj8C,EAAKA,UAKxC,YAAAy3C,aAAA,SAAatqC,GAAb,WACIrS,KAAK8a,QAAU,KAEf9a,KAAK2b,QAAQua,gBAAgBl2B,KAAKm2B,UAAWn2B,KAAKwwC,KAAKp+B,SAAUC,GAAY,GAAMiK,MAAK,SAAAyC,GAGpF,GAFA,EAAKghC,IAAMhhC,EAEY,mBAAnB,EAAKghC,IAAIG,MACT,EAAK1P,KAAO,EAAKuP,IAAIwB,kBAClB,GAAuB,uBAAnB,EAAKxB,IAAIG,MAAgC,CAChD,EAAK1P,KAAO,EAAKuP,IAAIyB,SAErB,IAAK,IAAI58C,EAAI,EAAGA,EAAI,EAAK4rC,KAAK9U,QAAQx5B,SAAU0C,EAAG,CAG1B,yBAFP,EAAK4rC,KAAK9U,QAAQ92B,GAEpBrD,OACR,EAAKw/C,yBAA0B,QAI5CpkC,OAAM,SAACC,GACN,EAAKC,MAAMD,OAInB,YAAA6kC,oBAAA,aAIA,YAAAjB,sBAAA,aAIA,YAAAkB,UAAA,sBACI1hD,KAAK4gD,aAAe5gD,KAAK4gD,YAEzB5gD,KAAK+/C,IAAIwB,aAAa7lB,QAAQl7B,SAAQ,SAAAmhD,GAClCA,EAAI9hB,SAAW,EAAK+gB,gBAI5B,YAAAgB,oBAAA,SAAoBzrB,GAApB,WACIn2B,KAAK6b,WAAa7b,KAAKggB,aAAaoM,KAAK,EAAAvf,uBAAwB,CAC7DqgB,UAAU,EACVC,UAAU,EACVC,qBAAqB,IAGzBptB,KAAK6b,WAAWwR,QAAQ0yB,IAAM//C,KAAK+/C,IAEnC//C,KAAK6b,WAAWwR,QAAQQ,UAAU1L,WAAU,SAAAjd,GACxC,EAAKmmC,OAAOQ,SAAS,CAAC,iCAI9B,YAAA8U,sBAAA,SAAsBxqB,GAAtB,WACqC,IAA7Bn2B,KAAKwwC,KAAK9U,QAAQx5B,OAClBlC,KAAK2b,QAAQ2a,oBAAoBH,GAAW7Z,MAAK,SAAAyC,GAC7C,EAAKssB,OAAOQ,SAAS,CAAC,gCACvBlvB,OAAM,SAACC,GACN,EAAKC,MAAMD,OAGf5c,KAAK6b,WAAa7b,KAAKggB,aAAaoM,KAAK,EAAAuB,sBAAuB,CAC5DT,UAAU,EACVC,UAAU,EACVC,qBAAqB,IAGF,uBAAnBptB,KAAK+/C,IAAIG,OACTlgD,KAAK6b,WAAWwR,QAAQvS,QAAU9a,KAAKkgB,gBAAgBmC,OAAO,iDAC9DriB,KAAK6b,WAAWwR,QAAQO,WAAa5tB,KAAKkgB,gBAAgBmC,OAAO,8CAEjEriB,KAAK6b,WAAWwR,QAAQvS,QAAU9a,KAAKkgB,gBAAgBmC,OAAO,6CAC9DriB,KAAK6b,WAAWwR,QAAQO,WAAa5tB,KAAKkgB,gBAAgBmC,OAAO,yCAGrEriB,KAAK6b,WAAWwR,QAAQ9rB,KAAO,EAAAutB,WAAWC,OAE1C/uB,KAAK6b,WAAWwR,QAAQQ,UAAU1L,WAAU,SAAAjd,GACxC,EAAKyW,QAAQ2a,oBAAoBH,GAAW7Z,MAAK,SAAAyC,GAC7C,EAAKssB,OAAOQ,SAAS,CAAC,gCACvBlvB,OAAM,SAACC,GACN,EAAKC,MAAMD,WAM3B,YAAA6jC,qBAAA,SAAqBtqB,GAArB,WACIn2B,KAAK6b,WAAa7b,KAAKggB,aAAaoM,KAAK,EAAAuB,sBAAuB,CAC5DT,UAAU,EACVC,UAAU,EACVC,qBAAqB,IAGzBptB,KAAK6b,WAAWwR,QAAQvS,QAAU9a,KAAKkgB,gBAAgBmC,OAAO,uCAC9DriB,KAAK6b,WAAWwR,QAAQO,WAAa5tB,KAAKkgB,gBAAgBmC,OAAO,kCAEjEriB,KAAK6b,WAAWwR,QAAQ9rB,KAAO,EAAAutB,WAAWC,OAE1C/uB,KAAK6b,WAAWwR,QAAQQ,UAAU1L,WAAU,SAAAjd,GACxC,EAAKk6C,UAAUltB,aAAa,EAAK6tB,IAAI/tB,eAAe1V,MAAK,SAAAyC,GAErD,EAAKssB,OAAOQ,SAAS,CAAC,gCACvBlvB,OAAM,SAACC,GACN,EAAKC,MAAMD,UAKvB,YAAAwC,WAAA,SAAW3I,GACP,OAAOzW,KAAKuU,YAAY8K,qBAAqB5I,IAGjD,YAAAoG,MAAA,SAAMD,GACF5c,KAAK8a,QAAU,EAAAwE,aAAaC,oBAAoB3C,I,iCA/P3CjQ,GAAY,qS,iCAAZA,EAAY,27FCxBzB,4BACI,4BACA,6BAEA,4BACI,8BAEI,4BACI,yBACI,4BACJ,iBACJ,iBACA,gCAkFA,8BA2GR,iBACJ,kB,MArMc,oDAOI,0CAkFA,sE,qgBD3ElB,GAKa,EAAAA,gB,+DAAAA,EAAY,E,KALxB,EAAAwM,U,MAAU,CACPC,SAAU,MACVC,YAAa,uBACbC,UAAW,CAAC,6B,oUEtBhB,WAEA,GADA,MACA,OAOA,GAFA,OAEA,Q,GACA,M,mHCTI,6BAAqE,YAAW,kB,6BAAX,+C,mDAY7D,0BACI,+CAAuB,yIAAyF,iBACpH,iB,gCADoF,iDAAmB,c,mDAGrG,yDAAmF,0IAA0F,iB,iCAAjC,kCAAmB,c,mDAC/J,uDAA+E,0IAA0F,iB,iCAAjC,kCAAmB,c,mDAC3J,uDAA+E,0IAA0F,iB,iCAAjC,kCAAmB,c,yBAH7J,0BACE,2DACA,yDACA,yDACF,kB,6BAHoC,8EACF,4EACA,6EDP9C,iBAmBI,WAAoBqC,EAAkCC,EAA6BxH,EAAsCyH,GAArG,KAAAF,UAAkC,KAAAC,WAA6B,KAAAxH,WAAsC,KAAAyH,aAZzH,KAAAf,QAAkB,KASlB,KAAAkB,UAAoB,EACpB,KAAAC,MAAgB,EAGZjc,KAAKshD,iBAAmB,IAAI,EAAArnC,Q,OAGhC,YAAAza,SAAA,aAIA,YAAAqiD,0BAAA,SAA0B9mB,GACtB/6B,KAAKshD,iBAAiB/mC,KAAK,CAAE5J,OAAQ,WAAYzL,KAAM61B,KAG3D,YAAA7b,SAAA,WACIlf,KAAK6b,WAAWmD,QAGpB,YAAAnC,MAAA,SAAMD,GACF5c,KAAK8a,QAAU,EAAAwE,aAAaC,oBAAoB3C,I,iCA/B3ChQ,GAAyB,uJ,iCAAzBA,EAAyB,shBCjBtC,4BACI,8BAEA,4BACI,yBACI,4BACJ,iBACJ,iBAEA,+BAEI,+BAEI,8BAGA,8BAMA,6BAEI,6BACI,6BACI,iCAAsB,wCAAS,EAAAsS,cAC3B,8BACJ,iBACJ,iBACJ,iBACJ,iBAEJ,iBACJ,iBAEJ,kB,MAnCU,oDAYQ,qFAGA,2F,kRDJlB,GAKa,EAAAtS,6B,+DAAAA,EAAyB,E,KALrC,EAAAuM,U,MAAU,CACPC,SAAU,qBACVC,YAAa,sCACbC,UAAW,Q,iPEff,WAMA,GALA,MAGA,OAEA,QAIA,GAFA,OACA,OACA,Q,GACA,M,gFCVI,6BAAqE,YAAW,kB,6BAAX,+C,yBAWrE,4BAKI,6BACI,6BAEI,sBACA,2BACI,8BACI,6BAAQ,YAAgB,iBAC5B,iBACA,8BACI,6BAA2D,aAC/D,iBACA,+BACI,8BAA4D,kBAC5D,+BACM,aACN,iBACJ,iBACJ,iBAEJ,iBACJ,iBACA,yBACJ,kB,6BAhB4B,mDAGmD,2DAKrD,6E,mDA+BV,6BACI,gCAA0C,kGACtC,6BACJ,iBACJ,kBDrDpB,iBAgBI,WAAoBqC,EAAkCC,EAA6BrH,EACvEH,EAAsCyH,EAAgCmE,GAD9D,KAAArE,UAAkC,KAAAC,WAA6B,KAAArH,cACvE,KAAAH,WAAsC,KAAAyH,aAAgC,KAAAmE,eAVlF,KAAAlF,QAAkB,KAGD,KAAAqmC,kBAAoB,IAAI,EAAA5hD,aAEzC,KAAAyc,UAAoB,EACpB,KAAAC,MAAgB,E,OAOhB,YAAAzc,SAAA,aAIA,YAAAsiD,gBAAA,sBACQxD,EAAYt+C,KAAKggB,aAAaoM,KAAK,EAAA5gB,yBAA0B,CAC7D2hB,UAAU,EACVC,qBAAqB,IAGzBkxB,EAAUjxB,QAAQ2Q,yBAAyBh+B,KAAK+6B,QAAS/6B,KAAK+/C,IAAI5pB,UAAWn2B,KAAK+/C,IAAI/tB,cAAcve,WAAW,GAC/G6qC,EAAUjxB,QAAQ+P,gBAAgB,MAClCkhB,EAAUjxB,QAAQgQ,sBAAqB,WACnC,EAAK8jB,kBAAkB5mB,KAAK,EAAKQ,SACjC,EAAKlf,WAAWmD,WAIxB,YAAAoiC,uBAAA,SAAuBC,GACnB,MAAiB,iDAAbA,EACOrhD,KAAKoU,SAASiO,OAAO,gDAGf,yDAAbg/B,EACOrhD,KAAKoU,SAASiO,OAAO,qDAGf,sDAAbg/B,EACOrhD,KAAKoU,SAASiO,OAAO,sDAGf,sDAAbg/B,EACOrhD,KAAKoU,SAASiO,OAAO,sDAGf,gDAAbg/B,EACOrhD,KAAKoU,SAASiO,OAAO,+CAIf,mEAAbg/B,GACa,kEAAbA,GACa,mEAAbA,GACa,iEAAbA,EAEOrhD,KAAKoU,SAASiO,OAAO,6CAOf,oDAAbg/B,GACa,sDAAbA,GACa,0DAAbA,EAEOrhD,KAAKoU,SAASiO,OAAO,wDAGzBg/B,GAGX,YAAAxiC,SAAA,aAIA,YAAAK,SAAA,WACIlf,KAAK6b,WAAWmD,QAGpB,YAAAI,WAAA,SAAW3I,GACP,OAAOzW,KAAKuU,YAAY8K,qBAAqB5I,IAGjD,YAAAoG,MAAA,SAAMD,GACF5c,KAAK8a,QAAU,EAAAwE,aAAaC,oBAAoB3C,I,iCA1F3C3P,GAA4B,gO,iCAA5BA,EAA4B,uoDClBzC,4BACI,8BAWA,+BA6BA,4BAKI,4BAEI,4BACI,4BACI,4BACI,yBAAI,6BAAQ,6BAAsD,iBAAS,iBAC3E,2BAA+B,aAAkD,iBAEjF,0BAAI,8BAAQ,8BAAsD,iBAAS,iBAC3E,2BAA+B,aAA6B,iBAIhE,iBACJ,iBACA,8BACI,gCAKJ,iBACJ,iBACJ,iBACJ,iBAEJ,kB,MAvEU,oDAWA,qDAwC6C,wFAGA,gEAO7B,+F,4DDjD1B,GAKa,EAAAA,gC,+DAAAA,EAA4B,E,KALxC,EAAAkM,U,MAAU,CACPC,SAAU,wBACVC,YAAa,yCACbC,UAAW,Q,gKAKFyhB,QAAS,CAAF,C,KAAf,EAAAvhB,QACQumC,IAAK,CAAF,C,KAAX,EAAAvmC,QACgB2nC,kBAAiB,E,KAAjC,EAAAl6C,Y,iIEvBL,WAGA,GAFA,MAEA,OASA,GAJA,OACA,OACA,OAEA,Q,GACA,M,iGCZI,6BAAqE,YAAW,kB,6BAAX,+C,yBAWrE,4BAKI,6BACI,6BAEI,sBACA,2BACI,8BACI,6BAAQ,YAAgB,iBAC5B,iBACA,8BACI,6BAA2D,aAC/D,iBACA,+BACI,8BAA4D,kBAC5D,+BACM,aACN,iBACJ,iBACJ,iBAEJ,iBACJ,iBACA,yBACJ,kB,6BAhB4B,mDAGmD,2DAKrD,6E,yBAyCR,yBACJ,yBAAI,YAA4B,iBAClC,kB,uBADM,iE,yBAFD,6BACC,8BAGP,kB,6BAH2B,0DDzD1C,iBAuBI,WAAoB0U,EAAkCC,EAA6BrH,EACvEH,EAAsCyH,EAAgCmE,GAD9D,KAAArE,UAAkC,KAAAC,WAA6B,KAAArH,cACvE,KAAAH,WAAsC,KAAAyH,aAAgC,KAAAmE,eAjBlF,KAAAlF,QAAkB,KAGD,KAAAqmC,kBAAoB,IAAI,EAAA5hD,aASzC,KAAAyc,UAAoB,EACpB,KAAAC,MAAgB,E,OAOhB,YAAAzc,SAAA,WAKIQ,KAAK+6B,QAAQ9U,OAAS,KACtBjmB,KAAK+hD,YAAc,IAGvB,YAAAC,UAAA,SAAUC,GACN,OAAOxwC,KAAKC,UAAUuwC,IAG1B,YAAAC,iCAAA,SAAiCD,GAC7B,OAAOA,EAAS1gD,MAGpB,YAAAs9B,uBAAA,SAAuBrrB,EAAkByuC,GAAzC,WAEQzxC,EAAgBxQ,KAAK+/C,IAAI/tB,cAAcja,UAE3C,OAAO,EAAAyjB,WAAWze,QAAO,SAAC0e,GACtB,EAAK9f,QAAQ6W,wBAAwB,EAAKuvB,YAAavuC,EAJ1C,KAIgE,KAAMhD,EAAe,EAAKuvC,IAAItsC,UAAW,EAAKssC,IAAIrsC,SAAS4I,MAAK,SAAAof,GACzID,EAASlhB,KAAKmhB,UAK1B,YAAAS,kBAAA,SAAkBxtB,EAAmBszC,GAArC,WACIjiD,KAAK2b,QAAQwY,oBAAoBxlB,EAAE6d,KAAK0lB,IAAK+P,EAASzuC,SAAU,IAAI,EAAOxT,KAAK+/C,IAAItsC,WAAW6I,MAAK,SAAAg9B,GAChG2I,EAASh8B,OAASqzB,EAAUjpB,UAC5B,EAAK0xB,YAAczI,EAAUjpB,UAAU1uB,WAAWmb,aAAawO,kBAChE3O,OAAM,SAACC,GACN,EAAKC,MAAMD,OAInB,YAAAulC,SAAA,sBACQC,EAAM,CACN/jB,WAAY,SACZgkB,oBAAqBriD,KAAK+6B,QAAQt5B,IAGtCzB,KAAK2b,QAAQ4a,wBAAwB6rB,GAAK9lC,MAAK,SAAAyC,GAC3C,EAAKoiC,kBAAkB5mB,KAAK,EAAKQ,SAEjC,EAAKlf,WAAWmD,UACjBrC,OAAM,SAACC,GACN,EAAKC,MAAMD,OAInB,YAAA0lC,gBAAA,sBACQF,EAAM,CACNC,oBAAqBriD,KAAK+6B,QAAQt5B,GAClC48B,WAAY,UACZxvB,KAAM7O,KAAK+6B,QAAQ9U,OAAOtkB,WAAWkN,KACrC2E,SAAUxT,KAAK+6B,QAAQ9U,OAAOtkB,WAAWJ,KACzCga,MAAOvb,KAAK+6B,QAAQxf,OAGxBvb,KAAK2b,QAAQ4a,wBAAwB6rB,GAAK9lC,MAAK,SAAAyC,GAC3C,EAAKoiC,kBAAkB5mB,KAAK,EAAKQ,SAEjC,EAAKlf,WAAWmD,UACjBrC,OAAM,SAACC,GACN,EAAKC,MAAMD,OAInB,YAAAsC,SAAA,WACIlf,KAAK6b,WAAWmD,QAGpB,YAAAI,WAAA,SAAW3I,GACP,OAAOzW,KAAKuU,YAAY8K,qBAAqB5I,IAGjD,YAAAoG,MAAA,SAAMD,GACF5c,KAAK8a,QAAU,EAAAwE,aAAaC,oBAAoB3C,I,iCArG3C9P,GAAqC,gO,iCAArCA,EAAqC,8wECpBlD,4BACI,8BAWA,+BA6BA,4BAKI,4BAEI,4BACI,4BACI,yBAAI,6BAAQ,4BAAsD,iBAAS,iBAC3E,2BAA+B,aAA6C,iBAE5E,0BAAI,8BAAQ,6BAAsD,iBAAS,iBAC3E,2BACE,8BACF,iBAEA,0BAAI,8BAAQ,8BAAwD,iBAAS,iBAC7E,yBACE,8BACF,iBACJ,iBACA,8BACC,8BACE,8BACC,6BACE,+BAAmB,8BAAsD,iBAC3E,iBACD,iBACA,8BACE,gCAKF,iBACF,iBACA,8BACE,8BACE,6BACE,+BAAmB,8BAAoD,iBACzE,iBACF,iBACA,8BACE,+BAA4C,aAAiB,iBAC/D,iBACF,iBACA,8BACG,8BACE,6BACE,+BAAmB,8BAAsD,iBAC3E,iBACF,iBACA,8BACE,gCAEC,oEAAyB,wCAGJ,EAAAqvB,kBAAA,gBALtB,iBAUF,iBACF,iBACA,8BACE,8BACE,6BACE,+BAAmB,8BAAsD,iBAC3E,iBACF,iBACA,8BACE,iCAA0D,wCAAS,EAAAmmB,qBACjE,8BACF,iBACA,iCAAsB,wCAAS,EAAAH,cAC7B,8BACF,iBACF,iBACF,iBACF,iBACJ,iBACJ,iBACJ,iBAEJ,kB,MA9HU,oDAWA,qDAuCyC,kFAoBxB,gEAcsC,oDAY1C,qDAAyB,oBAAzB,CAAyB,mEAAzB,CAAyB,0BAAzB,CAAyB,uBAAzB,CAAyB,uBAiBJ,iE,8IDnG5C,GAKa,EAAAr1C,yC,+DAAAA,EAAqC,E,KALjD,EAAAqM,U,MAAU,CACPC,SAAU,kCACVC,YAAa,mDACbC,UAAW,Q,gKAKFyhB,QAAS,CAAF,C,KAAf,EAAAvhB,QACQumC,IAAK,CAAF,C,KAAX,EAAAvmC,QACgB2nC,kBAAiB,E,KAAjC,EAAAl6C,Y,+HEzBL,WAGA,GADA,MACA,OAQA,GALA,OACA,OACA,OAEA,MACA,Q,kGCVI,4BAAqE,YAAW,kB,6BAAX,+C,yBAWrE,4BAKI,4BACI,4BAEI,qBACA,2BACI,8BACI,6BAAQ,YAAgB,iBAC5B,iBACA,8BACI,6BAA2D,aAC/D,iBACA,+BACI,8BAA4D,kBAC5D,+BACM,aACN,iBACJ,iBACJ,iBAEJ,iBACJ,iBACA,wBACJ,kB,6BAhB4B,mDAGmD,2DAKrD,6E,mDAiBlB,6BACI,6BACI,yBAAI,6BAAQ,6BAAsD,iBAAS,iBAC3E,2BAA+B,YAA6C,iBAE5E,yBAAI,6BAAQ,6BAAsD,iBAAS,iBAC3E,4BACE,8BACF,iBAEA,0BAAI,8BAAQ,8BAAwD,iBAAS,iBAC7E,yBAAG,8BAA+D,iBACtE,iBACA,8BACC,8BACG,8BACE,6BACE,+BAAmB,8BAAoE,iBACzF,iBACF,iBACA,8BACE,+BAA4C,aAA0B,iBACxE,iBACF,iBACD,8BACE,8BACE,6BACE,+BAAmB,8BAA2D,iBAChF,iBACF,iBACA,8BACE,+BAA4C,aAAiB,iBAC/D,iBACF,iBACA,8BACG,8BACE,6BACE,+BAAmB,8BAA6D,iBAClF,iBACF,iBACA,8BACE,gCAEC,uGAAyB,qGAF1B,iBAUF,iBACF,iBACA,8BACE,8BACE,6BACE,+BAAmB,8BAA6D,iBAClF,iBACF,iBACA,8BACE,iCAAkD,kGAChD,8BACF,iBACA,iCAAsB,2FACpB,8BACF,iBACF,iBACF,iBACF,iBACJ,iB,gCAlEuC,kFAkBe,8DAUD,oDAY1C,qDAAyB,oBAAzB,CAAyB,gDAAzB,CAAyB,0BAAzB,CAAyB,uBAAzB,CAAyB,uBAiBJ,wDD/F5C,iBAmBI,WAAoB0U,EAAkCC,EAA6BrH,EACvEH,EAAsCyH,EAAgCmE,GAD9D,KAAArE,UAAkC,KAAAC,WAA6B,KAAArH,cACvE,KAAAH,WAAsC,KAAAyH,aAAgC,KAAAmE,eAblF,KAAAlF,QAAkB,KAGD,KAAAqmC,kBAAoB,IAAI,EAAA5hD,aAEzC,KAAA+sC,OAAiB,KAGjB,KAAAtwB,UAAoB,EACpB,KAAAC,MAAgB,E,OAOhB,YAAAzc,SAAA,WACIQ,KAAK+6B,QAAQ9U,OAAS,KACtBjmB,KAAK+hD,YAAc,IAGvB,YAAAG,iCAAA,SAAiCD,GAC7B,OAAOA,EAAS1gD,MAGpB,YAAAs9B,uBAAA,SAAuBojB,GAAvB,WACI,OAAO,EAAAzmB,WAAWze,QAAO,SAAC0e,GACtB,EAAK7f,SAASkX,mBAAmBmvB,EAASlvB,cAAe,EAAKgvB,YAAa,MAAMzlC,MAAK,SAAAof,GAClFD,EAASlhB,KAAKmhB,UAK1B,YAAAS,kBAAA,SAAkBxtB,GACd3O,KAAKssC,OAAS39B,EAAE6d,KAAKlqB,OAGzB,YAAA6/C,SAAA,sBACQC,EAAM,CACN/jB,WAAY,SACZgkB,oBAAqBriD,KAAK+6B,QAAQt5B,IAGtCzB,KAAK2b,QAAQ4a,wBAAwB6rB,GAAK9lC,MAAK,SAAAyC,GAC3C,EAAKoiC,kBAAkB5mB,KAAK,EAAKQ,SAEjC,EAAKlf,WAAWmD,UACjBrC,OAAM,SAACC,GACN,EAAKC,MAAMD,OAInB,YAAA0lC,gBAAA,sBACQF,EAAM,CACNC,oBAAqBriD,KAAK+6B,QAAQt5B,GAClC48B,WAAY,UACZnL,aAAclzB,KAAKssC,OACnB/wB,MAAOvb,KAAK+6B,QAAQxf,OAGxBvb,KAAK2b,QAAQ4a,wBAAwB6rB,GAAK9lC,MAAK,SAAAyC,GAC3C,EAAKoiC,kBAAkB5mB,KAAK,EAAKQ,SAEjC,EAAKlf,WAAWmD,UACjBrC,OAAM,SAACC,GACN,EAAKC,MAAMD,OAInB,YAAAsC,SAAA,WACIlf,KAAK6b,WAAWmD,QAGpB,YAAAI,WAAA,SAAW3I,GACP,OAAOzW,KAAKuU,YAAY8K,qBAAqB5I,IAGjD,YAAAoG,MAAA,SAAMD,GACF5c,KAAK8a,QAAU,EAAAwE,aAAaC,oBAAoB3C,I,iCAhF3C7P,GAAmC,gO,iCAAnCA,EAAmC,uxEClBhD,4BACI,8BAWA,+BA6BA,4BAKI,4BAEI,gCAsEJ,iBACJ,iBAEJ,kB,MAxHU,oDAWA,qDAoCQ,gD,oIDnClB,GAKa,EAAAA,uC,+DAAAA,EAAmC,E,KAL/C,EAAAoM,U,MAAU,CACPC,SAAU,gCACVC,YAAa,iDACbC,UAAW,Q,gKAKFyhB,QAAS,CAAF,C,KAAf,EAAAvhB,QACQumC,IAAK,CAAF,C,KAAX,EAAAvmC,QACgB2nC,kBAAiB,E,KAAjC,EAAAl6C,Y,+HEvBL,WAIA,GAFA,MAEA,OAQA,GAJA,OACA,OACA,OAEA,Q,GACA,M,gFCZI,6BAAqE,YAAW,kB,6BAAX,+C,yBAWrE,4BAKI,6BACI,6BAEI,sBACA,2BACI,8BACI,6BAAQ,YAAgB,iBAC5B,iBACA,8BACI,6BAA2D,aAC/D,iBACA,+BACI,8BAA4D,kBAC5D,+BACM,aACN,iBACJ,iBACJ,iBAEJ,iBACJ,iBACA,yBACJ,kB,6BAhB4B,mDAGmD,2DAKrD,6EDhB9B,iBAuBI,WAAoB0U,EAAkCC,EAA6BrH,EACvEH,EAAsCyH,GAD9B,KAAAF,UAAkC,KAAAC,WAA6B,KAAArH,cACvE,KAAAH,WAAsC,KAAAyH,aAjBlD,KAAAf,QAAkB,KAGD,KAAAqmC,kBAAoB,IAAI,EAAA5hD,aASzC,KAAAyc,UAAoB,EACpB,KAAAC,MAAgB,E,OAOhB,YAAAzc,SAAA,WAKIQ,KAAK+6B,QAAQ9U,OAAS,KACtBjmB,KAAK+hD,YAAc,IAGvB,YAAAC,UAAA,SAAUC,GACN,OAAOxwC,KAAKC,UAAUuwC,IAG1B,YAAAC,iCAAA,SAAiCD,GAC7B,OAAOA,EAAS1gD,MAGpB,YAAAs9B,uBAAA,SAAuBrrB,EAAkByuC,GAAzC,WAEQzxC,EAAgBxQ,KAAK+/C,IAAI/tB,cAAcja,UAE3C,OAAO,EAAAyjB,WAAWze,QAAO,SAAC0e,GACtB,EAAK9f,QAAQ6W,wBAAwB,EAAKuvB,YAAavuC,EAJ1C,KAIgE,KAAMhD,EAAe,EAAKuvC,IAAItsC,UAAW,EAAKssC,IAAIrsC,SAAS4I,MAAK,SAAAof,GACzID,EAASlhB,KAAKmhB,UAK1B,YAAAS,kBAAA,SAAkBxtB,EAAmBszC,GAArC,WACIjiD,KAAK2b,QAAQwY,oBAAoBxlB,EAAE6d,KAAK0lB,IAAK+P,EAASzuC,SAAU,IAAI,EAAOxT,KAAK+/C,IAAItsC,WAAW6I,MAAK,SAAAg9B,GAChG2I,EAASh8B,OAASqzB,EAAUjpB,UAC5B,EAAK0xB,YAAczI,EAAUjpB,UAAU1uB,WAAWmb,aAAawO,kBAChE3O,OAAM,SAACC,GACN,EAAKC,MAAMD,OAInB,YAAAulC,SAAA,sBACQC,EAAM,CACN/jB,WAAY,SACZgkB,oBAAqBriD,KAAK+6B,QAAQt5B,IAGtCzB,KAAK2b,QAAQ4a,wBAAwB6rB,GAAK9lC,MAAK,SAAAyC,GAC3C,EAAKoiC,kBAAkB5mB,KAAK,EAAKQ,SAEjC,EAAKlf,WAAWmD,UACjBrC,OAAM,SAACC,GACN,EAAKC,MAAMD,OAInB,YAAAokC,mBAAA,SAAmBC,GACf,OAAOA,EAAKtZ,QAAQ,KAAM,OAG9B,YAAA2a,gBAAA,sBACQF,EAAM,CACNC,oBAAqBriD,KAAK+6B,QAAQt5B,GAClC48B,WAAY,UACZxvB,KAAM7O,KAAK+6B,QAAQ9U,OAAOtkB,WAAWkN,KACrC2E,SAAUxT,KAAK+6B,QAAQ9U,OAAOtkB,WAAWJ,KACzCga,MAAOvb,KAAK+6B,QAAQxf,OAGxBvb,KAAK2b,QAAQ4a,wBAAwB6rB,GAAK9lC,MAAK,SAAAyC,GAC3C,EAAKoiC,kBAAkB5mB,KAAK,EAAKQ,SAEjC,EAAKlf,WAAWmD,UACjBrC,OAAM,SAACC,GACN,EAAKC,MAAMD,OAInB,YAAAwC,WAAA,SAAW3I,GACP,OAAOzW,KAAKuU,YAAY8K,qBAAqB5I,IAGjD,YAAAyI,SAAA,WACIlf,KAAK6b,WAAWmD,QAGpB,YAAAnC,MAAA,SAAMD,GACF5c,KAAK8a,QAAU,EAAAwE,aAAaC,oBAAoB3C,I,iCAzG3C5P,GAAmC,0L,iCAAnCA,EAAmC,qnDCpBhD,4BACI,8BAWA,+BA6BA,4BAKI,4BAEI,4BACI,4BACI,yBAAI,6BAAQ,4BAAsD,iBAAS,iBAC3E,2BAA+B,aAA6C,iBAE5E,0BAAI,8BAAQ,6BAAsD,iBAAS,iBAC3E,2BAA+B,8BAA6D,iBAE5F,0BAAI,8BAAQ,8BAAwD,iBAAS,iBAC7E,yBAAG,8BAA+D,iBACtE,iBACA,8BACC,8BACE,8BACC,6BACE,+BAAmB,8BAA+E,iBACpG,iBACD,iBACA,8BACG,+BAA4C,aAA4C,iBAC1F,iBACH,iBACA,8BACE,8BACE,6BACE,+BAAmB,8BAA6D,iBAClF,iBACF,iBACA,8BACE,+BAA4C,aAA6B,iBAC3E,iBACF,iBACD,iBACJ,iBACJ,iBACJ,iBAEJ,kB,MApFU,oDAWA,qDAuCyC,kFAgBe,kFAUD,kE,4DD9DjE,GAKa,EAAAA,uC,+DAAAA,EAAmC,E,KAL/C,EAAAmM,U,MAAU,CACPC,SAAU,gCACVC,YAAa,iDACbC,UAAW,Q,wIAKFyhB,QAAS,CAAF,C,KAAf,EAAAvhB,QACQumC,IAAK,CAAF,C,KAAX,EAAAvmC,QACgB2nC,kBAAiB,E,KAAjC,EAAAl6C,Y,kHEzBL,WAEA,GADA,MACA,OACA,SAEA,SAEA,GADA,MACA,Q,GAEA,O,4FCPE,4BAAkE,YAAgB,kB,6BAAhB,oD,qBAW5D,6B,qBACA,6B,wBAGA,6B,8BACgB,qC,wBAChB,6B,8BACgB,qC,mDAVtB,+BACE,4BACE,8BACE,mCACA,oCACF,iBACA,6BACE,iCAEA,iCAEF,iBACF,iBAEA,6BACE,8BACE,iCAAsB,6EAAS4U,WAAA,UAE7B,4BAAM,aAAc,iBACtB,iBACA,iCAAsB,0FAGpB,4BAAM,aAAc,iBACtB,iBACF,iBACF,iBACF,iB,gCAxBiB,iFACA,6EAGH,iFAEA,6EASA,iDAGN,kGAEM,kDDpBhB,iBAmCE,WAAoBA,EAAgCqE,EAA8CjP,GAA9E,KAAA4K,aAAgC,KAAAqE,kBAA8C,KAAAjP,eA7BzF,KAAAsxC,MAAgBviD,KAAKkgB,gBAAgBmC,OAAO,uBAE5C,KAAAvH,QAAkB9a,KAAKkgB,gBAAgBmC,OAAO,yBAI9C,KAAAuL,WAAqB5tB,KAAKkgB,gBAAgBmC,OAAO,wBAEjD,KAAAupB,WAAqB5rC,KAAKkgB,gBAAgBmC,OAAO,uBAEjD,KAAA9gB,KAAmB,EAAAutB,WAAW0zB,Q,OAqBvC,YAAAhjD,SAAA,sBACEQ,KAAK6tB,UAAY,IAAI,EAAA5T,QAErB,IAAI8G,EAA+B,CACjCmiB,WAAY,EACZC,mBAAmB,EACnBvD,IAAKpuB,IAAM,iBAGbxR,KAAKojC,SAAW,IAAI,EAAAC,aAActiB,GAClC/gB,KAAKojC,SAASE,gBAAkB,SAAEC,EAAeC,GAC7CA,EAAKzgB,OAAQ,OAAQtR,KAAKC,UAAU,EAAKquC,IAAI/tB,iBAEjDhyB,KAAKojC,SAASK,mBAAqB,SAAEF,GACjC,EAAKtyB,aAAaK,SAEtBtR,KAAKojC,SAASM,eAAiB,SAAElX,EAAWzN,EAAe7M,EAAad,GACpE,EAAKuyB,QAAQ9hB,cAAcvf,MAAQ,GACnC,EAAK2O,aAAaY,YAEtB7R,KAAKojC,SAASQ,cAAgB,SAAEpX,EAAWzN,EAAkB7M,EAAgBd,GAC3E,EAAKyc,UAAUtT,KAAM,EAAKrV,MAC1B,EAAK2W,WAAWmD,QAElBhf,KAAKojC,SAASS,YAAc,SAAErX,EAAWzN,EAAkB7M,EAAgBd,GACzE,EAAKyL,MAAOpL,KAAKoqB,MAAO9c,MAI5B,YAAAvM,SAAA,SAAStN,GAEP,OAAOuM,KAAKC,UAAUxM,IAGxB,YAAAu/B,QAAA,WAC8B,MAAvBzkC,KAAKojC,SAASY,OAAiBhkC,KAAKojC,SAASY,MAAM9hC,OAAS,EAC/DlC,KAAKojC,SAASa,YAGdjkC,KAAK6c,MAAO,CAAE/B,QAAS9a,KAAKkgB,gBAAgBmC,OAAQ,mBAAqBxF,MAAO,MAI7E,YAAAA,MAAP,SAAcD,GACZ5c,KAAKyiD,aAAe,EAAAnjC,aAAaC,oBAAoB3C,I,iCA5E5C/P,GAAsB,mH,iCAAtBA,EAAsB,uD,GAAA,K,w4CClBnC,4BAEE,8BAEA,4BACE,yBAAI,YAAS,iBACf,iBAEA,0BAAK,YAAW,iBAEhB,gCA4BF,kB,MApCQ,mDAGA,4CAGD,8CAEE,4C,+JDGT,GAKa,EAAAA,0B,+DAAAA,EAAsB,E,KALlC,EAAAsM,U,MAAW,CACRC,SAAU,iBACVC,YAAa,kCACbC,UAAW,Q,6FAGJipC,MAAO,CAAF,C,KAAb,EAAA/oC,QAEQsB,QAAS,CAAF,C,KAAf,EAAAtB,QAEQtU,KAAM,CAAF,C,KAAZ,EAAAsU,QAEQoU,WAAY,CAAF,C,KAAlB,EAAApU,QAEQoyB,WAAY,CAAF,C,KAAlB,EAAApyB,QAEQjY,KAAM,CAAF,C,KAAZ,EAAAiY,QAEQumC,IAAK,CAAF,C,KAAX,EAAAvmC,QAGDmqB,QAAS,CAAF,C,KADN,EAAAjqB,U,MAAW,e,+GEjCd,WACA,O,GAEA,OACA,OACA,OAEA,M,4HCQU,6BAGE,6BACE,yBAAI,YAAc,iBACpB,iBAEA,6BACE,4BACE,4BACE,2BAA+B,YAAY,iBAC3C,+BACE,8BACF,iBACA,+BACE,aACF,iBACF,iBACA,8BACE,gCACE,2BAEA,4BACE,8BACF,iBACF,iBAEA,gCACE,gCACE,qHADF,iBAGA,4BACE,8BACF,iBACF,iBACF,iBACF,iBACF,iBACF,iB,+CAlCQ,4CAM+B,0CAK7B,wEAME,kDAAAjY,GAAA,eAA4B,uDAQgB,kDAAAA,GAAA,cAC5C,uD,mDASZ,6BACE,6CAA0C,sHAC1C,iBACF,kB,uHA7CN,4BACE,6BACE,6BACE,gC,uBAuCA,+BAIF,iBACF,iBACF,kB,6BA5CyB,2LAsCb,wE,qBAeR,6B,qBACA,6B,mDAQE,6BAGE,6BACE,yBAAI,YAAc,iBACpB,iBAEA,6BACE,4BACE,4BACE,2BAA+B,YAAY,iBAC3C,+BACE,8BACF,iBACA,+BACE,aACF,iBACA,gCACE,8BACF,iBACA,+BACE,aACF,iBACF,iBACA,8BAEE,gCACE,gCACE,6HADF,iBAGA,4BACE,8BACF,iBACF,iBACA,gCACE,2BAEA,4BACE,8BACF,iBACF,iBACF,iBACF,iBACF,iBACF,iB,+CAxCQ,4CAM+B,0CAK7B,wEAMA,2EAOyC,qDAA6B,2BAQtE,oDAA4B,2B,mDAStC,6BACE,6CAAyC,qHACzC,iBACF,kB,sHAjDF,6BACE,gC,uBA6CA,+BAIF,kB,6BAhDqB,uLA4Cb,uE,sBAKR,6BACE,2BACE,6BACF,iBACF,kBD3HR,iBAiCI,WAAoBihD,EAAkCxiC,EAA8C3L,GAAhF,KAAAmuC,cAAkC,KAAAxiC,kBAA8C,KAAA3L,cAtBpG,KAAAouC,gBAAkC,CAC9BlS,MAAO,EACPp+B,WAAY,EACZD,SAAU,GACVspB,QAAS,IAGb,KAAAknB,eAAiC,CAC7BnS,MAAO,EACPp+B,WAAY,EACZD,SAAU,GACVspB,QAAS,IAGb,KAAA+jB,eAAyB,EAEzB,KAAAF,kBAA4B,EAC5B,KAAAC,oBAA8B,E,OAO9B,YAAAhgD,SAAA,WACIQ,KAAK6iD,4BAA4B,IAGrC,YAAAA,4BAAA,SAA4BxwC,GAA5B,WACIrS,KAAK0iD,YAAYrpB,WAAWhnB,EAAYrS,KAAK2iD,gBAAgBvwC,SAAU,cAAckK,MAAK,SAAAk0B,GACtF,EAAKmS,gBAAkBnS,MAI/B,YAAAsS,2BAAA,SAA2BzwC,GAA3B,WACIrS,KAAK0iD,YAAYrpB,WAAWhnB,EAAYrS,KAAK4iD,eAAexwC,SAAU,YAAYkK,MAAK,SAAAk0B,GACnF,EAAKoS,eAAiBpS,MAI9B,YAAAuS,eAAA,SAAeC,GAAf,WAGIhjD,KAAK0iD,YAAYlpB,aAAawpB,EAAKvhD,IAAI6a,MAAK,WACxC,IAAM2N,EAAQ,EAAK04B,gBAAgBjnB,QAAQ74B,WAAU,SAAAslC,GAAK,OAAAA,EAAE1mC,KAAOuhD,EAAKvhD,OAEzD,IAAXwoB,GACA,EAAK04B,gBAAgBjnB,QAAQ34B,OAAOknB,EAAO,GAG5C,EAAKw1B,eACJ,EAAKqD,2BAA2B,EAAKF,eAAevwC,gBAKhE,YAAA4wC,uBAAA,SAAuBD,GAAvB,WACIhjD,KAAKy/C,eAAgB,EAErBz/C,KAAK0iD,YAAYhpB,cAAcspB,EAAKvhD,GAAI,cAAc6a,MAAK,WACvD,IAAM2N,EAAQ,EAAK24B,eAAelnB,QAAQ74B,WAAU,SAAAslC,GAAK,OAAAA,EAAE1mC,KAAOuhD,EAAKvhD,OAExD,IAAXwoB,GACA,EAAK24B,eAAelnB,QAAQ34B,OAAOknB,EAAO,GAG9C,EAAK24B,eAAelnB,QAAQ34B,OAAOknB,EAAO,GAC1C,EAAK04B,gBAAgBjnB,QAAQ14B,KAAKggD,OAI1C,YAAAE,uBAAA,WACIljD,KAAKy/C,eAAiBz/C,KAAKy/C,cAEvBz/C,KAAKy/C,eACLz/C,KAAK8iD,2BAA2B,IAIxC,YAAA1jC,WAAA,SAAW3I,GACP,OAAOzW,KAAKuU,YAAY8K,qBAAqB5I,I,iCApFxCvJ,GAAmB,mH,iCAAnBA,EAAmB,kGAHjB,CAAC,EAAAvF,YAAS,srDCbzB,4BACE,4BAEA,4BAEE,yBAEA,yBACE,4BACF,iBACA,oBAEA,8BAmDA,4BACE,2BACE,6BACF,iBACA,gCAAgE,wCAAS,EAAAu7C,4BAEvE,oCACA,oCACF,iBACF,iBACA,qBAEA,6BACE,8BACE,gCAmDA,gCAKF,iBACF,iBAGF,iBACF,kB,MA9HsB,uEAyDH,qDACA,oDAOmB,uFAmDA,2F,ofDvHtC,GAOa,EAAAh2C,uB,+DAAAA,EAAmB,E,KAP/B,EAAAiM,U,MAAU,CACPC,SAAU,cACVC,YAAa,+BACbC,UAAW,CAAC,+BACZlL,UAAW,CAAC,EAAAzG,e,6FAKHiO,cAAe,CAAF,C,KAArB,EAAA4D,W,oIElBL,W,GACA,MAGA,OACA,O,wECgCgC,gCAAsD,YAAc,kB,uBAAjC,4BAAmB,6C,yBAOtD,gCAC0B,YAAmB,kB,uBAAzC,4BAAsB,+C,mDAJ9B,gCAAqD,+GAEjD,wBACA,kCAEJ,iB,8DALqD,oCAA6B,0BAGlD,4E,yBAO5B,gCACuC,YAAwB,kB,uBAA3D,kCAAmC,6C,mDA1BnD,yBAEI,2BACI,+BACI,6BAA6C,YACjD,iBACJ,iBACA,4BACI,gCAAQ,+EAAgC,4GAEpC,wBACA,kCACJ,iBACJ,iBACA,4BACI,mCAMJ,iBACA,6BACI,iCAAQ,iFACJ,yBACA,mCAEJ,iBACJ,iBACA,6BACI,2BACI,4BAA0B,6G,wBAEtB,uBAAyC,gCAErC,8BACJ,iBACJ,iBACJ,iBACJ,iBACJ,iB,8CAvCI,4CAGqD,uDAIzC,sDAAgC,6BAGX,+CAIpB,qEAQD,wDAAkC,iCAEH,yDAO/B,oFD7CpC,iBAiBE,WAAoBmC,EAA+CwnC,GAA/C,KAAAxnC,UAA+C,KAAAwnC,WAXnE,KAAAroC,QAAkB,KAIR,KAAAgxB,QAAU,IAAI,EAAAvsC,aAExB,KAAA6jD,aAA6B,KAC7B,KAAA/iB,SAA0C,GAC1C,KAAAgjB,gBAA0D,GAC1D,KAAA5jB,MAA0B,G,OAI1B,YAAAjgC,SAAA,sBAEEQ,KAAKsjD,QAELtjD,KAAKojD,aAAepjD,KAAKujD,YAAYphC,WAAU,SAACgtB,GAChC,iBAAVA,GAAsC,WAAVA,GAC9B,EAAKmU,WAITtjD,KAAK2b,QAAQwd,+BAA+B7c,MAAK,SAAA+mC,GAC/C,EAAKA,gBAAkBA,MAI3B,YAAAnoC,YAAA,WAE2B,MAArBlb,KAAKojD,cACPpjD,KAAKojD,aAAajkC,eAItB,YAAAmkC,MAAA,sBASE,GAPiC,MAA7BtjD,KAAKw2B,OAAOxE,gBACdhyB,KAAKw2B,OAAOxE,cAAgB,CAC1BwxB,OAAQ,GACRzrC,UAAW,OAIyB,MAApC/X,KAAKw2B,OAAOxE,cAAcwxB,OAC5B,IAAK,IAAI5+C,EAAI,EAAGA,EAAI5E,KAAKw2B,OAAOxE,cAAcwxB,OAAOthD,SAAU0C,EAAG,CAChE,IAAI6+C,EAAQzjD,KAAKw2B,OAAOxE,cAAcwxB,OAAO5+C,GAG7C5E,KAAK0jD,mBAAmBD,QAI1BzjD,KAAKw2B,OAAOxE,cAAcwxB,OAAS,GAIrCxjD,KAAKmjD,SAAS7qB,sBAAsBhc,MAAK,SAAAyC,GAEvC,EAAK0gB,MAAQ,GAEb1gB,EAAS4lB,KAAKnkC,SAAQ,SAAA6d,GACpBA,EAAIohB,MAAMj/B,SAAQ,SAAAstC,GACZA,EAAK4B,MACP,EAAKjQ,MAAMz8B,KAAK8qC,aAO1B,YAAA4V,mBAAA,SAAmBD,GAAnB,WAE4B,MAAtBA,EAAM5rB,aAER73B,KAAKmjD,SAASxsB,qBAAqB8sB,EAAM5rB,aAAc,aAAavb,MAAK,SAAA+a,GACvE,EAAKgJ,SAASojB,EAAM5rB,cAAgBR,KAItCr3B,KAAKqgC,SAASojB,EAAM5rB,cAAgB,MAIxC,YAAA8rB,SAAA,WACE,IAAIF,EAAQ,CACV5rB,aAAc,KACd+rB,UAAW,KACXH,MAAOzjD,KAAKw2B,OAAOxE,cAAcwxB,OAAOthD,QAG1ClC,KAAKw2B,OAAOxE,cAAcwxB,OAAOxgD,KAAKygD,IAGxC,YAAAI,YAAA,SAAYj/C,GAIV,GAHA5E,KAAKw2B,OAAOxE,cAAcwxB,OAAOzgD,OAAO6B,EAAG,GAGV,MAA7B5E,KAAKw2B,OAAOxE,eAA6D,MAApChyB,KAAKw2B,OAAOxE,cAAcwxB,OACjE,IAAS5+C,EAAI,EAAGA,EAAI5E,KAAKw2B,OAAOxE,cAAcwxB,OAAOthD,SAAU0C,EAC7D5E,KAAKw2B,OAAOxE,cAAcwxB,OAAO5+C,GAAG6+C,MAAQ7+C,GAKlD,YAAAiY,MAAA,SAAMD,GACJ5c,KAAK8rC,QAAQvR,KAAK3d,I,iCA3GTpT,GAAwC,6F,iCAAxCA,EAAwC,+kCClBrD,4BACI,4BACI,4BACI,4BACJ,iBACJ,iBACA,4BACI,4BACI,8BACI,4BACI,yBACI,2BACI,6BACJ,iBACA,4BACI,6BACJ,iBACA,4BACI,8BACJ,iBACA,4BACI,8BACJ,iBACJ,iBACJ,iBACA,6BACI,iCAyCA,0BACI,6BAA0B,4BAClB,wCAAS,EAAAm6C,c,wBAAY,iBAAI,iBACrC,iBACJ,iBACJ,iBAEJ,iBACJ,iBACJ,kB,MAlD0C,sEA0C8B,qF,6NDvDxE,GAKa,EAAAn6C,4C,+DAAAA,EAAwC,E,KALpD,EAAA2P,U,MAAU,CACTC,SAAU,qCACVC,YAAa,sDACbC,UAAW,Q,qFAKFkd,OAAQ,CAAF,C,KAAd,EAAAhd,QACQ+pC,YAAa,CAAF,C,KAAnB,EAAA/pC,QACSsyB,QAAO,E,KAAhB,EAAA7kC,Y,+HEvBH,W,GACA,MAGA,OACA,O,wECIgB,+BAA4E,YAAmB,kB,uBAA5C,6BAAyB,6C,mDARpF,4BACE,4BACE,4BAAO,4BAA4D,iBACrE,iBACA,4BACE,6BACE,+BAAoB,8HAAgD,wFAClE,wBACA,iCACF,iBACF,iBACF,iBACF,iB,gCAN0B,4EAAgD,+BAEpC,2D,yBAmC1B,4BACE,+BAA2C,6BAA6C,YAAyB,iBACnH,kB,uCAD0F,0D,yBAKtF,+BAAuD,YAA6B,kB,uBAAjD,6BAAoB,4D,mDAH3D,4BACE,gCAAoB,yHAA0C,oKAC5D,wBACA,iCACF,iBACF,iB,+DAJsB,6DAA0C,mCAEnC,gD,mDAG7B,4BACE,gCAAoB,yIAAsC,mGACxD,wBACA,gCAA0B,4BAAwD,iBAClF,gCAA8B,6BAAgE,iBAC9F,gCAAoB,6BAAsD,iBAC5E,iBACF,iB,0CAN6D,oDAAiC,2B,yBAU1F,+BAA+D,YAAc,kB,uBAAjC,2BAAmB,4C,mDAHnE,4BACE,gCAAoB,0HAClB,wBACA,iCACF,iBACF,iB,+DAJsB,8DAA2C,2BAEnC,wD,mDAW1B,2BAAyI,2I,uBACvI,sBACA,+BAAgD,6BAA2D,iBAC7G,iB,KAHiL,kF,mDARrL,4BACE,0BACE,2BAA0B,2J,uBACxB,sBACA,+BAAgD,6BAA6C,iBAC/F,iBACF,iBACA,0BACE,6BAIF,iBACF,iB,0CAX0E,iFAMlE,+G,sBA4BQ,4BAAoE,6BAAsD,kB,qBAIxH,6B,yBADF,4BACE,oCACF,kB,uCADa,uD,yBAaX,gCACE,+BAA2B,YAAsB,iBACnD,kB,uBAF8D,uCACjC,qD,yBAK/B,+BAAgD,YAAkC,kB,uCAAlC,8D,mDAGhD,gCAAuE,qHAAoC,8HACzG,gCAA0B,6BAAyD,iBACnF,gCAAyB,6BAA4D,iBACvF,iB,sEAHuE,yCAAoC,+CACjG,0CACA,2C,yBAHZ,4BACE,kCAIF,kB,uCAJ6B,kE,sBAK7B,4BACE,+BAA2B,6BAAwC,iBACrE,kB,yBAII,gCACE,YACF,kB,uBAFQ,kCACN,qD,2FAHJ,gCAA8E,8GAA6B,6HACzG,gCAAyB,6BAA0C,iBACnE,kCAGF,iB,2CAL8E,kCAA6B,yCACjG,4CACoD,0D,sBAI9D,+BAAkG,6BAAwC,kB,yBAP5I,4BACE,kCAMA,iCACF,kB,uCAPW,kFAMD,oF,qBAmBJ,6B,qBACA,6B,yBAaA,+BACE,YACF,kB,uBAFgF,6BAC9E,qD,mDAHJ,gCAAwC,sJACtC,gCAAyB,6BAA0C,iBACnE,iCAGF,iB,8FALwC,wCAAsC,yCACpE,4CACmB,8E,yBAM3B,+BAA+D,YAAc,kB,uBAAjC,2BAAmB,4C,mDAFjE,gCAAmD,sJACjD,gCAAyB,6BAA0C,iBACnE,iCACF,iB,8FAHmD,wCAAsC,yCAC/E,4CACkB,wD,yBAjCpC,+BACE,4BACE,yBACE,uBAEA,4BACE,4BAAO,6BAAkD,iBAC3D,iBACA,uBAGA,4BACE,4BACE,qCACA,qCACF,iBACF,iBACF,iBACF,iBACA,6BACE,0BACE,qBACA,0BAAI,gCAA2B,aAAc,iBAAQ,iBACrD,6BAA4C,gCAA2B,8BAAwC,iBAAQ,iBACvH,0BACE,mCAMA,mCAIF,iBACF,iBACF,iBACF,kB,sDAzBqB,uDACA,qDAQgB,4CAGpB,sDAMA,sD,yBAhCnB,0BACE,kCAuCF,kB,uCAvC0B,qD,mDA5D5B,yBACE,4BACE,+BACE,4BACA,yBACE,uBACA,4BACE,4BAAO,6BAAqD,iBAC9D,iBACA,4BACE,6BAAO,8BAA0C,iBACnD,iBACA,6BACE,kCACF,iBACA,6BACE,kCAGF,iBACF,iBACF,iBACA,6BACE,0BACE,6BACE,4BAAG,iJAAoE,iBACzE,iBACA,6BACE,iCAA0B,8EAAiC,+HAAqD,GAArD,uBAAyD,KAAO,EAAH,+CAAgE,GAAI,MAC1L,4BACA,mCAGF,iBACF,iBACA,6BACE,kCACF,iBACA,+BAMA,+BAGA,+BASF,iBACF,iBACF,iBACA,gCAyCF,iBACF,iB,iFAxFoB,0EAGA,2CAYkB,qDAAiC,oEACjD,4CACiB,iEAMnB,2CAEL,yEAMA,8FAGkB,2CAYvB,2G,mDApEd,4BACE,yBAAI,6BAAsD,iBAC1D,+BAEE,+BACE,wBACA,wBACF,iBACA,4BACE,gCAsGF,yBACE,6BACE,4BAAsB,oI,wBAA0F,iBAClH,iBACF,iBACF,iBACF,iBACF,iB,0CA7GgC,0DAwGkC,6F,yBAvJlE,yBACE,8BAGA,8BAMA,8BAQA,8BAMA,8BAcA,+BAuHJ,kB,4CA7JyD,wEAC/B,6DAGC,6DAMA,6DAQA,uFAMA,6DAcN,8D,mDAlE7B,4BAEE,4BACE,4BAAO,4BAAwD,iBACjE,iBACA,4BACE,6BACE,+BACE,4BACE,yBACE,4BACE,8BACF,iBACA,6BACE,8BACF,iBACA,6BACE,8BACF,iBACA,6BACE,8BACF,iBACA,6BACE,8BACF,iBACF,iBACF,iBACA,6BACE,+BA8JF,0BACE,6BACE,4BAAqE,2F,wBAAqB,iBAC5F,iBACF,iBACF,iBACF,iBACF,iBACF,iBACF,iB,gCAvKqC,oDAgKD,oFDnM1C,IAAI68C,EAA2B,kDAgB/B,aAyBE,WAAoBnoC,GAAA,KAAAA,UAjBpB,KAAAb,QAAkB,KAGT,KAAAipC,KAAoB,KAGnB,KAAAjY,QAAU,IAAI,EAAAvsC,aAExB,KAAAsqB,cAA+B,GAE/B,KAAAtN,MAAyB,GAEzB,KAAAynC,UAAwB,GAExB,KAAAC,cAAuB,G,OAKvB,YAAAzkD,SAAA,sBAeI,GATiC,MAA7BQ,KAAKw2B,OAAOxE,gBACZhyB,KAAKw2B,OAAOxE,cAAgB,CACxBwxB,OAAQ,GACRhzC,cAAe,OAIvBxQ,KAAKgkD,UAAY,GAEuB,MAApChkD,KAAKw2B,OAAOxE,cAAcwxB,OAC1B,IAAK,IAAI5+C,EAAI,EAAGA,EAAI5E,KAAKw2B,OAAOxE,cAAcwxB,OAAOthD,SAAU0C,EAAG,CAC9D,IAEIs/C,EAAqB,CAAET,MAFfzjD,KAAKw2B,OAAOxE,cAAcwxB,OAAO5+C,GAEJu/C,SAAUv/C,EAAGw/C,mBAAmB,GAEzEpkD,KAAKgkD,UAAUhhD,KAAKkhD,QAGxBlkD,KAAKw2B,OAAOxE,cAAcwxB,OAAS,GAGQ,MAA3CxjD,KAAKw2B,OAAOxE,cAAcxhB,eAC1BxQ,KAAK2b,QAAQmd,eAAe94B,KAAKw2B,OAAO4N,OAAQpkC,KAAKw2B,OAAOxE,cAAcxhB,eAAe8L,MAAK,SAAA+nC,GAC1F,EAAK9nC,MAAQ8nC,EAAS9nC,MACtB,EAAK0nC,cAAgBI,EAASJ,iBAC/BtnC,OAAM,SAACC,GACN,EAAKC,MAAMD,MAInB5c,KAAKujD,YAAYphC,WAAU,WACvB,EAAKmiC,uBAIb,YAAAppC,YAAA,WACIlb,KAAKujD,YAAYpkC,eAGrB,YAAAolC,kBAAA,WACIvkD,KAAKskD,oBAGT,YAAAE,qBAAA,WACI,MAAO,CACH,CACIC,yBAA0BX,EAC1BY,gBAAgB,EAChBC,YAAa,eACb9rB,WAAY,KACZ+rB,QAAS,OACTC,cAAe,QAEnB,CACIJ,yBAA0BX,EAC1BY,gBAAgB,EAChBC,YAAa,eACb9rB,WAAY,KACZ+rB,QAAS,YACTC,cAAe,aAEnB,CACIJ,yBAA0BX,EAC1BY,gBAAgB,EAChBC,YAAa,OACbC,QAAS,OACT/rB,WAAY,KACZgsB,cAAe,QAEnB,CACIJ,yBAA0BX,EAC1BY,gBAAgB,EAChBC,YAAa,aACb9rB,WAAY,KACZ+rB,QAAS,cACTC,cAAe,iBAuB3B,YAAAP,iBAAA,sBACItkD,KAAKuc,MAAQ,GACbvc,KAAKgkD,UAAY,GACjBhkD,KAAKw2B,OAAOxE,cAAsB,OAAI,GAES,MAA3ChyB,KAAKw2B,OAAOxE,cAAcxhB,eAC1BxQ,KAAK2b,QAAQmd,eAAe94B,KAAKw2B,OAAO4N,OAAQpkC,KAAKw2B,OAAOxE,cAAcxhB,eAAe8L,MAAK,SAAA+nC,GAC1F,EAAK9nC,MAAQ8nC,EAAS9nC,MACtB,EAAK0nC,cAAgBI,EAASJ,iBAC/BtnC,OAAM,SAACC,GACN,EAAKC,MAAMD,MAInB,IAAIkoC,EAAM,CACNvjD,KAAM,KACNqU,cAAe,KACf6tC,MAAO,EACPsB,SAAU,GACVC,eAAgB,MAEpBhlD,KAAKw2B,OAAOxE,cAAsB,OAAI,CAAC8yB,GACvC9kD,KAAKgkD,UAAUhhD,KAAK,CAAEygD,MAAOqB,EAAKX,SAAU,EAAGC,mBAAmB,KAGtE,YAAAa,kBAAA,SAAkBf,GACd,GAA4B,kBAAxBA,EAAST,MAAMliD,KAA0B,CACzC2iD,EAASgB,QAAQH,SAAW,GAC5Bb,EAAST,MAAMsB,SAAW,GAE1B,IAAII,EAAcnlD,KAAKolD,kBACF,IAAjBD,GACAnlD,KAAKgkD,UAAUjhD,OAAOoiD,EAAa,QAGvC,GAAyC,IAArCjB,EAASgB,QAAQH,SAAS7iD,OAAc,CACxCgiD,EAASgB,QAAQH,SAAW/kD,KAAKwkD,uBACjCN,EAAST,MAAMsB,SAAWb,EAASgB,QAAQH,SAG3C,IADA,IAAIpgD,EAAMu/C,EAAST,MAAMsB,SAAS7iD,O,WACzB0C,GACL,IAAIygD,EAAUnB,EAAST,MAAMsB,SAASngD,GAEtCs/C,EAASgB,QAAQI,gBAAgB9kD,SAAQ,SAAC+kD,GAClCA,EAAKC,QAAQnuC,OAASguC,EAAQV,cAC9BU,EAAQE,KAAOA,OALlB3gD,EAAI,EAAGA,EAAID,IAAOC,E,EAAlBA,KAarB,YAAA6gD,cAAA,SAAcvB,EAAoBj6B,GAC9Bi6B,EAASgB,QAAQH,SAAShiD,OAAOknB,EAAO,IAG5C,YAAAy7B,cAAA,SAAcxB,GACVA,EAASgB,QAAQH,SAAS/hD,KAAK,CAC3ByhD,yBAA0BX,EAC1Ba,YAAa,KACbE,cAAe,KACfhsB,WAAY,KACZqc,MAAO,MAIf,YAAAyO,SAAA,WACI,IAAImB,EAAM,CACNvjD,KAAM,KACNqU,cAAe,KACf6tC,MAAOzjD,KAAKw2B,OAAOxE,cAAcwxB,OAAOthD,OACxC6iD,SAAU,GACVC,eAAgB,MAEhBrgD,EAAM3E,KAAKw2B,OAAOxE,cAAsB,OAAEhvB,KAAK8hD,GACnD9kD,KAAKgkD,UAAUhhD,KAAK,CAAEygD,MAAOqB,EAAKX,SAAUx/C,EAAM,EAAGy/C,mBAAmB,KAG5E,YAAAP,YAAA,SAAYM,EAAkBwB,GAC1B,GAAIxB,EAAWnkD,KAAKw2B,OAAOxE,cAAsB,OAAE9vB,OAAQ,CACvD,IAAIijD,EAAcnlD,KAAKolD,iBACnBD,IAAgBQ,EAAgB,GAChC3lD,KAAKgkD,UAAUjhD,OAAOoiD,EAAa,GAGvCnlD,KAAKgkD,UAAUjhD,OAAO4iD,EAAe,GAGrC,IADA,IAAIC,EAAc,EACThhD,EAAI,EAAGA,EAAI5E,KAAKgkD,UAAU9hD,SAAU0C,EAAG,CAC5C,IAAIs/C,EAAqBlkD,KAAKgkD,UAAUp/C,GAExCs/C,EAASC,SAAWyB,EAEf1B,EAASE,oBACVwB,GAA4B,GAIpC5lD,KAAKw2B,OAAOxE,cAAsB,OAAEjvB,OAAOohD,EAAU,KAI7D,YAAAiB,eAAA,WACI,IAAK,IAAIxgD,EAAI,EAAGA,EAAI5E,KAAKgkD,UAAU9hD,SAAU0C,EAAG,CAG5C,GAFe5E,KAAKgkD,UAAUp/C,GAEjBw/C,kBACT,OAAOx/C,EAIf,OAAQ,GAGZ,YAAAihD,oBAAA,SAAoB3B,GAChB,IAAIiB,EAAcnlD,KAAKolD,kBAEF,IAAjBD,IACAnlD,KAAKgkD,UAAUjhD,OAAOoiD,EAAa,GAE/BA,IAAgBjB,EAASC,SAAW,IAK5CnkD,KAAK8lD,sBAAsB5B,EAAST,MAAM7tC,cAAesuC,EAASC,UAAU,IAGhF,YAAA4B,eAAA,SAAeR,EAA2BX,GACtC,IAAK,IAAIhgD,EAAI,EAAGA,EAAI2gD,EAAKS,WAAW9jD,SAAU0C,EAAG,CAC7C,IAAIqhD,EAAYV,EAAKS,WAAWphD,GAEhC,GAAIqhD,EAAUrB,UAAYA,EACtB,OAAOqB,EAAUllC,UAK7B,YAAAmlC,kBAAA,SAAkBb,GACd,GAAuB,MAAnBA,EAAQT,SAAuC,KAApBS,EAAQT,QAOnC,OANqB,MAAjBS,EAAQnQ,QACRmQ,EAAQnQ,MAAQ,SAGpBmQ,EAAQR,cAAgB,MAK5BQ,EAAQnQ,MAAQ,GAGhB,IADA,IAAIvwC,EAAM0gD,EAAQE,KAAKS,WAAW9jD,OACzB0C,EAAI,EAAGA,EAAID,IAAOC,EACnBygD,EAAQE,KAAKS,WAAWphD,GAAGggD,UAAYS,EAAQT,UAC3CS,EAAQE,KAAKS,WAAWphD,GAAGggD,UAAYS,EAAQE,KAAKS,WAAWphD,GAAGyS,KAClEguC,EAAQxsB,WAAawsB,EAAQE,KAAKS,WAAWphD,GAAGggD,QAEhDS,EAAQxsB,WAAa,KAEzBwsB,EAAQR,cAAgBQ,EAAQE,KAAKS,WAAWphD,GAAGyS,OAK/D,YAAAyuC,sBAAA,SAAsB55B,EAA2By5B,EAAuBQ,GAAxE,WACI,QADoE,IAAAA,OAAA,GAC1C,KAAtBj6B,GAAiD,MAArBA,EAA2B,CACvD,IAAIg4B,EAAqBlkD,KAAKgkD,UAAU2B,GAWxC,OATAzB,EAASgB,QAAU,KACnBhB,EAAST,MAAMsB,SAAW,SAIL,KAFjBI,EAAcnlD,KAAKolD,mBAEGD,IAAgBQ,EAAgB,GACtD3lD,KAAKgkD,UAAUjhD,OAAOoiD,EAAa,IAM3C,IAIQA,EAJJD,EAAUllD,KAAKgkD,UAAU2B,GAAeT,QAC7B,MAAXA,GAAmBA,EAAQh5B,oBAAsBA,IAK5B,KAFjBi5B,EAAcnlD,KAAKolD,mBAEGD,IAAgBQ,EAAgB,IACtD3lD,KAAKgkD,UAAUjhD,OAAOoiD,EAAa,GAE/BA,EAAcQ,IACdA,GAAgC,IAIxC3lD,KAAKgkD,UAAUjhD,OAAO4iD,EAAgB,EAAG,EAAG,CAAEvB,mBAAmB,EAAMc,QAASA,KAEhFllD,KAAK2b,QAAQid,iBAAiB1M,EAAmBlsB,KAAKw2B,OAAO4N,QAAQ9nB,MAAK,SAAC8pC,GACvE,IAAIjB,EAAc,EAAKC,iBACnBlB,EAAqB,EAAKF,UAAU2B,GACpClC,EAAQS,EAAST,MAEC,MAAlBA,EAAMsB,WACNtB,EAAMsB,SAAW,KAGS,IAA1BtB,EAAMsB,SAAS7iD,QAAgBikD,KAC/B1C,EAAMsB,SAAW,EAAKP,wBAI1B,IADA,IAAI7/C,EAAM8+C,EAAMsB,SAAS7iD,O,WAChB0C,GACL,IAAIygD,EAAU5B,EAAMsB,SAASngD,GAE7BwhD,EAAM5lD,SAAQ,SAAC+kD,GACPA,EAAKC,QAAQnuC,OAASguC,EAAQV,cAC9BU,EAAQE,KAAOA,OALlB3gD,EAAI,EAAGA,EAAID,IAAOC,E,EAAlBA,GAUTs/C,EAASgB,QAAU,CAAEh5B,kBAAmBA,EAAmB64B,SAAUtB,EAAMsB,SAAUO,gBAAiBc,IAEjF,IAAjBjB,IAAuBA,IAAgBQ,EAAgB,GAAKS,EAAMlkD,OAAS,KAC3E,EAAK8hD,UAAUjhD,OAAOoiD,EAAa,GAE/BA,EAAcQ,IACdA,GAAgC,IAInCQ,GACD,EAAKnC,UAAUjhD,OAAO4iD,EAAgB,EAAG,EAAG,CAAEvB,mBAAmB,EAAMc,QAAShB,EAASgB,QAASzB,MAAOS,EAAST,MAAOU,SAAUD,EAASC,cAEjJxnC,OAAM,SAACC,GACN,EAAKC,MAAMD,OAKvB,YAAAypC,WAAA,SAAWd,EAA2BF,GAClC,GAAY,MAARE,EAOA,OANAF,EAAQV,YAAc,KACtBU,EAAQE,KAAO,KACfF,EAAQR,cAAgB,KACxBQ,EAAQxsB,WAAa,KACrBwsB,EAAQnQ,MAAQ,UAChBmQ,EAAQX,eAAiB,MAI7BW,EAAQV,YAAcY,EAAKC,QAAQnuC,KACnCguC,EAAQE,KAAOA,EACfF,EAAQR,cAAgB,KACxBQ,EAAQxsB,WAAa,KACrBwsB,EAAQnQ,MAAQ,GAChBmQ,EAAQX,gBAAiB,EACzBW,EAAQZ,yBAA2Bc,EAAKe,2BAA2B,IAGvE,YAAAC,mBAAA,SAAmBlB,GAGf,IAAK,IAAMzrC,KAFXyrC,EAAQxsB,WAAa,KAEHwsB,EAAQnQ,MAClBmQ,EAAQnQ,MAAM58B,eAAesB,KAC7ByrC,EAAQnQ,MAAMt7B,GAAO,OAKjC,YAAAiD,MAAA,SAAMD,GACF5c,KAAK8rC,QAAQvR,KAAK3d,I,iCA5YXlT,GAAmC,sD,iCAAnCA,EAAmC,mvHC9B1C,0BACE,8BAcA,+BAoMJ,kB,MAlNU,iDAcA,iF,6NDSd,GAMa,EAAAA,uC,+DAAAA,EAAmC,E,KAN/C,EAAAyP,U,MAAU,CAEPC,SAAU,+BACVC,YAAa,gDACbC,UAAW,Q,4DAMJkd,OAAQ,CAAF,C,KAAd,EAAAhd,QACQuqC,KAAM,CAAF,C,KAAZ,EAAAvqC,QAEQ+pC,YAAa,CAAF,C,KAAnB,EAAA/pC,QACSsyB,QAAO,E,KAAhB,EAAA7kC,Y,iIEtCH,WAOA,GALA,MACA,MAGA,MACA,QACA,SAIA,GADA,OACA,Q,oICSY,4BACE,4BACE,2BAA8F,YAAgC,iBAChI,iBACA,4BACE,gCAAsB,4GACpB,6BACF,iBACA,gCAAsB,4GACpB,6BACF,iBACA,gCAAsB,8GACpB,8BACF,iBACF,iBACF,iB,0BAbO,oFAA2F,qE,yEDT9G,aAsBI,WAAmB0U,EAA+CvH,EAAuCi3B,EAAwBrrB,GAA9G,KAAArE,UAA+C,KAAAvH,WAAuC,KAAAi3B,SAAwB,KAAArrB,eAfjI,KAAAlF,QAAkB,KAElB,KAAA01B,KAA0C,CACtCjM,UAAW,GACXkM,MAAO,EACPp+B,WAAY,EACZD,SAAU,I,OAWd,YAAA5S,SAAA,WACIQ,KAAK28C,aAAa,IAGtB,YAAAA,aAAA,SAAatqC,GAAb,WACIrS,KAAK2b,QAAQ1I,QAAQZ,EAAYrS,KAAKwwC,KAAKp+B,UAAUkK,MAAK,SAAAk0B,GACtD,EAAKA,KAAOA,KACb7zB,OAAM,SAACC,GACN,EAAKC,MAAMD,OAInB,YAAAG,OAAA,sBACI/c,KAAK2b,QAAQM,KAAK,MAAMK,MAAK,SAAAyC,GACzB,IAAIlD,EAAa,EAAKmE,aAAaoM,KAAK,EAAAhf,oCAAqC,CACzE8f,UAAU,EACVC,UAAU,EACVC,qBAAqB,IAEzBvR,EAAWwR,QAAQjP,KAAK,KAAMW,EAAS4lB,MACvC9oB,EAAWwR,QAAQm5B,UAAUrkC,WAAU,WACnC,EAAKw6B,aAAa,EAAKnM,KAAKn+B,mBAKxC,YAAAu9B,OAAA,SAAOpZ,GAAP,WACIx2B,KAAK2b,QAAQM,KAAKua,EAAO90B,KAAK4a,MAAK,SAAAyC,GAC/B,IAAIlD,EAAa,EAAKmE,aAAaoM,KAAK,EAAAhf,oCAAqC,CACzE8f,UAAU,EACVC,UAAU,EACVC,qBAAqB,IAEzBvR,EAAWwR,QAAQjP,KAAKW,EAASyX,OAAQzX,EAAS4lB,MAClD9oB,EAAWwR,QAAQm5B,UAAUrkC,WAAU,WACnC,EAAKw6B,aAAa,EAAKnM,KAAKn+B,mBAKxC,YAAAo0C,SAAA,SAASjwB,GAAT,WACIx2B,KAAK6b,WAAa7b,KAAKggB,aAAaoM,KAAK,EAAAuB,sBAAuB,CAC5DT,UAAU,EACVC,UAAU,EACVC,qBAAqB,IAEzBptB,KAAK6b,WAAWwR,QAAQvS,QAAU9a,KAAKoU,SAASiO,OAAO,+BAAiC,KAAOmU,EAAOjb,MAAM+P,eAAiB,IAC7HtrB,KAAK6b,WAAWwR,QAAQO,WAAa5tB,KAAKoU,SAASiO,OAAO,uBAC1DriB,KAAK6b,WAAWwR,QAAQ9rB,KAAO,EAAAutB,WAAWC,OAE1C/uB,KAAK6b,WAAWwR,QAAQQ,UAAU1L,WAAU,WACxC,EAAKxG,QAAQrb,OAAOk2B,EAAO90B,KAAK4a,MAAK,WACjC,EAAKqgC,aAAa,EAAKnM,KAAKn+B,eAC7BsK,OAAM,SAACC,GACN,EAAKC,MAAMD,UAKvB,YAAA+yB,OAAA,SAAOnZ,GACHx2B,KAAKqrC,OAAOQ,SAAS,CAAC,oCAAqCrV,EAAO90B,OAGtE,YAAAmb,MAAA,SAAMD,GACF5c,KAAK8a,QAAU,EAAAwE,aAAaC,oBAAoB3C,I,iCAnF3CzP,GAAqC,qK,iCAArCA,EAAqC,+7BCnBlD,4BACE,4BACA,6BAEA,4BAEE,4BACE,yBACE,4BACF,iBACF,iBAEA,4BACE,4BACE,8BACE,6BACE,0BACE,4BAAwB,6BAAwD,iBAClF,iBACF,iBACA,6BACE,+B,wBAgBF,iBACF,iBACA,8CAAqB,8CAAc,EAAAwvC,aAAA,MAAsB,iBAEzD,8BACE,8BACE,iCAAsB,wCAAS,EAAA5/B,YAC7B,8BACF,iBACF,iBACF,iBACF,iBACF,iBACF,iBACF,kB,MA9BmC,qJ,uMDPnC,GAKa,EAAA5P,yC,+DAAAA,EAAqC,E,KALjD,EAAAgM,U,MAAU,CACPC,SAAU,iCACVC,YAAa,kDACbC,UAAW,Q,sQEjBf,WAEA,GADA,MACA,OAIA,GADA,MACA,Q,GAGA,O,4HCRE,6BAAqE,YAAW,kB,6BAAX,+C,yBAUjE,4BACE,4BACE,4BAAQ,6BAAyD,iBAAC,sCAAkE,iBACpI,iBACF,iBACA,6BACE,+BAAO,wEAAP,iBACF,iBACF,kB,uBANyF,4CAI9E,+CAA+B,yBAA/B,CAA+B,wC,yBAWlC,gCAA6D,YAAa,kB,uBAAhC,6BAAmB,6C,yBAc7D,gCAAiE,YAAgB,kB,uBAArC,4BAAqB,6C,mDARzE,4BACE,4BACE,4BAAO,6BAAyD,iBAClE,iBACA,6BACE,8BACE,gCAAoB,yGAA2B,6FAC7C,wBACA,kCACF,iBACF,iBACF,iBACF,iB,gCAN0B,uDAA2B,+BAElB,uD,mDAMnC,0BACE,sDAA8B,iGAAmB,+EAAqE,iBACxH,iB,gCADgC,+CAAmB,cAAnB,CAAmB,8B,mDAqBjD,4DAAqE,kGAAmB,gFAAuD,iB,iCAA1E,gCAAmB,8B,mDACxF,4DAAqE,kGAAmB,gFAAuD,iB,iCAA1E,gCAAmB,8B,mDApB1F,0BACE,4BACE,4BACE,4BAAO,mCAAoB,iBAC7B,iBACA,6BACE,6BACE,+BACE,+BAAoE,2GAApE,iBACA,2BAAM,sBAAM,iBACd,iBACA,gCACE,gCAAoE,2GAApE,iBACA,4BAAM,sBAAM,iBACd,iBACF,iBACF,iBACF,iBAEA,+DACA,+DACF,iB,gCAb8E,yDAA6B,6BAA7B,CAA6B,YAI7B,yDAA6B,4BAA7B,CAA6B,YAOpE,2DACA,4DD5D7C,iBA+BE,WAAoBqC,EAA+CvH,EAAuCyH,GAAtF,KAAAF,UAA+C,KAAAvH,WAAuC,KAAAyH,aAxB1G,KAAAf,QAAkB,KAElB,KAAA0b,OAAgC,CAC5B7Y,aAAc,KACdymB,OAAQ,KACRrsB,UAAW,KACX2uC,UAAU,EACVnrC,MAAOvb,KAAKoU,SAAS2I,SACrBiV,cAAe,IAGnB,KAAAnI,cAA+B,GAE/B,KAAAk6B,KAAoB,KACpB,KAAA4C,QAAwD,K,OAYxD,YAAAnnD,SAAA,WACIQ,KAAKwmD,UAAY,IAAI,EAAAvsC,QACrBja,KAAKujD,YAAc,IAAI,EAAAtpC,SAG3B,YAAAiB,YAAA,WACIlb,KAAKwmD,UAAUrnC,cACfnf,KAAKujD,YAAYpkC,eAGrB,YAAAf,KAAA,SAAKoY,EAA+B3M,GAApC,WAGI,GAFA7pB,KAAK6pB,cAAgBA,EAEP,MAAV2M,EAAgB,CAChBx2B,KAAKw2B,OAASA,EAEd,IAAIowB,EAAS5mD,KAAK6pB,cAAchnB,WAAU,SAAAwb,GAAO,OAAAA,EAAIxP,OAAS,EAAK2nB,OAAO7Y,iBAE1D,IAAZipC,IACA5mD,KAAK+jD,KAAO/jD,KAAK6pB,cAAc+8B,IAGnC,IAAIC,EAAS7mD,KAAK+jD,KAAK5f,QAAQthC,WAAU,SAAAuhC,GAAU,OAAAA,EAAO1iC,MAAQ,EAAK80B,OAAO4N,WAE9D,IAAZyiB,IACA7mD,KAAK2mD,QAAU3mD,KAAK+jD,KAAK5f,QAAQ0iB,MAK7C,YAAAC,kBAAA,SAAkB3X,GACdnvC,KAAKujD,YAAYhpC,KAAK40B,IAG1B,YAAA4X,uBAAA,sBACQ98B,EAAQjqB,KAAK6pB,cAAchnB,WAAU,SAAAwb,GAAO,OAAAA,EAAIxP,OAAS,EAAK2nB,OAAO7Y,gBAGrE3d,KAAK+jD,MADM,IAAX95B,EACYjqB,KAAK6pB,cAAcI,GAEnB,KAGhBjqB,KAAK2mD,QAAU,KAEf3mD,KAAK8mD,kBAAkB,iBAG3B,YAAAE,uBAAA,sBACQ/8B,EAAQjqB,KAAK+jD,KAAK5f,QAAQthC,WAAU,SAAAuhC,GAAU,OAAAA,EAAO1iC,MAAQ,EAAK80B,OAAO4N,UAGzEpkC,KAAK2mD,SADM,IAAX18B,EACejqB,KAAK+jD,KAAK5f,QAAQla,GAElB,KAGnBjqB,KAAK8mD,kBAAkB,WAG3B,YAAAjoC,SAAA,sBA+BI7e,KAAK2b,QAAQvI,MAAMpT,KAAKw2B,QAAQla,MAAK,SAAA8lC,GACjC,EAAKoE,UAAUjsC,KAAK6nC,GACpB,EAAKvmC,WAAWmD,UACjBrC,OAAM,SAACC,GACN,EAAKC,MAAMD,OAInB,YAAAwf,OAAA,sBAC2B,MAAnBp8B,KAAKw2B,OAAO90B,IACZ1B,KAAK2b,QAAQqd,OAAOh5B,KAAKw2B,OAAO90B,KAAK4a,MAAK,WACtC,EAAKT,WAAWmD,UACjBrC,OAAM,SAACC,GACN,EAAKC,MAAMD,MAGf5c,KAAK6b,WAAWmD,QAIxB,YAAAnC,MAAA,SAAMD,GACF5c,KAAK8a,QAAU,EAAAwE,aAAaC,oBAAoB3C,I,iCA5IzCxP,GAAmC,mI,iCAAnCA,EAAmC,85C,2BChBhD,4BACE,8BAEA,4BACE,yBACE,4BACF,iBACF,iBACA,+BAAwC,sFAA0B,EAAAyR,cAEhE,+BACE,8BASA,4BACE,6BACE,6BAAO,6BAA+D,iBACxE,iBACA,8BACE,+BACE,iCAAoB,4EAAiC,4BAA+B,EAAAkoC,4BAClF,yBACA,mCACF,iBACF,iBACF,iBACF,iBAEA,gCAcA,gCAGA,iCAuBA,6BACE,wBACA,8BACE,8BACE,gCAAmF,wCAAS,EAAA3qB,Y,wBAA5F,iBACA,2B,wBACF,iBACF,iBACF,iBAEF,iBACF,iBACF,iB,+BArFQ,oDAU8C,mEAetB,6DAAiC,+BAE3B,uDAM1B,iDAcA,4FAGA,2FA2BqB,2EACA,2EAAqC,uB,ieDpEtE,GAKa,EAAAhvB,uC,+DAAAA,EAAmC,E,KAL/C,EAAA+L,U,MAAU,CACPC,SAAU,+BACVC,YAAa,gDACbC,UAAW,Q,uPEdf,W,GACA,MAGA,OACA,O,+DCIY,+BACI,YACJ,kB,uBAFuD,kCACnD,sDDGhB,iBAeE,WAAoBqC,GAAA,KAAAA,UATpB,KAAAb,QAAkB,KAIR,KAAAgxB,QAAU,IAAI,EAAAvsC,aACxB,KAAA6jD,aAA6B,KAE7B,KAAAC,gBAA0D,G,OAI1D,YAAA7jD,SAAA,sBACEQ,KAAKsjD,QAELtjD,KAAKojD,aAAepjD,KAAKujD,YAAYphC,WAAU,SAACgtB,GAChC,iBAAVA,GAAsC,WAAVA,GAC9B,EAAKmU,WAITtjD,KAAK2b,QAAQyd,+BAA+B9c,MAAK,SAAA+mC,GAC/C,EAAKA,gBAAkBA,MAI3B,YAAAnoC,YAAA,WAC2B,MAArBlb,KAAKojD,cACPpjD,KAAKojD,aAAajkC,eAItB,YAAAmkC,MAAA,WAEmC,MAA7BtjD,KAAKw2B,OAAOxE,gBACdhyB,KAAKw2B,OAAOxE,cAAgB,CAC1Bi1B,eAAgB,QAKtB,YAAApqC,MAAA,SAAMD,GACJ5c,KAAK8rC,QAAQvR,KAAK3d,I,iCA1CTnT,GAAwC,sD,iCAAxCA,EAAwC,wYClBrD,4BACI,4BACI,4BACI,4BACJ,iBACJ,iBACA,4BACI,+BAAQ,4FACJ,wBACA,iCAGJ,iBACJ,iBACJ,kB,MAPgB,6EAE+B,2D,+LDI/C,GAKa,EAAAA,4C,+DAAAA,EAAwC,E,KALpD,EAAA0P,U,MAAU,CACTC,SAAU,qCACVC,YAAa,sDACbC,UAAW,Q,4DAKFkd,OAAQ,CAAF,C,KAAd,EAAAhd,QACQ+pC,YAAa,CAAF,C,KAAnB,EAAA/pC,QACSsyB,QAAO,E,KAAhB,EAAA7kC,Y,0HEvBH,WAGA,GAFA,MAEA,QAOA,GAJA,MAGA,OACA,Q,4HCJI,4BAAqE,YAAW,kB,6BAAX,+C,mDA4BvD,gCAC2C,kG,uBAEzC,6BACF,iB,KAFgB,sE,qBAqCZ,6B,qBACA,6B,qBAEA,6B,yBAXJ,yBACE,2BACE,6BAA0E,YAC5E,iBACA,yBACE,YACF,iBACA,4BACE,oCACA,oCAEA,oCACF,iBACF,kB,iCAX8E,iDAG1E,6DAGW,yDACA,6DAEA,oD,yBAhCvB,4BACE,4BAEE,yBACE,6BACF,iBACA,+BACE,4BACE,yBACE,yBACE,6BACF,iBACA,yBACE,8BACF,iBACA,6BACE,8BACF,iBACF,iBACF,iBACA,6BACE,gCAcF,iBACF,iBAEF,iBACF,kB,8BAlB8B,uE,yBAyCtB,yBACE,2BACE,6BAA0E,YAC5E,iBACA,yBACE,YACF,iBACA,4BACE,YACF,iBACF,kB,iCAR8E,iDAG1E,yDAGA,wD,yBA7BZ,4BACE,4BAEE,yBACE,6BACF,iBACA,+BACE,4BACE,yBACE,yBACE,6BACF,iBACA,yBACE,8BACF,iBACA,6BACE,8BACF,iBACF,iBACF,iBACA,6BACE,+BAWF,iBACF,iBAEF,iBACF,kB,8BAf8B,uE,yBAyCV,8BAEE,YACF,kB,uCADE,kE,wBAIJ,mC,uCAEE,oC,yBAMF,2BAGE,gCACE,6BACF,iBACF,kB,4DALE,mF,yBAxBR,yBAEE,2BACE,6BACE,sBACA,2BACE,8BAA+B,YAAiB,iBAChD,8BAA+B,YAAmB,iBAClD,8BAA+B,aAAyB,iBACxD,iCAIF,iBAEA,2CAIF,iBACF,iBACA,6BACE,8BACE,8BAOF,iBACF,iBACF,kB,4CA1BuC,wDACA,0DACA,kEACxB,sGAON,sGAOC,0D,mDAad,6BACE,6CAAqB,uGAAoC,iBAC3D,kB,oMAvKZ,4BAEE,4BACE,4BACE,yBAAI,YAA+B,iBACrC,iBACF,iBAEA,4BACE,4BACE,4BACE,8BAAuC,kBAAG,iBAC1C,uBAIA,+BAAuC,aAAsB,iBAC/D,iBACA,8BACE,8BACE,4BACE,iCAAiD,wF,wBAE/C,8BACF,iBACA,mCAKF,iBACF,iBACF,iBACF,iBAEA,iCAyCA,iCAuCA,6BACE,8BACE,6BACE,8BACE,gCACE,6BACE,6BACE,4BACE,8BACF,iBACF,iBACF,iBACA,6BAEE,gC,wBAkCF,iBACF,iBACA,gCAGF,iBACF,iBACF,iBACF,iBACF,iBACF,iB,gCAzKU,kEASA,oGAGqC,yDAMnB,sFAGP,6GAUC,0FAyCA,6GAsDY,qJAmChB,+D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","file":"1.chunk.js","sourcesContent":["import { Injectable, Output, EventEmitter } from \"@angular/core\";\n\nimport MapboxDraw from \"@mapbox/mapbox-gl-draw\";\nimport { Map, LngLat, LngLatBounds } from \"mapbox-gl\";\n\nimport { Layer } from \"../component/geoobject-shared-attribute-editor/manage-versions-model\";\n\n// eslint-disable-next-line no-unused-vars\ndeclare let acp: any;\n\n/**\n * This is a generic service used for rendering layers from ValueOverTime objects\n */\n@Injectable()\nexport class GeometryService {\n\n map: Map;\n\n layers: Layer[] = [];\n\n geometryType: String;\n\n readOnly: boolean;\n\n // @Output() layersChange: EventEmitter = new EventEmitter();\n\n editingControl: any = null;\n\n simpleEditControl: any = null;\n\n editingLayer: Layer;\n\n @Output() geometryChange = new EventEmitter();\n\n // eslint-disable-next-line no-useless-constructor\n constructor() { }\n\n ngOnInit() {\n window.onbeforeunload = () => this.destroy();\n }\n\n initialize(map: Map, geometryType: String, readOnly: boolean) {\n this.map = map;\n this.geometryType = geometryType;\n // this.editingControl = null;\n\n this.addLayers();\n\n this.map.on(\"draw.create\", () => {\n this.saveEdits();\n });\n this.map.on(\"draw.delete\", () => {\n this.saveEdits();\n });\n this.map.on(\"draw.update\", () => {\n this.saveEdits();\n });\n }\n\n destroy(destroyMap: boolean = true): void {\n if (this.editingControl != null) {\n this.map.removeControl(this.editingControl);\n this.editingControl = null;\n }\n\n if (this.map != null && destroyMap) {\n this.map.remove();\n this.map = null;\n } else if (this.map != null) {\n this.removeLayers();\n }\n\n if (this.layers != null) {\n this.layers.forEach(layer => {\n layer.isEditing = false;\n layer.isRendering = false;\n });\n }\n\n this.editingLayer = null;\n this.layers = [];\n }\n\n startEditing(layer: Layer) {\n if (this.isEditing()) {\n this.stopEditing();\n }\n\n this.editingLayer = layer;\n this.editingLayer.isEditing = true;\n\n if (!this.readOnly) {\n this.enableEditing();\n }\n\n this.addEditingLayers();\n }\n\n stopEditing(rerender: boolean = true) {\n if (this.isEditing()) {\n this.saveEdits(rerender);\n\n this.editingLayer.isEditing = false;\n this.editingLayer = null;\n\n this.editingControl.deleteAll();\n this.map.removeControl(this.editingControl);\n\n this.editingControl = null;\n }\n }\n\n isEditing(): boolean {\n return this.editingLayer != null;\n }\n\n setPointCoordinates(lat: any, long: any) {\n if (this.editingLayer != null) {\n this.editingControl.set({\n type: \"FeatureCollection\",\n features: [{\n id: this.editingLayer.oid,\n type: \"Feature\",\n properties: {},\n geometry: { type: \"Point\", coordinates: [long, lat] }\n }]\n });\n\n this.editingControl.changeMode(\"simple_select\", { featureIds: this.editingLayer.oid });\n\n this.saveEdits();\n\n /*\n this.editingLayer.value = {\n type: 'FeatureCollection',\n features: [{\n id: this.editingLayer.oid,\n type: 'Feature',\n properties: {},\n geometry: { type: 'Point', coordinates: [ long, lat ] }\n }]\n };\n */\n\n /*\n this.editingLayer.value.coordinates = [ -97.4870830718814, 41.84836050415993 ];\n\n this.editingControl.set(this.editingLayer.value);\n\n this.removeLayers();\n this.addLayers();\n\n this.editingControl.changeMode( 'simple_select', { featureIds: this.editingLayer.oid } );\n */\n }\n }\n\n isValid(): boolean {\n if (!this.readOnly) {\n let isValid: boolean = false;\n\n if (this.editingControl != null) {\n let featureCollection: any = this.editingControl.getAll();\n\n if (featureCollection.features.length > 0) {\n isValid = true;\n }\n }\n\n return isValid;\n }\n\n return true;\n }\n\n saveEdits(rerender: boolean = true): void {\n if (this.editingLayer != null) {\n let geoJson = this.getDrawGeometry();\n\n this.editingLayer.editPropagator.value = geoJson;\n\n if (rerender) {\n this.removeLayers();\n this.addLayers();\n }\n }\n }\n\n public reload(): void {\n if (this.map != null) {\n this.removeLayers();\n this.addLayers();\n\n if (this.editingControl != null) {\n this.editingControl.deleteAll();\n }\n\n this.addEditingLayers();\n }\n }\n\n setEditing(isEditing: boolean, layer: Layer) {\n if (this.isEditing()) {\n this.stopEditing();\n }\n\n layer.isEditing = isEditing;\n\n if (isEditing) {\n this.startEditing(layer);\n }\n }\n\n setRendering(isRendering: boolean, layer: Layer) {\n layer.isRendering = isRendering;\n this.addLayer(layer);\n }\n\n addLayer(newLayer: Layer) {\n let existingIndex = this.layers.findIndex((findLayer: Layer) => { return findLayer.oid === newLayer.oid; });\n\n if (existingIndex !== -1) {\n this.layers.splice(existingIndex, 1);\n this.layers.push(newLayer);\n } else {\n this.layers.push(newLayer);\n }\n\n if (newLayer.isEditing) {\n this.startEditing(newLayer);\n }\n\n this.layers = this.layers.sort((a, b) => { return a.zindex - b.zindex; });\n\n this.removeLayers();\n this.addLayers();\n }\n\n getLayers(): Layer[] {\n return this.layers;\n }\n\n getRenderedLayers(): Layer[] {\n return this.layers.filter(layer => layer.isRendering);\n }\n\n setLayers(layers: Layer[]): void {\n this.removeLayers();\n\n this.layers = layers.sort((a, b) => { return a.zindex - b.zindex; });\n\n this.addLayers();\n }\n\n enableEditing(): void {\n if (this.editingControl == null) {\n if (this.geometryType === \"MULTIPOLYGON\" || this.geometryType === \"POLYGON\") {\n this.editingControl = new MapboxDraw({\n controls: {\n point: false,\n line_string: false,\n polygon: true,\n trash: true,\n combine_features: false,\n uncombine_features: false\n }\n });\n } else if (this.geometryType === \"POINT\" || this.geometryType === \"MULTIPOINT\") {\n this.editingControl = new MapboxDraw({\n userProperties: true,\n controls: {\n point: true,\n line_string: false,\n polygon: false,\n trash: true,\n combine_features: false,\n uncombine_features: false\n },\n styles: [\n {\n id: \"highlight-active-points\",\n type: \"circle\",\n filter: [\"all\",\n [\"==\", \"$type\", \"Point\"],\n [\"==\", \"meta\", \"feature\"],\n [\"==\", \"active\", \"true\"]],\n paint: {\n \"circle-radius\": 13,\n \"circle-color\": \"#33FFF9\",\n \"circle-stroke-width\": 4,\n \"circle-stroke-color\": \"white\"\n }\n },\n {\n id: \"points-are-blue\",\n type: \"circle\",\n filter: [\"all\",\n [\"==\", \"$type\", \"Point\"],\n [\"==\", \"meta\", \"feature\"],\n [\"==\", \"active\", \"false\"]],\n paint: {\n \"circle-radius\": 10,\n \"circle-color\": \"#800000\",\n \"circle-stroke-width\": 2,\n \"circle-stroke-color\": \"white\"\n }\n }\n ]\n });\n } else if (this.geometryType === \"LINE\" || this.geometryType === \"MULTILINE\") {\n this.editingControl = new MapboxDraw({\n controls: {\n point: false,\n line_string: true,\n polygon: false,\n trash: true,\n combine_features: false,\n uncombine_features: false\n }\n });\n }\n\n if (this.map.getSource(\"mapbox-gl-draw-cold\") == null) {\n this.map.addControl(this.editingControl);\n }\n }\n }\n\n addEditingLayers(): void {\n if (this.editingLayer != null && this.editingControl != null) {\n let val = this.editingLayer.editPropagator.value;\n\n if (val) {\n this.editingControl.add(this.editingLayer.editPropagator.value);\n }\n }\n }\n\n removeSource(prefix: string): void {\n if (!this.map) {\n return;\n }\n\n let sourceName: string = prefix + \"-geoobject\";\n\n if (this.geometryType === \"MULTIPOLYGON\" || this.geometryType === \"POLYGON\") {\n if (this.map.getLayer(sourceName + \"-polygon\") != null) {\n this.map.removeLayer(sourceName + \"-polygon\");\n }\n } else if (this.geometryType === \"POINT\" || this.geometryType === \"MULTIPOINT\") {\n if (this.map.getLayer(sourceName + \"-point\") != null) {\n this.map.removeLayer(sourceName + \"-point\");\n }\n } else if (this.geometryType === \"LINE\" || this.geometryType === \"MultiLine\") {\n if (this.map.getLayer(sourceName + \"-line\") != null) {\n this.map.removeLayer(sourceName + \"-line\");\n }\n }\n\n if (this.map.getSource(sourceName) != null) {\n this.map.removeSource(sourceName);\n }\n }\n\n removeLayers(): void {\n if (this.layers != null && this.layers.length > 0) {\n let len = this.layers.length;\n\n for (let i = 0; i < len; ++i) {\n let layer = this.layers[i];\n this.removeSource(layer.oid);\n }\n }\n }\n\n addLayers(): void {\n if (this.layers != null && this.layers.length > 0) {\n let len = this.layers.length;\n for (let i = 0; i < len; ++i) {\n let layer = this.layers[i];\n\n if (layer.isRendering) {\n this.renderGeometryAsLayer(layer.editPropagator == null ? layer.geojson : layer.editPropagator.value, layer.oid, layer.color);\n }\n }\n }\n }\n\n renderGeometryAsLayer(geometry: any, sourceName: string, color: string) {\n let finalSourceName: string = sourceName + \"-geoobject\";\n\n if (!this.map) {\n return;\n }\n if (!geometry) {\n return;\n }\n\n this.map.addSource(finalSourceName, {\n type: \"geojson\",\n data: {\n type: \"FeatureCollection\",\n features: []\n }\n });\n\n if (this.geometryType === \"MULTIPOLYGON\" || this.geometryType === \"POLYGON\") {\n // Polygon Layer\n this.map.addLayer({\n id: finalSourceName + \"-polygon\",\n type: \"fill\",\n source: finalSourceName,\n paint: {\n \"fill-color\": color,\n \"fill-outline-color\": \"black\",\n \"fill-opacity\": 0.7\n }\n });\n } else if (this.geometryType === \"POINT\" || this.geometryType === \"MULTIPOINT\") {\n // Point layer\n this.map.addLayer({\n id: finalSourceName + \"-point\",\n type: \"circle\",\n source: finalSourceName,\n paint: {\n \"circle-radius\": 3,\n \"circle-color\": color,\n \"circle-stroke-width\": 2,\n \"circle-stroke-color\": \"#FFFFFF\"\n }\n });\n } else if (this.geometryType === \"LINE\" || this.geometryType === \"MULTILINE\") {\n this.map.addLayer({\n id: finalSourceName + \"-line\",\n source: finalSourceName,\n type: \"line\",\n layout: {\n \"line-join\": \"round\",\n \"line-cap\": \"round\"\n },\n paint: {\n \"line-color\": color,\n \"line-width\": 2\n }\n });\n }\n\n ( this.map.getSource(finalSourceName)).setData(geometry);\n }\n\n getDrawGeometry(): any {\n if (this.editingControl != null) {\n let featureCollection: any = this.editingControl.getAll();\n\n if (featureCollection.features.length > 0) {\n // The first Feature is our GeoObject.\n\n // Any additional features were created using the draw editor. Combine them into the GeoObject if its a multi-polygon.\n if (this.geometryType === \"MULTIPOLYGON\") {\n let polygons = [];\n\n for (let i = 0; i < featureCollection.features.length; i++) {\n let feature = featureCollection.features[i];\n\n if (feature.geometry.type === \"MultiPolygon\") {\n for (let j = 0; j < feature.geometry.coordinates.length; j++) {\n polygons.push(feature.geometry.coordinates[j]);\n }\n } else {\n polygons.push(feature.geometry.coordinates);\n }\n }\n\n return {\n coordinates: polygons,\n type: \"MultiPolygon\"\n };\n } else if (this.geometryType === \"MULTIPOINT\") {\n let points = [];\n\n for (let i = 0; i < featureCollection.features.length; i++) {\n let feature = featureCollection.features[i];\n\n if (feature.geometry.type === \"MultiPoint\") {\n for (let j = 0; j < feature.geometry.coordinates.length; j++) {\n points.push(feature.geometry.coordinates[j]);\n }\n } else {\n points.push(feature.geometry.coordinates);\n }\n }\n\n return {\n coordinates: points,\n type: \"MultiPoint\"\n };\n } else if (this.geometryType === \"MULTILINE\") {\n let lines = [];\n\n for (let i = 0; i < featureCollection.features.length; i++) {\n let feature = featureCollection.features[i];\n\n if (feature.geometry.type === \"MultiLineString\") {\n for (let j = 0; j < feature.geometry.coordinates.length; j++) {\n lines.push(feature.geometry.coordinates[j]);\n }\n } else {\n lines.push(feature.geometry.coordinates);\n }\n }\n\n return {\n coordinates: lines,\n type: \"MultiLineString\"\n };\n } else {\n return featureCollection.features[0].geometry;\n }\n }\n }\n\n return null;\n }\n\n public static createEmptyGeometryValue(geometryType: String): any {\n let value = { type: geometryType, coordinates: [] };\n\n if (geometryType === \"MULTIPOLYGON\") {\n value.type = \"MultiPolygon\";\n } else if (geometryType === \"POLYGON\") {\n value.type = \"Polygon\";\n } else if (geometryType === \"POINT\") {\n value.type = \"Point\";\n } else if (geometryType === \"MULTIPOINT\") {\n value.type = \"MultiPoint\";\n } else if (geometryType === \"LINE\") {\n value.type = \"Line\";\n } else if (geometryType === \"MULTILINE\") {\n value.type = \"MultiLine\";\n }\n\n return value;\n }\n\n zoomToLayersExtent(): void {\n this.layers.forEach(layer => {\n if (layer.geojson != null) {\n if (this.geometryType === \"MULTIPOINT\" || this.geometryType === \"POINT\") {\n let coords = layer.geojson.coordinates;\n\n if (coords) {\n let bounds = new LngLatBounds();\n coords.forEach(coord => {\n bounds.extend(coord);\n });\n\n let center = bounds.getCenter();\n let pt = new LngLat(center.lng, center.lat);\n\n this.map.flyTo({\n center: pt,\n zoom: 9,\n essential: true\n });\n }\n } else if (this.geometryType === \"MULTIPOLYGON\" || this.geometryType === \"POLYGON\") {\n let coords = layer.geojson.coordinates;\n\n if (coords) {\n let bounds = new LngLatBounds();\n coords.forEach(polys => {\n polys.forEach(subpoly => {\n subpoly.forEach(coord => {\n bounds.extend(coord);\n });\n });\n });\n\n this.map.fitBounds(bounds, {\n padding: 20\n });\n }\n } else if (this.geometryType === \"LINE\" || this.geometryType === \"MULTILINE\") {\n let coords = layer.geojson.coordinates;\n\n if (coords) {\n let bounds = new LngLatBounds();\n coords.forEach(lines => {\n lines.forEach(subline => {\n subline.forEach(coord => {\n bounds.extend(coord);\n });\n });\n });\n\n this.map.fitBounds(bounds, {\n padding: 20\n });\n }\n }\n }\n });\n }\n\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule, DatePipe } from \"@angular/common\";\nimport { RouterModule } from \"@angular/router\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { TreeModule } from \"@circlon/angular-tree-component\";\nimport { ContextMenuModule } from \"ngx-contextmenu\";\nimport { BsDropdownModule } from \"ngx-bootstrap/dropdown\";\nimport { ButtonsModule } from \"ngx-bootstrap/buttons\";\nimport { TypeaheadModule } from \"ngx-bootstrap/typeahead\";\nimport { FileUploadModule } from \"ng2-file-upload\";\nimport { NgxPaginationModule } from \"ngx-pagination\";\nimport { ProgressbarModule } from \"ngx-bootstrap/progressbar\";\nimport { CollapseModule } from \"ngx-bootstrap/collapse\";\nimport { TabsModule } from \"ngx-bootstrap/tabs\";\nimport { ImportTypesModalComponent } from './component/hierarchy/modals/import-types-modal.component';\nimport { ExportSystemModalComponent } from './component/master-list/export-system-modal.component';\nimport { LocalizedInputComponent } from \"./component/form-fields/localized-input/localized-input.component\";\nimport { LocalizedTextComponent } from \"./component/form-fields/localized-text/localized-text.component\";\nimport { HierarchyComponent } from \"./component/hierarchy/hierarchy.component\";\nimport { CreateHierarchyTypeModalComponent } from \"./component/hierarchy/modals/create-hierarchy-type-modal.component\";\nimport { AddChildToHierarchyModalComponent } from \"./component/hierarchy/modals/add-child-to-hierarchy-modal.component\";\nimport { CreateGeoObjTypeModalComponent } from \"./component/hierarchy/modals/create-geoobjtype-modal.component\";\nimport { ManageAttributesModalComponent } from \"./component/hierarchy/geoobjecttype-management/manage-attributes-modal.component\";\nimport { DefineAttributeModalContentComponent } from \"./component/hierarchy/geoobjecttype-management/define-attribute-modal-content.component\";\nimport { EditAttributeModalContentComponent } from \"./component/hierarchy/geoobjecttype-management/edit-attribute-modal-content.component\";\nimport { ShapefileModalComponent } from \"./component/importer/modals/shapefile-modal.component\";\nimport { AttributesPageComponent } from \"./component/importer/modals/attributes-page.component\";\nimport { LocationPageComponent } from \"./component/importer/modals/location-page.component\";\nimport { LocationProblemPageComponent } from \"./component/importer/modals/location-problem-page.component\";\nimport { LocationProblemComponent } from \"./component/importer/modals/location-problem.component\";\nimport { TermProblemPageComponent } from \"./component/importer/modals/term-problem-page.component\";\nimport { TermProblemComponent } from \"./component/importer/modals/term-problem.component\";\nimport { SpreadsheetModalComponent } from \"./component/importer/modals/spreadsheet-modal.component\";\nimport { DataPageComponent } from \"./component/data-page/data-page.component\";\nimport { TermOptionWidgetComponent } from \"./component/hierarchy/geoobjecttype-management/term-option-widget.component\";\nimport { AttributeInputComponent } from \"./component/hierarchy/geoobjecttype-management/attribute-input.component\";\nimport { EditTermOptionInputComponent } from \"./component/hierarchy/geoobjecttype-management/edit-term-option-input.component\";\nimport { ManageTermOptionsComponent } from \"./component/hierarchy/geoobjecttype-management/manage-term-options.component\";\nimport { GeoObjectTypeInputComponent } from \"./component/hierarchy/geoobjecttype-management/geoobjecttype-input.component\";\nimport { ManageGeoObjectTypeModalComponent } from \"./component/hierarchy/modals/manage-geoobjecttype-modal.component\";\nimport { MasterListManagerComponent } from \"./component/master-list/master-list-manager.component\";\nimport { PublishModalComponent } from \"./component/master-list/publish-modal.component\";\nimport { ExportFormatModalComponent } from \"./component/master-list/export-format-modal.component\";\nimport { RequestTableComponent } from \"./component/crtable/request-table.component\";\nimport { CreateUpdateGeoObjectDetailComponent } from \"./component/crtable/action-detail/create-update-geo-object/detail.component\";\nimport { GeoObjectSharedAttributeEditorComponent } from \"./component/geoobject-shared-attribute-editor/geoobject-shared-attribute-editor.component\";\nimport { StabilityPeriodComponent } from \"./component/geoobject-shared-attribute-editor/stability-period.component\";\nimport { ManageVersionsComponent } from \"./component/geoobject-shared-attribute-editor/manage-versions.component\";\nimport { StandardAttributeEditorComponent } from \"./component/geoobject-shared-attribute-editor/standard-attribute-editor.component\";\nimport { SubmitChangeRequestComponent } from \"./component/submit-change-request/submit-change-request.component\";\nimport { ChangeRequestPageComponent } from \"./component/change-request-page/change-request-page.component\";\nimport { GeoObjectEditorComponent } from \"./component/geoobject-editor/geoobject-editor.component\";\nimport { GeoObjectEditorMapComponent } from \"./component/geoobject-editor-map/geoobject-editor-map.component\";\nimport { SimpleEditControl } from \"./component/geoobject-editor-map/simple-edit-control/simple-edit-control.component\";\nimport { CascadingGeoSelector } from \"./component/cascading-geo-selector/cascading-geo-selector\";\nimport { TreeGeoSelector } from \"./component/tree-geo-selector/tree-geo-selector\";\nimport { ActionDetailModalComponent } from \"./component/crtable/action-detail/action-detail-modal.component\";\nimport { DataImporterComponent } from \"./component/importer/dataimporter.component\";\nimport { DataExportComponent } from \"./component/data-export/data-export.component\";\nimport { MasterListComponent } from \"./component/master-list/master-list.component\";\nimport { PublishedMasterListHistoryComponent } from \"./component/master-list/published-master-list-history.component\";\nimport { MasterListHistoryComponent } from \"./component/master-list/master-list-history.component\";\nimport { MasterListViewComponent } from \"./component/master-list/master-list-view.component\";\nimport { ScheduledJobsComponent } from \"./component/scheduled-jobs/scheduled-jobs.component\";\nimport { JobComponent } from \"./component/scheduled-jobs/job.component\";\nimport { JobConflictModalComponent } from \"./component/scheduled-jobs/conflict-widgets/job-conflict-modal.component\";\nimport { ReuploadModalComponent } from \"./component/scheduled-jobs/conflict-widgets/reupload-modal.component\";\nimport { ParentReferenceProblemWidgetComponent } from \"./component/scheduled-jobs/conflict-widgets/parent-reference-problem-widget.component\";\nimport { TermReferenceProblemWidgetComponent } from \"./component/scheduled-jobs/conflict-widgets/term-reference-problem-widget.component\";\nimport { RowValidationProblemWidgetComponent } from \"./component/scheduled-jobs/conflict-widgets/row-validation-problem-widget.component\";\nimport { StepIndicatorComponent } from \"./component/scheduled-jobs/step-indicator.component\";\nimport { ImportProblemWidgetComponent } from \"./component/scheduled-jobs/conflict-widgets/import-problem-widget.component\";\nimport { TaskViewerComponent } from \"./component/task-viewer/task-viewer.component\";\nimport { FhirExportSynchronizationConfigComponent } from './component/synchronization-config/fhir-export-synchronization-config.component';\nimport { Dhis2SynchronizationConfigComponent } from './component/synchronization-config/dhis2-synchronization-config.component';\nimport { SynchronizationConfigManagerComponent } from \"./component/synchronization-config/synchronization-config-manager.component\";\nimport { SynchronizationConfigModalComponent } from \"./component/synchronization-config/synchronization-config-modal.component\";\nimport { SynchronizationConfigComponent } from \"./component/synchronization-config/synchronization-config.component\";\nimport { SyncDetailsComponent } from \"./component/synchronization-config/details.component\";\n\nimport { LocationManagerComponent } from \"./component/location-manager/location-manager.component\";\nimport { DatasetLocationManagerComponent } from \"./component/location-manager/dataset-location-manager.component\";\nimport { ContextLayerModalComponent } from \"./component/location-manager/context-layer-modal.component\";\nimport { LayerPanelComponent } from \"./component/location-manager/layer-panel.component\";\nimport { FeaturePanelComponent } from \"./component/location-manager/feature-panel.component\";\nimport { GeometryPanelComponent } from \"./component/location-manager/geometry-panel.component\";\n\nimport { GeoObjectAttributeCodeValidator } from \"./factory/form-validation.factory\";\n\nimport { GeoObjectTypePipe } from \"./pipe/geoobjecttype.pipe\";\nimport { GeoObjectAttributeExcludesPipe } from \"./pipe/geoobject-attribute-excludes.pipe\";\nimport { ToEpochDateTimePipe } from \"./pipe/to-epoch-date-time.pipe\";\nimport { RegistryService } from \"./service/registry.service\";\nimport { TaskService } from \"./service/task.service\";\nimport { HierarchyService } from \"./service/hierarchy.service\";\nimport { SynchronizationConfigService } from \"./service/synchronization-config.service\";\nimport { LocalizationManagerService } from \"./service/localization-manager.service\";\nimport { ChangeRequestService } from \"./service/change-request.service\";\nimport { IOService } from \"./service/io.service\";\nimport { MapService } from \"./service/map.service\";\nimport { GeoObjectTypeManagementService } from \"./service/geoobjecttype-management.service\";\n\nimport { RegistryRoutingModule } from \"./registry-routing.module\";\nimport { SharedModule } from \"../shared/shared.module\";\n\nimport { AccordionModule } from \"ngx-bootstrap/accordion\";\n\nimport \"../rxjs-extensions\";\nimport { FhirImportSynchronizationConfigComponent } from \"./component/synchronization-config/fhir-import-synchronization-config.component\";\nimport { TransitionEventService } from \"./service/transition-event.service\";\nimport { TransitionEventTableComponent } from \"./component/transition-event/transition-event-table.component\";\nimport { TransitionEventModalComponent } from \"./component/transition-event/transition-event-modal.component\";\nimport { HistoricalReportComponent } from \"./component/historical-report/historical-report.component\";\nimport { HistoricalEventModuleComponent } from \"./component/historical-event-module/historical-event-module.component\";\n\nimport { DndModule } from \"ngx-drag-drop\";\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n FormsModule,\n ReactiveFormsModule,\n FileUploadModule,\n TreeModule,\n ContextMenuModule,\n BsDropdownModule,\n ButtonsModule,\n TypeaheadModule,\n ProgressbarModule,\n TabsModule,\n CollapseModule,\n NgxPaginationModule,\n SharedModule,\n RegistryRoutingModule,\n DndModule,\n AccordionModule.forRoot()\n ],\n declarations: [\n HierarchyComponent,\n RequestTableComponent,\n CreateUpdateGeoObjectDetailComponent,\n ImportTypesModalComponent,\n ExportSystemModalComponent,\n FhirExportSynchronizationConfigComponent,\n FhirImportSynchronizationConfigComponent,\n Dhis2SynchronizationConfigComponent,\n CreateHierarchyTypeModalComponent,\n AddChildToHierarchyModalComponent,\n CreateGeoObjTypeModalComponent,\n ManageAttributesModalComponent,\n DefineAttributeModalContentComponent,\n ShapefileModalComponent,\n AttributesPageComponent,\n LocationPageComponent,\n LocationProblemPageComponent,\n LocationProblemComponent,\n TermProblemPageComponent,\n TermProblemComponent,\n SpreadsheetModalComponent,\n GeoObjectTypePipe,\n GeoObjectAttributeCodeValidator,\n EditAttributeModalContentComponent,\n TermOptionWidgetComponent,\n AttributeInputComponent,\n EditTermOptionInputComponent,\n ManageGeoObjectTypeModalComponent,\n GeoObjectTypeInputComponent,\n ManageTermOptionsComponent,\n LocalizedInputComponent,\n LocalizedTextComponent,\n GeoObjectSharedAttributeEditorComponent,\n StabilityPeriodComponent,\n ManageVersionsComponent,\n StandardAttributeEditorComponent,\n SubmitChangeRequestComponent,\n GeoObjectEditorComponent,\n GeoObjectAttributeExcludesPipe,\n ToEpochDateTimePipe,\n GeoObjectEditorMapComponent,\n SimpleEditControl,\n DataPageComponent,\n ChangeRequestPageComponent,\n CascadingGeoSelector,\n TreeGeoSelector,\n ActionDetailModalComponent,\n HierarchyComponent,\n DataImporterComponent,\n DataExportComponent,\n // Master List screens\n MasterListManagerComponent,\n MasterListComponent,\n MasterListHistoryComponent,\n PublishedMasterListHistoryComponent,\n PublishModalComponent,\n MasterListViewComponent,\n // Scheduled jobs\n ExportFormatModalComponent,\n ScheduledJobsComponent,\n JobComponent,\n JobConflictModalComponent,\n ReuploadModalComponent,\n ParentReferenceProblemWidgetComponent,\n TermReferenceProblemWidgetComponent,\n RowValidationProblemWidgetComponent,\n StepIndicatorComponent,\n ImportProblemWidgetComponent,\n TaskViewerComponent,\n // Synchronization Config\n SynchronizationConfigManagerComponent,\n SynchronizationConfigModalComponent,\n SynchronizationConfigComponent,\n SyncDetailsComponent,\n // Location manager\n LocationManagerComponent,\n DatasetLocationManagerComponent,\n ContextLayerModalComponent,\n LayerPanelComponent,\n FeaturePanelComponent,\n GeometryPanelComponent,\n TransitionEventTableComponent,\n TransitionEventModalComponent,\n HistoricalReportComponent,\n HistoricalEventModuleComponent\n ],\n providers: [\n MapService,\n HierarchyService,\n LocalizationManagerService,\n ChangeRequestService,\n IOService,\n GeoObjectTypeManagementService,\n RegistryService,\n TaskService,\n DatePipe,\n ToEpochDateTimePipe,\n StepIndicatorComponent,\n SynchronizationConfigService,\n TransitionEventService\n ],\n entryComponents: [\n AddChildToHierarchyModalComponent,\n CreateGeoObjTypeModalComponent,\n ManageAttributesModalComponent,\n DefineAttributeModalContentComponent,\n EditAttributeModalContentComponent,\n CreateHierarchyTypeModalComponent,\n ShapefileModalComponent,\n SpreadsheetModalComponent,\n TermOptionWidgetComponent,\n AttributeInputComponent,\n EditTermOptionInputComponent,\n ManageGeoObjectTypeModalComponent,\n GeoObjectTypeInputComponent,\n ManageTermOptionsComponent,\n GeoObjectSharedAttributeEditorComponent,\n SubmitChangeRequestComponent,\n GeoObjectEditorComponent,\n PublishModalComponent,\n ExportFormatModalComponent,\n DataPageComponent,\n ChangeRequestPageComponent,\n ActionDetailModalComponent,\n JobConflictModalComponent,\n ReuploadModalComponent,\n StepIndicatorComponent,\n SynchronizationConfigModalComponent,\n ContextLayerModalComponent,\n ExportSystemModalComponent,\n TransitionEventModalComponent\n ]\n})\nexport class RegistryModule { }\n","var map = {\n\t\"./af\": 381,\n\t\"./af.js\": 381,\n\t\"./ar\": 382,\n\t\"./ar-dz\": 383,\n\t\"./ar-dz.js\": 383,\n\t\"./ar-kw\": 384,\n\t\"./ar-kw.js\": 384,\n\t\"./ar-ly\": 385,\n\t\"./ar-ly.js\": 385,\n\t\"./ar-ma\": 386,\n\t\"./ar-ma.js\": 386,\n\t\"./ar-sa\": 387,\n\t\"./ar-sa.js\": 387,\n\t\"./ar-tn\": 388,\n\t\"./ar-tn.js\": 388,\n\t\"./ar.js\": 382,\n\t\"./az\": 389,\n\t\"./az.js\": 389,\n\t\"./be\": 390,\n\t\"./be.js\": 390,\n\t\"./bg\": 391,\n\t\"./bg.js\": 391,\n\t\"./bm\": 392,\n\t\"./bm.js\": 392,\n\t\"./bn\": 393,\n\t\"./bn-bd\": 394,\n\t\"./bn-bd.js\": 394,\n\t\"./bn.js\": 393,\n\t\"./bo\": 395,\n\t\"./bo.js\": 395,\n\t\"./br\": 396,\n\t\"./br.js\": 396,\n\t\"./bs\": 397,\n\t\"./bs.js\": 397,\n\t\"./ca\": 398,\n\t\"./ca.js\": 398,\n\t\"./cs\": 399,\n\t\"./cs.js\": 399,\n\t\"./cv\": 400,\n\t\"./cv.js\": 400,\n\t\"./cy\": 401,\n\t\"./cy.js\": 401,\n\t\"./da\": 402,\n\t\"./da.js\": 402,\n\t\"./de\": 403,\n\t\"./de-at\": 404,\n\t\"./de-at.js\": 404,\n\t\"./de-ch\": 405,\n\t\"./de-ch.js\": 405,\n\t\"./de.js\": 403,\n\t\"./dv\": 406,\n\t\"./dv.js\": 406,\n\t\"./el\": 407,\n\t\"./el.js\": 407,\n\t\"./en-au\": 408,\n\t\"./en-au.js\": 408,\n\t\"./en-ca\": 409,\n\t\"./en-ca.js\": 409,\n\t\"./en-gb\": 410,\n\t\"./en-gb.js\": 410,\n\t\"./en-ie\": 411,\n\t\"./en-ie.js\": 411,\n\t\"./en-il\": 412,\n\t\"./en-il.js\": 412,\n\t\"./en-in\": 413,\n\t\"./en-in.js\": 413,\n\t\"./en-nz\": 414,\n\t\"./en-nz.js\": 414,\n\t\"./en-sg\": 415,\n\t\"./en-sg.js\": 415,\n\t\"./eo\": 416,\n\t\"./eo.js\": 416,\n\t\"./es\": 417,\n\t\"./es-do\": 418,\n\t\"./es-do.js\": 418,\n\t\"./es-mx\": 419,\n\t\"./es-mx.js\": 419,\n\t\"./es-us\": 420,\n\t\"./es-us.js\": 420,\n\t\"./es.js\": 417,\n\t\"./et\": 421,\n\t\"./et.js\": 421,\n\t\"./eu\": 422,\n\t\"./eu.js\": 422,\n\t\"./fa\": 423,\n\t\"./fa.js\": 423,\n\t\"./fi\": 424,\n\t\"./fi.js\": 424,\n\t\"./fil\": 425,\n\t\"./fil.js\": 425,\n\t\"./fo\": 426,\n\t\"./fo.js\": 426,\n\t\"./fr\": 427,\n\t\"./fr-ca\": 428,\n\t\"./fr-ca.js\": 428,\n\t\"./fr-ch\": 429,\n\t\"./fr-ch.js\": 429,\n\t\"./fr.js\": 427,\n\t\"./fy\": 430,\n\t\"./fy.js\": 430,\n\t\"./ga\": 431,\n\t\"./ga.js\": 431,\n\t\"./gd\": 432,\n\t\"./gd.js\": 432,\n\t\"./gl\": 433,\n\t\"./gl.js\": 433,\n\t\"./gom-deva\": 434,\n\t\"./gom-deva.js\": 434,\n\t\"./gom-latn\": 435,\n\t\"./gom-latn.js\": 435,\n\t\"./gu\": 436,\n\t\"./gu.js\": 436,\n\t\"./he\": 437,\n\t\"./he.js\": 437,\n\t\"./hi\": 438,\n\t\"./hi.js\": 438,\n\t\"./hr\": 439,\n\t\"./hr.js\": 439,\n\t\"./hu\": 440,\n\t\"./hu.js\": 440,\n\t\"./hy-am\": 441,\n\t\"./hy-am.js\": 441,\n\t\"./id\": 442,\n\t\"./id.js\": 442,\n\t\"./is\": 443,\n\t\"./is.js\": 443,\n\t\"./it\": 444,\n\t\"./it-ch\": 445,\n\t\"./it-ch.js\": 445,\n\t\"./it.js\": 444,\n\t\"./ja\": 446,\n\t\"./ja.js\": 446,\n\t\"./jv\": 447,\n\t\"./jv.js\": 447,\n\t\"./ka\": 448,\n\t\"./ka.js\": 448,\n\t\"./kk\": 449,\n\t\"./kk.js\": 449,\n\t\"./km\": 450,\n\t\"./km.js\": 450,\n\t\"./kn\": 451,\n\t\"./kn.js\": 451,\n\t\"./ko\": 452,\n\t\"./ko.js\": 452,\n\t\"./ku\": 453,\n\t\"./ku.js\": 453,\n\t\"./ky\": 454,\n\t\"./ky.js\": 454,\n\t\"./lb\": 455,\n\t\"./lb.js\": 455,\n\t\"./lo\": 456,\n\t\"./lo.js\": 456,\n\t\"./lt\": 457,\n\t\"./lt.js\": 457,\n\t\"./lv\": 458,\n\t\"./lv.js\": 458,\n\t\"./me\": 459,\n\t\"./me.js\": 459,\n\t\"./mi\": 460,\n\t\"./mi.js\": 460,\n\t\"./mk\": 461,\n\t\"./mk.js\": 461,\n\t\"./ml\": 462,\n\t\"./ml.js\": 462,\n\t\"./mn\": 463,\n\t\"./mn.js\": 463,\n\t\"./mr\": 464,\n\t\"./mr.js\": 464,\n\t\"./ms\": 465,\n\t\"./ms-my\": 466,\n\t\"./ms-my.js\": 466,\n\t\"./ms.js\": 465,\n\t\"./mt\": 467,\n\t\"./mt.js\": 467,\n\t\"./my\": 468,\n\t\"./my.js\": 468,\n\t\"./nb\": 469,\n\t\"./nb.js\": 469,\n\t\"./ne\": 470,\n\t\"./ne.js\": 470,\n\t\"./nl\": 471,\n\t\"./nl-be\": 472,\n\t\"./nl-be.js\": 472,\n\t\"./nl.js\": 471,\n\t\"./nn\": 473,\n\t\"./nn.js\": 473,\n\t\"./oc-lnc\": 474,\n\t\"./oc-lnc.js\": 474,\n\t\"./pa-in\": 475,\n\t\"./pa-in.js\": 475,\n\t\"./pl\": 476,\n\t\"./pl.js\": 476,\n\t\"./pt\": 477,\n\t\"./pt-br\": 478,\n\t\"./pt-br.js\": 478,\n\t\"./pt.js\": 477,\n\t\"./ro\": 479,\n\t\"./ro.js\": 479,\n\t\"./ru\": 480,\n\t\"./ru.js\": 480,\n\t\"./sd\": 481,\n\t\"./sd.js\": 481,\n\t\"./se\": 482,\n\t\"./se.js\": 482,\n\t\"./si\": 483,\n\t\"./si.js\": 483,\n\t\"./sk\": 484,\n\t\"./sk.js\": 484,\n\t\"./sl\": 485,\n\t\"./sl.js\": 485,\n\t\"./sq\": 486,\n\t\"./sq.js\": 486,\n\t\"./sr\": 487,\n\t\"./sr-cyrl\": 488,\n\t\"./sr-cyrl.js\": 488,\n\t\"./sr.js\": 487,\n\t\"./ss\": 489,\n\t\"./ss.js\": 489,\n\t\"./sv\": 490,\n\t\"./sv.js\": 490,\n\t\"./sw\": 491,\n\t\"./sw.js\": 491,\n\t\"./ta\": 492,\n\t\"./ta.js\": 492,\n\t\"./te\": 493,\n\t\"./te.js\": 493,\n\t\"./tet\": 494,\n\t\"./tet.js\": 494,\n\t\"./tg\": 495,\n\t\"./tg.js\": 495,\n\t\"./th\": 496,\n\t\"./th.js\": 496,\n\t\"./tk\": 497,\n\t\"./tk.js\": 497,\n\t\"./tl-ph\": 498,\n\t\"./tl-ph.js\": 498,\n\t\"./tlh\": 499,\n\t\"./tlh.js\": 499,\n\t\"./tr\": 500,\n\t\"./tr.js\": 500,\n\t\"./tzl\": 501,\n\t\"./tzl.js\": 501,\n\t\"./tzm\": 502,\n\t\"./tzm-latn\": 503,\n\t\"./tzm-latn.js\": 503,\n\t\"./tzm.js\": 502,\n\t\"./ug-cn\": 504,\n\t\"./ug-cn.js\": 504,\n\t\"./uk\": 505,\n\t\"./uk.js\": 505,\n\t\"./ur\": 506,\n\t\"./ur.js\": 506,\n\t\"./uz\": 507,\n\t\"./uz-latn\": 508,\n\t\"./uz-latn.js\": 508,\n\t\"./uz.js\": 507,\n\t\"./vi\": 509,\n\t\"./vi.js\": 509,\n\t\"./x-pseudo\": 510,\n\t\"./x-pseudo.js\": 510,\n\t\"./yo\": 511,\n\t\"./yo.js\": 511,\n\t\"./zh-cn\": 512,\n\t\"./zh-cn.js\": 512,\n\t\"./zh-hk\": 513,\n\t\"./zh-hk.js\": 513,\n\t\"./zh-mo\": 514,\n\t\"./zh-mo.js\": 514,\n\t\"./zh-tw\": 515,\n\t\"./zh-tw.js\": 515\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 517;","import { ChangeRequestService } from './change-request.service';\nimport { GeoObjectTypeManagementService } from './geoobjecttype-management.service';\nimport { HierarchyService } from './hierarchy.service';\nimport { IOService } from './io.service';\nimport { LocalizationManagerService } from './localization-manager.service';\nimport { MapService } from './map.service';\nimport { RegistryService } from './registry.service';\nimport { SynchronizationConfigService } from './synchronization-config.service';\nimport { TaskService } from './task.service';\nimport { GeometryService} from './geometry.service';\n\nexport const services: any[] = [\n\tChangeRequestService,\n\tGeoObjectTypeManagementService,\n\tHierarchyService,\n\tIOService,\n\tLocalizationManagerService,\n\tMapService,\n\tRegistryService,\n\tSynchronizationConfigService,\n\tTaskService,\n\tGeometryService\n];\n\nexport * from './change-request.service';\nexport * from './geoobjecttype-management.service';\nexport * from './hierarchy.service';\nexport * from './io.service';\nexport * from './localization-manager.service';\nexport * from './map.service';\nexport * from './registry.service';\nexport * from './synchronization-config.service';\nexport * from './task.service';\nexport * from './geometry.service';","/* eslint-disable no-unused-vars */\n/* eslint-disable padded-blocks */\nimport { GeoObjectOverTime, HierarchyOverTime, GeoObjectType, AttributeType } from \"./registry\";\nimport { ActionTypes } from \"./constants\";\nimport { ValueOverTimeCREditor } from \"@registry/component/geoobject-shared-attribute-editor/ValueOverTimeCREditor\";\n\nexport enum SummaryKey {\n NEW = \"NEW\",\n UNMODIFIED = \"UNMODIFIED\",\n DELETE = \"DELETE\",\n UPDATE = \"UPDATE\",\n TIME_CHANGE = \"TIME_CHANGE\",\n VALUE_CHANGE = \"VALUE_CHANGE\",\n}\n\nexport class Document {\n fileName: string;\n oid: string;\n}\n\nexport class Geometry {\n type: string;\n coordinates: number[][] | number[];\n}\n\nexport class ValueOverTimeDiff {\n oid: string;\n action: string; // Can be one of DELETE, UPDATE, CREATE\n oldValue: any;\n newValue: any;\n newStartDate: string;\n newEndDate: string;\n oldStartDate: string;\n oldEndDate: string;\n parents?: any;\n oldParents?: any;\n}\n\n// export class AbstractAction {\n// approvalStatus: string;\n// createActionDate: Date;\n// label: string;\n// oid: string;\n// actionType: string;\n// actionLabel: string;\n// decisionMaker?: string;\n// documents: Document[];\n// }\n\nexport class AbstractAction {\n oid: string;\n actionType: ActionTypes;\n actionLabel: string;\n createActionDate: string;\n contributorNotes?: string;\n maintainerNotes?: string;\n additionalNotes?: string;\n approvalStatus: string;\n statusLabel: string;\n createdBy: string;\n documents: any[];\n permissions: string[];\n}\n\nexport class CreateGeoObjectAction extends AbstractAction {\n geoObjectJson: GeoObjectOverTime;\n parentJson: HierarchyOverTime[];\n\n constructor() {\n super();\n this.actionType = ActionTypes.CREATEGEOOBJECTACTION;\n }\n}\n\nexport class UpdateAttributeOverTimeAction extends AbstractAction {\n attributeName: string;\n attributeDiff: { \"valuesOverTime\": ValueOverTimeDiff[], hierarchyCode?: string };\n\n constructor(attributeName: string) {\n super();\n this.actionType = ActionTypes.UPDATEATTRIBUTETACTION;\n this.attributeName = attributeName;\n this.attributeDiff = { valuesOverTime: [] };\n }\n}\n\nexport class UpdateAttributeAction extends AbstractAction {\n attributeName: string;\n attributeDiff: { oldValue?: any, newValue?: any };\n\n constructor(attributeName: string) {\n super();\n this.actionType = ActionTypes.UPDATEATTRIBUTETACTION;\n this.attributeName = attributeName;\n this.attributeDiff = {};\n }\n}\n\nexport class ChangeRequestCurrentObject {\n geoObjectType: GeoObjectType;\n}\n\nexport class UpdateChangeRequestCurrentObject {\n geoObjectType: GeoObjectType;\n geoObject: GeoObjectOverTime;\n}\n\nexport class ChangeRequest {\n oid: string;\n createdBy: string;\n createDate: Date;\n approvalStatus: string;\n total: number;\n pending: number;\n documents: Document[];\n actions: AbstractAction[];\n current?: ChangeRequestCurrentObject & UpdateChangeRequestCurrentObject;\n type: string; // Can be one of [\"CreateGeoObject\", \"UpdateGeoObject\"]\n statusLabel?: string;\n phoneNumber?: string;\n email?: string;\n permissions?: string[];\n isNew?: boolean;\n\n constructor() {\n this.isNew = true;\n }\n\n public static getActionsForAttribute(cr: ChangeRequest, attributeName: string, hierarchyCode: string): AbstractAction[] {\n if (cr.type === \"CreateGeoObject\") {\n return cr.actions;\n } else {\n let newActions = [];\n\n for (let i = 0; i < cr.actions.length; ++i) {\n let action = cr.actions[i];\n\n if (action.actionType === \"UpdateAttributeAction\") {\n let updateAttrAction = action as UpdateAttributeOverTimeAction;\n\n if (updateAttrAction.attributeName === attributeName &&\n (attributeName !== \"_PARENT_\" || updateAttrAction.attributeDiff.hierarchyCode === hierarchyCode)) {\n newActions.push(cr.actions[i]);\n }\n }\n }\n\n return newActions;\n }\n }\n}\n\n// export class UpdateGeoObjectAction extends AbstractAction {\n// geoObjectJson: GeoObjectOverTime;\n// }\n//\n// export class CreateGeoObjectAction extends AbstractAction {\n// geoObjectJson: GeoObjectOverTime;\n// }\n//\n// export class AddChildAction extends AbstractAction {\n// childId: string;\n// childTypeCode: string;\n// parentId: string;\n// parentTypeCode: string;\n// hierarchyTypeCode: string;\n// contributorNotes: string;\n// maintainerNotes: string;\n// createdBy: string;\n// }\n\n// export class RemoveChildAction extends AbstractAction {\n// childId: string;\n// childTypeCode: string;\n// parentId: string;\n// parentTypeCode: string;\n// hierarchyCode: string;\n// }\n\n// export class SetParentAction extends AbstractAction {\n// childCode: string;\n// childTypeCode: string;\n// json: HierarchyOverTime[];\n// }\n\nexport class GovernanceStatus {\n key: string;\n label: string;\n}\n\nexport class PageEvent {\n type: string;\n data: any;\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpHeaders, HttpClient, HttpParams } from \"@angular/common/http\";\nimport { finalize } from \"rxjs/operators\";\n\nimport { ChangeRequest } from \"@registry/model/crtable\";\nimport { EventService } from \"@shared/service\";\nimport { PageResult } from \"@shared/model/core\";\n\nimport { ImportConfiguration } from \"@registry/model/io\";\n\ndeclare let acp: any;\n\n@Injectable()\nexport class ChangeRequestService {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private http: HttpClient, private eventService: EventService) { }\n\n implementDecisions(request: ChangeRequest): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/changerequest/implement-decisions\", JSON.stringify({ request: request }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n update(request: ChangeRequest): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/changerequest/update\", JSON.stringify({ request: request }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n setActionStatus(actionOid: String, status: String): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/changerequest/set-action-status\", JSON.stringify({ actionOid: actionOid, status: status }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n getAllRequests(pageSize: number, pageNumber: number, filter: string, sort: any[], oid:string): Promise> {\n let params: HttpParams = new HttpParams();\n params = params.set(\"pageSize\", pageSize.toString());\n params = params.set(\"pageNumber\", pageNumber.toString());\n params = params.set(\"filter\", filter);\n params = params.set(\"sort\", JSON.stringify(sort));\n\n if (oid != null) {\n params = params.set(\"oid\", oid);\n }\n\n this.eventService.start();\n\n return this.http.get>(acp + \"/changerequest/get-all-requests\", { params: params })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n rejectChangeRequest(request: ChangeRequest): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http.post(acp + \"/changerequest/reject\", JSON.stringify({ request: request }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n delete(requestId: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http.post(acp + \"/changerequest/delete\", JSON.stringify({ requestId: requestId }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n deleteFile(crOid: string, fileId: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/changerequest/delete-file-cr\", JSON.stringify({ crOid: crOid, vfOid: fileId }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\nimport { finalize } from \"rxjs/operators\";\n\nimport { EventService } from \"@shared/service\";\nimport { PageResult } from \"@shared/model/core\";\n\nimport { HistoricalRow, TransitionEvent } from \"@registry/model/transition-event\";\n\ndeclare let acp: any;\n\n@Injectable()\nexport class TransitionEventService {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private http: HttpClient, private eventService: EventService) { }\n\n getPage(pageSize: number, pageNumber: number, attrConditions: any): Promise> {\n let params: HttpParams = new HttpParams();\n params = params.set(\"pageSize\", pageSize.toString());\n params = params.set(\"pageNumber\", pageNumber.toString());\n params = params.set(\"attrConditions\", JSON.stringify(attrConditions));\n\n this.eventService.start();\n\n return this.http.get>(acp + \"/transition-event/page\", { params: params })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n getDetails(oid: string): Promise {\n let params: HttpParams = new HttpParams();\n params = params.set(\"oid\", oid);\n\n this.eventService.start();\n\n return this.http.get(acp + \"/transition-event/get-details\", { params: params })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n apply(event: TransitionEvent): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/transition-event/apply\", JSON.stringify({ event: event }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n delete(event: TransitionEvent): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/transition-event/delete\", JSON.stringify({ eventId: event.oid }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n getHistoricalReport(typeCode: string, startDate: string, endDate: string, pageSize: number, pageNumber: number): Promise> {\n let params: HttpParams = new HttpParams();\n params = params.set(\"typeCode\", typeCode.toString());\n params = params.set(\"startDate\", startDate.toString());\n params = params.set(\"endDate\", endDate.toString());\n params = params.set(\"pageSize\", pageSize.toString());\n params = params.set(\"pageNumber\", pageNumber.toString());\n\n this.eventService.start();\n\n return this.http.get>(acp + \"/transition-event/historical-report\", { params: params })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n}\n","/* eslint-disable padded-blocks */\nimport { GeoObjectType } from \"./registry\";\n\nexport class ImportSheet {\n name: string;\n attributes: {\n boolean: string[];\n date: string[];\n numeric: string[];\n text: string[];\n }\n}\n\nexport class Location {\n label: string;\n code: string;\n target: string;\n matchStrategy: string;\r\n}\n\nexport class Term {\n code: string;\n label: string;\n}\n\nexport class TermProblem {\n label: string;\n parentCode: string;\n mdAttributeId: string;\n attributeCode: string;\n attributeLabel: string;\n action: any;\n resolved: boolean;\n}\n\nexport class LocationProblem {\n label: string;\n type: string;\n typeLabel: string;\n parent: string;\n context: { label: string, type: string }[];\n action: any;\n resolved: boolean;\n}\n\nexport class Exclusion {\n code: string;\n value: string;\n}\n\nexport class Synonym {\n label: string;\n synonymId: string;\n vOid?: string;\n}\n\nexport class ImportConfiguration {\n type: GeoObjectType;\n sheet: ImportSheet;\n directory: string;\n filename: string;\n hierarchy: string;\n postalCode: boolean;\n hasPostalCode: boolean;\n locations: Location[];\n formatType: string;\n objectType: string;\n locationProblems: LocationProblem[];\n termProblems: TermProblem[];\n exclusions: Exclusion[];\n hierarchies: { code: string, label: string }[];\n startDate: string;\n endDate: string;\n isExternal: string;\n externalSystemId: string;\n externalSystem?: any;\n revealGeometryColumn?: any;\n onValidChange: any;\n externalIdAttributeTarget: string;\n}\n\n","import { Component, OnInit, ViewChild, Input, ViewChildren, QueryList } from \"@angular/core\";\nimport { DatePipe } from \"@angular/common\";\nimport {\n trigger,\n style,\n animate,\n transition,\n state\n} from \"@angular/animations\";\n\nimport { LocalizedValue } from \"@shared/model/core\";\nimport { LocalizationService, AuthService } from \"@shared/service\";\nimport { GeometryService } from \"@registry/service\";\nimport { DateService } from \"@shared/service/date.service\";\n\nimport { GeoObjectType, GeoObjectOverTime, AttributeType, Term, HierarchyOverTime } from \"@registry/model/registry\";\nimport { UpdateAttributeOverTimeAction, AbstractAction, CreateGeoObjectAction, ChangeRequest } from \"@registry/model/crtable\";\nimport { ActionTypes } from \"@registry/model/constants\";\nimport { ChangeRequestEditor } from \"./change-request-editor\";\nimport { ManageVersionsComponent } from \"./manage-versions.component\";\n\n@Component({\n selector: \"geoobject-shared-attribute-editor\",\n templateUrl: \"./geoobject-shared-attribute-editor.component.html\",\n styleUrls: [\"./geoobject-shared-attribute-editor.css\"],\n providers: [DatePipe],\n animations: [\n [\n trigger(\"fadeInOut\", [\n transition(\":enter\", [\n style({\n opacity: 0\n }),\n animate(\"500ms\")\n ]),\n transition(\":leave\",\n animate(\"500ms\",\n style({\n opacity: 0\n })\n )\n )\n ]),\n trigger(\"slide\", [\n state(\"left\", style({ left: 0 })),\n state(\"right\", style({ left: \"100%\" })),\n transition(\"* => *\", animate(200))\n ])\n ]]\n})\n\n/**\n * IMPORTANT\n * This component is shared between:\n * - crtable (request-table.component.ts)\n * - change-request (for submitting change requests)\n * - master list geoobject editing widget (feature-panel.component.ts)\n * Be wary of changing this component for one usecase and breaking other usecases!\n */\nexport class GeoObjectSharedAttributeEditorComponent implements OnInit {\n\n // The changed state of the GeoObject in the GeoRegistry\n @Input() postGeoObject: GeoObjectOverTime = null;\n\n showAllInstances: boolean = false;\n\n tabIndex: number = 0;\n\n // The current state of the GeoObject in the GeoRegistry\n// @Input() action: Action = null;\n\n changeRequestEditor: ChangeRequestEditor;\n\n @Input() geoObjectType: GeoObjectType;\n\n @Input() attributeExcludes: string[] = [];\n\n @Input() readOnly: boolean = false;\n\n @Input() isNew: boolean = false;\n\n @Input() isGeometryInlined = false;\n\n @Input() changeRequest: ChangeRequest;\n\n @Input() hierarchies: HierarchyOverTime[];\n\n modifiedTermOption: Term = null;\n currentTermOption: Term = null;\n\n @Input() filterDate: string = null;\n\n // used in context of a list where reference back to the list forDate is needed\n @Input() forDate: string = null;\n @Input() datasetId: string = null;\n\n // TODO : This was copy / pasted into manage-versions.component::onDateChange and ChangeRequestEditor::generateAttributeEditors\n geoObjectAttributeExcludes: string[] = [\"uid\", \"sequence\", \"type\", \"lastUpdateDate\", \"createDate\", \"invalid\", \"exists\"];\n\n @ViewChild(\"attributeForm\") attributeForm;\n\n @ViewChildren(ManageVersionsComponent) manageVersions: QueryList;\n\n public parentAttributeType: AttributeType;\n\n public geometryAttributeType: AttributeType;\n\n showStabilityPeriods = false;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private lService: LocalizationService, private geomService: GeometryService, private authService: AuthService, private dateService: DateService) {\n\n }\n\n ngOnInit(): void {\n if (this.attributeExcludes != null) {\n this.geoObjectAttributeExcludes.push.apply(this.geoObjectAttributeExcludes, this.attributeExcludes);\n\n if (!this.isGeometryInlined) {\n this.geoObjectAttributeExcludes.push(\"geometry\");\n }\n }\n\n this.geometryAttributeType = this.getAttribute(\"geometry\");\n if (this.geometryAttributeType == null) {\n this.geometryAttributeType = new AttributeType(\"geometry\", \"geometry\", new LocalizedValue(\"Geometry\", null), new LocalizedValue(\"Geometry\", null), true, false, false, true);\n }\n\n this.parentAttributeType = new AttributeType(\"_PARENT_\", \"_PARENT_\", new LocalizedValue(\"Parents\", null), new LocalizedValue(\"Parents\", null), true, false, false, true);\n\n if (this.changeRequest == null) {\n this.changeRequest = this.createNewChangeRequest();\n } else {\n if (!this.changeRequest.actions) {\n this.changeRequest.actions = [];\n }\n\n if (this.changeRequest.actions.length === 0 && this.isNew) {\n this.changeRequest.actions = this.createNewChangeRequest().actions;\n }\n }\n\n this.changeRequestEditor = new ChangeRequestEditor(this.changeRequest, this.postGeoObject, this.geoObjectType, this.hierarchies, this.geometryAttributeType, this.parentAttributeType, this.lService, this.dateService);\n\n if (this.shouldForceSetExist()) {\n this.changePage(3);\n }\n\n if (this.isNew) {\n this.filterDate = null;\n }\n\n let got = this.changeRequest.current ? this.changeRequest.current.geoObjectType : this.postGeoObject.geoObjectType;\n let orgCode = got.organizationCode;\n\n // Don't show the stability bar on the Change Requests page.\n // Change Requests don't have oid when the page is loaded for non-change request use cases.\n if (!this.changeRequest.oid) {\n this.showStabilityPeriods = (this.authService.isSRA() || this.authService.isOrganizationRA(orgCode) || this.authService.isGeoObjectTypeOrSuperRM(got) || this.authService.isGeoObjectTypeOrSuperRC(got));\n }\n\n this.showAllInstances = (this.changeRequestEditor.changeRequest.isNew || this.changeRequestEditor.changeRequest.type === \"CreateGeoObject\");\n }\n\n setFilterDate(date: string, refresh: boolean = true) {\n this.filterDate = date;\n\n if (this.manageVersions != null) {\n this.manageVersions.forEach(manageVersion => manageVersion.setFilterDate(this.filterDate, refresh));\n }\n }\n\n getChangeRequestEditor(): ChangeRequestEditor {\n return this.changeRequestEditor;\n }\n\n createNewChangeRequest(): ChangeRequest {\n let cr = new ChangeRequest();\n cr.approvalStatus = \"PENDING\";\n cr.actions = [];\n\n if (this.isNew) {\n cr.type = \"CreateGeoObject\";\n\n let createAction: CreateGeoObjectAction = new CreateGeoObjectAction();\n createAction.geoObjectJson = this.postGeoObject;\n createAction.parentJson = this.hierarchies;\n cr.actions[0] = createAction;\n } else {\n cr.type = \"UpdateGeoObject\";\n }\n\n return cr;\n }\n\n shouldForceSetExist() {\n let isNew = this.changeRequestEditor.changeRequest.isNew;\n\n if (isNew && !this.readOnly && this.postGeoObject.attributes[\"exists\"]) {\n let values = this.postGeoObject.attributes[\"exists\"].values;\n\n if (values && values.length > 0) {\n let value = values[0];\n\n return value.startDate == null || value.endDate == null || value.value === undefined || value.value === null;\n }\n }\n\n return isNew && !this.readOnly;\n }\n\n getAttribute(name: string): AttributeType {\n if (name === \"_PARENT_\") {\n return this.parentAttributeType;\n } else if (name === \"geometry\") {\n return this.geometryAttributeType;\n }\n\n for (let i = 0; i < this.geoObjectType.attributes.length; ++i) {\n if (this.geoObjectType.attributes[i].code === name) {\n return this.geoObjectType.attributes[i];\n }\n }\n\n return null;\n }\n\n changePage(nextPage: number): void {\n if (this.shouldForceSetExist() && nextPage !== 3) {\n return;\n }\n\n this.geomService.destroy(false);\n\n this.tabIndex = nextPage;\n }\n\n hasChanges(tabIndex: number) {\n let len = this.changeRequest.actions.length;\n\n if (len > 0) {\n for (let i = 0; i < len; ++i) {\n let action: AbstractAction = this.changeRequest.actions[i];\n\n if (action.actionType === ActionTypes.CREATEGEOOBJECTACTION) {\n return false;\n } else if (action.actionType === ActionTypes.UPDATEATTRIBUTETACTION) {\n let updateAttrAction: UpdateAttributeOverTimeAction = action as UpdateAttributeOverTimeAction;\n\n if (updateAttrAction.attributeName === \"_PARENT_\" && tabIndex === 1) {\n return true;\n } else if (updateAttrAction.attributeName === \"geometry\" && tabIndex === 2) {\n return true;\n } else if ((updateAttrAction.attributeName === \"invalid\" || updateAttrAction.attributeName === \"exists\") && tabIndex === 3) {\n return true;\n } else if (tabIndex === 0 && updateAttrAction.attributeName !== \"_PARENT_\" && updateAttrAction.attributeName !== \"geometry\" && updateAttrAction.attributeName !== \"exists\" && updateAttrAction.attributeName !== \"invalid\") {\n return true;\n }\n }\n }\n }\n\n return false;\n }\n\n hasErrors(tabIndex: number) {\n let attributeEditors = this.changeRequestEditor.getEditors();\n\n if (tabIndex === 0) {\n let filter = [\"invalid\", \"exists\", \"_PARENT_\", \"geometry\"];\n let filteredEditors = attributeEditors.filter(editor => filter.indexOf(editor.attribute.code) === -1);\n\n for (let i = 0; i < filteredEditors.length; ++i) {\n let editor = filteredEditors[i];\n\n if (!editor.isValid()) {\n return true;\n }\n }\n } else if (tabIndex === 1) {\n for (let i = 0; i < this.hierarchies.length; ++i) {\n let hierarchy = this.hierarchies[i];\n\n if (!this.changeRequestEditor.getEditorForAttribute(this.parentAttributeType, hierarchy).isValid()) {\n return true;\n }\n }\n } else if (tabIndex === 2) {\n return !this.changeRequestEditor.getEditorForAttribute(this.geometryAttributeType).isValid();\n } else if (tabIndex === 3) {\n let invalid = this.getAttribute(\"invalid\");\n\n let existsAttribute: AttributeType = GeoObjectType.getAttribute(this.changeRequestEditor.geoObjectType, \"exists\");\n let existsEditor = this.changeRequestEditor.getEditorForAttribute(existsAttribute);\n\n return (Object.prototype.hasOwnProperty.call(invalid, \"isValid\") && !invalid.isValid) ||\n !existsEditor.isValid();\n }\n\n return false;\n }\n\n public isValid(): boolean {\n let allValid:boolean = true;\n\n this.geoObjectType.attributes.forEach(att => {\n if (att.isValid != null && !att.isValid) {\n allValid = false;\n }\n });\n\n if (this.parentAttributeType.isValid != null && !this.parentAttributeType.isValid) {\n allValid = false;\n }\n\n if (this.geometryAttributeType.isValid != null && !this.geometryAttributeType.isValid) {\n allValid = false;\n }\n\n return allValid && this.changeRequestEditor.validate();\n }\n\n public getActions(): AbstractAction[] {\n return this.changeRequestEditor.changeRequest.actions;\n }\n\n}\n","
\n
\n \n
\n
\n\n
\n
\n \n
\n
\n\n
\n \n
\n
\n \n \n \n \n
\n
\n
\n\n
\n
\n \n
\n
\n \n \n
\n\n \n
    \n
  • \n
    \n
    \n

    \n \n \n \n \n \n \n {{attr.label.localizedValue}} \n

    \n
    \n\n
    \n
    \n \n \n
    \n\n
    \n \n\n
    \n \n
    \n
    \n
    \n
    \n
  • \n
\n
\n
\n
\n
\n\t
    \n\t\t
  • \n\t\t
    \n\t
    \n\t

    \n\t {{hierarchy.label}} \n\t

    \n\t
    \n\t\t\t\t \n\t\t\t\t
    \n\t\t\t\t \n\t\t\t\t
    \n\t\t\t
    \n\t\t
  • \n\t
\n
\n
\n \n
\n
\n
\n

\n \n

\n
\n \n
\n \n
\n
\n
\n \n
\n
\n
\n

\n {{getAttribute('exists').label.localizedValue}} \n

\n
\n \n
\n \n
\n
\n
\n
\n

\n \n \n \n \n

\n
\n \n
\n \n
\n
\n
\n
\n \n
\n
\n","import { Component, Input, Output, EventEmitter } from \"@angular/core\";\nimport { LocalizedValue } from \"@shared/model/core\";\n\n@Component({\n selector: \"localized-text\",\n templateUrl: \"./localized-text.component.html\",\n styleUrls: [\"./localized-text.css\"],\n})\nexport class LocalizedTextComponent {\n\n @Input() public key: string = \"\";\n @Input() public value: LocalizedValue;\n @Input() public disabled: boolean = false;\n @Input() public inlinelayout: boolean = false;\n @Output() public valueChange = new EventEmitter();\n\n // eslint-disable-next-line no-useless-constructor\n constructor() { }\n}","\n
\n
\n
\n
\n
\n \n
\n
\n \n \n \n
\n
\n
\n
\n
\n","import { Injectable } from \"@angular/core\";\r\nimport { Subject } from \"rxjs\";\r\n\r\nimport { ManageGeoObjectTypeModalState } from \"@registry/model/registry\";\r\n\r\n@Injectable()\r\nexport class GeoObjectTypeManagementService {\r\n\r\n modalState: ManageGeoObjectTypeModalState;\r\n private modalStateChangedSource = new Subject();\r\n modalStepChange = this.modalStateChangedSource.asObservable();\r\n\r\n // eslint-disable-next-line no-useless-constructor\n constructor() { }\r\n\r\n public getModalState(): ManageGeoObjectTypeModalState {\r\n return this.modalState;\r\n }\r\n\r\n public setModalState(state: ManageGeoObjectTypeModalState): void {\r\n this.modalState = state;\r\n\r\n this.modalStateChangedSource.next(this.modalState);\r\n }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectorRef } from \"@angular/core\";\nimport {\n trigger,\n state,\n style,\n animate,\n transition\n} from \"@angular/animations\";\n\nimport { GeoObjectType, AttributeType } from \"@registry/model/registry\";\nimport { HierarchyService } from \"@registry/service\";\nimport { ErrorHandler } from \"@shared/component\";\n\n@Component({\n selector: \"attribute-input\",\n templateUrl: \"./attribute-input.component.html\",\n styleUrls: [\"./attribute-input.css\"],\n animations: [\n trigger(\"toggleInputs\", [\n state(\"none, void\",\n style({ opacity: 0 })\n ),\n state(\"show\",\n style({ opacity: 1 })\n ),\n transition(\"none => show\", animate(\"300ms\"))\n // transition('show => none', animate('100ms'))\n ])\n ]\n})\nexport class AttributeInputComponent implements OnInit {\n\n @Input() disableCodeField: boolean = false;\n @Input() excludeDescription: boolean = false;\n @Input() isDecimal: boolean = false;\n @Input() geoObjectType: GeoObjectType;\n @Input() attribute: AttributeType;\n @Output() attributeChange = new EventEmitter();\n message: string = null;\n\n state: string = \"none\";\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private hierarchyService: HierarchyService, private cdr: ChangeDetectorRef) { }\n\n ngOnInit(): void {\n\n }\n\n ngAfterViewInit() {\n this.state = \"show\";\n this.cdr.detectChanges();\n }\n\n ngOnChanges() {\n\n }\n\n ngOnDestroy() {\n\n }\n\n handleOnSubmit(): void {\n\n }\n\n toggleIsUnique(): void {\n this.attribute.unique = !this.attribute.unique;\n }\n\n animate(): void {\n this.state = \"none\";\n }\n\n onAnimationDone(event: AnimationEvent): void {\n this.state = \"show\";\n }\n\n isValid(): boolean {\n if (this.attribute.code) {\n // if code has a space\n if (this.attribute.code.indexOf(\" \") !== -1) {\n return false;\n }\n\n if (this.attribute.label.localeValues[0].value.length === 0) {\n return false;\n }\n\n if (this.isDecimal && (this.attribute.precision == null || this.attribute.precision.toString() == \"\")) {\n return false;\n }\n\n if (this.isDecimal && (this.attribute.scale == null || this.attribute.scale.toString() == \"\")) {\n return false;\n }\n\n return true;\n }\n\n return false;\n }\n\n}\n","
\n
\n
\n \n
\n
\n \n \n \n
\n
\n\n \n \n\n\n
\n
\n \n
\n
\n \n \n \n
\n
\n\n
\n
\n \n
\n
\n \n \n \n
\n
\n
","import { Component, OnInit } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Subject } from \"rxjs\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { MasterList, MasterListByOrg } from \"@registry/model/registry\";\nimport { RegistryService, IOService } from \"@registry/service\";\nimport { DateService } from \"@shared/service/date.service\";\n\nimport { ErrorHandler } from \"@shared/component\";\nimport { LocalizationService, AuthService } from \"@shared/service\";\n\n@Component({\n selector: \"publish-modal\",\n templateUrl: \"./publish-modal.component.html\",\n styleUrls: []\n})\nexport class PublishModalComponent implements OnInit {\n\n currentDate: Date = new Date();\n message: string = null;\n\n master: MasterList;\n\n /*\n * Observable subject for MasterList changes. Called when an update is successful\n */\n onMasterListChange: Subject;\n\n /*\n * List of geo object types from the system\n */\n types: { label: string, code: string }[]\n\n /*\n * List of geo object types from the system\n */\n readonly: boolean = false;\n\n /*\n * List of geo object types from the system\n */\n edit: boolean = false;\n\n isNew: boolean = false;\n\n originalPublishStartDate: string = null;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: RegistryService, private iService: IOService, private lService: LocalizationService, public bsModalRef: BsModalRef, private authService: AuthService,\n private dateService: DateService) {}\n\n ngOnInit(): void {\n this.onMasterListChange = new Subject();\n\n if (!this.master || !this.readonly) {\n this.iService.listGeoObjectTypes(true).then(types => {\n let myOrgTypes = [];\n for (let i = 0; i < types.length; ++i) {\n const orgCode = types[i].orgCode;\n const typeCode = types[i].superTypeCode != null ? types[i].superTypeCode : types[i].code;\n\n if (this.authService.isGeoObjectTypeRM(orgCode, typeCode)) {\n myOrgTypes.push(types[i]);\n }\n }\n this.types = myOrgTypes;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n\n this.master = {\n oid: null,\n typeCode: \"\",\n displayLabel: this.lService.create(),\n code: \"\",\n representativityDate: null,\n publishingStartDate: null,\n publishDate: null,\n descriptionLocal: this.lService.create(),\n processLocal: this.lService.create(),\n progressLocal: this.lService.create(),\n accessConstraintsLocal: this.lService.create(),\n useConstraintsLocal: this.lService.create(),\n acknowledgementsLocal: this.lService.create(),\n disclaimerLocal: this.lService.create(),\n contactName: \"\",\n organization: \"\",\n telephoneNumber: \"\",\n email: \"\",\n hierarchies: [],\n subtypeHierarchies: [],\n leaf: false,\n frequency: \"ANNUAL\",\n isMaster: null,\n visibility: null\n };\n }\n }\n\n ngAfterContentInit() {\n\n }\n\n init(org: MasterListByOrg): void {\n this.master.organization = org.oid;\n }\n\n getIsDisabled(event): boolean {\n let elClasses = event.target.classList;\n for (let i = 0; i < elClasses.length; i++) {\n let c = elClasses[i];\n if (c === \"disabled\") {\n return true;\n }\n }\n\n return false;\n }\n\n onChange(): void {\n if (this.master.typeCode != null && this.master.typeCode.length > 0) {\n this.iService.getHierarchiesForType(this.master.typeCode, true).then(hierarchies => {\n this.master.hierarchies = hierarchies;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n\n this.iService.getHierarchiesForSubtypes(this.master.typeCode, false).then(hierarchies => {\n this.master.subtypeHierarchies = hierarchies;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n } else {\n this.master.hierarchies = [];\n }\n }\n\n onSubmit(): void {\n this.service.createMasterList(this.master).then(response => {\n this.onMasterListChange.next(response);\n this.bsModalRef.hide();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n stringify(obj: any): string {\n return JSON.stringify(obj);\n }\n\n onCancel(): void {\n this.bsModalRef.hide();\n }\n\n ngOnDestroy() {\n this.onMasterListChange.unsubscribe();\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n
{{message}}
\n\n
\n

\n \n

\n

\n {{master.displayLabel.localizedValue}}\n \n

\n
\n \n
\n\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n \n {{formatDate(master.publishingStartDate)}}\n \n \n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n\n
\n \n
\n
\n
\n
\n
\n\n\n \n \n\n\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n\n
\n
\n
\n \n
\n
\n\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n\n
0\">\n
\n
\n \n
\n
\n\n
\n
\n
\n \n
\n
\n
\n \n\n
\n\n \n
\n \n
\n\n \n\n \n
\n \n \n
\n
\n
\n
\n \n
0\">\n
\n
\n \n
\n
\n
\n \n\n
\n\n \n
\n \n
\n\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n \n
\n
\n
\n\n
\n
\n \n
","import { Component, Input, Output, EventEmitter } from \"@angular/core\";\nimport { LocalizedValue } from \"@shared/model/core\";\n\n@Component({\n selector: \"localized-input\",\n templateUrl: \"./localized-input.component.html\",\n styleUrls: []\n})\nexport class LocalizedInputComponent {\n\n @Input() public key: string = \"\";\n @Input() public value: LocalizedValue;\n @Input() public disabled: boolean = false;\n @Output() public valueChange = new EventEmitter();\n\n // eslint-disable-next-line no-useless-constructor\n constructor() { }\n}","
\n
\n \n
\n
\n \n \n \n
\n
\n","import { Component, OnInit, ViewChild, ElementRef, ChangeDetectorRef } from '@angular/core';\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { debounceTime, distinctUntilChanged, filter, tap } from \"rxjs/operators\";\nimport { fromEvent } from 'rxjs';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { ContextMenuService, ContextMenuComponent } from 'ngx-contextmenu';\nimport * as d3 from 'd3';\n\nimport { CreateHierarchyTypeModalComponent } from './modals/create-hierarchy-type-modal.component';\nimport { CreateGeoObjTypeModalComponent } from './modals/create-geoobjtype-modal.component';\nimport { ManageGeoObjectTypeModalComponent } from './modals/manage-geoobjecttype-modal.component';\n\nimport { ErrorHandler, ConfirmModalComponent, ErrorModalComponent } from '@shared/component';\nimport { LocalizationService, AuthService } from '@shared/service';\nimport { ModalTypes } from '@shared/model/modal'\n\nimport { HierarchyType, HierarchyNode } from '@registry/model/hierarchy';\nimport { GeoObjectType } from '@registry/model/registry';\nimport { Organization } from '@shared/model/core';\nimport { RegistryService, HierarchyService } from '@registry/service';\n\nimport { SvgHierarchyType } from './d3/svg-hierarchy-type';\nimport { svgPoint, isPointWithin, calculateTextWidth, getBboxFromSelection } from './d3/svg-util';\nimport { SvgHierarchyNode } from './d3/svg-hierarchy-node';\nimport { ImportTypesModalComponent } from './modals/import-types-modal.component';\n\nexport const TREE_SCALE_FACTOR_X: number = 1.8;\nexport const TREE_SCALE_FACTOR_Y: number = 1.8;\n\nexport const DEFAULT_NODE_FILL = '#e6e6e6';\nexport const DEFAULT_NODE_BANNER_COLOR = '#A29BAB';\nexport const INHERITED_NODE_FILL = '#d4d4d4';\nexport const INHERITED_NODE_BANNER_COLOR = '#a0a0a0';\nexport const RELATED_NODE_BANNER_COLOR = INHERITED_NODE_BANNER_COLOR;\n\nexport class Instance {\n active: boolean;\n label: string;\n}\n\nexport interface DropTarget {\n dropSelector: string;\n onDrag(dragEl: Element, dropEl: Element, event: any): void;\n onDrop(dragEl: Element, event: any): void;\n [others: string]: any;\n}\n\n@Component({\n\n selector: 'hierarchies',\n templateUrl: './hierarchy.component.html',\n styleUrls: ['./hierarchy.css']\n})\nexport class HierarchyComponent implements OnInit {\n\n userOrganization: string = null;\n\n primarySvgHierarchy: SvgHierarchyType;\n currentHierarchy: HierarchyType = null;\n\n instance: Instance = new Instance();\n hierarchies: HierarchyType[];\n organizations: Organization[];\n geoObjectTypes: GeoObjectType[] = [];\n\n hierarchiesByOrg: { org: Organization, hierarchies: HierarchyType[] }[] = [];\n typesByOrg: { org: Organization, types: GeoObjectType[] }[] = [];\n\n filter: string = '';\n filteredHierarchiesByOrg: { org: Organization, hierarchies: HierarchyType[] }[] = [];\n filteredTypesByOrg: { org: Organization, types: GeoObjectType[] }[] = [];\n @ViewChild('searchInput', { static: true }) searchInput: ElementRef;\n\n hierarchyTypeDeleteExclusions: string[] = ['AllowedIn', 'IsARelationship'];\n geoObjectTypeDeleteExclusions: string[] = ['ROOT'];\n\n _opened: boolean = false;\n\n /*\n * Reference to the modal current showing\n */\n private bsModalRef: BsModalRef;\n\n /*\n * Template for tree node menu\n */\n @ViewChild('nodeMenu') public nodeMenuComponent: ContextMenuComponent;\n\n /*\n * Template for leaf menu\n */\n @ViewChild('leafMenu') public leafMenuComponent: ContextMenuComponent;\n\n /* \n * Currently clicked on id for delete confirmation modal \n */\n current: any;\n\n isSRA: boolean = false;\n\n hierarchyService: HierarchyService;\n\n localizeService: LocalizationService;\n\n options = {\n // allowDrag: (any) => node.isLeaf,\n // allowDrop: (element:Element, { parent, index }: {parent:TreeNode,index:number}) => {\n // return true / false based on element, to.parent, to.index. e.g.\n // return parent.hasChildren;\n // },\n displayField: \"label\",\n actionMapping: {\n mouse: {\n click: (tree: any, node: any, $event: any) => {\n this.treeNodeOnClick(node, $event);\n },\n contextMenu: (tree: any, node: any, $event: any) => {\n this.handleOnMenu(node, $event);\n }\n }\n },\n mouse: {\n // drop: (tree: any, node: TreeNode, $event: any, {from, to}: {from:TreeNode, to:TreeNode}) => {\n // console.log('drag', from, to); // from === {name: 'first'}\n // // Add a node to `to.parent` at `to.index` based on the data in `from`\n // // Then call tree.update()\n // }\n }\n };\n\n\n\n constructor(hierarchyService: HierarchyService, private modalService: BsModalService,\n private contextMenuService: ContextMenuService,\n localizeService: LocalizationService, private registryService: RegistryService, private authService: AuthService) {\n\n this.isSRA = authService.isSRA();\n\n this.hierarchyService = hierarchyService;\n this.localizeService = localizeService;\n }\n\n ngOnInit(): void {\n this.refreshAll(null);\n\n fromEvent(this.searchInput.nativeElement, 'keyup').pipe(\n\n // get value\n filter(Boolean),\n debounceTime(500),\n distinctUntilChanged(),\n tap(() => {\n this.onFilterChange();\n })\n // subscription for response\n ).subscribe();\n }\n\n localize(key: string): string {\n return this.localizeService.decode(key);\n }\n\n private renderTree(): void {\n if (this.currentHierarchy == null || this.currentHierarchy.rootGeoObjectTypes == null || this.currentHierarchy.rootGeoObjectTypes.length == 0) {\n d3.select(\"#svg\").remove();\n\n let canDrag = false;\n if (this.currentHierarchy != null) {\n canDrag = (this.authService.isSRA() || this.authService.isOrganizationRA(this.currentHierarchy.organizationCode));\n }\n\n this.geoObjectTypes.forEach((got: GeoObjectType) => {\n got.canDrag = canDrag;\n });\n return;\n }\n\n d3.select(\".g-context-menu\").remove();\n d3.select(\".hierarchy-inherit-button\").remove();\n d3.select(\".g-hierarchy-got-connector\").remove();\n\n let overflowDiv: any = d3.select(\"#overflow-div\").node();\n let scrollLeft = overflowDiv.scrollLeft;\n let scrollRight = overflowDiv.scrollRight;\n\n let svg = d3.select(\"#svg\");\n\n if (svg.node() == null) {\n svg = d3.select(\"#svgHolder\").append(\"svg\");\n svg.attr(\"id\", \"svg\");\n }\n\n this.primarySvgHierarchy = new SvgHierarchyType(this, svg, this.currentHierarchy, true, this.localizeService, this.modalService, this.authService);\n this.primarySvgHierarchy.render();\n\n this.calculateSvgViewBox();\n\n let overflowDiv2: any = d3.select(\"#overflow-div\").node();\n overflowDiv2.scrollLeft = scrollLeft;\n overflowDiv2.scrollRight = scrollRight;\n\n //this.registerSvgHandlers();\n\n this.geoObjectTypes.forEach((got: GeoObjectType) => {\n got.canDrag = this.calculateCanDrag(got);\n });\n }\n\n calculateSvgViewBox(): void {\n let svg: any = d3.select(\"#svg\");\n let svgNode: any = svg.node();\n\n let { x, y, width, height } = svgNode.getBBox();\n\n const xPadding = 30;\n const yPadding = 40;\n svg.attr(\"viewBox\", (x - xPadding) + \" \" + (y - yPadding) + \" \" + (width + xPadding * 2) + \" \" + (height + yPadding * 2));\n\n width = (width + xPadding * 2) * TREE_SCALE_FACTOR_X;\n height = (height + yPadding * 2) * TREE_SCALE_FACTOR_Y;\n\n d3.select(\"#svgHolder\").style(\"width\", width + \"px\");\n //d3.select(\"#svgHolder\").style(\"height\", height + \"px\"); \n }\n\n calculateCanDrag(got: GeoObjectType): boolean {\n let hierarchyComponent = this;\n\n if (this.primarySvgHierarchy != null) {\n // Check permissions against GOT and Hierarchy org\n if (!(this.authService.isSRA() || this.authService.isOrganizationRA(this.currentHierarchy.organizationCode))) {\n return false;\n }\n\n // If the child is already on the graph, they cannot drag.\n if (this.primarySvgHierarchy.getNodeByCode(got.code) != null) {\n return false;\n }\n\n // If we are abstract, and one of our children is on the graph, they cannot drag.\n if (got.isAbstract) {\n let isChildOnGraph = false;\n\n this.geoObjectTypes.forEach((child: GeoObjectType) => {\n if (child.superTypeCode === got.code) {\n if (hierarchyComponent.primarySvgHierarchy.getNodeByCode(child.code) != null) {\n isChildOnGraph = true;\n }\n }\n });\n\n if (isChildOnGraph) {\n return false;\n }\n }\n // If we are a child of an abstract type, and our abstract type is on the graph, we cannot drag.\n else if (got.superTypeCode != null) {\n if (hierarchyComponent.primarySvgHierarchy.getNodeByCode(got.superTypeCode) != null) {\n return false;\n }\n }\n }\n else {\n // If there is no selected hierarchy, they cannot drag.\n return false;\n }\n\n return true;\n }\n\n calculateRelatedHierarchies(got: GeoObjectType): string[] {\n let relatedHiers = [];\n\n for (let i = 0; i < this.hierarchies.length; ++i) {\n let hierarchyType = this.hierarchies[i];\n\n if (hierarchyType.rootGeoObjectTypes != null && hierarchyType.rootGeoObjectTypes.length > 0) {\n let d3Hierarchy = d3.hierarchy(hierarchyType.rootGeoObjectTypes[0]).descendants();\n\n let found = d3Hierarchy.find((node) => {\n return node.data.geoObjectType === got.code && node.data.inheritedHierarchyCode == null;\n });\n\n if (found) {\n relatedHiers.push(hierarchyType.code);\n }\n }\n }\n\n return relatedHiers;\n }\n\n private registerDragHandlers(): any {\n let that = this;\n\n let dropTargets: DropTarget[] = [];\n\n // Empty Hierarchy Drop Zone\n dropTargets.push({\n dropSelector: \".drop-box-container\", onDrag: function(dragEl: Element, dropEl: Element) {\n if (this.dropEl != null) {\n this.dropEl.style(\"border-color\", null);\n this.dropEl = null;\n }\n\n if (dropEl != null) {\n let emptyHierarchyDropZone = dropEl.closest(\".drop-box-container\");\n\n if (emptyHierarchyDropZone != null) {\n this.dropEl = d3.select(emptyHierarchyDropZone).style(\"border-color\", \"#6BA542\");\n }\n }\n }, onDrop: function(dragEl: Element) {\n if (this.dropEl != null) {\n this.dropEl.style(\"border-color\", null);\n that.addChild(that.currentHierarchy.code, \"ROOT\", d3.select(dragEl).attr(\"id\"));\n this.dropEl = null;\n }\n }\n });\n\n // SVG GeoObjectType Drop Zone\n dropTargets.push({\n dropSelector: \".svg-got-body-rect\", onDrag: function(dragEl: Element, mouseTarget: Element, event: any) {\n this.clearDropZones();\n\n let lastDropEl = this.dropEl;\n\n // translate page to SVG co-ordinate\n let svg: any = d3.select(\"#svg\").node();\n\n if (svg == null) {\n return;\n }\n let svgMousePoint = svgPoint(event.sourceEvent.pageX, event.sourceEvent.pageY);\n\n // Find out if we've dragged the GeoObjectType inside of a HierarchyNode. If we have, then\n // we need to expand the HierarchyNode's BoundingBox to accomodate our new drop zones. \n that.primarySvgHierarchy.getD3Tree().descendants().forEach((node: any) => {\n if (node.data.geoObjectType !== \"GhostNode\" && isPointWithin(svgMousePoint, node.data.dropZoneBbox)) {\n this.dropEl = d3.select('.g-hierarchy[data-primary=true] .svg-got-body-rect[data-gotCode=\"' + node.data.geoObjectType + '\"]');\n node.data.activeDropZones = true;\n\n if (node.parent == null) {\n node.data.dropZoneBbox = { x: node.x - SvgHierarchyType.gotRectW / 2, y: node.y - SvgHierarchyType.gotRectH * 2, width: SvgHierarchyType.gotRectW, height: SvgHierarchyType.gotRectH * 4 };\n }\n }\n else {\n node.data.activeDropZones = false;\n\n if (node.parent == null) {\n node.data.dropZoneBbox = { x: node.x - SvgHierarchyType.gotRectW / 2, y: node.y - SvgHierarchyType.gotRectH / 2, width: SvgHierarchyType.gotRectW, height: SvgHierarchyType.gotRectH };\n }\n }\n });\n\n if (this.dropEl == null || (lastDropEl != null && this.dropEl != null && lastDropEl.attr(\"data-gotCode\") != this.dropEl.attr(\"data-gotCode\"))) {\n this.clearGhostNodes(true);\n }\n\n if (this.dropEl != null) {\n let isDragGroup = d3.select(dragEl).classed(\"got-group-parent\");\n const gotCode = this.dropEl.attr(\"data-gotCode\");\n let dropNode = that.primarySvgHierarchy.getD3Tree().find((node) => { return node.data.geoObjectType === gotCode; });\n let isDropGroup = that.findGeoObjectTypeByCode(gotCode).isAbstract;\n\n this.dropEl.attr(\"stroke\", \"blue\");\n\n const dropElX = parseInt(this.dropEl.attr(\"x\"));\n const dropElY = parseInt(this.dropEl.attr(\"y\"));\n\n // Add drop zones\n const childW: number = SvgHierarchyType.gotRectW;\n const childH: number = SvgHierarchyType.gotRectH;\n\n let dzg = d3.select(\"#svg\").append(\"g\").classed(\"svg-dropZone-g\", true);\n\n // Render Child Drop Zone\n let dropTargetHasChildren = !(dropNode.children == null || dropNode.children.length == 0);\n let isChildDZActive = !isDropGroup && (!isDragGroup || !dropTargetHasChildren);\n if (isChildDZActive) {\n this.childDzBacker = dzg.append(\"rect\").classed(\"svg-got-child-dz-backer\", true)\n .attr(\"x\", dropElX + (SvgHierarchyType.gotRectW / 2) - (childW / 2))\n .attr(\"y\", dropElY + SvgHierarchyType.gotRectH + 10)\n .attr(\"width\", childW)\n .attr(\"height\", childH)\n .attr(\"fill\", \"white\")\n\n this.childDz = dzg.append(\"rect\").classed(\"svg-got-child-dz\", true)\n .attr(\"x\", dropElX + (SvgHierarchyType.gotRectW / 2) - (childW / 2))\n .attr(\"y\", dropElY + SvgHierarchyType.gotRectH + 10)\n .attr(\"width\", childW)\n .attr(\"height\", childH)\n .attr(\"fill\", \"none\")\n .attr(\"stroke\", \"black\")\n .attr(\"stroke-width\", \"1\")\n .attr(\"stroke-dasharray\", \"5,5\");\n\n let addChildLabel = dropTargetHasChildren ? that.localizeService.decode(\"hierarchy.content.intersectChild\") : that.localizeService.decode(\"hierarchy.content.addChild\");\n this.childDzText = dzg.append(\"text\").classed(\"svg-got-child-dz-text\", true)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"font-size\", 10)\n .attr(\"fill\", \"black\")\n .attr(\"x\", dropElX + (SvgHierarchyType.gotRectW / 2) - calculateTextWidth(addChildLabel, 10) / 2)\n .attr(\"y\", dropElY + SvgHierarchyType.gotRectH + 10 + childH / 2 + 2)\n .text(addChildLabel);\n }\n\n // Render Parent Drop Zone\n if (!isDragGroup) // Don't render it if we're a group\n {\n this.parentDzBacker = dzg.append(\"rect\").classed(\"svg-got-parent-dz-backer\", true)\n .attr(\"x\", dropElX + (SvgHierarchyType.gotRectW / 2) - (childW / 2))\n .attr(\"y\", dropElY - SvgHierarchyType.gotHeaderH - childH)\n .attr(\"width\", childW)\n .attr(\"height\", childH)\n .attr(\"fill\", \"white\")\n\n this.parentDz = dzg.append(\"rect\").classed(\"svg-got-parent-dz\", true)\n .attr(\"x\", dropElX + (SvgHierarchyType.gotRectW / 2) - (childW / 2))\n .attr(\"y\", dropElY - SvgHierarchyType.gotHeaderH - childH)\n .attr(\"width\", childW)\n .attr(\"height\", childH)\n .attr(\"fill\", \"none\")\n .attr(\"stroke\", \"black\")\n .attr(\"stroke-width\", \"1\")\n .attr(\"stroke-dasharray\", \"5,5\");\n\n d3.select(\".svg-got-parent-dz-text\").remove();\n let addParentLabel = dropNode.parent == null ? that.localizeService.decode(\"hierarchy.content.addParent\") : that.localizeService.decode(\"hierarchy.content.intersectParent\");\n this.parentDzText = dzg.append(\"text\").classed(\"svg-got-parent-dz-text\", true)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"font-size\", 10)\n .attr(\"fill\", \"black\")\n .attr(\"x\", dropElX + (SvgHierarchyType.gotRectW / 2) - calculateTextWidth(addParentLabel, 10) / 2)\n .attr(\"y\", dropElY - SvgHierarchyType.gotHeaderH - childH / 2 + 2)\n .text(addParentLabel);\n }\n\n // Render Sibling Drop Zone\n if (this.ghostCode != gotCode) {\n\n\n if (this.ghostCode != null) {\n this.clearGhostNodes(dropNode.parent == null);\n }\n\n if (dropNode.parent != null) {\n let parentIndex = null;\n for (let i = 0; i < dropNode.parent.data.children.length; ++i) {\n let hn: any = dropNode.parent.data.children[i];\n\n if (hn.geoObjectType === gotCode) {\n parentIndex = i + 1;\n }\n };\n\n let addSiblingLabel = that.localizeService.decode(\"hierarchy.content.addChild\");\n dropNode.parent.data.children.splice(parentIndex, 0, { ghostingCode: gotCode, geoObjectType: \"GhostNode\", label: addSiblingLabel, children: [] });\n\n that.renderTree();\n this.ghostCode = gotCode;\n }\n }\n\n let siblingGhostBody = d3.select(\".svg-sibling-ghost-body-dz\");\n\n if (!isDragGroup && isPointWithin(svgMousePoint, getBboxFromSelection(this.parentDz))) {\n this.parentDz.attr(\"stroke\", \"blue\");\n this.parentDzText.attr(\"fill\", \"blue\");\n isChildDZActive && this.childDz.attr(\"stroke\", \"black\");\n isChildDZActive && this.childDzText.attr(\"fill\", \"black\");\n siblingGhostBody.attr(\"stroke\", \"black\");\n this.activeDz = this.parentDz;\n }\n else if (isChildDZActive && isPointWithin(svgMousePoint, getBboxFromSelection(this.childDz))) {\n !isDragGroup && this.parentDz.attr(\"stroke\", \"black\");\n !isDragGroup && this.parentDzText.attr(\"fill\", \"black\");\n this.childDz.attr(\"stroke\", \"blue\");\n this.childDzText.attr(\"fill\", \"blue\");\n siblingGhostBody.attr(\"stroke\", \"black\");\n this.activeDz = this.childDz;\n }\n else if (siblingGhostBody.node() != null && isPointWithin(svgMousePoint, getBboxFromSelection(siblingGhostBody))) {\n !isDragGroup && this.parentDz.attr(\"stroke\", \"black\");\n !isDragGroup && this.parentDzText.attr(\"fill\", \"black\");\n isChildDZActive && this.childDz.attr(\"stroke\", \"black\");\n isChildDZActive && this.childDzText.attr(\"fill\", \"black\");\n siblingGhostBody.attr(\"stroke\", \"blue\");\n this.activeDz = \"sibling\";\n }\n }\n }, onDrop: function(dragEl: Element) {\n if (this.dropEl != null && this.activeDz != null) {\n let dropGot = this.dropEl.attr(\"data-gotCode\");\n let dropNode = that.primarySvgHierarchy.getD3Tree().find((node) => { return node.data.geoObjectType === dropGot; });\n let dragGot = d3.select(dragEl).attr(\"id\");\n\n if (this.activeDz === this.childDz) {\n if (dropNode.data.children.length == 0) {\n that.addChild(that.currentHierarchy.code, dropGot, dragGot);\n }\n else {\n let youngest = \"\";\n\n for (let i = 0; i < dropNode.data.children.length; ++i) {\n youngest = youngest + dropNode.data.children[i].geoObjectType;\n\n if (i < dropNode.data.children.length - 1) {\n youngest = youngest + \",\";\n }\n }\n\n that.insertBetweenTypes(that.currentHierarchy.code, dropGot, dragGot, youngest);\n }\n }\n else if (this.activeDz === this.parentDz) {\n if (dropNode.parent == null) {\n that.insertBetweenTypes(that.currentHierarchy.code, \"ROOT\", dragGot, dropGot);\n }\n else {\n that.insertBetweenTypes(that.currentHierarchy.code, dropNode.parent.data.geoObjectType, dragGot, dropGot);\n }\n }\n else if (this.activeDz === \"sibling\") {\n that.addChild(that.currentHierarchy.code, dropNode.parent.data.geoObjectType, d3.select(dragEl).attr(\"id\"));\n }\n }\n this.clearDropZones();\n this.clearGhostNodes(true);\n }, clearDropZones: function() {\n if (this.dropEl != null) {\n this.dropEl.attr(\"stroke\", null);\n }\n\n this.dropEl = null;\n this.activeDz = null;\n\n this.childDz = null;\n this.parentDz = null;\n\n d3.select(\".svg-dropZone-g\").remove();\n\n }, clearGhostNodes: function(renderTree: boolean) {\n if (this.ghostCode != null) {\n let ghostNode = that.primarySvgHierarchy.getD3Tree().find((node) => { return node.data.ghostingCode === this.ghostCode; });\n\n if (ghostNode != null) {\n let parentIndex = null;\n for (let i = 0; i < ghostNode.parent.data.children.length; ++i) {\n let hn: any = ghostNode.parent.data.children[i];\n\n if (hn.ghostingCode === this.ghostCode) {\n parentIndex = i;\n }\n };\n\n if (parentIndex != null) {\n ghostNode.parent.data.children.splice(parentIndex, 1);\n if (renderTree) {\n that.renderTree();\n }\n }\n }\n\n this.ghostCode = null;\n }\n }\n });\n\n // GeoObjectTypes and Hierarchies\n let deltaX: number, deltaY: number, width: number;\n let sidebarDragHandler = d3.drag()\n .on(\"start\", function(event: any) {\n let canDrag = d3.select(this).attr(\"data-candrag\");\n if (canDrag === \"false\") {\n return;\n }\n\n let rect = this.getBoundingClientRect();\n deltaX = rect.left - event.sourceEvent.pageX;\n deltaY = rect.top - event.sourceEvent.pageY;\n width = rect.width;\n })\n .on(\"drag\", function(event: any) {\n let canDrag = d3.select(this).attr(\"data-candrag\");\n if (canDrag === \"false\") {\n return;\n }\n\n d3.select(\".g-context-menu\").remove();\n\n let selThis = d3.select(this);\n\n // Kind of a dumb hack, but if we hide our drag element for a sec, then we can check what's underneath it.\n selThis.style(\"display\", \"none\");\n\n let target = document.elementFromPoint(event.sourceEvent.pageX, event.sourceEvent.pageY);\n\n selThis.style(\"display\", null);\n\n for (let i = 0; i < dropTargets.length; ++i) {\n dropTargets[i].onDrag(this, target, event);\n }\n\n // Move the GeoObjectType with the pointer when they move their mouse\n selThis\n .classed(\"dragging\", true)\n .style(\"left\", (event.sourceEvent.pageX + deltaX) + \"px\")\n .style(\"top\", (event.sourceEvent.pageY + deltaY) + \"px\")\n .style(\"width\", width + \"px\");\n\n // If they are moving a GOT group then we have to move the children as well \n if (selThis.classed(\"got-group-parent\")) {\n let index = 1;\n d3.selectAll('.got-group-child[data-superTypeCode=\"' + selThis.attr(\"id\") + '\"]').each(function() {\n let li: any = this;\n let child = d3.select(li);\n\n child\n .classed(\"dragging\", true)\n .style(\"left\", (event.sourceEvent.pageX + deltaX) + \"px\")\n .style(\"top\", (event.sourceEvent.pageY + deltaY + (li.getBoundingClientRect().height + 2) * index) + \"px\")\n .style(\"width\", width + \"px\");\n\n index++;\n });\n }\n }).on(\"end\", function(event: any) {\n let selThis = d3.select(this)\n .classed(\"dragging\", false)\n .style(\"left\", null)\n .style(\"top\", null)\n .style(\"width\", null);\n\n // If they are moving a GOT group then we have to reset the children as well \n if (selThis.classed(\"got-group-parent\")) {\n d3.selectAll('.got-group-child[data-superTypeCode=\"' + selThis.attr(\"id\") + '\"]').each(function() {\n let child = d3.select(this);\n\n child\n .classed(\"dragging\", false)\n .style(\"left\", null)\n .style(\"top\", null)\n .style(\"width\", null);\n });\n }\n\n for (let i = 0; i < dropTargets.length; ++i) {\n dropTargets[i].onDrop(this, event);\n }\n });\n\n sidebarDragHandler(d3.selectAll(\".sidebar-section-content ul.list-group li.got-li-item\"));\n }\n\n private registerSvgHandlers(): void {\n let hierarchyComponent = this;\n\n // SVG Drag Handler\n let deltaX: number, deltaY: number, width: number;\n let startPoint: any;\n let svgGot: SvgHierarchyNode;\n let svgDragHandler = d3.drag()\n .on(\"start\", function(event: any) {\n let svgMousePoint: any = svgPoint(event.sourceEvent.pageX, event.sourceEvent.pageY);\n // let select = d3.select(this);\n\n svgGot = hierarchyComponent.primarySvgHierarchy.getNodeByCode(d3.select(this).attr(\"data-gotCode\"));\n\n\n\n // d3.selectAll(\".svg-got-relatedhiers-button\").sort(function (a: any, b: any) {\n // if (a.data.geoObjectType !== event.subject.data.geoObjectType) {\n // return -1\n // }\n // else {\n // return 1\n // }\n // });\n\n // d3.selectAll(\".svg-got-body-rect\").sort(function (a: any, b: any) {\n // if (a.data.geoObjectType !== event.subject.data.geoObjectType) {\n // return -1\n // }\n // else {\n // return 1\n // }\n // });\n\n // d3.selectAll(\".svg-got-header-rect\").sort(function (a: any, b: any) {\n // if (a.data.geoObjectType !== event.subject.data.geoObjectType) {\n // console.log(\"no --> \",a.data.geoObjectType)\n // return -1\n // }\n // else {\n // console.log(\"yes --> \",a.data.geoObjectType)\n // return 1\n // }\n // });\n\n startPoint = svgGot.getPos();\n\n deltaX = startPoint.x - svgMousePoint.x;\n deltaY = startPoint.y - svgMousePoint.y;\n })\n .on(\"drag\", function(event: any) {\n\n d3.select(\".g-context-menu\").remove();\n\n let svgMousePoint = svgPoint(event.sourceEvent.pageX, event.sourceEvent.pageY);\n\n svgGot = hierarchyComponent.primarySvgHierarchy.getNodeByCode(d3.select(this).attr(\"data-gotCode\"));\n\n svgGot.setPos(svgMousePoint.x + deltaX, svgMousePoint.y + deltaY, true);\n\n }).on(\"end\", function(event: any) {\n\n let bbox: string[] = d3.select(\"#svg\").attr(\"viewBox\").split(\" \");\n\n svgGot.setPos(startPoint.x, startPoint.y, false);\n\n // if (!isBboxPartiallyWithin(svgGot.getBbox(), { x: parseInt(bbox[0]), y: parseInt(bbox[1]), width: parseInt(bbox[2]), height: parseInt(bbox[3]) })) {\n\n // if (hierarchyComponent.isOrganizationRA(hierarchyComponent.currentHierarchy.organizationCode)) {\n // let obj = hierarchyComponent.findGeoObjectTypeByCode(svgGot.getCode());\n\n // hierarchyComponent.bsModalRef = hierarchyComponent.modalService.show(ConfirmModalComponent, {\n // animated: true,\n // backdrop: true,\n // ignoreBackdropClick: true,\n // });\n\n // let message = hierarchyComponent.localizeService.decode(\"confirm.modal.verify.remove.hierarchy\");\n // message = message.replace(\"{label}\", obj.label.localizedValue);\n\n // hierarchyComponent.bsModalRef.content.message = message;\n // hierarchyComponent.bsModalRef.content.data = obj.code;\n\n // (hierarchyComponent.bsModalRef.content).onConfirm.subscribe(data => {\n // let treeNode = svgGot.getTreeNode();\n // let parent = null;\n // if (treeNode.parent == null) {\n // parent = \"ROOT\";\n // }\n // else {\n // if (treeNode.parent.data.inheritedHierarchyCode != null) {\n // parent = \"ROOT\";\n // }\n // else {\n // parent = treeNode.parent.data.geoObjectType;\n // }\n // }\n\n // hierarchyComponent.removeFromHierarchy(parent, svgGot.getCode(), (err: any) => { svgGot.setPos(startPoint.x, startPoint.y, false); });\n // });\n\n // (hierarchyComponent.bsModalRef.content).onCancel.subscribe(data => {\n // svgGot.setPos(startPoint.x, startPoint.y, false);\n // });\n // }\n // else {\n // svgGot.setPos(startPoint.x, startPoint.y, false);\n // }\n\n // }\n // else {\n // svgGot.setPos(startPoint.x, startPoint.y, false);\n // }\n\n });\n\n svgDragHandler(d3.selectAll(\".svg-got-body-rect[data-inherited=false],.svg-got-label-text[data-inherited=false],.svg-got-header-rect[data-inherited=false]\"));\n }\n\n public findGeoObjectTypeByCode(code: string): GeoObjectType {\n for (let i = 0; i < this.geoObjectTypes.length; ++i) {\n let got: GeoObjectType = this.geoObjectTypes[i];\n\n if (got.code === code) {\n return got;\n }\n }\n }\n\n public findHierarchyByCode(code: string): HierarchyType {\n for (let i = 0; i < this.hierarchies.length; ++i) {\n let ht: HierarchyType = this.hierarchies[i];\n\n if (ht.code === code) {\n return ht;\n }\n }\n }\n\n public findOrganizationByCode(code: string): Organization {\n for (let i = 0; i < this.organizations.length; ++i) {\n let org: Organization = this.organizations[i];\n\n if (org.code === code) {\n return org;\n }\n }\n }\n\n private addChild(hierarchyCode: string, parentGeoObjectTypeCode: string, childGeoObjectTypeCode: string): void {\n this.hierarchyService.addChildToHierarchy(hierarchyCode, parentGeoObjectTypeCode, childGeoObjectTypeCode).then((ht: HierarchyType) => {\n let got = this.findGeoObjectTypeByCode(childGeoObjectTypeCode);\n\n let index = null;\n for (let i = 0; i < got.relatedHierarchies.length; ++i) {\n if (got.relatedHierarchies[i] === hierarchyCode) {\n index = i;\n break;\n }\n }\n\n if (index == null) {\n got.relatedHierarchies.push(hierarchyCode);\n }\n\n this.refreshPrimaryHierarchy(ht);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n private insertBetweenTypes(hierarchyCode: string, parentGeoObjectTypeCode: string, middleGeoObjectTypeCode: string, youngestGeoObjectTypeCode: string): void {\n this.hierarchyService.insertBetweenTypes(hierarchyCode, parentGeoObjectTypeCode, middleGeoObjectTypeCode, youngestGeoObjectTypeCode).then((ht: HierarchyType) => {\n this.refreshPrimaryHierarchy(ht);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n ngAfterViewInit() {\n\n }\n\n isRA(): boolean {\n return this.authService.isRA();\n }\n\n isOrganizationRA(orgCode: string, dropZone: boolean = false): boolean {\n return this.isSRA || this.authService.isOrganizationRA(orgCode);\n }\n\n getTypesByOrg(org: Organization): GeoObjectType[] {\n let orgTypes: GeoObjectType[] = [];\n\n for (let i = 0; i < this.geoObjectTypes.length; ++i) {\n let geoObjectType: GeoObjectType = this.geoObjectTypes[i];\n\n if (geoObjectType.organizationCode === org.code) {\n orgTypes.push(geoObjectType);\n }\n }\n\n return orgTypes;\n }\n\n getHierarchiesByOrg(org: Organization): HierarchyType[] {\n let orgHierarchies: HierarchyType[] = [];\n\n for (let i = 0; i < this.hierarchies.length; ++i) {\n let hierarchy: HierarchyType = this.hierarchies[i];\n\n if (hierarchy.organizationCode === org.code) {\n orgHierarchies.push(hierarchy);\n }\n }\n\n return orgHierarchies;\n }\n\n public refreshAll(desiredHierarchy: HierarchyType) {\n\n // Clear the types to then refresh\n this.geoObjectTypes = [];\n\n this.registryService.init().then(response => {\n this.localizeService.setLocales(response.locales);\n\n this.setGeoObjectTypes(response.types);\n\n this.organizations = response.organizations;\n\n this.organizations.forEach(org => {\n if (this.isOrganizationRA(org.code)) {\n this.userOrganization = org.code;\n }\n })\n\n let pos = this.getGeoObjectTypePosition(\"ROOT\");\n if (pos) {\n this.geoObjectTypes.splice(pos, 1);\n }\n\n this.setHierarchies(response.hierarchies);\n\n this.setNodesOnInit(desiredHierarchy);\n\n this.updateViewDatastructures();\n\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n public setGeoObjectTypes(types: GeoObjectType[]): void {\n\n // Set group parent types\n this.setAbstractTypes(types);\n\n // Set GeoObjectTypes that aren't part of a group.\n types.forEach(type => {\n if (!type.isAbstract) {\n if (!type.superTypeCode) {\n this.geoObjectTypes.push(type);\n }\n }\n });\n\n // Sort aphabetically because all other types to add will be children in a group.\n this.geoObjectTypes.sort((a, b) => {\n if (a.label.localizedValue.toLowerCase() < b.label.localizedValue.toLowerCase()) return -1;\n else if (a.label.localizedValue.toLowerCase() > b.label.localizedValue.toLowerCase()) return 1;\n else return 0;\n });\n\n // Add group children\n types.forEach(type => {\n if (!type.isAbstract) {\n if (type.superTypeCode && type.superTypeCode.length > 0) {\n\n for (let i = 0; i < this.geoObjectTypes.length; i++) {\n let setType = this.geoObjectTypes[i];\n if (type.superTypeCode === setType.code) {\n this.geoObjectTypes.splice(i + 1, 0, type);\n }\n }\n\n }\n }\n });\n\n }\n\n private setAbstractTypes(types: GeoObjectType[]): void {\n types.forEach(type => {\n if (type.isAbstract) {\n this.geoObjectTypes.push(type);\n }\n });\n }\n\n public updateViewDatastructures(): void {\n this.hierarchiesByOrg = [];\n this.typesByOrg = [];\n\n for (let i = 0; i < this.organizations.length; ++i) {\n let org: Organization = this.organizations[i];\n\n this.hierarchiesByOrg.push({ org: org, hierarchies: this.getHierarchiesByOrg(org) });\n this.typesByOrg.push({ org: org, types: this.getTypesByOrg(org) });\n }\n\n this.geoObjectTypes.forEach((got: GeoObjectType) => {\n got.canDrag = this.calculateCanDrag(got);\n got.relatedHierarchies = this.calculateRelatedHierarchies(got);\n });\n\n this.onFilterChange();\n }\n\n public excludeHierarchyTypeDeletes(hierarchy: HierarchyType) {\n return (this.hierarchyTypeDeleteExclusions.indexOf(hierarchy.code) !== -1);\n }\n\n public excludeGeoObjectTypeDeletes(geoObjectType: GeoObjectType) {\n return (this.geoObjectTypeDeleteExclusions.indexOf(geoObjectType.code) !== -1);\n }\n\n private setNodesOnInit(desiredHierarchy: HierarchyType): void {\n\n let index = -1;\n\n if (desiredHierarchy != null) {\n index = this.hierarchies.findIndex(h => h.code === desiredHierarchy.code);\n }\n else if (this.hierarchies.length > 0) {\n index = 0;\n }\n\n if (index > -1) {\n const hierarchy = this.hierarchies[index];\n\n this.setCurrentHierarchy(hierarchy);\n\n this.renderTree();\n }\n }\n\n private getHierarchy(hierarchyId: string): HierarchyType {\n let target: HierarchyType = null;\n this.hierarchies.forEach(hierarchy => {\n if (hierarchyId === hierarchy.code) {\n target = hierarchy;\n }\n });\n\n return target;\n }\n\n private setHierarchies(data: HierarchyType[]): void {\n let hierarchies: HierarchyType[] = [];\n data.forEach((hierarchyType, index) => {\n\n if (hierarchyType.rootGeoObjectTypes.length > 0) {\n hierarchyType.rootGeoObjectTypes.forEach(rootGeoObjectType => {\n this.processHierarchyNodes(rootGeoObjectType);\n })\n }\n\n hierarchies.push(hierarchyType);\n\n });\n\n this.hierarchies = hierarchies\n\n this.hierarchies.sort((a, b) => {\n if (a.label.localizedValue.toLowerCase() < b.label.localizedValue.toLowerCase()) return -1;\n else if (a.label.localizedValue.toLowerCase() > b.label.localizedValue.toLowerCase()) return 1;\n else return 0;\n });\n }\n\n private processHierarchyNodes(node: HierarchyNode) {\n if (node != null) {\n node.label = this.getHierarchyLabel(node.geoObjectType);\n\n node.children.forEach(child => {\n this.processHierarchyNodes(child);\n })\n }\n }\n\n private getHierarchyLabel(geoObjectTypeCode: string): string {\n let label: string = null;\n this.geoObjectTypes.forEach(function(gOT) {\n if (gOT.code === geoObjectTypeCode) {\n label = gOT.label.localizedValue;\n }\n });\n\n return label;\n }\n\n public handleOnMenu(node: any, $event: any): void {\n if (this.isOrganizationRA(this.currentHierarchy.organizationCode)) {\n this.contextMenuService.show.next({\n contextMenu: (node.data.childType !== null ? this.nodeMenuComponent : this.leafMenuComponent),\n event: $event,\n item: node,\n });\n $event.preventDefault();\n $event.stopPropagation();\n }\n else {\n $event.preventDefault();\n $event.stopPropagation();\n }\n }\n\n public treeNodeOnClick(node: any, $event: any): void {\n\n node.treeModel.setFocusedNode(node);\n\n if (node.treeModel.isExpanded(node)) {\n node.collapse();\n }\n else {\n node.treeModel.expandAll();\n }\n }\n\n public hierarchyOnClick(event: any, item: HierarchyType) {\n this.setCurrentHierarchy(item);\n this.renderTree();\n }\n\n public createHierarchy(): void {\n this.bsModalRef = this.modalService.show(CreateHierarchyTypeModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true,\n 'class': 'upload-modal'\n });\n\n (this.bsModalRef.content).onHierarchytTypeCreate.subscribe(data => {\n\n this.hierarchies.push(data);\n\n this.hierarchies.sort((a: HierarchyType, b: HierarchyType) => {\n var nameA = a.label.localizedValue.toUpperCase(); // ignore upper and lowercase\n var nameB = b.label.localizedValue.toUpperCase(); // ignore upper and lowercase\n\n if (nameA < nameB) {\n return -1; //nameA comes first\n }\n\n if (nameA > nameB) {\n return 1; // nameB comes first\n }\n\n return 0; // names must be equal\n });\n\n this.updateViewDatastructures();\n });\n }\n\n public deleteHierarchyType(obj: HierarchyType): void {\n this.bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true,\n });\n this.bsModalRef.content.message = this.localizeService.decode(\"confirm.modal.verify.delete\") + ' [' + obj.label.localizedValue + ']';\n this.bsModalRef.content.data = obj.code;\n this.bsModalRef.content.type = \"DANGER\";\n this.bsModalRef.content.submitText = this.localizeService.decode(\"modal.button.delete\");\n\n (this.bsModalRef.content).onConfirm.subscribe(data => {\n this.removeHierarchyType(data);\n });\n }\n\n public editHierarchyType(obj: HierarchyType, readOnly: boolean): void {\n\n this.bsModalRef = this.modalService.show(CreateHierarchyTypeModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true,\n 'class': 'upload-modal'\n });\n this.bsModalRef.content.edit = true;\n this.bsModalRef.content.readOnly = readOnly;\n this.bsModalRef.content.hierarchyType = obj;\n this.bsModalRef.content.onHierarchytTypeCreate.subscribe(data => {\n let pos = this.getHierarchyTypePosition(data.code);\n\n this.hierarchies[pos].label = data.label;\n this.hierarchies[pos].description = data.description;\n this.hierarchies[pos].progress = data.progress;\n this.hierarchies[pos].acknowledgement = data.acknowledgement;\n this.hierarchies[pos].disclaimer = data.disclaimer;\n this.hierarchies[pos].useConstraints = data.useConstraints;\n this.hierarchies[pos].accessConstraints = data.accessConstraints;\n this.hierarchies[pos].contact = data.contact;\n this.hierarchies[pos].phoneNumber = data.phoneNumber;\n this.hierarchies[pos].email = data.email;\n\n this.updateViewDatastructures();\n\n if (this.currentHierarchy.code === data.code) {\n this.setCurrentHierarchy(this.hierarchies[pos]);\n\n this.renderTree();\n }\n });\n }\n\n setCurrentHierarchy(hierarchyType: HierarchyType): void {\n this.currentHierarchy = hierarchyType;\n }\n\n isPrimaryHierarchy(hierarchy: HierarchyType): boolean {\n // return hierarchy.isPrimary;\n return hierarchy.code === this.currentHierarchy.code;\n }\n\n public removeHierarchyType(code: string): void {\n this.hierarchyService.deleteHierarchyType(code).then(response => {\n\n let pos = this.getHierarchyTypePosition(code);\n this.hierarchies.splice(pos, 1);\n this.updateViewDatastructures();\n\n if (this.hierarchies.length > 0) {\n this.setCurrentHierarchy(this.hierarchies[0]);\n }\n else {\n this.currentHierarchy = null;\n }\n\n this.renderTree();\n\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n public createGeoObjectType(groupSuperType: GeoObjectType, isAbstract: boolean, org: Organization): void {\n this.bsModalRef = this.modalService.show(CreateGeoObjTypeModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true,\n 'class': 'upload-modal'\n });\n this.bsModalRef.content.init(org, this.geoObjectTypes, groupSuperType, isAbstract);\n\n this.bsModalRef.content.onGeoObjTypeCreate.subscribe(data => {\n\n data.relatedHierarchies = this.calculateRelatedHierarchies(data);\n\n this.refreshAll(this.currentHierarchy);\n\n });\n }\n\n public deleteGeoObjectType(obj: GeoObjectType): void {\n this.bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true,\n });\n this.bsModalRef.content.message = this.localizeService.decode(\"confirm.modal.verify.delete\") + ' [' + obj.label.localizedValue + ']';\n this.bsModalRef.content.data = obj.code;\n this.bsModalRef.content.submitText = this.localizeService.decode(\"modal.button.delete\");\n this.bsModalRef.content.type = ModalTypes.danger;\n\n (this.bsModalRef.content).onConfirm.subscribe(data => {\n this.removeGeoObjectType(data);\n });\n }\n\n public removeGeoObjectType(code: string, errCallback: (err: HttpErrorResponse) => void = null): void {\n this.registryService.deleteGeoObjectType(code).then(response => {\n\n let pos = this.getGeoObjectTypePosition(code);\n this.geoObjectTypes.splice(pos, 1);\n\n this.refreshAll(this.currentHierarchy);\n\n }).catch((err: HttpErrorResponse) => {\n if (errCallback != null) {\n errCallback(err);\n }\n this.error(err);\n });\n }\n\n public manageGeoObjectType(geoObjectType: GeoObjectType, readOnly: boolean): void {\n\n this.bsModalRef = this.modalService.show(ManageGeoObjectTypeModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true,\n 'class': 'manage-geoobjecttype-modal'\n });\n\n geoObjectType.attributes.sort((a, b) => {\n if (a.label.localizedValue < b.label.localizedValue) return -1;\n else if (a.label.localizedValue > b.label.localizedValue) return 1;\n else return 0;\n });\n this.bsModalRef.content.geoObjectType = geoObjectType;\n this.bsModalRef.content.readOnly = readOnly;\n\n (this.bsModalRef.content).onGeoObjectTypeSubmitted.subscribe(data => {\n\n if (data.isAbstract) {\n this.refreshAll(this.currentHierarchy);\n }\n else {\n const position = this.getGeoObjectTypePosition(data.code);\n\n if (position !== -1) {\n this.geoObjectTypes[position] = data;\n }\n\n // Update all of the hierarchies for the new geo object type\n this.updateViewDatastructures();\n\n this.hierarchies.forEach((hierarchyType: HierarchyType) => {\n this.processHierarchyNodes(hierarchyType.rootGeoObjectTypes[0]);\n });\n\n // Update the current hierarchy view\n if (this.currentHierarchy != null) {\n this.processHierarchyNodes(this.currentHierarchy.rootGeoObjectTypes[0]);\n }\n\n this.renderTree();\n }\n });\n }\n\n private getHierarchyTypePosition(code: string): number {\n for (let i = 0; i < this.hierarchies.length; i++) {\n let obj = this.hierarchies[i];\n if (obj.code === code) {\n return i;\n }\n }\n }\n\n private getGeoObjectTypePosition(code: string): number {\n for (let i = 0; i < this.geoObjectTypes.length; i++) {\n let obj = this.geoObjectTypes[i];\n if (obj.code === code) {\n return i;\n }\n }\n\n return null;\n }\n\n public refreshPrimaryHierarchy(hierarchyType: HierarchyType) {\n this.processHierarchyNodes(hierarchyType.rootGeoObjectTypes[0]);\n\n for (let i = 0; i < this.hierarchies.length; ++i) {\n let hierarchy = this.hierarchies[i];\n\n if (hierarchy.code === hierarchyType.code) {\n this.hierarchies[i] = hierarchyType;\n\n this.setCurrentHierarchy(hierarchyType);\n }\n }\n\n this.updateViewDatastructures();\n\n this.renderTree();\n }\n\n public removeFromHierarchy(parentGotCode, gotCode, errCallback: (err: HttpErrorResponse) => void = null): void {\n const that = this;\n\n this.hierarchyService.removeFromHierarchy(this.currentHierarchy.code, parentGotCode, gotCode).then(hierarchyType => {\n\n let got = that.findGeoObjectTypeByCode(gotCode);\n\n let index = null;\n for (let i = 0; i < got.relatedHierarchies.length; ++i) {\n if (got.relatedHierarchies[i] === hierarchyType.code) {\n index = i;\n break;\n }\n }\n\n if (index != null) {\n got.relatedHierarchies.splice(index, 1);\n }\n\n that.refreshPrimaryHierarchy(hierarchyType);\n\n }).catch((err: HttpErrorResponse) => {\n if (errCallback != null) {\n errCallback(err);\n }\n\n this.error(err);\n });\n }\n\n public isActive(item: HierarchyType) {\n return this.currentHierarchy === item;\n };\n\n onFilterChange(): void {\n const label = this.filter.toLowerCase();\n\n this.filteredHierarchiesByOrg = [];\n this.filteredTypesByOrg = [];\n\n this.hierarchiesByOrg.forEach((item: { org: Organization, hierarchies: HierarchyType[] }) => {\n\n const filtered = item.hierarchies.filter((hierarchy: HierarchyType) => {\n const index = hierarchy.label.localizedValue.toLowerCase().indexOf(label);\n\n return (index !== -1);\n });\n\n this.filteredHierarchiesByOrg.push({ org: item.org, hierarchies: filtered });\n });\n\n this.typesByOrg.forEach((item: { org: Organization, types: GeoObjectType[] }) => {\n\n const filtered = item.types.filter((type: GeoObjectType) => {\n const index = type.label.localizedValue.toLowerCase().indexOf(label);\n\n return (index !== -1);\n });\n\n this.filteredTypesByOrg.push({ org: item.org, types: filtered });\n });\n\n setTimeout(() => { this.registerDragHandlers(); }, 500);\n }\n\n handleInheritHierarchy(hierarchyTypeCode: string, inheritedHierarchyTypeCode: string, geoObjectTypeCode: string) {\n this.hierarchyService.setInheritedHierarchy(hierarchyTypeCode, inheritedHierarchyTypeCode, geoObjectTypeCode).then((ht: HierarchyType) => {\n this.refreshPrimaryHierarchy(ht);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n handleUninheritHierarchy(hierarchyTypeCode: string, geoObjectTypeCode: string) {\n this.hierarchyService.removeInheritedHierarchy(hierarchyTypeCode, geoObjectTypeCode).then((ht: HierarchyType) => {\n this.refreshPrimaryHierarchy(ht);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n public importTypes(): void {\n this.bsModalRef = this.modalService.show(ImportTypesModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true,\n 'class': 'upload-modal'\n });\n\n this.bsModalRef.content.init(this.organizations);\n\n this.bsModalRef.content.onNodeChange.subscribe(data => {\n // Reload the page\n this.refreshAll(null);\n });\n }\n\n\n\n public error(err: HttpErrorResponse): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n}\n","
\n\t\n\n\t\n\n\t
\n\n\t\t\n\t\t
\n\n\t\t\t\n\n\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t\t
\n
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n
\n
\n

\n \n

\n
\n
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
\n\n
\n","import { ChangeType } from \"@registry/model/constants\";\nimport { ChangeRequest } from \"@registry/model/crtable\";\nimport { AttributeType, GeoObjectOverTime, GeoObjectType, HierarchyOverTime, ValueOverTime } from \"@registry/model/registry\";\nimport { DateService, LocalizationService } from \"@shared/service\";\nimport { Subject } from \"rxjs\";\nimport { ChangeRequestChangeOverTimeAttributeEditor } from \"./change-request-change-over-time-attribute-editor\";\nimport { StandardAttributeCRModel } from \"./StandardAttributeCRModel\";\nimport { ValueOverTimeCREditor } from \"./ValueOverTimeCREditor\";\n\nexport class ChangeRequestEditor {\n\n changeRequest: ChangeRequest;\n\n // eslint-disable-next-line no-undef\n attributeEditors: (ChangeRequestChangeOverTimeAttributeEditor | StandardAttributeCRModel)[];\n\n geometryAttributeType: AttributeType;\n\n parentAttributeType: AttributeType;\n\n geoObject: GeoObjectOverTime;\n\n geoObjectType: GeoObjectType;\n\n hierarchies: HierarchyOverTime[];\n\n private _isValid: boolean;\n\n onChangeSubject : Subject = new Subject();\n\n localizationService: LocalizationService;\n\n dateService: DateService;\n\n constructor(changeRequest: ChangeRequest, geoObject: GeoObjectOverTime, geoObjectType: GeoObjectType, hierarchies: HierarchyOverTime[], geometryAttributeType: AttributeType, parentAttributeType: AttributeType, localizationService: LocalizationService, dateService: DateService) {\n this.changeRequest = changeRequest;\n this.geoObject = geoObject;\n this.geoObjectType = geoObjectType;\n this.geometryAttributeType = geometryAttributeType;\n this.parentAttributeType = parentAttributeType;\n this.hierarchies = hierarchies;\n this.localizationService = localizationService;\n this.dateService = dateService;\n\n this.attributeEditors = this.generateAttributeEditors();\n this.validate();\n }\n\n private generateAttributeEditors() {\n let geoObjectAttributeExcludes: string[] = [\"uid\", \"sequence\", \"type\", \"lastUpdateDate\", \"createDate\"];\n\n let editors = [];\n\n let attrs = this.geoObjectType.attributes.slice(); // intentionally a shallow copy\n attrs = attrs.filter(attr => geoObjectAttributeExcludes.indexOf(attr.code) === -1);\n attrs.push(this.geometryAttributeType);\n attrs.push(this.parentAttributeType);\n\n attrs.forEach(attr => {\n if (attr.code !== \"_PARENT_\") {\n if (attr.isChangeOverTime) {\n let editor = new ChangeRequestChangeOverTimeAttributeEditor(this, attr, null);\n\n editors.push(editor);\n } else {\n let editor = new StandardAttributeCRModel(attr, this.geoObject, this.changeRequest);\n\n editors.push(editor);\n }\n } else {\n this.hierarchies.forEach(hierarchy => {\n let editor = new ChangeRequestChangeOverTimeAttributeEditor(this, attr, hierarchy);\n\n editors.push(editor);\n });\n }\n });\n\n return editors;\n }\n\n public hasChanges(): boolean {\n let hasChanges = false;\n\n this.attributeEditors.forEach(attributeEditor => {\n if (attributeEditor.hasChanges()) {\n hasChanges = true;\n }\n });\n\n return hasChanges;\n }\n\n public isValid(): boolean {\n return this._isValid;\n }\n\n public validate(skipExists: boolean = false): boolean {\n this._isValid = true;\n\n this.attributeEditors.forEach(attributeEditor => {\n if (!skipExists || attributeEditor.attribute.code !== \"exists\") {\n attributeEditor.validate(true);\n\n if (!attributeEditor.isValid()) {\n this._isValid = false;\n }\n }\n });\n\n return this._isValid;\n }\n\n findExistingValueOverTimeByOid(oid: string, attributeCode: string) {\n if (this.geoObject.attributes[attributeCode]) {\n let index = this.geoObject.attributes[attributeCode].values.findIndex((vot: ValueOverTime) => vot.oid === oid);\n\n if (index !== -1) {\n return this.geoObject.attributes[attributeCode].values[index];\n }\n }\n\n return null;\n }\n\n public getEditorForAttribute(attribute: AttributeType, hierarchy: HierarchyOverTime = null): ChangeRequestChangeOverTimeAttributeEditor | StandardAttributeCRModel {\n let indexOf = this.attributeEditors.findIndex(editor => (!editor.attribute.isChangeOverTime || (hierarchy == null && (editor as ChangeRequestChangeOverTimeAttributeEditor).hierarchy == null) || ((editor as ChangeRequestChangeOverTimeAttributeEditor).hierarchy != null && (editor as ChangeRequestChangeOverTimeAttributeEditor).hierarchy.code === hierarchy.code)) && editor.attribute.code === attribute.code);\n\n if (indexOf === -1) {\n return null;\n } else {\n return this.attributeEditors[indexOf];\n }\n }\n\n public getEditors(): (ChangeRequestChangeOverTimeAttributeEditor | StandardAttributeCRModel)[] {\n return this.attributeEditors;\n }\n\n public onChange(type: ChangeType) {\n this.onChangeSubject.next(type);\n }\n\n public existsAtDate(date: string) {\n let existsAttribute: AttributeType = GeoObjectType.getAttribute(this.geoObjectType, \"exists\");\n let existEditors = (this.getEditorForAttribute(existsAttribute) as ChangeRequestChangeOverTimeAttributeEditor).getEditors();\n\n let valLen = existEditors.length;\n for (let j = 0; j < valLen; ++j) {\n let editor: ValueOverTimeCREditor = existEditors[j];\n\n if (editor.startDate != null && editor.endDate != null && !editor.isDelete() && editor.value === true && this.dateService.between(date, editor.startDate, editor.endDate)) {\n return true;\n }\n }\n\n return false;\n }\n\n}\n","///\n/// Copyright (c) 2015 TerraFrame, Inc. All rights reserved.\n///\n/// This file is part of Runway SDK(tm).\n///\n/// Runway SDK(tm) is free software: you can redistribute it and/or modify\n/// it under the terms of the GNU Lesser General Public License as\n/// published by the Free Software Foundation, either version 3 of the\n/// License, or (at your option) any later version.\n///\n/// Runway SDK(tm) is distributed in the hope that it will be useful, but\n/// WITHOUT ANY WARRANTY; without even the implied warranty of\n/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n/// GNU Lesser General Public License for more details.\n///\n/// You should have received a copy of the GNU Lesser General Public\n/// License along with Runway SDK(tm). If not, see .\n///\n\nimport { Injectable } from \"@angular/core\";\nimport { HttpHeaders, HttpClient, HttpParams } from \"@angular/common/http\";\n// import 'rxjs/add/operator/toPromise';\nimport { finalize } from \"rxjs/operators\";\n\nimport { HierarchyType, HierarchyGroupedTypeView } from \"@registry/model/hierarchy\";\nimport { TreeEntity } from \"@registry/model/registry\";\nimport { EventService } from \"@shared/service\";\n\ndeclare var acp: any;\n\n@Injectable()\nexport class HierarchyService {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private http: HttpClient, private eventService: EventService) { }\n\n getHierarchyTypes(types: any): Promise {\n let params: HttpParams = new HttpParams();\n params = params.set(\"types\", JSON.stringify(types));\n\n return this.http\n .get(acp + \"/cgr/hierarchytype/get-all\", { params: params })\n .toPromise();\n }\n\n getHierarchyGroupedTypes(): Promise {\n let params: HttpParams = new HttpParams();\n\n return this.http\n .get(acp + \"/hierarchy/groupedTypes\", { params: params })\n .toPromise();\n }\n\n addChildToHierarchy(hierarchyCode: string, parentGeoObjectTypeCode: string, childGeoObjectTypeCode: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/cgr/hierarchytype/add\", JSON.stringify({ hierarchyCode: hierarchyCode, parentGeoObjectTypeCode: parentGeoObjectTypeCode, childGeoObjectTypeCode: childGeoObjectTypeCode }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n insertBetweenTypes(hierarchyCode: string, parentGeoObjectTypeCode: string, middleGeoObjectTypeCode: string, youngestGeoObjectTypeCode: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/hierarchy/insertBetweenTypes\", JSON.stringify({ hierarchyCode: hierarchyCode, parentGeoObjectTypeCode: parentGeoObjectTypeCode, middleGeoObjectTypeCode: middleGeoObjectTypeCode, youngestGeoObjectTypeCode: youngestGeoObjectTypeCode }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n removeFromHierarchy(hierarchyCode: string, parentGeoObjectTypeCode: string, childGeoObjectTypeCode: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/cgr/hierarchytype/remove\", JSON.stringify({ hierarchyCode: hierarchyCode, parentGeoObjectTypeCode: parentGeoObjectTypeCode, childGeoObjectTypeCode: childGeoObjectTypeCode }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n createHierarchyType(htJSON: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/cgr/hierarchytype/create\", JSON.stringify({ htJSON: htJSON }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n updateHierarchyType(htJSON: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/cgr/hierarchytype/update\", JSON.stringify({ htJSON: htJSON }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n deleteHierarchyType(code: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/cgr/hierarchytype/delete\", { code: code }, { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n setInheritedHierarchy(hierarchyTypeCode: string, inheritedHierarchyTypeCode: string, geoObjectTypeCode: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/hierarchy/setInherited\", JSON.stringify({ hierarchyTypeCode: hierarchyTypeCode, inheritedHierarchyTypeCode: inheritedHierarchyTypeCode, geoObjectTypeCode: geoObjectTypeCode }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n removeInheritedHierarchy(hierarchyTypeCode: string, geoObjectTypeCode: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/hierarchy/removeInherited\", JSON.stringify({ hierarchyTypeCode: hierarchyTypeCode, geoObjectTypeCode: geoObjectTypeCode }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n}\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpHeaders, HttpClient, HttpParams } from \"@angular/common/http\";\r\nimport { finalize } from \"rxjs/operators\";\r\n\r\nimport { ImportConfiguration, Synonym, Location, Term } from \"@registry/model/io\";\r\nimport { EventService } from \"@shared/service\";\r\n\r\ndeclare let acp: string;\r\n\r\n@Injectable()\r\nexport class IOService {\r\n\r\n constructor(private http: HttpClient, private eventService: EventService) { }\r\n\r\n importSpreadsheet(configuration: ImportConfiguration): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/etl/import\", JSON.stringify({ json: configuration }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n cancelImport(configuration: ImportConfiguration): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/etl/cancel-import\", JSON.stringify({ configuration: configuration }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n importShapefile(configuration: ImportConfiguration): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/etl/import\", JSON.stringify({ json: configuration }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n listGeoObjectTypes(includeAbstractTypes: boolean): Promise<{ label: string, code: string, orgCode: string, superTypeCode?: string }[]> {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"includeAbstractTypes\", includeAbstractTypes.toString());\r\n\r\n return this.http\r\n .get<{ label: string, code: string, orgCode: string }[]>(acp + \"/cgr/geoobjecttype/list-types\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getTypeAncestors(code: string, hierarchyCode: string, includeInheritedTypes: boolean): Promise {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"code\", code);\r\n params = params.set(\"hierarchyCode\", hierarchyCode);\r\n params = params.set(\"includeInheritedTypes\", includeInheritedTypes.toString());\r\n\r\n return this.http\r\n .get(acp + \"/cgr/geoobjecttype/get-ancestors\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getHierarchiesForType(code: string, includeTypes: boolean): Promise<{ label: string, code: string, parents: { label: string, code: string }[] }[]> {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"code\", code);\r\n params = params.set(\"includeTypes\", includeTypes.toString());\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .get<{ label: string, code: string, parents: { label: string, code: string }[] }[]>(acp + \"/cgr/geoobjecttype/get-hierarchies\", { params: params })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n getHierarchiesForSubtypes(code: string, includeTypes: boolean): Promise<{ label: string, code: string, parents: { label: string, code: string }[] }[]> {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"code\", code);\r\n params = params.set(\"includeTypes\", includeTypes.toString());\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .get<{ label: string, code: string, parents: { label: string, code: string }[] }[]>(acp + \"/cgr/geoobjecttype/get-subtype-hierarchies\", { params: params })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n getGeoObjectSuggestions(text: string, type: string, parent: string, hierarchy: string): Promise {\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n let params = {\r\n text: text,\r\n type: type\r\n } as any;\r\n\r\n if (parent != null && hierarchy != null) {\r\n params.parent = parent;\r\n params.hierarchy = parent;\r\n }\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobject/suggestions\", JSON.stringify(params), { headers: headers })\r\n .toPromise();\r\n }\r\n\r\n createGeoObjectSynonym(entityId: string, label: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/geo-synonym/createGeoEntitySynonym\", JSON.stringify({ entityId: entityId, label: label }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n deleteGeoObjectSynonym(synonymId: string, vOid: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/geo-synonym/deleteGeoEntitySynonym\", JSON.stringify({ synonymId: synonymId, vOid: vOid }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n getTermSuggestions(mdAttributeId: string, text: string, limit: string): Promise<{ text: string, data: any }[]> {\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"mdAttributeId\", mdAttributeId);\r\n params = params.set(\"text\", text);\r\n params = params.set(\"limit\", limit);\r\n\r\n return this.http\r\n .get<{ text: string, data: any }[]>(acp + \"/uploader/getClassifierSuggestions\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n createTermSynonym(classifierId: string, label: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n let data = JSON.stringify({ classifierId: classifierId, label: label });\r\n\r\n return this.http\r\n .post(acp + \"/uploader/createClassifierSynonym\", data, { headers: headers })\r\n .toPromise();\r\n }\r\n\r\n deleteTermSynonym(synonymId: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n let data = JSON.stringify({ synonymId: synonymId });\r\n\r\n return this.http\r\n .post(acp + \"/uploader/deleteClassifierSynonym\", data, { headers: headers })\r\n .toPromise();\r\n }\r\n\r\n createTerm(label: string, code: string, parentTermCode: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n let params = { parentTermCode: parentTermCode, termJSON: { label: label, code: code } };\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobjecttype/addterm\", JSON.stringify(params), { headers: headers })\r\n .toPromise();\r\n }\r\n\r\n removeTerm(parentTermCode: string, termCode: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobjecttype/deleteterm\", JSON.stringify({ parentTermCode: parentTermCode, termCode: termCode }), { headers: headers })\r\n .toPromise();\r\n }\r\n\r\n}\r\n","///\n/// Copyright (c) 2015 TerraFrame, Inc. All rights reserved.\n///\n/// This file is part of Runway SDK(tm).\n///\n/// Runway SDK(tm) is free software: you can redistribute it and/or modify\n/// it under the terms of the GNU Lesser General Public License as\n/// published by the Free Software Foundation, either version 3 of the\n/// License, or (at your option) any later version.\n///\n/// Runway SDK(tm) is distributed in the hope that it will be useful, but\n/// WITHOUT ANY WARRANTY; without even the implied warranty of\n/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n/// GNU Lesser General Public License for more details.\n///\n/// You should have received a copy of the GNU Lesser General Public\n/// License along with Runway SDK(tm). If not, see .\n///\n\nimport { Injectable } from \"@angular/core\";\nimport { HttpClient, HttpParams } from \"@angular/common/http\";\n// import 'rxjs/add/operator/toPromise';\n\nimport { EventService } from \"@shared/service\";\n\nimport { AllLocaleInfo } from \"@registry/model/localization-manager\";\n\ndeclare let acp: any;\n\n@Injectable()\nexport class LocalizationManagerService {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private http: HttpClient, private eventService: EventService) { }\n\n getNewLocaleInfo(): Promise {\n return this.http\n .get(acp + \"/localization/getNewLocaleInformation\")\n .toPromise();\n }\n\n installLocale(language: string, country: string, variant: string): Promise {\n let params: HttpParams = new HttpParams();\n\n if (language != null) {\n params = params.set(\"language\", language);\n }\n\n if (country != null) {\n params = params.set(\"country\", country);\n }\n\n if (variant != null) {\n params = params.set(\"variant\", variant);\n }\n\n return this.http\n .get(acp + \"/localization/installLocale\", { params: params })\n .toPromise();\n }\n\n}\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpParams } from \"@angular/common/http\";\r\nimport { finalize } from \"rxjs/operators\";\r\nimport * as mapboxgl from \"mapbox-gl\";\r\n\r\nimport { LocationInformation } from \"@registry/model/location-manager\";\r\nimport { EventService } from \"@shared/service\";\r\nimport { GeoObject } from \"@registry/model/registry\";\n\r\ndeclare let acp: any;\r\n\r\n@Injectable()\r\nexport class MapService {\r\n\r\n constructor(private http: HttpClient, private eventService: EventService) {\r\n (mapboxgl as any).accessToken = \"pk.eyJ1IjoidGVycmFmcmFtZSIsImEiOiJjanZxNWE5bWkwazYwNGFtb3loOGxsbjR1In0.ZNEwT-pBnGookEb-BF_jQQ\";\r\n }\r\n\r\n roots(typeCode: string, hierarchyCode: string, date: string): Promise {\n let params: HttpParams = new HttpParams();\r\n\r\n if (typeCode != null) {\r\n params = params.set(\"typeCode\", typeCode);\r\n }\r\n\r\n if (hierarchyCode != null) {\r\n params = params.set(\"hierarchyCode\", hierarchyCode);\r\n }\r\n\r\n if (date != null) {\r\n params = params.set(\"date\", date);\r\n }\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .get(acp + \"/registrylocation/roots\", { params: params })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n search(text: string, date: string): Promise<{ type: string, features: GeoObject[] }> {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"text\", text);\r\n\r\n if (date != null) {\r\n params = params.set(\"date\", date);\r\n }\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .get<{ type: string, features: GeoObject[] }>(acp + \"/registrylocation/search\", { params: params })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n}\n","///\r\n/// Copyright (c) 2015 TerraFrame, Inc. All rights reserved.\r\n///\r\n/// This file is part of Runway SDK(tm).\r\n///\r\n/// Runway SDK(tm) is free software: you can redistribute it and/or modify\r\n/// it under the terms of the GNU Lesser General Public License as\r\n/// published by the Free Software Foundation, either version 3 of the\r\n/// License, or (at your option) any later version.\r\n///\r\n/// Runway SDK(tm) is distributed in the hope that it will be useful, but\r\n/// WITHOUT ANY WARRANTY; without even the implied warranty of\r\n/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n/// GNU Lesser General Public License for more details.\r\n///\r\n/// You should have received a copy of the GNU Lesser General Public\r\n/// License along with Runway SDK(tm). If not, see .\r\n///\r\n\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpHeaders, HttpClient, HttpParams } from \"@angular/common/http\";\r\n\r\nimport { Observable } from \"rxjs\";\r\nimport { finalize } from \"rxjs/operators\";\r\n\r\nimport {\r\n GeoObject, GeoObjectType, AttributeType, Term, MasterList, MasterListVersion, ParentTreeNode,\r\n ChildTreeNode, ValueOverTime, GeoObjectOverTime, HierarchyOverTime, ScheduledJob, PaginationPage,\r\n MasterListByOrg\r\n} from \"@registry/model/registry\";\r\n\r\nimport { HierarchyType } from \"@registry/model/hierarchy\";\r\nimport { Progress } from \"@shared/model/progress\";\r\n\r\nimport { Organization, LocaleView } from \"@shared/model/core\";\r\nimport { EventService } from \"@shared/service\";\r\n\r\ndeclare let acp: any;\r\n\r\n@Injectable()\r\nexport class RegistryService {\r\n\r\n // eslint-disable-next-line no-useless-constructor\r\n constructor(private http: HttpClient, private eventService: EventService) { }\r\n\r\n init(): Promise<{ types: GeoObjectType[], hierarchies: HierarchyType[], organizations: Organization[], locales: LocaleView[] }> {\r\n return this.http.get<{ types: GeoObjectType[], hierarchies: HierarchyType[], organizations: Organization[], locales: LocaleView[] }>(acp + \"/cgr/init\")\r\n .toPromise();\r\n }\r\n\r\n // param types: array of GeoObjectType codes. If empty array then all GeoObjectType objects are returned.\r\n getGeoObjectTypes(types: string[], hierarchies: string[]): Promise {\r\n let params: HttpParams = new HttpParams();\r\n\r\n if (types != null) {\r\n params = params.set(\"types\", JSON.stringify(types));\r\n }\r\n\r\n if (hierarchies != null) {\r\n params = params.set(\"hierarchies\", JSON.stringify(hierarchies));\r\n }\r\n\r\n return this.http\r\n .get(acp + \"/cgr/geoobjecttype/get-all\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getParentGeoObjects(childId: string, childTypeCode: string, parentTypes: any, recursive: boolean, date: string): Promise {\r\n let params: HttpParams = new HttpParams();\r\n\r\n params = params.set(\"childId\", childId);\r\n params = params.set(\"childTypeCode\", childTypeCode);\r\n params = params.set(\"parentTypes\", JSON.stringify(parentTypes));\r\n params = params.set(\"recursive\", JSON.stringify(recursive));\r\n\r\n if (date != null) {\r\n params = params.set(\"date\", date);\r\n }\r\n\r\n return this.http\r\n .get(acp + \"/cgr/geoobject/get-parent-geoobjects\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getChildGeoObjects(parentId: string, parentTypeCode: string, childrenTypes: any, recursive: boolean): Promise {\r\n let params: HttpParams = new HttpParams();\r\n\r\n params = params.set(\"parentId\", parentId);\r\n params = params.set(\"parentTypeCode\", parentTypeCode);\r\n params = params.set(\"childrenTypes\", JSON.stringify(childrenTypes));\r\n params = params.set(\"recursive\", JSON.stringify(recursive));\r\n\r\n return this.http\r\n .get(acp + \"/cgr/geoobject/getchildren\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n newGeoObjectInstance(typeCode: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobject/newGeoObjectInstance\", JSON.stringify({ typeCode: typeCode }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n createGeoObjectType(gtJSON: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobjecttype/create\", JSON.stringify({ gtJSON: gtJSON }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n updateGeoObjectType(gtJSON: GeoObjectType): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobjecttype/update\", JSON.stringify({ gtJSON: gtJSON }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n deleteGeoObjectType(code: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobjecttype/delete\", JSON.stringify({ code: code }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n addAttributeType(geoObjTypeId: string, attribute: AttributeType): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobjecttype/addattribute\", JSON.stringify({ geoObjTypeId: geoObjTypeId, attributeType: attribute }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n updateAttributeType(geoObjTypeId: string, attribute: AttributeType): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobjecttype/updateattribute\", JSON.stringify({ geoObjTypeId: geoObjTypeId, attributeType: attribute }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n deleteAttributeType(geoObjTypeId: string, attributeName: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobjecttype/deleteattribute\", JSON.stringify({ geoObjTypeId: geoObjTypeId, attributeName: attributeName }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n addAttributeTermTypeOption(parentTermCode: string, term: Term): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobjecttype/addterm\", JSON.stringify({ parentTermCode: parentTermCode, termJSON: term }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n updateAttributeTermTypeOption(parentTermCode: string, termJSON: Term): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobjecttype/updateterm\", JSON.stringify({ parentTermCode: parentTermCode, termJSON: termJSON }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n deleteAttributeTermTypeOption(parentTermCode: string, termCode: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobjecttype/deleteterm\", JSON.stringify({ parentTermCode: parentTermCode, termCode: termCode }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n getGeoObject(id: string, typeCode: string): Promise {\r\n let params: HttpParams = new HttpParams();\r\n\r\n params = params.set(\"id\", id);\r\n params = params.set(\"typeCode\", typeCode);\r\n\r\n return this.http\r\n .get(acp + \"/cgr/geoobject/get\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getGeoObjectBounds(code: string, typeCode: string): Promise {\r\n let params: HttpParams = new HttpParams();\r\n\r\n params = params.set(\"code\", code);\r\n params = params.set(\"typeCode\", typeCode);\r\n\r\n return this.http\r\n .get(acp + \"/cgr/geoobject/get-bounds\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getGeoObjectBoundsAtDate(code: string, typeCode: string, date: string): Promise {\r\n let params: HttpParams = new HttpParams();\r\n\r\n params = params.set(\"code\", code);\r\n params = params.set(\"typeCode\", typeCode);\r\n params = params.set(\"date\", date);\r\n\r\n return this.http\r\n .get(acp + \"/cgr/geoobject-time/get-bounds\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getGeoObjectByCode(code: string, typeCode: string): Promise {\r\n let params: HttpParams = new HttpParams();\r\n\r\n params = params.set(\"code\", code);\r\n params = params.set(\"typeCode\", typeCode);\r\n\r\n return this.http\r\n .get(acp + \"/cgr/geoobject/get-code\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getHierarchiesForGeoObject(code: string, typeCode: string): Promise {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"code\", code);\r\n params = params.set(\"typeCode\", typeCode);\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .get(acp + \"/cgr/geoobject/get-hierarchies-over-time\", { params: params })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n getGeoObjectSuggestions(text: string, type: string, parent: string, parentTypeCode: string, hierarchy: string, startDate: string, endDate: string): Promise<{id: string, code: string, name: string, typeCode: string, uid: string}[]> {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n let params = {\r\n text: text,\r\n type: type\r\n } as any;\r\n\r\n if (parent != null && hierarchy != null) {\r\n params.parent = parent;\r\n params.hierarchy = hierarchy;\r\n }\r\n\r\n if (parentTypeCode != null) {\r\n params.parentTypeCode = parentTypeCode;\r\n }\r\n\r\n if (startDate != null && endDate != null) {\r\n params.startDate = startDate;\r\n params.endDate = endDate;\r\n }\r\n\r\n return this.http\r\n .post<{id: string, code: string, name: string, typeCode: string, uid: string}[]>(acp + \"/cgr/geoobject/suggestions\", JSON.stringify(params), { headers: headers })\r\n .toPromise();\r\n }\r\n\r\n getGeoObjectSuggestionsTypeAhead(text: string, type: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n let params = {\r\n text: text,\r\n type: type\r\n } as any;\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobject/suggestions\", JSON.stringify(params), { headers: headers })\r\n .toPromise();\r\n }\r\n\r\n getScheduledJobs(pageSize: number, pageNumber: number, sortAttr: string, isAscending: boolean): Promise {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"pageSize\", pageSize.toString());\r\n params = params.set(\"pageNumber\", pageNumber.toString());\r\n params = params.set(\"sortAttr\", sortAttr);\r\n params = params.set(\"isAscending\", isAscending.toString());\r\n\r\n return this.http\r\n .get(acp + \"/etl/get-active\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getCompletedScheduledJobs(pageSize: number, pageNumber: number, sortAttr: string, isAscending: boolean): Promise {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"pageSize\", pageSize.toString());\r\n params = params.set(\"pageNumber\", pageNumber.toString());\r\n params = params.set(\"sortAttr\", sortAttr);\r\n params = params.set(\"isAscending\", isAscending.toString());\r\n\r\n return this.http\r\n .get(acp + \"/etl/get-completed\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getScheduledJob(historyId: string, pageSize: number, pageNumber: number, onlyUnresolved: boolean): Promise {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"historyId\", historyId);\r\n params = params.set(\"pageSize\", pageSize.toString());\r\n params = params.set(\"pageNumber\", pageNumber.toString());\r\n params = params.set(\"onlyUnresolved\", onlyUnresolved.toString());\r\n\r\n return this.http\r\n .get(acp + \"/etl/get-import-details\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getExportDetails(historyId: string, pageSize: number, pageNumber: number): Promise {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"historyId\", historyId);\r\n params = params.set(\"pageSize\", pageSize.toString());\r\n params = params.set(\"pageNumber\", pageNumber.toString());\r\n\r\n return this.http\r\n .get(acp + \"/etl/get-export-details\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n resolveScheduledJob(historyId: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/etl/import-resolve\", JSON.stringify({ historyId: historyId }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n submitValidationResolve(config: any): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/etl/validation-resolve\", JSON.stringify({ config: config }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n submitErrorResolve(config: any): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/etl/error-resolve\", JSON.stringify({ config: config }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n getMasterLists(): Promise<{ locales: string[], lists: { label: string, oid: string, createDate: string, lastUpdateDate: string }[] }> {\r\n let params: HttpParams = new HttpParams();\r\n\r\n return this.http\r\n .get<{ locales: string[], lists: { label: string, oid: string, createDate: string, lastUpdateDate: string }[] }>(acp + \"/master-list/list-all\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getMasterListHistory(oid: string, versionType: string): Promise {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"oid\", oid);\r\n params = params.set(\"versionType\", versionType);\r\n\r\n return this.http\r\n .get(acp + \"/master-list/versions\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getAllMasterListVersions(): Promise {\r\n let params: HttpParams = new HttpParams();\r\n\r\n return this.http\r\n .get(acp + \"/master-list/list-all-versions\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getMasterListVersion(oid: string): Promise {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"oid\", oid);\r\n\r\n return this.http\r\n .get(acp + \"/master-list/version\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getLocales(): Promise {\r\n let params: HttpParams = new HttpParams();\r\n\r\n return this.http\r\n .get(acp + \"/localization/get-locales\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getGeoObjectOverTime(geoObjectCode: string, geoObjectTypeCode: string): Promise {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"code\", geoObjectCode);\r\n params = params.set(\"typeCode\", geoObjectTypeCode);\r\n\r\n return this.http\r\n .get(acp + \"/cgr/geoobject-time/get-code\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n newGeoObjectOverTime(typeCode: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobject-time/newGeoObjectInstance\", JSON.stringify({ typeCode: typeCode }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n setAttributeVersions(geoObjectCode: string, geoObjectTypeCode: string, attributeName: string, collection: ValueOverTime[]): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n let params = {\r\n geoObjectCode: geoObjectCode,\r\n geoObjectTypeCode: geoObjectTypeCode,\r\n attributeName: attributeName,\r\n collection: collection\r\n\r\n } as any;\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/cgr/geoobject/setAttributeVersions\", JSON.stringify(params), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n createMasterList(list: MasterList): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/master-list/create\", JSON.stringify({ list: list }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n createMasterListVersion(oid: string, forDate: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/master-list/create-version\", JSON.stringify({ oid: oid, forDate: forDate }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n publishMasterListVersions(oid: string): Promise<{ job: string }> {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post<{ job: string }>(acp + \"/master-list/publish-versions\", JSON.stringify({ oid: oid }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n deleteMasterList(oid: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/master-list/remove\", JSON.stringify({ oid: oid }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n deleteMasterListVersion(oid: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/master-list/remove-version\", JSON.stringify({ oid: oid }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n publishMasterList(oid: string): Observable {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n return this.http.post(acp + \"/master-list/publish\", JSON.stringify({ oid: oid }), { headers: headers });\r\n }\r\n\r\n getMasterList(oid: string): Promise {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"oid\", oid);\r\n\r\n return this.http\r\n .get(acp + \"/master-list/get\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n /*\r\n * Not really part of the RegistryService\r\n */\r\n applyGeoObjectEdit(geoObjectCode: string, geoObjectTypeCode: string, actions: string, masterListId: string, notes: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n\t // TODO\r\n\t\t// Custom attributes of Date type need to be encoded to date/time. The Date picker requires this format to be yyyy-mm-dd.\r\n\t\t// This conversion allows the date picker to work while ensuring the server recieves the correct format.\r\n\t\t// for(const prop in geoObject.attributes) {\r\n\t\t//\tlet attr = geoObject.attributes[prop];\r\n \t\t//\tif(attr.type === \"date\"){\r\n\t\t//\t\tattr.values.forEach( val => {\r\n\t\t//\t\t\tval.value = new Date(val.value).getTime().toString();\r\n\t\t//\t\t})\r\n\t\t//\t}\r\n\t\t// }\r\n\r\n let params = { geoObjectCode: geoObjectCode, geoObjectTypeCode: geoObjectTypeCode, actions: actions };\r\n\r\n if (masterListId != null) {\r\n params[\"masterListId\"] = masterListId;\r\n }\r\n if (notes != null) {\r\n params[\"notes\"] = notes;\r\n }\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/geoobject-editor/updateGeoObject\", JSON.stringify(params), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n /*\r\n * Not really part of the RegistryService\r\n */\r\n applyGeoObjectCreate(parentTreeNode: HierarchyOverTime[], geoObject: GeoObjectOverTime, isNew: boolean, masterListId: string, notes: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n // Custom attributes of Date type need to be encoded to date/time. The Date picker requires this format to be yyyy-mm-dd.\r\n // This conversion allows the date picker to work while ensuring the server recieves the correct format.\r\n for (const prop in geoObject.attributes) {\r\n let attr = geoObject.attributes[prop];\r\n if (attr.type === \"date\") {\r\n attr.values.forEach(val => {\r\n val.value = new Date(val.value).getTime().toString();\r\n });\r\n }\r\n }\r\n\r\n let params = { geoObject: geoObject, isNew: isNew, masterListId: masterListId };\r\n\r\n if (parentTreeNode != null) {\r\n params[\"parentTreeNode\"] = parentTreeNode;\r\n }\r\n if (notes != null) {\r\n params[\"notes\"] = notes;\r\n }\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/geoobject-editor/createGeoObject\", JSON.stringify(params), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n data(oid: string, pageNumber: number, pageSize: number, filter: { attribute: string, value: string }[], sort: { attribute: string, order: string }): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n let params = {\r\n oid: oid,\r\n sort: sort\r\n } as any;\r\n\r\n if (pageNumber != null) {\r\n params.pageNumber = pageNumber;\r\n }\r\n\r\n if (pageSize != null) {\r\n params.pageSize = pageSize;\r\n }\r\n\r\n if (filter.length > 0) {\r\n params.filter = filter;\r\n }\r\n\r\n return this.http\r\n .post(acp + \"/master-list/data\", JSON.stringify(params), { headers: headers })\r\n .toPromise();\r\n }\r\n\r\n values(oid: string, value: string, attributeName: string, valueAttribute: string, filter: { attribute: string, value: string }[]): Promise<{ label: string, value: string }[]> {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n let params = {\r\n oid: oid,\r\n attributeName: attributeName,\r\n valueAttribute: valueAttribute\r\n } as any;\r\n\r\n if (filter.length > 0) {\r\n params.filter = filter;\r\n }\r\n\r\n if (value != null && value.length > 0) {\r\n params.value = value;\r\n }\r\n\r\n return this.http\r\n .post<{ label: string, value: string }[]>(acp + \"/master-list/values\", JSON.stringify(params), { headers: headers })\r\n .toPromise();\r\n }\r\n\r\n publishShapefile(oid: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n let params = {\r\n oid: oid\r\n } as any;\r\n\r\n return this.http\r\n .post(acp + \"/master-list/generate-shapefile\", JSON.stringify(params), { headers: headers })\r\n .toPromise();\r\n }\r\n\r\n progress(oid: string): Promise {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"oid\", oid);\r\n\r\n return this.http\r\n .get(acp + \"/master-list/progress\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getMasterListsByOrg(): Promise<{ orgs: MasterListByOrg[] }> {\r\n let params: HttpParams = new HttpParams();\r\n\r\n return this.http\r\n .get<{ locales: string[], orgs: MasterListByOrg[] }>(acp + \"/master-list/list-org\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getPublishMasterListJobs(oid: string, pageSize: number, pageNumber: number, sortAttr: string, isAscending: boolean): Promise {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"oid\", oid);\r\n params = params.set(\"pageSize\", pageSize.toString());\r\n params = params.set(\"pageNumber\", pageNumber.toString());\r\n params = params.set(\"sortAttr\", sortAttr);\r\n params = params.set(\"isAscending\", isAscending.toString());\r\n\r\n return this.http\r\n .get(acp + \"/master-list/get-publish-jobs\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n getDatasetBounds(oid: string): Promise {\r\n let params: HttpParams = new HttpParams();\r\n params = params.set(\"oid\", oid);\r\n\r\n return this.http\r\n .get(acp + \"/master-list/bounds\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n\tgetOrganizations(): Promise {\r\n\r\n\t\tthis.eventService.start();\r\n\r\n\t\treturn this.http\r\n\t\t\t.get(acp + '/cgr/organizations/get-all')\r\n\t\t\t.pipe(finalize(() => {\r\n\t\t\t\tthis.eventService.complete();\r\n\t\t\t}))\r\n\t\t\t.toPromise();\r\n\t}\r\n\r\n exportToFhir(oid: string, systemId: string): Promise {\r\n let headers = new HttpHeaders({\r\n 'Content-Type': 'application/json'\r\n });\r\n\r\n let params = {\r\n oid: oid,\r\n systemId: systemId\r\n } as any;\r\n\r\n return this.http\r\n .post(acp + '/master-list/export-to-fhir', JSON.stringify(params), { headers: headers })\r\n .toPromise();\r\n }\r\n\r\n}\r\n","///\n/// Copyright (c) 2015 TerraFrame, Inc. All rights reserved.\n///\n/// This file is part of Runway SDK(tm).\n///\n/// Runway SDK(tm) is free software: you can redistribute it and/or modify\n/// it under the terms of the GNU Lesser General Public License as\n/// published by the Free Software Foundation, either version 3 of the\n/// License, or (at your option) any later version.\n///\n/// Runway SDK(tm) is distributed in the hope that it will be useful, but\n/// WITHOUT ANY WARRANTY; without even the implied warranty of\n/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n/// GNU Lesser General Public License for more details.\n///\n/// You should have received a copy of the GNU Lesser General Public\n/// License along with Runway SDK(tm). If not, see .\n///\n\nimport { Injectable } from \"@angular/core\";\nimport { HttpHeaders, HttpClient, HttpParams } from \"@angular/common/http\";\n\nimport { finalize } from \"rxjs/operators\";\n\nimport { EventService } from \"@shared/service\";\n\nimport { PageResult } from \"@shared/model/core\";\nimport { SynchronizationConfig, OrgSyncInfo, ExportScheduledJob } from \"@registry/model/registry\";\nimport { AttributeConfigInfo } from \"@registry/model/sync\";\n\ndeclare let acp: any;\n\n@Injectable()\nexport class SynchronizationConfigService {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private http: HttpClient, private eventService: EventService) { }\n\n getPage(pageNumber: number, pageSize: number): Promise> {\n let params: HttpParams = new HttpParams();\n params = params.set(\"pageNumber\", pageNumber.toString());\n params = params.set(\"pageSize\", pageSize.toString());\n\n this.eventService.start();\n\n return this.http\n .get>(acp + \"/synchronization-config/get-all\", { params: params })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n get(oid: string): Promise {\n let params: HttpParams = new HttpParams();\n params = params.set(\"oid\", oid);\n\n this.eventService.start();\n\n return this.http\n .get(acp + \"/synchronization-config/get\", { params: params })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n getCustomAttrCfg(geoObjectTypeCode: string, externalId: string): Promise {\n let params: HttpParams = new HttpParams();\n params = params.set(\"externalId\", externalId);\n params = params.set(\"geoObjectTypeCode\", geoObjectTypeCode);\n\n this.eventService.start();\n\n return this.http\n .get(acp + \"/synchronization-config/get-custom-attr\", { params: params })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n getConfigForES(externalSystemId: string, hierarchyTypeCode: string): Promise {\n let params: HttpParams = new HttpParams();\n params = params.set(\"externalSystemId\", externalSystemId);\n params = params.set(\"hierarchyTypeCode\", hierarchyTypeCode);\n\n this.eventService.start();\n\n return this.http\n .get(acp + \"/synchronization-config/get-config-for-es\", { params: params })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n apply(config: SynchronizationConfig): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/synchronization-config/apply\", JSON.stringify({ config: config }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n edit(oid: string): Promise<{ config: SynchronizationConfig, orgs: OrgSyncInfo[] }> {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n let params = {};\n\n if (oid != null) {\n params = { oid: oid };\n }\n\n this.eventService.start();\n\n return this.http\n .post<{ config: SynchronizationConfig, orgs: OrgSyncInfo[] }>(acp + \"/synchronization-config/edit\", JSON.stringify(params), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n remove(oid: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/synchronization-config/remove\", JSON.stringify({ oid: oid }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n unlock(oid: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/synchronization-config/unlock\", JSON.stringify({ oid: oid }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n run(oid: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/synchronization-config/run\", JSON.stringify({ oid: oid }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n getJobs(oid: string, pageNumber: number, pageSize: number): Promise> {\n let params: HttpParams = new HttpParams();\n params = params.set(\"oid\", oid);\n params = params.set(\"pageNumber\", pageNumber.toString());\n params = params.set(\"pageSize\", pageSize.toString());\n\n // this.eventService.start();\n\n return this.http\n .get>(acp + \"/synchronization-config/get-jobs\", { params: params })\n // .pipe(finalize(() => {\n // this.eventService.complete();\n // }))\n .toPromise();\n }\n\n getFhirExportImplementations(): Promise<{ className: string, label: string }[]> {\n let params: HttpParams = new HttpParams();\n\n return this.http\n .get(acp + \"/synchronization-config/get-fhir-export-implementations\", { params: params })\n .toPromise();\n }\n\n getFhirImportImplementations(): Promise<{ className: string, label: string }[]> {\n let params: HttpParams = new HttpParams();\n\n return this.http\n .get(acp + \"/synchronization-config/get-fhir-import-implementations\", { params: params })\n .toPromise();\n }\n\n}\n","///\r\n/// Copyright (c) 2015 TerraFrame, Inc. All rights reserved.\r\n///\r\n/// This file is part of Runway SDK(tm).\r\n///\r\n/// Runway SDK(tm) is free software: you can redistribute it and/or modify\r\n/// it under the terms of the GNU Lesser General Public License as\r\n/// published by the Free Software Foundation, either version 3 of the\r\n/// License, or (at your option) any later version.\r\n///\r\n/// Runway SDK(tm) is distributed in the hope that it will be useful, but\r\n/// WITHOUT ANY WARRANTY; without even the implied warranty of\r\n/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n/// GNU Lesser General Public License for more details.\r\n///\r\n/// You should have received a copy of the GNU Lesser General Public\r\n/// License along with Runway SDK(tm). If not, see .\r\n///\r\n\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpHeaders, HttpClient, HttpParams } from \"@angular/common/http\";\r\nimport { finalize } from \"rxjs/operators\";\r\n\r\nimport { PaginationPage } from \"@registry/model/registry\";\r\nimport { EventService } from \"@shared/service\";\r\n\r\ndeclare let acp: any;\r\n\r\n@Injectable()\r\nexport class TaskService {\r\n\r\n // eslint-disable-next-line no-useless-constructor\n constructor(private http: HttpClient, private eventService: EventService) { }\r\n\r\n getMyTasks(pageNum: number, pageSize: number, whereStatus: string): Promise {\r\n let params: HttpParams = new HttpParams();\r\n\r\n params = params.set(\"orderBy\", \"createDate\");\r\n params = params.set(\"pageNum\", pageNum.toString());\r\n params = params.set(\"pageSize\", pageSize.toString());\r\n params = params.set(\"whereStatus\", whereStatus);\r\n\r\n return this.http\r\n .get(acp + \"/tasks/get\", { params: params })\r\n .toPromise();\r\n }\r\n\r\n completeTask(taskId: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/tasks/complete\", JSON.stringify({ id: taskId }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n setTaskStatus(taskId: string, status: string): Promise {\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n\r\n this.eventService.start();\r\n\r\n return this.http\r\n .post(acp + \"/tasks/setTaskStatus\", JSON.stringify({ id: taskId, status: status }), { headers: headers })\r\n .pipe(finalize(() => {\r\n this.eventService.complete();\r\n }))\r\n .toPromise();\r\n }\r\n\r\n}\r\n","import * as d3 from \"d3\";\n\nexport function calculateTextWidth(text: string, fontSize: number): number {\n let svg = d3.select(\"#svg\");\n\n let textCalcGroup = svg.append(\"g\").classed(\"g-text-calc\", true);\n\n let textEl = textCalcGroup.append(\"text\")\n .attr(\"x\", -5000)\n .attr(\"y\", -5000)\n .attr(\"font-size\", fontSize)\n .text(text);\n\n let bbox = textEl.node().getBBox();\n\n d3.select(\".g-text-calc\").remove();\n\n return bbox.width + 2; // +2 is for padding. I caught this truncating just ever so slightly\n}\n\nexport function svgPoint(x: number, y: number) {\n let svg: any = d3.select(\"#svg\").node();\n let pt = svg.createSVGPoint();\n\n pt.x = x;\n pt.y = y;\n\n return pt.matrixTransform(svg.getScreenCTM().inverse());\n}\n\nexport function isPointWithin(point: { x: number, y: number }, bbox: { x: number, y: number, width: number, height: number }) {\n return point.y > bbox.y && point.y < (bbox.y + bbox.height) && point.x > bbox.x && point.x < (bbox.x + bbox.width);\n}\n\nexport function isBboxPartiallyWithin(bbox1: { x: number, y: number, width: number, height: number }, bbox2: { x: number, y: number, width: number, height: number }) {\n return isPointWithin({ x: bbox1.x, y: bbox1.y }, bbox2) || isPointWithin({ x: bbox1.x + bbox1.width, y: bbox1.y + bbox1.height }, bbox2) ||\n isPointWithin({ x: bbox1.x + bbox1.width, y: bbox1.y }, bbox2) || isPointWithin({ x: bbox1.x, y: bbox1.y + bbox1.height }, bbox2);\n}\n\nexport function isBboxTotallyWithin(bbox1: { x: number, y: number, width: number, height: number }, bbox2: { x: number, y: number, width: number, height: number }) {\n return isPointWithin({ x: bbox1.x, y: bbox1.y }, bbox2) && isPointWithin({ x: bbox1.x + bbox1.width, y: bbox1.y + bbox1.height }, bbox2) &&\n isPointWithin({ x: bbox1.x + bbox1.width, y: bbox1.y }, bbox2) && isPointWithin({ x: bbox1.x, y: bbox1.y + bbox1.height }, bbox2);\n}\n\nexport function getBboxFromSelection(selection: any) {\n return { x: parseInt(selection.attr(\"x\")), y: parseInt(selection.attr(\"y\")), width: parseInt(selection.attr(\"width\")), height: parseInt(selection.attr(\"height\")) };\n}\n\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\n\nimport { ImportConfiguration } from '@registry/model/io';\n\n@Component( {\n selector: 'attributes-page',\n templateUrl: './attributes-page.component.html',\n styleUrls: []\n} )\nexport class AttributesPageComponent {\n\n @Input() configuration: ImportConfiguration;\n @Output() configurationChange = new EventEmitter();\n @Output() stateChange = new EventEmitter();\n\n constructor() {\n }\n\n onNext(): void {\n this.configurationChange.emit( this.configuration );\n this.stateChange.emit( 'NEXT' );\n }\n\n onCancel(): void {\n this.stateChange.emit( 'CANCEL' );\n }\n}\n","
\n
\n

\n \n

\n

\n \n

\n
\n \n \n
\n\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n\n
\n\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n \n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n\n \n\n
\n
\n
\n \n \n
\n
\n
\n
\n \n
","import { Component, OnInit, Input, Output, EventEmitter, Directive } from '@angular/core';\n\nimport { ImportConfiguration } from '@registry/model/io';\n\nimport { IOService } from '@registry/service';\n\n@Component( {\n\n selector: 'location-page',\n templateUrl: './location-page.component.html',\n styleUrls: []\n} )\nexport class LocationPageComponent implements OnInit {\n\n @Input() configuration: ImportConfiguration;\n @Output() configurationChange = new EventEmitter();\n @Output() stateChange = new EventEmitter();\n\n constructor( private service: IOService ) { }\n\n ngOnInit(): void {\n this.service.getTypeAncestors( this.configuration.type.code, this.configuration.hierarchy, true ).then( locations => {\n this.configuration.locations = locations;\n } );\n }\n\n onNext(): void {\n // Map the universals\n this.configurationChange.emit( this.configuration );\n this.stateChange.emit( 'NEXT' );\n }\n\n onBack(): void {\n this.stateChange.emit( 'BACK' );\n }\n\n onCancel(): void {\n this.stateChange.emit( 'CANCEL' );\n }\n}\n","
\n
\n

\n \n

\n

\n \n

\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n\n
\n
\n
\n \n \n \n
\n
\n
\n \n \n
\n","import { Component, Input, OnInit, EventEmitter, Output } from '@angular/core';\nimport { ImportConfiguration, LocationProblem } from '@registry/model/io';\nimport { ErrorHandler } from '@shared/component';\n\n@Component( {\n\n selector: 'location-problem-page',\n templateUrl: './location-problem-page.component.html',\n styleUrls: []\n} )\nexport class LocationProblemPageComponent implements OnInit {\n\n @Input() configuration: ImportConfiguration;\n @Output() stateChange = new EventEmitter();\n message: string = null;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n hasProblems(): boolean {\n for ( let i = 0; i < this.configuration.locationProblems.length; i++ ) {\n\n if ( !this.configuration.locationProblems[i].resolved ) {\n return true;\n }\n }\n\n return false;\n }\n\n handleError( err: any ): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n onNext(): void {\n if ( this.configuration.exclusions == null ) {\n this.configuration.exclusions = [];\n }\n\n for ( let i = 0; i < this.configuration.locationProblems.length; i++ ) {\n const problem = this.configuration.locationProblems[i];\n\n if ( problem.resolved && problem.action.name == 'IGNOREATLOCATION' ) {\n const value = ( problem.parent != null ? problem.parent + \"-\" + problem.label : problem.label );\n const exclusion = { code: '##PARENT##', value: value };\n\n this.configuration.exclusions.push( exclusion );\n }\n }\n\n\n this.stateChange.emit( 'NEXT' );\n }\n\n onCancel(): void {\n this.stateChange.emit( 'CANCEL' );\n }\n}\n","
\n
\n

\n \n

\n

\n \n

\n
\n
\n
\n
\n \n
\n
\n
\n
{{message}}
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n
\n
","import { Component, Input, OnInit, EventEmitter, Output } from '@angular/core';\nimport { ImportConfiguration, TermProblem } from '@registry/model/io';\n\n@Component( {\n\n selector: 'term-problem-page',\n templateUrl: './term-problem-page.component.html',\n styleUrls: []\n} )\nexport class TermProblemPageComponent implements OnInit {\n\n @Input() configuration: ImportConfiguration;\n @Output() stateChange = new EventEmitter();\n message: string = null;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n hasProblems(): boolean {\n for ( let i = 0; i < this.configuration.termProblems.length; i++ ) {\n\n if ( !this.configuration.termProblems[i].resolved ) {\n return true;\n }\n }\n\n return false;\n }\n\n onNext(): void {\n if ( this.configuration.exclusions == null ) {\n this.configuration.exclusions = [];\n }\n\n for ( let i = 0; i < this.configuration.termProblems.length; i++ ) {\n const problem = this.configuration.termProblems[i];\n\n if ( problem.resolved && problem.action.name == 'IGNORE' ) {\n const exclusion = { code: problem.attributeCode, value: problem.label };\n\n this.configuration.exclusions.push( exclusion );\n }\n }\n\n this.stateChange.emit( 'NEXT' );\n }\n\n onCancel(): void {\n this.stateChange.emit( 'CANCEL' );\n }\n}\n","
\n
\n

\n \n

\n

\n \n

\n
\n
\n
\n
\n \n
\n
\n
\n
{{message}}
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n
\n
","import { Component, OnInit, ViewChild } from \"@angular/core\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { Observable } from \"rxjs\";\nimport { TypeaheadMatch } from \"ngx-bootstrap/typeahead\";\n\nimport { ErrorHandler, ErrorModalComponent, SuccessModalComponent } from \"@shared/component\";\nimport { LocalizationService, AuthService } from \"@shared/service\";\n\nimport { RegistryService, ChangeRequestService } from \"@registry/service\";\nimport { GeoObjectType, GeoObjectOverTime } from \"@registry/model/registry\";\n\n@Component({\n selector: \"submit-change-request\",\n templateUrl: \"./submit-change-request.component.html\",\n styleUrls: [\"./submit-change-request.css\"]\n})\nexport class SubmitChangeRequestComponent implements OnInit {\n\n /*\n * Reference to the modal current showing\n */\n\n bsModalRef: BsModalRef;\n\n geoObjectType: GeoObjectType;\n\n geoObjectTypes: GeoObjectType[] = [];\n\n geoObjectId: string = \"\";\n\n reason: string = \"\";\n\n dataSource: Observable;\n\n dateStr: string = null;\n\n forDate: Date = null;\n\n @ViewChild(\"attributeEditor\") attributeEditor;\n\n @ViewChild(\"geometryEditor\") geometryEditor;\n\n geoObject: GeoObjectOverTime = null;\n\n isValid: boolean = false;\n\n loading: boolean = false;\n\n geoObjectAttributeExcludes: string[] = [\"uid\", \"sequence\", \"type\", \"lastUpdateDate\", \"createDate\", \"status\"];\n\n constructor(private modalService: BsModalService, private registryService: RegistryService,\n private changeRequestService: ChangeRequestService, private localizeService: LocalizationService, private authService: AuthService) {\n this.dataSource = Observable.create((observer: any) => {\n this.registryService.getGeoObjectSuggestionsTypeAhead(this.geoObjectId, this.geoObjectType.code).then(results => {\n observer.next(results);\n });\n });\n }\n\n ngOnInit(): void {\n this.registryService.getGeoObjectTypes([], null).then(types => {\n let myOrgTypes = [];\n for (let i = 0; i < types.length; ++i) {\n const type = types[i];\n const orgCode = type.organizationCode;\n const typeCode = type.superTypeCode != null && type.superTypeCode != \"\" ? type.superTypeCode : type.code;\n\n if (this.authService.isGeoObjectTypeRC(orgCode, typeCode)) {\n myOrgTypes.push(types[i]);\n }\n }\n this.geoObjectTypes = myOrgTypes;\n\n this.geoObjectTypes.sort((a, b) => {\n if (a.label.localizedValue.toLowerCase() < b.label.localizedValue.toLowerCase()) return -1;\n else if (a.label.localizedValue.toLowerCase() > b.label.localizedValue.toLowerCase()) return 1;\n else return 0;\n });\n\n let pos = this.getGeoObjectTypePosition(\"ROOT\");\n if (pos) {\n this.geoObjectTypes.splice(pos, 1);\n }\n\n // this.currentGeoObjectType = this.geoObjectTypes[1];\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n public handleDateChange() {\n if (this.dateStr != null) {\n this.forDate = new Date(Date.parse(this.dateStr));\n } else {\n this.forDate = null;\n }\n }\n\n public onValidChange(newValid: boolean) {\n if (this.geoObject == null) {\n this.isValid = false;\n return;\n }\n\n if (this.geometryEditor != null && !this.geometryEditor.getIsValid()) {\n this.isValid = false;\n return;\n }\n\n if (this.attributeEditor != null && !this.attributeEditor.getIsValid()) {\n this.isValid = false;\n return;\n }\n\n this.isValid = true;\n }\n\n private getGeoObjectTypePosition(code: string): number {\n for (let i = 0; i < this.geoObjectTypes.length; i++) {\n let obj = this.geoObjectTypes[i];\n if (obj.code === code) {\n return i;\n }\n }\n\n return null;\n }\n\n changeTypeaheadLoading(e: boolean): void {\n this.loading = e;\n }\n\n typeaheadOnSelect(e: TypeaheadMatch): void {\n this.registryService.getGeoObjectOverTime(e.item.code, this.geoObjectType.code).then(geoObject => {\n this.geoObject = geoObject;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n cancel(): void {\n this.isValid = false;\n this.geoObject = null;\n this.geoObjectId = null;\n this.geoObjectType = null;\n this.reason = null;\n }\n\n public error(err: any): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n}\n","
\n
\n
\n

\n
\n\n
\n \n \n
\n \n
\n \n \n
\n \n
\n \n \n
\n \n
\n \n \n \n \n \n \n \n \n
\n\n
\n \n
\n
\n
","import { Component, OnInit, ViewChild, Input } from \"@angular/core\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { DatePipe } from \"@angular/common\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { ErrorHandler, ErrorModalComponent } from \"@shared/component\";\n\nimport { RegistryService } from \"@registry/service\";\nimport { LocalizationService, AuthService } from \"@shared/service\";\n\nimport { GeoObjectType, GeoObjectOverTime, HierarchyOverTime, ParentTreeNode, ImportError, ValueOverTime } from \"@registry/model/registry\";\n\nimport { Observable } from \"rxjs\";\nimport { TypeaheadMatch } from \"ngx-bootstrap/typeahead\";\n\n@Component({\n selector: \"geoobject-editor\",\n templateUrl: \"./geoobject-editor.component.html\",\n styleUrls: [\"./geoobject-editor.component.css\"],\n providers: [DatePipe]\n})\n\n/**\n * This component is used in the master list when editing a row. In the future it will also be used by the navigator and has\n * potential to also be used in the submit change request and manage change requests.\n */\nexport class GeoObjectEditorComponent implements OnInit {\n\n @Input() geoObjectType: GeoObjectType;\n\n isValid: boolean = false;\n\n isGeometryEditable: boolean;\n\n tabIndex: number = 0;\n\n dataSource: Observable;\n\n masterListId: string;\n notes: string;\n\n isNewGeoObject: boolean = false;\n\n @Input() onSuccessCallback: Function;\n\n submitFunction: Function = null;\n\n isAdmin: boolean;\n isMaintainer: boolean;\n isContributor: boolean;\n\n /*\n * GeoObject Property Editor\n */\n @ViewChild(\"attributeEditor\") attributeEditor;\n\n arePropertiesValid: boolean = false;\n\n // The current state of the GeoObject in the GeoRegistry\n goPropertiesPre: GeoObjectOverTime;\n\n // The state of the GeoObject after our edit has been applied\n goPropertiesPost: GeoObjectOverTime;\n\n // /*\n // * GeoObject Geometry Editor\n // */\n // @ViewChild( \"geometryEditor\" ) geometryEditor;\n //\n // areGeometriesValid: boolean = false;\n\n /*\n * GeoObject Cascading Parent Selector\n */\n @ViewChild(\"parentSelector\") parentSelector;\n\n areParentsValid: boolean = true;\n\n hierarchies: HierarchyOverTime[];\n\n /*\n * Date in which the modal is shown for\n */\n dateStr: string = null;\n\n /*\n * Date in which the modal is shown for\n */\n forDate: Date = null;\n\n isEditingGeometries: boolean = false;\n\n /*\n * The final artifacts which will be submitted\n */\n private goSubmit: GeoObjectOverTime;\n\n constructor(private modalService: BsModalService, public bsModalRef: BsModalRef,\n private registryService: RegistryService, private localizeService: LocalizationService,\n authService: AuthService) {\n this.isAdmin = authService.isAdmin();\n this.isMaintainer = this.isAdmin || authService.isMaintainer();\n this.isContributor = this.isAdmin || this.isMaintainer || authService.isContributer();\n\n this.forDate = new Date();\n\n const day = this.forDate.getUTCDate();\n this.dateStr = this.forDate.getUTCFullYear() + \"-\" + (this.forDate.getUTCMonth() + 1) + \"-\" + (day < 10 ? \"0\" : \"\") + day;\n }\n\n ngOnInit(): void {\n\n }\n\n findVotWithStartDate(votArray: ValueOverTime[], startDate: string): any {\n for (let i: number = 0; i < votArray.length; ++i) {\n if (votArray[i].startDate === startDate) {\n return votArray[i];\n }\n }\n\n return null;\n }\n\n setMasterListId(id: string) {\n this.masterListId = id;\n }\n\n handleDateChange(): void {\n this.forDate = new Date(Date.parse(this.dateStr));\n }\n\n setOnSuccessCallback(func: Function) {\n this.onSuccessCallback = func;\n }\n\n // Configures the widget to be used in a \"New\" context, that is to say\n // that it will be used to create a new GeoObject.\n public configureAsNew(typeCode: string, dateStr: string, isGeometryEditable: boolean) {\n this.isNewGeoObject = true;\n this.dateStr = dateStr;\n this.forDate = new Date(Date.parse(this.dateStr));\n this.isGeometryEditable = isGeometryEditable;\n\n this.fetchGeoObjectType(typeCode);\n this.fetchLocales();\n\n this.registryService.newGeoObjectOverTime(typeCode).then(retJson => {\n this.goPropertiesPre = new GeoObjectOverTime(this.geoObjectType, retJson.geoObject.attributes);\n this.goPropertiesPost = new GeoObjectOverTime(this.geoObjectType, JSON.parse(JSON.stringify(this.goPropertiesPre)).attributes);\n\n this.hierarchies = retJson.hierarchies;\n });\n }\n\n // Configures the widget to be used to resolve an ImportError\n public configureFromImportError(importError: ImportError, historyId: string, dateStr: string, isGeometryEditable: boolean) {\n let typeCode = importError.object.geoObject.attributes.type;\n this.isNewGeoObject = importError.object.isNew;\n this.dateStr = dateStr;\n this.forDate = new Date(Date.parse(dateStr));\n this.isGeometryEditable = isGeometryEditable;\n\n this.fetchGeoObjectType(typeCode);\n this.fetchLocales();\n\n if (importError.object != null && importError.object.parents != null && importError.object.parents.length > 0) {\n this.hierarchies = importError.object.parents;\n this.areParentsValid = true;\n } else {\n this.registryService.newGeoObjectOverTime(typeCode).then(retJson => {\n this.hierarchies = retJson.hierarchies;\n });\n this.areParentsValid = false;\n }\n\n // TODO : Maybe we should ask the server for the pre object, if it exists.\n this.goPropertiesPre = new GeoObjectOverTime(this.geoObjectType, importError.object.geoObject.attributes);\n this.goPropertiesPost = new GeoObjectOverTime(this.geoObjectType, importError.object.geoObject.attributes);\n\n this.submitFunction = () => {\n let config = {\n historyId: historyId,\n importErrorId: importError.id,\n resolution: \"APPLY_GEO_OBJECT\",\n parentTreeNode: this.hierarchies,\n geoObject: this.goSubmit,\n isNew: importError.object.isNew\n };\n\n this.registryService.submitErrorResolve(config)\n .then(() => {\n if (this.onSuccessCallback != null) {\n this.onSuccessCallback();\n }\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n };\n }\n\n // Configures the widget to be used in an \"Edit Existing\" context\n public configureAsExisting(code: string, typeCode: string, dateStr: string, isGeometryEditable: boolean): void {\n this.isNewGeoObject = false;\n this.dateStr = dateStr;\n this.forDate = new Date(Date.parse(this.dateStr));\n this.isGeometryEditable = isGeometryEditable;\n\n this.fetchGeoObject(code, typeCode);\n this.fetchGeoObjectType(typeCode);\n this.fetchHierarchies(code, typeCode);\n this.fetchLocales();\n }\n\n private fetchGeoObject(code: string, typeCode: string) {\n this.registryService.getGeoObjectOverTime(code, typeCode).then(geoObject => {\n this.goPropertiesPre = new GeoObjectOverTime(this.geoObjectType, JSON.parse(JSON.stringify(geoObject)).attributes);\n this.goPropertiesPost = new GeoObjectOverTime(this.geoObjectType, JSON.parse(JSON.stringify(this.goPropertiesPre)).attributes);\n // this.goPropertiesPost = JSON.parse( JSON.stringify( this.goPropertiesPre ) );\n\n this.goSubmit = this.goPropertiesPost;\n\n // this.areGeometriesValid = true;\n this.arePropertiesValid = true;\n this.isValid = true;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n private fetchLocales() {\n this.registryService.getLocales().then(locales => {\n this.localizeService.setLocales(locales);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n private fetchGeoObjectType(code: string) {\n this.registryService.getGeoObjectTypes([code], null)\n .then(geoObjectType => {\n this.geoObjectType = geoObjectType[0];\n\n if (this.goPropertiesPre != null) {\n this.goPropertiesPre.geoObjectType = this.geoObjectType;\n }\n if (this.goPropertiesPost != null) {\n this.goPropertiesPost.geoObjectType = this.geoObjectType;\n }\n\n if (!this.geoObjectType.isGeometryEditable) {\n // this.areGeometriesValid = true;\n }\n }).catch((err: HttpErrorResponse) => {\n console.log(err);\n // this.error( err );\n });\n }\n\n private fetchHierarchies(code: string, typeTypeCode: string) {\n this.registryService.getHierarchiesForGeoObject(code, typeTypeCode)\n .then((hierarchies: any) => {\n this.hierarchies = hierarchies;\n\n // this.parentTreeNode = CascadingGeoSelector.staticGetParents( this.hierarchies );\n this.areParentsValid = true;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n getTypeAheadObservable(text, typeCode) {\n return Observable.create((observer: any) => {\n this.registryService.getGeoObjectSuggestionsTypeAhead(text, typeCode).then(results => {\n observer.next(results);\n });\n });\n }\n\n typeaheadOnSelect(e: TypeaheadMatch, ptn: ParentTreeNode): void {\n this.registryService.getGeoObjectByCode(e.item.code, ptn.geoObject.properties.type)\n .then(geoObject => {\n ptn.geoObject = geoObject;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n public onValidChange() {\n if (this.attributeEditor != null) {\n this.arePropertiesValid = this.attributeEditor.getIsValid();\n }\n // if ( this.geometryEditor != null ) {\n // this.areGeometriesValid = this.geometryEditor.getIsValid();\n // }\n if (this.parentSelector != null) {\n this.areParentsValid = this.parentSelector.getIsValid();\n }\n\n // this.isValid = this.arePropertiesValid && this.areGeometriesValid && this.areParentsValid;\n this.isValid = this.arePropertiesValid && this.areParentsValid;\n }\n\n changePage(nextPage: number, force: boolean = false): void {\n if (nextPage === this.tabIndex && !force) {\n return;\n }\n\n this.persistModelChanges();\n\n this.tabIndex = nextPage;\n\n this.onValidChange();\n\n if (nextPage === 2) {\n this.isEditingGeometries = true;\n } else {\n this.isEditingGeometries = false;\n }\n }\n\n private persistModelChanges(): void {\n if (this.attributeEditor != null) {\n this.goPropertiesPost = this.attributeEditor.getGeoObject();\n }\n if (this.parentSelector != null) {\n this.hierarchies = this.parentSelector.getHierarchies();\n }\n\n this.goSubmit = this.goPropertiesPost;\n\n // if ( this.parentTreeNode != null ) {\n // this.parentTreeNode.geoObject = this.goSubmit;\n // }\n }\n\n public error(err: HttpErrorResponse): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n public cancel(): void {\n this.bsModalRef.hide();\n }\n\n public submit(): void {\n if (this.isValid) {\n this.bsModalRef.hide();\n\n this.persistModelChanges();\n\n if (this.submitFunction == null) {\n /*\n this.registryService.applyGeoObjectEdit(this.hierarchies, this.goSubmit, this.isNewGeoObject, this.masterListId, this.notes)\n .then(() => {\n\n if (this.onSuccessCallback != null) {\n this.onSuccessCallback();\n }\n\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n */\n } else {\n this.submitFunction();\n }\n }\n }\n\n}\n","
\n \n
\n \n\n
\n
\n \n
\n \n
\n
\n
\n
\n \n
\n
\n \n \n \n
\n
\n
\n\n\n \n \n \n\n\n \n
\n \n \n
\n\n \n \n\n
\n
\n
\n \n
\n

Notes are required.

\n
\n
\n
\n\n
\n
\n
\n \n
\n
\n \n
\n \n
\n
\n \n \n
\n
\n
\n
\n
","import { Component, Input } from \"@angular/core\";\n\nimport { Step, StepConfig } from \"@registry/model/registry\";\n\n@Component({\n selector: \"step-indicator\",\n templateUrl: \"./step-indicator.component.html\",\n styleUrls: [\"./step-indicator.css\"]\n})\nexport class StepIndicatorComponent {\n\n // eslint-disable-next-line accessor-pairs\n @Input(\"steps\")\n set steps(value: StepConfig) {\n this._stepConfig = value;\n }\n\n _stepConfig: StepConfig;\n step: Step;\n\n constructor() {\n this._stepConfig = { steps: [] };\n }\n\n ngOnInit(): void {\n }\n\n ngOnDestroy() {\n\n }\n\n}\n","
\n
    0\" class=\"nav nav-justified\">\n
  • \n {{step.label}}\n
  • \n
\n
","import { Component, Input, Output, EventEmitter, OnInit, OnChanges, SimpleChanges } from \"@angular/core\";\nimport { BsModalService } from \"ngx-bootstrap/modal\";\n\nimport { ContextLayer, ContextLayerGroup, MasterList } from \"@registry/model/registry\";\nimport { ContextLayerModalComponent } from \"./context-layer-modal.component\";\nimport { RegistryService } from \"@registry/service\";\n\n@Component({\n selector: \"layer-panel\",\n templateUrl: \"./layer-panel.component.html\",\n styleUrls: [\"./location-manager.css\"]\n})\nexport class LayerPanelComponent implements OnInit, OnChanges {\n\n @Input() filter: string[] = [];\n @Output() layerChange = new EventEmitter();\n @Output() baseLayerChange = new EventEmitter();\n\n baselayerIconHover = false;\n\n lists: MasterList[] = [];\n\n /*\n * List of base layers\n */\n baseLayers: any[] = [\n {\n name: \"Satellite\",\n label: \"baselayer.satellite\",\n id: \"satellite-v9\",\n sprite: \"mapbox://sprites/mapbox/satellite-v9\",\n url: \"mapbox://mapbox.satellite\",\n selected: true\n }\n// {\n// name: 'Streets',\n// label: 'baselayer.streets',\n// id: 'streets-v11',\n// sprite: 'mapbox://sprites/mapbox/streets-v11',\n// url: 'mapbox://styles/mapbox/streets-v11'\n// }\n ];\n\n contextLayerGroups: ContextLayerGroup[] = [];\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private modalService: BsModalService, public service: RegistryService) { }\n\n ngOnInit(): void {\n this.service.getAllMasterListVersions().then(lists => {\n this.lists = lists;\n\n this.updateContextGroups();\n });\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.filter.currentValue !== changes.filter.previousValue) {\n this.updateContextGroups();\n }\n }\n\n updateContextGroups(): void {\n this.lists.forEach(list => {\n let contextGroup = { oid: list.oid, displayLabel: list.displayLabel.localizedValue, contextLayers: [] };\n\n list.versions.forEach(version => {\n const index = this.filter.indexOf(version.oid);\n\n if (index === -1) {\n let thisContextLayer = { oid: version.oid, displayLabel: version.forDate, active: false, enabled: false };\n\n contextGroup.contextLayers.push(thisContextLayer);\n }\n });\n\n if (contextGroup.contextLayers.length > 0) {\n this.contextLayerGroups.push(contextGroup);\n }\n });\n }\n\n groupHasEnabledContextLayers(group: string): boolean {\n let hasEnabled = false;\n this.contextLayerGroups.forEach(cLayerGroup => {\n if (cLayerGroup.oid === group) {\n cLayerGroup.contextLayers.forEach(cLayer => {\n if (cLayer.enabled) {\n hasEnabled = true;\n }\n });\n }\n });\n\n return hasEnabled;\n }\n\n hasEnabledContextLayers(): boolean {\n let hasEnabled = false;\n this.contextLayerGroups.forEach(cLayerGroup => {\n cLayerGroup.contextLayers.forEach(cLayer => {\n if (cLayer.enabled) {\n hasEnabled = true;\n }\n });\n });\n\n return hasEnabled;\n }\n\n toggleContextLayer(layer: ContextLayer): void {\n layer.active = !layer.active;\n\n this.layerChange.emit(layer);\n }\n\n removeContextLayer(layer: ContextLayer): void {\n layer.active = false;\n layer.enabled = false;\n\n this.layerChange.emit(layer);\n }\n\n addContextLayerModal(): void {\n let bsModalRef = this.modalService.show(ContextLayerModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true,\n // eslint-disable-next-line quote-props\n \"class\": \"context-layer-modal\"\n });\n bsModalRef.content.contextLayerGroups = this.contextLayerGroups;\n\n // bsModalRef.content.onSubmit.subscribe(() => {\n //\n // this.contextLayerGroups.forEach(cLayerGroup => {\n // cLayerGroup.contextLayers.forEach(cLayer => {\n //\n // console.log(\"Emitting event\", cLayer);\n // this.layerChange.emit(cLayer);\n // });\n // })\n //\n // });\n }\n\n toggleBaseLayer(layer: any): void {\n this.baseLayers.forEach(bl => {\n bl.active = false;\n });\n\n layer.active = true;\n\n this.baseLayerChange.emit(layer);\n }\n\n}\n","\n
\n\n \n
\n\n
\n

\n \n

\n
\n \n \n
\n
\n
\n
\n

\n \n

\n
\n
\n
\n \n
\n
\n
\n {{ cLayer.displayLabel }} \n
\n
\n
\n
\n
\n\n
\n
\n\n \n
\n\n
\n\n
\n\n\n","import { Component, OnInit, Input, Output, EventEmitter, ViewChild, ElementRef } from \"@angular/core\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { BsModalRef, BsModalService } from \"ngx-bootstrap/modal\";\n\nimport { GeoObjectType, GeoObjectOverTime, AttributeType, HierarchyOverTime } from \"@registry/model/registry\";\nimport { RegistryService, GeometryService } from \"@registry/service\";\nimport { AuthService } from \"@shared/service\";\nimport { ErrorModalComponent, ErrorHandler } from \"@shared/component\";\n\n@Component({\n selector: \"feature-panel\",\n templateUrl: \"./feature-panel.component.html\",\n styleUrls: [\"./dataset-location-manager.css\"]\n})\nexport class FeaturePanelComponent implements OnInit {\n\n MODE = {\n VERSIONS: \"VERSIONS\",\n ATTRIBUTES: \"ATTRIBUTES\",\n HIERARCHY: \"HIERARCHY\",\n GEOMETRY: \"GEOMETRY\"\n }\n\n @Input() datasetId: string;\n\n @Input() type: GeoObjectType;\n\n @Input() forDate: Date = new Date();\n\n @Input() readOnly: boolean = false;\n\n // eslint-disable-next-line accessor-pairs\n @Input() set code(value: string) {\n this.updateCode(value);\n }\n\n @ViewChild(\"attributeEditor\") attributeEditor;\n\n _code: string = null;\n\n @Output() featureChange = new EventEmitter();\n @Output() modeChange = new EventEmitter();\n @Output() panelCancel = new EventEmitter();\n @Output() panelSubmit = new EventEmitter<{isChangeRequest:boolean, geoObject?: any, changeRequestId?: string}>();\n\n _isValid: boolean = true;\n\n bsModalRef: BsModalRef;\n\n mode: string = null;\n\n isMaintainer: boolean;\n\n // The current state of the GeoObject in the GeoRegistry\n preGeoObject: GeoObjectOverTime;\n\n // The state of the GeoObject after our edit has been applied\n postGeoObject: GeoObjectOverTime;\n\n attribute: AttributeType = null;\n\n isNew: boolean = false;\n\n isEdit: boolean = false;\n\n hierarchies: HierarchyOverTime[];\n\n hierarchy: HierarchyOverTime = null;\n\n reason: string = \"\";\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public service: RegistryService, private modalService: BsModalService, private authService: AuthService, private geometryService: GeometryService) { }\n\n ngOnInit(): void {\n this.isMaintainer = this.authService.isSRA() || this.authService.isOrganizationRA(this.type.organizationCode) || this.authService.isGeoObjectTypeOrSuperRM(this.type);\n this.mode = \"ATTRIBUTES\";\n\n// this.isEdit = !this.readOnly;\n }\n\n setValid(valid: boolean): void {\n this._isValid = valid;\n }\n\n isValid(): boolean {\n return this._isValid && this.attributeEditor && this.attributeEditor.isValid();\n }\n\n updateCode(code: string): void {\n this._code = code;\n this.postGeoObject = null;\n this.preGeoObject = null;\n this.hierarchies = null;\n\n if (code != null && this.type != null) {\n if (code !== \"__NEW__\") {\n this.isNew = false;\n\n this.service.getGeoObjectOverTime(code, this.type.code).then(geoObject => {\n this.preGeoObject = new GeoObjectOverTime(this.type, JSON.parse(JSON.stringify(geoObject)).attributes);\n this.postGeoObject = new GeoObjectOverTime(this.type, JSON.parse(JSON.stringify(this.preGeoObject)).attributes);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n\n this.service.getHierarchiesForGeoObject(code, this.type.code).then((hierarchies: HierarchyOverTime[]) => {\n this.hierarchies = hierarchies;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n } else {\n this.isNew = true;\n\n this.service.newGeoObjectOverTime(this.type.code).then(retJson => {\n this.preGeoObject = new GeoObjectOverTime(this.type, retJson.geoObject.attributes);\n this.postGeoObject = new GeoObjectOverTime(this.type, JSON.parse(JSON.stringify(this.preGeoObject)).attributes);\n\n this.hierarchies = retJson.hierarchies;\n this.setEditMode(true);\n });\n }\n }\n }\n\n onCancelInternal(): void {\n this.panelCancel.emit();\n\n // if (this._code === '__NEW__') {\n // this.updateCode(null);\n // }\n // else {\n // this.updateCode(this._code);\n // }\n }\n\n canSubmit(): boolean {\n return this.isValid() &&\n (this.isMaintainer || (this.reason && this.reason.trim().length > 0)) &&\n (this.isNew || (this.attributeEditor && this.attributeEditor.getChangeRequestEditor().hasChanges()));\n }\n\n onSubmit(): void {\n if (this.isNew) {\n this.service.applyGeoObjectCreate(this.hierarchies, this.postGeoObject, this.isNew, this.datasetId, this.reason).then((applyInfo: any) => {\n if (!applyInfo.isChangeRequest) {\n this.featureChange.emit(this.postGeoObject);\n this.updateCode(this._code);\n }\n this.panelSubmit.emit(applyInfo);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n } else {\n this.service.applyGeoObjectEdit(this.postGeoObject.attributes.code, this.type.code, this.attributeEditor.getActions(), this.datasetId, this.reason).then((applyInfo: any) => {\n if (!applyInfo.isChangeRequest) {\n this.featureChange.emit(this.postGeoObject);\n this.updateCode(this._code);\n }\n this.panelSubmit.emit(applyInfo);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n this.geometryService.stopEditing();\n }\n\n onManageAttributeVersion(attribute: AttributeType): void {\n this.attribute = attribute;\n this.mode = this.MODE.VERSIONS;\n }\n\n onManageHiearchyVersion(hierarchy: HierarchyOverTime): void {\n this.hierarchy = hierarchy;\n this.mode = this.MODE.HIERARCHY;\n }\n\n onEditAttributes(): void {\n this.setEditMode(!this.isEdit);\n\n window.document.getElementById(\"navigator-left-sidebar\").scroll({\n top: 0,\n behavior: \"smooth\"\n });\n }\n\n setEditMode(value: boolean): void {\n this.isEdit = value;\n this.reason = null;\n\n this.modeChange.emit(this.isEdit);\n }\n\n public error(err: HttpErrorResponse): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n}\n","
\n
\n \n \n \n \n
\n \n \n
\n\n
\n \n \n \n \n \n\n
\n
\n
","import { Component, OnInit, ElementRef, ViewChild } from '@angular/core';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { Subject } from 'rxjs';\nimport { ErrorHandler } from '@shared/component';\nimport { Organization } from '@shared/model/core';\nimport { FileUploader, FileUploaderOptions } from 'ng2-file-upload';\nimport { EventService, LocalizationService } from '@shared/service';\n\ndeclare var acp: string;\n\n@Component({\n selector: 'import-types-modal',\n templateUrl: './import-types-modal.component.html',\n styleUrls: []\n})\nexport class ImportTypesModalComponent implements OnInit {\n\n public organizations: Organization[] = [];\n public orgCode: string;\n\n\n /*\n * File uploader\n */\n uploader: FileUploader;\n\n @ViewChild('myFile')\n fileRef: ElementRef;\n\n message: string = null;\n\n public onNodeChange: Subject;\n\n constructor(private eventService: EventService, private localizationService: LocalizationService, public bsModalRef: BsModalRef) {\n }\n\n ngOnInit(): void {\n this.onNodeChange = new Subject();\n }\n\n init(organizations: Organization[]): void {\n this.organizations = organizations;\n\n let options: FileUploaderOptions = {\n queueLimit: 1,\n removeAfterUpload: true,\n url: acp + '/cgr/import-types'\n };\n\n this.uploader = new FileUploader(options);\n\n this.uploader.onBuildItemForm = (fileItem: any, form: any) => {\n form.append('orgCode', this.orgCode);\n };\n this.uploader.onBeforeUploadItem = (fileItem: any) => {\n this.eventService.start();\n };\n this.uploader.onCompleteItem = (item: any, response: any, status: any, headers: any) => {\n this.fileRef.nativeElement.value = \"\";\n this.eventService.complete();\n };\n this.uploader.onSuccessItem = (item: any, response: string, status: number, headers: any) => {\n this.onNodeChange.next(true);\n this.bsModalRef.hide();\n };\n this.uploader.onErrorItem = (item: any, response: string, status: number, headers: any) => {\n const error = JSON.parse(response)\n\n this.error({ error: error });\n }\n\n }\n\n onSelect(orgCode: string): void {\n this.orgCode = orgCode;\n }\n\n onClick(): void {\n\n if (this.uploader.queue != null && this.uploader.queue.length > 0) {\n this.uploader.uploadAll();\n }\n else {\n this.error({\n message: this.localizationService.decode('io.missing.file'),\n error: {},\n });\n }\n }\n\n\n public error(err: any): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n}\n","
\n
{{message}}
\n\n
\n

\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { Subject } from 'rxjs';\n\nimport { ExternalSystemService } from '@shared/service';\nimport { ExternalSystem } from '@shared/model/core';\nimport { HttpErrorResponse } from '@angular/common/http';\n\n@Component({\n selector: 'export-system-modal',\n templateUrl: './export-system-modal.component.html',\n styleUrls: []\n})\nexport class ExportSystemModalComponent {\n\n systems: ExternalSystem[] = [];\n\n system: string = null;\n\n /*\n * Called on confirm\n */\n public onSystemSet: Subject;\n\n constructor(public bsModalRef: BsModalRef, private externalSystemService: ExternalSystemService) { }\n\n ngOnInit(): void {\n this.onSystemSet = new Subject();\n\n this.externalSystemService.getExternalSystems(1, 1000).then(systems => {\n this.systems = systems.resultSet.filter(sys => sys.type === 'FhirExternalSystem');\n }).catch((err: HttpErrorResponse) => {\n });\n\n }\n\n confirm(): void {\n this.bsModalRef.hide();\n this.onSystemSet.next(this.system);\n }\n}\n","
\n
\n

\n \n

\n
\n\n
\n
\n
\n
\n \n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n","import { Component, OnInit } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Subject } from \"rxjs\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { ErrorHandler } from \"@shared/component\";\nimport { HierarchyType } from \"@registry/model/hierarchy\";\nimport { RegistryService, HierarchyService } from \"@registry/service\";\n\nimport { LocalizationService, AuthService } from \"@shared/service\";\n\n@Component({\n selector: \"create-hierarchy-type-modal\",\n templateUrl: \"./create-hierarchy-type-modal.component.html\",\n styleUrls: []\n})\nexport class CreateHierarchyTypeModalComponent implements OnInit {\n\n hierarchyType: HierarchyType;\n organizations: any = [];\n message: string = null;\n\n edit: boolean = false; // if true, we are updating an existing. If false, we are creating new\n\n readOnly: boolean = false;\n\n organizationLabel: string;\n\n /*\n * Observable subject for TreeNode changes. Called when create is successful\n */\n public onHierarchytTypeCreate: Subject;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private lService: LocalizationService, private auth: AuthService, private registryService: RegistryService, private hierarchyService: HierarchyService, public bsModalRef: BsModalRef) { }\n\n ngOnInit(): void {\n this.onHierarchytTypeCreate = new Subject();\n\n this.hierarchyType = {\n code: \"\",\n label: this.lService.create(),\n description: this.lService.create(),\n rootGeoObjectTypes: [],\n organizationCode: \"\"\n };\n\n this.registryService.getOrganizations().then(orgs => {\n // Filter out organizations they're not RA's of, unless we're readOnly.\n if (!this.readOnly) {\n this.organizations = [];\n\n for (var i = 0; i < orgs.length; ++i) {\n if (this.auth.isOrganizationRA(orgs[i].code)) {\n this.organizations.push(orgs[i]);\n }\n }\n } else {\n this.organizations = orgs;\n }\n\n if (!this.edit && this.organizations.length === 1) {\n this.hierarchyType.organizationCode = this.organizations[0].code;\n this.organizationLabel = this.organizations[0].label.localizedValue;\n } else if (this.edit || this.readOnly) {\n this.organizationLabel = this.getOrganizationLabelFromCode(this.hierarchyType.organizationCode);\n }\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n getOrganizationLabelFromCode(orgCode: string) {\n for (var i = 0; i < this.organizations.length; ++i) {\n if (this.organizations[i].code === orgCode) {\n return this.organizations[i].label.localizedValue;\n }\n }\n\n console.log(\"Did not find org with code [\" + orgCode + \"]\");\n return orgCode;\n }\n\n handleOnSubmit(): void {\n this.message = null;\n\n if (this.readOnly) {\n this.bsModalRef.hide();\n return;\n }\n\n if (this.edit) {\n this.hierarchyService.updateHierarchyType(JSON.stringify(this.hierarchyType)).then(data => {\n this.onHierarchytTypeCreate.next(data);\n this.bsModalRef.hide();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n } else {\n this.hierarchyService.createHierarchyType(JSON.stringify(this.hierarchyType)).then(data => {\n this.onHierarchytTypeCreate.next(data);\n this.bsModalRef.hide();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n\n
\n \n\n
{{message}}
\n\n
\n

\n \n \n

\n
\n \n
\n \n \n
\n
\n \n \n
\n \n \n\n
\n \n \n \n \n
\n \n
\n \n \n
\n\n
\n \n \n
\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n \n
\n \n
\n

\n \n

\n
\n \n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n
\n
\n \n \n
\n
\n
\n\n \n
\n\n","import { Component, OnInit } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Subject } from \"rxjs\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { ErrorHandler } from \"@shared/component\";\nimport { GeoObjectType } from \"@registry/model/registry\";\n\nimport { RegistryService } from \"@registry/service\";\nimport { LocalizationService, AuthService } from \"@shared/service\";\nimport { Organization } from \"@shared/model/core\";\nimport { HierarchyType } from \"@registry/model/hierarchy\";\n\n@Component({\n selector: \"create-geoobjtype-modal\",\n templateUrl: \"./create-geoobjtype-modal.component.html\",\n styleUrls: []\n})\nexport class CreateGeoObjTypeModalComponent implements OnInit {\n\n geoObjectType: GeoObjectType;\n organization: Organization = null;\n message: string = null;\n parents: GeoObjectType[];\n hierarchyType: HierarchyType;\n organizationLabel: string;\n\n /*\n * Observable subject for TreeNode changes. Called when create is successful\n */\n public onGeoObjTypeCreate: Subject;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private lService: LocalizationService, private auth: AuthService, private registryService: RegistryService, public bsModalRef: BsModalRef) { }\n\n ngOnInit(): void {\n this.onGeoObjTypeCreate = new Subject();\n\n this.geoObjectType = {\n code: \"\",\n label: this.lService.create(),\n description: this.lService.create(),\n geometryType: \"MULTIPOINT\",\n isLeaf: false,\n isGeometryEditable: true,\n organizationCode: \"\",\n attributes: []\n };\n }\n\n init(organization: Organization, parents: GeoObjectType[], groupSuperType: GeoObjectType, isAbstract: boolean) {\n this.geoObjectType.isAbstract = isAbstract ? isAbstract : false;\n\n if (groupSuperType) {\n this.geoObjectType.superTypeCode = groupSuperType.code;\n this.geoObjectType.geometryType = groupSuperType.geometryType;\n this.geoObjectType.isPrivate = groupSuperType.isPrivate;\n }\n\n // Filter out parents that are not abstract\n this.parents = parents.filter(parent => parent.isAbstract);\n\n // Filter out organizations they're not RA's of\n this.organization = organization;\n this.geoObjectType.organizationCode = this.organization.code;\n this.organizationLabel = this.organization.label.localizedValue;\n }\n\n handleOnSubmit(): void {\n this.message = null;\n\n this.registryService.createGeoObjectType(JSON.stringify(this.geoObjectType)).then(data => {\n this.onGeoObjTypeCreate.next(data);\n this.bsModalRef.hide();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n toggleIsLeaf(): void {\n this.geoObjectType.isLeaf = !this.geoObjectType.isLeaf;\n }\n\n toggleIsGeometryEditable(): void {\n this.geoObjectType.isGeometryEditable = !this.geoObjectType.isGeometryEditable;\n }\n\n toggleIsAbstract(): void {\n this.geoObjectType.isAbstract = !this.geoObjectType.isAbstract;\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n}\n","
\n\n
\n
{{message}}
\n\n
\n

\n \n \n

\n
\n\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n\n
\n
\n \n
\n
\n \n
\n
\n
\n \n
\n \n
\n
\n
\n
\n \n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n \n\n
\n
\n
\n
\n
\n \n
\n\n \n
\n
\n
\n
\n \n
\n
\n
\n \n \n \n \n
\n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n\n
\n
\n","import { Component, OnInit } from \"@angular/core\";\nimport {\n trigger,\n style,\n animate,\n transition\n} from \"@angular/animations\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Subject, Subscription } from \"rxjs\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { ErrorHandler } from \"@shared/component\";\nimport { ManageGeoObjectTypeModalState, GeoObjectType } from \"@registry/model/registry\";\nimport { GeoObjectTypeModalStates } from \"@registry/model/constants\";\n\nimport { GeoObjectTypeManagementService } from \"@registry/service\";\n\n@Component({\n selector: \"manage-geoobjecttype-modal\",\n templateUrl: \"./manage-geoobjecttype-modal.component.html\",\n styleUrls: [\"./manage-geoobjecttype-modal.css\"],\n // host: { '[@fadeInOut]': 'true' },\n animations: [\n [\n trigger(\"fadeInOut\", [\n transition(\"void => *\", [\n style({\n opacity: 0\n }),\n animate(\"500ms\")\n ]),\n transition(\":leave\",\n animate(\"500ms\",\n style({\n opacity: 0\n })\n )\n )\n ])\n ]]\n})\nexport class ManageGeoObjectTypeModalComponent implements OnInit {\n\n message: string = null;\n modalState: ManageGeoObjectTypeModalState = { state: GeoObjectTypeModalStates.manageGeoObjectType, attribute: \"\", termOption: \"\" };\n modalStateSubscription: Subscription;\n geoObjectType: GeoObjectType;\n public onGeoObjectTypeSubmitted: Subject;\n readOnly: boolean = false;\n\n constructor(public bsModalRef: BsModalRef, public confirmBsModalRef: BsModalRef, geoObjectTypeManagementService: GeoObjectTypeManagementService) {\n this.modalStateSubscription = geoObjectTypeManagementService.modalStepChange.subscribe(modalState => {\n this.modalState = modalState;\n });\n }\n\n ngOnInit(): void {\n this.onGeoObjectTypeSubmitted = new Subject();\n }\n\n ngOnDestroy() {\n this.modalStateSubscription.unsubscribe();\n }\n\n onModalStateChange(state: any): void {\n this.modalState = state;\n }\n\n onGeoObjectTypeChange(data: any): void {\n // send persisted geoobjecttype to the parent calling component (hierarchy.component) so the\n // updated GeoObjectType can be reflected in the template\n this.onGeoObjectTypeSubmitted.next(data);\n }\n\n update(): void {\n\n }\n\n close(): void {\n this.bsModalRef.hide();\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","\n
\n\n \n\n \n\n\n\n\n \n\n \n\n \n\n \n\n
","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\nimport {\n trigger,\n style,\n animate,\n transition\n} from \"@angular/animations\";\nimport { BsModalRef, BsModalService } from \"ngx-bootstrap/modal\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { StepConfig, ModalTypes } from \"@shared/model/modal\";\nimport { ErrorHandler, ConfirmModalComponent } from \"@shared/component\";\n\nimport { LocalizationService, ModalStepIndicatorService } from \"@shared/service\";\n\nimport { GeoObjectType, ManageGeoObjectTypeModalState, AttributeType } from \"@registry/model/registry\";\nimport { GeoObjectTypeModalStates } from \"@registry/model/constants\";\nimport { RegistryService, GeoObjectTypeManagementService } from \"@registry/service\";\n\n@Component({\n selector: \"geoobjecttype-input\",\n templateUrl: \"./geoobjecttype-input.component.html\",\n styleUrls: [\"./geoobjecttype-input.css\"],\n // host: { '[@fadeInOut]': 'true' },\n animations: [\n [\n trigger(\"fadeInOut\", [\n transition(\"void => *\", [\n style({\n opacity: 0\n }),\n animate(\"500ms\")\n ]),\n transition(\":leave\",\n animate(\"500ms\",\n style({\n opacity: 0\n })\n )\n )\n ])\n ]]\n})\nexport class GeoObjectTypeInputComponent implements OnInit {\n\n @Input() readOnly: boolean = false;\n @Input() geoObjectType: GeoObjectType;\n @Output() geoObjectTypeChange: EventEmitter = new EventEmitter();\n editGeoObjectType: GeoObjectType;\n\n organizationLabel: string;\n\n // eslint-disable-next-line accessor-pairs\n @Input(\"setGeoObjectType\")\n set in(geoObjectType: GeoObjectType) {\n if (geoObjectType) {\n this.editGeoObjectType = JSON.parse(JSON.stringify(geoObjectType));\n }\n }\n\n message: string = null;\n\n modalState: ManageGeoObjectTypeModalState = { state: GeoObjectTypeModalStates.manageGeoObjectType, attribute: \"\", termOption: \"\" };\n\n modalStepConfig: StepConfig = {\n steps: [\n { label: this.localizationService.decode(\"modal.step.indicator.manage.geoobjecttype\"), active: true, enabled: true }\n ]\n };\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef, public confirmBsModalRef: BsModalRef, private modalService: BsModalService,\n private modalStepIndicatorService: ModalStepIndicatorService, private geoObjectTypeManagementService: GeoObjectTypeManagementService,\n private localizationService: LocalizationService, private registryService: RegistryService) { }\n\n ngOnInit(): void {\n this.modalStepIndicatorService.setStepConfig(this.modalStepConfig);\n this.geoObjectTypeManagementService.setModalState(this.modalState);\n\n this.fetchOrganizationLabel();\n }\n\n defineAttributeModal(): void {\n this.geoObjectTypeManagementService.setModalState({ state: GeoObjectTypeModalStates.defineAttribute, attribute: \"\", termOption: \"\" });\n }\n\n fetchOrganizationLabel(): void {\n this.registryService.getOrganizations().then(orgs => {\n for (let i = 0; i < orgs.length; ++i) {\n if (orgs[i].code === this.editGeoObjectType.organizationCode) {\n this.organizationLabel = orgs[i].label.localizedValue;\n }\n }\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n manageAttributes(): void {\n this.geoObjectTypeManagementService.setModalState({ state: GeoObjectTypeModalStates.manageAttributes, attribute: \"\", termOption: \"\" });\n }\n\n onModalStateChange(state: ManageGeoObjectTypeModalState): void {\n this.modalState = state;\n }\n\n update(): void {\n this.registryService.updateGeoObjectType(this.editGeoObjectType).then(geoObjectType => {\n // emit the persisted geoobjecttype to the parent widget component (manage-geoobjecttype.component)\n // so that the change can be updated in the template\n this.geoObjectTypeChange.emit(geoObjectType);\n\n this.close();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n // resetGeoObjectType(): void {\n // this.geoObjectType = this.geoObjectTypeOriginal;\n // }\n\n close(): void {\n // this.resetGeoObjectType();\n this.bsModalRef.hide();\n }\n\n isValid(): boolean {\n // if(this.attribute.code && this.attribute.label) {\n\n // // if code has a space\n // if(this.attribute.code.indexOf(\" \") !== -1){\n // return false;\n // }\n\n // // If label is only spaces\n // if(this.attribute.label.replace(/\\s/g, '').length === 0) {\n // return false\n // }\n\n // return true;\n // }\n\n // return false;\n\n return true;\n }\n\n editAttribute(attr: AttributeType, e: any): void {\n this.geoObjectTypeManagementService.setModalState({ state: GeoObjectTypeModalStates.editAttribute, attribute: attr, termOption: \"\" });\n }\n\n removeAttributeType(attr: AttributeType, e: any): void {\n this.confirmBsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n this.confirmBsModalRef.content.message = this.localizationService.decode(\"confirm.modal.verify.delete\") + \"[\" + attr.label.localizedValue + \"]\";\n this.confirmBsModalRef.content.data = { attributeType: attr, geoObjectType: this.geoObjectType };\n this.confirmBsModalRef.content.submitText = this.localizationService.decode(\"modal.button.delete\");\n this.confirmBsModalRef.content.type = ModalTypes.danger;\n\n ( this.confirmBsModalRef.content).onConfirm.subscribe(data => {\n this.deleteAttributeType(data.geoObjectType.code, data.attributeType);\n });\n }\n\n deleteAttributeType(geoObjectTypeCode: string, attr: AttributeType): void {\n this.registryService.deleteAttributeType(geoObjectTypeCode, attr.code).then(data => {\n if (data) {\n this.geoObjectType.attributes.splice(this.geoObjectType.attributes.indexOf(attr), 1);\n }\n\n this.geoObjectTypeChange.emit(this.geoObjectType);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","\n
\n
{{message}}
\n\n
\n
\n

\n \n : {{editGeoObjectType.label.localizedValue}}\n

\n
\n
\n
\n
\n \n
\n
\n \n \n
\n
\n \n \n \n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n {{geoObjectType.superTypeCode}}\n \n
\n
\n\n\n
\n
\n \n
\n
\n \n
\n
\n\n\n
\n
\n \n
\n
\n\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n\n
\n
\n \n
\n
\n
\n
\n\n\n\n\n\n\n\n\n
\n \n\n\n\n\n\n\n\n\n\n\n \n \n \n \n \n \n
{{attr.label.localizedValue}}\n \n \n
\n
\n \n \n \n \n
\n
\n
\n
\n\n
\n
\n \n \n
\n
\n
\n
\n
\n\n\n","import { Component, OnInit, ViewChild, Input, EventEmitter, Output } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { ErrorHandler } from \"@shared/component\";\nimport { StepConfig } from \"@shared/model/modal\";\n\nimport { LocalizationService, ModalStepIndicatorService } from \"@shared/service\";\n\nimport { GeoObjectType, AttributeType, AttributeTermType, AttributeDecimalType, ManageGeoObjectTypeModalState } from \"@registry/model/registry\";\nimport { GeoObjectTypeModalStates } from \"@registry/model/constants\";\nimport { RegistryService, GeoObjectTypeManagementService } from \"@registry/service\";\nimport { AttributeInputComponent } from \"../geoobjecttype-management/attribute-input.component\";\n\n@Component({\n selector: \"define-attribute-modal-content\",\n templateUrl: \"./define-attribute-modal-content.component.html\",\n styleUrls: [\"./define-attribute-modal-content.css\"]\n})\nexport class DefineAttributeModalContentComponent implements OnInit {\n\n @Input() geoObjectType: GeoObjectType;\n @Output() geoObjectTypeChange: EventEmitter = new EventEmitter();\n\n message: string = null;\n newAttribute: AttributeType = null;\n modalStepConfig: StepConfig = {\n steps: [\n { label: this.localizeService.decode(\"modal.step.indicator.manage.geoobjecttype\"), active: true, enabled: false },\n { label: this.localizeService.decode(\"modal.step.indicator.manage.attributes\"), active: true, enabled: false },\n { label: this.localizeService.decode(\"modal.step.indicator.create.attribute\"), active: true, enabled: true }\n ]\n };\n\n modalState: ManageGeoObjectTypeModalState = { state: GeoObjectTypeModalStates.defineAttribute, attribute: \"\", termOption: \"\" };\n\n @ViewChild(AttributeInputComponent) attributeInputComponent: AttributeInputComponent;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(\n public bsModalRef: BsModalRef,\n private modalStepIndicatorService: ModalStepIndicatorService,\n private geoObjectTypeManagementService: GeoObjectTypeManagementService,\n private localizeService: LocalizationService,\n private registryService: RegistryService) { }\n\n ngOnInit(): void {\n this.setAttribute(\"character\");\n this.modalStepIndicatorService.setStepConfig(this.modalStepConfig);\n }\n\n ngAfterViewInit(): void {\n if (this.attributeInputComponent) {\n this.attributeInputComponent.animate();\n }\n }\n\n handleOnSubmit(): void {\n this.registryService.addAttributeType(this.geoObjectType.code, this.newAttribute).then(data => {\n this.geoObjectType.attributes.push(data);\n\n this.geoObjectTypeManagementService.setModalState({ state: GeoObjectTypeModalStates.manageGeoObjectType, attribute: \"\", termOption: \"\" });\n\n this.geoObjectTypeChange.emit(this.geoObjectType);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n setAttribute(type: string): void {\n if (type === \"term\") {\n this.newAttribute = new AttributeTermType(\"\", type, this.localizeService.create(), this.localizeService.create(), false, false, false, true);\n } else if (type === \"float\") {\n this.newAttribute = new AttributeDecimalType(\"\", type, this.localizeService.create(), this.localizeService.create(), false, false, false, true);\n } else {\n this.newAttribute = new AttributeType(\"\", type, this.localizeService.create(), this.localizeService.create(), false, false, false, true);\n }\n }\n\n isFormValid(): boolean {\n let isAttrValid: boolean = false;\n\n if (this.attributeInputComponent) {\n isAttrValid = this.attributeInputComponent.isValid();\n }\n\n if (isAttrValid) {\n return true;\n }\n\n return false;\n }\n\n cancel(): void {\n this.geoObjectTypeManagementService.setModalState({ state: GeoObjectTypeModalStates.manageGeoObjectType, attribute: \"\", termOption: \"\" });\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n\n \n\n
\n
\n
\n
{{message}}
\n \n
\n

\n \n

\n
\n\n
\n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n
\n\n \n\n
\n
\n \n \n
\n \n \n
\n
\n
\n
\n
\n
\n
\n\n
\n","import { Directive } from \"@angular/core\";\nimport { NG_VALIDATORS, AbstractControl, ValidatorFn, Validator, FormControl } from \"@angular/forms\";\n\n// validation function\nfunction validateGeoObjectAttributeCodeValidator(): ValidatorFn {\n return (c: AbstractControl) => {\n if (c.value) {\n let isValid = c.value.indexOf(\" \") === -1;\n\n if (isValid) {\n return null;\n } else {\n return {\n geoObjectAttributeCode: {\n valid: false\n }\n };\n }\n }\n };\n}\n\n@Directive({\n selector: \"[geoObjectAttributeCode][ngModel]\",\n providers: [\n // eslint-disable-next-line no-use-before-define\n { provide: NG_VALIDATORS, useExisting: GeoObjectAttributeCodeValidator, multi: true }\n ]\n})\nexport class GeoObjectAttributeCodeValidator implements Validator {\n\n validator: ValidatorFn;\n\n constructor() {\n this.validator = validateGeoObjectAttributeCodeValidator();\n }\n\n validate(c: FormControl) {\n return this.validator(c);\n }\n\n}\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from \"@angular/core\";\nimport {\n trigger,\n style,\n animate,\n transition\n} from \"@angular/animations\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { GeoObjectType, AttributeType, ManageGeoObjectTypeModalState } from \"@registry/model/registry\";\nimport { GeoObjectTypeModalStates } from \"@registry/model/constants\";\n\nimport { ErrorHandler } from \"@shared/component\";\nimport { StepConfig } from \"@shared/model/modal\";\n\nimport { LocalizationService, ModalStepIndicatorService } from \"@shared/service\";\n\nimport { RegistryService, GeoObjectTypeManagementService } from \"@registry/service\";\n\nimport { AttributeInputComponent } from \"../geoobjecttype-management/attribute-input.component\";\n\n@Component({\n selector: \"edit-attribute-modal-content\",\n templateUrl: \"./edit-attribute-modal-content.component.html\",\n styleUrls: [\"./edit-attribute-modal-content.css\"],\n // host: { '[@fadeInOut]': 'true' },\n animations: [\n [\n trigger(\"fadeInOut\", [\n transition(\"void => *\", [\n style({\n opacity: 0\n }),\n animate(\"500ms\")\n ])\n ])\n ]]\n})\nexport class EditAttributeModalContentComponent implements OnInit {\n\n @Input() geoObjectType: GeoObjectType;\n @Input() attribute: AttributeType = null;\n @Output() geoObjectTypeChange: EventEmitter = new EventEmitter();\n\n message: string = null;\n modalState: ManageGeoObjectTypeModalState = { state: GeoObjectTypeModalStates.editAttribute, attribute: this.attribute, termOption: \"\" };\n modalStepConfig: StepConfig = {\n steps: [\n { label: this.localizeService.decode(\"modal.step.indicator.manage.geoobjecttype\"), active: true, enabled: false },\n { label: this.localizeService.decode(\"modal.step.indicator.manage.attributes\"), active: true, enabled: false },\n { label: this.localizeService.decode(\"modal.step.indicator.edit.attribute\"), active: true, enabled: true }\n ]\n };\n\n @ViewChild(AttributeInputComponent) attributeInputComponent: AttributeInputComponent;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef,\n private modalStepIndicatorService: ModalStepIndicatorService,\n private geoObjectTypeManagementService: GeoObjectTypeManagementService,\n private localizeService: LocalizationService,\n private registryService: RegistryService) { }\n\n ngOnInit(): void {\n this.modalStepIndicatorService.setStepConfig(this.modalStepConfig);\n }\n\n ngAfterViewInit() {\n\n }\n\n ngOnDestroy() {\n }\n\n handleOnSubmit(): void {\n this.registryService.updateAttributeType(this.geoObjectType.code, this.attribute).then(data => {\n for (let i = 0; i < this.geoObjectType.attributes.length; i++) {\n let attr = this.geoObjectType.attributes[i];\n if (attr.code === data.code) {\n Object.assign(attr, data);\n break;\n }\n }\n\n this.geoObjectTypeManagementService.setModalState({ state: GeoObjectTypeModalStates.manageGeoObjectType, attribute: \"\", termOption: \"\" });\n\n this.geoObjectTypeChange.emit(this.geoObjectType);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n isFormValid(): boolean {\n // let isAttrValid: boolean = this.attributeInputComponent.isValid();\n\n // if(isAttrValid){\n // return true;\n // }\n\n // return false;\n return true;\n }\n\n cancel(): void {\n this.geoObjectTypeManagementService.setModalState({ state: GeoObjectTypeModalStates.manageGeoObjectType, attribute: \"\", termOption: \"\" });\n }\n\n back(): void {\n this.geoObjectTypeManagementService.setModalState({ state: GeoObjectTypeModalStates.manageGeoObjectType, attribute: \"\", termOption: \"\" });\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n\n
\n
\n
\n
{{message}}
\n \n
\n

\n : {{attribute.label.localizedValue}}\n

\n \n

:

\n

:

\n

:

\n

:

\n

:

\n

:

\n
\n \n \n\n
\n\n \n\n \n \n\n
\n
\n \n \n
\n \n \n
\n
\n
\n
\n
\n
\n
\n \n\n
\n","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectorRef } from \"@angular/core\";\nimport {\n trigger,\n state,\n style,\n animate,\n transition\n} from \"@angular/animations\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { GeoObjectType, AttributeTermType, ManageGeoObjectTypeModalState } from \"@registry/model/registry\";\nimport { GeoObjectTypeModalStates } from \"@registry/model/constants\";\nimport { GeoObjectTypeManagementService } from \"@registry/service/geoobjecttype-management.service\";\n\n@Component({\n selector: \"term-option-widget\",\n templateUrl: \"./term-option-widget.component.html\",\n styleUrls: [\"./term-option-widget.css\"],\n animations: [\n trigger(\"toggleInputs\", [\n state(\"none, void\",\n style({ opacity: 0 })\n ),\n state(\"show\",\n style({ opacity: 1 })\n ),\n transition(\"none => show\", animate(\"300ms\")),\n transition(\"show => none\", animate(\"100ms\"))\n ]),\n trigger(\"openClose\",\n [\n transition(\n \":enter\", [\n style({ opacity: 0 }),\n animate(\"500ms\", style({ opacity: 1 }))\n ]\n ),\n transition(\n \":leave\", [\n style({ opacity: 1 }),\n animate(\"0ms\", style({ opacity: 0 }))\n\n ]\n )]\n )\n ]\n})\nexport class TermOptionWidgetComponent implements OnInit {\n\n @Input() geoObjectType: GeoObjectType;\n @Input() attribute: AttributeTermType = null;\n @Output() attributeChange = new EventEmitter();\n message: string = null;\n state: string = \"none\";\n modalState: ManageGeoObjectTypeModalState = { state: GeoObjectTypeModalStates.manageTermOption, attribute: this.attribute, termOption: \"\" };\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef, private cdr: ChangeDetectorRef, private geoObjectTypeManagementService: GeoObjectTypeManagementService) { }\n\n ngOnInit(): void {\n\n }\n\n ngAfterViewInit() {\n this.state = \"show\";\n this.cdr.detectChanges();\n }\n\n ngOnDestroy() {\n\n }\n\n handleOnSubmit(): void {\n\n }\n\n animate(): void {\n this.state = \"none\";\n }\n\n onAnimationDone(event: AnimationEvent): void {\n this.state = \"show\";\n }\n\n // isValid(): boolean {\n // if(this.termOption.code && this.termOption.code.length > 0 && this.termOption.label && this.termOption.label.length > 0){\n\n // // If code has a space\n // if(this.termOption.code.indexOf(\" \") !== -1){\n // return false;\n // }\n\n // // If label is only spaces\n // if(this.termOption.label.replace(/\\s/g, '').length === 0) {\n // return false\n // }\n\n // return true;\n // }\n // else if(this.termOption.code && this.termOption.code.indexOf(\" \") !== -1){\n // return false;\n // }\n\n // return false\n // }\n\n openAddTermOptionForm(): void {\n this.geoObjectTypeManagementService.setModalState({ state: GeoObjectTypeModalStates.manageTermOption, attribute: this.attribute, termOption: \"\" });\n }\n\n}\n","
\n\n
\n
\n \n
\n
\n
\n
\n
    \n
  • {{term.label.localizedValue}}
  • \n
\n\n \n
\n
\n
\n
\n\n
\n\n\n","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectorRef } from \"@angular/core\";\nimport {\n trigger,\n state,\n style,\n animate,\n transition\n} from \"@angular/animations\";\nimport { BsModalRef, BsModalService } from \"ngx-bootstrap/modal\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { StepConfig, ModalTypes } from \"@shared/model/modal\";\nimport { ErrorHandler, ConfirmModalComponent } from \"@shared/component\";\nimport { LocalizationService, ModalStepIndicatorService } from \"@shared/service\";\n\nimport { RegistryService, GeoObjectTypeManagementService } from \"@registry/service\";\nimport { GeoObjectType, AttributeTermType, Term } from \"@registry/model/registry\";\nimport { GeoObjectTypeModalStates } from \"@registry/model/constants\";\n\n@Component({\n selector: \"manage-term-options\",\n templateUrl: \"./manage-term-options.component.html\",\n styleUrls: [\"./manage-term-options.css\"],\n animations: [\n trigger(\"toggleInputs\", [\n state(\"none, void\",\n style({ opacity: 0 })\n ),\n state(\"show\",\n style({ opacity: 1 })\n ),\n transition(\"none => show\", animate(\"300ms\")),\n transition(\"show => none\", animate(\"100ms\"))\n ]),\n trigger(\"openClose\",\n [\n transition(\n \":enter\", [\n style({ opacity: 0 }),\n animate(\"500ms\", style({ opacity: 1 }))\n ]\n ),\n transition(\n \":leave\", [\n style({ opacity: 1 }),\n animate(\"0ms\", style({ opacity: 0 }))\n\n ]\n )]\n )\n ]\n})\nexport class ManageTermOptionsComponent implements OnInit {\n\n @Input() geoObjectType: GeoObjectType;\n @Input() attribute: AttributeTermType;\n @Output() attributeChange = new EventEmitter();\n message: string = null;\n termOption: Term;\n state: string = \"none\";\n enableTermOptionForm = false;\n modalStepConfig: StepConfig = {\r\n steps: [\n { label: this.localizeService.decode(\"modal.step.indicator.manage.geoobjecttype\"), active: true, enabled: false },\n { label: this.localizeService.decode(\"modal.step.indicator.manage.attributes\"), active: true, enabled: false },\n { label: this.localizeService.decode(\"modal.step.indicator.edit.attribute\"), active: true, enabled: false },\n { label: this.localizeService.decode(\"modal.step.indicator.manage.term.options\"), active: true, enabled: true }\n ]\r\n };\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef, private cdr: ChangeDetectorRef, private geoObjectTypeManagementService: GeoObjectTypeManagementService,\n private modalService: BsModalService, private localizeService: LocalizationService, private modalStepIndicatorService: ModalStepIndicatorService,\n private registryService: RegistryService) { }\n\n ngOnInit(): void {\n this.modalStepIndicatorService.setStepConfig(this.modalStepConfig);\n this.termOption = new Term(\"\", this.localizeService.create(), this.localizeService.create());\n }\n\n ngAfterViewInit() {\n this.state = \"show\";\n this.cdr.detectChanges();\n }\n\n ngOnDestroy() {\n\n }\n\n handleOnSubmit(): void {\n\n }\n\n animate(): void {\n this.state = \"none\";\n }\n\n onAnimationDone(event: AnimationEvent): void {\n this.state = \"show\";\n }\n\n isValid(): boolean {\n if (this.termOption.code && this.termOption.code.length > 0) {\n // If code has a space\n if (this.termOption.code.indexOf(\" \") !== -1) {\n return false;\n }\n\n // If label is only spaces\n for (let i = 0; i < this.termOption.label.localeValues.length; i++) {\n if (this.termOption.label.localeValues[i].value.replace(/\\s/g, \"\").length === 0) {\n return false;\n }\n }\n\n return true;\n } else if (this.termOption.code && this.termOption.code.indexOf(\" \") !== -1) {\n return false;\n }\n\n return false;\n }\n\n addTermOption(): void {\n this.registryService.addAttributeTermTypeOption(this.attribute.rootTerm.code, this.termOption).then(data => {\n this.attribute.rootTerm.children.push(data);\n\n this.attributeChange.emit(this.attribute);\n\n this.clearTermOption();\n\n this.enableTermOptionForm = false;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n deleteTermOption(termOption: Term): void {\n this.registryService.deleteAttributeTermTypeOption(this.attribute.rootTerm.code, termOption.code).then(data => {\n if (this.attribute.rootTerm.children.indexOf(termOption) !== -1) {\n this.attribute.rootTerm.children.splice(this.attribute.rootTerm.children.indexOf(termOption), 1);\n }\n\n this.attributeChange.emit(this.attribute);\n\n this.clearTermOption();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n removeTermOption(termOption: Term): void {\n this.bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n this.bsModalRef.content.message = this.localizeService.decode(\"confirm.modal.verify.delete\") + \"[\" + termOption.label + \"]\";\n this.bsModalRef.content.submitText = this.localizeService.decode(\"modal.button.delete\");\n this.bsModalRef.content.type = ModalTypes.danger;\n\n ( this.bsModalRef.content).onConfirm.subscribe(data => {\n this.deleteTermOption(termOption);\n });\n }\n\n editTermOption(termOption: Term): void {\n const state = {\n state: GeoObjectTypeModalStates.editTermOption,\n attribute: this.attribute,\n termOption: JSON.parse(JSON.stringify(termOption))\n };\n\n this.geoObjectTypeManagementService.setModalState(state);\n }\n\n clearTermOption(): void {\n this.termOption.code = \"\";\n this.termOption.label = this.localizeService.create();\n this.termOption.description = this.localizeService.create();\n }\n\n cancelTermOption(): void {\n this.clearTermOption();\n this.enableTermOptionForm = false;\n }\n\n openAddTermOptionForm(): void {\n this.enableTermOptionForm = true;\n }\n\n close(): void {\n this.geoObjectTypeManagementService.setModalState({ state: GeoObjectTypeModalStates.editAttribute, attribute: this.attribute, termOption: \"\" });\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n\n
\n
\n\n
{{message}}
\n \n
\n

\n : {{attribute.label.localizedValue}}\n

\n
\n
\n
\n
\n \n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n
\n \n \n ()\n \n \n
{{option.code}}{{localeValue.value}}\n \n \n
\n \n \n \n \n \n \n \n \n\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n","import { Component, OnInit, Input } from \"@angular/core\";\nimport {\n trigger,\n style,\n animate,\n transition\n} from \"@angular/animations\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { StepConfig } from \"@shared/model/modal\";\nimport { LocalizationService, ModalStepIndicatorService } from \"@shared/service\";\nimport { ErrorHandler } from \"@shared/component\";\n\nimport { GeoObjectType, AttributeTermType, Term, ManageGeoObjectTypeModalState } from \"@registry/model/registry\";\nimport { GeoObjectTypeModalStates } from \"@registry/model/constants\";\nimport { RegistryService, GeoObjectTypeManagementService } from \"@registry/service\";\n\n@Component({\n selector: \"edit-term-option-input\",\n templateUrl: \"./edit-term-option-input.component.html\",\n styleUrls: [],\n animations: [\n trigger(\"openClose\",\n [\n transition(\n \":enter\", [\n style({ opacity: 0 }),\n animate(\"500ms\", style({ opacity: 1 }))\n ]\n ),\n transition(\n \":leave\", [\n style({ opacity: 1 }),\n animate(\"0ms\", style({ opacity: 0 }))\n ]\n )]\n )\n ]\n})\nexport class EditTermOptionInputComponent implements OnInit {\n\n @Input() geoObjectType: GeoObjectType;\n @Input() attribute: AttributeTermType = null;\n @Input() termOption: Term;\n\n message: string = null;\n modalState: ManageGeoObjectTypeModalState = { state: GeoObjectTypeModalStates.editAttribute, attribute: this.attribute, termOption: \"\" };\n modalStepConfig: StepConfig = {\n steps: [\n { label: this.localizeService.decode(\"modal.step.indicator.manage.geoobjecttype\"), active: true, enabled: false },\n { label: this.localizeService.decode(\"modal.step.indicator.manage.attributes\"), active: true, enabled: false },\n { label: this.localizeService.decode(\"modal.step.indicator.edit.attribute\"), active: true, enabled: false },\n { label: this.localizeService.decode(\"modal.step.indicator.manage.term.options\"), active: true, enabled: false },\n { label: this.localizeService.decode(\"modal.step.indicator.edit.term.option\"), active: true, enabled: true }\n\n ]\n };\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef, private modalStepIndicatorService: ModalStepIndicatorService, private geoObjectTypeManagementService: GeoObjectTypeManagementService,\n private localizeService: LocalizationService, private registryService: RegistryService) { }\n\n ngOnInit(): void {\n this.modalStepIndicatorService.setStepConfig(this.modalStepConfig);\n }\n\n ngAfterViewInit() {\n\n }\n\n ngOnDestroy() {\n }\n\n handleOnSubmit(): void {\n this.registryService.updateAttributeTermTypeOption(this.attribute.rootTerm.code, this.termOption).then(data => {\n // Update the term definition on the attribute\n const index = this.attribute.rootTerm.children.findIndex(t => t.code === data.code);\n\n if (index !== -1) {\n this.attribute.rootTerm.children[index] = data;\n }\n\n this.geoObjectTypeManagementService.setModalState({ state: GeoObjectTypeModalStates.manageGeoObjectType, attribute: this.attribute, termOption: null });\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n isFormValid(): boolean {\n // let isAttrValid: boolean = this.attributeInputComponent.isValid();\n\n // if(isAttrValid){\n // return true;\n // }\n\n // return false;\n return true;\n }\n\n cancel(): void {\n this.geoObjectTypeManagementService.setModalState({ state: GeoObjectTypeModalStates.manageTermOption, attribute: this.attribute, termOption: null });\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n
{{message}}
\n\n
\n \n
\n
\n
\n

\n \n

\n
\n\n
\n
\n
\n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n\n\n
\n","/* eslint-disable no-floating-decimal */\nimport * as d3 from \"d3\";\n\nimport { HierarchyType } from \"@registry/model/hierarchy\";\nimport { GeoObjectType } from \"@registry/model/registry\";\n\nimport { SvgHierarchyNode } from \"./svg-hierarchy-node\";\nimport { calculateTextWidth } from \"./svg-util\";\nimport { INHERITED_NODE_BANNER_COLOR, DEFAULT_NODE_BANNER_COLOR, RELATED_NODE_BANNER_COLOR, DEFAULT_NODE_FILL, INHERITED_NODE_FILL, HierarchyComponent, TREE_SCALE_FACTOR_X, TREE_SCALE_FACTOR_Y } from \"../hierarchy.component\";\n\nimport { LocalizationService, AuthService } from \"@shared/service\";\nimport { BsModalService } from \"ngx-bootstrap/modal\";\n\nexport class SvgHierarchyType {\n\n public static gotRectW: number = 150;\n public static gotRectH: number = 25;\n public static gotBodyFontSize: number = 8;\n public static gotOptionsButtonFontSize: number = 12;\n\n public static gotHeaderW: number = 150;\n public static gotHeaderH: number = 14;\n public static gotHeaderFontSize: number = 8;\n\n public static MOUSE_HOVER_EVENT_ENTER = \"mouseenter\";\n\n public static MOUSE_HOVER_EVENT_MOVE = \"mousemove\";\n\n public static MOUSE_HOVER_EVENT_EXIT = \"mouseleave\";\n\n hierarchyComponent: HierarchyComponent;\n\n hierarchyType: HierarchyType;\n\n svgEl: any;\n\n d3Hierarchy: any;\n\n d3Tree: any;\n\n isPrimary: boolean;\n\n tooltip: any;\n\n public constructor(hierarchyComponent: HierarchyComponent, svgEl: any, ht: HierarchyType, isPrimary: boolean, public localizationService: LocalizationService, public modalService: BsModalService, public authService: AuthService) {\n const hierarchyType = ht;\n\n this.hierarchyComponent = hierarchyComponent;\n this.hierarchyType = hierarchyType;\n this.svgEl = svgEl;\n\n this.d3Hierarchy = d3.hierarchy(hierarchyType.rootGeoObjectTypes[0]);\n this.isPrimary = isPrimary;\n\n this.d3Tree = d3.tree().nodeSize([SvgHierarchyType.gotRectW * TREE_SCALE_FACTOR_X, (SvgHierarchyType.gotRectH + SvgHierarchyType.gotHeaderH) * TREE_SCALE_FACTOR_Y]).separation((a, b) => 0.8)(this.d3Hierarchy);\n }\n\n public getD3Tree() {\n return this.d3Tree;\n }\n\n public getCode(): string {\n return this.hierarchyType.code;\n }\n\n public getNodeByCode(gotCode: string): SvgHierarchyNode {\n let treeNode = this.getD3Tree().find((node) => { return node.data.geoObjectType === gotCode; });\n\n if (treeNode == null) {\n return null;\n }\n\n return new SvgHierarchyNode(this.hierarchyComponent, this, this.hierarchyComponent.findGeoObjectTypeByCode(gotCode), treeNode, this.localizationService, this.modalService, this.authService);\n }\n\n public renderHierarchyHeader(hg: any, colHeaderLabel: string) {\n let bbox = hg.node().getBBox();\n\n let colHeader = hg.append(\"g\").classed(\"g-hierarchy-header\", true);\n\n let headerg = hg.append(\"g\").classed(\"g-hierarchy-header\", true);\n\n const headerFontSize: number = 10;\n const iconWidth: number = 20;\n const maxHierarchyLabelLength = 200;\n\n let hierarchyLabelW: number = calculateTextWidth(this.hierarchyType.label.localizedValue, headerFontSize);\n let hierarchyLabelH:number = headerFontSize * 2;\n let hierarchyLabelY:number = bbox.y + headerFontSize * 1.6;\n if (hierarchyLabelW > maxHierarchyLabelLength) {\n hierarchyLabelW = maxHierarchyLabelLength;\n hierarchyLabelH = headerFontSize * 3;\n hierarchyLabelY = bbox.y + headerFontSize;\n }\n\n let lineWidth = bbox.width;\n let textWidth = hierarchyLabelW + iconWidth;\n\n if (textWidth > lineWidth) {\n lineWidth = textWidth;\n }\n\n // Hierarchy icon (font awesome)\n headerg.append(\"text\").classed(\"hierarchy-header-icon\", true)\n .attr(\"x\", bbox.x)\n .attr(\"y\", bbox.y)\n .style(\"font-family\", \"FontAwesome\")\n .attr(\"fill\", \"grey\")\n .attr(\"font-size\", 12)\n .text(\"\\uf0e8\");\n\n // Hierarchy display label\n colHeader.append(\"foreignObject\").classed(\"hierarchy-header-label\", true)\n .attr(\"font-size\", headerFontSize)\n .attr(\"stroke-linejoin\", \"round\")\n .attr(\"stroke-width\", 3)\n .attr(\"x\", bbox.x + iconWidth)\n .attr(\"y\", hierarchyLabelY)\n .attr(\"width\", hierarchyLabelW)\n .attr(\"height\", hierarchyLabelH)\n .append(\"xhtml:p\")\n .attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\")\n .attr(\"text-anchor\", \"start\")\n .attr(\"text-align\", \"left\")\n .style(\"vertical-align\", \"middle\")\n .style(\"display\", \"table-cell\")\n .style(\"color\", \"gray\")\n // .style(\"width\", SvgHierarchyType.gotRectW - 32 + 5 + \"px\")\n .style(\"height\", SvgHierarchyType.gotRectH - 4 + \"px\")\n .html((d: any) => this.hierarchyType.label.localizedValue);\n\n // Line underneath the header\n headerg.append(\"line\").classed(\"hierarchy-header-line\", true)\n .attr(\"x1\", bbox.x)\n .attr(\"y1\", bbox.y + headerFontSize)\n .attr(\"x2\", bbox.x + lineWidth)\n .attr(\"y2\", bbox.y + headerFontSize)\n .attr(\"stroke\", \"grey\")\n .attr(\"stroke-width\", .5);\n\n let headerGBbox = headerg.node().getBBox();\n headerg.attr(\"transform\", \"translate(0 -\" + headerGBbox.height + \")\");\n\n // Col header label\n colHeader.append(\"text\").classed(\"hierarchy-header-label\", true)\n .attr(\"font-size\", headerFontSize + 2)\n .attr(\"font-weight\", \"bold\")\n .attr(\"stroke-linejoin\", \"round\")\n .attr(\"stroke-width\", 3)\n .attr(\"fill\", \"grey\")\n .attr(\"x\", bbox.x)\n .attr(\"y\", bbox.y)\n .text(colHeaderLabel);\n\n colHeader.attr(\"transform\", \"translate(0 -\" + headerGBbox.height * 2.5 + \")\");\n\n return headerg;\n }\n\n getRelatedHierarchies(gotCode: string): string[] {\n let got: GeoObjectType = this.hierarchyComponent.findGeoObjectTypeByCode(gotCode);\n\n if (got.relatedHierarchies == null) {\n got.relatedHierarchies = this.hierarchyComponent.calculateRelatedHierarchies(got);\n }\n\n let relatedHiers: string[] = got.relatedHierarchies;\n\n let index = null;\n for (let i = 0; i < relatedHiers.length; ++i) {\n if (relatedHiers[i] === this.getCode()) {\n index = i;\n }\n }\n\n if (index != null) {\n relatedHiers.splice(index, 1);\n }\n\n return relatedHiers;\n }\n\n private nodeMouseover(d: any, element: any, data:any) {\n d3.select(\"#NodeTooltip\")\n .style(\"opacity\", 1);\n }\n\n private nodeMousemove(event: any, element: any, data:any) {\n d3.select(\"#hierarchyLabel\").html(this.hierarchyType.label.localizedValue);\n d3.select(\"#hierarchyCodeLabel\").html(this.hierarchyType.code);\n\n d3.select(\"#geoObjectTypeLabel\").html(data.data.label);\n d3.select(\"#geoObjectTypeCodeLabel\").html(data.data.geoObjectType);\n\n d3.select(\"#hierarchyOrganizationLabel\").html(this.hierarchyComponent.findOrganizationByCode(this.hierarchyType.organizationCode).label.localizedValue);\n d3.select(\"#geoObjectTypeOrganizationLabel\").html(this.hierarchyComponent.findOrganizationByCode(this.hierarchyComponent.findGeoObjectTypeByCode(data.data.geoObjectType).organizationCode).label.localizedValue);\n\n let nodeTooltip: any = d3.select(\"#NodeTooltip\").node();\n let nodeTooltipBbox: DOMRect = nodeTooltip.getBoundingClientRect();\n\n let pos = { x: event.pageX, y: event.pageY };\n const yPointerOffset: number = 50;\n const xPointerOffset: number = 0;\n\n // If overflow off bottom of page\n if ((event.pageY + nodeTooltipBbox.height + yPointerOffset) > document.documentElement.scrollHeight) {\n // render above mouse pointer\n pos.y = event.pageY - nodeTooltipBbox.height - yPointerOffset;\n }\n\n // If overflow off right side of page\n if ((event.pageX + nodeTooltipBbox.width + xPointerOffset) > document.documentElement.scrollWidth) {\n // render to the left of the mouse pointer\n pos.x = event.pageX - nodeTooltipBbox.width - xPointerOffset;\n }\n\n d3.select(\"#NodeTooltip\")\n .style(\"left\", pos.x + \"px\")\n .style(\"top\", pos.y + \"px\");\n }\n\n private nodeMouseleave(d: any, element: any, data:any) {\n d3.select(\"#NodeTooltip\")\n .style(\"opacity\", 0)\n .style(\"left\", \"-10000px\")\n .style(\"top\", \"-10000px\");\n }\n\n public render() {\n let that = this;\n let descends: any = this.d3Tree.descendants();\n\n d3.select(\".g-hierarchy[data-primary=\\\"false\\\"]\").remove();\n if (this.isPrimary) {\n d3.select(\".g-hierarchy[data-primary=\\\"true\\\"]\").remove();\n }\n\n let hg = this.svgEl.insert(\"g\", \".g-hierarchy\").classed(\"g-hierarchy\", true).attr(\"data-code\", this.hierarchyType.code).attr(\"data-primary\", this.isPrimary);\n hg.attr(\"font-family\", \"sans-serif\");\n\n let gtree = hg.append(\"g\").classed(\"g-hierarchy-tree\", true).attr(\"data-code\", this.hierarchyType.code);\n\n // Edge\n gtree.append(\"g\").classed(\"g-got-edge\", true)\n .attr(\"fill\", \"none\")\n .attr(\"stroke\", \"#555\")\n .attr(\"stroke-opacity\", 0.4)\n .attr(\"stroke-width\", 1.5)\n .selectAll(\"path\")\n .data(this.d3Tree.links())\n .join(\"path\")\n // .attr(\"d\", d3.linkVertical().x(function(d:any) { return d.x; }).y(function(d:any) { return d.y; })); // draws edges as curved lines\n .attr(\"d\", (d: any, i) => { // draws edges as square bracket lines\n return \"M\" + d.source.x + \",\" + (d.source.y) +\n \"V\" + ((d.source.y + d.target.y) / 2) +\n \"H\" + d.target.x +\n \"V\" + (d.target.y);\n });\n\n // Header on square which denotes which hierarchy it's a part of\n let gHeader = gtree.append(\"g\").classed(\"g-got-header\", true);\n gHeader.selectAll(\"rect\")\n .data(descends)\n .join(\"rect\")\n .filter(function(d: any) { return d.data.geoObjectType !== \"GhostNode\"; })\n .classed(\"svg-got-header-rect\", true)\n .attr(\"x\", (d: any) => d.x - (SvgHierarchyType.gotRectW / 2))\n .attr(\"y\", (d: any) => d.y - SvgHierarchyType.gotRectH / 2 - SvgHierarchyType.gotHeaderH + 4)\n .attr(\"fill\", (d: any) => this.isPrimary ? (d.data.inheritedHierarchyCode != null ? INHERITED_NODE_BANNER_COLOR : DEFAULT_NODE_BANNER_COLOR) : RELATED_NODE_BANNER_COLOR)\n .attr(\"width\", SvgHierarchyType.gotHeaderW)\n .attr(\"height\", SvgHierarchyType.gotHeaderH)\n .attr(\"cursor\", (d: any) => this.isPrimary ? (d.data.inheritedHierarchyCode != null ? null : \"grab\") : null)\n .attr(\"rx\", 3)\n .attr(\"data-gotCode\", (d: any) => d.data.geoObjectType)\n .attr(\"data-inherited\", (d: any) =>\n d.data.inheritedHierarchyCode != null\n )\n .on(SvgHierarchyType.MOUSE_HOVER_EVENT_ENTER, function(event: any, data: any) { that.nodeMouseover(event, this, data); })\n .on(SvgHierarchyType.MOUSE_HOVER_EVENT_MOVE, function(event: any, data: any) { that.nodeMousemove(event, this, data); })\n .on(SvgHierarchyType.MOUSE_HOVER_EVENT_EXIT, function(event: any, data: any) { that.nodeMouseleave(event, this, data); });\n\n // Write the name of the hierarchy on the header\n gHeader.selectAll(\"foreignObject\")\n .data(descends)\n .join(\"foreignObject\")\n .filter(function(d: any) { return d.data.geoObjectType !== \"GhostNode\"; })\n .classed(\"svg-got-header-rect\", true)\n .attr(\"x\", (d: any) =>\n d.x - (SvgHierarchyType.gotHeaderW / 2)\n )\n .attr(\"y\", (d: any) => d.y - SvgHierarchyType.gotRectH / 2 - SvgHierarchyType.gotHeaderH + 4)\n .attr(\"font-size\", SvgHierarchyType.gotHeaderFontSize + \"px\")\n .attr(\"cursor\", (d: any) => this.isPrimary ? (d.data.inheritedHierarchyCode != null ? null : \"grab\") : null)\n .attr(\"data-gotCode\", (d: any) => d.data.geoObjectType)\n .attr(\"data-inherited\", (d: any) => d.data.inheritedHierarchyCode != null)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"font-weight\", \"bold\")\n .attr(\"font-size\", SvgHierarchyType.gotHeaderFontSize)\n .attr(\"stroke-linejoin\", \"round\")\n .attr(\"stroke-width\", 3)\n .attr(\"width\", SvgHierarchyType.gotHeaderW)\n .attr(\"height\", SvgHierarchyType.gotHeaderH - 4)\n .append(\"xhtml:p\")\n .attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\")\n .attr(\"fill\", \"white\")\n .attr(\"height\", SvgHierarchyType.gotHeaderH - 4)\n .style(\"text-align\", \"center\")\n .style(\"vertical-align\", \"middle\")\n .style(\"display\", \"table-cell\")\n .style(\"color\", \"white\")\n .style(\"height\", (SvgHierarchyType.gotHeaderH - 4) + \"px\")\n .style(\"width\", SvgHierarchyType.gotHeaderW + \"px\")\n .html(function(d: any) {\n let name = d.data.inheritedHierarchyCode != null ? that.hierarchyComponent.findHierarchyByCode(d.data.inheritedHierarchyCode).label.localizedValue : that.hierarchyType.label.localizedValue;\n // eslint-disable-next-line no-unused-expressions\n calculateTextWidth(name, SvgHierarchyType.gotHeaderFontSize) > (SvgHierarchyType.gotHeaderW - 5) ? name = name.substring(0, 34) + \"...\" : true;\n return name;\n })\n .on(SvgHierarchyType.MOUSE_HOVER_EVENT_ENTER, function(event: any, data: any) { that.nodeMouseover(event, this, data); })\n .on(SvgHierarchyType.MOUSE_HOVER_EVENT_MOVE, function(event: any, data: any) { that.nodeMousemove(event, this, data); })\n .on(SvgHierarchyType.MOUSE_HOVER_EVENT_EXIT, function(event: any, data: any) { that.nodeMouseleave(event, this, data); });\n\n // GeoObjectType Body Square\n gtree.append(\"g\").classed(\"g-got\", true)\n .selectAll(\"rect\")\n .data(descends)\n .join(\"rect\")\n .filter(function(d: any) { return d.data.geoObjectType !== \"GhostNode\"; })\n .classed(\"svg-got-body-rect\", true)\n .attr(\"x\", (d: any) => d.x - (SvgHierarchyType.gotRectW / 2))\n .attr(\"y\", (d: any) => d.y - (SvgHierarchyType.gotRectH / 2))\n .attr(\"fill\", (d: any) => d.data.inheritedHierarchyCode != null ? INHERITED_NODE_FILL : DEFAULT_NODE_FILL)\n .attr(\"width\", SvgHierarchyType.gotRectW)\n .attr(\"height\", SvgHierarchyType.gotRectH)\n .attr(\"rx\", 3)\n .attr(\"cursor\", (d: any) => this.isPrimary ? (d.data.inheritedHierarchyCode != null ? null : \"grab\") : null)\n .attr(\"data-gotCode\", (d: any) => d.data.geoObjectType)\n .attr(\"data-inherited\", (d: any) => d.data.inheritedHierarchyCode != null)\n .each(function(d: any) {\n if (d.data.geoObjectType !== \"GhostNode\") {\n if (d.data.activeDropZones) {\n d.data.dropZoneBbox = { x: d.x - SvgHierarchyType.gotRectW / 2, y: d.y - SvgHierarchyType.gotRectH * 2, width: SvgHierarchyType.gotRectW * 2 + 100, height: SvgHierarchyType.gotRectH * 4 };\n } else {\n d.data.dropZoneBbox = { x: d.x - SvgHierarchyType.gotRectW / 2, y: d.y - SvgHierarchyType.gotRectH / 2, width: SvgHierarchyType.gotRectW, height: SvgHierarchyType.gotRectH };\n }\n }\n })\n .on(SvgHierarchyType.MOUSE_HOVER_EVENT_ENTER, function(event: any, data: any) { that.nodeMouseover(event, this, data); })\n .on(SvgHierarchyType.MOUSE_HOVER_EVENT_MOVE, function(event: any, data: any) { that.nodeMousemove(event, this, data); })\n .on(SvgHierarchyType.MOUSE_HOVER_EVENT_EXIT, function(event: any, data: any) { that.nodeMouseleave(event, this, data); });\n\n // Arrows on Edges\n const arrowRectD = { height: 7, width: 10 };\n let gArrow = gtree.append(\"g\").classed(\"g-got-connector-arrow\", true);\n gArrow.selectAll(\"rect\").data(this.d3Tree.links()).join(\"rect\") // .filter(function(d:any){return d.data.geoObjectType !== \"GhostNode\";})\n .classed(\"got-connector-arrow-rect\", true)\n .attr(\"x\", (d: any) => d.source.x - arrowRectD.width / 2)\n .attr(\"y\", (d: any) => d.source.y + SvgHierarchyType.gotRectH / 2 - arrowRectD.height / 2)\n .attr(\"width\", arrowRectD.width)\n .attr(\"height\", arrowRectD.height)\n .attr(\"fill\", (d: any) => this.isPrimary ? (d.source.data.inheritedHierarchyCode != null ? INHERITED_NODE_BANNER_COLOR : DEFAULT_NODE_BANNER_COLOR) : RELATED_NODE_BANNER_COLOR);\n gArrow.selectAll(\"path\").data(this.d3Tree.links()).join(\"path\") // .filter(function(d:any){return d.data.geoObjectType !== \"GhostNode\";})\n .classed(\"got-connector-arrow-path\", true)\n .attr(\"fill\", \"none\")\n .attr(\"stroke\", \"white\")\n .attr(\"stroke-width\", 1.5)\n .attr(\"d\", (d: any) => \"M\" + (d.source.x - arrowRectD.width / 2 + ((arrowRectD.width * 2) / 3)) + \",\" + (d.source.y + SvgHierarchyType.gotRectH / 2 - arrowRectD.height / 2 + ((arrowRectD.height * 2) / 3)) +\n \"L\" + (d.source.x) + \",\" + (d.source.y + SvgHierarchyType.gotRectH / 2 - arrowRectD.height / 2 + (arrowRectD.height / 3)) +\n \"L\" + (d.source.x - arrowRectD.width / 2 + (arrowRectD.width / 3)) + \",\" + (d.source.y + SvgHierarchyType.gotRectH / 2 + arrowRectD.height / 2 - arrowRectD.height / 3)\n );\n\n // Ghost Drop Zone (Sibling) Backer\n gtree.append(\"g\").classed(\"g-sibling-ghost-backer\", true)\n .selectAll(\"rect\")\n .data(descends)\n .join(\"rect\")\n .filter(function(d: any) { return d.data.geoObjectType === \"GhostNode\"; })\n .classed(\"svg-sibling-ghost-backer-dz\", true)\n .attr(\"x\", (d: any) => d.x - (SvgHierarchyType.gotRectW / 2))\n .attr(\"y\", (d: any) => d.y - (SvgHierarchyType.gotRectH / 2))\n .attr(\"width\", SvgHierarchyType.gotRectW)\n .attr(\"height\", SvgHierarchyType.gotRectH)\n .attr(\"fill\", \"white\");\n\n // Ghost Drop Zone (Sibling) Body Rectangle\n gtree.append(\"g\").classed(\"g-sibling-ghost-body\", true)\n .selectAll(\"rect\")\n .data(descends)\n .join(\"rect\")\n .filter(function(d: any) { return d.data.geoObjectType === \"GhostNode\"; })\n .classed(\"svg-sibling-ghost-body-dz\", true)\n .attr(\"x\", (d: any) => d.x - (SvgHierarchyType.gotRectW / 2))\n .attr(\"y\", (d: any) => d.y - (SvgHierarchyType.gotRectH / 2))\n .attr(\"width\", SvgHierarchyType.gotRectW)\n .attr(\"height\", SvgHierarchyType.gotRectH)\n .attr(\"fill\", \"none\")\n .attr(\"stroke\", \"#6BA542\")\n .attr(\"stroke-width\", \"1\")\n .attr(\"stroke-dasharray\", \"5,5\")\n .attr(\"data-gotCode\", (d: any) => d.data.geoObjectType);\n\n // GeoObjectType label\n gtree.append(\"g\").classed(\"g-got-codelabel\", true)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"font-size\", SvgHierarchyType.gotBodyFontSize)\n .attr(\"stroke-linejoin\", \"round\")\n .attr(\"stroke-width\", 3)\n .selectAll(\"foreignObject\")\n .data(descends)\n .join(\"foreignObject\")\n .classed(\"svg-got-label-text\", true)\n .attr(\"x\", (d: any) => d.x - (SvgHierarchyType.gotRectW / 2) + 5)\n .attr(\"y\", (d: any) => d.y - (SvgHierarchyType.gotRectH / 2) + 2)\n .attr(\"width\", SvgHierarchyType.gotRectW - 32 + 5)\n .attr(\"height\", SvgHierarchyType.gotRectH - 4)\n // .filter(function(d: any) {\n // return calculateTextWidth(d.data.label, 10) > SvgHierarchyType.gotRectW - 32 + 5;\n // })\n // .style(\"height\", SvgHierarchyType.gotRectH + 20 + \"px\")\n .attr(\"cursor\", (d: any) => this.isPrimary ? (d.data.inheritedHierarchyCode != null ? null : \"grab\") : null)\n .attr(\"data-gotCode\", (d: any) => d.data.geoObjectType)\n .attr(\"data-inherited\", (d: any) => d.data.inheritedHierarchyCode != null)\n .append(\"xhtml:p\")\n .attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\")\n .attr(\"text-anchor\", \"start\")\n .attr(\"text-align\", \"left\")\n .style(\"vertical-align\", \"middle\")\n .style(\"display\", \"table-cell\")\n .style(\"width\", SvgHierarchyType.gotRectW - 32 + 5 + \"px\")\n .style(\"height\", SvgHierarchyType.gotRectH - 4 + \"px\")\n .html((d: any) => d.data.label)\n .on(SvgHierarchyType.MOUSE_HOVER_EVENT_ENTER, function(event: any, data: any) { that.nodeMouseover(event, this, data); })\n .on(SvgHierarchyType.MOUSE_HOVER_EVENT_MOVE, function(event: any, data: any) { that.nodeMousemove(event, this, data); })\n .on(SvgHierarchyType.MOUSE_HOVER_EVENT_EXIT, function(event: any, data: any) { that.nodeMouseleave(event, this, data); });\n\n let headerg;\n if (this.isPrimary) {\n gtree.append(\"g\").classed(\"g-got-relatedhiers-button\", true)\n .selectAll(\"text\")\n .data(descends)\n .join(\"text\")\n .filter(function(d: any) {\n return (d.data.geoObjectType === \"GhostNode\" ? false : true) && d.data.inheritedHierarchyCode == null;\n })\n .classed(\"svg-got-relatedhiers-button\", true)\n .attr(\"data-gotCode\", (d: any) => d.data.geoObjectType)\n .attr(\"x\", (d: any) => d.x + (SvgHierarchyType.gotRectW / 2) - (SvgHierarchyType.gotOptionsButtonFontSize) - 3)\n .attr(\"y\", (d: any) => d.y + (SvgHierarchyType.gotOptionsButtonFontSize * 0.8) - SvgHierarchyType.gotOptionsButtonFontSize / 2)\n .style(\"font-family\", \"FontAwesome\")\n .style(\"cursor\", \"pointer\")\n .style(\"fill\", \"#767676\")\n .style(\"font-size\", SvgHierarchyType.gotOptionsButtonFontSize + \"px\")\n .text(\"\\uf013\")\n .on(\"click\", function(event, node) { that.getNodeByCode(node.data.geoObjectType).renderRelatedHierarchiesMenu(); });\n\n headerg = this.renderHierarchyHeader(hg, \"Selected Hierarchy\");\n } else {\n headerg = this.renderHierarchyHeader(hg, \"Related Hierarchy\");\n }\n\n\n // let paddingTop = (headerg.node().getBBox().height + 20);\n // gtree.attr(\"transform\", \"translate(0 \" + paddingTop + \")\");\n }\n}\n","import { Component, OnInit, AfterViewInit, ViewChild, ElementRef } from '@angular/core';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { Router } from '@angular/router';\n\nimport { LocalizationService } from '@shared/service';\nimport { ErrorHandler, SuccessModalComponent, ConfirmModalComponent } from '@shared/component';\n\nimport { ImportConfiguration } from '@registry/model/io';\n\nimport { IOService } from '@registry/service';\n\n@Component( {\n selector: 'shapefile-modal',\n templateUrl: './shapefile-modal.component.html',\n styleUrls: []\n} )\nexport class ShapefileModalComponent implements OnInit {\n\n configuration: ImportConfiguration;\n message: string = null;\n state: string = 'MAP';\n\n constructor( private service: IOService, public bsModalRef: BsModalRef, private modalService: BsModalService,\n private localizeService: LocalizationService, private router: Router ) {\n }\n\n ngOnInit(): void {\n }\n\n onStateChange( event: string ): void {\n if ( event === 'BACK' ) {\n this.handleBack();\n }\n else if ( event === 'NEXT' ) {\n this.handleNext();\n }\n else if ( event === 'CANCEL' ) {\n this.handleCancel();\n }\n }\n\n handleBack(): void {\n if ( this.state === 'LOCATION' ) {\n this.state = 'MAP';\n }\n }\n\n handleNext(): void {\n if ( this.state === 'MAP' ) {\n\n if ( !this.configuration.postalCode ) {\n this.state = 'LOCATION';\n }\n else {\n this.handleSubmit();\n }\n }\n else if ( this.state === 'LOCATION' ) {\n this.handleSubmit();\n }\n else if ( this.state === 'LOCATION-PROBLEM' ) {\n\n if ( this.configuration.termProblems != null ) {\n this.state = 'TERM-PROBLEM';\n }\n else {\n this.handleSubmit();\n }\n }\n else if ( this.state === 'TERM-PROBLEM' ) {\n this.handleSubmit();\n }\n }\n\n handleSubmit(): void {\n this.message = null;\n\n this.service.importShapefile( this.configuration ).then( config => {\n\n if ( config.locationProblems != null ) {\n this.state = 'LOCATION-PROBLEM';\n this.configuration = config;\n }\n else if ( config.termProblems != null ) {\n this.state = 'TERM-PROBLEM';\n this.configuration = config;\n }\n else {\n this.bsModalRef.hide()\n\n this.bsModalRef = this.modalService.show( ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true,\n } );\n this.bsModalRef.content.message = this.localizeService.decode( \"data.import.go.to.scheduled.jobs.confirm.message\" );\n this.bsModalRef.content.submitText = this.localizeService.decode( \"data.import.go.to.scheduled.jobs.button\" );\n this.bsModalRef.content.cancelText = this.localizeService.decode( \"modal.button.close\" );\n\n ( this.bsModalRef.content ).onConfirm.subscribe( data => {\n this.router.navigate(['/registry/scheduled-jobs']);\n } );\n }\n } ).catch(( response: HttpErrorResponse ) => {\n this.error( response );\n } );\n\n }\n\n handleCancel(): void {\n this.message = null;\n\n this.service.cancelImport( this.configuration ).then( response => {\n this.bsModalRef.hide()\n } ).catch(( err: HttpErrorResponse ) => {\n this.error( err );\n } );\n }\n\n error( err: HttpErrorResponse ): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n}\n","
\n
{{message}}
\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\nimport { TypeaheadMatch } from 'ngx-bootstrap/typeahead';\nimport { Observable } from 'rxjs';\n\nimport { ImportConfiguration, LocationProblem } from '@registry/model/io';\nimport { IOService } from '@registry/service';\n\n@Component( {\n\n selector: 'location-problem',\n templateUrl: './location-problem.component.html',\n styleUrls: []\n} )\nexport class LocationProblemComponent implements OnInit {\n\n @Input() configuration: ImportConfiguration;\n @Input() problem: LocationProblem;\n @Input() index: number;\n @Output() onError: EventEmitter = new EventEmitter();\n\n // show: boolean;\n dataSource: Observable;\n hasSynonym: boolean;\n\n entityLabel: string;\n entityId: string;\n\n constructor( private service: IOService ) {\n this.dataSource = Observable.create(( observer: any ) => {\n this.service.getGeoObjectSuggestions( this.entityLabel, this.problem.type, this.problem.parent, this.configuration.hierarchy ).then( results => {\n observer.next( results );\n } );\n } );\n }\n\n ngOnInit(): void {\n this.entityLabel = null;\n this.entityId = null;\n this.hasSynonym = false;\n }\n\n typeaheadOnSelect( e: TypeaheadMatch ): void {\n this.entityId = e.item.id;\n this.hasSynonym = ( this.entityId != null );\n }\n\n createSynonym(): void {\n if ( this.hasSynonym ) {\n this.onError.emit( null );\n\n this.service.createGeoObjectSynonym( this.entityId, this.problem.label ).then( response => {\n this.problem.resolved = true;\n this.problem.action = {\n name: 'SYNONYM',\n synonymId: response.synonymId,\n vOid: response.vOid, \n label: response.label\n };\n } ).catch( e => {\n this.onError.emit( e.error );\n } );\n }\n }\n\n ignoreDataAtLocation(): void {\n let locationLabel = this.problem.label;\n let universal = this.problem.type;\n\n this.problem.resolved = true;\n\n this.problem.action = {\n name: 'IGNOREATLOCATION',\n label: locationLabel,\n };\n }\n\n undoAction(): void {\n let locationLabel = this.problem.label;\n let universal = this.problem.type;\n\n if ( this.problem.resolved ) {\n let action = this.problem.action;\n\n if ( action.name == 'IGNOREATLOCATION' ) {\n this.problem.resolved = false;\n this.problem.action = null;\n }\n else if ( action.name == 'SYNONYM' ) {\n this.onError.emit( null );\n\n this.service.deleteGeoObjectSynonym( action.synonymId, action.vOid ).then( response => {\n this.problem.resolved = false;\n this.problem.action = null;\n\n this.entityLabel = null;\n this.hasSynonym = ( this.entityLabel != null );\n } ).catch( e => {\n this.onError.emit( e.error );\n } );\n }\n\n }\n }\n}\n","
\n
\n
\n
    0\">\n
  1. {{context.label}} ({{context.type}})
  2. \n
\n
\n
{{problem.label}} ({{problem.typeLabel}})
\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n \n [{{problem.action.label}}]\n \n \n
    \n \n
  • {{ancestor.label}}
  • \n
\n
\n
\n
\n \n [{{problem.action.label}}]\n
\n
\n \n
\n
\n
\n
","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\nimport { TypeaheadMatch } from 'ngx-bootstrap/typeahead';\nimport { Observable } from 'rxjs';\nimport { v4 as uuid } from 'uuid';\n\nimport { ImportConfiguration, TermProblem } from '@registry/model/io';\nimport { IOService } from '@registry/service';\n\n@Component( {\n\n selector: 'term-problem',\n templateUrl: './term-problem.component.html',\n styleUrls: []\n} )\nexport class TermProblemComponent implements OnInit {\n\n @Input() configuration: ImportConfiguration;\n @Input() problem: TermProblem;\n @Input() index: number;\n @Output() onError: EventEmitter = new EventEmitter();\n\n // show: boolean;\n dataSource: Observable;\n hasSynonym: boolean;\n\n termLabel: string;\n termId: string;\n\n constructor( private service: IOService ) {\n this.dataSource = Observable.create(( observer: any ) => {\n this.service.getTermSuggestions( this.problem.mdAttributeId, this.termLabel, '20' ).then( results => {\n observer.next( results );\n } );\n } );\n }\n\n ngOnInit(): void {\n this.termLabel = null;\n this.termId = null;\n this.hasSynonym = false;\n }\n\n typeaheadOnSelect( e: TypeaheadMatch ): void {\n this.termId = e.item.value;\n this.hasSynonym = ( this.termId != null );\n }\n\n createSynonym(): void {\n if ( this.hasSynonym ) {\n this.onError.emit( null );\n\n this.service.createTermSynonym( this.termId, this.problem.label ).then( response => {\n this.problem.resolved = true;\n this.problem.action = {\n name: 'SYNONYM',\n synonymId: response.synonymId,\n label: response.label\n };\n } ).catch( e => {\n this.onError.emit( e.error );\n } );\n }\n }\n\n createOption(): void {\n this.onError.emit( null );\n \n this.service.createTerm( this.problem.label, uuid(), this.problem.parentCode).then( term => {\n this.problem.resolved = true;\n this.problem.action = {\n name: 'OPTION',\n term: term\n };\n } ).catch( e => {\n this.onError.emit( e.error );\n } );\n }\n\n ignoreValue(): void {\n this.problem.resolved = true;\n\n this.problem.action = {\n name: 'IGNORE'\n };\n }\n\n undoAction(): void {\n\n if ( this.problem.resolved ) {\n\n let action = this.problem.action;\n\n if ( action.name == 'IGNORE' ) {\n this.problem.resolved = false;\n this.problem.action = null;\n }\n else if ( action.name == 'SYNONYM' ) {\n this.onError.emit( null );\n\n this.service.deleteTermSynonym( action.synonymId ).then( response => {\n this.problem.resolved = false;\n this.problem.action = null;\n } ).catch( e => {\n this.onError.emit( e.error );\n } );\n }\n else if ( action.name == 'OPTION' ) {\n this.onError.emit( null );\n\n this.service.removeTerm(this.problem.parentCode, action.term.code ).then( response => {\n this.problem.resolved = false;\n this.problem.action = null;\n } ).catch( e => {\n this.onError.emit( e.error );\n } );\n }\n }\n }\n}\n","
\n
\n
{{problem.attributeLabel}}
\n
{{problem.label}}
\n
\n
\n \n
\n
\n \n \n \n
\n
\n
\n
\n \n
\n
\n \n [{{problem.action.label}}]\n
\n
\n \n [{{problem.label}}]\n
\n
\n \n
\n
\n
\n
","import { Component, OnInit, AfterViewInit, ViewChild, ElementRef } from '@angular/core';\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { Router } from '@angular/router';\n\nimport { LocalizationService } from '@shared/service';\nimport { ErrorHandler, SuccessModalComponent, ConfirmModalComponent } from '@shared/component';\n\nimport { ImportConfiguration } from '@registry/model/io';\nimport { IOService } from '@registry/service';\n\n@Component( {\n selector: 'spreadsheet-modal',\n templateUrl: './spreadsheet-modal.component.html',\n styleUrls: []\n} )\nexport class SpreadsheetModalComponent implements OnInit {\n\n configuration: ImportConfiguration;\n message: string = null;\n state: string = 'MAP';\n\n constructor( private service: IOService, public bsModalRef: BsModalRef, private modalService: BsModalService,\n private localizeService: LocalizationService, private router: Router ) {\n }\n\n ngOnInit(): void {\n }\n\n onStateChange( event: string ): void {\n if ( event === 'BACK' ) {\n this.handleBack();\n }\n else if ( event === 'NEXT' ) {\n this.handleNext();\n }\n else if ( event === 'CANCEL' ) {\n this.handleCancel();\n }\n }\n\n handleBack(): void {\n if ( this.state === 'LOCATION' ) {\n this.state = 'MAP';\n }\n }\n\n handleNext(): void {\n if ( this.state === 'MAP' ) {\n if ( !this.configuration.postalCode ) {\n this.state = 'LOCATION';\n }\n else {\n this.handleSubmit();\n }\n }\n else if ( this.state === 'LOCATION' ) {\n this.handleSubmit();\n }\n else if ( this.state === 'LOCATION-PROBLEM' ) {\n\n if ( this.configuration.termProblems != null ) {\n this.state = 'TERM-PROBLEM';\n }\n else {\n this.handleSubmit();\n }\n }\n else if ( this.state === 'TERM-PROBLEM' ) {\n this.handleSubmit();\n }\n }\n\n handleSubmit(): void {\n this.service.importSpreadsheet( this.configuration ).then( config => {\n\n if ( config.locationProblems != null ) {\n this.state = 'LOCATION-PROBLEM';\n this.configuration = config;\n }\n else if ( config.termProblems != null ) {\n this.state = 'TERM-PROBLEM';\n this.configuration = config;\n }\n else {\n this.bsModalRef.hide()\n\n this.bsModalRef = this.modalService.show( ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true,\n } );\n this.bsModalRef.content.message = this.localizeService.decode( \"data.import.go.to.scheduled.jobs.confirm.message\" );\n this.bsModalRef.content.submitText = this.localizeService.decode( \"data.import.go.to.scheduled.jobs.button\" );\n\n ( this.bsModalRef.content ).onConfirm.subscribe( data => {\n this.router.navigate(['/registry/scheduled-jobs']);\n } );\n\n }\n } ).catch(( err: HttpErrorResponse) => {\n this.error( err );\n } );\n\n }\n\n handleCancel(): void {\n this.service.cancelImport( this.configuration ).then( response => {\n this.bsModalRef.hide()\n } ).catch(( err: HttpErrorResponse) => {\n this.error( err );\n } );\n }\n\n error( err: HttpErrorResponse ): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n
{{message}}
\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
","import { Component, OnInit } from \"@angular/core\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { ErrorHandler, ErrorModalComponent } from \"@shared/component\";\nimport { LocalizationService, AuthService } from \"@shared/service\";\n\ndeclare let acp: string;\n\n@Component({\n\n selector: \"data-page\",\n templateUrl: \"./data-page.component.html\",\n styleUrls: [\"./data-page.css\"]\n})\nexport class DataPageComponent implements OnInit {\n\n content: string = \"SPREADSHEET\";\n pageTitle: string;\n bsModalRef: BsModalRef;\n isAdmin: boolean;\n isMaintainer: boolean;\n isContributor: boolean;\n\n constructor(private localizationService: LocalizationService, private modalService: BsModalService, private service: AuthService) {\n this.isAdmin = service.isAdmin();\n this.isMaintainer = this.isAdmin || service.isMaintainer();\n this.isContributor = this.isAdmin || this.isMaintainer || service.isContributer();\n\n this.isMaintainer ? this.renderContent(\"SPREADSHEET\") : this.renderContent(\"EXPORT\");\n }\n\n ngOnInit(): void {\n }\n\n renderContent(content: string): void {\n this.content = content;\n\n if (content === \"SPREADSHEET\") {\n this.pageTitle = this.localizationService.decode(\"spreadsheet.title\");\n } else if (content === \"SHAPEFILE\") {\n this.pageTitle = this.localizationService.decode(\"shapefile.title\");\n } else if (content === \"EXPORT\") {\n this.pageTitle = this.localizationService.decode(\"io.export.title\");\n }\n }\n\n public error(err: HttpErrorResponse): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n}\n","
\n \n \n\n
\n\n \n\n
\n
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t

\n\t\t\t\t\t\t{{pageTitle}}\n\t\t\t\t\t

\n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t\t\t\n \n \n\t\t\t\t\t\n \n \n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n
\n
\n
\n
\n","import { Component, OnInit, Input, ViewChild, ViewChildren, ElementRef, QueryList, ChangeDetectorRef } from \"@angular/core\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\nimport { FileUploader, FileUploaderOptions } from \"ng2-file-upload\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { DateFieldComponent } from \"../../../shared/component/form-fields/date-field/date-field.component\";\n\nimport { ErrorHandler } from \"@shared/component\";\nimport { LocalizationService, AuthService, EventService, ExternalSystemService } from \"@shared/service\";\nimport { HierarchyService, IOService } from \"@registry/service\";\nimport { ExternalSystem } from \"@shared/model/core\";\n\nimport { SpreadsheetModalComponent } from \"./modals/spreadsheet-modal.component\";\nimport { ShapefileModalComponent } from \"./modals/shapefile-modal.component\";\nimport { ImportStrategy } from \"@registry/model/constants\";\nimport { HierarchyGroupedTypeView, TypeGroupedHierachyView } from \"@registry/model/hierarchy\";\n\ndeclare let acp: string;\n\n@Component({\n\n selector: \"dataimporter\",\n templateUrl: \"./dataimporter.component.html\",\n styleUrls: [\"./dataimporter.css\"]\n})\nexport class DataImporterComponent implements OnInit {\n\n @ViewChildren(\"dateFieldComponents\") dateFieldComponentsArray:QueryList;\n\n currentDate : Date = new Date();\n\n showImportConfig: boolean = false;\n\n isValid: boolean = false;\n\n /*\n * GeoObjectTypes grouped by hierarchy\n */\n allHierarchyViews: HierarchyGroupedTypeView[];\n\n filteredHierarchyViews: any[];\n\n /*\n * Hierarchies grouped by GeoObjectType\n */\n allTypeViews: TypeGroupedHierachyView[];\n\n filteredTypeViews: any[];\n\n importStrategy: ImportStrategy;\n importStrategies: any[] = [\n { strategy: ImportStrategy.NEW_AND_UPDATE, label: this.localizationService.decode(\"etl.import.ImportStrategy.NEW_AND_UPDATE\") },\n { strategy: ImportStrategy.NEW_ONLY, label: this.localizationService.decode(\"etl.import.ImportStrategy.NEW_ONLY\") },\n { strategy: ImportStrategy.UPDATE_ONLY, label: this.localizationService.decode(\"etl.import.ImportStrategy.UPDATE_ONLY\") }\n ]\n\n /*\n * Code of the currently selected GeoObjectType\n */\n typeCode: string = null;\n\n /*\n * Code of the currently selected Hierarchy\n */\n hierarchyCode: string = null;\n\n /*\n * Start date\n */\n startDate: Date = null;\n\n /*\n * End date\n */\n endDate: Date | string = null;\n\n /*\n * Reference to the modal current showing\n */\n bsModalRef: BsModalRef;\n\n /*\n * File uploader\n */\n uploader: FileUploader;\n\n @ViewChild(\"myFile\")\n fileRef: ElementRef;\n\n @Input()\n format: string; // Can be SHAPEFILE or EXCEL\n\n isExternal: boolean = false;\n\n /*\n * List of available external systems (filtered based on user's org)\n */\n externalSystems: ExternalSystem[];\n\n /*\n * currently selected external system.\n */\n externalSystemId: string;\n\n isLoading: boolean = true;\n\n copyBlank: boolean = true;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: IOService,\n private eventService: EventService,\n private modalService: BsModalService,\n private localizationService: LocalizationService,\n private authService: AuthService,\n private sysService: ExternalSystemService,\n private hierarchyService: HierarchyService,\n private changeDetectorRef: ChangeDetectorRef\n ) { }\n\n ngOnInit(): void {\n this.sysService.getExternalSystems(1, 100).then(paginatedSystems => {\n this.externalSystems = paginatedSystems.resultSet;\n\n if (this.externalSystems.length === 0) {\n this.isExternal = false;\n this.showImportConfig = true; // Show the upload widget if there are no external systems registered\n }\n\n this.isLoading = false;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n\n this.hierarchyService.getHierarchyGroupedTypes().then(views => {\n this.allHierarchyViews = views;\n this.allTypeViews = [];\n\n // Make sure we are using the same object references for all types\n let len0 = this.allHierarchyViews.length;\n for (let i = 0; i < len0; ++i) {\n let view = this.allHierarchyViews[i];\n\n let len2 = view.types.length;\n for (let j = 0; j < len2; ++j) {\n let type = view.types[j];\n\n let len9 = this.allHierarchyViews.length;\n for (let j = 0; j < len9; ++j) {\n let view2 = this.allHierarchyViews[j];\n\n let indexOf = view2.types.findIndex(findType => type.code === findType.code);\n\n if (indexOf !== -1) {\n view2.types[indexOf] = type;\n }\n }\n }\n }\n\n // Generate a TypeGroupedHierarchy lookup structure from the HierarchyGroupedType structure\n let len = this.allHierarchyViews.length;\n for (let i = 0; i < len; ++i) {\n let view = this.allHierarchyViews[i];\n\n let len2 = view.types.length;\n for (let j = 0; j < len2; ++j) {\n let type = view.types[j];\n\n let indexOf = this.allTypeViews.findIndex(findType => findType.code === type.code);\n\n if (indexOf !== -1) {\n let findType = this.allTypeViews[indexOf];\n\n let existingHierarchyIndex = findType.hierarchies.findIndex(findHier => findHier.code === view.code);\n\n if (existingHierarchyIndex === -1) {\n findType.hierarchies.push(view);\n }\n } else {\n if (type.hierarchies == null) {\n type.hierarchies = [];\n }\n type.hierarchies.push(view);\n this.allTypeViews.push(type);\n }\n }\n }\n\n this.filteredHierarchyViews = this.allHierarchyViews;\n this.filteredTypeViews = this.allTypeViews;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n\n let getUrl = acp + \"/excel/get-configuration\";\n if (this.format === \"SHAPEFILE\") {\n getUrl = acp + \"/shapefile/get-shapefile-configuration\";\n\n // this.showImportConfig = true; // show the upload widget if shapefile because external system from shapefile isn't supported\n }\n\n let options: FileUploaderOptions = {\n queueLimit: 1,\n removeAfterUpload: true,\n url: getUrl\n };\n\n this.uploader = new FileUploader(options);\n\n this.uploader.onBuildItemForm = (fileItem: any, form: any) => {\n form.append(\"type\", this.typeCode);\n form.append(\"copyBlank\", this.copyBlank);\n\n if (this.startDate != null) {\n form.append(\"startDate\", this.startDate);\n }\n if (this.endDate != null) {\n form.append(\"endDate\", this.endDate);\n }\n if (this.importStrategy) {\n form.append(\"strategy\", this.importStrategy);\n }\n };\n this.uploader.onBeforeUploadItem = (fileItem: any) => {\n this.eventService.start();\n };\n this.uploader.onCompleteItem = (item: any, response: any, status: any, headers: any) => {\n this.fileRef.nativeElement.value = \"\";\n this.eventService.complete();\n };\n this.uploader.onSuccessItem = (item: any, response: string, status: number, headers: any) => {\n const configuration = JSON.parse(response);\n\n configuration.isExternal = this.isExternal;\n configuration.hierarchy = this.hierarchyCode;\n\n let externalSystem: ExternalSystem = null;\n for (let i = 0; i < this.externalSystems.length; ++i) {\n let sys: ExternalSystem = this.externalSystems[i];\n\n if (sys.oid === this.externalSystemId) {\n externalSystem = sys;\n }\n }\n\n configuration.externalSystemId = this.externalSystemId;\n configuration.externalSystem = externalSystem;\n\n if (this.format === \"SHAPEFILE\") {\n this.bsModalRef = this.modalService.show(ShapefileModalComponent, { backdrop: true, ignoreBackdropClick: true });\n } else {\n this.bsModalRef = this.modalService.show(SpreadsheetModalComponent, { backdrop: true, ignoreBackdropClick: true });\n }\n\n this.bsModalRef.content.configuration = configuration;\n };\n this.uploader.onErrorItem = (item: any, response: string, status: number, headers: any) => {\n const error = JSON.parse(response);\n\n this.error({ error: error });\n };\n }\n\n onSelectHierarchy(): void {\n let view: HierarchyGroupedTypeView = null;\n\n let len = this.allHierarchyViews.length;\n for (let i = 0; i < len; ++i) {\n if (this.allHierarchyViews[i].code === this.hierarchyCode) {\n view = this.allHierarchyViews[i];\n break;\n }\n }\n\n if (view != null) {\n this.filteredTypeViews = view.types;\n } else {\n this.filteredTypeViews = this.allTypeViews;\n }\n }\n\n onSelectType(): void {\n let view: TypeGroupedHierachyView = null;\n\n let len = this.allTypeViews.length;\n for (let i = 0; i < len; ++i) {\n if (this.allTypeViews[i].code === this.typeCode) {\n view = this.allTypeViews[i];\n break;\n }\n }\n\n if (view != null) {\n this.filteredHierarchyViews = view.hierarchies;\n } else {\n this.filteredHierarchyViews = this.allHierarchyViews;\n }\n\n this.checkDates();\n }\n\n onClick(): void {\n if (this.uploader.queue != null && this.uploader.queue.length > 0) {\n this.uploader.uploadAll();\n } else {\n this.error({\n message: this.localizationService.decode(\"io.missing.file\"),\n error: {}\n });\n }\n }\n\n setImportSource(event, type): void {\n if (type === \"EXTERNAL\") {\n this.isExternal = true;\n } else {\n this.isExternal = false;\n }\n }\n\n onNext(): void {\n this.showImportConfig = true;\n }\n\n onBack(): void {\n this.showImportConfig = false;\n }\n\n// setInfinity(endDate: any): void {\n//\n// if(endDate === PRESENT){\n// this.endDate = null;\n// }\n// else{\n// this.endDate = PRESENT;\n// }\n// }\n\n checkDates(): any {\n setTimeout(() => {\n this.isValid = this.checkDateFieldValidity();\n }, 0);\n }\n\n checkDateFieldValidity(): boolean {\n let dateFields = this.dateFieldComponentsArray.toArray();\n\n let startDateField: DateFieldComponent;\n for (let i = 0; i < dateFields.length; i++) {\n let field = dateFields[i];\n\n if (field.inputName === \"startDate\") {\n // set startDateField so we can use it in the next check\n startDateField = field;\n }\n\n if (!field.valid) {\n return false;\n }\n }\n\n if (this.startDate > this.endDate) {\n startDateField.setInvalid(this.localizationService.decode(\"date.input.startdate.after.enddate.error.message\"));\n\n this.changeDetectorRef.detectChanges();\n }\n\n return true;\n }\n\n public error(err: any): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n}\n","\n
0\">\n
\n
\n\n
\n
\n\n \n \n \n\n
\n \n
\n
\n
\n\t
\n
\n
\n\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n \n
\n \n
\n \n
\n
\n
\n \n
\n \n
\n \n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n\n
\n
\n
\n\n\n\n \n
\n
\n
\n
\n
\n
\n","import { Component, OnInit } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { MasterListByOrg } from \"@registry/model/registry\";\nimport { RegistryService } from \"@registry/service\";\nimport { PublishModalComponent } from \"./publish-modal.component\";\n\nimport { ErrorHandler, ConfirmModalComponent } from \"@shared/component\";\nimport { LocalizationService } from \"@shared/service\";\n\n@Component({\n selector: \"master-list-manager\",\n templateUrl: \"./master-list-manager.component.html\",\n styleUrls: [\"./master-list-manager.css\"]\n})\nexport class MasterListManagerComponent implements OnInit {\n\n message: string = null;\n orgs: MasterListByOrg[];\n\n /*\n * Reference to the modal current showing\n */\n bsModalRef: BsModalRef;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public service: RegistryService, private modalService: BsModalService, private router: Router, private localizeService: LocalizationService) { }\n\n ngOnInit(): void {\n this.service.getMasterListsByOrg().then(response => {\n this.orgs = response.orgs;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onCreate(org: MasterListByOrg): void {\n this.bsModalRef = this.modalService.show(PublishModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n this.bsModalRef.content.init(org);\n this.bsModalRef.content.isNew = true;\n this.bsModalRef.content.onMasterListChange.subscribe((list: any) => {\n const obj = {\n label: list.displayLabel.localizedValue,\n oid: list.oid,\n createDate: list.createDate,\n lastUpdateDate: list.lastUpdateDate,\n isMaster: list.isMaster,\n write: list.write,\n read: list.read,\n visibility: list.visibility\n };\n\n org.lists.push(obj);\n });\n }\n\n onView(code: string): void {\n this.router.navigate([\"/registry/master-list-view/\", code])\n }\n\n onEdit(pair: { label: string, oid: string, visibility: string }): void {\n this.service.getMasterList(pair.oid).then(list => {\n this.bsModalRef = this.modalService.show(PublishModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n this.bsModalRef.content.edit = true;\n this.bsModalRef.content.readonly = !list.write;\n this.bsModalRef.content.master = list;\n this.bsModalRef.content.originalPublishStartDate = list.publishingStartDate;\n this.bsModalRef.content.isNew = false;\n\n this.bsModalRef.content.onMasterListChange.subscribe(ret => {\n pair.label = ret.displayLabel.localizedValue;\n pair.visibility = ret.visibility;\n });\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onDelete(org: MasterListByOrg, list: { label: string, oid: string }): void {\n this.bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n this.bsModalRef.content.message = this.localizeService.decode(\"confirm.modal.verify.delete\") + \" [\" + list.label + \"]\";\n this.bsModalRef.content.submitText = this.localizeService.decode(\"modal.button.delete\");\n this.bsModalRef.content.type = \"danger\";\n\n this.bsModalRef.content.onConfirm.subscribe(data => {\n this.service.deleteMasterList(list.oid).then(response => {\n org.lists = org.lists.filter((value, index, arr) => {\n return value.oid !== list.oid;\n });\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n });\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n \n \n\n\n
\n\n
\n

\n \n

\n
\n\n
{{message}}
\n\n
\n
\n
\n
\n
\n

{{org.label}}

\n
\n
\n
\n\n
\n
\n
\n

\n
\n
\n
\n\n \n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
","import { Component } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Subject } from \"rxjs\";\n\n\n@Component({\n selector: \"export-format-modal\",\n templateUrl: \"./export-format-modal.component.html\",\n styleUrls: []\n})\nexport class ExportFormatModalComponent {\n\n format: string;\n\n /*\n * Called on confirm\n */\n public onFormat: Subject;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef) { }\n\n ngOnInit(): void {\n this.onFormat = new Subject();\n }\n\n confirm(): void {\n this.bsModalRef.hide();\n this.onFormat.next(this.format);\n }\n}\n","
\n
\n

\n \n

\n
\n\n
\n
\n
\n
\n \n\n \n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n","import { Component, ViewEncapsulation, ViewChild, ElementRef, Input } from \"@angular/core\";\nimport { Router, ActivatedRoute } from \"@angular/router\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { Location } from \"@angular/common\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\nimport {\n trigger,\n style,\n animate,\n transition\n} from \"@angular/animations\";\n\nimport { FileUploader, FileUploaderOptions } from \"ng2-file-upload\";\n\nimport { AbstractAction, ChangeRequest, CreateGeoObjectAction, UpdateAttributeAction } from \"@registry/model/crtable\";\nimport { ActionTypes } from \"@registry/model/constants\";\nimport { GeoObjectOverTime } from \"@registry/model/registry\";\n\nimport { ChangeRequestService, GeometryService } from \"@registry/service\";\nimport { LocalizationService, AuthService, EventService } from \"@shared/service\";\nimport { DateService } from \"@shared/service/date.service\";\n\nimport { ErrorHandler, ConfirmModalComponent } from \"@shared/component\";\n\ndeclare var acp: string;\n\n@Component({\n\n selector: \"request-table\",\n templateUrl: \"./request-table.component.html\",\n styleUrls: [\"./request-table.css\"],\n encapsulation: ViewEncapsulation.None,\n animations: [\n [\n trigger(\"fadeInOut\", [\n transition(\":enter\", [\n style({\n opacity: 0\n }),\n animate(\"300ms\")\n ]),\n transition(\":leave\",\n animate(\"100ms\",\n style({\n opacity: 0\n })\n )\n )\n ]),\n trigger(\"fadeIn\", [\n transition(\":enter\", [\n style({\n opacity: 0\n }),\n animate(\"500ms\")\n ])\n ])\n ]\n ]\n})\nexport class RequestTableComponent {\n\n today: Date = new Date();\n todayString: string = this.dateService.getDateString(new Date());\n\n objectKeys = Object.keys;\n\n bsModalRef: BsModalRef;\n\n page: any = {\n count: 0,\n pageNumber: 1,\n pageSize: 10,\n resultSet: []\n };\n\n requests: ChangeRequest[] = [];\n\n actions: AbstractAction[];\n\n columns: any[] = [];\n\n @Input() toggleId: string;\n\n uploadRequest: ChangeRequest;\n\n filterCriteria: string = \"ALL\";\n\n sort: any[] = [{ attribute: \"createDate\", ascending: false }];\n\n hasBaseDropZoneOver: boolean = false;\n\n // Restrict page to the specified oid\n oid: string = null;\n\n /*\n * File uploader\n */\n uploader: FileUploader;\n\n @ViewChild(\"myFile\")\n fileRef: ElementRef;\n\n isValid: boolean = true;\n\n isEditing: boolean = false;\n\n constructor(private service: ChangeRequestService, private geomService: GeometryService, private modalService: BsModalService, private authService: AuthService, private localizationService: LocalizationService,\n private eventService: EventService, private route: ActivatedRoute, private router: Router, private dateService: DateService, private location: Location) {\n this.columns = [\n { name: localizationService.decode(\"change.request.user\"), prop: \"createdBy\", sortable: false },\n { name: localizationService.decode(\"change.request.createDate\"), prop: \"createDate\", sortable: false, width: 195 },\n { name: localizationService.decode(\"change.request.status\"), prop: \"approvalStatus\", sortable: false }\n ];\n }\n\n ngOnInit(): void {\n this.oid = this.route.snapshot.paramMap.get(\"oid\");\n\n this.route.paramMap.subscribe(params => {\n this.oid = params.get(\"oid\");\n this.refresh();\n });\n\n if (this.oid != null) {\n this.toggleId = this.oid;\n }\n\n let getUrl = acp + \"/changerequest/upload-file-cr\";\n\n let options: FileUploaderOptions = {\n queueLimit: 1,\n removeAfterUpload: true,\n url: getUrl\n };\n\n this.uploader = new FileUploader(options);\n\n this.uploader.onBuildItemForm = (fileItem: any, form: any) => {\n form.append(\"crOid\", this.uploadRequest.oid);\n };\n this.uploader.onBeforeUploadItem = (fileItem: any) => {\n this.eventService.start();\n };\n this.uploader.onCompleteItem = (item: any, response: any, status: any, headers: any) => {\n this.fileRef.nativeElement.value = \"\";\n this.eventService.complete();\n };\n this.uploader.onSuccessItem = (item: any, response: any, status: number, headers: any) => {\n const doc = JSON.parse(response);\n\n const index = this.requests.findIndex(request => request.oid === doc.requestId);\n\n if (index !== -1) {\n this.requests[index].documents.push(doc);\n }\n };\n this.uploader.onErrorItem = (item: any, response: string, status: number, headers: any) => {\n const error = JSON.parse(response);\n\n this.error({ error: error });\n };\n\n this.refresh();\n }\n\n isSorting(attribute: string) {\n return this.sort.length > 0 && this.sort[0].attribute === attribute;\n }\n\n isAscending(attribute: string) {\n return this.sort.length > 0 && this.sort[0].ascending;\n }\n\n onSort(attribute: string) {\n let index = this.sort.findIndex(item => item.attribute === attribute);\n\n if (index !== -1) {\n let item = this.sort[index];\n\n item.ascending = !item.ascending;\n } else {\n this.sort = [{\n attribute: attribute,\n ascending: true\n }];\n }\n\n this.refresh();\n }\n\n getGOTLabel(action: any): string {\n if (action.geoObjectJson && action.geoObjectJson.attributes && action.geoObjectJson.attributes.displayLabel && action.geoObjectJson.attributes.displayLabel.values &&\n action.geoObjectJson.attributes.displayLabel.values[0] && action.geoObjectJson.attributes.displayLabel.values[0].value && action.geoObjectJson.attributes.displayLabel.values[0].value.localeValues &&\n action.geoObjectJson.attributes.displayLabel.values[0].value.localeValues[0] && action.geoObjectJson.attributes.displayLabel.values[0].value.localeValues[0].value) {\n return action.geoObjectJson.attributes.displayLabel.values[0].value.localeValues[0].value;\n } else if (action.geoObjectJson && action.geoObjectJson.attributes && action.geoObjectJson.attributes.code) {\n return action.geoObjectJson.attributes.code;\n } else {\n return this.localizationService.decode(\"geoObject.label\");\n }\n }\n\n setValid(valid: boolean): void {\n this.isValid = valid;\n }\n\n onUpload(request: ChangeRequest): void {\n this.uploadRequest = request;\n\n if (this.uploader.queue != null && this.uploader.queue.length > 0) {\n this.uploader.uploadAll();\n } else {\n this.error({\n message: this.localizationService.decode(\"io.missing.file\"),\n error: {}\n });\n }\n }\n\n onDownloadFile(request: ChangeRequest, fileOid: string): void {\n window.location.href = acp + \"/changerequest/download-file-cr?crOid=\" + request.oid + \"&\" + \"vfOid=\" + fileOid;\n }\n\n onDeleteFile(request: ChangeRequest, fileOid: string): void {\n this.service.deleteFile(request.oid, fileOid).then(() => {\n const index = request.documents.findIndex(doc => doc.oid === fileOid);\n\n if (index !== -1) {\n request.documents.splice(index, 1);\n }\n }).catch((response: HttpErrorResponse) => {\n this.error(response);\n });\n }\n\n public fileOverBase(e: any): void {\n this.hasBaseDropZoneOver = e;\n }\n\n pageChange(pageNumber: number = 1): void {\n this.oid = null;\n this.refresh(pageNumber);\n }\n\n refresh(pageNumber: number = 1): void {\n this.geomService.destroy();\n\n this.service.getAllRequests(this.page.pageSize, pageNumber, this.filterCriteria, this.sort, this.oid).then(requests => {\n this.page = requests;\n this.requests = requests.resultSet;\n\n // Copying the Geo-Object to add consistency for template processing\n this.requests.forEach((req) => {\n if (!req.current.geoObject) {\n for (let i = 0; i < req.actions.length; i++) {\n if (req.actions[0].actionType === ActionTypes.CREATEGEOOBJECTACTION) {\n // This is the state of the Geo-Object as the Registry Contributor configured it.\n req.current.geoObject = JSON.parse(JSON.stringify((req.actions[0] as CreateGeoObjectAction).geoObjectJson));\n }\n }\n }\n });\n }).catch((response: HttpErrorResponse) => {\n this.error(response);\n });\n }\n\n onSelect(selected: any): void {\n // this.request = selected.selected;\n\n this.geomService.destroy();\n\n this.service.getAllRequests(this.page.pageSize, 1, \"ALL\", this.sort, this.oid).then(requests => {\n this.requests = requests.resultSet;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onExecute(changeRequest: ChangeRequest): void {\n if (changeRequest != null) {\n this.service.implementDecisions(changeRequest).then(request => {\n changeRequest = request;\n\n // TODO: Determine if there is a way to update an individual record\n this.refresh();\n\n const bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n\n bsModalRef.content.submitText = this.localizationService.decode(\"change.requests.more.geoobject.updates.submit.btn\");\n bsModalRef.content.cancelText = this.localizationService.decode(\"change.requests.more.geoobject.updates.cancel.btn\");\n bsModalRef.content.message = this.localizationService.decode(\"change.requests.more.geoobject.updates.message\");\n\n bsModalRef.content.onConfirm.subscribe(() => {\n const object = this.getFirstGeoObjectInActions(request);\n\n if (object != null) {\n this.router.navigate([\"/registry/location-manager\", object.attributes.uid, object.geoObjectType.code, this.todayString, true]);\n } else {\n let object = request.current.geoObject;\n let type = request.current.geoObjectType;\n\n if (object != null && type != null) {\n this.router.navigate([\"/registry/location-manager\", object.attributes.uid, type.code, this.todayString, true]);\n }\n }\n });\n }).catch((response: HttpErrorResponse) => {\n this.error(response);\n });\n }\n }\n\n onReject(cr: ChangeRequest): void {\n this.service.rejectChangeRequest(cr).then(() => {\n // TODO: Determine if there is a way to update an individual record\n // TODO : cr.statusLabel needs to be updated...\n /*\n cr.approvalStatus = \"REJECTED\";\n\n let len = this.actions.length;\n for (let i = 0; i < len; ++i) {\n let action: AbstractAction = this.actions[i];\n\n action.approvalStatus = \"REJECTED\";\n }\n */\n\n this.refresh();\n }).catch((response: HttpErrorResponse) => {\n this.error(response);\n });\n }\n\n getFirstGeoObjectInActions(request: ChangeRequest): GeoObjectOverTime {\n for (let i = 0; i < request.actions.length; i++) {\n let action = request.actions[i];\n\n // eslint-disable-next-line no-prototype-builtins\n if (action.hasOwnProperty(\"geoObjectJson\")) {\n return action[\"geoObjectJson\"];\n }\n }\n\n return null;\n }\n\n onDelete(changeRequest: ChangeRequest): void {\n if (changeRequest != null) {\n const bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n\n bsModalRef.content.type = \"danger\";\n bsModalRef.content.submitText = this.localizationService.decode(\"change.request.delete.request.confirm.btn\");\n bsModalRef.content.message = this.localizationService.decode(\"change.request.delete.request.message\");\n\n bsModalRef.content.onConfirm.subscribe(data => {\n this.service.delete(changeRequest.oid).then(deletedRequestId => {\n let pos = -1;\n for (let i = 0; i < this.requests.length; i++) {\n let req = this.requests[i];\n if (req.oid === deletedRequestId) {\n pos = i;\n break;\n }\n }\n\n if (pos > -1) {\n this.requests.splice(pos, 1);\n }\n\n this.refresh();\n }).catch((response: HttpErrorResponse) => {\n this.error(response);\n });\n });\n }\n }\n\n onUpdate(changeRequest: ChangeRequest): void {\n if (changeRequest != null) {\n this.service.update(changeRequest).then(request => {\n this.refresh();\n\n this.isEditing = false;\n }).catch((response: HttpErrorResponse) => {\n this.error(response);\n });\n }\n }\n\n applyActionStatusProperties(action: any): void {\n // var action = JSON.parse(JSON.stringify(this.action));\n // action.geoObjectJson = this.attributeEditor.getGeoObject();\n\n this.service.setActionStatus(action.oid, action.approvalStatus).then(response => {\n action.decisionMaker = (action.approvalStatus !== \"PENDING\") ? this.authService.getUsername() : \"\";\n\n // this.crtable.refresh()\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n public error(err: any): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n requestTrackBy(index: number, request: ChangeRequest) {\n return request.oid;\n }\n\n toggle(event: any, oid: string): void {\n this.location.replaceState(\"/registry/change-requests/\" + oid);\n\n if (!event.target.parentElement.className.includes(\"btn\") && !event.target.className.includes(\"btn\")) {\n if (this.toggleId === oid) {\n this.toggleId = null;\n } else {\n this.toggleId = oid;\n // this.onSelect({ selected: [{ oid: oid }] });\n this.requests.forEach(req => {\n if (req.oid === oid) {\n this.actions = req.actions;\n }\n });\n }\n }\n }\n\n filter(criteria: string): void {\n this.filterCriteria = criteria;\n\n this.refresh(1);\n }\n\n setActionStatus(action: CreateGeoObjectAction | UpdateAttributeAction, status: string): void {\n const bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n\n bsModalRef.content.onConfirm.subscribe(data => {\n action.approvalStatus = status;\n\n this.applyActionStatusProperties(action);\n });\n }\n\n getActiveDetailComponent(action: CreateGeoObjectAction | UpdateAttributeAction): any {\n // TODO: I know this scales poorly to lots of different action types but I'm not sure how to do it better\n if (action.actionType.endsWith(\"CreateGeoObjectAction\") || action.actionType.endsWith(\"UpdateGeoObjectAction\")) {\n // return this.cuDetail;\n }\n // if (this.arDetail != null && (this.action.actionType.endsWith('AddChildAction') || this.action.actionType.endsWith('RemoveChildAction')))\n // {\n // return this.arDetail;\n // }\n\n return action;\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n getUsername(): string {\n return this.authService.getUsername();\n }\n\n isRequestTooOld(request: ChangeRequest): boolean {\n if (request.actions && request.actions.length > 0) {\n let firstAction = request.actions[0];\n\n if (firstAction.actionType === ActionTypes.UPDATEGEOOBJECTACTION) {\n return true;\n } else if (firstAction.actionType === ActionTypes.CREATEGEOOBJECTACTION && !(firstAction as CreateGeoObjectAction).geoObjectJson.attributes[\"exists\"]) {\n return true;\n } else {\n return false;\n }\n } else {\n return true;\n }\n }\n\n onEditAttributes(): void {\n this.isEditing = !this.isEditing;\n }\n\n canEdit(request: ChangeRequest) : boolean {\n return (request.permissions.includes(\"WRITE_DETAILS\") && this.isEditing);\n }\n\n}\n","
\n
\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n
\n
\n\n
\n
\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
{{req.createdBy}}
\n
\n
{{req.geoObjectType.label}}
\n
\n
{{req.geoObject.label}}
\n
\n \n {{formatDate(req.createDate)}}\n \n \n
\n {{req.statusLabel}}\n
\n
\n
{{req.oid}}
\n
\n \n
\n
\n \n
\n

{{req.geoObject.label}}

\n

{{req.geoObject.code}}

\n \n

\n

\n
\n
\n \n
\n \n
\n \n
\n \n
\n
\n \n
\n \n
\n \n \n
\n \n
\n

 {{req.createdBy}}

\n

 {{req.email}}

\n

 {{req.phoneNumber}}

\n
\n \n
\n\t
\n\t
\n\t
\n\t \n\t \n\t \n\t \n\t
\n\t
\n\t \n\t
\n\t
\n\t
\n\t \n\t \n\t
\n\t \n\t
\n\t \n\t \n\t
\n\t
\n\t \n\t
\n\t
\n\t \n\t
0\" style=\"border:1px solid #ccc;border-radius: 4px;\">\n\t \n\t
\n\t

\n\t \n\t

\n\t \n\t
\n\t \n\t \n\t \n\t \n\t
\n\t
\n\t \n\t
\n\t
\n\t
\n\t \n\t \n\t
\n\t \n\t \n\t \n\t \n\n \n \n \n \n \n \n \n\t
\n
\n
\n \n
\n \n
\n
\n\t
0\" class=\"solid-table-footer\">\n \n\t
\n
\n
\n
\n","import { ActionTypes, ChangeType } from \"@registry/model/constants\";\nimport { AbstractAction, ChangeRequest, CreateGeoObjectAction, UpdateAttributeOverTimeAction, ValueOverTimeDiff } from \"@registry/model/crtable\";\nimport { AttributeType, GeoObjectType, HierarchyOverTime, HierarchyOverTimeEntry, ValueOverTime } from \"@registry/model/registry\";\nimport { ChangeRequestEditor } from \"./change-request-editor\";\nimport { ValueOverTimeCREditor } from \"./ValueOverTimeCREditor\";\nimport { HierarchyCREditor } from \"./HierarchyCREditor\";\nimport { v4 as uuid } from \"uuid\";\nimport { GeometryService } from \"@registry/service\";\nimport { Subject } from \"rxjs\";\n\nexport class ChangeRequestChangeOverTimeAttributeEditor {\n\n changeRequestEditor: ChangeRequestEditor;\n\n attribute: AttributeType;\n\n editAction: AbstractAction;\n\n hierarchy: HierarchyOverTime;\n\n editors: ValueOverTimeCREditor[];\n\n private _isValid: boolean;\n\n onChangeSubject: Subject = new Subject();\n\n constructor(changeRequestEditor: ChangeRequestEditor, attribute: AttributeType, hierarchy: HierarchyOverTime) {\n this.changeRequestEditor = changeRequestEditor;\n this.attribute = attribute;\n this.hierarchy = hierarchy;\n\n this.getEditAction();\n\n if (hierarchy != null) {\n for (let j = 0; j < this.hierarchy.entries.length; j++) {\n let hierarchyEntry = this.hierarchy.entries[j];\n\n if (hierarchyEntry.parents == null) {\n hierarchyEntry.parents = {};\n }\n if (hierarchyEntry.loading == null) {\n hierarchyEntry.loading = {};\n }\n\n for (let i = 0; i < this.hierarchy.types.length; i++) {\n let current = this.hierarchy.types[i];\n\n if (hierarchyEntry.parents[current.code] == null) {\n hierarchyEntry.parents[current.code] = { text: \"\", geoObject: null };\n }\n }\n }\n }\n\n this.editors = this.generateEditors();\n }\n\n getEditAction() {\n if (this.editAction == null) {\n let actions = ChangeRequest.getActionsForAttribute(this.changeRequestEditor.changeRequest, this.attribute.code, this.hierarchy == null ? null : this.hierarchy.code);\n\n if (actions.length === 0) {\n this.editAction = new UpdateAttributeOverTimeAction(this.attribute.code);\n\n if (this.attribute.code === \"_PARENT_\") {\n (this.editAction as UpdateAttributeOverTimeAction).attributeDiff.hierarchyCode = this.hierarchy.code;\n }\n } else {\n this.editAction = actions[actions.length - 1];\n }\n }\n\n return this.editAction;\n }\n\n onChange(type: ChangeType) {\n // If our attribute action has changes it needs to be added to the ChangeRequest actions. Otherwise we can remove it.\n let hasChanges: boolean = this.hasChanges();\n\n let index = this.changeRequestEditor.changeRequest.actions.findIndex(action => this.editAction === action);\n\n if (index !== -1 && !hasChanges) {\n this.changeRequestEditor.changeRequest.actions.splice(index, 1);\n } else if (index === -1 && hasChanges) {\n this.changeRequestEditor.changeRequest.actions.push(this.editAction);\n }\n\n this.validate();\n\n this.onChangeSubject.next(type);\n this.changeRequestEditor.onChange(type);\n }\n\n hasChanges(): boolean {\n let hasChanges: boolean = true;\n\n if (this.editAction.actionType === ActionTypes.UPDATEATTRIBUTETACTION) {\n let updateAction: UpdateAttributeOverTimeAction = this.editAction as UpdateAttributeOverTimeAction;\n\n if (updateAction.attributeDiff.valuesOverTime.length === 0) {\n hasChanges = false;\n }\n }\n\n return hasChanges;\n }\n\n public isValid(): boolean {\n return this._isValid;\n }\n\n validate(skipExists: boolean = false): boolean {\n let validEditors = this.validateEditors();\n let hasTimeConflict = this.changeRequestEditor.dateService.checkRanges(this.attribute, this.editors);\n\n let hasExistConflict = false;\n if (this.attribute.code !== \"exists\") {\n let existsAttribute: AttributeType = GeoObjectType.getAttribute(this.changeRequestEditor.geoObjectType, \"exists\");\n let existEditors = (this.changeRequestEditor.getEditorForAttribute(existsAttribute) as ChangeRequestChangeOverTimeAttributeEditor).getEditors();\n hasExistConflict = this.changeRequestEditor.dateService.checkExistRanges(this.editors, existEditors);\n } else if (!skipExists) {\n this.changeRequestEditor.validate(true); // If the exists attribute has changed we must revalidate all other attributes\n }\n\n this._isValid = validEditors && !hasTimeConflict && !hasExistConflict;\n\n return this._isValid;\n }\n\n private validateEditors(): boolean {\n let valid: boolean = true;\n\n this.editors.forEach(editor => {\n if (!editor.validate()) {\n valid = false;\n }\n });\n\n return valid;\n }\n\n findExistingValueOverTimeByOid(oid: string, attributeCode: string) {\n if (this.changeRequestEditor.geoObject.attributes[attributeCode]) {\n let index = this.changeRequestEditor.geoObject.attributes[attributeCode].values.findIndex((vot: ValueOverTime) => vot.oid === oid);\n\n if (index !== -1) {\n return this.changeRequestEditor.geoObject.attributes[attributeCode].values[index];\n }\n }\n\n return null;\n }\n\n public getEditors(includeUnmodified: boolean = true): ValueOverTimeCREditor[] {\n return this.editors.filter(editor => includeUnmodified || editor.diff != null);\n }\n\n generateEditors(): ValueOverTimeCREditor[] {\n let actions = ChangeRequest.getActionsForAttribute(this.changeRequestEditor.changeRequest, this.attribute.code, this.hierarchy == null ? null : this.hierarchy.code);\n\n let editors: ValueOverTimeCREditor[] = [];\n\n // First, we have to create a view for every ValueOverTime object. This is done to simply display what's currently\n // on the GeoObject\n if (this.attribute.code === \"_PARENT_\") {\n this.hierarchy.entries.forEach((entry: HierarchyOverTimeEntry) => {\n let editor = new HierarchyCREditor(this, this.attribute, this.editAction, entry, this.hierarchy);\n\n editors.push(editor);\n });\n } else {\n if (this.changeRequestEditor.geoObject.attributes[this.attribute.code]) {\n this.changeRequestEditor.geoObject.attributes[this.attribute.code].values.forEach((vot: ValueOverTime) => {\n let editor = new ValueOverTimeCREditor(this, this.attribute, this.editAction);\n\n editor.valueOverTime = vot;\n\n editors.push(editor);\n });\n }\n }\n\n // Next, we must apply all changes which may exist in the actions.\n if (this.changeRequestEditor.changeRequest.type === \"UpdateGeoObject\") {\n let len = actions.length;\n for (let i = 0; i < len; ++i) {\n let updateAttrAction: UpdateAttributeOverTimeAction = actions[i] as UpdateAttributeOverTimeAction;\n\n updateAttrAction.attributeDiff.valuesOverTime.forEach((votDiff: ValueOverTimeDiff) => {\n let index = editors.findIndex(editor => editor.oid === votDiff.oid);\n let editor = (index === -1) ? null : editors[index];\n\n if (editor == null) {\n if (this.attribute.code === \"_PARENT_\") {\n editor = new HierarchyCREditor(this, this.attribute, this.editAction, null, this.hierarchy);\n } else {\n editor = new ValueOverTimeCREditor(this, this.attribute, this.editAction);\n }\n\n editor.diff = votDiff;\n\n editors.push(editor);\n } else {\n editor.diff = votDiff;\n\n if (this.attribute.code === \"_PARENT_\") {\n (editor as HierarchyCREditor).hierarchyEntry.parents = votDiff.parents;\n }\n }\n });\n }\n }\n\n return editors;\n }\n\n public createNewVersion(original?: ValueOverTimeCREditor): ValueOverTimeCREditor {\n let editor: ValueOverTimeCREditor;\n\n // Create an instance of the appropriate editor object\n if (this.attribute.code === \"_PARENT_\") {\n editor = new HierarchyCREditor(this, this.attribute, this.editAction, null, this.hierarchy);\n } else {\n editor = new ValueOverTimeCREditor(this, this.attribute, this.editAction);\n }\n\n // If we're creating a new GeoObject, add it to that GeoObject\n if (this.changeRequestEditor.changeRequest.type === \"CreateGeoObject\") {\n if (this.attribute.code === \"_PARENT_\") {\n (editor as HierarchyCREditor).hierarchyEntry = (editor as HierarchyCREditor).createEmptyHierarchyEntry();\n (editor as HierarchyCREditor).hierarchyOverTime.entries.push((editor as HierarchyCREditor).hierarchyEntry);\n } else {\n let vot = new ValueOverTime();\n vot.oid = uuid();\n\n (this.editAction as CreateGeoObjectAction).geoObjectJson.attributes[this.attribute.code].values.push(vot);\n\n editor.valueOverTime = vot;\n }\n } else {\n editor.constructNewDiff(\"CREATE\");\n }\n\n // Set any default values\n if (this.attribute.type === \"local\") {\n editor.value = this.changeRequestEditor.localizationService.create();\n } else if (this.attribute.type === \"geometry\") {\n let editors = this.getEditors(true);\n\n if (editors.length > 0) {\n\n if (original != null) {\n editor.value = JSON.parse(JSON.stringify(original.value));\n }\n else {\n editor.value = JSON.parse(JSON.stringify(editors[editors.length - 1].value));\n }\n } else {\n editor.value = GeometryService.createEmptyGeometryValue(this.changeRequestEditor.geoObjectType.geometryType);\n }\n } else if (this.attribute.type === \"term\") {\n let terms = GeoObjectType.getGeoObjectTypeTermAttributeOptions(this.changeRequestEditor.geoObjectType, this.attribute.code);\n\n if (terms && terms.length > 0) {\n editor.value = terms[0].code;\n }\n } else if (this.attribute.code === \"_PARENT_\" && this.changeRequestEditor.changeRequest.type === \"UpdateGeoObject\") {\n (editor as HierarchyCREditor).hierarchyEntry = (editor as HierarchyCREditor).createEmptyHierarchyEntry();\n } else if (this.attribute.code !== \"_PARENT_\") {\n editor.value = null;\n }\n\n this.editors.push(editor);\n\n this.onChange(ChangeType.ADD);\n\n return editor;\n }\n\n public remove(editor: ValueOverTimeCREditor) {\n if ((editor.diff != null && editor.diff.action === \"CREATE\") || this.changeRequestEditor.changeRequest.type === \"CreateGeoObject\") {\n let index = this.editors.findIndex(find => find.oid === editor.oid);\n\n if (index !== -1) {\n this.editors.splice(index, 1);\n }\n }\n\n editor.remove();\n\n this.validate();\n }\n\n}\n","import { ValueOverTime, AttributeType, TimeRangeEntry, ConflictMessage } from \"@registry/model/registry\";\nimport { CreateGeoObjectAction, UpdateAttributeOverTimeAction, AbstractAction, ValueOverTimeDiff } from \"@registry/model/crtable\";\nimport { v4 as uuid } from \"uuid\";\n// eslint-disable-next-line camelcase\nimport turf_booleanequal from \"@turf/boolean-equal\";\nimport { LocalizedValue } from \"@shared/model/core\";\nimport { GeometryService } from \"@registry/service\";\nimport { ChangeRequestChangeOverTimeAttributeEditor } from \"./change-request-change-over-time-attribute-editor\";\nimport { Subject } from \"rxjs\";\nimport { ChangeType, ConflictType } from \"@registry/model/constants\";\n\nexport class ValueOverTimeCREditor implements TimeRangeEntry {\n\n diff?: ValueOverTimeDiff; // Any existing diff which may be associated with this object.\n valueOverTime?: ValueOverTime; // Represents a vot on an existing GeoObject. If this is set and the action is UpdateAttribute, we must be doing an UPDATE, and valueOverTime represents the original value in the DB.\n action: AbstractAction;\n changeRequestAttributeEditor: ChangeRequestChangeOverTimeAttributeEditor;\n attr: AttributeType;\n conflictMessages: Set;\n\n onChangeSubject : Subject = new Subject();\n\n _isValid: boolean = true;\n\n constructor(changeRequestAttributeEditor: ChangeRequestChangeOverTimeAttributeEditor, attr: AttributeType, action: AbstractAction) {\n this.attr = attr;\n this.changeRequestAttributeEditor = changeRequestAttributeEditor;\n this.action = action;\n }\n\n onChange(type: ChangeType) {\n this.changeRequestAttributeEditor.onChange(type);\n this.onChangeSubject.next(type);\n }\n\n getGeoObjectTimeRangeStorage(): TimeRangeEntry {\n return this.valueOverTime;\n }\n\n getValueFromGeoObjectForDiff(): any {\n return this.valueOverTime.value;\n }\n\n validate(): boolean {\n let dateService = this.changeRequestAttributeEditor.changeRequestEditor.dateService;\n let start = dateService.validateDate(this.startDate == null ? null : dateService.getDateFromDateString(this.startDate), true, true);\n let end = dateService.validateDate(this.endDate == null ? null : dateService.getDateFromDateString(this.endDate), true, true);\n this._isValid = true;\n\n if (!start.valid || !end.valid) {\n this._isValid = false;\n }\n\n this.validateUpdateReference();\n\n return this._isValid;\n }\n\n /**\n * If we're referencing an existing value over time, that object should exist on our GeoObject (which represents the current state of the database)\n */\n validateUpdateReference() {\n let missingReference = this.changeRequestAttributeEditor.changeRequestEditor.dateService.missingReference;\n\n if (!this.conflictMessages) {\n this.conflictMessages = new Set();\n }\n\n this.conflictMessages.delete(missingReference);\n\n if (this.changeRequestAttributeEditor.changeRequestEditor.changeRequest.type === \"UpdateGeoObject\" && this.diff != null && this.diff.action !== \"CREATE\") {\n let existingVot = this.findExistingValueOverTimeByOid(this.diff.oid, this.attr.code);\n\n if (existingVot == null) {\n this._isValid = false;\n\n this.conflictMessages.add(missingReference);\n }\n }\n }\n\n findExistingValueOverTimeByOid(oid: string, attributeCode: string) {\n if (this.changeRequestAttributeEditor.changeRequestEditor.geoObject.attributes[attributeCode]) {\n let index = this.changeRequestAttributeEditor.changeRequestEditor.geoObject.attributes[attributeCode].values.findIndex((vot: ValueOverTime) => vot.oid === oid);\n\n if (index !== -1) {\n return this.changeRequestAttributeEditor.changeRequestEditor.geoObject.attributes[attributeCode].values[index];\n }\n }\n\n return null;\n }\n\n set oid(oid: string) {\n if (this.diff != null) {\n this.diff.oid = oid;\n } else if (this.getGeoObjectTimeRangeStorage() != null) {\n this.getGeoObjectTimeRangeStorage().oid = oid;\n }\n }\n\n get oid(): string {\n if (this.diff != null) {\n return this.diff.oid;\n } else if (this.getGeoObjectTimeRangeStorage() != null) {\n return this.getGeoObjectTimeRangeStorage().oid;\n }\n\n return null;\n }\n\n get startDate(): string {\n if (this.diff != null && this.diff.newStartDate !== undefined) {\n return this.diff.newStartDate;\n } else if (this.diff != null && this.diff.oldStartDate !== undefined) {\n return this.diff.oldStartDate;\n } else if (this.getGeoObjectTimeRangeStorage() != null) {\n return this.getGeoObjectTimeRangeStorage().startDate;\n }\n\n return null;\n }\n\n constructNewDiff(action: string): void {\n this.diff = new ValueOverTimeDiff();\n this.diff.action = action;\n (this.action as UpdateAttributeOverTimeAction).attributeDiff.valuesOverTime.push(this.diff);\n\n if (action === \"CREATE\") {\n this.diff.oid = uuid();\n } else {\n let goRange = this.getGeoObjectTimeRangeStorage();\n\n this.diff.oid = goRange.oid;\n this.diff.oldStartDate = goRange.startDate;\n this.diff.oldEndDate = goRange.endDate;\n }\n }\n\n set oldStartDate(oldStartDate: string) {\n if (this.diff != null) {\n this.diff.oldStartDate = oldStartDate;\n }\n }\n\n get oldStartDate(): string {\n if (this.diff != null) {\n return this.diff.oldStartDate;\n }\n\n return null;\n }\n\n get endDate(): string {\n if (this.diff != null && this.diff.newEndDate !== undefined) {\n return this.diff.newEndDate;\n } else if (this.diff != null && this.diff.oldStartDate !== undefined) {\n return this.diff.oldEndDate;\n } else if (this.getGeoObjectTimeRangeStorage() != null) {\n return this.getGeoObjectTimeRangeStorage().endDate;\n }\n\n return null;\n }\n\n set startDate(startDate: string) {\n if (this.isDelete()) {\n return; // There are various view components (like the date widgets) which will invoke this method\n }\n\n let goRange = this.getGeoObjectTimeRangeStorage();\n\n if (this.action.actionType === \"UpdateAttributeAction\") {\n if (this.diff == null) {\n if (this.getGeoObjectTimeRangeStorage() == null) {\n this.constructNewDiff(\"CREATE\");\n } else {\n if (goRange.startDate === startDate) {\n return;\n }\n\n this.constructNewDiff(\"UPDATE\");\n\n this.diff.oldValue = this.getValueFromGeoObjectForDiff();\n }\n }\n\n if (startDate === this.diff.oldStartDate) {\n delete this.diff.newStartDate;\n } else {\n this.diff.newStartDate = startDate;\n }\n\n // If no changes have been made then remove the diff\n this.removeEmptyDiff();\n } else if (this.action.actionType === \"CreateGeoObjectAction\") {\n goRange.startDate = startDate;\n }\n\n this.onChange(ChangeType.START_DATE);\n }\n\n set endDate(endDate: string) {\n if (this.isDelete()) {\n return; // There are various view components (like the date widgets) which will invoke this method\n }\n\n let goRange = this.getGeoObjectTimeRangeStorage();\n\n if (this.action.actionType === \"UpdateAttributeAction\") {\n if (this.diff == null) {\n if (goRange == null) {\n this.constructNewDiff(\"CREATE\");\n } else {\n if (goRange.endDate === endDate) {\n return;\n }\n\n this.constructNewDiff(\"UPDATE\");\n\n this.diff.oldValue = this.getValueFromGeoObjectForDiff();\n }\n }\n\n if (endDate === this.diff.oldEndDate) {\n delete this.diff.newEndDate;\n } else {\n this.diff.newEndDate = endDate;\n }\n\n // If no changes have been made then remove the diff\n this.removeEmptyDiff();\n } else if (this.action.actionType === \"CreateGeoObjectAction\") {\n goRange.endDate = endDate;\n }\n\n this.onChange(ChangeType.END_DATE);\n }\n\n set oldEndDate(oldEndDate: string) {\n if (this.diff != null) {\n this.diff.oldEndDate = oldEndDate;\n }\n }\n\n get oldEndDate(): string {\n if (this.diff != null) {\n return this.diff.oldEndDate;\n }\n\n return null;\n }\n\n get value(): any {\n if (this.diff != null && this.diff.newValue !== undefined) {\n return this.diff.newValue;\n } else if (this.diff != null && this.diff.oldValue !== undefined) {\n return this.diff.oldValue;\n } else if (this.getGeoObjectTimeRangeStorage() != null) {\n return this.getGeoObjectTimeRangeStorage().value;\n }\n\n return null;\n }\n\n set value(value: any) {\n if (this.isDelete()) {\n return; // There are various view components (like the date widgets) which will invoke this method\n }\n\n if (value != null) {\n if (this.attr.type === \"term\") {\n value = [value];\n } else if (this.attr.type === \"date\") {\n value = new Date(value).getTime();\n } else if (this.attr.type === \"geometry\") {\n // Limit max precision for point geometries\n let maxCoordinatePrecision = 6;\n\n if (value.type === \"MultiPoint\") {\n for (let i = 0; i < value.coordinates.length; ++i) {\n let coordinate: number[] = value.coordinates[i];\n\n coordinate[0] = Number.parseFloat(coordinate[0].toFixed(maxCoordinatePrecision));\n coordinate[1] = Number.parseFloat(coordinate[1].toFixed(maxCoordinatePrecision));\n }\n } else if (value.type === \"Point\") {\n value.coordinates = [Number.parseFloat(value.coordinates[0].toFixed(maxCoordinatePrecision)), Number.parseFloat(value.coordinates[1].toFixed(maxCoordinatePrecision))];\n }\n }\n } else if (value == null) {\n if (this.attr.type === \"geometry\") {\n value = GeometryService.createEmptyGeometryValue(this.changeRequestAttributeEditor.changeRequestEditor.geoObjectType.geometryType);\n } else if (this.attr.type === \"character\") {\n value = \"\";\n }\n }\n\n if (this.action.actionType === \"UpdateAttributeAction\") {\n if (this.diff == null) {\n if (this.getGeoObjectTimeRangeStorage() == null) {\n this.diff = new ValueOverTimeDiff();\n this.diff.oid = uuid();\n this.diff.action = \"CREATE\";\n (this.action as UpdateAttributeOverTimeAction).attributeDiff.valuesOverTime.push(this.diff);\n } else {\n if (this.areValuesEqual(this.valueOverTime.value, value)) {\n return;\n }\n\n this.diff = new ValueOverTimeDiff();\n this.diff.action = \"UPDATE\";\n this.diff.oid = this.getGeoObjectTimeRangeStorage().oid;\n this.diff.oldValue = this.valueOverTime.value;\n this.diff.oldStartDate = this.getGeoObjectTimeRangeStorage().startDate;\n this.diff.oldEndDate = this.getGeoObjectTimeRangeStorage().endDate;\n (this.action as UpdateAttributeOverTimeAction).attributeDiff.valuesOverTime.push(this.diff);\n }\n }\n\n if (this.diff.action !== \"CREATE\" && this.areValuesEqual(this.diff.oldValue, value)) {\n delete this.diff.newValue;\n } else {\n this.diff.newValue = JSON.parse(JSON.stringify(value));\n }\n\n // If no changes have been made then remove the diff\n this.removeEmptyDiff();\n } else if (this.action.actionType === \"CreateGeoObjectAction\") {\n this.valueOverTime.value = value;\n }\n\n this.onChange(ChangeType.VALUE);\n }\n\n set oldValue(oldValue: any) {\n if (this.diff != null) {\n this.diff.oldValue = oldValue;\n }\n }\n\n get oldValue(): any {\n if (this.diff != null) {\n return this.diff.oldValue;\n }\n\n return null;\n }\n\n public setLocalizedValue(localizedValue: LocalizedValue) {\n this.value = JSON.parse(JSON.stringify(localizedValue));\n }\n\n removeEmptyDiff(): void {\n if (this.diff != null && this.diff.newValue === undefined && this.diff.newStartDate === undefined && this.diff.newEndDate === undefined) {\n const diffs = (this.action as UpdateAttributeOverTimeAction).attributeDiff.valuesOverTime;\n\n const index = diffs.findIndex(d => d.oid === this.diff.oid);\n\n if (index !== -1) {\n diffs.splice(index, 1);\n }\n\n this.diff = null;\n }\n }\n\n areValuesEqual(val1: any, val2: any): boolean {\n if (this.attr.type === \"boolean\") {\n return val1 === val2;\n }\n\n if ((val1 === \"\" && val2 == null) || (val2 === \"\" && val1 == null)) {\n return true;\n }\n\n if (!val1 && !val2) {\n return true;\n } else if ((!val1 && val2) || (!val2 && val1)) {\n return false;\n }\n\n if (this.attr.type === \"term\") {\n if (val1 != null && val2 != null) {\n return val1.length === val2.length && val1[0] === val2[0];\n }\n } else if (this.attr.type === \"geometry\") {\n return turf_booleanequal(val1, val2);\n } else if (this.attr.type === \"date\") {\n let casted1 = (typeof val1 === \"string\") ? parseInt(val1) : val1;\n let casted2 = (typeof val2 === \"string\") ? parseInt(val2) : val2;\n\n return casted1 === casted2;\n } else if (this.attr.type === \"local\") {\n if ((!val1.localeValues || !val2.localeValues) || val1.localeValues.length !== val2.localeValues.length) {\n return false;\n }\n\n let len = val1.localeValues.length;\n for (let i = 0; i < len; ++i) {\n let localeValue = val1.localeValues[i];\n\n let lv2 = this.getValueAtLocale(val2, localeValue.locale);\n let lv1 = localeValue.value;\n\n if ((lv1 === \"\" && lv2 == null) || (lv2 === \"\" && lv1 == null)) {\n continue;\n } else if (lv1 !== lv2) {\n return false;\n }\n }\n\n return true;\n }\n\n return val1 === val2;\n }\n\n getValueAtLocale(lv: LocalizedValue, locale: string) {\n return new LocalizedValue(lv.localizedValue, lv.localeValues).getValue(locale);\n }\n\n public remove(): void {\n if (this.action.actionType === \"UpdateAttributeAction\") {\n if (this.diff != null && this.diff.action === \"CREATE\") {\n // Its a new entry, just remove the diff from the diff array\n let updateAction: UpdateAttributeOverTimeAction = this.action as UpdateAttributeOverTimeAction;\n\n const index = updateAction.attributeDiff.valuesOverTime.findIndex(vot => vot.oid === this.diff.oid);\n\n if (index > -1) {\n updateAction.attributeDiff.valuesOverTime.splice(index, 1);\n }\n } else if (this.diff != null) {\n delete this.diff.newValue;\n delete this.diff.newStartDate;\n delete this.diff.newEndDate;\n this.removeEmptyDiff();\n this.onChange(ChangeType.REMOVE);\n return;\n } else if (this.valueOverTime != null && this.diff == null) {\n this.diff = new ValueOverTimeDiff();\n this.diff.action = \"DELETE\";\n this.diff.oid = this.valueOverTime.oid;\n this.diff.oldValue = this.valueOverTime.value;\n this.diff.oldStartDate = this.valueOverTime.startDate;\n this.diff.oldEndDate = this.valueOverTime.endDate;\n (this.action as UpdateAttributeOverTimeAction).attributeDiff.valuesOverTime.push(this.diff);\n }\n } else if (this.action.actionType === \"CreateGeoObjectAction\") {\n let votc = (this.action as CreateGeoObjectAction).geoObjectJson.attributes[this.attr.code].values;\n\n let index = votc.findIndex((vot) => { return vot.oid === this.valueOverTime.oid; });\n\n if (index !== -1) {\n votc.splice(index, 1);\n }\n }\n\n this.onChange(ChangeType.REMOVE);\n }\n\n public isDelete() {\n return this.diff != null && this.diff.action === \"DELETE\";\n }\n\n}\n","import {\n Component,\n OnInit,\n Input,\n Output,\n ChangeDetectorRef,\n EventEmitter,\n ViewChildren,\n QueryList,\n ElementRef,\n SimpleChanges\n} from \"@angular/core\";\nimport {\n trigger,\n style,\n animate,\n transition\n} from \"@angular/animations\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { GeoObjectType, AttributeType, HierarchyOverTime } from \"@registry/model/registry\";\nimport { SummaryKey } from \"@registry/model/crtable\";\nimport { LocalizedValue } from \"@shared/model/core\";\nimport { GovernanceStatus, LayerColor } from \"@registry/model/constants\";\nimport { AuthService } from \"@shared/service/auth.service\";\n\nimport { DateFieldComponent } from \"../../../shared/component/form-fields/date-field/date-field.component\";\nimport { ErrorHandler } from \"@shared/component\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { RegistryService, GeometryService } from \"@registry/service\";\nimport { ChangeRequestService } from \"@registry/service/change-request.service\";\nimport { DateService } from \"@shared/service/date.service\";\n\nimport { LocalizationService } from \"@shared/service\";\n\nimport { VersionDiffView, Layer } from \"./manage-versions-model\";\nimport { ControlContainer, NgForm } from \"@angular/forms\";\nimport { Observable } from \"rxjs\";\nimport { ValueOverTimeCREditor } from \"./ValueOverTimeCREditor\";\nimport { TypeaheadMatch } from \"ngx-bootstrap/typeahead\";\nimport { HierarchyCREditor } from \"./HierarchyCREditor\";\nimport { ChangeRequestEditor } from \"./change-request-editor\";\nimport { ChangeRequestChangeOverTimeAttributeEditor } from \"./change-request-change-over-time-attribute-editor\";\n\n@Component({\n selector: \"manage-versions\",\n templateUrl: \"./manage-versions.component.html\",\n styleUrls: [\"./manage-versions.css\"],\n host: { \"[@fadeInOut]\": \"true\" },\n animations: [\n [\n trigger(\"fadeInOut\", [\n transition(\"void => *\", [\n style({\n opacity: 0\n }),\n animate(\"500ms\")\n ]),\n transition(\":leave\",\n animate(\"500ms\",\n style({\n opacity: 0\n })\n )\n )\n ])\n ]],\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }]\n\n})\nexport class ManageVersionsComponent implements OnInit {\n\n // height (as number) in pixels\n mapRowHeight: number;\n\n bsModalRef: BsModalRef;\n\n @Input() isNew: boolean = false;\n\n @ViewChildren(\"dateFieldComponents\") dateFieldComponentsArray: QueryList;\n\n message: string = null;\n\n currentDate: Date = new Date();\n\n isValid: boolean = true;\n @Output() isValidChange = new EventEmitter();\n\n @Input() readonly: boolean = false;\n\n @Input() isGeometryInlined: boolean = false;\n\n @Input() changeRequestEditor: ChangeRequestEditor;\n\n changeRequestAttributeEditor: ChangeRequestChangeOverTimeAttributeEditor;\n\n @Input() geoObjectType: GeoObjectType;\n\n @Input() attributeType: AttributeType;\n\n @Input() hierarchy: HierarchyOverTime = null;\n\n @Input() filterDate: string = null;\n\n @Input() showAllInstances: boolean = true;\n\n viewModels: VersionDiffView[] = [];\n\n isRootOfHierarchy: boolean = false;\n\n isInitialized: boolean = false;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public geomService: GeometryService, public cdr: ChangeDetectorRef, public service: RegistryService, public lService: LocalizationService,\n public changeDetectorRef: ChangeDetectorRef, public dateService: DateService, private authService: AuthService,\n private requestService: ChangeRequestService, private modalService: BsModalService, private elementRef: ElementRef) { }\n\n ngOnInit(): void {\n this.changeRequestAttributeEditor = this.changeRequestEditor.getEditorForAttribute(this.attributeType, this.hierarchy) as ChangeRequestChangeOverTimeAttributeEditor;\n\n this.calculateViewModels();\n this.isRootOfHierarchy = this.attributeType.type === \"_PARENT_\" && (this.hierarchy == null || this.hierarchy.types == null || this.hierarchy.types.length === 0);\n this.isInitialized = true;\n }\n\n ngAfterViewInit() {\n if (this.isNew && this.attributeType.code === \"exists\" && this.viewModels.length === 0) {\n this.onAddNewVersion();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.isInitialized && changes.showAllInstances && changes.showAllInstances.previousValue !== changes.showAllInstances.currentValue) {\n this.calculateViewModels();\n }\n }\n\n setFilterDate(filterDate: string, refresh: boolean = true): void {\n this.filterDate = filterDate;\n if (refresh) {\n this.calculateViewModels();\n }\n }\n\n checkDateFieldValidity(): boolean {\n let dateFields = this.dateFieldComponentsArray.toArray();\n\n for (let i = 0; i < dateFields.length; i++) {\n let field = dateFields[i];\n if (!field.valid) {\n return false;\n }\n }\n\n return true;\n }\n\n hasLocalizationChanged(viewModel: VersionDiffView, locale: string): boolean {\n return viewModel.editor.oldValue != null && this.getValueAtLocale(viewModel.editor.oldValue, locale) !== this.getValueAtLocale(viewModel.editor.value, locale);\n }\n\n onDateChange(): any {\n setTimeout(() => {\n this.isValid = this.changeRequestAttributeEditor.validate() && this.checkDateFieldValidity();\n\n this.isValidChange.emit(this.isValid);\n }, 0);\n }\n\n remove(view: VersionDiffView): void {\n if (this.geomService.isEditing()) {\n this.geomService.stopEditing();\n }\n\n this.changeRequestAttributeEditor.remove(view.editor);\n\n if (view.summaryKey === SummaryKey.NEW || this.changeRequestEditor.changeRequest.type === \"CreateGeoObject\") {\n const index = this.viewModels.findIndex(v => v.editor.oid === view.editor.oid);\n\n if (index > -1) {\n this.viewModels.splice(index, 1);\n }\n }\n\n if (this.attributeType.type === \"geometry\") {\n this.geomService.reload();\n }\n }\n\n onAddNewVersion(original?: ValueOverTimeCREditor): void {\n let editor = this.changeRequestAttributeEditor.createNewVersion(original);\n\n if (this.isNew && this.changeRequestEditor.geoObject.attributes[\"exists\"]) {\n let values = this.changeRequestEditor.geoObject.attributes[\"exists\"].values;\n\n if (values && values.length > 0) {\n let value = values[0];\n\n editor.startDate = value.startDate;\n editor.endDate = value.endDate;\n }\n }\n\n this.viewModels.push(new VersionDiffView(this, editor));\n }\n\n getValueAtLocale(lv: LocalizedValue, locale: string) {\n return lv == null ? null : new LocalizedValue(lv.localizedValue, lv.localeValues).getValue(locale);\n }\n\n public getGeoObjectTypeTermAttributeOptions(termAttributeCode: string) {\n return GeoObjectType.getGeoObjectTypeTermAttributeOptions(this.geoObjectType, termAttributeCode);\n }\n\n calculateViewModels(): void {\n let viewModels: VersionDiffView[] = [];\n\n let editors = this.changeRequestAttributeEditor.getEditors(this.showAllInstances);\n editors.forEach((editor: ValueOverTimeCREditor) => {\n if (this.filterDate == null || this.dateService.between(this.filterDate, editor.startDate, editor.endDate)) {\n let view = new VersionDiffView(this, editor);\n viewModels.push(view);\n }\n });\n\n this.viewModels = viewModels;\n }\n\n onApprove(): void {\n this.requestService.setActionStatus(this.changeRequestAttributeEditor.editAction.oid, GovernanceStatus.ACCEPTED).then(results => {\n this.changeRequestAttributeEditor.editAction.approvalStatus = GovernanceStatus.ACCEPTED;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onReject(): void {\n this.requestService.setActionStatus(this.changeRequestAttributeEditor.editAction.oid, GovernanceStatus.REJECTED).then(results => {\n this.changeRequestAttributeEditor.editAction.approvalStatus = GovernanceStatus.REJECTED;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onPending(): void {\n this.requestService.setActionStatus(this.changeRequestAttributeEditor.editAction.oid, GovernanceStatus.PENDING).then(results => {\n this.changeRequestAttributeEditor.editAction.approvalStatus = GovernanceStatus.PENDING;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n public error(err: any): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n /**\n * Hierarchy Editing\n */\n\n getTypeAheadObservable(editor: HierarchyCREditor, startDate: string, endDate: string, type: any, entry: any, index: number): Observable {\n let geoObjectTypeCode = type.code;\n\n let parentCode = null;\n let parentTypeCode = null;\n let hierarchyCode = null;\n\n if (index > 0) {\n let pType = editor.changeRequestAttributeEditor.hierarchy.types[index - 1];\n const parent = entry.parents[pType.code];\n\n if (parent.geoObject != null && parent.geoObject.properties.code != null) {\n hierarchyCode = editor.changeRequestAttributeEditor.hierarchy.code;\n parentCode = parent.geoObject.properties.code;\n parentTypeCode = parent.geoObject.properties.type;\n }\n }\n\n return Observable.create((observer: any) => {\n if (parentCode == null) {\n let loopI = index;\n\n while (parentCode == null && loopI > 0) {\n loopI = loopI - 1;\n\n let parent = entry.parents[editor.changeRequestAttributeEditor.hierarchy.types[loopI].code];\n\n if (parent != null) {\n if (parent.geoObject != null && parent.geoObject.properties.code != null) {\n parentCode = parent.geoObject.properties.code;\n hierarchyCode = editor.changeRequestAttributeEditor.hierarchy.code;\n parentTypeCode = editor.changeRequestAttributeEditor.hierarchy.types[loopI].code;\n } else if (parent.goCode != null) {\n parentCode = parent.goCode;\n hierarchyCode = editor.changeRequestAttributeEditor.hierarchy.code;\n parentTypeCode = editor.changeRequestAttributeEditor.hierarchy.types[loopI].code;\n }\n }\n }\n }\n\n this.service.getGeoObjectSuggestions(entry.parents[type.code].text, geoObjectTypeCode, parentCode, parentTypeCode, hierarchyCode, startDate, endDate).then(results => {\n observer.next(results);\n });\n });\n }\n\n typeaheadOnSelect(editor: HierarchyCREditor, e: TypeaheadMatch, type: any, entry: any, date: string): void {\n // let ptn: ParentTreeNode = parent.ptn;\n\n entry.parents[type.code].text = e.item.name + \" : \" + e.item.code;\n entry.parents[type.code].goCode = e.item.code;\n\n let parentTypes = [];\n\n for (let i = 0; i < editor.changeRequestAttributeEditor.hierarchy.types.length; i++) {\n let current = editor.changeRequestAttributeEditor.hierarchy.types[i];\n\n parentTypes.push(current.code);\n\n if (current.code === type.code) {\n break;\n }\n }\n\n this.service.getParentGeoObjects(e.item.uid, type.code, parentTypes, true, date).then(ancestors => {\n // First filter the response for ancestors of only the correct hierarchy\n ancestors.parents = ancestors.parents.filter(p => p.hierarchyType === editor.changeRequestAttributeEditor.hierarchy.code);\n\n delete entry.parents[type.code].goCode;\n entry.parents[type.code].geoObject = ancestors.geoObject;\n entry.parents[type.code].text = ancestors.geoObject.properties.displayLabel.localizedValue + \" : \" + ancestors.geoObject.properties.code;\n\n for (let i = 0; i < editor.changeRequestAttributeEditor.hierarchy.types.length; i++) {\n let current = editor.changeRequestAttributeEditor.hierarchy.types[i];\n let ancestor = ancestors;\n\n while (ancestor != null && ancestor.geoObject.properties.type !== current.code) {\n if (ancestor.parents.length > 0) {\n ancestor = ancestor.parents[0];\n } else {\n ancestor = null;\n }\n }\n\n if (ancestor != null) {\n entry.parents[current.code].geoObject = ancestor.geoObject;\n entry.parents[current.code].text = ancestor.geoObject.properties.displayLabel.localizedValue + \" : \" + ancestor.geoObject.properties.code;\n }\n }\n\n editor.setParentValue(type, entry.parents);\n });\n }\n\n /**\n * GEOMETRY EDITING\n */\n\n toggleGeometryEditing(view: VersionDiffView) {\n this.geomService.setEditing(!view.newLayer.isEditing, view.newLayer);\n\n if (this.geoObjectType.geometryType === \"POINT\" || this.geoObjectType.geometryType === \"MULTIPOINT\") {\n view.coordinate = {};\n }\n }\n\n toggleGeometryView(view: VersionDiffView) {\n // Using setTimeout() to pull the calc out of the animation stack so the dom can finish mutating before getting final height.\n setTimeout(() => {\n this.mapRowHeight = this.elementRef.nativeElement.children[0].getElementsByClassName(\"attribute-element-wrapper\")[0].offsetHeight;\n }, 0);\n\n let layer: Layer = this.getOrCreateLayer(view, \"NEW\");\n\n if (layer.isEditing) {\n this.geomService.stopEditing();\n }\n\n this.geomService.setRendering(!layer.isRendering, layer);\n }\n\n toggleOldGeometryView(view: VersionDiffView) {\n let layer: Layer = this.getOrCreateLayer(view, \"OLD\");\n\n this.geomService.setRendering(!layer.isRendering, layer);\n }\n\n getOrCreateLayer(view: VersionDiffView, context: string): Layer {\n if (context === \"NEW\") {\n if (view.newLayer != null) {\n return view.newLayer;\n }\n\n view.newLayer = new Layer();\n view.newLayer.oid = \"NEW_\" + view.editor.oid;\n view.newLayer.isEditing = false;\n view.newLayer.isRendering = false;\n view.newLayer.zindex = 1;\n view.newLayer.color = LayerColor.NEW;\n view.newLayer.geojson = view.editor.value;\n view.newLayer.editPropagator = view.editor;\n\n return view.newLayer;\n } else {\n if (view.oldLayer != null) {\n return view.oldLayer;\n }\n\n view.oldLayer = new Layer();\n view.oldLayer.oid = \"OLD_\" + view.editor.oid;\n view.oldLayer.isEditing = false;\n view.oldLayer.isRendering = false;\n view.oldLayer.zindex = 0;\n view.oldLayer.color = LayerColor.OLD;\n view.oldLayer.geojson = view.editor.oldValue;\n view.oldLayer.editPropagator = null;\n\n return view.oldLayer;\n }\n }\n\n manualCoordinateChange(view: VersionDiffView): void {\n if (view.newCoordinateX || view.newCoordinateY) {\n let newX = view.newCoordinateX;\n if (view.value.coordinates && view.value.coordinates[0]) {\n newX = view.value.coordinates[0];\n }\n let newY = view.newCoordinateY;\n if (view.value.coordinates && view.value.coordinates[0]) {\n newY = view.value.coordinates[1];\n }\n view.value.coordinates = [[newX || 0, newY || 0]];\n delete view.newCoordinateX;\n delete view.newCoordinateY;\n return;\n }\n\n const isLatitude = num => isFinite(num) && Math.abs(num) <= 90;\n const isLongitude = num => isFinite(num) && Math.abs(num) <= 180;\n\n view.coordinate.latValid = isLatitude(view.value.coordinates[0][1]);\n view.coordinate.longValid = isLongitude(view.value.coordinates[0][0]);\n\n if (!view.coordinate.latValid || !view.coordinate.longValid) {\n // outside EPSG bounds\n this.isValid = false;\n this.isValidChange.emit(this.isValid);\n return;\n }\n\n this.geomService.setPointCoordinates(view.value.coordinates[0][1], view.value.coordinates[0][0]);\n }\n\n}\n","
\n \n
{{model.name }} : {{ model.code }}
\n
\n\n \n
\n\n
\n
\n\n \n
0) ? '45%' : '100%'}\" style=\"display:inline-block;\" class=\"col\">\n
\n
    \n
  • \n
    \n \n \n

    \n \n

    \n
    \n \n
    \n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n
    \n
    \n {{viewModel.summaryKeyLocalized}}\n
    \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n 0\">\n

    \n {{msg.message}}\n

    \n \n
    \n
    \n \n \n \n
    \n

    \n \n

    \n
    \n \n
    \n

    \n \n {{ getValueAtLocale(viewModel.oldValue, loc.locale) }}\n

    \n
    \n
    \n \n
    \n \n
    \n
    \n \n
    \n \n
    \n \n
    \n \n
    \n \n
    \n \n
    \n\t \n\t \n
    \n \n
    \n 0\">\n
    \n {{type.label}}\n
    \n \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n \n {{ viewModel.oldValue }}\n \n \n \n \n \n \n \n \n \n

    \n
    \n \n \n \n\n \n\n \n \n \n \n \n \n \n \n \n \n\n\n
    \n \n \n \n \n\n \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n

    \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n

    \n \n

    \n
    \n
    \n
    \n
    \n \n
    \n \n \n \n
    \n

    \n \n {{ viewModel.oldStartDate }}\n

    \n
    \n
    \n
    \n
    \n \n
    \n \n \n \n
    \n
    \n \n
    \n \n \n \n
    \n
    \n
  • \n \n
  • \n \n \n \n
  • \n \n
\n \n \n
\n \n \n \n
\n
\n \n \n \n \n \n \n
\n \n
\n
\n 0\" #geometryEditor [geometryType]=\"this.geoObjectType.geometryType\" \n [mapHeight]=\"mapRowHeight\" [readOnly]=\"!geoObjectType.isGeometryEditable && readonly\"\n [bboxCode]=\"this.changeRequestEditor.geoObject.attributes.code\" [bboxType]=\"this.geoObjectType.code\" [bboxDate]=\"geomService.getRenderedLayers()[0].startDate\">\n \n
\n\n
\n
\n
\n\n","import { Component, OnInit } from \"@angular/core\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { ActivatedRoute } from \"@angular/router\";\n\nimport { LocalizationService, AuthService } from \"@shared/service\";\n\nimport { ErrorHandler, ErrorModalComponent } from \"@shared/component\";\n\ndeclare let acp: string;\n\n@Component({\n\n selector: \"change-request-page\",\n templateUrl: \"./change-request-page.component.html\",\n styleUrls: [\"./change-request-page.css\"]\n})\nexport class ChangeRequestPageComponent implements OnInit {\n\n pageTitle: string;\n bsModalRef: BsModalRef;\n isAdmin: boolean;\n isMaintainer: boolean;\n isContributor: boolean;\n isContributorOnly: boolean;\n\n urlSubscriber: any;\n\n highlightOid: string;\n\n constructor(private localizationService: LocalizationService, private modalService: BsModalService, private service: AuthService, private route: ActivatedRoute) {\n this.isAdmin = service.isAdmin();\n this.isMaintainer = this.isAdmin || service.isMaintainer();\n this.isContributor = this.isAdmin || this.isMaintainer || service.isContributer();\n this.isContributorOnly = service.isContributerOnly();\n }\n\n ngOnInit(): void {\n this.urlSubscriber = this.route.params.subscribe(params => {\n this.highlightOid = params[\"oid\"];\n });\n }\n\n ngOnDestroy(): void {\n this.urlSubscriber.unsubscribe();\n }\n\n public error(err: HttpErrorResponse): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n}\n","
\n \n \n\n
\n\n
\n
\n
\n
\n

{{pageTitle}}

\n
\n\n
\n\n \n \n \n \n
\n
\n\n
\n
\n
\n
\n","import { Component, Input, EventEmitter, Output, ViewChild, SimpleChanges } from \"@angular/core\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { HierarchyOverTime } from \"@registry/model/registry\";\nimport { RegistryService } from \"@registry/service\";\n\nimport { ErrorHandler, ErrorModalComponent } from \"@shared/component\";\n\n@Component({\n\n selector: \"cascading-geo-selector\",\n templateUrl: \"./cascading-geo-selector.html\"\n})\nexport class CascadingGeoSelector {\n\n @Input() hierarchies: HierarchyOverTime[];\n\n @Output() valid = new EventEmitter();\n\n @Input() isValid: boolean = true;\n @Input() readOnly: boolean = false;\n\n @ViewChild(\"mainForm\") mainForm;\n\n @Input() forDate: Date = new Date();\n\n @Input() customEvent: boolean = false;\n\n @Output() onManageVersion = new EventEmitter();\n\n dateStr: string;\n\n cHierarchies: any[] = [];\n\n parentMap: any = {};\n\n bsModalRef: BsModalRef;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private modalService: BsModalService, private registryService: RegistryService) { }\n\n ngOnInit(): void {\n const day = this.forDate.getUTCDate();\n\n this.dateStr = this.forDate.getUTCFullYear() + \"-\" + (this.forDate.getUTCMonth() + 1) + \"-\" + (day < 10 ? \"0\" : \"\") + day;\n\n // Truncate any hours/minutes/etc which may be part of the date\n this.forDate = new Date(Date.parse(this.dateStr));\n\n this.calculate();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes[\"forDate\"]) {\n this.calculate();\n }\n }\n\n calculate(): any {\n const time = this.forDate.getTime();\n\n this.isValid = true;\n\n this.cHierarchies = [];\n this.hierarchies.forEach(hierarchy => {\n const object = {};\n object[\"label\"] = hierarchy.label;\n object[\"code\"] = hierarchy.code;\n\n this.isValid = this.isValid && (this.hierarchies.length > 0);\n\n hierarchy.entries.forEach(pot => {\n const startDate = Date.parse(pot.startDate);\n const endDate = Date.parse(pot.endDate);\n\n if (time >= startDate && time <= endDate) {\n let parents = [];\n\n hierarchy.types.forEach(type => {\n let parent: any = {\n code: type.code,\n label: type.label\n }\n\n if (pot.parents[type.code] != null) {\n parent.text = pot.parents[type.code].text;\n parent.geoObject = pot.parents[type.code].geoObject;\n }\n\n parents.push(parent);\n });\n\n object[\"parents\"] = parents;\n }\n });\n\n this.cHierarchies.push(object);\n });\n\n this.valid.emit();\n }\n\n public getIsValid(): boolean {\n return true;\n }\n\n public getHierarchies(): any {\n return this.hierarchies;\n }\n\n onManageVersions(code: string): void {\n const hierarchy = this.hierarchies.find(h => h.code === code);\n\n if (this.customEvent) {\n this.onManageVersion.emit(hierarchy);\n } else {\n/*\n this.bsModalRef = this.modalService.show(ManageParentVersionsModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true,\n });\n this.bsModalRef.content.init(hierarchy);\n this.bsModalRef.content.onVersionChange.subscribe(hierarchy => {\n this.calculate();\n });\n */\n }\n }\n\n public error(err: HttpErrorResponse): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n}\n","\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n {{parent.label}}\n\n \n \n
\n \n
\n\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
","import { Component, OnInit, OnDestroy } from \"@angular/core\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\nimport { TypeaheadMatch } from \"ngx-bootstrap/typeahead\";\nimport { Observable } from \"rxjs\";\nimport { webSocket, WebSocketSubject } from \"rxjs/webSocket\";\n\nimport { MasterListVersion } from \"@registry/model/registry\";\nimport { RegistryService } from \"@registry/service\";\nimport { DateService } from \"@shared/service/date.service\";\nimport { ExportFormatModalComponent } from \"./export-format-modal.component\";\nimport { GeoObjectEditorComponent } from \"../geoobject-editor/geoobject-editor.component\";\n\nimport { ErrorHandler } from \"@shared/component\";\nimport { LocalizationService, AuthService, ProgressService } from \"@shared/service\";\n\ndeclare let acp: string;\n\n@Component({\n selector: \"master-list\",\n templateUrl: \"./master-list.component.html\",\n styleUrls: [\"./master-list.component.css\"]\n})\nexport class MasterListComponent implements OnInit, OnDestroy {\n\n message: string = null;\n list: MasterListVersion = null;\n p: number = 1;\n current: string = \"\";\n filter: { attribute: string, value: string, label: string }[] = [];\n selected: string[] = [];\n page: any = {\n count: 0,\n pageNumber: 1,\n pageSize: 100,\n results: []\n };\n\n sort = { attribute: \"code\", order: \"ASC\" };\n isPublished: boolean = true;\n isRefreshing: boolean = false;\n isWritable: boolean = false;\n listAttrs: any[];\n\n showInvalid = false;\n\n /*\n * Reference to the modal current showing\n */\n private bsModalRef: BsModalRef;\n\n public searchPlaceholder = \"\";\n\n notifier: WebSocketSubject<{ type: string, content: any }>;\n\n constructor(public service: RegistryService, private pService: ProgressService, private route: ActivatedRoute, private dateService: DateService,\n private modalService: BsModalService, private localizeService: LocalizationService, private authService: AuthService) {\n this.searchPlaceholder = localizeService.decode(\"masterlist.search\");\n }\n\n ngOnInit(): void {\n const oid = this.route.snapshot.paramMap.get(\"oid\");\n this.isPublished = (this.route.snapshot.paramMap.get(\"published\") === \"true\");\n\n this.service.getMasterListVersion(oid).then(version => {\n this.setList(version);\n const orgCode = this.list.orgCode;\n const typeCode = this.list.superTypeCode != null ? this.list.superTypeCode : this.list.typeCode;\n\n this.isWritable = this.authService.isGeoObjectTypeRC(orgCode, typeCode);\n\n this.onPageChange(1);\n\n if (version.refreshProgress != null) {\n this.handleProgressChange(version.refreshProgress);\n }\n });\n\n let baseUrl = \"wss://\" + window.location.hostname + (window.location.port ? \":\" + window.location.port : \"\") + acp;\n\n this.notifier = webSocket(baseUrl + \"/websocket/progress/\" + oid);\n this.notifier.subscribe(message => {\n if (message.content != null) {\n this.handleProgressChange(message.content);\n } else {\n this.handleProgressChange(message);\n }\n });\n }\n\n ngOnDestroy() {\n this.notifier.complete();\n }\n\n ngAfterViewInit() {\n\n }\n\n setList(_list: MasterListVersion): void {\n this.list = _list;\n this.listAttrs = this.calculateListAttributes();\n }\n\n onShowInvalidChange() {\n this.onPageChange(1);\n }\n\n onPageChange(pageNumber: number): void {\n this.message = null;\n\n this.service.data(this.list.oid, pageNumber, this.page.pageSize, this.getFilter(), this.sort).then(page => {\n this.page = page;\n this.listAttrs = this.calculateListAttributes();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onSort(attribute: { name: string, label: string }): void {\n if (this.sort.attribute === attribute.name) {\n this.sort.order = (this.sort.order === \"ASC\" ? \"DESC\" : \"ASC\");\n } else {\n this.sort = { attribute: attribute.name, order: \"ASC\" };\n }\n\n this.onPageChange(1);\n }\n\n clearFilters(): void {\n this.list.attributes.forEach(attr => {\n attr.search = null;\n });\n\n this.filter = [];\n this.showInvalid = false;\n this.selected = [];\n\n this.onPageChange(1);\n }\n\n toggleFilter(attribute: any): void {\n attribute.isCollapsed = !attribute.isCollapsed;\n }\n\n getFilter(): { attribute: string, value: string, label: string }[] {\n let newFilter = JSON.parse(JSON.stringify(this.filter));\n\n if (!this.showInvalid) {\n newFilter.push({ attribute: \"invalid\", value: \"false\" });\n }\n\n return newFilter;\n }\n\n calculateListAttributes() {\n let attrs: any[];\n\n if (this.showInvalid) {\n attrs = this.list.attributes;\n } else {\n attrs = JSON.parse(JSON.stringify(this.list.attributes));\n\n let index = attrs.findIndex(attr => attr.name === \"invalid\");\n\n if (index !== -1) {\n attrs.splice(index, 1);\n }\n }\n\n attrs.forEach(attribute => {\n attribute.isCollapsed = true;\n });\n\n return attrs;\n }\n\n getTypeaheadDataObservable(attribute: any): void {\n return Observable.create((observer: any) => {\n this.message = null;\n\n // Get the valid values\n this.service.values(this.list.oid, attribute.search, attribute.name, attribute.base, this.getFilter()).then(options => {\n options.unshift({ label: \"[\" + this.localizeService.decode(\"masterlist.nofilter\") + \"]\", value: null });\n\n observer.next(options);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n });\n }\n\n handleProgressChange(progress: any): void {\n this.isRefreshing = (progress.current < progress.total);\n\n this.pService.progress(progress);\n\n if (!this.isRefreshing) {\n // Refresh the resultSet\n this.onPageChange(1);\n }\n }\n\n handleDateChange(attribute: any): void {\n attribute.isCollapsed = true;\n\n // Remove the current attribute filter if it exists\n this.filter = this.filter.filter(f => f.attribute !== attribute.base);\n this.selected = this.selected.filter(s => s !== attribute.base);\n\n if (attribute.value != null && ((attribute.value.start != null && attribute.value.start !== \"\") || (attribute.value.end != null && attribute.value.end !== \"\"))) {\n let label = \"[\" + attribute.label + \"] : [\";\n\n if (attribute.value.start != null) {\n label += attribute.value.start;\n }\n\n if (attribute.value.start != null && attribute.value.end != null) {\n label += \" - \";\n }\n\n if (attribute.value.end != null) {\n label += attribute.value.end;\n }\n\n label += \"]\";\n\n this.filter.push({ attribute: attribute.base, value: attribute.value, label: label });\n this.selected.push(attribute.base);\n }\n\n this.onPageChange(1);\n }\n\n handleInputChange(attribute: any): void {\n attribute.isCollapsed = true;\n\n // Remove the current attribute filter if it exists\n this.filter = this.filter.filter(f => f.attribute !== attribute.base);\n this.selected = this.selected.filter(s => s !== attribute.base);\n\n if (attribute.value != null && attribute.value !== \"\") {\n const label = \"[\" + attribute.label + \"] : \" + \"[\" + attribute.value + \"]\";\n\n this.filter.push({ attribute: attribute.base, value: attribute.value, label: label });\n this.selected.push(attribute.base);\n }\n\n this.onPageChange(1);\n }\n\n handleListChange(e: TypeaheadMatch, attribute: any): void {\n attribute.value = e.item;\n attribute.isCollapsed = true;\n\n this.selected = this.selected.filter(s => s !== attribute.base);\n\n this.list.attributes.forEach(attr => {\n if (attr.base === attribute.base) {\n attr.search = \"\";\n }\n });\n\n if (attribute.value.value != null && attribute.value.value !== \"\") {\n const label = \"[\" + attribute.label + \"] : \" + \"[\" + attribute.value.label + \"]\";\n\n this.filter.push({ attribute: attribute.base, value: e.item.value, label: label });\n this.selected.push(attribute.base);\n attribute.search = e.item.label;\n } else {\n this.filter = this.filter.filter(f => f.attribute !== attribute.base);\n attribute.search = \"\";\n }\n\n this.onPageChange(1);\n }\n\n isFilterable(attribute: any): boolean {\n return attribute.type !== \"none\" && attribute.name !== \"invalid\" && (attribute.dependency.length === 0 || this.selected.indexOf(attribute.base) !== -1 || this.selected.filter(value => attribute.dependency.includes(value)).length > 0);\n }\n\n onEdit(data): void {\n let editModal = this.modalService.show(GeoObjectEditorComponent, { backdrop: true, ignoreBackdropClick: true });\n editModal.content.configureAsExisting(data.code, this.list.typeCode, this.list.forDate, this.list.isGeometryEditable);\n editModal.content.setMasterListId(this.list.oid);\n editModal.content.setOnSuccessCallback(() => {\n // Refresh the page\n this.onPageChange(this.page.pageNumber);\n });\n }\n\n onPublish(): void {\n this.message = null;\n\n this.service.publishMasterList(this.list.oid).toPromise()\n .then((historyOid: string) => {\n this.isRefreshing = true;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n\n // this.list = list;\n // this.list.attributes.forEach(attribute => {\n // attribute.isCollapsed = true;\n // });\n\n // Refresh the resultSet\n // this.onPageChange(1);\n }\n\n onNewGeoObject(): void {\n let editModal = this.modalService.show(GeoObjectEditorComponent, { backdrop: true, ignoreBackdropClick: true });\n // editModal.content.fetchGeoObject( data.code, this.list.typeCode );\n editModal.content.configureAsNew(this.list.typeCode, this.list.forDate, this.list.isGeometryEditable);\n editModal.content.setMasterListId(this.list.oid);\n editModal.content.setOnSuccessCallback(() => {\n // Refresh the page\n this.onPageChange(this.page.pageNumber);\n });\n }\n\n onExport(): void {\n this.bsModalRef = this.modalService.show(ExportFormatModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n this.bsModalRef.content.onFormat.subscribe(format => {\n if (format === \"SHAPEFILE\") {\n window.location.href = acp + \"/master-list/export-shapefile?oid=\" + this.list.oid + \"&filter=\" + encodeURIComponent(JSON.stringify(this.getFilter()));\n } else if (format === \"EXCEL\") {\n window.location.href = acp + \"/master-list/export-spreadsheet?oid=\" + this.list.oid + \"&filter=\" + encodeURIComponent(JSON.stringify(this.getFilter()));\n }\n });\n }\n\n changeTypeaheadLoading(attribute: any, loading: boolean): void {\n attribute.loading = loading;\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n onWheel(event: WheelEvent): void {\n let tableEl = (event.target).parentElement.closest(\"table\").parentElement;\n\n tableEl.scrollLeft += event.deltaY;\n event.preventDefault();\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n \n \n \n \n \n\n
\n
{{message}}
\n\n
\n
\n

\n \n {{list.displayLabel}}\n

\n
\n
\n
\n\n
\n

\n \n : \n {{formatDate(list.publishDate)}}\n \n

\n \n

\n \n : \n {{formatDate(list.forDate)}}\n \n

\n
\n
0\" class=\"col-md-6\">\n\t\t
\n\t\t \n\t\t
    \n\t\t
  1. {{f.label}}
  2. \n\t\t
\n\t\t
\n\t\t
\n
\n\n\n\n\n\n \n\n\n\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n \n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t\t\t\t
  • {{subtype.label}}
  • \n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n \n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n
\n\t \n\t\t\t \n\t \n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t {{attribute.label}} \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n \n\n
\n \n
\n\t \n\t
\n\t\n\t\n\t \n\t \n\t
\n\t \n\n
\n
\n
\n \n {{ result[attribute.name] }}
\n
\n
\n \n\n
\n
\n \n \n \n  {{(page.pageNumber-1)*page.pageSize}} \n - {{page.pageNumber*page.pageSize}} \n   {{page.count}}\n \n
\n
\n
\n \n
\n","import { Component, OnInit, OnDestroy, Input } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { webSocket, WebSocketSubject } from \"rxjs/webSocket\";\n\nimport { HttpErrorResponse } from '@angular/common/http';\n\nimport { PublishModalComponent } from './publish-modal.component';\nimport { ExportFormatModalComponent } from './export-format-modal.component';\nimport { MasterList, MasterListVersion } from '@registry/model/registry';\n\nimport { ErrorHandler, ConfirmModalComponent } from '@shared/component';\nimport { RegistryService } from '@registry/service';\nimport { DateService } from '@shared/service/date.service';\nimport { AuthService, LocalizationService } from '@shared/service';\nimport { ExportSystemModalComponent } from './export-system-modal.component';\n\ndeclare var acp: any;\n\n@Component({\n selector: 'published-master-list-history',\n templateUrl: './published-master-list-history.component.html',\n styleUrls: []\n})\nexport class PublishedMasterListHistoryComponent implements OnInit, OnDestroy {\n message: string = null;\n list: MasterList = null;\n page: any = {\n pageSize: 10,\n pageNumber: 1,\n count: 1,\n results: []\n };\n\n @Input() oid: string;\n\n /*\n * Reference to the modal current showing\n */\n bsModalRef: BsModalRef;\n\n notifier: WebSocketSubject<{ type: string, content: any }>;\n\n isAdmin: boolean;\n\n\n constructor(public service: RegistryService, private router: Router, private modalService: BsModalService, public authService: AuthService, private localizeService: LocalizationService,\n private dateService: DateService) {\n\n this.isAdmin = authService.isAdmin();\n }\n\n ngOnInit(): void {\n this.service.getMasterListHistory(this.oid, \"PUBLISHED\").then(list => {\n this.list = list;\n\n this.onPageChange(1);\n });\n\n let baseUrl = \"wss://\" + window.location.hostname + (window.location.port ? ':' + window.location.port : '') + acp;\n\n this.notifier = webSocket(baseUrl + '/websocket/notify');\n this.notifier.subscribe(message => {\n if (message.type === 'PUBLISH_JOB_CHANGE') {\n this.onPageChange(this.page.pageNumber);\n }\n });\n }\n\n ngOnDestroy() {\n this.notifier.complete();\n }\n\n //isGeoObjectTypeRM(type: string): boolean {\n // return this.authService.isGeoObjectTypeRM(type);\n //}\n\n onDeleteMasterListVersion(version: MasterListVersion): void {\n this.bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true,\n });\n this.bsModalRef.content.message = this.localizeService.decode(\"confirm.modal.verify.delete\") + ' [' + version.forDate + ']';\n this.bsModalRef.content.submitText = this.localizeService.decode(\"modal.button.delete\");\n\n this.bsModalRef.content.onConfirm.subscribe(data => {\n this.service.deleteMasterListVersion(version.oid).then(response => {\n this.updateList();\n\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n });\n }\n\n updateList(): void {\n // update the list of versions. \n this.service.getMasterListHistory(this.oid, \"PUBLISHED\").then(list => {\n this.list = list;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onPublish(): void {\n this.message = null;\n\n this.service.publishMasterListVersions(this.list.oid).then((data: { job: string }) => {\n // Refresh the page\n this.onPageChange(this.page.pageNumber);\n\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onPageChange(pageNumber: number): void {\n if (this.list != null) {\n\n this.message = null;\n\n this.service.getPublishMasterListJobs(this.list.oid, this.page.pageSize, pageNumber, \"createDate\", true).then(response => {\n\n this.page = response;\n\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n\n this.updateList();\n }\n }\n\n onViewMetadata(): void {\n this.bsModalRef = this.modalService.show(PublishModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true,\n });\n this.bsModalRef.content.readonly = true;\n this.bsModalRef.content.master = this.list;\n this.bsModalRef.content.isNew = false;\n }\n\n\n onView(version: MasterListVersion): void {\n this.router.navigate(['/registry/master-list/', version.oid, true])\n }\n\n onPublishShapefile(version: MasterListVersion): void {\n\n this.service.publishShapefile(version.oid).then(() => {\n\n this.onPageChange(this.page.pageNumber);\n\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onExportToFhir(version: MasterListVersion): void {\n this.bsModalRef = this.modalService.show(ExportSystemModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true,\n });\n this.bsModalRef.content.onSystemSet.subscribe(systemId => {\n this.service.exportToFhir(version.oid, systemId).then(() => {\n\n this.onPageChange(this.page.pageNumber);\n\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n });\n }\n\n onDownloadShapefile(version: MasterListVersion): void {\n window.location.href = acp + '/master-list/download-shapefile?oid=' + version.oid;\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n
{{message}}
\n\n
\n
\n
\n
\n \n
\n
\n
\n
\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n
\n
\n \n {{formatDate(version.forDate)}}\n \n \n \n {{formatDate(version.publishDate)}}\n \n
\n
\n
\n\n\n
\n
\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n \n

    \n {{job.createDate}} \n {{job.author}} \n {{job.type}} \n {{job.status}} \n {{job.exception.message}} \n {{job.message}} \n

    \n
    \n
    \n
    0\" class=\"solid-table-footer\">\n \n
    \n
    \n
\n
\n
\n
\n","import { Component, OnInit, Input } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { MasterList, MasterListVersion } from \"@registry/model/registry\";\nimport { ErrorHandler, ConfirmModalComponent } from \"@shared/component\";\nimport { PublishModalComponent } from \"./publish-modal.component\";\n\nimport { RegistryService } from \"@registry/service\";\nimport { DateService } from \"@shared/service/date.service\";\nimport { LocalizationService } from \"@shared/service\";\n\n@Component({\n selector: \"master-list-history\",\n templateUrl: \"./master-list-history.component.html\",\n styleUrls: []\n})\nexport class MasterListHistoryComponent implements OnInit {\n\n message: string = null;\n list: MasterList = null;\n forDate: string = \"\";\n isForDateValid: boolean = true;\n\n @Input() oid: string;\n\n /*\n * Reference to the modal current showing\n */\n bsModalRef: BsModalRef;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public service: RegistryService, private router: Router, private modalService: BsModalService, private localizeService: LocalizationService,\n private dateService: DateService) { }\n\n ngOnInit(): void {\n this.service.getMasterListHistory(this.oid, \"EXPLORATORY\").then(list => {\n this.list = list;\n });\n }\n\n onPublish(): void {\n this.message = null;\n\n this.service.createMasterListVersion(this.list.oid, this.forDate).then(version => {\n this.list.versions.push(version);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onViewMetadata(): void {\n this.bsModalRef = this.modalService.show(PublishModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n this.bsModalRef.content.readonly = true;\n this.bsModalRef.content.master = this.list;\n this.bsModalRef.content.originalPublishStartDate = this.list.publishingStartDate;\n this.bsModalRef.content.isNew = false;\n }\n\n onView(version: MasterListVersion): void {\n this.router.navigate([\"/registry/master-list/\", version.oid, false]);\n }\n\n onDelete(version: MasterListVersion): void {\n this.bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n this.bsModalRef.content.message = this.localizeService.decode(\"confirm.modal.verify.delete\") + \" [\" + version.forDate + \"]\";\n this.bsModalRef.content.submitText = this.localizeService.decode(\"modal.button.delete\");\n\n this.bsModalRef.content.onConfirm.subscribe(data => {\n this.service.deleteMasterListVersion(version.oid).then(response => {\n this.list.versions = this.list.versions.filter((value, index, arr) => {\n return value.oid !== version.oid;\n });\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n });\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n
{{message}}
\n\n
\n\n
\n
\n
\n \n\n \n\n \n
\n
\n
\n
\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n
\n
\n \n {{formatDate(version.forDate)}}\n \n \n \n {{formatDate(version.createDate)}}\n \n
\n
\n
\n
\n","import { Component, OnInit } from \"@angular/core\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { MasterList } from \"@registry/model/registry\";\nimport { RegistryService } from \"@registry/service\";\nimport { PublishModalComponent } from \"./publish-modal.component\";\n\n@Component({\n\n selector: \"master-list-view\",\n templateUrl: \"./master-list-view.component.html\",\n styleUrls: [\"./master-list-view.component.css\"]\n})\nexport class MasterListViewComponent implements OnInit {\n\n content: string = \"\";\n list: MasterList = null;\n\n /*\n * Reference to the modal current showing\n */\n bsModalRef: BsModalRef;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: RegistryService, private modalService: BsModalService, private route: ActivatedRoute) { }\n\n ngOnInit(): void {\n const oid = this.route.snapshot.paramMap.get(\"oid\");\n\n if (oid != null) {\n this.content = \"PUB\";\n }\n\n this.service.getMasterList(oid).then(list => {\n this.list = list;\n\n if (list.read) {\n this.content = \"EXP\";\n }\n });\n }\n\n onViewMetadata(event: any): void {\n event.preventDefault();\n\n this.bsModalRef = this.modalService.show(PublishModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n this.bsModalRef.content.readonly = true;\n this.bsModalRef.content.master = this.list;\n this.bsModalRef.content.isNew = false;\n }\n\n renderContent(content: string): void {\n this.content = content;\n }\n\n}\n","
\n \n \n\n
\n\n\n
\n
\n\n
\n
\n

{{list.displayLabel.localizedValue}}

\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n \n \n
\n\n
\n \n \n
\n\n
\n
\n
\n
\n","import { Component, OnInit } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { interval } from \"rxjs\";\n\nimport { RegistryService, IOService } from \"@registry/service\";\nimport { ScheduledJob, ScheduledJobOverview, PaginationPage } from \"@registry/model/registry\";\n\nimport { ErrorHandler, ConfirmModalComponent } from \"@shared/component\";\nimport { LocalizationService, AuthService } from \"@shared/service\";\nimport { DateService } from \"@shared/service/date.service\";\nimport { ModalTypes } from \"@shared/model/modal\";\n\n@Component({\n selector: \"scheduled-jobs\",\n templateUrl: \"./scheduled-jobs.component.html\",\n styleUrls: [\"./scheduled-jobs.css\"]\n})\nexport class ScheduledJobsComponent implements OnInit {\n\n message: string = null;\n\n activeJobsPage: PaginationPage = {\n count: 0,\n pageNumber: 1,\n pageSize: 10,\n results: []\n };\n\n completeJobsPage: PaginationPage = {\n count: 0,\n pageNumber: 1,\n pageSize: 10,\n results: []\n };\n\n /*\n * Reference to the modal current showing\n */\n bsModalRef: BsModalRef;\n\n isAdmin: boolean;\n isMaintainer: boolean;\n isContributor: boolean;\n\n activeTimeCounter: number = 0;\n completeTimeCounter: number = 0;\n\n pollingData: any;\n\n isViewAllOpen: boolean = false;\n\n constructor(public service: RegistryService, private modalService: BsModalService, private router: Router, private dateService: DateService,\n private localizeService: LocalizationService, authService: AuthService, public ioService: IOService) {\n this.isAdmin = authService.isAdmin();\n this.isMaintainer = this.isAdmin || authService.isMaintainer();\n this.isContributor = this.isAdmin || this.isMaintainer || authService.isContributer();\n }\n\n ngOnInit(): void {\n this.onActiveJobsPageChange(1);\n\n this.pollingData = interval(1000).subscribe(() => {\n this.activeTimeCounter++;\n this.completeTimeCounter++;\n\n if (this.isViewAllOpen) {\n if (this.activeTimeCounter >= 4) {\n this.onActiveJobsPageChange(this.activeJobsPage.pageNumber);\n\n this.activeTimeCounter = 0;\n }\n if (this.completeTimeCounter >= 7) {\n this.onCompleteJobsPageChange(this.completeJobsPage.pageNumber);\n\n this.completeTimeCounter = 0;\n }\n } else {\n if (this.activeTimeCounter >= 2) {\n this.onActiveJobsPageChange(this.activeJobsPage.pageNumber);\n\n this.activeTimeCounter = 0;\n }\n }\n });\n }\n\n ngOnDestroy() {\n this.pollingData.unsubscribe();\n }\n\n formatJobStatus(job: ScheduledJobOverview) {\n if (job.status === \"FEEDBACK\") {\n return this.localizeService.decode(\"etl.JobStatus.FEEDBACK\");\n } else if (job.status === \"RUNNING\" || job.status === \"NEW\") {\n return this.localizeService.decode(\"etl.JobStatus.RUNNING\");\n } else if (job.status === \"QUEUED\") {\n return this.localizeService.decode(\"etl.JobStatus.QUEUED\");\n } else if (job.status === \"SUCCESS\") {\n return this.localizeService.decode(\"etl.JobStatus.SUCCESS\");\n } else if (job.status === \"CANCELED\") {\n return this.localizeService.decode(\"etl.JobStatus.CANCELED\");\n } else if (job.status === \"FAILURE\") {\n return this.localizeService.decode(\"etl.JobStatus.FAILURE\");\n } else {\n return this.localizeService.decode(\"etl.JobStatus.RUNNING\");\n }\n }\n\n formatStepConfig(page: PaginationPage): void {\n page.results.forEach(job => {\n let stepConfig = {\n steps: [\n { label: this.localizeService.decode(\"scheduler.step.fileImport\"), status: \"COMPLETE\" },\n\n {\n label: this.localizeService.decode(\"scheduler.step.staging\"),\n status: job.stage === \"NEW\" ? this.getJobStatus(job) : this.getCompletedStatus(job.stage, \"NEW\")\n },\n\n {\n label: this.localizeService.decode(\"scheduler.step.validation\"),\n status: job.stage === \"VALIDATE\" || job.stage === \"VALIDATION_RESOLVE\" ? this.getJobStatus(job) : this.getCompletedStatus(job.stage, \"VALIDATE\")\n },\n\n {\n label: this.localizeService.decode(\"scheduler.step.databaseImport\"),\n status: job.stage === \"IMPORT\" || job.stage === \"IMPORT_RESOLVE\" || job.stage === \"RESUME_IMPORT\" ? this.getJobStatus(job) : \"\"\n }\n ]\n };\n\n job = job as ScheduledJobOverview;\n job.stepConfig = stepConfig;\n });\n }\n\n getCompletedStatus(jobStage: string, targetStage: string): string {\n let order = [\"NEW\", \"VALIDATE\", \"VALIDATION_RESOLVE\", \"IMPORT\", \"IMPORT_RESOLVE\", \"RESUME_IMPORT\"];\n\n let jobPos = order.indexOf(jobStage);\n let targetPos = order.indexOf(targetStage);\n if (targetPos < jobPos) {\n return \"COMPLETE\";\n } else {\n return \"\";\n }\n }\n\n getJobStatus(job: ScheduledJob): string {\n if (job.status === \"QUEUED\" || job.status === \"RUNNING\") {\n return \"WORKING\";\n } else if (job.status === \"FEEDBACK\") {\n return \"STUCK\";\n }\n\n return \"\";\n }\n\n onViewAllCompleteJobs(): void {\n this.onCompleteJobsPageChange(1);\n\n this.isViewAllOpen = true;\n }\n\n onView(code: string): void {\n this.router.navigate([\"/registry/master-list-history/\", code]);\n }\n\n onActiveJobsPageChange(pageNumber: any): void {\n this.message = null;\n\n this.service.getScheduledJobs(this.activeJobsPage.pageSize, pageNumber, \"createDate\", false).then(response => {\n this.activeJobsPage = response;\n this.formatStepConfig(this.activeJobsPage);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onCompleteJobsPageChange(pageNumber: any): void {\n this.message = null;\n\n this.service.getCompletedScheduledJobs(this.completeJobsPage.pageSize, pageNumber, \"createDate\", false).then(response => {\n this.completeJobsPage = response;\n this.formatStepConfig(this.completeJobsPage);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onCancelScheduledJob(historyId: string, job: ScheduledJob): void {\n this.bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n\n this.bsModalRef.content.message = this.localizeService.decode(\"etl.import.cancel.modal.description\");\n this.bsModalRef.content.submitText = this.localizeService.decode(\"etl.import.cancel.modal.button\");\n\n this.bsModalRef.content.type = ModalTypes.danger;\n\n this.bsModalRef.content.onConfirm.subscribe(data => {\n this.ioService.cancelImport(job.configuration).then(response => {\n this.bsModalRef.hide();\n\n for (let i = 0; i < this.activeJobsPage.results.length; ++i) {\n let activeJob = this.activeJobsPage.results[i];\n\n if (activeJob.jobId === job.jobId) {\n this.activeJobsPage.results.splice(i, 1);\n break;\n }\n }\n\n this.onViewAllCompleteJobs();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n });\n }\n\n onResolveScheduledJob(historyId: string, job: ScheduledJob): void {\n this.bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n\n this.bsModalRef.content.message = this.localizeService.decode(\"etl.import.resume.modal.importDescription\");\n this.bsModalRef.content.submitText = this.localizeService.decode(\"etl.import.resume.modal.importButton\");\n\n this.bsModalRef.content.type = ModalTypes.danger;\n\n this.bsModalRef.content.onConfirm.subscribe(data => {\n this.service.resolveScheduledJob(historyId).then(response => {\n this.bsModalRef.hide();\n\n for (let i = 0; i < this.activeJobsPage.results.length; ++i) {\n let activeJob = this.activeJobsPage.results[i];\n\n if (activeJob.jobId === job.jobId) {\n this.activeJobsPage.results.splice(i, 1);\n break;\n }\n }\n\n this.onViewAllCompleteJobs();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n });\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n \n \n\n
\n
{{message}}
\n\n
\n

\n \n

\n
\n
\n
\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n
    \n \n
    \n
    \n \n

    \n \n {{job.fileName}}\n \n \n \n {{formatDate(job.createDate)}}\n \n \n \n {{formatJobStatus(job)}}\n \n

    \n\n \n\n
    \n
    \n\n
    \n \n \n \n \n \n
    \n
    \n
    0\" class=\"solid-table-footer\">\n \n
    \n
    \n\n
    \n\t \n\t \n\t \n\t \n\t \n\t \n \n \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n \n \n\t \n\t \n\t \n\t
    \n\t \n\t 0\" style=\"width:15%;border-bottom: none;\">\n\t \n\t 0\" style=\"width:15%;border-bottom: none;\">\n \n 0\" style=\"width:15%;border-bottom: none;\">\n \n 0\" style=\"width:15%;border-bottom: none;\">\n \n \n\t \n\t 0\" style=\"border-bottom: none; width:0%\">\n
    \n\t
    \n \n

    {{job.fileName}}

    \n\t
    \n\t
    \n\t

    {{formatJobStatus(job)}}

    \n\t
    \n

    {{job.importedRecords}}

    \n
    \n \n {{formatDate(job.createDate)}}\n \n \n \n {{formatDate(job.lastUpdateDate)}}\n \n \n\t \n\t \n\t
    \n\t\n\t
    0\" class=\"solid-table-footer\">\n \n\t
    \n
    \n
\n\n
\n
\n
\n
","import { Component, OnInit } from \"@angular/core\";\nimport { Router, ActivatedRoute } from \"@angular/router\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { webSocket, WebSocketSubject } from \"rxjs/webSocket\";\n\nimport { JobConflictModalComponent } from \"./conflict-widgets/job-conflict-modal.component\";\nimport { ReuploadModalComponent } from \"./conflict-widgets/reupload-modal.component\";\nimport { RegistryService, IOService } from \"@registry/service\";\nimport { DateService } from \"@shared/service/date.service\";\nimport { ScheduledJob } from \"@registry/model/registry\";\n\nimport { ErrorHandler, ConfirmModalComponent } from \"@shared/component\";\nimport { LocalizationService, AuthService } from \"@shared/service\";\nimport { ModalTypes } from \"@shared/model/modal\";\n\ndeclare let acp: any;\n\n@Component({\n selector: \"job\",\n templateUrl: \"./job.component.html\",\n styleUrls: [\"./scheduled-jobs.css\"]\n})\nexport class JobComponent implements OnInit {\n\n message: string = null;\n job: ScheduledJob;\n allSelected: boolean = false;\n historyId: string = \"\";\n\n page: any = {\n count: 0,\n pageNumber: 1,\n pageSize: 10,\n results: []\n };\n\n timeCounter: number = 0;\n\n /*\n * Reference to the modal current showing\n */\n bsModalRef: BsModalRef;\n\n isAdmin: boolean;\n isMaintainer: boolean;\n isContributor: boolean;\n\n isPolling: boolean = false;\n hasRowValidationProblem: boolean = false;\n\n notifier: WebSocketSubject<{ type: string, message: string }>;\n\n constructor(public service: RegistryService, private modalService: BsModalService,\n private router: Router, private route: ActivatedRoute, private dateService: DateService,\n private localizeService: LocalizationService, authService: AuthService, public ioService: IOService) {\n this.isAdmin = authService.isAdmin();\n this.isMaintainer = this.isAdmin || authService.isMaintainer();\n this.isContributor = this.isAdmin || this.isMaintainer || authService.isContributer();\n }\n\n ngOnInit(): void {\n this.historyId = this.route.snapshot.params[\"oid\"];\n\n this.onPageChange(1);\n\n let baseUrl = \"wss://\" + window.location.hostname + (window.location.port ? \":\" + window.location.port : \"\") + acp;\n\n this.notifier = webSocket(baseUrl + \"/websocket/notify\");\n this.notifier.subscribe(message => {\n if (message.type === \"IMPORT_JOB_CHANGE\") {\n this.onPageChange(this.page.pageNumber);\n }\n });\n }\n\n ngOnDestroy() {\n }\n\n formatAffectedRows(rows: string) {\n return rows.replace(/,/g, \", \");\n }\n\n formatValidationResolve(obj: any) {\n return JSON.stringify(obj);\n }\n\n onProblemResolved(problem: any): void {\n for (let i = 0; i < this.page.results.length; ++i) {\n let pageConflict = this.page.results[i];\n\n if (pageConflict.id === problem.id) {\n this.page.results.splice(i, 1);\n }\n }\n }\n\n getFriendlyProblemType(probType: string): string {\n if (probType === \"net.geoprism.registry.io.ParentCodeException\") {\n return this.localizeService.decode(\"scheduledjobs.job.problem.type.parent.lookup\");\n }\n\n if (probType === \"net.geoprism.registry.io.PostalCodeLocationException\") {\n return this.localizeService.decode(\"scheduledjobs.job.problem.type.postal.code.lookup\");\n }\n\n if (probType === \"net.geoprism.registry.io.AmbiguousParentException\") {\n return this.localizeService.decode(\"scheduledjobs.job.problem.type.multi.parent.lookup\");\n }\n\n if (probType === \"net.geoprism.registry.io.InvalidGeometryException\") {\n return this.localizeService.decode(\"scheduledjobs.job.problem.type.invalid.geom.lookup\");\n }\n\n if (probType === \"net.geoprism.registry.DataNotFoundException\") {\n return this.localizeService.decode(\"scheduledjobs.job.problem.type.datanotfound\");\n }\n \n if (probType === \"net.geoprism.registry.geoobject.ImportOutOfRangeException\") {\n return this.localizeService.decode(\"scheduledjobs.job.problem.type.importOutOfRange\");\n }\n\n if (\n probType === \"net.geoprism.registry.roles.CreateGeoObjectPermissionException\" ||\n probType === \"net.geoprism.registry.roles.WriteGeoObjectPermissionException\" ||\n probType === \"net.geoprism.registry.roles.DeleteGeoObjectPermissionException\" ||\n probType === \"net.geoprism.registry.roles.ReadGeoObjectPermissionException\"\n ) {\n return this.localizeService.decode(\"scheduledjobs.job.problem.type.permission\");\n }\n\n // if(probType === \"net.geoprism.registry.io.TermValueException\"){\n // return this.localizeService.decode( \"scheduledjobs.job.problem.type.postal.code.lookup\" );\n // }\n\n if (\n probType === \"com.runwaysdk.dataaccess.DuplicateDataException\" ||\n probType === \"net.geoprism.registry.DuplicateGeoObjectException\" ||\n probType === \"net.geoprism.registry.DuplicateGeoObjectCodeException\"\n ) {\n return this.localizeService.decode(\"scheduledjobs.job.problem.type.duplicate.data.lookup\");\n }\n\n return probType;\n }\n\n onEdit(problem: any): void {\n // this.router.navigate( ['/registry/master-list-history/', code] )\n\n this.bsModalRef = this.modalService.show(JobConflictModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n this.bsModalRef.content.problem = problem;\n this.bsModalRef.content.job = this.job;\n this.bsModalRef.content.onConflictAction.subscribe(data => {\n if (data.action === \"RESOLVED\") {\n this.onProblemResolved(data.data);\n }\n });\n }\n\n onPageChange(pageNumber: any): void {\n this.message = null;\n\n this.service.getScheduledJob(this.historyId, this.page.pageSize, pageNumber, true).then(response => {\n this.job = response;\n\n if (this.job.stage === \"IMPORT_RESOLVE\") {\n this.page = this.job.importErrors;\n } else if (this.job.stage === \"VALIDATION_RESOLVE\") {\n this.page = this.job.problems;\n\n for (let i = 0; i < this.page.results.length; ++i) {\n let problem = this.page.results[i];\n\n if (problem.type === \"RowValidationProblem\") {\n this.hasRowValidationProblem = true;\n }\n }\n }\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onViewAllActiveJobs(): void {\n\n }\n\n onViewAllCompleteJobs(): void {\n\n }\n\n toggleAll(): void {\n this.allSelected = !this.allSelected;\n\n this.job.importErrors.results.forEach(row => {\n row.selected = this.allSelected;\n });\n }\n\n onReuploadAndResume(historyId: string): void {\n this.bsModalRef = this.modalService.show(ReuploadModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n\n this.bsModalRef.content.job = this.job;\n\n this.bsModalRef.content.onConfirm.subscribe(data => {\n this.router.navigate([\"/registry/scheduled-jobs\"]);\n });\n }\n\n onResolveScheduledJob(historyId: string): void {\n if (this.page.results.length === 0) {\n this.service.resolveScheduledJob(historyId).then(response => {\n this.router.navigate([\"/registry/scheduled-jobs\"]);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n } else {\n this.bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n\n if (this.job.stage === \"VALIDATION_RESOLVE\") {\n this.bsModalRef.content.message = this.localizeService.decode(\"etl.import.resume.modal.validationDescription\");\n this.bsModalRef.content.submitText = this.localizeService.decode(\"etl.import.resume.modal.validationButton\");\n } else {\n this.bsModalRef.content.message = this.localizeService.decode(\"etl.import.resume.modal.importDescription\");\n this.bsModalRef.content.submitText = this.localizeService.decode(\"etl.import.resume.modal.importButton\");\n }\n\n this.bsModalRef.content.type = ModalTypes.danger;\n\n this.bsModalRef.content.onConfirm.subscribe(data => {\n this.service.resolveScheduledJob(historyId).then(response => {\n this.router.navigate([\"/registry/scheduled-jobs\"]);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n });\n }\n }\n\n onCancelScheduledJob(historyId: string): void {\n this.bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n\n this.bsModalRef.content.message = this.localizeService.decode(\"etl.import.cancel.modal.description\");\n this.bsModalRef.content.submitText = this.localizeService.decode(\"etl.import.cancel.modal.button\");\n\n this.bsModalRef.content.type = ModalTypes.danger;\n\n this.bsModalRef.content.onConfirm.subscribe(data => {\n this.ioService.cancelImport(this.job.configuration).then(response => {\n // this.bsModalRef.hide()\n this.router.navigate([\"/registry/scheduled-jobs\"]);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n });\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n \n \n\n
\n
{{message}}
\n\n
\n

\n \n

\n
\n
\n
\n
\n\n \n

\n \n {{job.fileName}}\n \n \n \n {{job.author}}\n \n \n \n \n {{formatDate(job.createDate)}}\n \n \n

\n\n
\n
\n
\n
\n\n
{{job.importedRecords}} \n \n {{job.workTotal}} \n \n
\n
{{job.workTotal - job.importedRecords}}
\n\n
\n
\n
\n
\n \n \n \n \n
\n \n
\n \n \n \n \n
\n \n
0 && !hasRowValidationProblem\" class=\"button-holder\" style=\"display:block; margin:10px;text-align: right;\">\n \n
\n \n
\n \n
\n \n \n
\n
\n
0\" class=\"row\">\n
\n \n
    \n \n \n \n \n\t \n\t \n\t \n\t \n\t \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n\n \n\t \n\t \n\t \n\t \n \n\t \n\t \n \n
    \n\t \n\t \n \n\t \n \n \n\t \n\t
    \n \n \n \n \n \n \n \n
    \n

    {{getFriendlyProblemType(row.exception.type)}}

    \n
    \n

    {{row.exception.message}}

    \n
    \n

    {{row.rowNum}}

    \n
    \n \n
    \n\t

    {{row.type}}

    \n\t
    \n

    {{row.exception.message}}

    \n

    {{row.label}}

    \n
    \n

    {{formatAffectedRows(row.affectedRows)}}

    \n
    \n\t \n\t
    \n
    \n
    0\" class=\"solid-table-footer\">\n \n
    \n
    \n
\n
\n
\n
\n
","import { Component, OnInit } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Subject } from \"rxjs\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { ScheduledJobOverview } from \"@registry/model/registry\";\n\nimport { RegistryService, IOService } from \"@registry/service\";\n\nimport { ErrorHandler } from \"@shared/component\";\nimport { LocalizationService } from \"@shared/service\";\n\n@Component({\n selector: \"job-conflict-modal\",\n templateUrl: \"./job-conflict-modal.component.html\",\n styleUrls: []\n})\nexport class JobConflictModalComponent implements OnInit {\n\n message: string = null;\n problem: any;\n job: ScheduledJobOverview;\n\n /*\n * Observable subject for submission. Called when an update is successful\n */\n onConflictAction: Subject;\n\n readonly: boolean = false;\n edit: boolean = false;\n\n constructor(private service: RegistryService, private iService: IOService, private lService: LocalizationService, public bsModalRef: BsModalRef) {\n this.onConflictAction = new Subject();\n }\n\n ngOnInit(): void {\n\n }\n\n onProblemResolvedListener(problem: any): void {\n this.onConflictAction.next({ action: \"RESOLVED\", data: problem });\n }\n\n onCancel(): void {\n this.bsModalRef.hide();\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n
{{message}}
\n\n
\n

\n \n

\n
\n \n
\n\n
\n \n
\n \n
\n
\n \n \n \n
\n \n
\n \n
\n
\n \n
\n
\n
\n\n
\n
\n \n
","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\nimport { BsModalRef, BsModalService } from \"ngx-bootstrap/modal\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { ScheduledJob, ImportError } from \"@registry/model/registry\";\n\nimport { GeoObjectEditorComponent } from \"../../geoobject-editor/geoobject-editor.component\";\n\nimport { RegistryService, IOService } from \"@registry/service\";\nimport { DateService } from \"@shared/service/date.service\";\nimport { ErrorHandler } from \"@shared/component\";\nimport { LocalizationService } from \"@shared/service\";\n\n@Component({\n selector: \"import-problem-widget\",\n templateUrl: \"./import-problem-widget.component.html\",\n styleUrls: []\n})\nexport class ImportProblemWidgetComponent implements OnInit {\n\n message: string = null;\n @Input() problem: ImportError;\n @Input() job: ScheduledJob;\n @Output() public onProblemResolved = new EventEmitter();\n\n readonly: boolean = false;\n edit: boolean = false;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: RegistryService, private iService: IOService, private dateService: DateService,\n private lService: LocalizationService, public bsModalRef: BsModalRef, private modalService: BsModalService\n ) { }\n\n ngOnInit(): void {\n\n }\n\n onEditGeoObject(): void {\n let editModal = this.modalService.show(GeoObjectEditorComponent, {\n backdrop: true,\n ignoreBackdropClick: true\n });\n\n editModal.content.configureFromImportError(this.problem, this.job.historyId, this.job.configuration.startDate, true);\n editModal.content.setMasterListId(null);\n editModal.content.setOnSuccessCallback(() => {\n this.onProblemResolved.emit(this.problem);\n this.bsModalRef.hide();\n });\n }\n\n getFriendlyProblemType(probType: string): string {\n if (probType === \"net.geoprism.registry.io.ParentCodeException\") {\n return this.lService.decode(\"scheduledjobs.job.problem.type.parent.lookup\");\n }\n\n if (probType === \"net.geoprism.registry.io.PostalCodeLocationException\") {\n return this.lService.decode(\"scheduledjobs.job.problem.type.postal.code.lookup\");\n }\n\n if (probType === \"net.geoprism.registry.io.AmbiguousParentException\") {\n return this.lService.decode(\"scheduledjobs.job.problem.type.multi.parent.lookup\");\n }\n\n if (probType === \"net.geoprism.registry.io.InvalidGeometryException\") {\n return this.lService.decode(\"scheduledjobs.job.problem.type.invalid.geom.lookup\");\n }\n\n if (probType === \"net.geoprism.registry.DataNotFoundException\") {\n return this.lService.decode(\"scheduledjobs.job.problem.type.datanotfound\");\n }\n\n if (\n probType === \"net.geoprism.registry.roles.CreateGeoObjectPermissionException\" ||\n probType === \"net.geoprism.registry.roles.WriteGeoObjectPermissionException\" ||\n probType === \"net.geoprism.registry.roles.DeleteGeoObjectPermissionException\" ||\n probType === \"net.geoprism.registry.roles.ReadGeoObjectPermissionException\"\n ) {\n return this.lService.decode(\"scheduledjobs.job.problem.type.permission\");\n }\n\n // if(probType === \"net.geoprism.registry.io.TermValueException\"){\n // return this.localizeService.decode( \"scheduledjobs.job.problem.type.postal.code.lookup\" );\n // }\n if (\n probType === \"com.runwaysdk.dataaccess.DuplicateDataException\" ||\n probType === \"net.geoprism.registry.DuplicateGeoObjectException\" ||\n probType === \"net.geoprism.registry.DuplicateGeoObjectCodeException\"\n ) {\n return this.lService.decode(\"scheduledjobs.job.problem.type.duplicate.data.lookup\");\n }\n\n return probType;\n }\n\n onSubmit(): void {\n\n }\n\n onCancel(): void {\n this.bsModalRef.hide();\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n
{{message}}
\n\n\n \n\n \n
\n
\n
\n\n \n

\n \n {{job.fileName}}\n \n \n : {{job.author}}\n \n \n :\n \n {{formatDate(job.createDate)}}\n \n \n

\n\n
\n
\n
\n
\n\n
\n
\n\n
\n
\n
\n

\n

{{getFriendlyProblemType(problem.exception.type)}}

\n\n

\n

{{problem.exception.message}}

\n\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n\n
","import { Component, OnInit, Input, EventEmitter, Output } from \"@angular/core\";\nimport { BsModalRef, BsModalService } from \"ngx-bootstrap/modal\";\n\nimport { Observable } from \"rxjs\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { TypeaheadMatch } from \"ngx-bootstrap/typeahead\";\n\nimport { ScheduledJob } from \"@registry/model/registry\";\nimport { RegistryService, IOService } from \"@registry/service\";\nimport { DateService } from \"@shared/service/date.service\";\n\nimport { ErrorHandler } from \"@shared/component\";\nimport { LocalizationService } from \"@shared/service\";\n\n@Component({\n selector: \"parent-reference-problem-widget\",\n templateUrl: \"./parent-reference-problem-widget.component.html\",\n styleUrls: []\n})\nexport class ParentReferenceProblemWidgetComponent implements OnInit {\n\n message: string = null;\n @Input() problem: any;\n @Input() job: ScheduledJob;\n @Output() public onProblemResolved = new EventEmitter();\n\n searchLabel: string;\n\n /*\n * Observable subject for submission. Called when an update is successful\n */\n // onConflictAction: Subject;\n\n readonly: boolean = false;\n edit: boolean = false;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: RegistryService, private iService: IOService, private dateService: DateService,\n private lService: LocalizationService, public bsModalRef: BsModalRef, private modalService: BsModalService\n ) { }\n\n ngOnInit(): void {\n // this.onConflictAction = new Subject();\n\n // this.searchLabel = this.problem.label;\n\n this.problem.parent = null;\n this.searchLabel = \"\";\n }\n\n getString(conflict: any): string {\n return JSON.stringify(conflict);\n }\n\n getValidationProblemDisplayLabel(conflict: any): string {\n return conflict.type;\n }\n\n getTypeAheadObservable(typeCode: string, conflict: any): Observable {\n let parentCode = null;\n let hierarchyCode = this.job.configuration.hierarchy;\n\n return Observable.create((observer: any) => {\n this.service.getGeoObjectSuggestions(this.searchLabel, typeCode, parentCode, null, hierarchyCode, this.job.startDate, this.job.endDate).then(results => {\n observer.next(results);\n });\n });\n }\n\n typeaheadOnSelect(e: TypeaheadMatch, conflict: any): void {\n this.service.getParentGeoObjects(e.item.uid, conflict.typeCode, [], false, this.job.startDate).then(ancestors => {\n conflict.parent = ancestors.geoObject;\n this.searchLabel = ancestors.geoObject.properties.displayLabel.localizedValue;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onIgnore(): void {\n let cfg = {\n resolution: \"IGNORE\",\n validationProblemId: this.problem.id\n };\n\n this.service.submitValidationResolve(cfg).then(response => {\n this.onProblemResolved.emit(this.problem);\n\n this.bsModalRef.hide();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onCreateSynonym(): void {\n let cfg = {\n validationProblemId: this.problem.id,\n resolution: \"SYNONYM\",\n code: this.problem.parent.properties.code,\n typeCode: this.problem.parent.properties.type,\n label: this.problem.label\n };\n\n this.service.submitValidationResolve(cfg).then(response => {\n this.onProblemResolved.emit(this.problem);\n\n this.bsModalRef.hide();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onCancel(): void {\n this.bsModalRef.hide();\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n
{{message}}
\n\n\n \n\n \n
\n
\n
\n\n \n

\n \n {{job.fileName}}\n \n \n : {{job.author}}\n \n \n : \n \n {{formatDate(job.createDate)}}\n \n \n

\n\n
\n
\n
\n
\n\n
\n
\n\n
\n
\n

\n

{{getValidationProblemDisplayLabel(problem)}}

\n\n

\n

\n \n

\n\n

\n

\n \n

\n
\n
\n\t
\n\t
\n\t\t \n\t
\n\t
\n\t
0\" style=\"margin-top:10px;\">\n\t\t
    \n\t\t\t\t\t\t\t\t
  1. {{con.label}} ({{con.type}})
  2. \n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t
\n\t
\n\t
\n\t
\n\t \n\t
\n\t
\n\t {{problem.label}}\n\t
\n\t
\n\t
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n
\n
\n\n
","import { Component, OnInit, Input, EventEmitter, Output } from \"@angular/core\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { BsModalRef, BsModalService } from \"ngx-bootstrap/modal\";\nimport { Observable } from \"rxjs\";\nimport { TypeaheadMatch } from \"ngx-bootstrap/typeahead\";\n\nimport { ScheduledJob } from \"@registry/model/registry\";\nimport { RegistryService, IOService } from \"@registry/service\";\nimport { DateService } from \"@shared/service/date.service\";\n\nimport { LocalizationService } from \"@shared/service\";\nimport { ErrorHandler } from \"@shared/component\";\n\n@Component({\n selector: \"term-reference-problem-widget\",\n templateUrl: \"./term-reference-problem-widget.component.html\",\n styleUrls: []\n})\nexport class TermReferenceProblemWidgetComponent implements OnInit {\n\n message: string = null;\n @Input() problem: any;\n @Input() job: ScheduledJob;\n @Output() public onProblemResolved = new EventEmitter();\n\n termId: string = null;\n searchLabel: string;\n\n readonly: boolean = false;\n edit: boolean = false;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: RegistryService, private iService: IOService, private dateService: DateService,\n private lService: LocalizationService, public bsModalRef: BsModalRef, private modalService: BsModalService\n ) { }\n\n ngOnInit(): void {\n this.problem.parent = null;\n this.searchLabel = \"\";\n }\n\n getValidationProblemDisplayLabel(conflict: any): string {\n return conflict.type;\n }\n\n getTypeAheadObservable(conflict: any): Observable {\n return Observable.create((observer: any) => {\n this.iService.getTermSuggestions(conflict.mdAttributeId, this.searchLabel, \"20\").then(results => {\n observer.next(results);\n });\n });\n }\n\n typeaheadOnSelect(e: TypeaheadMatch): void {\n this.termId = e.item.value;\n }\n\n onIgnore(): void {\n let cfg = {\n resolution: \"IGNORE\",\n validationProblemId: this.problem.id\n };\n\n this.service.submitValidationResolve(cfg).then(response => {\n this.onProblemResolved.emit(this.problem);\n\n this.bsModalRef.hide();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onCreateSynonym(): void {\n let cfg = {\n validationProblemId: this.problem.id,\n resolution: \"SYNONYM\",\n classifierId: this.termId,\n label: this.problem.label\n };\n\n this.service.submitValidationResolve(cfg).then(response => {\n this.onProblemResolved.emit(this.problem);\n\n this.bsModalRef.hide();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onCancel(): void {\n this.bsModalRef.hide();\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n
{{message}}
\n\n\n \n\n \n
\n
\n
\n\n \n

\n \n {{job.fileName}}\n \n \n : {{job.author}}\n \n \n : \n \n {{formatDate(job.createDate)}}\n \n \n

\n\n
\n
\n
\n
\n\n
\n
\n\n
\n
\n

\n

{{getValidationProblemDisplayLabel(problem)}}

\n\n

\n

\n \n

\n\n

\n

\n
\n
\n\t
\n
\n \n
\n
\n {{problem.attributeLabel}}\n
\n
\n\t
\n\t
\n\t \n\t
\n\t
\n\t {{problem.label}}\n\t
\n\t
\n\t
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n
\n
\n\n
","import { Component, OnInit, Input, EventEmitter, Output } from \"@angular/core\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { Observable } from \"rxjs\";\n\nimport { TypeaheadMatch } from \"ngx-bootstrap/typeahead\";\n\nimport { ScheduledJob } from \"@registry/model/registry\";\nimport { RegistryService, IOService } from \"@registry/service\";\nimport { DateService } from \"@shared/service/date.service\";\n\nimport { ErrorHandler } from \"@shared/component\";\nimport { LocalizationService } from \"@shared/service\";\n\n@Component({\n selector: \"row-validation-problem-widget\",\n templateUrl: \"./row-validation-problem-widget.component.html\",\n styleUrls: []\n})\nexport class RowValidationProblemWidgetComponent implements OnInit {\n\n message: string = null;\n @Input() problem: any;\n @Input() job: ScheduledJob;\n @Output() public onProblemResolved = new EventEmitter();\n\n searchLabel: string;\n\n /*\n * Observable subject for submission. Called when an update is successful\n */\n // onConflictAction: Subject;\n\n readonly: boolean = false;\n edit: boolean = false;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: RegistryService, private iService: IOService, private dateService: DateService,\n private lService: LocalizationService, public bsModalRef: BsModalRef\n ) { }\n\n ngOnInit(): void {\n // this.onConflictAction = new Subject();\n\n // this.searchLabel = this.problem.label;\n\n this.problem.parent = null;\n this.searchLabel = \"\";\n }\n\n getString(conflict: any): string {\n return JSON.stringify(conflict);\n }\n\n getValidationProblemDisplayLabel(conflict: any): string {\n return conflict.type;\n }\n\n getTypeAheadObservable(typeCode: string, conflict: any): Observable {\n let parentCode = null;\n let hierarchyCode = this.job.configuration.hierarchy;\n\n return Observable.create((observer: any) => {\n this.service.getGeoObjectSuggestions(this.searchLabel, typeCode, parentCode, null, hierarchyCode, this.job.startDate, this.job.endDate).then(results => {\n observer.next(results);\n });\n });\n }\n\n typeaheadOnSelect(e: TypeaheadMatch, conflict: any): void {\n this.service.getParentGeoObjects(e.item.uid, conflict.typeCode, [], false, this.job.startDate).then(ancestors => {\n conflict.parent = ancestors.geoObject;\n this.searchLabel = ancestors.geoObject.properties.displayLabel.localizedValue;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onIgnore(): void {\n let cfg = {\n resolution: \"IGNORE\",\n validationProblemId: this.problem.id\n };\n\n this.service.submitValidationResolve(cfg).then(response => {\n this.onProblemResolved.emit(this.problem);\n\n this.bsModalRef.hide();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n formatAffectedRows(rows: string) {\n return rows.replace(/,/g, \", \");\n }\n\n onCreateSynonym(): void {\n let cfg = {\n validationProblemId: this.problem.id,\n resolution: \"SYNONYM\",\n code: this.problem.parent.properties.code,\n typeCode: this.problem.parent.properties.type,\n label: this.problem.label\n };\n\n this.service.submitValidationResolve(cfg).then(response => {\n this.onProblemResolved.emit(this.problem);\n\n this.bsModalRef.hide();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n onCancel(): void {\n this.bsModalRef.hide();\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n
{{message}}
\n\n\n \n\n \n
\n
\n
\n\n \n

\n \n {{job.fileName}}\n \n \n : {{job.author}}\n \n \n : \n \n {{formatDate(job.createDate)}}\n \n \n

\n\n
\n
\n
\n
\n\n
\n
\n\n
\n
\n

\n

{{getValidationProblemDisplayLabel(problem)}}

\n\n

\n

\n\n

\n

\n
\n
\n\t
\n\t
\n\t\t \n\t
\n\t
\n {{formatAffectedRows(problem.affectedRows)}}\n
\n\t
\n\t
\n\t
\n\t \n\t
\n\t
\n\t {{problem.exception.message}}\n\t
\n\t
\n
\n
\n
\n
\n\n
","import { Component, Input, ViewChild, ElementRef } from '@angular/core';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { Subject } from 'rxjs';\nimport { FileUploader, FileUploaderOptions } from 'ng2-file-upload';\n\nimport { ModalTypes } from '@shared/model/modal';\nimport { LocalizationService, EventService } from '@shared/service';\nimport { ErrorHandler } from '@shared/component';\n\nimport { ScheduledJob } from '@registry/model/registry';\n\ndeclare var acp: any;\n\n@Component( {\n selector: 'reupload-modal',\n templateUrl: './reupload-modal.component.html',\n styleUrls: []\n} )\nexport class ReuploadModalComponent {\n @Input() title: string = this.localizeService.decode(\"reuploadmodal.title\");\n\n @Input() message: string = this.localizeService.decode(\"reuploadmodal.message\");\n \n @Input() data: any;\n \n @Input() submitText: string = this.localizeService.decode(\"reuploadmodal.import\");\n \n @Input() cancelText: string = this.localizeService.decode(\"modal.button.cancel\");\n \n @Input() type: ModalTypes = ModalTypes.warning;\n \n @Input() job: ScheduledJob;\n \n @ViewChild( 'myFile' )\n fileRef: ElementRef;\n \n /*\n * File uploader\n */\n uploader: FileUploader;\n \n errorMessage: string;\n \n /*\n * Called on confirm\n */\n public onConfirm: Subject;\n \n constructor( public bsModalRef: BsModalRef, private localizeService: LocalizationService, private eventService: EventService ) { }\n \n ngOnInit(): void {\n this.onConfirm = new Subject();\n \n let options: FileUploaderOptions = {\n queueLimit: 1,\n removeAfterUpload: true,\n url: acp + '/etl/reimport'\n };\n \n this.uploader = new FileUploader( options );\n this.uploader.onBuildItemForm = ( fileItem: any, form: any ) => {\n form.append( 'json', JSON.stringify(this.job.configuration) );\n };\n this.uploader.onBeforeUploadItem = ( fileItem: any ) => {\n this.eventService.start();\n };\n this.uploader.onCompleteItem = ( item: any, response: any, status: any, headers: any ) => {\n this.fileRef.nativeElement.value = \"\";\n this.eventService.complete();\n };\n this.uploader.onSuccessItem = ( item: any, response: string, status: number, headers: any ) => {\n this.onConfirm.next( this.data );\n this.bsModalRef.hide();\n };\n this.uploader.onErrorItem = ( item: any, response: string, status: number, headers: any ) => {\n this.error( JSON.parse( response ) );\n }\n }\n \n toString(data: any): string\n {\n return JSON.stringify(data);\n }\n \n confirm(): void {\n if ( this.uploader.queue != null && this.uploader.queue.length > 0 ) {\n this.uploader.uploadAll();\n }\n else {\n this.error( { message: this.localizeService.decode( 'io.missing.file' ), error: {} } );\n }\n }\n \n public error( err: any ): void {\n this.errorMessage = ErrorHandler.getMessageFromError(err);\n }\n}\n","
\n\n
{{errorMessage}}
\n\n
\n

{{title}}

\n
\n\n
{{message}}
\n\n
\n
\n \n
\n \n \n
\n
\n\n
\n
\n \n \n
\n
\n
\n
","import { Component, OnInit, Input } from \"@angular/core\";\nimport { DatePipe } from \"@angular/common\";\n\nimport { TaskService } from \"@registry/service\";\nimport { DateService } from \"@shared/service/date.service\";\nimport { GeoObjectType, PaginationPage } from \"@registry/model/registry\";\n\nimport { LocalizationService } from \"@shared/service\";\n\n@Component({\n selector: \"task-viewer\",\n templateUrl: \"./task-viewer.component.html\",\n styleUrls: [\"./task-viewer.component.css\"],\n providers: [DatePipe]\n})\n\nexport class TaskViewerComponent implements OnInit {\n\n @Input() geoObjectType: GeoObjectType;\n\n inProgressTasks: PaginationPage = {\n count: 0,\n pageNumber: 1,\n pageSize: 10,\n results: []\n };\n\n completedTasks: PaginationPage = {\n count: 0,\n pageNumber: 1,\n pageSize: 10,\n results: []\n };\n\n isViewAllOpen: boolean = false;\n\n activeTimeCounter: number = 0;\n completeTimeCounter: number = 0;\n\n pollingData: any;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private taskService: TaskService, private localizeService: LocalizationService, private dateService: DateService) { }\n\n ngOnInit(): void {\n this.onInProgressTasksPageChange(1);\n }\n\n onInProgressTasksPageChange(pageNumber: any): void {\n this.taskService.getMyTasks(pageNumber, this.inProgressTasks.pageSize, \"UNRESOLVED\").then(page => {\n this.inProgressTasks = page;\n });\n }\n\n onCompletedTasksPageChange(pageNumber: any): void {\n this.taskService.getMyTasks(pageNumber, this.completedTasks.pageSize, \"RESOLVED\").then(page => {\n this.completedTasks = page;\n });\n }\n\n onCompleteTask(task: any): void {\n // this.isViewAllOpen = true;\n\n this.taskService.completeTask(task.id).then(() => {\n const index = this.inProgressTasks.results.findIndex(t => t.id === task.id);\n\n if (index !== -1) {\n this.inProgressTasks.results.splice(index, 1);\n }\n\n if(this.isViewAllOpen) {\n this.onCompletedTasksPageChange(this.completedTasks.pageNumber);\n }\n });\n }\n\n onMoveTaskToInProgress(task: any): void {\n this.isViewAllOpen = true;\n\n this.taskService.setTaskStatus(task.id, \"UNRESOLVED\").then(() => {\n const index = this.completedTasks.results.findIndex(t => t.id === task.id);\n\n if (index !== -1) {\n this.completedTasks.results.splice(index, 1);\n }\n\n this.completedTasks.results.splice(index, 1);\n this.inProgressTasks.results.push(task);\n });\n }\n\n onToggleCompletedTasks(): void {\n this.isViewAllOpen = !this.isViewAllOpen;\n\n if (this.isViewAllOpen) {\n this.onCompletedTasksPageChange(1);\n }\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n}\n","
\n \n\n
\n\n \n\n

\n \n

\n
\n\n
0\">\n
\n
\n \n
\n

{{task.title}}

\n
\n\n
\n
\n
\n

{{task.msg}}

\n \n \n {{formatDate(task.createDate)}}\n \n
\n
\n \n\n \n
\n
\n
\n
\n
0\" class=\"solid-table-footer\">\n \n \n
\n
\n
\n
\n\n\n
\n

\n \n

\n \n
\n
\n\n
\n
\n
0\">\n \n
\n

{{task.title}}

\n
\n\n
\n
\n
\n

{{task.msg}}

\n \n \n {{formatDate(task.createDate)}}\n \n \n \n {{formatDate(task.completedDate)}}\n \n
\n
\n\n \n \n
\n
\n
\n
\n
0\" class=\"solid-table-footer\">\n \n \n
\n
\n
\n

\n \n

\n
\n
\n
\n\n\n
\n","import { Component, OnInit, Input, OnDestroy, EventEmitter, Output } from '@angular/core';\nimport { Observable, Subject, Subscription } from 'rxjs';\nimport { HttpErrorResponse } from '@angular/common/http';\n\nimport { SynchronizationConfig, MasterList, MasterListView } from '@registry/model/registry';\nimport { RegistryService, SynchronizationConfigService } from '@registry/service';\n\ninterface FhirSyncLevel {\n masterListId: string;\n versionId: string;\n level: number;\n}\n\n@Component({\n selector: 'fhir-export-synchronization-config',\n templateUrl: './fhir-export-synchronization-config.component.html',\n styleUrls: []\n})\nexport class FhirExportSynchronizationConfigComponent implements OnInit, OnDestroy {\n message: string = null;\n\n @Input() config: SynchronizationConfig;\n @Input() fieldChange: Subject;\n @Output() onError = new EventEmitter();\n\n subscription: Subscription = null;\n versions: { [key: string]: MasterList } = {};\n implementations: { className: string, label: string }[] = [];\n lists: MasterListView[] = [];\n\n constructor(private service: SynchronizationConfigService, private rService: RegistryService) { }\n\n ngOnInit(): void {\n\n this.reset();\n\n this.subscription = this.fieldChange.subscribe((field: string) => {\n if (field === 'organization' || field === 'system') {\n this.reset();\n }\n });\n\n this.service.getFhirExportImplementations().then(implementations => {\n this.implementations = implementations;\n });\n }\n\n ngOnDestroy(): void {\n\n if (this.subscription != null) {\n this.subscription.unsubscribe();\n }\n }\n\n reset(): void {\n\n if (this.config.configuration == null) {\n this.config.configuration = {\n levels: [],\n hierarchy: null\n }\n }\n\n if (this.config.configuration.levels != null) {\n for (var i = 0; i < this.config.configuration.levels.length; ++i) {\n var level = this.config.configuration.levels[i];\n\n // Get version options\n this.onSelectMasterList(level);\n }\n }\n else {\n this.config.configuration.levels = [];\n }\n\n // Get \n this.rService.getMasterListsByOrg().then(response => {\n\n this.lists = [];\n\n response.orgs.forEach(org => {\n org.lists.forEach(view => {\n if (view.read) {\n this.lists.push(view);\n }\n });\n })\n });\n }\n\n onSelectMasterList(level: FhirSyncLevel): void {\n\n if (level.masterListId != null) {\n\n this.rService.getMasterListHistory(level.masterListId, 'PUBLISHED').then(list => {\n this.versions[level.masterListId] = list;\n });\n }\n else {\n this.versions[level.masterListId] = null;\n }\n }\n\n addLevel(): void {\n var level = {\n masterListId: null,\n versionId: null,\n level: this.config.configuration.levels.length,\n };\n\n this.config.configuration.levels.push(level);\n }\n\n removeLevel(i: number): void {\n this.config.configuration.levels.splice(i, 1);\n\n // Reorder the level\n if (this.config.configuration != null && this.config.configuration.levels != null) {\n for (var i = 0; i < this.config.configuration.levels.length; ++i) {\n this.config.configuration.levels[i].level = i;\n }\n }\n }\n\n error(err: HttpErrorResponse): void {\n this.onError.emit(err);\n }\n\n}\n","
\n
\n \n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n
\n\n
\n
\n
","import { Component, OnInit, Input, OnDestroy, Output, EventEmitter } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { SynchronizationConfig, OrgSyncInfo, GeoObjectType } from \"@registry/model/registry\";\nimport { SynchronizationConfigService } from \"@registry/service\";\nimport { AttributeConfigInfo, DHIS2AttributeMapping, SyncLevel } from \"@registry/model/sync\";\n\nlet DEFAULT_MAPPING_STRATEGY = \"net.geoprism.registry.etl.DHIS2AttributeMapping\";\n\nexport interface GOTAttributeConfig {\n geoObjectTypeCode?: string;\n mappings: DHIS2AttributeMapping[];\n attrConfigInfos: AttributeConfigInfo[];\n}\nexport interface LevelRow {\n isAttributeEditor: boolean;\n\n level?: SyncLevel;\n levelNum?: number;\n\n attrCfg?: GOTAttributeConfig;\n}\n\n@Component({\n\n selector: \"dhis2-synchronization-config\",\n templateUrl: \"./dhis2-synchronization-config.component.html\",\n styleUrls: []\n})\nexport class Dhis2SynchronizationConfigComponent implements OnInit, OnDestroy {\n\n message: string = null;\n\n @Input() config: SynchronizationConfig;\n @Input() cOrg: OrgSyncInfo = null;\n\n @Input() fieldChange: Subject;\n @Output() onError = new EventEmitter();\n\n organizations: OrgSyncInfo[] = [];\n\n types: GeoObjectType[] = [];\n\n levelRows: LevelRow[] = [];\n\n orgUnitGroups: any[] = [];\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: SynchronizationConfigService) { }\n\n ngOnInit(): void {\n // Get the types\n // this.registryService.getGeoObjectTypes(null, [this.config.hierarchy]).then(types => {\n // this.types = types;\n // });\n\n if (this.config.configuration == null) {\n this.config.configuration = {\n levels: [],\n hierarchyCode: null\n }\n }\n\n this.levelRows = [];\n\n if (this.config.configuration.levels != null) {\n for (var i = 0; i < this.config.configuration.levels.length; ++i) {\n var level = this.config.configuration.levels[i];\n\n var levelRow: LevelRow = { level: level, levelNum: i, isAttributeEditor: false };\n\n this.levelRows.push(levelRow);\n }\n } else {\n this.config.configuration.levels = [];\n }\n\n if (this.config.configuration.hierarchyCode != null) {\n this.service.getConfigForES(this.config.system, this.config.configuration.hierarchyCode).then(esConfig => {\n this.types = esConfig.types;\n this.orgUnitGroups = esConfig.orgUnitGroups;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n this.fieldChange.subscribe(() => {\n this.clearMappingData();\n });\n }\n\n ngOnDestroy(): void {\n this.fieldChange.unsubscribe();\n }\n\n onChangeHierarchy(): void {\n this.clearMappingData();\n }\n\n buildDefaultMappings(): DHIS2AttributeMapping[] {\n return [\n {\n attributeMappingStrategy: DEFAULT_MAPPING_STRATEGY,\n isOrgUnitGroup: false,\n cgrAttrName: \"displayLabel\",\n externalId: null,\n dhis2Id: \"name\",\n dhis2AttrName: \"name\"\n },\n {\n attributeMappingStrategy: DEFAULT_MAPPING_STRATEGY,\n isOrgUnitGroup: false,\n cgrAttrName: \"displayLabel\",\n externalId: null,\n dhis2Id: \"shortName\",\n dhis2AttrName: \"shortName\"\n },\n {\n attributeMappingStrategy: DEFAULT_MAPPING_STRATEGY,\n isOrgUnitGroup: false,\n cgrAttrName: \"code\",\n dhis2Id: \"code\",\n externalId: null,\n dhis2AttrName: \"code\"\n },\n {\n attributeMappingStrategy: DEFAULT_MAPPING_STRATEGY,\n isOrgUnitGroup: false,\n cgrAttrName: \"createDate\",\n externalId: null,\n dhis2Id: \"openingDate\",\n dhis2AttrName: \"openingDate\"\n }\n /*\n {\n attributeMappingStrategy: DEFAULT_MAPPING_STRATEGY,\n isOrgUnitGroup: false,\n cgrAttrName: \"createDate\",\n externalId: null,\n dhis2Id: \"created\",\n dhis2AttrName: \"created\"\n },\n {\n attributeMappingStrategy: DEFAULT_MAPPING_STRATEGY,\n isOrgUnitGroup: false,\n cgrAttrName: \"lastUpdateDate\",\n externalId: null,\n dhis2Id: \"lastUpdated\",\n dhis2AttrName: \"lastUpdated\"\n },\n */\n ];\n }\n\n clearMappingData(): void {\n this.types = [];\n this.levelRows = [];\n this.config.configuration[\"levels\"] = [];\n\n if (this.config.configuration.hierarchyCode != null) {\n this.service.getConfigForES(this.config.system, this.config.configuration.hierarchyCode).then(esConfig => {\n this.types = esConfig.types;\n this.orgUnitGroups = esConfig.orgUnitGroups;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n let lvl = {\n type: null,\n geoObjectType: null,\n level: 0,\n mappings: [],\n orgUnitGroupId: null\n };\n this.config.configuration[\"levels\"] = [lvl];\n this.levelRows.push({ level: lvl, levelNum: 0, isAttributeEditor: false });\n }\n\n onSelectLevelType(levelRow: LevelRow): void {\n if (levelRow.level.type === \"RELATIONSHIPS\") {\n levelRow.attrCfg.mappings = [];\n levelRow.level.mappings = [];\n\n let editorIndex = this.getEditorIndex();\n if (editorIndex !== -1) {\n this.levelRows.splice(editorIndex, 1);\n }\n } else {\n if (levelRow.attrCfg.mappings.length === 0) {\n levelRow.attrCfg.mappings = this.buildDefaultMappings();\n levelRow.level.mappings = levelRow.attrCfg.mappings;\n\n let len = levelRow.level.mappings.length;\n for (let i = 0; i < len; ++i) {\n let mapping = levelRow.level.mappings[i];\n\n levelRow.attrCfg.attrConfigInfos.forEach((info) => {\n if (info.cgrAttr.name === mapping.cgrAttrName) {\n mapping.info = info;\n }\n });\n }\n }\n }\n }\n\n deleteMapping(levelRow: LevelRow, index: number): void {\n levelRow.attrCfg.mappings.splice(index, 1);\n }\n\n addNewMapping(levelRow: LevelRow): void {\n levelRow.attrCfg.mappings.push({\n attributeMappingStrategy: DEFAULT_MAPPING_STRATEGY,\n cgrAttrName: null,\n dhis2AttrName: null,\n externalId: null,\n terms: []\n });\n }\n\n addLevel(): void {\n var lvl = {\n type: null,\n geoObjectType: null,\n level: this.config.configuration.levels.length,\n mappings: [],\n orgUnitGroupId: null\n };\n var len = this.config.configuration[\"levels\"].push(lvl);\n this.levelRows.push({ level: lvl, levelNum: len - 1, isAttributeEditor: false });\n }\n\n removeLevel(levelNum: number, levelRowIndex: number): void {\n if (levelNum < this.config.configuration[\"levels\"].length) {\n var editorIndex = this.getEditorIndex();\n if (editorIndex === levelRowIndex + 1) {\n this.levelRows.splice(editorIndex, 1);\n }\n\n this.levelRows.splice(levelRowIndex, 1);\n\n var newLevelNum = 0;\n for (var i = 0; i < this.levelRows.length; ++i) {\n var levelRow: LevelRow = this.levelRows[i];\n\n levelRow.levelNum = newLevelNum;\n\n if (!levelRow.isAttributeEditor) {\n newLevelNum = newLevelNum + 1;\n }\n }\n\n this.config.configuration[\"levels\"].splice(levelNum, 1);\n }\n }\n\n getEditorIndex(): number {\n for (var i = 0; i < this.levelRows.length; ++i) {\n var levelRow = this.levelRows[i];\n\n if (levelRow.isAttributeEditor) {\n return i;\n }\n }\n\n return -1;\n }\n\n configureAttributes(levelRow: any): void {\n var editorIndex = this.getEditorIndex();\n\n if (editorIndex !== -1) {\n this.levelRows.splice(editorIndex, 1);\n\n if (editorIndex === levelRow.levelNum + 1) {\n return;\n }\n }\n\n this.onSelectGeoObjectType(levelRow.level.geoObjectType, levelRow.levelNum, false);\n }\n\n getTermOptions(info: AttributeConfigInfo, dhis2Id: string) {\n for (var i = 0; i < info.dhis2Attrs.length; ++i) {\n var dhis2Attr = info.dhis2Attrs[i];\n\n if (dhis2Attr.dhis2Id === dhis2Id) {\n return dhis2Attr.options;\n }\n }\n }\n\n onChangeDHIS2Attr(mapping: DHIS2AttributeMapping) {\n if (mapping.dhis2Id == null || mapping.dhis2Id === \"\") {\n if (mapping.terms != null) {\n mapping.terms = {};\n }\n\n mapping.dhis2AttrName = null;\n\n return;\n }\n\n mapping.terms = {};\n\n let len = mapping.info.dhis2Attrs.length;\n for (let i = 0; i < len; ++i) {\n if (mapping.info.dhis2Attrs[i].dhis2Id === mapping.dhis2Id) {\n if (mapping.info.dhis2Attrs[i].dhis2Id !== mapping.info.dhis2Attrs[i].name) {\n mapping.externalId = mapping.info.dhis2Attrs[i].dhis2Id;\n } else {\n mapping.externalId = null;\n }\n mapping.dhis2AttrName = mapping.info.dhis2Attrs[i].name;\n }\n }\n }\n\n onSelectGeoObjectType(geoObjectTypeCode: string, levelRowIndex: number, isDifferentGot: boolean = true) {\n if (geoObjectTypeCode === \"\" || geoObjectTypeCode == null) {\n var levelRow: LevelRow = this.levelRows[levelRowIndex];\n\n levelRow.attrCfg = null;\n levelRow.level.mappings = [];\n\n var editorIndex = this.getEditorIndex();\n\n if (editorIndex !== -1 && editorIndex === levelRowIndex + 1) {\n this.levelRows.splice(editorIndex, 1);\n }\n\n return;\n }\n\n var attrCfg = this.levelRows[levelRowIndex].attrCfg;\n if (attrCfg != null && attrCfg.geoObjectTypeCode === geoObjectTypeCode) {\n // Resume an editing session on attributes that we fetched previously\n\n var editorIndex = this.getEditorIndex();\n\n if (editorIndex !== -1 && editorIndex !== levelRowIndex + 1) {\n this.levelRows.splice(editorIndex, 1);\n\n if (editorIndex < levelRowIndex) {\n levelRowIndex = levelRowIndex - 1;\n }\n }\n\n this.levelRows.splice(levelRowIndex + 1, 0, { isAttributeEditor: true, attrCfg: attrCfg });\n } else {\n this.service.getCustomAttrCfg(geoObjectTypeCode, this.config.system).then((infos: AttributeConfigInfo[]) => {\n var editorIndex = this.getEditorIndex();\n var levelRow: LevelRow = this.levelRows[levelRowIndex];\n var level = levelRow.level;\n\n if (level.mappings == null) {\n level.mappings = [];\n }\n\n if (level.mappings.length === 0 || isDifferentGot) {\n level.mappings = this.buildDefaultMappings();\n }\n\n let len = level.mappings.length;\n for (let i = 0; i < len; ++i) {\n let mapping = level.mappings[i];\n\n infos.forEach((info) => {\n if (info.cgrAttr.name === mapping.cgrAttrName) {\n mapping.info = info;\n }\n });\n }\n\n levelRow.attrCfg = { geoObjectTypeCode: geoObjectTypeCode, mappings: level.mappings, attrConfigInfos: infos };\n\n if (editorIndex !== -1 && (editorIndex === levelRowIndex + 1 || infos.length > 0)) {\n this.levelRows.splice(editorIndex, 1);\n\n if (editorIndex < levelRowIndex) {\n levelRowIndex = levelRowIndex - 1;\n }\n }\n\n if (!isDifferentGot) {\n this.levelRows.splice(levelRowIndex + 1, 0, { isAttributeEditor: true, attrCfg: levelRow.attrCfg, level: levelRow.level, levelNum: levelRow.levelNum });\n }\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n }\n\n mapCgrAttr(info: AttributeConfigInfo, mapping: DHIS2AttributeMapping) {\n if (info == null) {\n mapping.cgrAttrName = null;\n mapping.info = null;\n mapping.dhis2AttrName = null;\n mapping.externalId = null;\n mapping.terms = null;\n mapping.isOrgUnitGroup = null;\n return;\n }\n\n mapping.cgrAttrName = info.cgrAttr.name;\n mapping.info = info;\n mapping.dhis2AttrName = null;\n mapping.externalId = null;\n mapping.terms = {};\n mapping.isOrgUnitGroup = false;\n mapping.attributeMappingStrategy = info.attributeMappingStrategies[0];\n }\n\n onChangeTargetType(mapping: DHIS2AttributeMapping): void {\n mapping.externalId = null;\n\n for (const key in mapping.terms) {\n if (mapping.terms.hasOwnProperty(key)) {\n mapping.terms[key] = null;\n }\n }\n }\n\n error(err: HttpErrorResponse): void {\n this.onError.emit(err);\n }\n\n}\n","
\n
\n
\n \n
\n
\n \n \n \n
\n
\n \n
\n \n
\n \n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n 0\">\n \n \n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n

\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
0) || mapping.isOrgUnitGroup)\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n
\n \n \n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n","import { Component, OnInit } from \"@angular/core\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { Router } from \"@angular/router\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { PageResult } from \"@shared/model/core\";\nimport { LocalizationService } from \"@shared/service\";\nimport { ModalTypes } from \"@shared/model/modal\";\nimport { ErrorHandler, ConfirmModalComponent } from \"@shared/component\";\n\nimport { SynchronizationConfig } from \"@registry/model/registry\";\nimport { SynchronizationConfigService } from \"@registry/service\";\nimport { SynchronizationConfigModalComponent } from \"./synchronization-config-modal.component\";\n\n@Component({\n selector: \"synchronization-config-manager\",\n templateUrl: \"./synchronization-config-manager.component.html\",\n styleUrls: []\n})\nexport class SynchronizationConfigManagerComponent implements OnInit {\n\n message: string = null;\n\n page: PageResult = {\n resultSet: [],\n count: 0,\n pageNumber: 1,\n pageSize: 20\n };\n\n /*\n * Reference to the modal current showing\n */\n bsModalRef: BsModalRef;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public service: SynchronizationConfigService, private lService: LocalizationService, private router: Router, private modalService: BsModalService) { }\n\n ngOnInit(): void {\n this.onPageChange(1);\n }\n\n onPageChange(pageNumber: number): void {\n this.service.getPage(pageNumber, this.page.pageSize).then(page => {\n this.page = page;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n create(): void {\n this.service.edit(null).then(response => {\n let bsModalRef = this.modalService.show(SynchronizationConfigModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n bsModalRef.content.init(null, response.orgs);\n bsModalRef.content.onSuccess.subscribe(() => {\n this.onPageChange(this.page.pageNumber);\n });\n });\n }\n\n onEdit(config: SynchronizationConfig): void {\n this.service.edit(config.oid).then(response => {\n let bsModalRef = this.modalService.show(SynchronizationConfigModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n bsModalRef.content.init(response.config, response.orgs);\n bsModalRef.content.onSuccess.subscribe(() => {\n this.onPageChange(this.page.pageNumber);\n });\n });\n }\n\n onRemove(config: SynchronizationConfig): void {\n this.bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n this.bsModalRef.content.message = this.lService.decode(\"confirm.modal.verify.delete\") + \" [\" + config.label.localizedValue + \"]\";\n this.bsModalRef.content.submitText = this.lService.decode(\"modal.button.delete\");\n this.bsModalRef.content.type = ModalTypes.danger;\n\n this.bsModalRef.content.onConfirm.subscribe(() => {\n this.service.remove(config.oid).then(() => {\n this.onPageChange(this.page.pageNumber);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n });\n }\n\n onView(config: SynchronizationConfig): void {\n this.router.navigate([\"/registry/synchronization-config/\", config.oid]);\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n \n \n\n
\n\n
\n

\n \n

\n
\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n {{config.label.localizedValue}} \n \n \n \n \n
\n \n\n
\n
\n \n
\n
\n
\n
\n
\n
","import { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Subject } from \"rxjs\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { LocalizationService } from \"@shared/service\";\nimport { ErrorHandler } from \"@shared/component\";\n\nimport { SynchronizationConfig, OrgSyncInfo } from \"@registry/model/registry\";\nimport { SynchronizationConfigService } from \"@registry/service\";\n\n@Component({\n selector: \"synchronization-config-modal\",\n templateUrl: \"./synchronization-config-modal.component.html\",\n styleUrls: []\n})\nexport class SynchronizationConfigModalComponent implements OnInit, OnDestroy {\n\n message: string = null;\n\n config: SynchronizationConfig = {\n organization: null,\n system: null,\n hierarchy: null,\n isImport: false,\n label: this.lService.create(),\n configuration: {}\n };\n\n organizations: OrgSyncInfo[] = [];\n\n cOrg: OrgSyncInfo = null;\n cSystem: { label: string, oid: string, type: string } = null;\n\n fieldChange: Subject;\n\n /*\n * Observable subject for MasterList changes. Called when an update is successful\n */\n onSuccess: Subject;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: SynchronizationConfigService, private lService: LocalizationService, private bsModalRef: BsModalRef) { }\n\n ngOnInit(): void {\n this.onSuccess = new Subject();\n this.fieldChange = new Subject();\n }\n\n ngOnDestroy(): void {\n this.onSuccess.unsubscribe();\n this.fieldChange.unsubscribe();\n }\n\n init(config: SynchronizationConfig, organizations: OrgSyncInfo[]): void {\n this.organizations = organizations;\n\n if (config != null) {\n this.config = config;\n\n let oIndex = this.organizations.findIndex(org => org.code === this.config.organization);\n\n if (oIndex !== -1) {\n this.cOrg = this.organizations[oIndex];\n }\n\n let sIndex = this.cOrg.systems.findIndex(system => system.oid === this.config.system);\n\n if (sIndex !== -1) {\n this.cSystem = this.cOrg.systems[sIndex];\n }\n }\n }\n\n handleFieldChange(field: string): void {\n this.fieldChange.next(field);\n }\n\n onOrganizationSelected(): void {\n let index = this.organizations.findIndex(org => org.code === this.config.organization);\n\n if (index !== -1) {\n this.cOrg = this.organizations[index];\n } else {\n this.cOrg = null;\n }\n\n this.cSystem = null;\n\n this.handleFieldChange(\"organization\");\n }\n\n onChangeExternalSystem(): void {\n let index = this.cOrg.systems.findIndex(system => system.oid === this.config.system);\n\n if (index !== -1) {\n this.cSystem = this.cOrg.systems[index];\n } else {\n this.cSystem = null;\n }\n\n this.handleFieldChange(\"system\");\n }\n\n onSubmit(): void {\n /*\n let levelIndex = 0;\n let len = this.levelRows.length;\n for (let i = 0; i < len; ++i)\n {\n let levelRow: LevelRow = this.levelRows[i];\n\n if (levelRow.isAttributeEditor)\n {\n continue;\n }\n else if (levelRow.attrCfg == null)\n {\n levelIndex++;\n continue;\n }\n\n let mappings = this.config.configuration.levels[levelIndex].mappings;\n let mappingsLen = levelRow.attrCfg.mappings.length;\n for (let j = 0; j < mappingsLen; ++j)\n {\n let mapping = JSON.parse(JSON.stringify(levelRow.attrCfg.mappings[j]));\n delete mapping.info;\n mappings.push(mapping);\n }\n\n levelIndex++;\n }\n */\n\n this.service.apply(this.config).then(cfg => {\n this.onSuccess.next(cfg);\n this.bsModalRef.hide();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n cancel(): void {\n if (this.config.oid != null) {\n this.service.unlock(this.config.oid).then(() => {\n this.bsModalRef.hide();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n } else {\n this.bsModalRef.hide();\n }\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n
{{message}}
\n\n
\n

\n \n

\n
\n
\n\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n \n \n
\n
\n \n
\n
\n \n
\n
\n \n \n \n
\n
\n\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n \n \n \n
\n\n
\n
\n
\n
\n \n \n
\n
\n
\n\n
\n
\n
","import { Component, OnInit, Input, OnDestroy, EventEmitter, Output } from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { HttpErrorResponse } from '@angular/common/http';\n\nimport { SynchronizationConfig, MasterList, MasterListView } from '@registry/model/registry';\nimport { RegistryService, SynchronizationConfigService } from '@registry/service';\n\ninterface FhirSyncLevel {\n masterListId: string;\n versionId: string;\n level: number;\n}\n\n@Component({\n selector: 'fhir-import-synchronization-config',\n templateUrl: './fhir-import-synchronization-config.component.html',\n styleUrls: []\n})\nexport class FhirImportSynchronizationConfigComponent implements OnInit, OnDestroy {\n message: string = null;\n\n @Input() config: SynchronizationConfig;\n @Input() fieldChange: Subject;\n @Output() onError = new EventEmitter();\n subscription: Subscription = null;\n\n implementations: { className: string, label: string }[] = [];\n\n constructor(private service: SynchronizationConfigService) { }\n\n ngOnInit(): void {\n this.reset();\n\n this.subscription = this.fieldChange.subscribe((field: string) => {\n if (field === 'organization' || field === 'system') {\n this.reset();\n }\n });\n\n this.service.getFhirImportImplementations().then(implementations => {\n this.implementations = implementations;\n });\n }\n\n ngOnDestroy(): void {\n if (this.subscription != null) {\n this.subscription.unsubscribe();\n }\n }\n\n reset(): void {\n\n if (this.config.configuration == null) {\n this.config.configuration = {\n implementation: null\n }\n }\n }\n\n error(err: HttpErrorResponse): void {\n this.onError.emit(err);\n }\n\n}\n","
\n
\n \n
\n
\n \n
\n
","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { webSocket, WebSocketSubject } from \"rxjs/webSocket\";\n\nimport { PageResult } from '@shared/model/core'\nimport { LocalizationService } from '@shared/service';\n\nimport { SynchronizationConfig, ExportScheduledJob } from '@registry/model/registry';\nimport { SynchronizationConfigService } from '@registry/service';\nimport { ErrorHandler } from '@shared/component/error-handler/error-handler';\n\ndeclare var acp: any;\n\n@Component({\n selector: 'synchronization-config',\n templateUrl: './synchronization-config.component.html',\n styleUrls: []\n})\nexport class SynchronizationConfigComponent implements OnInit {\n message: string = null;\n\n config: SynchronizationConfig = null;\n\n page: PageResult = {\n pageSize: 10,\n pageNumber: 1,\n count: 1,\n resultSet: []\n };\n\n notifier: WebSocketSubject<{ type: string, content: any }>;\n\n constructor(private service: SynchronizationConfigService, private lService: LocalizationService, private route: ActivatedRoute) { }\n\n ngOnInit(): void {\n const oid = this.route.snapshot.paramMap.get('oid');\n\n this.service.get(oid).then(config => {\n this.config = config;\n this.onPageChange(1);\n });\n\n let baseUrl = \"wss://\" + window.location.hostname + (window.location.port ? ':' + window.location.port : '') + acp;\n\n this.notifier = webSocket(baseUrl + '/websocket/notify');\n this.notifier.subscribe(message => {\n if (message.type === 'DATA_EXPORT_JOB_CHANGE') {\n this.onPageChange(this.page.pageNumber);\n }\n });\n }\n\n ngOnDestroy() {\n\n if (this.notifier != null) {\n this.notifier.complete();\n }\n }\n\n onRun(): void {\n this.message = null;\n\n this.service.run(this.config.oid).then(() => {\n // Refresh the page\n this.onPageChange(this.page.pageNumber);\n\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onGenerateFile(): void {\n\n window.open(acp + '/synchronization-config/generate-file?oid=' + encodeURIComponent(this.config.oid));\n }\n\n onPageChange(pageNumber: number): void {\n if (this.config != null) {\n\n this.message = null;\n\n this.service.getJobs(this.config.oid, pageNumber, this.page.pageSize).then(response => {\n\n this.formatStepConfig(response);\n this.page = response;\n\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n }\n\n formatJobStatus(job: ExportScheduledJob): string {\n if (job.status === \"FEEDBACK\") {\n return this.lService.decode(\"etl.JobStatus.FEEDBACK\");\n }\n else if (job.status === \"RUNNING\" || job.status === \"NEW\") {\n return this.lService.decode(\"etl.JobStatus.RUNNING\");\n }\n else if (job.status === \"QUEUED\") {\n return this.lService.decode(\"etl.JobStatus.QUEUED\");\n }\n else if (job.status === \"SUCCESS\") {\n return this.lService.decode(\"etl.JobStatus.SUCCESS\");\n }\n else if (job.status === \"CANCELED\") {\n return this.lService.decode(\"etl.JobStatus.CANCELED\");\n }\n else if (job.status === \"FAILURE\") {\n return this.lService.decode(\"etl.JobStatus.FAILURE\");\n }\n else {\n return this.lService.decode(\"etl.JobStatus.RUNNING\");\n }\n }\n\n formatStepConfig(page: PageResult): void {\n\n page.resultSet.forEach((job: ExportScheduledJob) => {\n\n const steps = [\n {\n \"label\": this.lService.decode(\"synchronization.step.Queued\"),\n \"status\": job.stage === \"NEW\" ? this.getJobStatus(job) : this.getCompletedStatus(job.stage, \"NEW\")\n },\n\n {\n \"label\": this.lService.decode(\"synchronization.step.Connecting\"),\n \"status\": job.stage === \"CONNECTING\" || job.stage === \"CONNECTION_FAILED\" ? this.getJobStatus(job) : this.getCompletedStatus(job.stage, \"CONNECTION_FAILED\")\n }\n ];\n\n const stepLabel = this.config.isImport ? \"Importing\" : this.lService.decode(\"synchronization.step.DatabaseExport\");\n\n steps.push({\n \"label\": stepLabel,\n \"status\": job.stage === \"EXPORT\" || job.stage === \"EXPORT_RESOLVE\" || job.stage === \"RESUME_EXPORT\" ? this.getJobStatus(job) : \"\"\n });\n\n job.stepConfig = {\n \"steps\": steps\n }\n });\n }\n\n getCompletedStatus(jobStage: string, targetStage: string): string {\n let order = [\"CONNECTING\", \"CONNECTION_FAILED\", \"EXPORT\", \"EXPORT_RESOLVE\", \"RESUME_EXPORT\"];\n\n let jobPos = order.indexOf(jobStage);\n let targetPos = order.indexOf(targetStage);\n\n if (targetPos < jobPos) {\n return \"COMPLETE\";\n }\n else {\n return \"\";\n }\n }\n\n getJobStatus(job: ExportScheduledJob): string {\n if (job.status === \"QUEUED\" || job.status === \"RUNNING\") {\n return \"WORKING\"\n }\n else if (job.status === \"FEEDBACK\" || job.status === \"FAILURE\") {\n return \"STUCK\";\n }\n\n return \"\";\n }\n\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n \n \n\n
\n\n
{{message}}
\n\n
\n
\n\n
\n
\n

{{config.label.localizedValue}}

\n
\n
\n\n
\n
\n
\n \n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n\n
\n
\n\n

\n \n

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n
\n {{i + 1}}\n \n {{level.geoObjectType}}\n \n \n \n \n \n
\n\n
\n
\n\n
\n
\n\n

\n \n

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n
\n {{i + 1}}\n \n {{level.typeLabel}}\n \n {{level.forDate}}\n
\n\n
\n
\n\n\n
\n
\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n
    \n \n
    \n
    \n \n

    \n {{job.fileName}} \n {{job.createDate}} \n {{formatJobStatus(job)}} \n \n {{job.exception.message}}\n \n

    \n\n \n\n
    \n
    \n \n
    \n
    0\" class=\"solid-table-footer\">\n \n
    \n
    \n
\n
\n
\n
\n
\n
\n
\n
","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { HttpErrorResponse } from '@angular/common/http';\n\nimport { ErrorHandler } from '@shared/component';\n\nimport { RegistryService, IOService, SynchronizationConfigService } from '@registry/service';\nimport { ScheduledJob, SynchronizationConfig } from '@registry/model/registry';\n\n@Component({\n selector: 'job',\n templateUrl: './details.component.html',\n styleUrls: ['./details.css']\n})\nexport class SyncDetailsComponent implements OnInit {\n message: string = null;\n job: ScheduledJob;\n historyId: string = \"\";\n\n config: SynchronizationConfig = null;\n\n page: any = {\n count: 0,\n pageNumber: 1,\n pageSize: 10,\n results: []\n };\n\n constructor(private configService: SynchronizationConfigService, public service: RegistryService, private route: ActivatedRoute, public ioService: IOService) {\n }\n\n ngOnInit(): void {\n\n this.historyId = this.route.snapshot.params[\"oid\"];\n\n const configOid = this.route.snapshot.paramMap.get('config');\n\n this.configService.get(configOid).then(config => {\n this.config = config;\n\n this.onPageChange(1);\n });\n }\n\n ngOnDestroy() {\n }\n\n formatAffectedRows(rows: string) {\n return rows.replace(/,/g, \", \");\n }\n\n formatValidationResolve(obj: any) {\n return JSON.stringify(obj);\n }\n\n onPageChange(pageNumber: any): void {\n\n this.message = null;\n\n this.service.getExportDetails(this.historyId, this.page.pageSize, pageNumber).then(response => {\n\n this.job = response;\n\n this.page = this.job.exportErrors;\n\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n \n \n\n
\n
{{message}}
\n\n
\n

\n \n

\n
\n
\n
\n
\n\n \n

\n \n \n {{job.author}}\n \n \n \n {{job.createDate}}\n \n

\n\n
\n
\n
\n
\n\n
{{job.exportedRecords}} \n \n {{job.workTotal}} \n \n
\n
{{job.workTotal - job.exportedRecords}}
\n\n
\n
\n
\n
0\" class=\"row\">\n
\n \n
    \n \n \n \n \n\t \n\t \n\t \n \n \n\n \n \n \n \n \n \n \n
    \n \n\t  \n \n Resource\n\t \n \n \n \n
    \n

    {{row.code}}

    \n
    \n

    {{row.message}}

    \n
    \n

    {{row.rowNum}}

    \n
    \n
    \n
    0\" class=\"solid-table-footer\">\n \n
    \n
    \n
\n
\n
\n
\n
","import { Component, OnInit, OnDestroy, AfterViewInit, ViewChild } from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { Map, LngLatBoundsLike, NavigationControl, MapboxEvent, AttributionControl, IControl } from \"mapbox-gl\";\n\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { AllGeoJSON } from \"@turf/helpers\";\nimport bbox from \"@turf/bbox\";\n\nimport { Subject } from \"rxjs\";\n\nimport { GeoObject, ContextLayer, GeoObjectType, ValueOverTime } from \"@registry/model/registry\";\nimport { ModalState } from \"@registry/model/location-manager\";\n\nimport { MapService, RegistryService, GeometryService } from \"@registry/service\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { ErrorHandler, ErrorModalComponent, ConfirmModalComponent, SuccessModalComponent } from \"@shared/component\";\n\nimport { LocalizationService } from \"@shared/service\";\n\ndeclare let acp: string;\n\nconst DEFAULT_COLOR = \"#80cdc1\";\nconst SELECTED_COLOR = \"#800000\";\n\n@Component({\n selector: \"location-manager\",\n templateUrl: \"./location-manager.component.html\",\n styleUrls: [\"./location-manager.css\"]\n})\nexport class LocationManagerComponent implements OnInit, AfterViewInit, OnDestroy {\n\n coordinate: {\n longitude: number,\n latitude: number\n } = { longitude: null, latitude: null };\n\n MODE: ModalState = {\n SEARCH: 0,\n VIEW: 1\n }\n\n urlSubscriber: any;\n\n editSessionEnabled: boolean = false;\n\n bsModalRef: BsModalRef;\n\n /*\n * Root nodes of the tree\n */\n data: GeoObject[] = [];\n\n /*\n * Search Text\n */\n text: string = \"\";\n\n /*\n * MODE\n */\n mode: number = this.MODE.SEARCH;\n\n /*\n * Date of data for explorer\n */\n dateStr: string = null;\n\n forDate: Date = null;\n\n /*\n * Currently selected geo object\n */\n current: GeoObject;\n\n /*\n * Currently selected geo object type\n */\n type: GeoObjectType;\n\n /*\n * Flag denoting if an object is currently being editted\n */\n isEdit: boolean = false;\n\n /*\n * mapbox-gl map\n */\n map: Map;\n\n /*\n * Flag denoting the draw control is active\n */\n active: boolean = false;\n\n public displayDateRequiredError: boolean = false;\n\n vectorLayers: string[] = [];\n\n backReference: string;\n\n /*\n * List of base layers\n */\n baseLayers: any[] = [\n {\n name: \"Satellite\",\n label: \"Satellite\",\n id: \"satellite-v9\",\n sprite: \"mapbox://sprites/mapbox/satellite-v9\",\n url: \"mapbox://mapbox.satellite\",\n selected: true\n }\n // {\n // name: 'Streets',\n // label: 'Streets',\n // id: 'streets-v9',\n // sprite: 'mapbox://sprites/mapbox/basic-v9',\n // url: 'mapbox://mapbox.basic-v9'\n // }\n ];\n\n hoverFeatureId: string;\n\n preventSingleClick: boolean = false;\n\n hideSearchOptions: boolean = false;\n\n /*\n * Timer for determining double click vs single click\n */\n timer: any;\n\n /*\n * debounced subject for map extent change events\n */\n subject: Subject>;\n\n vot: ValueOverTime = null;\n\n @ViewChild(\"simpleEditControl\") simpleEditControl: IControl;\n\n editingControl: any;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private modalService: BsModalService, private mapService: MapService, private geomService: GeometryService, public service: RegistryService,\n private route: ActivatedRoute, private router: Router, private lService: LocalizationService) { }\n\n ngOnInit(): void {\n this.urlSubscriber = this.route.params.subscribe(params => {\n let geoObjectUid = params[\"geoobjectuid\"];\n let geoObjectTypeCode = params[\"geoobjecttypecode\"];\n this.hideSearchOptions = params[\"hideSearchOptions\"];\n this.backReference = this.route.snapshot ? this.route.snapshot.params[\"backReference\"] : null;\n\n this.dateStr = params[\"datestr\"];\n this.handleDateChange();\n\n if (geoObjectUid && geoObjectTypeCode && this.dateStr) {\n this.service.getGeoObject(geoObjectUid, geoObjectTypeCode).then(geoObj => {\n this.setData([geoObj]);\n this.select(geoObj, null);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n });\n }\n\n ngOnDestroy(): void {\n this.geomService.destroy();\n this.urlSubscriber.unsubscribe();\n }\n\n ngAfterViewInit() {\n const layer = this.baseLayers[0];\n\n this.map = new Map({\n container: \"map\",\n style: {\n version: 8,\n name: layer.name,\n metadata: {\n \"mapbox:autocomposite\": true\n },\n sources: {\n mapbox: {\n type: \"raster\",\n url: layer.url,\n tileSize: 256\n }\n },\n sprite: layer.sprite,\n glyphs: window.location.protocol + \"//\" + window.location.host + acp + \"/glyphs/{fontstack}/{range}.pbf\",\n layers: [\n {\n id: layer.id,\n type: \"raster\",\n source: \"mapbox\"\n // \"source-layer\": \"mapbox_satellite_full\"\n }\n ]\n },\n zoom: 2,\n attributionControl: false,\n center: [-78.880453, 42.897852]\n });\n\n this.map.on(\"load\", () => {\n this.initMap();\n });\n\n if (this.simpleEditControl) {\n this.map.addControl(this.simpleEditControl);\n }\n }\n\n changeMode(mode: number): void {\n this.mode = mode;\n\n if (this.mode === this.MODE.SEARCH) {\n this.isEdit = false;\n }\n\n this.geomService.destroy(false);\n\n this.vot = null;\n }\n\n onModeChange(value: boolean): void {\n this.isEdit = value;\n }\n\n handleDateChange(): void {\n if (this.dateStr != null) {\n this.forDate = new Date(Date.parse(this.dateStr));\n this.displayDateRequiredError = false;\n }\n }\n\n initMap(): void {\n this.map.on(\"style.load\", () => {\n this.addLayers();\n });\n\n this.addLayers();\n\n // Add zoom and rotation controls to the map.\n this.map.addControl(new NavigationControl({ visualizePitch: true }));\n this.map.addControl(new AttributionControl({ compact: true }), \"bottom-right\");\n\n this.map.on(\"click\", \"children-points\", (event: any) => {\n this.handleMapClickEvent(event);\n });\n\n this.map.on(\"click\", \"children-polygon\", (event: any) => {\n this.handleMapClickEvent(event);\n });\n\n // Set map data on page load with URL params (single Geo-Object)\n if (this.data) {\n let fc = { type: \"FeatureCollection\", features: this.data };\n ( this.map.getSource(\"children\")).setData(fc);\n\n this.zoomToFeature(this.data[0], null);\n }\n\n this.showOriginalGeometry();\n }\n\n showOriginalGeometry() {\n if (this.current) {\n this.addVectorLayer(this.current.properties.uid);\n }\n }\n\n hideOriginalGeometry() {\n if (this.current) {\n this.removeVectorLayer(this.current.properties.uid);\n }\n }\n\n handleMapClickEvent(event: any): void {\n if (!this.isEdit && event.features != null && event.features.length > 0) {\n const feature = event.features[0];\n\n if (feature.properties.code != null && (this.current == null || this.current.properties.code !== feature.properties.code)) {\n this.select(feature, null);\n }\n }\n }\n\n onPanelCancel(): void {\n if (this.backReference != null && this.backReference.length >= 2) {\n let ref = this.backReference.substring(0, 2);\n\n if (ref === \"CR\") {\n this.router.navigate([\"/registry/change-requests\"]);\n }\n } else {\n this.changeMode(this.MODE.SEARCH);\n }\n\n this.showOriginalGeometry();\n }\n\n onPanelSubmit(applyInfo: { isChangeRequest: boolean, geoObject?: any, changeRequestId?: string }): void {\n // Save everything first\n this.geomService.saveEdits();\n\n if (applyInfo.isChangeRequest) {\n if (this.backReference != null && this.backReference.length >= 2 && this.backReference.substring(0, 2) === \"CR\") {\n this.bsModalRef = this.modalService.show(SuccessModalComponent, { backdrop: true, class: \"error-white-space-pre\" });\n\n this.bsModalRef.content.message = this.lService.decode(\"geoobject-editor.changerequest.submitted\");\n this.bsModalRef.content.submitText = this.lService.decode(\"geoobject-editor.changerequest.view\");\n\n this.bsModalRef.content.onConfirm.subscribe(() => {\n this.router.navigate([\"/registry/change-requests\", applyInfo.changeRequestId]);\n });\n } else {\n this.bsModalRef = this.modalService.show(ConfirmModalComponent, { backdrop: true, class: \"error-white-space-pre\" });\n\n this.bsModalRef.content.message = this.lService.decode(\"geoobject-editor.changerequest.submitted\");\n this.bsModalRef.content.submitText = this.lService.decode(\"geoobject-editor.changerequest.view\");\n this.bsModalRef.content.cancelText = this.lService.decode(\"geoobject-editor.cancel.returnExplorer\");\n\n this.bsModalRef.content.onConfirm.subscribe(() => {\n this.router.navigate([\"/registry/change-requests\", applyInfo.changeRequestId]);\n });\n this.bsModalRef.content.onCancel.subscribe(() => {\n this.changeMode(this.MODE.SEARCH);\n });\n }\n } else {\n this.bsModalRef = this.modalService.show(SuccessModalComponent, { backdrop: true, class: \"error-white-space-pre\" });\n\n this.bsModalRef.content.message = this.lService.decode(\"geoobject-editor.edit.submitted\");\n this.bsModalRef.content.submitText = this.lService.decode(\"geoobject-editor.cancel.returnExplorer\");\n\n this.bsModalRef.content.onConfirm.subscribe(() => {\n this.onPanelCancel();\n });\n }\n }\n\n addLayers(): void {\n const source = \"children\";\n\n this.map.addSource(source, {\n type: \"geojson\",\n data: {\n type: \"FeatureCollection\",\n features: []\n }\n });\n\n // Polygon layer\n this.map.addLayer({\n id: source + \"-polygon\",\n type: \"fill\",\n source: source,\n layout: {},\n paint: {\n \"fill-color\": DEFAULT_COLOR,\n \"fill-opacity\": 0.8,\n \"fill-outline-color\": \"black\"\n },\n filter: [\"all\",\n [\"match\", [\"geometry-type\"], [\"Polygon\", \"MultiPolygon\"], true, false]\n ]\n });\n\n // Point layer\n this.map.addLayer({\n id: source + \"-points\",\n type: \"circle\",\n source: source,\n paint: {\n \"circle-radius\": 10,\n \"circle-color\": DEFAULT_COLOR,\n \"circle-stroke-width\": 2,\n \"circle-stroke-color\": \"#FFFFFF\"\n },\n filter: [\"all\",\n [\"match\", [\"geometry-type\"], [\"Point\", \"MultiPont\"], true, false]\n ]\n });\n\n // // Selected layers\n // this.map.addLayer({\n // \"id\": source + \"-points-selected\",\n // \"type\": \"circle\",\n // \"source\": source,\n // \"paint\": {\n // \"circle-radius\": 10,\n // \"circle-color\": DEFAULT_COLOR,\n // \"circle-stroke-width\": 2,\n // \"circle-stroke-color\": '#FFFFFF'\n // },\n // filter: ['all',\n // [\"==\", ['get', 'code'], this.current != null ? this.current.properties.code : ''],\n // [\"match\", [\"geometry-type\"], [\"Point\", \"MultiPont\"], true, false]\n // ]\n // });\n //\n // this.map.addLayer({\n // 'id': source + '-polygon-selected',\n // 'type': 'fill',\n // 'source': source,\n // 'layout': {},\n // 'paint': {\n // 'fill-color': DEFAULT_COLOR,\n // 'fill-opacity': 0.8,\n // 'fill-outline-color': 'black'\n // },\n // filter: ['all',\n // [\"==\", ['get', 'code'], this.current != null ? this.current.properties.code : ''],\n // [\"match\", [\"geometry-type\"], [\"Polygon\", \"MultiPolygon\"], true, false]\n // ]\n // });\n\n // Label layer\n this.map.addLayer({\n id: source + \"-label\",\n source: source,\n type: \"symbol\",\n paint: {\n \"text-color\": \"black\",\n \"text-halo-color\": \"#fff\",\n \"text-halo-width\": 2\n },\n layout: {\n \"text-field\": [\"get\", \"localizedValue\", [\"get\", \"displayLabel\"]],\n \"text-font\": [\"NotoSansRegular\"],\n \"text-offset\": [0, 0.6],\n \"text-anchor\": \"top\",\n \"text-size\": 12\n }\n });\n\n this.vectorLayers.forEach(cLayer => {\n this.addVectorLayer(cLayer);\n });\n }\n\n handleBasemapStyle(layer: any): void {\n // this.map.setStyle('mapbox://styles/mapbox/' + layer.id);\n\n this.baseLayers.forEach(baseLayer => {\n baseLayer.selected = false;\n });\n\n layer.selected = true;\n\n this.map.setStyle({\n version: 8,\n name: layer.name,\n metadata: {\n \"mapbox:autocomposite\": true\n },\n sources: {\n mapbox: {\n type: \"raster\",\n url: layer.url,\n tileSize: 256\n }\n },\n sprite: layer.sprite,\n glyphs: window.location.protocol + \"//\" + window.location.host + acp + \"/glyphs/{fontstack}/{range}.pbf\",\n layers: [\n {\n id: layer.id,\n type: \"raster\",\n source: \"mapbox\"\n // \"source-layer\": \"mapbox_satellite_full\"\n }\n ]\n });\n }\n\n search(): void {\n this.geomService.destroy(false);\n this.mapService.search(this.text, this.dateStr).then(data => {\n ( this.map.getSource(\"children\")).setData(data);\n\n this.setData(data.features);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n zoomToFeature(node: GeoObject, event: MouseEvent): void {\n if (event != null) {\n event.stopPropagation();\n }\n\n this.preventSingleClick = false;\n const delay = 200;\n\n this.timer = setTimeout(() => {\n if (!this.preventSingleClick) {\n if (node && node.geometry != null) {\n const bounds = bbox(node as AllGeoJSON) as LngLatBoundsLike;\n\n let padding = 50;\n let maxZoom = 20;\n\n // Zoom level was requested to be reduced when displaying point types as per #420\n if (node.geometry.type === \"Point\" || node.geometry.type === \"MultiPoint\") {\n padding = 100;\n maxZoom = 12;\n }\n\n this.map.fitBounds(bounds, { padding: padding, animate: true, maxZoom: maxZoom });\n }\n }\n }, delay);\n }\n\n select(node: GeoObject, event: MouseEvent): void {\n /*\n if (this.forDate == null) {\n this.displayDateRequiredError = true;\n\n return;\n }\n */\n\n if (event != null) {\n event.stopPropagation();\n }\n\n this.service.getGeoObjectTypes([node.properties.type], null).then(types => {\n this.type = types[0];\n this.current = node;\n this.mode = this.MODE.VIEW;\n\n this.geomService.initialize(this.map, this.type.geometryType, !this.isEdit);\n this.geomService.zoomToLayersExtent();\n\n // const code = this.current.properties.code;\n //\n // // Update the filter properties\n // this.map.setFilter('children-points-selected', ['all',\n // [\"==\", ['get', 'code'], code != null ? code : ''],\n // [\"match\", [\"geometry-type\"], [\"Point\", \"MultiPont\"], true, false]\n // ]);\n //\n // this.map.setFilter('children-polygon-selected', ['all',\n // [\"==\", ['get', 'code'], code != null ? code : ''],\n // [\"match\", [\"geometry-type\"], [\"Polygon\", \"MultiPolygon\"], true, false]\n // ]);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n setData(data: GeoObject[]): void {\n this.data = data;\n }\n\n onContextLayerChange(layer: ContextLayer): void {\n if (layer.active) {\n this.addVectorLayer(layer.oid);\n } else {\n this.removeVectorLayer(layer.oid);\n }\n }\n\n removeVectorLayer(source: string): void {\n const index = this.vectorLayers.indexOf(source);\n\n if (index !== -1) {\n this.map.removeLayer(source + \"-points\");\n this.map.removeLayer(source + \"-polygon\");\n this.map.removeLayer(source + \"-label\");\n this.map.removeSource(source);\n\n this.vectorLayers.splice(index, 1);\n }\n }\n\n addVectorLayer(source: string): void {\n const index = this.vectorLayers.indexOf(source);\n\n if (index === -1) {\n const prevLayer = \"children-polygon\";\n\n let protocol = window.location.protocol;\n let host = window.location.host;\n\n this.map.addSource(source, {\n type: \"vector\",\n tiles: [protocol + \"//\" + host + acp + \"/master-list/tile?x={x}&y={y}&z={z}&config=\" + encodeURIComponent(JSON.stringify({ oid: source }))]\n });\n\n // Point layer\n this.map.addLayer({\n id: source + \"-points\",\n type: \"circle\",\n source: source,\n \"source-layer\": \"context\",\n paint: {\n \"circle-radius\": 10,\n \"circle-color\": SELECTED_COLOR,\n \"circle-stroke-width\": 2,\n \"circle-stroke-color\": \"#FFFFFF\"\n },\n filter: [\"all\",\n [\"match\", [\"geometry-type\"], [\"Point\", \"MultiPont\"], true, false]\n ]\n }, prevLayer);\n\n // Polygon layer\n this.map.addLayer({\n id: source + \"-polygon\",\n type: \"fill\",\n source: source,\n \"source-layer\": \"context\",\n layout: {},\n paint: {\n \"fill-color\": SELECTED_COLOR,\n \"fill-opacity\": 0.8,\n \"fill-outline-color\": \"black\"\n },\n filter: [\"all\",\n [\"match\", [\"geometry-type\"], [\"Polygon\", \"MultiPolygon\"], true, false]\n ]\n }, prevLayer);\n\n // Label layer\n this.map.addLayer({\n id: source + \"-label\",\n source: source,\n \"source-layer\": \"context\",\n type: \"symbol\",\n paint: {\n \"text-color\": \"black\",\n \"text-halo-color\": \"#fff\",\n \"text-halo-width\": 2\n },\n layout: {\n \"text-field\": [\"case\",\n [\"has\", \"displayLabel_\" + navigator.language.toLowerCase()],\n [\"coalesce\", [\"string\", [\"get\", \"displayLabel_\" + navigator.language.toLowerCase()]], [\"string\", [\"get\", \"displayLabel\"]]],\n [\"string\", [\"get\", \"displayLabel\"]]\n ],\n \"text-font\": [\"NotoSansRegular\"],\n \"text-offset\": [0, 0.6],\n \"text-anchor\": \"top\",\n \"text-size\": 12\n }\n }, prevLayer);\n\n this.vectorLayers.push(source);\n }\n }\n\n// TODO : Not sure what the point of this code was\n/*\n refreshInputsFromDraw(): void {\n let geom = this.getDrawGeometry();\n let point = geom.coordinates[0];\n\n this.coordinate.latitude = point[1];\n this.coordinate.longitude = point[0];\n }\n\n refreshDrawFromInput(): void {\n\n if( this.coordinate.longitude != null && this.coordinate.latitude != null ) {\n\n const isLatitude = num => isFinite(num) && Math.abs(num) <= 90;\n const isLongitude = num => isFinite(num) && Math.abs(num) <= 180;\n\n if( !isLatitude(this.coordinate.latitude) || !isLongitude(this.coordinate.longitude)){\n // outside EPSG bounds\n }\n\n this.editingControl.set({\n type: 'FeatureCollection',\n features: [{\n id: this.current.properties.uid,\n type: 'Feature',\n properties: {},\n geometry: { type: 'Point', coordinates: [ this.coordinate.longitude, this.coordinate.latitude ] }\n }]\n });\n\n this.editingControl.changeMode( 'simple_select', { featureIds: this.current.properties.uid } );\n\n this.editSessionEnabled = true;\n }\n }\n */\n\n error(err: HttpErrorResponse): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n}\n","
\n \n \n\n\n
\n\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n\n \n
\n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n
\n
\n \n
\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n \n
\n
\n \n

{{node.properties.code}} - {{node.properties.displayLabel.localizedValue}}

\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n\n\n\n \n
\n
\n
\n\n
\n
\n \n
\n \n
\n\n
\n\n \n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
","import { Component } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Subject } from \"rxjs\";\n\nimport { ContextLayerGroup } from \"@registry/model/registry\";\n\n\n@Component({\n selector: \"context-layer-modal\",\n templateUrl: \"./context-layer-modal.component.html\",\n styleUrls: [\"./location-manager.css\"]\n})\nexport class ContextLayerModalComponent {\n\n contextLayerGroups: ContextLayerGroup[];\n\n\n /*\n * Called on confirm\n */\n public onSubmit: Subject;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef) { }\n\n ngOnInit(): void {\n this.onSubmit = new Subject();\n }\n\n groupHasContextLayers(group:string): boolean {\n let hasCLayers = false;\n this.contextLayerGroups.forEach(cLayerGroup => {\n if (cLayerGroup.oid === group && cLayerGroup.contextLayers.length > 0) {\n hasCLayers = true;\n }\n });\n\n return hasCLayers;\n }\n\n confirm(): void {\n this.onSubmit.next(this.contextLayerGroups);\n this.bsModalRef.hide();\n }\n\n}\n","
\n
\n

\n \n

\n
\n\n
\n
\n
\n
\n
\n
\n
\n

{{ cLayerGroup.displayLabel }}

\n
\n
\n {{ cLayer.displayLabel }}\n \n \n \n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n","import { Component, OnInit, OnDestroy, AfterViewInit } from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { BsModalRef, BsModalService } from \"ngx-bootstrap/modal\";\nimport { Map, NavigationControl, AttributionControl, LngLatBounds } from \"mapbox-gl\";\n\nimport { ContextLayer, GeoObjectType, ValueOverTime } from \"@registry/model/registry\";\n// MapService IS REQUIRED to set the mapbox access token for the map\nimport { MapService, RegistryService, GeometryService } from \"@registry/service\";\nimport { DateService } from \"@shared/service/date.service\";\nimport { ErrorHandler, GenericModalComponent } from \"@shared/component\";\n\nimport { LocalizationService, AuthService } from \"@shared/service\";\n\ndeclare let acp: string;\n\nconst DEFAULT_COLOR = \"#80cdc1\";\nconst SELECTED_COLOR = \"#800000\";\n\n@Component({\n selector: \"dataset-location-manager\",\n templateUrl: \"./dataset-location-manager.component.html\",\n styleUrls: [\"./dataset-location-manager.css\"]\n})\nexport class DatasetLocationManagerComponent implements OnInit, AfterViewInit, OnDestroy {\n\n coordinate: {\n longitude: number,\n latitude: number\n } = { longitude: null, latitude: null };\n\n MODE = {\n VERSIONS: \"VERSIONS\",\n ATTRIBUTES: \"ATTRIBUTES\",\n HIERARCHY: \"HIERARCHY\"\n }\n\n toolsIconHover: boolean = false;\n datasetId: string;\n typeCode: string;\n readOnly: boolean = false;\n editOnly: boolean = false;\n isEdit: boolean = false;\n date: string;\n code: string;\n type: GeoObjectType;\n bsModalRef: BsModalRef;\n backReference: string;\n\n /*\n * mapbox-gl map\n */\n map: Map;\n\n vectorLayers: string[] = [];\n\n /*\n * List of base layers\n */\n baseLayers: any[] = [\n {\n name: \"Satellite\",\n label: \"Satellite\",\n id: \"satellite-v9\",\n sprite: \"mapbox://sprites/mapbox/satellite-v9\",\n url: \"mapbox://mapbox.satellite\",\n selected: true\n }\n // {\n // name: 'Streets',\n // label: 'Streets',\n // id: 'streets-v11',\n // sprite: 'mapbox://sprites/mapbox/basic-v11',\n // url: 'mapbox://styles/mapbox/streets-v11'\n // }\n ];\n\n mode: string = null;\n isMaintainer: boolean;\n forDate: Date = new Date();\n\n vot: ValueOverTime;\n\n constructor(private mapService: MapService, public geomService: GeometryService, public service: RegistryService, private modalService: BsModalService, private route: ActivatedRoute,\n authService: AuthService, private lService: LocalizationService, private dateService: DateService, private router: Router) {\n this.isMaintainer = authService.isAdmin() || authService.isMaintainer();\n }\n\n ngOnInit(): void {\n this.datasetId = this.route.snapshot.params[\"datasetId\"];\n this.typeCode = this.route.snapshot.params[\"typeCode\"];\n this.date = this.route.snapshot.params[\"date\"];\n this.readOnly = this.route.snapshot.params[\"readOnly\"] === \"true\";\n this.editOnly = this.route.snapshot.params[\"editOnly\"] === \"true\";\n this.backReference = this.route.snapshot.params[\"backReference\"];\n\n if (this.route.snapshot.params[\"code\"] != null) {\n this.code = this.route.snapshot.params[\"code\"];\n }\n\n this.forDate = this.dateService.getDateFromDateString(this.date);\n\n this.service.getGeoObjectTypes([this.typeCode], null).then(types => {\n this.type = types[0];\n this.geomService.initialize(this.map, this.type.geometryType, !this.isEdit);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onPanelCancel(): void {\n if (this.backReference != null && this.backReference.length >= 2) {\n let ref = this.backReference.substring(0, 2);\n\n if (ref === \"ML\") {\n let published = this.backReference.substring(3, 3) === \"T\";\n let oid = this.backReference.substring(3);\n\n this.router.navigate([\"/registry/master-list\", oid, published]);\n }\n }\n\n this.showOriginalGeometry();\n }\n\n onPanelSubmit(applyInfo: { isChangeRequest: boolean, geoObject?: any, changeRequestId?: string }): void {\n // Save everything first\n this.geomService.saveEdits();\n\n this.bsModalRef = this.modalService.show(GenericModalComponent, { backdrop: true, class: \"error-white-space-pre\" });\n\n if (applyInfo.isChangeRequest) {\n const message = this.lService.decode(\"geoobject-editor.changerequest.submitted\");\n const buttons = [];\n\n buttons.push({\n label: this.lService.decode(\"geoobject-editor.cancel.returnList\"),\n onClick: () => { this.onPanelCancel(); },\n shouldClose: true,\n class: \"btn-primary\"\n });\n\n buttons.push({\n label: this.lService.decode(\"geoobject-editor.changerequest.view\"),\n onClick: () => {\n this.router.navigate([\"/registry/change-requests\", applyInfo.changeRequestId]);\n },\n shouldClose: true,\n class: \"btn-default\"\n });\n\n buttons.push({\n label: this.lService.decode(\"geoobject-editor.continueEditing\"),\n onClick: () => { },\n shouldClose: true,\n class: \"btn-default\"\n });\n\n this.bsModalRef.content.init(message, buttons);\n } else {\n const message = this.lService.decode(\"geoobject-editor.edit.submitted\");\n const buttons = [];\n\n buttons.push({\n label: this.lService.decode(\"geoobject-editor.cancel.returnList\"),\n onClick: () => { this.onPanelCancel(); },\n shouldClose: true,\n class: \"btn-primary\"\n });\n\n buttons.push({\n label: this.lService.decode(\"geoobject-editor.continueEditing\"),\n onClick: () => { },\n shouldClose: true,\n class: \"btn-default\"\n });\n\n this.bsModalRef.content.init(message, buttons);\n }\n }\n\n ngOnDestroy(): void {\n this.geomService.destroy();\n }\n\n ngAfterViewInit() {\n const layer = this.baseLayers[0];\n // eslint-disable-next-line no-import-assign\n this.map = new Map({\n container: \"dataset-map\",\n style: {\n version: 8,\n name: layer.name,\n metadata: {\n \"mapbox:autocomposite\": true\n },\n sources: {\n \"mapbox-satellite\": {\n type: \"raster\",\n url: layer.url,\n tileSize: 256\n }\n },\n sprite: layer.sprite,\n glyphs: window.location.protocol + \"//\" + window.location.host + acp + \"/glyphs/{fontstack}/{range}.pbf\",\n layers: [\n // {\n // \"id\": layer.id,\n // \"type\": 'raster',\n // \"source\": 'mapbox-satellite',\n // }\n ]\n },\n zoom: 2,\n attributionControl: false,\n center: [-78.880453, 42.897852]\n });\n\n this.map.on(\"load\", () => {\n this.initMap();\n });\n }\n\n onModeChange(value: boolean): void {\n this.isEdit = value;\n this.geomService.destroy(false);\n }\n\n initMap(): void {\n if (this.code !== \"__NEW__\") {\n this.service.getGeoObjectBoundsAtDate(this.code, this.typeCode, this.date).then(bounds => {\n if (bounds) {\n let llb = new LngLatBounds([bounds[0], bounds[1]], [bounds[2], bounds[3]]);\n\n let padding = 50;\n let maxZoom = 20;\n\n // Zoom level was requested to be reduced when displaying point types as per #420\n if (this.type.geometryType === \"POINT\" || this.type.geometryType === \"MULTIPOINT\") {\n padding = 100;\n maxZoom = 12;\n }\n\n this.map.fitBounds(llb, { padding: padding, animate: false, maxZoom: maxZoom });\n }\n });\n }\n\n this.map.on(\"style.load\", () => {\n this.addLayers();\n });\n\n this.addLayers();\n\n // Add zoom and rotation controls to the map.\n this.map.addControl(new NavigationControl({ visualizePitch: true }));\n this.map.addControl(new AttributionControl({ compact: true }), \"bottom-right\");\n\n this.map.on(\"click\", this.datasetId + \"-points\", (event: any) => {\n this.handleMapClickEvent(event);\n });\n\n this.map.on(\"click\", this.datasetId + \"-polygon\", (event: any) => {\n this.handleMapClickEvent(event);\n });\n\n this.showOriginalGeometry();\n }\n\n showOriginalGeometry() {\n this.addVectorLayer(this.datasetId);\n }\n\n hideOriginalGeometry() {\n this.removeVectorLayer(this.datasetId);\n }\n\n addLayers(): void {\n this.map.addLayer({\n type: \"raster\",\n id: \"satellite-map\",\n source: \"mapbox-satellite\"\n });\n\n this.vectorLayers.forEach(vLayer => {\n this.addVectorLayer(vLayer);\n });\n }\n\n handleBasemapStyle(layer: any): void {\n if (layer.id === \"streets-v11\") {\n this.map.setStyle(layer.url);\n } else if (layer.id === \"satellite-v9\") {\n this.map.setStyle({\n version: 8,\n name: layer.name,\n metadata: {\n \"mapbox:autocomposite\": true\n },\n sources: {\n \"mapbox-satellite\": {\n type: \"raster\",\n url: layer.url,\n tileSize: 256\n }\n },\n sprite: layer.sprite,\n glyphs: window.location.protocol + \"//\" + window.location.host + acp + \"/glyphs/{fontstack}/{range}.pbf\",\n layers: [\n {\n id: layer.id,\n type: \"raster\",\n source: \"mapbox-satellite\"\n }\n ]\n });\n }\n }\n\n onContextLayerChange(layer: ContextLayer): void {\n if (layer.active) {\n this.addVectorLayer(layer.oid);\n } else {\n this.removeVectorLayer(layer.oid);\n }\n }\n\n removeVectorLayer(source: string): void {\n const index = this.vectorLayers.indexOf(source);\n\n if (index !== -1) {\n this.map.removeLayer(source + \"-points\");\n this.map.removeLayer(source + \"-polygon\");\n this.map.removeLayer(source + \"-points-selected\");\n this.map.removeLayer(source + \"-polygon-selected\");\n this.map.removeLayer(source + \"-label\");\n this.map.removeSource(source);\n\n this.vectorLayers.splice(index, 1);\n }\n }\n\n addVectorLayer(source: string): void {\n const index = this.vectorLayers.indexOf(source);\n\n if (index === -1) {\n const prevLayer = (source !== this.datasetId) ? this.datasetId + \"-points\" : null;\n\n let protocol = window.location.protocol;\n let host = window.location.host;\n\n this.map.addSource(source, {\n type: \"vector\",\n tiles: [protocol + \"//\" + host + acp + \"/master-list/tile?x={x}&y={y}&z={z}&config=\" + encodeURIComponent(JSON.stringify({ oid: source }))]\n });\n\n // Point layer\n this.map.addLayer({\n id: source + \"-points\",\n type: \"circle\",\n source: source,\n \"source-layer\": \"context\",\n paint: {\n \"circle-radius\": 10,\n \"circle-color\": DEFAULT_COLOR,\n \"circle-stroke-width\": 2,\n \"circle-stroke-color\": \"#FFFFFF\"\n },\n filter: [\"all\",\n [\"match\", [\"geometry-type\"], [\"Point\", \"MultiPont\"], true, false]\n ]\n }, prevLayer);\n\n // Polygon layer\n this.map.addLayer({\n id: source + \"-polygon\",\n type: \"fill\",\n source: source,\n \"source-layer\": \"context\",\n layout: {},\n paint: {\n \"fill-color\": DEFAULT_COLOR,\n \"fill-opacity\": 0.8,\n \"fill-outline-color\": \"black\"\n },\n filter: [\"all\",\n [\"match\", [\"geometry-type\"], [\"Polygon\", \"MultiPolygon\"], true, false]\n ]\n }, prevLayer);\n\n // Selected object layers\n if (source === this.datasetId) {\n this.map.addLayer({\n id: source + \"-points-selected\",\n type: \"circle\",\n source: source,\n \"source-layer\": \"context\",\n paint: {\n \"circle-radius\": 10,\n \"circle-color\": SELECTED_COLOR,\n \"circle-stroke-width\": 2,\n \"circle-stroke-color\": \"#FFFFFF\"\n },\n filter: [\"all\",\n [\"==\", [\"get\", \"code\"], this.code != null ? this.code : \"\"],\n [\"match\", [\"geometry-type\"], [\"Point\", \"MultiPont\"], true, false]\n ]\n }, prevLayer);\n\n this.map.addLayer({\n id: source + \"-polygon-selected\",\n type: \"fill\",\n source: source,\n \"source-layer\": \"context\",\n layout: {},\n paint: {\n \"fill-color\": SELECTED_COLOR,\n \"fill-opacity\": 0.8,\n \"fill-outline-color\": \"black\"\n },\n filter: [\"all\",\n [\"==\", [\"get\", \"code\"], this.code != null ? this.code : \"\"],\n [\"match\", [\"geometry-type\"], [\"Polygon\", \"MultiPolygon\"], true, false]\n ]\n }, prevLayer);\n }\n\n // Label layer\n this.map.addLayer({\n id: source + \"-label\",\n source: source,\n \"source-layer\": \"context\",\n type: \"symbol\",\n paint: {\n \"text-color\": \"black\",\n \"text-halo-color\": \"#fff\",\n \"text-halo-width\": 2\n },\n layout: {\n \"text-field\": [\"case\",\n [\"has\", \"displayLabel_\" + navigator.language.toLowerCase()],\n [\"coalesce\", [\"string\", [\"get\", \"displayLabel_\" + navigator.language.toLowerCase()]], [\"string\", [\"get\", \"displayLabel\"]]],\n [\"string\", [\"get\", \"displayLabel\"]]\n ],\n \"text-font\": [\"NotoSansRegular\"],\n \"text-offset\": [0, 0.6],\n \"text-anchor\": \"top\",\n \"text-size\": 12\n }\n }, prevLayer);\n\n this.vectorLayers.push(source);\n }\n }\n\n onFeatureChange(): void {\n // Refresh the layer\n this.hideOriginalGeometry();\n this.showOriginalGeometry();\n }\n\n handleMapClickEvent(event: any): void {\n if (!this.isEdit && event.features != null && event.features.length > 0) {\n const feature = event.features[0];\n\n if (feature.properties.code != null && this.code !== feature.properties.code) {\n this.code = feature.properties.code;\n\n // Update the filter properties\n this.map.setFilter(this.datasetId + \"-points-selected\", [\"all\",\n [\"==\", [\"get\", \"code\"], this.code != null ? this.code : \"\"],\n [\"match\", [\"geometry-type\"], [\"Point\", \"MultiPont\"], true, false]\n ]);\n\n this.map.setFilter(this.datasetId + \"-polygon-selected\", [\"all\",\n [\"==\", [\"get\", \"code\"], this.code != null ? this.code : \"\"],\n [\"match\", [\"geometry-type\"], [\"Polygon\", \"MultiPolygon\"], true, false]\n ]);\n }\n }\n }\n\n onNewGeoObject(): void {\n this.code = \"__NEW__\";\n }\n\n formatDate(date: Date): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n public error(err: HttpErrorResponse): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n}\n","
\n \n \n\n\n
\n\n
\n
\n
\n
\n \n
\n

{{type.label.localizedValue}}

\n

: {{formatDate(forDate)}}

\n
\n \n \n
\n
\n
\n\n
\n
\n\n
\n \n \n
\n \n \n
\n \n \n \n \n
\n \n
\n
\n\n
\n
\n
\n
\n
\n
","import { Component } from \"@angular/core\";\n\n@Component({\n\n selector: \"historical-event-module\",\n templateUrl: \"./historical-event-module.component.html\",\n styleUrls: [],\n})\nexport class HistoricalEventModuleComponent {\n\n tab: string = 'HISTORICAL-EVENT';\n\n handleTab(tab: string): void {\n this.tab = tab;\n }\n\n}\n","
\n \n \n\n
\n\n
\n
\n
\n
\n

\n \n \n

\n
\n\n
\n\n
\n
\n
\n\n \n \n \n \n \n \n\n
\n
\n\n
\n
\n
\n
\n \n \n
\n
\n\n
\n
\n\n
\n
\n
\n
","import { Component, ViewEncapsulation } from \"@angular/core\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { trigger, style, animate, transition } from \"@angular/animations\";\nimport { BsModalRef, BsModalService } from \"ngx-bootstrap/modal\";\n\nimport { ConfirmModalComponent, ErrorHandler } from \"@shared/component\";\nimport { PageResult } from \"@shared/model/core\";\nimport { TransitionEventService } from \"@registry/service/transition-event.service\";\nimport { TransitionEvent } from \"@registry/model/transition-event\";\nimport { TransitionEventModalComponent } from \"./transition-event-modal.component\";\nimport { AuthService, DateService, LocalizationService } from \"@shared/service\";\nimport { IOService } from \"@registry/service\";\n\n@Component({\n\n selector: \"transition-event-table\",\n templateUrl: \"./transition-event-table.component.html\",\n styleUrls: [\"./transition-event-table.css\"],\n encapsulation: ViewEncapsulation.None,\n animations: [\n [\n trigger(\"fadeInOut\", [\n transition(\":enter\", [\n style({\n opacity: 0\n }),\n animate(\"300ms\")\n ]),\n transition(\":leave\",\n animate(\"100ms\",\n style({\n opacity: 0\n })\n )\n )\n ]),\n trigger(\"fadeIn\", [\n transition(\":enter\", [\n style({\n opacity: 0\n }),\n animate(\"500ms\")\n ])\n ])\n ]\n ]\n})\nexport class TransitionEventTableComponent {\n\n page: PageResult = {\n count: 0,\n pageNumber: 1,\n pageSize: 10,\n resultSet: []\n };\n\n attrConditions: any = [];\n\n dateCondition = {\n attribute: \"eventDate\",\n startDate: \"\",\n endDate: \"\"\n };\n\n beforeTypeCondition = {\n attribute: \"beforeTypeCode\",\n value: \"\"\n };\n\n /*\n * List of geo object types from the system\n */\n types: { label: string, code: string }[] = [];\n\n bsModalRef: BsModalRef;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: TransitionEventService, private modalService: BsModalService, private iService: IOService, public dateService: DateService, private authService: AuthService, private localizeService: LocalizationService) { }\n\n ngOnInit(): void {\n this.refresh();\n\n this.attrConditions.push(this.dateCondition);\n this.attrConditions.push(this.beforeTypeCondition);\n\n this.iService.listGeoObjectTypes(false).then(types => {\n let myOrgTypes = [];\n for (let i = 0; i < types.length; ++i) {\n const orgCode = types[i].orgCode;\n const typeCode = types[i].superTypeCode != null ? types[i].superTypeCode : types[i].code;\n\n if (this.authService.isGeoObjectTypeRM(orgCode, typeCode)) {\n myOrgTypes.push(types[i]);\n }\n }\n this.types = myOrgTypes;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n refresh(pageNumber: number = 1): void {\n this.service.getPage(this.page.pageSize, pageNumber, this.attrConditions).then(page => {\n this.page = page;\n }).catch((response: HttpErrorResponse) => {\n this.error(response);\n });\n }\n\n filterChange(): void {\n this.refresh(this.page.pageNumber);\n }\n\n onCreate(): void {\n this.bsModalRef = this.modalService.show(TransitionEventModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n this.bsModalRef.content.init(false);\n this.bsModalRef.content.onEventChange.subscribe((event: TransitionEvent) => {\n this.refresh(this.page.pageNumber);\n });\n }\n\n deleteEvent(jsEvent, transitionEvent: TransitionEvent): void {\n jsEvent.stopPropagation();\n\n this.bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n this.bsModalRef.content.message = this.localizeService.decode(\"confirm.modal.verify.delete\") + \" [\" + transitionEvent.eventId + \"]\";\n this.bsModalRef.content.data = transitionEvent;\n this.bsModalRef.content.type = \"DANGER\";\n this.bsModalRef.content.submitText = this.localizeService.decode(\"modal.button.delete\");\n\n ( this.bsModalRef.content).onConfirm.subscribe(data => {\n this.service.delete(transitionEvent).then(response => {\n this.refresh(this.page.pageNumber);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n });\n }\n\n onView(event: TransitionEvent): void {\n this.service.getDetails(event.oid).then(response => {\n this.bsModalRef = this.modalService.show(TransitionEventModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n this.bsModalRef.content.init(false, response);\n this.bsModalRef.content.onEventChange.subscribe((event: TransitionEvent) => {\n this.refresh(this.page.pageNumber);\n });\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n public error(err: any): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n}\n","\n
{{model.name }} : {{ model.code }}
\n
\n\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n
\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n
{{formatDate(event.eventDate)}}
\n
\n
{{event.description.localizedValue}}
\n
\n
{{event.beforeTypeLabel}}
\n
\n
{{event.afterTypeLabel}}
\n
\n
{{event.eventId}}
\n
\n
\n
\n \n
\n
\n
\n
0\" class=\"solid-table-footer\">\n \n
\n
\n
\n
\n
","/* eslint-disable indent */\n/* eslint-disable quotes */\nimport { Component, OnDestroy, OnInit, ViewChild, ChangeDetectorRef } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Observable, Subject } from \"rxjs\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { IOService, RegistryService } from \"@registry/service\";\nimport { DateService } from \"@shared/service/date.service\";\n\nimport { ErrorHandler } from \"@shared/component\";\nimport { LocalizationService, AuthService } from \"@shared/service\";\nimport { Transition, TransitionEvent } from \"@registry/model/transition-event\";\nimport { TransitionEventService } from \"@registry/service/transition-event.service\";\n\nimport { DndDropEvent } from \"ngx-drag-drop\";\nimport * as uuid from \"uuid\";\n\n/* D3 Stuffs */\nimport * as d3 from \"d3\";\n\nexport const DRAW_SCALE_MULTIPLIER: number = 1.0;\n\nexport const VIEWPORT_SCALE_FACTOR_X: number = 1.0;\nexport const VIEWPORT_SCALE_FACTOR_Y: number = 1.0;\n\nexport const GRAPH_ACTIVE_TRANSITION_HIGHLIGHT_COLOR: string = \"#6BA542\"; // #3E2A5A or \"purple\"\nexport const GRAPH_GO_LABEL_COLOR: string = \"black\";\nexport const GRAPH_CIRCLE_FILL: string = \"#999\";\nexport const GRAPH_LINE_COLOR: string = \"#999\";\n\n@Component({\n selector: \"transition-event-modal\",\n templateUrl: \"./transition-event-modal.component.html\",\n styleUrls: [\"./transition-event-modal.component.css\"]\n})\nexport class TransitionEventModalComponent implements OnInit, OnDestroy {\n\n @ViewChild(\"typeaheadParent\") typeaheadParent;\n\n message: string = null;\n\n event: TransitionEvent = null;\n\n activeTransition: Transition = null;\n\n /*\n * Observable subject for MasterList changes. Called when an update is successful\n */\n onEventChange: Subject;\n\n /*\n * All Geo-ObjectTypes in the system\n */\n allTypes: { label: string, code: string, orgCode: string, superTypeCode?: string }[] = [];\n\n /*\n * Types that we have write permission to\n */\n types: { label: string, code: string, orgCode: string, superTypeCode?: string }[] = [];\n\n /*\n * List of geo object types from the system\n */\n readonly: boolean = false;\n\n valid: boolean = false;\n\n draggable = {\n // note that data is handled with JSON.stringify/JSON.parse\n // only set simple data or POJO's as methods will be lost\n data: \"myDragData\",\n effectAllowed: \"all\",\n disable: false,\n handle: true\n };\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: TransitionEventService, private changeDetector: ChangeDetectorRef, public rService: RegistryService, private iService: IOService, private lService: LocalizationService, public bsModalRef: BsModalRef, private authService: AuthService,\n private dateService: DateService) { }\n\n ngOnInit(): void {\n this.onEventChange = new Subject();\n\n this.iService.listGeoObjectTypes(false).then(types => {\n let myOrgTypes = [];\n for (let i = 0; i < types.length; ++i) {\n const orgCode = types[i].orgCode;\n const typeCode = types[i].superTypeCode != null ? types[i].superTypeCode : types[i].code;\n\n if (this.authService.isGeoObjectTypeRM(orgCode, typeCode)) {\n myOrgTypes.push(types[i]);\n }\n }\n this.types = myOrgTypes;\n this.allTypes = types;\n\n this.readonly = this.readonly || this.event.permissions.indexOf(\"WRITE\") === -1;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n ngOnDestroy(): void {\n this.onEventChange.unsubscribe();\n }\n\n init(readonly: boolean, event?: TransitionEvent): void {\n this.readonly = readonly;\n\n if (event != null) {\n this.event = event;\n } else {\n this.event = {\n beforeTypeCode: \"\",\n afterTypeCode: \"\",\n eventDate: \"\",\n permissions: [\"WRITE\", \"READ\", \"DELETE\", \"CREATE\"],\n description: this.lService.create(),\n transitions: []\n };\n }\n\n setTimeout(() => {\n this.onChange();\n }, 0);\n }\n\n setActiveTransition(transition: Transition) {\n let highlight = (active: boolean, trans: Transition) => {\n let colorable = d3.selectAll('#svgHolder p[data-goCode=\"' + trans.sourceCode + '\"][data-depth=\"1\"],p[data-goCode=\"' + trans.targetCode + '\"][data-depth=\"2\"]');\n colorable.style(\"color\", active ? GRAPH_ACTIVE_TRANSITION_HIGHLIGHT_COLOR : GRAPH_GO_LABEL_COLOR);\n\n let fillable = d3.selectAll('#svgHolder circle[data-goCode=\"' + trans.sourceCode + '\"][data-depth=\"1\"],circle[data-goCode=\"' + trans.targetCode + '\"][data-depth=\"2\"]');\n fillable.attr(\"fill\", active ? GRAPH_ACTIVE_TRANSITION_HIGHLIGHT_COLOR : GRAPH_CIRCLE_FILL);\n\n let strokeable = d3.selectAll('#svgHolder path[data-transOid=\"' + trans.oid + '\"]');\n strokeable.attr(\"stroke\", active ? GRAPH_ACTIVE_TRANSITION_HIGHLIGHT_COLOR : GRAPH_LINE_COLOR);\n };\n\n if (this.activeTransition != null) {\n highlight(false, this.activeTransition);\n }\n\n this.activeTransition = transition;\n\n if (transition != null) {\n highlight(true, transition);\n }\n }\n\n onCreate(): void {\n this.event.transitions.push({\n oid: uuid.v4(),\n isNew: true,\n sourceCode: \"\",\n sourceType: \"\",\n targetCode: \"\",\n targetType: \"\",\n transitionType: \"\",\n impact: \"\",\n order: this.event.transitions.length\n });\n }\n\n onChange(): void {\n this.calculateDerivedAttributes();\n this.renderVisual();\n\n // Register highlight event listeners\n let that = this;\n\n setTimeout(() => {\n d3.selectAll(\".transition\").on(\"mouseover\", function(mouseEvent) {\n let d3This: any = this;\n let transitionOid = d3This.getAttribute(\"data-transOid\");\n\n let index = that.event.transitions.findIndex(trans => trans.oid === transitionOid);\n\n that.setActiveTransition(that.event.transitions[index]);\n });\n d3.select(\"#transition-container\").on(\"mouseleave\", function(mouseEvent) {\n that.setActiveTransition(null);\n });\n }, 0);\n\n this.validChange();\n }\n\n getTypeAheadObservable(isSource: boolean, transition: Transition, typeCode: string, property: string): Observable {\n let date = isSource ? this.dateService.addDay(-1, this.event.eventDate) : this.event.eventDate;\n return new Observable((observer: any) => {\n this.rService.getGeoObjectSuggestions(transition[property], typeCode, null, null, null, date, date).then(results => {\n let filtered = results.filter(result => {\n let pair = {\n sourceCode: isSource ? result.code : transition.sourceCode,\n targetCode: isSource ? transition.targetCode : result.code\n };\n\n for (let i = 0; i < this.event.transitions.length; ++i) {\n let transition = this.event.transitions[i];\n\n if (transition.sourceCode === pair.sourceCode && transition.targetCode === pair.targetCode) {\n return false;\n }\n }\n\n return true;\n });\n\n observer.next(filtered);\n });\n });\n }\n\n typeaheadOnSelect(selection: any, transition: Transition, property: string): void {\n if (property === \"targetText\") {\n transition.targetCode = selection.item.code;\n transition.targetType = selection.item.typeCode;\n transition.targetText = selection.item.name + \" (\" + selection.item.code + \")\";\n } else {\n transition.sourceCode = selection.item.code;\n transition.sourceType = selection.item.typeCode;\n transition.sourceText = selection.item.name + \" (\" + selection.item.code + \")\";\n }\n\n this.onChange();\n }\n\n clear(transition: Transition, property: string): void {\n if (property === \"targetText\") {\n transition.targetCode = \"\";\n transition.targetType = \"\";\n transition.targetText = \"\";\n } else {\n transition.sourceCode = \"\";\n transition.sourceType = \"\";\n transition.sourceText = \"\";\n }\n\n this.onChange();\n }\n\n localizeTransitionImpact(impact: string): string {\n return this.lService.decode(\"transition.event.\" + impact.toLowerCase());\n }\n\n localizeTransitionType(type: string): string {\n return type == null ? null : this.lService.decode(\"transition.event.type.\" + type.toLowerCase());\n }\n\n validChange() {\n setTimeout(() => {\n this.valid = (this.event.eventDate != null && this.event.eventDate.length > 0) &&\n this.event.transitions.length > 0 &&\n this.event.afterTypeCode != null &&\n this.event.beforeTypeCode != null;\n }, 0);\n }\n\n remove(index: number): void {\n this.event.transitions.splice(index, 1);\n this.onChange();\n }\n\n onSubmit(): void {\n this.service.apply(this.event).then(response => {\n this.onEventChange.next(response);\n this.bsModalRef.hide();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onCancel(): void {\n this.bsModalRef.hide();\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n calculateDerivedAttributes(): void {\n let stats = {};\n this.event.transitions.forEach(trans => {\n if (trans.sourceCode != null && trans.sourceCode !== \"\" && trans.targetCode != null && trans.targetCode !== \"\") {\n if (stats[trans.sourceCode] == null) {\n stats[trans.sourceCode] = {\n source: 1,\n target: 0\n };\n } else {\n stats[trans.sourceCode].source++;\n }\n\n if (stats[trans.targetCode] == null) {\n stats[trans.targetCode] = {\n source: 0,\n target: 1\n };\n } else {\n stats[trans.targetCode].target++;\n }\n }\n });\n\n this.event.transitions.forEach(trans => {\n if (trans.sourceCode != null && trans.sourceCode !== \"\" && trans.targetCode != null && trans.targetCode !== \"\") {\n let sourceStats = stats[trans.sourceCode];\n let targetStats = stats[trans.targetCode];\n\n let updown = \"UPGRADE\";\n if (trans.transitionType != null && trans.transitionType.indexOf(\"DOWNGRADE\") !== -1) {\n updown = \"DOWNGRADE\";\n }\n\n if (sourceStats.source === 1 && targetStats.target === 1) {\n trans.transitionType = \"REASSIGN\";\n trans.impact = \"FULL\";\n } else if (sourceStats.source > 1) {\n trans.impact = \"PARTIAL\";\n\n if (targetStats.target > 1) {\n trans.transitionType = \"MERGE\";\n } else {\n trans.transitionType = \"SPLIT\";\n }\n } else if (targetStats.target > 1) {\n trans.impact = \"FULL\";\n trans.transitionType = \"MERGE\";\n }\n\n if (trans.sourceType !== trans.targetType) {\n if (trans.transitionType === \"REASSIGN\") {\n trans.typeUpdown = updown;\n delete trans.typePart;\n trans.transitionType = trans.typeUpdown;\n } else {\n trans.typeUpdown = updown;\n trans.typePart = trans.transitionType;\n trans.transitionType = trans.typeUpdown + \"_\" + trans.typePart;\n }\n } else {\n delete trans.typePart;\n }\n }\n });\n }\n\n onChangeTypeUpdown(transition: any): void {\n if (transition.typePart) {\n transition.transitionType = transition.typeUpdown + \"_\" + transition.typePart;\n } else {\n transition.transitionType = transition.typeUpdown;\n }\n }\n\n /* Drag Drop Transitions */\n onDragStart(event:DragEvent) {\n // console.log(\"drag started\", JSON.stringify(event, null, 2));\n }\n\n onDragEnd(event:DragEvent) {\n // console.log(\"drag ended\", JSON.stringify(event, null, 2));\n }\n\n onDragged(item: any, type: string) {\n // console.log(\"onDragged\", item, type);\n }\n\n onDraggableCopied(event:DragEvent) {\n // console.log(\"draggable copied\", JSON.stringify(event, null, 2));\n }\n\n onDraggableLinked(event:DragEvent) {\n // console.log(\"draggable linked\", JSON.stringify(event, null, 2));\n }\n\n onDraggableMoved(event:DragEvent) {\n // console.log(\"draggable moved\", JSON.stringify(event, null, 2));\n }\n\n onDragCanceled(event:DragEvent) {\n // console.log(\"drag cancelled\", JSON.stringify(event, null, 2));\n }\n\n onDragover(event:DragEvent) {\n // console.log(\"dragover\", JSON.stringify(event, null, 2));\n }\n\n onDrop(event:DndDropEvent) {\n let transition: Transition = event.data;\n let index: number = event.index;\n\n // Remove from array\n this.event.transitions.splice(transition.order, 1);\n\n // Calculate new index, which may have shifted due to us removing the transition.\n let newIndex = (index > transition.order) ? index - 1 : index;\n\n // Insert us back into the array at newIndex\n this.event.transitions.splice(newIndex, 0, transition);\n\n // Update order for all transitions as elements have shifted\n for (let i = 0; i < this.event.transitions.length; ++i) {\n this.event.transitions[i].order = i;\n }\n\n window.setTimeout(() => { this.onChange(); }, 0);\n }\n\n /* D3 Stuff */\n private renderVisual(): void {\n if (this.event.transitions == null || this.event.transitions.length === 0) {\n d3.select(\"#svg\").remove();\n return;\n }\n d3.select(\"#svg\").remove();\n\n let svg = d3.select(\"#svg\");\n\n if (svg.node() == null) {\n svg = d3.select(\"#svgHolder\").append(\"svg\");\n svg.attr(\"id\", \"svg\");\n }\n\n let appData = this.generateAppData();\n let renderingData = this.generateRenderingData(appData);\n\n /*\n let autoBox = function autoBox() {\n document.body.appendChild(this);\n const { x, y, width, height } = svg.node().getBBox();\n document.body.removeChild(this);\n return [x, y, width, height];\n };\n */\n\n let chart = () => {\n const root = renderingData.d3;\n\n let links = svg.append(\"g\")\n .attr(\"fill\", \"none\")\n .attr(\"stroke\", GRAPH_LINE_COLOR)\n .attr(\"stroke-opacity\", 0.4)\n .attr(\"stroke-width\", 0.4 * DRAW_SCALE_MULTIPLIER);\n links.selectAll(\"path\")\n .data(root.links())\n .join(\"path\")\n .style(\"display\", function(d: any) {\n return d.source.depth === 0 ? \"none\" : null;\n })\n .attr(\"d\", (d: any) => `\n M${d.target.y},${d.target.x}\n ${d.source.y},${d.source.x}\n `)\n .attr(\"data-transOid\", (d: any) => d.source.data.name === \"root\" ? null : appData.linkDataMappings[d.source.data.code + \":\" + d.target.data.code]);\n\n svg.append(\"g\")\n .selectAll(\"circle\")\n .data(root.descendants())\n .join(\"circle\")\n .style(\"display\", function(d: any) {\n return d.depth === 0 ? \"none\" : null;\n })\n .attr(\"cx\", (d: any) => d.y)\n .attr(\"cy\", (d: any) => d.x)\n .attr(\"fill\", (d: any) => GRAPH_CIRCLE_FILL)\n .attr(\"r\", 0.9 * DRAW_SCALE_MULTIPLIER)\n .attr(\"data-goCode\", (d: any) => d.data.code)\n .attr(\"data-depth\", (d: any) => d.depth);\n\n svg.append(\"g\")\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"font-size\", 2 * DRAW_SCALE_MULTIPLIER)\n .attr(\"stroke-linejoin\", \"round\")\n .attr(\"stroke-width\", 3)\n .selectAll(\"foreignObject\")\n .data(root.descendants())\n .join(\"foreignObject\")\n .style(\"display\", function(d: any) {\n return d.depth === 0 ? \"none\" : null;\n })\n .attr(\"x\", (d: any) => (d.y + ((d.depth === 1) ? -13 : 1)))\n .attr(\"y\", (d: any) => (d.x) + ((d.depth === 1) ? -2 : -3))\n .attr(\"font-size\", \"0.7em\")\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"font-weight\", \"bold\")\n .attr(\"width\", 12)\n .attr(\"height\", 8)\n .append(\"xhtml:p\")\n .attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\")\n .attr(\"data-goCode\", (d: any) => d.data.code)\n .attr(\"data-depth\", (d: any) => d.depth)\n .style(\"margin\", \"0.5px\")\n .style(\"vertical-align\", \"middle\")\n .style(\"line-height\", 1.5)\n .style(\"color\", GRAPH_GO_LABEL_COLOR)\n .style(\"padding-left\", \"0.4px\")\n .style(\"padding-top\", \"0.2px\")\n .html((d: any) => d.data.name)\n .filter((d: any) => d.depth === 1)\n .style(\"text-align\", \"right\");\n\n renderingData.multipleParentLinks.forEach(function(link) {\n links.append(\"path\")\n .attr(\"d\", () => `\n M${link.parent.y},${link.parent.x}\n ${link.child.y},${link.child.x}\n `)\n .attr(\"data-transOid\", () => link.oid);\n });\n\n // return svg.attr(\"viewBox\", autoBox).node();\n };\n\n chart();\n\n this.calculateSvgViewBox();\n }\n\n generateRenderingData(appData: any): any {\n let width = 100;\n\n const root: any = d3.hierarchy(appData.d3Data).sort((a, b) => d3.ascending(a.data.order, b.data.order));\n root.dx = 5 * DRAW_SCALE_MULTIPLIER;\n root.dy = width / (root.height + 1);\n let d3RenderingData = d3.tree().nodeSize([root.dx, root.dy]).separation(() => 1.5)(root);\n\n let multipleParentLinks = [];\n appData.multipleParentLinks.forEach(function(link) {\n let parentNode = root.find(node => node.data.isSource && node.data.code === link.parent.code);\n let childNode = root.find(node => !node.data.isSource && node.data.code === link.child.code);\n\n if (parentNode != null && childNode != null) {\n multipleParentLinks.push({\n parent: parentNode,\n child: childNode,\n oid: link.oid\n });\n }\n });\n\n return {\n d3: d3RenderingData,\n multipleParentLinks: multipleParentLinks\n };\n }\n\n generateAppData(): any {\n let children = [];\n let multipleParentLinks = []; // D3 can't handle multiple parents so we have to draw them ourselves.\n let linkDataMappings = {}; // D3 doesn't allow us to put data on the link itself. Our link needs an oid. So this is a hack to store data on a link.\n\n let isChildOfOtherNode = (code: string) => {\n for (let i = 0; i < children.length; ++i) {\n let child = children[i];\n\n if (child.children) {\n for (let j = 0; j < child.children.length; ++j) {\n let grandChild = child.children[j];\n\n if (grandChild.code === code) {\n return true;\n }\n }\n }\n }\n\n return false;\n };\n\n this.event.transitions.forEach(trans => {\n if (trans.sourceCode != null && trans.sourceCode !== \"\" && trans.targetCode != null && trans.targetCode !== \"\") {\n let index = children.findIndex(child => child.code === trans.sourceCode);\n linkDataMappings[trans.sourceCode + \":\" + trans.targetCode] = trans.oid;\n\n let childExists = isChildOfOtherNode(trans.targetCode);\n let grandChild = null;\n if (!childExists) {\n grandChild = {\n name: trans.targetText,\n code: trans.targetCode,\n isSource: false,\n children: []\n };\n } else {\n multipleParentLinks.push({\n oid: trans.oid,\n child: {\n code: trans.targetCode,\n text: trans.targetText,\n type: trans.targetType\n },\n parent: {\n code: trans.sourceCode,\n text: trans.sourceText,\n type: trans.sourceType\n }\n });\n }\n\n if (index !== -1) {\n let child = children[index];\n\n let index2 = child.children.findIndex(child => child.code === trans.targetCode);\n\n if (index2 != null && grandChild != null) {\n child.children.push(grandChild);\n }\n } else {\n let child: any = {\n name: trans.sourceText,\n code: trans.sourceCode,\n children: [],\n isSource: true\n };\n\n if (grandChild != null) {\n child.children.push(grandChild);\n }\n\n children.push(child);\n }\n }\n });\n\n return {\n d3Data: {\n name: \"root\",\n children: children\n },\n multipleParentLinks: multipleParentLinks,\n linkDataMappings: linkDataMappings\n };\n }\n\n calculateSvgViewBox(): void {\n let svg: any = d3.select(\"#svg\");\n let svgNode: any = svg.node();\n\n let { x, y, width, height } = svgNode.getBBox();\n\n const xPadding = 0;\n const yPadding = 2;\n svg.attr(\"viewBox\", (x - xPadding) + \" \" + (y - yPadding) + \" \" + (width + xPadding * 2) * VIEWPORT_SCALE_FACTOR_X + \" \" + (height + yPadding * 2) * VIEWPORT_SCALE_FACTOR_Y);\n\n // width = (width + xPadding * 2) * VIEWPORT_SCALE_FACTOR_X;\n // height = (height + yPadding * 2) * VIEWPORT_SCALE_FACTOR_Y;\n\n // d3.select(\"#svgHolder\").style(\"width\", width + \"px\");\n // d3.select(\"#svgHolder\").style(\"height\", height + \"px\");\n }\n\n}\n","\n
{{model.name }} : {{ model.code }}
\n
\n\n
\n
{{message}}
\n\n
\n\n
\n
\n\t\t
\n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t \n\t\t {{formatDate(event.eventDate)}}\n\t\t \n\t\t 0\">\n\t\t
\n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t\n\t\t
\n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t \n\t\t
\n\t\t
\n
\n \n
\n\t\t\t\t
\n\t\t\t\t \n\t\t\t\t \n\t\t\t\t
\n\t\t\t\t \n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t \n
\n \n \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n
\n \n\n
\n
\n
\n
\n\n \n \n \n\n \n \n \n
\n
\n \n \n
\n \n \n
\n
\n
\n
\n\n \n \n \n\n \n \n \n
\n
\n \n \n \n \n \n \n \n \n
\n
\n
\n \n \n \n
\n
\n\n
\n\n
\n
\n
\n
\n \n \n
\n
\n
\n\n
\n
\n
\n","import { Component, ViewEncapsulation } from \"@angular/core\";\nimport { HttpErrorResponse, HttpParams } from \"@angular/common/http\";\nimport { trigger, style, animate, transition } from \"@angular/animations\";\n\nimport { ErrorHandler } from \"@shared/component\";\nimport { PageResult } from \"@shared/model/core\";\nimport { TransitionEventService } from \"@registry/service/transition-event.service\";\nimport { HistoricalRow } from \"@registry/model/transition-event\";\nimport { AuthService, DateService } from \"@shared/service\";\nimport { IOService } from \"@registry/service\";\n\ndeclare let acp: string;\n\n@Component({\n\n selector: \"historical-report\",\n templateUrl: \"./historical-report.component.html\",\n styleUrls: [],\n encapsulation: ViewEncapsulation.None,\n animations: [\n [\n trigger(\"fadeInOut\", [\n transition(\":enter\", [\n style({\n opacity: 0\n }),\n animate(\"300ms\")\n ]),\n transition(\":leave\",\n animate(\"100ms\",\n style({\n opacity: 0\n })\n )\n )\n ]),\n trigger(\"fadeIn\", [\n transition(\":enter\", [\n style({\n opacity: 0\n }),\n animate(\"500ms\")\n ])\n ])\n ]\n ]\n})\nexport class HistoricalReportComponent {\n\n message: string = null;\n\n page: PageResult = {\n count: 0,\n pageNumber: 1,\n pageSize: 10,\n resultSet: []\n };\n\n data = {\n type: '',\n startDate: '',\n endDate: ''\n }\n\n types: { label: string, code: string }[] = [];\n\n isValid: boolean = false;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: TransitionEventService, private iService: IOService, private authService: AuthService,\n public dateService: DateService) { }\n\n ngOnInit(): void {\n\n this.iService.listGeoObjectTypes(true).then(types => {\n this.types = types.filter(t => {\n const orgCode = t.orgCode;\n const typeCode = t.superTypeCode != null ? t.superTypeCode : t.code;\n\n return this.authService.isGeoObjectTypeRM(orgCode, typeCode);\n });\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n refresh(pageNumber: number = 1): void {\n this.service.getHistoricalReport(this.data.type, this.data.startDate, this.data.endDate, this.page.pageSize, pageNumber).then(page => {\n this.page = page;\n }).catch((response: HttpErrorResponse) => {\n this.error(response);\n });\n }\n\n exportToExcel(): void {\n let params: HttpParams = new HttpParams();\n params = params.set(\"typeCode\", this.data.type.toString());\n params = params.set(\"startDate\", this.data.startDate.toString());\n params = params.set(\"endDate\", this.data.endDate.toString());\n\n window.location.href = acp + \"/transition-event/export-excel?\" + params.toString();\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n checkDates(): any {\n setTimeout(() => {\n this.isValid = (this.data.startDate != null && this.data.endDate != null && !this.dateService.after(this.data.startDate, this.data.endDate));\n }, 0);\n }\n\n public error(err: any): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n\n
\n
\n \n
\n \n
\n
\n
\n
\n \n
\n \n \n\t \n\t \n
\n\n \n
\n \n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n {{row.eventId}}\n \n {{formatDate(row.eventDate)}}\n \n {{row.eventType}}\n \n {{row.description.localizedValue}}\n \n {{row.beforeType}}\n \n {{row.beforeCode}}\n \n {{row.beforeLabel.localizedValue}}\n \n {{row.afterType}}\n \n {{row.afterCode}}\n \n {{row.afterLabel.localizedValue}}\n
\n
\n
0\" class=\"solid-table-footer\">\n \n
\n
\n\n
\n
\n
","/* eslint-disable no-floating-decimal */\nimport * as d3 from \"d3\";\nimport { calculateTextWidth } from \"./svg-util\";\n\nimport { GeoObjectType } from \"@registry/model/registry\";\nimport { HierarchyType } from \"@registry/model/hierarchy\";\n\nimport { SvgHierarchyType } from \"./svg-hierarchy-type\";\nimport { HierarchyComponent, RELATED_NODE_BANNER_COLOR } from \"../hierarchy.component\";\n\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { ErrorHandler, ConfirmModalComponent, ErrorModalComponent } from \"@shared/component\";\nimport { LocalizationService, AuthService } from \"@shared/service\";\n\nexport class SvgHierarchyNode {\n\n private hierarchyComponent: HierarchyComponent;\n\n private svgHierarchyType: SvgHierarchyType;\n\n private geoObjectType: GeoObjectType;\n\n private treeNode: any;\n\n /*\n * Reference to the modal current showing\n */\n private bsModalRef: BsModalRef;\n\n constructor(hierarchyComponent: HierarchyComponent, svgHierarchyType: SvgHierarchyType, geoObjectType: GeoObjectType, treeNode: any,\n public localizeService: LocalizationService, public modalService: BsModalService, public authService: AuthService) {\n this.hierarchyComponent = hierarchyComponent;\n this.svgHierarchyType = svgHierarchyType;\n this.geoObjectType = geoObjectType;\n this.treeNode = treeNode;\n }\n\n getCode(): string {\n return this.geoObjectType.code;\n }\n\n setPos(x: number, y: number, dragging: boolean) {\n let bbox = this.getBbox();\n\n // Move the GeoObjectType with the pointer when they move their mouse\n d3.select(\".g-hierarchy[data-primary=true] .svg-got-body-rect[data-gotCode=\\\"\" + this.getCode() + \"\\\"]\")\n .classed(\"dragging\", dragging)\n .attr(\"x\", x)\n .attr(\"y\", y);\n\n d3.select(\".g-hierarchy[data-primary=true] .svg-got-header-rect[data-gotCode=\\\"\" + this.getCode() + \"\\\"]\")\n .classed(\"dragging\", dragging)\n .attr(\"x\", x)\n .attr(\"y\", y - SvgHierarchyType.gotRectH / 2 + 2);\n\n d3.select(\".g-hierarchy[data-primary=true] .svg-got-label-text[data-gotCode=\\\"\" + this.getCode() + \"\\\"]\")\n .classed(\"dragging\", dragging)\n .attr(\"x\", x + 5)\n .attr(\"y\", y + 1);\n\n d3.select(\".g-hierarchy[data-primary=true] .svg-got-relatedhiers-button[data-gotCode=\\\"\" + this.getCode() + \"\\\"]\")\n .classed(\"dragging\", dragging)\n .attr(\"x\", x + bbox.width - 20)\n .attr(\"y\", y + 17);\n\n // Move inherit and uninherit buttons with the node they're moving\n\n let inheritNode: any = d3.select(\".g-hierarchy[data-primary=true] .hierarchy-inherit-button[data-gotCode=\\\"\" + this.getCode() + \"\\\"]\").node();\n if (inheritNode != null) {\n const heritX = (x + bbox.width - 60);\n const heritY = (y + bbox.height - 24);\n let inheritBbox = inheritNode.getBBox();\n d3.select(\".g-hierarchy[data-primary=true] .hierarchy-inherit-button[data-gotCode=\\\"\" + this.getCode() + \"\\\"]\")\n .classed(\"dragging\", dragging)\n .attr(\"transform\", \"translate(\" + (heritX - inheritBbox.x) + \" \" + (heritY - inheritBbox.y) + \")\");\n }\n\n let uninheritNode: any = d3.select(\".g-hierarchy[data-primary=true] .hierarchy-uninherit-button[data-gotCode=\\\"\" + this.getCode() + \"\\\"]\").node();\n if (uninheritNode != null) {\n const heritX = (x + bbox.width - 71);\n const heritY = (y + bbox.height - 24);\n let uninheritBbox = uninheritNode.getBBox();\n d3.select(\".g-hierarchy[data-primary=true] .hierarchy-uninherit-button[data-gotCode=\\\"\" + this.getCode() + \"\\\"]\")\n .classed(\"dragging\", dragging)\n .attr(\"transform\", \"translate(\" + (heritX - uninheritBbox.x) + \" \" + (heritY - uninheritBbox.y) + \")\");\n }\n }\n\n getPos() {\n let select = d3.select(\".g-hierarchy[data-primary=true] .svg-got-body-rect[data-gotCode=\\\"\" + this.getCode() + \"\\\"]\");\n\n return { x: parseInt(select.attr(\"x\")), y: parseInt(select.attr(\"y\")) };\n }\n\n getBbox() {\n let select = d3.select(\".g-hierarchy[data-primary=true] .svg-got-body-rect[data-gotCode=\\\"\" + this.getCode() + \"\\\"]\");\n\n return { x: parseInt(select.attr(\"x\")), y: parseInt(select.attr(\"y\")) - 3, width: parseInt(select.attr(\"width\")), height: parseInt(select.attr(\"height\")) + 3 };\n }\n\n getTreeNode() {\n return this.treeNode;\n }\n\n hideRelatedHierarchy(): string {\n let existingSecondary = d3.select(\".g-hierarchy[data-primary=\\\"false\\\"]\");\n if (existingSecondary.node() != null) {\n existingSecondary.remove();\n this.hierarchyComponent.calculateSvgViewBox();\n\n let existingSecondaryCode = existingSecondary.attr(\"data-code\");\n return existingSecondaryCode;\n }\n }\n\n renderRelatedHierarchiesMenu() {\n let that = this;\n let existingMenu = d3.select(\".g-context-menu\");\n\n if (existingMenu.node() == null) {\n //let parent = d3.select('g.g-hierarchy-tree[data-code=\"' + this.svgHierarchyType.hierarchyType.code + '\"]');\n let parent = d3.select(\"#svg\");\n\n let contextMenuGroup = parent.append(\"g\").classed(\"g-context-menu\", true);\n\n let relatedHierarchies = this.svgHierarchyType.getRelatedHierarchies(this.getCode());\n\n const hasActionsPermissions = this.authService.isSRA() || this.authService.isOrganizationRA(this.svgHierarchyType.hierarchyType.organizationCode);\n\n let bbox = this.getBbox();\n let x = bbox.x + bbox.width - 5;\n let y = bbox.y + bbox.height / 2 - 8;\n const height = 20;\n const fontSize = 8;\n const widthPadding = 10;\n const borderColor = \"#aaaaaa\";\n const dividerColor = \"#e4e4e4\";\n const fontFamily = \"sans-serif\";\n const titleFontSize = 9;\n\n const titleLabel = this.hierarchyComponent.localize(\"hierarchy.content.relatedHierarchies\");\n const actionsTitle = this.hierarchyComponent.localize(\"hierarchy.content.actionsTitle\");\n const removeFromHierarchyLabel = this.hierarchyComponent.localize(\"hierarchy.content.removeFromHierarchy\");\n const noRelatedHierLabel = this.hierarchyComponent.localize(\"hierarchy.content.noRelatedHierarchies\");\n const hideRelatedHierarchyLabel = this.hierarchyComponent.localize(\"hierarchy.content.hideRelatedHierarchy\");\n const uninheritLabel = this.hierarchyComponent.localize(\"hierarchy.content.uninherit\");\n const inheritLabel = this.hierarchyComponent.localize(\"hierarchy.content.inherit\");\n\n let isSecondaryHierarchyRendered = (d3.select(\".g-hierarchy[data-primary=\\\"false\\\"]\").node() != null);\n\n let numActions = hasActionsPermissions ? (isSecondaryHierarchyRendered ? 2 : 1) : 0;\n\n // Calculate the width of our title\n let width = calculateTextWidth(titleLabel, titleFontSize);\n\n // Calculate with of remove text\n let removeWidth = calculateTextWidth(removeFromHierarchyLabel, fontSize);\n width = removeWidth > width ? removeWidth : width;\n\n if (isSecondaryHierarchyRendered) {\n // Calculate width of \"hide related hierarchy\" label\n let hideRelatedWidth = calculateTextWidth(hideRelatedHierarchyLabel, fontSize);\n width = hideRelatedWidth > width ? hideRelatedWidth : width;\n }\n\n if (this.treeNode.parent != null && this.treeNode.parent.data.inheritedHierarchyCode != null && this.treeNode.parent.data.inheritedHierarchyCode != \"\") {\n let uninheritWidth = calculateTextWidth(uninheritLabel, fontSize);\n width = uninheritWidth > width ? uninheritWidth : width;\n numActions++;\n } else {\n let existingSecondary = d3.select(\".g-hierarchy[data-primary=\\\"false\\\"]\");\n if (existingSecondary.node() != null) {\n let existingSecondaryCode = existingSecondary.attr(\"data-code\");\n let secondaryHierarchy = this.hierarchyComponent.findHierarchyByCode(existingSecondaryCode);\n\n let svgSecondaryHierarchy = new SvgHierarchyType(this.hierarchyComponent, d3.select(\"#svg\"), secondaryHierarchy, true, this.localizeService, this.modalService, this.authService);\n let relatedGotHasParents = svgSecondaryHierarchy.getNodeByCode(this.getCode()).getTreeNode().parent != null;\n\n if (this.treeNode.parent == null && relatedGotHasParents) {\n let inheritWidth = calculateTextWidth(inheritLabel, fontSize);\n width = inheritWidth > width ? inheritWidth : width;\n numActions++;\n }\n }\n }\n\n // Calculate the width of our context menu, which is based on how long the text inside it will be.\n // We don't know how long text is until we render it. So we'll need to loop over all the text and\n // render and destroy all of it.\n if (relatedHierarchies.length > 0) {\n relatedHierarchies.forEach((relatedHierarchyCode: string) => {\n let relatedHierarchy = this.hierarchyComponent.findHierarchyByCode(relatedHierarchyCode);\n\n let relatedHierarchyLabel = relatedHierarchy.label.localizedValue;\n if (this.treeNode.parent != null && this.treeNode.parent.data.inheritedHierarchyCode === relatedHierarchy.code) {\n relatedHierarchyLabel = relatedHierarchyLabel + \" (\" + this.hierarchyComponent.localize(\"hierarchy.content.inherited\") + \")\";\n }\n\n let textWidth = calculateTextWidth(relatedHierarchyLabel, fontSize);\n\n if (textWidth > width) {\n width = textWidth;\n }\n });\n } else {\n let noHierLabelWidth = calculateTextWidth(noRelatedHierLabel, fontSize);\n width = noHierLabelWidth > width ? noHierLabelWidth : width;\n }\n\n width = width + widthPadding;\n\n let heightAdditions: number = relatedHierarchies.length > 0 ? (numActions + 2) : (numActions + 3);\n\n // Background rectangle with border\n contextMenuGroup.append(\"rect\")\n .classed(\"contextmenu-relatedhiers-background\", true)\n .attr(\"x\", x)\n .attr(\"y\", y)\n .attr(\"rx\", 5)\n .attr(\"width\", width)\n .attr(\"height\", height * (relatedHierarchies.length + heightAdditions))\n .attr(\"fill\", \"white\")\n .attr(\"stroke-width\", .5)\n .attr(\"stroke\", borderColor);\n\n // Related Hierarchies Title\n contextMenuGroup.append(\"text\")\n .classed(\"contextmenu-relatedhiers-title\", true)\n .attr(\"x\", x + widthPadding / 2)\n .attr(\"y\", y + (height / 2) + (titleFontSize / 2))\n .attr(\"font-size\", titleFontSize)\n .attr(\"font-family\", fontFamily)\n .attr(\"font-weight\", \"bold\")\n .text(titleLabel);\n\n y = y + height;\n\n // Dividing line at the bottom\n contextMenuGroup.append(\"line\")\n .classed(\"contextmenu-relatedhiers-divider\", true)\n .attr(\"x1\", x)\n .attr(\"y1\", y)\n .attr(\"x2\", x + width)\n .attr(\"y2\", y)\n .attr(\"stroke\", borderColor)\n .attr(\"stroke-width\", .5);\n\n\n if (relatedHierarchies.length > 0) {\n // Loop over all related hierarchies and draw them as list items\n for (let i = 0; i < relatedHierarchies.length; ++i) {\n let relatedHierarchyCode = relatedHierarchies[i];\n let relatedHierarchy = this.hierarchyComponent.findHierarchyByCode(relatedHierarchyCode);\n\n let relatedHierarchyLabel = relatedHierarchy.label.localizedValue;\n if (this.treeNode.parent != null && this.treeNode.parent.data.inheritedHierarchyCode === relatedHierarchy.code) {\n relatedHierarchyLabel = relatedHierarchyLabel + \" (\" + this.hierarchyComponent.localize(\"hierarchy.content.inherited\") + \")\";\n }\n\n // Text that says the hierarchy's display label\n contextMenuGroup.append(\"text\")\n .classed(\"contextmenu-relatedhiers-text\", true)\n .attr(\"data-hierCode\", relatedHierarchyCode)\n .attr(\"x\", x + widthPadding / 2)\n .attr(\"y\", y + (height / 2) + (fontSize / 2))\n .attr(\"font-size\", fontSize)\n .attr(\"font-family\", fontFamily)\n .text(relatedHierarchyLabel)\n .style(\"cursor\", \"pointer\")\n .on(\"click\", function(event, node) { that.renderSecondaryHierarchy(relatedHierarchy); });\n\n y = y + height;\n\n // Dividing line at the bottom\n if (i < relatedHierarchies.length) {\n contextMenuGroup.append(\"line\")\n .classed(\"contextmenu-relatedhiers-divider\", true)\n .attr(\"data-hierCode\", relatedHierarchyCode)\n .attr(\"x1\", x + 5)\n .attr(\"y1\", y)\n .attr(\"x2\", x + width - 5)\n .attr(\"y2\", y)\n .attr(\"stroke\", dividerColor)\n .attr(\"stroke-width\", .5);\n }\n }\n } else {\n // Text that says \"No related Hierarchies\"\n contextMenuGroup.append(\"text\")\n .classed(\"contextmenu-relatedhiers-text\", true)\n .attr(\"x\", x + widthPadding / 2)\n .attr(\"y\", y + (height / 2) + (fontSize / 2))\n .attr(\"font-size\", fontSize)\n .attr(\"font-family\", fontFamily)\n .text(noRelatedHierLabel);\n\n y = y + height;\n\n // Dividing line at the bottom\n contextMenuGroup.append(\"line\")\n .classed(\"contextmenu-relatedhiers-divider\", true)\n .attr(\"x1\", x + 5)\n .attr(\"y1\", y)\n .attr(\"x2\", x + width - 5)\n .attr(\"y2\", y)\n .attr(\"stroke\", dividerColor)\n .attr(\"stroke-width\", .5);\n }\n\n // Actions Section\n if (hasActionsPermissions) {\n // Actions Title\n contextMenuGroup.append(\"text\")\n .classed(\"contextmenu-relatedhiers-title\", true)\n .attr(\"x\", x + widthPadding / 2)\n .attr(\"y\", y + (height / 2) + (titleFontSize / 2))\n .attr(\"font-size\", titleFontSize)\n .attr(\"font-family\", fontFamily)\n .attr(\"font-weight\", \"bold\")\n .text(actionsTitle);\n\n y = y + height;\n\n // Dividing line at the bottom\n contextMenuGroup.append(\"line\")\n .classed(\"contextmenu-relatedhiers-divider\", true)\n .attr(\"x1\", x)\n .attr(\"y1\", y)\n .attr(\"x2\", x + width)\n .attr(\"y2\", y)\n .attr(\"stroke\", borderColor)\n .attr(\"stroke-width\", .5);\n\n // \"Remove from hierarchy\" button\n contextMenuGroup.append(\"text\")\n .classed(\"contextmenu-relatedhiers-text\", true)\n .attr(\"data-remove\", \"REPLACE---gotCode\")\n .attr(\"x\", x + widthPadding / 2)\n .attr(\"y\", y + (height / 2) + (fontSize / 2))\n .attr(\"font-size\", fontSize)\n .attr(\"font-family\", fontFamily)\n .text(removeFromHierarchyLabel)\n .style(\"cursor\", \"pointer\")\n .on(\"click\", function(event, node) { that.removeGotFromHierarchy(); });\n\n y = y + height;\n\n // Inherit / Uninherit buttons\n if (this.treeNode.parent != null && this.treeNode.parent.data.inheritedHierarchyCode != null && this.treeNode.parent.data.inheritedHierarchyCode != \"\") {\n contextMenuGroup.append(\"line\")\n .classed(\"contextmenu-relatedhiers-divider\", true)\n .attr(\"x1\", x)\n .attr(\"y1\", y)\n .attr(\"x2\", x + width)\n .attr(\"y2\", y)\n .attr(\"stroke\", borderColor)\n .attr(\"stroke-width\", .5);\n\n contextMenuGroup.append(\"text\")\n .classed(\"contextmenu-relatedhiers-text\", true)\n .attr(\"x\", x + widthPadding / 2)\n .attr(\"y\", y + (height / 2) + (fontSize / 2))\n .attr(\"font-size\", fontSize)\n .attr(\"font-family\", fontFamily)\n .text(uninheritLabel)\n .style(\"cursor\", \"pointer\")\n .on(\"click\", function(event, node) { that.onClickUninheritHierarchy(); });\n\n y = y + height;\n } else {\n let existingSecondary = d3.select(\".g-hierarchy[data-primary=\\\"false\\\"]\");\n if (existingSecondary.node() != null) {\n let existingSecondaryCode = existingSecondary.attr(\"data-code\");\n let secondaryHierarchy = this.hierarchyComponent.findHierarchyByCode(existingSecondaryCode);\n\n let svgSecondaryHierarchy = new SvgHierarchyType(this.hierarchyComponent, d3.select(\"#svg\"), secondaryHierarchy, true, this.localizeService, this.modalService, this.authService);\n let relatedGotHasParents = svgSecondaryHierarchy.getNodeByCode(this.getCode()).getTreeNode().parent != null;\n\n if (this.treeNode.parent == null && relatedGotHasParents) {\n contextMenuGroup.append(\"line\")\n .classed(\"contextmenu-relatedhiers-divider\", true)\n .attr(\"x1\", x)\n .attr(\"y1\", y)\n .attr(\"x2\", x + width)\n .attr(\"y2\", y)\n .attr(\"stroke\", borderColor)\n .attr(\"stroke-width\", .5);\n\n contextMenuGroup.append(\"text\")\n .classed(\"contextmenu-relatedhiers-text\", true)\n .attr(\"x\", x + widthPadding / 2)\n .attr(\"y\", y + (height / 2) + (fontSize / 2))\n .attr(\"font-size\", fontSize)\n .attr(\"font-family\", fontFamily)\n .text(inheritLabel)\n .style(\"cursor\", \"pointer\")\n .on(\"click\", function(event, node) { that.onClickInheritHierarchy(secondaryHierarchy); });\n\n y = y + height;\n }\n }\n }\n }\n\n if (isSecondaryHierarchyRendered) {\n contextMenuGroup.append(\"line\")\n .classed(\"contextmenu-relatedhiers-divider\", true)\n .attr(\"x1\", x)\n .attr(\"y1\", y)\n .attr(\"x2\", x + width)\n .attr(\"y2\", y)\n .attr(\"stroke\", borderColor)\n .attr(\"stroke-width\", .5);\n\n contextMenuGroup.append(\"text\")\n .classed(\"contextmenu-relatedhiers-text\", true)\n .attr(\"x\", x + widthPadding / 2)\n .attr(\"y\", y + (height / 2) + (fontSize / 2))\n .attr(\"font-size\", fontSize)\n .attr(\"font-family\", fontFamily)\n .text(hideRelatedHierarchyLabel)\n .style(\"cursor\", \"pointer\")\n .on(\"click\", function(event, node) {\n that.hideRelatedHierarchy();\n\n let existingMenu = d3.select(\".g-context-menu\");\n if (existingMenu.node() != null) {\n existingMenu.remove();\n }\n\n d3.select(\".g-hierarchy-got-connector\").remove();\n });\n }\n\n this.hierarchyComponent.calculateSvgViewBox();\n } else {\n existingMenu.remove();\n }\n }\n\n removeGotFromHierarchy() {\n let svgGot = this.hierarchyComponent.primarySvgHierarchy.getNodeByCode(this.geoObjectType.code);\n\n let obj = this.hierarchyComponent.findGeoObjectTypeByCode(svgGot.getCode());\n\n this.bsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n\n let message = this.localizeService.decode(\"confirm.modal.verify.remove.hierarchy\");\n message = message.replace(\"{label}\", obj.label.localizedValue);\n\n this.bsModalRef.content.message = message;\n this.bsModalRef.content.data = obj.code;\n\n ( this.bsModalRef.content).onConfirm.subscribe(data => {\n let treeNode = svgGot.getTreeNode();\n let parent = null;\n if (treeNode.parent == null) {\n parent = \"ROOT\";\n } else {\n if (treeNode.parent.data.inheritedHierarchyCode != null) {\n parent = \"ROOT\";\n } else {\n parent = treeNode.parent.data.geoObjectType;\n }\n }\n\n this.hierarchyComponent.removeFromHierarchy(parent, svgGot.getCode(), (err: any) => { console.log(err); });\n });\n }\n\n renderSecondaryHierarchy(relatedHierarchy: HierarchyType) {\n d3.select(\".g-context-menu\").remove();\n d3.select(\".g-hierarchy-got-connector\").remove();\n\n let myBbox = this.getBbox();\n let svg = d3.select(\"#svg\");\n\n // Remove any secondary hierarchy that may already be rendered\n if (this.hideRelatedHierarchy() === relatedHierarchy.code) {\n return;\n }\n\n // Get the bounding box for our primary hierarchy\n let primaryHierBbox = (d3.select(\".g-hierarchy[data-primary=true]\").node() as any).getBBox();\n\n // Render the secondary hierarchy\n let svgHt: SvgHierarchyType = new SvgHierarchyType(this.hierarchyComponent, svg, relatedHierarchy, false, this.localizeService, this.modalService, this.authService);\n svgHt.render();\n let gSecondary = d3.select(\".g-hierarchy[data-primary=\\\"false\\\"]\");\n\n // Translate the secondary hierarchy to the right of the primary hierarchy\n let gHierarchy: any = d3.select(\".g-hierarchy[data-primary=\\\"false\\\"]\").node();\n let bbox = gHierarchy.getBBox();\n let paddingLeft: number = primaryHierBbox.width + 40 + (primaryHierBbox.x - bbox.x);\n gSecondary.attr(\"transform\", \"translate(\" + paddingLeft + \" 0)\");\n\n // Draw dotted line between the shared node in the hierarchies\n let secondaryGot = d3.select(\".g-hierarchy[data-primary=false] .svg-got-body-rect[data-gotCode=\\\"\" + this.getCode() + \"\\\"]\");\n let secondaryGotBbox = { x: parseInt(secondaryGot.attr(\"x\")), y: parseInt(secondaryGot.attr(\"y\")) - 3, width: parseInt(secondaryGot.attr(\"width\")), height: parseInt(secondaryGot.attr(\"height\")) + 3 };\n secondaryGotBbox.x = secondaryGotBbox.x + paddingLeft; // Apply transformation\n d3.select(\".g-hierarchy-got-connector\").remove();\n let gConnector = d3.select(\"#svg\").append(\"g\").classed(\"g-hierarchy-got-connector\", true);\n gConnector.append(\"path\")\n .classed(\"hierarchy-got-connector\", true)\n .attr(\"fill\", \"none\")\n .attr(\"stroke\", \"#555\")\n .attr(\"stroke-opacity\", 0.4)\n .attr(\"stroke-dasharray\", \"5,5\")\n .attr(\"stroke-width\", 1.5)\n .attr(\n \"d\",\n \"M\" + (myBbox.x + myBbox.width) + \",\" + (myBbox.y + myBbox.height / 2) +\n \"H\" + (((secondaryGotBbox.x) - (myBbox.x + myBbox.width)) / 2 + myBbox.x + myBbox.width) +\n \"V\" + (secondaryGotBbox.y + secondaryGotBbox.height / 2) +\n \"H\" + secondaryGotBbox.x\n );\n\n // Draw arrow for dotted line\n const arrowRectD = { height: 10, width: 7 };\n let gArrow = gConnector.append(\"g\").classed(\"g-hierarchy-got-connector-arrow\", true);\n gArrow.append(\"rect\")\n .classed(\"hierarchy-got-connector-arrow-rect\", true)\n .attr(\"x\", myBbox.x + myBbox.width - arrowRectD.width / 2)\n .attr(\"y\", myBbox.y + myBbox.height / 2 - arrowRectD.height / 2)\n .attr(\"width\", arrowRectD.width)\n .attr(\"height\", arrowRectD.height)\n .attr(\"fill\", RELATED_NODE_BANNER_COLOR);\n gArrow.append(\"path\")\n .classed(\"hierarchy-got-connector-arrow-path\", true)\n .attr(\"fill\", \"none\")\n .attr(\"stroke\", \"white\")\n .attr(\"stroke-width\", 1.5)\n .attr(\"d\",\n \"M\" + (myBbox.x + myBbox.width - arrowRectD.width / 2 + ((arrowRectD.width * 2) / 3)) + \",\" + (myBbox.y + myBbox.height / 2 - arrowRectD.height / 2 + ((arrowRectD.height * 2) / 3)) +\n \"L\" + (myBbox.x + myBbox.width + arrowRectD.width / 2 - ((arrowRectD.width * 2) / 3)) + \",\" + (myBbox.y + myBbox.height / 2) +\n \"L\" + (myBbox.x + myBbox.width - arrowRectD.width / 2 + ((arrowRectD.width * 2) / 3)) + \",\" + (myBbox.y + myBbox.height / 2 - arrowRectD.height / 2 + arrowRectD.height / 3)\n );\n\n // Recalculate the viewbox (should probably be the last thing that happens)\n this.hierarchyComponent.calculateSvgViewBox();\n }\n\n onClickInheritHierarchy(hierarchy: HierarchyType) {\n this.hierarchyComponent.handleInheritHierarchy(this.svgHierarchyType.getCode(), hierarchy.code, this.getCode());\n }\n\n onClickUninheritHierarchy() {\n this.hierarchyComponent.handleUninheritHierarchy(this.svgHierarchyType.getCode(), this.getCode());\n }\n\n}\n","import { Component, OnInit } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Subject } from \"rxjs\";\nimport { TreeNode } from \"@circlon/angular-tree-component\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { ErrorHandler } from \"@shared/component\";\nimport { HierarchyType, HierarchyNode } from \"@registry/model/hierarchy\";\nimport { GeoObjectType } from \"@registry/model/registry\";\nimport { HierarchyService } from \"@registry/service\";\n\n\n@Component({\n selector: \"add-child-to-hierarchy-modal\",\n templateUrl: \"./add-child-to-hierarchy-modal.component.html\",\n styleUrls: []\n})\nexport class AddChildToHierarchyModalComponent implements OnInit {\n\n /*\n * parent id of the node being created\n */\n public parent: TreeNode;\n public hierarchyType: HierarchyType;\n public nodes: HierarchyNode[];\n public allGeoObjectTypes: GeoObjectType[];\n public selectedGeoObjectType: GeoObjectType;\n private toRoot: boolean = false;\n selectUndefinedOptionValue: any;\n message: string = null;\n\n /*\n * Observable subject for TreeNode changes. Called when create is successful\n */\n public onNodeChange: Subject;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private hierarchyService: HierarchyService, public bsModalRef: BsModalRef) { }\n\n ngOnInit(): void {\n this.onNodeChange = new Subject();\n }\n\n onSelect(value: string): void {\n this.allGeoObjectTypes.forEach(gObj => {\n if (gObj.code === value) {\n this.selectedGeoObjectType = gObj;\n }\n });\n }\n\n handleOnSubmit(): void {\n this.message = null;\n\n let parent = (this.toRoot) ? \"ROOT\" : this.parent.data.geoObjectType;\n this.hierarchyService.addChildToHierarchy(this.hierarchyType.code, parent, this.selectedGeoObjectType.code).then(data => {\n this.onNodeChange.next(data);\n this.bsModalRef.hide();\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n\n
\n\n
{{message}}
\n\n
\n

\n \n

\n
\n
\n\n
\n\n \n\n
\n\n
\n \n \n
\n
\n
\n
\n","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\nimport { BsModalRef, BsModalService } from \"ngx-bootstrap/modal\";\nimport { Subject } from \"rxjs\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { StepConfig, ModalTypes } from \"@shared/model/modal\";\nimport { ErrorHandler, ConfirmModalComponent } from \"@shared/component\";\nimport { LocalizationService, ModalStepIndicatorService } from \"@shared/service\";\n\nimport { GeoObjectType, AttributeType, ManageGeoObjectTypeModalState } from \"@registry/model/registry\";\nimport { GeoObjectTypeModalStates } from \"@registry/model/constants\";\n\nimport { RegistryService, GeoObjectTypeManagementService } from \"@registry/service\";\n\n@Component({\n selector: \"manage-attributes-modal\",\n templateUrl: \"./manage-attributes-modal.component.html\",\n styleUrls: [\"./manage-attributes-modal.css\"]\n})\nexport class ManageAttributesModalComponent implements OnInit {\n\n @Input() geoObjectType: GeoObjectType;\n @Input() attribute: AttributeType = null;\n @Output() geoObjectTypeChange: EventEmitter = new EventEmitter();\n\n message: string = null;\n modalStepConfig: StepConfig = {\n steps: [\n { label: this.localizeService.decode(\"modal.step.indicator.manage.geoobjecttype\"), active: true, enabled: false },\n { label: this.localizeService.decode(\"modal.step.indicator.manage.attributes\"), active: true, enabled: true }\n ]\n };\n\n modalState: ManageGeoObjectTypeModalState = { state: GeoObjectTypeModalStates.manageAttributes, attribute: this.attribute, termOption: \"\" };\n\n /*\n * Observable subject for TreeNode changes. Called when create is successful\n */\n public onDeleteAttribute: Subject;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef, public confirmBsModalRef: BsModalRef, private modalService: BsModalService, private localizeService: LocalizationService,\n private modalStepIndicatorService: ModalStepIndicatorService, private geoObjectTypeManagementService: GeoObjectTypeManagementService, private registryService: RegistryService) { }\n\n ngOnInit(): void {\n this.onDeleteAttribute = new Subject();\n this.modalStepIndicatorService.setStepConfig(this.modalStepConfig);\n }\n\n ngOnDestroy() {\n this.onDeleteAttribute.unsubscribe();\n }\n\n defineAttributeModal(): void {\n this.geoObjectTypeManagementService.setModalState({ state: GeoObjectTypeModalStates.defineAttribute, attribute: \"\", termOption: \"\" });\n }\n\n editAttribute(attr: AttributeType, e: any): void {\n this.geoObjectTypeManagementService.setModalState({ state: GeoObjectTypeModalStates.editAttribute, attribute: attr, termOption: \"\" });\n }\n\n removeAttributeType(attr: AttributeType, e: any): void {\n this.confirmBsModalRef = this.modalService.show(ConfirmModalComponent, {\n animated: true,\n backdrop: true,\n ignoreBackdropClick: true\n });\n this.confirmBsModalRef.content.message = this.localizeService.decode(\"confirm.modal.verify.delete\") + \"[\" + attr.label.localizedValue + \"]\";\n this.confirmBsModalRef.content.data = { attributeType: attr, geoObjectType: this.geoObjectType };\n this.confirmBsModalRef.content.submitText = this.localizeService.decode(\"modal.button.delete\");\n this.confirmBsModalRef.content.type = ModalTypes.danger;\n\n ( this.confirmBsModalRef.content).onConfirm.subscribe(data => {\n this.deleteAttributeType(data.geoObjectType.code, data.attributeType);\n });\n }\n\n deleteAttributeType(geoObjectTypeCode: string, attr: AttributeType): void {\n this.registryService.deleteAttributeType(geoObjectTypeCode, attr.code).then(data => {\n this.onDeleteAttribute.next(data);\n\n if (data) {\n this.geoObjectType.attributes.splice(this.geoObjectType.attributes.indexOf(attr), 1);\n }\n\n this.geoObjectTypeChange.emit(this.geoObjectType);\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n close(): void {\n this.geoObjectTypeManagementService.setModalState({ state: GeoObjectTypeModalStates.manageGeoObjectType, attribute: this.attribute, termOption: \"\" });\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n
{{message}}
\n\n
\n
\n

\n {{geoObjectType.label.localizedValue}}

\n
\n
\n\n
\n
\n \n
\n
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n
{{attr.label.localizedValue}}\n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n\n
\n
\n
\n \n
\n
\n
\n
\n
\n\n
\n\n","import { ValueOverTimeCREditor } from \"./ValueOverTimeCREditor\";\nimport { HierarchyOverTimeEntry, GeoObject, HierarchyOverTimeEntryParent, HierarchyOverTime, AttributeType, TimeRangeEntry } from \"@registry/model/registry\";\nimport { UpdateAttributeOverTimeAction, AbstractAction, ValueOverTimeDiff } from \"@registry/model/crtable\";\nimport { v4 as uuid } from \"uuid\";\nimport { ChangeRequestChangeOverTimeAttributeEditor } from \"./change-request-change-over-time-attribute-editor\";\nimport { ChangeType } from \"@registry/model/constants\";\n\nexport class HierarchyCREditor extends ValueOverTimeCREditor {\n\n hierarchyOverTime: HierarchyOverTime;\n\n hierarchyEntry: HierarchyOverTimeEntry;\n\n constructor(changeRequestAttributeEditor: ChangeRequestChangeOverTimeAttributeEditor, attr: AttributeType, action: AbstractAction, hierarchyEntry: HierarchyOverTimeEntry, hierarchyOverTime: HierarchyOverTime) {\n super(changeRequestAttributeEditor, attr, action);\n this.hierarchyEntry = hierarchyEntry;\n this.hierarchyOverTime = hierarchyOverTime;\n\n if (this.hierarchyEntry != null) {\n this.hierarchyEntry.loading = {};\n }\n }\n\n // @Override\n getGeoObjectTimeRangeStorage(): TimeRangeEntry {\n return this.hierarchyEntry;\n }\n\n // @Override\n getValueFromGeoObjectForDiff(): any {\n let immediateParent: GeoObject = this.hierarchyEntry.parents[this.hierarchyOverTime.types[this.hierarchyOverTime.types.length - 1].code].geoObject;\n let goVal: string = immediateParent == null ? null : immediateParent.properties.type + \"_~VST~_\" + immediateParent.properties.code;\n return goVal;\n }\n\n // @Override\n validateUpdateReference() {\n // We could potentially try to check for this, but it won't be easy. So for now we're doing nothing.\n }\n\n setParentValue(type: {code: string, label: string}, parents: { [k: string]: HierarchyOverTimeEntryParent }) {\n if (this.diff != null && this.diff.action === \"DELETE\") {\n return; // There are various view components (like the date widgets) which will invoke this method\n }\n\n let directParent: GeoObject = null;\n if (type != null) {\n directParent = parents[type.code].geoObject;\n }\n\n if (this.action.actionType === \"UpdateAttributeAction\") {\n if (this.diff == null) {\n if (this.hierarchyEntry == null) {\n this.diff = new ValueOverTimeDiff();\n this.diff.oid = uuid();\n this.diff.action = \"CREATE\";\n (this.action as UpdateAttributeOverTimeAction).attributeDiff.hierarchyCode = this.hierarchyOverTime.code;\n (this.action as UpdateAttributeOverTimeAction).attributeDiff.valuesOverTime.push(this.diff);\n } else {\n // let currentDirectParent: GeoObject = this.hierarchyEntry.parents[type.code].geoObject;\n let currentDirectParent: GeoObject = this.getLowestLevelFromHierarchyEntry(this.hierarchyEntry.parents).geoObject;\n let oldValue: string = currentDirectParent == null ? null : currentDirectParent.properties.type + \"_~VST~_\" + currentDirectParent.properties.code;\n\n if (\n (currentDirectParent == null && directParent == null) ||\n ((currentDirectParent != null && directParent != null) &&\n currentDirectParent.properties.code === directParent.properties.code)) {\n return;\n }\n\n this.diff = new ValueOverTimeDiff();\n this.diff.action = \"UPDATE\";\n this.diff.oid = this.hierarchyEntry.oid;\n this.diff.oldValue = oldValue;\n this.diff.oldParents = JSON.parse(JSON.stringify(this.hierarchyEntry.parents));\n this.diff.oldStartDate = this.hierarchyEntry.startDate;\n this.diff.oldEndDate = this.hierarchyEntry.endDate;\n (this.action as UpdateAttributeOverTimeAction).attributeDiff.hierarchyCode = this.hierarchyOverTime.code;\n (this.action as UpdateAttributeOverTimeAction).attributeDiff.valuesOverTime.push(this.diff);\n }\n }\n\n let newValueStrConcat: string = null;\n if (directParent != null) {\n newValueStrConcat = directParent.properties.type + \"_~VST~_\" + directParent.properties.code;\n }\n\n if (newValueStrConcat === this.diff.oldValue) {\n delete this.diff.newValue;\n } else {\n this.diff.newValue = newValueStrConcat;\n }\n\n this.diff.parents = parents;\n\n // If no changes have been made then remove the diff\n this.removeEmptyDiff();\n } else if (this.action.actionType === \"CreateGeoObjectAction\") {\n this.hierarchyEntry.parents = parents;\n }\n\n this.onChange(ChangeType.VALUE);\n }\n\n public getLowestLevelFromHierarchyEntry(parents: any): {geoObject: GeoObject, text: string} {\n let len = this.hierarchyOverTime.types.length;\n for (let i = len - 1; i >= 0; --i) {\n let type = this.hierarchyOverTime.types[i];\n\n if (Object.prototype.hasOwnProperty.call(parents, type.code) && parents[type.code].geoObject) {\n return parents[type.code];\n }\n }\n\n return null;\n }\n\n set value(val: any) {\n throw new Error(\"Invoke setParentValue instead\");\n }\n\n get value() {\n if (this.diff != null && this.diff.parents !== undefined) {\n return this.diff;\n } else if (this.hierarchyEntry != null) {\n return this.hierarchyEntry;\n }\n\n return null;\n }\n\n public removeType(type): void {\n // this.value.parents[type.code] = { text: \"\", geoObject: null };\n\n let newParents = JSON.parse(JSON.stringify(this.value.parents));\n newParents[type.code] = { text: \"\", geoObject: null };\n\n // Set the value to be the next existing ancestor.\n let entry = this.value;\n let len = this.hierarchyOverTime.types.length;\n for (let i = len - 1; i >= 0; --i) {\n let parentType = this.hierarchyOverTime.types[i];\n\n if (Object.prototype.hasOwnProperty.call(entry.parents, parentType.code) && entry.parents[parentType.code].geoObject) {\n this.setParentValue(parentType, newParents);\n return;\n }\n }\n\n // If we do not have a next existing ancestor, then we must set the value to null.\n this.setParentValue(null, newParents);\n }\n\n createEmptyHierarchyEntry(): HierarchyOverTimeEntry {\n let hierarchyEntry = new HierarchyOverTimeEntry();\n hierarchyEntry.loading = {};\n hierarchyEntry.oid = uuid();\n\n hierarchyEntry.parents = {};\n\n if (this.hierarchyOverTime) {\n for (let i = 0; i < this.hierarchyOverTime.types.length; i++) {\n let current = this.hierarchyOverTime.types[i];\n\n hierarchyEntry.parents[current.code] = { text: \"\", geoObject: null };\n\n hierarchyEntry.loading = {};\n }\n }\n\n return hierarchyEntry;\n }\n\n public remove(): void {\n if (this.action.actionType === \"UpdateAttributeAction\") {\n if (this.diff != null && this.diff.action === \"CREATE\") {\n // Its a new entry, just remove the diff from the diff array\n let updateAction: UpdateAttributeOverTimeAction = this.action as UpdateAttributeOverTimeAction;\n\n const index = updateAction.attributeDiff.valuesOverTime.findIndex(vot => vot.oid === this.diff.oid);\n\n if (index > -1) {\n updateAction.attributeDiff.valuesOverTime.splice(index, 1);\n }\n } else if (this.diff != null) {\n delete this.diff.newValue;\n delete this.diff.newStartDate;\n delete this.diff.newEndDate;\n this.removeEmptyDiff();\n this.onChange(ChangeType.REMOVE);\n return;\n } else if (this.hierarchyEntry != null && this.diff == null) {\n let currentImmediateParent: GeoObject = this.getLowestLevelFromHierarchyEntry(this.hierarchyEntry.parents).geoObject;\n let oldValue: string = currentImmediateParent == null ? null : currentImmediateParent.properties.type + \"_~VST~_\" + currentImmediateParent.properties.code;\n\n this.diff = new ValueOverTimeDiff();\n this.diff.action = \"DELETE\";\n this.diff.oid = this.hierarchyEntry.oid;\n this.diff.oldValue = oldValue;\n this.diff.oldStartDate = this.hierarchyEntry.startDate;\n this.diff.oldEndDate = this.hierarchyEntry.endDate;\n (this.action as UpdateAttributeOverTimeAction).attributeDiff.valuesOverTime.push(this.diff);\n (this.action as UpdateAttributeOverTimeAction).attributeDiff.hierarchyCode = this.hierarchyOverTime.code;\n }\n } else if (this.action.actionType === \"CreateGeoObjectAction\") {\n let index = this.hierarchyOverTime.entries.findIndex(vot => vot.oid === this.hierarchyEntry.oid);\n\n if (index !== -1) {\n this.hierarchyOverTime.entries.splice(index, 1);\n }\n }\n\n this.onChange(ChangeType.REMOVE);\n }\n\n}\n","\nimport { ChangeRequest, AbstractAction, UpdateAttributeAction } from \"@registry/model/crtable\";\nimport { AttributeType, GeoObjectOverTime } from \"@registry/model/registry\";\nimport { ActionTypes } from \"@registry/model/constants\";\n\nexport class StandardAttributeCRModel {\n\n changeRequest: ChangeRequest;\n\n diff: { oldValue?: any, newValue?: any };\n\n attribute: AttributeType;\n\n geoObject: GeoObjectOverTime;\n\n editAction: AbstractAction;\n\n code: string;\n\n private _isValid: boolean = true;\n\n constructor(attr: AttributeType, geoObject: GeoObjectOverTime, cr: ChangeRequest) {\n this.attribute = attr;\n this.geoObject = geoObject;\n this.changeRequest = cr;\n this.initialize();\n }\n\n initialize(): void {\n let actions = this.changeRequest.actions;\n\n if (this.changeRequest.type === \"CreateGeoObject\") {\n if (actions.length > 0 && actions[0].actionType === ActionTypes.CREATEGEOOBJECTACTION) {\n this.editAction = actions[0];\n }\n } else {\n actions.forEach((action: AbstractAction) => {\n if (action.actionType === ActionTypes.UPDATEATTRIBUTETACTION) {\n let updateAttrAction: UpdateAttributeAction = action as UpdateAttributeAction;\n\n if (this.attribute.code === updateAttrAction.attributeName) {\n this.editAction = action;\n }\n }\n });\n\n if (this.editAction == null) {\n this.editAction = new UpdateAttributeAction(this.attribute.code);\n }\n }\n\n let len = this.changeRequest.actions.length;\n for (let i = 0; i < len; ++i) {\n let action: AbstractAction = actions[i];\n\n if (action.actionType === ActionTypes.UPDATEATTRIBUTETACTION) {\n let updateAttrAction: UpdateAttributeAction = action as UpdateAttributeAction;\n\n if (this.attribute.code === updateAttrAction.attributeName) {\n this.diff = updateAttrAction.attributeDiff;\n }\n } else if (action.actionType === ActionTypes.CREATEGEOOBJECTACTION) {\n // Nothing to do here. Create actions don't have diffs.\n } else {\n console.log(\"Unexpected action : \" + action.actionType, action);\n }\n }\n }\n\n public hasChanges(): boolean {\n return this.diff != null;\n }\n\n isValid(): boolean {\n return this._isValid;\n }\n\n validate(): boolean {\n return this._isValid;\n }\n\n set value(val: any) {\n if (this.changeRequest.type === \"CreateGeoObject\") {\n this.geoObject.attributes[this.attribute.code] = val;\n } else {\n if (this.diff != null) {\n if (this.areValuesEqual(this.diff.oldValue, val)) {\n delete (this.editAction as UpdateAttributeAction).attributeDiff;\n this.diff = null;\n\n let index = this.changeRequest.actions.findIndex(findAction => findAction === this.editAction);\n if (index !== -1) {\n this.changeRequest.actions.splice(index, 1);\n }\n } else {\n this.diff.newValue = val;\n }\n } else {\n this.diff = { oldValue: this.geoObject.attributes[this.attribute.code], newValue: val };\n\n (this.editAction as UpdateAttributeAction).attributeDiff = this.diff;\n this.changeRequest.actions.push(this.editAction);\n }\n }\n }\n\n get value(): any {\n if (this.changeRequest.type === \"CreateGeoObject\") {\n return this.geoObject.attributes[this.attribute.code];\n } else {\n if (this.diff != null) {\n return this.diff.newValue;\n } else {\n return this.geoObject.attributes[this.attribute.code];\n }\n }\n }\n\n areValuesEqual(val1: any, val2: any): boolean {\n if (this.attribute.type === \"boolean\") {\n return val1 === val2;\n }\n\n if ((val1 === \"\" && val2 == null) || (val2 === \"\" && val1 == null)) {\n return true;\n }\n\n if (!val1 && !val2) {\n return true;\n } else if ((!val1 && val2) || (!val2 && val1)) {\n return false;\n }\n\n return val1 === val2;\n }\n\n}\n","\nimport { ManageVersionsComponent } from \"./manage-versions.component\";\nimport { ValueOverTimeDiff, SummaryKey } from \"@registry/model/crtable\";\nimport { ValueOverTimeCREditor } from \"./ValueOverTimeCREditor\";\nimport { LayerColor } from \"@registry/model/constants\";\nimport { LocalizedValue } from \"@shared/model/core\";\nimport { AttributeTermType, ConflictMessage, Term } from \"@registry/model/registry\";\n\nexport class Layer {\n\n oid: string;\n isEditing: boolean;\n isRendering: boolean;\n color: LayerColor;\n zindex: number;\n geojson: any;\n editPropagator: ValueOverTimeCREditor;\n\n}\n\n/*\n * This class exists purely for the purpose of storing what data to be rendered to the front-end. Any storage or submission of this data to the back-end must be translated\n * using the editor.\n */\nexport class VersionDiffView {\n\n component: ManageVersionsComponent;\n summaryKeyData: SummaryKey;\n summaryKeyLocalized: string; // If we try to localize this in the html with a localize element then it won't update as frequently as we need so we're doing stuff manually here.\n newLayer: Layer = null;\n oldLayer: Layer = null;\n coordinate?: any;\n newCoordinateX?: any;\n newCoordinateY? : any;\n editor: ValueOverTimeCREditor;\n\n // We must track our own value, so that they can be diffed when setting.\n _value: any;\n\n constructor(component: ManageVersionsComponent, editor: ValueOverTimeCREditor) {\n this.component = component;\n this.editor = editor;\n\n this.populate(editor);\n this.editor.onChangeSubject.subscribe(() => {\n this.populate(this.editor);\n });\n }\n\n populate(editor: ValueOverTimeCREditor) {\n if (this.component.attributeType.type === \"local\" && this._value != null && this.editor.value != null) {\n // The front-end glitches out if we swap to a new object. We have to update the existing object to be the same\n LocalizedValue.populate(this._value, this.editor.value);\n } else if (this.component.attributeType.code === \"_PARENT_\" && this._value != null && this.editor.value != null && this.editor.value.parents != null) {\n for (let i = 0; i < this.component.hierarchy.types.length; i++) {\n let current = this.component.hierarchy.types[i];\n\n this._value.parents[current.code].text = this.editor.value.parents[current.code].text;\n this._value.parents[current.code].geoObject = this.editor.value.parents[current.code].geoObject;\n }\n } else if (this.component.attributeType.code === \"_PARENT_\") {\n this._value = JSON.parse(JSON.stringify(this.editor.value));\n } else {\n this._value = this.convertValueForDisplay(this.editor.value == null ? null : JSON.parse(JSON.stringify(this.editor.value)));\n }\n\n if (this.component.attributeType.code === \"_PARENT_\") {\n this._value.loading = {};\n }\n\n this.calculateSummaryKey();\n }\n\n set oid(oid: string) {\n this.editor.oid = oid;\n }\n\n get oid(): string {\n return this.editor.oid;\n }\n\n get startDate(): string {\n if (this.editor.diff != null && this.editor.diff.action === \"DELETE\") {\n return this.editor.oldStartDate;\n }\n\n return this.editor.startDate;\n }\n\n set startDate(startDate: string) {\n this.editor.startDate = startDate;\n this.calculateSummaryKey();\n }\n\n set oldStartDate(oldStartDate: string) {\n this.editor.oldStartDate = oldStartDate;\n }\n\n get oldStartDate(): string {\n if (this.editor.diff != null && this.editor.diff.action === \"DELETE\") {\n return null;\n }\n\n if (this.editor.diff != null && this.editor.diff.newStartDate != null && this.editor.oldStartDate !== undefined) {\n return this.convertDateForDisplay(this.editor.oldStartDate);\n }\n\n return null;\n }\n\n get endDate(): string {\n if (this.editor.diff != null && this.editor.diff.action === \"DELETE\") {\n return this.editor.oldEndDate;\n }\n\n return this.editor.endDate;\n }\n\n set endDate(endDate: string) {\n this.editor.endDate = endDate;\n this.calculateSummaryKey();\n }\n\n set oldEndDate(oldEndDate: string) {\n this.editor.oldEndDate = oldEndDate;\n }\n\n get oldEndDate(): string {\n if (this.editor.diff != null && this.editor.diff.action === \"DELETE\") {\n return null;\n }\n\n if (this.editor.diff != null && this.editor.diff.newEndDate != null && this.editor.oldEndDate !== undefined) {\n return this.convertDateForDisplay(this.editor.oldEndDate);\n }\n\n return null;\n }\n\n get value(): any {\n return this._value;\n }\n\n set value(value: any) {\n this.editor.value = value;\n }\n\n set oldValue(oldValue: any) {\n this.editor.oldValue = oldValue;\n }\n\n get oldValue(): any {\n if (this.editor.diff != null && this.editor.diff.action === \"DELETE\") {\n return null;\n }\n\n if (this.editor.diff != null && this.editor.diff.newValue != null && this.editor.oldValue !== undefined) {\n return this.convertOldValueForDisplay(this.editor.oldValue);\n }\n\n return null;\n }\n\n convertDateForDisplay(date: string): string {\n return (date == null || date.length === 0) ? null : this.component.dateService.formatDateForDisplay(date);\n }\n\n convertOldValueForDisplay(val: any): any {\n if (this.component.attributeType.type === \"date\") {\n return this.component.dateService.formatDateForDisplay(new Date(val));\n } else if (this.component.attributeType.code === \"_PARENT_\" && val.includes(\"_~VST~_\")) {\n let split = val.split(\"_~VST~_\");\n // let parentTypeCode = split[0];\n let parentCode = split[1];\n\n return parentCode;\n } else if (this.component.attributeType.type === \"term\") {\n let code = val;\n if (code instanceof Array) {\n code = val[0];\n }\n\n let attrOpts = (this.component.attributeType as AttributeTermType).rootTerm.children;\n\n let index = attrOpts.findIndex((term:Term) => term.code === code);\n\n if (index !== -1) {\n return attrOpts[index].label.localizedValue;\n } else {\n return val;\n }\n }\n\n return val;\n }\n\n convertValueForDisplay(val: any): any {\n if (val == null) {\n return null;\n }\n\n return val;\n }\n\n calculateSummaryKey() {\n if (this.editor.diff == null) {\n this.summaryKey = SummaryKey.UNMODIFIED;\n return;\n }\n\n if (this.editor.diff.action === \"CREATE\") {\n this.summaryKey = SummaryKey.NEW;\n return;\n } else if (this.editor.diff.action === \"DELETE\") {\n this.summaryKey = SummaryKey.DELETE;\n return;\n }\n\n let hasTime = this.editor.diff.newStartDate != null || this.editor.diff.newEndDate != null;\n let hasValue = Object.prototype.hasOwnProperty.call(this.editor.diff, \"newValue\");\n\n if (hasTime && hasValue) {\n this.summaryKey = SummaryKey.UPDATE;\n } else if (hasTime) {\n this.summaryKey = SummaryKey.TIME_CHANGE;\n } else if (hasValue) {\n this.summaryKey = SummaryKey.VALUE_CHANGE;\n } else {\n this.summaryKey = SummaryKey.UNMODIFIED;\n }\n }\n\n set summaryKey(newKey: SummaryKey) {\n this.summaryKeyData = newKey;\n this.localizeSummaryKey();\n }\n\n get summaryKey(): SummaryKey {\n return this.summaryKeyData;\n }\n\n private localizeSummaryKey(): void {\n this.summaryKeyLocalized = this.component.lService.decode(\"changeovertime.manageVersions.summaryKey.\" + this.summaryKeyData);\n }\n\n private conflictMessagesHasSeverity(severity: string) {\n let has = false;\n\n this.editor.conflictMessages.forEach(msg => {\n if (msg.severity === severity) {\n has = true;\n }\n });\n\n return has;\n }\n\n hasError(): boolean {\n return this.editor.conflictMessages && this.editor.conflictMessages.size > 0 && this.conflictMessagesHasSeverity(\"ERROR\");\n }\n\n hasWarning(): boolean {\n return !this.hasError() && this.editor.conflictMessages && this.editor.conflictMessages.size > 0 && this.conflictMessagesHasSeverity(\"WARNING\");\n }\n\n}\n","import { Input, Component, ViewChild, ViewEncapsulation } from \"@angular/core\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { GeoObjectOverTime, GeoObjectType } from \"@registry/model/registry\";\nimport { AbstractAction } from \"@registry/model/crtable\";\n\nimport { RegistryService, ChangeRequestService } from \"@registry/service\";\n\nimport { AuthService } from \"@shared/service\";\n\nimport { ErrorHandler } from \"@shared/component\";\n\nimport { ActionDetailComponent } from \"../action-detail-modal.component\";\n\ndeclare var acp: any;\ndeclare var $: any;\n\n@Component({\n\n selector: \"crtable-detail-create-geo-object\",\n templateUrl: \"./detail.component.html\",\n styleUrls: [\"./crtable-detail-create-geo-object.css\"],\n encapsulation: ViewEncapsulation.None\n})\n// export class CreateUpdateGeoObjectDetailComponent implements ComponentCanDeactivate, ActionDetailComponent {\nexport class CreateUpdateGeoObjectDetailComponent implements ActionDetailComponent {\n\n isMaintainer: boolean = false;\n\n @Input() action: any;\n\n preGeoObject: GeoObjectOverTime = null;\n\n postGeoObject: GeoObjectOverTime = null;\n\n geoObjectType: GeoObjectType = null;\n\n @Input() readOnly: boolean;\n\n isEditing: boolean = false;\n\n @ViewChild(\"attributeEditor\") attributeEditor;\n\n @ViewChild(\"geometryEditor\") geometryEditor;\n\n bsModalRef: BsModalRef;\n\n /*\n * Date in which the modal is shown for\n */\n dateStr: string = null;\n\n /*\n * Date in which the modal is shown for\n */\n forDate: Date = null;\n\n constructor(private changeRequestService: ChangeRequestService, private modalService: BsModalService, private registryService: RegistryService,\n private authService: AuthService) {\n\n this.isMaintainer = authService.isAdmin() || authService.isMaintainer();\n\n this.forDate = new Date();\n\n const day = this.forDate.getUTCDate();\n this.dateStr = this.forDate.getUTCFullYear() + \"-\" + (this.forDate.getUTCMonth() + 1) + \"-\" + (day < 10 ? \"0\" : \"\") + day;\n\n }\n\n ngOnInit(): void {\n\n this.postGeoObject = this.action.geoObjectJson;\n this.geoObjectType = this.action.geoObjectType;\n\n if (this.isNew()) {\n\n this.preGeoObject = this.postGeoObject;\n\n }\n\n this.onSelect(this.action);\n\n }\n\n isNew(): boolean {\n\n return (this.action.actionType === \"net.geoprism.registry.action.geoobject.CreateGeoObjectAction\");\n\n }\n\n handleDateChange(): void {\n\n this.forDate = new Date(Date.parse(this.dateStr));\n\n }\n\n applyAction() {\n\n // var action = JSON.parse( JSON.stringify( this.action ) );\n let action = this.action;\n\n action.geoObjectJson = this.attributeEditor.getGeoObject();\n\n if (this.geometryEditor != null) {\n\n action.geoObjectJson.geometry = this.geometryEditor.saveDraw().geometry;\n\n }\n\n /*\n this.changeRequestService.applyAction(action).then(response => {\n\n this.endEdit();\n\n }).catch((err: HttpErrorResponse) => {\n\n this.error(err);\n\n });\n */\n\n }\n\n onSelect(action: AbstractAction) {\n\n // There are multiple ways we could show a diff of an object.\n //\n // This line will show a diff only when a person is typing so as to show the\n // change they are creating.\n //\n // The method below (getGeoObjectByCode) will compare what is in the database\n // at that time with the change request. This will only track state compared to\n // what is currently in the database which isn't necessarily the original change.\n //\n // A third option which is NOT implemented yet would store the state of a geoobject\n // (original and target) with the change request so as to manage state at time of\n // the change request submission.\n //\n // Display diff when a user is changing a value\n // this.preGeoObject = JSON.parse(JSON.stringify(this.postGeoObject));\n\n // Display diff of what's in the database\n if (\n this.action.actionType === \"net.geoprism.registry.action.geoobject.UpdateGeoObjectAction\"\n // && typeof this.postGeoObject.properties.createDate !== 'undefined'\n ) {\n\n this.registryService.getGeoObjectOverTime(this.postGeoObject.attributes.code, this.geoObjectType.code).then(geoObject => {\n\n this.preGeoObject = geoObject;\n\n }).catch((err: HttpErrorResponse) => {\n\n this.error(err);\n\n });\n\n }\n\n }\n\n // Big thanks to https://stackoverflow.com/questions/35922071/warn-user-of-unsaved-changes-before-leaving-page\n // @HostListener( 'window:beforeunload' )\n // canDeactivate(): Observable | boolean {\n // if ( this.isEditing ) {\n // //event.preventDefault();\n // //event.returnValue = 'Are you sure?';\n // //return 'Are you sure?';\n//\n // return false;\n // }\n//\n // return true;\n // }\n\n // afterDeactivate( isDeactivating: boolean ) {\n // if ( isDeactivating && this.isEditing ) {\n // this.unlockActionSync();\n // }\n // }\n\n startEdit(): void {\n\n //this.lockAction();\n\n }\n\n public endEdit(): void {\n\n //this.unlockAction();\n\n }\n/*\n lockAction() {\n\n this.changeRequestService.lockAction(this.action.oid).then(response => {\n\n this.isEditing = true;\n if (this.geometryEditor != null) {\n\n this.geometryEditor.enableEditing(true);\n\n }\n\n }).catch((err: HttpErrorResponse) => {\n\n this.error(err);\n\n });\n\n }\n\n unlockAction() {\n\n this.changeRequestService.unlockAction(this.action.oid).then(response => {\n\n this.isEditing = false;\n if (this.geometryEditor != null) {\n\n this.geometryEditor.enableEditing(false);\n\n }\n\n }).catch((err: HttpErrorResponse) => {\n\n this.error(err);\n\n });\n\n }\n\n // https://stackoverflow.com/questions/4945932/window-onbeforeunload-ajax-request-in-chrome\n unlockActionSync() {\n\n $.ajax({\n url: acp + \"/changerequest/unlockAction\",\n method: \"POST\",\n data: { actionId: this.action.oid },\n success: function(a) {\n\n },\n async: false\n });\n\n }\n*/\n getUsername(): string {\n\n return this.authService.getUsername();\n\n }\n\n public error(err: HttpErrorResponse): void {\n\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n\n }\n\n}\n","
\n\n
\n

{{action.actionLabel}}

\n\t
\n \n
\n

\n : {{action.geoObjectType.code}}\n

\n \n
\n \n \n
\n \n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n
\n \n \n
\n\n
\n \n \n \n
\n
\n
","import { Component, OnInit, Input } from \"@angular/core\";\nimport {\n trigger,\n style,\n animate,\n transition,\n state\n} from \"@angular/animations\";\n\nimport { TimeRangeEntry } from \"@registry/model/registry\";\nimport { LocalizationService } from \"@shared/service\";\nimport { DateService } from \"@shared/service/date.service\";\nimport { ChangeRequestChangeOverTimeAttributeEditor } from \"./change-request-change-over-time-attribute-editor\";\nimport { ChangeRequestEditor } from \"./change-request-editor\";\nimport { GeoObjectSharedAttributeEditorComponent } from \"./geoobject-shared-attribute-editor.component\";\nimport { StandardAttributeCRModel } from \"./StandardAttributeCRModel\";\nimport { ValueOverTimeCREditor } from \"./ValueOverTimeCREditor\";\n\nexport interface DateBoundary { date: string; isStart: boolean; isEnd: boolean }\n\nexport interface TimelineEntry { width: number, x: number, period: TimeRangeEntry }\n\nexport interface DataTimeSpan {startDay: number, startDate: string, displayStartDate: string, endDay: number, endDate: string, displayEndDate: string, span: number}\n\n/*\n * This component is shared between:\n * -\n *\n * Be wary of changing this component for one usecase and breaking other usecases!\n */\n@Component({\n selector: \"stability-period\",\n templateUrl: \"./stability-period.component.html\",\n styleUrls: [\"./stability-period.component.css\"],\n animations: [\n [\n trigger(\"fadeInOut\", [\n transition(\":enter\", [\n style({\n opacity: 0\n }),\n animate(\"1000ms\")\n ]),\n transition(\":leave\",\n animate(\"1000ms\",\n style({\n opacity: 0\n })\n )\n )\n ])\n ]]\n})\nexport class StabilityPeriodComponent implements OnInit {\n\n @Input() changeRequestEditor: ChangeRequestEditor;\n\n @Input() sharedAttributeEditor: GeoObjectSharedAttributeEditorComponent;\n\n @Input() filterDate: string;\n\n @Input() forDate: string;\n\n @Input() context: string;\n\n @Input() latestPeriodIsActive: boolean = false;\n\n periods: TimeRangeEntry[] = [];\n\n timelines: [TimelineEntry[]];\n\n activeEntry: TimelineEntry = null;\n\n forDateEntry: TimelineEntry = null;\n\n private infinityDayPadding: number = 15;\n\n dataTimeSpan: DataTimeSpan = null;\n\n _showHint: boolean = false;\n // eslint-disable-next-line accessor-pairs\n @Input() set showHint(val: boolean) {\n this._showHint = val;\n\n setTimeout(() => {\n this.showHint = false;\n }, 10000);\n }\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private lService: LocalizationService, public dateService: DateService) {}\n\n ngOnInit(): void {\n this.generate();\n\n this.changeRequestEditor.onChangeSubject.subscribe(() => {\n this.generate();\n });\n\n let timeline = this.timelines[0];\n if (timeline && timeline.length > 1) {\n if (this.filterDate != null) {\n let index = timeline.findIndex(entry => this.dateService.between(this.filterDate, entry.period.startDate, entry.period.endDate));\n\n if (index !== -1) {\n this.activeEntry = timeline[index];\n }\n } else if (this.latestPeriodIsActive) {\n this.setActiveTimelineEntry(timeline[timeline.length - 1]);\n }\n\n if (this.forDate != null) {\n let forDateIndex = timeline.findIndex(entry => this.dateService.between(this.forDate, entry.period.startDate, entry.period.endDate));\n\n if (forDateIndex !== -1) {\n this.forDateEntry = timeline[forDateIndex];\n }\n }\n }\n }\n\n navigateRelative(amount: number) {\n let timeline: TimelineEntry[] = this.timelines[0];\n if (timeline == null || timeline.length === 0) { return; }\n\n if (this.activeEntry == null) {\n this.setActiveTimelineEntry(timeline[0]);\n return;\n }\n\n let index = timeline.findIndex(entry => entry.period.startDate === this.activeEntry.period.startDate);\n\n if (index !== -1) {\n let nextIndex = index + amount;\n\n if (nextIndex < 0) {\n nextIndex = timeline.length - 1;\n } else if (nextIndex >= timeline.length) {\n nextIndex = 0;\n }\n\n this.setActiveTimelineEntry(timeline[nextIndex]);\n }\n }\n\n setActiveTimelineEntry(entry: TimelineEntry, refresh: boolean = true) {\n if (this.periods.length <= 1) {\n entry = null;\n }\n\n if (this.activeEntry && entry && entry.period.startDate === this.activeEntry.period.startDate) {\n entry = null;\n }\n\n this.activeEntry = entry;\n this.sharedAttributeEditor.setFilterDate(entry == null ? null : entry.period.startDate, refresh);\n }\n\n generate() {\n this.generatePeriods();\n this.generateTimelines();\n }\n\n calculateDataTimeSpan(): void {\n let startDate: string = null;\n let endDate: string = null;\n let endDay: number = null;\n let startDay: number = null;\n\n if (this.periods.length > 0) {\n startDate = this.periods[0].startDate;\n endDate = this.periods[this.periods.length - 1].endDate;\n\n startDay = this.dateService.getDateFromDateString(startDate).getTime() / (1000 * 60 * 60 * 24);\n\n if (endDate === \"5000-12-31\") {\n if (this.periods.length > 1) {\n endDay = this.dateService.getDateFromDateString(this.periods[this.periods.length - 1].startDate).getTime() / (1000 * 60 * 60 * 24);\n this.infinityDayPadding = (endDay - startDay) * 0.05;\n endDay = this.infinityDayPadding + endDay;\n } else {\n endDay = startDay + this.infinityDayPadding;\n }\n } else {\n endDay = this.dateService.getDateFromDateString(endDate).getTime() / (1000 * 60 * 60 * 24);\n }\n }\n\n this.dataTimeSpan = { startDay: startDay, startDate: startDate, displayStartDate: this.dateService.formatDateForDisplay(startDate), endDay: endDay, endDate: endDate, displayEndDate: this.dateService.formatDateForDisplay(endDate), span: (endDay - startDay) };\n }\n\n generateTimelines() {\n this.timelines = [] as any;\n\n if (this.periods.length === 0) {\n return;\n } else if (this.periods.length === 1) {\n this.setActiveTimelineEntry(null, false);\n }\n\n this.calculateDataTimeSpan();\n\n let currentTimeline: any = [];\n this.timelines.push(currentTimeline);\n let daysLeft = this.dataTimeSpan.span;\n\n let len = this.periods.length;\n for (let i = 0; i < len; ++i) {\n let period = this.periods[i];\n\n let start: Date = this.dateService.getDateFromDateString(period.startDate);\n let end: Date = this.dateService.getDateFromDateString(period.endDate);\n\n let startDay = start.getTime() / (1000 * 60 * 60 * 24);\n let endDay = end.getTime() / (1000 * 60 * 60 * 24);\n if (period.endDate === \"5000-12-31\") {\n endDay = startDay + this.infinityDayPadding;\n }\n\n let daysInPeriod: number = (endDay - startDay);\n if (daysLeft - daysInPeriod < 0) {\n let daysInFirstEntry = daysLeft;\n let timelineEntry1: TimelineEntry = { width: (daysInFirstEntry / this.dataTimeSpan.span) * 100, x: ((startDay - this.dataTimeSpan.startDay) / this.dataTimeSpan.span) * 100, period: period };\n currentTimeline.push(timelineEntry1);\n\n currentTimeline = [];\n this.timelines.push(currentTimeline);\n daysLeft = this.dataTimeSpan.span;\n\n let timelineEntry2: TimelineEntry = { width: ((daysInPeriod - daysInFirstEntry) / this.dataTimeSpan.span) * 100, x: ((startDay - this.dataTimeSpan.startDay) / this.dataTimeSpan.span) * 100, period: period };\n currentTimeline.push(timelineEntry2);\n } else {\n let timelineEntry: TimelineEntry = { width: (daysInPeriod / this.dataTimeSpan.span) * 100, x: ((startDay - this.dataTimeSpan.startDay) / this.dataTimeSpan.span) * 100, period: period };\n currentTimeline.push(timelineEntry);\n daysLeft = daysLeft - daysInPeriod;\n\n if (daysLeft === 0) {\n currentTimeline = [];\n this.timelines.push(currentTimeline);\n daysLeft = this.dataTimeSpan.span;\n }\n }\n }\n\n // console.log(this.timelines);\n }\n\n generatePeriods() {\n let boundaries: DateBoundary[] = [];\n\n // Create an array which contains all the unique start and end dates\n let editors: (ChangeRequestChangeOverTimeAttributeEditor | StandardAttributeCRModel)[] = this.changeRequestEditor.getEditors();\n let len = editors.length;\n\n for (let i = 0; i < len; ++i) {\n if (editors[i] instanceof ChangeRequestChangeOverTimeAttributeEditor) {\n let editor: ChangeRequestChangeOverTimeAttributeEditor = editors[i] as ChangeRequestChangeOverTimeAttributeEditor;\n let values = editor.getEditors();\n\n let valLen = values.length;\n for (let j = 0; j < valLen; ++j) {\n let period: ValueOverTimeCREditor = values[j];\n\n if (period.startDate != null && period.endDate != null && !period.isDelete()) {\n let startIndex = boundaries.findIndex(boundary => period.startDate === boundary.date);\n if (startIndex !== -1) {\n boundaries[startIndex].isStart = true;\n } else {\n boundaries.push({ date: period.startDate, isStart: true, isEnd: false });\n }\n\n let endIndex = boundaries.findIndex(boundary => period.endDate === boundary.date);\n if (endIndex !== -1) {\n boundaries[endIndex].isEnd = true;\n } else {\n boundaries.push({ date: period.endDate, isStart: false, isEnd: true });\n }\n }\n }\n }\n }\n\n // Sort the date boundaries\n boundaries.sort(function(a, b) {\n if (a.date == null || a.date === \"\") {\n return 1;\n } else if (b.date == null || b.date === \"\") {\n return -1;\n }\n\n let first: any = new Date(a.date);\n let next: any = new Date(b.date);\n return first - next;\n });\n\n // Loop over the boundaries and create versions between all the boundaries, but only if there is data between them\n this.periods = [];\n let dlen = boundaries.length;\n for (let i = 0; i < dlen; ++i) {\n let current: DateBoundary = boundaries[i];\n let next: DateBoundary = i + 1 > dlen ? null : boundaries[i + 1];\n\n if (current.isStart && current.isEnd) {\n this.periods.push({ startDate: current.date, endDate: current.date });\n }\n if (current.isEnd && (next != null && next.isStart && this.dateService.addDay(1, current.date) === next.date)) {\n continue;\n }\n\n let startDate = (current.isEnd ? this.dateService.addDay(1, current.date) : current.date);\n\n if (next != null && this.changeRequestEditor.existsAtDate(startDate)) {\n let endDate = (!next.isStart ? next.date : this.dateService.addDay(-1, next.date));\n\n this.periods.push({ startDate: startDate, endDate: endDate });\n }\n }\n\n this.dateService.sort(this.periods);\n }\n\n formatDate(date: string): string {\n return this.dateService.formatDateForDisplay(date);\n }\n\n}\n","
\n \n \n \n \n ()\n
\n \n
\n \n ()\n ()\n \n ()\n \n
\n\n
\n \n \n\t\t {{activeEntry.period.startDate}}\n\t\t -\n\t\t {{dateService.formatDateForDisplay(activeEntry.period.endDate)}}\n \n \n {{dataTimeSpan.displayStartDate}}\n -\n {{dataTimeSpan.displayEndDate}}\n \n \n\t \n
\n
\n\t \n\t \n\t
\n \n
\n\n \n\n\n \n\n
\n
\n\n\n\n\n\n
","import {\n Component,\n OnInit,\n Input,\n Output,\n ChangeDetectorRef,\n EventEmitter,\n ElementRef\n} from \"@angular/core\";\nimport {\n trigger,\n style,\n animate,\n transition\n} from \"@angular/animations\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { GeoObjectType, AttributeType, GeoObjectOverTime } from \"@registry/model/registry\";\nimport { ChangeRequest, SummaryKey } from \"@registry/model/crtable\";\nimport { GovernanceStatus } from \"@registry/model/constants\";\nimport { AuthService } from \"@shared/service/auth.service\";\n\nimport { ErrorHandler } from \"@shared/component\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { RegistryService } from \"@registry/service\";\nimport { ChangeRequestService } from \"@registry/service/change-request.service\";\nimport { DateService } from \"@shared/service/date.service\";\n\nimport { LocalizationService } from \"@shared/service\";\n\nimport { ControlContainer, NgForm } from \"@angular/forms\";\nimport { StandardAttributeCRModel } from \"./StandardAttributeCRModel\";\nimport { ChangeRequestEditor } from \"./change-request-editor\";\n\n@Component({\n selector: \"standard-attribute-editor\",\n templateUrl: \"./standard-attribute-editor.component.html\",\n styleUrls: [\"./standard-attribute-editor.component.css\"],\n host: { \"[@fadeInOut]\": \"true\" },\n animations: [\n [\n trigger(\"fadeInOut\", [\n transition(\"void => *\", [\n style({\n opacity: 0\n }),\n animate(\"500ms\")\n ]),\n transition(\":leave\",\n animate(\"500ms\",\n style({\n opacity: 0\n })\n )\n )\n ])\n ]],\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }]\n\n})\nexport class StandardAttributeEditorComponent implements OnInit {\n\n bsModalRef: BsModalRef;\n\n @Input() isNew: boolean = false;\n\n message: string = null;\n\n isValid: boolean = true;\n @Output() isValidChange = new EventEmitter();\n\n @Input() readonly: boolean = false;\n\n @Input() attributeType: AttributeType;\n\n @Input() changeRequest: ChangeRequest;\n\n @Input() geoObjectType: GeoObjectType;\n\n @Input() geoObject: GeoObjectOverTime;\n\n @Input() isNewGeoObject: boolean = false;\n\n view: {\n summaryKey: SummaryKey;\n summaryKeyLocalized: string;\n oldValue?: any;\n value: any;\n attributeCode: string;\n };\n\n @Input() changeRequestEditor: ChangeRequestEditor;\n\n changeRequestAttributeEditor: StandardAttributeCRModel;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public cdr: ChangeDetectorRef, public service: RegistryService, public lService: LocalizationService,\n public changeDetectorRef: ChangeDetectorRef, public dateService: DateService, private authService: AuthService,\n private requestService: ChangeRequestService, private modalService: BsModalService, private elementRef: ElementRef) { }\n\n ngOnInit(): void {\n this.changeRequestAttributeEditor = this.changeRequestEditor.getEditorForAttribute(this.attributeType, null) as StandardAttributeCRModel;\n this.calculateView();\n }\n\n ngAfterViewInit() {\n }\n\n calculateView(): void {\n let diff = this.changeRequestAttributeEditor.diff;\n\n if (diff != null) {\n let newVal = diff.newValue == null ? null : JSON.parse(JSON.stringify(diff.newValue));\n this.view = {\n value: newVal,\n summaryKey: SummaryKey.VALUE_CHANGE,\n summaryKeyLocalized: this.lService.decode(\"changeovertime.manageVersions.summaryKey.\" + SummaryKey.VALUE_CHANGE),\n attributeCode: this.changeRequestAttributeEditor.attribute.code\n };\n\n if (diff.oldValue !== null && diff.oldValue !== undefined) {\n this.view.oldValue = JSON.parse(JSON.stringify(diff.oldValue));\n }\n } else {\n this.view = {\n value: this.changeRequestAttributeEditor.value,\n summaryKey: SummaryKey.UNMODIFIED,\n summaryKeyLocalized: this.lService.decode(\"changeovertime.manageVersions.summaryKey.\" + SummaryKey.UNMODIFIED),\n attributeCode: this.changeRequestAttributeEditor.attribute.code\n };\n }\n }\n\n onValueChange(): void {\n this.calculateView();\n }\n\n onApprove(): void {\n let editAction = this.changeRequestAttributeEditor.editAction;\n\n this.requestService.setActionStatus(editAction.oid, GovernanceStatus.ACCEPTED).then(results => {\n editAction.approvalStatus = GovernanceStatus.ACCEPTED;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onReject(): void {\n let editAction = this.changeRequestAttributeEditor.editAction;\n\n this.requestService.setActionStatus(editAction.oid, GovernanceStatus.REJECTED).then(results => {\n editAction.approvalStatus = GovernanceStatus.REJECTED;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onPending(): void {\n let editAction = this.changeRequestAttributeEditor.editAction;\n\n this.requestService.setActionStatus(editAction.oid, GovernanceStatus.PENDING).then(results => {\n editAction.approvalStatus = GovernanceStatus.PENDING;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n public error(err: any): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n}\n","
\n
\n
\n
\n {{view.summaryKeyLocalized}}\n
\n \n
\n
\n
\n\t \n\t \n\t
\n
\n \n
\n

\n  \n \n \n\t \n \n\t \n\t \n \n\t \n \n \n \n {{ view.oldValue }}\n \n

\n
\n
\n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n","import { Component, OnInit, ViewChild, OnDestroy, Input } from \"@angular/core\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { RegistryService, MapService, GeometryService } from \"@registry/service\";\n\nimport { Map, NavigationControl } from \"mapbox-gl\";\n\n// eslint-disable-next-line no-unused-vars\ndeclare let acp: string;\n\n@Component({\n selector: \"geoobject-editor-map[geometryType]\",\n templateUrl: \"./geoobject-editor-map.component.html\",\n styleUrls: [\"./geoobject-editor-map.component.css\"]\n})\n\n/**\n * This component is used when viewing change requests\n */\nexport class GeoObjectEditorMapComponent implements OnInit, OnDestroy {\n\n _mapHeight: number = 400;\n // eslint-disable-next-line accessor-pairs\n @Input() set mapHeight(height: number) {\n if (height > 400) {\n this._mapHeight = height;\n }\n }\n\n /*\n * Required. The GeometryType of the GeoJSON. Expected to be in uppercase (because that's how it is in the GeoObjectType for some reason)\n */\n @Input() geometryType: string;\n\n /*\n * Optional. If specified, we will fetch the bounding box from this GeoObject code.\n */\n @Input() bboxCode: string;\n\n /*\n * Optional. If specified, we will fetch the bounding box from this GeoObjectType at the date.\n */\n @Input() bboxType: string;\n\n @Input() bboxDate: string;\n\n /*\n * Optional. If set to true the edit controls will not be displayed. Defaults to false.\n */\n @Input() readOnly: boolean = false;\n\n @ViewChild(\"mapDiv\") mapDiv;\n\n map: Map;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private geomService: GeometryService, private registryService: RegistryService, private mapService: MapService) { }\n\n ngOnInit(): void {\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this.mapDiv.nativeElement.id = Math.floor(Math.random() * (899999)) + 100000;\n\n this.map = new Map({\n container: this.mapDiv.nativeElement.id,\n style: \"mapbox://styles/mapbox/satellite-v9\",\n zoom: 2,\n center: [110.880453, 10.897852]\n });\n\n this.map.on(\"load\", () => {\n this.initMap();\n });\n }, 0);\n }\n\n ngOnDestroy(): void {\n this.geomService.destroy();\n }\n\n getIsValid(): boolean {\n return this.geomService.isValid();\n }\n\n initMap(): void {\n this.map.on(\"style.load\", () => {\n // this.addLayers();\n // this.geomService.initialize(this.map, this.geometryType, this.readOnly);\n });\n\n this.geomService.initialize(this.map, this.geometryType, this.readOnly);\n\n // Add zoom and rotation controls to the map.\n this.map.addControl(new NavigationControl());\n\n this.zoomToBbox();\n }\n\n zoomToBbox(): void {\n this.geomService.zoomToLayersExtent();\n }\n\n public error(err: HttpErrorResponse): void {\n // TODO\n console.log(\"ERROR\", err);\n }\n\n}\n","
\n
\n
","\nimport { Component, ElementRef, Input, Output, EventEmitter } from \"@angular/core\";\n\n@Component({\n selector: \"simple-edit-control\",\n templateUrl: \"./simple-edit-control.component.html\",\n styleUrls: [\"./simple-edit-control.css\"]\n})\nexport class SimpleEditControl {\n\n elRef: ElementRef\n\n @Output() editEmitter = new EventEmitter();\n\n @Input() visible: boolean = true;\n @Input() editSessionEnabled: boolean = false;\n @Input() save: boolean = false;\n\n constructor(elRef: ElementRef) {\n this.elRef = elRef;\n }\n\n onAdd(map): any {\n return this.elRef.nativeElement;\n }\n\n onRemove(map): void {\n this.elRef.nativeElement.remove();\n }\n\n onClick(): void {\n this.editEmitter.emit();\n }\n}\n","
\n \n
\n
\n \n
\n
\n
\n
","import { Component, Input, EventEmitter, Output, SimpleChanges } from \"@angular/core\";\nimport { IActionMapping, ITreeOptions } from \"@circlon/angular-tree-component\";\n\nimport { HierarchyOverTime } from \"@registry/model/registry\";\n\n@Component({\n\n selector: \"tree-geo-selector\",\n templateUrl: \"./tree-geo-selector.html\",\n styleUrls: [\"./tree-geo-selector.css\"]\n})\nexport class TreeGeoSelector {\n\n @Input() hierarchy: HierarchyOverTime;\n\n @Input() readOnly: boolean = false;\n\n @Input() forDate: Date = null;\n\n @Output() onManageVersion = new EventEmitter();\n\n nodes: any[] = [];\n\n actionMapping: IActionMapping = {\n mouse: {\n click: null\n }\n }\n\n options: ITreeOptions = {\n displayField: \"name\",\n isExpandedField: \"expanded\",\n idField: \"code\",\n actionMapping: this.actionMapping\n };\n\n // eslint-disable-next-line no-useless-constructor\n constructor() {\n\n }\n\n ngOnInit(): void {\n this.calculate();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes[\"forDate\"]) {\n this.calculate();\n }\n }\n\n calculate(): any {\n let time = null;\n\n if (this.forDate != null) {\n time = this.forDate.getTime();\n }\n\n let nodes = [];\n let current = null;\n\n this.hierarchy.entries.forEach(pot => {\n const startDate = Date.parse(pot.startDate);\n const endDate = Date.parse(pot.endDate);\n\n // eslint-disable-next-line no-mixed-operators\n if (time == null || time >= startDate && time <= endDate) {\n this.hierarchy.types.forEach(type => {\n let node: any = {\n code: type.code,\n label: type.label,\n children: [],\n expanded: false\n };\n\n if (pot.parents[type.code] != null) {\n node.name = pot.parents[type.code].text;\n\n if (time == null) {\n node.name = node.name + \" (\" + pot.startDate + \" -> \" + pot.endDate + \")\";\n }\n\n node.geoObject = pot.parents[type.code].geoObject;\n }\n\n if (current == null) {\n nodes.push(node);\n } else {\n current.children.push(node);\n current.expanded = true;\n }\n\n current = node;\n });\n }\n\n current = null;\n });\n\n this.nodes = nodes;\n }\n\n onEdit(): void {\n this.onManageVersion.emit(this.hierarchy);\n }\n\n}\n","
\n\n
\n
\n

{{hierarchy.label}}

\n
\n
\n\n\n
0\" class=\"tree\" >\n \n
\n\n\n\n\n \n \n\n
\n
\n
","import { Component, Input, ViewChild } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Subject } from \"rxjs\";\n\nexport interface ActionDetailComponent {\n endEdit(): void;\n}\n\n@Component({\n selector: \"action-detail-modal\",\n templateUrl: \"./action-detail-modal.component.html\",\n styleUrls: []\n})\nexport class ActionDetailModalComponent {\n\n action: any;\n\n readonly: boolean;\n\n @ViewChild(\"cuDetail\") cuDetail: ActionDetailComponent;\n @ViewChild(\"arDetail\") arDetail: ActionDetailComponent;\n @ViewChild(\"spDetail\") spDetail: ActionDetailComponent;\n\n @Input()\n curAction(action: any, readonly: boolean) {\n this.action = action;\n this.readonly = readonly;\n }\n\n /*\n * Called on confirm\n */\n public onFormat: Subject;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef) { }\n\n ngOnInit(): void {\n }\n\n cancel(): void {\n if (this.cuDetail != null) {\n this.cuDetail.endEdit();\n }\n\n if (this.arDetail != null) {\n this.arDetail.endEdit();\n }\n\n if (this.spDetail != null) {\n this.spDetail.endEdit();\n }\n\n this.bsModalRef.hide();\n }\n\n confirm(): void {\n this.bsModalRef.hide();\n }\n}\n","
\n \n\n
\n
\n \n \n \n
\n
\n\n
\n
\n
\n
\n \n
\n
\n
\n\n
\n","import { Component, OnInit } from \"@angular/core\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { ErrorHandler, ErrorModalComponent } from \"@shared/component\";\n\nimport { IOService } from \"@registry/service\";\nimport { AuthService } from \"@shared/service\";\n\ndeclare let acp: string;\n\n@Component({\n\n selector: \"data-export\",\n templateUrl: \"./data-export.component.html\",\n styleUrls: []\n})\nexport class DataExportComponent implements OnInit {\n\n /*\n * List of geo object types from the system\n */\n types: { label: string, code: string }[]\n\n /*\n * Currently selected code\n */\n code: string = null;\n\n /*\n * List of the hierarchies this type is part of\n */\n hierarchies: { label: string, code: string }[] = [];\n\n /*\n * Currently selected hierarchy\n */\n hierarchy: string = null;\n\n /*\n * Currently selected format\n */\n format: string = null;\n\n /*\n * Reference to the modal current showing\n */\n bsModalRef: BsModalRef;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: IOService, private modalService: BsModalService, private authService: AuthService) { }\n\n ngOnInit(): void {\n this.service.listGeoObjectTypes(true).then(types => {\n // this.types = types;\n\n let myOrgTypes = [];\n for (let i = 0; i < types.length; ++i) {\n if (this.authService.isOrganizationRA(types[i].orgCode)) {\n myOrgTypes.push(types[i]);\n }\n }\n this.types = myOrgTypes;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n onChange(code: string): void {\n if (code != null && code.length > 0) {\n this.service.getHierarchiesForType(code, false).then(hierarchies => {\n this.hierarchies = hierarchies;\n this.hierarchy = null;\n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n } else {\n this.hierarchies = [];\n this.hierarchy = null;\n }\n }\n\n onExport(): void {\n if (this.format === \"SHAPEFILE\") {\n window.location.href = acp + \"/shapefile/export-shapefile?type=\" + this.code + \"&hierarchyType=\" + this.hierarchy;\n } else if (this.format === \"EXCEL\") {\n window.location.href = acp + \"/excel/export-spreadsheet?type=\" + this.code + \"&hierarchyType=\" + this.hierarchy;\n }\n }\n\n public error(err: HttpErrorResponse): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n}\n","\n \n \n\n \n\n \n
\n
\n \n
\n \n
\n
\n
0\">\n \n
\n \n
\n
\n
\n \n
\n \n
\n
\n
\n
\n \n
\n
\n
\n \n \n","import {\n Component,\n OnInit,\n Input,\n Output,\n ChangeDetectorRef,\n EventEmitter,\n ViewChildren,\n QueryList\n} from \"@angular/core\";\nimport {\n trigger,\n style,\n animate,\n transition\n} from \"@angular/animations\";\nimport { GeoObjectType, AttributeType, ValueOverTime, GeoObjectOverTime, PRESENT } from \"@registry/model/registry\";\nimport { DateFieldComponent } from \"../../../shared/component/form-fields/date-field/date-field.component\";\nimport { LocalizationService } from \"@shared/service\";\nimport { DateService } from \"@shared/service/date.service\";\nimport * as moment from \"moment\";\n\n@Component({\n selector: \"geometry-panel\",\n templateUrl: \"./geometry-panel.component.html\",\n styleUrls: [\"./geometry-panel.css\"],\n host: { \"[@fadeInOut]\": \"true\" },\n animations: [\n [\n trigger(\"fadeInOut\", [\n transition(\"void => *\", [\n style({\n opacity: 0\n }),\n animate(\"500ms\")\n ]),\n transition(\":leave\",\n animate(\"500ms\",\n style({\n opacity: 0\n })\n )\n )\n ])\n ]]\n})\nexport class GeometryPanelComponent implements OnInit {\n\n @ViewChildren(\"dateFieldComponents\") dateFieldComponentsArray: QueryList;\n\n currentDate: Date = new Date();\n\n isValid: boolean = true;\n\n isVersionForHighlight: number;\n\n message: string = null;\n\n readonly: boolean = false;\n\n hasConflict: boolean = false;\n\n /*\n * Observable subject for MasterList changes. Called when an update is successful\n */\n @Output() onChange = new EventEmitter();\n\n @Output() onCloneGeometry = new EventEmitter();\n\n @Output() onEdit = new EventEmitter();\n\n @Input() geoObjectType: GeoObjectType;\n\n originalGeoObjectOverTime: GeoObjectOverTime;\n geoObjectOverTime: GeoObjectOverTime;\n\n // eslint-disable-next-line accessor-pairs\n @Input() set geoObjectOverTimeInput(value: GeoObjectOverTime) {\n this.originalGeoObjectOverTime = JSON.parse(JSON.stringify(value));\n this.geoObjectOverTime = value;\n }\n\n @Input() isNewGeoObject: boolean = false;\n\n goGeometries: GeoObjectOverTime;\n\n newVersion: ValueOverTime;\n\n hasDuplicateDate: boolean = false;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private lService: LocalizationService, public changeDetectorRef: ChangeDetectorRef, private dateService: DateService) { }\n\n ngOnInit(): void {\n }\n\n checkDateFieldValidity(): boolean {\n let dateFields = this.dateFieldComponentsArray.toArray();\n\n for (let i = 0; i < dateFields.length; i++) {\n let field = dateFields[i];\n if (!field.valid) {\n return false;\n }\n }\n\n return true;\n }\n\n onDateChange(): any {\n this.hasConflict = false;\n\n this.isValid = this.checkDateFieldValidity();\n\n let vAttributes = this.geoObjectOverTime.attributes[\"geometry\"].values;\n\n this.hasConflict = this.dateService.checkRanges(null, vAttributes);\n }\n\n edit(vot: ValueOverTime, isVersionForHighlight: number): void {\n this.onEdit.emit(vot);\n\n this.isVersionForHighlight = isVersionForHighlight;\n }\n\n onAddNewVersion(geometry: ValueOverTime): void {\n let votArr: ValueOverTime[] = this.geoObjectOverTime.attributes[\"geometry\"].values;\n\n let vot: ValueOverTime = new ValueOverTime();\n vot.startDate = null; // Utils.formatDateString(new Date());\n vot.endDate = null; // Utils.formatDateString(new Date());\n\n if (geometry && geometry.value) {\n vot.value = geometry.value;\n } else {\n vot.value = { type: this.geoObjectType.geometryType, coordinates: [] };\n }\n\n if (this.geoObjectType.geometryType === \"MULTIPOLYGON\") {\n vot.value.type = \"MultiPolygon\";\n } else if (this.geoObjectType.geometryType === \"POLYGON\") {\n vot.value.type = \"Polygon\";\n } else if (this.geoObjectType.geometryType === \"POINT\") {\n vot.value.type = \"Point\";\n } else if (this.geoObjectType.geometryType === \"MULTIPOINT\") {\n vot.value.type = \"MultiPoint\";\n } else if (this.geoObjectType.geometryType === \"LINE\") {\n vot.value.type = \"Line\";\n } else if (this.geoObjectType.geometryType === \"MULTILINE\") {\n vot.value.type = \"MultiLine\";\n }\n\n votArr.push(vot);\n\n this.changeDetectorRef.detectChanges();\n }\n\n getVersionData(attribute: AttributeType) {\n let versions: ValueOverTime[] = [];\n\n this.geoObjectOverTime.attributes[attribute.code].values.forEach(vAttribute => {\n vAttribute.value.localeValues.forEach(val => {\n versions.push(val);\n });\n });\n\n return versions;\n }\n\n getDefaultLocaleVal(locale: any): string {\n let defVal = null;\n\n locale.localeValues.forEach(locVal => {\n if (locVal.locale === \"defaultLocale\") {\n defVal = locVal.value;\n }\n });\n\n return defVal;\n }\n\n setDateAttribute(vot: ValueOverTime, val: string): void {\n vot.value = new Date(val).getTime().toString();\n }\n\n remove(version: any): void {\n let val = this.geoObjectOverTime.attributes[\"geometry\"];\n\n let position = -1;\n for (let i = 0; i < val.values.length; i++) {\n let vals = val.values[i];\n\n if (vals.startDate === version.startDate) {\n position = i;\n }\n }\n\n if (position > -1) {\n val.values.splice(position, 1);\n }\n }\n\n formatDate(date: string) {\n let localeData = moment.localeData(date);\n let format = localeData.longDateFormat(\"L\");\n return moment().format(format);\n }\n\n setInfinity(vAttribute, attributes): void {\n if (vAttribute.endDate === PRESENT) {\n vAttribute.endDate = new Date();\n } else {\n vAttribute.endDate = PRESENT;\n }\n\n this.onDateChange();\n }\n\n sort(votArr: ValueOverTime[]): void {\n // Sort the data by start date\n votArr.sort(function(a, b) {\n if (a.startDate == null || a.startDate === \"\") {\n return 1;\n } else if (b.startDate == null || b.startDate === \"\") {\n return -1;\n }\n\n let first: any = new Date(a.startDate);\n let next: any = new Date(b.startDate);\n return first - next;\n });\n }\n\n onCloneGeometryToNewVersion(geometry: ValueOverTime): void {\n this.onAddNewVersion(geometry);\n }\n\n onSubmit(): void {\n this.onChange.emit(this.geoObjectOverTime);\n }\n\n onCancel(): void {\n this.onChange.emit(this.originalGeoObjectOverTime);\n }\n\n}\n","
\n
\n \n
\n\n \n
\n\n
\n
\n\n \n
\n
\n\n
    \n
  • \n \n\n \n

    \n \n

    \n\n 0 && vAttribute.conflictMessage[0].type === 'ERROR', 'warning-border': vAttribute.conflictMessage && vAttribute.conflictMessage.length > 0 && vAttribute.conflictMessage[0].type === 'WARNING'}\">\n \n \n \n \n
    \n \n \n \n \n \n \n \n \n 0\">\n\n\n\n

    \n {{msg.message}}\n

    \n \n
    \n \n \n
    \n
    \n \n
    \n \n \n \n
    \n
    \n
    \n \n
    \n \n \n \n
    \n
    \n
    \n \n
    \n
  • \n\n
  • \n \n \n
  • \n
\n
\n
\n\n
\n\n
\n \n
\n
\n \n \n
\n
\n
\n\n
\n
\n
\n\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { HierarchyNode } from \"@registry/model/hierarchy\";\nimport { GeoObjectType } from \"@registry/model/registry\";\n\n@Pipe({\n name: \"geoobjecttype\",\n pure: false\n})\nexport class GeoObjectTypePipe implements PipeTransform {\n\n transform(items: GeoObjectType[], filter: HierarchyNode[]): any {\n if (!items || !filter) {\n return items;\n }\n\n let unassignedGeoObjTypes: string[] = [];\n this.buildUnassignedGeoObjTypes(filter, unassignedGeoObjTypes)\n\n // filter items array, items which match and return true will be\n // kept, false will be filtered out\n return items.filter(item => unassignedGeoObjTypes.indexOf(item.code) === -1);\n }\n\n buildUnassignedGeoObjTypes(filter: HierarchyNode[], unassignedGeoObjTypes: string[]): void {\n filter.forEach(f => {\n this.processHierarchyNodes(f, unassignedGeoObjTypes);\n })\n }\n\n processHierarchyNodes(node: HierarchyNode, unassignedGeoObjTypes: string[]) {\n unassignedGeoObjTypes.push(node.geoObjectType)\n\n node.children.forEach(child => {\n this.processHierarchyNodes(child, unassignedGeoObjTypes);\n })\n }\n}","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: \"geoObjectAttributeExcludesFilter\",\n pure: true\n})\nexport class GeoObjectAttributeExcludesPipe implements PipeTransform {\n\n transform(items: any[], filter: string[]): any {\n if (!items || !filter) {\n return items;\n }\n\n return items.filter(item => filter.indexOf(item.code) === -1)\n }\n}","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: \"toEpochDateTime\",\n pure: true\n})\nexport class ToEpochDateTimePipe implements PipeTransform {\n\n transform(date: string): any {\n if (!date) {\n return date;\n }\n\n return new Date(date).getTime();\n }\n}","import { NgModule } from \"@angular/core\";\nimport { LocationStrategy, HashLocationStrategy } from \"@angular/common\";\nimport { Routes, RouterModule } from \"@angular/router\";\n\nimport { HierarchyComponent } from \"./component/hierarchy/hierarchy.component\";\nimport { SubmitChangeRequestComponent } from \"./component/submit-change-request/submit-change-request.component\";\nimport { MasterListManagerComponent } from \"./component/master-list/master-list-manager.component\";\nimport { MasterListComponent } from \"./component/master-list/master-list.component\";\nimport { MasterListViewComponent } from \"./component/master-list/master-list-view.component\";\nimport { DataPageComponent } from \"./component/data-page/data-page.component\";\nimport { ChangeRequestPageComponent } from \"./component/change-request-page/change-request-page.component\";\nimport { ScheduledJobsComponent } from \"./component/scheduled-jobs/scheduled-jobs.component\";\nimport { JobComponent } from \"./component/scheduled-jobs/job.component\";\nimport { TaskViewerComponent } from \"./component/task-viewer/task-viewer.component\";\nimport { SynchronizationConfigManagerComponent } from \"./component/synchronization-config/synchronization-config-manager.component\";\nimport { SynchronizationConfigComponent } from \"./component/synchronization-config/synchronization-config.component\";\nimport { SyncDetailsComponent } from \"./component/synchronization-config/details.component\";\nimport { LocationManagerComponent } from \"./component/location-manager/location-manager.component\";\nimport { DatasetLocationManagerComponent } from \"./component/location-manager/dataset-location-manager.component\";\n\nimport { MaintainerGuard, ContributerGuard, AuthGuard } from \"../shared/service/guard.service\";\nimport { HistoricalEventModuleComponent } from \"./component/historical-event-module/historical-event-module.component\";\n\nconst routes: Routes = [\n {\n path: \"\",\n component: HierarchyComponent,\n canActivate: [AuthGuard]\n },\n {\n path: \"hierarchies\",\n component: HierarchyComponent,\n canActivate: [AuthGuard]\n },\n {\n path: \"data\",\n component: DataPageComponent,\n canActivate: [MaintainerGuard]\n },\n {\n path: \"change-requests\",\n component: ChangeRequestPageComponent,\n canActivate: [ContributerGuard]\n },\n {\n path: \"change-requests/:oid\",\n component: ChangeRequestPageComponent,\n canActivate: [ContributerGuard]\n },\n {\n path: \"master-lists\",\n component: MasterListManagerComponent,\n canActivate: [AuthGuard]\n },\n {\n path: \"scheduled-jobs\",\n component: ScheduledJobsComponent,\n canActivate: [MaintainerGuard]\n },\n {\n path: \"job/:oid\",\n component: JobComponent,\n canActivate: [MaintainerGuard]\n },\n {\n path: \"master-list/:oid/:published\",\n component: MasterListComponent,\n canActivate: [AuthGuard]\n },\n {\n path: \"master-list-view/:oid\",\n component: MasterListViewComponent,\n canActivate: [AuthGuard]\n },\n {\n path: \"change-request\",\n component: SubmitChangeRequestComponent,\n canActivate: [ContributerGuard]\n },\n {\n path: \"tasks\",\n component: TaskViewerComponent,\n canActivate: [MaintainerGuard]\n },\n {\n path: \"synchronization-configs\",\n component: SynchronizationConfigManagerComponent,\n canActivate: [AuthGuard]\n },\n {\n path: \"synchronization-config/:oid\",\n component: SynchronizationConfigComponent,\n canActivate: [AuthGuard]\n },\n {\n path: \"location-manager\",\n component: LocationManagerComponent,\n canActivate: [AuthGuard]\n },\n {\n path: \"location-manager/:geoobjectuid/:geoobjecttypecode/:datestr/:hideSearchOptions\",\n component: LocationManagerComponent,\n canActivate: [AuthGuard]\n },\n {\n path: \"location-manager/:geoobjectuid/:geoobjecttypecode/:datestr/:hideSearchOptions/:backReference\",\n component: LocationManagerComponent,\n canActivate: [AuthGuard]\n },\n {\n path: \"dataset-location-manager/:datasetId/:typeCode/:readOnly/:date\",\n component: DatasetLocationManagerComponent,\n canActivate: [AuthGuard]\n },\n {\n path: \"dataset-location-manager/:datasetId/:typeCode/:readOnly/:date/:code\",\n component: DatasetLocationManagerComponent,\n canActivate: [AuthGuard]\n },\n {\n path: \"dataset-location-manager/:datasetId/:typeCode/:readOnly/:date/:code/:editOnly\",\n component: DatasetLocationManagerComponent,\n canActivate: [AuthGuard]\n },\n {\n path: \"dataset-location-manager/:datasetId/:typeCode/:readOnly/:date/:code/:editOnly/:backReference\",\n component: DatasetLocationManagerComponent,\n canActivate: [AuthGuard]\n },\n {\n path: 'sync/details/:config/:oid',\n component: SyncDetailsComponent,\n canActivate: [MaintainerGuard]\n },\n {\n path: \"historical-events\",\n component: HistoricalEventModuleComponent,\n canActivate: [MaintainerGuard]\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n providers: [\n { provide: LocationStrategy, useClass: HashLocationStrategy }\n ]\n})\nexport class RegistryRoutingModule { }\n"],"sourceRoot":""} \ No newline at end of file diff --git a/georegistry-web/src/main/webapp/dist/cgr-app.js b/georegistry-web/src/main/webapp/dist/cgr-app.js index 471100f86..aef3bdac9 100644 --- a/georegistry-web/src/main/webapp/dist/cgr-app.js +++ b/georegistry-web/src/main/webapp/dist/cgr-app.js @@ -1,2 +1,2 @@ -!function(e){function t(t){for(var o,a,l=t[0],s=t[1],c=t[2],p=0,u=[];p0&&g.endDate&&f.startDate){c=new Date(g.endDate),u=new Date(f.startDate);r.default.hasGap(c.getTime(),u.getTime())&&(f.conflictMessages.add(this.gapMessage),g.conflictMessages.add(this.gapMessage))}g=f}return this.sort(t),o},e.prototype.between=function(e,t,n){if(null==e||null==t||null==n)return!1;var o=e instanceof Date?e:this.getDateFromDateString(e),r=this.getDateFromDateString(t),i=this.getDateFromDateString(n);return o>=r&&o<=i},e.prototype.addDay=function(e,t){var n=this.getDateFromDateString(t);return n.setDate(n.getDate()+e),this.getDateString(n)},e.prototype.sort=function(e){e.sort((function(e,t){return null==e.startDate||""===e.startDate?1:null==t.startDate||""===t.startDate?-1:new Date(e.startDate)-new Date(t.startDate)}))},e.prototype.checkExistRanges=function(e,t){var n=this,o=!1;e.forEach((function(e){e.conflictMessages||(e.conflictMessages=new Set),e.conflictMessages.delete(n.outsideExistsMessage)}));for(var i=e.filter((function(e){return!e.isDelete()})),a=t.filter((function(e){return!e.isDelete()})),l=0;lr&&(o.valid=!1,o.message=this.localizationService.decode("date.inpu.data.in.future.error.message")):t&&(o.valid=!1,o.message=this.localizationService.decode("manage.versions.date.required.message")),o},e.ɵfac=function(t){return new(t||e)(l.ɵɵinject(s.LocalizationService))},e.ɵprov=l.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.DateService=c,("undefined"==typeof ngDevMode||ngDevMode)&&l.ɵsetClassMetadata(c,[{type:o.Injectable}],(function(){return[{type:s.LocalizationService}]}),null)},113:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LocalizePipe=void 0;var o=n(0),r=(n(16),n(0)),i=n(16),a=function(){function e(e){this.service=e}return e.prototype.transform=function(e){return this.service.decode(e)},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(i.LocalizationService))},e.ɵpipe=r.ɵɵdefinePipe({name:"localize",type:e,pure:!0}),e}();t.LocalizePipe=a,("undefined"==typeof ngDevMode||ngDevMode)&&r.ɵsetClassMetadata(a,[{type:o.Pipe,args:[{name:"localize"}]}],(function(){return[{type:i.LocalizationService}]}),null)},114:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LocalizationService=void 0;var o=n(0),r=n(0),i=function(){function e(){this.locales=[],this.parser=Globalize.numberParser(),this.formatter=Globalize.numberFormatter(),this.locales=registry.locales,this.locale=registry.locale}return e.prototype.addLocale=function(e){for(var t=!1,n=0;n0?this.parser(e):null},e.prototype.formatNumber=function(e){if(null!=e){var t=e;if("string"==typeof t){if(!(t.length>0&&Number(t)))return"";t=Number(e)}return this.formatter(t)}return null},e.prototype.localize=function(e,t){return com.runwaysdk.Localize.localize(e,t)},e.prototype.get=function(e){return com.runwaysdk.Localize.get(e)},e.prototype.decode=function(e){var t=e.lastIndexOf(".");if(-1!==t){var n=[e.slice(0,t),e.slice(t+1)];return this.localize(n[0],n[1])}return this.get(e)},e.ɵfac=function(t){return new(t||e)},e.ɵprov=r.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.LocalizationService=i,("undefined"==typeof ngDevMode||ngDevMode)&&r.ɵsetClassMetadata(i,[{type:o.Injectable}],(function(){return[]}),null)},115:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EventService=void 0;var o=n(0),r=n(0),i=function(){function e(){this.listeners=[]}return e.prototype.registerListener=function(e){this.listeners.push(e)},e.prototype.deregisterListener=function(e){var t=this.listeners.indexOf(e);return-1!==t&&(this.listeners.splice(t,1),!0)},e.prototype.start=function(){for(var e=0,t=this.listeners;e0)}}function M(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"ul",7),a.ɵɵelementStart(1,"li",8),a.ɵɵelementStart(2,"a",9),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().account()})),a.ɵɵelementStart(3,"div"),a.ɵɵtext(4),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(5,"li",10),a.ɵɵelementStart(6,"a",11),a.ɵɵelement(7,"span",12),a.ɵɵelementEnd(),a.ɵɵtemplate(8,b,16,10,"ul",13),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var o=a.ɵɵnextContext();a.ɵɵadvance(4),a.ɵɵtextInterpolate(o.getUsername())}}var S=function(){function e(e,t,n,o){this.modalService=e,this.profileService=t,this.service=n,this.loggedIn=!0,this.context=acp,this.isAdmin=n.isAdmin(),this.isMaintainer=this.isAdmin||n.isMaintainer(),this.isContributor=this.isAdmin||this.isMaintainer||n.isContributer(),o.getLocales()?(this.locales=o.getLocales().filter((function(e){return"defaultLocale"!==e.toString})),this.defaultLocaleView=o.getLocales().filter((function(e){return"defaultLocale"===e.toString}))[0]):(this.locales=[],this.defaultLocaleView=null),this.locale=o.getLocale();for(var r=!1,i=0;i0&&n.assigned),r.ɵɵadvance(1),r.ɵɵproperty("ngIf","RA"!==n.type&&n.orgCode.length>0&&n.assigned),r.ɵɵadvance(1),r.ɵɵproperty("ngIf","RA"!==n.type&&n.orgCode.length>0&&n.assigned)}}var w=function(){return["password","certainPassword"]};function x(e,t){if(1&e){var n=r.ɵɵgetCurrentView();r.ɵɵelementStart(0,"div"),r.ɵɵelement(1,"message"),r.ɵɵelementStart(2,"form",1,2),r.ɵɵlistener("ngSubmit",(function(){r.ɵɵrestoreView(n);var e=r.ɵɵreference(3),t=r.ɵɵnextContext();return e.valid&&t.onSubmit()})),r.ɵɵelementStart(4,"fieldset"),r.ɵɵelementStart(5,"div",3),r.ɵɵelementStart(6,"h1"),r.ɵɵelement(7,"localize",4),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(8,"div",5),r.ɵɵelementStart(9,"div",6),r.ɵɵelementStart(10,"label"),r.ɵɵelement(11,"localize",7),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(12,"div",8),r.ɵɵelementStart(13,"span",9),r.ɵɵelementStart(14,"input",10),r.ɵɵlistener("ngModelChange",(function(e){return r.ɵɵrestoreView(n),r.ɵɵnextContext()._profile.firstName=e})),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(15,"div",5),r.ɵɵelementStart(16,"div",6),r.ɵɵelementStart(17,"label"),r.ɵɵelement(18,"localize",11),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(19,"div",8),r.ɵɵelementStart(20,"span",9),r.ɵɵelementStart(21,"input",12),r.ɵɵlistener("ngModelChange",(function(e){return r.ɵɵrestoreView(n),r.ɵɵnextContext()._profile.lastName=e})),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(22,"div",5),r.ɵɵelementStart(23,"div",6),r.ɵɵelementStart(24,"label"),r.ɵɵelement(25,"localize",13),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(26,"div",8),r.ɵɵelementStart(27,"span",9),r.ɵɵelementStart(28,"input",14),r.ɵɵlistener("ngModelChange",(function(e){return r.ɵɵrestoreView(n),r.ɵɵnextContext()._profile.altFirstName=e})),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(29,"div",5),r.ɵɵelementStart(30,"div",6),r.ɵɵelementStart(31,"label"),r.ɵɵelement(32,"localize",15),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(33,"div",8),r.ɵɵelementStart(34,"span",9),r.ɵɵelementStart(35,"input",16),r.ɵɵlistener("ngModelChange",(function(e){return r.ɵɵrestoreView(n),r.ɵɵnextContext()._profile.altLastName=e})),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(36,"div",5),r.ɵɵelementStart(37,"div",6),r.ɵɵelementStart(38,"label"),r.ɵɵelement(39,"localize",17),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(40,"div",8),r.ɵɵelementStart(41,"span",9),r.ɵɵelementStart(42,"input",18),r.ɵɵlistener("ngModelChange",(function(e){return r.ɵɵrestoreView(n),r.ɵɵnextContext()._profile.phoneNumber=e})),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(43,"div",5),r.ɵɵelementStart(44,"div",6),r.ɵɵelementStart(45,"label"),r.ɵɵelement(46,"localize",19),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(47,"div",8),r.ɵɵelementStart(48,"span",9),r.ɵɵelementStart(49,"input",20),r.ɵɵlistener("ngModelChange",(function(e){return r.ɵɵrestoreView(n),r.ɵɵnextContext()._profile.altPhoneNumber=e})),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(50,"div",5),r.ɵɵelementStart(51,"div",6),r.ɵɵelementStart(52,"label"),r.ɵɵelement(53,"localize",21),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(54,"div",8),r.ɵɵelementStart(55,"span",9),r.ɵɵelementStart(56,"input",22,23),r.ɵɵlistener("ngModelChange",(function(e){return r.ɵɵrestoreView(n),r.ɵɵnextContext()._profile.email=e})),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵtemplate(58,l,2,0,"div",24),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(59,"div",5),r.ɵɵelementStart(60,"div",6),r.ɵɵelementStart(61,"label"),r.ɵɵelement(62,"localize",25),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(63,"div",8),r.ɵɵelementStart(64,"span",9),r.ɵɵelementStart(65,"input",26),r.ɵɵlistener("ngModelChange",(function(e){return r.ɵɵrestoreView(n),r.ɵɵnextContext()._profile.position=e})),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(66,"div",5),r.ɵɵelementStart(67,"div",6),r.ɵɵelementStart(68,"label"),r.ɵɵelement(69,"localize",27),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(70,"div",8),r.ɵɵelementStart(71,"span",9),r.ɵɵelementStart(72,"input",28),r.ɵɵlistener("ngModelChange",(function(e){return r.ɵɵrestoreView(n),r.ɵɵnextContext()._profile.department=e})),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(73,"div",3),r.ɵɵelementStart(74,"h1"),r.ɵɵelement(75,"localize",29),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(76,"div",5),r.ɵɵelementStart(77,"div",6),r.ɵɵelementStart(78,"label"),r.ɵɵelement(79,"localize",30),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(80,"div",8),r.ɵɵelementStart(81,"span",9),r.ɵɵelementStart(82,"input",31),r.ɵɵlistener("ngModelChange",(function(e){return r.ɵɵrestoreView(n),r.ɵɵnextContext()._profile.username=e})),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵtemplate(83,s,7,0,"div",32),r.ɵɵtemplate(84,p,6,2,"div",32),r.ɵɵtemplate(85,m,19,3,"div",0),r.ɵɵelementStart(86,"div",5),r.ɵɵelementStart(87,"div",6),r.ɵɵelementStart(88,"label"),r.ɵɵelement(89,"localize",33),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(90,"div",8),r.ɵɵelementStart(91,"table",34),r.ɵɵelementStart(92,"thead"),r.ɵɵelementStart(93,"tr"),r.ɵɵelementStart(94,"th"),r.ɵɵelement(95,"localize",35),r.ɵɵelementEnd(),r.ɵɵelementStart(96,"th"),r.ɵɵelement(97,"localize",36),r.ɵɵelementEnd(),r.ɵɵelementStart(98,"th"),r.ɵɵelement(99,"localize",37),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(100,"tbody"),r.ɵɵtemplate(101,E,10,9,"tr",38),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(102,"div",39),r.ɵɵelementStart(103,"div",40),r.ɵɵelementStart(104,"div",41),r.ɵɵelementStart(105,"input",42),r.ɵɵlistener("click",(function(){return r.ɵɵrestoreView(n),r.ɵɵnextContext().cancel()})),r.ɵɵpipe(106,"localize"),r.ɵɵelementEnd(),r.ɵɵelement(107,"input",43),r.ɵɵpipe(108,"localize"),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd()}if(2&e){var o=r.ɵɵreference(3),i=r.ɵɵreference(57),a=r.ɵɵnextContext();r.ɵɵadvance(2),r.ɵɵproperty("mustMatch",r.ɵɵpureFunction0(23,w)),r.ɵɵadvance(12),r.ɵɵproperty("ngModel",a._profile.firstName),r.ɵɵadvance(7),r.ɵɵproperty("ngModel",a._profile.lastName),r.ɵɵadvance(7),r.ɵɵproperty("ngModel",a._profile.altFirstName),r.ɵɵadvance(7),r.ɵɵproperty("ngModel",a._profile.altLastName),r.ɵɵadvance(7),r.ɵɵproperty("ngModel",a._profile.phoneNumber),r.ɵɵadvance(7),r.ɵɵproperty("ngModel",a._profile.altPhoneNumber),r.ɵɵadvance(7),r.ɵɵproperty("ngModel",a._profile.email),r.ɵɵadvance(2),r.ɵɵproperty("ngIf",null==i.errors?null:i.errors.email),r.ɵɵadvance(7),r.ɵɵproperty("ngModel",a._profile.position),r.ɵɵadvance(7),r.ɵɵproperty("ngModel",a._profile.department),r.ɵɵadvance(10),r.ɵɵproperty("ngModel",a._profile.username),r.ɵɵadvance(1),r.ɵɵproperty("ngIf",null!=a._profile.externalSystemOid&&""!==a._profile.externalSystemOid),r.ɵɵadvance(1),r.ɵɵproperty("ngIf",null==a._profile.externalSystemOid||""===a._profile.externalSystemOid),r.ɵɵadvance(1),r.ɵɵproperty("ngIf",a._profile.changePassword),r.ɵɵadvance(16),r.ɵɵproperty("ngForOf",a.roles),r.ɵɵadvance(4),r.ɵɵproperty("value",r.ɵɵpipeBind1(106,19,"dataset.cancel")),r.ɵɵadvance(2),r.ɵɵproperty("value",r.ɵɵpipeBind1(108,21,"dataset.submit"))("disabled",!o.valid)}}var O=function(){function e(e,t,n){this.service=e,this.bsModalRef=t,this.authService=n,this._profile={oid:"",username:"",password:"",firstName:"",lastName:"",email:"",changePassword:!1},this.roles=[]}return Object.defineProperty(e.prototype,"profile",{set:function(e){this._profile=e,this.getRoles()},enumerable:!1,configurable:!0}),e.prototype.getRoles=function(){var e=this;this.service.getRolesForUser(this._profile.oid).then((function(t){e.roles=t}))},e.prototype.onSubmit=function(){var e=this;this._profile.changePassword||delete this._profile.password,this.service.apply(this._profile).then((function(t){e.bsModalRef.hide()}))},e.prototype.onChangePassword=function(){this._profile.changePassword=!this._profile.changePassword},e.prototype.getRolesArray=function(){return this.authService.getRoles()},e.prototype.cancel=function(){var e=this;this.service.unlock(this._profile.oid).then((function(t){e.bsModalRef.hide()}))},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(i.ProfileService),r.ɵɵdirectiveInject(a.BsModalRef),r.ɵɵdirectiveInject(i.AuthService))},e.ɵcmp=r.ɵɵdefineComponent({type:e,selectors:[["profile"]],inputs:{profile:"profile"},decls:1,vars:1,consts:[[4,"ngIf"],[1,"modal-form",2,"background","none","border","none",3,"mustMatch","ngSubmit"],["form","ngForm"],[1,"heading","text-center"],["key","profile.heading"],[1,"row-holder"],[1,"label-holder"],["key","account.firstname"],[1,"holder"],[1,"text"],["type","text","name","firstname","required","",3,"ngModel","ngModelChange"],["key","account.lastname"],["type","text","name","lastname","required","",3,"ngModel","ngModelChange"],["key","account.altFirstname"],["type","text","name","altFirstname",3,"ngModel","ngModelChange"],["key","account.altLastname"],["type","text","name","altLastname",3,"ngModel","ngModelChange"],["key","account.phonenumber"],["type","text","name","phoneNumber",3,"ngModel","ngModelChange"],["key","account.altPhonenumber"],["type","text","name","altPhoneNumber",3,"ngModel","ngModelChange"],["key","account.email"],["type","text","name","email","required","","email","",3,"ngModel","ngModelChange"],["aemail","ngModel"],["style","float:none;","class","inline-error-message",4,"ngIf"],["key","account.position"],["type","text","name","position",3,"ngModel","ngModelChange"],["key","account.department"],["type","text","name","department",3,"ngModel","ngModelChange"],["key","account.info.heading"],["key","account.profile.username"],["type","text","name","username","required","",3,"ngModel","ngModelChange"],["class","row-holder",4,"ngIf"],["key","com.runwaysdk.ui.userstable.UsersTable.adminRoles"],[1,"table"],["key","profile.roles.role.table.heading"],["key","profile.roles.organization.table.heading"],["key","profile.roles.geoobjecttype.table.heading"],[4,"ngFor","ngForOf"],[1,"row"],[1,"col-md-12"],[1,"button-holder"],["type","button",1,"btn","btn-default",3,"value","click"],["type","submit",1,"btn","btn-primary",3,"value","disabled"],[1,"inline-error-message",2,"float","none"],["key","account.email.validation"],["key","account.profile.oauth"],["key","account.profile.isOauth"],[2,"text-align","left"],["type","button","class","btn btn-primary",3,"value","click",4,"ngIf"],["type","button","class","btn btn-default",3,"value","click",4,"ngIf"],["type","button",1,"btn","btn-primary",3,"value","click"],["key","account.password"],["type","password","name","password","required","","minlength","5","maxlength","50",3,"ngModel","ngModelChange"],["password","ngModel"],[3,"passwordToCheck"],["key","account.certainPassword"],["type","password","ngModel","","name","certainPassword"],["certainPassword","ngModel"],["key","account.certainPassword.validation"]],template:function(e,t){1&e&&r.ɵɵtemplate(0,x,109,24,"div",0),2&e&&r.ɵɵproperty("ngIf",t._profile)},styles:[".modal-form[_ngcontent-%COMP%] .check-block[_ngcontent-%COMP%] .chk-area[_ngcontent-%COMP%] { margin: 10px 0px 0 0;}"]}),e}();t.ProfileComponent=O,("undefined"==typeof ngDevMode||ngDevMode)&&r.ɵsetClassMetadata(O,[{type:o.Component,args:[{selector:"profile",templateUrl:"./profile.component.html",styles:[".modal-form .check-block .chk-area { margin: 10px 0px 0 0;}"]}]}],(function(){return[{type:i.ProfileService},{type:a.BsModalRef},{type:i.AuthService}]}),{profile:[{type:o.Input,args:["profile"]}]})},153:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RegistryRoleType=t.RegistryRole=t.RoleBuilder=t.LocalizedValue=t.PageResult=t.OAuthServer=t.ExternalSystem=t.Organization=t.LocaleView=t.LocaleValue=void 0;var o=function(e,t){this.locale=e,this.value=t};t.LocaleValue=o;var r=function(e){this.label=e.create(),this.toString="",this.tag="",this.isDefaultLocale=!1,this.language={label:"",code:""},this.country={label:"",code:""},this.variant={label:"",code:""}};t.LocaleView=r;var i=function(){};t.Organization=i;var a=function(){};t.ExternalSystem=a;var l=function(){};t.OAuthServer=l;var s=function(){};t.PageResult=s;var c=function(){function e(e,t){this.localizedValue=e,this.localeValues=t}return e.prototype.getValue=function(e){for(var t=this.localeValues.length,n=0;n0))},directives:[a.NgIf,a.NgForOf,a.NgClass],styles:[".step-indicator[_ngcontent-%COMP%] .nav-item[_ngcontent-%COMP%] {\n height: 50px;\n background: white;\n text-align: center;\n vertical-align: middle;\n border-bottom: 4px solid lightgrey;\n font-size: 18px;\n color: lightgrey;\n padding: 10px;\n}\n.step-indicator[_ngcontent-%COMP%] .nav-item.active[_ngcontent-%COMP%]{\n \n cursor: pointer;\n}\n.step-indicator[_ngcontent-%COMP%] .nav-item.active.enabled[_ngcontent-%COMP%]{\n \n border-bottom: 4px solid black;\n font-weight: bold;\n color: black;\n}\n\n.nav.nav-justified[_ngcontent-%COMP%] {\n margin-top: 5px;\n}"]}),e}();t.ModalStepIndicatorComponent=d,("undefined"==typeof ngDevMode||ngDevMode)&&r.ɵsetClassMetadata(d,[{type:o.Component,args:[{selector:"modal-step-indicator",templateUrl:"./modal-step-indicator.component.html",styleUrls:["./modal-step-indicator.css"]}]}],(function(){return[{type:i.ModalStepIndicatorService}]}),null)},156:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ProgressBarComponent=void 0;var o=n(0),r=(n(16),n(0)),i=n(16),a=n(1),l=n(126);function s(e,t){if(1&e&&(r.ɵɵelementStart(0,"div",1),r.ɵɵelementStart(1,"div",2),r.ɵɵelementStart(2,"progressbar",3),r.ɵɵelementStart(3,"i"),r.ɵɵtext(4),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd()),2&e){var n=r.ɵɵnextContext();r.ɵɵadvance(2),r.ɵɵproperty("max",n.prog.total)("value",n.prog.current),r.ɵɵadvance(2),r.ɵɵtextInterpolate(n.prog.description)}}var c=function(){function e(e){this.service=e,this.showIndicator=!0,this.prog={current:0,total:1,description:"Initializing"}}return e.prototype.ngOnInit=function(){this.service.registerListener(this)},e.prototype.ngOnDestroy=function(){this.service.deregisterListener(this)},e.prototype.start=function(){this.prog={current:0,total:1,description:"Initializing"},this.showIndicator=!0},e.prototype.progress=function(e){this.prog=e},e.prototype.complete=function(){this.showIndicator=!1},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(i.ProgressService))},e.ɵcmp=r.ɵɵdefineComponent({type:e,selectors:[["progress-bar"]],decls:1,vars:1,consts:[["class","progress-overlay","style","height: 100%; width: 100%;",4,"ngIf"],[1,"progress-overlay",2,"height","100%","width","100%"],[1,"progress-div"],[1,"progress-striped","active",3,"max","value"]],template:function(e,t){1&e&&r.ɵɵtemplate(0,s,5,3,"div",0),2&e&&r.ɵɵproperty("ngIf",t.showIndicator)},directives:[a.NgIf,l.ProgressbarComponent],styles:[".progress-overlay[_ngcontent-%COMP%] { background-color: #CCCCCC; position: absolute; display: block;opacity: 0.8;z-index: 99999 !important;}",".progress-div[_ngcontent-%COMP%] { width: 100%; margin-left: 0; padding-left: 25%; padding-right: 25%; margin-top: 30% }"]}),e}();t.ProgressBarComponent=c,("undefined"==typeof ngDevMode||ngDevMode)&&r.ɵsetClassMetadata(c,[{type:o.Component,args:[{selector:"progress-bar",templateUrl:"./progress-bar.component.html",styles:[".progress-overlay { background-color: #CCCCCC; position: absolute; display: block;opacity: 0.8;z-index: 99999 !important;}",".progress-div { width: 100%; margin-left: 0; padding-left: 25%; padding-right: 25%; margin-top: 30% }"]}]}],(function(){return[{type:i.ProgressService}]}),null)},157:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ExternalSystemService=void 0;var o=n(0),r=n(34),i=n(32),a=(n(16),n(0)),l=n(34),s=n(16),c=function(){function e(e,t){this.http=e,this.eventService=t}return e.prototype.getExternalSystems=function(e,t){var n=this,o=new r.HttpParams;return o=(o=o.set("pageNumber",e.toString())).set("pageSize",t.toString()),this.eventService.start(),this.http.get(acp+"/external-system/get-all",{params:o}).pipe(i.finalize((function(){n.eventService.complete()}))).toPromise()},e.prototype.getExternalSystem=function(e){var t=this,n=new r.HttpParams;return n=n.set("oid",e),this.eventService.start(),this.http.get(acp+"/external-system/get",{params:n}).pipe(i.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.applyExternalSystem=function(e){var t=this,n=new r.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/external-system/apply",JSON.stringify({system:e}),{headers:n}).pipe(i.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.getSystemCapabilities=function(e){var t=this,n=new r.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/external-system/system-capabilities",JSON.stringify({system:e}),{headers:n}).pipe(i.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.removeExternalSystem=function(e){var t=this,n=new r.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/external-system/remove",JSON.stringify({oid:e}),{headers:n}).pipe(i.finalize((function(){t.eventService.complete()}))).toPromise()},e.ɵfac=function(t){return new(t||e)(a.ɵɵinject(l.HttpClient),a.ɵɵinject(s.EventService))},e.ɵprov=a.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.ExternalSystemService=c,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(c,[{type:o.Injectable}],(function(){return[{type:l.HttpClient},{type:s.EventService}]}),null)},158:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ModalStepIndicatorService=void 0;var o=n(0),r=n(31),i=n(0),a=function(){function e(){this.modalStepChangedSource=new r.Subject,this.modalStepChange=this.modalStepChangedSource.asObservable()}return e.prototype.getStepConfig=function(){return this.stepConfig},e.prototype.setStepConfig=function(e){this.stepConfig=e,this.modalStepChangedSource.next(this.stepConfig)},e.prototype.getStep=function(){return this.step},e.prototype.setStep=function(e){this.step=e},e.ɵfac=function(t){return new(t||e)},e.ɵprov=i.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.ModalStepIndicatorService=a,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(a,[{type:o.Injectable}],(function(){return[]}),null)},159:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OrganizationService=void 0;var o=n(0),r=n(34),i=n(32),a=(n(16),n(0)),l=n(34),s=n(16),c=function(){function e(e,t){this.http=e,this.eventService=t}return e.prototype.getOrganizations=function(){var e=this;return this.eventService.start(),this.http.get(acp+"/cgr/organizations/get-all").pipe(i.finalize((function(){e.eventService.complete()}))).toPromise()},e.prototype.updateOrganization=function(e){var t=this,n=new r.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/cgr/orgainization/update",JSON.stringify({json:e}),{headers:n}).pipe(i.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.newOrganization=function(e){var t=this,n=new r.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/cgr/orgainization/create",JSON.stringify({json:e}),{headers:n}).pipe(i.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.removeOrganization=function(e){var t=this,n=new r.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/cgr/orgainization/delete",JSON.stringify({code:e}),{headers:n}).pipe(i.finalize((function(){t.eventService.complete()}))).toPromise()},e.ɵfac=function(t){return new(t||e)(a.ɵɵinject(l.HttpClient),a.ɵɵinject(s.EventService))},e.ɵprov=a.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.OrganizationService=c,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(c,[{type:o.Injectable}],(function(){return[{type:l.HttpClient},{type:s.EventService}]}),null)},16:function(e,t,n){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,n,o){void 0===o&&(o=n),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,o){void 0===o&&(o=n),e[o]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||o(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.services=void 0;var i=n(87),a=n(115),l=n(157),s=n(123),c=n(114),d=n(158),p=n(159),u=n(160),m=n(161),g=n(162),f=n(163),v=n(112);t.services=[i.AuthService,a.EventService,l.ExternalSystemService,s.AdminGuard,s.AuthGuard,s.ContributerGuard,s.MaintainerGuard,c.LocalizationService,d.ModalStepIndicatorService,p.OrganizationService,u.PendingChangesGuard,m.ProfileService,g.ProgressService,f.SessionService,v.DateService],r(n(87),t),r(n(115),t),r(n(157),t),r(n(123),t),r(n(114),t),r(n(158),t),r(n(159),t),r(n(160),t),r(n(161),t),r(n(162),t),r(n(163),t),r(n(112),t)},160:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PendingChangesGuard=void 0;var o=n(0),r=n(0),i=function(){function e(){}return e.prototype.canDeactivate=function(e){if(!e.canDeactivate()){var t=confirm("WARNING: You have unsaved changes. Press Cancel to go back and save these changes, or OK to lose these changes.");return e.afterDeactivate(t),t}return!0},e.ɵfac=function(t){return new(t||e)},e.ɵprov=r.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.PendingChangesGuard=i,("undefined"==typeof ngDevMode||ngDevMode)&&r.ɵsetClassMetadata(i,[{type:o.Injectable}],null,null)},161:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ProfileService=void 0;var o=n(0),r=n(34),i=n(0),a=n(34),l=function(){function e(e){this.http=e}return e.prototype.get=function(){var e=new r.HttpHeaders({"Content-Type":"application/json"});return this.http.post(acp+"/registryaccount/get",{headers:e}).toPromise()},e.prototype.apply=function(e){var t=new r.HttpHeaders({"Content-Type":"application/json"});return this.http.post(acp+"/registryaccount/apply",JSON.stringify({account:e}),{headers:t}).toPromise()},e.prototype.unlock=function(e){var t=new r.HttpHeaders({"Content-Type":"application/json"});return this.http.post(acp+"/registryaccount/unlock",JSON.stringify({oid:e}),{headers:t}).toPromise()},e.prototype.setLocale=function(e){var t=new r.HttpHeaders({"Content-Type":"application/json"});return this.http.post(acp+"/localization/set-locale",JSON.stringify({locale:e}),{headers:t}).toPromise()},e.prototype.getRolesForUser=function(e){var t=new r.HttpHeaders({"Content-Type":"application/json"});return this.http.post(acp+"/registryaccount/getRolesForUser",{userOID:e},{headers:t}).toPromise()},e.ɵfac=function(t){return new(t||e)(i.ɵɵinject(a.HttpClient))},e.ɵprov=i.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.ProfileService=l,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(l,[{type:o.Injectable}],(function(){return[{type:a.HttpClient}]}),null)},162:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ProgressService=void 0;var o=n(0),r=n(0),i=function(){function e(){this.listeners=[]}return e.prototype.registerListener=function(e){this.listeners.push(e)},e.prototype.deregisterListener=function(e){var t=this.listeners.indexOf(e);return-1!==t&&(this.listeners.splice(t,1),!0)},e.prototype.start=function(){for(var e=0,t=this.listeners;e0&&(e.oauthServers=t)})).catch((function(t){e.error(t)})),this.sub=this.route.params.subscribe((function(t){if(null!=t.errorMsg){e.bsModalRef=e.modalService.show(r.ErrorModalComponent,{backdrop:!0});var n=t.errorMsg.replaceAll("+"," ");e.bsModalRef.content.message=n}}))},e.prototype.onClickDhis2=function(e){null==e?1==this.oauthServers.length?window.location.href=this.oauthServers[0].url:this.viewOauthServers=!this.viewOauthServers:window.location.href=e},e.prototype.onSubmit=function(){var e=this;this.service.login(this.username,this.password).then((function(t){e.hService.applications().then((function(t){1==t.length?e.open(t[0]):e.router.navigate(["/menu/true"])}))})).catch((function(t){e.error(t)}))},e.prototype.open=function(e){window.location.href=this.context+"/"+e.url},e.prototype.error=function(e){this.bsModalRef=r.ErrorHandler.showErrorAsDialog(e,this.modalService)},e.ɵfac=function(t){return new(t||e)(i.ɵɵdirectiveInject(a.SessionService),i.ɵɵdirectiveInject(l.HubService),i.ɵɵdirectiveInject(s.BsModalService),i.ɵɵdirectiveInject(c.Router),i.ɵɵdirectiveInject(c.ActivatedRoute))},e.ɵcmp=i.ɵɵdefineComponent({type:e,selectors:[["login"]],decls:33,vars:10,consts:[["id","login-page",1,"new-admin-design-main"],[1,"vertical-center"],["id","app-container",1,"container"],[1,"row"],[1,"col-md-3","col-sm-4","col-xs-2"],[1,"col-md-6","col-sm-4","col-xs-8"],[1,"row",2,"margin-bottom","25px"],[1,"col-md-12"],[1,"heading","text-center"],["id","login-form",1,"login",3,"ngSubmit"],["form","ngForm"],["id","login-input-container"],["name","username","type","text","id","login","required","",3,"ngModel","placeholder","ngModelChange"],["name","password","type","password","id","password","required","",3,"ngModel","placeholder","ngModelChange"],["routerLink","/forgotpassword",1,"forgot-password"],["key","login.forgotPassword"],[1,"btn-holder","text-right"],["type","submit","id","login-btn",1,"btn","btn-primary",3,"disabled"],["key","login.button"],["class","row",4,"ngIf"],[1,"col-md-12","text-center"],[1,"oauth-or-line-block"],[1,"oauth-or-text"],["key","login.oauth.or.label"],[1,"dhis2-login-button",3,"click"],[1,"dhis2-login-button-text"],["key","login.oauth.loginwith.label"],["src","../dist/assets/dhis2-logo.f59cbafa7a88d5e9addba95ec74000d1.png",1,"dhis2-login-button-image"],["style","margin-top: 20px;",4,"ngIf"],[2,"margin-top","20px"],["name","externalSystemOid",3,"change"],[3,"value",4,"ngFor","ngForOf"],[3,"value"]],template:function(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"div",0),i.ɵɵelement(1,"login-header"),i.ɵɵelement(2,"loading-bar"),i.ɵɵelement(3,"message"),i.ɵɵelementStart(4,"div",1),i.ɵɵelementStart(5,"div",2),i.ɵɵelementStart(6,"div",3),i.ɵɵelement(7,"div",4),i.ɵɵelementStart(8,"div",5),i.ɵɵelementStart(9,"div",6),i.ɵɵelementStart(10,"div",7),i.ɵɵelementStart(11,"div",8),i.ɵɵelement(12,"h2"),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(13,"div",3),i.ɵɵelementStart(14,"div",7),i.ɵɵelementStart(15,"form",9,10),i.ɵɵlistener("ngSubmit",(function(){return i.ɵɵrestoreView(n),i.ɵɵreference(16).valid&&t.onSubmit()})),i.ɵɵelementStart(17,"div",11),i.ɵɵelementStart(18,"div",3),i.ɵɵelementStart(19,"div",7),i.ɵɵelementStart(20,"input",12),i.ɵɵlistener("ngModelChange",(function(e){return t.username=e})),i.ɵɵpipe(21,"localize"),i.ɵɵelementEnd(),i.ɵɵelementStart(22,"input",13),i.ɵɵlistener("ngModelChange",(function(e){return t.password=e})),i.ɵɵpipe(23,"localize"),i.ɵɵelementEnd(),i.ɵɵelementStart(24,"a",14),i.ɵɵelement(25,"localize",15),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(26,"div",3),i.ɵɵelementStart(27,"div",7),i.ɵɵelementStart(28,"div",16),i.ɵɵelementStart(29,"button",17),i.ɵɵelement(30,"localize",18),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵtemplate(31,C,13,1,"div",19),i.ɵɵelementEnd(),i.ɵɵelement(32,"div",4),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd()}if(2&e){var o=i.ɵɵreference(16);i.ɵɵadvance(20),i.ɵɵproperty("ngModel",t.username)("placeholder",i.ɵɵpipeBind1(21,6,"login.username")),i.ɵɵadvance(2),i.ɵɵproperty("ngModel",t.password)("placeholder",i.ɵɵpipeBind1(23,8,"login.password")),i.ɵɵadvance(7),i.ɵɵproperty("disabled",!o.valid),i.ɵɵadvance(2),i.ɵɵproperty("ngIf",t.oauthServers)}},directives:[d.LoginHeaderComponent,p.LoadingBarComponent,u.MessageComponent,m.ɵangular_packages_forms_forms_ba,m.NgControlStatusGroup,m.NgForm,m.DefaultValueAccessor,m.RequiredValidator,m.NgControlStatus,m.NgModel,c.RouterLinkWithHref,g.LocalizeComponent,f.NgIf,m.NgSelectOption,m.ɵangular_packages_forms_forms_z,f.NgForOf],pipes:[v.LocalizePipe],styles:['#container[_ngcontent-%COMP%] {\n \n margin: 0;\n height: 100%; \n overflow: hidden;\n}\n\n #login-page[_ngcontent-%COMP%] {\n background-size: 100%;\n background-repeat: no-repeat;\n -webkit-background-size: cover;\n -moz-background-size: cover;\n -o-background-size: cover;\n background-size: cover;\n }\n\n.vertical-center[_ngcontent-%COMP%] {\n min-height: 100%;\n min-height: calc(100vh - 164px);\n display: flex;\n align-items: center;\n}\n\nh1[_ngcontent-%COMP%] {\n color: maroon;\n margin-left: 40px;\n}\n\n#logo[_ngcontent-%COMP%]{\n margin-left: 50px;\n width: 160px;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n}\n\n#logo_gp[_ngcontent-%COMP%] {\n display: block;\n margin: 0 auto;\n width: 200px;\n}\n\n.dhis2-login-button[_ngcontent-%COMP%] {\n\tbackground-color:#1d5288;\n\tborder-color: #1c558e;\n\tborder-radius:5px;\n\tmargin-bottom:5px;\n\tpadding: 10px;\n}\n.dhis2-login-button[_ngcontent-%COMP%]:hover {\n\tbackground-color: #2261a0;\n}\n\n.dhis2-login-button-text[_ngcontent-%COMP%] {\n\tcolor:white;\n\tfont-size:18px;\n\tvertical-align:middle;\n}\n\n.dhis2-login-button-image[_ngcontent-%COMP%] {\n\theight: 30px;\n\tmargin-left: 10px;\n}\n\nspan.oauth-or-text[_ngcontent-%COMP%] {\n\tfont-size:19px;\n\tcolor:darkgray;\n}\n\nspan.oauth-or-line[_ngcontent-%COMP%] {\n width: 45%;\n height: 47px;\n border-bottom: 1px solid darkgray;\n display: inline-block;\n margin-bottom: 7px;\n}\n\nh4.oauth-or-line-block[_ngcontent-%COMP%] {\n\tmargin-bottom:50px;\n\tmargin-top:50px;\n\tborder-bottom: 1px solid #000; \n line-height: 0.1em;\n}\nh4.oauth-or-line-block[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n\tbackground:#fff; \n padding:0 10px; \n}\n\n\n\na[_ngcontent-%COMP%]:link {\n color: grey;\n text-decoration: none;\n font-size: 18px;\n}\n\n\na[_ngcontent-%COMP%]:visited {\n color: grey;\n}\n\n\na[_ngcontent-%COMP%]:hover {\n color: darkgrey;\n}\n\n\na[_ngcontent-%COMP%]:active {\n color: darkgrey;\n}\n\n\n#login-form[_ngcontent-%COMP%] input[type="text"][_ngcontent-%COMP%]{\n float:left;\n width:100%;\n margin-bottom: 5px;\n}\n#login-form[_ngcontent-%COMP%] input[type="password"][_ngcontent-%COMP%]{\n float:left;\n width:100%;\n}\n#login-form[_ngcontent-%COMP%] [_ngcontent-%COMP%]::-webkit-input-placeholder{color:#999;}\n#login-form[_ngcontent-%COMP%] [_ngcontent-%COMP%]:-ms-input-placeholder{color:#999;}\n#login-form[_ngcontent-%COMP%] [_ngcontent-%COMP%]:-moz-placeholder{color:#999;}\n#login-form[_ngcontent-%COMP%] [_ngcontent-%COMP%]::-moz-placeholder{\n color:#999;\n opacity:1\n}\n#login-form[_ngcontent-%COMP%] [_ngcontent-%COMP%]:focus::-webkit-input-placeholder{color:#ccc;}\n#login-form[_ngcontent-%COMP%] [_ngcontent-%COMP%]:focus:-ms-input-placeholder{color:#ccc;}\n#login-form[_ngcontent-%COMP%] [_ngcontent-%COMP%]:focus:-moz-placeholder{color:#ccc;}\n#login-form[_ngcontent-%COMP%] [_ngcontent-%COMP%]:focus::-moz-placeholder{color:#ccc;}\n#login-form[_ngcontent-%COMP%] .field-error[_ngcontent-%COMP%] input[type="text"][_ngcontent-%COMP%]:focus, #login-form[_ngcontent-%COMP%] .field-error[_ngcontent-%COMP%] input[type="text"][_ngcontent-%COMP%]:active, #login-form[_ngcontent-%COMP%] .field-error[_ngcontent-%COMP%] input[type="text"][_ngcontent-%COMP%]{\n border-color:#6BA542;\n background:#f8f8f8;\n}\n#login-form[_ngcontent-%COMP%] .field-error[_ngcontent-%COMP%] input[type="password"][_ngcontent-%COMP%]{\n border-color:#e09999;\n background:#f8f8f8;\n}\n#login-form[_ngcontent-%COMP%] input[type="text"][disabled][_ngcontent-%COMP%]{\n border-color:#e4e4e4;\n background:#f8f8f8;\n}\n#login-form[_ngcontent-%COMP%] [disabled][_ngcontent-%COMP%]::-webkit-input-placeholder{color:#d2d2d2;}\n#login-form[_ngcontent-%COMP%] [disabled][_ngcontent-%COMP%]:-ms-input-placeholder{color:#d2d2d2;}\n#login-form[_ngcontent-%COMP%] [disabled][_ngcontent-%COMP%]:-moz-placeholder{color:#d2d2d2;}\n#login-form[_ngcontent-%COMP%] [disabled][_ngcontent-%COMP%]::-moz-placeholder{color:#d2d2d2;}\n#login-form[_ngcontent-%COMP%] .error-message[_ngcontent-%COMP%]{\n float:left;\n padding:6px 0 0;\n font-size:15px;\n line-height:18px;\n color:#FF0000;\n width:100%;\n word-wrap: break-word;\n text-align: left;\n}\n\n#login-form[_ngcontent-%COMP%] .error-message[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{\n margin: 0;\n margin-top: 10px;\n}\n\n.forgot-password[_ngcontent-%COMP%] {\n float: left;\n color: white;\n margin: 10px;\n cursor: pointer;\n}\n\n\n\n\n\n\n\n\n\n\n\n.login-button[_ngcontent-%COMP%]{\n text-decoration: none;\n border: none;\n background-color: transparent;\n color: white;\n cursor: pointer;\n font-size: 16px;\n}\n\n.login-button[_ngcontent-%COMP%]:hover{\n color: #00bfff;\n}\n\n.login-submit[_ngcontent-%COMP%]{\n margin: 0 0 0 0;\n position: absolute;\n right: 25px;\n\n position: absolute;\n top: 40%;\n transform: translateY(-50%);\n}\n\n#geoprism-landing-footer[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{\n color: white;\n text-align: center;\n margin-top: 42px;\n}\n\n#background-img[_ngcontent-%COMP%]{\n width: 100%; \n margin-top: 100px;\n}\n\n\n.error-message[_ngcontent-%COMP%]{\n color: red;\n text-align: center;\n}\n\ni.fa.fa-sign-in[_ngcontent-%COMP%]{\n vertical-align: middle;\n}\n\ni.fa.fa-sign-in[_ngcontent-%COMP%]::before{\n margin-right: 6px;\n font-size: 25px;\n vertical-align: middle;\n}']}),e}();t.LoginComponent=b,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(b,[{type:o.Component,args:[{selector:"login",templateUrl:"./login.component.html",styleUrls:["./login.component.css"]}]}],(function(){return[{type:a.SessionService},{type:l.HubService},{type:s.BsModalService},{type:c.Router},{type:c.ActivatedRoute}]}),null)},191:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HubComponent=void 0;var o=n(0),r=(n(33),n(30),n(16),n(89),n(0)),i=n(89),a=n(16),l=n(30),s=n(33),c=n(122),d=n(86),p=n(1),u=n(68);function m(e,t){1&e&&(r.ɵɵelementStart(0,"div",8),r.ɵɵelement(1,"localize",9),r.ɵɵelementEnd())}function g(e,t){1&e&&r.ɵɵelement(0,"div",10)}function f(e,t){if(1&e&&(r.ɵɵelementStart(0,"div",5),r.ɵɵtemplate(1,m,2,0,"div",6),r.ɵɵtemplate(2,g,1,0,"div",7),r.ɵɵelementEnd()),2&e){var n=r.ɵɵnextContext();r.ɵɵadvance(1),r.ɵɵproperty("ngIf",!n.loading&&0==n.authService.getRoles().length),r.ɵɵadvance(1),r.ɵɵproperty("ngIf",n.loading)}}function v(e,t){if(1&e){var n=r.ɵɵgetCurrentView();r.ɵɵelementStart(0,"div",19),r.ɵɵlistener("click",(function(){r.ɵɵrestoreView(n);var e=r.ɵɵnextContext().$implicit;return r.ɵɵnextContext(4).open(e)})),r.ɵɵelementStart(1,"div",20),r.ɵɵelement(2,"img",21),r.ɵɵelementStart(3,"h3",22),r.ɵɵtext(4),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd()}if(2&e){var o=r.ɵɵnextContext().$implicit,i=r.ɵɵnextContext(4);r.ɵɵadvance(1),r.ɵɵproperty("id",o.oid),r.ɵɵadvance(1),r.ɵɵproperty("src",i.context+"/"+o.src,r.ɵɵsanitizeUrl),r.ɵɵadvance(2),r.ɵɵtextInterpolate(o.label)}}function h(e,t){1&e&&r.ɵɵelement(0,"div",23)}function y(e,t){1&e&&r.ɵɵelement(0,"div",23)}function C(e,t){if(1&e&&(r.ɵɵelementStart(0,"div"),r.ɵɵtemplate(1,v,5,3,"div",17),r.ɵɵtemplate(2,h,1,0,"div",18),r.ɵɵtemplate(3,y,1,0,"div",18),r.ɵɵelementEnd()),2&e){var n=t.index,o=r.ɵɵnextContext(2).index,i=r.ɵɵnextContext(2);r.ɵɵadvance(1),r.ɵɵproperty("ngIf",n>=o&&n0&&!t.loading))},directives:[c.CgrHeaderComponent,d.LoadingBarComponent,p.NgIf,u.LocalizeComponent,p.NgForOf],styles:[".body[_ngcontent-%COMP%] {\n background-color: white;\n margin: 0;\n min-width: 100%;\n}\n\n.new-admin-design-main[_ngcontent-%COMP%] {\n height: 100%;\n overflow-y: auto;\n}\n\n.body[_ngcontent-%COMP%], #container[_ngcontent-%COMP%] {\n height: 100vh; \n overflow: hidden;\n}\n \n#container[_ngcontent-%COMP%]{\n height: 100%; \n background-color: white;\n margin: 0;\n min-width: 100%; \n}\n\n#app-container[_ngcontent-%COMP%] {\n background-image: url(../net/geoprism/images/homebackground.jpg);\n background-size: cover;\n background-repeat: no-repeat;\n \n min-height:100%;\n}\n\nh1[_ngcontent-%COMP%] {\n color: maroon;\n margin-left: 40px;\n} \n\n#header-link-container[_ngcontent-%COMP%]{\n height: 30px;\n}\n\n#logo-icon[_ngcontent-%COMP%]{\n height: 100%;\n display: inline-block;\n}\n\n#logo[_ngcontent-%COMP%]{\n max-height: 100px;\n}\n\n#user-link-container[_ngcontent-%COMP%]{\n vertical-align: middle;\n margin: 0;\n padding: 0;\n display: inline-block;\n}\n\n\n#geodash-landing-top-div[_ngcontent-%COMP%]{\n border-bottom: grey solid 3px;\n height: 30vh; \n position: relative;\n background-color: #333;\n}\n\n#geodash-landing-bottom-div[_ngcontent-%COMP%]{\n overflow: hidden;\n height: 100vh;\n overflow-y: auto;\n \n \n \n\n}\n \n#geodash-landing-footer[_ngcontent-%COMP%]{\n height: 100px;\n background-color: #019edc;\n bottom: 0px;\n position: absolute;\n width: 100%;\n opacity: 0.6;\n filter: alpha(opacity=60); \n}\n \n#geodash-landing-footer[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{\n color: white;\n text-align: center;\n margin-top: 42px;\n}\n\n#background-img[_ngcontent-%COMP%]{\n width: 100%; \n margin-top: 100px;\n}\n\n#mask[_ngcontent-%COMP%]{\n background-color: white;\n width: 100%;\n height: 100%;\n position: absolute;\n opacity: 0.70;\n filter: alpha(opacity=70); \n}\n\n#option-container[_ngcontent-%COMP%]{\n top: 50%;\n margin: 0 auto;\n margin-left: -401px;\n left: 50%;\n position: absolute;\n width: 650px;\n}\n\n.nav-option-wrapper[_ngcontent-%COMP%] {\n background-color: #DBD7A5;\n \n}\n\n.nav-icon-img[_ngcontent-%COMP%]{\n \n \n cursor: pointer;\n background-color: white;\n}\n.nav-icon-img[_ngcontent-%COMP%]:hover{\n border: solid grey 3px;\n}\n\n.nav-icon-img-description[_ngcontent-%COMP%] {\n text-align: left;\n padding: 10px;\n}\n\n.nav-icon-img-label[_ngcontent-%COMP%]{\n text-align: center;\n margin-top: 10px;\n color: #3E2A5A;\n font-size: 21px;\n display: inline-block;\n padding: 5px;\n}\n\n#dashboard-link[_ngcontent-%COMP%]{\n cursor: pointer;\n}\n\n#header[_ngcontent-%COMP%]{\n padding: 10px;\n height: 100%\n}\n\n.user-command-link[_ngcontent-%COMP%]{\n color: white;\n padding: 5px;\n font-size: 15px;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.error-message[_ngcontent-%COMP%]{\n color: red;\n text-align: center;\n}\n\n.vertical-center-row[_ngcontent-%COMP%]{\n margin-top: 5%;\n}\n\n.nav-icon-container[_ngcontent-%COMP%]{\n vertical-align: middle;\n width: 100%;\n height: 75%;\n}\n\n.header-logo-row[_ngcontent-%COMP%]{\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n}"]}),e}();t.HubComponent=E,("undefined"==typeof ngDevMode||ngDevMode)&&r.ɵsetClassMetadata(E,[{type:o.Component,args:[{selector:"hub",templateUrl:"./hub.component.html",styleUrls:["./hub.component.css"]}]}],(function(){return[{type:i.HubService},{type:a.AuthService},{type:l.BsModalService},{type:s.Router},{type:s.ActivatedRoute}]}),null)},192:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ForgotPasswordComponent=void 0;var o=n(0),r=(n(33),n(1),n(118),n(111)),i=n(0),a=n(118),l=n(33),s=n(1),c=n(97),d=n(86),p=n(22),u=n(68),m=n(113);function g(e,t){if(1&e&&(i.ɵɵelementStart(0,"div",15),i.ɵɵtext(1),i.ɵɵelementEnd()),2&e){var n=i.ɵɵnextContext();i.ɵɵadvance(1),i.ɵɵtextInterpolate(n.message)}}function f(e,t){1&e&&(i.ɵɵelementStart(0,"div",16),i.ɵɵelementStart(1,"label"),i.ɵɵelement(2,"localize",17),i.ɵɵelementEnd(),i.ɵɵelementEnd())}function v(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"div",18),i.ɵɵelementStart(1,"span",19),i.ɵɵelementStart(2,"input",20),i.ɵɵlistener("ngModelChange",(function(e){return i.ɵɵrestoreView(n),i.ɵɵnextContext().username=e})),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd()}if(2&e){var o=i.ɵɵnextContext();i.ɵɵadvance(2),i.ɵɵproperty("ngModel",o.username)}}function h(e,t){1&e&&(i.ɵɵelementStart(0,"div",21),i.ɵɵelement(1,"localize",22),i.ɵɵelementEnd())}function y(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"div",23),i.ɵɵelementStart(1,"input",24),i.ɵɵlistener("click",(function(){return i.ɵɵrestoreView(n),i.ɵɵnextContext().cancel()})),i.ɵɵpipe(2,"localize"),i.ɵɵelementEnd(),i.ɵɵelement(3,"input",25),i.ɵɵpipe(4,"localize"),i.ɵɵelementEnd()}if(2&e){i.ɵɵnextContext();var o=i.ɵɵreference(4);i.ɵɵadvance(1),i.ɵɵproperty("value",i.ɵɵpipeBind1(2,3,"forgotpassword.cancel")),i.ɵɵadvance(2),i.ɵɵproperty("value",i.ɵɵpipeBind1(4,5,"forgotpassword.submit"))("disabled",!o.valid)}}function C(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"div",26),i.ɵɵelementStart(1,"input",27),i.ɵɵlistener("click",(function(){return i.ɵɵrestoreView(n),i.ɵɵnextContext().cancel()})),i.ɵɵpipe(2,"localize"),i.ɵɵelementEnd(),i.ɵɵelementEnd()}2&e&&(i.ɵɵadvance(1),i.ɵɵproperty("value",i.ɵɵpipeBind1(2,1,"forgotpassword.ok")))}var b=function(){function e(e,t,n,o){this.service=e,this.router=t,this.route=n,this.location=o,this.emailIsSent=!1,this.message=null}return e.prototype.cancel=function(){this.router.navigate(["/"])},e.prototype.onSubmit=function(){var e=this;this.service.submit(this.username).then((function(t){e.emailIsSent=!0})).catch((function(t){e.error(t)}))},e.prototype.error=function(e){this.message=r.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(i.ɵɵdirectiveInject(a.ForgotPasswordService),i.ɵɵdirectiveInject(l.Router),i.ɵɵdirectiveInject(l.ActivatedRoute),i.ɵɵdirectiveInject(s.Location))},e.ɵcmp=i.ɵɵdefineComponent({type:e,selectors:[["forgotpassword"]],decls:22,vars:6,consts:[[1,"modal-form",3,"ngSubmit"],["form","ngForm"],[1,"modal-dialog"],[1,"modal-content"],[1,"heading","text-center"],["key","forgotpassword.header"],["class","alert alert-danger","role","alert",4,"ngIf"],[1,"modal-body"],[1,"row"],[1,"col-md-12"],["class","label-holder",4,"ngIf"],["class","holder",4,"ngIf"],["class","forgotpassword-email-is-sent",4,"ngIf"],["class","button-holder",4,"ngIf"],["class","button-holder","style","margin-top: 10px;",4,"ngIf"],["role","alert",1,"alert","alert-danger"],[1,"label-holder"],["key","forgotpassword.username"],[1,"holder"],[1,"text"],["type","text","name","username","required","",3,"ngModel","ngModelChange"],[1,"forgotpassword-email-is-sent"],["key","forgotpassword.emailIsSent"],[1,"button-holder"],["type","button",1,"btn","btn-default",3,"value","click"],["type","submit",1,"btn","btn-primary",3,"value","disabled"],[1,"button-holder",2,"margin-top","10px"],["type","button",1,"btn","btn-primary",2,"margin-top","10px",3,"value","click"]],template:function(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"div"),i.ɵɵelement(1,"message"),i.ɵɵelement(2,"loading-bar"),i.ɵɵelementStart(3,"form",0,1),i.ɵɵlistener("ngSubmit",(function(){return i.ɵɵrestoreView(n),i.ɵɵreference(4).valid&&t.onSubmit()})),i.ɵɵelementStart(5,"div",2),i.ɵɵelementStart(6,"div",3),i.ɵɵelementStart(7,"div",4),i.ɵɵelementStart(8,"h3"),i.ɵɵelement(9,"localize",5),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵtemplate(10,g,2,1,"div",6),i.ɵɵelementStart(11,"div",7),i.ɵɵelementStart(12,"fieldset"),i.ɵɵelementStart(13,"div",8),i.ɵɵelementStart(14,"div",9),i.ɵɵtemplate(15,f,3,0,"div",10),i.ɵɵtemplate(16,v,3,1,"div",11),i.ɵɵtemplate(17,h,2,0,"div",12),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(18,"div",8),i.ɵɵelementStart(19,"div",9),i.ɵɵtemplate(20,y,5,7,"div",13),i.ɵɵtemplate(21,C,3,3,"div",14),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd()}2&e&&(i.ɵɵadvance(10),i.ɵɵproperty("ngIf",null!=t.message),i.ɵɵadvance(5),i.ɵɵproperty("ngIf",!t.emailIsSent),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",!t.emailIsSent),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",t.emailIsSent),i.ɵɵadvance(3),i.ɵɵproperty("ngIf",!t.emailIsSent),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",t.emailIsSent))},directives:[c.MessageComponent,d.LoadingBarComponent,p.ɵangular_packages_forms_forms_ba,p.NgControlStatusGroup,p.NgForm,u.LocalizeComponent,s.NgIf,p.DefaultValueAccessor,p.RequiredValidator,p.NgControlStatus,p.NgModel],pipes:[m.LocalizePipe],styles:[".forgotpassword-email-is-sent[_ngcontent-%COMP%]\n{\n}"]}),e}();t.ForgotPasswordComponent=b,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(b,[{type:o.Component,args:[{selector:"forgotpassword",templateUrl:"./forgotpassword.component.html",styleUrls:["./forgotpassword.component.css"]}]}],(function(){return[{type:a.ForgotPasswordService},{type:l.Router},{type:l.ActivatedRoute},{type:s.Location}]}),null)},193:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ForgotPasswordCompleteComponent=void 0;var o=n(0),r=(n(33),n(111)),i=(n(118),n(88),n(0)),a=n(118),l=n(33),s=n(88),c=n(97),d=n(86),p=n(22),u=n(68),m=n(1),g=n(88),f=n(113);function v(e,t){if(1&e&&(i.ɵɵelementStart(0,"div",16),i.ɵɵtext(1),i.ɵɵelementEnd()),2&e){var n=i.ɵɵnextContext();i.ɵɵadvance(1),i.ɵɵtextInterpolate(n.message)}}function h(e,t){1&e&&(i.ɵɵelementStart(0,"div",26),i.ɵɵelement(1,"localize",27),i.ɵɵelementEnd())}function y(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"div"),i.ɵɵelementStart(1,"div",12),i.ɵɵelementStart(2,"label"),i.ɵɵelement(3,"localize",17),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(4,"div",13),i.ɵɵelementStart(5,"span",18),i.ɵɵelementStart(6,"input",19,20),i.ɵɵlistener("ngModelChange",(function(e){return i.ɵɵrestoreView(n),i.ɵɵnextContext().newPassword=e})),i.ɵɵelementEnd(),i.ɵɵelement(8,"password-strength-bar",21),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(9,"div",12),i.ɵɵelementStart(10,"label"),i.ɵɵelement(11,"localize",22),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(12,"div",13),i.ɵɵelementStart(13,"span",18),i.ɵɵelement(14,"input",23,24),i.ɵɵelementEnd(),i.ɵɵtemplate(16,h,2,0,"div",25),i.ɵɵelementEnd(),i.ɵɵelementEnd()}if(2&e){var o=i.ɵɵreference(7),r=i.ɵɵreference(15),a=i.ɵɵnextContext();i.ɵɵadvance(6),i.ɵɵproperty("ngModel",a.newPassword),i.ɵɵadvance(2),i.ɵɵproperty("passwordToCheck",a.newPassword),i.ɵɵadvance(6),i.ɵɵproperty("value",o),i.ɵɵadvance(2),i.ɵɵproperty("ngIf",null==r.errors?null:r.errors.equalTo)}}function C(e,t){1&e&&(i.ɵɵelementStart(0,"div",28),i.ɵɵelement(1,"localize",29),i.ɵɵelementEnd())}function b(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"div",30),i.ɵɵelementStart(1,"input",31),i.ɵɵlistener("click",(function(){return i.ɵɵrestoreView(n),i.ɵɵnextContext().cancel()})),i.ɵɵpipe(2,"localize"),i.ɵɵelementEnd(),i.ɵɵelement(3,"input",32),i.ɵɵpipe(4,"localize"),i.ɵɵelementEnd()}if(2&e){i.ɵɵnextContext();var o=i.ɵɵreference(4);i.ɵɵadvance(1),i.ɵɵproperty("value",i.ɵɵpipeBind1(2,3,"forgotpassword-complete.cancel")),i.ɵɵadvance(2),i.ɵɵproperty("value",i.ɵɵpipeBind1(4,5,"forgotpassword-complete.submit"))("disabled",!o.valid)}}function M(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"div",33),i.ɵɵelementStart(1,"input",34),i.ɵɵlistener("click",(function(){return i.ɵɵrestoreView(n),i.ɵɵnextContext().cancel()})),i.ɵɵpipe(2,"localize"),i.ɵɵelementEnd(),i.ɵɵelementEnd()}2&e&&(i.ɵɵadvance(1),i.ɵɵproperty("value",i.ɵɵpipeBind1(2,1,"forgotpassword-complete.ok")))}var S=function(){function e(e,t,n,o){this.service=e,this.router=t,this.route=n,this.passwordStrengthBarComponent=o,this.passwordIsReset=!1,this.message=null}return e.prototype.ngOnInit=function(){var e=this;this.sub=this.route.params.subscribe((function(t){e.token=t.token}))},e.prototype.ngOnDestroy=function(){this.sub.unsubscribe()},e.prototype.cancel=function(){this.router.navigate(["/"])},e.prototype.onSubmit=function(){var e=this;this.service.complete(this.newPassword,this.token).then((function(){e.passwordIsReset=!0})).catch((function(t){e.error(t)}))},e.prototype.error=function(e){this.message=r.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(i.ɵɵdirectiveInject(a.ForgotPasswordService),i.ɵɵdirectiveInject(l.Router),i.ɵɵdirectiveInject(l.ActivatedRoute),i.ɵɵdirectiveInject(s.PasswordStrengthBarComponent))},e.ɵcmp=i.ɵɵdefineComponent({type:e,selectors:[["ng-component"]],decls:23,vars:5,consts:[[1,"modal-form",3,"ngSubmit"],["form","ngForm"],[1,"modal-dialog"],[1,"modal-content"],[1,"heading","text-center"],["key","forgotpassword-complete.header"],["class","alert alert-danger","role","alert",4,"ngIf"],[1,"modal-body"],[1,"row"],[1,"col-md-12"],[4,"ngIf"],["class","forgotpassword-password-is-reset",4,"ngIf"],[1,"label-holder"],[1,"holder"],["class","button-holder",4,"ngIf"],["class","button-holder","style","margin-top: 10px;",4,"ngIf"],["role","alert",1,"alert","alert-danger"],["key","forgotpassword-complete.newPassword"],[1,"text"],["type","password","name","password","required","","minlength","5","maxlength","50",3,"ngModel","ngModelChange"],["password","ngModel"],[3,"passwordToCheck"],["key","account.certainPassword"],["type","password","ngModel","","name","certainPassword",3,"value"],["certainPassword","ngModel"],["class","inline-error-message",4,"ngIf"],[1,"inline-error-message"],["key","account.certainPassword.validation"],[1,"forgotpassword-password-is-reset"],["key","forgotpassword-complete.passwordIsReset"],[1,"button-holder"],["type","button",1,"btn","btn-default",3,"value","click"],["type","submit",1,"btn","btn-primary",3,"value","disabled"],[1,"button-holder",2,"margin-top","10px"],["type","button",1,"btn","btn-primary",2,"margin-top","10px",3,"value","click"]],template:function(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"div"),i.ɵɵelement(1,"message"),i.ɵɵelement(2,"loading-bar"),i.ɵɵelementStart(3,"form",0,1),i.ɵɵlistener("ngSubmit",(function(){return i.ɵɵrestoreView(n),i.ɵɵreference(4).valid&&t.onSubmit()})),i.ɵɵelementStart(5,"div",2),i.ɵɵelementStart(6,"div",3),i.ɵɵelementStart(7,"div",4),i.ɵɵelementStart(8,"h3"),i.ɵɵelement(9,"localize",5),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵtemplate(10,v,2,1,"div",6),i.ɵɵelementStart(11,"div",7),i.ɵɵelementStart(12,"fieldset"),i.ɵɵelementStart(13,"div",8),i.ɵɵelementStart(14,"div",9),i.ɵɵtemplate(15,y,17,4,"div",10),i.ɵɵtemplate(16,C,2,0,"div",11),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(17,"div",8),i.ɵɵelementStart(18,"div",9),i.ɵɵelement(19,"div",12),i.ɵɵelementStart(20,"div",13),i.ɵɵtemplate(21,b,5,7,"div",14),i.ɵɵtemplate(22,M,3,3,"div",15),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd()}2&e&&(i.ɵɵadvance(10),i.ɵɵproperty("ngIf",null!=t.message),i.ɵɵadvance(5),i.ɵɵproperty("ngIf",!t.passwordIsReset),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",t.passwordIsReset),i.ɵɵadvance(5),i.ɵɵproperty("ngIf",!t.passwordIsReset),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",t.passwordIsReset))},directives:[c.MessageComponent,d.LoadingBarComponent,p.ɵangular_packages_forms_forms_ba,p.NgControlStatusGroup,p.NgForm,u.LocalizeComponent,m.NgIf,p.DefaultValueAccessor,p.RequiredValidator,p.MinLengthValidator,p.MaxLengthValidator,p.NgControlStatus,p.NgModel,g.PasswordStrengthBarComponent],pipes:[f.LocalizePipe],styles:[".forgotpassword-password-is-reset[_ngcontent-%COMP%]\n{\n}"]}),e}();t.ForgotPasswordCompleteComponent=S,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(S,[{type:o.Component,args:[{templateUrl:"./forgotpassword-complete.component.html",styleUrls:["./forgotpassword-complete.component.css"]}]}],(function(){return[{type:a.ForgotPasswordService},{type:l.Router},{type:l.ActivatedRoute},{type:s.PasswordStrengthBarComponent}]}),null)},203:function(e,t,n){"use strict";var o,r=this&&this.__extends||(o=function(e,t){return(o=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)},function(e,t){function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0}),t.ContextLayerGroup=t.ContextLayer=t.ExportScheduledJob=t.OrgSyncInfo=t.SynchronizationConfig=t.MasterListByOrg=t.MasterListView=t.HierarchyOverTimeEntryParent=t.HierarchyOverTimeEntry=t.HierarchyOverTime=t.MasterListVersion=t.MasterList=t.Step=t.StepConfig=t.ImportErrorObject=t.ServerExceptionAttribute=t.ServerException=t.ImportError=t.ScheduledJobOverview=t.ScheduledJob=t.AbstractScheduledJob=t.PaginationPage=t.ManageGeoObjectTypeModalState=t.ParentTreeNode=t.ChildTreeNode=t.TreeNode=t.AttributeDecimalType=t.AttributeTermType=t.AttributeType=t.AttributeOverTime=t.ValueOverTime=t.ConflictMessage=t.GeoObjectOverTime=t.Task=t.GeoObjectType=t.GeoObject=t.Term=t.TreeEntity=t.PRESENT=void 0;var i=n(209);t.PRESENT="5000-12-31";var a=function(){};t.TreeEntity=a;var l=function(){function e(e,t,n){this.children=[],this.code=e,this.label=t,this.description=n}return e.prototype.addChild=function(e){this.children.push(e)},e}();t.Term=l;var s=function(){};t.GeoObject=s;var c=function(){function e(){this.attributes=[]}return e.getAttribute=function(e,t){for(var n=e.attributes.length,o=0;o0)return"status"===o.code?i.default.removeStatuses(r):r}}return null},e}();t.GeoObjectType=c;var d=function(){};t.Task=d;var p=function(){function e(e,t){this.geoObjectType=e,this.attributes=t}return e.prototype.getVotAtDate=function(e,t,n){for(var o={startDate:e,endDate:null,value:null},r=e.getTime(),i=function(e){var i=a.geoObjectType.attributes[e];if(i.code===t){if("local"===i.type&&(o.value=n.create()),i.isChangeOverTime)a.attributes[i.code].values.forEach((function(e){var t=Date.parse(e.startDate),n=Date.parse(e.endDate);r>=t&&r<=n&&("local"===i.type?o.value=JSON.parse(JSON.stringify(e.value)):"term"===i.type&&null!=e.value&&Array.isArray(e.value)&&e.value.length>0?o.value=e.value[0]:o.value=e.value)}));else o.value=a.attributes[i.code];return"break"}},a=this,l=0;lo},e.dateEndBeforeStart=function(e,t){return t864e5},e.areValuesEqual=function(e,t,n){if("boolean"===e.type)return t===n;if(""===t&&null==n||""===n&&null==t)return!0;if(!t&&!n)return!0;if(!t&&n||!n&&t)return!1;if("term"===e.type){if(null!=t&&null!=n)return t.length===n.length&&t[0]===n[0]}else{if("geometry"===e.type)return r.default(t,n);if("date"===e.type)return("string"==typeof t?parseInt(t):t)===("string"==typeof n?parseInt(n):n);if("local"===e.type){if(!t.localeValues||!n.localeValues||t.localeValues.length!==n.localeValues.length)return!1;for(var o=t.localeValues.length,i=0;i0),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.localizeLabelKey.length>0),a.ɵɵadvance(1),a.ɵɵproperty("hidden",t.valueIsPresent),a.ɵɵadvance(2),a.ɵɵstyleMap(t.customStyles?t.customStyles:""),a.ɵɵclassMap(t.classNames?t.classNames+" date-input-element":"date-input-element"),a.ɵɵpropertyInterpolate("name",t.inputName),a.ɵɵpropertyInterpolate("placement",t.placement),a.ɵɵpropertyInterpolate("title",t.title),a.ɵɵproperty("bsValue",t._value)("value",a.ɵɵpipeBind2(6,21,t._value,"yyyy-MM-dd"))("bsConfig",a.ɵɵpureFunction1(24,y,t.returnFocusToInput))("outsideClick",!0)("maxDate",t.allowFutureDates?null:t.today)("isDisabled",t.disable)("disabled",t.disable),a.ɵɵadvance(4),a.ɵɵproperty("ngIf",t.message),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.oldDate),a.ɵɵadvance(1),a.ɵɵproperty("hidden",!t.valueIsPresent),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",t.allowInfinity))},styles:['.disabled[_ngcontent-%COMP%]{\n cursor: not-allowed;\n}\n\nlabel.disabled[_ngcontent-%COMP%]{\n color: lightgrey;\n}\n\ninput[type="date"][_ngcontent-%COMP%] {\n\tmin-width: 173px;\n}\n\np.warning-text.display-current-value[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n\n.wrapper[_ngcontent-%COMP%] input[type="text"][_ngcontent-%COMP%] {\n position: relative; \n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n.date-input-element[_ngcontent-%COMP%] {\n\twidth: auto;\n}\n.date-input-element.full-width[_ngcontent-%COMP%] {\n\twidth: 100%;\n}\n\n.date-input-element[_ngcontent-%COMP%]:hover {\n\n}\n\n\n .bs-datepicker-body table td span.disabled, .bs-datepicker-body[_ngcontent-%COMP%] table[_ngcontent-%COMP%] td.disabled[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n color: lightgrey;\n cursor: not-allowed;\n}']}),e}();t.DateFieldComponent=C,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(C,[{type:o.Component,args:[{selector:"date-field",templateUrl:"./date-field.component.html",styleUrls:["./date-field.css"]}]}],(function(){return[{type:l.LocalizationService},{type:s.BsDatepickerConfig},{type:a.ChangeDetectorRef},{type:c.DateService}]}),{datepicker:[{type:o.ViewChild,args:[r.BsDatepickerDirective,{static:!1}]}],allowFutureDates:[{type:o.Input}],allowInfinity:[{type:o.Input}],inputName:[{type:o.Input}],classNames:[{type:o.Input}],customStyles:[{type:o.Input}],localizeLabelKey:[{type:o.Input}],label:[{type:o.Input}],disable:[{type:o.Input}],required:[{type:o.Input}],placement:[{type:o.Input}],oldDate:[{type:o.Input}],title:[{type:o.Input}],value:[{type:o.Input}],valueChange:[{type:o.Output}],change:[{type:o.Output}],valid:[{type:o.Input}],validChange:[{type:o.Output}]})},261:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Step=t.StepConfig=t.ModalTypes=void 0,function(e){e.warning="WARNING",e.danger="DANGER"}(t.ModalTypes||(t.ModalTypes={}));var o=function(){};t.StepConfig=o;var r=function(){};t.Step=r},262:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BooleanFieldComponent=void 0;var o=n(0),r=n(0),i=n(1),a=n(68);function l(e,t){if(1&e&&(r.ɵɵelementStart(0,"label",3),r.ɵɵtext(1),r.ɵɵelementEnd()),2&e){var n=r.ɵɵnextContext();r.ɵɵadvance(1),r.ɵɵtextInterpolate(n.label)}}function s(e,t){if(1&e&&(r.ɵɵelementStart(0,"label",3),r.ɵɵelement(1,"localize",4),r.ɵɵelementEnd()),2&e){var n=r.ɵɵnextContext();r.ɵɵadvance(1),r.ɵɵpropertyInterpolate("key",n.localizeLabelKey)}}var c=function(e){return{dizabled:e}},d=function(e){return{"chk-checked":e}},p=function(){function e(){this.value=!1,this.valueChange=new o.EventEmitter,this.localizeLabelKey="",this.label="",this.disable=!1,this.change=new o.EventEmitter}return e.prototype.toggle=function(){this.disable||(this.value=!this.value,this.valueChange.emit(this.value),this.change.emit(this.value))},e.ɵfac=function(t){return new(t||e)},e.ɵcmp=r.ɵɵdefineComponent({type:e,selectors:[["boolean-field"]],inputs:{value:"value",localizeLabelKey:"localizeLabelKey",label:"label",disable:"disable"},outputs:{valueChange:"valueChange",change:"change"},decls:5,vars:8,consts:[[1,"check-block",3,"ngClass","click"],["ng-style","chkstyle",1,"chk-area",3,"ngClass"],["class","checkbox-label",4,"ngIf"],[1,"checkbox-label"],[3,"key"]],template:function(e,t){1&e&&(r.ɵɵelementStart(0,"div",0),r.ɵɵlistener("click",(function(){return t.toggle()})),r.ɵɵelementStart(1,"div",1),r.ɵɵelement(2,"span"),r.ɵɵelementEnd(),r.ɵɵtemplate(3,l,2,1,"label",2),r.ɵɵtemplate(4,s,2,1,"label",2),r.ɵɵelementEnd()),2&e&&(r.ɵɵproperty("ngClass",r.ɵɵpureFunction1(4,c,t.disable)),r.ɵɵadvance(1),r.ɵɵproperty("ngClass",r.ɵɵpureFunction1(6,d,t.value)),r.ɵɵadvance(2),r.ɵɵproperty("ngIf",t.label.length>0),r.ɵɵadvance(1),r.ɵɵproperty("ngIf",t.localizeLabelKey.length>0))},directives:[i.NgClass,i.NgIf,a.LocalizeComponent],styles:[".modal-form[_ngcontent-%COMP%] .holder[_ngcontent-%COMP%] .check-block[_ngcontent-%COMP%] .chk-area[_ngcontent-%COMP%] {\n margin: 10px 0px 0 0;\n}\n\n.dizabled[_ngcontent-%COMP%]{\n cursor: not-allowed;\n}\n\nlabel.dizabled[_ngcontent-%COMP%]{\n color: lightgrey;\n}\n\n.check-block[_ngcontent-%COMP%] {\n\t cursor: pointer;\n}\n\n.check-block[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n cursor: pointer;\n \n -webkit-touch-callout: none; \n -webkit-user-select: none; \n -khtml-user-select: none; \n -moz-user-select: none; \n -ms-user-select: none; \n user-select: none; \n}\n\n.dizabled[_ngcontent-%COMP%] {\n cursor: not-allowed;\n}\n\n.dizabled[_ngcontent-%COMP%] > label[_ngcontent-%COMP%] {\n cursor: not-allowed;\n}\n\n.dizabled[_ngcontent-%COMP%] > div[_ngcontent-%COMP%] {\n cursor: not-allowed;\n}\n\n.dizabled[_ngcontent-%COMP%] > span[_ngcontent-%COMP%] {\n cursor: not-allowed;\n}\n\n.dizabled[_ngcontent-%COMP%] > div.chk-area[_ngcontent-%COMP%] {\n cursor: not-allowed;\n}"]}),e}();t.BooleanFieldComponent=p,("undefined"==typeof ngDevMode||ngDevMode)&&r.ɵsetClassMetadata(p,[{type:o.Component,args:[{selector:"boolean-field",templateUrl:"./boolean-field.component.html",styleUrls:["./boolean-field.css"]}]}],(function(){return[]}),{value:[{type:o.Input}],valueChange:[{type:o.Output}],localizeLabelKey:[{type:o.Input}],label:[{type:o.Input}],disable:[{type:o.Input}],change:[{type:o.Output}]})},264:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GeometryService=void 0;var o=n(0),r=n(273),i=n(263),a=n(0),l=function(){function e(){this.layers=[],this.editingControl=null,this.simpleEditControl=null,this.geometryChange=new o.EventEmitter}return e.prototype.ngOnInit=function(){var e=this;window.onbeforeunload=function(){return e.destroy()}},e.prototype.initialize=function(e,t,n){var o=this;this.map=e,this.geometryType=t,this.addLayers(),this.map.on("draw.create",(function(){o.saveEdits()})),this.map.on("draw.delete",(function(){o.saveEdits()})),this.map.on("draw.update",(function(){o.saveEdits()}))},e.prototype.destroy=function(e){void 0===e&&(e=!0),null!=this.editingControl&&(this.map.removeControl(this.editingControl),this.editingControl=null),null!=this.map&&e?(this.map.remove(),this.map=null):null!=this.map&&this.removeLayers(),null!=this.layers&&this.layers.forEach((function(e){e.isEditing=!1,e.isRendering=!1})),this.editingLayer=null,this.layers=[]},e.prototype.startEditing=function(e){this.isEditing()&&this.stopEditing(),this.editingLayer=e,this.editingLayer.isEditing=!0,this.readOnly||this.enableEditing(),this.addEditingLayers()},e.prototype.stopEditing=function(e){void 0===e&&(e=!0),this.isEditing()&&(this.saveEdits(e),this.editingLayer.isEditing=!1,this.editingLayer=null,this.editingControl.deleteAll(),this.map.removeControl(this.editingControl),this.editingControl=null)},e.prototype.isEditing=function(){return null!=this.editingLayer},e.prototype.setPointCoordinates=function(e,t){null!=this.editingLayer&&(this.editingControl.set({type:"FeatureCollection",features:[{id:this.editingLayer.oid,type:"Feature",properties:{},geometry:{type:"Point",coordinates:[t,e]}}]}),this.editingControl.changeMode("simple_select",{featureIds:this.editingLayer.oid}),this.saveEdits())},e.prototype.isValid=function(){if(!this.readOnly){var e=!1;if(null!=this.editingControl)this.editingControl.getAll().features.length>0&&(e=!0);return e}return!0},e.prototype.saveEdits=function(e){if(void 0===e&&(e=!0),null!=this.editingLayer){var t=this.getDrawGeometry();this.editingLayer.editPropagator.value=t,e&&(this.removeLayers(),this.addLayers())}},e.prototype.reload=function(){null!=this.map&&(this.removeLayers(),this.addLayers(),null!=this.editingControl&&this.editingControl.deleteAll(),this.addEditingLayers())},e.prototype.setEditing=function(e,t){this.isEditing()&&this.stopEditing(),t.isEditing=e,e&&this.startEditing(t)},e.prototype.setRendering=function(e,t){t.isRendering=e,this.addLayer(t)},e.prototype.addLayer=function(e){var t=this.layers.findIndex((function(t){return t.oid===e.oid}));-1!==t?(this.layers.splice(t,1),this.layers.push(e)):this.layers.push(e),e.isEditing&&this.startEditing(e),this.layers=this.layers.sort((function(e,t){return e.zindex-t.zindex})),this.removeLayers(),this.addLayers()},e.prototype.getLayers=function(){return this.layers},e.prototype.getRenderedLayers=function(){return this.layers.filter((function(e){return e.isRendering}))},e.prototype.setLayers=function(e){this.removeLayers(),this.layers=e.sort((function(e,t){return e.zindex-t.zindex})),this.addLayers()},e.prototype.enableEditing=function(){null==this.editingControl&&("MULTIPOLYGON"===this.geometryType||"POLYGON"===this.geometryType?this.editingControl=new r.default({controls:{point:!1,line_string:!1,polygon:!0,trash:!0,combine_features:!1,uncombine_features:!1}}):"POINT"===this.geometryType||"MULTIPOINT"===this.geometryType?this.editingControl=new r.default({userProperties:!0,controls:{point:!0,line_string:!1,polygon:!1,trash:!0,combine_features:!1,uncombine_features:!1},styles:[{id:"highlight-active-points",type:"circle",filter:["all",["==","$type","Point"],["==","meta","feature"],["==","active","true"]],paint:{"circle-radius":13,"circle-color":"#33FFF9","circle-stroke-width":4,"circle-stroke-color":"white"}},{id:"points-are-blue",type:"circle",filter:["all",["==","$type","Point"],["==","meta","feature"],["==","active","false"]],paint:{"circle-radius":10,"circle-color":"#800000","circle-stroke-width":2,"circle-stroke-color":"white"}}]}):"LINE"!==this.geometryType&&"MULTILINE"!==this.geometryType||(this.editingControl=new r.default({controls:{point:!1,line_string:!0,polygon:!1,trash:!0,combine_features:!1,uncombine_features:!1}})),null==this.map.getSource("mapbox-gl-draw-cold")&&this.map.addControl(this.editingControl))},e.prototype.addEditingLayers=function(){null!=this.editingLayer&&null!=this.editingControl&&(this.editingLayer.editPropagator.value&&this.editingControl.add(this.editingLayer.editPropagator.value))},e.prototype.removeSource=function(e){if(this.map){var t=e+"-geoobject";"MULTIPOLYGON"===this.geometryType||"POLYGON"===this.geometryType?null!=this.map.getLayer(t+"-polygon")&&this.map.removeLayer(t+"-polygon"):"POINT"===this.geometryType||"MULTIPOINT"===this.geometryType?null!=this.map.getLayer(t+"-point")&&this.map.removeLayer(t+"-point"):"LINE"!==this.geometryType&&"MultiLine"!==this.geometryType||null!=this.map.getLayer(t+"-line")&&this.map.removeLayer(t+"-line"),null!=this.map.getSource(t)&&this.map.removeSource(t)}},e.prototype.removeLayers=function(){if(null!=this.layers&&this.layers.length>0)for(var e=this.layers.length,t=0;t0)for(var e=this.layers.length,t=0;t0){if("MULTIPOLYGON"===this.geometryType){for(var t=[],n=0;n=35&&t.keyCode<=39)return;(t.shiftKey||t.keyCode<48||t.keyCode>57)&&(t.keyCode<96||t.keyCode>105)&&t.preventDefault()}},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(r.ElementRef))},e.ɵdir=r.ɵɵdefineDirective({type:e,selectors:[["","OnlyNumber",""]],hostBindings:function(e,t){1&e&&r.ɵɵlistener("keydown",(function(e){return t.onKeyDown(e)}))},inputs:{OnlyNumber:"OnlyNumber"}}),e}();t.OnlyNumber=i,("undefined"==typeof ngDevMode||ngDevMode)&&r.ɵsetClassMetadata(i,[{type:o.Directive,args:[{selector:"[OnlyNumber]"}]}],(function(){return[{type:r.ElementRef}]}),{OnlyNumber:[{type:o.Input}],onKeyDown:[{type:o.HostListener,args:["keydown",["$event"]]}]})},266:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MustMatchDirective=t.MustMatch=void 0;var o=n(0),r=n(22),i=n(0);function a(e,t){return function(n){var o=n.controls[e],r=n.controls[t];return o&&r?r.errors&&!r.errors.mustMatch?null:void(o.value!==r.value?r.setErrors({mustMatch:!0}):r.setErrors(null)):null}}t.MustMatch=a;var l=function(){function e(){this.mustMatch=[]}return e.prototype.validate=function(e){return a(this.mustMatch[0],this.mustMatch[1])(e)},e.ɵfac=function(t){return new(t||e)},e.ɵdir=i.ɵɵdefineDirective({type:e,selectors:[["","mustMatch",""]],inputs:{mustMatch:"mustMatch"},features:[i.ɵɵProvidersFeature([{provide:r.NG_VALIDATORS,useExisting:e,multi:!0}])]}),e}();t.MustMatchDirective=l,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(l,[{type:o.Directive,args:[{selector:"[mustMatch]",providers:[{provide:r.NG_VALIDATORS,useExisting:l,multi:!0}]}]}],null,{mustMatch:[{type:o.Input,args:["mustMatch"]}]})},267:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Profile=void 0;var o=function(){};t.Profile=o},268:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PhonePipe=void 0;var o=n(0),r=n(272),i=n(0),a=function(){function e(){}return e.prototype.transform=function(e,t){return e?r.formatNumber({country:"US",phone:e.toString()},"International"):e},e.ɵfac=function(t){return new(t||e)},e.ɵpipe=i.ɵɵdefinePipe({name:"phone",type:e,pure:!0}),e}();t.PhonePipe=a,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(a,[{type:o.Pipe,args:[{name:"phone"}]}],null,null)},336:function(e,t,n){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});var o=n(0),r=n(337),i=n(45);"production"===e.env.ENV&&o.enableProdMode(),i.platformBrowser().bootstrapModule(r.CgrAppModule).then((function(e){return console.log("Bootstrap success")})).catch((function(e){return console.log(e)}))}).call(this,n(99))},337:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CgrAppModule=void 0;var o=n(0),r=n(45),i=n(22),a=n(34),l=n(208),s=n(169),c=n(125),d=n(171),p=n(154),u=n(205),m=n(204),g=n(126),f=n(73),v=n(211),h=n(98),y=n(338),C=n(339),b=n(340),M=n(190),S=n(243),E=n(191),w=n(192),x=n(193),O=n(363),I=n(118),P=n(88),_=n(89),R=n(264),D=n(210);n(207);var k=n(0),L=n(190),T=n(191),z=n(192),j=n(193),N=n(169),A=n(125),F=n(171),V=n(154),B=n(126),G=n(73),H=n(211),U=n(210),J=n(98),Y=function(){function e(){}return e.ɵfac=function(t){return new(t||e)},e.ɵmod=k.ɵɵdefineNgModule({type:e,bootstrap:[C.CgrAppComponent]}),e.ɵinj=k.ɵɵdefineInjector({providers:[{provide:a.HTTP_INTERCEPTORS,useClass:O.HttpErrorInterceptor,multi:!0},I.ForgotPasswordService,P.PasswordStrengthBarComponent,_.HubService,R.GeometryService],imports:[[r.BrowserModule,i.FormsModule,a.HttpClientModule,b.CgrAppRoutingModule,i.ReactiveFormsModule,u.FileUploadModule,l.TreeModule,s.ContextMenuModule.forRoot(),c.BsDropdownModule.forRoot(),d.ButtonsModule.forRoot(),p.TypeaheadModule.forRoot(),g.ProgressbarModule.forRoot(),f.CollapseModule.forRoot(),v.TabsModule.forRoot(),m.NgxPaginationModule,y.BrowserAnimationsModule,D.SharedModule.forRoot(),h.BsDatepickerModule.forRoot()]]}),e}();t.CgrAppModule=Y,("undefined"==typeof ngJitMode||ngJitMode)&&k.ɵɵsetNgModuleScope(Y,{declarations:[C.CgrAppComponent,M.LoginComponent,S.LoginHeaderComponent,E.HubComponent,w.ForgotPasswordComponent,x.ForgotPasswordCompleteComponent,L.LoginComponent,T.HubComponent,z.ForgotPasswordComponent,j.ForgotPasswordCompleteComponent],imports:[r.BrowserModule,i.FormsModule,a.HttpClientModule,b.CgrAppRoutingModule,i.ReactiveFormsModule,u.FileUploadModule,l.TreeModule,N.ContextMenuModule,A.BsDropdownModule,F.ButtonsModule,V.TypeaheadModule,B.ProgressbarModule,G.CollapseModule,H.TabsModule,m.NgxPaginationModule,y.BrowserAnimationsModule,U.SharedModule,J.BsDatepickerModule],exports:[C.CgrAppComponent]}),("undefined"==typeof ngDevMode||ngDevMode)&&k.ɵsetClassMetadata(Y,[{type:o.NgModule,args:[{imports:[r.BrowserModule,i.FormsModule,a.HttpClientModule,b.CgrAppRoutingModule,i.ReactiveFormsModule,u.FileUploadModule,l.TreeModule,s.ContextMenuModule.forRoot(),c.BsDropdownModule.forRoot(),d.ButtonsModule.forRoot(),p.TypeaheadModule.forRoot(),g.ProgressbarModule.forRoot(),f.CollapseModule.forRoot(),v.TabsModule.forRoot(),m.NgxPaginationModule,y.BrowserAnimationsModule,D.SharedModule.forRoot(),h.BsDatepickerModule.forRoot()],declarations:[C.CgrAppComponent,M.LoginComponent,S.LoginHeaderComponent,E.HubComponent,w.ForgotPasswordComponent,x.ForgotPasswordCompleteComponent,b.routedComponents],providers:[{provide:a.HTTP_INTERCEPTORS,useClass:O.HttpErrorInterceptor,multi:!0},I.ForgotPasswordService,P.PasswordStrengthBarComponent,_.HubService,R.GeometryService],exports:[C.CgrAppComponent],bootstrap:[C.CgrAppComponent],entryComponents:[]}]}],null,null)},339:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CgrAppComponent=void 0;var o=n(0),r=n(0),i=n(33),a=function(){function e(){}return e.ɵfac=function(t){return new(t||e)},e.ɵcmp=r.ɵɵdefineComponent({type:e,selectors:[["cgr-app"]],decls:3,vars:0,consts:[["id","innerFrameHtml"],["id","main"]],template:function(e,t){1&e&&(r.ɵɵelementStart(0,"div",0),r.ɵɵelementStart(1,"div",1),r.ɵɵelement(2,"router-outlet"),r.ɵɵelementEnd(),r.ɵɵelementEnd())},directives:[i.RouterOutlet],encapsulation:2}),e}();t.CgrAppComponent=a,("undefined"==typeof ngDevMode||ngDevMode)&&r.ɵsetClassMetadata(a,[{type:o.Component,args:[{selector:"cgr-app",templateUrl:"./cgr-app.component.html",styleUrls:[]}]}],(function(){return[]}),null)},340:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.routedComponents=t.CgrAppRoutingModule=void 0;var o=n(0),r=n(1),i=n(33),a=n(190),l=n(191),s=n(192),c=n(193),d=n(123),p=n(0),u=n(33),m=[{path:"",redirectTo:"/menu",pathMatch:"full"},{path:"login",component:a.LoginComponent,data:{title:"login.title"}},{path:"login/:errorMsg",component:a.LoginComponent,data:{title:"login.title"}},{path:"menu",component:l.HubComponent,canActivate:[d.AuthGuard],data:{title:"login.header"}},{path:"menu/:value",component:l.HubComponent,canActivate:[d.AuthGuard],data:{title:"login.header"}},{path:"forgotpassword",component:s.ForgotPasswordComponent,data:{title:"useraccounts.title"}},{path:"forgotpassword-complete/:token",component:c.ForgotPasswordCompleteComponent},{path:"admin",loadChildren:"./admin/admin.module#AdminModule"},{path:"registry",loadChildren:"./registry/registry.module#RegistryModule"}],g=function(){function e(){}return e.ɵfac=function(t){return new(t||e)},e.ɵmod=p.ɵɵdefineNgModule({type:e}),e.ɵinj=p.ɵɵdefineInjector({providers:[{provide:r.LocationStrategy,useClass:r.HashLocationStrategy},d.AdminGuard,d.MaintainerGuard,d.ContributerGuard],imports:[[i.RouterModule.forRoot(m)],i.RouterModule]}),e}();t.CgrAppRoutingModule=g,("undefined"==typeof ngJitMode||ngJitMode)&&p.ɵɵsetNgModuleScope(g,{imports:[u.RouterModule],exports:[i.RouterModule]}),("undefined"==typeof ngDevMode||ngDevMode)&&p.ɵsetClassMetadata(g,[{type:o.NgModule,args:[{imports:[i.RouterModule.forRoot(m)],exports:[i.RouterModule],providers:[{provide:r.LocationStrategy,useClass:r.HashLocationStrategy},d.AdminGuard,d.MaintainerGuard,d.ContributerGuard]}]}],null,null),t.routedComponents=[a.LoginComponent,l.HubComponent,s.ForgotPasswordComponent,c.ForgotPasswordCompleteComponent]},363:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HttpErrorInterceptor=void 0;var o=n(0),r=n(34),i=n(32),a=n(0),l=function(){function e(){}return e.prototype.intercept=function(e,t){return t.handle(e).pipe(i.tap((function(e){if(e instanceof r.HttpResponseBase&&302===e.status)return void(window.location.href=acp+"/cgr/manage#/login")}),(function(e){e instanceof r.HttpErrorResponse&&(401!==e.status&&403!==e.status||(window.location.href=acp+"/cgr/manage#/login"))})))},e.ɵfac=function(t){return new(t||e)},e.ɵprov=a.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.HttpErrorInterceptor=l,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(l,[{type:o.Injectable}],null,null)},68:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LocalizeComponent=void 0;var o=n(0),r=(n(16),n(0)),i=n(16),a=function(){function e(e){this.service=e,this.params=null}return e.prototype.ngOnInit=function(){var e=this;(this.text=this.service.decode(this.key),null!=this.params)&&Object.keys(this.params).forEach((function(t){null!=e.params[t]&&(e.text=e.text.replace(t,e.params[t]))}))},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(i.LocalizationService))},e.ɵcmp=r.ɵɵdefineComponent({type:e,selectors:[["localize"]],inputs:{key:"key",params:"params"},decls:1,vars:1,consts:[[3,"innerHtml"]],template:function(e,t){1&e&&r.ɵɵelement(0,"span",0),2&e&&r.ɵɵproperty("innerHtml",t.text,r.ɵɵsanitizeHtml)},encapsulation:2}),e}();t.LocalizeComponent=a,("undefined"==typeof ngDevMode||ngDevMode)&&r.ɵsetClassMetadata(a,[{type:o.Component,args:[{selector:"localize",templateUrl:"./localize.component.html",styleUrls:[]}]}],(function(){return[{type:i.LocalizationService}]}),{key:[{type:o.Input}],params:[{type:o.Input}]})},86:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LoadingBarComponent=void 0;var o=n(0),r=(n(16),n(0)),i=n(16),a=n(1);function l(e,t){1&e&&r.ɵɵelement(0,"div",1)}var s=function(){function e(e){this.service=e,this.showIndicator=!1}return e.prototype.ngOnInit=function(){this.service.registerListener(this)},e.prototype.ngOnDestroy=function(){this.service.deregisterListener(this)},e.prototype.start=function(){this.showIndicator=!0},e.prototype.complete=function(){this.showIndicator=!1},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(i.EventService))},e.ɵcmp=r.ɵɵdefineComponent({type:e,selectors:[["loading-bar"]],decls:1,vars:1,consts:[["class","standby-overlay",4,"ngIf"],[1,"standby-overlay"]],template:function(e,t){1&e&&r.ɵɵtemplate(0,l,1,0,"div",0),2&e&&r.ɵɵproperty("ngIf",t.showIndicator)},directives:[a.NgIf],styles:[".standby-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n height: 100%; \n width: 100%; \n z-index: 100;\n}"]}),e}();t.LoadingBarComponent=s,("undefined"==typeof ngDevMode||ngDevMode)&&r.ɵsetClassMetadata(s,[{type:o.Component,args:[{selector:"loading-bar",templateUrl:"./loading-bar.component.html",styleUrls:["./loading-bar.css"]}]}],(function(){return[{type:i.EventService}]}),null)},87:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AuthService=void 0;var o=n(0),r=(n(170),n(153)),i=n(0),a=n(170),l=function(){function e(e){this.service=e,this.user={loggedIn:!1,userName:"",roles:[],roleDisplayLabels:[],version:"0",installedLocales:[]};var t=e.get("user");if(this.service.check("user")&&null!=t&&t.length>0){var n=this.service.get("user"),o=JSON.parse(n);this.buildFromCookieJson(o)}this.loadLocales()}return e.prototype.buildFromCookieJson=function(e){this.user.userName=e.userName,this.buildRolesFromCookie(e),this.user.loggedIn=e.loggedIn,this.user.roleDisplayLabels=e.roleDisplayLabels,this.user.version=e.version.replaceAll("+"," ")},e.prototype.buildRolesFromCookie=function(e){this.user.roles=[];for(var t=e.roles,n=0;n90?t=4:e>70?t=3:e>=40?t=2:e>=20&&(t=1),{idx:t+1,col:this.colors[t]}},e.prototype.ngOnChanges=function(t){var n=t.passwordToCheck.currentValue;if(this.setBarColors(5,"#DDD"),n){var o=this.getColor(e.measureStrength(n));this.setBarColors(o.idx,o.col)}},e.prototype.setBarColors=function(e,t){for(var n=0;n0&&g.endDate&&f.startDate){c=new Date(g.endDate),u=new Date(f.startDate);r.default.hasGap(c.getTime(),u.getTime())&&(f.conflictMessages.add(this.gapMessage),g.conflictMessages.add(this.gapMessage))}g=f}return this.sort(t),o},e.prototype.between=function(e,t,n){if(null==e||null==t||null==n)return!1;var o=e instanceof Date?e:this.getDateFromDateString(e),r=this.getDateFromDateString(t),i=this.getDateFromDateString(n);return o>=r&&o<=i},e.prototype.after=function(e,t){return null!=e&&null!=t&&(e instanceof Date?e:this.getDateFromDateString(e))>(t instanceof Date?t:this.getDateFromDateString(t))},e.prototype.addDay=function(e,t){var n=this.getDateFromDateString(t);return n.setDate(n.getDate()+e),this.getDateString(n)},e.prototype.sort=function(e){e.sort((function(e,t){return null==e.startDate||""===e.startDate?1:null==t.startDate||""===t.startDate?-1:new Date(e.startDate)-new Date(t.startDate)}))},e.prototype.checkExistRanges=function(e,t){var n=this,o=!1;e.forEach((function(e){e.conflictMessages||(e.conflictMessages=new Set),e.conflictMessages.delete(n.outsideExistsMessage)}));for(var i=e.filter((function(e){return!e.isDelete()})),a=t.filter((function(e){return!e.isDelete()})),l=0;lr&&(o.valid=!1,o.message=this.localizationService.decode("date.inpu.data.in.future.error.message")):t&&(o.valid=!1,o.message=this.localizationService.decode("manage.versions.date.required.message")),o},e.ɵfac=function(t){return new(t||e)(l.ɵɵinject(s.LocalizationService))},e.ɵprov=l.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.DateService=c,("undefined"==typeof ngDevMode||ngDevMode)&&l.ɵsetClassMetadata(c,[{type:o.Injectable}],(function(){return[{type:s.LocalizationService}]}),null)},113:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LocalizePipe=void 0;var o=n(0),r=(n(16),n(0)),i=n(16),a=function(){function e(e){this.service=e}return e.prototype.transform=function(e){return this.service.decode(e)},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(i.LocalizationService))},e.ɵpipe=r.ɵɵdefinePipe({name:"localize",type:e,pure:!0}),e}();t.LocalizePipe=a,("undefined"==typeof ngDevMode||ngDevMode)&&r.ɵsetClassMetadata(a,[{type:o.Pipe,args:[{name:"localize"}]}],(function(){return[{type:i.LocalizationService}]}),null)},114:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LocalizationService=void 0;var o=n(0),r=n(0),i=function(){function e(){this.locales=[],this.parser=Globalize.numberParser(),this.formatter=Globalize.numberFormatter(),this.locales=registry.locales,this.locale=registry.locale}return e.prototype.addLocale=function(e){for(var t=!1,n=0;n0?this.parser(e):null},e.prototype.formatNumber=function(e){if(null!=e){var t=e;if("string"==typeof t){if(!(t.length>0&&Number(t)))return"";t=Number(e)}return this.formatter(t)}return null},e.prototype.localize=function(e,t){return com.runwaysdk.Localize.localize(e,t)},e.prototype.get=function(e){return com.runwaysdk.Localize.get(e)},e.prototype.decode=function(e){var t=e.lastIndexOf(".");if(-1!==t){var n=[e.slice(0,t),e.slice(t+1)];return this.localize(n[0],n[1])}return this.get(e)},e.ɵfac=function(t){return new(t||e)},e.ɵprov=r.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.LocalizationService=i,("undefined"==typeof ngDevMode||ngDevMode)&&r.ɵsetClassMetadata(i,[{type:o.Injectable}],(function(){return[]}),null)},115:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EventService=void 0;var o=n(0),r=n(0),i=function(){function e(){this.listeners=[]}return e.prototype.registerListener=function(e){this.listeners.push(e)},e.prototype.deregisterListener=function(e){var t=this.listeners.indexOf(e);return-1!==t&&(this.listeners.splice(t,1),!0)},e.prototype.start=function(){for(var e=0,t=this.listeners;e0)}}function S(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"ul",7),a.ɵɵelementStart(1,"li",8),a.ɵɵelementStart(2,"a",9),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().account()})),a.ɵɵelementStart(3,"div"),a.ɵɵtext(4),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵelementStart(5,"li",10),a.ɵɵelementStart(6,"a",11),a.ɵɵelement(7,"span",12),a.ɵɵelementEnd(),a.ɵɵtemplate(8,b,16,10,"ul",13),a.ɵɵelementEnd(),a.ɵɵelementEnd()}if(2&e){var o=a.ɵɵnextContext();a.ɵɵadvance(4),a.ɵɵtextInterpolate(o.getUsername())}}var M=function(){function e(e,t,n,o){this.modalService=e,this.profileService=t,this.service=n,this.loggedIn=!0,this.context=acp,this.isAdmin=n.isAdmin(),this.isMaintainer=this.isAdmin||n.isMaintainer(),this.isContributor=this.isAdmin||this.isMaintainer||n.isContributer(),o.getLocales()?(this.locales=o.getLocales().filter((function(e){return"defaultLocale"!==e.toString})),this.defaultLocaleView=o.getLocales().filter((function(e){return"defaultLocale"===e.toString}))[0]):(this.locales=[],this.defaultLocaleView=null),this.locale=o.getLocale();for(var r=!1,i=0;i0&&n.assigned),r.ɵɵadvance(1),r.ɵɵproperty("ngIf","RA"!==n.type&&n.orgCode.length>0&&n.assigned),r.ɵɵadvance(1),r.ɵɵproperty("ngIf","RA"!==n.type&&n.orgCode.length>0&&n.assigned)}}var w=function(){return["password","certainPassword"]};function x(e,t){if(1&e){var n=r.ɵɵgetCurrentView();r.ɵɵelementStart(0,"div"),r.ɵɵelement(1,"message"),r.ɵɵelementStart(2,"form",1,2),r.ɵɵlistener("ngSubmit",(function(){r.ɵɵrestoreView(n);var e=r.ɵɵreference(3),t=r.ɵɵnextContext();return e.valid&&t.onSubmit()})),r.ɵɵelementStart(4,"fieldset"),r.ɵɵelementStart(5,"div",3),r.ɵɵelementStart(6,"h1"),r.ɵɵelement(7,"localize",4),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(8,"div",5),r.ɵɵelementStart(9,"div",6),r.ɵɵelementStart(10,"label"),r.ɵɵelement(11,"localize",7),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(12,"div",8),r.ɵɵelementStart(13,"span",9),r.ɵɵelementStart(14,"input",10),r.ɵɵlistener("ngModelChange",(function(e){return r.ɵɵrestoreView(n),r.ɵɵnextContext()._profile.firstName=e})),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(15,"div",5),r.ɵɵelementStart(16,"div",6),r.ɵɵelementStart(17,"label"),r.ɵɵelement(18,"localize",11),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(19,"div",8),r.ɵɵelementStart(20,"span",9),r.ɵɵelementStart(21,"input",12),r.ɵɵlistener("ngModelChange",(function(e){return r.ɵɵrestoreView(n),r.ɵɵnextContext()._profile.lastName=e})),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(22,"div",5),r.ɵɵelementStart(23,"div",6),r.ɵɵelementStart(24,"label"),r.ɵɵelement(25,"localize",13),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(26,"div",8),r.ɵɵelementStart(27,"span",9),r.ɵɵelementStart(28,"input",14),r.ɵɵlistener("ngModelChange",(function(e){return r.ɵɵrestoreView(n),r.ɵɵnextContext()._profile.altFirstName=e})),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(29,"div",5),r.ɵɵelementStart(30,"div",6),r.ɵɵelementStart(31,"label"),r.ɵɵelement(32,"localize",15),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(33,"div",8),r.ɵɵelementStart(34,"span",9),r.ɵɵelementStart(35,"input",16),r.ɵɵlistener("ngModelChange",(function(e){return r.ɵɵrestoreView(n),r.ɵɵnextContext()._profile.altLastName=e})),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(36,"div",5),r.ɵɵelementStart(37,"div",6),r.ɵɵelementStart(38,"label"),r.ɵɵelement(39,"localize",17),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(40,"div",8),r.ɵɵelementStart(41,"span",9),r.ɵɵelementStart(42,"input",18),r.ɵɵlistener("ngModelChange",(function(e){return r.ɵɵrestoreView(n),r.ɵɵnextContext()._profile.phoneNumber=e})),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(43,"div",5),r.ɵɵelementStart(44,"div",6),r.ɵɵelementStart(45,"label"),r.ɵɵelement(46,"localize",19),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(47,"div",8),r.ɵɵelementStart(48,"span",9),r.ɵɵelementStart(49,"input",20),r.ɵɵlistener("ngModelChange",(function(e){return r.ɵɵrestoreView(n),r.ɵɵnextContext()._profile.altPhoneNumber=e})),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(50,"div",5),r.ɵɵelementStart(51,"div",6),r.ɵɵelementStart(52,"label"),r.ɵɵelement(53,"localize",21),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(54,"div",8),r.ɵɵelementStart(55,"span",9),r.ɵɵelementStart(56,"input",22,23),r.ɵɵlistener("ngModelChange",(function(e){return r.ɵɵrestoreView(n),r.ɵɵnextContext()._profile.email=e})),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵtemplate(58,l,2,0,"div",24),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(59,"div",5),r.ɵɵelementStart(60,"div",6),r.ɵɵelementStart(61,"label"),r.ɵɵelement(62,"localize",25),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(63,"div",8),r.ɵɵelementStart(64,"span",9),r.ɵɵelementStart(65,"input",26),r.ɵɵlistener("ngModelChange",(function(e){return r.ɵɵrestoreView(n),r.ɵɵnextContext()._profile.position=e})),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(66,"div",5),r.ɵɵelementStart(67,"div",6),r.ɵɵelementStart(68,"label"),r.ɵɵelement(69,"localize",27),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(70,"div",8),r.ɵɵelementStart(71,"span",9),r.ɵɵelementStart(72,"input",28),r.ɵɵlistener("ngModelChange",(function(e){return r.ɵɵrestoreView(n),r.ɵɵnextContext()._profile.department=e})),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(73,"div",3),r.ɵɵelementStart(74,"h1"),r.ɵɵelement(75,"localize",29),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(76,"div",5),r.ɵɵelementStart(77,"div",6),r.ɵɵelementStart(78,"label"),r.ɵɵelement(79,"localize",30),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(80,"div",8),r.ɵɵelementStart(81,"span",9),r.ɵɵelementStart(82,"input",31),r.ɵɵlistener("ngModelChange",(function(e){return r.ɵɵrestoreView(n),r.ɵɵnextContext()._profile.username=e})),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵtemplate(83,s,7,0,"div",32),r.ɵɵtemplate(84,p,6,2,"div",32),r.ɵɵtemplate(85,m,19,3,"div",0),r.ɵɵelementStart(86,"div",5),r.ɵɵelementStart(87,"div",6),r.ɵɵelementStart(88,"label"),r.ɵɵelement(89,"localize",33),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(90,"div",8),r.ɵɵelementStart(91,"table",34),r.ɵɵelementStart(92,"thead"),r.ɵɵelementStart(93,"tr"),r.ɵɵelementStart(94,"th"),r.ɵɵelement(95,"localize",35),r.ɵɵelementEnd(),r.ɵɵelementStart(96,"th"),r.ɵɵelement(97,"localize",36),r.ɵɵelementEnd(),r.ɵɵelementStart(98,"th"),r.ɵɵelement(99,"localize",37),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(100,"tbody"),r.ɵɵtemplate(101,E,10,9,"tr",38),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementStart(102,"div",39),r.ɵɵelementStart(103,"div",40),r.ɵɵelementStart(104,"div",41),r.ɵɵelementStart(105,"input",42),r.ɵɵlistener("click",(function(){return r.ɵɵrestoreView(n),r.ɵɵnextContext().cancel()})),r.ɵɵpipe(106,"localize"),r.ɵɵelementEnd(),r.ɵɵelement(107,"input",43),r.ɵɵpipe(108,"localize"),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd()}if(2&e){var o=r.ɵɵreference(3),i=r.ɵɵreference(57),a=r.ɵɵnextContext();r.ɵɵadvance(2),r.ɵɵproperty("mustMatch",r.ɵɵpureFunction0(23,w)),r.ɵɵadvance(12),r.ɵɵproperty("ngModel",a._profile.firstName),r.ɵɵadvance(7),r.ɵɵproperty("ngModel",a._profile.lastName),r.ɵɵadvance(7),r.ɵɵproperty("ngModel",a._profile.altFirstName),r.ɵɵadvance(7),r.ɵɵproperty("ngModel",a._profile.altLastName),r.ɵɵadvance(7),r.ɵɵproperty("ngModel",a._profile.phoneNumber),r.ɵɵadvance(7),r.ɵɵproperty("ngModel",a._profile.altPhoneNumber),r.ɵɵadvance(7),r.ɵɵproperty("ngModel",a._profile.email),r.ɵɵadvance(2),r.ɵɵproperty("ngIf",null==i.errors?null:i.errors.email),r.ɵɵadvance(7),r.ɵɵproperty("ngModel",a._profile.position),r.ɵɵadvance(7),r.ɵɵproperty("ngModel",a._profile.department),r.ɵɵadvance(10),r.ɵɵproperty("ngModel",a._profile.username),r.ɵɵadvance(1),r.ɵɵproperty("ngIf",null!=a._profile.externalSystemOid&&""!==a._profile.externalSystemOid),r.ɵɵadvance(1),r.ɵɵproperty("ngIf",null==a._profile.externalSystemOid||""===a._profile.externalSystemOid),r.ɵɵadvance(1),r.ɵɵproperty("ngIf",a._profile.changePassword),r.ɵɵadvance(16),r.ɵɵproperty("ngForOf",a.roles),r.ɵɵadvance(4),r.ɵɵproperty("value",r.ɵɵpipeBind1(106,19,"dataset.cancel")),r.ɵɵadvance(2),r.ɵɵproperty("value",r.ɵɵpipeBind1(108,21,"dataset.submit"))("disabled",!o.valid)}}var O=function(){function e(e,t,n){this.service=e,this.bsModalRef=t,this.authService=n,this._profile={oid:"",username:"",password:"",firstName:"",lastName:"",email:"",changePassword:!1},this.roles=[]}return Object.defineProperty(e.prototype,"profile",{set:function(e){this._profile=e,this.getRoles()},enumerable:!1,configurable:!0}),e.prototype.getRoles=function(){var e=this;this.service.getRolesForUser(this._profile.oid).then((function(t){e.roles=t}))},e.prototype.onSubmit=function(){var e=this;this._profile.changePassword||delete this._profile.password,this.service.apply(this._profile).then((function(t){e.bsModalRef.hide()}))},e.prototype.onChangePassword=function(){this._profile.changePassword=!this._profile.changePassword},e.prototype.getRolesArray=function(){return this.authService.getRoles()},e.prototype.cancel=function(){var e=this;this.service.unlock(this._profile.oid).then((function(t){e.bsModalRef.hide()}))},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(i.ProfileService),r.ɵɵdirectiveInject(a.BsModalRef),r.ɵɵdirectiveInject(i.AuthService))},e.ɵcmp=r.ɵɵdefineComponent({type:e,selectors:[["profile"]],inputs:{profile:"profile"},decls:1,vars:1,consts:[[4,"ngIf"],[1,"modal-form",2,"background","none","border","none",3,"mustMatch","ngSubmit"],["form","ngForm"],[1,"heading","text-center"],["key","profile.heading"],[1,"row-holder"],[1,"label-holder"],["key","account.firstname"],[1,"holder"],[1,"text"],["type","text","name","firstname","required","",3,"ngModel","ngModelChange"],["key","account.lastname"],["type","text","name","lastname","required","",3,"ngModel","ngModelChange"],["key","account.altFirstname"],["type","text","name","altFirstname",3,"ngModel","ngModelChange"],["key","account.altLastname"],["type","text","name","altLastname",3,"ngModel","ngModelChange"],["key","account.phonenumber"],["type","text","name","phoneNumber",3,"ngModel","ngModelChange"],["key","account.altPhonenumber"],["type","text","name","altPhoneNumber",3,"ngModel","ngModelChange"],["key","account.email"],["type","text","name","email","required","","email","",3,"ngModel","ngModelChange"],["aemail","ngModel"],["style","float:none;","class","inline-error-message",4,"ngIf"],["key","account.position"],["type","text","name","position",3,"ngModel","ngModelChange"],["key","account.department"],["type","text","name","department",3,"ngModel","ngModelChange"],["key","account.info.heading"],["key","account.profile.username"],["type","text","name","username","required","",3,"ngModel","ngModelChange"],["class","row-holder",4,"ngIf"],["key","com.runwaysdk.ui.userstable.UsersTable.adminRoles"],[1,"table"],["key","profile.roles.role.table.heading"],["key","profile.roles.organization.table.heading"],["key","profile.roles.geoobjecttype.table.heading"],[4,"ngFor","ngForOf"],[1,"row"],[1,"col-md-12"],[1,"button-holder"],["type","button",1,"btn","btn-default",3,"value","click"],["type","submit",1,"btn","btn-primary",3,"value","disabled"],[1,"inline-error-message",2,"float","none"],["key","account.email.validation"],["key","account.profile.oauth"],["key","account.profile.isOauth"],[2,"text-align","left"],["type","button","class","btn btn-primary",3,"value","click",4,"ngIf"],["type","button","class","btn btn-default",3,"value","click",4,"ngIf"],["type","button",1,"btn","btn-primary",3,"value","click"],["key","account.password"],["type","password","name","password","required","","minlength","5","maxlength","50",3,"ngModel","ngModelChange"],["password","ngModel"],[3,"passwordToCheck"],["key","account.certainPassword"],["type","password","ngModel","","name","certainPassword"],["certainPassword","ngModel"],["key","account.certainPassword.validation"]],template:function(e,t){1&e&&r.ɵɵtemplate(0,x,109,24,"div",0),2&e&&r.ɵɵproperty("ngIf",t._profile)},styles:[".modal-form[_ngcontent-%COMP%] .check-block[_ngcontent-%COMP%] .chk-area[_ngcontent-%COMP%] { margin: 10px 0px 0 0;}"]}),e}();t.ProfileComponent=O,("undefined"==typeof ngDevMode||ngDevMode)&&r.ɵsetClassMetadata(O,[{type:o.Component,args:[{selector:"profile",templateUrl:"./profile.component.html",styles:[".modal-form .check-block .chk-area { margin: 10px 0px 0 0;}"]}]}],(function(){return[{type:i.ProfileService},{type:a.BsModalRef},{type:i.AuthService}]}),{profile:[{type:o.Input,args:["profile"]}]})},153:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RegistryRoleType=t.RegistryRole=t.RoleBuilder=t.LocalizedValue=t.PageResult=t.OAuthServer=t.ExternalSystem=t.Organization=t.LocaleView=t.LocaleValue=void 0;var o=function(e,t){this.locale=e,this.value=t};t.LocaleValue=o;var r=function(e){this.label=e.create(),this.toString="",this.tag="",this.isDefaultLocale=!1,this.language={label:"",code:""},this.country={label:"",code:""},this.variant={label:"",code:""}};t.LocaleView=r;var i=function(){};t.Organization=i;var a=function(){};t.ExternalSystem=a;var l=function(){};t.OAuthServer=l;var s=function(){};t.PageResult=s;var c=function(){function e(e,t){this.localizedValue=e,this.localeValues=t}return e.prototype.getValue=function(e){for(var t=this.localeValues.length,n=0;n0))},directives:[a.NgIf,a.NgForOf,a.NgClass],styles:[".step-indicator[_ngcontent-%COMP%] .nav-item[_ngcontent-%COMP%] {\n height: 50px;\n background: white;\n text-align: center;\n vertical-align: middle;\n border-bottom: 4px solid lightgrey;\n font-size: 18px;\n color: lightgrey;\n padding: 10px;\n}\n.step-indicator[_ngcontent-%COMP%] .nav-item.active[_ngcontent-%COMP%]{\n \n cursor: pointer;\n}\n.step-indicator[_ngcontent-%COMP%] .nav-item.active.enabled[_ngcontent-%COMP%]{\n \n border-bottom: 4px solid black;\n font-weight: bold;\n color: black;\n}\n\n.nav.nav-justified[_ngcontent-%COMP%] {\n margin-top: 5px;\n}"]}),e}();t.ModalStepIndicatorComponent=d,("undefined"==typeof ngDevMode||ngDevMode)&&r.ɵsetClassMetadata(d,[{type:o.Component,args:[{selector:"modal-step-indicator",templateUrl:"./modal-step-indicator.component.html",styleUrls:["./modal-step-indicator.css"]}]}],(function(){return[{type:i.ModalStepIndicatorService}]}),null)},156:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ProgressBarComponent=void 0;var o=n(0),r=(n(16),n(0)),i=n(16),a=n(1),l=n(126);function s(e,t){if(1&e&&(r.ɵɵelementStart(0,"div",1),r.ɵɵelementStart(1,"div",2),r.ɵɵelementStart(2,"progressbar",3),r.ɵɵelementStart(3,"i"),r.ɵɵtext(4),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd()),2&e){var n=r.ɵɵnextContext();r.ɵɵadvance(2),r.ɵɵproperty("max",n.prog.total)("value",n.prog.current),r.ɵɵadvance(2),r.ɵɵtextInterpolate(n.prog.description)}}var c=function(){function e(e){this.service=e,this.showIndicator=!0,this.prog={current:0,total:1,description:"Initializing"}}return e.prototype.ngOnInit=function(){this.service.registerListener(this)},e.prototype.ngOnDestroy=function(){this.service.deregisterListener(this)},e.prototype.start=function(){this.prog={current:0,total:1,description:"Initializing"},this.showIndicator=!0},e.prototype.progress=function(e){this.prog=e},e.prototype.complete=function(){this.showIndicator=!1},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(i.ProgressService))},e.ɵcmp=r.ɵɵdefineComponent({type:e,selectors:[["progress-bar"]],decls:1,vars:1,consts:[["class","progress-overlay","style","height: 100%; width: 100%;",4,"ngIf"],[1,"progress-overlay",2,"height","100%","width","100%"],[1,"progress-div"],[1,"progress-striped","active",3,"max","value"]],template:function(e,t){1&e&&r.ɵɵtemplate(0,s,5,3,"div",0),2&e&&r.ɵɵproperty("ngIf",t.showIndicator)},directives:[a.NgIf,l.ProgressbarComponent],styles:[".progress-overlay[_ngcontent-%COMP%] { background-color: #CCCCCC; position: absolute; display: block;opacity: 0.8;z-index: 99999 !important;}",".progress-div[_ngcontent-%COMP%] { width: 100%; margin-left: 0; padding-left: 25%; padding-right: 25%; margin-top: 30% }"]}),e}();t.ProgressBarComponent=c,("undefined"==typeof ngDevMode||ngDevMode)&&r.ɵsetClassMetadata(c,[{type:o.Component,args:[{selector:"progress-bar",templateUrl:"./progress-bar.component.html",styles:[".progress-overlay { background-color: #CCCCCC; position: absolute; display: block;opacity: 0.8;z-index: 99999 !important;}",".progress-div { width: 100%; margin-left: 0; padding-left: 25%; padding-right: 25%; margin-top: 30% }"]}]}],(function(){return[{type:i.ProgressService}]}),null)},157:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ExternalSystemService=void 0;var o=n(0),r=n(34),i=n(32),a=(n(16),n(0)),l=n(34),s=n(16),c=function(){function e(e,t){this.http=e,this.eventService=t}return e.prototype.getExternalSystems=function(e,t){var n=this,o=new r.HttpParams;return o=(o=o.set("pageNumber",e.toString())).set("pageSize",t.toString()),this.eventService.start(),this.http.get(acp+"/external-system/get-all",{params:o}).pipe(i.finalize((function(){n.eventService.complete()}))).toPromise()},e.prototype.getExternalSystem=function(e){var t=this,n=new r.HttpParams;return n=n.set("oid",e),this.eventService.start(),this.http.get(acp+"/external-system/get",{params:n}).pipe(i.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.applyExternalSystem=function(e){var t=this,n=new r.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/external-system/apply",JSON.stringify({system:e}),{headers:n}).pipe(i.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.getSystemCapabilities=function(e){var t=this,n=new r.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/external-system/system-capabilities",JSON.stringify({system:e}),{headers:n}).pipe(i.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.removeExternalSystem=function(e){var t=this,n=new r.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/external-system/remove",JSON.stringify({oid:e}),{headers:n}).pipe(i.finalize((function(){t.eventService.complete()}))).toPromise()},e.ɵfac=function(t){return new(t||e)(a.ɵɵinject(l.HttpClient),a.ɵɵinject(s.EventService))},e.ɵprov=a.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.ExternalSystemService=c,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(c,[{type:o.Injectable}],(function(){return[{type:l.HttpClient},{type:s.EventService}]}),null)},158:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ModalStepIndicatorService=void 0;var o=n(0),r=n(31),i=n(0),a=function(){function e(){this.modalStepChangedSource=new r.Subject,this.modalStepChange=this.modalStepChangedSource.asObservable()}return e.prototype.getStepConfig=function(){return this.stepConfig},e.prototype.setStepConfig=function(e){this.stepConfig=e,this.modalStepChangedSource.next(this.stepConfig)},e.prototype.getStep=function(){return this.step},e.prototype.setStep=function(e){this.step=e},e.ɵfac=function(t){return new(t||e)},e.ɵprov=i.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.ModalStepIndicatorService=a,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(a,[{type:o.Injectable}],(function(){return[]}),null)},159:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OrganizationService=void 0;var o=n(0),r=n(34),i=n(32),a=(n(16),n(0)),l=n(34),s=n(16),c=function(){function e(e,t){this.http=e,this.eventService=t}return e.prototype.getOrganizations=function(){var e=this;return this.eventService.start(),this.http.get(acp+"/cgr/organizations/get-all").pipe(i.finalize((function(){e.eventService.complete()}))).toPromise()},e.prototype.updateOrganization=function(e){var t=this,n=new r.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/cgr/orgainization/update",JSON.stringify({json:e}),{headers:n}).pipe(i.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.newOrganization=function(e){var t=this,n=new r.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/cgr/orgainization/create",JSON.stringify({json:e}),{headers:n}).pipe(i.finalize((function(){t.eventService.complete()}))).toPromise()},e.prototype.removeOrganization=function(e){var t=this,n=new r.HttpHeaders({"Content-Type":"application/json"});return this.eventService.start(),this.http.post(acp+"/cgr/orgainization/delete",JSON.stringify({code:e}),{headers:n}).pipe(i.finalize((function(){t.eventService.complete()}))).toPromise()},e.ɵfac=function(t){return new(t||e)(a.ɵɵinject(l.HttpClient),a.ɵɵinject(s.EventService))},e.ɵprov=a.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.OrganizationService=c,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(c,[{type:o.Injectable}],(function(){return[{type:l.HttpClient},{type:s.EventService}]}),null)},16:function(e,t,n){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,n,o){void 0===o&&(o=n),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,o){void 0===o&&(o=n),e[o]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||o(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.services=void 0;var i=n(87),a=n(115),l=n(157),s=n(123),c=n(114),d=n(158),p=n(159),u=n(160),m=n(161),g=n(162),f=n(163),v=n(112);t.services=[i.AuthService,a.EventService,l.ExternalSystemService,s.AdminGuard,s.AuthGuard,s.ContributerGuard,s.MaintainerGuard,c.LocalizationService,d.ModalStepIndicatorService,p.OrganizationService,u.PendingChangesGuard,m.ProfileService,g.ProgressService,f.SessionService,v.DateService],r(n(87),t),r(n(115),t),r(n(157),t),r(n(123),t),r(n(114),t),r(n(158),t),r(n(159),t),r(n(160),t),r(n(161),t),r(n(162),t),r(n(163),t),r(n(112),t)},160:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PendingChangesGuard=void 0;var o=n(0),r=n(0),i=function(){function e(){}return e.prototype.canDeactivate=function(e){if(!e.canDeactivate()){var t=confirm("WARNING: You have unsaved changes. Press Cancel to go back and save these changes, or OK to lose these changes.");return e.afterDeactivate(t),t}return!0},e.ɵfac=function(t){return new(t||e)},e.ɵprov=r.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.PendingChangesGuard=i,("undefined"==typeof ngDevMode||ngDevMode)&&r.ɵsetClassMetadata(i,[{type:o.Injectable}],null,null)},161:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ProfileService=void 0;var o=n(0),r=n(34),i=n(0),a=n(34),l=function(){function e(e){this.http=e}return e.prototype.get=function(){var e=new r.HttpHeaders({"Content-Type":"application/json"});return this.http.post(acp+"/registryaccount/get",{headers:e}).toPromise()},e.prototype.apply=function(e){var t=new r.HttpHeaders({"Content-Type":"application/json"});return this.http.post(acp+"/registryaccount/apply",JSON.stringify({account:e}),{headers:t}).toPromise()},e.prototype.unlock=function(e){var t=new r.HttpHeaders({"Content-Type":"application/json"});return this.http.post(acp+"/registryaccount/unlock",JSON.stringify({oid:e}),{headers:t}).toPromise()},e.prototype.setLocale=function(e){var t=new r.HttpHeaders({"Content-Type":"application/json"});return this.http.post(acp+"/localization/set-locale",JSON.stringify({locale:e}),{headers:t}).toPromise()},e.prototype.getRolesForUser=function(e){var t=new r.HttpHeaders({"Content-Type":"application/json"});return this.http.post(acp+"/registryaccount/getRolesForUser",{userOID:e},{headers:t}).toPromise()},e.ɵfac=function(t){return new(t||e)(i.ɵɵinject(a.HttpClient))},e.ɵprov=i.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.ProfileService=l,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(l,[{type:o.Injectable}],(function(){return[{type:a.HttpClient}]}),null)},162:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ProgressService=void 0;var o=n(0),r=n(0),i=function(){function e(){this.listeners=[]}return e.prototype.registerListener=function(e){this.listeners.push(e)},e.prototype.deregisterListener=function(e){var t=this.listeners.indexOf(e);return-1!==t&&(this.listeners.splice(t,1),!0)},e.prototype.start=function(){for(var e=0,t=this.listeners;e0&&(e.oauthServers=t)})).catch((function(t){e.error(t)})),this.sub=this.route.params.subscribe((function(t){if(null!=t.errorMsg){e.bsModalRef=e.modalService.show(r.ErrorModalComponent,{backdrop:!0});var n=t.errorMsg.replaceAll("+"," ");e.bsModalRef.content.message=n}}))},e.prototype.onClickDhis2=function(e){null==e?1==this.oauthServers.length?window.location.href=this.oauthServers[0].url:this.viewOauthServers=!this.viewOauthServers:window.location.href=e},e.prototype.onSubmit=function(){var e=this;this.service.login(this.username,this.password).then((function(t){e.hService.applications().then((function(t){1==t.length?e.open(t[0]):e.router.navigate(["/menu/true"])}))})).catch((function(t){e.error(t)}))},e.prototype.open=function(e){window.location.href=this.context+"/"+e.url},e.prototype.error=function(e){this.bsModalRef=r.ErrorHandler.showErrorAsDialog(e,this.modalService)},e.ɵfac=function(t){return new(t||e)(i.ɵɵdirectiveInject(a.SessionService),i.ɵɵdirectiveInject(l.HubService),i.ɵɵdirectiveInject(s.BsModalService),i.ɵɵdirectiveInject(c.Router),i.ɵɵdirectiveInject(c.ActivatedRoute))},e.ɵcmp=i.ɵɵdefineComponent({type:e,selectors:[["login"]],decls:33,vars:10,consts:[["id","login-page",1,"new-admin-design-main"],[1,"vertical-center"],["id","app-container",1,"container"],[1,"row"],[1,"col-md-3","col-sm-4","col-xs-2"],[1,"col-md-6","col-sm-4","col-xs-8"],[1,"row",2,"margin-bottom","25px"],[1,"col-md-12"],[1,"heading","text-center"],["id","login-form",1,"login",3,"ngSubmit"],["form","ngForm"],["id","login-input-container"],["name","username","type","text","id","login","required","",3,"ngModel","placeholder","ngModelChange"],["name","password","type","password","id","password","required","",3,"ngModel","placeholder","ngModelChange"],["routerLink","/forgotpassword",1,"forgot-password"],["key","login.forgotPassword"],[1,"btn-holder","text-right"],["type","submit","id","login-btn",1,"btn","btn-primary",3,"disabled"],["key","login.button"],["class","row",4,"ngIf"],[1,"col-md-12","text-center"],[1,"oauth-or-line-block"],[1,"oauth-or-text"],["key","login.oauth.or.label"],[1,"dhis2-login-button",3,"click"],[1,"dhis2-login-button-text"],["key","login.oauth.loginwith.label"],["src","../dist/assets/dhis2-logo.f59cbafa7a88d5e9addba95ec74000d1.png",1,"dhis2-login-button-image"],["style","margin-top: 20px;",4,"ngIf"],[2,"margin-top","20px"],["name","externalSystemOid",3,"change"],[3,"value",4,"ngFor","ngForOf"],[3,"value"]],template:function(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"div",0),i.ɵɵelement(1,"login-header"),i.ɵɵelement(2,"loading-bar"),i.ɵɵelement(3,"message"),i.ɵɵelementStart(4,"div",1),i.ɵɵelementStart(5,"div",2),i.ɵɵelementStart(6,"div",3),i.ɵɵelement(7,"div",4),i.ɵɵelementStart(8,"div",5),i.ɵɵelementStart(9,"div",6),i.ɵɵelementStart(10,"div",7),i.ɵɵelementStart(11,"div",8),i.ɵɵelement(12,"h2"),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(13,"div",3),i.ɵɵelementStart(14,"div",7),i.ɵɵelementStart(15,"form",9,10),i.ɵɵlistener("ngSubmit",(function(){return i.ɵɵrestoreView(n),i.ɵɵreference(16).valid&&t.onSubmit()})),i.ɵɵelementStart(17,"div",11),i.ɵɵelementStart(18,"div",3),i.ɵɵelementStart(19,"div",7),i.ɵɵelementStart(20,"input",12),i.ɵɵlistener("ngModelChange",(function(e){return t.username=e})),i.ɵɵpipe(21,"localize"),i.ɵɵelementEnd(),i.ɵɵelementStart(22,"input",13),i.ɵɵlistener("ngModelChange",(function(e){return t.password=e})),i.ɵɵpipe(23,"localize"),i.ɵɵelementEnd(),i.ɵɵelementStart(24,"a",14),i.ɵɵelement(25,"localize",15),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(26,"div",3),i.ɵɵelementStart(27,"div",7),i.ɵɵelementStart(28,"div",16),i.ɵɵelementStart(29,"button",17),i.ɵɵelement(30,"localize",18),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵtemplate(31,C,13,1,"div",19),i.ɵɵelementEnd(),i.ɵɵelement(32,"div",4),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd()}if(2&e){var o=i.ɵɵreference(16);i.ɵɵadvance(20),i.ɵɵproperty("ngModel",t.username)("placeholder",i.ɵɵpipeBind1(21,6,"login.username")),i.ɵɵadvance(2),i.ɵɵproperty("ngModel",t.password)("placeholder",i.ɵɵpipeBind1(23,8,"login.password")),i.ɵɵadvance(7),i.ɵɵproperty("disabled",!o.valid),i.ɵɵadvance(2),i.ɵɵproperty("ngIf",t.oauthServers)}},directives:[d.LoginHeaderComponent,p.LoadingBarComponent,u.MessageComponent,m.ɵangular_packages_forms_forms_ba,m.NgControlStatusGroup,m.NgForm,m.DefaultValueAccessor,m.RequiredValidator,m.NgControlStatus,m.NgModel,c.RouterLinkWithHref,g.LocalizeComponent,f.NgIf,m.NgSelectOption,m.ɵangular_packages_forms_forms_z,f.NgForOf],pipes:[v.LocalizePipe],styles:['#container[_ngcontent-%COMP%] {\n \n margin: 0;\n height: 100%; \n overflow: hidden;\n}\n\n #login-page[_ngcontent-%COMP%] {\n background-size: 100%;\n background-repeat: no-repeat;\n -webkit-background-size: cover;\n -moz-background-size: cover;\n -o-background-size: cover;\n background-size: cover;\n }\n\n.vertical-center[_ngcontent-%COMP%] {\n min-height: 100%;\n min-height: calc(100vh - 164px);\n display: flex;\n align-items: center;\n}\n\nh1[_ngcontent-%COMP%] {\n color: maroon;\n margin-left: 40px;\n}\n\n#logo[_ngcontent-%COMP%]{\n margin-left: 50px;\n width: 160px;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n}\n\n#logo_gp[_ngcontent-%COMP%] {\n display: block;\n margin: 0 auto;\n width: 200px;\n}\n\n.dhis2-login-button[_ngcontent-%COMP%] {\n\tbackground-color:#1d5288;\n\tborder-color: #1c558e;\n\tborder-radius:5px;\n\tmargin-bottom:5px;\n\tpadding: 10px;\n}\n.dhis2-login-button[_ngcontent-%COMP%]:hover {\n\tbackground-color: #2261a0;\n}\n\n.dhis2-login-button-text[_ngcontent-%COMP%] {\n\tcolor:white;\n\tfont-size:18px;\n\tvertical-align:middle;\n}\n\n.dhis2-login-button-image[_ngcontent-%COMP%] {\n\theight: 30px;\n\tmargin-left: 10px;\n}\n\nspan.oauth-or-text[_ngcontent-%COMP%] {\n\tfont-size:19px;\n\tcolor:darkgray;\n}\n\nspan.oauth-or-line[_ngcontent-%COMP%] {\n width: 45%;\n height: 47px;\n border-bottom: 1px solid darkgray;\n display: inline-block;\n margin-bottom: 7px;\n}\n\nh4.oauth-or-line-block[_ngcontent-%COMP%] {\n\tmargin-bottom:50px;\n\tmargin-top:50px;\n\tborder-bottom: 1px solid #000; \n line-height: 0.1em;\n}\nh4.oauth-or-line-block[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n\tbackground:#fff; \n padding:0 10px; \n}\n\n\n\na[_ngcontent-%COMP%]:link {\n color: grey;\n text-decoration: none;\n font-size: 18px;\n}\n\n\na[_ngcontent-%COMP%]:visited {\n color: grey;\n}\n\n\na[_ngcontent-%COMP%]:hover {\n color: darkgrey;\n}\n\n\na[_ngcontent-%COMP%]:active {\n color: darkgrey;\n}\n\n\n#login-form[_ngcontent-%COMP%] input[type="text"][_ngcontent-%COMP%]{\n float:left;\n width:100%;\n margin-bottom: 5px;\n}\n#login-form[_ngcontent-%COMP%] input[type="password"][_ngcontent-%COMP%]{\n float:left;\n width:100%;\n}\n#login-form[_ngcontent-%COMP%] [_ngcontent-%COMP%]::-webkit-input-placeholder{color:#999;}\n#login-form[_ngcontent-%COMP%] [_ngcontent-%COMP%]:-ms-input-placeholder{color:#999;}\n#login-form[_ngcontent-%COMP%] [_ngcontent-%COMP%]:-moz-placeholder{color:#999;}\n#login-form[_ngcontent-%COMP%] [_ngcontent-%COMP%]::-moz-placeholder{\n color:#999;\n opacity:1\n}\n#login-form[_ngcontent-%COMP%] [_ngcontent-%COMP%]:focus::-webkit-input-placeholder{color:#ccc;}\n#login-form[_ngcontent-%COMP%] [_ngcontent-%COMP%]:focus:-ms-input-placeholder{color:#ccc;}\n#login-form[_ngcontent-%COMP%] [_ngcontent-%COMP%]:focus:-moz-placeholder{color:#ccc;}\n#login-form[_ngcontent-%COMP%] [_ngcontent-%COMP%]:focus::-moz-placeholder{color:#ccc;}\n#login-form[_ngcontent-%COMP%] .field-error[_ngcontent-%COMP%] input[type="text"][_ngcontent-%COMP%]:focus, #login-form[_ngcontent-%COMP%] .field-error[_ngcontent-%COMP%] input[type="text"][_ngcontent-%COMP%]:active, #login-form[_ngcontent-%COMP%] .field-error[_ngcontent-%COMP%] input[type="text"][_ngcontent-%COMP%]{\n border-color:#6BA542;\n background:#f8f8f8;\n}\n#login-form[_ngcontent-%COMP%] .field-error[_ngcontent-%COMP%] input[type="password"][_ngcontent-%COMP%]{\n border-color:#e09999;\n background:#f8f8f8;\n}\n#login-form[_ngcontent-%COMP%] input[type="text"][disabled][_ngcontent-%COMP%]{\n border-color:#e4e4e4;\n background:#f8f8f8;\n}\n#login-form[_ngcontent-%COMP%] [disabled][_ngcontent-%COMP%]::-webkit-input-placeholder{color:#d2d2d2;}\n#login-form[_ngcontent-%COMP%] [disabled][_ngcontent-%COMP%]:-ms-input-placeholder{color:#d2d2d2;}\n#login-form[_ngcontent-%COMP%] [disabled][_ngcontent-%COMP%]:-moz-placeholder{color:#d2d2d2;}\n#login-form[_ngcontent-%COMP%] [disabled][_ngcontent-%COMP%]::-moz-placeholder{color:#d2d2d2;}\n#login-form[_ngcontent-%COMP%] .error-message[_ngcontent-%COMP%]{\n float:left;\n padding:6px 0 0;\n font-size:15px;\n line-height:18px;\n color:#FF0000;\n width:100%;\n word-wrap: break-word;\n text-align: left;\n}\n\n#login-form[_ngcontent-%COMP%] .error-message[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{\n margin: 0;\n margin-top: 10px;\n}\n\n.forgot-password[_ngcontent-%COMP%] {\n float: left;\n color: white;\n margin: 10px;\n cursor: pointer;\n}\n\n\n\n\n\n\n\n\n\n\n\n.login-button[_ngcontent-%COMP%]{\n text-decoration: none;\n border: none;\n background-color: transparent;\n color: white;\n cursor: pointer;\n font-size: 16px;\n}\n\n.login-button[_ngcontent-%COMP%]:hover{\n color: #00bfff;\n}\n\n.login-submit[_ngcontent-%COMP%]{\n margin: 0 0 0 0;\n position: absolute;\n right: 25px;\n\n position: absolute;\n top: 40%;\n transform: translateY(-50%);\n}\n\n#geoprism-landing-footer[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{\n color: white;\n text-align: center;\n margin-top: 42px;\n}\n\n#background-img[_ngcontent-%COMP%]{\n width: 100%; \n margin-top: 100px;\n}\n\n\n.error-message[_ngcontent-%COMP%]{\n color: red;\n text-align: center;\n}\n\ni.fa.fa-sign-in[_ngcontent-%COMP%]{\n vertical-align: middle;\n}\n\ni.fa.fa-sign-in[_ngcontent-%COMP%]::before{\n margin-right: 6px;\n font-size: 25px;\n vertical-align: middle;\n}']}),e}();t.LoginComponent=b,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(b,[{type:o.Component,args:[{selector:"login",templateUrl:"./login.component.html",styleUrls:["./login.component.css"]}]}],(function(){return[{type:a.SessionService},{type:l.HubService},{type:s.BsModalService},{type:c.Router},{type:c.ActivatedRoute}]}),null)},191:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HubComponent=void 0;var o=n(0),r=(n(33),n(30),n(16),n(89),n(0)),i=n(89),a=n(16),l=n(30),s=n(33),c=n(122),d=n(86),p=n(1),u=n(68);function m(e,t){1&e&&(r.ɵɵelementStart(0,"div",8),r.ɵɵelement(1,"localize",9),r.ɵɵelementEnd())}function g(e,t){1&e&&r.ɵɵelement(0,"div",10)}function f(e,t){if(1&e&&(r.ɵɵelementStart(0,"div",5),r.ɵɵtemplate(1,m,2,0,"div",6),r.ɵɵtemplate(2,g,1,0,"div",7),r.ɵɵelementEnd()),2&e){var n=r.ɵɵnextContext();r.ɵɵadvance(1),r.ɵɵproperty("ngIf",!n.loading&&0==n.authService.getRoles().length),r.ɵɵadvance(1),r.ɵɵproperty("ngIf",n.loading)}}function v(e,t){if(1&e){var n=r.ɵɵgetCurrentView();r.ɵɵelementStart(0,"div",19),r.ɵɵlistener("click",(function(){r.ɵɵrestoreView(n);var e=r.ɵɵnextContext().$implicit;return r.ɵɵnextContext(4).open(e)})),r.ɵɵelementStart(1,"div",20),r.ɵɵelement(2,"img",21),r.ɵɵelementStart(3,"h3",22),r.ɵɵtext(4),r.ɵɵelementEnd(),r.ɵɵelementEnd(),r.ɵɵelementEnd()}if(2&e){var o=r.ɵɵnextContext().$implicit,i=r.ɵɵnextContext(4);r.ɵɵadvance(1),r.ɵɵproperty("id",o.oid),r.ɵɵadvance(1),r.ɵɵproperty("src",i.context+"/"+o.src,r.ɵɵsanitizeUrl),r.ɵɵadvance(2),r.ɵɵtextInterpolate(o.label)}}function h(e,t){1&e&&r.ɵɵelement(0,"div",23)}function y(e,t){1&e&&r.ɵɵelement(0,"div",23)}function C(e,t){if(1&e&&(r.ɵɵelementStart(0,"div"),r.ɵɵtemplate(1,v,5,3,"div",17),r.ɵɵtemplate(2,h,1,0,"div",18),r.ɵɵtemplate(3,y,1,0,"div",18),r.ɵɵelementEnd()),2&e){var n=t.index,o=r.ɵɵnextContext(2).index,i=r.ɵɵnextContext(2);r.ɵɵadvance(1),r.ɵɵproperty("ngIf",n>=o&&n0&&!t.loading))},directives:[c.CgrHeaderComponent,d.LoadingBarComponent,p.NgIf,u.LocalizeComponent,p.NgForOf],styles:[".body[_ngcontent-%COMP%] {\n background-color: white;\n margin: 0;\n min-width: 100%;\n}\n\n.new-admin-design-main[_ngcontent-%COMP%] {\n height: 100%;\n overflow-y: auto;\n}\n\n.body[_ngcontent-%COMP%], #container[_ngcontent-%COMP%] {\n height: 100vh; \n overflow: hidden;\n}\n \n#container[_ngcontent-%COMP%]{\n height: 100%; \n background-color: white;\n margin: 0;\n min-width: 100%; \n}\n\n#app-container[_ngcontent-%COMP%] {\n background-image: url(../net/geoprism/images/homebackground.jpg);\n background-size: cover;\n background-repeat: no-repeat;\n \n min-height:100%;\n}\n\nh1[_ngcontent-%COMP%] {\n color: maroon;\n margin-left: 40px;\n} \n\n#header-link-container[_ngcontent-%COMP%]{\n height: 30px;\n}\n\n#logo-icon[_ngcontent-%COMP%]{\n height: 100%;\n display: inline-block;\n}\n\n#logo[_ngcontent-%COMP%]{\n max-height: 100px;\n}\n\n#user-link-container[_ngcontent-%COMP%]{\n vertical-align: middle;\n margin: 0;\n padding: 0;\n display: inline-block;\n}\n\n\n#geodash-landing-top-div[_ngcontent-%COMP%]{\n border-bottom: grey solid 3px;\n height: 30vh; \n position: relative;\n background-color: #333;\n}\n\n#geodash-landing-bottom-div[_ngcontent-%COMP%]{\n overflow: hidden;\n height: 100vh;\n overflow-y: auto;\n \n \n \n\n}\n \n#geodash-landing-footer[_ngcontent-%COMP%]{\n height: 100px;\n background-color: #019edc;\n bottom: 0px;\n position: absolute;\n width: 100%;\n opacity: 0.6;\n filter: alpha(opacity=60); \n}\n \n#geodash-landing-footer[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{\n color: white;\n text-align: center;\n margin-top: 42px;\n}\n\n#background-img[_ngcontent-%COMP%]{\n width: 100%; \n margin-top: 100px;\n}\n\n#mask[_ngcontent-%COMP%]{\n background-color: white;\n width: 100%;\n height: 100%;\n position: absolute;\n opacity: 0.70;\n filter: alpha(opacity=70); \n}\n\n#option-container[_ngcontent-%COMP%]{\n top: 50%;\n margin: 0 auto;\n margin-left: -401px;\n left: 50%;\n position: absolute;\n width: 650px;\n}\n\n.nav-option-wrapper[_ngcontent-%COMP%] {\n background-color: #DBD7A5;\n \n}\n\n.nav-icon-img[_ngcontent-%COMP%]{\n \n \n cursor: pointer;\n background-color: white;\n}\n.nav-icon-img[_ngcontent-%COMP%]:hover{\n border: solid grey 3px;\n}\n\n.nav-icon-img-description[_ngcontent-%COMP%] {\n text-align: left;\n padding: 10px;\n}\n\n.nav-icon-img-label[_ngcontent-%COMP%]{\n text-align: center;\n margin-top: 10px;\n color: #3E2A5A;\n font-size: 21px;\n display: inline-block;\n padding: 5px;\n}\n\n#dashboard-link[_ngcontent-%COMP%]{\n cursor: pointer;\n}\n\n#header[_ngcontent-%COMP%]{\n padding: 10px;\n height: 100%\n}\n\n.user-command-link[_ngcontent-%COMP%]{\n color: white;\n padding: 5px;\n font-size: 15px;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.error-message[_ngcontent-%COMP%]{\n color: red;\n text-align: center;\n}\n\n.vertical-center-row[_ngcontent-%COMP%]{\n margin-top: 5%;\n}\n\n.nav-icon-container[_ngcontent-%COMP%]{\n vertical-align: middle;\n width: 100%;\n height: 75%;\n}\n\n.header-logo-row[_ngcontent-%COMP%]{\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n}"]}),e}();t.HubComponent=E,("undefined"==typeof ngDevMode||ngDevMode)&&r.ɵsetClassMetadata(E,[{type:o.Component,args:[{selector:"hub",templateUrl:"./hub.component.html",styleUrls:["./hub.component.css"]}]}],(function(){return[{type:i.HubService},{type:a.AuthService},{type:l.BsModalService},{type:s.Router},{type:s.ActivatedRoute}]}),null)},192:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ForgotPasswordComponent=void 0;var o=n(0),r=(n(33),n(1),n(118),n(111)),i=n(0),a=n(118),l=n(33),s=n(1),c=n(97),d=n(86),p=n(22),u=n(68),m=n(113);function g(e,t){if(1&e&&(i.ɵɵelementStart(0,"div",15),i.ɵɵtext(1),i.ɵɵelementEnd()),2&e){var n=i.ɵɵnextContext();i.ɵɵadvance(1),i.ɵɵtextInterpolate(n.message)}}function f(e,t){1&e&&(i.ɵɵelementStart(0,"div",16),i.ɵɵelementStart(1,"label"),i.ɵɵelement(2,"localize",17),i.ɵɵelementEnd(),i.ɵɵelementEnd())}function v(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"div",18),i.ɵɵelementStart(1,"span",19),i.ɵɵelementStart(2,"input",20),i.ɵɵlistener("ngModelChange",(function(e){return i.ɵɵrestoreView(n),i.ɵɵnextContext().username=e})),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd()}if(2&e){var o=i.ɵɵnextContext();i.ɵɵadvance(2),i.ɵɵproperty("ngModel",o.username)}}function h(e,t){1&e&&(i.ɵɵelementStart(0,"div",21),i.ɵɵelement(1,"localize",22),i.ɵɵelementEnd())}function y(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"div",23),i.ɵɵelementStart(1,"input",24),i.ɵɵlistener("click",(function(){return i.ɵɵrestoreView(n),i.ɵɵnextContext().cancel()})),i.ɵɵpipe(2,"localize"),i.ɵɵelementEnd(),i.ɵɵelement(3,"input",25),i.ɵɵpipe(4,"localize"),i.ɵɵelementEnd()}if(2&e){i.ɵɵnextContext();var o=i.ɵɵreference(4);i.ɵɵadvance(1),i.ɵɵproperty("value",i.ɵɵpipeBind1(2,3,"forgotpassword.cancel")),i.ɵɵadvance(2),i.ɵɵproperty("value",i.ɵɵpipeBind1(4,5,"forgotpassword.submit"))("disabled",!o.valid)}}function C(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"div",26),i.ɵɵelementStart(1,"input",27),i.ɵɵlistener("click",(function(){return i.ɵɵrestoreView(n),i.ɵɵnextContext().cancel()})),i.ɵɵpipe(2,"localize"),i.ɵɵelementEnd(),i.ɵɵelementEnd()}2&e&&(i.ɵɵadvance(1),i.ɵɵproperty("value",i.ɵɵpipeBind1(2,1,"forgotpassword.ok")))}var b=function(){function e(e,t,n,o){this.service=e,this.router=t,this.route=n,this.location=o,this.emailIsSent=!1,this.message=null}return e.prototype.cancel=function(){this.router.navigate(["/"])},e.prototype.onSubmit=function(){var e=this;this.service.submit(this.username).then((function(t){e.emailIsSent=!0})).catch((function(t){e.error(t)}))},e.prototype.error=function(e){this.message=r.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(i.ɵɵdirectiveInject(a.ForgotPasswordService),i.ɵɵdirectiveInject(l.Router),i.ɵɵdirectiveInject(l.ActivatedRoute),i.ɵɵdirectiveInject(s.Location))},e.ɵcmp=i.ɵɵdefineComponent({type:e,selectors:[["forgotpassword"]],decls:22,vars:6,consts:[[1,"modal-form",3,"ngSubmit"],["form","ngForm"],[1,"modal-dialog"],[1,"modal-content"],[1,"heading","text-center"],["key","forgotpassword.header"],["class","alert alert-danger","role","alert",4,"ngIf"],[1,"modal-body"],[1,"row"],[1,"col-md-12"],["class","label-holder",4,"ngIf"],["class","holder",4,"ngIf"],["class","forgotpassword-email-is-sent",4,"ngIf"],["class","button-holder",4,"ngIf"],["class","button-holder","style","margin-top: 10px;",4,"ngIf"],["role","alert",1,"alert","alert-danger"],[1,"label-holder"],["key","forgotpassword.username"],[1,"holder"],[1,"text"],["type","text","name","username","required","",3,"ngModel","ngModelChange"],[1,"forgotpassword-email-is-sent"],["key","forgotpassword.emailIsSent"],[1,"button-holder"],["type","button",1,"btn","btn-default",3,"value","click"],["type","submit",1,"btn","btn-primary",3,"value","disabled"],[1,"button-holder",2,"margin-top","10px"],["type","button",1,"btn","btn-primary",2,"margin-top","10px",3,"value","click"]],template:function(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"div"),i.ɵɵelement(1,"message"),i.ɵɵelement(2,"loading-bar"),i.ɵɵelementStart(3,"form",0,1),i.ɵɵlistener("ngSubmit",(function(){return i.ɵɵrestoreView(n),i.ɵɵreference(4).valid&&t.onSubmit()})),i.ɵɵelementStart(5,"div",2),i.ɵɵelementStart(6,"div",3),i.ɵɵelementStart(7,"div",4),i.ɵɵelementStart(8,"h3"),i.ɵɵelement(9,"localize",5),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵtemplate(10,g,2,1,"div",6),i.ɵɵelementStart(11,"div",7),i.ɵɵelementStart(12,"fieldset"),i.ɵɵelementStart(13,"div",8),i.ɵɵelementStart(14,"div",9),i.ɵɵtemplate(15,f,3,0,"div",10),i.ɵɵtemplate(16,v,3,1,"div",11),i.ɵɵtemplate(17,h,2,0,"div",12),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(18,"div",8),i.ɵɵelementStart(19,"div",9),i.ɵɵtemplate(20,y,5,7,"div",13),i.ɵɵtemplate(21,C,3,3,"div",14),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd()}2&e&&(i.ɵɵadvance(10),i.ɵɵproperty("ngIf",null!=t.message),i.ɵɵadvance(5),i.ɵɵproperty("ngIf",!t.emailIsSent),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",!t.emailIsSent),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",t.emailIsSent),i.ɵɵadvance(3),i.ɵɵproperty("ngIf",!t.emailIsSent),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",t.emailIsSent))},directives:[c.MessageComponent,d.LoadingBarComponent,p.ɵangular_packages_forms_forms_ba,p.NgControlStatusGroup,p.NgForm,u.LocalizeComponent,s.NgIf,p.DefaultValueAccessor,p.RequiredValidator,p.NgControlStatus,p.NgModel],pipes:[m.LocalizePipe],styles:[".forgotpassword-email-is-sent[_ngcontent-%COMP%]\n{\n}"]}),e}();t.ForgotPasswordComponent=b,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(b,[{type:o.Component,args:[{selector:"forgotpassword",templateUrl:"./forgotpassword.component.html",styleUrls:["./forgotpassword.component.css"]}]}],(function(){return[{type:a.ForgotPasswordService},{type:l.Router},{type:l.ActivatedRoute},{type:s.Location}]}),null)},193:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ForgotPasswordCompleteComponent=void 0;var o=n(0),r=(n(33),n(111)),i=(n(118),n(88),n(0)),a=n(118),l=n(33),s=n(88),c=n(97),d=n(86),p=n(22),u=n(68),m=n(1),g=n(88),f=n(113);function v(e,t){if(1&e&&(i.ɵɵelementStart(0,"div",16),i.ɵɵtext(1),i.ɵɵelementEnd()),2&e){var n=i.ɵɵnextContext();i.ɵɵadvance(1),i.ɵɵtextInterpolate(n.message)}}function h(e,t){1&e&&(i.ɵɵelementStart(0,"div",26),i.ɵɵelement(1,"localize",27),i.ɵɵelementEnd())}function y(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"div"),i.ɵɵelementStart(1,"div",12),i.ɵɵelementStart(2,"label"),i.ɵɵelement(3,"localize",17),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(4,"div",13),i.ɵɵelementStart(5,"span",18),i.ɵɵelementStart(6,"input",19,20),i.ɵɵlistener("ngModelChange",(function(e){return i.ɵɵrestoreView(n),i.ɵɵnextContext().newPassword=e})),i.ɵɵelementEnd(),i.ɵɵelement(8,"password-strength-bar",21),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(9,"div",12),i.ɵɵelementStart(10,"label"),i.ɵɵelement(11,"localize",22),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(12,"div",13),i.ɵɵelementStart(13,"span",18),i.ɵɵelement(14,"input",23,24),i.ɵɵelementEnd(),i.ɵɵtemplate(16,h,2,0,"div",25),i.ɵɵelementEnd(),i.ɵɵelementEnd()}if(2&e){var o=i.ɵɵreference(7),r=i.ɵɵreference(15),a=i.ɵɵnextContext();i.ɵɵadvance(6),i.ɵɵproperty("ngModel",a.newPassword),i.ɵɵadvance(2),i.ɵɵproperty("passwordToCheck",a.newPassword),i.ɵɵadvance(6),i.ɵɵproperty("value",o),i.ɵɵadvance(2),i.ɵɵproperty("ngIf",null==r.errors?null:r.errors.equalTo)}}function C(e,t){1&e&&(i.ɵɵelementStart(0,"div",28),i.ɵɵelement(1,"localize",29),i.ɵɵelementEnd())}function b(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"div",30),i.ɵɵelementStart(1,"input",31),i.ɵɵlistener("click",(function(){return i.ɵɵrestoreView(n),i.ɵɵnextContext().cancel()})),i.ɵɵpipe(2,"localize"),i.ɵɵelementEnd(),i.ɵɵelement(3,"input",32),i.ɵɵpipe(4,"localize"),i.ɵɵelementEnd()}if(2&e){i.ɵɵnextContext();var o=i.ɵɵreference(4);i.ɵɵadvance(1),i.ɵɵproperty("value",i.ɵɵpipeBind1(2,3,"forgotpassword-complete.cancel")),i.ɵɵadvance(2),i.ɵɵproperty("value",i.ɵɵpipeBind1(4,5,"forgotpassword-complete.submit"))("disabled",!o.valid)}}function S(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"div",33),i.ɵɵelementStart(1,"input",34),i.ɵɵlistener("click",(function(){return i.ɵɵrestoreView(n),i.ɵɵnextContext().cancel()})),i.ɵɵpipe(2,"localize"),i.ɵɵelementEnd(),i.ɵɵelementEnd()}2&e&&(i.ɵɵadvance(1),i.ɵɵproperty("value",i.ɵɵpipeBind1(2,1,"forgotpassword-complete.ok")))}var M=function(){function e(e,t,n,o){this.service=e,this.router=t,this.route=n,this.passwordStrengthBarComponent=o,this.passwordIsReset=!1,this.message=null}return e.prototype.ngOnInit=function(){var e=this;this.sub=this.route.params.subscribe((function(t){e.token=t.token}))},e.prototype.ngOnDestroy=function(){this.sub.unsubscribe()},e.prototype.cancel=function(){this.router.navigate(["/"])},e.prototype.onSubmit=function(){var e=this;this.service.complete(this.newPassword,this.token).then((function(){e.passwordIsReset=!0})).catch((function(t){e.error(t)}))},e.prototype.error=function(e){this.message=r.ErrorHandler.getMessageFromError(e)},e.ɵfac=function(t){return new(t||e)(i.ɵɵdirectiveInject(a.ForgotPasswordService),i.ɵɵdirectiveInject(l.Router),i.ɵɵdirectiveInject(l.ActivatedRoute),i.ɵɵdirectiveInject(s.PasswordStrengthBarComponent))},e.ɵcmp=i.ɵɵdefineComponent({type:e,selectors:[["ng-component"]],decls:23,vars:5,consts:[[1,"modal-form",3,"ngSubmit"],["form","ngForm"],[1,"modal-dialog"],[1,"modal-content"],[1,"heading","text-center"],["key","forgotpassword-complete.header"],["class","alert alert-danger","role","alert",4,"ngIf"],[1,"modal-body"],[1,"row"],[1,"col-md-12"],[4,"ngIf"],["class","forgotpassword-password-is-reset",4,"ngIf"],[1,"label-holder"],[1,"holder"],["class","button-holder",4,"ngIf"],["class","button-holder","style","margin-top: 10px;",4,"ngIf"],["role","alert",1,"alert","alert-danger"],["key","forgotpassword-complete.newPassword"],[1,"text"],["type","password","name","password","required","","minlength","5","maxlength","50",3,"ngModel","ngModelChange"],["password","ngModel"],[3,"passwordToCheck"],["key","account.certainPassword"],["type","password","ngModel","","name","certainPassword",3,"value"],["certainPassword","ngModel"],["class","inline-error-message",4,"ngIf"],[1,"inline-error-message"],["key","account.certainPassword.validation"],[1,"forgotpassword-password-is-reset"],["key","forgotpassword-complete.passwordIsReset"],[1,"button-holder"],["type","button",1,"btn","btn-default",3,"value","click"],["type","submit",1,"btn","btn-primary",3,"value","disabled"],[1,"button-holder",2,"margin-top","10px"],["type","button",1,"btn","btn-primary",2,"margin-top","10px",3,"value","click"]],template:function(e,t){if(1&e){var n=i.ɵɵgetCurrentView();i.ɵɵelementStart(0,"div"),i.ɵɵelement(1,"message"),i.ɵɵelement(2,"loading-bar"),i.ɵɵelementStart(3,"form",0,1),i.ɵɵlistener("ngSubmit",(function(){return i.ɵɵrestoreView(n),i.ɵɵreference(4).valid&&t.onSubmit()})),i.ɵɵelementStart(5,"div",2),i.ɵɵelementStart(6,"div",3),i.ɵɵelementStart(7,"div",4),i.ɵɵelementStart(8,"h3"),i.ɵɵelement(9,"localize",5),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵtemplate(10,v,2,1,"div",6),i.ɵɵelementStart(11,"div",7),i.ɵɵelementStart(12,"fieldset"),i.ɵɵelementStart(13,"div",8),i.ɵɵelementStart(14,"div",9),i.ɵɵtemplate(15,y,17,4,"div",10),i.ɵɵtemplate(16,C,2,0,"div",11),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementStart(17,"div",8),i.ɵɵelementStart(18,"div",9),i.ɵɵelement(19,"div",12),i.ɵɵelementStart(20,"div",13),i.ɵɵtemplate(21,b,5,7,"div",14),i.ɵɵtemplate(22,S,3,3,"div",15),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd(),i.ɵɵelementEnd()}2&e&&(i.ɵɵadvance(10),i.ɵɵproperty("ngIf",null!=t.message),i.ɵɵadvance(5),i.ɵɵproperty("ngIf",!t.passwordIsReset),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",t.passwordIsReset),i.ɵɵadvance(5),i.ɵɵproperty("ngIf",!t.passwordIsReset),i.ɵɵadvance(1),i.ɵɵproperty("ngIf",t.passwordIsReset))},directives:[c.MessageComponent,d.LoadingBarComponent,p.ɵangular_packages_forms_forms_ba,p.NgControlStatusGroup,p.NgForm,u.LocalizeComponent,m.NgIf,p.DefaultValueAccessor,p.RequiredValidator,p.MinLengthValidator,p.MaxLengthValidator,p.NgControlStatus,p.NgModel,g.PasswordStrengthBarComponent],pipes:[f.LocalizePipe],styles:[".forgotpassword-password-is-reset[_ngcontent-%COMP%]\n{\n}"]}),e}();t.ForgotPasswordCompleteComponent=M,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(M,[{type:o.Component,args:[{templateUrl:"./forgotpassword-complete.component.html",styleUrls:["./forgotpassword-complete.component.css"]}]}],(function(){return[{type:a.ForgotPasswordService},{type:l.Router},{type:l.ActivatedRoute},{type:s.PasswordStrengthBarComponent}]}),null)},203:function(e,t,n){"use strict";var o,r=this&&this.__extends||(o=function(e,t){return(o=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)},function(e,t){function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0}),t.ContextLayerGroup=t.ContextLayer=t.ExportScheduledJob=t.OrgSyncInfo=t.SynchronizationConfig=t.MasterListByOrg=t.MasterListView=t.HierarchyOverTimeEntryParent=t.HierarchyOverTimeEntry=t.HierarchyOverTime=t.MasterListVersion=t.MasterList=t.Step=t.StepConfig=t.ImportErrorObject=t.ServerExceptionAttribute=t.ServerException=t.ImportError=t.ScheduledJobOverview=t.ScheduledJob=t.AbstractScheduledJob=t.PaginationPage=t.ManageGeoObjectTypeModalState=t.ParentTreeNode=t.ChildTreeNode=t.TreeNode=t.AttributeDecimalType=t.AttributeTermType=t.AttributeType=t.AttributeOverTime=t.ValueOverTime=t.ConflictMessage=t.GeoObjectOverTime=t.Task=t.GeoObjectType=t.GeoObject=t.Term=t.TreeEntity=t.PRESENT=void 0;var i=n(209);t.PRESENT="5000-12-31";var a=function(){};t.TreeEntity=a;var l=function(){function e(e,t,n){this.children=[],this.code=e,this.label=t,this.description=n}return e.prototype.addChild=function(e){this.children.push(e)},e}();t.Term=l;var s=function(){};t.GeoObject=s;var c=function(){function e(){this.attributes=[]}return e.getAttribute=function(e,t){for(var n=e.attributes.length,o=0;o0)return"status"===o.code?i.default.removeStatuses(r):r}}return null},e}();t.GeoObjectType=c;var d=function(){};t.Task=d;var p=function(){function e(e,t){this.geoObjectType=e,this.attributes=t}return e.prototype.getVotAtDate=function(e,t,n){for(var o={startDate:e,endDate:null,value:null},r=e.getTime(),i=function(e){var i=a.geoObjectType.attributes[e];if(i.code===t){if("local"===i.type&&(o.value=n.create()),i.isChangeOverTime)a.attributes[i.code].values.forEach((function(e){var t=Date.parse(e.startDate),n=Date.parse(e.endDate);r>=t&&r<=n&&("local"===i.type?o.value=JSON.parse(JSON.stringify(e.value)):"term"===i.type&&null!=e.value&&Array.isArray(e.value)&&e.value.length>0?o.value=e.value[0]:o.value=e.value)}));else o.value=a.attributes[i.code];return"break"}},a=this,l=0;lo},e.dateEndBeforeStart=function(e,t){return t864e5},e.areValuesEqual=function(e,t,n){if("boolean"===e.type)return t===n;if(""===t&&null==n||""===n&&null==t)return!0;if(!t&&!n)return!0;if(!t&&n||!n&&t)return!1;if("term"===e.type){if(null!=t&&null!=n)return t.length===n.length&&t[0]===n[0]}else{if("geometry"===e.type)return r.default(t,n);if("date"===e.type)return("string"==typeof t?parseInt(t):t)===("string"==typeof n?parseInt(n):n);if("local"===e.type){if(!t.localeValues||!n.localeValues||t.localeValues.length!==n.localeValues.length)return!1;for(var o=t.localeValues.length,i=0;i0),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.localizeLabelKey.length>0),a.ɵɵadvance(1),a.ɵɵproperty("hidden",t.valueIsPresent),a.ɵɵadvance(2),a.ɵɵstyleMap(t.customStyles?t.customStyles:""),a.ɵɵclassMap(t.classNames?t.classNames+" date-input-element":"date-input-element"),a.ɵɵpropertyInterpolate("name",t.inputName),a.ɵɵpropertyInterpolate("placement",t.placement),a.ɵɵpropertyInterpolate("title",t.title),a.ɵɵproperty("bsValue",t._value)("value",a.ɵɵpipeBind2(6,21,t._value,"yyyy-MM-dd"))("bsConfig",a.ɵɵpureFunction1(24,y,t.returnFocusToInput))("outsideClick",!0)("maxDate",t.allowFutureDates?null:t.today)("isDisabled",t.disable)("disabled",t.disable),a.ɵɵadvance(4),a.ɵɵproperty("ngIf",t.message),a.ɵɵadvance(1),a.ɵɵproperty("ngIf",t.oldDate),a.ɵɵadvance(1),a.ɵɵproperty("hidden",!t.valueIsPresent),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",t.allowInfinity))},styles:['.disabled[_ngcontent-%COMP%]{\n cursor: not-allowed;\n}\n\nlabel.disabled[_ngcontent-%COMP%]{\n color: lightgrey;\n}\n\ninput[type="date"][_ngcontent-%COMP%] {\n\tmin-width: 173px;\n}\n\np.warning-text.display-current-value[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n\n.wrapper[_ngcontent-%COMP%] input[type="text"][_ngcontent-%COMP%] {\n position: relative; \n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n.date-input-element[_ngcontent-%COMP%] {\n\twidth: auto;\n}\n.date-input-element.full-width[_ngcontent-%COMP%] {\n\twidth: 100%;\n}\n\n.date-input-element[_ngcontent-%COMP%]:hover {\n\n}\n\n\n .bs-datepicker-body table td span.disabled, .bs-datepicker-body[_ngcontent-%COMP%] table[_ngcontent-%COMP%] td.disabled[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n color: lightgrey;\n cursor: not-allowed;\n}']}),e}();t.DateFieldComponent=C,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(C,[{type:o.Component,args:[{selector:"date-field",templateUrl:"./date-field.component.html",styleUrls:["./date-field.css"]}]}],(function(){return[{type:l.LocalizationService},{type:s.BsDatepickerConfig},{type:a.ChangeDetectorRef},{type:c.DateService}]}),{datepicker:[{type:o.ViewChild,args:[r.BsDatepickerDirective,{static:!1}]}],allowFutureDates:[{type:o.Input}],allowInfinity:[{type:o.Input}],inputName:[{type:o.Input}],classNames:[{type:o.Input}],customStyles:[{type:o.Input}],localizeLabelKey:[{type:o.Input}],label:[{type:o.Input}],disable:[{type:o.Input}],required:[{type:o.Input}],placement:[{type:o.Input}],oldDate:[{type:o.Input}],title:[{type:o.Input}],value:[{type:o.Input}],valueChange:[{type:o.Output}],change:[{type:o.Output}],valid:[{type:o.Input}],validChange:[{type:o.Output}]})},261:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Step=t.StepConfig=t.ModalTypes=void 0,function(e){e.warning="WARNING",e.danger="DANGER"}(t.ModalTypes||(t.ModalTypes={}));var o=function(){};t.StepConfig=o;var r=function(){};t.Step=r},262:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BooleanFieldComponent=void 0;var o=n(0),r=n(0),i=n(1),a=n(68);function l(e,t){if(1&e&&(r.ɵɵelementStart(0,"label",3),r.ɵɵtext(1),r.ɵɵelementEnd()),2&e){var n=r.ɵɵnextContext();r.ɵɵadvance(1),r.ɵɵtextInterpolate(n.label)}}function s(e,t){if(1&e&&(r.ɵɵelementStart(0,"label",3),r.ɵɵelement(1,"localize",4),r.ɵɵelementEnd()),2&e){var n=r.ɵɵnextContext();r.ɵɵadvance(1),r.ɵɵpropertyInterpolate("key",n.localizeLabelKey)}}var c=function(e){return{dizabled:e}},d=function(e){return{"chk-checked":e}},p=function(){function e(){this.value=!1,this.valueChange=new o.EventEmitter,this.localizeLabelKey="",this.label="",this.disable=!1,this.change=new o.EventEmitter}return e.prototype.toggle=function(){this.disable||(this.value=!this.value,this.valueChange.emit(this.value),this.change.emit(this.value))},e.ɵfac=function(t){return new(t||e)},e.ɵcmp=r.ɵɵdefineComponent({type:e,selectors:[["boolean-field"]],inputs:{value:"value",localizeLabelKey:"localizeLabelKey",label:"label",disable:"disable"},outputs:{valueChange:"valueChange",change:"change"},decls:5,vars:8,consts:[[1,"check-block",3,"ngClass","click"],["ng-style","chkstyle",1,"chk-area",3,"ngClass"],["class","checkbox-label",4,"ngIf"],[1,"checkbox-label"],[3,"key"]],template:function(e,t){1&e&&(r.ɵɵelementStart(0,"div",0),r.ɵɵlistener("click",(function(){return t.toggle()})),r.ɵɵelementStart(1,"div",1),r.ɵɵelement(2,"span"),r.ɵɵelementEnd(),r.ɵɵtemplate(3,l,2,1,"label",2),r.ɵɵtemplate(4,s,2,1,"label",2),r.ɵɵelementEnd()),2&e&&(r.ɵɵproperty("ngClass",r.ɵɵpureFunction1(4,c,t.disable)),r.ɵɵadvance(1),r.ɵɵproperty("ngClass",r.ɵɵpureFunction1(6,d,t.value)),r.ɵɵadvance(2),r.ɵɵproperty("ngIf",t.label.length>0),r.ɵɵadvance(1),r.ɵɵproperty("ngIf",t.localizeLabelKey.length>0))},directives:[i.NgClass,i.NgIf,a.LocalizeComponent],styles:[".modal-form[_ngcontent-%COMP%] .holder[_ngcontent-%COMP%] .check-block[_ngcontent-%COMP%] .chk-area[_ngcontent-%COMP%] {\n margin: 10px 0px 0 0;\n}\n\n.dizabled[_ngcontent-%COMP%]{\n cursor: not-allowed;\n}\n\nlabel.dizabled[_ngcontent-%COMP%]{\n color: lightgrey;\n}\n\n.check-block[_ngcontent-%COMP%] {\n\t cursor: pointer;\n}\n\n.check-block[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n cursor: pointer;\n \n -webkit-touch-callout: none; \n -webkit-user-select: none; \n -khtml-user-select: none; \n -moz-user-select: none; \n -ms-user-select: none; \n user-select: none; \n}\n\n.dizabled[_ngcontent-%COMP%] {\n cursor: not-allowed;\n}\n\n.dizabled[_ngcontent-%COMP%] > label[_ngcontent-%COMP%] {\n cursor: not-allowed;\n}\n\n.dizabled[_ngcontent-%COMP%] > div[_ngcontent-%COMP%] {\n cursor: not-allowed;\n}\n\n.dizabled[_ngcontent-%COMP%] > span[_ngcontent-%COMP%] {\n cursor: not-allowed;\n}\n\n.dizabled[_ngcontent-%COMP%] > div.chk-area[_ngcontent-%COMP%] {\n cursor: not-allowed;\n}"]}),e}();t.BooleanFieldComponent=p,("undefined"==typeof ngDevMode||ngDevMode)&&r.ɵsetClassMetadata(p,[{type:o.Component,args:[{selector:"boolean-field",templateUrl:"./boolean-field.component.html",styleUrls:["./boolean-field.css"]}]}],(function(){return[]}),{value:[{type:o.Input}],valueChange:[{type:o.Output}],localizeLabelKey:[{type:o.Input}],label:[{type:o.Input}],disable:[{type:o.Input}],change:[{type:o.Output}]})},264:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GeometryService=void 0;var o=n(0),r=n(273),i=n(263),a=n(0),l=function(){function e(){this.layers=[],this.editingControl=null,this.simpleEditControl=null,this.geometryChange=new o.EventEmitter}return e.prototype.ngOnInit=function(){var e=this;window.onbeforeunload=function(){return e.destroy()}},e.prototype.initialize=function(e,t,n){var o=this;this.map=e,this.geometryType=t,this.addLayers(),this.map.on("draw.create",(function(){o.saveEdits()})),this.map.on("draw.delete",(function(){o.saveEdits()})),this.map.on("draw.update",(function(){o.saveEdits()}))},e.prototype.destroy=function(e){void 0===e&&(e=!0),null!=this.editingControl&&(this.map.removeControl(this.editingControl),this.editingControl=null),null!=this.map&&e?(this.map.remove(),this.map=null):null!=this.map&&this.removeLayers(),null!=this.layers&&this.layers.forEach((function(e){e.isEditing=!1,e.isRendering=!1})),this.editingLayer=null,this.layers=[]},e.prototype.startEditing=function(e){this.isEditing()&&this.stopEditing(),this.editingLayer=e,this.editingLayer.isEditing=!0,this.readOnly||this.enableEditing(),this.addEditingLayers()},e.prototype.stopEditing=function(e){void 0===e&&(e=!0),this.isEditing()&&(this.saveEdits(e),this.editingLayer.isEditing=!1,this.editingLayer=null,this.editingControl.deleteAll(),this.map.removeControl(this.editingControl),this.editingControl=null)},e.prototype.isEditing=function(){return null!=this.editingLayer},e.prototype.setPointCoordinates=function(e,t){null!=this.editingLayer&&(this.editingControl.set({type:"FeatureCollection",features:[{id:this.editingLayer.oid,type:"Feature",properties:{},geometry:{type:"Point",coordinates:[t,e]}}]}),this.editingControl.changeMode("simple_select",{featureIds:this.editingLayer.oid}),this.saveEdits())},e.prototype.isValid=function(){if(!this.readOnly){var e=!1;if(null!=this.editingControl)this.editingControl.getAll().features.length>0&&(e=!0);return e}return!0},e.prototype.saveEdits=function(e){if(void 0===e&&(e=!0),null!=this.editingLayer){var t=this.getDrawGeometry();this.editingLayer.editPropagator.value=t,e&&(this.removeLayers(),this.addLayers())}},e.prototype.reload=function(){null!=this.map&&(this.removeLayers(),this.addLayers(),null!=this.editingControl&&this.editingControl.deleteAll(),this.addEditingLayers())},e.prototype.setEditing=function(e,t){this.isEditing()&&this.stopEditing(),t.isEditing=e,e&&this.startEditing(t)},e.prototype.setRendering=function(e,t){t.isRendering=e,this.addLayer(t)},e.prototype.addLayer=function(e){var t=this.layers.findIndex((function(t){return t.oid===e.oid}));-1!==t?(this.layers.splice(t,1),this.layers.push(e)):this.layers.push(e),e.isEditing&&this.startEditing(e),this.layers=this.layers.sort((function(e,t){return e.zindex-t.zindex})),this.removeLayers(),this.addLayers()},e.prototype.getLayers=function(){return this.layers},e.prototype.getRenderedLayers=function(){return this.layers.filter((function(e){return e.isRendering}))},e.prototype.setLayers=function(e){this.removeLayers(),this.layers=e.sort((function(e,t){return e.zindex-t.zindex})),this.addLayers()},e.prototype.enableEditing=function(){null==this.editingControl&&("MULTIPOLYGON"===this.geometryType||"POLYGON"===this.geometryType?this.editingControl=new r.default({controls:{point:!1,line_string:!1,polygon:!0,trash:!0,combine_features:!1,uncombine_features:!1}}):"POINT"===this.geometryType||"MULTIPOINT"===this.geometryType?this.editingControl=new r.default({userProperties:!0,controls:{point:!0,line_string:!1,polygon:!1,trash:!0,combine_features:!1,uncombine_features:!1},styles:[{id:"highlight-active-points",type:"circle",filter:["all",["==","$type","Point"],["==","meta","feature"],["==","active","true"]],paint:{"circle-radius":13,"circle-color":"#33FFF9","circle-stroke-width":4,"circle-stroke-color":"white"}},{id:"points-are-blue",type:"circle",filter:["all",["==","$type","Point"],["==","meta","feature"],["==","active","false"]],paint:{"circle-radius":10,"circle-color":"#800000","circle-stroke-width":2,"circle-stroke-color":"white"}}]}):"LINE"!==this.geometryType&&"MULTILINE"!==this.geometryType||(this.editingControl=new r.default({controls:{point:!1,line_string:!0,polygon:!1,trash:!0,combine_features:!1,uncombine_features:!1}})),null==this.map.getSource("mapbox-gl-draw-cold")&&this.map.addControl(this.editingControl))},e.prototype.addEditingLayers=function(){null!=this.editingLayer&&null!=this.editingControl&&(this.editingLayer.editPropagator.value&&this.editingControl.add(this.editingLayer.editPropagator.value))},e.prototype.removeSource=function(e){if(this.map){var t=e+"-geoobject";"MULTIPOLYGON"===this.geometryType||"POLYGON"===this.geometryType?null!=this.map.getLayer(t+"-polygon")&&this.map.removeLayer(t+"-polygon"):"POINT"===this.geometryType||"MULTIPOINT"===this.geometryType?null!=this.map.getLayer(t+"-point")&&this.map.removeLayer(t+"-point"):"LINE"!==this.geometryType&&"MultiLine"!==this.geometryType||null!=this.map.getLayer(t+"-line")&&this.map.removeLayer(t+"-line"),null!=this.map.getSource(t)&&this.map.removeSource(t)}},e.prototype.removeLayers=function(){if(null!=this.layers&&this.layers.length>0)for(var e=this.layers.length,t=0;t0)for(var e=this.layers.length,t=0;t0){if("MULTIPOLYGON"===this.geometryType){for(var t=[],n=0;n=35&&t.keyCode<=39)return;(t.shiftKey||t.keyCode<48||t.keyCode>57)&&(t.keyCode<96||t.keyCode>105)&&t.preventDefault()}},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(r.ElementRef))},e.ɵdir=r.ɵɵdefineDirective({type:e,selectors:[["","OnlyNumber",""]],hostBindings:function(e,t){1&e&&r.ɵɵlistener("keydown",(function(e){return t.onKeyDown(e)}))},inputs:{OnlyNumber:"OnlyNumber"}}),e}();t.OnlyNumber=i,("undefined"==typeof ngDevMode||ngDevMode)&&r.ɵsetClassMetadata(i,[{type:o.Directive,args:[{selector:"[OnlyNumber]"}]}],(function(){return[{type:r.ElementRef}]}),{OnlyNumber:[{type:o.Input}],onKeyDown:[{type:o.HostListener,args:["keydown",["$event"]]}]})},266:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MustMatchDirective=t.MustMatch=void 0;var o=n(0),r=n(22),i=n(0);function a(e,t){return function(n){var o=n.controls[e],r=n.controls[t];return o&&r?r.errors&&!r.errors.mustMatch?null:void(o.value!==r.value?r.setErrors({mustMatch:!0}):r.setErrors(null)):null}}t.MustMatch=a;var l=function(){function e(){this.mustMatch=[]}return e.prototype.validate=function(e){return a(this.mustMatch[0],this.mustMatch[1])(e)},e.ɵfac=function(t){return new(t||e)},e.ɵdir=i.ɵɵdefineDirective({type:e,selectors:[["","mustMatch",""]],inputs:{mustMatch:"mustMatch"},features:[i.ɵɵProvidersFeature([{provide:r.NG_VALIDATORS,useExisting:e,multi:!0}])]}),e}();t.MustMatchDirective=l,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(l,[{type:o.Directive,args:[{selector:"[mustMatch]",providers:[{provide:r.NG_VALIDATORS,useExisting:l,multi:!0}]}]}],null,{mustMatch:[{type:o.Input,args:["mustMatch"]}]})},267:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Profile=void 0;var o=function(){};t.Profile=o},268:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PhonePipe=void 0;var o=n(0),r=n(272),i=n(0),a=function(){function e(){}return e.prototype.transform=function(e,t){return e?r.formatNumber({country:"US",phone:e.toString()},"International"):e},e.ɵfac=function(t){return new(t||e)},e.ɵpipe=i.ɵɵdefinePipe({name:"phone",type:e,pure:!0}),e}();t.PhonePipe=a,("undefined"==typeof ngDevMode||ngDevMode)&&i.ɵsetClassMetadata(a,[{type:o.Pipe,args:[{name:"phone"}]}],null,null)},336:function(e,t,n){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});var o=n(0),r=n(337),i=n(45);"production"===e.env.ENV&&o.enableProdMode(),i.platformBrowser().bootstrapModule(r.CgrAppModule).then((function(e){return console.log("Bootstrap success")})).catch((function(e){return console.log(e)}))}).call(this,n(99))},337:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CgrAppModule=void 0;var o=n(0),r=n(45),i=n(22),a=n(34),l=n(208),s=n(169),c=n(125),d=n(171),p=n(154),u=n(205),m=n(204),g=n(126),f=n(73),v=n(211),h=n(98),y=n(338),C=n(339),b=n(340),S=n(190),M=n(243),E=n(191),w=n(192),x=n(193),O=n(363),I=n(118),P=n(88),_=n(89),R=n(264),D=n(210);n(207);var k=n(0),L=n(190),T=n(191),z=n(192),j=n(193),N=n(169),A=n(125),F=n(171),V=n(154),B=n(126),G=n(73),H=n(211),U=n(210),J=n(98),Y=function(){function e(){}return e.ɵfac=function(t){return new(t||e)},e.ɵmod=k.ɵɵdefineNgModule({type:e,bootstrap:[C.CgrAppComponent]}),e.ɵinj=k.ɵɵdefineInjector({providers:[{provide:a.HTTP_INTERCEPTORS,useClass:O.HttpErrorInterceptor,multi:!0},I.ForgotPasswordService,P.PasswordStrengthBarComponent,_.HubService,R.GeometryService],imports:[[r.BrowserModule,i.FormsModule,a.HttpClientModule,b.CgrAppRoutingModule,i.ReactiveFormsModule,u.FileUploadModule,l.TreeModule,s.ContextMenuModule.forRoot(),c.BsDropdownModule.forRoot(),d.ButtonsModule.forRoot(),p.TypeaheadModule.forRoot(),g.ProgressbarModule.forRoot(),f.CollapseModule.forRoot(),v.TabsModule.forRoot(),m.NgxPaginationModule,y.BrowserAnimationsModule,D.SharedModule.forRoot(),h.BsDatepickerModule.forRoot()]]}),e}();t.CgrAppModule=Y,("undefined"==typeof ngJitMode||ngJitMode)&&k.ɵɵsetNgModuleScope(Y,{declarations:[C.CgrAppComponent,S.LoginComponent,M.LoginHeaderComponent,E.HubComponent,w.ForgotPasswordComponent,x.ForgotPasswordCompleteComponent,L.LoginComponent,T.HubComponent,z.ForgotPasswordComponent,j.ForgotPasswordCompleteComponent],imports:[r.BrowserModule,i.FormsModule,a.HttpClientModule,b.CgrAppRoutingModule,i.ReactiveFormsModule,u.FileUploadModule,l.TreeModule,N.ContextMenuModule,A.BsDropdownModule,F.ButtonsModule,V.TypeaheadModule,B.ProgressbarModule,G.CollapseModule,H.TabsModule,m.NgxPaginationModule,y.BrowserAnimationsModule,U.SharedModule,J.BsDatepickerModule],exports:[C.CgrAppComponent]}),("undefined"==typeof ngDevMode||ngDevMode)&&k.ɵsetClassMetadata(Y,[{type:o.NgModule,args:[{imports:[r.BrowserModule,i.FormsModule,a.HttpClientModule,b.CgrAppRoutingModule,i.ReactiveFormsModule,u.FileUploadModule,l.TreeModule,s.ContextMenuModule.forRoot(),c.BsDropdownModule.forRoot(),d.ButtonsModule.forRoot(),p.TypeaheadModule.forRoot(),g.ProgressbarModule.forRoot(),f.CollapseModule.forRoot(),v.TabsModule.forRoot(),m.NgxPaginationModule,y.BrowserAnimationsModule,D.SharedModule.forRoot(),h.BsDatepickerModule.forRoot()],declarations:[C.CgrAppComponent,S.LoginComponent,M.LoginHeaderComponent,E.HubComponent,w.ForgotPasswordComponent,x.ForgotPasswordCompleteComponent,b.routedComponents],providers:[{provide:a.HTTP_INTERCEPTORS,useClass:O.HttpErrorInterceptor,multi:!0},I.ForgotPasswordService,P.PasswordStrengthBarComponent,_.HubService,R.GeometryService],exports:[C.CgrAppComponent],bootstrap:[C.CgrAppComponent],entryComponents:[]}]}],null,null)},339:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CgrAppComponent=void 0;var o=n(0),r=n(0),i=n(33),a=function(){function e(){}return e.ɵfac=function(t){return new(t||e)},e.ɵcmp=r.ɵɵdefineComponent({type:e,selectors:[["cgr-app"]],decls:3,vars:0,consts:[["id","innerFrameHtml"],["id","main"]],template:function(e,t){1&e&&(r.ɵɵelementStart(0,"div",0),r.ɵɵelementStart(1,"div",1),r.ɵɵelement(2,"router-outlet"),r.ɵɵelementEnd(),r.ɵɵelementEnd())},directives:[i.RouterOutlet],encapsulation:2}),e}();t.CgrAppComponent=a,("undefined"==typeof ngDevMode||ngDevMode)&&r.ɵsetClassMetadata(a,[{type:o.Component,args:[{selector:"cgr-app",templateUrl:"./cgr-app.component.html",styleUrls:[]}]}],(function(){return[]}),null)},340:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.routedComponents=t.CgrAppRoutingModule=void 0;var o=n(0),r=n(1),i=n(33),a=n(190),l=n(191),s=n(192),c=n(193),d=n(123),p=n(0),u=n(33),m=[{path:"",redirectTo:"/menu",pathMatch:"full"},{path:"login",component:a.LoginComponent,data:{title:"login.title"}},{path:"login/:errorMsg",component:a.LoginComponent,data:{title:"login.title"}},{path:"menu",component:l.HubComponent,canActivate:[d.AuthGuard],data:{title:"login.header"}},{path:"menu/:value",component:l.HubComponent,canActivate:[d.AuthGuard],data:{title:"login.header"}},{path:"forgotpassword",component:s.ForgotPasswordComponent,data:{title:"useraccounts.title"}},{path:"forgotpassword-complete/:token",component:c.ForgotPasswordCompleteComponent},{path:"admin",loadChildren:"./admin/admin.module#AdminModule"},{path:"registry",loadChildren:"./registry/registry.module#RegistryModule"}],g=function(){function e(){}return e.ɵfac=function(t){return new(t||e)},e.ɵmod=p.ɵɵdefineNgModule({type:e}),e.ɵinj=p.ɵɵdefineInjector({providers:[{provide:r.LocationStrategy,useClass:r.HashLocationStrategy},d.AdminGuard,d.MaintainerGuard,d.ContributerGuard],imports:[[i.RouterModule.forRoot(m)],i.RouterModule]}),e}();t.CgrAppRoutingModule=g,("undefined"==typeof ngJitMode||ngJitMode)&&p.ɵɵsetNgModuleScope(g,{imports:[u.RouterModule],exports:[i.RouterModule]}),("undefined"==typeof ngDevMode||ngDevMode)&&p.ɵsetClassMetadata(g,[{type:o.NgModule,args:[{imports:[i.RouterModule.forRoot(m)],exports:[i.RouterModule],providers:[{provide:r.LocationStrategy,useClass:r.HashLocationStrategy},d.AdminGuard,d.MaintainerGuard,d.ContributerGuard]}]}],null,null),t.routedComponents=[a.LoginComponent,l.HubComponent,s.ForgotPasswordComponent,c.ForgotPasswordCompleteComponent]},363:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HttpErrorInterceptor=void 0;var o=n(0),r=n(34),i=n(32),a=n(0),l=function(){function e(){}return e.prototype.intercept=function(e,t){return t.handle(e).pipe(i.tap((function(e){if(e instanceof r.HttpResponseBase&&302===e.status)return void(window.location.href=acp+"/cgr/manage#/login")}),(function(e){e instanceof r.HttpErrorResponse&&(401!==e.status&&403!==e.status||(window.location.href=acp+"/cgr/manage#/login"))})))},e.ɵfac=function(t){return new(t||e)},e.ɵprov=a.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.HttpErrorInterceptor=l,("undefined"==typeof ngDevMode||ngDevMode)&&a.ɵsetClassMetadata(l,[{type:o.Injectable}],null,null)},68:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LocalizeComponent=void 0;var o=n(0),r=(n(16),n(0)),i=n(16),a=function(){function e(e){this.service=e,this.params=null}return e.prototype.ngOnInit=function(){var e=this;(this.text=this.service.decode(this.key),null!=this.params)&&Object.keys(this.params).forEach((function(t){null!=e.params[t]&&(e.text=e.text.replace(t,e.params[t]))}))},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(i.LocalizationService))},e.ɵcmp=r.ɵɵdefineComponent({type:e,selectors:[["localize"]],inputs:{key:"key",params:"params"},decls:1,vars:1,consts:[[3,"innerHtml"]],template:function(e,t){1&e&&r.ɵɵelement(0,"span",0),2&e&&r.ɵɵproperty("innerHtml",t.text,r.ɵɵsanitizeHtml)},encapsulation:2}),e}();t.LocalizeComponent=a,("undefined"==typeof ngDevMode||ngDevMode)&&r.ɵsetClassMetadata(a,[{type:o.Component,args:[{selector:"localize",templateUrl:"./localize.component.html",styleUrls:[]}]}],(function(){return[{type:i.LocalizationService}]}),{key:[{type:o.Input}],params:[{type:o.Input}]})},86:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LoadingBarComponent=void 0;var o=n(0),r=(n(16),n(0)),i=n(16),a=n(1);function l(e,t){1&e&&r.ɵɵelement(0,"div",1)}var s=function(){function e(e){this.service=e,this.showIndicator=!1}return e.prototype.ngOnInit=function(){this.service.registerListener(this)},e.prototype.ngOnDestroy=function(){this.service.deregisterListener(this)},e.prototype.start=function(){this.showIndicator=!0},e.prototype.complete=function(){this.showIndicator=!1},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(i.EventService))},e.ɵcmp=r.ɵɵdefineComponent({type:e,selectors:[["loading-bar"]],decls:1,vars:1,consts:[["class","standby-overlay",4,"ngIf"],[1,"standby-overlay"]],template:function(e,t){1&e&&r.ɵɵtemplate(0,l,1,0,"div",0),2&e&&r.ɵɵproperty("ngIf",t.showIndicator)},directives:[a.NgIf],styles:[".standby-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n height: 100%; \n width: 100%; \n z-index: 100;\n}"]}),e}();t.LoadingBarComponent=s,("undefined"==typeof ngDevMode||ngDevMode)&&r.ɵsetClassMetadata(s,[{type:o.Component,args:[{selector:"loading-bar",templateUrl:"./loading-bar.component.html",styleUrls:["./loading-bar.css"]}]}],(function(){return[{type:i.EventService}]}),null)},87:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AuthService=void 0;var o=n(0),r=(n(170),n(153)),i=n(0),a=n(170),l=function(){function e(e){this.service=e,this.user={loggedIn:!1,userName:"",roles:[],roleDisplayLabels:[],version:"0",installedLocales:[]};var t=e.get("user");if(this.service.check("user")&&null!=t&&t.length>0){var n=this.service.get("user"),o=JSON.parse(n);this.buildFromCookieJson(o)}this.loadLocales()}return e.prototype.buildFromCookieJson=function(e){this.user.userName=e.userName,this.buildRolesFromCookie(e),this.user.loggedIn=e.loggedIn,this.user.roleDisplayLabels=e.roleDisplayLabels,this.user.version=e.version.replaceAll("+"," ")},e.prototype.buildRolesFromCookie=function(e){this.user.roles=[];for(var t=e.roles,n=0;n90?t=4:e>70?t=3:e>=40?t=2:e>=20&&(t=1),{idx:t+1,col:this.colors[t]}},e.prototype.ngOnChanges=function(t){var n=t.passwordToCheck.currentValue;if(this.setBarColors(5,"#DDD"),n){var o=this.getColor(e.measureStrength(n));this.setBarColors(o.idx,o.col)}},e.prototype.setBarColors=function(e,t){for(var n=0;n {\n if (!range.conflictMessages) {\n range.conflictMessages = new Set();\n }\n\n range.conflictMessages.delete(this.overlapMessage);\n range.conflictMessages.delete(this.mergeContiguousMessage);\n range.conflictMessages.delete(this.gapMessage);\n range.conflictMessages.delete(this.startDateLaterEndDate);\n });\n\n // Filter DELETE entries from consideration\n const filtered: ValueOverTimeCREditor[] = ranges.filter(range => !range.isDelete());\n\n // Check for overlaps\n for (let j = 0; j < filtered.length; j++) {\n const h1: ValueOverTimeCREditor = filtered[j];\n\n if (h1.startDate && h1.endDate) {\n let s1: any = this.getDateFromDateString(h1.startDate);\n let e1: any = this.getDateFromDateString(h1.endDate);\n\n if (Utils.dateEndBeforeStart(s1, e1)) {\n h1.conflictMessages.add(this.startDateLaterEndDate);\n\n hasConflict = true;\n }\n\n for (let i = 0; i < filtered.length; i++) {\n if (j !== i) {\n const h2: ValueOverTimeCREditor = filtered[i];\n\n // If all dates set\n if (h2.startDate && h2.endDate) {\n let s2: Date = this.getDateFromDateString(h2.startDate);\n let e2: Date = this.getDateFromDateString(h2.endDate);\n\n // Determine if there is an overlap\n if (Utils.dateRangeOverlaps(s1.getTime(), e1.getTime(), s2.getTime(), e2.getTime())) {\n h1.conflictMessages.add(this.overlapMessage);\n\n if (s2.getTime() === e2.getTime()) {\n h2.conflictMessages.add(this.overlapMessage);\n }\n\n hasConflict = true;\n } else if (this.addDay(1, h1.endDate) === h2.startDate && Utils.areValuesEqual(attributeType, h1.value, h2.value)) {\n h1.conflictMessages.add(this.mergeContiguousMessage);\n h2.conflictMessages.add(this.mergeContiguousMessage);\n hasConflict = true;\n }\n } else if ((i === j - 1 || i === j + 1) && e1 && h2.startDate) {\n // If 1st end date and current start date\n\n let s2: Date = this.getDateFromDateString(h2.startDate);\n\n if (s2.getTime() <= e1) {\n h1.conflictMessages.add(this.overlapMessage);\n h2.conflictMessages.add(this.overlapMessage);\n\n hasConflict = true;\n }\n }\n }\n }\n }\n }\n\n this.sort(filtered);\n\n // Check for gaps\n let current = null;\n for (let j = 0; j < filtered.length; j++) {\n let next = filtered[j];\n\n if (j > 0) {\n if (current.endDate && next.startDate) {\n let e1: any = new Date(current.endDate);\n let s2: any = new Date(next.startDate);\n\n if (Utils.hasGap(e1.getTime(), s2.getTime())) {\n next.conflictMessages.add(this.gapMessage);\n\n current.conflictMessages.add(this.gapMessage);\n }\n }\n }\n\n current = next;\n }\n\n this.sort(ranges);\n\n return hasConflict;\n }\n\n public between(test: string | Date, startDate: string, endDate: string) {\n if (test == null || startDate == null || endDate == null) {\n return false;\n }\n\n let dTest: Date = test instanceof Date ? test : this.getDateFromDateString(test);\n let dStart: Date = this.getDateFromDateString(startDate);\n let dEnd: Date = this.getDateFromDateString(endDate);\n\n return dTest >= dStart && dTest <= dEnd;\n }\n\n public addDay(amount: number, date: string): string {\n var plus1: Date = this.getDateFromDateString(date);\n plus1.setDate(plus1.getDate() + amount);\n let splus1: string = this.getDateString(plus1);\n return splus1;\n }\n\n public sort(votArr: TimeRangeEntry[]): void {\n // Sort the data by start date\n votArr.sort(function(a, b) {\n if (a.startDate == null || a.startDate === \"\") {\n return 1;\n } else if (b.startDate == null || b.startDate === \"\") {\n return -1;\n }\n\n let first: any = new Date(a.startDate);\n let next: any = new Date(b.startDate);\n return first - next;\n });\n }\n\n checkExistRanges(ranges: ValueOverTimeCREditor[], existEntries: ValueOverTimeCREditor[]): boolean {\n let hasConflict = false;\n\n // clear all messages\n ranges.forEach(range => {\n if (!range.conflictMessages) {\n range.conflictMessages = new Set();\n }\n\n range.conflictMessages.delete(this.outsideExistsMessage);\n });\n\n // Filter DELETE entries from consideration\n const filtered: ValueOverTimeCREditor[] = ranges.filter(range => !range.isDelete());\n\n const filteredExists = existEntries.filter(range => !range.isDelete());\n\n // Check for outside exists range\n for (let j = 0; j < filtered.length; j++) {\n const h1 = filtered[j];\n\n if (h1.startDate && h1.endDate) {\n let s1: any = this.getDateFromDateString(h1.startDate);\n let e1: any = this.getDateFromDateString(h1.endDate);\n\n let inRange = false;\n\n for (let i = 0; i < filteredExists.length; i++) {\n const h2 = filteredExists[i];\n\n // If all dates set\n if (h2.value && h2.startDate && h2.endDate) {\n let s2: Date = this.getDateFromDateString(h2.startDate);\n let e2: Date = this.getDateFromDateString(h2.endDate);\n\n if (!Utils.dateRangeOutside(s1.getTime(), e1.getTime(), s2.getTime(), e2.getTime())) {\n inRange = true;\n }\n }\n }\n\n if (!inRange) {\n h1.conflictMessages.add(this.outsideExistsMessage);\n hasConflict = true;\n }\n }\n }\n\n return hasConflict;\n }\n\n validateDate(date: Date, required: boolean, allowFutureDates: boolean): {message: string, valid: boolean} {\n let valid = { message: \"\", valid: true };\n let today: Date = new Date();\n\n if (date != null) {\n if (!(date instanceof Date) || (date instanceof Date && isNaN(date.getTime()))) {\n valid.valid = false;\n valid.message = this.localizationService.decode(\"date.inpu.data.invalid.error.message\");\n } else if (!allowFutureDates && date > today) {\n valid.valid = false;\n valid.message = this.localizationService.decode(\"date.inpu.data.in.future.error.message\");\n }\n } else if (required) {\n valid.valid = false;\n valid.message = this.localizationService.decode(\"manage.versions.date.required.message\");\n }\n\n return valid;\n }\n\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { LocalizationService } from \"@shared/service\";\n\n@Pipe({ name: \"localize\" })\nexport class LocalizePipe implements PipeTransform {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: LocalizationService) { }\n\n transform(value: string): string {\n return this.service.decode(value);\n }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { LocalizedValue, LocaleView } from \"@shared/model/core\";\n\ndeclare let Globalize: any;\ndeclare let com: any;\ndeclare let registry: any;\n\n@Injectable()\nexport class LocalizationService {\n\n locales: LocaleView[] = [];\n locale: string;\n\n private parser: any = Globalize.numberParser();\n private formatter: any = Globalize.numberFormatter();\n\n constructor() {\n this.locales = registry.locales;\n this.locale = registry.locale;\n }\n\n addLocale(locale: LocaleView): void {\n let exists: boolean = false;\n\n for (let i = 0; i < this.locales.length; ++i) {\n if (this.locales[i].tag === locale.tag) {\n exists = true;\n this.locales[i] = locale;\n }\n }\n\n if (!exists) {\n this.locales.push(locale);\n }\n }\n\n setLocales(locales: LocaleView[]): void {\n this.locales = locales;\n }\n\n getLocale(): string {\n return this.locale;\n }\n\n getLocales(): LocaleView[] {\n return this.locales;\n }\n\n create(): LocalizedValue {\n const value = { localizedValue: \"\", localeValues: [] } as LocalizedValue;\n\n this.locales.forEach(locale => {\n // if (!locale.isDefaultLocale)\n // {\n value.localeValues.push({ locale: locale.toString, value: \"\" });\n // }\n });\n\n return value;\n }\n\n remove(locale: LocaleView): void {\n for (let i = 0; i < this.locales.length; ++i) {\n if (this.locales[i].tag === locale.tag) {\n this.locales.splice(i, 1);\n return;\n }\n }\n\n // eslint-disable-next-line no-console\n console.log(\"Could not remove locale from array because we could not find it.\", locale, this.locales);\n }\n\n public parseNumber(value: string): number {\n if (value != null && value.length > 0) {\n // convert data from view format to model format\n let number = this.parser(value);\n\n return number;\n }\n\n return null;\n }\n\n public formatNumber(value: any): string {\n if (value != null) {\n let number = value;\n\n if (typeof number === \"string\") {\n if (number.length > 0 && Number(number)) {\n number = Number(value);\n } else {\n return \"\";\n }\n }\n\n // convert data from model format to view format\n return this.formatter(number);\n }\n\n return null;\n }\n\n public localize(bundle: string, key: string): string {\n return com.runwaysdk.Localize.localize(bundle, key);\n }\n\n public get(key: string): string {\n return com.runwaysdk.Localize.get(key);\n }\n\n public decode(key: string): string {\n let index = key.lastIndexOf(\".\");\n\n if (index !== -1) {\n let temp = [key.slice(0, index), key.slice(index + 1)];\n\n return this.localize(temp[0], temp[1]);\n } else {\n return this.get(key);\n }\n }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\ndeclare let acp;\n\nexport interface IEventListener {\n start(): void;\n complete(): void;\n}\n\n@Injectable()\nexport class EventService {\n\n private listeners: IEventListener[] = [];\n\n public registerListener(listener: IEventListener): void {\n this.listeners.push(listener);\n }\n\n public deregisterListener(listener: IEventListener): boolean {\n let indexOfItem = this.listeners.indexOf(listener);\n\n if (indexOfItem === -1) {\n return false;\n }\n\n this.listeners.splice(indexOfItem, 1);\n\n return true;\n }\n\n public start(): void {\n for (const listener of this.listeners) {\n listener.start();\n }\n }\n\n public complete(): void {\n for (const listener of this.listeners) {\n listener.complete();\n }\n }\n}\n","\nimport { Injectable } from '@angular/core';\nimport { HttpHeaders, HttpClient } from '@angular/common/http';\n\nimport { finalize } from 'rxjs/operators';\n\nimport { EventService } from '@shared/service'\n\ndeclare var acp: any;\n\n@Injectable()\nexport class ForgotPasswordService {\n\n\tconstructor(private http: HttpClient, private eventService: EventService) { }\n\n\tsubmit(username: string): Promise {\n\t\tlet headers = new HttpHeaders({\n\t\t\t'Content-Type': 'application/json'\n\t\t});\n\n\t\tthis.eventService.start();\n\n\t\treturn this.http\n\t\t\t.post(acp + '/forgotpassword/initiate', JSON.stringify({ username: username }), { headers: headers })\n\t\t\t.pipe(finalize(() => {\n\t\t\t\tthis.eventService.complete();\n\t\t\t}))\n\t\t\t.toPromise();\n\t}\n\n\tcomplete(newPassword: string, token: string): Promise {\n\t\tlet headers = new HttpHeaders({\n\t\t\t'Content-Type': 'application/json'\n\t\t});\n\n\t\tthis.eventService.start();\n\n\t\treturn this.http\n\t\t\t.post(acp + '/forgotpassword/complete', JSON.stringify({ newPassword: newPassword, token: token }), { headers: headers })\n\t\t\t.pipe(finalize(() => {\n\t\t\t\tthis.eventService.complete();\n\t\t\t}))\n\t\t\t.toPromise();\n\t}\n}\n","import { Component, Input } from \"@angular/core\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { ProfileComponent } from \"../profile/profile.component\";\n\nimport { AuthService, ProfileService, LocalizationService } from \"@shared/service\";\n\nimport { RegistryRoleType, LocaleView } from \"@shared/model/core\";\n\ndeclare let acp: string;\ndeclare let registry: any;\n\n@Component({\n\n selector: \"cgr-header\",\n templateUrl: \"./header.component.html\",\n styleUrls: []\n})\nexport class CgrHeaderComponent {\n\n context: string;\n isAdmin: boolean;\n isMaintainer: boolean;\n isContributor: boolean;\n bsModalRef: BsModalRef;\n\n defaultLocaleView: LocaleView;\n locales: LocaleView[];\n locale: string;\n\n @Input() loggedIn: boolean = true;\n\n constructor(\n private modalService: BsModalService,\n private profileService: ProfileService,\n private service: AuthService,\n localizationService: LocalizationService\n ) {\n this.context = acp;\n this.isAdmin = service.isAdmin();\n this.isMaintainer = this.isAdmin || service.isMaintainer();\n this.isContributor = this.isAdmin || this.isMaintainer || service.isContributer();\n\n if (localizationService.getLocales()) {\n this.locales = localizationService.getLocales().filter(locale => locale.toString !== \"defaultLocale\");\n this.defaultLocaleView = localizationService.getLocales().filter(locale => locale.toString === \"defaultLocale\")[0];\n } else {\n this.locales = [];\n this.defaultLocaleView = null;\n }\n this.locale = localizationService.getLocale();\n\n let found: boolean = false;\n\n for (let i = 0; i < this.locales.length; ++i) {\n if (this.locales[i].toString === this.locale) {\n found = true;\n }\n }\n\n if (!found) {\n this.locale = \"\";\n }\n }\n\n shouldShowMenuItem(item: string): boolean {\n if (item === \"HIERARCHIES\") {\n return true;\n } else if (item === \"LISTS\") {\n // return this.service.hasExactRole(RegistryRoleType.SRA) || this.service.hasExactRole(RegistryRoleType.RA) || this.service.hasExactRole(RegistryRoleType.RM) || this.service.hasExactRole(RegistryRoleType.RC) || this.service.hasExactRole(RegistryRoleType.AC);\n return true;\n } else if (this.service.hasExactRole(RegistryRoleType.SRA)) {\n return true;\n } else if (item === \"IMPORT\") {\n return this.service.hasExactRole(RegistryRoleType.RA) || this.service.hasExactRole(RegistryRoleType.RM);\n } else if (item === \"SCHEDULED-JOBS\") {\n return this.service.hasExactRole(RegistryRoleType.RA) || this.service.hasExactRole(RegistryRoleType.RM);\n } else if (item === \"NAVIGATOR\") {\n return this.service.hasExactRole(RegistryRoleType.SRA) || this.service.hasExactRole(RegistryRoleType.RA) || this.service.hasExactRole(RegistryRoleType.RM) || this.service.hasExactRole(RegistryRoleType.RC);\n } else if (item === \"CHANGE-REQUESTS\") {\n return this.service.hasExactRole(RegistryRoleType.RA) || this.service.hasExactRole(RegistryRoleType.RM) || this.service.hasExactRole(RegistryRoleType.RC);\n } else if (item === \"TASKS\") {\n return this.service.hasExactRole(RegistryRoleType.SRA) || this.service.hasExactRole(RegistryRoleType.RA) || this.service.hasExactRole(RegistryRoleType.RM);\n } else if (item === \"EVENTS\") {\n return this.service.hasExactRole(RegistryRoleType.SRA) || this.service.hasExactRole(RegistryRoleType.RA) || this.service.hasExactRole(RegistryRoleType.RM);\n } else if (item === \"CONFIGS\") {\n return this.service.hasExactRole(RegistryRoleType.RA);\n } else if (item === \"SETTINGS\") {\n return true;\n } else {\n return false;\n }\n }\n\n logout(): void {\n sessionStorage.removeItem(\"locales\");\n\n window.location.href = acp + \"/session/logout\";\n\n // this.sessionService.logout().then( response => {\n // this.router.navigate( ['/login'] );\n // } );\n }\n\n getUsername() {\n let name: string = this.service.getUsername();\n\n return name;\n }\n\n setLocale() {\n this.profileService.setLocale(this.locale).then(() => {\n // Refresh the page\n window.location.reload();\n });\n }\n\n account(): void {\n this.profileService.get().then(profile => {\n this.bsModalRef = this.modalService.show(ProfileComponent, { backdrop: \"static\", class: \"gray modal-lg\" });\n this.bsModalRef.content.profile = profile;\n });\n }\n\n}\n","\n
\n \n
\n","import { Injectable } from \"@angular/core\";\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from \"@angular/router\";\nimport { AuthService } from \"./auth.service\";\n\n@Injectable()\nexport class AdminGuard implements CanActivate {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: AuthService, private router: Router) { }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n if (this.service.isAdmin()) {\n return true;\n }\n\n this.router.navigate([\"/export\"]);\n\n return false;\n }\n\n}\n\n@Injectable()\nexport class MaintainerGuard implements CanActivate {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: AuthService, private router: Router) { }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n if (this.service.isAdmin() || this.service.isMaintainer()) {\n return true;\n }\n\n this.router.navigate([\"/export\"]);\n\n return false;\n }\n\n}\n\n@Injectable()\nexport class ContributerGuard implements CanActivate {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: AuthService, private router: Router) { }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n if (this.service.isAdmin() || this.service.isMaintainer() || this.service.isContributer()) {\n return true;\n }\n\n this.router.navigate([\"/export\"]);\n\n return false;\n }\n\n}\n\n@Injectable()\nexport class AuthGuard implements CanActivate {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: AuthService, private router: Router) { }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n if (this.service.isLoggedIn()) {\n return true;\n }\n\n this.router.navigate([\"/login\"]);\n\n return false;\n }\n\n}\n\n","import { Component, Input } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Profile } from \"@shared/model/profile\";\nimport { AuthService, ProfileService } from \"@shared/service\";\nimport { Role } from \"../../../admin/model/account\";\n\n@Component({\n selector: \"profile\",\n templateUrl: \"./profile.component.html\",\n styles: [\".modal-form .check-block .chk-area { margin: 10px 0px 0 0;}\"]\n})\nexport class ProfileComponent {\n\n public _profile: Profile = {\n oid: \"\",\n username: \"\",\n password: \"\",\n firstName: \"\",\n lastName: \"\",\n email: \"\",\n changePassword: false\n };\n\n // eslint-disable-next-line accessor-pairs\n @Input(\"profile\")\n set profile(value: Profile) {\n this._profile = value;\n this.getRoles();\n }\n\n roles: Role[] = [];\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: ProfileService, public bsModalRef: BsModalRef, private authService: AuthService) { }\n\n getRoles(): void {\n this.service.getRolesForUser(this._profile.oid).then(roles => {\n this.roles = roles;\n });\n }\n\n onSubmit(): void {\n if (!this._profile.changePassword) {\n delete this._profile.password;\n }\n\n this.service.apply(this._profile).then(profile => {\n this.bsModalRef.hide();\n });\n }\n\n onChangePassword(): void {\n this._profile.changePassword = !this._profile.changePassword;\n }\n\n // getRoles():string {\n // return this.authService.getRoleDisplayLabels();\n // }\n\n getRolesArray(): any {\n return this.authService.getRoles();\n }\n\n cancel(): void {\n this.service.unlock(this._profile.oid).then(profile => {\n this.bsModalRef.hide();\n });\n }\n\n}\n","
\n \n\n
\n
\n
\n

\n \n

\n
\n\n
\n
\n \n
\n
\n \n \n \n
\n
\n \n
\n
\n \n
\n
\n \n \n \n
\n
\n \n
\n
\n \n
\n
\n \n \n \n
\n
\n
\n
\n \n
\n
\n \n \n \n
\n
\n\n
\n
\n \n
\n
\n \n \n \n
\n
\n
\n
\n \n
\n
\n \n \n \n
\n
\n\n \n
\n
\n \n
\n
\n \n \n \n
\n \n
\n
\n
\n\n
\n
\n \n
\n
\n \n \n \n
\n
\n
\n
\n \n
\n
\n \n \n \n
\n
\n \n\n
\n

\n \n

\n
\n\n
\n
\n \n
\n
\n \n \n \n
\n
\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n
\n \n
\n
\n \n \n \n \n \n
\n
\n
\n
\n \n
\n
\n \n \n \n
\n \n
\n
\n
\n
\n\n\n
\n
\n \n
\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n \n
\n {{role.label.localizedValue}}\n \n \n \n \n \n {{role.label.localizedValue}}\n \n {{role.orgLabel.localizedValue}}\n \n \n 0 && role.assigned\">\n {{role.label.localizedValue}}\n 0 && role.assigned\">\n {{role.orgLabel.localizedValue}}\n 0 && role.assigned\">\n {{role.geoObjectTypeLabel.localizedValue}}\n
\n \n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n","/* eslint-disable no-use-before-define */\n/* eslint-disable no-unused-vars */\nimport { LocalizationService } from \"@shared/service/localization.service\";\n\nexport interface MessageContainer {\n setMessage(message: string);\n}\n\nexport class LocaleValue {\n\n locale: string;\n value: string;\n\n constructor(locale: string, value: string) {\n this.locale = locale;\n this.value = value;\n }\n\n}\n\nexport class LocaleView {\n\n constructor(lService: LocalizationService) {\n this.label = lService.create();\n this.toString = \"\";\n this.tag = \"\";\n this.isDefaultLocale = false;\n this.language = { label: \"\", code: \"\" };\n this.country = { label: \"\", code: \"\" };\n this.variant = { label: \"\", code: \"\" };\n }\n\n label: LocalizedValue;\n toString: string;\n tag: string;\n isDefaultLocale: boolean;\n language: { label: string, code: string };\n country: { label: string, code: string };\n variant: { label: string, code: string };\n\n}\n\nexport class Organization {\n\n code: string;\n label: any;\n contactInfo: any;\n\n}\n\nexport class ExternalSystem {\n\toid?: string;\n\tid: string;\n\ttype: string;\n\torganization: string;\n\tlabel: LocalizedValue;\n\tdescription: LocalizedValue;\n\tusername?: string;\n\tpassword?: string;\n\turl?: string;\n\tsystem?: string;\n\tversion?: string;\n\toAuthServer?: OAuthServer;\n}\n\nexport class OAuthServer {\n\n keyName?: string;\n label?: LocalizedValue;\n url?: string;\n authorizationLocation: string;\n tokenLocation: string;\n profileLocation: string;\n clientId: string;\n secretKey: string;\n serverType: string;\n\n}\n\nexport class PageResult {\n\n count: number;\n pageNumber: number;\n pageSize: number;\n resultSet: T[];\n externalSystems?: ExternalSystem[];\n\n}\n\nexport class LocalizedValue {\n\n localizedValue: string;\n localeValues: LocaleValue[];\n\n constructor(localizedValue: string, localeValues: LocaleValue[]) {\n this.localizedValue = localizedValue;\n this.localeValues = localeValues;\n }\n\n public getValue(localeToString: string): string {\n let len = this.localeValues.length;\n\n for (let i = 0; i < len; ++i) {\n let lv = this.localeValues[i];\n\n if (lv.locale === localeToString) {\n return lv.value;\n }\n }\n\n return this.localizedValue;\n }\n\n /*\n * Populates lv1 with all values contained in lv2\n */\n public static populate(lv1: LocalizedValue, lv2: LocalizedValue) {\n if (lv1 == null || lv2 == null) {\n return;\n }\n\n lv1.localizedValue = lv2.localizedValue;\n\n if (lv2.localeValues != null) {\n lv2.localeValues.forEach(lv2lv => {\n if (lv1.localeValues) {\n let found = false;\n\n lv1.localeValues.forEach(lv1lv => {\n if (!found && lv1lv.locale === lv2lv.locale) {\n lv1lv.value = lv2lv.value;\n found = true;\n }\n });\n\n if (!found) {\n lv1.localeValues.push(JSON.parse(JSON.stringify(lv2lv)));\n }\n } else {\n lv1.localeValues = lv2.localeValues;\n }\n });\n }\n }\n\n}\n\nexport class RoleBuilder {\n\n static buildFromRoleName(roleName: string): RegistryRole {\n if (roleName === \"cgr.SRA\") {\n return new RegistryRole(RegistryRoleType.SRA, \"\", \"\", \"cgr.SRA\");\n }\n\n let roleSplit = roleName.split(\".\");\n\n let orgCode: string = roleSplit[2];\n\n if (roleSplit.length === 4) {\n return new RegistryRole(RegistryRoleType.RA, orgCode, \"\", roleName);\n } else if (roleSplit.length === 5) {\n let roleSuffix: string = roleSplit[4];\n\n let gotCode: string = roleSplit[3];\n\n if (roleSuffix === \"RM\") {\n return new RegistryRole(RegistryRoleType.RM, orgCode, gotCode, roleName);\n } else if (roleSuffix === \"RC\") {\n return new RegistryRole(RegistryRoleType.RC, orgCode, gotCode, roleName);\n } else if (roleSuffix === \"AC\") {\n return new RegistryRole(RegistryRoleType.AC, orgCode, gotCode, roleName);\n }\n } else {\n return null;\n }\n }\n\n}\n\nexport class RegistryRole {\n\n type: RegistryRoleType;\n orgCode: string;\n geoObjectTypeCode: string;\n roleName: string;\n displayLabel: string;\n\n constructor(type: RegistryRoleType, orgCode: string, geoObjectTypeCode: string, roleName: string) {\n this.type = type;\n this.orgCode = orgCode;\n this.geoObjectTypeCode = geoObjectTypeCode;\n this.roleName = roleName;\n }\n\n}\n\nexport enum RegistryRoleType {\n SRA,\n RA,\n RM,\n RC,\n AC\n}\n","import { Component } from \"@angular/core\";\nimport { ModalStepIndicatorService } from \"@shared/service\";\n\nimport { Step, StepConfig } from \"@shared/model/modal\";\nimport { Subscription } from \"rxjs\";\n\n@Component({\n selector: \"modal-step-indicator\",\n templateUrl: \"./modal-step-indicator.component.html\",\n styleUrls: [\"./modal-step-indicator.css\"]\n})\nexport class ModalStepIndicatorComponent {\n\n stepConfig: StepConfig;\n step: Step;\n stepSubscription: Subscription;\n\n constructor(private modalStepIndicatorService: ModalStepIndicatorService) {\n this.stepSubscription = modalStepIndicatorService.modalStepChange.subscribe(stepConfig => {\n this.stepConfig = stepConfig;\n });\n }\n\n ngOnInit(): void {\n }\n\n ngOnDestroy() {\n this.stepSubscription.unsubscribe();\n }\n\n}\n","
\n
    0\" class=\"nav nav-justified\">\n
  • {{step.label}}
  • \n
\n
","import { Component, OnInit } from \"@angular/core\";\n\nimport { Progress } from \"@shared/model/progress\";\nimport { ProgressService, IProgressListener } from \"@shared/service\";\n\n@Component({\n\n selector: \"progress-bar\",\n templateUrl: \"./progress-bar.component.html\",\n styles: [\n \".progress-overlay { background-color: #CCCCCC; position: absolute; display: block;opacity: 0.8;z-index: 99999 !important;}\",\n \".progress-div { width: 100%; margin-left: 0; padding-left: 25%; padding-right: 25%; margin-top: 30% }\"\n ]\n})\nexport class ProgressBarComponent implements OnInit, IProgressListener {\n\n public showIndicator: boolean = true;\n\n public prog: Progress = {\n current: 0,\n total: 1,\n description: \"Initializing\"\n };\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: ProgressService) { }\n\n ngOnInit(): void {\n this.service.registerListener(this);\n }\n\n ngOnDestroy(): void {\n this.service.deregisterListener(this);\n }\n\n start(): void {\n this.prog = {\n current: 0,\n total: 1,\n description: \"Initializing\"\n };\n\n this.showIndicator = true;\n }\n\n progress(progress: Progress): void {\n this.prog = progress;\n }\n\n complete(): void {\n this.showIndicator = false;\n }\n\n}\n","
\n
\n {{prog.description}}\n
\n
\n","import { Injectable } from \"@angular/core\";\nimport { HttpHeaders, HttpClient, HttpParams } from \"@angular/common/http\";\nimport { finalize } from \"rxjs/operators\";\nimport { EventService } from \"@shared/service\";\nimport { ExternalSystem, PageResult } from \"@shared/model/core\";\n\ndeclare let acp: any;\n\n@Injectable()\nexport class ExternalSystemService {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private http: HttpClient, private eventService: EventService) { }\n\n getExternalSystems(pageNumber: number, pageSize: number): Promise> {\n let params: HttpParams = new HttpParams();\n params = params.set(\"pageNumber\", pageNumber.toString());\n params = params.set(\"pageSize\", pageSize.toString());\n\n this.eventService.start();\n\n return this.http\n .get>(acp + \"/external-system/get-all\", { params: params })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n getExternalSystem(oid: string): Promise {\n let params: HttpParams = new HttpParams();\n params = params.set(\"oid\", oid);\n\n this.eventService.start();\n\n return this.http\n .get(acp + \"/external-system/get\", { params: params })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n applyExternalSystem(system: ExternalSystem): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/external-system/apply\", JSON.stringify({ system: system }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n getSystemCapabilities(system: ExternalSystem): Promise<{ oauth: boolean }> {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post<{ oauth: boolean }>(acp + \"/external-system/system-capabilities\", JSON.stringify({ system: system }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n removeExternalSystem(oid: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/external-system/remove\", JSON.stringify({ oid: oid }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { Step, StepConfig } from \"@shared/model/modal\";\n\ndeclare let acp: string;\n\n@Injectable()\nexport class ModalStepIndicatorService {\n\n stepConfig: StepConfig;\n step: Step;\n private modalStepChangedSource = new Subject();\n modalStepChange = this.modalStepChangedSource.asObservable();\n\n\n // eslint-disable-next-line no-useless-constructor\n constructor() { }\n\n public getStepConfig(): StepConfig {\n return this.stepConfig;\n }\n\n public setStepConfig(config: StepConfig): void {\n this.stepConfig = config;\n\n this.modalStepChangedSource.next(this.stepConfig);\n }\n\n getStep(): Step {\n return this.step;\n }\n\n setStep(step: Step): void {\n this.step = step;\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpHeaders, HttpClient } from \"@angular/common/http\";\n\nimport { finalize } from \"rxjs/operators\";\n\nimport { EventService } from \"@shared/service\";\n\nimport { Organization } from \"@shared/model/core\";\n\ndeclare var acp: any;\n\n@Injectable()\nexport class OrganizationService {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private http: HttpClient, private eventService: EventService) { }\n\n getOrganizations(): Promise {\n this.eventService.start();\n\n return this.http\n .get(acp + \"/cgr/organizations/get-all\")\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n updateOrganization(json: any): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/cgr/orgainization/update\", JSON.stringify({ json: json }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n newOrganization(json: any): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/cgr/orgainization/create\", JSON.stringify({ json: json }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n removeOrganization(code: any): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/cgr/orgainization/delete\", JSON.stringify({ code: code }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n}\n","import { AuthService } from \"./auth.service\";\nimport { EventService } from \"./event.service\";\nimport { ExternalSystemService } from \"./external-system.service\";\nimport { AdminGuard, AuthGuard, ContributerGuard, MaintainerGuard } from \"./guard.service\";\nimport { LocalizationService } from \"./localization.service\";\nimport { ModalStepIndicatorService } from \"./modal-step-indicator.service\";\nimport { OrganizationService } from \"./organization.service\";\nimport { PendingChangesGuard } from \"./pending-changes-guard\";\nimport { ProfileService } from \"./profile.service\";\nimport { ProgressService } from \"./progress.service\";\nimport { SessionService } from \"./session.service\";\nimport { DateService } from \"./date.service\";\n\nexport const services: any[] = [\n AuthService,\n EventService,\n ExternalSystemService,\n AdminGuard,\n AuthGuard,\n ContributerGuard,\n MaintainerGuard,\n LocalizationService,\n ModalStepIndicatorService,\n OrganizationService,\n PendingChangesGuard,\n ProfileService,\n ProgressService,\n SessionService,\n DateService\n];\n\nexport * from \"./auth.service\";\nexport * from \"./event.service\";\nexport * from \"./external-system.service\";\nexport * from \"./guard.service\";\nexport * from \"./localization.service\";\nexport * from \"./modal-step-indicator.service\";\nexport * from \"./organization.service\";\nexport * from \"./pending-changes-guard\";\nexport * from \"./profile.service\";\nexport * from \"./progress.service\";\nexport * from \"./session.service\";\nexport * from \"./date.service\";\n","import { CanDeactivate } from \"@angular/router\";\nimport { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\n\n// Thanks to : https://stackoverflow.com/a/41187919/219843\n\nexport interface ComponentCanDeactivate {\n canDeactivate: () => boolean | Observable;\n afterDeactivate: (arg: boolean) => void;\n}\n\n@Injectable()\nexport class PendingChangesGuard implements CanDeactivate {\n\n canDeactivate(component: ComponentCanDeactivate): boolean | Observable {\n if (!component.canDeactivate()) {\n // NOTE: this warning message will only be shown when navigating elsewhere within your angular app;\n // when navigating away from your angular app, the browser will show a generic warning message\n // see http://stackoverflow.com/a/42207299/7307355\n let confirmRet = confirm(\"WARNING: You have unsaved changes. Press Cancel to go back and save these changes, or OK to lose these changes.\");\n\n component.afterDeactivate(confirmRet);\n\n return confirmRet;\n }\n\n return true;\n }\n}","import { Injectable } from \"@angular/core\";\nimport { HttpHeaders, HttpClient } from \"@angular/common/http\";\n\n// import 'rxjs/add/operator/toPromise';\n\nimport { Profile } from \"@shared/model/profile\";\n\ndeclare let acp: any;\n\n@Injectable()\nexport class ProfileService {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private http: HttpClient) { }\n\n get(): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n return this.http\n .post(acp + \"/registryaccount/get\", { headers: headers })\n .toPromise();\n }\n\n\n apply(profile: Profile): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n return this.http\n .post(acp + \"/registryaccount/apply\", JSON.stringify({ account: profile }), { headers: headers })\n .toPromise();\n }\n\n unlock(oid: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n return this.http\n .post(acp + \"/registryaccount/unlock\", JSON.stringify({ oid: oid }), { headers: headers })\n .toPromise()\n }\n\n setLocale(locale: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n return this.http\n .post(acp + \"/localization/set-locale\", JSON.stringify({ locale: locale }), { headers: headers })\n .toPromise();\n }\n\n getRolesForUser(userOID: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n\n return this.http\n .post(acp + \"/registryaccount/getRolesForUser\", { userOID: userOID }, { headers: headers })\n .toPromise();\n }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { Progress } from \"@shared/model/progress\";\n\nexport interface IProgressListener {\n start(): void;\n progress(progress: Progress): void;\n complete(): void;\n}\n\n@Injectable()\nexport class ProgressService {\n\n private listeners: IProgressListener[] = [];\n\n // eslint-disable-next-line no-useless-constructor\n public constructor() { }\n\n public registerListener(listener: IProgressListener): void {\n this.listeners.push(listener);\n }\n\n public deregisterListener(listener: IProgressListener): boolean {\n let indexOfItem = this.listeners.indexOf(listener);\n\n if (indexOfItem === -1) {\n return false;\n }\n\n this.listeners.splice(indexOfItem, 1);\n\n return true;\n }\n\n public start(): void {\n for (const listener of this.listeners) {\n listener.start();\n }\n }\n\n public progress(progress: Progress): void {\n for (const listener of this.listeners) {\n listener.progress(progress);\n }\n }\n\n public complete(): void {\n for (const listener of this.listeners) {\n listener.complete();\n }\n }\n}","import { Injectable } from \"@angular/core\";\nimport { HttpHeaders, HttpClient } from \"@angular/common/http\";\n\n// import 'rxjs/add/operator/toPromise';\nimport { finalize } from \"rxjs/operators\";\n\nimport { EventService } from \"./event.service\";\n\nimport { AuthService } from \"./auth.service\";\nimport { User } from \"@shared/model/user\";\n\ndeclare let acp: any;\n\n@Injectable()\nexport class SessionService {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: EventService, private http: HttpClient, private authService: AuthService) { }\n\n login(username: string, password: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.service.start();\n\n return this.http\n .post(acp + \"/cgrsession/login\", JSON.stringify({ username: username, password: password }), { headers: headers })\n .pipe(finalize(() => {\n this.service.complete();\n }))\n .toPromise()\n .then((logInResponse: any) => {\n this.authService.afterLogIn(logInResponse);\n\n return logInResponse;\n })\n }\n\n logout(): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.service.start();\n\n\n return this.http\n .post(acp + \"/session/logout\", { headers: headers })\n .pipe(finalize(() => {\n this.service.complete();\n }))\n .toPromise()\n .then((response: any) => {\n this.authService.afterLogOut();\n\n return response;\n })\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { LocalizationService } from \"@shared/service\";\n\n@Component({\n selector: \"error-message\",\n templateUrl: \"./error-message.component.html\",\n styleUrls: [\"./error-message.css\"]\n})\nexport class ErrorMessageComponent {\n\n /*\n * Message\n */\n @Input() message: string = this.localizeService.decode(\"error.modal.default.message\");\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private localizeService: LocalizationService) { }\n\n}\n","
\n
\n \n \n \n
\n
\n
\n

{{message}}

\n
\n
\n
","import { Component, Input } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Subject } from \"rxjs\";\nimport { LocalizationService } from \"@shared/service\";\nimport { ModalTypes } from \"@shared/model/modal\";\n\n@Component({\n selector: \"confirm-modal\",\n templateUrl: \"./confirm-modal.component.html\",\n styleUrls: [\"./modal.css\"]\n})\nexport class ConfirmModalComponent {\n\n /*\n * Message\n */\n @Input() message: string = this.localizeService.decode(\"confirm.modal.default.message\");\n\n @Input() data: any;\n\n @Input() submitText: string = this.localizeService.decode(\"modal.button.submit\");\n\n @Input() cancelText: string = this.localizeService.decode(\"modal.button.cancel\");\n\n @Input() type: ModalTypes = ModalTypes.warning;\n\n /*\n * Called on confirm\n */\n public onConfirm: Subject;\n\n /*\n * Called on cancel\n */\n public onCancel: Subject;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef, private localizeService: LocalizationService) { }\n\n ngOnInit(): void {\n this.onConfirm = new Subject();\n this.onCancel = new Subject();\n }\n\n confirm(): void {\n this.bsModalRef.hide();\n this.onConfirm.next(this.data);\n }\n\n cancel(): void {\n this.bsModalRef.hide();\n this.onCancel.next(this.data);\n }\n\n}\n","
\n
\n\n
\n
\n

{{message}}

\n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n
\n
","import { Component, Input } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { LocalizationService } from \"@shared/service\";\n\n@Component({\n selector: \"error-modal\",\n templateUrl: \"./error-modal.component.html\",\n styleUrls: [\"./error-modal.css\"]\n})\nexport class ErrorModalComponent {\n\n /*\n * Message\n */\n @Input() message: string = this.localizeService.decode(\"error.modal.default.message\");\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef, private localizeService: LocalizationService) { }\n\n}\n","
\n\t
\n\n\t\t
\n\t\t\t
\n\t\t\t\t

{{message}}

\n\t\t\t
\n\t\t
\n\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
\n
\n","import { Component, Input, OnInit } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Subject } from \"rxjs\";\nimport { LocalizationService } from \"@shared/service\";\n\n@Component({\n selector: \"success-modal\",\n templateUrl: \"./success-modal.component.html\",\n styleUrls: [\"./success-modal.css\"]\n})\nexport class SuccessModalComponent implements OnInit {\n\n /*\n * Message\n */\n @Input() message: string;\n\n @Input() submitText: string = this.localizeService.decode(\"modal.button.close\");\n\n public onConfirm: Subject;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef, private localizeService: LocalizationService) { }\n\n ngOnInit(): void {\n this.message = this.message ? this.message : this.localizeService.decode(\"success.modal.default.message\");\n this.onConfirm = new Subject();\n }\n\n confirm(): void {\n this.bsModalRef.hide();\n this.onConfirm.next();\n }\n\n}\n","
\n\t
\n\n\t\t
\n\t\t\t
\n\t\t\t\t

{{message}}

\n\t\t\t
\n\t\t
\n\n\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
\n\n
\n","import { Component } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { LocalizationService } from \"@shared/service\";\n\nexport class GenericButton {\n\n label: string;\n onClick: Function;\n shouldClose: boolean;\n class: string;\n\n}\n\n@Component({\n selector: \"generic-modal\",\n templateUrl: \"./generic-modal.component.html\",\n styleUrls: [\"./modal.css\"]\n})\nexport class GenericModalComponent {\n\n /*\n * Message\n */\n message: string = this.localizeService.decode(\"confirm.modal.default.message\");\n\n buttons: GenericButton[] = [];\n\n data: any;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef, private localizeService: LocalizationService) { }\n\n init(message: string, buttons: GenericButton[]): void {\n this.message = message;\n this.buttons = buttons;\n }\n\n onClick(button: GenericButton): void {\n if (button.shouldClose) {\n this.bsModalRef.hide();\n }\n\n button.onClick(this.data);\n }\n\n}\n","
\n
\n\n
\n
\n

{{message}}

\n
\n
\n\n
\n
\n
\n \n
\n
\n
\n
\n
","var map = {\n\t\"./admin/admin.module\": [\n\t\t270,\n\t\t\"vendor\",\n\t\t0,\n\t\t2\n\t],\n\t\"./registry/registry.module\": [\n\t\t271,\n\t\t\"vendor\",\n\t\t0,\n\t\t1\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__.t(id, 7);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 189;\nmodule.exports = webpackAsyncContext;","///\n/// Copyright (c) 2015 TerraFrame, Inc. All rights reserved.\n///\n/// This file is part of Runway SDK(tm).\n///\n/// Runway SDK(tm) is free software: you can redistribute it and/or modify\n/// it under the terms of the GNU Lesser General Public License as\n/// published by the Free Software Foundation, either version 3 of the\n/// License, or (at your option) any later version.\n///\n/// Runway SDK(tm) is distributed in the hope that it will be useful, but\n/// WITHOUT ANY WARRANTY; without even the implied warranty of\n/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n/// GNU Lesser General Public License for more details.\n///\n/// You should have received a copy of the GNU Lesser General Public\n/// License along with Runway SDK(tm). If not, see .\n///\nimport { Component, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { Subscription } from 'rxjs';\n\nimport { Application } from '@shared/model/application';\nimport { SessionService } from '@shared/service';\nimport { HubService } from '@core/service/hub.service';\n\nimport { ErrorHandler, ErrorModalComponent } from '@shared/component';\n\nimport { LoginHeaderComponent } from './login-header.component';\n\ndeclare var acp: any;\n\n@Component( {\n selector: 'login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.css']\n} )\nexport class LoginComponent implements OnInit {\n context: string;\n username: string = '';\n password: string = '';\n \n oauthServers: any[] = null;\n viewOauthServers: boolean = false;\n \n sub: Subscription;\n\n /*\n * Reference to the modal current showing\n */\n private bsModalRef: BsModalRef;\n\n ngOnInit(): void {\n this.hService.oauthGetPublic(null).then(oauthServers => {\n \n if (oauthServers && oauthServers.length > 0)\n {\n this.oauthServers = oauthServers;\n }\n \n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n \n this.sub = this.route.params.subscribe(params => {\n if (params['errorMsg'] != null)\n {\n this.bsModalRef = this.modalService.show(ErrorModalComponent, { backdrop: true });\n \n let encodedError = params['errorMsg'];\n let decodedError = encodedError.replaceAll(\"+\", \" \");\n \n this.bsModalRef.content.message = decodedError;\n }\n });\n }\n\n constructor( private service: SessionService, private hService: HubService, private modalService: BsModalService, private router: Router, private route: ActivatedRoute ) {\n this.context = acp as string;\n }\n \n public onClickDhis2(url: any): void {\n if (url == null)\n {\n if (this.oauthServers.length == 1)\n {\n window.location.href = this.oauthServers[0].url;\n }\n else\n {\n this.viewOauthServers = !this.viewOauthServers;\n }\n }\n else\n {\n window.location.href = url;\n }\n }\n\n onSubmit(): void {\n this.service.login( this.username, this.password ).then( response => {\n\n this.hService.applications().then( applications => {\n if ( applications.length == 1 ) {\n this.open( applications[0] );\n }\n else {\n this.router.navigate( ['/menu/true'] );\n }\n } );\n } ).catch(( err: HttpErrorResponse ) => {\n this.error( err );\n } );\n }\n\n open( application: Application ): void {\n window.location.href = this.context + '/' + application.url;\n }\n\n public error( err: HttpErrorResponse ): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n\n}\n","
\n \n \n\n \n
\n
\n\n
\n
\n
\n
\n
\n\n
\n

\n \n

\n \n
\n\n
\n
\n \n
\n
\n\n
\n
\n
\n
\n \n \n \n \n \n
\n
\n \n
\n
\n
\n \n
\n
\n
\n \n
\n
\n\n
\n
\n \n
\n
\n

\n   \n

\n \n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n","///\n/// Copyright (c) 2015 TerraFrame, Inc. All rights reserved.\n///\n/// This file is part of Runway SDK(tm).\n///\n/// Runway SDK(tm) is free software: you can redistribute it and/or modify\n/// it under the terms of the GNU Lesser General Public License as\n/// published by the Free Software Foundation, either version 3 of the\n/// License, or (at your option) any later version.\n///\n/// Runway SDK(tm) is distributed in the hope that it will be useful, but\n/// WITHOUT ANY WARRANTY; without even the implied warranty of\n/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n/// GNU Lesser General Public License for more details.\n///\n/// You should have received a copy of the GNU Lesser General Public\n/// License along with Runway SDK(tm). If not, see .\n///\nimport { Component, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\n\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\n\nimport { Application } from '@shared/model/application';\n\nimport { AuthService } from '@shared/service';\n\nimport { HubService } from '@core/service/hub.service';\n\ndeclare var acp: any;\n\n@Component( {\n selector: 'hub',\n templateUrl: './hub.component.html',\n styleUrls: ['./hub.component.css']\n} )\nexport class HubComponent implements OnInit {\n context: string;\n applications: Application[] = [];\n tasks: any = [];\n isAdmin: boolean = false;\n buckets: string = 'col-sm-6';\n bsModalRef: BsModalRef;\n loading: boolean = true;\n\n constructor(\n private service: HubService,\n public authService: AuthService,\n private modalService: BsModalService,\n private router: Router,\n private route: ActivatedRoute,\n ) {\n this.context = acp as string;\n }\n\n ngOnInit(): void {\n this.service.applications().then( applications => {\n this.loading = false;\n this.applications = applications;\n } );\n \n this.isAdmin = this.authService.isAdmin();\n }\n \n // logout():void {\n // this.sessionService.logout().then(response => {\n // this.router.navigate(['/login']);\t \n // }); \t \n // }\n\n\n open( application: Application ): void {\n window.location.href = this.context + '/' + application.url;\n }\n\n // account():void{\n // this.profileService.get().then(profile => {\n // this.bsModalRef = this.modalService.show(ProfileComponent, {backdrop: 'static', class: 'gray modal-lg'});\n // this.bsModalRef.content.profile = profile;\n // });\n // }\n}\n","
\n\n \n \n \n
\n
\n
\n\t\t\t
\n\t\t\t \n\t\t\t
\n\t\t\t
\n\t\t\t \n\t\t\t
\n\t\t\t
\n \n
0 && !loading\" class=\"row vertical-center-row\">\n
\n
\n
\n\n
\n\n
\n
= i && internalIndex < i + 4\" class=\"col-xs-12 col-sm-12 col-md-3 text-center\" (click)=\"open(application)\">\n
\n \"Navigation\"\n

{{application.label}}

\n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n\n
\n \n \n\n
\n","///\n/// Copyright (c) 2015 TerraFrame, Inc. All rights reserved.\n///\n/// This file is part of Runway SDK(tm).\n///\n/// Runway SDK(tm) is free software: you can redistribute it and/or modify\n/// it under the terms of the GNU Lesser General Public License as\n/// published by the Free Software Foundation, either version 3 of the\n/// License, or (at your option) any later version.\n///\n/// Runway SDK(tm) is distributed in the hope that it will be useful, but\n/// WITHOUT ANY WARRANTY; without even the implied warranty of\n/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n/// GNU Lesser General Public License for more details.\n///\n/// You should have received a copy of the GNU Lesser General Public\n/// License along with Runway SDK(tm). If not, see .\n///\n\nimport { Component } from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { Location } from \"@angular/common\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { ForgotPasswordService } from \"@core/service/forgotpassword.service\";\n\nimport { ErrorHandler } from \"@shared/component\";\n\n@Component({\n selector: \"forgotpassword\",\n templateUrl: \"./forgotpassword.component.html\",\n styleUrls: [\"./forgotpassword.component.css\"]\n})\nexport class ForgotPasswordComponent {\n\n username: string;\n emailIsSent: boolean = false;\n message: string = null;\n\n constructor(private service: ForgotPasswordService,\n private router: Router,\n private route: ActivatedRoute,\n private location: Location) {}\n\n cancel(): void {\n this.router.navigate([\"/\"]);\n }\n\n onSubmit(): void {\n this.service.submit(this.username)\n .then(response => {\n this.emailIsSent = true;\n })\n .catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n \n \n\n
\n
\n
\n
\n

\n
\n \n
{{message}}
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n \n \n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n","///\n/// Copyright (c) 2015 TerraFrame, Inc. All rights reserved.\n///\n/// This file is part of Runway SDK(tm).\n///\n/// Runway SDK(tm) is free software: you can redistribute it and/or modify\n/// it under the terms of the GNU Lesser General Public License as\n/// published by the Free Software Foundation, either version 3 of the\n/// License, or (at your option) any later version.\n///\n/// Runway SDK(tm) is distributed in the hope that it will be useful, but\n/// WITHOUT ANY WARRANTY; without even the implied warranty of\n/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n/// GNU Lesser General Public License for more details.\n///\n/// You should have received a copy of the GNU Lesser General Public\n/// License along with Runway SDK(tm). If not, see .\n///\n\nimport { Component, OnInit } from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { ErrorHandler } from \"@shared/component\";\n\nimport { ForgotPasswordService } from \"@core/service/forgotpassword.service\";\nimport { PasswordStrengthBarComponent } from \"@shared/component/password-strength-bar/password-strength-bar.component\";\n\n@Component({\n templateUrl: \"./forgotpassword-complete.component.html\",\n styleUrls: [\"./forgotpassword-complete.component.css\"]\n})\nexport class ForgotPasswordCompleteComponent implements OnInit {\n\n newPassword: string;\n token: string;\n passwordIsReset: boolean = false;\n private sub: any;\n message: string = null;\n\n constructor(\n private service: ForgotPasswordService,\n private router: Router, \n private route: ActivatedRoute,\n \t private passwordStrengthBarComponent: PasswordStrengthBarComponent) {}\n\n ngOnInit() {\n this.sub = this.route.params.subscribe(params => {\n this.token = params[\"token\"];\n });\n }\n\n ngOnDestroy() {\n this.sub.unsubscribe();\n }\n\n cancel(): void {\n this.router.navigate([\"/\"]);\n }\n\n onSubmit(): void {\n this.service.complete(this.newPassword, this.token)\n .then(() => {\n this.passwordIsReset = true;\n })\n .catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n \n \n\n
\n
\n
\n
\n

\n
\n \n
{{message}}
\n \n
\n\t
\n\t
\n\t\t
\n\t\t
\n\t\t \n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t \n\t\t \n\t\t \n\t\t \n\t\t
\n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t \n\t\t \n\t\t \n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t
\n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t
\n\t \n\t \n\t
\n\t
\n\t\t
\n\t\t
\n\t\t
\n\t\t
\n\t\t \n\t\t \n\t\t
\n\t\t \n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t
\n\t
\n\t
\n
\n
\n
\n
\n
\n","/* eslint-disable no-use-before-define */\n/* eslint-disable padded-blocks */\nimport { LocalizedValue } from \"@shared/model/core\";\nimport { LocalizationService } from \"@shared/service\";\nimport { ImportConfiguration } from \"./io\";\nimport { GovernanceStatus, ConflictType } from \"./constants\";\nimport Utils from \"@registry/utility/Utils\";\n\nexport const PRESENT: string = \"5000-12-31\";\n\nexport class TreeEntity {\n id: string;\n name: string;\n hasChildren: boolean;\n}\n\nexport class Term {\n code: string;\n label: LocalizedValue;\n description: LocalizedValue;\n\n constructor(code: string, label: LocalizedValue, description: LocalizedValue) {\n this.code = code;\n this.label = label;\n this.description = description;\n }\n\n children: Term[] = [];\n\n addChild(term: Term) {\n this.children.push(term);\n }\n}\n\nexport class GeoObject {\n type: string;\n geometry: any;\n properties: {\n uid: string,\n code: string,\n displayLabel: LocalizedValue,\n type: string,\n status: string[],\n sequence: string\n createDate: string,\n lastUpdateDate: string,\n invalid: boolean,\n writable?: boolean\n };\n}\n\nexport class GeoObjectType {\n code: string;\n label: LocalizedValue;\n description: LocalizedValue;\n geometryType?: string;\n isLeaf: boolean;\n isGeometryEditable: boolean;\n organizationCode: string;\n attributes: Array = [];\n relatedHierarchies?: string[];\n superTypeCode?: string;\n isAbstract?: boolean;\n isPrivate?: boolean;\n canDrag?: boolean;\n permissions?: string[];\n\n public static getAttribute(type: GeoObjectType, name: string) {\n let len = type.attributes.length;\n for (let i = 0; i < len; i++) {\n let attr: any = type.attributes[i];\n\n if (attr.code === name) {\n return attr;\n }\n }\n\n return null;\n }\n\n public static getGeoObjectTypeTermAttributeOptions(geoObjectType: GeoObjectType, termAttributeCode: string) {\n for (let i = 0; i < geoObjectType.attributes.length; i++) {\n let attr: any = geoObjectType.attributes[i];\n\n if (attr.type === \"term\" && attr.code === termAttributeCode) {\n attr = attr;\n let attrOpts = attr.rootTerm.children;\n\n // only remove status of the required status type\n if (attrOpts.length > 0) {\n if (attr.code === \"status\") {\n return Utils.removeStatuses(attrOpts);\n } else {\n return attrOpts;\n }\n }\n }\n }\n\n return null;\n }\n}\n\nexport class Task {\n id: string;\n templateKey: string;\n msg: string;\n title: string;\n status: string;\n createDate: number;\n completedDate: number;\n}\n\nexport class GeoObjectOverTime {\n\n geoObjectType: GeoObjectType;\n\n attributes: any;\n\n public constructor(geoObjectType: GeoObjectType, attributes: any) {\n this.geoObjectType = geoObjectType;\n this.attributes = attributes;\n }\n\n public getVotAtDate(date: Date, attrCode: string, lService: LocalizationService) {\n let retVot = { startDate: date, endDate: null, value: null };\n\n const time = date.getTime();\n\n for (let i = 0; i < this.geoObjectType.attributes.length; ++i) {\n let attr = this.geoObjectType.attributes[i];\n\n if (attr.code === attrCode) {\n if (attr.type === \"local\") {\n retVot.value = lService.create();\n }\n\n if (attr.isChangeOverTime) {\n let values = this.attributes[attr.code].values;\n\n values.forEach(vot => {\n\n const startDate = Date.parse(vot.startDate);\n const endDate = Date.parse(vot.endDate);\n\n if (time >= startDate && time <= endDate) {\n\n if (attr.type === \"local\") {\n retVot.value = JSON.parse(JSON.stringify(vot.value));\n } else if (attr.type === \"term\" && vot.value != null && Array.isArray(vot.value) && vot.value.length > 0) {\n retVot.value = vot.value[0];\n } else {\n retVot.value = vot.value;\n }\n }\n });\n } else {\n retVot.value = this.attributes[attr.code];\n }\n\n break;\n }\n }\n\n return retVot;\n }\n}\n\nexport class ConflictMessage {\n message: string;\n severity: string;\n type: ConflictType;\n}\n\nexport interface TimeRangeEntry {\n startDate: string;\n endDate: string;\n oid?: string;\n value?: any;\n}\n\nexport class ValueOverTime implements TimeRangeEntry {\n oid: string;\n startDate: string;\n endDate: string;\n value: any;\n removable?: boolean;\n}\n\nexport class AttributeOverTime {\n name: string;\n type: string;\n values: ValueOverTime[];\n}\n\nexport class AttributeType {\n code: string; // On the back-end this is referred to as the AttributeType's 'name'. They are the same concept.\n type: string;\n label: LocalizedValue;\n description: LocalizedValue;\n isDefault: boolean;\n required: boolean;\n unique: boolean;\n governanceStatus: GovernanceStatus;\n isChangeOverTime?: boolean;\n precision?: number;\n scale?: number;\n isValid?: boolean;\n isValidReason?: {timeConflict: boolean, existConflict: boolean, dateField: boolean};\n isValidReasonHierarchy?: any;\n\n constructor(code: string, type: string, label: LocalizedValue, description: LocalizedValue, isDefault: boolean, required: boolean, unique: boolean, isChangeOverTime: boolean) {\n\n this.code = code;\n this.type = type;\n this.label = label;\n this.description = description;\n this.isDefault = isDefault;\n this.required = false; // Hardcoded to false because this functionality is disabled until later evaluation.\n this.unique = unique;\n this.isChangeOverTime = isChangeOverTime;\n }\n\n}\n\nexport class AttributeTermType extends AttributeType {\n\n // descendants: Attribute[];\n\n // eslint-disable-next-line no-useless-constructor\n constructor(code: string, type: string, label: LocalizedValue, description: LocalizedValue, isDefault: boolean, required: boolean, unique: boolean, isChange: boolean) {\n super(code, type, label, description, isDefault, required, unique, isChange);\n }\n\n rootTerm: Term = new Term(null, null, null);\n\n termOptions: Term[] = [];\n\n setRootTerm(term: Term) {\n this.rootTerm = term;\n }\n}\n\nexport class AttributeDecimalType extends AttributeType {\n constructor(code: string, type: string, label: LocalizedValue, description: LocalizedValue, isDefault: boolean, required: boolean, unique: boolean, isChange: boolean) {\n super(code, type, label, description, isDefault, required, unique, isChange);\n\n this.precision = 32;\n this.scale = 8;\n }\n}\n\nexport class TreeNode {\n geoObject: GeoObject;\n hierarchyType: string;\n}\n\nexport class ChildTreeNode extends TreeNode {\n children: ChildTreeNode[];\n}\n\nexport class ParentTreeNode extends TreeNode {\n parents: ParentTreeNode[];\n}\n\nexport class ManageGeoObjectTypeModalState {\n state: string;\n attribute: any;\n termOption: any;\n}\n\nexport class PaginationPage {\n pageNumber: number;\n count: number;\n pageSize: number;\n results: any[];\n}\n\nexport class AbstractScheduledJob {\n jobId: string;\n historyId: string;\n stage: string;\n status: string;\n author: string;\n createDate: string;\n lastUpdateDate: string;\n workProgress: number;\n workTotal: number;\n startDate: string;\n endDate: string;\n}\n\nexport class ScheduledJob extends AbstractScheduledJob {\n importedRecords: number;\n exportedRecords: number;\n configuration: ImportConfiguration;\n importErrors: PaginationPage;\n exportErrors: PaginationPage;\n problems: PaginationPage;\n fileName: string;\n}\n\nexport class ScheduledJobOverview extends ScheduledJob {\n stepConfig: StepConfig;\n}\n\n// export class ScheduledJobDetail extends ScheduledJob {\n// // failedRowCount: number;\n// importErrors: PaginationPage\n// }\n\nexport class ImportError {\n exception: ServerException;\n object: ImportErrorObject;\n objectType: string;\n id: string;\n resolution: string;\n selected?: boolean;\n}\n\nexport class ServerException {\n attributes: ServerExceptionAttribute[];\n type: string;\n message: string;\n}\n\nexport class ServerExceptionAttribute {\n value: string;\n key: string;\n}\n\nexport class ImportErrorObject {\n geoObject: GeoObjectOverTime;\n parents: HierarchyOverTime[];\n isNew: boolean;\n}\n\nexport class StepConfig {\n steps: Step[];\n}\n\nexport class Step {\n label: string;\n complete?: boolean;\n enabled?: boolean;\n status?: string;\n}\n\nexport class MasterList {\n oid: string;\n typeCode: string;\n typeLabel?: LocalizedValue;\n displayLabel: LocalizedValue;\n code: string;\n representativityDate: string;\n publishingStartDate?: string;\n publishDate: string;\n descriptionLocal: LocalizedValue;\n processLocal: LocalizedValue;\n progressLocal: LocalizedValue;\n accessConstraintsLocal: LocalizedValue;\n useConstraintsLocal: LocalizedValue;\n acknowledgementsLocal: LocalizedValue;\n disclaimerLocal: LocalizedValue;\n contactName: string;\n organization: string;\n telephoneNumber: string;\n email: string;\n hierarchies: { label: string, code: string, parents: { label: string, code: string }[] }[];\n leaf: boolean;\n frequency: string;\n isMaster: boolean;\n visibility: string;\n write?: boolean;\n read?: boolean;\n exploratory?: boolean;\n versions?: MasterListVersion[];\n subtypes?: { label: string, code: string }[];\n subtypeHierarchies?: any[];\n}\n\nexport class MasterListVersion {\n displayLabel: string;\n oid: string;\n typeCode: string;\n orgCode: string;\n masterlist: string;\n forDate: string;\n createDate: string;\n publishDate: string;\n attributes: any[];\n isGeometryEditable: boolean;\n locales?: string[];\n shapefile?: boolean;\n isAbstract?: boolean;\n superTypeCode?: string;\n refreshProgress?: any;\n subtypes?: { label: string, code: string }[];\n}\n\nexport class HierarchyOverTime {\n code: string;\n label: string;\n types: {\n code: string;\n label: string;\n }[];\n\n entries: HierarchyOverTimeEntry[];\n}\n\nexport class HierarchyOverTimeEntry implements TimeRangeEntry {\n startDate: string;\n endDate: string;\n oid: string;\n parents: { [k: string]: HierarchyOverTimeEntryParent };\n loading?: any;\n conflictType?: string;\n conflictMessage?: any[];\n}\n\nexport class HierarchyOverTimeEntryParent {\n text: string;\n geoObject: GeoObject;\n goCode?: string;\n}\n\nexport class MasterListView {\n label: string;\n oid: string;\n createDate: string;\n lastUpdateDate: string;\n isMaster: boolean;\n write: boolean;\n read: boolean;\n visibility: string;\n}\n\nexport class MasterListByOrg {\n oid: string;\n code: string;\n label: string;\n write: boolean;\n lists: MasterListView[];\n}\n\nexport class SynchronizationConfig {\n oid?: string;\n type?: string;\n systemLabel?: string;\n isImport?: boolean;\n organization: string;\n system: string;\n hierarchy: string;\n label: LocalizedValue;\n configuration: any;\n}\n\nexport class OrgSyncInfo {\n label: string;\n code: string;\n hierarchies: { label: string, code: string }[];\n systems: { label: string, oid: string, type: string }[];\n}\n\nexport class ExportScheduledJob extends AbstractScheduledJob {\n stepConfig?: StepConfig;\n}\n\nexport class ContextLayer {\n oid: string;\n displayLabel: string;\n active: boolean;\n enabled: boolean;\n}\n\nexport class ContextLayerGroup {\n oid: string;\n displayLabel: string;\n contextLayers: ContextLayer[];\n}\n","\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { BsModalRef, BsModalService } from \"ngx-bootstrap/modal\";\nimport { ErrorModalComponent } from \"@shared/component\";\n\nexport class ErrorHandler {\n\n static getMessageFromError(err: any): string {\n let unspecified = \"An unspecified error has occurred. Please try your operation again. If the problem continues, alert your technical support staff.\";\n\n if (err == null) {\n return unspecified;\n } else {\n console.log(\"An error has occurred: \", err);\n }\n\n let msg = null;\n\n if (err.error != null && (typeof err.error === \"object\")) {\n msg = err.error.localizedMessage || err.error.message;\n }\n\n if (msg == null) {\n msg = err.message || err.msg || err.localizedMessage;\n }\n\n if (msg != null && msg.includes(\"##tferrormsg##\")) {\n let split = msg.split(\"##tferrormsg##\");\n return split[2];\n }\n\n if (msg == null) {\n msg = unspecified;\n }\n\n return msg;\n }\n\n static showErrorAsDialog(err: any, modalService: BsModalService): BsModalRef {\n if (err instanceof HttpErrorResponse && err.status === 401) {\n return null;\n }\n\n let bsModalRef = modalService.show(ErrorModalComponent, { backdrop: true, class: \"error-white-space-pre\" });\n\n bsModalRef.content.message = ErrorHandler.getMessageFromError(err);\n\n return bsModalRef;\n }\n\n}\n","import { AttributeType, GeoObject } from \"@registry/model/registry\";\nimport { LocalizedValue } from \"@shared/model/core\";\n// eslint-disable-next-line camelcase\nimport turf_booleanequal from \"@turf/boolean-equal\";\n\nexport default class Utils {\n\n /**\n *\n * @param arr\n */\n static removeStatuses(arr: any[]): any[] {\n var newArray = [];\n\n for (var i = 0; i < arr.length; ++i) {\n if (!(arr[i].code === \"CGR:Status-New\" ||\n arr[i].code === \"CGR:Status-Pending\")) {\n newArray.push(arr[i]);\n }\n }\n\n return newArray;\n }\n\n /**\n *\n * @param dateObj\n */\n static formatDateString(dateObj: Date): string {\n const day = dateObj.getUTCDate();\n const month = dateObj.getUTCMonth() + 1;\n\n return dateObj.getUTCFullYear() + \"-\" + (month < 10 ? \"0\" : \"\") + month + \"-\" + (day < 10 ? \"0\" : \"\") + day;\n }\n\n static dateRangeOverlaps(aStart: number, aEnd: number, bStart: number, bEnd: number): boolean {\n if (aStart <= bStart && bStart <= aEnd) return true; // b starts in a\n if (aStart <= bEnd && bEnd <= aEnd) return true; // b ends in a\n if (bStart < aStart && aEnd < bEnd) return true; // a in b\n return false;\n }\n\n static dateRangeOutside(aStart: number, aEnd: number, bStart: number, bEnd: number): boolean {\n if (aStart < bStart) return true;\n if (aEnd > bEnd) return true;\n return false;\n }\n\n static dateEndBeforeStart(start: number, end: number): boolean {\n if (end < start) return true; // end date is before start date\n return false;\n }\n\n static hasGap(aEnd: number, bStart: number): boolean {\n return (bStart - aEnd) > (1000 * 60 * 60 * 24);\n }\n\n public static areValuesEqual(attributeType: AttributeType, val1: any, val2: any): boolean {\n if (attributeType.type === \"boolean\") {\n return val1 === val2;\n }\n\n if ((val1 === \"\" && val2 == null) || (val2 === \"\" && val1 == null)) {\n return true;\n }\n\n if (!val1 && !val2) {\n return true;\n } else if ((!val1 && val2) || (!val2 && val1)) {\n return false;\n }\n\n if (attributeType.type === \"term\") {\n if (val1 != null && val2 != null) {\n return val1.length === val2.length && val1[0] === val2[0];\n }\n } else if (attributeType.type === \"geometry\") {\n return turf_booleanequal(val1, val2);\n } else if (attributeType.type === \"date\") {\n let casted1 = (typeof val1 === \"string\") ? parseInt(val1) : val1;\n let casted2 = (typeof val2 === \"string\") ? parseInt(val2) : val2;\n\n return casted1 === casted2;\n } else if (attributeType.type === \"local\") {\n if ((!val1.localeValues || !val2.localeValues) || val1.localeValues.length !== val2.localeValues.length) {\n return false;\n }\n\n let len = val1.localeValues.length;\n for (let i = 0; i < len; ++i) {\n let localeValue = val1.localeValues[i];\n\n let lv2 = this.getValueAtLocale(val2, localeValue.locale);\n let lv1 = localeValue.value;\n\n if ((lv1 === \"\" && lv2 == null) || (lv2 === \"\" && lv1 == null)) {\n continue;\n } else if (lv1 !== lv2) {\n return false;\n }\n }\n\n return true;\n } else if (attributeType.type === \"_PARENT_\" && val1.parents && val2.parents) {\n for (const [gotCode, data] of Object.entries(val1.parents)) {\n let parentData: {text: string, geoObject: GeoObject} = data as {text: string, geoObject: GeoObject};\n\n if (val2.parents[gotCode]) {\n let parentData2: {text: string, geoObject: GeoObject} = val2.parents[gotCode];\n\n if (parentData.geoObject == null && parentData2.geoObject == null) {\n // equal, keep looping\n } else if ((parentData.geoObject == null && parentData2.geoObject != null) || (parentData2.geoObject == null && parentData.geoObject != null)) {\n return false;\n } else if (parentData.geoObject.properties.code !== parentData2.geoObject.properties.code) {\n return false;\n }\n }\n }\n\n return true;\n } else if (attributeType.type === \"integer\") {\n let casted1 = (typeof val1 === \"string\") ? parseInt(val1) : val1;\n let casted2 = (typeof val2 === \"string\") ? parseInt(val2) : val2;\n\n return casted1 === casted2;\n } else if (attributeType.type === \"float\") {\n let casted1 = (typeof val1 === \"string\") ? parseFloat(val1) : val1;\n let casted2 = (typeof val2 === \"string\") ? parseFloat(val2) : val2;\n\n return casted1 === casted2;\n }\n\n return val1 === val2;\n }\n\n public static getValueAtLocale(lv: LocalizedValue, locale: string) {\n return new LocalizedValue(lv.localizedValue, lv.localeValues).getValue(locale);\n }\n\n}\n","import { NgModule, ModuleWithProviders } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { RouterModule } from \"@angular/router\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { TreeModule } from \"@circlon/angular-tree-component\";\nimport { ContextMenuModule } from \"ngx-contextmenu\";\nimport { ModalModule } from \"ngx-bootstrap/modal\";\nimport { BsDropdownModule } from \"ngx-bootstrap/dropdown\";\nimport { ButtonsModule } from \"ngx-bootstrap/buttons\";\nimport { TypeaheadModule } from \"ngx-bootstrap/typeahead\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { FileUploadModule } from \"ng2-file-upload\";\nimport { NgxPaginationModule } from \"ngx-pagination\";\nimport { ProgressbarModule } from \"ngx-bootstrap/progressbar\";\nimport { CollapseModule } from \"ngx-bootstrap/collapse\";\nimport { BsDatepickerModule } from \"ngx-bootstrap/datepicker\";\n\nimport { ErrorModalComponent } from \"./component/modals/error-modal.component\";\nimport { SuccessModalComponent } from \"./component/modals/success-modal.component\";\nimport { ConfirmModalComponent } from \"./component/modals/confirm-modal.component\";\nimport { GenericModalComponent } from \"./component/modals/generic-modal.component\";\nimport { ErrorMessageComponent } from \"./component/message/error-message.component\";\nimport { MessageComponent } from \"./component/message/message.component\";\nimport { BooleanFieldComponent } from \"./component/form-fields/boolean-field/boolean-field.component\";\nimport { DateFieldComponent } from \"./component/form-fields/date-field/date-field.component\";\nimport { LoadingBarComponent } from \"./component/loading-bar/loading-bar.component\";\nimport { PasswordStrengthBarComponent } from \"./component/password-strength-bar/password-strength-bar.component\";\n\nimport { AdminGuard, MaintainerGuard, ContributerGuard, AuthGuard } from \"./service/guard.service\";\nimport { PendingChangesGuard } from \"./service/pending-changes-guard\";\n\nimport { AuthService } from \"./service/auth.service\";\nimport { ProfileService } from \"./service/profile.service\";\nimport { OrganizationService } from \"./service/organization.service\";\nimport { ExternalSystemService } from \"./service/external-system.service\";\nimport { LocalizationService } from \"./service/localization.service\";\nimport { ProgressService } from \"./service/progress.service\";\nimport { EventService } from \"./service/event.service\";\nimport { ModalStepIndicatorService } from \"./service/modal-step-indicator.service\";\nimport { SessionService } from \"./service/session.service\";\nimport { DateService } from \"./service/date.service\";\n\nimport { LocalizePipe } from \"./pipe/localize.pipe\";\nimport { PhonePipe } from \"./pipe/phone.pipe\";\n\nimport { OnlyNumber } from \"./directive/number-only.directive\";\nimport { MustMatchDirective } from \"./directive/must-match.directive\";\n\nimport { CgrHeaderComponent } from \"./component/header/header.component\";\nimport { ProgressBarComponent } from \"./component/progress-bar/progress-bar.component\";\nimport { LocalizeComponent } from \"./component/localize/localize.component\";\nimport { ConvertKeyLabel } from \"./component/localize/convert-key-label.component\";\nimport { ModalStepIndicatorComponent } from \"./component/modals/modal-step-indicator.component\";\nimport { ProfileComponent } from \"./component/profile/profile.component\";\n\nimport \"../rxjs-extensions\";\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n FormsModule,\n ReactiveFormsModule,\n FileUploadModule,\n ModalModule.forRoot(),\n TreeModule,\n ContextMenuModule,\n BsDropdownModule,\n ButtonsModule,\n TypeaheadModule,\n ProgressbarModule,\n CollapseModule,\n NgxPaginationModule,\n BsDatepickerModule.forRoot()\n ],\n declarations: [\n LocalizeComponent,\n ConvertKeyLabel,\n BooleanFieldComponent,\n DateFieldComponent,\n LoadingBarComponent,\n ErrorMessageComponent,\n MessageComponent,\n ConfirmModalComponent,\n GenericModalComponent,\n ErrorModalComponent,\n SuccessModalComponent,\n PasswordStrengthBarComponent,\n OnlyNumber,\n MustMatchDirective,\n ProgressBarComponent,\n ModalStepIndicatorComponent,\n CgrHeaderComponent,\n ProfileComponent,\n LocalizePipe,\n PhonePipe\n ],\n exports: [\n LocalizeComponent,\n ConvertKeyLabel,\n BooleanFieldComponent,\n DateFieldComponent,\n LoadingBarComponent,\n ErrorMessageComponent,\n MessageComponent,\n ConfirmModalComponent,\n GenericModalComponent,\n ErrorModalComponent,\n SuccessModalComponent,\n PasswordStrengthBarComponent,\n OnlyNumber,\n MustMatchDirective,\n ProgressBarComponent,\n ModalStepIndicatorComponent,\n CgrHeaderComponent,\n ProfileComponent,\n LocalizePipe,\n PhonePipe,\n CommonModule,\n FormsModule,\n ReactiveFormsModule\n ],\n entryComponents: [\n ErrorModalComponent,\n SuccessModalComponent,\n ConfirmModalComponent,\n GenericModalComponent,\n ModalStepIndicatorComponent,\n ErrorMessageComponent,\n LoadingBarComponent,\n ProfileComponent\n ]\n})\nexport class SharedModule {\n\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: SharedModule,\n providers: [\n CookieService,\n AuthService,\n SessionService,\n ProfileService,\n OrganizationService,\n ExternalSystemService,\n LocalizationService,\n DateService,\n ModalStepIndicatorService,\n EventService,\n ProgressService,\n AdminGuard,\n MaintainerGuard,\n ContributerGuard,\n AuthGuard,\n PendingChangesGuard\n ]\n };\n }\n\n}\n","///\n/// Copyright (c) 2015 TerraFrame, Inc. All rights reserved.\n///\n/// This file is part of Runway SDK(tm).\n///\n/// Runway SDK(tm) is free software: you can redistribute it and/or modify\n/// it under the terms of the GNU Lesser General Public License as\n/// published by the Free Software Foundation, either version 3 of the\n/// License, or (at your option) any later version.\n///\n/// Runway SDK(tm) is distributed in the hope that it will be useful, but\n/// WITHOUT ANY WARRANTY; without even the implied warranty of\n/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n/// GNU Lesser General Public License for more details.\n///\n/// You should have received a copy of the GNU Lesser General Public\n/// License along with Runway SDK(tm). If not, see .\n///\n\nimport { Component } from '@angular/core';\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { ErrorHandler } from '@shared/component';\nimport { HubService } from '@core/service/hub.service';\n\ndeclare var acp:string;\n\n@Component({\n selector: 'login-header',\n templateUrl: './login-header.component.html',\n styleUrls: []\n})\nexport class LoginHeaderComponent {\n context:string;\n \n constructor(private hubService: HubService) {\n this.context = acp;\n }\n \n public error(err: HttpErrorResponse): void {\n let msg = ErrorHandler.getMessageFromError(err);\n console.log(msg, err);\n }\n}\n"," \n
\n \n
\n","export enum ActionTypes {\n \"CREATEGEOOBJECTACTION\" = \"CreateGeoObjectAction\",\n \"UPDATEATTRIBUTETACTION\" = \"UpdateAttributeAction\",\n \"UPDATEGEOOBJECTACTION\" = \"UpdateGeoObjectAction\" // Deprecated DO NOT USE\n}\n\nexport enum GovernanceStatus {\n \"PENDING\" = \"PENDING\",\n \"ACCEPTED\" = \"ACCEPTED\",\n \"REJECTED\" = \"REJECTED\"\n}\n\nexport enum GeoObjectTypeModalStates {\n \"manageAttributes\" = \"MANAGE-ATTRIBUTES\",\n \"editAttribute\" = \"EDIT-ATTRIBUTE\",\n \"defineAttribute\" = \"DEFINE-ATTRIBUTE\",\n \"manageTermOption\" = \"MANAGE-TERM-OPTION\",\n \"editTermOption\" = \"EDIT-TERM-OPTION\",\n \"manageGeoObjectType\" = \"MANAGE-GEO-OBJECT-TYPE\"\n}\n\nexport enum ImportStrategy {\n \"NEW_AND_UPDATE\" = \"NEW_AND_UPDATE\",\n \"NEW_ONLY\" = \"NEW_ONLY\",\n \"UPDATE_ONLY\" = \"UPDATE_ONLY\"\n}\n\nexport enum ConflictType {\n MISSING_REFERENCE = \"MISSING_REFERENCE\",\n TIME_RANGE = \"TIME_RANGE\",\n OUTSIDE_EXISTS = \"OUTSIDE_EXISTS\"\n}\n\nexport enum ChangeType\n{\n END_DATE = \"endDate\",\n START_DATE = \"startDate\",\n VALUE = \"value\",\n REMOVE = \"remove\",\n ADD = \"add\"\n}\n\nexport enum LayerColor {\n \"OLD\" = \"#A4A4A4\",\n \"NEW\" = \"#0062AA\"\n}\n","import { Input, Component, OnInit } from \"@angular/core\";\n\nimport { LocalizationService, AuthService } from \"@shared/service\";\nimport { LocaleView, LocalizedValue } from \"@shared/model/core\";\n\n@Component({\n\n selector: \"convert-key-label\",\n templateUrl: \"./convert-key-label.component.html\",\n styleUrls: []\n})\nexport class ConvertKeyLabel implements OnInit {\n\n @Input() key: any;\n text: string;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: LocalizationService, private authService: AuthService) { }\n\n ngOnInit(): void {\n if (this.key != null && this.key.label != null && this.key.label.localizedValue != null) {\n this.text = this.key.label.localizedValue;\n return;\n }\n\n let locales: LocaleView[] = this.authService.getLocales();\n\n let len = locales.length;\n for (let i = 0; i < len; ++i) {\n let locale: LocaleView = locales[i];\n\n if (locale.toString === this.key) {\n this.text = this.getValue(locale.label, this.service.getLocale());\n\n return;\n }\n }\n\n if (this.key === \"defaultLocale\") {\n this.text = this.service.decode(\"localization.defaultLocal\");\n } else {\n this.text = this.key;\n }\n }\n\n public getValue(lv: LocalizedValue, localeToString: string): string {\n let len = lv.localeValues.length;\n\n for (let i = 0; i < len; ++i) {\n let value = lv.localeValues[i];\n\n if (value.locale === localeToString) {\n return value.value;\n }\n }\n\n return lv.localizedValue;\n }\n\n}\n","{{text}}","import { Component, Input, Output, EventEmitter, ChangeDetectorRef, ViewChild } from \"@angular/core\";\nimport { LocalizationService } from \"@shared/service\";\nimport { DateService } from \"@shared/service/date.service\";\n\nimport { BsDatepickerConfig, BsDatepickerDirective } from \"ngx-bootstrap/datepicker\";\n\nimport { PRESENT } from \"@registry/model/registry\";\n\ndeclare let acp: string;\n\n@Component({\n selector: \"date-field\",\n templateUrl: \"./date-field.component.html\",\n styleUrls: [\"./date-field.css\"],\n})\n\nexport class DateFieldComponent {\n\n @ViewChild(BsDatepickerDirective, { static: false }) datepicker: BsDatepickerDirective;\n\n @Input() allowFutureDates: boolean = true;\n @Input() allowInfinity: boolean = false;\n @Input() inputName: string = this.idGenerator();\n @Input() classNames: string = \"\";\n @Input() customStyles: string = \"\";\n @Input() localizeLabelKey: string = \"\"; // localization key used to localize in the component template\n @Input() label: string = \"\"; // raw string input\n @Input() disable: boolean = false;\n @Input() required: boolean = false;\n @Input() placement: string = \"bottom\";\n @Input() oldDate: string = null;\n @Input() title: string = \"\";\n\n _value: Date;\n // eslint-disable-next-line accessor-pairs\n @Input() set value(value) {\n if (value) {\n this.setValue(value ? value : null);\n }\n }\n\n @Output() public valueChange = new EventEmitter();\n\n /* You can pass a function in with (change)='function()' */\n @Output() public change = new EventEmitter();\n\n today: Date = new Date();\n message: string;\n returnFocusToInput: boolean = false;\n valueIsPresent: boolean = false;\n\n @Input() valid: boolean = true;\n @Output() public validChange = new EventEmitter();\n\n constructor(private localizationService: LocalizationService, private bsDatepickerConfig: BsDatepickerConfig, private changeDetectorRef: ChangeDetectorRef, private dateService: DateService) {\n this.bsDatepickerConfig.dateInputFormat = \"YYYY-MM-DD\";\n }\n\n\n private setValue(value: string | number): void {\n // @ts-ignore\n if (!isNaN(value)) {\n // @ts-ignore\n value = parseInt(value);\n }\n\n if (value && typeof value === \"string\") {\n let date = new Date(+value.split(\"-\")[0], +value.split(\"-\")[1] - 1, +value.split(\"-\")[2]);\n\n if (value === PRESENT) {\n this.valueIsPresent = true;\n }\n\n this._value = date;\n } else if (value && typeof value === \"number\") {\n // Custom attributes of date type come through as UTC time\n this._value = new Date(new Date(value).getUTCFullYear(), new Date(value).getUTCMonth(), new Date(value).getUTCDate());\n } else {\n this._value = null;\n }\n }\n\n public getValue(): Date {\n return this._value;\n }\n\n public setInvalid(message: string) {\n this.valid = false;\n this.message = message;\n }\n\n idGenerator() {\n let S4 = function() {\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\n };\n return (S4() + S4() + \"-\" + S4() + \"-\" + S4() + \"-\" + S4() + \"-\" + S4() + S4() + S4());\n }\n\n isEqual(date1: Date, date2: Date): boolean {\n let equal = false;\n\n if (date1 && date2) {\n // if(date1.toISOString().substr(0, 10) === PRESENT && date2.toISOString().substr(0, 10) === PRESENT){\n if (date1.getTime() === date2.getTime()) {\n return true;\n }\n }\n\n return equal;\n }\n\n toggleInfinity(): void {\n let date = this.getValue();\n\n if (date && this.isEqual(date, this.dateService.getPresentDate())) {\n this.setValue(null); // clear the date picker\n this.valueChange.emit(null);\n this.valueIsPresent = false;\n } else {\n this.setValue(PRESENT);\n this.valueChange.emit(this.dateService.getDateString(this.getValue()));\n this.valueIsPresent = true;\n }\n\n this.change.emit();\n }\n\n toggle(event: Date): void {\n setTimeout(() => {\n let validity = this.dateService.validateDate(event, this.required, this.allowFutureDates);\n this.valid = validity.valid;\n this.message = validity.message;\n\n if (this.valid) {\n // Must adhere to the ISO 8601 format\n let formattedDate = this.dateService.getDateString(event);\n\n if (formattedDate === PRESENT) {\n this.valueIsPresent = true;\n } else {\n this.valueIsPresent = false;\n }\n\n this.valueChange.emit(formattedDate);\n } else {\n // hack to avoid ngx-datepicker from putting \"invalid date\" in the input\n this.setValue(null);\n\n this.valueChange.emit(null);\n }\n\n this.change.emit();\n this.validChange.emit(this.valid);\n }, 0)\n }\n\n}","\n\n\n\n\n\n
\n \n \n \n \n
\n

{{message}}

\n
\n
\n\n
\n

\n \n {{ oldDate }}\n

\n
\n\n

\n\n
\n \n \n
\n\n","export enum ModalTypes {\n \"warning\" = \"WARNING\",\n \"danger\" = \"DANGER\"\n}\n\nexport class StepConfig {\n steps: Step[];\n}\n\nexport class Step {\n label: string;\n active: boolean;\n enabled: boolean;\n}","import { Component, Input, Output, EventEmitter } from \"@angular/core\";\n\ndeclare let acp: string;\n\n@Component({\n selector: \"boolean-field\",\n templateUrl: \"./boolean-field.component.html\",\n styleUrls: [\"./boolean-field.css\"]\n})\nexport class BooleanFieldComponent {\n\n @Input() value: boolean = false;\n @Output() public valueChange = new EventEmitter();\n\n @Input() localizeLabelKey: string = \"\"; // localization key used to localize in the component template\n @Input() label: string = \"\"; // raw string input\n\n @Input() disable: boolean = false;\n\n /* You can pass a function in with (change)='function()' */\n @Output() public change = new EventEmitter();\n\n // eslint-disable-next-line no-useless-constructor\n constructor() { }\n\n toggle(): void {\n if (!this.disable) {\n this.value = !this.value;\n\n this.valueChange.emit(this.value);\n this.change.emit(this.value);\n }\n }\n}","
\n
\n \n
\n \n \n \n
","import { Injectable, Output, EventEmitter } from \"@angular/core\";\n\nimport MapboxDraw from \"@mapbox/mapbox-gl-draw\";\nimport { Map, LngLat, LngLatBounds } from \"mapbox-gl\";\n\nimport { Layer } from \"../component/geoobject-shared-attribute-editor/manage-versions-model\";\n\n// eslint-disable-next-line no-unused-vars\ndeclare let acp: any;\n\n/**\n * This is a generic service used for rendering layers from ValueOverTime objects\n */\n@Injectable()\nexport class GeometryService {\n\n map: Map;\n\n layers: Layer[] = [];\n\n geometryType: String;\n\n readOnly: boolean;\n\n // @Output() layersChange: EventEmitter = new EventEmitter();\n\n editingControl: any = null;\n\n simpleEditControl: any = null;\n\n editingLayer: Layer;\n\n @Output() geometryChange = new EventEmitter();\n\n // eslint-disable-next-line no-useless-constructor\n constructor() { }\n\n ngOnInit() {\n window.onbeforeunload = () => this.destroy();\n }\n\n initialize(map: Map, geometryType: String, readOnly: boolean) {\n this.map = map;\n this.geometryType = geometryType;\n // this.editingControl = null;\n\n this.addLayers();\n\n this.map.on(\"draw.create\", () => {\n this.saveEdits();\n });\n this.map.on(\"draw.delete\", () => {\n this.saveEdits();\n });\n this.map.on(\"draw.update\", () => {\n this.saveEdits();\n });\n }\n\n destroy(destroyMap: boolean = true): void {\n if (this.editingControl != null) {\n this.map.removeControl(this.editingControl);\n this.editingControl = null;\n }\n\n if (this.map != null && destroyMap) {\n this.map.remove();\n this.map = null;\n } else if (this.map != null) {\n this.removeLayers();\n }\n\n if (this.layers != null) {\n this.layers.forEach(layer => {\n layer.isEditing = false;\n layer.isRendering = false;\n });\n }\n\n this.editingLayer = null;\n this.layers = [];\n }\n\n startEditing(layer: Layer) {\n if (this.isEditing()) {\n this.stopEditing();\n }\n\n this.editingLayer = layer;\n this.editingLayer.isEditing = true;\n\n if (!this.readOnly) {\n this.enableEditing();\n }\n\n this.addEditingLayers();\n }\n\n stopEditing(rerender: boolean = true) {\n if (this.isEditing()) {\n this.saveEdits(rerender);\n\n this.editingLayer.isEditing = false;\n this.editingLayer = null;\n\n this.editingControl.deleteAll();\n this.map.removeControl(this.editingControl);\n\n this.editingControl = null;\n }\n }\n\n isEditing(): boolean {\n return this.editingLayer != null;\n }\n\n setPointCoordinates(lat: any, long: any) {\n if (this.editingLayer != null) {\n this.editingControl.set({\n type: \"FeatureCollection\",\n features: [{\n id: this.editingLayer.oid,\n type: \"Feature\",\n properties: {},\n geometry: { type: \"Point\", coordinates: [long, lat] }\n }]\n });\n\n this.editingControl.changeMode(\"simple_select\", { featureIds: this.editingLayer.oid });\n\n this.saveEdits();\n\n /*\n this.editingLayer.value = {\n type: 'FeatureCollection',\n features: [{\n id: this.editingLayer.oid,\n type: 'Feature',\n properties: {},\n geometry: { type: 'Point', coordinates: [ long, lat ] }\n }]\n };\n */\n\n /*\n this.editingLayer.value.coordinates = [ -97.4870830718814, 41.84836050415993 ];\n\n this.editingControl.set(this.editingLayer.value);\n\n this.removeLayers();\n this.addLayers();\n\n this.editingControl.changeMode( 'simple_select', { featureIds: this.editingLayer.oid } );\n */\n }\n }\n\n isValid(): boolean {\n if (!this.readOnly) {\n let isValid: boolean = false;\n\n if (this.editingControl != null) {\n let featureCollection: any = this.editingControl.getAll();\n\n if (featureCollection.features.length > 0) {\n isValid = true;\n }\n }\n\n return isValid;\n }\n\n return true;\n }\n\n saveEdits(rerender: boolean = true): void {\n if (this.editingLayer != null) {\n let geoJson = this.getDrawGeometry();\n\n this.editingLayer.editPropagator.value = geoJson;\n\n if (rerender) {\n this.removeLayers();\n this.addLayers();\n }\n }\n }\n\n public reload(): void {\n if (this.map != null) {\n this.removeLayers();\n this.addLayers();\n\n if (this.editingControl != null) {\n this.editingControl.deleteAll();\n }\n\n this.addEditingLayers();\n }\n }\n\n setEditing(isEditing: boolean, layer: Layer) {\n if (this.isEditing()) {\n this.stopEditing();\n }\n\n layer.isEditing = isEditing;\n\n if (isEditing) {\n this.startEditing(layer);\n }\n }\n\n setRendering(isRendering: boolean, layer: Layer) {\n layer.isRendering = isRendering;\n this.addLayer(layer);\n }\n\n addLayer(newLayer: Layer) {\n let existingIndex = this.layers.findIndex((findLayer: Layer) => { return findLayer.oid === newLayer.oid; });\n\n if (existingIndex !== -1) {\n this.layers.splice(existingIndex, 1);\n this.layers.push(newLayer);\n } else {\n this.layers.push(newLayer);\n }\n\n if (newLayer.isEditing) {\n this.startEditing(newLayer);\n }\n\n this.layers = this.layers.sort((a, b) => { return a.zindex - b.zindex; });\n\n this.removeLayers();\n this.addLayers();\n }\n\n getLayers(): Layer[] {\n return this.layers;\n }\n\n getRenderedLayers(): Layer[] {\n return this.layers.filter(layer => layer.isRendering);\n }\n\n setLayers(layers: Layer[]): void {\n this.removeLayers();\n\n this.layers = layers.sort((a, b) => { return a.zindex - b.zindex; });\n\n this.addLayers();\n }\n\n enableEditing(): void {\n if (this.editingControl == null) {\n if (this.geometryType === \"MULTIPOLYGON\" || this.geometryType === \"POLYGON\") {\n this.editingControl = new MapboxDraw({\n controls: {\n point: false,\n line_string: false,\n polygon: true,\n trash: true,\n combine_features: false,\n uncombine_features: false\n }\n });\n } else if (this.geometryType === \"POINT\" || this.geometryType === \"MULTIPOINT\") {\n this.editingControl = new MapboxDraw({\n userProperties: true,\n controls: {\n point: true,\n line_string: false,\n polygon: false,\n trash: true,\n combine_features: false,\n uncombine_features: false\n },\n styles: [\n {\n id: \"highlight-active-points\",\n type: \"circle\",\n filter: [\"all\",\n [\"==\", \"$type\", \"Point\"],\n [\"==\", \"meta\", \"feature\"],\n [\"==\", \"active\", \"true\"]],\n paint: {\n \"circle-radius\": 13,\n \"circle-color\": \"#33FFF9\",\n \"circle-stroke-width\": 4,\n \"circle-stroke-color\": \"white\"\n }\n },\n {\n id: \"points-are-blue\",\n type: \"circle\",\n filter: [\"all\",\n [\"==\", \"$type\", \"Point\"],\n [\"==\", \"meta\", \"feature\"],\n [\"==\", \"active\", \"false\"]],\n paint: {\n \"circle-radius\": 10,\n \"circle-color\": \"#800000\",\n \"circle-stroke-width\": 2,\n \"circle-stroke-color\": \"white\"\n }\n }\n ]\n });\n } else if (this.geometryType === \"LINE\" || this.geometryType === \"MULTILINE\") {\n this.editingControl = new MapboxDraw({\n controls: {\n point: false,\n line_string: true,\n polygon: false,\n trash: true,\n combine_features: false,\n uncombine_features: false\n }\n });\n }\n\n if (this.map.getSource(\"mapbox-gl-draw-cold\") == null) {\n this.map.addControl(this.editingControl);\n }\n }\n }\n\n addEditingLayers(): void {\n if (this.editingLayer != null && this.editingControl != null) {\n let val = this.editingLayer.editPropagator.value;\n\n if (val) {\n this.editingControl.add(this.editingLayer.editPropagator.value);\n }\n }\n }\n\n removeSource(prefix: string): void {\n if (!this.map) {\n return;\n }\n\n let sourceName: string = prefix + \"-geoobject\";\n\n if (this.geometryType === \"MULTIPOLYGON\" || this.geometryType === \"POLYGON\") {\n if (this.map.getLayer(sourceName + \"-polygon\") != null) {\n this.map.removeLayer(sourceName + \"-polygon\");\n }\n } else if (this.geometryType === \"POINT\" || this.geometryType === \"MULTIPOINT\") {\n if (this.map.getLayer(sourceName + \"-point\") != null) {\n this.map.removeLayer(sourceName + \"-point\");\n }\n } else if (this.geometryType === \"LINE\" || this.geometryType === \"MultiLine\") {\n if (this.map.getLayer(sourceName + \"-line\") != null) {\n this.map.removeLayer(sourceName + \"-line\");\n }\n }\n\n if (this.map.getSource(sourceName) != null) {\n this.map.removeSource(sourceName);\n }\n }\n\n removeLayers(): void {\n if (this.layers != null && this.layers.length > 0) {\n let len = this.layers.length;\n\n for (let i = 0; i < len; ++i) {\n let layer = this.layers[i];\n this.removeSource(layer.oid);\n }\n }\n }\n\n addLayers(): void {\n if (this.layers != null && this.layers.length > 0) {\n let len = this.layers.length;\n for (let i = 0; i < len; ++i) {\n let layer = this.layers[i];\n\n if (layer.isRendering) {\n this.renderGeometryAsLayer(layer.editPropagator == null ? layer.geojson : layer.editPropagator.value, layer.oid, layer.color);\n }\n }\n }\n }\n\n renderGeometryAsLayer(geometry: any, sourceName: string, color: string) {\n let finalSourceName: string = sourceName + \"-geoobject\";\n\n if (!this.map) {\n return;\n }\n if (!geometry) {\n return;\n }\n\n this.map.addSource(finalSourceName, {\n type: \"geojson\",\n data: {\n type: \"FeatureCollection\",\n features: []\n }\n });\n\n if (this.geometryType === \"MULTIPOLYGON\" || this.geometryType === \"POLYGON\") {\n // Polygon Layer\n this.map.addLayer({\n id: finalSourceName + \"-polygon\",\n type: \"fill\",\n source: finalSourceName,\n paint: {\n \"fill-color\": color,\n \"fill-outline-color\": \"black\",\n \"fill-opacity\": 0.7\n }\n });\n } else if (this.geometryType === \"POINT\" || this.geometryType === \"MULTIPOINT\") {\n // Point layer\n this.map.addLayer({\n id: finalSourceName + \"-point\",\n type: \"circle\",\n source: finalSourceName,\n paint: {\n \"circle-radius\": 3,\n \"circle-color\": color,\n \"circle-stroke-width\": 2,\n \"circle-stroke-color\": \"#FFFFFF\"\n }\n });\n } else if (this.geometryType === \"LINE\" || this.geometryType === \"MULTILINE\") {\n this.map.addLayer({\n id: finalSourceName + \"-line\",\n source: finalSourceName,\n type: \"line\",\n layout: {\n \"line-join\": \"round\",\n \"line-cap\": \"round\"\n },\n paint: {\n \"line-color\": color,\n \"line-width\": 2\n }\n });\n }\n\n ( this.map.getSource(finalSourceName)).setData(geometry);\n }\n\n getDrawGeometry(): any {\n if (this.editingControl != null) {\n let featureCollection: any = this.editingControl.getAll();\n\n if (featureCollection.features.length > 0) {\n // The first Feature is our GeoObject.\n\n // Any additional features were created using the draw editor. Combine them into the GeoObject if its a multi-polygon.\n if (this.geometryType === \"MULTIPOLYGON\") {\n let polygons = [];\n\n for (let i = 0; i < featureCollection.features.length; i++) {\n let feature = featureCollection.features[i];\n\n if (feature.geometry.type === \"MultiPolygon\") {\n for (let j = 0; j < feature.geometry.coordinates.length; j++) {\n polygons.push(feature.geometry.coordinates[j]);\n }\n } else {\n polygons.push(feature.geometry.coordinates);\n }\n }\n\n return {\n coordinates: polygons,\n type: \"MultiPolygon\"\n };\n } else if (this.geometryType === \"MULTIPOINT\") {\n let points = [];\n\n for (let i = 0; i < featureCollection.features.length; i++) {\n let feature = featureCollection.features[i];\n\n if (feature.geometry.type === \"MultiPoint\") {\n for (let j = 0; j < feature.geometry.coordinates.length; j++) {\n points.push(feature.geometry.coordinates[j]);\n }\n } else {\n points.push(feature.geometry.coordinates);\n }\n }\n\n return {\n coordinates: points,\n type: \"MultiPoint\"\n };\n } else if (this.geometryType === \"MULTILINE\") {\n let lines = [];\n\n for (let i = 0; i < featureCollection.features.length; i++) {\n let feature = featureCollection.features[i];\n\n if (feature.geometry.type === \"MultiLineString\") {\n for (let j = 0; j < feature.geometry.coordinates.length; j++) {\n lines.push(feature.geometry.coordinates[j]);\n }\n } else {\n lines.push(feature.geometry.coordinates);\n }\n }\n\n return {\n coordinates: lines,\n type: \"MultiLineString\"\n };\n } else {\n return featureCollection.features[0].geometry;\n }\n }\n }\n\n return null;\n }\n\n public static createEmptyGeometryValue(geometryType: String): any {\n let value = { type: geometryType, coordinates: [] };\n\n if (geometryType === \"MULTIPOLYGON\") {\n value.type = \"MultiPolygon\";\n } else if (geometryType === \"POLYGON\") {\n value.type = \"Polygon\";\n } else if (geometryType === \"POINT\") {\n value.type = \"Point\";\n } else if (geometryType === \"MULTIPOINT\") {\n value.type = \"MultiPoint\";\n } else if (geometryType === \"LINE\") {\n value.type = \"Line\";\n } else if (geometryType === \"MULTILINE\") {\n value.type = \"MultiLine\";\n }\n\n return value;\n }\n\n zoomToLayersExtent(): void {\n this.layers.forEach(layer => {\n if (layer.geojson != null) {\n if (this.geometryType === \"MULTIPOINT\" || this.geometryType === \"POINT\") {\n let coords = layer.geojson.coordinates;\n\n if (coords) {\n let bounds = new LngLatBounds();\n coords.forEach(coord => {\n bounds.extend(coord);\n });\n\n let center = bounds.getCenter();\n let pt = new LngLat(center.lng, center.lat);\n\n this.map.flyTo({\n center: pt,\n zoom: 9,\n essential: true\n });\n }\n } else if (this.geometryType === \"MULTIPOLYGON\" || this.geometryType === \"POLYGON\") {\n let coords = layer.geojson.coordinates;\n\n if (coords) {\n let bounds = new LngLatBounds();\n coords.forEach(polys => {\n polys.forEach(subpoly => {\n subpoly.forEach(coord => {\n bounds.extend(coord);\n });\n });\n });\n\n this.map.fitBounds(bounds, {\n padding: 20\n });\n }\n } else if (this.geometryType === \"LINE\" || this.geometryType === \"MULTILINE\") {\n let coords = layer.geojson.coordinates;\n\n if (coords) {\n let bounds = new LngLatBounds();\n coords.forEach(lines => {\n lines.forEach(subline => {\n subline.forEach(coord => {\n bounds.extend(coord);\n });\n });\n });\n\n this.map.fitBounds(bounds, {\n padding: 20\n });\n }\n }\n }\n });\n }\n\n}\n","import { Directive, ElementRef, HostListener, Input } from \"@angular/core\";\n\n@Directive({\n selector: \"[OnlyNumber]\"\n})\nexport class OnlyNumber {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private el: ElementRef) { }\n\n @Input() OnlyNumber: boolean;\n\n @HostListener(\"keydown\", [\"$event\"]) onKeyDown(event: any) {\n let e = event;\n if (this.OnlyNumber) {\n if ([46, 8, 9, 27, 13, 110, 190].indexOf(e.keyCode) !== -1 ||\n // Allow: Ctrl+A\n (e.keyCode === 65 && e.ctrlKey === true) ||\n // Allow: Ctrl+C\n (e.keyCode === 67 && e.ctrlKey === true) ||\n // Allow: Ctrl+X\n (e.keyCode === 88 && e.ctrlKey === true) ||\n // Allow: home, end, left, right\n (e.keyCode >= 35 && e.keyCode <= 39)) {\n // let it happen, don't do anything\n return;\n }\n // Ensure that it is a number and stop the keypress\n if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {\n e.preventDefault();\n }\n }\n }\n\n}\n","import { Directive, Input } from \"@angular/core\";\nimport { NG_VALIDATORS, Validator, ValidationErrors, FormGroup } from \"@angular/forms\";\n\n// custom validator to check that two fields match\nexport function MustMatch(controlName: string, matchingControlName: string) {\n return (formGroup: FormGroup) => {\n const control = formGroup.controls[controlName];\n const matchingControl = formGroup.controls[matchingControlName];\n\n // return null if controls haven't initialised yet\n if (!control || !matchingControl) {\n return null;\n }\n\n // return null if another validator has already found an error on the matchingControl\n if (matchingControl.errors && !matchingControl.errors.mustMatch) {\n return null;\n }\n\n // set error on matchingControl if validation fails\n if (control.value !== matchingControl.value) {\n matchingControl.setErrors({ mustMatch: true });\n } else {\n matchingControl.setErrors(null);\n }\n };\n}\n\n@Directive({\n selector: \"[mustMatch]\",\n providers: [{ provide: NG_VALIDATORS, useExisting: MustMatchDirective, multi: true }]\n})\nexport class MustMatchDirective implements Validator {\n\n @Input(\"mustMatch\") mustMatch: string[] = [];\n\n validate(formGroup: FormGroup): ValidationErrors {\n return MustMatch(this.mustMatch[0], this.mustMatch[1])(formGroup);\n }\n\n}\n","/* eslint-disable padded-blocks */\nexport class Profile {\n oid: string;\n username: string;\n password: string;\n firstName: string;\n lastName: string;\n email: string;\n changePassword?: boolean;\n phoneNumber?: string;\n altFirstName?: string;\n altLastName?: string;\n altPhoneNumber?: string;\n position?: string;\n department?: string;\n externalSystemOid?: string;\n}","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { formatNumber, ParsedNumber } from \"libphonenumber-js\";\n\n@Pipe({\n name: \"phone\"\n})\nexport class PhonePipe implements PipeTransform {\n\n transform(value: ParsedNumber, args?: string): any {\n if (!value) {\n return value;\n }\n\n return formatNumber({ country: \"US\", phone: value.toString() }, \"International\");\n }\n\n}\n","import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\nimport { enableProdMode } from '@angular/core';\nimport { CgrAppModule } from './app/cgr-app.module';\n\nif (process.env.ENV === 'production') {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(CgrAppModule)\n .then(success => console.log('Bootstrap success'))\n .catch(error => console.log(error));\n\n","import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { HttpClientModule, HTTP_INTERCEPTORS } from \"@angular/common/http\";\nimport { TreeModule } from \"@circlon/angular-tree-component\";\nimport { ContextMenuModule } from \"ngx-contextmenu\";\nimport { BsDropdownModule } from \"ngx-bootstrap/dropdown\";\nimport { ButtonsModule } from \"ngx-bootstrap/buttons\";\nimport { TypeaheadModule } from \"ngx-bootstrap/typeahead\";\nimport { FileUploadModule } from \"ng2-file-upload\";\nimport { NgxPaginationModule } from \"ngx-pagination\";\nimport { ProgressbarModule } from \"ngx-bootstrap/progressbar\";\nimport { CollapseModule } from \"ngx-bootstrap/collapse\";\nimport { TabsModule } from \"ngx-bootstrap/tabs\";\nimport { BsDatepickerModule } from \"ngx-bootstrap/datepicker\";\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\n\nimport { CgrAppComponent } from \"./cgr-app.component\";\nimport { CgrAppRoutingModule, routedComponents } from \"./cgr-app-routing.module\";\n\nimport { LoginComponent } from \"@core/component/login/login.component\";\nimport { LoginHeaderComponent } from \"@core/component/login/login-header.component\";\nimport { HubComponent } from \"@core/component/hub/hub.component\";\nimport { ForgotPasswordComponent } from \"@core/component/forgotpassword/forgotpassword.component\";\nimport { ForgotPasswordCompleteComponent } from \"@core/component/forgotpassword-complete/forgotpassword-complete.component\";\n\nimport { HttpErrorInterceptor } from \"@core/service/http-error.interceptor\";\n\nimport { ForgotPasswordService } from \"@core/service/forgotpassword.service\";\nimport { PasswordStrengthBarComponent } from \"@shared/component/password-strength-bar/password-strength-bar.component\";\nimport { HubService } from \"@core/service/hub.service\";\n\nimport { GeometryService } from \"@registry/service/geometry.service\";\n\nimport { SharedModule } from \"@shared/shared.module\";\n\nimport \"./rxjs-extensions\";\n\n@NgModule({\n imports: [\n BrowserModule,\n FormsModule,\n HttpClientModule,\n CgrAppRoutingModule,\n ReactiveFormsModule,\n FileUploadModule,\n // ModalModule.forRoot(),\n TreeModule,\n ContextMenuModule.forRoot(),\n BsDropdownModule.forRoot(),\n ButtonsModule.forRoot(),\n TypeaheadModule.forRoot(),\n ProgressbarModule.forRoot(),\n CollapseModule.forRoot(),\n TabsModule.forRoot(),\n NgxPaginationModule,\n BrowserAnimationsModule,\n SharedModule.forRoot(),\n BsDatepickerModule.forRoot()\n ],\n declarations: [\n CgrAppComponent,\n LoginComponent,\n LoginHeaderComponent,\n HubComponent,\n ForgotPasswordComponent,\n ForgotPasswordCompleteComponent,\n\n // Routing components\n routedComponents\n ],\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: HttpErrorInterceptor,\n multi: true\n },\n ForgotPasswordService,\n PasswordStrengthBarComponent,\n HubService,\n GeometryService\n ],\n exports: [\n CgrAppComponent\n ],\n bootstrap: [CgrAppComponent],\n entryComponents: [\n ]\n})\nexport class CgrAppModule { }\n","import { Component } from \"@angular/core\";\n\n@Component({\n\n selector: \"cgr-app\",\n templateUrl: \"./cgr-app.component.html\",\n styleUrls: []\n})\nexport class CgrAppComponent {\n\n // eslint-disable-next-line no-useless-constructor\n constructor() { }\n\n}\n","
\n\n \n
\n \n
\n \n
","import { NgModule } from \"@angular/core\";\nimport { LocationStrategy, HashLocationStrategy } from \"@angular/common\";\nimport { Routes, RouterModule } from \"@angular/router\";\n\nimport { LoginComponent } from \"./core/component/login/login.component\";\nimport { HubComponent } from \"./core/component/hub/hub.component\";\nimport { ForgotPasswordComponent } from \"./core/component/forgotpassword/forgotpassword.component\";\nimport { ForgotPasswordCompleteComponent } from \"./core/component/forgotpassword-complete/forgotpassword-complete.component\";\n\nimport { AuthGuard, AdminGuard, MaintainerGuard, ContributerGuard } from \"./shared/service/guard.service\";\n\nconst routes: Routes = [\n {\n path: \"\",\n redirectTo: \"/menu\",\n pathMatch: \"full\"\n },\n {\n path: \"login\",\n component: LoginComponent,\n data: { title: \"login.title\" }\n },\n {\n path: \"login/:errorMsg\",\n component: LoginComponent,\n data: { title: \"login.title\" }\n },\n {\n path: \"menu\",\n component: HubComponent,\n canActivate: [AuthGuard],\n data: { title: \"login.header\" }\n },\n {\n path: \"menu/:value\",\n component: HubComponent,\n canActivate: [AuthGuard],\n data: { title: \"login.header\" }\n },\n {\n path: \"forgotpassword\",\n component: ForgotPasswordComponent,\n data: { title: \"useraccounts.title\" }\n },\n {\n path: \"forgotpassword-complete/:token\",\n component: ForgotPasswordCompleteComponent\n },\n {\n path: \"admin\",\n loadChildren: \"./admin/admin.module#AdminModule\"\n },\n {\n path: \"registry\",\n loadChildren: \"./registry/registry.module#RegistryModule\"\n }\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule],\n providers: [\n { provide: LocationStrategy, useClass: HashLocationStrategy },\n AdminGuard,\n MaintainerGuard,\n ContributerGuard\n ]\n})\nexport class CgrAppRoutingModule { }\n\nexport const routedComponents: any = [LoginComponent, HubComponent, ForgotPasswordComponent, ForgotPasswordCompleteComponent];\n","import { Injectable } from '@angular/core';\nimport {\n HttpEvent,\n HttpInterceptor,\n HttpHandler,\n HttpRequest,\n HttpResponse,\n HttpResponseBase, \n HttpErrorResponse\n} from '@angular/common/http';\n\nimport { Observable } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\ndeclare var acp: string;\n\n@Injectable()\nexport class HttpErrorInterceptor implements HttpInterceptor {\n\n intercept( request: HttpRequest, next: HttpHandler ): Observable> {\n\n return next.handle( request ).pipe(tap(( event: HttpEvent ) => {\n if ( event instanceof HttpResponseBase ) {\n const response = event as HttpResponseBase;\n if ( response.status === 302 ) {\n window.location.href = acp + '/cgr/manage#/login';\n return;\n }\n }\n }, ( err: any ) => {\n if ( err instanceof HttpErrorResponse ) {\n if ( err.status === 401 || err.status === 403 ) {\n // redirect to the login route\n // or show a modal\n window.location.href = acp + '/cgr/manage#/login';\n }\n }\n } ));\n }\n}","import { Input, Component, OnInit } from \"@angular/core\";\n\nimport { LocalizationService } from \"@shared/service\";\n\n@Component({\n\n selector: \"localize\",\n templateUrl: \"./localize.component.html\",\n styleUrls: []\n})\nexport class LocalizeComponent implements OnInit {\n\n @Input() key: string;\n @Input() params: { [key: string]: string } = null;\n\n text: string;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: LocalizationService) { }\n\n ngOnInit(): void {\n this.text = this.service.decode(this.key);\n\n if (this.params != null) {\n const keys = Object.keys(this.params);\n\n keys.forEach((key) => {\n if (this.params[key] != null) {\n this.text = this.text.replace(key, this.params[key]);\n }\n });\n }\n }\n\n}\n","","import { Component, OnInit } from \"@angular/core\";\n\nimport { EventService, IEventListener } from \"@shared/service\";\n\n@Component({\n\n selector: \"loading-bar\",\n templateUrl: \"./loading-bar.component.html\",\n styleUrls: [\"./loading-bar.css\"]\n})\nexport class LoadingBarComponent implements OnInit, IEventListener {\n\n showIndicator: boolean = false;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: EventService) { }\n\n ngOnInit(): void {\n this.service.registerListener(this);\n }\n\n ngOnDestroy(): void {\n this.service.deregisterListener(this);\n }\n\n start(): void {\n this.showIndicator = true;\n }\n\n complete(): void {\n this.showIndicator = false;\n }\n\n}\n","
\n\n
","import { Injectable } from \"@angular/core\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { User } from \"@shared/model/user\";\nimport { RoleBuilder, RegistryRole, RegistryRoleType, LocaleView } from \"@shared/model/core\";\n\n@Injectable()\nexport class AuthService {\n\n private user: User = {\n loggedIn: false,\n userName: \"\",\n roles: [],\n roleDisplayLabels: [],\n version: \"0\",\n installedLocales: []\n };\n\n constructor(private service: CookieService) {\n let cookie = service.get(\"user\");\n\n if (this.service.check(\"user\") && cookie != null && cookie.length > 0) {\n let cookieData: string = this.service.get(\"user\");\n let cookieDataJSON: any = JSON.parse(cookieData);\n\n this.buildFromCookieJson(cookieDataJSON);\n }\n\n this.loadLocales();\n }\n\n buildFromCookieJson(cookieDataJSON: any) {\n this.user.userName = cookieDataJSON.userName;\n this.buildRolesFromCookie(cookieDataJSON);\n this.user.loggedIn = cookieDataJSON.loggedIn;\n this.user.roleDisplayLabels = cookieDataJSON.roleDisplayLabels;\n this.user.version = cookieDataJSON.version.replaceAll(\"+\", \" \");\n // this.user.installedLocales = cookieDataJSON.installedLocales;\n }\n\n buildRolesFromCookie(cookieDataJSON: any) {\n this.user.roles = [];\n let roles: string[] = cookieDataJSON.roles;\n\n for (let i = 0; i < roles.length; ++i) {\n let role: RegistryRole = RoleBuilder.buildFromRoleName(roles[i]);\n\n if (role != null) {\n this.user.roles.push(role);\n }\n }\n }\n\n isLoggedIn(): boolean {\n return this.user.loggedIn;\n }\n\n afterLogIn(logInResponse: any): void {\n this.buildFromCookieJson(JSON.parse(this.service.get(\"user\")));\n\n this.setLocales(logInResponse.installedLocales);\n this.user.installedLocales = logInResponse.installedLocales;\n }\n\n afterLogOut(): void {\n this.user = null;\n sessionStorage.removeItem(\"locales\");\n }\n\n loadLocales() {\n let storageLocales = window.sessionStorage.getItem(\"locales\");\n\n if (storageLocales != null) {\n this.user.installedLocales = JSON.parse(storageLocales);\n }\n }\n\n setLocales(locales: LocaleView[]) {\n window.sessionStorage.setItem(\"locales\", JSON.stringify(locales));\n }\n\n removeUser(): void {\n this.user = {\n loggedIn: false,\n userName: \"\",\n roles: [],\n roleDisplayLabels: [],\n version: \"0\",\n installedLocales: []\n };\n }\n\n // Legacy Accessors:\n isAdmin(): boolean {\n return this.isSRA() || this.isRA();\n }\n\n isMaintainer(): boolean {\n return this.isSRA() || this.isRM();\n }\n\n isContributer(): boolean {\n return this.isSRA() || this.isRC(false);\n }\n\n isContributerOnly(): boolean {\n return this.isRC(true);\n }\n\n // Used to exactly identify a role. I.e. if we say we need RC, SRA doesn't count.\n hasExactRole(roleType: RegistryRoleType) {\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === roleType) {\n return true;\n }\n }\n\n return false;\n }\n\n isSRA(): boolean {\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === RegistryRoleType.SRA) {\n return true;\n }\n }\n\n return false;\n }\n\n isRA(): boolean {\n if (this.isSRA()) {\n return true;\n }\n\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === RegistryRoleType.RA) {\n return true;\n } else if (role.roleName.indexOf(\"commongeoregistry.RegistryAdministrator\") !== -1 || role.roleName.indexOf(\"cgr.RegistryAdministrator\") !== -1) {\n // Legacy support\n return true;\n }\n }\n }\n\n isRM(): boolean {\n if (this.isSRA()) {\n return true;\n }\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === RegistryRoleType.RM) {\n return true;\n } else if (role.roleName.indexOf(\"commongeoregistry.RegistryMaintainer\") !== -1 || role.roleName.indexOf(\"cgr.RegistryMaintainer\") !== -1) {\n // Legacy support\n return true;\n }\n }\n\n return false;\n }\n\n isOrganizationRA(orgCode: string): boolean {\n if (this.isSRA()) {\n return true;\n }\n\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.orgCode === orgCode && role.type === RegistryRoleType.RA) {\n return true;\n }\n }\n\n return false; // this.isSRA();\n }\n\n isGeoObjectTypeRM(orgCode: string, gotCode: string): boolean {\n if (this.isSRA()) {\n return true;\n }\n\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === RegistryRoleType.RM && role.orgCode === orgCode && role.geoObjectTypeCode === gotCode) {\n return true;\n }\n }\n\n return this.isOrganizationRA(orgCode);\n }\n\n isGeoObjectTypeOrSuperRM(got: { organizationCode: string, superTypeCode?: string, code: string }, allowRoleSuper: boolean = true): boolean {\n if (this.isGeoObjectTypeRM(got.organizationCode, got.code)) {\n return true;\n } else if (got.superTypeCode != null) {\n return this.isGeoObjectTypeRM(got.organizationCode, got.superTypeCode);\n }\n }\n\n isGeoObjectTypeRC(orgCode: string, gotCode: string): boolean {\n if (this.isSRA()) {\n return true;\n }\n\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === RegistryRoleType.RC && role.orgCode === orgCode && role.geoObjectTypeCode === gotCode) {\n return true;\n }\n }\n\n return this.isGeoObjectTypeRM(orgCode, gotCode);\n }\n\n isGeoObjectTypeOrSuperRC(got: { organizationCode: string, superTypeCode?: string, code: string }, allowRoleSuper: boolean = true): boolean {\n if (this.isGeoObjectTypeRC(got.organizationCode, got.code)) {\n return true;\n } else if (got.superTypeCode != null) {\n return this.isGeoObjectTypeRC(got.organizationCode, got.superTypeCode);\n }\n }\n\n isRC(isRCOnly: boolean): boolean {\n if (this.isSRA() && !isRCOnly) {\n return true;\n }\n\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === RegistryRoleType.RC) {\n return true;\n } else if (role.roleName.indexOf(\"commongeoregistry.RegistryContributor\") !== -1 || role.roleName.indexOf(\"cgr.RegistryContributor\") !== -1) {\n // Legacy support\n return true;\n }\n }\n\n return false;\n }\n\n // Returns all organization codes that the current user participates in.\n // If the user is an SRA then this method will return an empty string array.\n getMyOrganizations(): string[] {\n let orgCodes: string[] = [];\n\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === RegistryRoleType.SRA || role.type === RegistryRoleType.RC || role.type === RegistryRoleType.RM || role.type === RegistryRoleType.RA) {\n orgCodes.push(role.orgCode);\n }\n }\n\n return orgCodes;\n }\n\n __getRoleFromRoleName(roleName: string): string {\n let nameArr = roleName.split(\".\");\n\n return nameArr[nameArr.length - 1];\n }\n\n getUsername(): string {\n return this.user.userName;\n }\n\n getRoles(): any {\n return this.user.roles;\n }\n\n getRoleDisplayLabelsArray(): any {\n return this.user.roleDisplayLabels;\n }\n\n getRoleDisplayLabels(): string {\n let str = \"\";\n for (let i = 0; i < this.user.roleDisplayLabels.length; ++i) {\n let displayLabel = this.user.roleDisplayLabels[i];\n\n if (displayLabel === \"Administrator\") {\n continue;\n // It's OK to hardcode to a display label here because the end user can't change it anyway.\n // Is it ideal? No. But sometimes it's better to get software out quicker than to spend forever\n // on something that nobody will ever see.\n }\n\n str = str + displayLabel;\n\n if (i < this.user.roleDisplayLabels.length - 1) {\n str = str + \",\";\n }\n }\n\n return str;\n }\n\n getVersion(): string {\n return this.user.version;\n }\n\n getLocales(): LocaleView[] {\n return this.user.installedLocales;\n }\n\n addLocale(locale: LocaleView): void {\n let exists: boolean = false;\n\n for (let i = 0; i < this.user.installedLocales.length; ++i) {\n if (this.user.installedLocales[i].tag === locale.tag) {\n exists = true;\n this.user.installedLocales[i] = locale;\n }\n }\n\n if (!exists) {\n this.user.installedLocales.push(locale);\n }\n\n this.setLocales(this.user.installedLocales);\n }\n\n removeLocale(locale: LocaleView): void {\n for (let i = 0; i < this.user.installedLocales.length; ++i) {\n if (this.user.installedLocales[i].tag === locale.tag) {\n this.user.installedLocales.splice(i, 1);\n this.setLocales(this.user.installedLocales);\n return;\n }\n }\n\n // eslint-disable-next-line no-console\n console.log(\"Could not remove locale from array because we could not find it.\", locale, this.user.installedLocales);\n }\n\n}\n","import { Component, OnChanges, Input, SimpleChange } from \"@angular/core\";\n\n@Component({\n selector: \"password-strength-bar\",\n templateUrl: \"./password-strength-bar.component.html\",\n styleUrls: [\"./password-strength-bar.component.css\"]\n})\nexport class PasswordStrengthBarComponent implements OnChanges {\n\n @Input() passwordToCheck: string;\n bar0: string;\n bar1: string;\n bar2: string;\n bar3: string;\n bar4: string;\n\n private colors = [\"#F00\", \"#F90\", \"#FF0\", \"#9F0\", \"#0F0\"];\n\n private static measureStrength(pass: string) {\n let score = 0;\n // award every unique letter until 5 repetitions\n let letters = {};\n for (let i = 0; i < pass.length; i++) {\n letters[pass[i]] = (letters[pass[i]] || 0) + 1;\n score += 5.0 / letters[pass[i]];\n }\n // bonus points for mixing it up\n let variations = {\n digits: /\\d/.test(pass),\n lower: /[a-z]/.test(pass),\n upper: /[A-Z]/.test(pass),\n nonWords: /\\W/.test(pass)\n };\n\n let variationCount = 0;\n for (let check in variations) {\n variationCount += (variations[check]) ? 1 : 0;\n }\n score += (variationCount - 1) * 10;\n return Math.trunc(score);\n }\n\n private getColor(score: number) {\n let idx = 0;\n if (score > 90) {\n idx = 4;\n } else if (score > 70) {\n idx = 3;\n } else if (score >= 40) {\n idx = 2;\n } else if (score >= 20) {\n idx = 1;\n }\n return {\n idx: idx + 1,\n col: this.colors[idx]\n };\n }\n\n ngOnChanges(changes: { [propName: string]: SimpleChange }): void {\n let password = changes[\"passwordToCheck\"].currentValue;\n this.setBarColors(5, \"#DDD\");\n if (password) {\n let c = this.getColor(PasswordStrengthBarComponent.measureStrength(password));\n this.setBarColors(c.idx, c.col);\n }\n }\n\n private setBarColors(count, col) {\n for (let _n = 0; _n < count; _n++) {\n this[\"bar\" + _n] = col;\n }\n }\n\n}\n","
\n
    \n
  • \n
  • \n
  • \n
  • \n
  • \n
\n
\n","///\n/// Copyright (c) 2015 TerraFrame, Inc. All rights reserved.\n///\n/// This file is part of Runway SDK(tm).\n///\n/// Runway SDK(tm) is free software: you can redistribute it and/or modify\n/// it under the terms of the GNU Lesser General Public License as\n/// published by the Free Software Foundation, either version 3 of the\n/// License, or (at your option) any later version.\n///\n/// Runway SDK(tm) is distributed in the hope that it will be useful, but\n/// WITHOUT ANY WARRANTY; without even the implied warranty of\n/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n/// GNU Lesser General Public License for more details.\n///\n/// You should have received a copy of the GNU Lesser General Public\n/// License along with Runway SDK(tm). If not, see .\n///\n\nimport { Injectable } from '@angular/core';\nimport { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\n\nimport { Application } from '@shared/model/application';\n\ndeclare var acp: any;\n\n@Injectable()\nexport class HubService {\n\n\tconstructor(private http: HttpClient) { }\n\n\tapplications(): Promise {\n\n\t\tlet headers = new HttpHeaders({\n\t\t\t'Content-Type': 'application/json'\n\t\t});\n\n\t\treturn this.http\n\t\t\t.post(acp + '/menu/applications', { headers: headers })\n\t\t\t.toPromise();\n\t}\n\t\n\toauthGetPublic(id: string): Promise {\n let params: HttpParams = new HttpParams();\n\n if (id)\n {\n params = params.set('id', id)\n }\n\n return this.http\n .get(acp + '/cgr/oauth/get-public', { params: params })\n .toPromise();\n }\n}\n","import { Component, OnInit } from \"@angular/core\";\n\nimport { EventService, IEventListener } from \"@shared/service\";\n\n@Component({\n\n selector: \"message\",\n templateUrl: \"./message.component.html\",\n styles: [\n \".error-container { text-align: center; border-width: 1px; border-color: #8c0000; border-style: solid; color: #8c0000; font-size: 17px; background: white;}\",\n \".message-container { text-align: center; border-width: 1px; border-color: #106828; border-style: solid; margin-left: 10%; margin-right: 10%; color: #106828; }\"\n ]\n})\nexport class MessageComponent implements OnInit, IEventListener {\n\n error: any = null;\n\n message: string = \"\";\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: EventService) { }\n\n ngOnInit(): void {\n this.service.registerListener(this);\n }\n\n ngOnDestroy(): void {\n this.service.deregisterListener(this);\n }\n\n start(): void {\n this.error = null;\n }\n\n complete(): void {\n }\n\n onError(error: any): void {\n this.error = error;\n }\n\n onMessage(msg: string): void {\n this.message = msg;\n }\n\n}\n","\n
\n
\n
\n \n
\n
\n
\n

{{message}}

\n
\n
\n
\n
\n
\n \n
\n
\n
\n

{{error.localizedMessage}}

\n

\n
\n
\n
\n
\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/app/shared/component/index.ts","webpack:///./src/app/shared/service/date.service.ts","webpack:///./src/app/shared/pipe/localize.pipe.ts","webpack:///./src/app/shared/service/localization.service.ts","webpack:///./src/app/shared/service/event.service.ts","webpack:///./src/app/core/service/forgotpassword.service.ts","webpack:///./src/app/shared/component/header/header.component.ts","webpack:///./src/app/shared/component/header/header.component.html","webpack:///./src/app/shared/service/guard.service.ts","webpack:///./src/app/shared/component/profile/profile.component.ts","webpack:///./src/app/shared/component/profile/profile.component.html","webpack:///./src/app/shared/model/core.ts","webpack:///./src/app/shared/component/modals/modal-step-indicator.component.ts","webpack:///./src/app/shared/component/modals/modal-step-indicator.component.html","webpack:///./src/app/shared/component/progress-bar/progress-bar.component.ts","webpack:///./src/app/shared/component/progress-bar/progress-bar.component.html","webpack:///./src/app/shared/service/external-system.service.ts","webpack:///./src/app/shared/service/modal-step-indicator.service.ts","webpack:///./src/app/shared/service/organization.service.ts","webpack:///./src/app/shared/service/index.ts","webpack:///./src/app/shared/service/pending-changes-guard.ts","webpack:///./src/app/shared/service/profile.service.ts","webpack:///./src/app/shared/service/progress.service.ts","webpack:///./src/app/shared/service/session.service.ts","webpack:///./src/app/shared/component/message/error-message.component.ts","webpack:///./src/app/shared/component/message/error-message.component.html","webpack:///./src/app/shared/component/modals/confirm-modal.component.ts","webpack:///./src/app/shared/component/modals/confirm-modal.component.html","webpack:///./src/app/shared/component/modals/error-modal.component.ts","webpack:///./src/app/shared/component/modals/error-modal.component.html","webpack:///./src/app/shared/component/modals/success-modal.component.ts","webpack:///./src/app/shared/component/modals/success-modal.component.html","webpack:///./src/app/shared/component/modals/generic-modal.component.ts","webpack:///./src/app/shared/component/modals/generic-modal.component.html","webpack:///./$_lazy_route_resource lazy namespace object","webpack:///./src/app/core/component/login/login.component.ts","webpack:///./src/app/core/component/login/login.component.html","webpack:///./src/app/core/component/hub/hub.component.ts","webpack:///./src/app/core/component/hub/hub.component.html","webpack:///./src/app/core/component/forgotpassword/forgotpassword.component.ts","webpack:///./src/app/core/component/forgotpassword/forgotpassword.component.html","webpack:///./src/app/core/component/forgotpassword-complete/forgotpassword-complete.component.ts","webpack:///./src/app/core/component/forgotpassword-complete/forgotpassword-complete.component.html","webpack:///./src/app/registry/model/registry.ts","webpack:///./src/app/shared/component/error-handler/error-handler.ts","webpack:///./src/app/registry/utility/Utils.ts","webpack:///./src/app/shared/shared.module.ts","webpack:///./src/app/core/component/login/login-header.component.ts","webpack:///./src/app/core/component/login/login-header.component.html","webpack:///./src/app/registry/model/constants.ts","webpack:///./src/app/shared/component/localize/convert-key-label.component.ts","webpack:///./src/app/shared/component/localize/convert-key-label.component.html","webpack:///./src/app/shared/component/form-fields/date-field/date-field.component.ts","webpack:///./src/app/shared/component/form-fields/date-field/date-field.component.html","webpack:///./src/app/shared/model/modal.ts","webpack:///./src/app/shared/component/form-fields/boolean-field/boolean-field.component.ts","webpack:///./src/app/shared/component/form-fields/boolean-field/boolean-field.component.html","webpack:///./src/app/registry/service/geometry.service.ts","webpack:///./src/app/shared/directive/number-only.directive.ts","webpack:///./src/app/shared/directive/must-match.directive.ts","webpack:///./src/app/shared/model/profile.ts","webpack:///./src/app/shared/pipe/phone.pipe.ts","webpack:///./src/main.ts","webpack:///./src/app/cgr-app.module.ts","webpack:///./src/app/cgr-app.component.ts","webpack:///./src/app/cgr-app.component.html","webpack:///./src/app/cgr-app-routing.module.ts","webpack:///./src/app/core/service/http-error.interceptor.ts","webpack:///./src/app/shared/component/localize/localize.component.ts","webpack:///./src/app/shared/component/localize/localize.component.html","webpack:///./src/app/shared/component/loading-bar/loading-bar.component.ts","webpack:///./src/app/shared/component/loading-bar/loading-bar.component.html","webpack:///./src/app/shared/service/auth.service.ts","webpack:///./src/app/shared/component/password-strength-bar/password-strength-bar.component.ts","webpack:///./src/app/shared/component/password-strength-bar/password-strength-bar.component.html","webpack:///./src/app/core/service/hub.service.ts","webpack:///./src/app/shared/component/message/message.component.ts","webpack:///./src/app/shared/component/message/message.component.html"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","0","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","components","ErrorHandler","CgrHeaderComponent","LoadingBarComponent","LocalizeComponent","ErrorMessageComponent","MessageComponent","ConfirmModalComponent","GenericModalComponent","ErrorModalComponent","ModalStepIndicatorComponent","SuccessModalComponent","PasswordStrengthBarComponent","ProfileComponent","ProgressBarComponent","localizationService","overlapMessage","severity","this","decode","ConflictType","TIME_RANGE","mergeContiguousMessage","gapMessage","outsideExistsMessage","OUTSIDE_EXISTS","missingReference","MISSING_REFERENCE","startDateLaterEndDate","getPresentDate","Date","formatDateForDisplay","date","PRESENT","localize","getDateString","split","getDateFromDateString","year","getFullYear","month","getMonth","dt","getDate","checkRanges","attributeType","ranges","hasConflict","forEach","range","conflictMessages","Set","delete","filtered","filter","isDelete","h1","startDate","endDate","s1","e1","dateEndBeforeStart","add","h2","s2","e2","dateRangeOverlaps","getTime","addDay","areValuesEqual","sort","current","next","hasGap","between","test","dTest","dStart","dEnd","after","in1","in2","amount","plus1","setDate","votArr","a","b","checkExistRanges","existEntries","filteredExists","inRange","dateRangeOutside","validateDate","required","allowFutureDates","valid","today","isNaN","DateService","Injectable","service","transform","LocalizePipe","Pipe","locales","parser","Globalize","numberParser","formatter","numberFormatter","registry","locale","addLocale","exists","tag","setLocales","getLocale","getLocales","localizedValue","localeValues","toString","remove","log","parseNumber","formatNumber","number","Number","bundle","com","runwaysdk","Localize","index","lastIndexOf","temp","LocalizationService","listeners","registerListener","listener","deregisterListener","indexOfItem","indexOf","start","complete","EventService","http","eventService","submit","username","headers","HttpHeaders","post","acp","JSON","stringify","pipe","finalize","toPromise","newPassword","token","ForgotPasswordService","modalService","profileService","loggedIn","context","isAdmin","isMaintainer","isContributor","isContributer","defaultLocaleView","found","shouldShowMenuItem","item","hasExactRole","RegistryRoleType","SRA","RA","RM","RC","logout","sessionStorage","removeItem","location","href","getUsername","setLocale","then","reload","account","profile","bsModalRef","show","backdrop","class","content","Component","selector","templateUrl","styleUrls","Input","router","canActivate","route","state","navigate","AdminGuard","MaintainerGuard","ContributerGuard","isLoggedIn","AuthGuard","authService","_profile","oid","password","firstName","lastName","email","changePassword","roles","getRoles","getRolesForUser","onSubmit","hide","onChangePassword","getRolesArray","cancel","unlock","styles","LocaleValue","lService","label","isDefaultLocale","language","code","country","variant","LocaleView","Organization","ExternalSystem","OAuthServer","PageResult","getValue","localeToString","len","lv","populate","lv1","lv2","lv2lv","lv1lv","parse","LocalizedValue","buildFromRoleName","roleName","RegistryRole","roleSplit","orgCode","roleSuffix","gotCode","AC","RoleBuilder","geoObjectTypeCode","modalStepIndicatorService","stepSubscription","modalStepChange","subscribe","stepConfig","ngOnInit","ngOnDestroy","unsubscribe","showIndicator","prog","total","description","progress","getExternalSystems","pageNumber","pageSize","params","HttpParams","set","getExternalSystem","applyExternalSystem","system","getSystemCapabilities","removeExternalSystem","ExternalSystemService","modalStepChangedSource","Subject","asObservable","getStepConfig","setStepConfig","config","getStep","step","setStep","ModalStepIndicatorService","getOrganizations","updateOrganization","json","newOrganization","removeOrganization","OrganizationService","services","AuthService","PendingChangesGuard","ProfileService","ProgressService","SessionService","canDeactivate","component","confirmRet","confirm","afterDeactivate","userOID","login","logInResponse","afterLogIn","response","afterLogOut","localizeService","submitText","cancelText","ModalTypes","warning","onConfirm","onCancel","GenericButton","buttons","init","onClick","button","shouldClose","map","webpackAsyncContext","req","ids","id","keys","hService","oauthServers","viewOauthServers","oauthGetPublic","catch","sub","decodedError","replaceAll","onClickDhis2","url","applications","open","application","showErrorAsDialog","LoginComponent","tasks","buckets","loading","HubComponent","emailIsSent","getMessageFromError","ForgotPasswordComponent","passwordStrengthBarComponent","passwordIsReset","ForgotPasswordCompleteComponent","TreeEntity","children","addChild","term","Term","GeoObject","attributes","getAttribute","attr","getGeoObjectTypeTermAttributeOptions","geoObjectType","termAttributeCode","attrOpts","rootTerm","removeStatuses","GeoObjectType","Task","getVotAtDate","attrCode","retVot","time","isChangeOverTime","values","vot","Array","isArray","GeoObjectOverTime","ConflictMessage","ValueOverTime","AttributeOverTime","isDefault","unique","AttributeType","isChange","termOptions","setRootTerm","AttributeTermType","precision","scale","AttributeDecimalType","TreeNode","ChildTreeNode","ParentTreeNode","ManageGeoObjectTypeModalState","PaginationPage","AbstractScheduledJob","ScheduledJob","ScheduledJobOverview","ImportError","ServerException","ServerExceptionAttribute","ImportErrorObject","StepConfig","Step","MasterList","MasterListVersion","HierarchyOverTime","HierarchyOverTimeEntry","HierarchyOverTimeEntryParent","MasterListView","MasterListByOrg","SynchronizationConfig","OrgSyncInfo","ExportScheduledJob","ContextLayer","ContextLayerGroup","unspecified","msg","localizedMessage","includes","HttpErrorResponse","status","arr","newArray","formatDateString","dateObj","day","getUTCDate","getUTCMonth","getUTCFullYear","aStart","aEnd","bStart","bEnd","end","val1","val2","parseInt","localeValue","getValueAtLocale","parents","entries","parentData","parentData2","geoObject","properties","parseFloat","forRoot","ngModule","SharedModule","providers","CookieService","CommonModule","RouterModule","FormsModule","ReactiveFormsModule","FileUploadModule","ModalModule","TreeModule","ContextMenuModule","BsDropdownModule","ButtonsModule","TypeaheadModule","ProgressbarModule","CollapseModule","NgxPaginationModule","BsDatepickerModule","ConvertKeyLabel","BooleanFieldComponent","DateFieldComponent","OnlyNumber","MustMatchDirective","PhonePipe","NgModule","imports","declarations","entryComponents","hubService","LoginHeaderComponent","ActionTypes","GovernanceStatus","GeoObjectTypeModalStates","ImportStrategy","ChangeType","LayerColor","text","title","bsDatepickerConfig","changeDetectorRef","dateService","allowInfinity","inputName","idGenerator","classNames","customStyles","localizeLabelKey","disable","placement","oldDate","valueChange","EventEmitter","change","returnFocusToInput","valueIsPresent","validChange","dateInputFormat","setValue","_value","setInvalid","S4","Math","random","substring","isEqual","date1","date2","toggleInfinity","emit","toggle","validity","formattedDate","BsDatepickerDirective","datepicker","ViewChild","static","Output","layers","editingControl","simpleEditControl","geometryChange","onbeforeunload","destroy","initialize","geometryType","readOnly","addLayers","on","saveEdits","destroyMap","removeControl","removeLayers","layer","isEditing","isRendering","editingLayer","startEditing","stopEditing","enableEditing","addEditingLayers","rerender","deleteAll","setPointCoordinates","lat","long","features","geometry","coordinates","changeMode","featureIds","isValid","getAll","geoJson","getDrawGeometry","editPropagator","setEditing","setRendering","addLayer","newLayer","existingIndex","findIndex","findLayer","zindex","getLayers","getRenderedLayers","setLayers","controls","point","line_string","polygon","trash","combine_features","uncombine_features","userProperties","paint","getSource","addControl","removeSource","prefix","sourceName","getLayer","removeLayer","renderGeometryAsLayer","geojson","color","finalSourceName","addSource","source","layout","setData","featureCollection","polygons","feature","points","lines","createEmptyGeometryValue","zoomToLayersExtent","coords","LngLatBounds","coord","extend","center","getCenter","pt","LngLat","lng","flyTo","zoom","essential","polys","subpoly","fitBounds","padding","subline","GeometryService","el","onKeyDown","keyCode","ctrlKey","shiftKey","preventDefault","Directive","HostListener","MustMatch","controlName","matchingControlName","formGroup","control","matchingControl","errors","mustMatch","setErrors","validate","provide","NG_VALIDATORS","useExisting","multi","Profile","args","phone","process","env","ENV","enableProdMode","platformBrowser","bootstrapModule","success","CgrAppModule","CgrAppComponent","HTTP_INTERCEPTORS","useClass","HttpErrorInterceptor","HubService","BrowserModule","HttpClientModule","CgrAppRoutingModule","TabsModule","BrowserAnimationsModule","routedComponents","bootstrap","routes","path","redirectTo","pathMatch","loadChildren","LocationStrategy","HashLocationStrategy","intercept","handle","tap","HttpResponseBase","replace","user","userName","roleDisplayLabels","version","installedLocales","cookie","check","cookieData","cookieDataJSON","buildFromCookieJson","loadLocales","buildRolesFromCookie","role","storageLocales","getItem","setItem","removeUser","isSRA","isRA","isRM","isRC","isContributerOnly","roleType","isOrganizationRA","isGeoObjectTypeRM","isGeoObjectTypeOrSuperRM","got","allowRoleSuper","organizationCode","superTypeCode","isGeoObjectTypeRC","isGeoObjectTypeOrSuperRC","isRCOnly","getMyOrganizations","orgCodes","__getRoleFromRoleName","nameArr","getRoleDisplayLabelsArray","getRoleDisplayLabels","str","displayLabel","getVersion","removeLocale","colors","measureStrength","pass","score","letters","variations","digits","lower","upper","nonWords","variationCount","trunc","getColor","idx","col","ngOnChanges","changes","currentValue","setBarColors","count","_n","passwordToCheck","onError","onMessage"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAKlC,IAFGe,GAAqBA,EAAoBhB,GAEtCO,EAASC,QACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAKnBhB,EAAkB,CACrB,UAAW,EACXiB,EAAG,GAGAZ,EAAkB,GAQtB,SAASS,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAU8B,QAGnC,IAAIC,EAASH,EAAiB5B,GAAY,CACzCK,EAAGL,EACHgC,GAAG,EACHF,QAAS,IAUV,OANAhB,EAAQd,GAAUW,KAAKoB,EAAOD,QAASC,EAAQA,EAAOD,QAASJ,GAG/DK,EAAOC,GAAI,EAGJD,EAAOD,QAKfJ,EAAoBO,EAAI,SAAuBhC,GAC9C,IAAIiC,EAAW,GAKXC,EAAqBvB,EAAgBX,GACzC,GAA0B,IAAvBkC,EAGF,GAAGA,EACFD,EAASrB,KAAKsB,EAAmB,QAC3B,CAEN,IAAIC,EAAU,IAAIC,SAAQ,SAASC,EAASC,GAC3CJ,EAAqBvB,EAAgBX,GAAW,CAACqC,EAASC,MAE3DL,EAASrB,KAAKsB,EAAmB,GAAKC,GAGtC,IACII,EADAC,EAASC,SAASC,cAAc,UAGpCF,EAAOG,QAAU,QACjBH,EAAOI,QAAU,IACbnB,EAAoBoB,IACvBL,EAAOM,aAAa,QAASrB,EAAoBoB,IAElDL,EAAOO,IA1DV,SAAwB/C,GACvB,OAAOyB,EAAoBuB,EAAI,GAAKhD,EAAU,YAyD/BiD,CAAejD,GAG5B,IAAIkD,EAAQ,IAAIC,MAChBZ,EAAmB,SAAUa,GAE5BZ,EAAOa,QAAUb,EAAOc,OAAS,KACjCC,aAAaX,GACb,IAAIY,EAAQ7C,EAAgBX,GAC5B,GAAa,IAAVwD,EAAa,CACf,GAAGA,EAAO,CACT,IAAIC,EAAYL,IAAyB,SAAfA,EAAMM,KAAkB,UAAYN,EAAMM,MAChEC,EAAUP,GAASA,EAAMQ,QAAUR,EAAMQ,OAAOb,IACpDG,EAAMW,QAAU,iBAAmB7D,EAAU,cAAgByD,EAAY,KAAOE,EAAU,IAC1FT,EAAMY,KAAO,iBACbZ,EAAMQ,KAAOD,EACbP,EAAMa,QAAUJ,EAChBH,EAAM,GAAGN,GAEVvC,EAAgBX,QAAWgE,IAG7B,IAAIpB,EAAUqB,YAAW,WACxB1B,EAAiB,CAAEmB,KAAM,UAAWE,OAAQpB,MAC1C,MACHA,EAAOa,QAAUb,EAAOc,OAASf,EACjCE,SAASyB,KAAKC,YAAY3B,GAG5B,OAAOJ,QAAQgC,IAAInC,IAIpBR,EAAoB4C,EAAIxD,EAGxBY,EAAoB6C,EAAI3C,EAGxBF,EAAoB8C,EAAI,SAAS1C,EAASiC,EAAMU,GAC3C/C,EAAoBgD,EAAE5C,EAASiC,IAClCvD,OAAOmE,eAAe7C,EAASiC,EAAM,CAAEa,YAAY,EAAMC,IAAKJ,KAKhE/C,EAAoBoD,EAAI,SAAShD,GACX,oBAAXiD,QAA0BA,OAAOC,aAC1CxE,OAAOmE,eAAe7C,EAASiD,OAAOC,YAAa,CAAEC,MAAO,WAE7DzE,OAAOmE,eAAe7C,EAAS,aAAc,CAAEmD,OAAO,KAQvDvD,EAAoBwD,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQvD,EAAoBuD,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAK7E,OAAO8E,OAAO,MAGvB,GAFA5D,EAAoBoD,EAAEO,GACtB7E,OAAOmE,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOvD,EAAoB8C,EAAEa,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIR3D,EAAoB+D,EAAI,SAAS1D,GAChC,IAAI0C,EAAS1C,GAAUA,EAAOqD,WAC7B,WAAwB,OAAOrD,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAL,EAAoB8C,EAAEC,EAAQ,IAAKA,GAC5BA,GAIR/C,EAAoBgD,EAAI,SAASgB,EAAQC,GAAY,OAAOnF,OAAOC,UAAUC,eAAeC,KAAK+E,EAAQC,IAGzGjE,EAAoBuB,EAAI,WAGxBvB,EAAoBkE,GAAK,SAASC,GAA2B,MAApBC,QAAQ3C,MAAM0C,GAAYA,GAEnE,IAAIE,EAAaC,OAAqB,aAAIA,OAAqB,cAAK,GAChEC,EAAmBF,EAAWlF,KAAK2E,KAAKO,GAC5CA,EAAWlF,KAAOf,EAClBiG,EAAaA,EAAWG,QACxB,IAAI,IAAI7F,EAAI,EAAGA,EAAI0F,EAAWxF,OAAQF,IAAKP,EAAqBiG,EAAW1F,IAC3E,IAAIU,EAAsBkF,EAI1BhF,EAAgBJ,KAAK,CAAC,IAAI,WAEnBM,I,ibC7NT,aACA,SACA,QACA,QACA,SACA,QACA,SACA,SACA,SACA,SACA,QACA,SACA,SACA,SAEa,EAAAgF,WAAoB,CAC7B,EAAAC,aACA,EAAAC,mBACA,EAAAC,oBACA,EAAAC,kBACA,EAAAC,sBACA,EAAAC,iBACA,EAAAC,sBACA,EAAAC,sBACA,EAAAC,oBACA,EAAAC,4BACA,EAAAC,sBACA,EAAAC,6BACA,EAAAC,iBACA,EAAAC,sBAGJ,YACA,YACA,WACA,WACA,YACA,WACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,a,uGC7CA,WAEA,GADA,OACA,QACA,SAEA,S,gBAGA,aAwCI,WAAoBC,GAAA,KAAAA,sBArCb,KAAAC,eAAkC,CACrCC,SAAU,QACVtD,QAASuD,KAAKH,oBAAoBI,OAAO,mCACzC3D,KAAM,EAAA4D,aAAaC,YAGhB,KAAAC,uBAA0C,CAC7CL,SAAU,QACVtD,QAASuD,KAAKH,oBAAoBI,OAAO,iDACzC3D,KAAM,EAAA4D,aAAaC,YAGhB,KAAAE,WAA8B,CACjCN,SAAU,UACVtD,QAASuD,KAAKH,oBAAoBI,OAAO,+BACzC3D,KAAM,EAAA4D,aAAaC,YAGhB,KAAAG,qBAAwC,CAC3CP,SAAU,QACVtD,QAASuD,KAAKH,oBAAoBI,OAAO,yCACzC3D,KAAM,EAAA4D,aAAaK,gBAGhB,KAAAC,iBAAoC,CACvCT,SAAU,QACVtD,QAASuD,KAAKH,oBAAoBI,OAAO,kDACzC3D,KAAM,EAAA4D,aAAaO,mBAGhB,KAAAC,sBAAyC,CAC5CX,SAAU,QACVtD,QAASuD,KAAKH,oBAAoBI,OAAO,mDACzC3D,KAAM,EAAA4D,aAAaC,Y,OAOhB,YAAAQ,eAAP,WAII,OAFS,IAAIC,KAAK,IAAM,GAAI,GAAI,EAAG,EAAG,IAKnC,YAAAC,qBAAP,SAA4BC,GACxB,OAAKA,EAIDA,IAAS,EAAAC,QACFf,KAAKH,oBAAoBmB,SAAS,iBAAkB,WAG3DF,aAAgBF,KACTZ,KAAKiB,cAAcH,GAEnBA,EAAKI,MAAM,KAAK,GAVhB,IAef,YAAAC,sBAAA,SAAsBvD,GAClB,OAAO,IAAIgD,MAAMhD,EAAMsD,MAAM,KAAK,IAAKtD,EAAMsD,MAAM,KAAK,GAAK,GAAItD,EAAMsD,MAAM,KAAK,KAGtF,YAAAD,cAAA,SAAcH,GACV,GAAIA,aAAgBF,KAAM,CACtB,IAAIQ,EAAON,EAAKO,cACZC,EAAyBR,EAAKS,WAAa,EAC3CC,EAAsBV,EAAKW,UAS/B,OAPID,EAAK,KACLA,EAAK,IAAMA,GAEXF,EAAQ,KACRA,EAAQ,IAAMA,GAGXF,EAAO,IAAME,EAAQ,IAAME,EAGtC,OAAO,MAGX,YAAAE,YAAA,SAAYC,EAA8BC,GAA1C,WACQC,GAAc,EAGlBD,EAAOE,SAAQ,SAAAC,GACNA,EAAMC,mBACPD,EAAMC,iBAAmB,IAAIC,KAGjCF,EAAMC,iBAAiBE,OAAO,EAAKpC,gBACnCiC,EAAMC,iBAAiBE,OAAO,EAAK9B,wBACnC2B,EAAMC,iBAAiBE,OAAO,EAAK7B,YACnC0B,EAAMC,iBAAiBE,OAAO,EAAKxB,0BAOvC,IAHA,IAAMyB,EAAoCP,EAAOQ,QAAO,SAAAL,GAAS,OAACA,EAAMM,cAG/DnI,EAAI,EAAGA,EAAIiI,EAASjJ,OAAQgB,IAAK,CACtC,IAAMoI,EAA4BH,EAASjI,GAE3C,GAAIoI,EAAGC,WAAaD,EAAGE,QAAS,CAC5B,IAAIC,EAAUzC,KAAKmB,sBAAsBmB,EAAGC,WACxCG,EAAU1C,KAAKmB,sBAAsBmB,EAAGE,SAExC,UAAMG,mBAAmBF,EAAIC,KAC7BJ,EAAGN,iBAAiBY,IAAI5C,KAAKU,uBAE7BmB,GAAc,GAGlB,IAAK,IAAI7I,EAAI,EAAGA,EAAImJ,EAASjJ,OAAQF,IACjC,GAAIkB,IAAMlB,EAAG,CACT,IAAM6J,EAA4BV,EAASnJ,GAG3C,GAAI6J,EAAGN,WAAaM,EAAGL,QAAS,CAC5B,IAAIM,EAAW9C,KAAKmB,sBAAsB0B,EAAGN,WACzCQ,EAAW/C,KAAKmB,sBAAsB0B,EAAGL,SAGzC,UAAMQ,kBAAkBP,EAAGQ,UAAWP,EAAGO,UAAWH,EAAGG,UAAWF,EAAGE,YACrEX,EAAGN,iBAAiBY,IAAI5C,KAAKF,gBAEzBgD,EAAGG,YAAcF,EAAGE,WACpBJ,EAAGb,iBAAiBY,IAAI5C,KAAKF,gBAGjC+B,GAAc,GACP7B,KAAKkD,OAAO,EAAGZ,EAAGE,WAAaK,EAAGN,WAAa,UAAMY,eAAexB,EAAeW,EAAG1E,MAAOiF,EAAGjF,SACvG0E,EAAGN,iBAAiBY,IAAI5C,KAAKI,wBAC7ByC,EAAGb,iBAAiBY,IAAI5C,KAAKI,wBAC7ByB,GAAc,QAEf,IAAK7I,IAAMkB,EAAI,GAAKlB,IAAMkB,EAAI,IAAMwI,GAAMG,EAAGN,UAAW,EAGvDO,EAAW9C,KAAKmB,sBAAsB0B,EAAGN,YAEtCU,WAAaP,IAChBJ,EAAGN,iBAAiBY,IAAI5C,KAAKF,gBAC7B+C,EAAGb,iBAAiBY,IAAI5C,KAAKF,gBAE7B+B,GAAc,MAQtC7B,KAAKoD,KAAKjB,GAGV,IAAIkB,EAAU,KACd,IAASnJ,EAAI,EAAGA,EAAIiI,EAASjJ,OAAQgB,IAAK,CACtC,IAAIoJ,EAAOnB,EAASjI,GAEpB,GAAIA,EAAI,GACAmJ,EAAQb,SAAWc,EAAKf,UAAW,CAC/BG,EAAU,IAAI9B,KAAKyC,EAAQb,SAC3BM,EAAU,IAAIlC,KAAK0C,EAAKf,WAExB,UAAMgB,OAAOb,EAAGO,UAAWH,EAAGG,aAC9BK,EAAKtB,iBAAiBY,IAAI5C,KAAKK,YAE/BgD,EAAQrB,iBAAiBY,IAAI5C,KAAKK,aAK9CgD,EAAUC,EAKd,OAFAtD,KAAKoD,KAAKxB,GAEHC,GAGJ,YAAA2B,QAAP,SAAeC,EAAqBlB,EAAmBC,GACnD,GAAY,MAARiB,GAA6B,MAAblB,GAAgC,MAAXC,EACrC,OAAO,EAGX,IAAIkB,EAAcD,aAAgB7C,KAAO6C,EAAOzD,KAAKmB,sBAAsBsC,GACvEE,EAAe3D,KAAKmB,sBAAsBoB,GAC1CqB,EAAa5D,KAAKmB,sBAAsBqB,GAE5C,OAAOkB,GAASC,GAAUD,GAASE,GAGhC,YAAAC,MAAP,SAAaC,EAAoBC,GAC7B,OAAW,MAAPD,GAAsB,MAAPC,IAIDD,aAAelD,KAAOkD,EAAM9D,KAAKmB,sBAAsB2C,KACvDC,aAAenD,KAAOmD,EAAM/D,KAAKmB,sBAAsB4C,KAKtE,YAAAb,OAAP,SAAcc,EAAgBlD,GAC1B,IAAImD,EAAcjE,KAAKmB,sBAAsBL,GAG7C,OAFAmD,EAAMC,QAAQD,EAAMxC,UAAYuC,GACXhE,KAAKiB,cAAcgD,IAIrC,YAAAb,KAAP,SAAYe,GAERA,EAAOf,MAAK,SAASgB,EAAGC,GACpB,OAAmB,MAAfD,EAAE7B,WAAqC,KAAhB6B,EAAE7B,UAClB,EACe,MAAf8B,EAAE9B,WAAqC,KAAhB8B,EAAE9B,WACxB,EAGK,IAAI3B,KAAKwD,EAAE7B,WACZ,IAAI3B,KAAKyD,EAAE9B,eAKnC,YAAA+B,iBAAA,SAAiB1C,EAAiC2C,GAAlD,WACQ1C,GAAc,EAGlBD,EAAOE,SAAQ,SAAAC,GACNA,EAAMC,mBACPD,EAAMC,iBAAmB,IAAIC,KAGjCF,EAAMC,iBAAiBE,OAAO,EAAK5B,yBASvC,IALA,IAAM6B,EAAoCP,EAAOQ,QAAO,SAAAL,GAAS,OAACA,EAAMM,cAElEmC,EAAiBD,EAAanC,QAAO,SAAAL,GAAS,OAACA,EAAMM,cAGlDnI,EAAI,EAAGA,EAAIiI,EAASjJ,OAAQgB,IAAK,CACtC,IAAMoI,EAAKH,EAASjI,GAEpB,GAAIoI,EAAGC,WAAaD,EAAGE,QAAS,CAM5B,IALA,IAAIC,EAAUzC,KAAKmB,sBAAsBmB,EAAGC,WACxCG,EAAU1C,KAAKmB,sBAAsBmB,EAAGE,SAExCiC,GAAU,EAELzL,EAAI,EAAGA,EAAIwL,EAAetL,OAAQF,IAAK,CAC5C,IAAM6J,EAAK2B,EAAexL,GAG1B,GAAI6J,EAAGjF,OAASiF,EAAGN,WAAaM,EAAGL,QAAS,CACxC,IAAIM,EAAW9C,KAAKmB,sBAAsB0B,EAAGN,WACzCQ,EAAW/C,KAAKmB,sBAAsB0B,EAAGL,SAExC,UAAMkC,iBAAiBjC,EAAGQ,UAAWP,EAAGO,UAAWH,EAAGG,UAAWF,EAAGE,aACrEwB,GAAU,IAKjBA,IACDnC,EAAGN,iBAAiBY,IAAI5C,KAAKM,sBAC7BuB,GAAc,IAK1B,OAAOA,GAGX,YAAA8C,aAAA,SAAa7D,EAAY8D,EAAmBC,GACxC,IAAIC,EAAQ,CAAErI,QAAS,GAAIqI,OAAO,GAC9BC,EAAc,IAAInE,KAetB,OAbY,MAARE,IACMA,aAAgBF,OAAUE,aAAgBF,MAAQoE,MAAMlE,EAAKmC,YAC/D6B,EAAMA,OAAQ,EACdA,EAAMrI,QAAUuD,KAAKH,oBAAoBI,OAAO,0CACxC4E,GAAoB/D,EAAOiE,IACnCD,EAAMA,OAAQ,EACdA,EAAMrI,QAAUuD,KAAKH,oBAAoBI,OAAO,2CAE7C2E,IACPE,EAAMA,OAAQ,EACdA,EAAMrI,QAAUuD,KAAKH,oBAAoBI,OAAO,0CAG7C6E,G,iCA9SFG,GAAW,oC,oCAAXA,EAAW,QAAXA,EAAW,O,EADxB,GACa,EAAAA,e,+DAAAA,EAAW,E,KADvB,EAAAC,c,iKCRD,W,GACA,M,cAEA,aAII,WAAoBC,GAAA,KAAAA,U,OAEpB,YAAAC,UAAA,SAAUxH,GACN,OAAOoC,KAAKmF,QAAQlF,OAAOrC,I,iCANtByH,GAAY,6C,6CAAZA,EAAY,U,EADzB,GACa,EAAAA,gB,+DAAAA,EAAY,E,KADxB,EAAAC,K,MAAK,CAAE5I,KAAM,gB,wKCHd,W,OAOA,aASI,aANA,KAAA6I,QAAwB,GAGhB,KAAAC,OAAcC,UAAUC,eACxB,KAAAC,UAAiBF,UAAUG,kBAG/B5F,KAAKuF,QAAUM,SAASN,QACxBvF,KAAK8F,OAASD,SAASC,O,OAG3B,YAAAC,UAAA,SAAUD,GAGN,IAFA,IAAIE,GAAkB,EAEbhN,EAAI,EAAGA,EAAIgH,KAAKuF,QAAQrM,SAAUF,EACnCgH,KAAKuF,QAAQvM,GAAGiN,MAAQH,EAAOG,MAC/BD,GAAS,EACThG,KAAKuF,QAAQvM,GAAK8M,GAIrBE,GACDhG,KAAKuF,QAAQ/L,KAAKsM,IAI1B,YAAAI,WAAA,SAAWX,GACPvF,KAAKuF,QAAUA,GAGnB,YAAAY,UAAA,WACI,OAAOnG,KAAK8F,QAGhB,YAAAM,WAAA,WACI,OAAOpG,KAAKuF,SAGhB,YAAAtH,OAAA,WACI,IAAML,EAAQ,CAAEyI,eAAgB,GAAIC,aAAc,IASlD,OAPAtG,KAAKuF,QAAQzD,SAAQ,SAAAgE,GAGjBlI,EAAM0I,aAAa9M,KAAK,CAAEsM,OAAQA,EAAOS,SAAU3I,MAAO,QAIvDA,GAGX,YAAA4I,OAAA,SAAOV,GACH,IAAK,IAAI9M,EAAI,EAAGA,EAAIgH,KAAKuF,QAAQrM,SAAUF,EACvC,GAAIgH,KAAKuF,QAAQvM,GAAGiN,MAAQH,EAAOG,IAE/B,YADAjG,KAAKuF,QAAQnL,OAAOpB,EAAG,GAM/ByF,QAAQgI,IAAI,mEAAoEX,EAAQ9F,KAAKuF,UAG1F,YAAAmB,YAAP,SAAmB9I,GACf,OAAa,MAATA,GAAiBA,EAAM1E,OAAS,EAEnB8G,KAAKwF,OAAO5H,GAKtB,MAGJ,YAAA+I,aAAP,SAAoB/I,GAChB,GAAa,MAATA,EAAe,CACf,IAAIgJ,EAAShJ,EAEb,GAAsB,iBAAXgJ,EAAqB,CAC5B,KAAIA,EAAO1N,OAAS,GAAK2N,OAAOD,IAG5B,MAAO,GAFPA,EAASC,OAAOjJ,GAOxB,OAAOoC,KAAK2F,UAAUiB,GAG1B,OAAO,MAGJ,YAAA5F,SAAP,SAAgB8F,EAAgB5I,GAC5B,OAAO6I,IAAIC,UAAUC,SAASjG,SAAS8F,EAAQ5I,IAG5C,YAAAV,IAAP,SAAWU,GACP,OAAO6I,IAAIC,UAAUC,SAASzJ,IAAIU,IAG/B,YAAA+B,OAAP,SAAc/B,GACV,IAAIgJ,EAAQhJ,EAAIiJ,YAAY,KAE5B,IAAe,IAAXD,EAAc,CACd,IAAIE,EAAO,CAAClJ,EAAIW,MAAM,EAAGqI,GAAQhJ,EAAIW,MAAMqI,EAAQ,IAEnD,OAAOlH,KAAKgB,SAASoG,EAAK,GAAIA,EAAK,IAEnC,OAAOpH,KAAKxC,IAAIU,I,iCA/GfmJ,I,oCAAAA,EAAmB,QAAnBA,EAAmB,O,EADhC,GACa,EAAAA,uB,+DAAAA,EAAmB,E,KAD/B,EAAAnC,c,qICPD,W,OAUA,0BAGY,KAAAoC,UAA8B,G,OAE/B,YAAAC,iBAAP,SAAwBC,GACpBxH,KAAKsH,UAAU9N,KAAKgO,IAGjB,YAAAC,mBAAP,SAA0BD,GACtB,IAAIE,EAAc1H,KAAKsH,UAAUK,QAAQH,GAEzC,OAAqB,IAAjBE,IAIJ1H,KAAKsH,UAAUlN,OAAOsN,EAAa,IAE5B,IAGJ,YAAAE,MAAP,WACI,IAAuB,UAAA5H,KAAKsH,UAAL,eAAgB,CAApB,KACNM,UAIV,YAAAC,SAAP,WACI,IAAuB,UAAA7H,KAAKsH,UAAL,eAAgB,CAApB,KACNO,a,iCA5BRC,I,oCAAAA,EAAY,QAAZA,EAAY,O,EADzB,GACa,EAAAA,gB,+DAAAA,EAAY,E,KADxB,EAAA5C,a,6HCTD,WACA,QAEA,Q,GAEA,M,sBAIA,aAGC,WAAoB6C,EAA0BC,GAA1B,KAAAD,OAA0B,KAAAC,e,OAE9C,YAAAC,OAAA,SAAOC,GAAP,WACKC,EAAU,IAAI,EAAAC,YAAY,CAC7B,eAAgB,qBAKjB,OAFApI,KAAKgI,aAAaJ,QAEX5H,KAAK+H,KACVM,KAAWC,IAAM,2BAA4BC,KAAKC,UAAU,CAAEN,SAAUA,IAAa,CAAEC,QAASA,IAChGM,KAAK,EAAAC,UAAS,WACd,EAAKV,aAAaH,eAElBc,aAGH,YAAAd,SAAA,SAASe,EAAqBC,GAA9B,WACKV,EAAU,IAAI,EAAAC,YAAY,CAC7B,eAAgB,qBAKjB,OAFApI,KAAKgI,aAAaJ,QAEX5H,KAAK+H,KACVM,KAAWC,IAAM,2BAA4BC,KAAKC,UAAU,CAAEI,YAAaA,EAAaC,MAAOA,IAAU,CAAEV,QAASA,IACpHM,KAAK,EAAAC,UAAS,WACd,EAAKV,aAAaH,eAElBc,a,iCA/BSG,GAAqB,sD,oCAArBA,EAAqB,QAArBA,EAAqB,O,EADlC,GACa,EAAAA,yB,+DAAAA,EAAqB,E,KADjC,EAAA5D,c,oLCVD,WAGA,GAFA,MAEA,QAIA,GAFA,MAEA,Q,6CCkBgB,4BAA8D,2BAAsF,6BAA4C,iBAAI,kB,sBACpM,4BAAwD,2BAAuF,6BAA4C,iBAAI,kB,sBAC/L,4BAAyD,2BAA+E,6BAA+C,iBAAI,kB,sBAC3L,4BAAiE,2BAAyF,6BAA+C,iBAAI,kB,sBAC7M,4BAA4D,2BAAiE,6BAAyC,iBAAI,kB,sBAC1K,4BAAkE,2BAA0F,6BAAwD,iBAAI,kB,sBACxN,4BAAyD,2BAA4F,6BAA6C,iBAAI,kB,sBACtM,4BAAwD,2BAAgF,6BAAwC,iBAAI,kB,sBAIpL,4BAA2D,2BAAgF,6BAA0C,iBAAI,kB,mDAUrL,+BACE,+BAA0F,8FAAsB,sFAAhH,iBACA,2BAAM,YAA0B,iBAClC,iB,+CAFiD,0DAAsB,iCAAoB,oBACnF,4D,mDAVZ,6BACE,oBAGE,+BACE,+BAA2E,8FAAsB,sFAAjG,iBACA,2BAAM,YAA0C,iBAClD,iBACA,iCAIJ,iB,iCAPoE,wCAAY,oBACpE,6EAEa,kD,mDAvB3B,4BAEE,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BAGA,oBACA,+BAEA,gCAsBA,qBACA,6BAAoB,4BAA6B,0FAAmB,8BAAiD,iBAAI,iBAE3H,iB,iCAtCO,wEACA,kEACA,mEACA,2EACA,sEACA,4EACA,mEACA,kEAIA,qEAEC,wD,mDA9Bf,2BACE,2BAEE,0BAAG,0FAED,0BAAK,YAAiB,iBACxB,iBACF,iBACA,4BAEE,2BACE,yBACF,iBAGG,gCAyCL,iBAGF,iB,gCAtDW,qDDDlB,iBAoBI,WACY6D,EACAC,EACA7D,EACRtF,GAHQ,KAAAkJ,eACA,KAAAC,iBACA,KAAA7D,UALH,KAAA8D,UAAoB,EAQzBjJ,KAAKkJ,QAAUZ,IACftI,KAAKmJ,QAAUhE,EAAQgE,UACvBnJ,KAAKoJ,aAAepJ,KAAKmJ,SAAWhE,EAAQiE,eAC5CpJ,KAAKqJ,cAAgBrJ,KAAKmJ,SAAWnJ,KAAKoJ,cAAgBjE,EAAQmE,gBAE9DzJ,EAAoBuG,cACpBpG,KAAKuF,QAAU1F,EAAoBuG,aAAahE,QAAO,SAAA0D,GAAU,MAAoB,kBAApBA,EAAOS,YACxEvG,KAAKuJ,kBAAoB1J,EAAoBuG,aAAahE,QAAO,SAAA0D,GAAU,MAAoB,kBAApBA,EAAOS,YAA8B,KAEhHvG,KAAKuF,QAAU,GACfvF,KAAKuJ,kBAAoB,MAE7BvJ,KAAK8F,OAASjG,EAAoBsG,YAIlC,IAFA,IAAIqD,GAAiB,EAEZxQ,EAAI,EAAGA,EAAIgH,KAAKuF,QAAQrM,SAAUF,EACnCgH,KAAKuF,QAAQvM,GAAGuN,WAAavG,KAAK8F,SAClC0D,GAAQ,GAIXA,IACDxJ,KAAK8F,OAAS,I,OAItB,YAAA2D,mBAAA,SAAmBC,GACf,MAAa,gBAATA,IAEgB,UAATA,MAGA1J,KAAKmF,QAAQwE,aAAa,EAAAC,iBAAiBC,OAElC,WAATH,GAES,mBAATA,EADA1J,KAAKmF,QAAQwE,aAAa,EAAAC,iBAAiBE,KAAO9J,KAAKmF,QAAQwE,aAAa,EAAAC,iBAAiBG,IAGpF,cAATL,EACA1J,KAAKmF,QAAQwE,aAAa,EAAAC,iBAAiBC,MAAQ7J,KAAKmF,QAAQwE,aAAa,EAAAC,iBAAiBE,KAAO9J,KAAKmF,QAAQwE,aAAa,EAAAC,iBAAiBG,KAAO/J,KAAKmF,QAAQwE,aAAa,EAAAC,iBAAiBI,IACzL,oBAATN,EACA1J,KAAKmF,QAAQwE,aAAa,EAAAC,iBAAiBE,KAAO9J,KAAKmF,QAAQwE,aAAa,EAAAC,iBAAiBG,KAAO/J,KAAKmF,QAAQwE,aAAa,EAAAC,iBAAiBI,IACtI,UAATN,GAES,WAATA,EADA1J,KAAKmF,QAAQwE,aAAa,EAAAC,iBAAiBC,MAAQ7J,KAAKmF,QAAQwE,aAAa,EAAAC,iBAAiBE,KAAO9J,KAAKmF,QAAQwE,aAAa,EAAAC,iBAAiBG,IAGvI,YAATL,EACA1J,KAAKmF,QAAQwE,aAAa,EAAAC,iBAAiBE,IAClC,aAATJ,MAOf,YAAAO,OAAA,WACIC,eAAeC,WAAW,WAE1BxL,OAAOyL,SAASC,KAAO/B,IAAM,mBAOjC,YAAAgC,YAAA,WAGI,OAFmBtK,KAAKmF,QAAQmF,eAKpC,YAAAC,UAAA,WACIvK,KAAKgJ,eAAeuB,UAAUvK,KAAK8F,QAAQ0E,MAAK,WAE5C7L,OAAOyL,SAASK,aAIxB,YAAAC,QAAA,sBACI1K,KAAKgJ,eAAexL,MAAMgN,MAAK,SAAAG,GAC3B,EAAKC,WAAa,EAAK7B,aAAa8B,KAAK,EAAAlL,iBAAkB,CAAEmL,SAAU,SAAUC,MAAO,kBACxF,EAAKH,WAAWI,QAAQL,QAAUA,M,iCAtGjC3L,GAAkB,4J,iCAAlBA,EAAkB,6iECjB/B,6BACE,4BACE,4BACE,4BACE,0BAA4D,uBAA8C,iBAC1G,0BAA4D,4BAA8C,iBAC5G,iBACC,6BA8DH,iBACF,iBACF,kB,MAnEgC,iGAAyC,kFACzC,iGAEpB,iD,oBDIZ,GAMa,EAAAA,sB,+DAAAA,EAAkB,E,KAN9B,EAAAiM,U,MAAU,CAEPC,SAAU,aACVC,YAAa,0BACbC,UAAW,Q,wHAcFnC,SAAU,CAAF,C,KAAhB,EAAAoC,W,uJE9BL,W,GACA,MACA,M,sBAEA,aAII,WAAoBlG,EAA8BmG,GAA9B,KAAAnG,UAA8B,KAAAmG,S,OAElD,YAAAC,YAAA,SAAYC,EAA+BC,GACvC,QAAIzL,KAAKmF,QAAQgE,YAIjBnJ,KAAKsL,OAAOI,SAAS,CAAC,aAEf,I,iCAZFC,GAAU,iD,oCAAVA,EAAU,QAAVA,EAAU,O,EADvB,GACa,EAAAA,c,+DAAAA,EAAU,E,KADtB,EAAAzG,c,gEAkBD,iBAII,WAAoBC,EAA8BmG,GAA9B,KAAAnG,UAA8B,KAAAmG,S,OAElD,YAAAC,YAAA,SAAYC,EAA+BC,GACvC,SAAIzL,KAAKmF,QAAQgE,YAAanJ,KAAKmF,QAAQiE,kBAI3CpJ,KAAKsL,OAAOI,SAAS,CAAC,aAEf,I,iCAZFE,GAAe,iD,oCAAfA,EAAe,QAAfA,EAAe,O,EAD5B,GACa,EAAAA,mB,+DAAAA,EAAe,E,KAD3B,EAAA1G,c,gEAkBD,iBAII,WAAoBC,EAA8BmG,GAA9B,KAAAnG,UAA8B,KAAAmG,S,OAElD,YAAAC,YAAA,SAAYC,EAA+BC,GACvC,SAAIzL,KAAKmF,QAAQgE,WAAanJ,KAAKmF,QAAQiE,gBAAkBpJ,KAAKmF,QAAQmE,mBAI1EtJ,KAAKsL,OAAOI,SAAS,CAAC,aAEf,I,iCAZFG,GAAgB,iD,oCAAhBA,EAAgB,QAAhBA,EAAgB,O,EAD7B,GACa,EAAAA,oB,+DAAAA,EAAgB,E,KAD5B,EAAA3G,c,gEAkBD,iBAII,WAAoBC,EAA8BmG,GAA9B,KAAAnG,UAA8B,KAAAmG,S,OAElD,YAAAC,YAAA,SAAYC,EAA+BC,GACvC,QAAIzL,KAAKmF,QAAQ2G,eAIjB9L,KAAKsL,OAAOI,SAAS,CAAC,YAEf,I,iCAZFK,GAAS,iD,oCAATA,EAAS,QAATA,EAAS,O,EADtB,GACa,EAAAA,a,+DAAAA,EAAS,E,KADrB,EAAA7G,c,6KC1DD,W,GACA,MACA,OACA,M,4CC+FU,6BACE,6BACF,kB,sBAiDJ,4BACE,4BACE,4BACE,6BACF,iBACF,iBACA,4BACE,4BACE,6BACF,iBACF,iBACF,kB,mDAQM,+BACE,oG,uBADF,iB,KAAsD,+E,mDAEtD,+BACE,oG,uBADF,iB,KAAqD,0D,yBAR3D,4BACE,uBAEA,4BAEE,6BACE,iCAEA,iCAEF,iBACF,iBACF,kB,8BAN4B,+DAEA,+D,sBA+BtB,6BACE,6BACF,kB,mDA5BN,0BACE,4BACE,4BACE,4BACE,6BACF,iBACF,iBACA,4BACE,6BACE,kCAAuB,8GAAvB,iBAEA,0CAEF,iBACF,iBACF,iBACA,6BACE,6BACE,6BACE,8BACF,iBACF,iBACA,6BACE,8BACE,8BACF,iBACA,gCAGF,iBACF,iBACF,iB,qDAtB+B,2DAEA,mEAenB,4E,yBA0BF,yBACE,YACF,kB,uCADE,qE,qBAEF,oB,qBAGA,oB,yBAIA,yBACE,YACF,kB,uCADE,qE,yBAEF,yBACE,YACF,kB,uCADE,wE,qBAEF,oB,yBAIA,yBACE,YACF,kB,uCADE,qE,yBAEF,yBACE,YACF,kB,uCADE,wE,yBAEF,yBACE,YACF,kB,uCADE,kF,yBA5BJ,yBACE,6BAGA,6BAGA,6BAIA,6BAGA,6BAGA,6BAIA,6BAGA,6BAGA,6BAGF,kB,uBA7BO,+DAGA,+DAGA,+DAIA,8DAGA,8DAGA,8DAIA,kFAGA,kFAGA,mF,0GA7PrB,0BACE,yBAEA,+BAA+E,kIAC7E,+BACE,4BACE,yBACE,4BACF,iBACF,iBAEA,4BACE,4BACE,6BACE,6BACF,iBACF,iBACA,6BACE,8BACE,gCAAmB,8GAAnB,iBACF,iBACF,iBACF,iBAEA,6BACE,6BACE,6BACE,8BACF,iBACF,iBACA,6BACE,8BACE,gCAAmB,6GAAnB,iBACF,iBACF,iBACF,iBAEE,6BACE,6BACE,6BACE,8BACF,iBACF,iBACA,6BACE,8BACE,gCAAmB,iHAAnB,iBACF,iBACF,iBACF,iBACA,6BACE,6BACE,6BACE,8BACF,iBACF,iBACA,6BACE,8BACE,gCAAmB,gHAAnB,iBACF,iBACF,iBACF,iBAEA,6BACE,6BACE,6BACE,8BACF,iBACF,iBACA,6BACE,8BACE,gCAAmB,gHAAnB,iBACF,iBACF,iBACF,iBACA,6BACE,6BACE,6BACE,8BACF,iBACF,iBACA,6BACE,8BACE,gCAAmB,mHAAnB,iBACF,iBACF,iBACF,iBAGF,6BACE,6BACE,6BACE,8BACF,iBACF,iBACA,6BACE,8BACE,mCAAmB,0GAAnB,iBACF,iBACA,gCAGF,iBACF,iBAEE,6BACE,6BACE,6BACE,8BACF,iBACF,iBACA,6BACE,8BACE,gCAAmB,6GAAnB,iBACF,iBACF,iBA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","file":"cgr-app.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"cgr-app\": 0,\n \t\t0: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + chunkId + \".chunk.js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"../dist/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([336,\"vendor\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import { ErrorHandler } from \"./error-handler/error-handler\";\nimport { CgrHeaderComponent } from \"./header/header.component\";\nimport { LoadingBarComponent } from \"./loading-bar/loading-bar.component\";\nimport { LocalizeComponent } from \"./localize/localize.component\";\nimport { ErrorMessageComponent } from \"./message/error-message.component\";\nimport { MessageComponent } from \"./message/message.component\";\nimport { ConfirmModalComponent } from \"./modals/confirm-modal.component\";\nimport { ErrorModalComponent } from \"./modals/error-modal.component\";\nimport { ModalStepIndicatorComponent } from \"./modals/modal-step-indicator.component\";\nimport { SuccessModalComponent } from \"./modals/success-modal.component\";\nimport { PasswordStrengthBarComponent } from \"./password-strength-bar/password-strength-bar.component\";\nimport { ProfileComponent } from \"./profile/profile.component\";\nimport { ProgressBarComponent } from \"./progress-bar/progress-bar.component\";\nimport { GenericModalComponent } from \"./modals/generic-modal.component\";\n\nexport const components: any[] = [\n ErrorHandler,\n CgrHeaderComponent,\n LoadingBarComponent,\n LocalizeComponent,\n ErrorMessageComponent,\n MessageComponent,\n ConfirmModalComponent,\n GenericModalComponent,\n ErrorModalComponent,\n ModalStepIndicatorComponent,\n SuccessModalComponent,\n PasswordStrengthBarComponent,\n ProfileComponent,\n ProgressBarComponent\n];\n\nexport * from \"./error-handler/error-handler\";\nexport * from \"./header/header.component\";\nexport * from \"./loading-bar/loading-bar.component\";\nexport * from \"./localize/localize.component\";\nexport * from \"./message/error-message.component\";\nexport * from \"./message/message.component\";\nexport * from \"./modals/confirm-modal.component\";\nexport * from \"./modals/generic-modal.component\";\nexport * from \"./modals/error-modal.component\";\nexport * from \"./modals/modal-step-indicator.component\";\nexport * from \"./modals/success-modal.component\";\nexport * from \"./password-strength-bar/password-strength-bar.component\";\nexport * from \"./profile/profile.component\";\nexport * from \"./progress-bar/progress-bar.component\";\n","import { Injectable } from \"@angular/core\";\nimport { LocalizationService } from \"./localization.service\";\nimport Utils from \"../../registry/utility/Utils\";\nimport { PRESENT, ConflictMessage, TimeRangeEntry, AttributeType } from \"@registry/model/registry\";\nimport { SummaryKey } from \"@registry/model/crtable\";\nimport { ConflictType } from \"@registry/model/constants\";\nimport { ValueOverTimeCREditor } from \"@registry/component/geoobject-shared-attribute-editor/ValueOverTimeCREditor\";\n\n@Injectable()\nexport class DateService {\n\n public overlapMessage: ConflictMessage = {\n severity: \"ERROR\",\n message: this.localizationService.decode(\"manage.versions.overlap.message\"),\n type: ConflictType.TIME_RANGE\n }\n\n public mergeContiguousMessage: ConflictMessage = {\n severity: \"ERROR\",\n message: this.localizationService.decode(\"manage.versions.mergeContiguousRanges.message\"),\n type: ConflictType.TIME_RANGE\n }\n\n public gapMessage: ConflictMessage = {\n severity: \"WARNING\",\n message: this.localizationService.decode(\"manage.versions.gap.message\"),\n type: ConflictType.TIME_RANGE\n }\n\n public outsideExistsMessage: ConflictMessage = {\n severity: \"ERROR\",\n message: this.localizationService.decode(\"manage.versions.outsideExists.message\"),\n type: ConflictType.OUTSIDE_EXISTS\n }\n\n public missingReference: ConflictMessage = {\n severity: \"ERROR\",\n message: this.localizationService.decode(\"changeovertime.manageVersions.missingReference\"),\n type: ConflictType.MISSING_REFERENCE\n }\n\n public startDateLaterEndDate: ConflictMessage = {\n severity: \"ERROR\",\n message: this.localizationService.decode(\"manage.versions.startdate.later.enddate.message\"),\n type: ConflictType.TIME_RANGE\n };\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private localizationService: LocalizationService) { }\n\n // Get infinity date (called 'present' in the UI)\n public getPresentDate(): Date {\n // NOTE: Month is 0 indexed so 11 = December\n let dt = new Date(5000, 11, 31, 0, 0, 0);\n\n return dt;\n }\n\n public formatDateForDisplay(date: string | Date): string {\n if (!date) {\n return \"\";\n }\n\n if (date === PRESENT) {\n return this.localizationService.localize(\"changeovertime\", \"present\");\n }\n\n if (date instanceof Date) {\n return this.getDateString(date);\n } else {\n return date.split(\"T\")[0];\n }\n }\n\n // @param value as yyyy-mm-dd\n getDateFromDateString(value: string) {\n return new Date(+value.split(\"-\")[0], +value.split(\"-\")[1] - 1, +value.split(\"-\")[2]);\n }\n\n getDateString(date: Date): string {\n if (date instanceof Date) {\n let year = date.getFullYear();\n let month: number | string = date.getMonth() + 1;\n let dt: number | string = date.getDate();\n\n if (dt < 10) {\n dt = \"0\" + dt;\n }\n if (month < 10) {\n month = \"0\" + month;\n }\n\n return year + \"-\" + month + \"-\" + dt;\n }\n\n return null;\n }\n\n checkRanges(attributeType: AttributeType, ranges: ValueOverTimeCREditor[]): boolean {\n let hasConflict = false;\n\n // clear all messages\n ranges.forEach(range => {\n if (!range.conflictMessages) {\n range.conflictMessages = new Set();\n }\n\n range.conflictMessages.delete(this.overlapMessage);\n range.conflictMessages.delete(this.mergeContiguousMessage);\n range.conflictMessages.delete(this.gapMessage);\n range.conflictMessages.delete(this.startDateLaterEndDate);\n });\n\n // Filter DELETE entries from consideration\n const filtered: ValueOverTimeCREditor[] = ranges.filter(range => !range.isDelete());\n\n // Check for overlaps\n for (let j = 0; j < filtered.length; j++) {\n const h1: ValueOverTimeCREditor = filtered[j];\n\n if (h1.startDate && h1.endDate) {\n let s1: any = this.getDateFromDateString(h1.startDate);\n let e1: any = this.getDateFromDateString(h1.endDate);\n\n if (Utils.dateEndBeforeStart(s1, e1)) {\n h1.conflictMessages.add(this.startDateLaterEndDate);\n\n hasConflict = true;\n }\n\n for (let i = 0; i < filtered.length; i++) {\n if (j !== i) {\n const h2: ValueOverTimeCREditor = filtered[i];\n\n // If all dates set\n if (h2.startDate && h2.endDate) {\n let s2: Date = this.getDateFromDateString(h2.startDate);\n let e2: Date = this.getDateFromDateString(h2.endDate);\n\n // Determine if there is an overlap\n if (Utils.dateRangeOverlaps(s1.getTime(), e1.getTime(), s2.getTime(), e2.getTime())) {\n h1.conflictMessages.add(this.overlapMessage);\n\n if (s2.getTime() === e2.getTime()) {\n h2.conflictMessages.add(this.overlapMessage);\n }\n\n hasConflict = true;\n } else if (this.addDay(1, h1.endDate) === h2.startDate && Utils.areValuesEqual(attributeType, h1.value, h2.value)) {\n h1.conflictMessages.add(this.mergeContiguousMessage);\n h2.conflictMessages.add(this.mergeContiguousMessage);\n hasConflict = true;\n }\n } else if ((i === j - 1 || i === j + 1) && e1 && h2.startDate) {\n // If 1st end date and current start date\n\n let s2: Date = this.getDateFromDateString(h2.startDate);\n\n if (s2.getTime() <= e1) {\n h1.conflictMessages.add(this.overlapMessage);\n h2.conflictMessages.add(this.overlapMessage);\n\n hasConflict = true;\n }\n }\n }\n }\n }\n }\n\n this.sort(filtered);\n\n // Check for gaps\n let current = null;\n for (let j = 0; j < filtered.length; j++) {\n let next = filtered[j];\n\n if (j > 0) {\n if (current.endDate && next.startDate) {\n let e1: any = new Date(current.endDate);\n let s2: any = new Date(next.startDate);\n\n if (Utils.hasGap(e1.getTime(), s2.getTime())) {\n next.conflictMessages.add(this.gapMessage);\n\n current.conflictMessages.add(this.gapMessage);\n }\n }\n }\n\n current = next;\n }\n\n this.sort(ranges);\n\n return hasConflict;\n }\n\n public between(test: string | Date, startDate: string, endDate: string) {\n if (test == null || startDate == null || endDate == null) {\n return false;\n }\n\n let dTest: Date = test instanceof Date ? test : this.getDateFromDateString(test);\n let dStart: Date = this.getDateFromDateString(startDate);\n let dEnd: Date = this.getDateFromDateString(endDate);\n\n return dTest >= dStart && dTest <= dEnd;\n }\n\n public after(in1: string | Date, in2: string | Date) {\n if (in1 == null || in2 == null) {\n return false;\n }\n\n let date1: Date = in1 instanceof Date ? in1 : this.getDateFromDateString(in1);\n let date2: Date = in2 instanceof Date ? in2 : this.getDateFromDateString(in2);\n\n return date1 > date2;\n }\n\n public addDay(amount: number, date: string): string {\n var plus1: Date = this.getDateFromDateString(date);\n plus1.setDate(plus1.getDate() + amount);\n let splus1: string = this.getDateString(plus1);\n return splus1;\n }\n\n public sort(votArr: TimeRangeEntry[]): void {\n // Sort the data by start date\n votArr.sort(function(a, b) {\n if (a.startDate == null || a.startDate === \"\") {\n return 1;\n } else if (b.startDate == null || b.startDate === \"\") {\n return -1;\n }\n\n let first: any = new Date(a.startDate);\n let next: any = new Date(b.startDate);\n return first - next;\n });\n }\n\n checkExistRanges(ranges: ValueOverTimeCREditor[], existEntries: ValueOverTimeCREditor[]): boolean {\n let hasConflict = false;\n\n // clear all messages\n ranges.forEach(range => {\n if (!range.conflictMessages) {\n range.conflictMessages = new Set();\n }\n\n range.conflictMessages.delete(this.outsideExistsMessage);\n });\n\n // Filter DELETE entries from consideration\n const filtered: ValueOverTimeCREditor[] = ranges.filter(range => !range.isDelete());\n\n const filteredExists = existEntries.filter(range => !range.isDelete());\n\n // Check for outside exists range\n for (let j = 0; j < filtered.length; j++) {\n const h1 = filtered[j];\n\n if (h1.startDate && h1.endDate) {\n let s1: any = this.getDateFromDateString(h1.startDate);\n let e1: any = this.getDateFromDateString(h1.endDate);\n\n let inRange = false;\n\n for (let i = 0; i < filteredExists.length; i++) {\n const h2 = filteredExists[i];\n\n // If all dates set\n if (h2.value && h2.startDate && h2.endDate) {\n let s2: Date = this.getDateFromDateString(h2.startDate);\n let e2: Date = this.getDateFromDateString(h2.endDate);\n\n if (!Utils.dateRangeOutside(s1.getTime(), e1.getTime(), s2.getTime(), e2.getTime())) {\n inRange = true;\n }\n }\n }\n\n if (!inRange) {\n h1.conflictMessages.add(this.outsideExistsMessage);\n hasConflict = true;\n }\n }\n }\n\n return hasConflict;\n }\n\n validateDate(date: Date, required: boolean, allowFutureDates: boolean): {message: string, valid: boolean} {\n let valid = { message: \"\", valid: true };\n let today: Date = new Date();\n\n if (date != null) {\n if (!(date instanceof Date) || (date instanceof Date && isNaN(date.getTime()))) {\n valid.valid = false;\n valid.message = this.localizationService.decode(\"date.inpu.data.invalid.error.message\");\n } else if (!allowFutureDates && date > today) {\n valid.valid = false;\n valid.message = this.localizationService.decode(\"date.inpu.data.in.future.error.message\");\n }\n } else if (required) {\n valid.valid = false;\n valid.message = this.localizationService.decode(\"manage.versions.date.required.message\");\n }\n\n return valid;\n }\n\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { LocalizationService } from \"@shared/service\";\n\n@Pipe({ name: \"localize\" })\nexport class LocalizePipe implements PipeTransform {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: LocalizationService) { }\n\n transform(value: string): string {\n return this.service.decode(value);\n }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { LocalizedValue, LocaleView } from \"@shared/model/core\";\n\ndeclare let Globalize: any;\ndeclare let com: any;\ndeclare let registry: any;\n\n@Injectable()\nexport class LocalizationService {\n\n locales: LocaleView[] = [];\n locale: string;\n\n private parser: any = Globalize.numberParser();\n private formatter: any = Globalize.numberFormatter();\n\n constructor() {\n this.locales = registry.locales;\n this.locale = registry.locale;\n }\n\n addLocale(locale: LocaleView): void {\n let exists: boolean = false;\n\n for (let i = 0; i < this.locales.length; ++i) {\n if (this.locales[i].tag === locale.tag) {\n exists = true;\n this.locales[i] = locale;\n }\n }\n\n if (!exists) {\n this.locales.push(locale);\n }\n }\n\n setLocales(locales: LocaleView[]): void {\n this.locales = locales;\n }\n\n getLocale(): string {\n return this.locale;\n }\n\n getLocales(): LocaleView[] {\n return this.locales;\n }\n\n create(): LocalizedValue {\n const value = { localizedValue: \"\", localeValues: [] } as LocalizedValue;\n\n this.locales.forEach(locale => {\n // if (!locale.isDefaultLocale)\n // {\n value.localeValues.push({ locale: locale.toString, value: \"\" });\n // }\n });\n\n return value;\n }\n\n remove(locale: LocaleView): void {\n for (let i = 0; i < this.locales.length; ++i) {\n if (this.locales[i].tag === locale.tag) {\n this.locales.splice(i, 1);\n return;\n }\n }\n\n // eslint-disable-next-line no-console\n console.log(\"Could not remove locale from array because we could not find it.\", locale, this.locales);\n }\n\n public parseNumber(value: string): number {\n if (value != null && value.length > 0) {\n // convert data from view format to model format\n let number = this.parser(value);\n\n return number;\n }\n\n return null;\n }\n\n public formatNumber(value: any): string {\n if (value != null) {\n let number = value;\n\n if (typeof number === \"string\") {\n if (number.length > 0 && Number(number)) {\n number = Number(value);\n } else {\n return \"\";\n }\n }\n\n // convert data from model format to view format\n return this.formatter(number);\n }\n\n return null;\n }\n\n public localize(bundle: string, key: string): string {\n return com.runwaysdk.Localize.localize(bundle, key);\n }\n\n public get(key: string): string {\n return com.runwaysdk.Localize.get(key);\n }\n\n public decode(key: string): string {\n let index = key.lastIndexOf(\".\");\n\n if (index !== -1) {\n let temp = [key.slice(0, index), key.slice(index + 1)];\n\n return this.localize(temp[0], temp[1]);\n } else {\n return this.get(key);\n }\n }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\ndeclare let acp;\n\nexport interface IEventListener {\n start(): void;\n complete(): void;\n}\n\n@Injectable()\nexport class EventService {\n\n private listeners: IEventListener[] = [];\n\n public registerListener(listener: IEventListener): void {\n this.listeners.push(listener);\n }\n\n public deregisterListener(listener: IEventListener): boolean {\n let indexOfItem = this.listeners.indexOf(listener);\n\n if (indexOfItem === -1) {\n return false;\n }\n\n this.listeners.splice(indexOfItem, 1);\n\n return true;\n }\n\n public start(): void {\n for (const listener of this.listeners) {\n listener.start();\n }\n }\n\n public complete(): void {\n for (const listener of this.listeners) {\n listener.complete();\n }\n }\n}\n","\nimport { Injectable } from '@angular/core';\nimport { HttpHeaders, HttpClient } from '@angular/common/http';\n\nimport { finalize } from 'rxjs/operators';\n\nimport { EventService } from '@shared/service'\n\ndeclare var acp: any;\n\n@Injectable()\nexport class ForgotPasswordService {\n\n\tconstructor(private http: HttpClient, private eventService: EventService) { }\n\n\tsubmit(username: string): Promise {\n\t\tlet headers = new HttpHeaders({\n\t\t\t'Content-Type': 'application/json'\n\t\t});\n\n\t\tthis.eventService.start();\n\n\t\treturn this.http\n\t\t\t.post(acp + '/forgotpassword/initiate', JSON.stringify({ username: username }), { headers: headers })\n\t\t\t.pipe(finalize(() => {\n\t\t\t\tthis.eventService.complete();\n\t\t\t}))\n\t\t\t.toPromise();\n\t}\n\n\tcomplete(newPassword: string, token: string): Promise {\n\t\tlet headers = new HttpHeaders({\n\t\t\t'Content-Type': 'application/json'\n\t\t});\n\n\t\tthis.eventService.start();\n\n\t\treturn this.http\n\t\t\t.post(acp + '/forgotpassword/complete', JSON.stringify({ newPassword: newPassword, token: token }), { headers: headers })\n\t\t\t.pipe(finalize(() => {\n\t\t\t\tthis.eventService.complete();\n\t\t\t}))\n\t\t\t.toPromise();\n\t}\n}\n","import { Component, Input } from \"@angular/core\";\nimport { BsModalService, BsModalRef } from \"ngx-bootstrap/modal\";\n\nimport { ProfileComponent } from \"../profile/profile.component\";\n\nimport { AuthService, ProfileService, LocalizationService } from \"@shared/service\";\n\nimport { RegistryRoleType, LocaleView } from \"@shared/model/core\";\n\ndeclare let acp: string;\ndeclare let registry: any;\n\n@Component({\n\n selector: \"cgr-header\",\n templateUrl: \"./header.component.html\",\n styleUrls: []\n})\nexport class CgrHeaderComponent {\n\n context: string;\n isAdmin: boolean;\n isMaintainer: boolean;\n isContributor: boolean;\n bsModalRef: BsModalRef;\n\n defaultLocaleView: LocaleView;\n locales: LocaleView[];\n locale: string;\n\n @Input() loggedIn: boolean = true;\n\n constructor(\n private modalService: BsModalService,\n private profileService: ProfileService,\n private service: AuthService,\n localizationService: LocalizationService\n ) {\n this.context = acp;\n this.isAdmin = service.isAdmin();\n this.isMaintainer = this.isAdmin || service.isMaintainer();\n this.isContributor = this.isAdmin || this.isMaintainer || service.isContributer();\n\n if (localizationService.getLocales()) {\n this.locales = localizationService.getLocales().filter(locale => locale.toString !== \"defaultLocale\");\n this.defaultLocaleView = localizationService.getLocales().filter(locale => locale.toString === \"defaultLocale\")[0];\n } else {\n this.locales = [];\n this.defaultLocaleView = null;\n }\n this.locale = localizationService.getLocale();\n\n let found: boolean = false;\n\n for (let i = 0; i < this.locales.length; ++i) {\n if (this.locales[i].toString === this.locale) {\n found = true;\n }\n }\n\n if (!found) {\n this.locale = \"\";\n }\n }\n\n shouldShowMenuItem(item: string): boolean {\n if (item === \"HIERARCHIES\") {\n return true;\n } else if (item === \"LISTS\") {\n // return this.service.hasExactRole(RegistryRoleType.SRA) || this.service.hasExactRole(RegistryRoleType.RA) || this.service.hasExactRole(RegistryRoleType.RM) || this.service.hasExactRole(RegistryRoleType.RC) || this.service.hasExactRole(RegistryRoleType.AC);\n return true;\n } else if (this.service.hasExactRole(RegistryRoleType.SRA)) {\n return true;\n } else if (item === \"IMPORT\") {\n return this.service.hasExactRole(RegistryRoleType.RA) || this.service.hasExactRole(RegistryRoleType.RM);\n } else if (item === \"SCHEDULED-JOBS\") {\n return this.service.hasExactRole(RegistryRoleType.RA) || this.service.hasExactRole(RegistryRoleType.RM);\n } else if (item === \"NAVIGATOR\") {\n return this.service.hasExactRole(RegistryRoleType.SRA) || this.service.hasExactRole(RegistryRoleType.RA) || this.service.hasExactRole(RegistryRoleType.RM) || this.service.hasExactRole(RegistryRoleType.RC);\n } else if (item === \"CHANGE-REQUESTS\") {\n return this.service.hasExactRole(RegistryRoleType.RA) || this.service.hasExactRole(RegistryRoleType.RM) || this.service.hasExactRole(RegistryRoleType.RC);\n } else if (item === \"TASKS\") {\n return this.service.hasExactRole(RegistryRoleType.SRA) || this.service.hasExactRole(RegistryRoleType.RA) || this.service.hasExactRole(RegistryRoleType.RM);\n } else if (item === \"EVENTS\") {\n return this.service.hasExactRole(RegistryRoleType.SRA) || this.service.hasExactRole(RegistryRoleType.RA) || this.service.hasExactRole(RegistryRoleType.RM);\n } else if (item === \"CONFIGS\") {\n return this.service.hasExactRole(RegistryRoleType.RA);\n } else if (item === \"SETTINGS\") {\n return true;\n } else {\n return false;\n }\n }\n\n logout(): void {\n sessionStorage.removeItem(\"locales\");\n\n window.location.href = acp + \"/session/logout\";\n\n // this.sessionService.logout().then( response => {\n // this.router.navigate( ['/login'] );\n // } );\n }\n\n getUsername() {\n let name: string = this.service.getUsername();\n\n return name;\n }\n\n setLocale() {\n this.profileService.setLocale(this.locale).then(() => {\n // Refresh the page\n window.location.reload();\n });\n }\n\n account(): void {\n this.profileService.get().then(profile => {\n this.bsModalRef = this.modalService.show(ProfileComponent, { backdrop: \"static\", class: \"gray modal-lg\" });\n this.bsModalRef.content.profile = profile;\n });\n }\n\n}\n","\n
\n \n
\n","import { Injectable } from \"@angular/core\";\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from \"@angular/router\";\nimport { AuthService } from \"./auth.service\";\n\n@Injectable()\nexport class AdminGuard implements CanActivate {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: AuthService, private router: Router) { }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n if (this.service.isAdmin()) {\n return true;\n }\n\n this.router.navigate([\"/export\"]);\n\n return false;\n }\n\n}\n\n@Injectable()\nexport class MaintainerGuard implements CanActivate {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: AuthService, private router: Router) { }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n if (this.service.isAdmin() || this.service.isMaintainer()) {\n return true;\n }\n\n this.router.navigate([\"/export\"]);\n\n return false;\n }\n\n}\n\n@Injectable()\nexport class ContributerGuard implements CanActivate {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: AuthService, private router: Router) { }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n if (this.service.isAdmin() || this.service.isMaintainer() || this.service.isContributer()) {\n return true;\n }\n\n this.router.navigate([\"/export\"]);\n\n return false;\n }\n\n}\n\n@Injectable()\nexport class AuthGuard implements CanActivate {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: AuthService, private router: Router) { }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n if (this.service.isLoggedIn()) {\n return true;\n }\n\n this.router.navigate([\"/login\"]);\n\n return false;\n }\n\n}\n\n","import { Component, Input } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Profile } from \"@shared/model/profile\";\nimport { AuthService, ProfileService } from \"@shared/service\";\nimport { Role } from \"../../../admin/model/account\";\n\n@Component({\n selector: \"profile\",\n templateUrl: \"./profile.component.html\",\n styles: [\".modal-form .check-block .chk-area { margin: 10px 0px 0 0;}\"]\n})\nexport class ProfileComponent {\n\n public _profile: Profile = {\n oid: \"\",\n username: \"\",\n password: \"\",\n firstName: \"\",\n lastName: \"\",\n email: \"\",\n changePassword: false\n };\n\n // eslint-disable-next-line accessor-pairs\n @Input(\"profile\")\n set profile(value: Profile) {\n this._profile = value;\n this.getRoles();\n }\n\n roles: Role[] = [];\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: ProfileService, public bsModalRef: BsModalRef, private authService: AuthService) { }\n\n getRoles(): void {\n this.service.getRolesForUser(this._profile.oid).then(roles => {\n this.roles = roles;\n });\n }\n\n onSubmit(): void {\n if (!this._profile.changePassword) {\n delete this._profile.password;\n }\n\n this.service.apply(this._profile).then(profile => {\n this.bsModalRef.hide();\n });\n }\n\n onChangePassword(): void {\n this._profile.changePassword = !this._profile.changePassword;\n }\n\n // getRoles():string {\n // return this.authService.getRoleDisplayLabels();\n // }\n\n getRolesArray(): any {\n return this.authService.getRoles();\n }\n\n cancel(): void {\n this.service.unlock(this._profile.oid).then(profile => {\n this.bsModalRef.hide();\n });\n }\n\n}\n","
\n \n\n
\n
\n
\n

\n \n

\n
\n\n
\n
\n \n
\n
\n \n \n \n
\n
\n \n
\n
\n \n
\n
\n \n \n \n
\n
\n \n
\n
\n \n
\n
\n \n \n \n
\n
\n
\n
\n \n
\n
\n \n \n \n
\n
\n\n
\n
\n \n
\n
\n \n \n \n
\n
\n
\n
\n \n
\n
\n \n \n \n
\n
\n\n \n
\n
\n \n
\n
\n \n \n \n
\n \n
\n
\n
\n\n
\n
\n \n
\n
\n \n \n \n
\n
\n
\n
\n \n
\n
\n \n \n \n
\n
\n \n\n
\n

\n \n

\n
\n\n
\n
\n \n
\n
\n \n \n \n
\n
\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n
\n \n
\n
\n \n \n \n \n \n
\n
\n
\n
\n \n
\n
\n \n \n \n
\n \n
\n
\n
\n
\n\n\n
\n
\n \n
\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n \n
\n {{role.label.localizedValue}}\n \n \n \n \n \n {{role.label.localizedValue}}\n \n {{role.orgLabel.localizedValue}}\n \n \n 0 && role.assigned\">\n {{role.label.localizedValue}}\n 0 && role.assigned\">\n {{role.orgLabel.localizedValue}}\n 0 && role.assigned\">\n {{role.geoObjectTypeLabel.localizedValue}}\n
\n \n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n","/* eslint-disable no-use-before-define */\n/* eslint-disable no-unused-vars */\nimport { LocalizationService } from \"@shared/service/localization.service\";\n\nexport interface MessageContainer {\n setMessage(message: string);\n}\n\nexport class LocaleValue {\n\n locale: string;\n value: string;\n\n constructor(locale: string, value: string) {\n this.locale = locale;\n this.value = value;\n }\n\n}\n\nexport class LocaleView {\n\n constructor(lService: LocalizationService) {\n this.label = lService.create();\n this.toString = \"\";\n this.tag = \"\";\n this.isDefaultLocale = false;\n this.language = { label: \"\", code: \"\" };\n this.country = { label: \"\", code: \"\" };\n this.variant = { label: \"\", code: \"\" };\n }\n\n label: LocalizedValue;\n toString: string;\n tag: string;\n isDefaultLocale: boolean;\n language: { label: string, code: string };\n country: { label: string, code: string };\n variant: { label: string, code: string };\n\n}\n\nexport class Organization {\n\n code: string;\n label: any;\n contactInfo: any;\n\n}\n\nexport class ExternalSystem {\n\toid?: string;\n\tid: string;\n\ttype: string;\n\torganization: string;\n\tlabel: LocalizedValue;\n\tdescription: LocalizedValue;\n\tusername?: string;\n\tpassword?: string;\n\turl?: string;\n\tsystem?: string;\n\tversion?: string;\n\toAuthServer?: OAuthServer;\n}\n\nexport class OAuthServer {\n\n keyName?: string;\n label?: LocalizedValue;\n url?: string;\n authorizationLocation: string;\n tokenLocation: string;\n profileLocation: string;\n clientId: string;\n secretKey: string;\n serverType: string;\n\n}\n\nexport class PageResult {\n\n count: number;\n pageNumber: number;\n pageSize: number;\n resultSet: T[];\n externalSystems?: ExternalSystem[];\n\n}\n\nexport class LocalizedValue {\n\n localizedValue: string;\n localeValues: LocaleValue[];\n\n constructor(localizedValue: string, localeValues: LocaleValue[]) {\n this.localizedValue = localizedValue;\n this.localeValues = localeValues;\n }\n\n public getValue(localeToString: string): string {\n let len = this.localeValues.length;\n\n for (let i = 0; i < len; ++i) {\n let lv = this.localeValues[i];\n\n if (lv.locale === localeToString) {\n return lv.value;\n }\n }\n\n return this.localizedValue;\n }\n\n /*\n * Populates lv1 with all values contained in lv2\n */\n public static populate(lv1: LocalizedValue, lv2: LocalizedValue) {\n if (lv1 == null || lv2 == null) {\n return;\n }\n\n lv1.localizedValue = lv2.localizedValue;\n\n if (lv2.localeValues != null) {\n lv2.localeValues.forEach(lv2lv => {\n if (lv1.localeValues) {\n let found = false;\n\n lv1.localeValues.forEach(lv1lv => {\n if (!found && lv1lv.locale === lv2lv.locale) {\n lv1lv.value = lv2lv.value;\n found = true;\n }\n });\n\n if (!found) {\n lv1.localeValues.push(JSON.parse(JSON.stringify(lv2lv)));\n }\n } else {\n lv1.localeValues = lv2.localeValues;\n }\n });\n }\n }\n\n}\n\nexport class RoleBuilder {\n\n static buildFromRoleName(roleName: string): RegistryRole {\n if (roleName === \"cgr.SRA\") {\n return new RegistryRole(RegistryRoleType.SRA, \"\", \"\", \"cgr.SRA\");\n }\n\n let roleSplit = roleName.split(\".\");\n\n let orgCode: string = roleSplit[2];\n\n if (roleSplit.length === 4) {\n return new RegistryRole(RegistryRoleType.RA, orgCode, \"\", roleName);\n } else if (roleSplit.length === 5) {\n let roleSuffix: string = roleSplit[4];\n\n let gotCode: string = roleSplit[3];\n\n if (roleSuffix === \"RM\") {\n return new RegistryRole(RegistryRoleType.RM, orgCode, gotCode, roleName);\n } else if (roleSuffix === \"RC\") {\n return new RegistryRole(RegistryRoleType.RC, orgCode, gotCode, roleName);\n } else if (roleSuffix === \"AC\") {\n return new RegistryRole(RegistryRoleType.AC, orgCode, gotCode, roleName);\n }\n } else {\n return null;\n }\n }\n\n}\n\nexport class RegistryRole {\n\n type: RegistryRoleType;\n orgCode: string;\n geoObjectTypeCode: string;\n roleName: string;\n displayLabel: string;\n\n constructor(type: RegistryRoleType, orgCode: string, geoObjectTypeCode: string, roleName: string) {\n this.type = type;\n this.orgCode = orgCode;\n this.geoObjectTypeCode = geoObjectTypeCode;\n this.roleName = roleName;\n }\n\n}\n\nexport enum RegistryRoleType {\n SRA,\n RA,\n RM,\n RC,\n AC\n}\n","import { Component } from \"@angular/core\";\nimport { ModalStepIndicatorService } from \"@shared/service\";\n\nimport { Step, StepConfig } from \"@shared/model/modal\";\nimport { Subscription } from \"rxjs\";\n\n@Component({\n selector: \"modal-step-indicator\",\n templateUrl: \"./modal-step-indicator.component.html\",\n styleUrls: [\"./modal-step-indicator.css\"]\n})\nexport class ModalStepIndicatorComponent {\n\n stepConfig: StepConfig;\n step: Step;\n stepSubscription: Subscription;\n\n constructor(private modalStepIndicatorService: ModalStepIndicatorService) {\n this.stepSubscription = modalStepIndicatorService.modalStepChange.subscribe(stepConfig => {\n this.stepConfig = stepConfig;\n });\n }\n\n ngOnInit(): void {\n }\n\n ngOnDestroy() {\n this.stepSubscription.unsubscribe();\n }\n\n}\n","
\n
    0\" class=\"nav nav-justified\">\n
  • {{step.label}}
  • \n
\n
","import { Component, OnInit } from \"@angular/core\";\n\nimport { Progress } from \"@shared/model/progress\";\nimport { ProgressService, IProgressListener } from \"@shared/service\";\n\n@Component({\n\n selector: \"progress-bar\",\n templateUrl: \"./progress-bar.component.html\",\n styles: [\n \".progress-overlay { background-color: #CCCCCC; position: absolute; display: block;opacity: 0.8;z-index: 99999 !important;}\",\n \".progress-div { width: 100%; margin-left: 0; padding-left: 25%; padding-right: 25%; margin-top: 30% }\"\n ]\n})\nexport class ProgressBarComponent implements OnInit, IProgressListener {\n\n public showIndicator: boolean = true;\n\n public prog: Progress = {\n current: 0,\n total: 1,\n description: \"Initializing\"\n };\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: ProgressService) { }\n\n ngOnInit(): void {\n this.service.registerListener(this);\n }\n\n ngOnDestroy(): void {\n this.service.deregisterListener(this);\n }\n\n start(): void {\n this.prog = {\n current: 0,\n total: 1,\n description: \"Initializing\"\n };\n\n this.showIndicator = true;\n }\n\n progress(progress: Progress): void {\n this.prog = progress;\n }\n\n complete(): void {\n this.showIndicator = false;\n }\n\n}\n","
\n
\n {{prog.description}}\n
\n
\n","import { Injectable } from \"@angular/core\";\nimport { HttpHeaders, HttpClient, HttpParams } from \"@angular/common/http\";\nimport { finalize } from \"rxjs/operators\";\nimport { EventService } from \"@shared/service\";\nimport { ExternalSystem, PageResult } from \"@shared/model/core\";\n\ndeclare let acp: any;\n\n@Injectable()\nexport class ExternalSystemService {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private http: HttpClient, private eventService: EventService) { }\n\n getExternalSystems(pageNumber: number, pageSize: number): Promise> {\n let params: HttpParams = new HttpParams();\n params = params.set(\"pageNumber\", pageNumber.toString());\n params = params.set(\"pageSize\", pageSize.toString());\n\n this.eventService.start();\n\n return this.http\n .get>(acp + \"/external-system/get-all\", { params: params })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n getExternalSystem(oid: string): Promise {\n let params: HttpParams = new HttpParams();\n params = params.set(\"oid\", oid);\n\n this.eventService.start();\n\n return this.http\n .get(acp + \"/external-system/get\", { params: params })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n applyExternalSystem(system: ExternalSystem): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/external-system/apply\", JSON.stringify({ system: system }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n getSystemCapabilities(system: ExternalSystem): Promise<{ oauth: boolean }> {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post<{ oauth: boolean }>(acp + \"/external-system/system-capabilities\", JSON.stringify({ system: system }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n removeExternalSystem(oid: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/external-system/remove\", JSON.stringify({ oid: oid }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { Step, StepConfig } from \"@shared/model/modal\";\n\ndeclare let acp: string;\n\n@Injectable()\nexport class ModalStepIndicatorService {\n\n stepConfig: StepConfig;\n step: Step;\n private modalStepChangedSource = new Subject();\n modalStepChange = this.modalStepChangedSource.asObservable();\n\n\n // eslint-disable-next-line no-useless-constructor\n constructor() { }\n\n public getStepConfig(): StepConfig {\n return this.stepConfig;\n }\n\n public setStepConfig(config: StepConfig): void {\n this.stepConfig = config;\n\n this.modalStepChangedSource.next(this.stepConfig);\n }\n\n getStep(): Step {\n return this.step;\n }\n\n setStep(step: Step): void {\n this.step = step;\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpHeaders, HttpClient } from \"@angular/common/http\";\n\nimport { finalize } from \"rxjs/operators\";\n\nimport { EventService } from \"@shared/service\";\n\nimport { Organization } from \"@shared/model/core\";\n\ndeclare var acp: any;\n\n@Injectable()\nexport class OrganizationService {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private http: HttpClient, private eventService: EventService) { }\n\n getOrganizations(): Promise {\n this.eventService.start();\n\n return this.http\n .get(acp + \"/cgr/organizations/get-all\")\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n updateOrganization(json: any): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/cgr/orgainization/update\", JSON.stringify({ json: json }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n newOrganization(json: any): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/cgr/orgainization/create\", JSON.stringify({ json: json }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n removeOrganization(code: any): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.eventService.start();\n\n return this.http\n .post(acp + \"/cgr/orgainization/delete\", JSON.stringify({ code: code }), { headers: headers })\n .pipe(finalize(() => {\n this.eventService.complete();\n }))\n .toPromise();\n }\n\n}\n","import { AuthService } from \"./auth.service\";\nimport { EventService } from \"./event.service\";\nimport { ExternalSystemService } from \"./external-system.service\";\nimport { AdminGuard, AuthGuard, ContributerGuard, MaintainerGuard } from \"./guard.service\";\nimport { LocalizationService } from \"./localization.service\";\nimport { ModalStepIndicatorService } from \"./modal-step-indicator.service\";\nimport { OrganizationService } from \"./organization.service\";\nimport { PendingChangesGuard } from \"./pending-changes-guard\";\nimport { ProfileService } from \"./profile.service\";\nimport { ProgressService } from \"./progress.service\";\nimport { SessionService } from \"./session.service\";\nimport { DateService } from \"./date.service\";\n\nexport const services: any[] = [\n AuthService,\n EventService,\n ExternalSystemService,\n AdminGuard,\n AuthGuard,\n ContributerGuard,\n MaintainerGuard,\n LocalizationService,\n ModalStepIndicatorService,\n OrganizationService,\n PendingChangesGuard,\n ProfileService,\n ProgressService,\n SessionService,\n DateService\n];\n\nexport * from \"./auth.service\";\nexport * from \"./event.service\";\nexport * from \"./external-system.service\";\nexport * from \"./guard.service\";\nexport * from \"./localization.service\";\nexport * from \"./modal-step-indicator.service\";\nexport * from \"./organization.service\";\nexport * from \"./pending-changes-guard\";\nexport * from \"./profile.service\";\nexport * from \"./progress.service\";\nexport * from \"./session.service\";\nexport * from \"./date.service\";\n","import { CanDeactivate } from \"@angular/router\";\nimport { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\n\n// Thanks to : https://stackoverflow.com/a/41187919/219843\n\nexport interface ComponentCanDeactivate {\n canDeactivate: () => boolean | Observable;\n afterDeactivate: (arg: boolean) => void;\n}\n\n@Injectable()\nexport class PendingChangesGuard implements CanDeactivate {\n\n canDeactivate(component: ComponentCanDeactivate): boolean | Observable {\n if (!component.canDeactivate()) {\n // NOTE: this warning message will only be shown when navigating elsewhere within your angular app;\n // when navigating away from your angular app, the browser will show a generic warning message\n // see http://stackoverflow.com/a/42207299/7307355\n let confirmRet = confirm(\"WARNING: You have unsaved changes. Press Cancel to go back and save these changes, or OK to lose these changes.\");\n\n component.afterDeactivate(confirmRet);\n\n return confirmRet;\n }\n\n return true;\n }\n}","import { Injectable } from \"@angular/core\";\nimport { HttpHeaders, HttpClient } from \"@angular/common/http\";\n\n// import 'rxjs/add/operator/toPromise';\n\nimport { Profile } from \"@shared/model/profile\";\n\ndeclare let acp: any;\n\n@Injectable()\nexport class ProfileService {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private http: HttpClient) { }\n\n get(): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n return this.http\n .post(acp + \"/registryaccount/get\", { headers: headers })\n .toPromise();\n }\n\n\n apply(profile: Profile): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n return this.http\n .post(acp + \"/registryaccount/apply\", JSON.stringify({ account: profile }), { headers: headers })\n .toPromise();\n }\n\n unlock(oid: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n return this.http\n .post(acp + \"/registryaccount/unlock\", JSON.stringify({ oid: oid }), { headers: headers })\n .toPromise()\n }\n\n setLocale(locale: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n return this.http\n .post(acp + \"/localization/set-locale\", JSON.stringify({ locale: locale }), { headers: headers })\n .toPromise();\n }\n\n getRolesForUser(userOID: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n\n return this.http\n .post(acp + \"/registryaccount/getRolesForUser\", { userOID: userOID }, { headers: headers })\n .toPromise();\n }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { Progress } from \"@shared/model/progress\";\n\nexport interface IProgressListener {\n start(): void;\n progress(progress: Progress): void;\n complete(): void;\n}\n\n@Injectable()\nexport class ProgressService {\n\n private listeners: IProgressListener[] = [];\n\n // eslint-disable-next-line no-useless-constructor\n public constructor() { }\n\n public registerListener(listener: IProgressListener): void {\n this.listeners.push(listener);\n }\n\n public deregisterListener(listener: IProgressListener): boolean {\n let indexOfItem = this.listeners.indexOf(listener);\n\n if (indexOfItem === -1) {\n return false;\n }\n\n this.listeners.splice(indexOfItem, 1);\n\n return true;\n }\n\n public start(): void {\n for (const listener of this.listeners) {\n listener.start();\n }\n }\n\n public progress(progress: Progress): void {\n for (const listener of this.listeners) {\n listener.progress(progress);\n }\n }\n\n public complete(): void {\n for (const listener of this.listeners) {\n listener.complete();\n }\n }\n}","import { Injectable } from \"@angular/core\";\nimport { HttpHeaders, HttpClient } from \"@angular/common/http\";\n\n// import 'rxjs/add/operator/toPromise';\nimport { finalize } from \"rxjs/operators\";\n\nimport { EventService } from \"./event.service\";\n\nimport { AuthService } from \"./auth.service\";\nimport { User } from \"@shared/model/user\";\n\ndeclare let acp: any;\n\n@Injectable()\nexport class SessionService {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: EventService, private http: HttpClient, private authService: AuthService) { }\n\n login(username: string, password: string): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.service.start();\n\n return this.http\n .post(acp + \"/cgrsession/login\", JSON.stringify({ username: username, password: password }), { headers: headers })\n .pipe(finalize(() => {\n this.service.complete();\n }))\n .toPromise()\n .then((logInResponse: any) => {\n this.authService.afterLogIn(logInResponse);\n\n return logInResponse;\n })\n }\n\n logout(): Promise {\n let headers = new HttpHeaders({\n \"Content-Type\": \"application/json\"\n });\n\n this.service.start();\n\n\n return this.http\n .post(acp + \"/session/logout\", { headers: headers })\n .pipe(finalize(() => {\n this.service.complete();\n }))\n .toPromise()\n .then((response: any) => {\n this.authService.afterLogOut();\n\n return response;\n })\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { LocalizationService } from \"@shared/service\";\n\n@Component({\n selector: \"error-message\",\n templateUrl: \"./error-message.component.html\",\n styleUrls: [\"./error-message.css\"]\n})\nexport class ErrorMessageComponent {\n\n /*\n * Message\n */\n @Input() message: string = this.localizeService.decode(\"error.modal.default.message\");\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private localizeService: LocalizationService) { }\n\n}\n","
\n
\n \n \n \n
\n
\n
\n

{{message}}

\n
\n
\n
","import { Component, Input } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Subject } from \"rxjs\";\nimport { LocalizationService } from \"@shared/service\";\nimport { ModalTypes } from \"@shared/model/modal\";\n\n@Component({\n selector: \"confirm-modal\",\n templateUrl: \"./confirm-modal.component.html\",\n styleUrls: [\"./modal.css\"]\n})\nexport class ConfirmModalComponent {\n\n /*\n * Message\n */\n @Input() message: string = this.localizeService.decode(\"confirm.modal.default.message\");\n\n @Input() data: any;\n\n @Input() submitText: string = this.localizeService.decode(\"modal.button.submit\");\n\n @Input() cancelText: string = this.localizeService.decode(\"modal.button.cancel\");\n\n @Input() type: ModalTypes = ModalTypes.warning;\n\n /*\n * Called on confirm\n */\n public onConfirm: Subject;\n\n /*\n * Called on cancel\n */\n public onCancel: Subject;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef, private localizeService: LocalizationService) { }\n\n ngOnInit(): void {\n this.onConfirm = new Subject();\n this.onCancel = new Subject();\n }\n\n confirm(): void {\n this.bsModalRef.hide();\n this.onConfirm.next(this.data);\n }\n\n cancel(): void {\n this.bsModalRef.hide();\n this.onCancel.next(this.data);\n }\n\n}\n","
\n
\n\n
\n
\n

{{message}}

\n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n
\n
","import { Component, Input } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { LocalizationService } from \"@shared/service\";\n\n@Component({\n selector: \"error-modal\",\n templateUrl: \"./error-modal.component.html\",\n styleUrls: [\"./error-modal.css\"]\n})\nexport class ErrorModalComponent {\n\n /*\n * Message\n */\n @Input() message: string = this.localizeService.decode(\"error.modal.default.message\");\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef, private localizeService: LocalizationService) { }\n\n}\n","
\n\t
\n\n\t\t
\n\t\t\t
\n\t\t\t\t

{{message}}

\n\t\t\t
\n\t\t
\n\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
\n
\n","import { Component, Input, OnInit } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { Subject } from \"rxjs\";\nimport { LocalizationService } from \"@shared/service\";\n\n@Component({\n selector: \"success-modal\",\n templateUrl: \"./success-modal.component.html\",\n styleUrls: [\"./success-modal.css\"]\n})\nexport class SuccessModalComponent implements OnInit {\n\n /*\n * Message\n */\n @Input() message: string;\n\n @Input() submitText: string = this.localizeService.decode(\"modal.button.close\");\n\n public onConfirm: Subject;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef, private localizeService: LocalizationService) { }\n\n ngOnInit(): void {\n this.message = this.message ? this.message : this.localizeService.decode(\"success.modal.default.message\");\n this.onConfirm = new Subject();\n }\n\n confirm(): void {\n this.bsModalRef.hide();\n this.onConfirm.next();\n }\n\n}\n","
\n\t
\n\n\t\t
\n\t\t\t
\n\t\t\t\t

{{message}}

\n\t\t\t
\n\t\t
\n\n\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
\n\n
\n","import { Component } from \"@angular/core\";\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\nimport { LocalizationService } from \"@shared/service\";\n\nexport class GenericButton {\n\n label: string;\n onClick: Function;\n shouldClose: boolean;\n class: string;\n\n}\n\n@Component({\n selector: \"generic-modal\",\n templateUrl: \"./generic-modal.component.html\",\n styleUrls: [\"./modal.css\"]\n})\nexport class GenericModalComponent {\n\n /*\n * Message\n */\n message: string = this.localizeService.decode(\"confirm.modal.default.message\");\n\n buttons: GenericButton[] = [];\n\n data: any;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(public bsModalRef: BsModalRef, private localizeService: LocalizationService) { }\n\n init(message: string, buttons: GenericButton[]): void {\n this.message = message;\n this.buttons = buttons;\n }\n\n onClick(button: GenericButton): void {\n if (button.shouldClose) {\n this.bsModalRef.hide();\n }\n\n button.onClick(this.data);\n }\n\n}\n","
\n
\n\n
\n
\n

{{message}}

\n
\n
\n\n
\n
\n
\n \n
\n
\n
\n
\n
","var map = {\n\t\"./admin/admin.module\": [\n\t\t270,\n\t\t\"vendor\",\n\t\t0,\n\t\t2\n\t],\n\t\"./registry/registry.module\": [\n\t\t271,\n\t\t\"vendor\",\n\t\t0,\n\t\t1\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__.t(id, 7);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 189;\nmodule.exports = webpackAsyncContext;","///\n/// Copyright (c) 2015 TerraFrame, Inc. All rights reserved.\n///\n/// This file is part of Runway SDK(tm).\n///\n/// Runway SDK(tm) is free software: you can redistribute it and/or modify\n/// it under the terms of the GNU Lesser General Public License as\n/// published by the Free Software Foundation, either version 3 of the\n/// License, or (at your option) any later version.\n///\n/// Runway SDK(tm) is distributed in the hope that it will be useful, but\n/// WITHOUT ANY WARRANTY; without even the implied warranty of\n/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n/// GNU Lesser General Public License for more details.\n///\n/// You should have received a copy of the GNU Lesser General Public\n/// License along with Runway SDK(tm). If not, see .\n///\nimport { Component, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { Subscription } from 'rxjs';\n\nimport { Application } from '@shared/model/application';\nimport { SessionService } from '@shared/service';\nimport { HubService } from '@core/service/hub.service';\n\nimport { ErrorHandler, ErrorModalComponent } from '@shared/component';\n\nimport { LoginHeaderComponent } from './login-header.component';\n\ndeclare var acp: any;\n\n@Component( {\n selector: 'login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.css']\n} )\nexport class LoginComponent implements OnInit {\n context: string;\n username: string = '';\n password: string = '';\n \n oauthServers: any[] = null;\n viewOauthServers: boolean = false;\n \n sub: Subscription;\n\n /*\n * Reference to the modal current showing\n */\n private bsModalRef: BsModalRef;\n\n ngOnInit(): void {\n this.hService.oauthGetPublic(null).then(oauthServers => {\n \n if (oauthServers && oauthServers.length > 0)\n {\n this.oauthServers = oauthServers;\n }\n \n }).catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n \n this.sub = this.route.params.subscribe(params => {\n if (params['errorMsg'] != null)\n {\n this.bsModalRef = this.modalService.show(ErrorModalComponent, { backdrop: true });\n \n let encodedError = params['errorMsg'];\n let decodedError = encodedError.replaceAll(\"+\", \" \");\n \n this.bsModalRef.content.message = decodedError;\n }\n });\n }\n\n constructor( private service: SessionService, private hService: HubService, private modalService: BsModalService, private router: Router, private route: ActivatedRoute ) {\n this.context = acp as string;\n }\n \n public onClickDhis2(url: any): void {\n if (url == null)\n {\n if (this.oauthServers.length == 1)\n {\n window.location.href = this.oauthServers[0].url;\n }\n else\n {\n this.viewOauthServers = !this.viewOauthServers;\n }\n }\n else\n {\n window.location.href = url;\n }\n }\n\n onSubmit(): void {\n this.service.login( this.username, this.password ).then( response => {\n\n this.hService.applications().then( applications => {\n if ( applications.length == 1 ) {\n this.open( applications[0] );\n }\n else {\n this.router.navigate( ['/menu/true'] );\n }\n } );\n } ).catch(( err: HttpErrorResponse ) => {\n this.error( err );\n } );\n }\n\n open( application: Application ): void {\n window.location.href = this.context + '/' + application.url;\n }\n\n public error( err: HttpErrorResponse ): void {\n this.bsModalRef = ErrorHandler.showErrorAsDialog(err, this.modalService);\n }\n\n\n}\n","
\n \n \n\n \n
\n
\n\n
\n
\n
\n
\n
\n\n
\n

\n \n

\n \n
\n\n
\n
\n \n
\n
\n\n
\n
\n
\n
\n \n \n \n \n \n
\n
\n \n
\n
\n
\n \n
\n
\n
\n \n
\n
\n\n
\n
\n \n
\n
\n

\n   \n

\n \n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n","///\n/// Copyright (c) 2015 TerraFrame, Inc. All rights reserved.\n///\n/// This file is part of Runway SDK(tm).\n///\n/// Runway SDK(tm) is free software: you can redistribute it and/or modify\n/// it under the terms of the GNU Lesser General Public License as\n/// published by the Free Software Foundation, either version 3 of the\n/// License, or (at your option) any later version.\n///\n/// Runway SDK(tm) is distributed in the hope that it will be useful, but\n/// WITHOUT ANY WARRANTY; without even the implied warranty of\n/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n/// GNU Lesser General Public License for more details.\n///\n/// You should have received a copy of the GNU Lesser General Public\n/// License along with Runway SDK(tm). If not, see .\n///\nimport { Component, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\n\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\n\nimport { Application } from '@shared/model/application';\n\nimport { AuthService } from '@shared/service';\n\nimport { HubService } from '@core/service/hub.service';\n\ndeclare var acp: any;\n\n@Component( {\n selector: 'hub',\n templateUrl: './hub.component.html',\n styleUrls: ['./hub.component.css']\n} )\nexport class HubComponent implements OnInit {\n context: string;\n applications: Application[] = [];\n tasks: any = [];\n isAdmin: boolean = false;\n buckets: string = 'col-sm-6';\n bsModalRef: BsModalRef;\n loading: boolean = true;\n\n constructor(\n private service: HubService,\n public authService: AuthService,\n private modalService: BsModalService,\n private router: Router,\n private route: ActivatedRoute,\n ) {\n this.context = acp as string;\n }\n\n ngOnInit(): void {\n this.service.applications().then( applications => {\n this.loading = false;\n this.applications = applications;\n } );\n \n this.isAdmin = this.authService.isAdmin();\n }\n \n // logout():void {\n // this.sessionService.logout().then(response => {\n // this.router.navigate(['/login']);\t \n // }); \t \n // }\n\n\n open( application: Application ): void {\n window.location.href = this.context + '/' + application.url;\n }\n\n // account():void{\n // this.profileService.get().then(profile => {\n // this.bsModalRef = this.modalService.show(ProfileComponent, {backdrop: 'static', class: 'gray modal-lg'});\n // this.bsModalRef.content.profile = profile;\n // });\n // }\n}\n","
\n\n \n \n \n
\n
\n
\n\t\t\t
\n\t\t\t \n\t\t\t
\n\t\t\t
\n\t\t\t \n\t\t\t
\n\t\t\t
\n \n
0 && !loading\" class=\"row vertical-center-row\">\n
\n
\n
\n\n
\n\n
\n
= i && internalIndex < i + 4\" class=\"col-xs-12 col-sm-12 col-md-3 text-center\" (click)=\"open(application)\">\n
\n \"Navigation\"\n

{{application.label}}

\n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n\n
\n \n \n\n
\n","///\n/// Copyright (c) 2015 TerraFrame, Inc. All rights reserved.\n///\n/// This file is part of Runway SDK(tm).\n///\n/// Runway SDK(tm) is free software: you can redistribute it and/or modify\n/// it under the terms of the GNU Lesser General Public License as\n/// published by the Free Software Foundation, either version 3 of the\n/// License, or (at your option) any later version.\n///\n/// Runway SDK(tm) is distributed in the hope that it will be useful, but\n/// WITHOUT ANY WARRANTY; without even the implied warranty of\n/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n/// GNU Lesser General Public License for more details.\n///\n/// You should have received a copy of the GNU Lesser General Public\n/// License along with Runway SDK(tm). If not, see .\n///\n\nimport { Component } from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { Location } from \"@angular/common\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { ForgotPasswordService } from \"@core/service/forgotpassword.service\";\n\nimport { ErrorHandler } from \"@shared/component\";\n\n@Component({\n selector: \"forgotpassword\",\n templateUrl: \"./forgotpassword.component.html\",\n styleUrls: [\"./forgotpassword.component.css\"]\n})\nexport class ForgotPasswordComponent {\n\n username: string;\n emailIsSent: boolean = false;\n message: string = null;\n\n constructor(private service: ForgotPasswordService,\n private router: Router,\n private route: ActivatedRoute,\n private location: Location) {}\n\n cancel(): void {\n this.router.navigate([\"/\"]);\n }\n\n onSubmit(): void {\n this.service.submit(this.username)\n .then(response => {\n this.emailIsSent = true;\n })\n .catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n \n \n\n
\n
\n
\n
\n

\n
\n \n
{{message}}
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n \n \n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n","///\n/// Copyright (c) 2015 TerraFrame, Inc. All rights reserved.\n///\n/// This file is part of Runway SDK(tm).\n///\n/// Runway SDK(tm) is free software: you can redistribute it and/or modify\n/// it under the terms of the GNU Lesser General Public License as\n/// published by the Free Software Foundation, either version 3 of the\n/// License, or (at your option) any later version.\n///\n/// Runway SDK(tm) is distributed in the hope that it will be useful, but\n/// WITHOUT ANY WARRANTY; without even the implied warranty of\n/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n/// GNU Lesser General Public License for more details.\n///\n/// You should have received a copy of the GNU Lesser General Public\n/// License along with Runway SDK(tm). If not, see .\n///\n\nimport { Component, OnInit } from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { ErrorHandler } from \"@shared/component\";\n\nimport { ForgotPasswordService } from \"@core/service/forgotpassword.service\";\nimport { PasswordStrengthBarComponent } from \"@shared/component/password-strength-bar/password-strength-bar.component\";\n\n@Component({\n templateUrl: \"./forgotpassword-complete.component.html\",\n styleUrls: [\"./forgotpassword-complete.component.css\"]\n})\nexport class ForgotPasswordCompleteComponent implements OnInit {\n\n newPassword: string;\n token: string;\n passwordIsReset: boolean = false;\n private sub: any;\n message: string = null;\n\n constructor(\n private service: ForgotPasswordService,\n private router: Router, \n private route: ActivatedRoute,\n \t private passwordStrengthBarComponent: PasswordStrengthBarComponent) {}\n\n ngOnInit() {\n this.sub = this.route.params.subscribe(params => {\n this.token = params[\"token\"];\n });\n }\n\n ngOnDestroy() {\n this.sub.unsubscribe();\n }\n\n cancel(): void {\n this.router.navigate([\"/\"]);\n }\n\n onSubmit(): void {\n this.service.complete(this.newPassword, this.token)\n .then(() => {\n this.passwordIsReset = true;\n })\n .catch((err: HttpErrorResponse) => {\n this.error(err);\n });\n }\n\n error(err: HttpErrorResponse): void {\n this.message = ErrorHandler.getMessageFromError(err);\n }\n\n}\n","
\n \n \n\n
\n
\n
\n
\n

\n
\n \n
{{message}}
\n \n
\n\t
\n\t
\n\t\t
\n\t\t
\n\t\t \n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t \n\t\t \n\t\t \n\t\t \n\t\t
\n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t \n\t\t \n\t\t \n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t
\n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t
\n\t \n\t \n\t
\n\t
\n\t\t
\n\t\t
\n\t\t
\n\t\t
\n\t\t \n\t\t \n\t\t
\n\t\t \n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t
\n\t
\n\t
\n
\n
\n
\n
\n
\n","/* eslint-disable no-use-before-define */\n/* eslint-disable padded-blocks */\nimport { LocalizedValue } from \"@shared/model/core\";\nimport { LocalizationService } from \"@shared/service\";\nimport { ImportConfiguration } from \"./io\";\nimport { GovernanceStatus, ConflictType } from \"./constants\";\nimport Utils from \"@registry/utility/Utils\";\n\nexport const PRESENT: string = \"5000-12-31\";\n\nexport class TreeEntity {\n id: string;\n name: string;\n hasChildren: boolean;\n}\n\nexport class Term {\n code: string;\n label: LocalizedValue;\n description: LocalizedValue;\n\n constructor(code: string, label: LocalizedValue, description: LocalizedValue) {\n this.code = code;\n this.label = label;\n this.description = description;\n }\n\n children: Term[] = [];\n\n addChild(term: Term) {\n this.children.push(term);\n }\n}\n\nexport class GeoObject {\n type: string;\n geometry: any;\n properties: {\n uid: string,\n code: string,\n displayLabel: LocalizedValue,\n type: string,\n status: string[],\n sequence: string\n createDate: string,\n lastUpdateDate: string,\n invalid: boolean,\n writable?: boolean\n };\n}\n\nexport class GeoObjectType {\n code: string;\n label: LocalizedValue;\n description: LocalizedValue;\n geometryType?: string;\n isLeaf: boolean;\n isGeometryEditable: boolean;\n organizationCode: string;\n attributes: Array = [];\n relatedHierarchies?: string[];\n superTypeCode?: string;\n isAbstract?: boolean;\n isPrivate?: boolean;\n canDrag?: boolean;\n permissions?: string[];\n\n public static getAttribute(type: GeoObjectType, name: string) {\n let len = type.attributes.length;\n for (let i = 0; i < len; i++) {\n let attr: any = type.attributes[i];\n\n if (attr.code === name) {\n return attr;\n }\n }\n\n return null;\n }\n\n public static getGeoObjectTypeTermAttributeOptions(geoObjectType: GeoObjectType, termAttributeCode: string) {\n for (let i = 0; i < geoObjectType.attributes.length; i++) {\n let attr: any = geoObjectType.attributes[i];\n\n if (attr.type === \"term\" && attr.code === termAttributeCode) {\n attr = attr;\n let attrOpts = attr.rootTerm.children;\n\n // only remove status of the required status type\n if (attrOpts.length > 0) {\n if (attr.code === \"status\") {\n return Utils.removeStatuses(attrOpts);\n } else {\n return attrOpts;\n }\n }\n }\n }\n\n return null;\n }\n}\n\nexport class Task {\n id: string;\n templateKey: string;\n msg: string;\n title: string;\n status: string;\n createDate: number;\n completedDate: number;\n}\n\nexport class GeoObjectOverTime {\n\n geoObjectType: GeoObjectType;\n\n attributes: any;\n\n public constructor(geoObjectType: GeoObjectType, attributes: any) {\n this.geoObjectType = geoObjectType;\n this.attributes = attributes;\n }\n\n public getVotAtDate(date: Date, attrCode: string, lService: LocalizationService) {\n let retVot = { startDate: date, endDate: null, value: null };\n\n const time = date.getTime();\n\n for (let i = 0; i < this.geoObjectType.attributes.length; ++i) {\n let attr = this.geoObjectType.attributes[i];\n\n if (attr.code === attrCode) {\n if (attr.type === \"local\") {\n retVot.value = lService.create();\n }\n\n if (attr.isChangeOverTime) {\n let values = this.attributes[attr.code].values;\n\n values.forEach(vot => {\n\n const startDate = Date.parse(vot.startDate);\n const endDate = Date.parse(vot.endDate);\n\n if (time >= startDate && time <= endDate) {\n\n if (attr.type === \"local\") {\n retVot.value = JSON.parse(JSON.stringify(vot.value));\n } else if (attr.type === \"term\" && vot.value != null && Array.isArray(vot.value) && vot.value.length > 0) {\n retVot.value = vot.value[0];\n } else {\n retVot.value = vot.value;\n }\n }\n });\n } else {\n retVot.value = this.attributes[attr.code];\n }\n\n break;\n }\n }\n\n return retVot;\n }\n}\n\nexport class ConflictMessage {\n message: string;\n severity: string;\n type: ConflictType;\n}\n\nexport interface TimeRangeEntry {\n startDate: string;\n endDate: string;\n oid?: string;\n value?: any;\n}\n\nexport class ValueOverTime implements TimeRangeEntry {\n oid: string;\n startDate: string;\n endDate: string;\n value: any;\n removable?: boolean;\n}\n\nexport class AttributeOverTime {\n name: string;\n type: string;\n values: ValueOverTime[];\n}\n\nexport class AttributeType {\n code: string; // On the back-end this is referred to as the AttributeType's 'name'. They are the same concept.\n type: string;\n label: LocalizedValue;\n description: LocalizedValue;\n isDefault: boolean;\n required: boolean;\n unique: boolean;\n governanceStatus: GovernanceStatus;\n isChangeOverTime?: boolean;\n precision?: number;\n scale?: number;\n isValid?: boolean;\n isValidReason?: {timeConflict: boolean, existConflict: boolean, dateField: boolean};\n isValidReasonHierarchy?: any;\n\n constructor(code: string, type: string, label: LocalizedValue, description: LocalizedValue, isDefault: boolean, required: boolean, unique: boolean, isChangeOverTime: boolean) {\n\n this.code = code;\n this.type = type;\n this.label = label;\n this.description = description;\n this.isDefault = isDefault;\n this.required = false; // Hardcoded to false because this functionality is disabled until later evaluation.\n this.unique = unique;\n this.isChangeOverTime = isChangeOverTime;\n }\n\n}\n\nexport class AttributeTermType extends AttributeType {\n\n // descendants: Attribute[];\n\n // eslint-disable-next-line no-useless-constructor\n constructor(code: string, type: string, label: LocalizedValue, description: LocalizedValue, isDefault: boolean, required: boolean, unique: boolean, isChange: boolean) {\n super(code, type, label, description, isDefault, required, unique, isChange);\n }\n\n rootTerm: Term = new Term(null, null, null);\n\n termOptions: Term[] = [];\n\n setRootTerm(term: Term) {\n this.rootTerm = term;\n }\n}\n\nexport class AttributeDecimalType extends AttributeType {\n constructor(code: string, type: string, label: LocalizedValue, description: LocalizedValue, isDefault: boolean, required: boolean, unique: boolean, isChange: boolean) {\n super(code, type, label, description, isDefault, required, unique, isChange);\n\n this.precision = 32;\n this.scale = 8;\n }\n}\n\nexport class TreeNode {\n geoObject: GeoObject;\n hierarchyType: string;\n}\n\nexport class ChildTreeNode extends TreeNode {\n children: ChildTreeNode[];\n}\n\nexport class ParentTreeNode extends TreeNode {\n parents: ParentTreeNode[];\n}\n\nexport class ManageGeoObjectTypeModalState {\n state: string;\n attribute: any;\n termOption: any;\n}\n\nexport class PaginationPage {\n pageNumber: number;\n count: number;\n pageSize: number;\n results: any[];\n}\n\nexport class AbstractScheduledJob {\n jobId: string;\n historyId: string;\n stage: string;\n status: string;\n author: string;\n createDate: string;\n lastUpdateDate: string;\n workProgress: number;\n workTotal: number;\n startDate: string;\n endDate: string;\n}\n\nexport class ScheduledJob extends AbstractScheduledJob {\n importedRecords: number;\n exportedRecords: number;\n configuration: ImportConfiguration;\n importErrors: PaginationPage;\n exportErrors: PaginationPage;\n problems: PaginationPage;\n fileName: string;\n}\n\nexport class ScheduledJobOverview extends ScheduledJob {\n stepConfig: StepConfig;\n}\n\n// export class ScheduledJobDetail extends ScheduledJob {\n// // failedRowCount: number;\n// importErrors: PaginationPage\n// }\n\nexport class ImportError {\n exception: ServerException;\n object: ImportErrorObject;\n objectType: string;\n id: string;\n resolution: string;\n selected?: boolean;\n}\n\nexport class ServerException {\n attributes: ServerExceptionAttribute[];\n type: string;\n message: string;\n}\n\nexport class ServerExceptionAttribute {\n value: string;\n key: string;\n}\n\nexport class ImportErrorObject {\n geoObject: GeoObjectOverTime;\n parents: HierarchyOverTime[];\n isNew: boolean;\n}\n\nexport class StepConfig {\n steps: Step[];\n}\n\nexport class Step {\n label: string;\n complete?: boolean;\n enabled?: boolean;\n status?: string;\n}\n\nexport class MasterList {\n oid: string;\n typeCode: string;\n typeLabel?: LocalizedValue;\n displayLabel: LocalizedValue;\n code: string;\n representativityDate: string;\n publishingStartDate?: string;\n publishDate: string;\n descriptionLocal: LocalizedValue;\n processLocal: LocalizedValue;\n progressLocal: LocalizedValue;\n accessConstraintsLocal: LocalizedValue;\n useConstraintsLocal: LocalizedValue;\n acknowledgementsLocal: LocalizedValue;\n disclaimerLocal: LocalizedValue;\n contactName: string;\n organization: string;\n telephoneNumber: string;\n email: string;\n hierarchies: { label: string, code: string, parents: { label: string, code: string }[] }[];\n leaf: boolean;\n frequency: string;\n isMaster: boolean;\n visibility: string;\n write?: boolean;\n read?: boolean;\n exploratory?: boolean;\n versions?: MasterListVersion[];\n subtypes?: { label: string, code: string }[];\n subtypeHierarchies?: any[];\n}\n\nexport class MasterListVersion {\n displayLabel: string;\n oid: string;\n typeCode: string;\n orgCode: string;\n masterlist: string;\n forDate: string;\n createDate: string;\n publishDate: string;\n attributes: any[];\n isGeometryEditable: boolean;\n locales?: string[];\n shapefile?: boolean;\n isAbstract?: boolean;\n superTypeCode?: string;\n refreshProgress?: any;\n subtypes?: { label: string, code: string }[];\n}\n\nexport class HierarchyOverTime {\n code: string;\n label: string;\n types: {\n code: string;\n label: string;\n }[];\n\n entries: HierarchyOverTimeEntry[];\n}\n\nexport class HierarchyOverTimeEntry implements TimeRangeEntry {\n startDate: string;\n endDate: string;\n oid: string;\n parents: { [k: string]: HierarchyOverTimeEntryParent };\n loading?: any;\n conflictType?: string;\n conflictMessage?: any[];\n}\n\nexport class HierarchyOverTimeEntryParent {\n text: string;\n geoObject: GeoObject;\n goCode?: string;\n}\n\nexport class MasterListView {\n label: string;\n oid: string;\n createDate: string;\n lastUpdateDate: string;\n isMaster: boolean;\n write: boolean;\n read: boolean;\n visibility: string;\n}\n\nexport class MasterListByOrg {\n oid: string;\n code: string;\n label: string;\n write: boolean;\n lists: MasterListView[];\n}\n\nexport class SynchronizationConfig {\n oid?: string;\n type?: string;\n systemLabel?: string;\n isImport?: boolean;\n organization: string;\n system: string;\n hierarchy: string;\n label: LocalizedValue;\n configuration: any;\n}\n\nexport class OrgSyncInfo {\n label: string;\n code: string;\n hierarchies: { label: string, code: string }[];\n systems: { label: string, oid: string, type: string }[];\n}\n\nexport class ExportScheduledJob extends AbstractScheduledJob {\n stepConfig?: StepConfig;\n}\n\nexport class ContextLayer {\n oid: string;\n displayLabel: string;\n active: boolean;\n enabled: boolean;\n}\n\nexport class ContextLayerGroup {\n oid: string;\n displayLabel: string;\n contextLayers: ContextLayer[];\n}\n","\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { BsModalRef, BsModalService } from \"ngx-bootstrap/modal\";\nimport { ErrorModalComponent } from \"@shared/component\";\n\nexport class ErrorHandler {\n\n static getMessageFromError(err: any): string {\n let unspecified = \"An unspecified error has occurred. Please try your operation again. If the problem continues, alert your technical support staff.\";\n\n if (err == null) {\n return unspecified;\n } else {\n console.log(\"An error has occurred: \", err);\n }\n\n let msg = null;\n\n if (err.error != null && (typeof err.error === \"object\")) {\n msg = err.error.localizedMessage || err.error.message;\n }\n\n if (msg == null) {\n msg = err.message || err.msg || err.localizedMessage;\n }\n\n if (msg != null && msg.includes(\"##tferrormsg##\")) {\n let split = msg.split(\"##tferrormsg##\");\n return split[2];\n }\n\n if (msg == null) {\n msg = unspecified;\n }\n\n return msg;\n }\n\n static showErrorAsDialog(err: any, modalService: BsModalService): BsModalRef {\n if (err instanceof HttpErrorResponse && err.status === 401) {\n return null;\n }\n\n let bsModalRef = modalService.show(ErrorModalComponent, { backdrop: true, class: \"error-white-space-pre\" });\n\n bsModalRef.content.message = ErrorHandler.getMessageFromError(err);\n\n return bsModalRef;\n }\n\n}\n","import { AttributeType, GeoObject } from \"@registry/model/registry\";\nimport { LocalizedValue } from \"@shared/model/core\";\n// eslint-disable-next-line camelcase\nimport turf_booleanequal from \"@turf/boolean-equal\";\n\nexport default class Utils {\n\n /**\n *\n * @param arr\n */\n static removeStatuses(arr: any[]): any[] {\n var newArray = [];\n\n for (var i = 0; i < arr.length; ++i) {\n if (!(arr[i].code === \"CGR:Status-New\" ||\n arr[i].code === \"CGR:Status-Pending\")) {\n newArray.push(arr[i]);\n }\n }\n\n return newArray;\n }\n\n /**\n *\n * @param dateObj\n */\n static formatDateString(dateObj: Date): string {\n const day = dateObj.getUTCDate();\n const month = dateObj.getUTCMonth() + 1;\n\n return dateObj.getUTCFullYear() + \"-\" + (month < 10 ? \"0\" : \"\") + month + \"-\" + (day < 10 ? \"0\" : \"\") + day;\n }\n\n static dateRangeOverlaps(aStart: number, aEnd: number, bStart: number, bEnd: number): boolean {\n if (aStart <= bStart && bStart <= aEnd) return true; // b starts in a\n if (aStart <= bEnd && bEnd <= aEnd) return true; // b ends in a\n if (bStart < aStart && aEnd < bEnd) return true; // a in b\n return false;\n }\n\n static dateRangeOutside(aStart: number, aEnd: number, bStart: number, bEnd: number): boolean {\n if (aStart < bStart) return true;\n if (aEnd > bEnd) return true;\n return false;\n }\n\n static dateEndBeforeStart(start: number, end: number): boolean {\n if (end < start) return true; // end date is before start date\n return false;\n }\n\n static hasGap(aEnd: number, bStart: number): boolean {\n return (bStart - aEnd) > (1000 * 60 * 60 * 24);\n }\n\n public static areValuesEqual(attributeType: AttributeType, val1: any, val2: any): boolean {\n if (attributeType.type === \"boolean\") {\n return val1 === val2;\n }\n\n if ((val1 === \"\" && val2 == null) || (val2 === \"\" && val1 == null)) {\n return true;\n }\n\n if (!val1 && !val2) {\n return true;\n } else if ((!val1 && val2) || (!val2 && val1)) {\n return false;\n }\n\n if (attributeType.type === \"term\") {\n if (val1 != null && val2 != null) {\n return val1.length === val2.length && val1[0] === val2[0];\n }\n } else if (attributeType.type === \"geometry\") {\n return turf_booleanequal(val1, val2);\n } else if (attributeType.type === \"date\") {\n let casted1 = (typeof val1 === \"string\") ? parseInt(val1) : val1;\n let casted2 = (typeof val2 === \"string\") ? parseInt(val2) : val2;\n\n return casted1 === casted2;\n } else if (attributeType.type === \"local\") {\n if ((!val1.localeValues || !val2.localeValues) || val1.localeValues.length !== val2.localeValues.length) {\n return false;\n }\n\n let len = val1.localeValues.length;\n for (let i = 0; i < len; ++i) {\n let localeValue = val1.localeValues[i];\n\n let lv2 = this.getValueAtLocale(val2, localeValue.locale);\n let lv1 = localeValue.value;\n\n if ((lv1 === \"\" && lv2 == null) || (lv2 === \"\" && lv1 == null)) {\n continue;\n } else if (lv1 !== lv2) {\n return false;\n }\n }\n\n return true;\n } else if (attributeType.type === \"_PARENT_\" && val1.parents && val2.parents) {\n for (const [gotCode, data] of Object.entries(val1.parents)) {\n let parentData: {text: string, geoObject: GeoObject} = data as {text: string, geoObject: GeoObject};\n\n if (val2.parents[gotCode]) {\n let parentData2: {text: string, geoObject: GeoObject} = val2.parents[gotCode];\n\n if (parentData.geoObject == null && parentData2.geoObject == null) {\n // equal, keep looping\n } else if ((parentData.geoObject == null && parentData2.geoObject != null) || (parentData2.geoObject == null && parentData.geoObject != null)) {\n return false;\n } else if (parentData.geoObject.properties.code !== parentData2.geoObject.properties.code) {\n return false;\n }\n }\n }\n\n return true;\n } else if (attributeType.type === \"integer\") {\n let casted1 = (typeof val1 === \"string\") ? parseInt(val1) : val1;\n let casted2 = (typeof val2 === \"string\") ? parseInt(val2) : val2;\n\n return casted1 === casted2;\n } else if (attributeType.type === \"float\") {\n let casted1 = (typeof val1 === \"string\") ? parseFloat(val1) : val1;\n let casted2 = (typeof val2 === \"string\") ? parseFloat(val2) : val2;\n\n return casted1 === casted2;\n }\n\n return val1 === val2;\n }\n\n public static getValueAtLocale(lv: LocalizedValue, locale: string) {\n return new LocalizedValue(lv.localizedValue, lv.localeValues).getValue(locale);\n }\n\n}\n","import { NgModule, ModuleWithProviders } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { RouterModule } from \"@angular/router\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { TreeModule } from \"@circlon/angular-tree-component\";\nimport { ContextMenuModule } from \"ngx-contextmenu\";\nimport { ModalModule } from \"ngx-bootstrap/modal\";\nimport { BsDropdownModule } from \"ngx-bootstrap/dropdown\";\nimport { ButtonsModule } from \"ngx-bootstrap/buttons\";\nimport { TypeaheadModule } from \"ngx-bootstrap/typeahead\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { FileUploadModule } from \"ng2-file-upload\";\nimport { NgxPaginationModule } from \"ngx-pagination\";\nimport { ProgressbarModule } from \"ngx-bootstrap/progressbar\";\nimport { CollapseModule } from \"ngx-bootstrap/collapse\";\nimport { BsDatepickerModule } from \"ngx-bootstrap/datepicker\";\n\nimport { ErrorModalComponent } from \"./component/modals/error-modal.component\";\nimport { SuccessModalComponent } from \"./component/modals/success-modal.component\";\nimport { ConfirmModalComponent } from \"./component/modals/confirm-modal.component\";\nimport { GenericModalComponent } from \"./component/modals/generic-modal.component\";\nimport { ErrorMessageComponent } from \"./component/message/error-message.component\";\nimport { MessageComponent } from \"./component/message/message.component\";\nimport { BooleanFieldComponent } from \"./component/form-fields/boolean-field/boolean-field.component\";\nimport { DateFieldComponent } from \"./component/form-fields/date-field/date-field.component\";\nimport { LoadingBarComponent } from \"./component/loading-bar/loading-bar.component\";\nimport { PasswordStrengthBarComponent } from \"./component/password-strength-bar/password-strength-bar.component\";\n\nimport { AdminGuard, MaintainerGuard, ContributerGuard, AuthGuard } from \"./service/guard.service\";\nimport { PendingChangesGuard } from \"./service/pending-changes-guard\";\n\nimport { AuthService } from \"./service/auth.service\";\nimport { ProfileService } from \"./service/profile.service\";\nimport { OrganizationService } from \"./service/organization.service\";\nimport { ExternalSystemService } from \"./service/external-system.service\";\nimport { LocalizationService } from \"./service/localization.service\";\nimport { ProgressService } from \"./service/progress.service\";\nimport { EventService } from \"./service/event.service\";\nimport { ModalStepIndicatorService } from \"./service/modal-step-indicator.service\";\nimport { SessionService } from \"./service/session.service\";\nimport { DateService } from \"./service/date.service\";\n\nimport { LocalizePipe } from \"./pipe/localize.pipe\";\nimport { PhonePipe } from \"./pipe/phone.pipe\";\n\nimport { OnlyNumber } from \"./directive/number-only.directive\";\nimport { MustMatchDirective } from \"./directive/must-match.directive\";\n\nimport { CgrHeaderComponent } from \"./component/header/header.component\";\nimport { ProgressBarComponent } from \"./component/progress-bar/progress-bar.component\";\nimport { LocalizeComponent } from \"./component/localize/localize.component\";\nimport { ConvertKeyLabel } from \"./component/localize/convert-key-label.component\";\nimport { ModalStepIndicatorComponent } from \"./component/modals/modal-step-indicator.component\";\nimport { ProfileComponent } from \"./component/profile/profile.component\";\n\nimport \"../rxjs-extensions\";\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n FormsModule,\n ReactiveFormsModule,\n FileUploadModule,\n ModalModule.forRoot(),\n TreeModule,\n ContextMenuModule,\n BsDropdownModule,\n ButtonsModule,\n TypeaheadModule,\n ProgressbarModule,\n CollapseModule,\n NgxPaginationModule,\n BsDatepickerModule.forRoot()\n ],\n declarations: [\n LocalizeComponent,\n ConvertKeyLabel,\n BooleanFieldComponent,\n DateFieldComponent,\n LoadingBarComponent,\n ErrorMessageComponent,\n MessageComponent,\n ConfirmModalComponent,\n GenericModalComponent,\n ErrorModalComponent,\n SuccessModalComponent,\n PasswordStrengthBarComponent,\n OnlyNumber,\n MustMatchDirective,\n ProgressBarComponent,\n ModalStepIndicatorComponent,\n CgrHeaderComponent,\n ProfileComponent,\n LocalizePipe,\n PhonePipe\n ],\n exports: [\n LocalizeComponent,\n ConvertKeyLabel,\n BooleanFieldComponent,\n DateFieldComponent,\n LoadingBarComponent,\n ErrorMessageComponent,\n MessageComponent,\n ConfirmModalComponent,\n GenericModalComponent,\n ErrorModalComponent,\n SuccessModalComponent,\n PasswordStrengthBarComponent,\n OnlyNumber,\n MustMatchDirective,\n ProgressBarComponent,\n ModalStepIndicatorComponent,\n CgrHeaderComponent,\n ProfileComponent,\n LocalizePipe,\n PhonePipe,\n CommonModule,\n FormsModule,\n ReactiveFormsModule\n ],\n entryComponents: [\n ErrorModalComponent,\n SuccessModalComponent,\n ConfirmModalComponent,\n GenericModalComponent,\n ModalStepIndicatorComponent,\n ErrorMessageComponent,\n LoadingBarComponent,\n ProfileComponent\n ]\n})\nexport class SharedModule {\n\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: SharedModule,\n providers: [\n CookieService,\n AuthService,\n SessionService,\n ProfileService,\n OrganizationService,\n ExternalSystemService,\n LocalizationService,\n DateService,\n ModalStepIndicatorService,\n EventService,\n ProgressService,\n AdminGuard,\n MaintainerGuard,\n ContributerGuard,\n AuthGuard,\n PendingChangesGuard\n ]\n };\n }\n\n}\n","///\n/// Copyright (c) 2015 TerraFrame, Inc. All rights reserved.\n///\n/// This file is part of Runway SDK(tm).\n///\n/// Runway SDK(tm) is free software: you can redistribute it and/or modify\n/// it under the terms of the GNU Lesser General Public License as\n/// published by the Free Software Foundation, either version 3 of the\n/// License, or (at your option) any later version.\n///\n/// Runway SDK(tm) is distributed in the hope that it will be useful, but\n/// WITHOUT ANY WARRANTY; without even the implied warranty of\n/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n/// GNU Lesser General Public License for more details.\n///\n/// You should have received a copy of the GNU Lesser General Public\n/// License along with Runway SDK(tm). If not, see .\n///\n\nimport { Component } from '@angular/core';\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { ErrorHandler } from '@shared/component';\nimport { HubService } from '@core/service/hub.service';\n\ndeclare var acp:string;\n\n@Component({\n selector: 'login-header',\n templateUrl: './login-header.component.html',\n styleUrls: []\n})\nexport class LoginHeaderComponent {\n context:string;\n \n constructor(private hubService: HubService) {\n this.context = acp;\n }\n \n public error(err: HttpErrorResponse): void {\n let msg = ErrorHandler.getMessageFromError(err);\n console.log(msg, err);\n }\n}\n"," \n
\n \n
\n","export enum ActionTypes {\n \"CREATEGEOOBJECTACTION\" = \"CreateGeoObjectAction\",\n \"UPDATEATTRIBUTETACTION\" = \"UpdateAttributeAction\",\n \"UPDATEGEOOBJECTACTION\" = \"UpdateGeoObjectAction\" // Deprecated DO NOT USE\n}\n\nexport enum GovernanceStatus {\n \"PENDING\" = \"PENDING\",\n \"ACCEPTED\" = \"ACCEPTED\",\n \"REJECTED\" = \"REJECTED\"\n}\n\nexport enum GeoObjectTypeModalStates {\n \"manageAttributes\" = \"MANAGE-ATTRIBUTES\",\n \"editAttribute\" = \"EDIT-ATTRIBUTE\",\n \"defineAttribute\" = \"DEFINE-ATTRIBUTE\",\n \"manageTermOption\" = \"MANAGE-TERM-OPTION\",\n \"editTermOption\" = \"EDIT-TERM-OPTION\",\n \"manageGeoObjectType\" = \"MANAGE-GEO-OBJECT-TYPE\"\n}\n\nexport enum ImportStrategy {\n \"NEW_AND_UPDATE\" = \"NEW_AND_UPDATE\",\n \"NEW_ONLY\" = \"NEW_ONLY\",\n \"UPDATE_ONLY\" = \"UPDATE_ONLY\"\n}\n\nexport enum ConflictType {\n MISSING_REFERENCE = \"MISSING_REFERENCE\",\n TIME_RANGE = \"TIME_RANGE\",\n OUTSIDE_EXISTS = \"OUTSIDE_EXISTS\"\n}\n\nexport enum ChangeType\n{\n END_DATE = \"endDate\",\n START_DATE = \"startDate\",\n VALUE = \"value\",\n REMOVE = \"remove\",\n ADD = \"add\"\n}\n\nexport enum LayerColor {\n \"OLD\" = \"#A4A4A4\",\n \"NEW\" = \"#0062AA\"\n}\n","import { Input, Component, OnInit } from \"@angular/core\";\n\nimport { LocalizationService, AuthService } from \"@shared/service\";\nimport { LocaleView, LocalizedValue } from \"@shared/model/core\";\n\n@Component({\n\n selector: \"convert-key-label\",\n templateUrl: \"./convert-key-label.component.html\",\n styleUrls: []\n})\nexport class ConvertKeyLabel implements OnInit {\n\n @Input() key: any;\n text: string;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: LocalizationService, private authService: AuthService) { }\n\n ngOnInit(): void {\n if (this.key != null && this.key.label != null && this.key.label.localizedValue != null) {\n this.text = this.key.label.localizedValue;\n return;\n }\n\n let locales: LocaleView[] = this.authService.getLocales();\n\n let len = locales.length;\n for (let i = 0; i < len; ++i) {\n let locale: LocaleView = locales[i];\n\n if (locale.toString === this.key) {\n this.text = this.getValue(locale.label, this.service.getLocale());\n\n return;\n }\n }\n\n if (this.key === \"defaultLocale\") {\n this.text = this.service.decode(\"localization.defaultLocal\");\n } else {\n this.text = this.key;\n }\n }\n\n public getValue(lv: LocalizedValue, localeToString: string): string {\n let len = lv.localeValues.length;\n\n for (let i = 0; i < len; ++i) {\n let value = lv.localeValues[i];\n\n if (value.locale === localeToString) {\n return value.value;\n }\n }\n\n return lv.localizedValue;\n }\n\n}\n","{{text}}","import { Component, Input, Output, EventEmitter, ChangeDetectorRef, ViewChild } from \"@angular/core\";\nimport { LocalizationService } from \"@shared/service\";\nimport { DateService } from \"@shared/service/date.service\";\n\nimport { BsDatepickerConfig, BsDatepickerDirective } from \"ngx-bootstrap/datepicker\";\n\nimport { PRESENT } from \"@registry/model/registry\";\n\ndeclare let acp: string;\n\n@Component({\n selector: \"date-field\",\n templateUrl: \"./date-field.component.html\",\n styleUrls: [\"./date-field.css\"],\n})\n\nexport class DateFieldComponent {\n\n @ViewChild(BsDatepickerDirective, { static: false }) datepicker: BsDatepickerDirective;\n\n @Input() allowFutureDates: boolean = true;\n @Input() allowInfinity: boolean = false;\n @Input() inputName: string = this.idGenerator();\n @Input() classNames: string = \"\";\n @Input() customStyles: string = \"\";\n @Input() localizeLabelKey: string = \"\"; // localization key used to localize in the component template\n @Input() label: string = \"\"; // raw string input\n @Input() disable: boolean = false;\n @Input() required: boolean = false;\n @Input() placement: string = \"bottom\";\n @Input() oldDate: string = null;\n @Input() title: string = \"\";\n\n _value: Date;\n // eslint-disable-next-line accessor-pairs\n @Input() set value(value) {\n if (value) {\n this.setValue(value ? value : null);\n }\n }\n\n @Output() public valueChange = new EventEmitter();\n\n /* You can pass a function in with (change)='function()' */\n @Output() public change = new EventEmitter();\n\n today: Date = new Date();\n message: string;\n returnFocusToInput: boolean = false;\n valueIsPresent: boolean = false;\n\n @Input() valid: boolean = true;\n @Output() public validChange = new EventEmitter();\n\n constructor(private localizationService: LocalizationService, private bsDatepickerConfig: BsDatepickerConfig, private changeDetectorRef: ChangeDetectorRef, private dateService: DateService) {\n this.bsDatepickerConfig.dateInputFormat = \"YYYY-MM-DD\";\n }\n\n\n private setValue(value: string | number): void {\n // @ts-ignore\n if (!isNaN(value)) {\n // @ts-ignore\n value = parseInt(value);\n }\n\n if (value && typeof value === \"string\") {\n let date = new Date(+value.split(\"-\")[0], +value.split(\"-\")[1] - 1, +value.split(\"-\")[2]);\n\n if (value === PRESENT) {\n this.valueIsPresent = true;\n }\n\n this._value = date;\n } else if (value && typeof value === \"number\") {\n // Custom attributes of date type come through as UTC time\n this._value = new Date(new Date(value).getUTCFullYear(), new Date(value).getUTCMonth(), new Date(value).getUTCDate());\n } else {\n this._value = null;\n }\n }\n\n public getValue(): Date {\n return this._value;\n }\n\n public setInvalid(message: string) {\n this.valid = false;\n this.message = message;\n }\n\n idGenerator() {\n let S4 = function() {\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\n };\n return (S4() + S4() + \"-\" + S4() + \"-\" + S4() + \"-\" + S4() + \"-\" + S4() + S4() + S4());\n }\n\n isEqual(date1: Date, date2: Date): boolean {\n let equal = false;\n\n if (date1 && date2) {\n // if(date1.toISOString().substr(0, 10) === PRESENT && date2.toISOString().substr(0, 10) === PRESENT){\n if (date1.getTime() === date2.getTime()) {\n return true;\n }\n }\n\n return equal;\n }\n\n toggleInfinity(): void {\n let date = this.getValue();\n\n if (date && this.isEqual(date, this.dateService.getPresentDate())) {\n this.setValue(null); // clear the date picker\n this.valueChange.emit(null);\n this.valueIsPresent = false;\n } else {\n this.setValue(PRESENT);\n this.valueChange.emit(this.dateService.getDateString(this.getValue()));\n this.valueIsPresent = true;\n }\n\n this.change.emit();\n }\n\n toggle(event: Date): void {\n setTimeout(() => {\n let validity = this.dateService.validateDate(event, this.required, this.allowFutureDates);\n this.valid = validity.valid;\n this.message = validity.message;\n\n if (this.valid) {\n // Must adhere to the ISO 8601 format\n let formattedDate = this.dateService.getDateString(event);\n\n if (formattedDate === PRESENT) {\n this.valueIsPresent = true;\n } else {\n this.valueIsPresent = false;\n }\n\n this.valueChange.emit(formattedDate);\n } else {\n // hack to avoid ngx-datepicker from putting \"invalid date\" in the input\n this.setValue(null);\n\n this.valueChange.emit(null);\n }\n\n this.change.emit();\n this.validChange.emit(this.valid);\n }, 0)\n }\n\n}","\n\n\n\n\n\n
\n \n \n \n \n
\n

{{message}}

\n
\n
\n\n
\n

\n \n {{ oldDate }}\n

\n
\n\n

\n\n
\n \n \n
\n\n","export enum ModalTypes {\n \"warning\" = \"WARNING\",\n \"danger\" = \"DANGER\"\n}\n\nexport class StepConfig {\n steps: Step[];\n}\n\nexport class Step {\n label: string;\n active: boolean;\n enabled: boolean;\n}","import { Component, Input, Output, EventEmitter } from \"@angular/core\";\n\ndeclare let acp: string;\n\n@Component({\n selector: \"boolean-field\",\n templateUrl: \"./boolean-field.component.html\",\n styleUrls: [\"./boolean-field.css\"]\n})\nexport class BooleanFieldComponent {\n\n @Input() value: boolean = false;\n @Output() public valueChange = new EventEmitter();\n\n @Input() localizeLabelKey: string = \"\"; // localization key used to localize in the component template\n @Input() label: string = \"\"; // raw string input\n\n @Input() disable: boolean = false;\n\n /* You can pass a function in with (change)='function()' */\n @Output() public change = new EventEmitter();\n\n // eslint-disable-next-line no-useless-constructor\n constructor() { }\n\n toggle(): void {\n if (!this.disable) {\n this.value = !this.value;\n\n this.valueChange.emit(this.value);\n this.change.emit(this.value);\n }\n }\n}","
\n
\n \n
\n \n \n \n
","import { Injectable, Output, EventEmitter } from \"@angular/core\";\n\nimport MapboxDraw from \"@mapbox/mapbox-gl-draw\";\nimport { Map, LngLat, LngLatBounds } from \"mapbox-gl\";\n\nimport { Layer } from \"../component/geoobject-shared-attribute-editor/manage-versions-model\";\n\n// eslint-disable-next-line no-unused-vars\ndeclare let acp: any;\n\n/**\n * This is a generic service used for rendering layers from ValueOverTime objects\n */\n@Injectable()\nexport class GeometryService {\n\n map: Map;\n\n layers: Layer[] = [];\n\n geometryType: String;\n\n readOnly: boolean;\n\n // @Output() layersChange: EventEmitter = new EventEmitter();\n\n editingControl: any = null;\n\n simpleEditControl: any = null;\n\n editingLayer: Layer;\n\n @Output() geometryChange = new EventEmitter();\n\n // eslint-disable-next-line no-useless-constructor\n constructor() { }\n\n ngOnInit() {\n window.onbeforeunload = () => this.destroy();\n }\n\n initialize(map: Map, geometryType: String, readOnly: boolean) {\n this.map = map;\n this.geometryType = geometryType;\n // this.editingControl = null;\n\n this.addLayers();\n\n this.map.on(\"draw.create\", () => {\n this.saveEdits();\n });\n this.map.on(\"draw.delete\", () => {\n this.saveEdits();\n });\n this.map.on(\"draw.update\", () => {\n this.saveEdits();\n });\n }\n\n destroy(destroyMap: boolean = true): void {\n if (this.editingControl != null) {\n this.map.removeControl(this.editingControl);\n this.editingControl = null;\n }\n\n if (this.map != null && destroyMap) {\n this.map.remove();\n this.map = null;\n } else if (this.map != null) {\n this.removeLayers();\n }\n\n if (this.layers != null) {\n this.layers.forEach(layer => {\n layer.isEditing = false;\n layer.isRendering = false;\n });\n }\n\n this.editingLayer = null;\n this.layers = [];\n }\n\n startEditing(layer: Layer) {\n if (this.isEditing()) {\n this.stopEditing();\n }\n\n this.editingLayer = layer;\n this.editingLayer.isEditing = true;\n\n if (!this.readOnly) {\n this.enableEditing();\n }\n\n this.addEditingLayers();\n }\n\n stopEditing(rerender: boolean = true) {\n if (this.isEditing()) {\n this.saveEdits(rerender);\n\n this.editingLayer.isEditing = false;\n this.editingLayer = null;\n\n this.editingControl.deleteAll();\n this.map.removeControl(this.editingControl);\n\n this.editingControl = null;\n }\n }\n\n isEditing(): boolean {\n return this.editingLayer != null;\n }\n\n setPointCoordinates(lat: any, long: any) {\n if (this.editingLayer != null) {\n this.editingControl.set({\n type: \"FeatureCollection\",\n features: [{\n id: this.editingLayer.oid,\n type: \"Feature\",\n properties: {},\n geometry: { type: \"Point\", coordinates: [long, lat] }\n }]\n });\n\n this.editingControl.changeMode(\"simple_select\", { featureIds: this.editingLayer.oid });\n\n this.saveEdits();\n\n /*\n this.editingLayer.value = {\n type: 'FeatureCollection',\n features: [{\n id: this.editingLayer.oid,\n type: 'Feature',\n properties: {},\n geometry: { type: 'Point', coordinates: [ long, lat ] }\n }]\n };\n */\n\n /*\n this.editingLayer.value.coordinates = [ -97.4870830718814, 41.84836050415993 ];\n\n this.editingControl.set(this.editingLayer.value);\n\n this.removeLayers();\n this.addLayers();\n\n this.editingControl.changeMode( 'simple_select', { featureIds: this.editingLayer.oid } );\n */\n }\n }\n\n isValid(): boolean {\n if (!this.readOnly) {\n let isValid: boolean = false;\n\n if (this.editingControl != null) {\n let featureCollection: any = this.editingControl.getAll();\n\n if (featureCollection.features.length > 0) {\n isValid = true;\n }\n }\n\n return isValid;\n }\n\n return true;\n }\n\n saveEdits(rerender: boolean = true): void {\n if (this.editingLayer != null) {\n let geoJson = this.getDrawGeometry();\n\n this.editingLayer.editPropagator.value = geoJson;\n\n if (rerender) {\n this.removeLayers();\n this.addLayers();\n }\n }\n }\n\n public reload(): void {\n if (this.map != null) {\n this.removeLayers();\n this.addLayers();\n\n if (this.editingControl != null) {\n this.editingControl.deleteAll();\n }\n\n this.addEditingLayers();\n }\n }\n\n setEditing(isEditing: boolean, layer: Layer) {\n if (this.isEditing()) {\n this.stopEditing();\n }\n\n layer.isEditing = isEditing;\n\n if (isEditing) {\n this.startEditing(layer);\n }\n }\n\n setRendering(isRendering: boolean, layer: Layer) {\n layer.isRendering = isRendering;\n this.addLayer(layer);\n }\n\n addLayer(newLayer: Layer) {\n let existingIndex = this.layers.findIndex((findLayer: Layer) => { return findLayer.oid === newLayer.oid; });\n\n if (existingIndex !== -1) {\n this.layers.splice(existingIndex, 1);\n this.layers.push(newLayer);\n } else {\n this.layers.push(newLayer);\n }\n\n if (newLayer.isEditing) {\n this.startEditing(newLayer);\n }\n\n this.layers = this.layers.sort((a, b) => { return a.zindex - b.zindex; });\n\n this.removeLayers();\n this.addLayers();\n }\n\n getLayers(): Layer[] {\n return this.layers;\n }\n\n getRenderedLayers(): Layer[] {\n return this.layers.filter(layer => layer.isRendering);\n }\n\n setLayers(layers: Layer[]): void {\n this.removeLayers();\n\n this.layers = layers.sort((a, b) => { return a.zindex - b.zindex; });\n\n this.addLayers();\n }\n\n enableEditing(): void {\n if (this.editingControl == null) {\n if (this.geometryType === \"MULTIPOLYGON\" || this.geometryType === \"POLYGON\") {\n this.editingControl = new MapboxDraw({\n controls: {\n point: false,\n line_string: false,\n polygon: true,\n trash: true,\n combine_features: false,\n uncombine_features: false\n }\n });\n } else if (this.geometryType === \"POINT\" || this.geometryType === \"MULTIPOINT\") {\n this.editingControl = new MapboxDraw({\n userProperties: true,\n controls: {\n point: true,\n line_string: false,\n polygon: false,\n trash: true,\n combine_features: false,\n uncombine_features: false\n },\n styles: [\n {\n id: \"highlight-active-points\",\n type: \"circle\",\n filter: [\"all\",\n [\"==\", \"$type\", \"Point\"],\n [\"==\", \"meta\", \"feature\"],\n [\"==\", \"active\", \"true\"]],\n paint: {\n \"circle-radius\": 13,\n \"circle-color\": \"#33FFF9\",\n \"circle-stroke-width\": 4,\n \"circle-stroke-color\": \"white\"\n }\n },\n {\n id: \"points-are-blue\",\n type: \"circle\",\n filter: [\"all\",\n [\"==\", \"$type\", \"Point\"],\n [\"==\", \"meta\", \"feature\"],\n [\"==\", \"active\", \"false\"]],\n paint: {\n \"circle-radius\": 10,\n \"circle-color\": \"#800000\",\n \"circle-stroke-width\": 2,\n \"circle-stroke-color\": \"white\"\n }\n }\n ]\n });\n } else if (this.geometryType === \"LINE\" || this.geometryType === \"MULTILINE\") {\n this.editingControl = new MapboxDraw({\n controls: {\n point: false,\n line_string: true,\n polygon: false,\n trash: true,\n combine_features: false,\n uncombine_features: false\n }\n });\n }\n\n if (this.map.getSource(\"mapbox-gl-draw-cold\") == null) {\n this.map.addControl(this.editingControl);\n }\n }\n }\n\n addEditingLayers(): void {\n if (this.editingLayer != null && this.editingControl != null) {\n let val = this.editingLayer.editPropagator.value;\n\n if (val) {\n this.editingControl.add(this.editingLayer.editPropagator.value);\n }\n }\n }\n\n removeSource(prefix: string): void {\n if (!this.map) {\n return;\n }\n\n let sourceName: string = prefix + \"-geoobject\";\n\n if (this.geometryType === \"MULTIPOLYGON\" || this.geometryType === \"POLYGON\") {\n if (this.map.getLayer(sourceName + \"-polygon\") != null) {\n this.map.removeLayer(sourceName + \"-polygon\");\n }\n } else if (this.geometryType === \"POINT\" || this.geometryType === \"MULTIPOINT\") {\n if (this.map.getLayer(sourceName + \"-point\") != null) {\n this.map.removeLayer(sourceName + \"-point\");\n }\n } else if (this.geometryType === \"LINE\" || this.geometryType === \"MultiLine\") {\n if (this.map.getLayer(sourceName + \"-line\") != null) {\n this.map.removeLayer(sourceName + \"-line\");\n }\n }\n\n if (this.map.getSource(sourceName) != null) {\n this.map.removeSource(sourceName);\n }\n }\n\n removeLayers(): void {\n if (this.layers != null && this.layers.length > 0) {\n let len = this.layers.length;\n\n for (let i = 0; i < len; ++i) {\n let layer = this.layers[i];\n this.removeSource(layer.oid);\n }\n }\n }\n\n addLayers(): void {\n if (this.layers != null && this.layers.length > 0) {\n let len = this.layers.length;\n for (let i = 0; i < len; ++i) {\n let layer = this.layers[i];\n\n if (layer.isRendering) {\n this.renderGeometryAsLayer(layer.editPropagator == null ? layer.geojson : layer.editPropagator.value, layer.oid, layer.color);\n }\n }\n }\n }\n\n renderGeometryAsLayer(geometry: any, sourceName: string, color: string) {\n let finalSourceName: string = sourceName + \"-geoobject\";\n\n if (!this.map) {\n return;\n }\n if (!geometry) {\n return;\n }\n\n this.map.addSource(finalSourceName, {\n type: \"geojson\",\n data: {\n type: \"FeatureCollection\",\n features: []\n }\n });\n\n if (this.geometryType === \"MULTIPOLYGON\" || this.geometryType === \"POLYGON\") {\n // Polygon Layer\n this.map.addLayer({\n id: finalSourceName + \"-polygon\",\n type: \"fill\",\n source: finalSourceName,\n paint: {\n \"fill-color\": color,\n \"fill-outline-color\": \"black\",\n \"fill-opacity\": 0.7\n }\n });\n } else if (this.geometryType === \"POINT\" || this.geometryType === \"MULTIPOINT\") {\n // Point layer\n this.map.addLayer({\n id: finalSourceName + \"-point\",\n type: \"circle\",\n source: finalSourceName,\n paint: {\n \"circle-radius\": 3,\n \"circle-color\": color,\n \"circle-stroke-width\": 2,\n \"circle-stroke-color\": \"#FFFFFF\"\n }\n });\n } else if (this.geometryType === \"LINE\" || this.geometryType === \"MULTILINE\") {\n this.map.addLayer({\n id: finalSourceName + \"-line\",\n source: finalSourceName,\n type: \"line\",\n layout: {\n \"line-join\": \"round\",\n \"line-cap\": \"round\"\n },\n paint: {\n \"line-color\": color,\n \"line-width\": 2\n }\n });\n }\n\n ( this.map.getSource(finalSourceName)).setData(geometry);\n }\n\n getDrawGeometry(): any {\n if (this.editingControl != null) {\n let featureCollection: any = this.editingControl.getAll();\n\n if (featureCollection.features.length > 0) {\n // The first Feature is our GeoObject.\n\n // Any additional features were created using the draw editor. Combine them into the GeoObject if its a multi-polygon.\n if (this.geometryType === \"MULTIPOLYGON\") {\n let polygons = [];\n\n for (let i = 0; i < featureCollection.features.length; i++) {\n let feature = featureCollection.features[i];\n\n if (feature.geometry.type === \"MultiPolygon\") {\n for (let j = 0; j < feature.geometry.coordinates.length; j++) {\n polygons.push(feature.geometry.coordinates[j]);\n }\n } else {\n polygons.push(feature.geometry.coordinates);\n }\n }\n\n return {\n coordinates: polygons,\n type: \"MultiPolygon\"\n };\n } else if (this.geometryType === \"MULTIPOINT\") {\n let points = [];\n\n for (let i = 0; i < featureCollection.features.length; i++) {\n let feature = featureCollection.features[i];\n\n if (feature.geometry.type === \"MultiPoint\") {\n for (let j = 0; j < feature.geometry.coordinates.length; j++) {\n points.push(feature.geometry.coordinates[j]);\n }\n } else {\n points.push(feature.geometry.coordinates);\n }\n }\n\n return {\n coordinates: points,\n type: \"MultiPoint\"\n };\n } else if (this.geometryType === \"MULTILINE\") {\n let lines = [];\n\n for (let i = 0; i < featureCollection.features.length; i++) {\n let feature = featureCollection.features[i];\n\n if (feature.geometry.type === \"MultiLineString\") {\n for (let j = 0; j < feature.geometry.coordinates.length; j++) {\n lines.push(feature.geometry.coordinates[j]);\n }\n } else {\n lines.push(feature.geometry.coordinates);\n }\n }\n\n return {\n coordinates: lines,\n type: \"MultiLineString\"\n };\n } else {\n return featureCollection.features[0].geometry;\n }\n }\n }\n\n return null;\n }\n\n public static createEmptyGeometryValue(geometryType: String): any {\n let value = { type: geometryType, coordinates: [] };\n\n if (geometryType === \"MULTIPOLYGON\") {\n value.type = \"MultiPolygon\";\n } else if (geometryType === \"POLYGON\") {\n value.type = \"Polygon\";\n } else if (geometryType === \"POINT\") {\n value.type = \"Point\";\n } else if (geometryType === \"MULTIPOINT\") {\n value.type = \"MultiPoint\";\n } else if (geometryType === \"LINE\") {\n value.type = \"Line\";\n } else if (geometryType === \"MULTILINE\") {\n value.type = \"MultiLine\";\n }\n\n return value;\n }\n\n zoomToLayersExtent(): void {\n this.layers.forEach(layer => {\n if (layer.geojson != null) {\n if (this.geometryType === \"MULTIPOINT\" || this.geometryType === \"POINT\") {\n let coords = layer.geojson.coordinates;\n\n if (coords) {\n let bounds = new LngLatBounds();\n coords.forEach(coord => {\n bounds.extend(coord);\n });\n\n let center = bounds.getCenter();\n let pt = new LngLat(center.lng, center.lat);\n\n this.map.flyTo({\n center: pt,\n zoom: 9,\n essential: true\n });\n }\n } else if (this.geometryType === \"MULTIPOLYGON\" || this.geometryType === \"POLYGON\") {\n let coords = layer.geojson.coordinates;\n\n if (coords) {\n let bounds = new LngLatBounds();\n coords.forEach(polys => {\n polys.forEach(subpoly => {\n subpoly.forEach(coord => {\n bounds.extend(coord);\n });\n });\n });\n\n this.map.fitBounds(bounds, {\n padding: 20\n });\n }\n } else if (this.geometryType === \"LINE\" || this.geometryType === \"MULTILINE\") {\n let coords = layer.geojson.coordinates;\n\n if (coords) {\n let bounds = new LngLatBounds();\n coords.forEach(lines => {\n lines.forEach(subline => {\n subline.forEach(coord => {\n bounds.extend(coord);\n });\n });\n });\n\n this.map.fitBounds(bounds, {\n padding: 20\n });\n }\n }\n }\n });\n }\n\n}\n","import { Directive, ElementRef, HostListener, Input } from \"@angular/core\";\n\n@Directive({\n selector: \"[OnlyNumber]\"\n})\nexport class OnlyNumber {\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private el: ElementRef) { }\n\n @Input() OnlyNumber: boolean;\n\n @HostListener(\"keydown\", [\"$event\"]) onKeyDown(event: any) {\n let e = event;\n if (this.OnlyNumber) {\n if ([46, 8, 9, 27, 13, 110, 190].indexOf(e.keyCode) !== -1 ||\n // Allow: Ctrl+A\n (e.keyCode === 65 && e.ctrlKey === true) ||\n // Allow: Ctrl+C\n (e.keyCode === 67 && e.ctrlKey === true) ||\n // Allow: Ctrl+X\n (e.keyCode === 88 && e.ctrlKey === true) ||\n // Allow: home, end, left, right\n (e.keyCode >= 35 && e.keyCode <= 39)) {\n // let it happen, don't do anything\n return;\n }\n // Ensure that it is a number and stop the keypress\n if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {\n e.preventDefault();\n }\n }\n }\n\n}\n","import { Directive, Input } from \"@angular/core\";\nimport { NG_VALIDATORS, Validator, ValidationErrors, FormGroup } from \"@angular/forms\";\n\n// custom validator to check that two fields match\nexport function MustMatch(controlName: string, matchingControlName: string) {\n return (formGroup: FormGroup) => {\n const control = formGroup.controls[controlName];\n const matchingControl = formGroup.controls[matchingControlName];\n\n // return null if controls haven't initialised yet\n if (!control || !matchingControl) {\n return null;\n }\n\n // return null if another validator has already found an error on the matchingControl\n if (matchingControl.errors && !matchingControl.errors.mustMatch) {\n return null;\n }\n\n // set error on matchingControl if validation fails\n if (control.value !== matchingControl.value) {\n matchingControl.setErrors({ mustMatch: true });\n } else {\n matchingControl.setErrors(null);\n }\n };\n}\n\n@Directive({\n selector: \"[mustMatch]\",\n providers: [{ provide: NG_VALIDATORS, useExisting: MustMatchDirective, multi: true }]\n})\nexport class MustMatchDirective implements Validator {\n\n @Input(\"mustMatch\") mustMatch: string[] = [];\n\n validate(formGroup: FormGroup): ValidationErrors {\n return MustMatch(this.mustMatch[0], this.mustMatch[1])(formGroup);\n }\n\n}\n","/* eslint-disable padded-blocks */\nexport class Profile {\n oid: string;\n username: string;\n password: string;\n firstName: string;\n lastName: string;\n email: string;\n changePassword?: boolean;\n phoneNumber?: string;\n altFirstName?: string;\n altLastName?: string;\n altPhoneNumber?: string;\n position?: string;\n department?: string;\n externalSystemOid?: string;\n}","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { formatNumber, ParsedNumber } from \"libphonenumber-js\";\n\n@Pipe({\n name: \"phone\"\n})\nexport class PhonePipe implements PipeTransform {\n\n transform(value: ParsedNumber, args?: string): any {\n if (!value) {\n return value;\n }\n\n return formatNumber({ country: \"US\", phone: value.toString() }, \"International\");\n }\n\n}\n","import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\nimport { enableProdMode } from '@angular/core';\nimport { CgrAppModule } from './app/cgr-app.module';\n\nif (process.env.ENV === 'production') {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(CgrAppModule)\n .then(success => console.log('Bootstrap success'))\n .catch(error => console.log(error));\n\n","import { NgModule } from \"@angular/core\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { HttpClientModule, HTTP_INTERCEPTORS } from \"@angular/common/http\";\nimport { TreeModule } from \"@circlon/angular-tree-component\";\nimport { ContextMenuModule } from \"ngx-contextmenu\";\nimport { BsDropdownModule } from \"ngx-bootstrap/dropdown\";\nimport { ButtonsModule } from \"ngx-bootstrap/buttons\";\nimport { TypeaheadModule } from \"ngx-bootstrap/typeahead\";\nimport { FileUploadModule } from \"ng2-file-upload\";\nimport { NgxPaginationModule } from \"ngx-pagination\";\nimport { ProgressbarModule } from \"ngx-bootstrap/progressbar\";\nimport { CollapseModule } from \"ngx-bootstrap/collapse\";\nimport { TabsModule } from \"ngx-bootstrap/tabs\";\nimport { BsDatepickerModule } from \"ngx-bootstrap/datepicker\";\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\n\nimport { CgrAppComponent } from \"./cgr-app.component\";\nimport { CgrAppRoutingModule, routedComponents } from \"./cgr-app-routing.module\";\n\nimport { LoginComponent } from \"@core/component/login/login.component\";\nimport { LoginHeaderComponent } from \"@core/component/login/login-header.component\";\nimport { HubComponent } from \"@core/component/hub/hub.component\";\nimport { ForgotPasswordComponent } from \"@core/component/forgotpassword/forgotpassword.component\";\nimport { ForgotPasswordCompleteComponent } from \"@core/component/forgotpassword-complete/forgotpassword-complete.component\";\n\nimport { HttpErrorInterceptor } from \"@core/service/http-error.interceptor\";\n\nimport { ForgotPasswordService } from \"@core/service/forgotpassword.service\";\nimport { PasswordStrengthBarComponent } from \"@shared/component/password-strength-bar/password-strength-bar.component\";\nimport { HubService } from \"@core/service/hub.service\";\n\nimport { GeometryService } from \"@registry/service/geometry.service\";\n\nimport { SharedModule } from \"@shared/shared.module\";\n\nimport \"./rxjs-extensions\";\n\n@NgModule({\n imports: [\n BrowserModule,\n FormsModule,\n HttpClientModule,\n CgrAppRoutingModule,\n ReactiveFormsModule,\n FileUploadModule,\n // ModalModule.forRoot(),\n TreeModule,\n ContextMenuModule.forRoot(),\n BsDropdownModule.forRoot(),\n ButtonsModule.forRoot(),\n TypeaheadModule.forRoot(),\n ProgressbarModule.forRoot(),\n CollapseModule.forRoot(),\n TabsModule.forRoot(),\n NgxPaginationModule,\n BrowserAnimationsModule,\n SharedModule.forRoot(),\n BsDatepickerModule.forRoot()\n ],\n declarations: [\n CgrAppComponent,\n LoginComponent,\n LoginHeaderComponent,\n HubComponent,\n ForgotPasswordComponent,\n ForgotPasswordCompleteComponent,\n\n // Routing components\n routedComponents\n ],\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: HttpErrorInterceptor,\n multi: true\n },\n ForgotPasswordService,\n PasswordStrengthBarComponent,\n HubService,\n GeometryService\n ],\n exports: [\n CgrAppComponent\n ],\n bootstrap: [CgrAppComponent],\n entryComponents: [\n ]\n})\nexport class CgrAppModule { }\n","import { Component } from \"@angular/core\";\n\n@Component({\n\n selector: \"cgr-app\",\n templateUrl: \"./cgr-app.component.html\",\n styleUrls: []\n})\nexport class CgrAppComponent {\n\n // eslint-disable-next-line no-useless-constructor\n constructor() { }\n\n}\n","
\n\n \n
\n \n
\n \n
","import { NgModule } from \"@angular/core\";\nimport { LocationStrategy, HashLocationStrategy } from \"@angular/common\";\nimport { Routes, RouterModule } from \"@angular/router\";\n\nimport { LoginComponent } from \"./core/component/login/login.component\";\nimport { HubComponent } from \"./core/component/hub/hub.component\";\nimport { ForgotPasswordComponent } from \"./core/component/forgotpassword/forgotpassword.component\";\nimport { ForgotPasswordCompleteComponent } from \"./core/component/forgotpassword-complete/forgotpassword-complete.component\";\n\nimport { AuthGuard, AdminGuard, MaintainerGuard, ContributerGuard } from \"./shared/service/guard.service\";\n\nconst routes: Routes = [\n {\n path: \"\",\n redirectTo: \"/menu\",\n pathMatch: \"full\"\n },\n {\n path: \"login\",\n component: LoginComponent,\n data: { title: \"login.title\" }\n },\n {\n path: \"login/:errorMsg\",\n component: LoginComponent,\n data: { title: \"login.title\" }\n },\n {\n path: \"menu\",\n component: HubComponent,\n canActivate: [AuthGuard],\n data: { title: \"login.header\" }\n },\n {\n path: \"menu/:value\",\n component: HubComponent,\n canActivate: [AuthGuard],\n data: { title: \"login.header\" }\n },\n {\n path: \"forgotpassword\",\n component: ForgotPasswordComponent,\n data: { title: \"useraccounts.title\" }\n },\n {\n path: \"forgotpassword-complete/:token\",\n component: ForgotPasswordCompleteComponent\n },\n {\n path: \"admin\",\n loadChildren: \"./admin/admin.module#AdminModule\"\n },\n {\n path: \"registry\",\n loadChildren: \"./registry/registry.module#RegistryModule\"\n }\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule],\n providers: [\n { provide: LocationStrategy, useClass: HashLocationStrategy },\n AdminGuard,\n MaintainerGuard,\n ContributerGuard\n ]\n})\nexport class CgrAppRoutingModule { }\n\nexport const routedComponents: any = [LoginComponent, HubComponent, ForgotPasswordComponent, ForgotPasswordCompleteComponent];\n","import { Injectable } from '@angular/core';\nimport {\n HttpEvent,\n HttpInterceptor,\n HttpHandler,\n HttpRequest,\n HttpResponse,\n HttpResponseBase, \n HttpErrorResponse\n} from '@angular/common/http';\n\nimport { Observable } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\ndeclare var acp: string;\n\n@Injectable()\nexport class HttpErrorInterceptor implements HttpInterceptor {\n\n intercept( request: HttpRequest, next: HttpHandler ): Observable> {\n\n return next.handle( request ).pipe(tap(( event: HttpEvent ) => {\n if ( event instanceof HttpResponseBase ) {\n const response = event as HttpResponseBase;\n if ( response.status === 302 ) {\n window.location.href = acp + '/cgr/manage#/login';\n return;\n }\n }\n }, ( err: any ) => {\n if ( err instanceof HttpErrorResponse ) {\n if ( err.status === 401 || err.status === 403 ) {\n // redirect to the login route\n // or show a modal\n window.location.href = acp + '/cgr/manage#/login';\n }\n }\n } ));\n }\n}","import { Input, Component, OnInit } from \"@angular/core\";\n\nimport { LocalizationService } from \"@shared/service\";\n\n@Component({\n\n selector: \"localize\",\n templateUrl: \"./localize.component.html\",\n styleUrls: []\n})\nexport class LocalizeComponent implements OnInit {\n\n @Input() key: string;\n @Input() params: { [key: string]: string } = null;\n\n text: string;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: LocalizationService) { }\n\n ngOnInit(): void {\n this.text = this.service.decode(this.key);\n\n if (this.params != null) {\n const keys = Object.keys(this.params);\n\n keys.forEach((key) => {\n if (this.params[key] != null) {\n this.text = this.text.replace(key, this.params[key]);\n }\n });\n }\n }\n\n}\n","","import { Component, OnInit } from \"@angular/core\";\n\nimport { EventService, IEventListener } from \"@shared/service\";\n\n@Component({\n\n selector: \"loading-bar\",\n templateUrl: \"./loading-bar.component.html\",\n styleUrls: [\"./loading-bar.css\"]\n})\nexport class LoadingBarComponent implements OnInit, IEventListener {\n\n showIndicator: boolean = false;\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: EventService) { }\n\n ngOnInit(): void {\n this.service.registerListener(this);\n }\n\n ngOnDestroy(): void {\n this.service.deregisterListener(this);\n }\n\n start(): void {\n this.showIndicator = true;\n }\n\n complete(): void {\n this.showIndicator = false;\n }\n\n}\n","
\n\n
","import { Injectable } from \"@angular/core\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { User } from \"@shared/model/user\";\nimport { RoleBuilder, RegistryRole, RegistryRoleType, LocaleView } from \"@shared/model/core\";\n\n@Injectable()\nexport class AuthService {\n\n private user: User = {\n loggedIn: false,\n userName: \"\",\n roles: [],\n roleDisplayLabels: [],\n version: \"0\",\n installedLocales: []\n };\n\n constructor(private service: CookieService) {\n let cookie = service.get(\"user\");\n\n if (this.service.check(\"user\") && cookie != null && cookie.length > 0) {\n let cookieData: string = this.service.get(\"user\");\n let cookieDataJSON: any = JSON.parse(cookieData);\n\n this.buildFromCookieJson(cookieDataJSON);\n }\n\n this.loadLocales();\n }\n\n buildFromCookieJson(cookieDataJSON: any) {\n this.user.userName = cookieDataJSON.userName;\n this.buildRolesFromCookie(cookieDataJSON);\n this.user.loggedIn = cookieDataJSON.loggedIn;\n this.user.roleDisplayLabels = cookieDataJSON.roleDisplayLabels;\n this.user.version = cookieDataJSON.version.replaceAll(\"+\", \" \");\n // this.user.installedLocales = cookieDataJSON.installedLocales;\n }\n\n buildRolesFromCookie(cookieDataJSON: any) {\n this.user.roles = [];\n let roles: string[] = cookieDataJSON.roles;\n\n for (let i = 0; i < roles.length; ++i) {\n let role: RegistryRole = RoleBuilder.buildFromRoleName(roles[i]);\n\n if (role != null) {\n this.user.roles.push(role);\n }\n }\n }\n\n isLoggedIn(): boolean {\n return this.user.loggedIn;\n }\n\n afterLogIn(logInResponse: any): void {\n this.buildFromCookieJson(JSON.parse(this.service.get(\"user\")));\n\n this.setLocales(logInResponse.installedLocales);\n this.user.installedLocales = logInResponse.installedLocales;\n }\n\n afterLogOut(): void {\n this.user = null;\n sessionStorage.removeItem(\"locales\");\n }\n\n loadLocales() {\n let storageLocales = window.sessionStorage.getItem(\"locales\");\n\n if (storageLocales != null) {\n this.user.installedLocales = JSON.parse(storageLocales);\n }\n }\n\n setLocales(locales: LocaleView[]) {\n window.sessionStorage.setItem(\"locales\", JSON.stringify(locales));\n }\n\n removeUser(): void {\n this.user = {\n loggedIn: false,\n userName: \"\",\n roles: [],\n roleDisplayLabels: [],\n version: \"0\",\n installedLocales: []\n };\n }\n\n // Legacy Accessors:\n isAdmin(): boolean {\n return this.isSRA() || this.isRA();\n }\n\n isMaintainer(): boolean {\n return this.isSRA() || this.isRM();\n }\n\n isContributer(): boolean {\n return this.isSRA() || this.isRC(false);\n }\n\n isContributerOnly(): boolean {\n return this.isRC(true);\n }\n\n // Used to exactly identify a role. I.e. if we say we need RC, SRA doesn't count.\n hasExactRole(roleType: RegistryRoleType) {\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === roleType) {\n return true;\n }\n }\n\n return false;\n }\n\n isSRA(): boolean {\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === RegistryRoleType.SRA) {\n return true;\n }\n }\n\n return false;\n }\n\n isRA(): boolean {\n if (this.isSRA()) {\n return true;\n }\n\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === RegistryRoleType.RA) {\n return true;\n } else if (role.roleName.indexOf(\"commongeoregistry.RegistryAdministrator\") !== -1 || role.roleName.indexOf(\"cgr.RegistryAdministrator\") !== -1) {\n // Legacy support\n return true;\n }\n }\n }\n\n isRM(): boolean {\n if (this.isSRA()) {\n return true;\n }\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === RegistryRoleType.RM) {\n return true;\n } else if (role.roleName.indexOf(\"commongeoregistry.RegistryMaintainer\") !== -1 || role.roleName.indexOf(\"cgr.RegistryMaintainer\") !== -1) {\n // Legacy support\n return true;\n }\n }\n\n return false;\n }\n\n isOrganizationRA(orgCode: string): boolean {\n if (this.isSRA()) {\n return true;\n }\n\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.orgCode === orgCode && role.type === RegistryRoleType.RA) {\n return true;\n }\n }\n\n return false; // this.isSRA();\n }\n\n isGeoObjectTypeRM(orgCode: string, gotCode: string): boolean {\n if (this.isSRA()) {\n return true;\n }\n\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === RegistryRoleType.RM && role.orgCode === orgCode && role.geoObjectTypeCode === gotCode) {\n return true;\n }\n }\n\n return this.isOrganizationRA(orgCode);\n }\n\n isGeoObjectTypeOrSuperRM(got: { organizationCode: string, superTypeCode?: string, code: string }, allowRoleSuper: boolean = true): boolean {\n if (this.isGeoObjectTypeRM(got.organizationCode, got.code)) {\n return true;\n } else if (got.superTypeCode != null) {\n return this.isGeoObjectTypeRM(got.organizationCode, got.superTypeCode);\n }\n }\n\n isGeoObjectTypeRC(orgCode: string, gotCode: string): boolean {\n if (this.isSRA()) {\n return true;\n }\n\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === RegistryRoleType.RC && role.orgCode === orgCode && role.geoObjectTypeCode === gotCode) {\n return true;\n }\n }\n\n return this.isGeoObjectTypeRM(orgCode, gotCode);\n }\n\n isGeoObjectTypeOrSuperRC(got: { organizationCode: string, superTypeCode?: string, code: string }, allowRoleSuper: boolean = true): boolean {\n if (this.isGeoObjectTypeRC(got.organizationCode, got.code)) {\n return true;\n } else if (got.superTypeCode != null) {\n return this.isGeoObjectTypeRC(got.organizationCode, got.superTypeCode);\n }\n }\n\n isRC(isRCOnly: boolean): boolean {\n if (this.isSRA() && !isRCOnly) {\n return true;\n }\n\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === RegistryRoleType.RC) {\n return true;\n } else if (role.roleName.indexOf(\"commongeoregistry.RegistryContributor\") !== -1 || role.roleName.indexOf(\"cgr.RegistryContributor\") !== -1) {\n // Legacy support\n return true;\n }\n }\n\n return false;\n }\n\n // Returns all organization codes that the current user participates in.\n // If the user is an SRA then this method will return an empty string array.\n getMyOrganizations(): string[] {\n let orgCodes: string[] = [];\n\n for (let i = 0; i < this.user.roles.length; ++i) {\n let role: RegistryRole = this.user.roles[i];\n\n if (role.type === RegistryRoleType.SRA || role.type === RegistryRoleType.RC || role.type === RegistryRoleType.RM || role.type === RegistryRoleType.RA) {\n orgCodes.push(role.orgCode);\n }\n }\n\n return orgCodes;\n }\n\n __getRoleFromRoleName(roleName: string): string {\n let nameArr = roleName.split(\".\");\n\n return nameArr[nameArr.length - 1];\n }\n\n getUsername(): string {\n return this.user.userName;\n }\n\n getRoles(): any {\n return this.user.roles;\n }\n\n getRoleDisplayLabelsArray(): any {\n return this.user.roleDisplayLabels;\n }\n\n getRoleDisplayLabels(): string {\n let str = \"\";\n for (let i = 0; i < this.user.roleDisplayLabels.length; ++i) {\n let displayLabel = this.user.roleDisplayLabels[i];\n\n if (displayLabel === \"Administrator\") {\n continue;\n // It's OK to hardcode to a display label here because the end user can't change it anyway.\n // Is it ideal? No. But sometimes it's better to get software out quicker than to spend forever\n // on something that nobody will ever see.\n }\n\n str = str + displayLabel;\n\n if (i < this.user.roleDisplayLabels.length - 1) {\n str = str + \",\";\n }\n }\n\n return str;\n }\n\n getVersion(): string {\n return this.user.version;\n }\n\n getLocales(): LocaleView[] {\n return this.user.installedLocales;\n }\n\n addLocale(locale: LocaleView): void {\n let exists: boolean = false;\n\n for (let i = 0; i < this.user.installedLocales.length; ++i) {\n if (this.user.installedLocales[i].tag === locale.tag) {\n exists = true;\n this.user.installedLocales[i] = locale;\n }\n }\n\n if (!exists) {\n this.user.installedLocales.push(locale);\n }\n\n this.setLocales(this.user.installedLocales);\n }\n\n removeLocale(locale: LocaleView): void {\n for (let i = 0; i < this.user.installedLocales.length; ++i) {\n if (this.user.installedLocales[i].tag === locale.tag) {\n this.user.installedLocales.splice(i, 1);\n this.setLocales(this.user.installedLocales);\n return;\n }\n }\n\n // eslint-disable-next-line no-console\n console.log(\"Could not remove locale from array because we could not find it.\", locale, this.user.installedLocales);\n }\n\n}\n","import { Component, OnChanges, Input, SimpleChange } from \"@angular/core\";\n\n@Component({\n selector: \"password-strength-bar\",\n templateUrl: \"./password-strength-bar.component.html\",\n styleUrls: [\"./password-strength-bar.component.css\"]\n})\nexport class PasswordStrengthBarComponent implements OnChanges {\n\n @Input() passwordToCheck: string;\n bar0: string;\n bar1: string;\n bar2: string;\n bar3: string;\n bar4: string;\n\n private colors = [\"#F00\", \"#F90\", \"#FF0\", \"#9F0\", \"#0F0\"];\n\n private static measureStrength(pass: string) {\n let score = 0;\n // award every unique letter until 5 repetitions\n let letters = {};\n for (let i = 0; i < pass.length; i++) {\n letters[pass[i]] = (letters[pass[i]] || 0) + 1;\n score += 5.0 / letters[pass[i]];\n }\n // bonus points for mixing it up\n let variations = {\n digits: /\\d/.test(pass),\n lower: /[a-z]/.test(pass),\n upper: /[A-Z]/.test(pass),\n nonWords: /\\W/.test(pass)\n };\n\n let variationCount = 0;\n for (let check in variations) {\n variationCount += (variations[check]) ? 1 : 0;\n }\n score += (variationCount - 1) * 10;\n return Math.trunc(score);\n }\n\n private getColor(score: number) {\n let idx = 0;\n if (score > 90) {\n idx = 4;\n } else if (score > 70) {\n idx = 3;\n } else if (score >= 40) {\n idx = 2;\n } else if (score >= 20) {\n idx = 1;\n }\n return {\n idx: idx + 1,\n col: this.colors[idx]\n };\n }\n\n ngOnChanges(changes: { [propName: string]: SimpleChange }): void {\n let password = changes[\"passwordToCheck\"].currentValue;\n this.setBarColors(5, \"#DDD\");\n if (password) {\n let c = this.getColor(PasswordStrengthBarComponent.measureStrength(password));\n this.setBarColors(c.idx, c.col);\n }\n }\n\n private setBarColors(count, col) {\n for (let _n = 0; _n < count; _n++) {\n this[\"bar\" + _n] = col;\n }\n }\n\n}\n","
\n
    \n
  • \n
  • \n
  • \n
  • \n
  • \n
\n
\n","///\n/// Copyright (c) 2015 TerraFrame, Inc. All rights reserved.\n///\n/// This file is part of Runway SDK(tm).\n///\n/// Runway SDK(tm) is free software: you can redistribute it and/or modify\n/// it under the terms of the GNU Lesser General Public License as\n/// published by the Free Software Foundation, either version 3 of the\n/// License, or (at your option) any later version.\n///\n/// Runway SDK(tm) is distributed in the hope that it will be useful, but\n/// WITHOUT ANY WARRANTY; without even the implied warranty of\n/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n/// GNU Lesser General Public License for more details.\n///\n/// You should have received a copy of the GNU Lesser General Public\n/// License along with Runway SDK(tm). If not, see .\n///\n\nimport { Injectable } from '@angular/core';\nimport { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\n\nimport { Application } from '@shared/model/application';\n\ndeclare var acp: any;\n\n@Injectable()\nexport class HubService {\n\n\tconstructor(private http: HttpClient) { }\n\n\tapplications(): Promise {\n\n\t\tlet headers = new HttpHeaders({\n\t\t\t'Content-Type': 'application/json'\n\t\t});\n\n\t\treturn this.http\n\t\t\t.post(acp + '/menu/applications', { headers: headers })\n\t\t\t.toPromise();\n\t}\n\t\n\toauthGetPublic(id: string): Promise {\n let params: HttpParams = new HttpParams();\n\n if (id)\n {\n params = params.set('id', id)\n }\n\n return this.http\n .get(acp + '/cgr/oauth/get-public', { params: params })\n .toPromise();\n }\n}\n","import { Component, OnInit } from \"@angular/core\";\n\nimport { EventService, IEventListener } from \"@shared/service\";\n\n@Component({\n\n selector: \"message\",\n templateUrl: \"./message.component.html\",\n styles: [\n \".error-container { text-align: center; border-width: 1px; border-color: #8c0000; border-style: solid; color: #8c0000; font-size: 17px; background: white;}\",\n \".message-container { text-align: center; border-width: 1px; border-color: #106828; border-style: solid; margin-left: 10%; margin-right: 10%; color: #106828; }\"\n ]\n})\nexport class MessageComponent implements OnInit, IEventListener {\n\n error: any = null;\n\n message: string = \"\";\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private service: EventService) { }\n\n ngOnInit(): void {\n this.service.registerListener(this);\n }\n\n ngOnDestroy(): void {\n this.service.deregisterListener(this);\n }\n\n start(): void {\n this.error = null;\n }\n\n complete(): void {\n }\n\n onError(error: any): void {\n this.error = error;\n }\n\n onMessage(msg: string): void {\n this.message = msg;\n }\n\n}\n","\n
\n
\n
\n \n
\n
\n
\n

{{message}}

\n
\n
\n
\n
\n
\n \n
\n
\n
\n

{{error.localizedMessage}}

\n

\n
\n
\n
\n
\n"],"sourceRoot":""} \ No newline at end of file