spec-box-tms-sync 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,5 +9,5 @@
9
9
  <style>:root{--tui-duration:.3s;--tui-curve-expressive-standard:cubic-bezier(.4, .1, .2, 1);--tui-curve-expressive-entrance:cubic-bezier(.35, 1.3, .25, 1);--tui-curve-expressive-exit:cubic-bezier(.4, 0, 1, 1);--tui-curve-productive-standard:cubic-bezier(.2, 0, .4, .9);--tui-curve-productive-entrance:cubic-bezier(0, 0, .4, .9);--tui-curve-productive-exit:cubic-bezier(.2, 0, 1, 1)}:root{--tui-shadow-small:0px 5px 20px 0px rgba(0, 0, 0, .1);--tui-shadow-small-hover:0px 14px 42px 0px rgba(0, 0, 0, .12);--tui-shadow-medium:0px 6px 34px 0px rgba(0, 0, 0, .12);--tui-shadow-medium-hover:0px 18px 60px 0px rgba(0, 0, 0, .18);--tui-shadow-popup:0px 8px 28px 0px rgba(0, 0, 0, .16)}:root{--tui-typography-family-text:"Manrope", system-ui, sans-serif;--tui-typography-family-display:"Manrope", system-ui, sans-serif;--tui-font-offset:calc(var(--t-font-offset, 0) * 1px);--tui-font-scale:calc((22 + var(--t-font-offset, 0)) / 22);--tui-typography-heading-h1:bold calc(var(--tui-font-offset) + 3.125rem) / 1.12 var(--tui-typography-family-display);--tui-typography-heading-h2:bold calc(var(--tui-font-offset) + 2.75rem) / calc(48 / 44) var(--tui-typography-family-display);--tui-typography-heading-h3:bold calc(var(--tui-font-offset) + 2.25rem) / calc(40 / 36) var(--tui-typography-family-display);--tui-typography-heading-h4:bold calc(var(--tui-font-offset) + 1.75rem) / calc(32 / 28) var(--tui-typography-family-display);--tui-typography-heading-h5:bold calc(var(--tui-font-offset) + 1.5rem) / calc(28 / 24) var(--tui-typography-family-display);--tui-typography-heading-h6:bold calc(var(--tui-font-offset) + 1.25rem) / calc(24 / 20) var(--tui-typography-family-display);--tui-typography-body-l:normal calc(var(--tui-font-offset) + 1.0625rem) / calc(28 / 17) var(--tui-typography-family-text);--tui-typography-body-m:normal calc(var(--tui-font-offset) + 1rem) / 1.5 var(--tui-typography-family-text);--tui-typography-body-s:normal calc(var(--tui-font-offset) + .875rem) / calc(20 / 14) var(--tui-typography-family-text);--tui-typography-body-xs:normal calc(var(--tui-font-offset) + .75rem) / calc(16 / 12) var(--tui-typography-family-text);--tui-typography-ui-l:normal calc(var(--tui-font-offset) + 1.0625rem) / calc(24 / 17) var(--tui-typography-family-text);--tui-typography-ui-m:normal calc(var(--tui-font-offset) + 1rem) / 1.25 var(--tui-typography-family-text);--tui-typography-ui-s:normal calc(var(--tui-font-offset) + .875rem) / calc(16 / 14) var(--tui-typography-family-text);--tui-typography-ui-xs:normal calc(var(--tui-font-offset) + .75rem) / 1.25 var(--tui-typography-family-text);--tui-typography-ui-2xs:normal calc(var(--tui-font-offset) + .6875rem) / calc(12 / 11) var(--tui-typography-family-text);--tui-radius-xs:.25rem;--tui-radius-s:.5rem;--tui-radius-m:.625rem;--tui-radius-l:.75rem;--tui-radius-xl:1.5rem;--tui-height-xs:1.5rem;--tui-height-s:2rem;--tui-height-m:2.75rem;--tui-height-l:3.5rem;--tui-padding-s:.625rem;--tui-padding-m:.75rem;--tui-padding-l:1rem;--tui-stroke-width:.125rem;--tui-duration:.3s;--tui-disabled-opacity:.56;--tui-lh:1.4em;--tui-inline-start:left;--tui-inline-end:right;--tui-inline:1;--tui-duration-slowest:calc(var(--tui-duration) / .429);--tui-duration-slow:calc(var(--tui-duration) / .6);--tui-duration-fast:calc(var(--tui-duration) / 2);--tui-duration-fastest:calc(var(--tui-duration) / 4)}@supports (font-size: 1lh){:root{--tui-lh:1lh}}@media screen{:root{--tui-background-base:#fff;--tui-background-base-alt:#f6f6f6;--tui-background-neutral-1:rgba(0, 0, 0, .04);--tui-background-neutral-1-hover:rgba(0, 0, 0, .08);--tui-background-neutral-1-pressed:rgba(0, 0, 0, .12);--tui-background-neutral-2:rgba(0, 0, 0, .08);--tui-background-neutral-2-hover:rgba(0, 0, 0, .1);--tui-background-neutral-2-pressed:rgba(0, 0, 0, .14);--tui-background-accent-1:#526ed3;--tui-background-accent-1-hover:#6c86e2;--tui-background-accent-1-pressed:#314692;--tui-background-accent-2:#ff7043;--tui-background-accent-2-hover:#ff9a94;--tui-background-accent-2-pressed:#e7716a;--tui-background-accent-opposite:#000;--tui-background-accent-opposite-hover:#333;--tui-background-accent-opposite-pressed:#808080;--tui-background-elevation-1:#fff;--tui-background-elevation-2:#fff;--tui-background-elevation-3:#fff;--tui-service-autofill-background:#fff5c0;--tui-service-selection-background:rgba(112, 182, 246, .12);--tui-service-backdrop:rgba(0, 0, 0, .75);--tui-border-normal:rgba(0, 0, 0, .1);--tui-border-hover:rgba(0, 0, 0, .16);--tui-border-focus:rgba(51, 51, 51, .64);--tui-status-negative:#ff291a;--tui-status-negative-pale:rgba(245, 34, 34, .08);--tui-status-negative-pale-hover:rgba(245, 34, 34, .16);--tui-status-positive:#4ac99b;--tui-status-positive-pale:rgba(74, 201, 155, .12);--tui-status-positive-pale-hover:rgba(74, 201, 155, .24);--tui-status-warning:#ffc700;--tui-status-warning-pale:rgba(255, 199, 0, .12);--tui-status-warning-pale-hover:rgba(255, 199, 0, .24);--tui-status-info:#70b6f6;--tui-status-info-pale:rgba(112, 182, 246, .12);--tui-status-info-pale-hover:rgba(112, 182, 246, .24);--tui-status-neutral:#79818c;--tui-text-primary:#1b1f3b;--tui-text-secondary:rgba(27, 31, 59, .65);--tui-text-tertiary:rgba(27, 31, 59, .4);--tui-text-primary-on-accent-1:#fff;--tui-text-primary-on-accent-2:#fff;--tui-text-action:#4c66c3;--tui-text-action-hover:#6c86e2;--tui-text-positive:#3aa981;--tui-text-positive-hover:#7ac5aa;--tui-text-negative:#ff291a;--tui-text-negative-hover:#ff4d4d;--tui-chart-categorical-00:var(--tui-background-accent-1);--tui-chart-categorical-01:#ea97c4;--tui-chart-categorical-02:#a0c5df;--tui-chart-categorical-03:#fee797;--tui-chart-categorical-04:#b0b0b0;--tui-chart-categorical-05:#e29398;--tui-chart-categorical-06:#b8474e;--tui-chart-categorical-07:#fcc068;--tui-chart-categorical-08:#ff8a00;--tui-chart-categorical-09:#dab3f9;--tui-chart-categorical-10:#7b439e;--tui-chart-categorical-11:#8dda71;--tui-chart-categorical-12:#fcbb14;--tui-chart-categorical-13:#a8cef1;--tui-chart-categorical-14:#bd65a4;--tui-chart-categorical-15:#7fd7cc;--tui-chart-categorical-16:#2fad96;--tui-chart-categorical-17:#d4aca2;--tui-chart-categorical-18:#9d6f64;--tui-chart-categorical-19:#d2e9a2;--tui-chart-categorical-20:#aadc42;--tui-chart-categorical-21:#3682db;--tui-chart-categorical-22:#34b41f;--tui-shadow-small:0 .25rem 1.25rem rgba(0, 0, 0, .1);--tui-shadow-small-hover:0 1rem 2.5rem rgba(0, 0, 0, .14);--tui-shadow-medium:0 .375rem 2rem rgba(0, 0, 0, .12);--tui-shadow-medium-hover:0 1.25rem 4rem rgba(0, 0, 0, .18);--tui-shadow-popup:0 1.25rem 3rem rgba(0, 0, 0, .2)}}@media print{:root{color-scheme:light;--tui-background-base:#fff;--tui-background-base-alt:#f6f6f6;--tui-background-neutral-1:rgba(0, 0, 0, .04);--tui-background-neutral-1-hover:rgba(0, 0, 0, .08);--tui-background-neutral-1-pressed:rgba(0, 0, 0, .12);--tui-background-neutral-2:rgba(0, 0, 0, .08);--tui-background-neutral-2-hover:rgba(0, 0, 0, .1);--tui-background-neutral-2-pressed:rgba(0, 0, 0, .14);--tui-background-accent-1:#526ed3;--tui-background-accent-1-hover:#6c86e2;--tui-background-accent-1-pressed:#314692;--tui-background-accent-2:#ff7043;--tui-background-accent-2-hover:#ff9a94;--tui-background-accent-2-pressed:#e7716a;--tui-background-accent-opposite:#000;--tui-background-accent-opposite-hover:#333;--tui-background-accent-opposite-pressed:#808080;--tui-background-elevation-1:#fff;--tui-background-elevation-2:#fff;--tui-background-elevation-3:#fff;--tui-service-autofill-background:#fff5c0;--tui-service-selection-background:rgba(112, 182, 246, .12);--tui-service-backdrop:rgba(0, 0, 0, .75);--tui-border-normal:rgba(0, 0, 0, .1);--tui-border-hover:rgba(0, 0, 0, .16);--tui-border-focus:rgba(51, 51, 51, .64);--tui-status-negative:#ff291a;--tui-status-negative-pale:rgba(245, 34, 34, .08);--tui-status-negative-pale-hover:rgba(245, 34, 34, .16);--tui-status-positive:#4ac99b;--tui-status-positive-pale:rgba(74, 201, 155, .12);--tui-status-positive-pale-hover:rgba(74, 201, 155, .24);--tui-status-warning:#ffc700;--tui-status-warning-pale:rgba(255, 199, 0, .12);--tui-status-warning-pale-hover:rgba(255, 199, 0, .24);--tui-status-info:#70b6f6;--tui-status-info-pale:rgba(112, 182, 246, .12);--tui-status-info-pale-hover:rgba(112, 182, 246, .24);--tui-status-neutral:#79818c;--tui-text-primary:#1b1f3b;--tui-text-secondary:rgba(27, 31, 59, .65);--tui-text-tertiary:rgba(27, 31, 59, .4);--tui-text-primary-on-accent-1:#fff;--tui-text-primary-on-accent-2:#fff;--tui-text-action:#4c66c3;--tui-text-action-hover:#6c86e2;--tui-text-positive:#3aa981;--tui-text-positive-hover:#7ac5aa;--tui-text-negative:#ff291a;--tui-text-negative-hover:#ff4d4d;--tui-chart-categorical-00:var(--tui-background-accent-1);--tui-chart-categorical-01:#ea97c4;--tui-chart-categorical-02:#a0c5df;--tui-chart-categorical-03:#fee797;--tui-chart-categorical-04:#b0b0b0;--tui-chart-categorical-05:#e29398;--tui-chart-categorical-06:#b8474e;--tui-chart-categorical-07:#fcc068;--tui-chart-categorical-08:#ff8a00;--tui-chart-categorical-09:#dab3f9;--tui-chart-categorical-10:#7b439e;--tui-chart-categorical-11:#8dda71;--tui-chart-categorical-12:#fcbb14;--tui-chart-categorical-13:#a8cef1;--tui-chart-categorical-14:#bd65a4;--tui-chart-categorical-15:#7fd7cc;--tui-chart-categorical-16:#2fad96;--tui-chart-categorical-17:#d4aca2;--tui-chart-categorical-18:#9d6f64;--tui-chart-categorical-19:#d2e9a2;--tui-chart-categorical-20:#aadc42;--tui-chart-categorical-21:#3682db;--tui-chart-categorical-22:#34b41f;--tui-shadow-small:0 .25rem 1.25rem rgba(0, 0, 0, .1);--tui-shadow-small-hover:0 1rem 2.5rem rgba(0, 0, 0, .14);--tui-shadow-medium:0 .375rem 2rem rgba(0, 0, 0, .12);--tui-shadow-medium-hover:0 1.25rem 4rem rgba(0, 0, 0, .18);--tui-shadow-popup:0 1.25rem 3rem rgba(0, 0, 0, .2)}}html,body{height:100%}*{box-sizing:border-box}</style><link rel="stylesheet" href="styles-V4EGRM6A.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-V4EGRM6A.css"></noscript></head>
10
10
  <body>
11
11
  <app-root></app-root>
12
- <link rel="modulepreload" href="chunk-AXJONTBG.js"><link rel="modulepreload" href="chunk-IFGU66OU.js"><script src="main-7D6PSQM6.js" type="module"></script></body>
12
+ <link rel="modulepreload" href="chunk-AXJONTBG.js"><link rel="modulepreload" href="chunk-IFGU66OU.js"><script src="main-D7M4DTNQ.js" type="module"></script></body>
13
13
  </html>
@@ -106,5 +106,5 @@ Please report this to https://github.com/markedjs/marked.`,e){let i="<p>An error
106
106
  | | | |
107
107
  `,Qs=class e{editor=f.required();heading(){bo("# ",this.editor())}bold(){Qi("**","**",this.editor())}italic(){Qi("_","_",this.editor())}strikethrough(){Qi("~","~",this.editor())}inlineCode(){Qi("`","`",this.editor())}codeBlock(){Qi("\n```\n","\n```\n",this.editor())}link(){Qi("[","](https://)",this.editor())}image(){Qi("![","](https://)",this.editor())}blockquote(){Ys("> ",this.editor())}horizontalRuler(){bo(`
108
108
  ---
109
- `,this.editor())}ul(){Ys("- ",this.editor())}ol(){nm(this.editor())}checkList(){Ys("- [ ] ",this.editor())}indentIncrease(){bo(" ",this.editor())}indentDecrease(){im(" ",this.editor())}table(){bo(zw,this.editor())}undo(){this.editor().trigger(null,"undo",null)}redo(){this.editor().trigger(null,"redo",null)}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=m({type:e,selectors:[["markdown-editor-toolbar"]],inputs:{editor:[1,"editor"]},features:[O([rt({size:"s"})])],decls:43,vars:0,consts:[["iconStart","@tui.undo","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.redo","appearance","secondary","tuiIconButton","","type","button",3,"click"],[1,"tui-space_left-2"],["iconStart","@tui.heading","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.bold","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.italic","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.strikethrough","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.code","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.file-json-2","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.link","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.image","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.minus","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.text-quote","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.list","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.list-ordered","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.list-check","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.indent-increase","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.indent-decrease","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.table","appearance","secondary","tuiIconButton","","type","button",3,"click"]],template:function(t,i){t&1&&(h(0,"button",0),k("click",function(){return i.undo()}),y(1," Undo "),p(),h(2,"button",1),k("click",function(){return i.redo()}),y(3," Redo "),p(),A(4,"span",2),h(5,"button",3),k("click",function(){return i.heading()}),y(6," Heading "),p(),h(7,"button",4),k("click",function(){return i.bold()}),y(8," Bold "),p(),h(9,"button",5),k("click",function(){return i.italic()}),y(10," Italic "),p(),h(11,"button",6),k("click",function(){return i.strikethrough()}),y(12," Strikethrough "),p(),A(13,"span",2),h(14,"button",7),k("click",function(){return i.inlineCode()}),y(15," Code "),p(),h(16,"button",8),k("click",function(){return i.codeBlock()}),y(17," Code block "),p(),A(18,"span",2),h(19,"button",9),k("click",function(){return i.link()}),y(20," Link "),p(),h(21,"button",10),k("click",function(){return i.image()}),y(22," Image "),p(),h(23,"button",11),k("click",function(){return i.horizontalRuler()}),y(24," Horizontal ruler "),p(),A(25,"span",2),h(26,"button",12),k("click",function(){return i.blockquote()}),y(27," Blockquote "),p(),A(28,"span",2),h(29,"button",13),k("click",function(){return i.ul()}),y(30," List unordered "),p(),h(31,"button",14),k("click",function(){return i.ol()}),y(32," List ordered "),p(),h(33,"button",15),k("click",function(){return i.checkList()}),y(34," Check list "),p(),A(35,"span",2),h(36,"button",16),k("click",function(){return i.indentIncrease()}),y(37," Indent increase "),p(),h(38,"button",17),k("click",function(){return i.indentDecrease()}),y(39," Indent decrease "),p(),A(40,"span",2),h(41,"button",18),k("click",function(){return i.table()}),y(42," Table "),p())},dependencies:[Jt],styles:["[_nghost-%COMP%]{display:flex;gap:.2em;padding:.5em;border-bottom:1px solid var(--tui-border-normal);margin-bottom:.5em}"]})};function Lw(e,n){e&1&&A(0,"markdown-editor-toolbar",0),e&2&&C("editor",n)}var Xs=class e{completionProviderService=l(Tr,{optional:!0});editor=E(null);value=f.required();valueChange=It();editValue=E("");editorOptions={theme:"vs-dark",language:"yaml",minimap:{enabled:!1},automaticLayout:!0};constructor(){Q(()=>{let n=this.value();Y(()=>this.editValue.set(n))}),Q(()=>{let n=this.editValue();Y(()=>this.valueChange.emit(n))})}initEditor(n){this.editor.set(n),this.completionProviderService?.initialize()}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=m({type:e,selectors:[["markdown-editor"]],inputs:{value:[1,"value"]},outputs:{valueChange:"valueChange"},decls:2,vars:3,consts:[[3,"editor"],[1,"editor",3,"ngModelChange","onInit","ngModel","options"]],template:function(t,i){if(t&1&&(S(0,Lw,1,1,"markdown-editor-toolbar",0),h(1,"ngx-monaco-editor",1),on("ngModelChange",function(o){return rn(i.editValue,o)||(i.editValue=o),o}),k("onInit",function(o){return i.initEditor(o)}),p(),en()),t&2){let r;I((r=i.editor())?0:-1,r),d(),nn("ngModel",i.editValue),C("options",i.editorOptions),tn()}},dependencies:[em,Jf,Pi,Vn,Lt,Qs],styles:["[_nghost-%COMP%]{position:relative;height:100%;display:flex;flex-direction:column;border:1px solid var(--tui-border-normal);border-radius:.5em}.editor[_ngcontent-%COMP%]{flex-grow:1}"]})};var Ks=class e{mdCompletionProviderService=l(Tr);projectService=l(Pt);constructor(){Q(()=>{if(this.projectService.projectResource.hasValue()){let t=this.projectService.projectResource.value().features.map(i=>({label:i.code,description:i.title,insertText:i.code}));this.mdCompletionProviderService.register(t,["$"],/\s(\$([A-Za-z][A-Za-z\d-]*)?)$/)}})}static \u0275fac=function(t){return new(t||e)};static \u0275prov=we({token:e,factory:e.\u0275fac})};function Vw(e,n){if(e&1){let t=Ee();h(0,"markdown-editor",1),k("valueChange",function(r){ve(t);let o=b();return ye(o.updateYaml(r))}),p()}if(e&2){let t=b();C("value",t.editYaml())}}var Js=class e{notifications=l(ch);featureCode=f.required();featureYamlResource=Ri.text(()=>`/api/features/${this.featureCode()}/yaml`);featureYaml=T(()=>this.featureYamlResource.hasValue()?this.featureYamlResource.value():null);featureYamlHash=T(()=>this.featureYamlResource.hasValue()?this.featureYamlResource.headers()?.get("ETag")??null:null);hasChanges=T(()=>this.featureYaml()&&this.featureYaml()!==this.editYaml());editYaml=zo(()=>{let n=this.featureYaml();if(n==null)throw new Error("Yaml should be defined");return n});canClose=It();constructor(){l(Ks)}updateYaml(n){this.editYaml.set(n)}async saveChanges(){let n=this.featureYamlHash();if(!n)throw new Error("Yaml HASH is undefined");let t=await fetch(`/api/features/${this.featureCode()}/yaml`,{method:"PUT",body:this.editYaml(),headers:{"Content-Type":"application/yaml",charset:"utf-8","If-Match":n}});t.status===200?(this.notifications.open("\u0421\u043F\u0435\u0446\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0430",{appearance:"positive"}).subscribe(),this.canClose.emit()):t.status===409?this.notifications.open("\u041D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0441\u043F\u0435\u0446\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044E, \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439",{appearance:"negative"}).subscribe():this.notifications.open("\u041E\u0448\u0438\u0431\u043A\u0430 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F \u0441\u043F\u0435\u0446\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u0438",{appearance:"negative"}).subscribe()}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=m({type:e,selectors:[["feature-editor"]],inputs:{featureCode:[1,"featureCode"]},outputs:{canClose:"canClose"},decls:1,vars:1,consts:[[3,"value"],[3,"valueChange","value"]],template:function(t,i){t&1&&S(0,Vw,1,1,"markdown-editor",0),t&2&&I(i.featureYaml()!=null?0:-1)},dependencies:[Xs],styles:["[_nghost-%COMP%]{display:contents}"]})};var Cc=(e,n)=>n.code,bc=(e,n)=>n.groupTitle+n.assertion.title;function Bw(e,n){if(e&1&&(h(0,"span",4),y(1),p()),e&2){let t=b(2);d(),R("\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 +",t.addedAssertions())}}function Uw(e,n){if(e&1&&(h(0,"span",4),y(1),p()),e&2){let t=b(2);d(),R("\u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044B +",t.addedAttributes())}}function Hw(e,n){if(e&1&&(h(0,"span",5),y(1),p()),e&2){let t=b(2);d(),R("\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 \u2212",t.removedAssertions())}}function jw(e,n){if(e&1&&(h(0,"span",5),y(1),p()),e&2){let t=b(2);d(),R("\u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044B \u2212",t.removedAttributes())}}function $w(e,n){if(e&1&&(h(0,"span",6),y(1),p()),e&2){let t=b(2);d(),R("\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u044B: ",t.changedAssertions())}}function Ww(e,n){if(e&1&&(h(0,"span",6),y(1),p()),e&2){let t=b(2);d(),R("\u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044B \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u044B: ",t.changedAttributes())}}function Gw(e,n){e&1&&(h(0,"span",6),y(1,"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A \u0438\u0437\u043C\u0435\u043D\u0451\u043D"),p())}function qw(e,n){e&1&&(h(0,"span",6),y(1,"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043E"),p())}function Zw(e,n){if(e&1&&(h(0,"section",8)(1,"h3"),y(2,"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A"),p(),h(3,"div",9),y(4),p(),h(5,"div",10),y(6),p()()),e&2){let t=b(),i=b();d(4),Je(t.title),d(2),Je(i.feature().title)}}function Yw(e,n){if(e&1&&A(0,"markdown",11),e&2){let t=b(2);C("value",t.description)}}function Qw(e,n){e&1&&y(0," - ")}function Xw(e,n){if(e&1&&A(0,"markdown",11),e&2){let t=b(3);C("value",t.feature().description)}}function Kw(e,n){e&1&&y(0," - ")}function Jw(e,n){if(e&1&&(h(0,"section",8)(1,"h3"),y(2,"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435"),p(),h(3,"div",9),S(4,Yw,1,1,"markdown",11)(5,Qw,1,0),p(),h(6,"div",10),S(7,Xw,1,1,"markdown",11)(8,Kw,1,0),p()()),e&2){let t=b(),i=b();d(4),I(t.description?4:5),d(3),I(i.feature().description?7:8)}}function e1(e,n){if(e&1&&(h(0,"article",12)(1,"h4"),y(2),p(),h(3,"div",10),y(4),p()()),e&2){let t=n.$implicit;d(2),Je(t.code),d(2),ui("+ ",t.code,": ",t.values.join(", "))}}function t1(e,n){if(e&1&&(h(0,"article",12)(1,"h4"),y(2),p(),h(3,"div",9),y(4),p(),h(5,"div",10),y(6),p()()),e&2){let t=n.$implicit;d(2),Je(t.code),d(2),ui("\u2212 ",t.code,": ",t.origin.join(", ")),d(2),ui("+ ",t.code,": ",t.values.join(", "))}}function i1(e,n){if(e&1&&(h(0,"article",12)(1,"h4"),y(2),p(),h(3,"div",9),y(4),p()()),e&2){let t=n.$implicit;d(2),Je(t.code),d(2),ui("\u2212 ",t.code,": ",t.values.join(", "))}}function n1(e,n){if(e&1&&(h(0,"section",8)(1,"h3"),y(2,"\u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044B"),p(),ae(3,e1,5,3,"article",12,Cc),ae(5,t1,7,5,"article",12,Cc),ae(7,i1,5,3,"article",12,Cc),p()),e&2){let t=b(2);d(3),se(t.addedAttributeItems()),d(2),se(t.changedAttributeItems()),d(2),se(t.removedAttributeItems())}}function r1(e,n){if(e&1&&(y(0," \u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435: "),h(1,"div",10),A(2,"markdown",11),p()),e&2){let t=b().$implicit;d(2),C("value",t.assertion.description)}}function o1(e,n){if(e&1&&(h(0,"article",12)(1,"h4"),y(2),p(),h(3,"div",10),A(4,"markdown",11),p(),S(5,r1,3,1),p()),e&2){let t=n.$implicit;d(2),R("",t.groupTitle,":"),d(2),C("value",t.assertion.title),d(),I(t.assertion.description?5:-1)}}function a1(e,n){if(e&1&&A(0,"markdown",11),e&2){let t=b(2).$implicit;C("value",t.origin.description)}}function s1(e,n){e&1&&y(0," - ")}function l1(e,n){if(e&1&&A(0,"markdown",11),e&2){let t=b(2).$implicit;C("value",t.assertion.description)}}function u1(e,n){e&1&&y(0," - ")}function c1(e,n){if(e&1&&(y(0," \u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435: "),h(1,"div",9),S(2,a1,1,1,"markdown",11)(3,s1,1,0),p(),h(4,"div",10),S(5,l1,1,1,"markdown",11)(6,u1,1,0),p()),e&2){let t=b().$implicit;d(2),I(t.origin.description?2:3),d(3),I(t.assertion.description?5:6)}}function d1(e,n){if(e&1&&(h(0,"article",12)(1,"h4"),y(2),p(),A(3,"markdown",11),S(4,c1,7,2),p()),e&2){let t=n.$implicit;d(2),R("",t.groupTitle,":"),d(),C("value",t.assertion.title),d(),I(t.origin.description!==t.assertion.description?4:-1)}}function p1(e,n){if(e&1&&(h(0,"article",12)(1,"h4"),y(2),p(),A(3,"markdown",11),h(4,"div",9),y(5),p()()),e&2){let t=n.$implicit;d(2),R("",t.groupTitle,":"),d(),C("value",t.assertion.title),d(2),R(" \u2212 ",t.assertion.description||t.assertion.title," ")}}function h1(e,n){if(e&1&&(h(0,"section",8)(1,"h3"),y(2,"\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0438"),p(),ae(3,o1,6,3,"article",12,bc),ae(5,d1,5,3,"article",12,bc),ae(7,p1,6,3,"article",12,bc),p()),e&2){let t=b(2);d(3),se(t.addedAssertionItems()),d(2),se(t.changedAssertionItems()),d(2),se(t.removedAssertionItems())}}function f1(e,n){if(e&1&&(h(0,"div",3),S(1,Bw,2,1,"span",4),S(2,Uw,2,1,"span",4),S(3,Hw,2,1,"span",5),S(4,jw,2,1,"span",5),S(5,$w,2,1,"span",6),S(6,Ww,2,1,"span",6),S(7,Gw,2,0,"span",6),S(8,qw,2,0,"span",6),p(),h(9,"div",7),S(10,Zw,7,2,"section",8),S(11,Jw,9,2,"section",8),S(12,n1,9,0,"section",8),S(13,h1,9,0,"section",8),p()),e&2){let t=b();d(),I(t.addedAssertions()?1:-1),d(),I(t.addedAttributes()?2:-1),d(),I(t.removedAssertions()?3:-1),d(),I(t.removedAttributes()?4:-1),d(),I(t.changedAssertions()?5:-1),d(),I(t.changedAttributes()?6:-1),d(),I(t.titleChanged()?7:-1),d(),I(t.descriptionChanged()?8:-1),d(2),I(t.titleChanged()?10:-1),d(),I(t.descriptionChanged()?11:-1),d(),I(t.addedAttributes()||t.changedAttributes()||t.removedAttributes()?12:-1),d(),I(t.addedAssertions()||t.changedAssertions()||t.removedAssertions()?13:-1)}}var Dr=e=>new Map(e.groups.flatMap(n=>n.assertions.map(t=>[`${n.title}\0${t.title}`,{groupTitle:n.title,assertion:t}]))),el=class e{feature=f.required();origin=f.required();shortOriginCommit=T(()=>this.origin().commit.slice(0,7));originFeatureResource=Ri(()=>`/api/features/${this.feature().code}?revision=${this.origin().commit}`);originFeature=T(()=>this.originFeatureResource.hasValue()?this.originFeatureResource.value():null);addedAssertionItems=T(()=>{let n=this.originFeature();if(!n)return[];let t=Dr(n);return[...Dr(this.feature()).entries()].filter(([i])=>!t.has(i)).map(([,i])=>i)});removedAssertionItems=T(()=>{let n=this.originFeature();if(!n)return[];let t=Dr(this.feature());return[...Dr(n).entries()].filter(([i])=>!t.has(i)).map(([,i])=>i)});changedAssertionItems=T(()=>{let n=this.originFeature();if(!n)return[];let t=Dr(n);return[...Dr(this.feature()).values()].flatMap(i=>{let r=t.get(`${i.groupTitle}\0${i.assertion.title}`);return!r||i.assertion.description===r.assertion.description?[]:[$(x({},i),{origin:r.assertion})]})});addedAttributeItems=T(()=>{let n=this.originFeature();return n?Object.entries(this.feature().attributes).filter(([t])=>!(t in n.attributes)).map(([t,i])=>({code:t,values:i})):[]});removedAttributeItems=T(()=>{let n=this.originFeature();return n?Object.entries(n.attributes).filter(([t])=>!(t in this.feature().attributes)).map(([t,i])=>({code:t,values:i})):[]});changedAttributeItems=T(()=>{let n=this.originFeature();return n?Object.entries(this.feature().attributes).flatMap(([t,i])=>{let r=n.attributes[t];return!r||JSON.stringify(i)===JSON.stringify(r)?[]:[{code:t,values:i,origin:r}]}):[]});addedAssertions=T(()=>this.addedAssertionItems().length);removedAssertions=T(()=>this.removedAssertionItems().length);changedAssertions=T(()=>this.changedAssertionItems().length);addedAttributes=T(()=>this.addedAttributeItems().length);removedAttributes=T(()=>this.removedAttributeItems().length);changedAttributes=T(()=>this.changedAttributeItems().length);titleChanged=T(()=>{let n=this.originFeature();return n!==null&&n.title!==this.feature().title});descriptionChanged=T(()=>{let n=this.originFeature();return n!==null&&n.description!==this.feature().description});static \u0275fac=function(t){return new(t||e)};static \u0275cmp=m({type:e,selectors:[["feature-compare"]],inputs:{feature:[1,"feature"],origin:[1,"origin"]},decls:15,vars:9,consts:[[1,"origin"],[1,"origin-label"],[1,"origin-meta"],["aria-label","\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439",1,"statistics"],["appearance","positive","tuiBadge",""],["appearance","negative","tuiBadge",""],["appearance","warning","tuiBadge",""],["aria-label","\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F",1,"changes"],[1,"part"],[1,"diff-line","removed"],[1,"diff-line","added"],[3,"value"],[1,"change-item"]],template:function(t,i){if(t&1&&(h(0,"section",0)(1,"div")(2,"div",1),y(3,"\u0421\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u0435 \u0441 \u0432\u0435\u0440\u0441\u0438\u0435\u0439"),p(),h(4,"div"),y(5),p()(),h(6,"div",2)(7,"code"),y(8),p(),h(9,"span"),y(10),p(),h(11,"time"),y(12),ci(13,"date"),p()()(),S(14,f1,14,12)),t&2){let r;d(5),Je(i.origin().message),d(3),Je(i.shortOriginCommit()),d(2),Je(i.origin().author),d(),j("datetime",i.origin().date),d(),Je(No(13,6,i.origin().date,"dd.MM.yyyy HH:mm")),d(2),I((r=i.originFeature())?14:-1,r)}},dependencies:[br,Yi,Bo],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;padding:0 2em;width:100%;min-height:0;overflow-x:hidden}.origin[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-bottom:.75rem}.origin-label[_ngcontent-%COMP%], .origin-meta[_ngcontent-%COMP%]{color:var(--tui-text-secondary);font:var(--tui-typography-body-xs)}.origin-meta[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem}.statistics[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.5rem}.changes[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%;overflow:hidden;gap:1rem}.part[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem;border-top:1px solid var(--tui-border-normal);padding-top:.75rem}.part[_ngcontent-%COMP%] h3[_ngcontent-%COMP%], .part[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{margin:0}.change-item[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem}.diff-line[_ngcontent-%COMP%]{margin-left:2em;padding:.375rem .5rem;border-inline-start:.25rem solid var(--tui-border-normal);background:var(--tui-background-neutral-1)}.diff-line.added[_ngcontent-%COMP%]{border-color:var(--tui-status-positive);background:var(--tui-status-positive-pale)}.diff-line.removed[_ngcontent-%COMP%]{border-color:var(--tui-status-negative);background:var(--tui-status-negative-pale)}"]})};function m1(e,n){if(e&1&&A(0,"tui-data-list-wrapper",4),e&2){let t=b(),i=lt(4);C("items",t.featureHistory())("itemContent",i)}}function g1(e,n){if(e&1&&(h(0,"div",5)(1,"div"),y(2),p(),h(3,"div",6)(4,"span"),y(5),p(),h(6,"span"),y(7),ci(8,"date"),p()()()),e&2){let t=n.$implicit;d(2),R(" ",t.message," "),d(3),R(" ",t.author," "),d(2),R(" ",No(8,3,t.date,"dd.MM.yyyy HH:mm")," ")}}var tl=class e{featureCode=f.required();featureHistoryResource=Ri(()=>`/api/features/${this.featureCode()}/history`);featureHistory=T(()=>this.featureHistoryResource.hasValue()?this.featureHistoryResource.value():null);value=Mt(null);static \u0275fac=function(t){return new(t||e)};static \u0275cmp=m({type:e,selectors:[["feature-history-selector"]],inputs:{featureCode:[1,"featureCode"],value:[1,"value"]},outputs:{value:"valueChange"},features:[O([ya({stringify:E(n=>n.message),identityMatcher:E((n,t)=>n.commit===t.commit)})])],decls:5,vars:2,consts:[["content",""],["iconStart","@tui.git-compare-arrows","tuiChevron","","tuiTextfieldSize","s",1,"history-selector",3,"tuiTextfieldCleaner"],["placeholder","\u0422\u0435\u043A\u0443\u0449\u0430\u044F \u0432\u0435\u0440\u0441\u0438\u044F","tuiSelect","",3,"ngModelChange","ngModel"],[3,"items","itemContent",4,"tuiDropdown"],[3,"items","itemContent"],[1,"history-item"],[1,"caption"]],template:function(t,i){if(t&1){let r=Ee();h(0,"tui-textfield",1)(1,"input",2),on("ngModelChange",function(a){return ve(r),rn(i.value,a)||(i.value=a),ye(a)}),p(),en(),z(2,m1,1,2,"tui-data-list-wrapper",3),p(),z(3,g1,9,6,"ng-template",null,0,di)}t&2&&(C("tuiTextfieldCleaner",!0),d(),nn("ngModel",i.value),tn())},dependencies:[Pi,Ln,Vn,Lt,Cr,Os,Es,ut,tr,vn,Bo],styles:["[_nghost-%COMP%]{display:contents}.history-selector[_ngcontent-%COMP%]{width:40em}.history-item[_ngcontent-%COMP%]{display:flex;flex-direction:column;flex-grow:1}.history-item[_ngcontent-%COMP%] .caption[_ngcontent-%COMP%]{display:flex;justify-content:space-between;color:var(--tui-text-secondary);font:var(--tui-typography-body-xs)}"]})};var v1=["editor"];function y1(e,n){if(e&1){let t=Ee();h(0,"button",8),k("click",function(){ve(t);let r=b(3);return ye(r.enterEditing())}),y(1,"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C"),p()}}function _1(e,n){if(e&1){let t=Ee();h(0,"button",9),k("click",function(){ve(t);let r=b(3);return ye(r.exitEditing())}),y(1," \u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C "),p(),h(2,"button",10),k("click",function(){ve(t);let r=b(3);return ye(r.saveChanges())}),y(3," \u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C "),p()}if(e&2){let t=b(3);d(2),C("disabled",!t.hasChanges())}}function C1(e,n){if(e&1&&S(0,y1,2,0,"button",4)(1,_1,4,1),e&2){let t=b(2);I(t.editing()?1:0)}}function b1(e,n){if(e&1){let t=Ee();h(0,"button",8),k("click",function(){ve(t);let r=b(2);return ye(r.compareWith.set(null))}),y(1,"\u0412\u044B\u0439\u0442\u0438 \u0438\u0437 \u0441\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u044F"),p()}}function w1(e,n){if(e&1&&(h(0,"div",7)(1,"tui-scrollbar"),A(2,"feature-compare",11),p()()),e&2){let t=b();d(2),C("feature",t)("origin",n)}}function T1(e,n){if(e&1){let t=Ee();h(0,"div",12)(1,"feature-editor",13,0),k("canClose",function(){ve(t);let r=b(3);return ye(r.exitEditing())}),p()()}if(e&2){let t=b(2);d(),C("featureCode",t.code)}}function x1(e,n){if(e&1&&(h(0,"div",7)(1,"tui-scrollbar"),A(2,"feature-content",14),p()()),e&2){let t=b(2);d(2),C("feature",t)}}function D1(e,n){if(e&1&&S(0,T1,3,1,"div",12)(1,x1,3,1,"div",7),e&2){let t=b(2);I(t.editing()?0:1)}}function S1(e,n){if(e&1){let t=Ee();h(0,"div",2)(1,"h2"),y(2),p(),h(3,"div",3),S(4,C1,2,1)(5,b1,2,0,"button",4),p()(),h(6,"div",5)(7,"div")(8,"b"),y(9,"\u041A\u043E\u0434:"),p(),h(10,"tui-copy"),y(11),p()(),h(12,"feature-history-selector",6),k("valueChange",function(r){ve(t);let o=b();return ye(o.compareWith.set(r))}),p()(),S(13,w1,3,2,"div",7)(14,D1,2,1)}if(e&2){let t,i=n,r=b();d(2),Je(i.title),d(2),I(r.compareWith()?5:4),d(7),R(" ",i.code," "),d(),C("featureCode",i.code)("value",r.compareWith()),d(),I((t=r.compareWith())?13:14,t)}}function I1(e,n){e&1&&y(0," \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u043E ")}var il=class e{feature=f.required();editing=E(!1);editor=kt("editor");compareWith=E(null);enterEditing(){this.editing.set(!0)}exitEditing(){this.editing.set(!1)}hasChanges=T(()=>this.editor()?.hasChanges());saveChanges(){this.editor()?.saveChanges()}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=m({type:e,selectors:[["feature-presenter"]],viewQuery:function(t,i){t&1&&St(i.editor,v1,5),t&2&&De()},inputs:{feature:[1,"feature"]},decls:3,vars:1,consts:[["editor",""],[1,"wrapper"],[1,"header"],[1,"actions"],["size","s","tuiButton",""],[1,"details"],[3,"valueChange","featureCode","value"],[1,"content"],["size","s","tuiButton","",3,"click"],["size","s","appearance","secondary","tuiButton","",3,"click"],["size","s","tuiButton","",3,"click","disabled"],[3,"feature","origin"],[1,"editor"],[3,"canClose","featureCode"],[3,"feature"]],template:function(t,i){if(t&1&&(h(0,"div",1),S(1,S1,15,6)(2,I1,1,0),p()),t&2){let r;d(),I((r=i.feature())?1:2,r)}},dependencies:[As,Qn,tl,Zs,Jt,Js,el],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;border-radius:12px;background:var(--tui-background-neutral-1);height:100%}.wrapper[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%}.header[_ngcontent-%COMP%]{flex:0 0 auto;padding:1em 2em;display:flex;justify-content:space-between;align-items:center;width:100%}.header[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%]{display:flex;gap:.6rem}.details[_ngcontent-%COMP%]{flex:0 0 auto;padding:1em 2em;display:flex;gap:1em;margin-bottom:1em;align-items:center;justify-content:space-between}.content[_ngcontent-%COMP%]{flex:1 1 auto;overflow-y:hidden;min-height:0}feature-content[_ngcontent-%COMP%]{margin:0 2em}.editor[_ngcontent-%COMP%]{margin:0 2em;flex:1 1 auto;overflow-y:hidden;min-height:0}"]})};var M1=(e,n)=>n.valueCode;function k1(e,n){e&1&&A(0,"tui-icon",5),e&2&&_e("font-size",16,"px")}function E1(e,n){e&1&&A(0,"tui-icon",6),e&2&&_e("font-size",16,"px")}function A1(e,n){if(e&1&&(h(0,"span",7),y(1),p()),e&2){let t=b();G("zero",t.node().automatedCount===0),d(),ui(" ",t.node().automatedCount," / ",t.node().totalCount," ")}}function O1(e,n){if(e&1&&A(0,"feature-tree-node",8),e&2){let t=n.$implicit;C("node",t)}}function R1(e,n){if(e&1&&A(0,"feature-item",9),e&2){let t=n.$implicit;C("featureCode",t)}}function P1(e,n){if(e&1&&(ae(0,O1,1,1,"feature-tree-node",8,M1),ae(2,R1,1,1,"feature-item",9,dt)),e&2){let t=b();se(t.node().children),d(2),se(t.node().features)}}var nl=class e{node=f.required();expanded=E(!1);toggleExpanded(){this.expanded.update(n=>!n)}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=m({type:e,selectors:[["feature-tree-node"]],inputs:{node:[1,"node"]},decls:8,vars:6,consts:[[1,"item",3,"click"],["icon","@tui.chevron-down",3,"font-size"],["icon","@tui.chevron-right",3,"font-size"],[1,"counters",3,"zero"],[1,"children"],["icon","@tui.chevron-down"],["icon","@tui.chevron-right"],[1,"counters"],[3,"node"],[3,"featureCode"]],template:function(t,i){t&1&&(h(0,"div",0),k("click",function(){return i.toggleExpanded()}),h(1,"span"),S(2,k1,1,2,"tui-icon",1)(3,E1,1,2,"tui-icon",2),y(4),p(),S(5,A1,2,4,"span",3),p(),h(6,"div",4),S(7,P1,4,0),p()),t&2&&(d(2),I(i.expanded()?2:3),d(2),R(" ",i.node().valueTitle??i.node().valueCode," "),d(),I(i.node().totalCount>0?5:-1),d(),G("expanded",i.expanded()),d(),I(i.expanded()?7:-1))},dependencies:[e,mr,$t],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column}.children[_ngcontent-%COMP%]{display:flex;flex-direction:column;margin-left:1em;max-height:0;overflow-y:hidden;transition:max-height .8s ease}.children.expanded[_ngcontent-%COMP%]{max-height:1000px}.children[_ngcontent-%COMP%]{border-left:var(--tui-border-normal) 1px solid}.item[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:.4rem;padding:4px 12px;border-radius:4px;cursor:pointer}.item[_ngcontent-%COMP%]:hover{background:var(--tui-background-neutral-1-hover)}.counters[_ngcontent-%COMP%]{white-space:nowrap;font:var(--tui-typography-body-xs);color:var(--tui-text-secondary)}.counters.zero[_ngcontent-%COMP%]{color:var(--tui-text-negative)}"]})};var F1=(e,n)=>n.valueCode;function N1(e,n){if(e&1&&A(0,"feature-tree-node",0),e&2){let t=n.$implicit;C("node",t)}}var rl=class e{tree=f.required();static \u0275fac=function(t){return new(t||e)};static \u0275cmp=m({type:e,selectors:[["feature-tree"]],inputs:{tree:[1,"tree"]},decls:2,vars:0,consts:[[3,"node"]],template:function(t,i){t&1&&ae(0,N1,1,1,"feature-tree-node",0,F1),t&2&&se(i.tree().root.children)},dependencies:[nl],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column}"]})};function z1(e,n){if(e&1&&A(0,"tui-data-list-wrapper",5),e&2){let t=b();C("items",t.projectSnapshot().trees)}}var ol=class e{projectSnapshot=f.required();search=Mt();activeTree=Mt(null);featureCodes=It();constructor(){Q(()=>{let n=this.search()?.toLowerCase(),t=this.projectSnapshot().features.filter(r=>n?r.title.toLowerCase().indexOf(n)>=0||r.code.toLowerCase().indexOf(n)>=0:!0);t.sort((r,o)=>r.title.localeCompare(o.title,"ru-Ru"));let i=t.map(r=>r.code);this.featureCodes.emit(i)})}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=m({type:e,selectors:[["nav-controls"]],inputs:{projectSnapshot:[1,"projectSnapshot"],search:[1,"search"],activeTree:[1,"activeTree"]},outputs:{search:"searchChange",activeTree:"activeTreeChange",featureCodes:"featureCodes"},features:[O([ya({stringify:E(n=>n.title),identityMatcher:E((n,t)=>n.code===t.code)})])],decls:5,vars:2,consts:[["tuiTextfieldSize","s","iconEnd","@tui.search"],["placeholder","\u041F\u043E\u0438\u0441\u043A...","tuiInput","",3,"ngModelChange","ngModel"],["tuiTextfieldSize","s","tuiChevron",""],["placeholder","\u0411\u0435\u0437 \u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438","tuiSelect","",3,"ngModelChange","ngModel"],[3,"items",4,"tuiDropdown"],[3,"items"]],template:function(t,i){t&1&&(h(0,"tui-textfield",0)(1,"input",1),on("ngModelChange",function(o){return rn(i.search,o)||(i.search=o),o}),p(),en(),p(),h(2,"tui-textfield",2)(3,"input",3),on("ngModelChange",function(o){return rn(i.activeTree,o)||(i.activeTree=o),o}),p(),en(),z(4,z1,1,1,"tui-data-list-wrapper",4),p()),t&2&&(d(),nn("ngModel",i.search),tn(),d(2),nn("ngModel",i.activeTree),tn())},dependencies:[Pi,Ln,Vn,Lt,Cr,Os,Es,ut,tr,vn,Yr],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;gap:1em}"]})};function L1(e,n){e&1&&A(0,"feature-tree",2),e&2&&C("tree",n)}function V1(e,n){if(e&1&&A(0,"feature-list",3),e&2){let t=b();C("featureCodes",t.featureCodes())}}var al=class e{router=l(ni);activeFeatureService=l(Ti);projectSnapshot=f.required();activeTree=f.required();activeFeature=f.required();featureCodes=E([]);constructor(){Q(()=>{let n=this.activeFeature(),t=this.activeFeatureService.activeFeature();n?.code!==t?.code&&this.activeFeatureService.activate(n)})}setFeatureCodes(n){this.featureCodes.set(n)}setActiveTree(n){this.router.navigate([],{queryParams:{tree:n?.code??null},queryParamsHandling:"merge"})}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=m({type:e,selectors:[["feature-page-presenter"]],inputs:{projectSnapshot:[1,"projectSnapshot"],activeTree:[1,"activeTree"],activeFeature:[1,"activeFeature"]},features:[O([Ti])],decls:7,vars:4,consts:[[1,"tree-container"],[3,"featureCodes","activeTreeChange","projectSnapshot","activeTree"],[3,"tree"],[3,"featureCodes"],[1,"content"],[3,"feature"]],template:function(t,i){if(t&1&&(h(0,"section",0)(1,"nav-controls",1),k("featureCodes",function(o){return i.setFeatureCodes(o)})("activeTreeChange",function(o){return i.setActiveTree(o)}),p(),h(2,"tui-scrollbar"),S(3,L1,1,1,"feature-tree",2)(4,V1,1,1,"feature-list",3),p()(),h(5,"section",4),A(6,"feature-presenter",5),p()),t&2){let r;d(),C("projectSnapshot",i.projectSnapshot())("activeTree",i.activeTree()),d(2),I((r=i.activeTree())?3:4,r),d(3),C("feature",i.activeFeature())}},dependencies:[rl,ms,ol,il,Qn],styles:["[_nghost-%COMP%]{display:flex;height:100%}.tree-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding:1em;width:360px;max-width:360px;flex-shrink:0;gap:1em}.content[_ngcontent-%COMP%]{flex-grow:1;height:100%;padding:1em;overflow:hidden}"]})};function B1(e,n){if(e&1&&(h(0,"div",2)(1,"div",3),y(2),p(),y(3),h(4,"div",4),y(5),p()()),e&2){let t=n.$implicit,i=b(3);C("appearance",i.severityToAppearance(t.severity)),d(2),R(" ",t.code," "),d(),R(" ",t.message," "),d(2),R(" ",t.path," ")}}function U1(e,n){e&1&&(h(0,"div",0),ae(1,B1,6,4,"div",2,Pn),p()),e&2&&(d(),se(n))}function H1(e,n){if(e&1&&A(0,"feature-page-presenter",1),e&2){let t=b(2);C("projectSnapshot",t.projectSnapshotResource.value())("activeFeature",t.activeFeature())("activeTree",t.activeTree())}}function j1(e,n){if(e&1&&S(0,U1,3,0,"div",0)(1,H1,1,3,"feature-page-presenter",1),e&2){let t,i=b();I((t=i.errors())?0:1,t)}}function $1(e,n){e&1&&y(0,` \u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430...
110
- `)}var sl=class e{activatedRoute=l(Gt);queryParams=Et(this.activatedRoute.queryParams);queryTree=T(()=>this.queryParams()?.tree??null);queryFeature=T(()=>this.queryParams()?.feature??null);projectSnapshotResource=l(Pt).projectResource;errors=T(()=>{if(this.projectSnapshotResource.hasValue()){let n=this.projectSnapshotResource.value().diagnostics;if(n.length)return n}return null});activeFeature=T(()=>{let n=this.queryFeature();return n&&this.projectSnapshotResource.hasValue()?this.projectSnapshotResource.value().features.find(t=>t.code===n)??null:null});activeTree=T(()=>{let n=this.queryTree();return n&&this.projectSnapshotResource.hasValue()?this.projectSnapshotResource.value().trees.find(t=>t.code===n)??null:null});featureCodes=E([]);severityToAppearance(n){return n==="error"?"negative":"info"}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=m({type:e,selectors:[["features-page"]],features:[O([Ti])],decls:2,vars:1,consts:[[1,"error-container"],[3,"projectSnapshot","activeFeature","activeTree"],["tuiNotification","",3,"appearance"],["tuiTitle",""],[1,""]],template:function(t,i){t&1&&S(0,j1,2,1)(1,$1,1,0),t&2&&I(i.projectSnapshotResource.hasValue()?0:1)},dependencies:[al,xu],styles:["[_nghost-%COMP%]{display:contents}.error-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;margin:4em;gap:1em}"]})};var rm=[{path:"",component:sl}];var W1={baseUrl:"assets",defaultOptions:{scrollBeyondLastLine:!1},requireConfig:{preferScriptTags:!0},monacoRequire:window.monacoRequire},om=()=>tm(W1);var am={providers:[Nc(),Xu(rm),Mp(),{provide:fs,useValue:""},id({fullLibraryLoader:()=>import("./chunk-DLDSQNZX.js"),lineNumbersLoader:()=>import("./chunk-M455JN2T.js")}),om()]};function G1(e,n){e&1&&y(0),e&2&&R(" - ",n," ")}var ll=class e{projectService=l(Pt);title=T(()=>this.projectService.projectResource.hasValue()?this.projectService.projectResource.value().project?.title??null:null);static \u0275fac=function(t){return new(t||e)};static \u0275cmp=m({type:e,selectors:[["app-root"]],decls:8,vars:1,consts:[[1,"header"],["src","favicon.ico","alt","Spec Box TMS",1,"logo"]],template:function(t,i){if(t&1&&(h(0,"tui-root")(1,"div",0),A(2,"img",1),h(3,"h2"),y(4," SpecBoxTMS "),S(5,G1,1,1),p()(),h(6,"main"),A(7,"router-outlet"),p()()),t&2){let r;d(5),I((r=i.title())?5:-1,r)}},dependencies:[po,fh],styles:["main[_ngcontent-%COMP%]{height:calc(100vh - 46px)}.header[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:center;padding:1em;height:46px;background-color:var(--tui-background-neutral-1)}.header[_ngcontent-%COMP%] .logo[_ngcontent-%COMP%]{width:2rem;height:2rem;filter:drop-shadow(0 0 3px rgba(255,255,255,.4))}"]})};Kc(ll,am).catch(e=>console.error(e));
109
+ `,this.editor())}ul(){Ys("- ",this.editor())}ol(){nm(this.editor())}checkList(){Ys("- [ ] ",this.editor())}indentIncrease(){bo(" ",this.editor())}indentDecrease(){im(" ",this.editor())}table(){bo(zw,this.editor())}undo(){this.editor().trigger(null,"undo",null)}redo(){this.editor().trigger(null,"redo",null)}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=m({type:e,selectors:[["markdown-editor-toolbar"]],inputs:{editor:[1,"editor"]},features:[O([rt({size:"s"})])],decls:43,vars:0,consts:[["iconStart","@tui.undo","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.redo","appearance","secondary","tuiIconButton","","type","button",3,"click"],[1,"tui-space_left-2"],["iconStart","@tui.heading","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.bold","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.italic","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.strikethrough","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.code","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.file-json-2","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.link","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.image","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.minus","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.text-quote","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.list","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.list-ordered","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.list-check","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.indent-increase","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.indent-decrease","appearance","secondary","tuiIconButton","","type","button",3,"click"],["iconStart","@tui.table","appearance","secondary","tuiIconButton","","type","button",3,"click"]],template:function(t,i){t&1&&(h(0,"button",0),k("click",function(){return i.undo()}),y(1," Undo "),p(),h(2,"button",1),k("click",function(){return i.redo()}),y(3," Redo "),p(),A(4,"span",2),h(5,"button",3),k("click",function(){return i.heading()}),y(6," Heading "),p(),h(7,"button",4),k("click",function(){return i.bold()}),y(8," Bold "),p(),h(9,"button",5),k("click",function(){return i.italic()}),y(10," Italic "),p(),h(11,"button",6),k("click",function(){return i.strikethrough()}),y(12," Strikethrough "),p(),A(13,"span",2),h(14,"button",7),k("click",function(){return i.inlineCode()}),y(15," Code "),p(),h(16,"button",8),k("click",function(){return i.codeBlock()}),y(17," Code block "),p(),A(18,"span",2),h(19,"button",9),k("click",function(){return i.link()}),y(20," Link "),p(),h(21,"button",10),k("click",function(){return i.image()}),y(22," Image "),p(),h(23,"button",11),k("click",function(){return i.horizontalRuler()}),y(24," Horizontal ruler "),p(),A(25,"span",2),h(26,"button",12),k("click",function(){return i.blockquote()}),y(27," Blockquote "),p(),A(28,"span",2),h(29,"button",13),k("click",function(){return i.ul()}),y(30," List unordered "),p(),h(31,"button",14),k("click",function(){return i.ol()}),y(32," List ordered "),p(),h(33,"button",15),k("click",function(){return i.checkList()}),y(34," Check list "),p(),A(35,"span",2),h(36,"button",16),k("click",function(){return i.indentIncrease()}),y(37," Indent increase "),p(),h(38,"button",17),k("click",function(){return i.indentDecrease()}),y(39," Indent decrease "),p(),A(40,"span",2),h(41,"button",18),k("click",function(){return i.table()}),y(42," Table "),p())},dependencies:[Jt],styles:["[_nghost-%COMP%]{display:flex;gap:.2em;padding:.5em;border-bottom:1px solid var(--tui-border-normal);margin-bottom:.5em}"]})};function Lw(e,n){e&1&&A(0,"markdown-editor-toolbar",0),e&2&&C("editor",n)}var Xs=class e{completionProviderService=l(Tr,{optional:!0});editor=E(null);value=f.required();valueChange=It();editValue=E("");editorOptions={theme:"vs-dark",language:"yaml",minimap:{enabled:!1},automaticLayout:!0};constructor(){Q(()=>{let n=this.value();Y(()=>this.editValue.set(n))}),Q(()=>{let n=this.editValue();Y(()=>this.valueChange.emit(n))})}initEditor(n){this.editor.set(n),this.completionProviderService?.initialize()}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=m({type:e,selectors:[["markdown-editor"]],inputs:{value:[1,"value"]},outputs:{valueChange:"valueChange"},decls:2,vars:3,consts:[[3,"editor"],[1,"editor",3,"ngModelChange","onInit","ngModel","options"]],template:function(t,i){if(t&1&&(S(0,Lw,1,1,"markdown-editor-toolbar",0),h(1,"ngx-monaco-editor",1),on("ngModelChange",function(o){return rn(i.editValue,o)||(i.editValue=o),o}),k("onInit",function(o){return i.initEditor(o)}),p(),en()),t&2){let r;I((r=i.editor())?0:-1,r),d(),nn("ngModel",i.editValue),C("options",i.editorOptions),tn()}},dependencies:[em,Jf,Pi,Vn,Lt,Qs],styles:["[_nghost-%COMP%]{position:relative;height:100%;display:flex;flex-direction:column;border:1px solid var(--tui-border-normal);border-radius:.5em}.editor[_ngcontent-%COMP%]{flex-grow:1}"]})};var Ks=class e{mdCompletionProviderService=l(Tr);projectService=l(Pt);constructor(){Q(()=>{if(this.projectService.projectResource.hasValue()){let t=this.projectService.projectResource.value().features.map(i=>({label:i.code,description:i.title,insertText:i.code}));this.mdCompletionProviderService.register(t,["$"],/\s(\$([A-Za-z][A-Za-z\d-]*)?)$/)}})}static \u0275fac=function(t){return new(t||e)};static \u0275prov=we({token:e,factory:e.\u0275fac})};function Vw(e,n){if(e&1){let t=Ee();h(0,"markdown-editor",1),k("valueChange",function(r){ve(t);let o=b();return ye(o.updateYaml(r))}),p()}if(e&2){let t=b();C("value",t.editYaml())}}var Js=class e{notifications=l(ch);featureCode=f.required();featureYamlResource=Ri.text(()=>`/api/features/${this.featureCode()}/yaml`);featureYaml=T(()=>this.featureYamlResource.hasValue()?this.featureYamlResource.value():null);featureYamlHash=T(()=>this.featureYamlResource.hasValue()?this.featureYamlResource.headers()?.get("ETag")??null:null);hasChanges=T(()=>this.featureYaml()&&this.featureYaml()!==this.editYaml());editYaml=zo(()=>{let n=this.featureYaml();if(n==null)throw new Error("Yaml should be defined");return n});canClose=It();constructor(){l(Ks)}updateYaml(n){this.editYaml.set(n)}async saveChanges(){let n=this.featureYamlHash();if(!n)throw new Error("Yaml HASH is undefined");let t=await fetch(`/api/features/${this.featureCode()}/yaml`,{method:"PUT",body:this.editYaml(),headers:{"Content-Type":"application/yaml",charset:"utf-8","If-Match":n}});t.status===200?(this.notifications.open("\u0421\u043F\u0435\u0446\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0430",{appearance:"positive"}).subscribe(),this.canClose.emit()):t.status===409?this.notifications.open("\u041D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0441\u043F\u0435\u0446\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044E, \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439",{appearance:"negative"}).subscribe():this.notifications.open("\u041E\u0448\u0438\u0431\u043A\u0430 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F \u0441\u043F\u0435\u0446\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u0438",{appearance:"negative"}).subscribe()}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=m({type:e,selectors:[["feature-editor"]],inputs:{featureCode:[1,"featureCode"]},outputs:{canClose:"canClose"},decls:1,vars:1,consts:[[3,"value"],[3,"valueChange","value"]],template:function(t,i){t&1&&S(0,Vw,1,1,"markdown-editor",0),t&2&&I(i.featureYaml()!=null?0:-1)},dependencies:[Xs],styles:["[_nghost-%COMP%]{display:contents}"]})};var Cc=(e,n)=>n.code,bc=(e,n)=>n.groupTitle+n.assertion.title;function Bw(e,n){if(e&1&&(h(0,"span",4),y(1),p()),e&2){let t=b(2);d(),R("\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 +",t.addedAssertions())}}function Uw(e,n){if(e&1&&(h(0,"span",4),y(1),p()),e&2){let t=b(2);d(),R("\u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044B +",t.addedAttributes())}}function Hw(e,n){if(e&1&&(h(0,"span",5),y(1),p()),e&2){let t=b(2);d(),R("\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 \u2212",t.removedAssertions())}}function jw(e,n){if(e&1&&(h(0,"span",5),y(1),p()),e&2){let t=b(2);d(),R("\u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044B \u2212",t.removedAttributes())}}function $w(e,n){if(e&1&&(h(0,"span",6),y(1),p()),e&2){let t=b(2);d(),R("\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u044B: ",t.changedAssertions())}}function Ww(e,n){if(e&1&&(h(0,"span",6),y(1),p()),e&2){let t=b(2);d(),R("\u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044B \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u044B: ",t.changedAttributes())}}function Gw(e,n){e&1&&(h(0,"span",6),y(1,"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A \u0438\u0437\u043C\u0435\u043D\u0451\u043D"),p())}function qw(e,n){e&1&&(h(0,"span",6),y(1,"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043E"),p())}function Zw(e,n){if(e&1&&(h(0,"section",8)(1,"h3"),y(2,"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A"),p(),h(3,"div",9),y(4),p(),h(5,"div",10),y(6),p()()),e&2){let t=b(),i=b();d(4),Je(t.title),d(2),Je(i.feature().title)}}function Yw(e,n){if(e&1&&A(0,"markdown",11),e&2){let t=b(2);C("value",t.description)}}function Qw(e,n){e&1&&y(0," - ")}function Xw(e,n){if(e&1&&A(0,"markdown",11),e&2){let t=b(3);C("value",t.feature().description)}}function Kw(e,n){e&1&&y(0," - ")}function Jw(e,n){if(e&1&&(h(0,"section",8)(1,"h3"),y(2,"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435"),p(),h(3,"div",9),S(4,Yw,1,1,"markdown",11)(5,Qw,1,0),p(),h(6,"div",10),S(7,Xw,1,1,"markdown",11)(8,Kw,1,0),p()()),e&2){let t=b(),i=b();d(4),I(t.description?4:5),d(3),I(i.feature().description?7:8)}}function e1(e,n){if(e&1&&(h(0,"article",12)(1,"h4"),y(2),p(),h(3,"div",10),y(4),p()()),e&2){let t=n.$implicit;d(2),Je(t.code),d(2),ui("+ ",t.code,": ",t.values.join(", "))}}function t1(e,n){if(e&1&&(h(0,"article",12)(1,"h4"),y(2),p(),h(3,"div",9),y(4),p(),h(5,"div",10),y(6),p()()),e&2){let t=n.$implicit;d(2),Je(t.code),d(2),ui("\u2212 ",t.code,": ",t.origin.join(", ")),d(2),ui("+ ",t.code,": ",t.values.join(", "))}}function i1(e,n){if(e&1&&(h(0,"article",12)(1,"h4"),y(2),p(),h(3,"div",9),y(4),p()()),e&2){let t=n.$implicit;d(2),Je(t.code),d(2),ui("\u2212 ",t.code,": ",t.values.join(", "))}}function n1(e,n){if(e&1&&(h(0,"section",8)(1,"h3"),y(2,"\u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044B"),p(),ae(3,e1,5,3,"article",12,Cc),ae(5,t1,7,5,"article",12,Cc),ae(7,i1,5,3,"article",12,Cc),p()),e&2){let t=b(2);d(3),se(t.addedAttributeItems()),d(2),se(t.changedAttributeItems()),d(2),se(t.removedAttributeItems())}}function r1(e,n){if(e&1&&(y(0," \u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435: "),h(1,"div",10),A(2,"markdown",11),p()),e&2){let t=b().$implicit;d(2),C("value",t.assertion.description)}}function o1(e,n){if(e&1&&(h(0,"article",12)(1,"h4"),y(2),p(),h(3,"div",10),A(4,"markdown",11),p(),S(5,r1,3,1),p()),e&2){let t=n.$implicit;d(2),R("",t.groupTitle,":"),d(2),C("value",t.assertion.title),d(),I(t.assertion.description?5:-1)}}function a1(e,n){if(e&1&&A(0,"markdown",11),e&2){let t=b(2).$implicit;C("value",t.origin.description)}}function s1(e,n){e&1&&y(0," - ")}function l1(e,n){if(e&1&&A(0,"markdown",11),e&2){let t=b(2).$implicit;C("value",t.assertion.description)}}function u1(e,n){e&1&&y(0," - ")}function c1(e,n){if(e&1&&(y(0," \u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435: "),h(1,"div",9),S(2,a1,1,1,"markdown",11)(3,s1,1,0),p(),h(4,"div",10),S(5,l1,1,1,"markdown",11)(6,u1,1,0),p()),e&2){let t=b().$implicit;d(2),I(t.origin.description?2:3),d(3),I(t.assertion.description?5:6)}}function d1(e,n){if(e&1&&(h(0,"article",12)(1,"h4"),y(2),p(),A(3,"markdown",11),S(4,c1,7,2),p()),e&2){let t=n.$implicit;d(2),R("",t.groupTitle,":"),d(),C("value",t.assertion.title),d(),I(t.origin.description!==t.assertion.description?4:-1)}}function p1(e,n){if(e&1&&(h(0,"article",12)(1,"h4"),y(2),p(),A(3,"markdown",11),h(4,"div",9),y(5),p()()),e&2){let t=n.$implicit;d(2),R("",t.groupTitle,":"),d(),C("value",t.assertion.title),d(2),R(" \u2212 ",t.assertion.description||t.assertion.title," ")}}function h1(e,n){if(e&1&&(h(0,"section",8)(1,"h3"),y(2,"\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0438"),p(),ae(3,o1,6,3,"article",12,bc),ae(5,d1,5,3,"article",12,bc),ae(7,p1,6,3,"article",12,bc),p()),e&2){let t=b(2);d(3),se(t.addedAssertionItems()),d(2),se(t.changedAssertionItems()),d(2),se(t.removedAssertionItems())}}function f1(e,n){if(e&1&&(h(0,"div",3),S(1,Bw,2,1,"span",4),S(2,Uw,2,1,"span",4),S(3,Hw,2,1,"span",5),S(4,jw,2,1,"span",5),S(5,$w,2,1,"span",6),S(6,Ww,2,1,"span",6),S(7,Gw,2,0,"span",6),S(8,qw,2,0,"span",6),p(),h(9,"div",7),S(10,Zw,7,2,"section",8),S(11,Jw,9,2,"section",8),S(12,n1,9,0,"section",8),S(13,h1,9,0,"section",8),p()),e&2){let t=b();d(),I(t.addedAssertions()?1:-1),d(),I(t.addedAttributes()?2:-1),d(),I(t.removedAssertions()?3:-1),d(),I(t.removedAttributes()?4:-1),d(),I(t.changedAssertions()?5:-1),d(),I(t.changedAttributes()?6:-1),d(),I(t.titleChanged()?7:-1),d(),I(t.descriptionChanged()?8:-1),d(2),I(t.titleChanged()?10:-1),d(),I(t.descriptionChanged()?11:-1),d(),I(t.addedAttributes()||t.changedAttributes()||t.removedAttributes()?12:-1),d(),I(t.addedAssertions()||t.changedAssertions()||t.removedAssertions()?13:-1)}}var Dr=e=>new Map(e.groups.flatMap(n=>n.assertions.map(t=>[`${n.title}\0${t.title}`,{groupTitle:n.title,assertion:t}]))),el=class e{feature=f.required();origin=f.required();shortOriginCommit=T(()=>this.origin().commit.slice(0,7));originFeatureResource=Ri(()=>`/api/features/${this.feature().code}?revision=${this.origin().commit}`);originFeature=T(()=>this.originFeatureResource.hasValue()?this.originFeatureResource.value():null);addedAssertionItems=T(()=>{let n=this.originFeature();if(!n)return[];let t=Dr(n);return[...Dr(this.feature()).entries()].filter(([i])=>!t.has(i)).map(([,i])=>i)});removedAssertionItems=T(()=>{let n=this.originFeature();if(!n)return[];let t=Dr(this.feature());return[...Dr(n).entries()].filter(([i])=>!t.has(i)).map(([,i])=>i)});changedAssertionItems=T(()=>{let n=this.originFeature();if(!n)return[];let t=Dr(n);return[...Dr(this.feature()).values()].flatMap(i=>{let r=t.get(`${i.groupTitle}\0${i.assertion.title}`);return!r||i.assertion.description===r.assertion.description?[]:[$(x({},i),{origin:r.assertion})]})});addedAttributeItems=T(()=>{let n=this.originFeature();return n?Object.entries(this.feature().attributes).filter(([t])=>!(t in n.attributes)).map(([t,i])=>({code:t,values:i})):[]});removedAttributeItems=T(()=>{let n=this.originFeature();return n?Object.entries(n.attributes).filter(([t])=>!(t in this.feature().attributes)).map(([t,i])=>({code:t,values:i})):[]});changedAttributeItems=T(()=>{let n=this.originFeature();return n?Object.entries(this.feature().attributes).flatMap(([t,i])=>{let r=n.attributes[t];return!r||JSON.stringify(i)===JSON.stringify(r)?[]:[{code:t,values:i,origin:r}]}):[]});addedAssertions=T(()=>this.addedAssertionItems().length);removedAssertions=T(()=>this.removedAssertionItems().length);changedAssertions=T(()=>this.changedAssertionItems().length);addedAttributes=T(()=>this.addedAttributeItems().length);removedAttributes=T(()=>this.removedAttributeItems().length);changedAttributes=T(()=>this.changedAttributeItems().length);titleChanged=T(()=>{let n=this.originFeature();return n!==null&&n.title!==this.feature().title});descriptionChanged=T(()=>{let n=this.originFeature();return n!==null&&n.description!==this.feature().description});static \u0275fac=function(t){return new(t||e)};static \u0275cmp=m({type:e,selectors:[["feature-compare"]],inputs:{feature:[1,"feature"],origin:[1,"origin"]},decls:15,vars:9,consts:[[1,"origin"],[1,"origin-label"],[1,"origin-meta"],["aria-label","\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439",1,"statistics"],["appearance","positive","tuiBadge",""],["appearance","negative","tuiBadge",""],["appearance","warning","tuiBadge",""],["aria-label","\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F",1,"changes"],[1,"part"],[1,"diff-line","removed"],[1,"diff-line","added"],[3,"value"],[1,"change-item"]],template:function(t,i){if(t&1&&(h(0,"section",0)(1,"div")(2,"div",1),y(3,"\u0421\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u0435 \u0441 \u0432\u0435\u0440\u0441\u0438\u0435\u0439"),p(),h(4,"div"),y(5),p()(),h(6,"div",2)(7,"code"),y(8),p(),h(9,"span"),y(10),p(),h(11,"time"),y(12),ci(13,"date"),p()()(),S(14,f1,14,12)),t&2){let r;d(5),Je(i.origin().message),d(3),Je(i.shortOriginCommit()),d(2),Je(i.origin().author),d(),j("datetime",i.origin().date),d(),Je(No(13,6,i.origin().date,"dd.MM.yyyy HH:mm")),d(2),I((r=i.originFeature())?14:-1,r)}},dependencies:[br,Yi,Bo],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;padding:0 2em;width:100%;min-height:0;overflow-x:hidden}.origin[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-bottom:.75rem}.origin-label[_ngcontent-%COMP%], .origin-meta[_ngcontent-%COMP%]{color:var(--tui-text-secondary);font:var(--tui-typography-body-xs)}.origin-meta[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem}.statistics[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.5rem}.changes[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%;overflow:hidden;gap:1rem}.part[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem;border-top:1px solid var(--tui-border-normal);padding-top:.75rem}.part[_ngcontent-%COMP%] h3[_ngcontent-%COMP%], .part[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{margin:0}.change-item[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem}.diff-line[_ngcontent-%COMP%]{margin-left:2em;padding:.375rem .5rem;border-inline-start:.25rem solid var(--tui-border-normal);background:var(--tui-background-neutral-1)}.diff-line.added[_ngcontent-%COMP%]{border-color:var(--tui-status-positive);background:var(--tui-status-positive-pale)}.diff-line.removed[_ngcontent-%COMP%]{border-color:var(--tui-status-negative);background:var(--tui-status-negative-pale)}"]})};function m1(e,n){if(e&1&&A(0,"tui-data-list-wrapper",4),e&2){let t=b(),i=lt(4);C("items",t.featureHistory())("itemContent",i)}}function g1(e,n){if(e&1&&(h(0,"div",5)(1,"div"),y(2),p(),h(3,"div",6)(4,"span"),y(5),p(),h(6,"span"),y(7),ci(8,"date"),p()()()),e&2){let t=n.$implicit;d(2),R(" ",t.message," "),d(3),R(" ",t.author," "),d(2),R(" ",No(8,3,t.date,"dd.MM.yyyy HH:mm")," ")}}var tl=class e{featureCode=f.required();featureHistoryResource=Ri(()=>`/api/features/${this.featureCode()}/history`);featureHistory=T(()=>this.featureHistoryResource.hasValue()?this.featureHistoryResource.value():null);value=Mt(null);static \u0275fac=function(t){return new(t||e)};static \u0275cmp=m({type:e,selectors:[["feature-history-selector"]],inputs:{featureCode:[1,"featureCode"],value:[1,"value"]},outputs:{value:"valueChange"},features:[O([ya({stringify:E(n=>n.message),identityMatcher:E((n,t)=>n.commit===t.commit)})])],decls:5,vars:2,consts:[["content",""],["iconStart","@tui.git-compare-arrows","tuiChevron","","tuiTextfieldSize","s",1,"history-selector",3,"tuiTextfieldCleaner"],["placeholder","\u0422\u0435\u043A\u0443\u0449\u0430\u044F \u0432\u0435\u0440\u0441\u0438\u044F","tuiSelect","",3,"ngModelChange","ngModel"],[3,"items","itemContent",4,"tuiDropdown"],[3,"items","itemContent"],[1,"history-item"],[1,"caption"]],template:function(t,i){if(t&1){let r=Ee();h(0,"tui-textfield",1)(1,"input",2),on("ngModelChange",function(a){return ve(r),rn(i.value,a)||(i.value=a),ye(a)}),p(),en(),z(2,m1,1,2,"tui-data-list-wrapper",3),p(),z(3,g1,9,6,"ng-template",null,0,di)}t&2&&(C("tuiTextfieldCleaner",!0),d(),nn("ngModel",i.value),tn())},dependencies:[Pi,Ln,Vn,Lt,Cr,Os,Es,ut,tr,vn,Bo],styles:["[_nghost-%COMP%]{display:contents}.history-selector[_ngcontent-%COMP%]{width:40em}.history-item[_ngcontent-%COMP%]{display:flex;flex-direction:column;flex-grow:1}.history-item[_ngcontent-%COMP%] .caption[_ngcontent-%COMP%]{display:flex;justify-content:space-between;color:var(--tui-text-secondary);font:var(--tui-typography-body-xs)}"]})};var v1=["editor"];function y1(e,n){if(e&1){let t=Ee();h(0,"button",9),k("click",function(){ve(t);let r=b(3);return ye(r.enterEditing())}),y(1,"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C"),p()}}function _1(e,n){if(e&1){let t=Ee();h(0,"button",10),k("click",function(){ve(t);let r=b(3);return ye(r.exitEditing())}),y(1," \u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C "),p(),h(2,"button",11),k("click",function(){ve(t);let r=b(3);return ye(r.saveChanges())}),y(3," \u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C "),p()}if(e&2){let t=b(3);d(2),C("disabled",!t.hasChanges())}}function C1(e,n){if(e&1&&S(0,y1,2,0,"button",5)(1,_1,4,1),e&2){let t=b(2);I(t.editing()?1:0)}}function b1(e,n){if(e&1){let t=Ee();h(0,"button",9),k("click",function(){ve(t);let r=b(2);return ye(r.compareWith.set(null))}),y(1,"\u0412\u044B\u0439\u0442\u0438 \u0438\u0437 \u0441\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u044F"),p()}}function w1(e,n){if(e&1&&(h(0,"div",8)(1,"tui-scrollbar"),A(2,"feature-compare",12),p()()),e&2){let t=b();d(2),C("feature",t)("origin",n)}}function T1(e,n){if(e&1){let t=Ee();h(0,"div",13)(1,"feature-editor",14,0),k("canClose",function(){ve(t);let r=b(3);return ye(r.exitEditing())}),p()()}if(e&2){let t=b(2);d(),C("featureCode",t.code)}}function x1(e,n){if(e&1&&(h(0,"div",8)(1,"tui-scrollbar"),A(2,"feature-content",15),p()()),e&2){let t=b(2);d(2),C("feature",t)}}function D1(e,n){if(e&1&&S(0,T1,3,1,"div",13)(1,x1,3,1,"div",8),e&2){let t=b(2);I(t.editing()?0:1)}}function S1(e,n){if(e&1){let t=Ee();h(0,"div",3)(1,"h2"),y(2),p(),h(3,"div",4),S(4,C1,2,1)(5,b1,2,0,"button",5),p()(),h(6,"div",6)(7,"div")(8,"b"),y(9,"\u041A\u043E\u0434:"),p(),h(10,"tui-copy"),y(11),p()(),h(12,"feature-history-selector",7),k("valueChange",function(r){ve(t);let o=b();return ye(o.compareWith.set(r))}),p()(),S(13,w1,3,2,"div",8)(14,D1,2,1)}if(e&2){let t,i=n,r=b();d(2),Je(i.title),d(2),I(r.compareWith()?5:4),d(7),R(" ",i.code," "),d(),C("featureCode",i.code)("value",r.compareWith()),d(),I((t=r.compareWith())?13:14,t)}}function I1(e,n){e&1&&(h(0,"div",2),y(1,"\u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u043E"),p())}var il=class e{feature=f.required();editing=E(!1);editor=kt("editor");compareWith=E(null);enterEditing(){this.editing.set(!0)}exitEditing(){this.editing.set(!1)}hasChanges=T(()=>this.editor()?.hasChanges());saveChanges(){this.editor()?.saveChanges()}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=m({type:e,selectors:[["feature-presenter"]],viewQuery:function(t,i){t&1&&St(i.editor,v1,5),t&2&&De()},inputs:{feature:[1,"feature"]},decls:3,vars:1,consts:[["editor",""],[1,"wrapper"],[1,"nothing"],[1,"header"],[1,"actions"],["size","s","tuiButton",""],[1,"details"],[3,"valueChange","featureCode","value"],[1,"content"],["size","s","tuiButton","",3,"click"],["size","s","appearance","secondary","tuiButton","",3,"click"],["size","s","tuiButton","",3,"click","disabled"],[3,"feature","origin"],[1,"editor"],[3,"canClose","featureCode"],[3,"feature"]],template:function(t,i){if(t&1&&(h(0,"div",1),S(1,S1,15,6)(2,I1,2,0,"div",2),p()),t&2){let r;d(),I((r=i.feature())?1:2,r)}},dependencies:[As,Qn,tl,Zs,Jt,Js,el],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;border-radius:12px;background:var(--tui-background-neutral-1);height:100%}.wrapper[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%}.header[_ngcontent-%COMP%]{flex:0 0 auto;padding:1em 2em;display:flex;justify-content:space-between;align-items:center;width:100%}.header[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%]{display:flex;gap:.6rem}.details[_ngcontent-%COMP%]{flex:0 0 auto;padding:1em 2em;display:flex;gap:1em;margin-bottom:1em;align-items:center;justify-content:space-between}.content[_ngcontent-%COMP%]{flex:1 1 auto;overflow-y:hidden;min-height:0}feature-content[_ngcontent-%COMP%]{margin:0 2em}.editor[_ngcontent-%COMP%]{margin:0 2em;flex:1 1 auto;overflow-y:hidden;min-height:0}.nothing[_ngcontent-%COMP%]{margin:1em 2em}"]})};var M1=(e,n)=>n.valueCode;function k1(e,n){e&1&&A(0,"tui-icon",5),e&2&&_e("font-size",16,"px")}function E1(e,n){e&1&&A(0,"tui-icon",6),e&2&&_e("font-size",16,"px")}function A1(e,n){if(e&1&&(h(0,"span",7),y(1),p()),e&2){let t=b();G("zero",t.node().automatedCount===0),d(),ui(" ",t.node().automatedCount," / ",t.node().totalCount," ")}}function O1(e,n){if(e&1&&A(0,"feature-tree-node",8),e&2){let t=n.$implicit;C("node",t)}}function R1(e,n){if(e&1&&A(0,"feature-item",9),e&2){let t=n.$implicit;C("featureCode",t)}}function P1(e,n){if(e&1&&(ae(0,O1,1,1,"feature-tree-node",8,M1),ae(2,R1,1,1,"feature-item",9,dt)),e&2){let t=b();se(t.node().children),d(2),se(t.node().features)}}var nl=class e{node=f.required();expanded=E(!1);toggleExpanded(){this.expanded.update(n=>!n)}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=m({type:e,selectors:[["feature-tree-node"]],inputs:{node:[1,"node"]},decls:8,vars:6,consts:[[1,"item",3,"click"],["icon","@tui.chevron-down",3,"font-size"],["icon","@tui.chevron-right",3,"font-size"],[1,"counters",3,"zero"],[1,"children"],["icon","@tui.chevron-down"],["icon","@tui.chevron-right"],[1,"counters"],[3,"node"],[3,"featureCode"]],template:function(t,i){t&1&&(h(0,"div",0),k("click",function(){return i.toggleExpanded()}),h(1,"span"),S(2,k1,1,2,"tui-icon",1)(3,E1,1,2,"tui-icon",2),y(4),p(),S(5,A1,2,4,"span",3),p(),h(6,"div",4),S(7,P1,4,0),p()),t&2&&(d(2),I(i.expanded()?2:3),d(2),R(" ",i.node().valueTitle??i.node().valueCode," "),d(),I(i.node().totalCount>0?5:-1),d(),G("expanded",i.expanded()),d(),I(i.expanded()?7:-1))},dependencies:[e,mr,$t],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column}.children[_ngcontent-%COMP%]{display:flex;flex-direction:column;margin-left:1em;max-height:0;overflow-y:hidden;transition:max-height .8s ease}.children.expanded[_ngcontent-%COMP%]{max-height:1000px}.children[_ngcontent-%COMP%]{border-left:var(--tui-border-normal) 1px solid}.item[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:.4rem;padding:4px 12px;border-radius:4px;cursor:pointer}.item[_ngcontent-%COMP%]:hover{background:var(--tui-background-neutral-1-hover)}.counters[_ngcontent-%COMP%]{white-space:nowrap;font:var(--tui-typography-body-xs);color:var(--tui-text-secondary)}.counters.zero[_ngcontent-%COMP%]{color:var(--tui-text-negative)}"]})};var F1=(e,n)=>n.valueCode;function N1(e,n){if(e&1&&A(0,"feature-tree-node",0),e&2){let t=n.$implicit;C("node",t)}}var rl=class e{tree=f.required();static \u0275fac=function(t){return new(t||e)};static \u0275cmp=m({type:e,selectors:[["feature-tree"]],inputs:{tree:[1,"tree"]},decls:2,vars:0,consts:[[3,"node"]],template:function(t,i){t&1&&ae(0,N1,1,1,"feature-tree-node",0,F1),t&2&&se(i.tree().root.children)},dependencies:[nl],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column}"]})};function z1(e,n){if(e&1&&A(0,"tui-data-list-wrapper",5),e&2){let t=b();C("items",t.projectSnapshot().trees)}}var ol=class e{projectSnapshot=f.required();search=Mt();activeTree=Mt(null);featureCodes=It();constructor(){Q(()=>{let n=this.search()?.toLowerCase(),t=this.projectSnapshot().features.filter(r=>n?r.title.toLowerCase().indexOf(n)>=0||r.code.toLowerCase().indexOf(n)>=0:!0);t.sort((r,o)=>r.title.localeCompare(o.title,"ru-Ru"));let i=t.map(r=>r.code);this.featureCodes.emit(i)})}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=m({type:e,selectors:[["nav-controls"]],inputs:{projectSnapshot:[1,"projectSnapshot"],search:[1,"search"],activeTree:[1,"activeTree"]},outputs:{search:"searchChange",activeTree:"activeTreeChange",featureCodes:"featureCodes"},features:[O([ya({stringify:E(n=>n.title),identityMatcher:E((n,t)=>n.code===t.code)})])],decls:5,vars:2,consts:[["tuiTextfieldSize","s","iconEnd","@tui.search"],["placeholder","\u041F\u043E\u0438\u0441\u043A...","tuiInput","",3,"ngModelChange","ngModel"],["tuiTextfieldSize","s","tuiChevron",""],["placeholder","\u0411\u0435\u0437 \u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438","tuiSelect","",3,"ngModelChange","ngModel"],[3,"items",4,"tuiDropdown"],[3,"items"]],template:function(t,i){t&1&&(h(0,"tui-textfield",0)(1,"input",1),on("ngModelChange",function(o){return rn(i.search,o)||(i.search=o),o}),p(),en(),p(),h(2,"tui-textfield",2)(3,"input",3),on("ngModelChange",function(o){return rn(i.activeTree,o)||(i.activeTree=o),o}),p(),en(),z(4,z1,1,1,"tui-data-list-wrapper",4),p()),t&2&&(d(),nn("ngModel",i.search),tn(),d(2),nn("ngModel",i.activeTree),tn())},dependencies:[Pi,Ln,Vn,Lt,Cr,Os,Es,ut,tr,vn,Yr],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;gap:1em}"]})};function L1(e,n){e&1&&A(0,"feature-tree",2),e&2&&C("tree",n)}function V1(e,n){if(e&1&&A(0,"feature-list",3),e&2){let t=b();C("featureCodes",t.featureCodes())}}var al=class e{router=l(ni);activeFeatureService=l(Ti);projectSnapshot=f.required();activeTree=f.required();activeFeature=f.required();featureCodes=E([]);constructor(){Q(()=>{let n=this.activeFeature(),t=this.activeFeatureService.activeFeature();n?.code!==t?.code&&this.activeFeatureService.activate(n)})}setFeatureCodes(n){this.featureCodes.set(n)}setActiveTree(n){this.router.navigate([],{queryParams:{tree:n?.code??null},queryParamsHandling:"merge"})}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=m({type:e,selectors:[["feature-page-presenter"]],inputs:{projectSnapshot:[1,"projectSnapshot"],activeTree:[1,"activeTree"],activeFeature:[1,"activeFeature"]},features:[O([Ti])],decls:7,vars:4,consts:[[1,"tree-container"],[3,"featureCodes","activeTreeChange","projectSnapshot","activeTree"],[3,"tree"],[3,"featureCodes"],[1,"content"],[3,"feature"]],template:function(t,i){if(t&1&&(h(0,"section",0)(1,"nav-controls",1),k("featureCodes",function(o){return i.setFeatureCodes(o)})("activeTreeChange",function(o){return i.setActiveTree(o)}),p(),h(2,"tui-scrollbar"),S(3,L1,1,1,"feature-tree",2)(4,V1,1,1,"feature-list",3),p()(),h(5,"section",4),A(6,"feature-presenter",5),p()),t&2){let r;d(),C("projectSnapshot",i.projectSnapshot())("activeTree",i.activeTree()),d(2),I((r=i.activeTree())?3:4,r),d(3),C("feature",i.activeFeature())}},dependencies:[rl,ms,ol,il,Qn],styles:["[_nghost-%COMP%]{display:flex;height:100%}.tree-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding:1em;width:360px;max-width:360px;flex-shrink:0;gap:1em}.content[_ngcontent-%COMP%]{flex-grow:1;height:100%;padding:1em;overflow:hidden}"]})};function B1(e,n){if(e&1&&(h(0,"div",2)(1,"div",3),y(2),p(),y(3),h(4,"div",4),y(5),p()()),e&2){let t=n.$implicit,i=b(3);C("appearance",i.severityToAppearance(t.severity)),d(2),R(" ",t.code," "),d(),R(" ",t.message," "),d(2),R(" ",t.path," ")}}function U1(e,n){e&1&&(h(0,"div",0),ae(1,B1,6,4,"div",2,Pn),p()),e&2&&(d(),se(n))}function H1(e,n){if(e&1&&A(0,"feature-page-presenter",1),e&2){let t=b(2);C("projectSnapshot",t.projectSnapshotResource.value())("activeFeature",t.activeFeature())("activeTree",t.activeTree())}}function j1(e,n){if(e&1&&S(0,U1,3,0,"div",0)(1,H1,1,3,"feature-page-presenter",1),e&2){let t,i=b();I((t=i.errors())?0:1,t)}}function $1(e,n){e&1&&y(0,` \u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430...
110
+ `)}var sl=class e{activatedRoute=l(Gt);queryParams=Et(this.activatedRoute.queryParams);queryTree=T(()=>this.queryParams()?.tree??null);queryFeature=T(()=>this.queryParams()?.feature??null);projectSnapshotResource=l(Pt).projectResource;errors=T(()=>{if(this.projectSnapshotResource.hasValue()){let t=this.projectSnapshotResource.value().diagnostics.filter(i=>i.severity==="error");if(t.length)return t}return null});activeFeature=T(()=>{let n=this.queryFeature();return n&&this.projectSnapshotResource.hasValue()?this.projectSnapshotResource.value().features.find(t=>t.code===n)??null:null});activeTree=T(()=>{let n=this.queryTree();return n&&this.projectSnapshotResource.hasValue()?this.projectSnapshotResource.value().trees.find(t=>t.code===n)??null:null});featureCodes=E([]);severityToAppearance(n){return n==="error"?"negative":"info"}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=m({type:e,selectors:[["features-page"]],features:[O([Ti])],decls:2,vars:1,consts:[[1,"error-container"],[3,"projectSnapshot","activeFeature","activeTree"],["tuiNotification","",3,"appearance"],["tuiTitle",""],[1,""]],template:function(t,i){t&1&&S(0,j1,2,1)(1,$1,1,0),t&2&&I(i.projectSnapshotResource.hasValue()?0:1)},dependencies:[al,xu],styles:["[_nghost-%COMP%]{display:contents}.error-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;margin:4em;gap:1em}"]})};var rm=[{path:"",component:sl}];var W1={baseUrl:"assets",defaultOptions:{scrollBeyondLastLine:!1},requireConfig:{preferScriptTags:!0},monacoRequire:window.monacoRequire},om=()=>tm(W1);var am={providers:[Nc(),Xu(rm),Mp(),{provide:fs,useValue:""},id({fullLibraryLoader:()=>import("./chunk-DLDSQNZX.js"),lineNumbersLoader:()=>import("./chunk-M455JN2T.js")}),om()]};function G1(e,n){e&1&&y(0),e&2&&R(" - ",n," ")}var ll=class e{projectService=l(Pt);title=T(()=>this.projectService.projectResource.hasValue()?this.projectService.projectResource.value().project?.title??null:null);static \u0275fac=function(t){return new(t||e)};static \u0275cmp=m({type:e,selectors:[["app-root"]],decls:8,vars:1,consts:[[1,"header"],["src","favicon.ico","alt","Spec Box TMS",1,"logo"]],template:function(t,i){if(t&1&&(h(0,"tui-root")(1,"div",0),A(2,"img",1),h(3,"h2"),y(4," SpecBoxTMS "),S(5,G1,1,1),p()(),h(6,"main"),A(7,"router-outlet"),p()()),t&2){let r;d(5),I((r=i.title())?5:-1,r)}},dependencies:[po,fh],styles:["main[_ngcontent-%COMP%]{height:calc(100vh - 46px)}.header[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:center;padding:1em;height:46px;background-color:var(--tui-background-neutral-1)}.header[_ngcontent-%COMP%] .logo[_ngcontent-%COMP%]{width:2rem;height:2rem;filter:drop-shadow(0 0 3px rgba(255,255,255,.4))}"]})};Kc(ll,am).catch(e=>console.error(e));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spec-box-tms-sync",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "private": false,
5
5
  "bin": {
6
6
  "spec-box": "./bin/spec-box"