@ajf/material 12.1.3 → 12.1.7

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.
Files changed (187) hide show
  1. package/bundles/material-barcode.umd.js +3 -7
  2. package/bundles/material-barcode.umd.js.map +1 -1
  3. package/bundles/material-calendar.umd.js +5 -17
  4. package/bundles/material-calendar.umd.js.map +1 -1
  5. package/bundles/material-checkbox-group.umd.js +4 -14
  6. package/bundles/material-checkbox-group.umd.js.map +1 -1
  7. package/bundles/material-form-builder.umd.js +497 -483
  8. package/bundles/material-form-builder.umd.js.map +1 -1
  9. package/bundles/material-forms.umd.js +96 -64
  10. package/bundles/material-forms.umd.js.map +1 -1
  11. package/bundles/material-image.umd.js +3 -10
  12. package/bundles/material-image.umd.js.map +1 -1
  13. package/bundles/material-monaco-editor.umd.js +4 -7
  14. package/bundles/material-monaco-editor.umd.js.map +1 -1
  15. package/bundles/material-node-icon.umd.js +3 -10
  16. package/bundles/material-node-icon.umd.js.map +1 -1
  17. package/bundles/material-page-slider.umd.js +2 -7
  18. package/bundles/material-page-slider.umd.js.map +1 -1
  19. package/bundles/material-reports.umd.js +4 -6
  20. package/bundles/material-reports.umd.js.map +1 -1
  21. package/bundles/material-time.umd.js +4 -12
  22. package/bundles/material-time.umd.js.map +1 -1
  23. package/calendar/index.metadata.json +1 -1
  24. package/checkbox-group/index.metadata.json +1 -1
  25. package/esm2015/barcode/barcode-module.js +3 -7
  26. package/esm2015/barcode/barcode.js +3 -3
  27. package/esm2015/calendar/calendar-module.js +4 -14
  28. package/esm2015/calendar/calendar.js +4 -6
  29. package/esm2015/checkbox-group/checkbox-group-item.js +3 -3
  30. package/esm2015/checkbox-group/checkbox-group-module.js +4 -14
  31. package/esm2015/form-builder/branch-line.js +2 -2
  32. package/esm2015/form-builder/choices-origin-data-source.js +1 -1
  33. package/esm2015/form-builder/choices-origin-editor-dialog.js +7 -4
  34. package/esm2015/form-builder/choices-origin-editor.js +1 -1
  35. package/esm2015/form-builder/condition-editor-dialog.js +1 -1
  36. package/esm2015/form-builder/condition-editor.js +9 -8
  37. package/esm2015/form-builder/form-builder-module.js +29 -14
  38. package/esm2015/form-builder/form-builder-service.js +126 -125
  39. package/esm2015/form-builder/form-builder-utils.js +4 -3
  40. package/esm2015/form-builder/form-builder.js +30 -26
  41. package/esm2015/form-builder/node-entry.js +7 -5
  42. package/esm2015/form-builder/node-properties.js +297 -311
  43. package/esm2015/form-builder/node-type-entry.js +2 -2
  44. package/esm2015/form-builder/string-identifier-dialog.js +5 -7
  45. package/esm2015/form-builder/validation-condition-editor-dialog.js +1 -1
  46. package/esm2015/form-builder/warning-condition-editor-dialog.js +1 -1
  47. package/esm2015/forms/barcode-field.js +3 -3
  48. package/esm2015/forms/boolean-field.js +3 -3
  49. package/esm2015/forms/date-field.js +2 -2
  50. package/esm2015/forms/date-input-field.js +4 -4
  51. package/esm2015/forms/empty-field.js +3 -3
  52. package/esm2015/forms/field-service.js +42 -42
  53. package/esm2015/forms/field-warning-dialog.js +1 -1
  54. package/esm2015/forms/field.js +2 -2
  55. package/esm2015/forms/form.js +2 -2
  56. package/esm2015/forms/forms-module.js +55 -23
  57. package/esm2015/forms/input-field.js +2 -2
  58. package/esm2015/forms/multiple-choice-field.js +3 -3
  59. package/esm2015/forms/range-field.js +3 -3
  60. package/esm2015/forms/single-choice-field.js +3 -3
  61. package/esm2015/forms/table-field.js +3 -3
  62. package/esm2015/forms/text-field.js +2 -2
  63. package/esm2015/forms/time-field.js +3 -3
  64. package/esm2015/forms/video-url-field.js +2 -2
  65. package/esm2015/forms/warning-alert-service.js +1 -1
  66. package/esm2015/image/image-module.js +4 -11
  67. package/esm2015/image/image.js +2 -2
  68. package/esm2015/monaco-editor/autocomplete-singleton-model.js +3 -2
  69. package/esm2015/monaco-editor/editor-options-model.js +1 -1
  70. package/esm2015/monaco-editor/monaco-editor-module.js +3 -7
  71. package/esm2015/monaco-editor/monaco-editor.js +3 -3
  72. package/esm2015/node-icon/node-icon-module.js +4 -11
  73. package/esm2015/node-icon/node-icon.js +1 -1
  74. package/esm2015/page-slider/page-slider-module.js +3 -8
  75. package/esm2015/page-slider/page-slider.js +2 -2
  76. package/esm2015/reports/chart-widget.js +2 -2
  77. package/esm2015/reports/formula-widget.js +2 -2
  78. package/esm2015/reports/image-container-widget.js +2 -2
  79. package/esm2015/reports/image-widget.js +2 -2
  80. package/esm2015/reports/map-widget.js +2 -2
  81. package/esm2015/reports/page-break-widget.js +2 -2
  82. package/esm2015/reports/report.js +2 -2
  83. package/esm2015/reports/reports-module.js +3 -6
  84. package/esm2015/reports/table-widget.js +3 -3
  85. package/esm2015/reports/text-widget.js +2 -2
  86. package/esm2015/reports/widget.js +3 -2
  87. package/esm2015/time/time-module.js +4 -12
  88. package/esm2015/time/time.js +3 -3
  89. package/fesm2015/barcode.js +3 -7
  90. package/fesm2015/barcode.js.map +1 -1
  91. package/fesm2015/calendar.js +5 -17
  92. package/fesm2015/calendar.js.map +1 -1
  93. package/fesm2015/checkbox-group.js +4 -14
  94. package/fesm2015/checkbox-group.js.map +1 -1
  95. package/fesm2015/form-builder.js +494 -483
  96. package/fesm2015/form-builder.js.map +1 -1
  97. package/fesm2015/forms.js +96 -64
  98. package/fesm2015/forms.js.map +1 -1
  99. package/fesm2015/image.js +3 -10
  100. package/fesm2015/image.js.map +1 -1
  101. package/fesm2015/monaco-editor.js +5 -8
  102. package/fesm2015/monaco-editor.js.map +1 -1
  103. package/fesm2015/node-icon.js +3 -10
  104. package/fesm2015/node-icon.js.map +1 -1
  105. package/fesm2015/page-slider.js +2 -7
  106. package/fesm2015/page-slider.js.map +1 -1
  107. package/fesm2015/reports.js +4 -6
  108. package/fesm2015/reports.js.map +1 -1
  109. package/fesm2015/time.js +4 -12
  110. package/fesm2015/time.js.map +1 -1
  111. package/form-builder/index.metadata.json +1 -1
  112. package/forms/index.metadata.json +1 -1
  113. package/image/index.metadata.json +1 -1
  114. package/monaco-editor/index.metadata.json +1 -1
  115. package/node-icon/index.metadata.json +1 -1
  116. package/package.json +2 -4
  117. package/page-slider/index.metadata.json +1 -1
  118. package/reports/index.metadata.json +1 -1
  119. package/time/index.metadata.json +1 -1
  120. package/bundles/material-report-builder.umd.js +0 -5814
  121. package/bundles/material-report-builder.umd.js.map +0 -1
  122. package/esm2015/report-builder/column.js +0 -97
  123. package/esm2015/report-builder/condition-editor.js +0 -159
  124. package/esm2015/report-builder/content.js +0 -255
  125. package/esm2015/report-builder/custom-widget-dialog.js +0 -51
  126. package/esm2015/report-builder/custom-widget-toolbar-button.js +0 -70
  127. package/esm2015/report-builder/custom-widgets-toolbar.js +0 -124
  128. package/esm2015/report-builder/forms-analyzer-dialog.js +0 -315
  129. package/esm2015/report-builder/forms-analyzer.js +0 -264
  130. package/esm2015/report-builder/image-filter.js +0 -32
  131. package/esm2015/report-builder/image-group.js +0 -106
  132. package/esm2015/report-builder/index.js +0 -25
  133. package/esm2015/report-builder/models.js +0 -23
  134. package/esm2015/report-builder/operations.js +0 -23
  135. package/esm2015/report-builder/properties.js +0 -765
  136. package/esm2015/report-builder/public-api.js +0 -26
  137. package/esm2015/report-builder/quill-editor.js +0 -299
  138. package/esm2015/report-builder/renderer-widget.js +0 -238
  139. package/esm2015/report-builder/report-builder-drag-data.js +0 -23
  140. package/esm2015/report-builder/report-builder-module.js +0 -114
  141. package/esm2015/report-builder/report-builder-service.js +0 -1685
  142. package/esm2015/report-builder/report-builder.externs.js +0 -6
  143. package/esm2015/report-builder/report-builder.js +0 -69
  144. package/esm2015/report-builder/theme-color-dialog.js +0 -90
  145. package/esm2015/report-builder/theme-color.js +0 -215
  146. package/esm2015/report-builder/tokens.js +0 -24
  147. package/esm2015/report-builder/toolbar-dialog.js +0 -56
  148. package/esm2015/report-builder/toolbar.js +0 -90
  149. package/esm2015/report-builder/utils.js +0 -48
  150. package/esm2015/report-builder/widget-toolbar-button.js +0 -47
  151. package/esm2015/report-builder/widgets-row-buttons.js +0 -133
  152. package/esm2015/report-builder/widgets-toolbar.js +0 -79
  153. package/fesm2015/report-builder.js +0 -5332
  154. package/fesm2015/report-builder.js.map +0 -1
  155. package/report-builder/_report-builder.scss +0 -0
  156. package/report-builder/column.d.ts +0 -63
  157. package/report-builder/condition-editor.d.ts +0 -67
  158. package/report-builder/content.d.ts +0 -142
  159. package/report-builder/custom-widget-dialog.d.ts +0 -31
  160. package/report-builder/custom-widget-toolbar-button.d.ts +0 -45
  161. package/report-builder/custom-widgets-toolbar.d.ts +0 -71
  162. package/report-builder/forms-analyzer-dialog.d.ts +0 -91
  163. package/report-builder/forms-analyzer.d.ts +0 -102
  164. package/report-builder/image-filter.d.ts +0 -25
  165. package/report-builder/image-group.d.ts +0 -69
  166. package/report-builder/index.d.ts +0 -24
  167. package/report-builder/index.metadata.json +0 -1
  168. package/report-builder/models.d.ts +0 -43
  169. package/report-builder/operations.d.ts +0 -45
  170. package/report-builder/package.json +0 -9
  171. package/report-builder/properties.d.ts +0 -365
  172. package/report-builder/public-api.d.ts +0 -26
  173. package/report-builder/quill-editor.d.ts +0 -113
  174. package/report-builder/renderer-widget.d.ts +0 -80
  175. package/report-builder/report-builder-drag-data.d.ts +0 -32
  176. package/report-builder/report-builder-module.d.ts +0 -23
  177. package/report-builder/report-builder-service.d.ts +0 -722
  178. package/report-builder/report-builder.d.ts +0 -36
  179. package/report-builder/theme-color-dialog.d.ts +0 -42
  180. package/report-builder/theme-color.d.ts +0 -108
  181. package/report-builder/tokens.d.ts +0 -24
  182. package/report-builder/toolbar-dialog.d.ts +0 -30
  183. package/report-builder/toolbar.d.ts +0 -48
  184. package/report-builder/utils.d.ts +0 -29
  185. package/report-builder/widget-toolbar-button.d.ts +0 -28
  186. package/report-builder/widgets-row-buttons.d.ts +0 -57
  187. package/report-builder/widgets-toolbar.d.ts +0 -44
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"AjfFormBuilderModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":63,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@ajf/material/monaco-editor","name":"AjfMonacoEditorModule","line":65,"character":4},{"__symbolic":"reference","module":"@ajf/material/node-icon","name":"AjfNodeIconModule","line":65,"character":27},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":65,"character":50},{"__symbolic":"reference","module":"@angular/cdk/drag-drop","name":"DragDropModule","line":65,"character":71},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":66,"character":4},{"__symbolic":"reference","module":"@angular/material/autocomplete","name":"MatAutocompleteModule","line":66,"character":27},{"__symbolic":"reference","module":"@angular/material/button","name":"MatButtonModule","line":66,"character":50},{"__symbolic":"reference","module":"@angular/material/card","name":"MatCardModule","line":66,"character":71},{"__symbolic":"reference","module":"@angular/material/checkbox","name":"MatCheckboxModule","line":67,"character":4},{"__symbolic":"reference","module":"@angular/material/chips","name":"MatChipsModule","line":67,"character":27},{"__symbolic":"reference","module":"@angular/material/dialog","name":"MatDialogModule","line":67,"character":50},{"__symbolic":"reference","module":"@angular/material/form-field","name":"MatFormFieldModule","line":67,"character":71},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":68,"character":4},{"__symbolic":"reference","module":"@angular/material/input","name":"MatInputModule","line":68,"character":27},{"__symbolic":"reference","module":"@angular/material/list","name":"MatListModule","line":68,"character":50},{"__symbolic":"reference","module":"@angular/material/menu","name":"MatMenuModule","line":68,"character":71},{"__symbolic":"reference","module":"@angular/material/select","name":"MatSelectModule","line":69,"character":4},{"__symbolic":"reference","module":"@angular/material/sidenav","name":"MatSidenavModule","line":69,"character":27},{"__symbolic":"reference","module":"@angular/material/slider","name":"MatSliderModule","line":69,"character":50},{"__symbolic":"reference","module":"@angular/material/table","name":"MatTableModule","line":69,"character":71},{"__symbolic":"reference","module":"@angular/material/toolbar","name":"MatToolbarModule","line":70,"character":4},{"__symbolic":"reference","module":"@angular/material/tooltip","name":"MatTooltipModule","line":70,"character":27},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":70,"character":50},{"__symbolic":"reference","module":"@ajf/core/transloco","name":"AjfTranslocoModule","line":70,"character":71},{"__symbolic":"reference","module":"@angular/material/expansion","name":"MatExpansionModule","line":71,"character":4},{"__symbolic":"reference","module":"@angular/material/slide-toggle","name":"MatSlideToggleModule","line":71,"character":27}],"declarations":[{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_a"},{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_b"},{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_c"},{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_d"},{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_e"},{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_f"},{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_g"},{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_h"},{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_i"},{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_j"},{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_k"},{"__symbolic":"reference","name":"AjfFormBuilder"}],"exports":[{"__symbolic":"reference","name":"AjfFormBuilder"}],"providers":[{"__symbolic":"reference","name":"AjfFormBuilderService"}]}]}],"members":{}},"AjfFormBuilderNodeTypeEntry":{"__symbolic":"interface"},"AjfFormBuilderNodeEntry":{"__symbolic":"interface"},"AjfFormBuilderEmptySlot":{"__symbolic":"interface"},"AjfFormBuilderMoveEvent":{"__symbolic":"interface"},"AjfFormBuilderNode":{"__symbolic":"interface"},"AjfContainerNode":{"__symbolic":"interface"},"flattenNodes":{"__symbolic":"function"},"AjfFormBuilderService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":216,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"setForm":[{"__symbolic":"method"}],"editNodeEntry":[{"__symbolic":"method"}],"editCondition":[{"__symbolic":"method"}],"saveCurrentCondition":[{"__symbolic":"method"}],"cancelConditionEdit":[{"__symbolic":"method"}],"assignListId":[{"__symbolic":"method"}],"insertNode":[{"__symbolic":"method"}],"saveNodeEntry":[{"__symbolic":"method"}],"cancelNodeEntryEdit":[{"__symbolic":"method"}],"deleteNodeEntry":[{"__symbolic":"method"}],"moveNodeEntry":[{"__symbolic":"method"}],"getCurrentForm":[{"__symbolic":"method"}],"editChoicesOrigin":[{"__symbolic":"method"}],"createChoicesOrigin":[{"__symbolic":"method"}],"cancelChoicesOriginEdit":[{"__symbolic":"method"}],"saveChoicesOrigin":[{"__symbolic":"method"}],"saveStringIdentifier":[{"__symbolic":"method"}],"_buildFormBuilderNodesTree":[{"__symbolic":"method"}],"_connectDropList":[{"__symbolic":"method"}],"_findMaxNodeId":[{"__symbolic":"method"}],"_initFormStreams":[{"__symbolic":"method"}],"_initChoicesOriginsStreams":[{"__symbolic":"method"}],"_initAttachmentsOriginsStreams":[{"__symbolic":"method"}],"_initStringIdentifierStreams":[{"__symbolic":"method"}],"_initNodesStreams":[{"__symbolic":"method"}],"_initSaveNode":[{"__symbolic":"method"}],"_initDeleteNode":[{"__symbolic":"method"}],"_initMoveNode":[{"__symbolic":"method"}],"_updateNodesList":[{"__symbolic":"method"}]}},"onDropProcess":{"__symbolic":"function"},"disableSlideDropPredicate":{"__symbolic":"function","parameters":["item"],"value":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"item"},"member":"data"},"member":"isSlide"}}},"disableFieldDropPredicate":{"__symbolic":"function"},"AjfFormBuilder":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":52,"character":1},"arguments":[{"selector":"ajf-form-builder","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":56,"character":19},"member":"OnPush"},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":57,"character":17},"member":"None"},"template":"<mat-toolbar>\n <button mat-icon-button (click)=\"leftSidenav.toggle()\">\n <mat-icon>add_box</mat-icon>\n </button>\n <button mat-button [matMenuTriggerFor]=\"choicesMenu\">\n {{'Choices'|transloco}}\n </button>\n <button mat-button (click)=\"editStringIdentifier()\">\n {{'Identifier'|transloco}}\n </button>\n <button\n mat-icon-button\n aria-label=\"Collapsed\"\n matTooltip=\"Keep slides collapsed\"\n >\n <mat-icon>unfold_less</mat-icon>\n </button>\n <mat-slide-toggle\n color=\"primary\"\n (change)=\"expandToggle($event)\"\n ></mat-slide-toggle>\n <button\n mat-icon-button\n aria-label=\"Expanded\"\n matTooltip=\"Keep slides expanded\"\n >\n <mat-icon>unfold_more</mat-icon>\n </button>\n <mat-menu #choicesMenu>\n <button (click)=\"createChoicesOrigin()\" mat-menu-item>\n {{'New..'|transloco}}\n </button>\n <ng-container *ngIf=\"choicesOrigins|async as cos\">\n <button\n *ngFor=\"let choicesOrigin of cos\"\n (click)=\"editChoicesOrigin(choicesOrigin)\"\n mat-menu-item\n >\n {{ (choicesOrigin.label || choicesOrigin.name)| transloco }}\n </button>\n </ng-container>\n </mat-menu>\n <span class=\"ajf-spacer\"></span>\n <button mat-icon-button (click)=\"rightSidenav.toggle()\">\n <mat-icon>settings</mat-icon>\n </button>\n</mat-toolbar>\n<mat-drawer-container cdkDropListGroup>\n <mat-drawer #leftSidenav position=\"start\" mode=\"over\">\n <div\n #sourceDropList\n cdkDropList\n [cdkDropListConnectedTo]=\"(connectedDropLists|async)!\"\n [cdkDropListEnterPredicate]=\"disableDrop\"\n [cdkDropListData]=\"nodeTypes\"\n >\n <ajf-fb-node-type-entry\n *ngFor=\"let nodeType of nodeTypes\"\n cdkDrag\n [cdkDragData]=\"nodeType\"\n (cdkDragStarted)=\"leftSidenav.close()\"\n [nodeType]=\"nodeType\"\n ></ajf-fb-node-type-entry>\n </div>\n </mat-drawer>\n <mat-drawer #rightSidenav position=\"end\" mode=\"side\" [opened]=\"true\">\n <ajf-fb-node-properties></ajf-fb-node-properties>\n </mat-drawer>\n <div #designer class=\"ajf-designer\">\n <ajf-fb-node-entry\n id=\"slides-list\"\n cdkDropList\n (cdkDropListDropped)=\"onDrop($event)\"\n [cdkDropListEnterPredicate]=\"disableFieldDrop\"\n *ngFor=\"let nodeEntry of (nodeEntriesTree|async); let isFirst = first\"\n [isExpanded]=\"isGlobalExpanded\"\n [isFirst]=\"isFirst\"\n [nodeEntry]=\"nodeEntry\"\n ></ajf-fb-node-entry>\n </div>\n</mat-drawer-container>\n","styles":["ajf-form-builder{display:flex;position:relative;min-height:300px;flex-direction:column;align-items:stretch}ajf-form-builder mat-toolbar mat-menu div[mat-menu-item]>button[mat-button]{flex:1 0 auto}ajf-form-builder mat-toolbar mat-menu div[mat-menu-item]>button[mat-icon-button]{flex:0 0 auto}ajf-form-builder mat-drawer-container{flex:1}ajf-form-builder mat-drawer-container mat-drawer{max-width:20%}ajf-form-builder mat-drawer-container .ajf-designer{padding:1em}ajf-form-builder mat-toolbar .ajf-spacer{flex:1 1 auto}\n"]}]}],"members":{"designerCont":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":60,"character":3},"arguments":["designer",{"static":true}]}]}],"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":66,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AjfFormBuilderService"},{"__symbolic":"reference","module":"@angular/material/dialog","name":"MatDialog","line":117,"character":72}]}],"ngAfterViewChecked":[{"__symbolic":"method"}],"ngAfterContentInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"createChoicesOrigin":[{"__symbolic":"method"}],"disableDrop":[{"__symbolic":"method"}],"disableFieldDrop":[{"__symbolic":"method"}],"onDrop":[{"__symbolic":"method"}],"editChoicesOrigin":[{"__symbolic":"method"}],"editStringIdentifier":[{"__symbolic":"method"}],"expandAll":[{"__symbolic":"method"}],"collapseAll":[{"__symbolic":"method"}],"expandToggle":[{"__symbolic":"method"}],"_setCurrentForm":[{"__symbolic":"method"}]}},"ɵgc_ajf_src_material_form_builder_form_builder_a":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":31,"character":1},"arguments":[{"selector":"ajf-fb-branch-line","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":35,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":36,"character":19},"member":"OnPush"},"template":"","styles":["ajf-fb-branch-line{display:block;position:absolute;top:25px;left:25px;width:25px;border-top:2px solid;border-left:2px solid;border-top-left-radius:6px;transition:height .5s ease-in-out}\n"]}]}],"members":{"offset":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3}}]}],"color":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":47,"character":3}}]}],"height":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":54,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":60,"character":27},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":60,"character":58}]}],"_updateHeight":[{"__symbolic":"method"}],"_updateOffset":[{"__symbolic":"method"}],"_updateColor":[{"__symbolic":"method"}]}},"ɵgc_ajf_src_material_form_builder_form_builder_b":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":28,"character":1},"arguments":[{"selector":"ajf-fb-choices-origin-editor","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":32,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":33,"character":19},"member":"OnPush"},"template":"<div>\n <mat-form-field>\n <input matInput [(ngModel)]=\"name\" [placeholder]=\"'Name' | transloco\" />\n </mat-form-field>\n <mat-form-field>\n <input matInput [(ngModel)]=\"label\" [placeholder]=\"'Label' | transloco\" />\n </mat-form-field>\n <ng-template [ngIf]=\"canEditChoices\">\n <button (click)=\"addRow()\" mat-button>\n <mat-icon>add</mat-icon>\n <span>{{'Add value'|transloco}}</span>\n </button>\n <mat-table [dataSource]=\"choices\">\n <ng-container matColumnDef=\"label\">\n <mat-header-cell *matHeaderCellDef\n >{{'Label'|transloco}}</mat-header-cell\n >\n <mat-cell *matCellDef=\"let row; let idx = index\">\n <input matInput [(ngModel)]=\"row.label\" type=\"text\" />\n </mat-cell>\n </ng-container>\n <ng-container matColumnDef=\"value\">\n <mat-header-cell *matHeaderCellDef\n >{{'Value'|transloco}}</mat-header-cell\n >\n <mat-cell *matCellDef=\"let row; let idx = index\">\n <input matInput [(ngModel)]=\"row.value\" type=\"text\" />\n </mat-cell>\n </ng-container>\n <ng-container matColumnDef=\"delete\">\n <mat-header-cell *matHeaderCellDef\n >{{'Delete'|transloco}}</mat-header-cell\n >\n <mat-cell *matCellDef=\"let row; let idx = index\">\n <mat-icon (click)=\"deleteRow(idx)\">{{'delete'|transloco}}</mat-icon>\n </mat-cell>\n </ng-container>\n\n <mat-header-row *matHeaderRowDef=\"displayedColumns\"></mat-header-row>\n <mat-row *matRowDef=\"let row; columns: displayedColumns;\"></mat-row>\n </mat-table>\n </ng-template>\n</div>\n","styles":["ajf-fb-choices-origin-editor mat-form-field+mat-form-field{margin-left:1em}ajf-fb-choices-origin-editor mat-table{max-height:300px}ajf-fb-choices-origin-editor mat-table mat-icon{cursor:pointer}\n"]}]}],"members":{"choicesOrigin":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":45,"character":3}}]}],"updateValue":[{"__symbolic":"method"}],"deleteRow":[{"__symbolic":"method"}],"addRow":[{"__symbolic":"method"}]}},"ɵgc_ajf_src_material_form_builder_form_builder_c":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":31,"character":1},"arguments":[{"selector":"ajf-fb-choices-origin-editor-dialog","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":35,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":36,"character":19},"member":"OnPush"},"template":"<h3 matDialogTitle>{{'Edit choices origin'|transloco}}</h3>\n<mat-dialog-content>\n <ajf-fb-choices-origin-editor\n *ngIf=\"choicesOrigin|async as co\"\n [choicesOrigin]=\"co!\"\n ></ajf-fb-choices-origin-editor>\n</mat-dialog-content>\n<mat-dialog-actions>\n <button mat-button (click)=\"saveChoicesOrigin()\">{{'Save'|transloco}}</button>\n <button mat-button (click)=\"cancelChoicesOriginEdit()\">\n {{'Close'|transloco}}\n </button>\n</mat-dialog-actions>\n","styles":["\n"]}]}],"members":{"editor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":39,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_b"},{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AjfFormBuilderService"}]}],"saveChoicesOrigin":[{"__symbolic":"method"}],"cancelChoicesOriginEdit":[{"__symbolic":"method"}]}},"ɵgc_ajf_src_material_form_builder_form_builder_d":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":35,"character":1},"arguments":[{"selector":"ajf-condition-editor","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":39,"character":19},"member":"OnPush"},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":40,"character":17},"member":"None"},"template":"<div class=\"ajf-editor\">\n <ajf-monaco-editor\n (init)=\"onEditorInit()\"\n (valueChange)=\"editedValue = $event\"\n [value]=\"condition\" language=\"javascript\"></ajf-monaco-editor>\n</div>\n<div class=\"ajf-editor-panel\">\n <ng-container *ngIf=\"fields as curFields\">\n <mat-nav-list dense *ngIf=\"curFields!.length > 0\">\n <a mat-list-item\n (click)=\"insertVariable(field.name)\"\n [matTooltip]=\"field.label\"\n *ngFor=\"let field of curFields!\">\n <ajf-node-icon [node]=\"field\"></ajf-node-icon>\n {{ field.name }}\n </a>\n </mat-nav-list>\n </ng-container>\n</div>\n","styles":["ajf-condition-editor{display:flex;flex-direction:row;align-items:stretch;max-height:512px}ajf-condition-editor .ajf-editor{flex:.75 0 auto;display:flex;flex-direction:row;align-items:stretch}ajf-condition-editor .ajf-editor monaco-editor{flex:1 0 auto;min-width:512px;min-height:256px}ajf-condition-editor .ajf-editor-panel{flex:.25 0 auto;overflow-y:auto}ajf-condition-editor ajf-monaco-editor{min-width:400px}\n"]}]}],"members":{"monacoEditor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":43,"character":3},"arguments":[{"__symbolic":"reference","module":"@ajf/material/monaco-editor","name":"AjfMonacoEditor","line":43,"character":13},{"static":true}]}]}],"fields":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}}]}],"condition":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":54,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ajf/core/forms","name":"AjfValidationService","line":58,"character":17}]}],"insertVariable":[{"__symbolic":"method"}],"onEditorInit":[{"__symbolic":"method"}],"_updateVariables":[{"__symbolic":"method"}],"_updateFunctions":[{"__symbolic":"method"}],"_fieldVarType":[{"__symbolic":"method"}]}},"ɵgc_ajf_src_material_form_builder_form_builder_e":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":32,"character":1},"arguments":[{"selector":"ajf-condition-editor-dialog","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":36,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":37,"character":19},"member":"OnPush"},"template":"<h3 matDialogTitle>{{'Edit condition'|transloco}}</h3>\n<mat-dialog-content>\n <ajf-condition-editor\n *ngIf=\"fields|async as curFields\"\n [fields]=\"curFields!\"\n [condition]=\"condition\"\n ></ajf-condition-editor>\n</mat-dialog-content>\n<mat-dialog-actions>\n <button mat-button (click)=\"saveCondition()\">{{'Save'|transloco}}</button>\n <button mat-button matDialogClose>{{'Close'|transloco}}</button>\n</mat-dialog-actions>\n","styles":["ajf-condition-editor-dialog mat-dialog-content{overflow:visible}\n"]}]}],"members":{"editor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":40,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_d"},{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AjfFormBuilderService"},{"__symbolic":"reference","name":"MatDialogRef","module":"@angular/material/dialog","arguments":[{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_e"}]}]}],"saveCondition":[{"__symbolic":"method"}]}},"ɵgc_ajf_src_material_form_builder_form_builder_f":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":59,"character":1},"arguments":[{"selector":"ajf-fb-node-entry","host":{"(window.resize)":"onResize()","$quoted$":["(window.resize)"]},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":64,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":65,"character":19},"member":"OnPush"},"template":"<ng-container *ngIf=\"nodeEntry != null ; else rootEmpty\">\n <ng-template [ngIf]=\"isNodeEntry && !isLastNode()\">\n <ajf-fb-branch-line\n *ngFor=\"let childNodeEntry of realNodeEntry.children; let idx = index\"\n [offset]=\"idx\"\n [color]=\"branchColors[idx]\"\n ></ajf-fb-branch-line>\n </ng-template>\n\n <div\n class=\"mat-card-container\"\n [class.ajf-highlight]=\"(currentEditedNode|async) == nodeEntry\"\n >\n <div\n *ngIf=\"!isFirst\"\n class=\"ajf-origin-line\"\n [style.margin-left]=\"originLeftMargin\"\n [style.border-color]=\"firstBranchColor\"\n ></div>\n <ng-template [ngIf]=\"isNodeEntry\">\n <ng-container *ngIf=\"!isDraggable; else draggable\">\n <mat-card>\n <ng-container *ngTemplateOutlet=\"cardTitle\"></ng-container>\n <ng-container *ngTemplateOutlet=\"cardContent\"></ng-container>\n </mat-card>\n </ng-container>\n\n <ng-template #draggable>\n <mat-card cdkDrag [cdkDragData]=\"realNodeEntry\" class=\"ajf-draggable-box\">\n <ng-container\n *ngIf=\"isSlide(realNodeEntry.node); else fieldPanel\"\n >\n <ng-container *ngTemplateOutlet=\"slidePanel\"></ng-container>\n </ng-container>\n </mat-card>\n </ng-template>\n\n <ng-template #slidePanel>\n <mat-expansion-panel\n [expanded]=\"isExpanded\"\n (opened)=\"isExpanded = true\"\n (closed)=\"isExpanded = false\"\n class=\"mat-elevation-z\"\n >\n <mat-expansion-panel-header>\n <ng-container *ngTemplateOutlet=\"cardTitle\"></ng-container>\n </mat-expansion-panel-header>\n <ng-container *ngTemplateOutlet=\"cardContent\"></ng-container>\n </mat-expansion-panel>\n </ng-template>\n\n <ng-template #fieldPanel>\n <ng-container *ngTemplateOutlet=\"cardTitle\"></ng-container>\n <ng-container *ngTemplateOutlet=\"cardContent\"></ng-container>\n </ng-template>\n\n <ng-template #cardTitle>\n <div class=\"ajf-title-row\">\n <ajf-node-icon [node]=\"realNodeEntry.node\"></ajf-node-icon>\n <span\n class=\"ajf-title\"\n [innerHTML]=\"(realNodeEntry.node.label || realNodeEntry.node.name) | transloco\"\n ></span>\n <span\n *ngIf=\"realNodeEntry.node.visibility && realNodeEntry.node.visibility?.condition !== 'true'\"\n class=\"ajf-visibility-condition\"\n [innerHTML]=\"'Condition: (' + realNodeEntry.node.visibility?.condition + ')'\"\n >\n </span>\n <span class=\"ajf-actions\">\n <button\n [disabled]=\"(currentEditedNode|async) == nodeEntry\"\n (click)=\"edit($event)\"\n mat-icon-button\n >\n <mat-icon>edit</mat-icon>\n </button>\n <button\n [disabled]=\"(currentEditedNode|async) == null\"\n (click)=\"delete($event)\"\n mat-icon-button\n >\n <mat-icon>delete</mat-icon>\n </button>\n </span>\n </div>\n </ng-template>\n\n <ng-template #cardContent>\n <div *ngIf=\"hasContent\">\n <ajf-fb-node-entry\n cdkDropList\n class=\"ajf-fields-list\"\n *ngFor=\"let contentEntry of realNodeEntry.content; let isFirstChild = first; let idx = index\"\n [id]=\"assignId()\"\n [level]=\"level + 1\"\n [isFirst]=\"isFirstChild\"\n [firstBranchColor]=\"branchColors[idx]\"\n [nodeEntry]=\"contentEntry\"\n [cdkDropListEnterPredicate]=\"disableSlideDrop\"\n (cdkDropListDropped)=\"onDrop($event, true)\"\n [isExpanded]=\"isExpanded\"\n ></ajf-fb-node-entry>\n <mat-card\n class=\"ajf-empty\"\n *ngIf=\"realNodeEntry.content.length === 0\"\n cdkDropList\n [id]=\"assignId(true)\"\n [cdkDropListEnterPredicate]=\"disableSlideDrop\"\n (cdkDropListDropped)=\"onDrop($event, true)\"\n ><mat-card-title>Drop your fields here</mat-card-title></mat-card\n >\n </div>\n </ng-template>\n </ng-template>\n </div>\n\n <ng-template [ngIf]=\"isNodeEntry\">\n <ng-container\n *ngFor=\"let childNodeEntry of realNodeEntry.children; let idx = index\"\n >\n <ajf-fb-node-entry\n *ngIf=\"!isLastNode()\"\n [level]=\"level\"\n [originOffset]=\"idx\"\n [firstBranchColor]=\"branchColors[idx]\"\n [nodeEntry]=\"childNodeEntry\"\n [isExpanded]=\"isExpanded\"\n ></ajf-fb-node-entry>\n </ng-container>\n </ng-template>\n</ng-container>\n\n<ng-template #rootEmpty>\n <div class=\"mat-card-container\">\n <mat-card\n class=\"ajf-empty\"\n cdkDropList\n [cdkDropListEnterPredicate]=\"emptyAreaDropPredicate()\"\n (cdkDropListDropped)=\"onDrop($event)\"\n ><mat-card-title>Drop your slides here</mat-card-title>\n </mat-card>\n </div>\n</ng-template>\n","styles":["ajf-fb-node-entry{display:block;position:relative}ajf-fb-node-entry .mat-card-container{position:relative}ajf-fb-node-entry .mat-card-container .ajf-origin-line{position:absolute;top:0;left:25px;width:25px;height:25px;border-bottom:2px solid;border-left:2px solid;border-bottom-left-radius:.5em}ajf-fb-node-entry .mat-card-container mat-card{margin-left:50px;padding:.5em 1em;margin-top:.2em;margin-bottom:.2em;background-color:#fff}ajf-fb-node-entry .mat-card-container mat-card .ajf-title-row{display:flex;flex:1 1 auto;flex-direction:row;align-items:center}ajf-fb-node-entry .mat-card-container mat-card .ajf-title-row>.ajf-title{flex:1 1 auto}ajf-fb-node-entry .mat-card-container mat-card .ajf-title-row>.ajf-visibility-condition{flex:1 1 auto;font-size:10px;color:#999}ajf-fb-node-entry .mat-card-container mat-card .ajf-title-row>.ajf-actions{flex:0 0 auto;white-space:nowrap}ajf-fb-node-entry .mat-card-container mat-card.ajf-empty{line-height:36px;border:2px dashed;box-shadow:none;box-sizing:border-box;text-align:center;color:#ccc}ajf-fb-node-entry .mat-card-container mat-card.ajf-draggable-box{padding:20px 10px;border-bottom:solid 1px #ccc;border-right:solid 1px #ccc;color:rgba(0,0,0,.87);box-sizing:border-box;cursor:move;background:#fff;font-size:14px}ajf-fb-node-entry .mat-card-container.ajf-highlight>mat-card{background-color:#fff9c4}ajf-fb-node-entry.ajf-fields-list{max-width:80%;min-height:60px;display:block;background:#fff;border-radius:4px;overflow:hidden}ajf-fb-node-entry .cdk-drag-placeholder{opacity:0;min-height:60px}ajf-fb-node-entry .ajf-fields-list.cdk-drop-list-dragging .ajf-draggable-box:not(.cdk-drag-placeholder),ajf-fb-node-entry .cdk-drag-animating{transition:transform 250ms cubic-bezier(0, 0, 0.2, 1)}\n"]}]}],"members":{"branchLines":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":68,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_a"}]}]}],"childEntries":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":69,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_f"},{"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":69,"character":39}}]}]}],"isFirst":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":80,"character":3}}]}],"isExpanded":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":94,"character":3}}]}],"nodeEntry":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":104,"character":3}}]}],"level":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":122,"character":3}}]}],"isDraggable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":130,"character":3}}]}],"originOffset":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":158,"character":3}}]}],"firstBranchColor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":172,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AjfFormBuilderService"}]}],"onResize":[{"__symbolic":"method"}],"edit":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"isLastNode":[{"__symbolic":"method"}],"isSlide":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onDrop":[{"__symbolic":"method"}],"assignId":[{"__symbolic":"method"}],"disableSlideDrop":[{"__symbolic":"method"}],"disableFieldDrop":[{"__symbolic":"method"}],"emptyAreaDropPredicate":[{"__symbolic":"method"}],"_updateBranchHeights":[{"__symbolic":"method"}]}},"ɵgc_ajf_src_material_form_builder_form_builder_g":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":99,"character":1},"arguments":[{"selector":"ajf-fb-node-properties","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":103,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":104,"character":19},"member":"OnPush"},"template":"<div\n [style.display]=\"(enabled|async) ? 'none' : 'block'\"\n class=\"ajf-disabled-overlay\"\n></div>\n<div class=\"ajf-header\">\n <h3>{{'Properties'|transloco}}</h3>\n <mat-icon (click)=\"save()\">save</mat-icon>\n <mat-icon (click)=\"cancel()\">cancel</mat-icon>\n</div>\n<ng-container *ngIf=\"nodeEntry|async as ne\">\n <ng-container *ngIf=\"propertiesForm|async as pf\">\n <form [formGroup]=\"pf!\" novalidate>\n <div class=\"ajf-prop\">\n <mat-form-field>\n <input\n matInput\n formControlName=\"name\"\n [placeholder]=\"'Name' | transloco\"\n />\n </mat-form-field>\n </div>\n <div class=\"ajf-prop\">\n <mat-form-field>\n <input\n matInput\n formControlName=\"label\"\n [placeholder]=\"'Label' | transloco\"\n />\n </mat-form-field>\n </div>\n <div class=\"ajf-prop\">\n <mat-form-field>\n <mat-label>{{'Visibility'|transloco}}</mat-label>\n <mat-select\n formControlName=\"visibilityOpt\"\n [placeholder]=\"'Visible' | transloco\"\n >\n <mat-option value=\"always\">{{'Always'|transloco}}</mat-option>\n <mat-option value=\"never\">{{'Never'|transloco}}</mat-option>\n <mat-option value=\"condition\"\n >{{'Condition...'|transloco}}</mat-option\n >\n </mat-select>\n </mat-form-field>\n <button\n (click)=\"editVisibility()\"\n [disabled]=\"pf!.value.visibilityOpt != 'condition'\"\n mat-raised-button\n [matTooltip]=\"curVisibility || ''\"\n >\n <div class=\"ajf-icon-cont\">\n <mat-icon>edit</mat-icon>\n <span>{{ curVisibility }}</span>\n </div>\n </button>\n </div>\n <div class=\"ajf-prop\">\n <div><label>{{'Branches'|transloco}}</label></div>\n <div>\n <mat-slider\n formControlName=\"conditionalBranchesNum\"\n thumbLabel\n tickInterval=\"auto\"\n min=\"1\"\n max=\"5\"\n step=\"1\"\n ></mat-slider>\n </div>\n <div *ngFor=\"let branch of conditionalBranches; let idx = index\">\n <button\n (click)=\"editConditionalBranch(idx)\"\n mat-raised-button\n [matTooltip]=\"branch\"\n >\n <div class=\"ajf-icon-cont\">\n <mat-icon>edit</mat-icon>\n <span>{{ branch }}</span>\n </div>\n </button>\n </div>\n </div>\n <ng-template [ngIf]=\"isRepeatingContainerNode(ne)\">\n <div class=\"ajf-prop\">\n <div><label>{{'Repetitions'|transloco}}</label></div>\n <div>\n <button\n (click)=\"editFormulaReps()\"\n mat-raised-button\n [matTooltip]=\"curFormulaReps || ''\"\n >\n <div class=\"ajf-icon-cont\">\n <mat-icon>edit</mat-icon>\n <span>{{ curFormulaReps }}</span>\n </div>\n </button>\n </div>\n <div><label>{{'Min repetitions'|transloco}}</label></div>\n <div>\n <mat-slider\n formControlName=\"minReps\"\n thumbLabel\n tickInterval=\"auto\"\n min=\"1\"\n max=\"5\"\n step=\"1\"\n ></mat-slider>\n </div>\n <div><label>{{'Max repetitions'|transloco}}</label></div>\n <div>\n <mat-slider\n formControlName=\"maxReps\"\n thumbLabel\n tickInterval=\"auto\"\n min=\"1\"\n max=\"5\"\n step=\"1\"\n ></mat-slider>\n </div>\n </div>\n </ng-template>\n <ng-template [ngIf]=\"isField(ne)\">\n <div class=\"ajf-prop\">\n <mat-form-field>\n <mat-label>{{'Field size'|transloco}}</mat-label>\n <mat-select\n formControlName=\"size\"\n [placeholder]=\"'Size' | transloco\"\n >\n <mat-option\n *ngFor=\"let fieldSize of fieldSizes\"\n [value]=\"fieldSize.value\"\n >\n {{ fieldSize.label|transloco }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"ajf-prop\">\n <mat-form-field>\n <input\n matInput\n formControlName=\"hint\"\n [placeholder]=\"'Hint' | transloco\"\n />\n </mat-form-field>\n </div>\n <div class=\"ajf-prop\">\n <mat-form-field>\n <textarea\n matInput\n formControlName=\"description\"\n [placeholder]=\"'Description' | transloco\"\n ></textarea>\n </mat-form-field>\n </div>\n <div class=\"ajf-prop\">\n <mat-form-field>\n <input\n matInput\n formControlName=\"defaultValue\"\n [placeholder]=\"'Default value' | transloco\"\n />\n </mat-form-field>\n </div>\n <div class=\"ajf-prop\">\n <div><label>{{'Formula'|transloco}}</label></div>\n <div>\n <button\n (click)=\"editFormula()\"\n mat-raised-button\n [matTooltip]=\"curFormula || ''\"\n >\n <div class=\"ajf-icon-cont\">\n <mat-icon>edit</mat-icon>\n <span>{{ curFormula }}</span>\n </div>\n </button>\n </div>\n </div>\n <!-- <div class=\"ajf-prop\">\n <div><label>{{'Force value'|translco}}</label></div>\n <div>\n <button (click)=\"editForceValue()\" mat-raised-button [matTooltip]=\"curForceValue\">\n <div class=\"ajf-icon-cont\">\n <mat-icon>edit</mat-icon>\n <span>{{ curForceValue }}</span>\n </div>\n </button>\n </div>\n </div> -->\n <div class=\"ajf-prop\">\n <mat-checkbox formControlName=\"notEmpty\"\n >{{'Not empty'|transloco}}</mat-checkbox\n >\n </div>\n <ng-template [ngIf]=\"isNumericField(ne!.node)\">\n <div class=\"ajf-prop\">\n <mat-form-field>\n <input\n matInput\n formControlName=\"minValue\"\n [placeholder]=\"'Min value' | transloco\"\n />\n </mat-form-field>\n </div>\n <div class=\"ajf-prop\">\n <mat-form-field>\n <input\n matInput\n formControlName=\"maxValue\"\n [placeholder]=\"'Max value' | transloco\"\n />\n </mat-form-field>\n </div>\n <div class=\"ajf-prop\">\n <mat-form-field>\n <input\n matInput\n formControlName=\"minDigits\"\n [placeholder]=\"'Min digits' | transloco\"\n />\n </mat-form-field>\n </div>\n <div class=\"ajf-prop\">\n <mat-form-field>\n <input\n matInput\n formControlName=\"maxDigits\"\n [placeholder]=\"'Max digits' | transloco\"\n />\n </mat-form-field>\n </div>\n </ng-template>\n <div class=\"ajf-prop\">\n <div class=\"ajf-header\">\n <label>{{ 'Validation' | transloco }}</label>\n <mat-icon class=\"ajf-pointer\" (click)=\"addValidationCondition()\"\n >add_circle_outline</mat-icon\n >\n </div>\n <div\n *ngIf=\"validationConditions == null || validationConditions.length == 0\"\n class=\"ajf-validation-row ajf-emph\"\n >\n {{'No conditions'|transloco}}\n </div>\n <div\n class=\"ajf-validation-row\"\n *ngFor=\"let validationCondition of validationConditions; let idx = index\"\n >\n <button\n (click)=\"editValidationCondition(idx)\"\n mat-raised-button\n [matTooltip]=\"validationCondition.condition\"\n >\n <div class=\"ajf-icon-cont\">\n <mat-icon>edit</mat-icon>\n <span>{{ validationCondition.condition }}</span>\n </div>\n </button>\n <mat-icon\n class=\"ajf-pointer\"\n (click)=\"removeValidationCondition(idx)\"\n >remove_circle_outline</mat-icon\n >\n </div>\n </div>\n <div class=\"ajf-prop\">\n <mat-checkbox formControlName=\"notEmptyWarning\"\n >{{'Not empty warning'|transloco}}</mat-checkbox\n >\n </div>\n <div class=\"ajf-prop\">\n <div class=\"ajf-header\">\n <label>{{'Warnings'|transloco}}</label>\n <mat-icon class=\"ajf-pointer\" (click)=\"addWarningCondition()\"\n >add_circle_outline</mat-icon\n >\n </div>\n <div\n *ngIf=\"warningConditions == null || warningConditions.length == 0\"\n class=\"ajf-validation-row ajf-emph\"\n >\n {{'No warnings'|transloco}}\n </div>\n <div\n class=\"ajf-validation-row\"\n *ngFor=\"let warningCondition of warningConditions; let idx = index\"\n >\n <button\n (click)=\"editWarningCondition(idx)\"\n mat-raised-button\n [matTooltip]=\"warningCondition.condition\"\n >\n <div class=\"ajf-icon-cont\">\n <mat-icon>edit</mat-icon>\n <span>{{ warningCondition.condition }}</span>\n </div>\n </button>\n <mat-icon class=\"ajf-pointer\" (click)=\"removeWarningCondition(idx)\"\n >remove_circle_outline</mat-icon\n >\n </div>\n </div>\n <div class=\"ajf-prop\">\n <div><label>{{'Go to next slide condition'|transloco}}</label></div>\n <div>\n <button\n (click)=\"editNextSlideCondition()\"\n mat-raised-button\n [matTooltip]=\"nextSlideCondition\"\n >\n <div class=\"ajf-icon-cont\">\n <mat-icon>edit</mat-icon>\n <span>{{ nextSlideCondition }}</span>\n </div>\n </button>\n </div>\n </div>\n <ng-template [ngIf]=\"isFieldWithChoices(ne!.node)\">\n <div class=\"ajf-prop\">\n <mat-form-field>\n <mat-label>{{'Choices origins'|transloco}}</mat-label>\n <mat-select\n formControlName=\"choicesOriginRef\"\n [placeholder]=\"'Choices' | transloco\"\n >\n <mat-option\n *ngFor=\"let choicesOrigin of choicesOrigins\"\n [value]=\"choicesOrigin.name\"\n >\n {{ (choicesOrigin.label || choicesOrigin.name)|transloco }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"ajf-prop\">\n <div><label>{{'Choices filter'|transloco}}</label></div>\n <div>\n <button\n (click)=\"editChoicesFilter()\"\n mat-raised-button\n [matTooltip]=\"curChoicesFilter\"\n >\n <div class=\"ajf-icon-cont\">\n <mat-icon>edit</mat-icon>\n <span>{{ curChoicesFilter }}</span>\n </div>\n </button>\n </div>\n </div>\n <div class=\"ajf-prop\">\n <mat-checkbox formControlName=\"forceExpanded\"\n >{{'Force expanded selection'|transloco}}</mat-checkbox\n >\n </div>\n <div class=\"ajf-prop\">\n <mat-checkbox formControlName=\"forceNarrow\"\n >{{'Force narrow selection'|transloco}}</mat-checkbox\n >\n </div>\n <div class=\"ajf-prop\">\n <div class=\"ajf-header\">\n <label>{{'Trigger selection'|transloco}}</label>\n <mat-icon class=\"ajf-pointer\" (click)=\"addTriggerCondition()\"\n >add_circle_outline</mat-icon\n >\n </div>\n <div\n *ngIf=\"triggerConditions == null || triggerConditions.length == 0\"\n class=\"ajf-validation-row ajf-emph\"\n >\n {{'No trigger condition'|transloco}}\n </div>\n <div\n class=\"ajf-validation-row\"\n *ngFor=\"let triggerCondition of triggerConditions; let idx = index\"\n >\n <button\n (click)=\"editTriggerCondition(idx)\"\n mat-raised-button\n [matTooltip]=\"triggerCondition\"\n >\n <div class=\"ajf-icon-cont\">\n <mat-icon>edit</mat-icon>\n <span>{{ triggerCondition }}</span>\n </div>\n </button>\n <mat-icon class=\"pointer\" (click)=\"removeTriggerCondition(idx)\"\n >remove_circle_outline</mat-icon\n >\n </div>\n </div>\n </ng-template>\n </ng-template>\n </form>\n </ng-container>\n</ng-container>\n","styles":["ajf-fb-node-properties{display:block;padding:1em;position:relative}ajf-fb-node-properties mat-icon{cursor:pointer}ajf-fb-node-properties .ajf-header{display:flex;flex-direction:row;align-items:center;flex-wrap:nowrap}ajf-fb-node-properties .ajf-header>h3,ajf-fb-node-properties .ajf-header>label{flex:1 0 auto;margin-right:.5em}ajf-fb-node-properties .ajf-header>mat-icon{flex:0 0 auto;margin-left:.5em}ajf-fb-node-properties .ajf-disabled-overlay{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.4;background-color:#fff}ajf-fb-node-properties .ajf-emph{font-style:italic}ajf-fb-node-properties [mat-raised-button]{margin:.5em 0}ajf-fb-node-properties [mat-raised-button].ajf-pointer{cursor:pointer}ajf-fb-node-properties [mat-raised-button] .ajf-icon-cont{display:flex;flex-direction:row;align-items:center}ajf-fb-node-properties [mat-raised-button] .ajf-icon-cont span{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;display:block;min-height:36px}ajf-fb-node-properties .ajf-validation-row{margin:.5em 0;display:flex;flex-direction:row;align-items:center}ajf-fb-node-properties .ajf-validation-row button{flex:1 1 auto}ajf-fb-node-properties .ajf-validation-row mat-icon{flex:0 0 auto}ajf-fb-node-properties .ajf-prop{margin:.5em 0}ajf-fb-node-properties mat-form-field,ajf-fb-node-properties mat-slider,ajf-fb-node-properties [mat-raised-button]{width:100%}\n"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":268,"character":20},{"__symbolic":"reference","name":"AjfFormBuilderService"},{"__symbolic":"reference","module":"@angular/material/dialog","name":"MatDialog","line":270,"character":23},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":271,"character":19}]}],"editVisibility":[{"__symbolic":"method"}],"editConditionalBranch":[{"__symbolic":"method"}],"editFormulaReps":[{"__symbolic":"method"}],"editChoicesFilter":[{"__symbolic":"method"}],"editFormula":[{"__symbolic":"method"}],"editForceValue":[{"__symbolic":"method"}],"editValidationCondition":[{"__symbolic":"method"}],"addValidationCondition":[{"__symbolic":"method"}],"removeValidationCondition":[{"__symbolic":"method"}],"editWarningCondition":[{"__symbolic":"method"}],"addWarningCondition":[{"__symbolic":"method"}],"removeWarningCondition":[{"__symbolic":"method"}],"editNextSlideCondition":[{"__symbolic":"method"}],"editTriggerCondition":[{"__symbolic":"method"}],"addTriggerCondition":[{"__symbolic":"method"}],"removeTriggerCondition":[{"__symbolic":"method"}],"isField":[{"__symbolic":"method"}],"isNumericField":[{"__symbolic":"method"}],"isFieldWithChoices":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"_initSave":[{"__symbolic":"method"}],"_initForm":[{"__symbolic":"method"}],"_destroyConditionDialog":[{"__symbolic":"method"}],"_destroyValidationConditionDialog":[{"__symbolic":"method"}],"_destroyWarningConditionDialog":[{"__symbolic":"method"}],"_initRemoveTriggerCondition":[{"__symbolic":"method"}],"_initAddTriggerCondition":[{"__symbolic":"method"}],"_initTriggerConditionEdit":[{"__symbolic":"method"}],"_initRemoveWarningCondition":[{"__symbolic":"method"}],"_initAddWarningCondition":[{"__symbolic":"method"}],"_initWarningConditionEdit":[{"__symbolic":"method"}],"_initRemoveValidationCondition":[{"__symbolic":"method"}],"_initAddValidationCondition":[{"__symbolic":"method"}],"_initValidationConditionEdit":[{"__symbolic":"method"}],"_initForceValueEdit":[{"__symbolic":"method"}],"_initNextSlideConditionEdit":[{"__symbolic":"method"}],"_initFormulaEdit":[{"__symbolic":"method"}],"_initFormulaRepsEdit":[{"__symbolic":"method"}],"_initChoicesFilterEdit":[{"__symbolic":"method"}],"_initConditionalBranchEdit":[{"__symbolic":"method"}],"_initVisibilityEdit":[{"__symbolic":"method"}],"_handleTriggerCondtionsChange":[{"__symbolic":"method"}],"_handleWarningCondtionsChange":[{"__symbolic":"method"}],"_handleValidationCondtionsChange":[{"__symbolic":"method"}],"_handleForceValueChange":[{"__symbolic":"method"}],"_handleNextSlideConditionChange":[{"__symbolic":"method"}],"_handleFormulaChange":[{"__symbolic":"method"}],"_handleFormulaRepsChange":[{"__symbolic":"method"}],"_handleChoicesFilterChange":[{"__symbolic":"method"}],"_handleConditionalBranchesChange":[{"__symbolic":"method"}],"_handleVisibilityChange":[{"__symbolic":"method"}],"_guessVisibilityOpt":[{"__symbolic":"method"}]}},"ɵgc_ajf_src_material_form_builder_form_builder_h":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":33,"character":1},"arguments":[{"selector":"ajf-fb-node-type-entry","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":37,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":38,"character":19},"member":"OnPush"},"template":"<ng-container *ngIf=\"nodeType\">\n <mat-icon\n [fontSet]=\"nodeType.icon.fontSet\" [fontIcon]=\"nodeType.icon.fontIcon\"></mat-icon>\n {{ nodeType.label }}\n</ng-container>\n","styles":["ajf-fb-node-type-entry{display:block;padding:1em 1.5em}ajf-fb-node-type-entry mat-icon{vertical-align:middle}\n"]}]}],"members":{"nodeType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":45,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":51,"character":28}]}]}},"ɵgc_ajf_src_material_form_builder_form_builder_i":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":39,"character":1},"arguments":[{"selector":"ajf-fb-string-identifier-dialog","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":43,"character":19},"member":"OnPush"},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":44,"character":17},"member":"None"},"template":"<h3 matDialogTitle>{{'Edit identifier'|transloco}}</h3>\n<mat-dialog-content>\n <button (click)=\"addRow()\" mat-button>\n <mat-icon>add</mat-icon>\n <span>{{'Add value'|transloco}}</span>\n </button>\n <mat-table [dataSource]=\"dataSource\">\n <ng-container matColumnDef=\"label\">\n <mat-header-cell *matHeaderCellDef>{{'Label'|transloco}}</mat-header-cell>\n <mat-cell *matCellDef=\"let row; let idx = index\">\n <mat-form-field>\n <input\n matInput\n [placeholder]=\"'Label'|transloco\"\n autofocus\n [(ngModel)]=\"row.label\"\n />\n </mat-form-field>\n </mat-cell>\n </ng-container>\n <ng-container matColumnDef=\"value\">\n <mat-header-cell *matHeaderCellDef>{{'Value'|transloco}}</mat-header-cell>\n <mat-cell *matCellDef=\"let row; let idx = index\">\n <mat-form-field>\n <mat-chip-list #chipList>\n <mat-chip\n *ngFor=\"let field of row.value\"\n (removed)=\"removeValue(row, field)\"\n >\n {{ field }}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n </mat-chip-list>\n <input\n #valueInput\n [ngModel]=\"row.value\"\n [matAutocomplete]=\"valueAc\"\n [matChipInputFor]=\"chipList\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"addValue(row, $event, valueInput)\"\n [placeholder]=\"'Value'|transloco\"\n />\n <mat-autocomplete\n #valueAc=\"matAutocomplete\"\n (optionSelected)=\"selected(row, $event)\"\n >\n <mat-option *ngFor=\"let field of fields$ | async\" [value]=\"field\"\n >{{field}}</mat-option\n >\n </mat-autocomplete>\n </mat-form-field>\n </mat-cell>\n </ng-container>\n <ng-container matColumnDef=\"show\">\n <mat-header-cell *matHeaderCellDef>{{'Show'|transloco}}</mat-header-cell>\n <mat-cell *matCellDef=\"let row; let idx = index\">\n <mat-form-field>\n <mat-select matNativeControl [(ngModel)]=\"row.show\">\n <mat-option value=\"all\">{{'All'|transloco}}</mat-option>\n <mat-option value=\"first\">{{'First'|transloco}}</mat-option>\n <mat-option value=\"last\">{{'Last'|transloco}}</mat-option>\n </mat-select>\n </mat-form-field>\n </mat-cell>\n </ng-container>\n <ng-container matColumnDef=\"delete\">\n <mat-header-cell *matHeaderCellDef\n >{{'Delete'|transloco}}</mat-header-cell\n >\n <mat-cell *matCellDef=\"let row; let idx = index\">\n <mat-icon (click)=\"deleteRow(idx)\">delete</mat-icon>\n </mat-cell>\n </ng-container>\n\n <mat-header-row *matHeaderRowDef=\"displayedColumns\"></mat-header-row>\n <mat-row *matRowDef=\"let row; columns: displayedColumns;\"></mat-row>\n </mat-table>\n</mat-dialog-content>\n<mat-dialog-actions>\n <button mat-button matDialogClose (click)=\"saveStringIdentifier()\">\n {{'Save'|transloco}}\n </button>\n</mat-dialog-actions>\n","styles":["\n"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AjfFormBuilderService"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":55,"character":69}]}],"addRow":[{"__symbolic":"method"}],"deleteRow":[{"__symbolic":"method"}],"addValue":[{"__symbolic":"method"}],"removeValue":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"saveStringIdentifier":[{"__symbolic":"method"}],"selected":[{"__symbolic":"method"}]}},"ɵgc_ajf_src_material_form_builder_form_builder_j":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":32,"character":1},"arguments":[{"selector":"ajf-fb-validation-condition-editor-dialog","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":36,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":37,"character":19},"member":"OnPush"},"template":"<h3 matDialogTitle>{{'Edit condition'|transloco}}</h3>\n<mat-dialog-content>\n <mat-form-field>\n <input\n matInput\n [(ngModel)]=\"errorMessage\"\n [placeholder]=\"'Error message'|transloco\"\n />\n </mat-form-field>\n <ajf-condition-editor\n *ngIf=\"fields|async as curFields\"\n [fields]=\"curFields!\"\n [condition]=\"condition\"\n ></ajf-condition-editor>\n</mat-dialog-content>\n<mat-dialog-actions>\n <button mat-button (click)=\"saveCondition()\">{{'Save'|transloco}}</button>\n <button mat-button matDialogClose>{{'Close'|transloco}}</button>\n</mat-dialog-actions>\n","styles":["ajf-fb-validation-condition-editor-dialog mat-dialog-content{overflow:visible}\n"]}]}],"members":{"editor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":40,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_d"},{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AjfFormBuilderService"},{"__symbolic":"reference","name":"MatDialogRef","module":"@angular/material/dialog","arguments":[{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_j"}]}]}],"saveCondition":[{"__symbolic":"method"}]}},"ɵgc_ajf_src_material_form_builder_form_builder_k":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":32,"character":1},"arguments":[{"selector":"ajf-fb-warning-condition-editor-dialog","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":36,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":37,"character":19},"member":"OnPush"},"template":"<h3 matDialogTitle>{{'Edit condition'|transloco}}</h3>\n<mat-dialog-content>\n <mat-form-field>\n <input\n matInput\n [(ngModel)]=\"warningMessage\"\n [placeholder]=\"'Warning message' | transloco\"\n />\n </mat-form-field>\n <ajf-condition-editor\n *ngIf=\"fields|async as curFields\"\n [fields]=\"curFields!\"\n [condition]=\"condition\"\n ></ajf-condition-editor>\n</mat-dialog-content>\n<mat-dialog-actions>\n <button mat-button (click)=\"saveCondition()\">{{'Save'|transloco}}</button>\n <button mat-button matDialogClose>{{'Close'|transloco}}</button>\n</mat-dialog-actions>\n","styles":["ajf-fb-warning-condition-editor-dialog mat-dialog-content{overflow:visible}\n"]}]}],"members":{"editor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":40,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_d"},{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AjfFormBuilderService"},{"__symbolic":"reference","name":"MatDialogRef","module":"@angular/material/dialog","arguments":[{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_k"}]}]}],"saveCondition":[{"__symbolic":"method"}]}}},"origins":{"AjfFormBuilderModule":"./form-builder-module","AjfFormBuilderNodeTypeEntry":"./form-builder-service","AjfFormBuilderNodeEntry":"./form-builder-service","AjfFormBuilderEmptySlot":"./form-builder-service","AjfFormBuilderMoveEvent":"./form-builder-service","AjfFormBuilderNode":"./form-builder-service","AjfContainerNode":"./form-builder-service","flattenNodes":"./form-builder-service","AjfFormBuilderService":"./form-builder-service","onDropProcess":"./form-builder-utils","disableSlideDropPredicate":"./form-builder-utils","disableFieldDropPredicate":"./form-builder-utils","AjfFormBuilder":"./form-builder","ɵgc_ajf_src_material_form_builder_form_builder_a":"./branch-line","ɵgc_ajf_src_material_form_builder_form_builder_b":"./choices-origin-editor","ɵgc_ajf_src_material_form_builder_form_builder_c":"./choices-origin-editor-dialog","ɵgc_ajf_src_material_form_builder_form_builder_d":"./condition-editor","ɵgc_ajf_src_material_form_builder_form_builder_e":"./condition-editor-dialog","ɵgc_ajf_src_material_form_builder_form_builder_f":"./node-entry","ɵgc_ajf_src_material_form_builder_form_builder_g":"./node-properties","ɵgc_ajf_src_material_form_builder_form_builder_h":"./node-type-entry","ɵgc_ajf_src_material_form_builder_form_builder_i":"./string-identifier-dialog","ɵgc_ajf_src_material_form_builder_form_builder_j":"./validation-condition-editor-dialog","ɵgc_ajf_src_material_form_builder_form_builder_k":"./warning-condition-editor-dialog"},"importAs":"@ajf/material/form-builder"}
1
+ {"__symbolic":"module","version":4,"metadata":{"AjfFormBuilderModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":63,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@ajf/material/monaco-editor","name":"AjfMonacoEditorModule","line":65,"character":4},{"__symbolic":"reference","module":"@ajf/material/node-icon","name":"AjfNodeIconModule","line":66,"character":4},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":67,"character":4},{"__symbolic":"reference","module":"@angular/cdk/drag-drop","name":"DragDropModule","line":68,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":69,"character":4},{"__symbolic":"reference","module":"@angular/material/autocomplete","name":"MatAutocompleteModule","line":70,"character":4},{"__symbolic":"reference","module":"@angular/material/button","name":"MatButtonModule","line":71,"character":4},{"__symbolic":"reference","module":"@angular/material/card","name":"MatCardModule","line":72,"character":4},{"__symbolic":"reference","module":"@angular/material/checkbox","name":"MatCheckboxModule","line":73,"character":4},{"__symbolic":"reference","module":"@angular/material/chips","name":"MatChipsModule","line":74,"character":4},{"__symbolic":"reference","module":"@angular/material/dialog","name":"MatDialogModule","line":75,"character":4},{"__symbolic":"reference","module":"@angular/material/form-field","name":"MatFormFieldModule","line":76,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":77,"character":4},{"__symbolic":"reference","module":"@angular/material/input","name":"MatInputModule","line":78,"character":4},{"__symbolic":"reference","module":"@angular/material/list","name":"MatListModule","line":79,"character":4},{"__symbolic":"reference","module":"@angular/material/menu","name":"MatMenuModule","line":80,"character":4},{"__symbolic":"reference","module":"@angular/material/select","name":"MatSelectModule","line":81,"character":4},{"__symbolic":"reference","module":"@angular/material/sidenav","name":"MatSidenavModule","line":82,"character":4},{"__symbolic":"reference","module":"@angular/material/slider","name":"MatSliderModule","line":83,"character":4},{"__symbolic":"reference","module":"@angular/material/table","name":"MatTableModule","line":84,"character":4},{"__symbolic":"reference","module":"@angular/material/toolbar","name":"MatToolbarModule","line":85,"character":4},{"__symbolic":"reference","module":"@angular/material/tooltip","name":"MatTooltipModule","line":86,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":87,"character":4},{"__symbolic":"reference","module":"@ajf/core/transloco","name":"AjfTranslocoModule","line":88,"character":4},{"__symbolic":"reference","module":"@angular/material/expansion","name":"MatExpansionModule","line":89,"character":4},{"__symbolic":"reference","module":"@angular/material/slide-toggle","name":"MatSlideToggleModule","line":90,"character":4}],"declarations":[{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_a"},{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_b"},{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_c"},{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_d"},{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_e"},{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_f"},{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_g"},{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_h"},{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_i"},{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_j"},{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_k"},{"__symbolic":"reference","name":"AjfFormBuilder"}],"exports":[{"__symbolic":"reference","name":"AjfFormBuilder"}],"providers":[{"__symbolic":"reference","name":"AjfFormBuilderService"}]}]}],"members":{}},"AjfFormBuilderNodeTypeEntry":{"__symbolic":"interface"},"AjfFormBuilderNodeEntry":{"__symbolic":"interface"},"AjfFormBuilderEmptySlot":{"__symbolic":"interface"},"AjfFormBuilderMoveEvent":{"__symbolic":"interface"},"AjfFormBuilderNode":{"__symbolic":"interface"},"AjfContainerNode":{"__symbolic":"interface"},"flattenNodes":{"__symbolic":"function"},"AjfFormBuilderService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":223,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"setForm":[{"__symbolic":"method"}],"editNodeEntry":[{"__symbolic":"method"}],"editCondition":[{"__symbolic":"method"}],"saveCurrentCondition":[{"__symbolic":"method"}],"cancelConditionEdit":[{"__symbolic":"method"}],"assignListId":[{"__symbolic":"method"}],"insertNode":[{"__symbolic":"method"}],"saveNodeEntry":[{"__symbolic":"method"}],"cancelNodeEntryEdit":[{"__symbolic":"method"}],"deleteNodeEntry":[{"__symbolic":"method"}],"moveNodeEntry":[{"__symbolic":"method"}],"getCurrentForm":[{"__symbolic":"method"}],"editChoicesOrigin":[{"__symbolic":"method"}],"createChoicesOrigin":[{"__symbolic":"method"}],"cancelChoicesOriginEdit":[{"__symbolic":"method"}],"saveChoicesOrigin":[{"__symbolic":"method"}],"saveStringIdentifier":[{"__symbolic":"method"}],"_buildFormBuilderNodesTree":[{"__symbolic":"method"}],"_connectDropList":[{"__symbolic":"method"}],"_findMaxNodeId":[{"__symbolic":"method"}],"_initFormStreams":[{"__symbolic":"method"}],"_initChoicesOriginsStreams":[{"__symbolic":"method"}],"_initAttachmentsOriginsStreams":[{"__symbolic":"method"}],"_initStringIdentifierStreams":[{"__symbolic":"method"}],"_initNodesStreams":[{"__symbolic":"method"}],"_initSaveNode":[{"__symbolic":"method"}],"_initDeleteNode":[{"__symbolic":"method"}],"_initMoveNode":[{"__symbolic":"method"}],"_updateNodesList":[{"__symbolic":"method"}]}},"onDropProcess":{"__symbolic":"function"},"disableSlideDropPredicate":{"__symbolic":"function","parameters":["item"],"value":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"item"},"member":"data"},"member":"isSlide"}}},"disableFieldDropPredicate":{"__symbolic":"function"},"AjfFormBuilder":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":52,"character":1},"arguments":[{"selector":"ajf-form-builder","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":56,"character":19},"member":"OnPush"},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":57,"character":17},"member":"None"},"template":"<mat-toolbar>\n <button mat-icon-button (click)=\"leftSidenav.toggle()\">\n <mat-icon>add_box</mat-icon>\n </button>\n <button mat-button [matMenuTriggerFor]=\"choicesMenu\">\n {{'Choices'|transloco}}\n </button>\n <button mat-button (click)=\"editStringIdentifier()\">\n {{'Identifier'|transloco}}\n </button>\n <button\n mat-icon-button\n aria-label=\"Collapsed\"\n matTooltip=\"Keep slides collapsed\"\n >\n <mat-icon>unfold_less</mat-icon>\n </button>\n <mat-slide-toggle\n color=\"primary\"\n (change)=\"expandToggle($event)\"\n ></mat-slide-toggle>\n <button\n mat-icon-button\n aria-label=\"Expanded\"\n matTooltip=\"Keep slides expanded\"\n >\n <mat-icon>unfold_more</mat-icon>\n </button>\n <mat-menu #choicesMenu>\n <button (click)=\"createChoicesOrigin()\" mat-menu-item>\n {{'New..'|transloco}}\n </button>\n <ng-container *ngIf=\"choicesOrigins|async as cos\">\n <button\n *ngFor=\"let choicesOrigin of cos\"\n (click)=\"editChoicesOrigin(choicesOrigin)\"\n mat-menu-item\n >\n {{ (choicesOrigin.label || choicesOrigin.name)| transloco }}\n </button>\n </ng-container>\n </mat-menu>\n <span class=\"ajf-spacer\"></span>\n <button mat-icon-button (click)=\"rightSidenav.toggle()\">\n <mat-icon>settings</mat-icon>\n </button>\n</mat-toolbar>\n<mat-drawer-container cdkDropListGroup>\n <mat-drawer #leftSidenav position=\"start\" mode=\"over\">\n <div\n #sourceDropList\n cdkDropList\n [cdkDropListConnectedTo]=\"(connectedDropLists|async)!\"\n [cdkDropListEnterPredicate]=\"disableDrop\"\n [cdkDropListData]=\"nodeTypes\"\n >\n <ajf-fb-node-type-entry\n *ngFor=\"let nodeType of nodeTypes\"\n cdkDrag\n [cdkDragData]=\"nodeType\"\n (cdkDragStarted)=\"leftSidenav.close()\"\n [nodeType]=\"nodeType\"\n ></ajf-fb-node-type-entry>\n </div>\n </mat-drawer>\n <mat-drawer #rightSidenav position=\"end\" mode=\"side\" [opened]=\"true\">\n <ajf-fb-node-properties></ajf-fb-node-properties>\n </mat-drawer>\n <div #designer class=\"ajf-designer\">\n <ajf-fb-node-entry\n id=\"slides-list\"\n cdkDropList\n (cdkDropListDropped)=\"onDrop($event)\"\n [cdkDropListEnterPredicate]=\"disableFieldDrop\"\n *ngFor=\"let nodeEntry of (nodeEntriesTree|async); let isFirst = first\"\n [isExpanded]=\"isGlobalExpanded\"\n [isFirst]=\"isFirst\"\n [nodeEntry]=\"nodeEntry\"\n ></ajf-fb-node-entry>\n </div>\n</mat-drawer-container>\n","styles":["ajf-form-builder{display:flex;position:relative;min-height:300px;flex-direction:column;align-items:stretch}ajf-form-builder mat-toolbar mat-menu div[mat-menu-item]>button[mat-button]{flex:1 0 auto}ajf-form-builder mat-toolbar mat-menu div[mat-menu-item]>button[mat-icon-button]{flex:0 0 auto}ajf-form-builder mat-drawer-container{flex:1}ajf-form-builder mat-drawer-container mat-drawer{max-width:20%}ajf-form-builder mat-drawer-container .ajf-designer{padding:1em}ajf-form-builder mat-toolbar .ajf-spacer{flex:1 1 auto}\n"]}]}],"members":{"designerCont":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":60,"character":3},"arguments":["designer",{"static":true}]}]}],"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":66,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AjfFormBuilderService"},{"__symbolic":"reference","module":"@angular/material/dialog","name":"MatDialog","line":117,"character":72}]}],"ngAfterViewChecked":[{"__symbolic":"method"}],"ngAfterContentInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"createChoicesOrigin":[{"__symbolic":"method"}],"disableDrop":[{"__symbolic":"method"}],"disableFieldDrop":[{"__symbolic":"method"}],"onDrop":[{"__symbolic":"method"}],"editChoicesOrigin":[{"__symbolic":"method"}],"editStringIdentifier":[{"__symbolic":"method"}],"expandAll":[{"__symbolic":"method"}],"collapseAll":[{"__symbolic":"method"}],"expandToggle":[{"__symbolic":"method"}],"_setCurrentForm":[{"__symbolic":"method"}]}},"ɵgc_ajf_src_material_form_builder_form_builder_a":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":31,"character":1},"arguments":[{"selector":"ajf-fb-branch-line","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":35,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":36,"character":19},"member":"OnPush"},"template":"","styles":["ajf-fb-branch-line{display:block;position:absolute;top:25px;left:25px;width:25px;border-top:2px solid;border-left:2px solid;border-top-left-radius:6px;transition:height .5s ease-in-out}\n"]}]}],"members":{"offset":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3}}]}],"color":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":47,"character":3}}]}],"height":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":54,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":60,"character":27},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":60,"character":58}]}],"_updateHeight":[{"__symbolic":"method"}],"_updateOffset":[{"__symbolic":"method"}],"_updateColor":[{"__symbolic":"method"}]}},"ɵgc_ajf_src_material_form_builder_form_builder_b":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":27,"character":1},"arguments":[{"selector":"ajf-fb-choices-origin-editor","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":31,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":32,"character":19},"member":"OnPush"},"template":"<div>\n <mat-form-field>\n <input matInput [(ngModel)]=\"name\" [placeholder]=\"'Name' | transloco\" />\n </mat-form-field>\n <mat-form-field>\n <input matInput [(ngModel)]=\"label\" [placeholder]=\"'Label' | transloco\" />\n </mat-form-field>\n <ng-template [ngIf]=\"canEditChoices\">\n <button (click)=\"addRow()\" mat-button>\n <mat-icon>add</mat-icon>\n <span>{{'Add value'|transloco}}</span>\n </button>\n <mat-table [dataSource]=\"choices\">\n <ng-container matColumnDef=\"label\">\n <mat-header-cell *matHeaderCellDef\n >{{'Label'|transloco}}</mat-header-cell\n >\n <mat-cell *matCellDef=\"let row; let idx = index\">\n <input matInput [(ngModel)]=\"row.label\" type=\"text\" />\n </mat-cell>\n </ng-container>\n <ng-container matColumnDef=\"value\">\n <mat-header-cell *matHeaderCellDef\n >{{'Value'|transloco}}</mat-header-cell\n >\n <mat-cell *matCellDef=\"let row; let idx = index\">\n <input matInput [(ngModel)]=\"row.value\" type=\"text\" />\n </mat-cell>\n </ng-container>\n <ng-container matColumnDef=\"delete\">\n <mat-header-cell *matHeaderCellDef\n >{{'Delete'|transloco}}</mat-header-cell\n >\n <mat-cell *matCellDef=\"let row; let idx = index\">\n <mat-icon (click)=\"deleteRow(idx)\">{{'delete'|transloco}}</mat-icon>\n </mat-cell>\n </ng-container>\n\n <mat-header-row *matHeaderRowDef=\"displayedColumns\"></mat-header-row>\n <mat-row *matRowDef=\"let row; columns: displayedColumns;\"></mat-row>\n </mat-table>\n </ng-template>\n</div>\n","styles":["ajf-fb-choices-origin-editor mat-form-field+mat-form-field{margin-left:1em}ajf-fb-choices-origin-editor mat-table{max-height:300px}ajf-fb-choices-origin-editor mat-table mat-icon{cursor:pointer}\n"]}]}],"members":{"choicesOrigin":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":3}}]}],"updateValue":[{"__symbolic":"method"}],"deleteRow":[{"__symbolic":"method"}],"addRow":[{"__symbolic":"method"}]}},"ɵgc_ajf_src_material_form_builder_form_builder_c":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":30,"character":1},"arguments":[{"selector":"ajf-fb-choices-origin-editor-dialog","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":34,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":35,"character":19},"member":"OnPush"},"template":"<h3 matDialogTitle>{{'Edit choices origin'|transloco}}</h3>\n<mat-dialog-content>\n <ajf-fb-choices-origin-editor\n *ngIf=\"choicesOrigin|async as co\"\n [choicesOrigin]=\"co!\"\n ></ajf-fb-choices-origin-editor>\n</mat-dialog-content>\n<mat-dialog-actions>\n <button mat-button (click)=\"saveChoicesOrigin()\">{{'Save'|transloco}}</button>\n <button mat-button (click)=\"cancelChoicesOriginEdit()\">\n {{'Close'|transloco}}\n </button>\n</mat-dialog-actions>\n","styles":["\n"]}]}],"members":{"editor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":38,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_b"},{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AjfFormBuilderService"}]}],"saveChoicesOrigin":[{"__symbolic":"method"}],"cancelChoicesOriginEdit":[{"__symbolic":"method"}]}},"ɵgc_ajf_src_material_form_builder_form_builder_d":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":35,"character":1},"arguments":[{"selector":"ajf-condition-editor","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":39,"character":19},"member":"OnPush"},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":40,"character":17},"member":"None"},"template":"<div class=\"ajf-editor\">\n <ajf-monaco-editor\n (init)=\"onEditorInit()\"\n (valueChange)=\"editedValue = $event\"\n [value]=\"condition\" language=\"javascript\"></ajf-monaco-editor>\n</div>\n<div class=\"ajf-editor-panel\">\n <ng-container *ngIf=\"fields as curFields\">\n <mat-nav-list dense *ngIf=\"curFields!.length > 0\">\n <a mat-list-item\n (click)=\"insertVariable(field.name)\"\n [matTooltip]=\"field.label\"\n *ngFor=\"let field of curFields!\">\n <ajf-node-icon [node]=\"field\"></ajf-node-icon>\n {{ field.name }}\n </a>\n </mat-nav-list>\n </ng-container>\n</div>\n","styles":["ajf-condition-editor{display:flex;flex-direction:row;align-items:stretch;max-height:512px}ajf-condition-editor .ajf-editor{flex:.75 0 auto;display:flex;flex-direction:row;align-items:stretch}ajf-condition-editor .ajf-editor monaco-editor{flex:1 0 auto;min-width:512px;min-height:256px}ajf-condition-editor .ajf-editor-panel{flex:.25 0 auto;overflow-y:auto}ajf-condition-editor ajf-monaco-editor{min-width:400px}\n"]}]}],"members":{"monacoEditor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":43,"character":3},"arguments":[{"__symbolic":"reference","module":"@ajf/material/monaco-editor","name":"AjfMonacoEditor","line":43,"character":13},{"static":true}]}]}],"fields":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}}]}],"condition":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":54,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ajf/core/forms","name":"AjfValidationService","line":58,"character":17}]}],"insertVariable":[{"__symbolic":"method"}],"onEditorInit":[{"__symbolic":"method"}],"_updateVariables":[{"__symbolic":"method"}],"_updateFunctions":[{"__symbolic":"method"}],"_fieldVarType":[{"__symbolic":"method"}]}},"ɵgc_ajf_src_material_form_builder_form_builder_e":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":31,"character":1},"arguments":[{"selector":"ajf-condition-editor-dialog","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":35,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":36,"character":19},"member":"OnPush"},"template":"<h3 matDialogTitle>{{'Edit condition'|transloco}}</h3>\n<mat-dialog-content>\n <ajf-condition-editor\n *ngIf=\"fields|async as curFields\"\n [fields]=\"curFields!\"\n [condition]=\"condition\"\n ></ajf-condition-editor>\n</mat-dialog-content>\n<mat-dialog-actions>\n <button mat-button (click)=\"saveCondition()\">{{'Save'|transloco}}</button>\n <button mat-button matDialogClose>{{'Close'|transloco}}</button>\n</mat-dialog-actions>\n","styles":["ajf-condition-editor-dialog mat-dialog-content{overflow:visible}\n"]}]}],"members":{"editor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":39,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_d"},{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AjfFormBuilderService"},{"__symbolic":"reference","name":"MatDialogRef","module":"@angular/material/dialog","arguments":[{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_e"}]}]}],"saveCondition":[{"__symbolic":"method"}]}},"ɵgc_ajf_src_material_form_builder_form_builder_f":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":58,"character":1},"arguments":[{"selector":"ajf-fb-node-entry","host":{"(window.resize)":"onResize()","$quoted$":["(window.resize)"]},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":63,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":64,"character":19},"member":"OnPush"},"template":"<ng-container *ngIf=\"nodeEntry != null ; else rootEmpty\">\n <ng-template [ngIf]=\"isNodeEntry && !isLastNode()\">\n <ajf-fb-branch-line\n *ngFor=\"let childNodeEntry of realNodeEntry.children; let idx = index\"\n [offset]=\"idx\"\n [color]=\"branchColors[idx]\"\n ></ajf-fb-branch-line>\n </ng-template>\n\n <div\n class=\"mat-card-container\"\n [class.ajf-highlight]=\"(currentEditedNode|async) == nodeEntry\"\n >\n <div\n *ngIf=\"!isFirst\"\n class=\"ajf-origin-line\"\n [style.margin-left]=\"originLeftMargin\"\n [style.border-color]=\"firstBranchColor\"\n ></div>\n <ng-template [ngIf]=\"isNodeEntry\">\n <ng-container *ngIf=\"!isDraggable; else draggable\">\n <mat-card>\n <ng-container *ngTemplateOutlet=\"cardTitle\"></ng-container>\n <ng-container *ngTemplateOutlet=\"cardContent\"></ng-container>\n </mat-card>\n </ng-container>\n\n <ng-template #draggable>\n <mat-card cdkDrag [cdkDragData]=\"realNodeEntry\" class=\"ajf-draggable-box\">\n <ng-container\n *ngIf=\"isSlide(realNodeEntry.node); else fieldPanel\"\n >\n <ng-container *ngTemplateOutlet=\"slidePanel\"></ng-container>\n </ng-container>\n </mat-card>\n </ng-template>\n\n <ng-template #slidePanel>\n <mat-expansion-panel\n [expanded]=\"isExpanded\"\n (opened)=\"isExpanded = true\"\n (closed)=\"isExpanded = false\"\n class=\"mat-elevation-z\"\n >\n <mat-expansion-panel-header>\n <ng-container *ngTemplateOutlet=\"cardTitle\"></ng-container>\n </mat-expansion-panel-header>\n <ng-container *ngTemplateOutlet=\"cardContent\"></ng-container>\n </mat-expansion-panel>\n </ng-template>\n\n <ng-template #fieldPanel>\n <ng-container *ngTemplateOutlet=\"cardTitle\"></ng-container>\n <ng-container *ngTemplateOutlet=\"cardContent\"></ng-container>\n </ng-template>\n\n <ng-template #cardTitle>\n <div class=\"ajf-title-row\">\n <ajf-node-icon [node]=\"realNodeEntry.node\"></ajf-node-icon>\n <span\n class=\"ajf-title\"\n [innerHTML]=\"(realNodeEntry.node.label || realNodeEntry.node.name) | transloco\"\n ></span>\n <span\n *ngIf=\"realNodeEntry.node.visibility && realNodeEntry.node.visibility?.condition !== 'true'\"\n class=\"ajf-visibility-condition\"\n [innerHTML]=\"'Condition: (' + realNodeEntry.node.visibility?.condition + ')'\"\n >\n </span>\n <span class=\"ajf-actions\">\n <button\n [disabled]=\"(currentEditedNode|async) == nodeEntry\"\n (click)=\"edit($event)\"\n mat-icon-button\n >\n <mat-icon>edit</mat-icon>\n </button>\n <button\n [disabled]=\"(currentEditedNode|async) == null\"\n (click)=\"delete($event)\"\n mat-icon-button\n >\n <mat-icon>delete</mat-icon>\n </button>\n </span>\n </div>\n </ng-template>\n\n <ng-template #cardContent>\n <div *ngIf=\"hasContent\">\n <ajf-fb-node-entry\n cdkDropList\n class=\"ajf-fields-list\"\n *ngFor=\"let contentEntry of realNodeEntry.content; let isFirstChild = first; let idx = index\"\n [id]=\"assignId()\"\n [level]=\"level + 1\"\n [isFirst]=\"isFirstChild\"\n [firstBranchColor]=\"branchColors[idx]\"\n [nodeEntry]=\"contentEntry\"\n [cdkDropListEnterPredicate]=\"disableSlideDrop\"\n (cdkDropListDropped)=\"onDrop($event, true)\"\n [isExpanded]=\"isExpanded\"\n ></ajf-fb-node-entry>\n <mat-card\n class=\"ajf-empty\"\n *ngIf=\"realNodeEntry.content.length === 0\"\n cdkDropList\n [id]=\"assignId(true)\"\n [cdkDropListEnterPredicate]=\"disableSlideDrop\"\n (cdkDropListDropped)=\"onDrop($event, true)\"\n ><mat-card-title>Drop your fields here</mat-card-title></mat-card\n >\n </div>\n </ng-template>\n </ng-template>\n </div>\n\n <ng-template [ngIf]=\"isNodeEntry\">\n <ng-container\n *ngFor=\"let childNodeEntry of realNodeEntry.children; let idx = index\"\n >\n <ajf-fb-node-entry\n *ngIf=\"!isLastNode()\"\n [level]=\"level\"\n [originOffset]=\"idx\"\n [firstBranchColor]=\"branchColors[idx]\"\n [nodeEntry]=\"childNodeEntry\"\n [isExpanded]=\"isExpanded\"\n ></ajf-fb-node-entry>\n </ng-container>\n </ng-template>\n</ng-container>\n\n<ng-template #rootEmpty>\n <div class=\"mat-card-container\">\n <mat-card\n class=\"ajf-empty\"\n cdkDropList\n [cdkDropListEnterPredicate]=\"emptyAreaDropPredicate()\"\n (cdkDropListDropped)=\"onDrop($event)\"\n ><mat-card-title>Drop your slides here</mat-card-title>\n </mat-card>\n </div>\n</ng-template>\n","styles":["ajf-fb-node-entry{display:block;position:relative}ajf-fb-node-entry .mat-card-container{position:relative}ajf-fb-node-entry .mat-card-container .ajf-origin-line{position:absolute;top:0;left:25px;width:25px;height:25px;border-bottom:2px solid;border-left:2px solid;border-bottom-left-radius:.5em}ajf-fb-node-entry .mat-card-container mat-card{margin-left:50px;padding:.5em 1em;margin-top:.2em;margin-bottom:.2em;background-color:#fff}ajf-fb-node-entry .mat-card-container mat-card .ajf-title-row{display:flex;flex:1 1 auto;flex-direction:row;align-items:center}ajf-fb-node-entry .mat-card-container mat-card .ajf-title-row>.ajf-title{flex:1 1 auto}ajf-fb-node-entry .mat-card-container mat-card .ajf-title-row>.ajf-visibility-condition{flex:1 1 auto;font-size:10px;color:#999}ajf-fb-node-entry .mat-card-container mat-card .ajf-title-row>.ajf-actions{flex:0 0 auto;white-space:nowrap}ajf-fb-node-entry .mat-card-container mat-card.ajf-empty{line-height:36px;border:2px dashed;box-shadow:none;box-sizing:border-box;text-align:center;color:#ccc}ajf-fb-node-entry .mat-card-container mat-card.ajf-draggable-box{padding:20px 10px;border-bottom:solid 1px #ccc;border-right:solid 1px #ccc;color:rgba(0,0,0,.87);box-sizing:border-box;cursor:move;background:#fff;font-size:14px}ajf-fb-node-entry .mat-card-container.ajf-highlight>mat-card{background-color:#fff9c4}ajf-fb-node-entry.ajf-fields-list{max-width:80%;min-height:60px;display:block;background:#fff;border-radius:4px;overflow:hidden}ajf-fb-node-entry .cdk-drag-placeholder{opacity:0;min-height:60px}ajf-fb-node-entry .ajf-fields-list.cdk-drop-list-dragging .ajf-draggable-box:not(.cdk-drag-placeholder),ajf-fb-node-entry .cdk-drag-animating{transition:transform 250ms cubic-bezier(0, 0, 0.2, 1)}\n"]}]}],"members":{"branchLines":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":67,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_a"}]}]}],"childEntries":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":68,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_f"},{"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":68,"character":39}}]}]}],"isFirst":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":79,"character":3}}]}],"isExpanded":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":93,"character":3}}]}],"nodeEntry":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":103,"character":3}}]}],"level":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":121,"character":3}}]}],"isDraggable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":129,"character":3}}]}],"originOffset":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":157,"character":3}}]}],"firstBranchColor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":171,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AjfFormBuilderService"}]}],"onResize":[{"__symbolic":"method"}],"edit":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"isLastNode":[{"__symbolic":"method"}],"isSlide":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onDrop":[{"__symbolic":"method"}],"assignId":[{"__symbolic":"method"}],"disableSlideDrop":[{"__symbolic":"method"}],"disableFieldDrop":[{"__symbolic":"method"}],"emptyAreaDropPredicate":[{"__symbolic":"method"}],"_updateBranchHeights":[{"__symbolic":"method"}]}},"ɵgc_ajf_src_material_form_builder_form_builder_g":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":97,"character":1},"arguments":[{"selector":"ajf-fb-node-properties","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":101,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":102,"character":19},"member":"OnPush"},"template":"<div\n [style.display]=\"(enabled|async) ? 'none' : 'block'\"\n class=\"ajf-disabled-overlay\"\n></div>\n<div class=\"ajf-header\">\n <h3>{{'Properties'|transloco}}</h3>\n <mat-icon (click)=\"save()\">save</mat-icon>\n <mat-icon (click)=\"cancel()\">cancel</mat-icon>\n</div>\n<ng-container *ngIf=\"nodeEntry|async as ne\">\n <ng-container *ngIf=\"propertiesForm|async as pf\">\n <form [formGroup]=\"pf!\" novalidate>\n <div class=\"ajf-prop\">\n <mat-form-field>\n <input\n matInput\n formControlName=\"name\"\n [placeholder]=\"'Name' | transloco\"\n />\n </mat-form-field>\n </div>\n <div class=\"ajf-prop\">\n <mat-form-field>\n <input\n matInput\n formControlName=\"label\"\n [placeholder]=\"'Label' | transloco\"\n />\n </mat-form-field>\n </div>\n <div class=\"ajf-prop\">\n <mat-form-field>\n <mat-label>{{'Visibility'|transloco}}</mat-label>\n <mat-select\n formControlName=\"visibilityOpt\"\n [placeholder]=\"'Visible' | transloco\"\n >\n <mat-option value=\"always\">{{'Always'|transloco}}</mat-option>\n <mat-option value=\"never\">{{'Never'|transloco}}</mat-option>\n <mat-option value=\"condition\"\n >{{'Condition...'|transloco}}</mat-option\n >\n </mat-select>\n </mat-form-field>\n <button\n (click)=\"editVisibility()\"\n [disabled]=\"pf!.value.visibilityOpt != 'condition'\"\n mat-raised-button\n [matTooltip]=\"curVisibility || ''\"\n >\n <div class=\"ajf-icon-cont\">\n <mat-icon>edit</mat-icon>\n <span>{{ curVisibility }}</span>\n </div>\n </button>\n </div>\n <div class=\"ajf-prop\">\n <div><label>{{'Branches'|transloco}}</label></div>\n <div>\n <mat-slider\n formControlName=\"conditionalBranchesNum\"\n thumbLabel\n tickInterval=\"auto\"\n min=\"1\"\n max=\"5\"\n step=\"1\"\n ></mat-slider>\n </div>\n <div *ngFor=\"let branch of conditionalBranches; let idx = index\">\n <button\n (click)=\"editConditionalBranch(idx)\"\n mat-raised-button\n [matTooltip]=\"branch\"\n >\n <div class=\"ajf-icon-cont\">\n <mat-icon>edit</mat-icon>\n <span>{{ branch }}</span>\n </div>\n </button>\n </div>\n </div>\n <ng-template [ngIf]=\"isRepeatingContainerNode(ne)\">\n <div class=\"ajf-prop\">\n <div><label>{{'Repetitions'|transloco}}</label></div>\n <div>\n <button\n (click)=\"editFormulaReps()\"\n mat-raised-button\n [matTooltip]=\"curFormulaReps || ''\"\n >\n <div class=\"ajf-icon-cont\">\n <mat-icon>edit</mat-icon>\n <span>{{ curFormulaReps }}</span>\n </div>\n </button>\n </div>\n <div><label>{{'Min repetitions'|transloco}}</label></div>\n <div>\n <mat-slider\n formControlName=\"minReps\"\n thumbLabel\n tickInterval=\"auto\"\n min=\"1\"\n max=\"5\"\n step=\"1\"\n ></mat-slider>\n </div>\n <div><label>{{'Max repetitions'|transloco}}</label></div>\n <div>\n <mat-slider\n formControlName=\"maxReps\"\n thumbLabel\n tickInterval=\"auto\"\n min=\"1\"\n max=\"5\"\n step=\"1\"\n ></mat-slider>\n </div>\n </div>\n </ng-template>\n <ng-template [ngIf]=\"isField(ne)\">\n <div class=\"ajf-prop\">\n <mat-form-field>\n <mat-label>{{'Field size'|transloco}}</mat-label>\n <mat-select\n formControlName=\"size\"\n [placeholder]=\"'Size' | transloco\"\n >\n <mat-option\n *ngFor=\"let fieldSize of fieldSizes\"\n [value]=\"fieldSize.value\"\n >\n {{ fieldSize.label|transloco }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"ajf-prop\">\n <mat-form-field>\n <input\n matInput\n formControlName=\"hint\"\n [placeholder]=\"'Hint' | transloco\"\n />\n </mat-form-field>\n </div>\n <div class=\"ajf-prop\">\n <mat-form-field>\n <textarea\n matInput\n formControlName=\"description\"\n [placeholder]=\"'Description' | transloco\"\n ></textarea>\n </mat-form-field>\n </div>\n <div class=\"ajf-prop\">\n <mat-form-field>\n <input\n matInput\n formControlName=\"defaultValue\"\n [placeholder]=\"'Default value' | transloco\"\n />\n </mat-form-field>\n </div>\n <div class=\"ajf-prop\">\n <div><label>{{'Formula'|transloco}}</label></div>\n <div>\n <button\n (click)=\"editFormula()\"\n mat-raised-button\n [matTooltip]=\"curFormula || ''\"\n >\n <div class=\"ajf-icon-cont\">\n <mat-icon>edit</mat-icon>\n <span>{{ curFormula }}</span>\n </div>\n </button>\n </div>\n </div>\n <!-- <div class=\"ajf-prop\">\n <div><label>{{'Force value'|translco}}</label></div>\n <div>\n <button (click)=\"editForceValue()\" mat-raised-button [matTooltip]=\"curForceValue\">\n <div class=\"ajf-icon-cont\">\n <mat-icon>edit</mat-icon>\n <span>{{ curForceValue }}</span>\n </div>\n </button>\n </div>\n </div> -->\n <div class=\"ajf-prop\">\n <mat-checkbox formControlName=\"notEmpty\"\n >{{'Not empty'|transloco}}</mat-checkbox\n >\n </div>\n <ng-template [ngIf]=\"isNumericField(ne!.node)\">\n <div class=\"ajf-prop\">\n <mat-form-field>\n <input\n matInput\n formControlName=\"minValue\"\n [placeholder]=\"'Min value' | transloco\"\n />\n </mat-form-field>\n </div>\n <div class=\"ajf-prop\">\n <mat-form-field>\n <input\n matInput\n formControlName=\"maxValue\"\n [placeholder]=\"'Max value' | transloco\"\n />\n </mat-form-field>\n </div>\n <div class=\"ajf-prop\">\n <mat-form-field>\n <input\n matInput\n formControlName=\"minDigits\"\n [placeholder]=\"'Min digits' | transloco\"\n />\n </mat-form-field>\n </div>\n <div class=\"ajf-prop\">\n <mat-form-field>\n <input\n matInput\n formControlName=\"maxDigits\"\n [placeholder]=\"'Max digits' | transloco\"\n />\n </mat-form-field>\n </div>\n </ng-template>\n <div class=\"ajf-prop\">\n <div class=\"ajf-header\">\n <label>{{ 'Validation' | transloco }}</label>\n <mat-icon class=\"ajf-pointer\" (click)=\"addValidationCondition()\"\n >add_circle_outline</mat-icon\n >\n </div>\n <div\n *ngIf=\"validationConditions == null || validationConditions.length == 0\"\n class=\"ajf-validation-row ajf-emph\"\n >\n {{'No conditions'|transloco}}\n </div>\n <div\n class=\"ajf-validation-row\"\n *ngFor=\"let validationCondition of validationConditions; let idx = index\"\n >\n <button\n (click)=\"editValidationCondition(idx)\"\n mat-raised-button\n [matTooltip]=\"validationCondition.condition\"\n >\n <div class=\"ajf-icon-cont\">\n <mat-icon>edit</mat-icon>\n <span>{{ validationCondition.condition }}</span>\n </div>\n </button>\n <mat-icon\n class=\"ajf-pointer\"\n (click)=\"removeValidationCondition(idx)\"\n >remove_circle_outline</mat-icon\n >\n </div>\n </div>\n <div class=\"ajf-prop\">\n <mat-checkbox formControlName=\"notEmptyWarning\"\n >{{'Not empty warning'|transloco}}</mat-checkbox\n >\n </div>\n <div class=\"ajf-prop\">\n <div class=\"ajf-header\">\n <label>{{'Warnings'|transloco}}</label>\n <mat-icon class=\"ajf-pointer\" (click)=\"addWarningCondition()\"\n >add_circle_outline</mat-icon\n >\n </div>\n <div\n *ngIf=\"warningConditions == null || warningConditions.length == 0\"\n class=\"ajf-validation-row ajf-emph\"\n >\n {{'No warnings'|transloco}}\n </div>\n <div\n class=\"ajf-validation-row\"\n *ngFor=\"let warningCondition of warningConditions; let idx = index\"\n >\n <button\n (click)=\"editWarningCondition(idx)\"\n mat-raised-button\n [matTooltip]=\"warningCondition.condition\"\n >\n <div class=\"ajf-icon-cont\">\n <mat-icon>edit</mat-icon>\n <span>{{ warningCondition.condition }}</span>\n </div>\n </button>\n <mat-icon class=\"ajf-pointer\" (click)=\"removeWarningCondition(idx)\"\n >remove_circle_outline</mat-icon\n >\n </div>\n </div>\n <div class=\"ajf-prop\">\n <div><label>{{'Go to next slide condition'|transloco}}</label></div>\n <div>\n <button\n (click)=\"editNextSlideCondition()\"\n mat-raised-button\n [matTooltip]=\"nextSlideCondition\"\n >\n <div class=\"ajf-icon-cont\">\n <mat-icon>edit</mat-icon>\n <span>{{ nextSlideCondition }}</span>\n </div>\n </button>\n </div>\n </div>\n <ng-template [ngIf]=\"isFieldWithChoices(ne!.node)\">\n <div class=\"ajf-prop\">\n <mat-form-field>\n <mat-label>{{'Choices origins'|transloco}}</mat-label>\n <mat-select\n formControlName=\"choicesOriginRef\"\n [placeholder]=\"'Choices' | transloco\"\n >\n <mat-option\n *ngFor=\"let choicesOrigin of choicesOrigins\"\n [value]=\"choicesOrigin.name\"\n >\n {{ (choicesOrigin.label || choicesOrigin.name)|transloco }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"ajf-prop\">\n <div><label>{{'Choices filter'|transloco}}</label></div>\n <div>\n <button\n (click)=\"editChoicesFilter()\"\n mat-raised-button\n [matTooltip]=\"curChoicesFilter\"\n >\n <div class=\"ajf-icon-cont\">\n <mat-icon>edit</mat-icon>\n <span>{{ curChoicesFilter }}</span>\n </div>\n </button>\n </div>\n </div>\n <div class=\"ajf-prop\">\n <mat-checkbox formControlName=\"forceExpanded\"\n >{{'Force expanded selection'|transloco}}</mat-checkbox\n >\n </div>\n <div class=\"ajf-prop\">\n <mat-checkbox formControlName=\"forceNarrow\"\n >{{'Force narrow selection'|transloco}}</mat-checkbox\n >\n </div>\n <div class=\"ajf-prop\">\n <div class=\"ajf-header\">\n <label>{{'Trigger selection'|transloco}}</label>\n <mat-icon class=\"ajf-pointer\" (click)=\"addTriggerCondition()\"\n >add_circle_outline</mat-icon\n >\n </div>\n <div\n *ngIf=\"triggerConditions == null || triggerConditions.length == 0\"\n class=\"ajf-validation-row ajf-emph\"\n >\n {{'No trigger condition'|transloco}}\n </div>\n <div\n class=\"ajf-validation-row\"\n *ngFor=\"let triggerCondition of triggerConditions; let idx = index\"\n >\n <button\n (click)=\"editTriggerCondition(idx)\"\n mat-raised-button\n [matTooltip]=\"triggerCondition\"\n >\n <div class=\"ajf-icon-cont\">\n <mat-icon>edit</mat-icon>\n <span>{{ triggerCondition }}</span>\n </div>\n </button>\n <mat-icon class=\"pointer\" (click)=\"removeTriggerCondition(idx)\"\n >remove_circle_outline</mat-icon\n >\n </div>\n </div>\n </ng-template>\n </ng-template>\n </form>\n </ng-container>\n</ng-container>\n","styles":["ajf-fb-node-properties{display:block;padding:1em;position:relative}ajf-fb-node-properties mat-icon{cursor:pointer}ajf-fb-node-properties .ajf-header{display:flex;flex-direction:row;align-items:center;flex-wrap:nowrap}ajf-fb-node-properties .ajf-header>h3,ajf-fb-node-properties .ajf-header>label{flex:1 0 auto;margin-right:.5em}ajf-fb-node-properties .ajf-header>mat-icon{flex:0 0 auto;margin-left:.5em}ajf-fb-node-properties .ajf-disabled-overlay{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.4;background-color:#fff}ajf-fb-node-properties .ajf-emph{font-style:italic}ajf-fb-node-properties [mat-raised-button]{margin:.5em 0}ajf-fb-node-properties [mat-raised-button].ajf-pointer{cursor:pointer}ajf-fb-node-properties [mat-raised-button] .ajf-icon-cont{display:flex;flex-direction:row;align-items:center}ajf-fb-node-properties [mat-raised-button] .ajf-icon-cont span{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;display:block;min-height:36px}ajf-fb-node-properties .ajf-validation-row{margin:.5em 0;display:flex;flex-direction:row;align-items:center}ajf-fb-node-properties .ajf-validation-row button{flex:1 1 auto}ajf-fb-node-properties .ajf-validation-row mat-icon{flex:0 0 auto}ajf-fb-node-properties .ajf-prop{margin:.5em 0}ajf-fb-node-properties mat-form-field,ajf-fb-node-properties mat-slider,ajf-fb-node-properties [mat-raised-button]{width:100%}\n"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":267,"character":18},{"__symbolic":"reference","name":"AjfFormBuilderService"},{"__symbolic":"reference","module":"@angular/material/dialog","name":"MatDialog","line":269,"character":21},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":270,"character":17}]}],"editVisibility":[{"__symbolic":"method"}],"editConditionalBranch":[{"__symbolic":"method"}],"editFormulaReps":[{"__symbolic":"method"}],"editChoicesFilter":[{"__symbolic":"method"}],"editFormula":[{"__symbolic":"method"}],"editForceValue":[{"__symbolic":"method"}],"editValidationCondition":[{"__symbolic":"method"}],"addValidationCondition":[{"__symbolic":"method"}],"removeValidationCondition":[{"__symbolic":"method"}],"editWarningCondition":[{"__symbolic":"method"}],"addWarningCondition":[{"__symbolic":"method"}],"removeWarningCondition":[{"__symbolic":"method"}],"editNextSlideCondition":[{"__symbolic":"method"}],"editTriggerCondition":[{"__symbolic":"method"}],"addTriggerCondition":[{"__symbolic":"method"}],"removeTriggerCondition":[{"__symbolic":"method"}],"isField":[{"__symbolic":"method"}],"isNumericField":[{"__symbolic":"method"}],"isFieldWithChoices":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"_initSave":[{"__symbolic":"method"}],"_initForm":[{"__symbolic":"method"}],"_destroyConditionDialog":[{"__symbolic":"method"}],"_destroyValidationConditionDialog":[{"__symbolic":"method"}],"_destroyWarningConditionDialog":[{"__symbolic":"method"}],"_initRemoveTriggerCondition":[{"__symbolic":"method"}],"_initAddTriggerCondition":[{"__symbolic":"method"}],"_initTriggerConditionEdit":[{"__symbolic":"method"}],"_initRemoveWarningCondition":[{"__symbolic":"method"}],"_initAddWarningCondition":[{"__symbolic":"method"}],"_initWarningConditionEdit":[{"__symbolic":"method"}],"_initRemoveValidationCondition":[{"__symbolic":"method"}],"_initAddValidationCondition":[{"__symbolic":"method"}],"_initValidationConditionEdit":[{"__symbolic":"method"}],"_initForceValueEdit":[{"__symbolic":"method"}],"_initNextSlideConditionEdit":[{"__symbolic":"method"}],"_initFormulaEdit":[{"__symbolic":"method"}],"_initFormulaRepsEdit":[{"__symbolic":"method"}],"_initChoicesFilterEdit":[{"__symbolic":"method"}],"_initConditionalBranchEdit":[{"__symbolic":"method"}],"_initVisibilityEdit":[{"__symbolic":"method"}],"_handleTriggerCondtionsChange":[{"__symbolic":"method"}],"_handleWarningCondtionsChange":[{"__symbolic":"method"}],"_handleValidationCondtionsChange":[{"__symbolic":"method"}],"_handleForceValueChange":[{"__symbolic":"method"}],"_handleNextSlideConditionChange":[{"__symbolic":"method"}],"_handleFormulaChange":[{"__symbolic":"method"}],"_handleFormulaRepsChange":[{"__symbolic":"method"}],"_handleChoicesFilterChange":[{"__symbolic":"method"}],"_handleConditionalBranchesChange":[{"__symbolic":"method"}],"_handleVisibilityChange":[{"__symbolic":"method"}],"_guessVisibilityOpt":[{"__symbolic":"method"}]}},"ɵgc_ajf_src_material_form_builder_form_builder_h":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":32,"character":1},"arguments":[{"selector":"ajf-fb-node-type-entry","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":36,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":37,"character":19},"member":"OnPush"},"template":"<ng-container *ngIf=\"nodeType\">\n <mat-icon\n [fontSet]=\"nodeType.icon.fontSet\" [fontIcon]=\"nodeType.icon.fontIcon\"></mat-icon>\n {{ nodeType.label }}\n</ng-container>\n","styles":["ajf-fb-node-type-entry{display:block;padding:1em 1.5em}ajf-fb-node-type-entry mat-icon{vertical-align:middle}\n"]}]}],"members":{"nodeType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":50,"character":28}]}]}},"ɵgc_ajf_src_material_form_builder_form_builder_i":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":39,"character":1},"arguments":[{"selector":"ajf-fb-string-identifier-dialog","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":43,"character":19},"member":"OnPush"},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":44,"character":17},"member":"None"},"template":"<h3 matDialogTitle>{{'Edit identifier'|transloco}}</h3>\n<mat-dialog-content>\n <button (click)=\"addRow()\" mat-button>\n <mat-icon>add</mat-icon>\n <span>{{'Add value'|transloco}}</span>\n </button>\n <mat-table [dataSource]=\"dataSource\">\n <ng-container matColumnDef=\"label\">\n <mat-header-cell *matHeaderCellDef>{{'Label'|transloco}}</mat-header-cell>\n <mat-cell *matCellDef=\"let row; let idx = index\">\n <mat-form-field>\n <input\n matInput\n [placeholder]=\"'Label'|transloco\"\n autofocus\n [(ngModel)]=\"row.label\"\n />\n </mat-form-field>\n </mat-cell>\n </ng-container>\n <ng-container matColumnDef=\"value\">\n <mat-header-cell *matHeaderCellDef>{{'Value'|transloco}}</mat-header-cell>\n <mat-cell *matCellDef=\"let row; let idx = index\">\n <mat-form-field>\n <mat-chip-list #chipList>\n <mat-chip\n *ngFor=\"let field of row.value\"\n (removed)=\"removeValue(row, field)\"\n >\n {{ field }}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n </mat-chip-list>\n <input\n #valueInput\n [ngModel]=\"row.value\"\n [matAutocomplete]=\"valueAc\"\n [matChipInputFor]=\"chipList\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"addValue(row, $event, valueInput)\"\n [placeholder]=\"'Value'|transloco\"\n />\n <mat-autocomplete\n #valueAc=\"matAutocomplete\"\n (optionSelected)=\"selected(row, $event)\"\n >\n <mat-option *ngFor=\"let field of fields$ | async\" [value]=\"field\"\n >{{field}}</mat-option\n >\n </mat-autocomplete>\n </mat-form-field>\n </mat-cell>\n </ng-container>\n <ng-container matColumnDef=\"show\">\n <mat-header-cell *matHeaderCellDef>{{'Show'|transloco}}</mat-header-cell>\n <mat-cell *matCellDef=\"let row; let idx = index\">\n <mat-form-field>\n <mat-select matNativeControl [(ngModel)]=\"row.show\">\n <mat-option value=\"all\">{{'All'|transloco}}</mat-option>\n <mat-option value=\"first\">{{'First'|transloco}}</mat-option>\n <mat-option value=\"last\">{{'Last'|transloco}}</mat-option>\n </mat-select>\n </mat-form-field>\n </mat-cell>\n </ng-container>\n <ng-container matColumnDef=\"delete\">\n <mat-header-cell *matHeaderCellDef\n >{{'Delete'|transloco}}</mat-header-cell\n >\n <mat-cell *matCellDef=\"let row; let idx = index\">\n <mat-icon (click)=\"deleteRow(idx)\">delete</mat-icon>\n </mat-cell>\n </ng-container>\n\n <mat-header-row *matHeaderRowDef=\"displayedColumns\"></mat-header-row>\n <mat-row *matRowDef=\"let row; columns: displayedColumns;\"></mat-row>\n </mat-table>\n</mat-dialog-content>\n<mat-dialog-actions>\n <button mat-button matDialogClose (click)=\"saveStringIdentifier()\">\n {{'Save'|transloco}}\n </button>\n</mat-dialog-actions>\n","styles":["\n"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AjfFormBuilderService"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":55,"character":69}]}],"addRow":[{"__symbolic":"method"}],"deleteRow":[{"__symbolic":"method"}],"addValue":[{"__symbolic":"method"}],"removeValue":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"saveStringIdentifier":[{"__symbolic":"method"}],"selected":[{"__symbolic":"method"}]}},"ɵgc_ajf_src_material_form_builder_form_builder_j":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":31,"character":1},"arguments":[{"selector":"ajf-fb-validation-condition-editor-dialog","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":35,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":36,"character":19},"member":"OnPush"},"template":"<h3 matDialogTitle>{{'Edit condition'|transloco}}</h3>\n<mat-dialog-content>\n <mat-form-field>\n <input\n matInput\n [(ngModel)]=\"errorMessage\"\n [placeholder]=\"'Error message'|transloco\"\n />\n </mat-form-field>\n <ajf-condition-editor\n *ngIf=\"fields|async as curFields\"\n [fields]=\"curFields!\"\n [condition]=\"condition\"\n ></ajf-condition-editor>\n</mat-dialog-content>\n<mat-dialog-actions>\n <button mat-button (click)=\"saveCondition()\">{{'Save'|transloco}}</button>\n <button mat-button matDialogClose>{{'Close'|transloco}}</button>\n</mat-dialog-actions>\n","styles":["ajf-fb-validation-condition-editor-dialog mat-dialog-content{overflow:visible}\n"]}]}],"members":{"editor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":39,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_d"},{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AjfFormBuilderService"},{"__symbolic":"reference","name":"MatDialogRef","module":"@angular/material/dialog","arguments":[{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_j"}]}]}],"saveCondition":[{"__symbolic":"method"}]}},"ɵgc_ajf_src_material_form_builder_form_builder_k":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":31,"character":1},"arguments":[{"selector":"ajf-fb-warning-condition-editor-dialog","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":35,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":36,"character":19},"member":"OnPush"},"template":"<h3 matDialogTitle>{{'Edit condition'|transloco}}</h3>\n<mat-dialog-content>\n <mat-form-field>\n <input\n matInput\n [(ngModel)]=\"warningMessage\"\n [placeholder]=\"'Warning message' | transloco\"\n />\n </mat-form-field>\n <ajf-condition-editor\n *ngIf=\"fields|async as curFields\"\n [fields]=\"curFields!\"\n [condition]=\"condition\"\n ></ajf-condition-editor>\n</mat-dialog-content>\n<mat-dialog-actions>\n <button mat-button (click)=\"saveCondition()\">{{'Save'|transloco}}</button>\n <button mat-button matDialogClose>{{'Close'|transloco}}</button>\n</mat-dialog-actions>\n","styles":["ajf-fb-warning-condition-editor-dialog mat-dialog-content{overflow:visible}\n"]}]}],"members":{"editor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":39,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_d"},{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AjfFormBuilderService"},{"__symbolic":"reference","name":"MatDialogRef","module":"@angular/material/dialog","arguments":[{"__symbolic":"reference","name":"ɵgc_ajf_src_material_form_builder_form_builder_k"}]}]}],"saveCondition":[{"__symbolic":"method"}]}}},"origins":{"AjfFormBuilderModule":"./form-builder-module","AjfFormBuilderNodeTypeEntry":"./form-builder-service","AjfFormBuilderNodeEntry":"./form-builder-service","AjfFormBuilderEmptySlot":"./form-builder-service","AjfFormBuilderMoveEvent":"./form-builder-service","AjfFormBuilderNode":"./form-builder-service","AjfContainerNode":"./form-builder-service","flattenNodes":"./form-builder-service","AjfFormBuilderService":"./form-builder-service","onDropProcess":"./form-builder-utils","disableSlideDropPredicate":"./form-builder-utils","disableFieldDropPredicate":"./form-builder-utils","AjfFormBuilder":"./form-builder","ɵgc_ajf_src_material_form_builder_form_builder_a":"./branch-line","ɵgc_ajf_src_material_form_builder_form_builder_b":"./choices-origin-editor","ɵgc_ajf_src_material_form_builder_form_builder_c":"./choices-origin-editor-dialog","ɵgc_ajf_src_material_form_builder_form_builder_d":"./condition-editor","ɵgc_ajf_src_material_form_builder_form_builder_e":"./condition-editor-dialog","ɵgc_ajf_src_material_form_builder_form_builder_f":"./node-entry","ɵgc_ajf_src_material_form_builder_form_builder_g":"./node-properties","ɵgc_ajf_src_material_form_builder_form_builder_h":"./node-type-entry","ɵgc_ajf_src_material_form_builder_form_builder_i":"./string-identifier-dialog","ɵgc_ajf_src_material_form_builder_form_builder_j":"./validation-condition-editor-dialog","ɵgc_ajf_src_material_form_builder_form_builder_k":"./warning-condition-editor-dialog"},"importAs":"@ajf/material/form-builder"}