{"__symbolic":"module","version":4,"metadata":{"FooterModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":6,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"FooterComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":9,"character":4},{"__symbolic":"reference","name":"AgreementShowModule"},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":11,"character":4},"member":"forRoot"}}],"exports":[{"__symbolic":"reference","name":"FooterComponent"}]}]}],"members":{}},"FooterComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"app-footer","template":"<footer class=\"pb-5 pt-5\" [style.backgroundColor]=\"backgroundColor\">\n    <div class=\"container text-secondary\">\n        <!-- Links -->\n        <div class=\"footer-links font-weight-bold d-md-flex justify-content-md-center text-sm\">\n            <div class=\"text-link\" (click)=\"show();\" tabindex=\"0\" style=\"cursor:pointer\" i18n>Terms of Use and Privacy Policy</div>\n            <div class=\"text-link\">\n                <a class=\"text-secondary\" href=\"{{supportHost}}/faq/detail/hy2zNr\" target=\"_blank\" i18n>Customer Support</a>\n            </div>\n            \n            <div>\n                <span class=\"dropup text-link\" dropdown dropup=\"true\" dropdownToggle>\n                    <ng-container i18n>Language</ng-container> : <span class=\"dropdown-toggle\">{{localeId | slice: 0 : 2}}</span>\n                    <div class=\"dropdown-menu\" *dropdownMenu>\n                        <a class=\"dropdown-item\" *ngFor=\"let lang of supportedLanguages;\" (click)=\"changeLanguage(lang.locale_id)\">{{lang.name}}</a>\n                    </div>        \n                </span>\n            </div>\n        </div>\n\n        <!-- Details -->\n        <div class=\"footer-details mt-3 mt-md-2 text-md-center justify-content-md-center text-sm opacity-75\">\n            <div i18n>CEO: Kim Hyeoung-gyun RN: 326-86-00361</div>\n            <div class=\"d-md-flex justify-content-md-center\">\n                <a class=\"d-block text-link mr-md-1\" href=\"https://www.google.com/maps/@36.48502968900793,127.29966477103478,16z\" target=\"_blank\" i18n>Addr: 504-D, 2016, Hannuri-daero, Sejong-si, Korea</a> \n                <a class=\"d-block text-link\" href=\"tel://1522-1225\" i18n>Call: 1522-1225</a>\n            </div>\n            <div class=\"mt-1\" i18n>Copyright © Schoolbell-e</div>\n        </div>\n    </div>\n</footer>\n\n\n<!-- <footer>\n    <div class=\"container d-flex justify-content-center\">\n        <div class=\"text-center text-secondary text-xs\">\n            <div>\n                <div class=\"meta mb-2\">\n                    <div>Copyright © 학교종이 </div>\n                    <div><a class=\"text-link\" (click)=\"show();\" tabindex=\"0\" style=\"cursor:pointer\" i18n>Terms of Use and Privacy Policy</a></div>\n                    <div><a class=\"text-link\" href=\"https://schoolbell-e.com/support/faq/detail/hy2zNr\" target=\"_blank\" i18n>Customer support</a></div>\n                    <div>\n                        <span class=\"dropup text-link\" dropdown dropup=\"true\" dropdownToggle>\n                            <ng-container i18n>language</ng-container> : <span class=\"dropdown-toggle\">{{localeId | slice: 0 : 2}}</span>\n                            <div class=\"dropdown-menu\" *dropdownMenu>\n                                <a class=\"dropdown-item\" *ngFor=\"let lang of supportedLanguages;\" (click)=\"changeLanguage(lang.locale_id)\">{{lang.name}}</a>\n                            </div>        \n                        </span>\n                    </div>\n                </div>\n                <div class=\"meta\">\n                    <div><ng-container i18n>RN : 326-86-00361</ng-container></div>\n                    <div><ng-container i18n>CEO : Kim Hyeung-gyun</ng-container></div>\n                    <div><ng-container i18n>Addr : <a class=\"text-link\" href=\"https://www.google.com/maps/@36.48502968900793,127.29966477103478,16z\" target=\"_blank\">504-D, 2016, Hannuri-daero, Sejong-si, Korea</a></ng-container></div>\n                    <div><ng-container i18n>Call : <a class=\"text-link\" href=\"tel://1522-1225\">1522-1225</a></ng-container></div>\n                </div>\n            </div>\n            <div class=\"meta\" \n                [class.responsive]=\"responsive\"\n            >\n                <div><ng-container i18n>RN : 326-86-00361</ng-container></div>\n                <div><ng-container i18n>CEO : Kim Hyeung-gyun</ng-container></div>\n                <div><ng-container i18n>Addr : <a class=\"text-link\" href=\"https://www.google.com/maps/@36.48502968900793,127.29966477103478,16z\" target=\"_blank\">504-D, 2016, Hannuri-daero, Sejong-si, Korea</a></ng-container></div>\n                <div><ng-container i18n>Call : <a class=\"text-link\" href=\"tel://1522-1225\">1522-1225</a></ng-container></div>\n            </div>\n        </div>\n    </div>\n</footer> -->","styles":["footer{width:100%}.text-link{cursor:pointer;color:#6c757d}.text-link:hover{color:#343a40!important;text-decoration:underline!important}@media (min-width:768px){.footer-links>div{padding:0 .7rem;flex-shrink:0;position:relative}.footer-links>div:not(:first-child)::after{content:'';position:absolute;top:50%;left:0;height:58%;transform:translateY(-50%);width:1px;background-color:#d6d6d6}.footer-links>div:first-child{padding-left:0}}"]}]}],"members":{"backgroundColor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":19,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"LOCALE_ID","line":19,"character":12}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":20,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"APP_BASE_HREF","line":20,"character":12}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":21,"character":5},"arguments":[{"__symbolic":"reference","module":"@schoolbelle/api/tokens","name":"SUPPORT_HOST","line":21,"character":12}]}]],"parameters":[{"__symbolic":"reference","name":"AgreementShowModalService"},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":17,"character":21},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":18,"character":23},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"show":[{"__symbolic":"method"}],"changeLanguage":[{"__symbolic":"method"}]}},"AgreementShowComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵa"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"app-agreement-show","template":"\n<div class=\"modal-header\">\n    <h4 class=\"modal-title\" i18n>Terms of Use and Privacy Policy</h4>\n    <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"cancel();\">\n        <span aria-hidden=\"true\">&times;</span>\n    </button>\n</div>\n\n<div class=\"modal-body\">\n    <div class=\"card mb-2\">\n        <div class=\"card-header p-3 d-flex\">\n            <div class=\"align-self-center\" i18n>Terms of Use</div>\n            <div class=\"align-self-center ml-auto\" (click)=\"$event.stopPropagation(); showAgreedToTermsOfUse = !showAgreedToTermsOfUse\">\n                <button class=\"btn btn-secondary btn-sm\">\n                    <span *ngIf=\"!showAgreedToTermsOfUse\" i18n>Open <i class=\"fa fa-angle-down\" aria-hidden=\"true\"></i></span> \n                    <span *ngIf=\"showAgreedToTermsOfUse\" i18n>Close <i class=\"fa fa-angle-up\" aria-hidden=\"true\"></i></span> \n                </button>\n            </div>\n        </div>\n        <div class=\"card-body\" *ngIf=\"showAgreedToTermsOfUse\">\n            <pre [innerHTML]=\"termsOfUse\"></pre>\n        </div>\n    </div>\n    <div class=\"card PrivacyPolicy mb-2\">\n        <div class=\"card-header p-3 d-flex\">\n            <!-- <div class=\"align-self-center mr-2\">\n                <i *ngIf=\"!agreedToPrivacyPolicy\" class=\"fa fa-lg fa-square-o text-secondary align-self-center\" aria-hidden=\"true\"></i>\n                <i *ngIf=\"agreedToPrivacyPolicy\" class=\"fa fa-lg fa-check-square align-self-center\" aria-hidden=\"true\"></i>\n            </div> -->\n            <div class=\"align-self-center\" i18n>Privacy Policy</div>\n            <div class=\"align-self-center ml-auto\" (click)=\"$event.stopPropagation(); showAgreedToPrivacyPolicy = !showAgreedToPrivacyPolicy\">\n                <button class=\"btn btn-secondary btn-sm\">\n                    <span *ngIf=\"!showAgreedToPrivacyPolicy\" i18n>Open <i class=\"fa fa-angle-down\" aria-hidden=\"true\"></i></span> \n                    <span *ngIf=\"showAgreedToPrivacyPolicy\" i18n>Close <i class=\"fa fa-angle-up\" aria-hidden=\"true\"></i></span> \n                </button>\n            </div>\n            \n        </div>\n        <div class=\"card-body\" *ngIf=\"showAgreedToPrivacyPolicy\">\n            <pre [innerHTML]=\"privacyPolicy\"></pre>\n        </div>\n    </div>\n</div>\n<div class=\"modal-footer justify-content-center\" style=\"margin-top: -24px;\">\n    <div class=\"row w-100 justify-content-end\">\n        <div class=\"col-lg-3 col-6\">\n        </div>\n        <div class=\"col-lg-3 col-6\">\n            <button class=\"btn btn-block btn-secondary\" (click)=\"cancel();\" i18n>Cancel</button>\n        </div>\n    </div>\n</div>\n\n\n","styles":["pre{white-space:pre-wrap;word-wrap:break-word;overflow:scroll;height:23vh;padding:10px}.card-body{padding:0}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@schoolbelle/api/schoolbelle","name":"SchoolbelleService","line":13,"character":18},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalRef","line":14,"character":15}]}],"ngOnInit":[{"__symbolic":"method"}]}},"AgreementShowModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":6,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"AgreementShowComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":9,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"ModalModule","line":10,"character":4},"member":"forRoot"}}],"providers":[{"__symbolic":"reference","name":"AgreementShowModalService"}],"entryComponents":[{"__symbolic":"reference","name":"AgreementShowComponent"}]}]}],"members":{}},"AgreementShowModalService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalService","line":10,"character":19}]}],"open":[{"__symbolic":"method"}]}},"MemberStatusBadgeModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":7,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":8,"character":4},"member":"forRoot"}}],"declarations":[{"__symbolic":"reference","name":"MemberStatusBadgeComponent"}],"exports":[{"__symbolic":"reference","name":"MemberStatusBadgeComponent"}]}]}],"members":{}},"MemberStatusBadgeComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"member-status-badge","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":7,"character":18},"member":"OnPush"},"template":"<span [ngSwitch]=\"status\" [class.is-button]=\"isButton\">\n  <span class=\"member-status-badge reachable text-truncate\" *ngSwitchCase=\"'reachable'\" i18n>\n    joined\n    <i *ngIf=\"noDevice\" [tooltip]=\"noDeviceTp\" container=\"body\" class=\"fa fa-exclamation-triangle text-warning\" aria-hidden=\"true\"></i>\n  </span>\n  <span class=\"member-status-badge pending text-truncate\" *ngSwitchCase=\"'pending'\" [isDisabled]=\"!isButton\" i18n-tooltip tooltip=\"Join invitation is waiting to be accepted. It will be force accepted within 3 days of no rejection.\" i18n>pending</span>\n  <span class=\"member-status-badge declined text-truncate\" *ngSwitchCase=\"'declined'\" [isDisabled]=\"!isButton\" [tooltip]=\"declinedTp\" i18n>rejected</span>\n  <span class=\"member-status-badge uninvited text-truncate\" *ngSwitchCase=\"'uninvited'\" [isDisabled]=\"!isButton\" [tooltip]=\"uninvitedTp\" i18n>uninvited</span>\n  <span class=\"member-status-badge left text-truncate\" *ngSwitchCase=\"'left'\" [isDisabled]=\"!isButton\" [tooltip]=\"leftTp\" i18n>left</span>\n  <span class=\"member-status-badge unregistered text-truncate\" *ngSwitchCase=\"'unregistered'\" [isDisabled]=\"!isButton\" [tooltip]=\"unregisteredTp\" i18n>unregistered</span>\n</span>\n\n\n\n<ng-template #declinedTp i18n>\n  They have rejected the invitation. \n</ng-template>\n\n<ng-template #uninvitedTp i18n>\n  We will try again and send an invitation within 24 hours.\n</ng-template>\n\n<ng-template #leftTp i18n>\n  They have left the group.   \n</ng-template>\n\n<ng-template #unregisteredTp i18n>\n  They have not signed up for our service.\n</ng-template>\n<ng-template #noDeviceTp i18n>\n  They have not installed our mobile application or have logged out.\n</ng-template>\n","styles":[".member-status-badge{display:inline-block;padding:.25em .4em;font-size:75%;line-height:1;width:46px;text-align:center;white-space:nowrap;vertical-align:top;border-radius:.1rem}.member-status-badge.pending{color:#31708f;border:1px solid #31708f}.member-status-badge.declined,.member-status-badge.left,.member-status-badge.uninvited{color:#8b0000;border:1px solid #8b0000}.member-status-badge.no-device,.member-status-badge.unregistered{color:#777;border:1px solid #777}.is-button .member-status-badge.declined,.is-button .member-status-badge.left,.is-button .member-status-badge.no-device,.is-button .member-status-badge.uninvited,.is-button .member-status-badge.unregistered{cursor:pointer}.is-button .member-status-badge.declined:hover,.is-button .member-status-badge.left:hover,.is-button .member-status-badge.uninvited:hover{color:#fff;background-color:#8b0000}.is-button .member-status-badge.no-device:hover,.is-button .member-status-badge.unregistered:hover{background-color:#777;color:#fff}.member-status-badge.reachable{color:#4db53c;border:1px solid #4db53c}"]}]}],"members":{"isButton":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3},"arguments":["isButton"]}]}],"member":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3},"arguments":["member"]}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"GroupTabComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"group-tab","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":11,"character":18},"member":"OnPush"},"template":"<ng-template [ngTemplateOutlet]=\"tabTemplate || defaultTabTemplate\"\n[ngTemplateOutletContext]=\"{\n  group: group\n}\"></ng-template>\n\n\n<ng-template #defaultTabTemplate>\n  <a class=\"nav-link position-relative d-flex align-items-center cursor-pointer\"\n  [ngClass]=\"{\n    'active':group.opened,\n    'indeterminate':checked === 1,\n    'checked':checked === 2,\n    'disabled cursor-not-allowed':!isTogglable,\n    'cursor-pointer':isTogglable\n  }\"\n  [ngSwitch]=\"checked\"\n  (click)=\"open()\">\n    <span *ngIf=\"mode === 'select'\" class=\"text-sm mr-2\" [ngClass]=\"{'text-muted':!isTogglable}\" (click)=\"toggle()\">\n      <span *ngSwitchCase=\"0\" class=\"fa-stack\">\n        <i *ngIf=\"isTogglable\" class=\"fa fa-square-o fa-stack-2x\"></i>\n        <i *ngIf=\"!isTogglable\" class=\"fa fa-square fa-stack-2x text-muted\"></i>\n      </span>\n      <span *ngSwitchCase=\"1\" class=\"fa-stack text-primary\">\n        <i class=\"text-primary fa fa-square fa-stack-2x\"></i>\n        <i class=\"fa fa-minus fa-stack-1x text-white\"></i>\n      </span>\n      <span *ngSwitchCase=\"2\" class=\"fa-stack text-primary\">\n        <i class=\"text-primary fa fa-square fa-stack-2x\"></i>\n        <i class=\"fa fa-check fa-stack-1x text-white\"></i>\n      </span>\n    </span>\n    \n    \n    <span>{{short_group_name}}</span>\n  </a>\n</ng-template>\n\n","styles":[".nav-link{border-width:0!important;border-bottom-color:transparent;white-space:nowrap;padding-top:.7rem;padding-bottom:.7rem;position:relative;border-top-left-radius:0;border-top-right-radius:0}.text-muted{opacity:.6}.nav-link.disabled{opacity:.65}.nav-link:hover{background-color:#f9f9f9}.nav-link.active{background-color:#f1f1f1;color:#343a40}.nav-link.active::after{content:'';position:absolute;bottom:0;left:0;width:100%;height:2px;background-color:#666;z-index:50}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.nav-link{padding-bottom:1rem!important}}"]}]}],"members":{"group":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3},"arguments":["group"]}]}],"mode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3},"arguments":["mode"]}]}],"tabTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":25,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"LOCALE_ID","line":25,"character":12}]}]],"parameters":[{"__symbolic":"reference","module":"@schoolbelle/api/group-to-group","name":"TreeService","line":22,"character":23},{"__symbolic":"reference","module":"@schoolbelle/api/letter-target","name":"LetterTargetService","line":23,"character":25},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":24,"character":17},{"__symbolic":"reference","name":"string"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"getTogglableStatus":[{"__symbolic":"method"}],"open":[{"__symbolic":"method"}],"updateCheckedStatus":[{"__symbolic":"method"}],"stopPropagation":[{"__symbolic":"method"}],"toggle":[{"__symbolic":"method"}]}},"SubgroupTabsComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"subgroup-tabs","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":12,"character":19},"member":"OnPush"},"template":"\n<!-- temp fix my-2 -->\n<div class=\"nav-container\">\n  <ul *ngIf=\"groups && groups.length > 0\" class=\"scrollable nav nav-tabs\" [ngClass]=\"{'px-2 my-2': mode !== 'select'}\">\n    <li class=\"nav-item\" *ngFor=\"let group of groups;trackBy:groupTrackBy\">\n      <group-tab [group]=\"group\" [mode]=\"mode\" [tabTemplate]=\"tabTemplate || customTabTemplate\"></group-tab>\n    </li>\n  </ul>\n</div>\n\n<subgroup-tabs *ngIf=\"openedChildGroup\" \n[group]=\"openedChildGroup\" \n[depth]=\"depth + 1\" \n[mode]=\"mode\"\n[tabTemplate]=\"tabTemplate || customTabTemplate\"\n(onSelected)=\"onSelected.next()\"></subgroup-tabs>\n","styles":[".nav.nav-tabs{border-width:2px;overflow-x:scroll;overflow-y:visible;flex-wrap:nowrap}:host ::ng-deep .nav-tabs .nav-link{border-width:2px;opacity:.75}:host ::ng-deep .nav-tabs .nav-link.active{border-width:2px;opacity:1}.nav-container{position:relative}.nav-container::after{content:'';position:absolute;background-color:#dee2e6;bottom:0;left:0;width:100%;height:2px}.nav-tabs{border-bottom:0}.nav-tabs .nav-item{margin-bottom:0!important}.nav-link{border-radius:0!important}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.scrollable{scrollbar-face-color:rgba(222,222,222,.9);scrollbar-track-color:rgba(255,255,255,.9);scrollbar-arrow-color:none;scrollbar-highlight-color:rgba(222,222,222,.9);scrollbar-3dlight-color:none;scrollbar-shadow-color:rgba(222,222,222,.9);scrollbar-darkshadow-color:none}}"]}]}],"members":{"onSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":15,"character":3},"arguments":["onSelected"]}]}],"customTabTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":16,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"TemplateRef","line":16,"character":16}]}]}],"tabTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"mode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3},"arguments":["mode"]}]}],"depth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3},"arguments":["depth"]}]}],"group":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3},"arguments":["group"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@schoolbelle/api/group-to-group","name":"TreeService","line":26,"character":23},{"__symbolic":"reference","module":"@schoolbelle/api/group","name":"GroupService","line":27,"character":24},{"__symbolic":"reference","module":"@schoolbelle/api/letter-target","name":"LetterTargetService","line":28,"character":25},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":29,"character":17}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"updateCheckedStatus":[{"__symbolic":"method"}],"groupTrackBy":[{"__symbolic":"method"}]}},"SubgroupTabsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":6,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":8,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":9,"character":4},"member":"forRoot"}}],"declarations":[{"__symbolic":"reference","name":"SubgroupTabsComponent"},{"__symbolic":"reference","name":"GroupTabComponent"}],"exports":[{"__symbolic":"reference","name":"SubgroupTabsComponent"}]}]}],"members":{}},"TranslationEditorModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"TranslationEditorComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":8,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":9,"character":4}],"exports":[{"__symbolic":"reference","name":"TranslationEditorComponent"}]}]}],"members":{}},"TranslationEditorComponentValueAccessor":{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":18,"character":11},"useExisting":{"__symbolic":"reference","name":"TranslationEditorComponent"},"multi":true},"TranslationEditorComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":22,"character":1},"arguments":[{"selector":"app-translation-editor","providers":[{"__symbolic":"reference","name":"TranslationEditorComponentValueAccessor"}],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":29,"character":19},"member":"OnPush"},"template":"<input class=\"form-control w-100 border-0 bg-transparent\" \n[placeholder]=\"placeholder\"\n[(ngModel)]=\"text\" (ngModelChange)=\"onChange(value)\" [disabled]=\"disabled\">\n","styles":["input{color:inherit!important;text-align:inherit;margin-top:-1px}"]}]}],"members":{"lang":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":75,"character":3}}]}],"usedLangs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":83,"character":3}}]}],"usedLangsChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":84,"character":3}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":85,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":94,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"LOCALE_ID","line":94,"character":12}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":92,"character":25},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":93,"character":21},{"__symbolic":"reference","name":"string"}]}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"setDisabledState":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}]}},"TranslationViewerModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"TranslationViewerComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":8,"character":4},{"__symbolic":"reference","module":"@schoolbelle/shared/pipes","name":"HighlightPipeModule","line":9,"character":4}],"exports":[{"__symbolic":"reference","name":"TranslationViewerComponent"},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":13,"character":4},{"__symbolic":"reference","module":"@schoolbelle/shared/pipes","name":"HighlightPipeModule","line":14,"character":4}]}]}],"members":{}},"TranslationViewerComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"app-translation-viewer","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":15,"character":19},"member":"OnPush"},"template":"<span *ngIf=\"text\" [innerHTML]=\"text | highlight : query\"></span>\n","styles":["input{color:inherit!important;text-align:inherit;margin-top:-1px}"]}]}],"members":{"content":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"query":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"lang":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":44,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"LOCALE_ID","line":44,"character":12}]}]],"parameters":[{"__symbolic":"reference","module":"@schoolbelle/api/auth","name":"AuthService","line":42,"character":19},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":43,"character":20},{"__symbolic":"reference","name":"string"}]}],"ngOnInit":[{"__symbolic":"method"}]}},"languages":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"lodash-es","name":"values","line":4,"character":25},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"lodash-es","name":"mapValues","line":4,"character":32},"arguments":[{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"error","message":"Lambda not supported","line":4,"character":52,"module":"./lib/translation-dropdown/translation-dropdown.component"}]}]},"TranslationDropdownComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"app-translation-dropdown","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":11,"character":18},"member":"OnPush"},"template":"<span class=\"dropdown d-inline-block\" dropdown>\n  <button class=\"btn text-nowrap dropdown-toggle\" dropdownToggle>\n    {{currentLanguage?.nativeName}}\n  </button>\n  <div class=\"dropdown-menu\" *dropdownMenu>\n    <ng-container *ngIf=\"mode === 'edit'\">\n\n      <div class=\"px-2\" (click)=\"$event.stopPropagation()\">\n        <div class=\"input-group input-group-sm\">\n          <div class=\"input-group-prepend\">\n            <span class=\"input-group-text\"><i class=\"fa fa-search\"></i></span>\n          </div>\n          <input [(ngModel)]=\"query\" (ngModelChange)=\"updateList(query)\" class=\"form-control\" placeholder=\"Search language\" i18n-placeholder>\n        </div>\n      </div>\n      <div class=\"dropdown-divider\"></div>    \n      <h6 class=\"dropdown-header\" i18n>Used languages</h6>\n    </ng-container>\n    <a class=\"dropdown-item cursor-pointer text-truncate d-flex align-items-center\" [class.active]=\"item.code === current\" *ngFor=\"let item of usedLanguages; let i = index;\" (click)=\"current = item.code\">\n      <div class=\"text-truncate\">\n        {{item.name}} \n        <small>({{item.nativeName}})</small>\n      </div>\n      <button class=\"btn btn-sm btn-light ml-auto\" *ngIf=\"mode === 'edit' && i !== 0\" (click)=\"delete(item.code); $event.stopPropagation()\">\n        <i class=\"fa fa-trash-o\"></i>\n      </button>      \n\n    </a>\n    <ng-container *ngIf=\"mode === 'edit'\">\n      <div class=\"dropdown-divider\"></div>    \n      <h6 class=\"dropdown-header\" i18n>Available languages</h6>\n      <a class=\"dropdown-item cursor-pointer text-truncate\" *ngFor=\"let item of AvailableLanguages\" (click)=\"current = item.code; add(item.code);\">\n        {{item.name}} \n        <small>({{item.nativeName}})</small>\n      </a>\n    </ng-container>\n  </div>          \n</span>\n","styles":[".dropdown-menu{max-width:250px;max-height:400px;overflow-y:scroll}"]}]}],"members":{"current":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"currentChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":24,"character":3}}]}],"used":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"preferred":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":3}}]}],"mode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3}}]}],"onDelete":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":36,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"updateList":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"add":[{"__symbolic":"method"}]}},"TranslationDropdownModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":6,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"TranslationDropdownComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":9,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":10,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":11,"character":4},"member":"forRoot"}}],"exports":[{"__symbolic":"reference","name":"TranslationDropdownComponent"},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":15,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":16,"character":4},{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":17,"character":4}]}]}],"members":{}},"TextEditorModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"TextEditorComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":10,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":11,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"angular-froala-wysiwyg","name":"FroalaEditorModule","line":12,"character":4},"member":"forRoot"}}],"exports":[{"__symbolic":"reference","name":"TextEditorComponent"}]}]}],"members":{}},"TextEditorComponentValueAccessor":{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":31,"character":11},"useExisting":{"__symbolic":"reference","name":"TextEditorComponent"},"multi":true},"TextEditorComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"TranslationEditorComponent"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":35,"character":1},"arguments":[{"selector":"app-text-editor","providers":[{"__symbolic":"reference","name":"TextEditorComponentValueAccessor"},{"__symbolic":"reference","module":"@angular/common","name":"DatePipe","line":42,"character":4}],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":44,"character":19},"member":"OnPush"},"template":"<div style=\"position:relative;z-index:0;\">\n    <textarea [froalaEditor]=\"froalaOptions\" [(ngModel)]=\"text\" (ngModelChange)=\"onChange(value)\" [disabled]=\"disabled\"></textarea>\n</div>\n\n\n<div hidden id=\"text-editor-save\"\ni18n-translation-text\ntranslation-text=\"Save\"></div>\n\n<div hidden id=\"text-editor-load\"\ni18n-translation-text\ntranslation-text=\"Load\"></div>\n\n<div hidden id=\"text-editor-drag-and-drop-video-alert\"\ni18n-translation-text\ntranslation-text=\"Drag and drop on a video file is not supported.\"></div>\n\n<div hidden id=\"text-editor-drag-and-drop-image-alert\"\ni18n-translation-text\ntranslation-text=\"Drag and drop on a image file is not supported in Internet Explorer 11. Use other browsers like Chrome.\"></div>\n\n<!--  -->\n<div hidden id=\"text-editor-drag-and-drop-image-accept-alert\"\ni18n-translation-text\ntranslation-text=\"Only image files supported.\"></div>\n\n<div hidden id=\"no-data-to-copy\"\ni18n-translation-text=\"@@noDataToCopy\"\ntranslation-text=\"No data to copy\"></div>","styles":[".custom-active{color:#1e88e5;background:0 0}:host ::ng-deep p{margin-bottom:.2rem}:host ::ng-deep .font-80-percent{font-size:.8rem}:host ::ng-deep .font-100-percent{font-size:1rem}:host ::ng-deep .font-150-percent{font-size:1.5rem}:host ::ng-deep .font-200-percent{font-size:2rem}:host ::ng-deep .font-300-percent{font-size:3rem}:host ::ng-deep table{width:100%;table-layout:fixed}:host ::ng-deep .fullscreen-today{font-size:3rem;width:100%;padding:16px 55px 0;color:#fff}:host ::ng-deep .hide{display:none}"]}]}],"members":{"lang":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}}]}],"usedLangs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":54,"character":3}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":55,"character":3}}]}],"froalaEditorDirective":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":59,"character":3},"arguments":[{"__symbolic":"reference","module":"angular-froala-wysiwyg","name":"FroalaEditorDirective","line":59,"character":13}]}]}],"filelist":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":60,"character":3}}]}],"customFroalaOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":175,"character":3},"arguments":["froalaOptions"]}]}],"clickSave":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":188,"character":3}}]}],"clickLoad":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":189,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":198,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"LOCALE_ID","line":198,"character":12}]}],null,null,null,null],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":195,"character":15},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":196,"character":11},{"__symbolic":"reference","module":"ngx-toastr","name":"ToastrService","line":197,"character":20},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"@schoolbelle/common/translation","name":"TranslationService","line":199,"character":24},{"__symbolic":"reference","name":"TextEditorService"},{"__symbolic":"reference","module":"@angular/common","name":"DatePipe","line":201,"character":23},{"__symbolic":"reference","module":"@schoolbelle/api/board","name":"BoardService","line":202,"character":19}]}],"ngOnInit":[{"__symbolic":"method"}],"insertIntoFilelist":[{"__symbolic":"method"}],"deleteFromFilelist":[{"__symbolic":"method"}],"insertClassNewsTitle":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"updateButtonsText":[{"__symbolic":"method"}],"detectMediaEditor":[{"__symbolic":"method"}],"onCopy":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":297,"character":3},"arguments":["oncopy",["$event"]]}]}]}},"TextEditorService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"getFileElementInEditor":[{"__symbolic":"method"}],"assignIdToInsertedFileElement":[{"__symbolic":"method"}],"insertLink":[{"__symbolic":"method"}],"insertImage":[{"__symbolic":"method"}],"insertVideo":[{"__symbolic":"method"}],"deleteFileElementInEditor":[{"__symbolic":"method"}],"updateFileElementInEditor":[{"__symbolic":"method"}],"getIdFromSrc":[{"__symbolic":"method"}],"insertFileIntoFilelist":[{"__symbolic":"method"}],"deleteFileFromFilelist":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"TextViewerComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵc"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"app-text-viewer","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":10,"character":18},"member":"OnPush"},"template":"<div *ngIf=\"text\" [style.height]=\"height\" \nstyle=\"overflow-y:scroll;\" \n[froalaView]=\"(text | tableScroll | mailmerged : mailmergeItem | highlight : query | imageResized)\"\n></div>\n","styles":[":host ::ng-deep p{margin-bottom:.2rem}:host ::ng-deep table{width:100%;table-layout:fixed}"]}]}],"members":{"content":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"lang":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"mailmerge":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"mailmergeIndex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}],"height":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3}}]}],"query":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"filelist":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3}}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"TextViewerModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":9,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"TextViewerComponent"},{"__symbolic":"reference","name":"MailmergedPipe"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":12,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"angular-froala-wysiwyg","name":"FroalaViewModule","line":13,"character":4},"member":"forRoot"}},{"__symbolic":"reference","module":"@schoolbelle/shared/pipes","name":"HighlightPipeModule","line":14,"character":4}],"exports":[{"__symbolic":"reference","name":"TextViewerComponent"},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":18,"character":4},{"__symbolic":"reference","module":"angular-froala-wysiwyg","name":"FroalaViewModule","line":19,"character":4},{"__symbolic":"reference","module":"@schoolbelle/shared/pipes","name":"HighlightPipeModule","line":20,"character":4},{"__symbolic":"reference","name":"MailmergedPipe"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"}]}]}],"members":{}},"MailmergedPipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":7,"character":1},"arguments":[{"name":"mailmerged"}]}],"members":{"transform":[{"__symbolic":"method"}],"applyMailmerge":[{"__symbolic":"method"}]}},"LetterSimplifiedTargetTextComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"app-letter-simplified-target-text","template":"<span *ngIf=\"!targets || targets.length === 0; else targetList\" class=\"text-sm text-danger\" i18n>No targets.</span>\n\n<ng-template #targetList>\n    <div class=\"position-relative d-inline-block w-100\" style=\"max-width: 100%;\">\n        <div style=\"flex-basis: 100%;\">\n            <div class=\"d-flex flex-wrap\">\n                <span *ngFor=\"let target of targets;let last = last\"\n                    [ngSwitch]=\"getScopePrefix(target.scopes)\">\n                    {{target.group_name}}\n                    <ng-container *ngIf=\"isCheckedAll(target); else some\" i18n>all</ng-container>\n                    <ng-template #some>\n                        <ng-container i18n>some</ng-container>\n                        <small *ngIf=\"target.count\">({{target.count}})</small>\n                    </ng-template>\n                    <span *ngSwitchCase=\"'admin'\" class=\"ml-1\" i18n>admins</span>\n                    <span *ngSwitchCase=\"'faculty'\" class=\"ml-1\" i18n>faculty</span>\n                    <span *ngIf=\"!last\" class=\"mr-1\">,</span>\n                </span>\n            </div>\n        </div>\n    </div>\n</ng-template>","styles":[":host{flex-grow:1;display:inline-flex;align-items:center}"]}]}],"members":{"targets":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"isCheckedAll":[{"__symbolic":"method"}],"getScopePrefix":[{"__symbolic":"method"}]}},"LetterSimplifiedTargetTextModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"LetterSimplifiedTargetTextComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":7,"character":4}],"exports":[{"__symbolic":"reference","name":"LetterSimplifiedTargetTextComponent"}]}]}],"members":{}},"LetterWriteProfileComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"app-letter-write-profile","template":"<div class=\"mr-3\" style=\"width:64px;\">\n    <img class=\"mr-3 rounded\" [src]=\"auth.currentUser.photo || 'assets/images/default-profile.jpg'\" width=\"60\" height=\"60\" alt=\"User profile image\">\n    <div class=\"username small text-center cursor-pointer position-relative\" dropdown dropdownToggle>\n      <span class=\"username\">{{author_name}}</span> <i class=\"ml-1 fa fa-caret-down\"></i>\n      <div class=\"dropdown-menu\" *dropdownMenu>\n          <button class=\"dropdown-item\" *ngFor=\"let item of possible_author_names\"\n          (click)=\"author_name = item; setAuthorName();\">\n              <i class=\"fa\" [ngClass]=\"author_name === item ? 'fa-check-circle-o':'fa-circle-o'\" aria-hidden=\"true\"></i>\n              {{item}}\n          </button>\n      </div>\n    </div>\n</div>\n\n\n<div hidden id=\"letter-write-profile-parent\"\ni18n-translation-text\ntranslation-text=\"%s's parent\"></div>\n\n<div hidden id=\"letter-write-profile-student\"\ni18n-translation-text\ntranslation-text=\"student %s\"></div>\n\n<div hidden id=\"letter-write-profile-admin\"\ni18n-translation-text\ntranslation-text=\"admin %s\"></div>\n\n<div hidden id=\"letter-write-profile-faculty\"\ni18n-translation-text\ntranslation-text=\"faculty %s\"></div>\n","styles":[".username{word-break:keep-all;word-wrap:break-word}"]}]}],"members":{"author_name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"author_nameChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":26,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@schoolbelle/api/auth","name":"AuthService","line":31,"character":16},{"__symbolic":"reference","module":"@schoolbelle/api/group","name":"GroupService","line":32,"character":18},{"__symbolic":"reference","module":"@schoolbelle/api/group-member","name":"GroupMemberService","line":33,"character":19},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":34,"character":18},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":35,"character":23},{"__symbolic":"reference","module":"@schoolbelle/common/translation","name":"TranslationService","line":36,"character":24},{"__symbolic":"reference","name":"ɵf"}]}],"ngOnInit":[{"__symbolic":"method"}],"loadAuthorName":[{"__symbolic":"method"}],"setAuthorName":[{"__symbolic":"method"}],"watchAuthorNameList":[{"__symbolic":"method"}],"turnMemberToAuthorName":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"LetterWriteProfileModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"LetterWriteProfileComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":8,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":9,"character":4},"member":"forRoot"}}],"exports":[{"__symbolic":"reference","name":"LetterWriteProfileComponent"}]}]}],"members":{}},"LetterWriteFileListComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"app-letter-write-file-list","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":9,"character":18},"member":"OnPush"},"template":"<div \n    class=\"px-2 wrap_filelist\" \n    [ngClass]=\"{'mt-2': filelist.list.length}\"\n>\n    <app-file-row \n    *ngFor=\"let file of filelist.list; let i = index;\"\n    [showMimeType]=\"showMimeType\"\n    [file]=\"file\" [index]=\"i\" (onRemove)=\"remove(file)\">\n    </app-file-row>       \n</div> \n\n","styles":[".table-row{margin:0;display:flex}.table-row:first-child .table-cell{border-top:1px solid #dee2e6}.table-row .table-cell:first-child{border-left:1px solid #dee2e6}.table-cell{border-bottom:1px solid #dee2e6;border-right:1px solid #dee2e6;padding:.3rem;flex-basis:0;max-width:100%;flex-grow:1;display:flex;justify-content:center;align-items:center}.wrap_filelist{overflow-y:scroll;max-height:10vh}"]}]}],"members":{"filelist":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"showMimeType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":16,"character":18}]}],"ngOnInit":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}]}},"LetterWriteFileListModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"LetterWriteFileListComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":10,"character":4},{"__symbolic":"reference","name":"LetterWriteFileListFileRowModule"}],"exports":[{"__symbolic":"reference","name":"LetterWriteFileListComponent"}]}]}],"members":{}},"LetterWriteFileListFileNameTextComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"app-file-name-text","template":"<div class=\"position-relative w-100\">\n  <div class=\"d-flex align-items-center position-absolute top-0 left-0 w-100 h-100\">\n    <span class=\"text-truncate flex-shrink-1\">{{ file?.name | fileName }}</span>\n    <span class=\"flex-shrink-0\">.{{ file?.name | fileExtension }}</span>\n    <span class=\"mx-1 small flex-shrink-0\">({{ file?.size | fileSize }})</span>\n  </div>\n</div>\n","styles":[""]}]}],"members":{"file":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"LetterWriteFileListFileNameTextModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"LetterWriteFileListFileNameTextComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":10,"character":4},{"__symbolic":"reference","module":"@schoolbelle/api/file","name":"FileModule","line":11,"character":4}],"exports":[{"__symbolic":"reference","name":"LetterWriteFileListFileNameTextComponent"}]}]}],"members":{}},"LetterWriteFileListFileRowComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"app-file-row","template":"<div class=\"mb-1 d-flex align-items-center\" [ngClass]=\"{ 'table-danger':control.invalid }\">\n  <div>{{ i + 1}}.</div>\n  <div class=\"d-flex align-items-center position-relative px-3 flex-grow-1\">\n    <div class=\"d-flex flex-column w-100\">\n      <app-file-name-text [file]=\"file\"></app-file-name-text>\n      <div class=\"w-100\">\n        <p *ngIf=\"control.errors?.sizeTooBig\" class=\"mb-0 text-danger small\" i18n>The total size of files({{ control.errors?.sizeTooBig.fileSizeLimit | fileSize : 0 }}) exceeds the limit!</p>\n      </div>\n    </div>\n    <!-- \n    <div class=\"d-flex flex-column position-absolute w-100\" style=\"max-width:calc(100% - 1.5rem);\">\n      <app-file-name-text [file]=\"file\"></app-file-name-text>\n      <div class=\"w-100\">\n        <p *ngIf=\"control.errors?.sizeTooBig\" class=\"mb-0 text-danger small\" i18n>The total size of files({{ control.errors?.sizeTooBig.fileSizeLimit | fileSize : 0 }}) exceeds the limit!</p>\n      </div>\n    </div>\n    -->\n  </div>\n  <div *ngIf=\"showMimeType\" class=\"d-flex align-items-center justify-content-center\">\n    {{file.type || 'unknown'}}\n  </div>\n\n  <div>\n    <button class=\"btn btn-sm btn-light\" type=\"button\" (click)=\"remove()\">\n      <i class=\"fa fa-trash\"></i>\n    </button>\n  </div>\n</div>\n","styles":[""]}]}],"members":{"i":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3},"arguments":["index"]}]}],"file":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"showMimeType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"onRemove":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":13,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}]}},"LetterWriteFileListFileRowModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"LetterWriteFileListFileRowComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":12,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":13,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":13,"character":17},{"__symbolic":"reference","module":"@schoolbelle/api/file","name":"FileModule","line":14,"character":4},{"__symbolic":"reference","name":"LetterWriteFileListFileNameTextModule"}],"exports":[{"__symbolic":"reference","name":"LetterWriteFileListFileRowComponent"}]}]}],"members":{}},"LetterWriteFileListPreviewComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"app-preview","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":8,"character":18},"member":"OnPush"},"template":"<div class=\"position-relative\" style=\"width:60px; height:60px;\">\n    <div class=\"vertical-center\">\n        <img *ngIf=\"thumbnail\" class=\"img-thumbnail\" [src]=\"thumbnail\">\n        <img *ngIf=\"!thumbnail && preview && type !== 'video'\" class=\"img-thumbnail\" [src]=\"preview\">\n        <video *ngIf=\"!thumbnail && preview && type === 'video'\" class=\"img-thumbnail\" [src]=\"preview\" metadata=\"metadata\"></video>\n        <span *ngIf=\"!thumbnail && !preview\"> - </span>\n    </div>\n    <i *ngIf=\"type === 'video'\" class=\"fa fa-video-camera vertical-center\"></i>\n</div>\n","styles":["img,video{max-height:60px;max-width:60px}.vertical-center{position:absolute;top:50%;transform:translate(-50%,-50%);left:50%}"]}]}],"members":{"file":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":48,"character":24}]}],"ngOnInit":[{"__symbolic":"method"}]}},"LetterWriteFileListPreviewModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"LetterWriteFileListPreviewComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":9,"character":4}],"exports":[{"__symbolic":"reference","name":"LetterWriteFileListPreviewComponent"}]}]}],"members":{}},"AttatchmentLimits":{"__symbolic":"interface"},"DEFAULT_ATTACHMENT_LIMITS":{"MAX_FILE_LENGTH":100,"MAX_VIDEO_LENGTH":5,"MAX_FILE_SIZE":536870912,"MAX_IMAGE_SIZE":52428800},"AttachmentLimitError":{"MAX_FILE_LENGTH":0,"MAX_VIDEO_LENGTH":1,"MAX_IMAGE_SIZE":2,"MAX_FILE_SIZE":3},"LetterWriteAbstractComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":72,"character":1},"arguments":[{"template":""}]}],"members":{"letter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":76,"character":3}}]}],"letterType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":77,"character":3}}]}],"sent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":79,"character":3}}]}],"getCurrentLangText":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,null,null,null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":113,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"LOCALE_ID","line":113,"character":12}]}],null],"parameters":[{"__symbolic":"reference","module":"@schoolbelle/api/auth","name":"AuthService","line":103,"character":17},{"__symbolic":"reference","module":"@schoolbelle/api/group","name":"GroupService","line":104,"character":18},{"__symbolic":"reference","module":"@schoolbelle/api/board","name":"BoardService","line":105,"character":18},{"__symbolic":"reference","module":"@schoolbelle/api/ledger","name":"LedgerService","line":106,"character":22},{"__symbolic":"reference","module":"@schoolbelle/api/file","name":"FileService","line":107,"character":20},{"__symbolic":"reference","module":"@schoolbelle/api/letter","name":"LetterService","line":108,"character":29},{"__symbolic":"reference","module":"@schoolbelle/api/letter-target","name":"LetterTargetService","line":109,"character":22},{"__symbolic":"reference","module":"@schoolbelle/api/group-to-group","name":"TreeService","line":110,"character":20},{"__symbolic":"reference","module":"@schoolbelle/common/location","name":"LocationService","line":111,"character":24},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":112,"character":21},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"@schoolbelle/api/survey-v5","name":"SurveyV5Service","line":114,"character":24}]}],"calculateTranslations":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"createForm":[{"__symbolic":"method"}],"fillForm":[{"__symbolic":"method"}],"setInitialTargets":[{"__symbolic":"method"}],"fillInDefaultValues":[{"__symbolic":"method"}],"initialize":[{"__symbolic":"method"}],"updateFileList":[{"__symbolic":"method"}],"uploadFiles":[{"__symbolic":"method"}],"processTargetsBeforeSend":[{"__symbolic":"method"}],"goBack":[{"__symbolic":"method"}],"send":[{"__symbolic":"method"}],"canDeactivate":[{"__symbolic":"method"}],"deleteLang":[{"__symbolic":"method"}]}},"LetterWriteAbstractModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":22,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"LetterWriteAbstractComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":25,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":26,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":26,"character":17},{"__symbolic":"reference","name":"LetterWriteProfileModule"},{"__symbolic":"reference","name":"LetterSimplifiedTargetTextModule"},{"__symbolic":"reference","name":"TextEditorModule"},{"__symbolic":"reference","name":"TextViewerModule"},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"angular-froala-wysiwyg","name":"FroalaViewModule","line":30,"character":4},"member":"forRoot"}},{"__symbolic":"reference","module":"angular-file","name":"ngfModule","line":31,"character":4},{"__symbolic":"reference","name":"LetterWriteFileListModule"},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":33,"character":4},{"__symbolic":"reference","module":"@schoolbelle/shared/directives","name":"ByteLengthModule","line":34,"character":4},{"__symbolic":"reference","name":"TranslationDropdownModule"},{"__symbolic":"reference","name":"TranslationEditorModule"}],"exports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":40,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":41,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":41,"character":17},{"__symbolic":"reference","name":"LetterWriteProfileModule"},{"__symbolic":"reference","name":"LetterSimplifiedTargetTextModule"},{"__symbolic":"reference","name":"TextEditorModule"},{"__symbolic":"reference","name":"TextViewerModule"},{"__symbolic":"reference","module":"angular-froala-wysiwyg","name":"FroalaViewModule","line":45,"character":4},{"__symbolic":"reference","module":"angular-file","name":"ngfModule","line":46,"character":4},{"__symbolic":"reference","name":"LetterWriteFileListModule"},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":48,"character":4},{"__symbolic":"reference","name":"TranslationDropdownModule"},{"__symbolic":"reference","name":"TranslationEditorModule"}],"providers":[{"__symbolic":"reference","name":"AbstractLetterWriteResolve"}]}]}],"members":{}},"AbstractLetterWriteResolve":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@schoolbelle/api/group-to-group","name":"TreeService","line":10,"character":19},{"__symbolic":"reference","module":"@schoolbelle/api/group-member","name":"GroupMemberService","line":11,"character":21}]}],"resolve":[{"__symbolic":"method"}],"prepare":[{"__symbolic":"method"}]}},"LetterTracker":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@schoolbelle/common/object-change-tracker","name":"ObjectChangeTracker","line":7,"character":35},"members":{"__ctor__":[{"__symbolic":"constructor"}],"load":[{"__symbolic":"method"}],"overwrite":[{"__symbolic":"method"}]}},"LetterMetadataComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"app-letter-metadata","template":"<p *ngIf=\"posted_at === true\" class=\"text-muted small mb-1\">\n  <span tooltip=\"{{ item.posted_at | date:'short' }}\" i18n>posted at {{ item.posted_at | date:'fullDate' }} </span>\n</p>\n\n<p class=\"text-muted small\">\n  <app-letter-simplified-target-text [targets]=\"item.targets_simplified\"></app-letter-simplified-target-text>\n  <span class=\"ml-1\" *ngIf=\"group.checkPermission('admin') || item.created_by === (group.currentGroup && group.currentGroup.uid)\">\n    <span class=\"cursor-pointer btn-link p-0\" i18n>\n      read <span *ngIf=\"group.currentGroup.type === 'openclass'\">{{item.read_cnt}}</span>\n    </span>\n  </span>\n  <span class=\"ml-1\" *ngIf=\"board.currentBoardData?.allow_comment\">\n    <span class=\"cursor-pointer btn-link p-0\" i18n>\n      comment {{item.comment_cnt}}\n      <span *ngIf=\"isCommentNew\" class=\"badge badge-danger mt-0 mb-2\">N</span>\n    </span>\n  </span>\n  <span class=\"ml-1\" *ngIf=\"item.files && item.files.length > 0\" i18n>| file {{item.files.length}}</span>\n</p>\n","styles":[""]}]}],"members":{"item":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"posted_at":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"onCommentClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":14,"character":3}}]}],"onReadClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":15,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@schoolbelle/api/group","name":"GroupService","line":18,"character":17},{"__symbolic":"reference","module":"@schoolbelle/api/board","name":"BoardService","line":19,"character":17},{"__symbolic":"reference","module":"@schoolbelle/api/badge","name":"BadgeService","line":20,"character":20},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":21,"character":20}]}],"ngOnInit":[{"__symbolic":"method"}],"openCommentModal":[{"__symbolic":"method"}],"openReadListModal":[{"__symbolic":"method"}]}},"LetterMetadataModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":6,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"LetterMetadataComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":9,"character":4},{"__symbolic":"reference","name":"LetterSimplifiedTargetTextModule"},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":11,"character":4},"member":"forRoot"}}],"exports":[{"__symbolic":"reference","name":"LetterMetadataComponent"},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":15,"character":4},{"__symbolic":"reference","name":"LetterSimplifiedTargetTextModule"},{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":17,"character":4}]}]}],"members":{}},"LetterTagsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"LetterTagsComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":8,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":9,"character":4},"member":"forRoot"}}],"exports":[{"__symbolic":"reference","name":"LetterTagsComponent"}]}]}],"members":{}},"LetterTagsComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"app-letter-tags","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":14,"character":19},"member":"OnPush"},"template":"<span *ngIf=\"fixedAtTop\" class=\"badge badge-primary badge-outline mr-1 mb-2\" i18n\n  i18n-tooltip tooltip=\"Fixed until {{fixedAtTop | date: 'medium'}}\"\n>\n  Fixed til {{fixedAtTop | date: 'shortDate'}}\n</span>\n<span *ngIf=\"reserved\" class=\"badge badge-primary badge-outline mr-1 mb-2\" i18n\n  tooltip=\"Scheduled at {{item.issue_at * 1000 | date: 'medium'}}\"\n>\n  Scheduled @{{item.issue_at * 1000 | date : 'short'}}\n</span>\n<span *ngIf=\"hasSumit\" class=\"badge badge-primary mr-1 mb-2\" i18n>Submit</span>\n<span *ngIf=\"hasSurvey\" class=\"badge mr-1 mb-2\" [ngClass]=\"{\n  'badge-primary':daysleft >= 0,\n  'badge-secondary':daysleft < 0\n}\">\n  <span *ngIf=\"daysleft >= 0\" i18n>Survey D-{{daysleft > 99 ? '99+':daysleft}}</span>\n  <span *ngIf=\"daysleft < 0\" i18n>Expired</span>\n</span>\n<span *ngIf=\"hasSurvey && answered\" class=\"mr-1 mb-2 badge badge-secondary\" i18n>\n  Answered\n</span>\n\n<span *ngIf=\"item.draw_at && item.draw_at * 1000 > now\" class=\"badge badge-primary badge-outline mr-1 mb-2\" i18n>\n  Draw <span>@{{item.draw_at * 1000 | date : 'short'}}</span>\n</span>\n<span *ngIf=\"item.draw_at && item.draw_at * 1000 <= now\" class=\"badge badge-secondary mr-1 mb-2\" i18n>\n  Drawn\n</span>\n<span *ngIf=\"item.hasMailmerge\" class=\"badge badge-outline badge-secondary mr-1 mb-2\" i18n>Mailmerge</span>\n<span *ngIf=\"item.selector_id\" class=\"badge badge-outline badge-secondary mr-1 mb-2\" i18n i18n-tooltip tooltip=\"It is crawled from a website board. Crawled posts do not send any push by default.\">Crawled</span>\n\n\n","styles":[".badge{font-size:.6rem;vertical-align:top}"]}]}],"members":{"item":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"isFixedAtTop":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3},"arguments":["fixedAtTop"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":30,"character":31}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}]}},"LetterItemComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"template":""}]}],"members":{"item":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"query":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"isInView":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"fixedAtTop":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"fixAtTop":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":21,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":40,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"LOCALE_ID","line":40,"character":12}]}]],"parameters":[{"__symbolic":"reference","module":"@schoolbelle/api/auth","name":"AuthService","line":34,"character":19},{"__symbolic":"reference","module":"@schoolbelle/api/group","name":"GroupService","line":35,"character":17},{"__symbolic":"reference","module":"@schoolbelle/api/board","name":"BoardService","line":36,"character":17},{"__symbolic":"reference","module":"@schoolbelle/api/letter-to-board","name":"LetterToBoardService","line":37,"character":18},{"__symbolic":"reference","module":"@schoolbelle/api/letter","name":"LetterService","line":38,"character":21},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":39,"character":20},{"__symbolic":"reference","name":"string"}]}],"handleLanguages":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"update":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"deleteFromAllLetterTargets":[{"__symbolic":"method"}],"deleteFromCurrentLetterTarget":[{"__symbolic":"method"}],"canFixAtTop":[{"__symbolic":"method"}],"flag":[{"__symbolic":"method"}],"unflag":[{"__symbolic":"method"}],"clearFlags":[{"__symbolic":"method"}],"report":[{"__symbolic":"method"}],"unreport":[{"__symbolic":"method"}]}},"LetterItemModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":21,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"LetterItemComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":24,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":25,"character":4},"member":"forRoot"}},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":26,"character":4},{"__symbolic":"reference","name":"TextViewerModule"},{"__symbolic":"reference","name":"TranslationViewerModule"},{"__symbolic":"reference","name":"TranslationDropdownModule"},{"__symbolic":"reference","module":"@schoolbelle/shared/pipes","name":"HighlightPipeModule","line":31,"character":4},{"__symbolic":"reference","name":"LetterTagsModule"},{"__symbolic":"reference","name":"LetterNewBadgeModule"},{"__symbolic":"reference","name":"LetterMetadataModule"},{"__symbolic":"reference","name":"LetterSurveyButtonModule"},{"__symbolic":"reference","name":"LetterFilelistModule"},{"__symbolic":"reference","name":"LetterContentModule"},{"__symbolic":"reference","name":"MediaBrowserModule"}],"exports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":41,"character":4},{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":42,"character":4},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":43,"character":4},{"__symbolic":"reference","name":"TextViewerModule"},{"__symbolic":"reference","name":"TranslationViewerModule"},{"__symbolic":"reference","name":"TranslationDropdownModule"},{"__symbolic":"reference","module":"@schoolbelle/shared/pipes","name":"HighlightPipeModule","line":47,"character":4},{"__symbolic":"reference","name":"LetterTagsModule"},{"__symbolic":"reference","name":"LetterNewBadgeModule"},{"__symbolic":"reference","name":"LetterMetadataModule"},{"__symbolic":"reference","name":"LetterSurveyButtonModule"},{"__symbolic":"reference","name":"LetterFilelistModule"},{"__symbolic":"reference","name":"LetterContentModule"},{"__symbolic":"reference","name":"MediaBrowserModule"}]}]}],"members":{}},"LetterListQuries":{"__symbolic":"interface"},"quriesDefault":{"query":"","survey":null,"mine":null,"from":null,"to":null},"LetterListComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":28,"character":1},"arguments":[{"template":""}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@schoolbelle/api/group","name":"GroupService","line":67,"character":17},{"__symbolic":"reference","module":"@schoolbelle/api/board","name":"BoardService","line":68,"character":17},{"__symbolic":"reference","module":"@schoolbelle/api/letter","name":"LetterService","line":69,"character":21},{"__symbolic":"reference","module":"@schoolbelle/api/letter-to-board","name":"LetterToBoardService","line":70,"character":18},{"__symbolic":"reference","module":"@schoolbelle/api/letter-read","name":"LetterReadService","line":71,"character":19},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":72,"character":20},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":73,"character":20}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"defaultListFilter":[{"__symbolic":"method"}],"queryListFilter":[{"__symbolic":"method"}],"fill":[{"__symbolic":"method"}],"map":[{"__symbolic":"method"}],"filter":[{"__symbolic":"method"}],"updateGeneralList":[{"__symbolic":"method"}],"updateFixedList":[{"__symbolic":"method"}],"trackByInternalId":[{"__symbolic":"method"}],"search":[{"__symbolic":"method"}],"fetchLatest":[{"__symbolic":"method"}],"removeItem":[{"__symbolic":"method"}],"updateItem":[{"__symbolic":"method"}],"markAsRead":[{"__symbolic":"method"}],"loadGeneralList":[{"__symbolic":"method"}],"loadFixedList":[{"__symbolic":"method"}],"refreshItem":[{"__symbolic":"method"}],"isInFixedList":[{"__symbolic":"method"}],"fixAtTopFor":[{"__symbolic":"method"}],"scrollHasHitBottom":[{"__symbolic":"method"}],"scrollHasHitTop":[{"__symbolic":"method"}]}},"LetterListModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":3,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"LetterListComponent"}]}]}],"members":{}},"LetterFilelistComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"app-letter-filelist","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":12,"character":18},"member":"OnPush"},"template":"<div class=\"d-flex align-items-center cursor-pointer\" *ngIf=\"list\">\n    <div (click)=\"open = !open\" i18n>Attachment files ({{list.length}})</div>\n    <i class=\"ml-2 fa\" [ngClass]=\"{'fa-caret-up':open, 'fa-caret-down':!open}\"(click)=\"open = !open\" aria-hidden=\"true\"></i>\n    <div class=\"ml-5\" (click)=\"downloadAll();\" i18n>Download All</div>\n</div>\n<div class=\"pt-3\" [hidden]=\"!open\">\n    <div class=\"file-item text-sm btn-link text-black mb-1\" *ngFor=\"let item of list; let i = index;\" type=\"button\" (click)=\"download(item)\">\n        <div class=\"d-flex align-items-center w-100\">\n            <span class=\"text-truncate\" style=\"max-width:100%;\">\n                <i class=\"fa fa-paperclip mr-1\" aria-hidden=\"true\"></i>\n                {{ item?.name | fileName }}\n            </span>\n            <span class=\"text-nowrap\">.{{ item?.name | fileExtension }}</span>\n            <span class=\"file-item-size mx-1 text-nowrap\">({{ item?.size | fileSize }})</span>\n        </div>\n    </div>\n</div>\n","styles":[".file-item-size{font-size:.85em}.file-item i{transform:rotate(225deg)}"]}]}],"members":{"list":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"open":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@schoolbelle/api/file","name":"FileService","line":21,"character":17},{"__symbolic":"reference","module":"@schoolbelle/common/loading","name":"LoadingService","line":22,"character":20},{"__symbolic":"reference","module":"ngx-toastr","name":"ToastrService","line":23,"character":19}]}],"ngOnInit":[{"__symbolic":"method"}],"download":[{"__symbolic":"method"}],"downloadAll":[{"__symbolic":"method"}]}},"LetterFilelistModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"LetterFilelistComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":8,"character":4},{"__symbolic":"reference","module":"@schoolbelle/api/file","name":"FileModule","line":9,"character":4}],"exports":[{"__symbolic":"reference","name":"LetterFilelistComponent"}]}]}],"members":{}},"Gallery":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":17,"character":15}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":17,"character":27},"arguments":[{"__symbolic":"reference","name":"GALLERY_CONFIG"}]}]],"parameters":[{"__symbolic":"reference","name":"GalleryConfig"}]}],"ref":[{"__symbolic":"method"}],"destroyAll":[{"__symbolic":"method"}],"resetAll":[{"__symbolic":"method"}],"deleteInstance":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"GalleryRef":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"GalleryConfig"},{"__symbolic":"reference","name":"Function"}]}],"activatePlayer":[{"__symbolic":"method"}],"setState":[{"__symbolic":"method"}],"setConfig":[{"__symbolic":"method"}],"add":[{"__symbolic":"method"}],"addImage":[{"__symbolic":"method"}],"addVideo":[{"__symbolic":"method"}],"addIframe":[{"__symbolic":"method"}],"addYoutube":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"load":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"}],"next":[{"__symbolic":"method"}],"prev":[{"__symbolic":"method"}],"play":[{"__symbolic":"method"}],"stop":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}]}},"GalleryComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":18,"character":1},"arguments":[{"selector":"gallery","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":20,"character":19},"member":"OnPush"},"template":"\n    <gallery-core [state]=\"galleryRef.state | async\"\n                  [config]=\"galleryRef.config | async\"\n                  (action)=\"onAction($event)\"\n                  (itemClick)=\"onItemClick($event)\"\n                  (thumbClick)=\"onThumbClick($event)\"\n                  (error)=\"onError($event)\"></gallery-core>\n    <ng-content></ng-content>\n  ","styles":["::ng-deep gallery-core[dotsPosition=top] gallery-dots{top:0}::ng-deep gallery-core[dotsPosition=bottom] gallery-dots{bottom:0}::ng-deep gallery-dots{margin:7px;position:absolute;left:50%;transform:translateX(-50%)}::ng-deep .g-dot{cursor:pointer;z-index:20}::ng-deep .g-dot:hover .g-dot-inner{opacity:1}::ng-deep .g-dot-active .g-dot-inner{opacity:1;transform:scale(1.5)!important}::ng-deep .g-dot-inner{background-color:#fff;opacity:.6;width:30%;height:30%;border-radius:50%;box-shadow:0 0 1px #000;transition:.2s}::ng-deep .g-dot,::ng-deep .g-dot-inner,::ng-deep gallery-dots{display:flex;justify-content:center;align-items:center}::ng-deep .g-nav-next,::ng-deep .g-nav-prev{position:absolute;top:50%;width:30px;height:40px;cursor:pointer;z-index:999}::ng-deep .g-nav-next{right:.5em;transform:translateY(-50%) perspective(1px)}::ng-deep .g-nav-prev{left:.5em;transform:translateY(-50%) perspective(1px) scale(-1,-1)}@media only screen and (max-width:480px){::ng-deep .g-nav-next{right:.2em}::ng-deep .g-nav-prev{left:.2em}}::ng-deep .g-items-container{height:100%}::ng-deep .g-slider{position:absolute;transition:transform .4s cubic-bezier(.5,0,.5,1)}::ng-deep gallery-core[slidingDirection=horizontal] .g-slider{flex-direction:row}::ng-deep gallery-core[slidingDirection=vertical] .g-slider{flex-direction:column}::ng-deep gallery-thumbs{display:block;z-index:1;overflow:unset}::ng-deep .g-thumbs-container{position:relative;z-index:206;width:100%;height:100%;left:0;top:0;display:flex;overflow:unset}::ng-deep gallery-core[disableThumb=true] gallery-thumb{cursor:default}::ng-deep gallery-core[thumbPosition=bottom] gallery-thumbs .g-slider,::ng-deep gallery-core[thumbPosition=top] gallery-thumbs .g-slider{flex-direction:row;top:0;left:50%}::ng-deep gallery-core[thumbPosition=bottom] gallery-thumb,::ng-deep gallery-core[thumbPosition=top] gallery-thumb{padding:1px 0 1px 1px}::ng-deep gallery-core[thumbPosition=left] gallery-thumbs .g-slider,::ng-deep gallery-core[thumbPosition=right] gallery-thumbs .g-slider{flex-direction:column;top:50%;left:0}::ng-deep gallery-core[thumbPosition=left] gallery-thumb,::ng-deep gallery-core[thumbPosition=right] gallery-thumb{padding:0 1px 1px}::ng-deep gallery-core[thumbPosition=top]{flex-direction:column}::ng-deep gallery-core[thumbPosition=left]{flex-direction:row}::ng-deep gallery-core[thumbPosition=right]{flex-direction:row-reverse}::ng-deep gallery-core[thumbPosition=bottom]{flex-direction:column-reverse}::ng-deep gallery-thumb.g-active-thumb .g-thumb-loading{background-color:#464646}::ng-deep .g-thumb-loading{position:relative;overflow:hidden;height:100%;background-color:#262626}::ng-deep .g-thumb-loading::before{content:\"\";position:absolute;top:0;right:0;bottom:0;left:50%;z-index:1;width:500%;margin-left:-250%;-webkit-animation:.8s linear infinite phAnimation;animation:.8s linear infinite phAnimation;background:linear-gradient(to right,rgba(255,255,255,0) 46%,rgba(255,255,255,.35) 50%,rgba(255,255,255,0) 54%) 50% 50%}@-webkit-keyframes phAnimation{0%{transform:translate3d(-30%,0,0)}100%{transform:translate3d(30%,0,0)}}@keyframes phAnimation{0%{transform:translate3d(-30%,0,0)}100%{transform:translate3d(30%,0,0)}}::ng-deep gallery-core[counterPosition=top] .g-counter{top:0;border-bottom-left-radius:4px;border-bottom-right-radius:4px}::ng-deep gallery-core[counterPosition=bottom] .g-counter{bottom:0;border-top-left-radius:4px;border-top-right-radius:4px}::ng-deep .g-counter{z-index:50;position:absolute;left:50%;transform:translateX(-50%) perspective(1px);font-size:12px;padding:4px 10px;color:#fff;background-color:rgba(0,0,0,.5)}::ng-deep gallery[gallerize] gallery-item{cursor:pointer}::ng-deep gallery-item,::ng-deep gallery-thumb{position:relative;height:100%;width:100%;display:block;overflow:hidden}::ng-deep gallery-item h2,::ng-deep gallery-item h4,::ng-deep gallery-thumb h2,::ng-deep gallery-thumb h4{color:coral;margin:0}::ng-deep gallery-item h2,::ng-deep gallery-thumb h2{font-size:3.5em;margin-bottom:.3em}::ng-deep gallery-item h4,::ng-deep gallery-thumb h4{font-size:1.6em}::ng-deep gallery-item{z-index:10}::ng-deep gallery-item iframe,::ng-deep gallery-item video{position:absolute;width:100%;height:100%}::ng-deep gallery-thumb{opacity:.5;cursor:pointer;transition:opacity .3s cubic-bezier(.5,0,.5,1)}::ng-deep gallery-thumb.g-active-thumb{opacity:1}::ng-deep .g-image-item{background-position:center center;background-repeat:no-repeat;background-size:cover;width:100%;height:100%}::ng-deep .g-image-error-message,::ng-deep .g-template{position:absolute;z-index:10;left:0;top:0;right:0;bottom:0;color:#fff;display:flex;align-items:center;justify-content:center;flex-direction:column}::ng-deep .g-loading{position:absolute;transform:translate3d(-50%,-50%,0);left:50%;top:50%;width:80px;height:80px}::ng-deep gallery-core[imageSize=contain] gallery-slider .g-image-item{background-size:contain}::ng-deep gallery-image{display:flex;justify-content:center;align-items:center;height:100%}::ng-deep gallery{position:relative;z-index:1;overflow:hidden;display:block;height:500px;background-color:#000}::ng-deep gallery *{box-sizing:border-box}::ng-deep gallery,::ng-deep gallery-core{position:relative;overflow:hidden}::ng-deep .g-box,::ng-deep .g-slider,::ng-deep gallery-core{display:flex;height:100%;width:100%}::ng-deep gallery[fluid]{transform:translateX(-50vw);width:100vw;left:50%}::ng-deep gallery[fluid][fluid=false]{transform:none;width:initial;left:initial}::ng-deep .g-no-transition{transition:unset!important}::ng-deep .g-box,::ng-deep gallery-slider{overflow:hidden;position:relative;display:flex;flex-direction:column;flex:1;order:1;height:100%}::ng-deep .g-btn-close svg,::ng-deep gallery-nav svg{width:100%;height:100%;filter:drop-shadow(0 0 1px #000);transition:opacity .2s linear;opacity:.6}::ng-deep .g-btn-close svg:hover,::ng-deep gallery-nav svg:hover{opacity:1}"]}]}],"members":{"id":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3}}]}],"items":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"nav":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"dots":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":3}}]}],"loop":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}],"thumb":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3}}]}],"zoomOut":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":41,"character":3}}]}],"counter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":42,"character":3}}]}],"dotsSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":3}}]}],"autoPlay":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":3}}]}],"gestures":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":45,"character":3}}]}],"thumbWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":3}}]}],"thumbHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":47,"character":3}}]}],"disableThumb":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":48,"character":3}}]}],"panSensitivity":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}}]}],"playerInterval":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":3}}]}],"itemTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":3}}]}],"thumbTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":52,"character":3}}]}],"thumbMode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":3}}]}],"imageSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":54,"character":3}}]}],"dotsPosition":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":55,"character":3}}]}],"counterPosition":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":56,"character":3}}]}],"slidingDirection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":57,"character":3}}]}],"loadingStrategy":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":58,"character":3}}]}],"thumbPosition":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":59,"character":3}}]}],"destroyRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":64,"character":3}}]}],"skipInitConfig":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":67,"character":3}}]}],"itemClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":69,"character":3}}]}],"thumbClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":70,"character":3}}]}],"playingChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":71,"character":3}}]}],"indexChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":72,"character":3}}]}],"itemsChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":73,"character":3}}]}],"error":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":74,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Gallery"}]}],"getConfig":[{"__symbolic":"method"}],"onAction":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onItemClick":[{"__symbolic":"method"}],"onThumbClick":[{"__symbolic":"method"}],"onError":[{"__symbolic":"method"}],"load":[{"__symbolic":"method"}],"add":[{"__symbolic":"method"}],"addImage":[{"__symbolic":"method"}],"addVideo":[{"__symbolic":"method"}],"addIframe":[{"__symbolic":"method"}],"addYoutube":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"next":[{"__symbolic":"method"}],"prev":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"play":[{"__symbolic":"method"}],"stop":[{"__symbolic":"method"}]}},"ImageItem":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}]}},"VideoItem":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}]}},"IframeItem":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}]}},"YoutubeItem":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}]}},"GalleryIframeComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"gallery-iframe","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":5,"character":19},"member":"OnPush"},"template":"\n    <iframe #iframe\n            frameborder=\"0\"\n            allowfullscreen\n            [src]=\"iframeSrc\">\n    </iframe>\n  "}]}],"members":{"src":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"pauseVideo":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3},"arguments":["pause"]}]}],"iframe":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":28,"character":3},"arguments":["iframe"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":30,"character":34}]}],"ngOnInit":[{"__symbolic":"method"}]}},"GalleryImageComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"gallery-image","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":7,"character":19},"member":"OnPush"},"animations":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":9,"character":4},"arguments":["fadeIn",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":10,"character":6},"arguments":[":enter",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":11,"character":8},"arguments":[{"opacity":0}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":12,"character":8},"arguments":["300ms ease-in",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":12,"character":33},"arguments":[{"opacity":1}]}]}]]}]]}],"template":"\n    <ng-container [lazyImage]=\"src\"\n                  (progress)=\"onProgress($event)\"\n                  (loaded)=\"onLoaded($event)\"\n                  (error)=\"onError($event)\"\n                  [ngSwitch]=\"state | async\">\n\n      <div *ngSwitchCase=\"'success'\"\n           @fadeIn\n           class=\"g-image-item\"\n           [style.backgroundImage]=\"imageUrl\">\n      </div>\n\n      <div *ngSwitchCase=\"'failed'\"\n           class=\"g-image-error-message\">\n        <div *ngIf=\"errorTemplate; else defaultError\"\n             [innerHTML]=\"errorTemplate\"></div>\n        <ng-template #defaultError>\n          <ng-container *ngIf=\"isThumbnail; else isLarge\">\n            <h4>⚠</h4>\n          </ng-container>\n          <ng-template #isLarge>\n            <h2>⚠</h2>\n            <p>Unable to load the image!</p>\n          </ng-template>\n        </ng-template>\n      </div>\n\n      <ng-container *ngSwitchCase=\"'loading'\">\n        <div *ngIf=\"loaderTemplate; else defaultLoader\"\n             class=\"g-loading\"\n             [innerHTML]=\"loaderTemplate\">\n        </div>\n        <ng-template #defaultLoader>\n          <div *ngIf=\"isThumbnail\" class=\"g-thumb-loading\"></div>\n        </ng-template>\n      </ng-container>\n    </ng-container>\n  "}]}],"members":{"isThumbnail":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":67,"character":3}}]}],"src":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":70,"character":3}}]}],"loadingIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":75,"character":3}}]}],"loadingError":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":80,"character":3}}]}],"error":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":85,"character":3}}]}],"imageLoadSuccess":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":89,"character":3},"arguments":["class.g-image-loaded"]}]}],"imageLoadFailed":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":93,"character":3},"arguments":["class.g-image-error"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":97,"character":34}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onProgress":[{"__symbolic":"method"}],"onLoaded":[{"__symbolic":"method"}],"onError":[{"__symbolic":"method"}]}},"GalleryVideoComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"gallery-video","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":4,"character":19},"member":"OnPush"},"template":"\n    <video #video controls poster=\"{{poster}}\" (error)=\"error.emit($event)\">\n      <source *ngFor=\"let src of videoSources\" src=\"{{src?.url}}\" type=\"{{src?.type}}\"/>\n    </video>\n  "}]}],"members":{"src":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"poster":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"pauseVideo":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3},"arguments":["pause"]}]}],"error":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":26,"character":3}}]}],"video":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":28,"character":3},"arguments":["video"]}]}],"ngOnInit":[{"__symbolic":"method"}]}},"GALLERY_CONFIG":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":2,"character":34},"arguments":["galleryConfig"]},"GalleryConfig":{"__symbolic":"interface"},"GalleryState":{"__symbolic":"interface"},"GalleryItem":{"__symbolic":"interface"},"GalleryError":{"__symbolic":"interface"},"GalleryAction":{"INITIALIZED":"initialized","ITEMS_CHANGED":"itemsChanged","INDEX_CHANGED":"indexChanged","PLAY":"play","STOP":"stop"},"ImageSize":{"Cover":"cover","Contain":"contain"},"LoadingStrategy":{"Preload":"preload","Lazy":"lazy","Default":"default"},"ThumbnailsPosition":{"Top":"top","Left":"left","Right":"right","Bottom":"bottom"},"ImageLoaderMode":{"Determinate":"determinate","Indeterminate":"indeterminate"},"DotsPosition":{"Top":"top","Bottom":"bottom"},"CounterPosition":{"Top":"top","Bottom":"bottom"},"ThumbnailsMode":{"Free":"free","Strict":"strict"},"SlidingDirection":{"Horizontal":"horizontal","Vertical":"vertical"},"GalleryItemType":{"Image":"image","Video":"video","Youtube":"youtube","Iframe":"iframe"},"GalleryModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":23,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":25,"character":4},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":26,"character":4}],"declarations":[{"__symbolic":"reference","name":"GalleryComponent"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵi"},{"__symbolic":"reference","name":"ɵj"},{"__symbolic":"reference","name":"ɵk"},{"__symbolic":"reference","name":"ɵl"},{"__symbolic":"reference","name":"ɵm"},{"__symbolic":"reference","name":"ɵn"},{"__symbolic":"reference","name":"GalleryImageComponent"},{"__symbolic":"reference","name":"GalleryVideoComponent"},{"__symbolic":"reference","name":"GalleryIframeComponent"},{"__symbolic":"reference","name":"ɵo"},{"__symbolic":"reference","name":"ɵp"}],"exports":[{"__symbolic":"reference","name":"GalleryComponent"},{"__symbolic":"reference","name":"ɵo"},{"__symbolic":"reference","name":"ɵp"}]}]}],"members":{},"statics":{"withConfig":{"__symbolic":"function","parameters":["config"],"value":{"ngModule":{"__symbolic":"reference","name":"GalleryModule"},"providers":[{"provide":{"__symbolic":"reference","name":"GALLERY_CONFIG"},"useValue":{"__symbolic":"reference","name":"config"}}]}}}},"MediaBrowserModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":8,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":10,"character":4},{"__symbolic":"reference","module":"@schoolbelle/shared/directives","name":"VideoJsModule","line":11,"character":4},{"__symbolic":"reference","name":"GalleryModule"},{"__symbolic":"reference","name":"ɵq"}],"declarations":[{"__symbolic":"reference","name":"MediaBrowserComponent"}],"exports":[{"__symbolic":"reference","name":"MediaBrowserComponent"},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":18,"character":4},{"__symbolic":"reference","module":"@schoolbelle/shared/directives","name":"VideoJsModule","line":19,"character":4},{"__symbolic":"reference","name":"GalleryModule"}]}]}],"members":{}},"MediaBrowserComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"app-media-browser","template":"\n<div *ngIf=\"mediaList.length > 0\" class=\"aspect-16-9-container\">    \n    <div class=\"aspect-16-9-content\">\n        <gallery *ngIf=\"!disabled\" \n        [id]=\"id\"\n        [loadingStrategy]=\"'lazy'\"\n        (itemClick)=\"mediaList[$event].type === 'image' ? itemClick.next($event) : null\"\n        [items]=\"mediaList\" \n        [thumbTemplate]=\"thumbTemplate\"\n        [itemTemplate]=\"itemTemplate\" \n        style=\"height:100%;\"></gallery>\n    </div>    \n</div>\n\n\n\n\n<ng-template #itemTemplate\nlet-index=\"index\"\nlet-type=\"type\"\nlet-data=\"data\"\nlet-currIndex=\"currIndex\">\n    <ng-container *ngIf=\"type === 'image' && index === currIndex\">\n        <app-faces [disabled]=\"!manageFaces\" [file]=\"data.fileInfo\"></app-faces>\n    </ng-container>\n\n    <ng-container *ngIf=\"type === 'streamableVideo' && index === currIndex\">\n        <video video-js poster=\"{{data.poster}}\" [src]=\"data.src\" preload=\"metadata\" controls></video>  \n    </ng-container>\n    <ng-container *ngIf=\"type === 'audio' && index === currIndex\">\n        <audio [src]=\"data.src\" controls></audio>  \n    </ng-container>\n\n</ng-template>\n<ng-template #thumbTemplate let-type=\"type\">\n    <span *ngIf=\"type === 'streamableVideo'\" class=\"item-type\">\n        <i class=\"fa fa-video-camera fa-lg\" aria-hidden=\"true\" style=\"text-shadow: 0px 0px 8px #000;\"></i>\n    </span>\n</ng-template>","styles":[".aspect-16-9-container{position:relative;padding-top:calc(56.25% + 90px);width:100%}.aspect-16-9-container>.aspect-16-9-content{position:absolute;top:0;left:0;bottom:0;right:0}:host ::ng-deep gallery gallery-item{cursor:pointer}"]}]}],"members":{"list":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"listChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":35,"character":3}}]}],"itemClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":36,"character":3}}]}],"index":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"manageFaces":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":3}}]}],"gallery":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":39,"character":3},"arguments":[{"__symbolic":"reference","name":"GalleryComponent"}]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":45,"character":5},"arguments":[{"__symbolic":"reference","module":"@schoolbelle/api/tokens","name":"REST_SERVER_DB_SHARD_ID","line":45,"character":12}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":46,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"LOCALE_ID","line":46,"character":12}]}]],"parameters":[{"__symbolic":"reference","module":"@schoolbelle/api/file","name":"FileService","line":43,"character":17},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":44,"character":18},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"}]}],"watchForProcessingMediaFiles":[{"__symbolic":"method"}],"filterFileInfoListForMedia":[{"__symbolic":"method"}],"tranformFileInfoToMediaObject":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"StreamableVideoItem":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":176,"character":20,"module":"./lib/media-browser/media-browser.component"}]}]}},"AudioItem":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":185,"character":20,"module":"./lib/media-browser/media-browser.component"}]}]}},"LetterNewBadgeComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"app-letter-new-badge","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":9,"character":18},"member":"OnPush"},"template":"<small>\n    <span *ngIf=\"isNew\" class=\"badge badge-primary mt-0\">N</span>\n</small>\n","styles":["span.badge{position:relative;bottom:3px}"]}]}],"members":{"item":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@schoolbelle/api/badge","name":"BadgeService","line":14,"character":18},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":15,"character":18}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"LetterNewBadgeModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"LetterNewBadgeComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":7,"character":4}],"exports":[{"__symbolic":"reference","name":"LetterNewBadgeComponent"}]}]}],"members":{}},"MailmergeAdminViewerComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"app-mailmerge-admin-viewer","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":10,"character":18},"member":"OnPush"},"template":"<div class=\"card\">\n\n  <div class=\"card-header d-flex align-items-center\">\n    <div class=\"input-group input-group-sm w-auto mx-2\">\n      <div class=\"input-group-prepend\">\n        <label class=\"input-group-text\" for=\"inputGroupSelect01\" i18n>Target</label>\n      </div>\n      <select class=\"custom-select custom-select-sm\" [(ngModel)]=\"currentMailmergeIndex\" style=\"width:0;min-width:150px;\">\n        <option *ngIf=\"!loading && mailmerged_members.length === 0\" i18n>We couldn't find mailmerge target members.</option>\n        <option *ngFor=\"let member of mailmerged_members; let i = index\" [value]=\"i\">\n          {{member.group_name}} {{member.member_num}}번 {{member.member_name}}\n          <!-- <ng-container *ngIf=\"member.deleted_at || member.gtg_deleted_at\" i18n>(Deleted or not found)</ng-container> -->\n          <ng-container *ngIf=\"member.gtg_deleted_at\" i18n>(Deleted or not found)</ng-container>\n        </option>\n      </select>\n    </div>\n    <span i18n>'s content</span>\n  </div>\n  <div *ngIf=\"loading\" class=\"card-body d-flex align-items-center justify-content-center bg-secondary\" style=\"opacity:.3; height:120px;\">\n    <i class=\"fa fa-spinner fa-spin fa-3x fa-fw\"></i>\n    <span class=\"sr-only\" i18n>Fetching...</span>\n  </div>\n  <div class=\"card-body\" *ngIf=\"!loading\">\n    <app-text-viewer\n    [content]=\"content\" [lang]=\"lang\" [query]=\"query\"\n    [mailmerge]=\"mailmerge\"\n    [mailmergeIndex]=\"currentMailmergeIndex\"\n    ></app-text-viewer>\n  </div>\n</div>\n","styles":[""]}]}],"members":{"item":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"content":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"lang":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"query":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@schoolbelle/api/group-member","name":"GroupMemberService","line":29,"character":19},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":30,"character":18}]}],"ngOnInit":[{"__symbolic":"method"}],"turnScopeToName":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"MailmergeAdminViewerModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":6,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"MailmergeAdminViewerComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":9,"character":4},{"__symbolic":"reference","name":"TextViewerModule"},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":11,"character":4}],"exports":[{"__symbolic":"reference","name":"MailmergeAdminViewerComponent"},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":15,"character":4},{"__symbolic":"reference","name":"TextViewerModule"},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":17,"character":4}]}]}],"members":{}},"MailmergeNonadminViewerComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"app-mailmerge-nonadmin-viewer","template":"\n\n<div class=\"card\" [ngClass]=\"last ? 'mb-0':'mb-3'\"  *ngFor=\"let member of mailmerged_members; let i = index; let last = last\">\n  <div class=\"card-header\">\n      <b i18n>Sent to {{member.member_name}}</b>\n  </div>\n  <div class=\"card-body\">\n    <app-text-viewer\n    [query]=\"query\"\n    [lang]=\"lang\"\n    [content]=\"content\"\n    [mailmerge]=\"mailmerge\"\n    [mailmergeIndex]=\"i\"\n    ></app-text-viewer>\n  </div>\n</div>\n\n<div class=\"card\"  *ngIf=\"mailmerged_members.length === 0\">\n  <div class=\"card-header\"  i18n>\n    No mailmerged content to see.\n  </div>\n</div>\n","styles":[""]}]}],"members":{"item":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"content":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"lang":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"query":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@schoolbelle/api/group-member","name":"GroupMemberService","line":20,"character":19},{"__symbolic":"reference","module":"@schoolbelle/api/board","name":"BoardService","line":21,"character":18},{"__symbolic":"reference","module":"@schoolbelle/api/group","name":"GroupService","line":22,"character":18}]}],"ngOnInit":[{"__symbolic":"method"}]}},"MailmergeNonadminViewerModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"MailmergeNonadminViewerComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":8,"character":4},{"__symbolic":"reference","name":"TextViewerModule"}],"exports":[{"__symbolic":"reference","name":"MailmergeNonadminViewerComponent"},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":13,"character":4},{"__symbolic":"reference","name":"TextViewerModule"}]}]}],"members":{}},"LetterContentComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"app-letter-content","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":8,"character":18},"member":"OnPush"},"template":"<div class=\"alert alert-primary\" *ngIf=\"item.hasMailmerge === false && restricted\" i18n>\n  This letter is sent to selected members only.\n</div>\n<div *ngIf=\"item.hasMailmerge === true\">\n  <app-mailmerge-admin-viewer *ngIf=\"checkPermission('admin') || item.created_by === uid\" [item]=\"item\" [content]=\"content\" [lang]=\"lang\" [query]=\"query\"></app-mailmerge-admin-viewer>\n  <app-mailmerge-nonadmin-viewer *ngIf=\"!checkPermission('admin') && item.created_by !== uid\" [item]=\"item\" [content]=\"content\"  [lang]=\"lang\" [query]=\"query\"></app-mailmerge-nonadmin-viewer>\n</div>\n\n<div *ngIf=\"item.hasMailmerge === false\">\n  <app-text-viewer\n  [query]=\"query\"\n  [lang]=\"lang\"\n  [content]=\"content\"\n  ></app-text-viewer>\n</div>\n\n","styles":[""]}]}],"members":{"item":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"content":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"lang":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"query":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@schoolbelle/api/group","name":"GroupService","line":17,"character":18}]}],"ngOnInit":[{"__symbolic":"method"}],"checkPermission":[{"__symbolic":"method"}]}},"LetterContentModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"LetterContentComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":10,"character":4},{"__symbolic":"reference","name":"TextViewerModule"},{"__symbolic":"reference","name":"MailmergeAdminViewerModule"},{"__symbolic":"reference","name":"MailmergeNonadminViewerModule"}],"exports":[{"__symbolic":"reference","name":"LetterContentComponent"}]}]}],"members":{}},"LetterSurveyButtonComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":40,"character":1},"arguments":[{"selector":"app-letter-survey-button","template":"<button *ngIf=\"members.length === 0 && hasSurvey\" type=\"button\" class=\"btn btn-secondary btn-sm btn-block\" (click)=\"openViewModal()\" i18n>\n  See survey contents (No permission to answer)\n</button>\n\n<div *ngFor=\"let member of members\">\n    <button *ngIf=\"hasAnswered(member) === false\"\n      class=\"btn btn-sm btn-block mb-2\"\n      [ngClass]=\"daysleft >= 0 ? 'btn-primary':'btn-secondary'\"\n      (click)=\"openReplyModal(member)\">\n        <span *ngIf=\"daysleft < 0; else reply\" i18n>\n          See survey contents\n        </span>\n        <ng-template #reply i18n>\n          Answer survey\n        </ng-template>\n        ({{member.member_type === 'parent' ? member.student_member_name : member.member_name}})\n    </button>\n    <button *ngIf=\"hasAnswered(member) === true\" class=\"btn btn-sm btn-outline-secondary btn-block mb-2\" (click)=\"openReplyModal(member)\" i18n>\n        See my answer ({{member.member_type === 'parent' ? member.student_member_name : member.member_name}})\n    </button>\n</div>\n\n<button *ngIf=\"hasSurvey && (group.checkPermission('admin') || item.created_by === (group.currentGroup && group.currentGroup.uid))\"\ntype=\"button\" class=\"btn btn-secondary btn-block btn-sm mb-2\" (click)=\"openStatisticsModal()\" i18n>\nSee results (admin)\n</button>\n\n\n\n<div hidden id=\"survey-token-403-error\"\n  i18n-translation-text=\"@@surveyToken403Error\"\n  translation-text=\"The permission is not granted.\"></div>\n\n<div hidden id=\"survey-token-404-error\"\n  i18n-translation-text=\"@@surveyToken404Error\"\n  translation-text=\"The survey does not exists.\"></div>\n","styles":[""]}]}],"members":{"item":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,null,null,null,null,null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":82,"character":5},"arguments":[{"__symbolic":"reference","module":"@schoolbelle/api/tokens","name":"SURVEY_FRONT_HOST","line":82,"character":12}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":83,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"LOCALE_ID","line":83,"character":12}]}],null],"parameters":[{"__symbolic":"reference","module":"@schoolbelle/api/group","name":"GroupService","line":70,"character":18},{"__symbolic":"reference","module":"@schoolbelle/api/badge","name":"BadgeService","line":71,"character":21},{"__symbolic":"reference","module":"@schoolbelle/api/group-member","name":"GroupMemberService","line":72,"character":22},{"__symbolic":"reference","module":"@schoolbelle/api/survey-g3","name":"SurveyG3Service","line":73,"character":22},{"__symbolic":"reference","module":"@schoolbelle/api/survey-v5","name":"SurveyV5Service","line":74,"character":24},{"__symbolic":"reference","module":"@schoolbelle/api/board","name":"BoardService","line":75,"character":21},{"__symbolic":"reference","module":"@schoolbelle/api/letter-to-board","name":"LetterToBoardService","line":76,"character":19},{"__symbolic":"reference","module":"@schoolbelle/api/auth","name":"AuthService","line":77,"character":20},{"__symbolic":"reference","module":"@schoolbelle/common/loading","name":"LoadingService","line":78,"character":23},{"__symbolic":"reference","module":"@schoolbelle/common/translation","name":"TranslationService","line":79,"character":27},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":80,"character":21},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":81,"character":26},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"@ngx-translate/i18n-polyfill","name":"I18n","line":84,"character":20}]}],"ngOnInit":[{"__symbolic":"method"}],"hasAnswered":[{"__symbolic":"method"}],"openReplyModal":[{"__symbolic":"method"}],"openStatisticsModal":[{"__symbolic":"method"}],"openViewModal":[{"__symbolic":"method"}],"refreshReplyStatus":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}]}},"LetterSurveyButtonModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"LetterSurveyButtonComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":7,"character":4}],"exports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":10,"character":4},{"__symbolic":"reference","name":"LetterSurveyButtonComponent"}]}]}],"members":{}},"LetterSurveyNewBadgeComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"app-letter-survey-new-badge","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":9,"character":18},"member":"OnPush"},"template":"<small>\n    <span *ngIf=\"isNew\" class=\"badge badge-primary mt-0\">N</span>\n</small>\n","styles":["span.badge{position:relative;bottom:3px}"]}]}],"members":{"item":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@schoolbelle/api/badge","name":"BadgeService","line":14,"character":18},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":15,"character":18}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"LetterSurveyNewBadgeModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"LetterSurveyNewBadgeComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":7,"character":4}],"exports":[{"__symbolic":"reference","name":"LetterSurveyNewBadgeComponent"}]}]}],"members":{}},"AbstractNotificationListComponent":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@schoolbelle/api/badge","name":"BadgeService","line":14,"character":20},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":15,"character":21}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"fillMsgAndContent":[{"__symbolic":"method"}],"getGroupByLetterId":[{"__symbolic":"method"}],"getGroupByKey":[{"__symbolic":"method"}],"isNew":[{"__symbolic":"method"}],"groupNotificationList":[{"__symbolic":"method"}]}},"VersionWithChangeLogComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"app-version-with-change-log","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":11,"character":18},"member":"OnPush"},"template":"<small class=\"text-muted cursor-pointer\" (click)=\"openCHANGELOG()\">v.{{version}}</small>\n","styles":[""]}]}],"members":{"version":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"production":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":22,"character":5},"arguments":[{"__symbolic":"reference","name":"ɵv"}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":19,"character":17},{"__symbolic":"reference","module":"@schoolbelle/api/schoolbelle","name":"SchoolbelleService","line":20,"character":16},{"__symbolic":"reference","module":"@ngx-translate/i18n-polyfill","name":"I18n","line":21,"character":17},null]}],"ngOnInit":[{"__symbolic":"method"}],"getSchoolbelleVersionInfo":[{"__symbolic":"method"}],"openCHANGELOG":[{"__symbolic":"method"}],"openPopup":[{"__symbolic":"method"}]}},"VersionWithChangeLogModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":7,"character":4}],"declarations":[{"__symbolic":"reference","name":"VersionWithChangeLogComponent"}],"exports":[{"__symbolic":"reference","name":"VersionWithChangeLogComponent"}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":["version_info"],"value":{"ngModule":{"__symbolic":"reference","name":"VersionWithChangeLogModule"},"providers":[{"provide":{"__symbolic":"reference","name":"ɵv"},"useValue":{"__symbolic":"reference","name":"version_info"}}]}}}},"DatetimePickerModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":8,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":10,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":11,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":11,"character":17},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/datepicker","name":"BsDatepickerModule","line":12,"character":4},"member":"forRoot"}},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/timepicker","name":"TimepickerModule","line":12,"character":34},"member":"forRoot"}}],"declarations":[{"__symbolic":"reference","name":"DatetimePickerComponent"}],"exports":[{"__symbolic":"reference","name":"DatetimePickerComponent"},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":17,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":18,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":18,"character":17},{"__symbolic":"reference","module":"ngx-bootstrap/datepicker","name":"BsDatepickerModule","line":19,"character":4},{"__symbolic":"reference","module":"ngx-bootstrap/timepicker","name":"TimepickerModule","line":20,"character":4}]}]}],"members":{}},"DatetimePickerComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"app-datetime-picker","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":10,"character":18},"member":"OnPush"},"providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":13,"character":15},"useExisting":{"__symbolic":"reference","name":"DatetimePickerComponent"},"multi":true}],"template":"\n<div class=\"form-inline flex-nowrap\">\n    <div class=\"input-group mr-1 flex-nowrap flex-grow-1\" *ngIf=\"showDatePicker\">\n        <div class=\"input-group-prepend\" placement=\"bottom\">\n            <button class=\"btn\" \n            [ngClass]=\"datetimeCtrl?.invalid?'btn-danger':'btn-secondary'\"\n            type=\"button\" (click)=\"dp.toggle()\"><i class=\"fa fa-calendar ml-1\"></i></button>                            \n        </div>\n        <input type=\"text\" readonly\n        class=\"form-control\"\n        [class.is-invalid]=\"datetimeCtrl?.invalid\"\n        [formControl]=\"dateCtrl\" \n        [placeholder]=\"placeholder\" \n        style=\"width:130px;min-width:130px;\"\n        #dp=\"bsDatepicker\" bsDatepicker [bsConfig]=\"{ showWeekNumbers:false, containerClass: 'theme-orange' }\" \n        [maxDate]=\"maxDate\"\n        [minDate]=\"minDate\"\n        (onShown)=\"onCalendarShown.next($event)\"\n        (onHidden)=\"onCalendarHidden.next($event)\"\n        >\n    </div> \n    <div>\n        <timepicker *ngIf=\"showTimePicker\"\n        style=\"width:200px;\"\n        [formControl]=\"timeCtrl\" \n        [showMeridian]=\"false\" \n        [showSpinners]=\"false\"\n        #timePicker\n        ></timepicker>\n    </div>                       \n\n</div>  \n","styles":[":host ::ng-deep .bs-timepicker-field{width:50px}"]}]}],"members":{"showDatePicker":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"showTimePicker":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"datetime":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"datetimeChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":31,"character":3}}]}],"datetimeCtrl":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3},"arguments":["ctrl"]}]}],"onCalendarShown":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":38,"character":3}}]}],"onCalendarHidden":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":39,"character":3}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":41,"character":3}}]}],"maxDate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":3}}]}],"minDate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":45,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":52,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"LOCALE_ID","line":52,"character":12}]}]],"parameters":[{"__symbolic":"reference","module":"ngx-bootstrap/datepicker","name":"BsLocaleService","line":49,"character":26},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":50,"character":24},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":51,"character":19},{"__symbolic":"reference","name":"string"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"createControls":[{"__symbolic":"method"}],"updateDateAndTimeCtrlValues":[{"__symbolic":"method"}],"keepCtrlsInSync":[{"__symbolic":"method"}]}},"DatePickerModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":6,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"DatePickerComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":9,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":10,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":10,"character":17},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/datepicker","name":"BsDatepickerModule","line":11,"character":4},"member":"forRoot"}}],"exports":[{"__symbolic":"reference","name":"DatePickerComponent"}]}]}],"members":{}},"DatePickerComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"app-date-picker","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":9,"character":18},"member":"OnPush"},"template":"<input type=\"text\" \nreadonly\nstyle=\"width:130px;min-width:130px;\"\nclass=\"form-control\" [class.is-invalid]=\"insideCtrl?.invalid\"\n\n[formControl]=\"insideCtrl\" \n[placeholder]=\"placeholder\" \n\nbsDatepicker \n[bsConfig]=\"{ showWeekNumbers:false }\"\n[maxDate]=\"maxDate\"\n[minDate]=\"minDate\"\n(onShown)=\"onCalendarShown.next($event)\"\n(onHidden)=\"onCalendarHidden.next($event)\">\n","styles":[""]}]}],"members":{"onCalendarShown":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":12,"character":3}}]}],"onCalendarHidden":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":13,"character":3}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"maxDate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"minDate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":24,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"LOCALE_ID","line":24,"character":12}]}]],"parameters":[{"__symbolic":"reference","module":"ngx-bootstrap/datepicker","name":"BsLocaleService","line":22,"character":26},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":23,"character":18},{"__symbolic":"reference","name":"string"}]}],"createControls":[{"__symbolic":"method"}],"fixTimezoneOffset":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"setDisabledState":[{"__symbolic":"method"}]}},"ProductParams":{"__symbolic":"class","members":{}},"SelectAbstractComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":12,"character":1},"arguments":[{"selector":"app-select-abstract","template":""}]}],"members":{"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"required":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"products":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"productsChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":20,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@schoolbelle/api/purchase","name":"PurchaseService","line":32,"character":23}]}],"ngOnInit":[{"__symbolic":"method"}],"onUpdate":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"SelectAbstractModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"SelectAbstractComponent"}],"imports":[]}]}],"members":{}},"SelectLicenseComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵw"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"app-select-license","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":15,"character":18},"member":"OnPush"},"template":"<select *ngIf=\"locale_id.slice(0,2) !== 'vi'; else nonKorea\"\nclass=\"custom-select custom-form-input\" [class.is-invalid]=\"!form.pristine && indexCtrl.invalid\" [formControl]=\"indexCtrl\">\n  <option [ngValue]=\"null\" i18n>Choose the right one for your institution.</option>\n  <option *ngIf=\"basic_fee\" [ngValue]=\"0\" i18n>6 classes or below ( {{(basic_fee.price_amount[paymentCurrency.value] + sizeup_xs.price_amount[paymentCurrency.value] * 1) * (1 + taxRate.value) | number }} {{paymentCurrency.value}} / month )</option>\n  <option *ngIf=\"basic_fee\" [ngValue]=\"1\" i18n>7 - 15 classes ( {{(basic_fee.price_amount[paymentCurrency.value] + sizeup.price_amount[paymentCurrency.value] * 1) * (1 + taxRate.value) | number }} {{paymentCurrency.value}} / month )</option>\n  <option *ngIf=\"basic_fee\" [ngValue]=\"2\" i18n>16 - 30 classes ( {{(basic_fee.price_amount[paymentCurrency.value] + sizeup.price_amount[paymentCurrency.value] * 2) * (1 + taxRate.value) | number }} {{paymentCurrency.value}} / month )</option>\n  <option *ngIf=\"basic_fee\" [ngValue]=\"3\" i18n>31 - 45 classes ( {{(basic_fee.price_amount[paymentCurrency.value] + sizeup.price_amount[paymentCurrency.value] * 3) * (1 + taxRate.value) | number }} {{paymentCurrency.value}} / month )</option>\n  <option *ngIf=\"basic_fee\" [ngValue]=\"4\" i18n>46 - 60 classes ( {{(basic_fee.price_amount[paymentCurrency.value] + sizeup.price_amount[paymentCurrency.value] * 4) * (1 + taxRate.value) | number }} {{paymentCurrency.value}} / month )</option>\n  <option *ngIf=\"basic_fee\" [ngValue]=\"5\" i18n>61 - 75 classes ( {{(basic_fee.price_amount[paymentCurrency.value] + sizeup.price_amount[paymentCurrency.value] * 5) * (1 + taxRate.value) | number }} {{paymentCurrency.value}} / month )</option>\n\n\n  <option [ngValue]=\"product\" *ngFor=\"let product of oldProducts\">\n    {{product.product_name}} ({{ (product.price_amount[paymentCurrency.value]) * (1 + taxRate.value) | number }}) {{paymentCurrency.value}} / {{product.expires}}\n  </option>  \n</select>\n<ng-template #nonKorea>\n  <select class=\"custom-select custom-form-input\" [class.is-invalid]=\"!form.pristine && indexCtrl.invalid\" [formControl]=\"indexCtrl\">\n    <option [ngValue]=\"null\" i18n>Choose the right one for your institution.</option>\n    <ng-container *ngIf=\"basic_fee\">\n      <option *ngFor=\"let i of getConsecutiveNumbers(20)\" [ngValue]=\"i + 1\" i18n>{{i * 100 + 1}} - {{(i + 1) * 100}} students ( {{(basic_fee.price_amount[paymentCurrency.value] + sizeup_by_student.price_amount[paymentCurrency.value] * (i + 1)) * (1 + taxRate.value) | number }} {{paymentCurrency.value}} / month )</option>\n    </ng-container>\n  </select>\n</ng-template>\n","styles":[".custom-control-label::before{top:.15rem!important}"]}]}],"members":{"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"required":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"products":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"productsChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":21,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":34,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"LOCALE_ID","line":34,"character":12}]}]],"parameters":[{"__symbolic":"reference","module":"@schoolbelle/api/purchase","name":"PurchaseService","line":33,"character":13},{"__symbolic":"reference","name":"string"}]}],"getConsecutiveNumbers":[{"__symbolic":"method"}],"setProducts":[{"__symbolic":"method"}],"setOldProducts":[{"__symbolic":"method"}],"watch":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"getSmsPromotionAmount":[{"__symbolic":"method"}],"onUpdate":[{"__symbolic":"method"}],"setIndex":[{"__symbolic":"method"}]}},"SelectLicenseModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"SelectLicenseComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":10,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":11,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":11,"character":17}],"exports":[{"__symbolic":"reference","name":"SelectLicenseComponent"}],"entryComponents":[{"__symbolic":"reference","name":"SelectLicenseComponent"}]}]}],"members":{}},"SelectCrawlComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵw"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"app-select-crawl","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":10,"character":18},"member":"OnPush"},"template":"<select *ngIf=\"crawl\" class=\"custom-select\" [class.is-invalid]=\"!form.pristine && indexCtrl.invalid\" [formControl]=\"indexCtrl\">\n  <option [ngValue]=\"null\" i18n> Not selected </option>\n  <option [ngValue]=\"0\" i18n> 1 board ( {{(crawl.price_amount[paymentCurrency.value] * 1) * (1 + taxRate.value) | number}} {{paymentCurrency.value}} / month)</option>\n  <option [ngValue]=\"1\" i18n> 2 boards ( {{(crawl.price_amount[paymentCurrency.value] * 2) * (1 + taxRate.value) | number}} {{paymentCurrency.value}} / month)</option>\n  <option [ngValue]=\"2\" i18n> 3 boards ( {{(crawl.price_amount[paymentCurrency.value] * 3) * (1 + taxRate.value) | number}} {{paymentCurrency.value}} / month)</option>\n  <option [ngValue]=\"3\" i18n> 4 boards ( {{(crawl.price_amount[paymentCurrency.value] * 4) * (1 + taxRate.value) | number}} {{paymentCurrency.value}} / month)</option>\n  <option [ngValue]=\"4\" i18n> 5 boards ( {{(crawl.price_amount[paymentCurrency.value] * 5) * (1 + taxRate.value) | number}} {{paymentCurrency.value}} / month)</option>\n</select>\n","styles":[".custom-control-label::before{top:.15rem!important}"]}]}],"members":{"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"required":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"products":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"productsChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":16,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@schoolbelle/api/purchase","name":"PurchaseService","line":20,"character":13}]}],"ngOnInit":[{"__symbolic":"method"}],"onUpdate":[{"__symbolic":"method"}],"setIndex":[{"__symbolic":"method"}],"setProducts":[{"__symbolic":"method"}]}},"SelectCrawlModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"SelectCrawlComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":10,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":11,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":11,"character":17}],"exports":[{"__symbolic":"reference","name":"SelectCrawlComponent"}],"entryComponents":[{"__symbolic":"reference","name":"SelectCrawlComponent"}]}]}],"members":{}},"SelectSmsComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵw"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"app-select-sms","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":12,"character":18},"member":"OnPush"},"template":"<div class=\"d-flex\">\n\n  <select class=\"custom-select\" [class.is-invalid]=\"!form.pristine && indexCtrl.invalid\" [formControl]=\"indexCtrl\">\n    <option [ngValue]=\"null\" i18n> Not selected </option>\n    <ng-container *ngIf=\"sms\">\n      <option *ngFor=\"let amount of predefined\" [ngValue]=\"amount\" i18n> {{amount | number}} points ( {{(sms.price_amount[paymentCurrency.value] * amount) * (1 + taxRate.value) | number}} {{paymentCurrency.value}})</option>\n      <option [ngValue]=\"'custom'\" i18n>Custom amount</option>\n    </ng-container>\n\n    <option [ngValue]=\"product\" *ngFor=\"let product of oldProducts\">\n      {{product.product_name}} ({{ (product.price_amount[paymentCurrency.value]) * (1 + taxRate.value) | number }}) {{paymentCurrency.value}}\n    </option>  \n  </select>\n\n  <div *ngIf=\"indexCtrl.value === 'custom'\" class=\"input-group\">\n    <input type=\"number\" class=\"form-control ml-3\" [class.is-invalid]=\"customAmountCtrl.invalid\" [formControl]=\"customAmountCtrl\" placeholder=\"Enter a custom value.\" i18n-placeholder />\n    <p *ngIf=\"customAmountCtrl.errors?.unit\" class=\"invalid-feedback d-block text-center mb-0\" i18n>Amount should be multiples of 10.</p>\n    <p *ngIf=\"customAmountCtrl.errors?.min\" class=\"invalid-feedback d-block text-center mb-0\" i18n>Amount should be greater than 1,000</p>\n    <!-- -->\n    <p *ngIf=\"customAmountCtrl.errors?.maxvalue\" class=\"invalid-feedback d-block text-center mb-0\" i18n>Amount should be less than 7-digits number</p>\n  </div>\n\n</div>\n","styles":[".custom-control-label::before{top:.15rem!important}"]}]}],"members":{"test":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"required":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"products":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"productsChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":22,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@schoolbelle/api/purchase","name":"PurchaseService","line":28,"character":13}]}],"ngOnInit":[{"__symbolic":"method"}],"setProducts":[{"__symbolic":"method"}],"setIndex":[{"__symbolic":"method"}],"onUpdate":[{"__symbolic":"method"}],"onCustomAmountCtrlUpdate":[{"__symbolic":"method"}]}},"SelectSmsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"SelectSmsComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":10,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":11,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":11,"character":17}],"exports":[{"__symbolic":"reference","name":"SelectSmsComponent"}],"entryComponents":[{"__symbolic":"reference","name":"SelectSmsComponent"}]}]}],"members":{}},"AccountantInfoModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"AccountantInfoComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":8,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":9,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":9,"character":17}],"exports":[{"__symbolic":"reference","name":"AccountantInfoComponent"}]}]}],"members":{}},"AccountantInfoComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"app-accountant-info","template":"\n        <div class=\"input-group\">\n          <div class=\"input-group-prepend\">\n              <span class=\"input-group-text\" i18n>E-mail</span>\n          </div>                \n          <input type=\"text\" class=\"form-control\" \n          i18n-placeholder\n          placeholder=\"Enter e-mail\"\n          [formControl]=\"accountantEmail\"\n          [ngClass]=\"{'is-invalid': !form.pristine && accountantEmail.invalid}\" email>\n        </div>\n","styles":[""]}]}],"members":{"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3},"arguments":["form"]}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"CommentComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"app-comment","template":"<textarea class=\"form-control comment\" rows=\"3\" i18n-placeholder placeholder=\"Leave a comment.\" [formControl]=\"message\"></textarea>\n","styles":["textarea.comment{min-height:60px;max-height:200px}"]}]}],"members":{"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"CommentModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"CommentComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":8,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":9,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":9,"character":17}],"exports":[{"__symbolic":"reference","name":"CommentComponent"}]}]}],"members":{}},"CostDetailsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"CostDetailsComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":8,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":9,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":9,"character":17}],"exports":[{"__symbolic":"reference","name":"CostDetailsComponent"}],"entryComponents":[{"__symbolic":"reference","name":"CostDetailsComponent"}]}]}],"members":{}},"CostDetailsComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"app-cost-details","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":10,"character":18},"member":"OnPush"},"template":"<div>\n    <span *ngIf=\"monthly_price_amount\">{{monthly_price_amount | currency : paymentCurrency.value }} x {{months}} month(s)</span>\n    <span *ngIf=\"monthly_price_amount && none_monthly_price_amount && none_monthly_price_amount > 0\">+</span>\n    <span *ngIf=\"none_monthly_price_amount\">{{none_monthly_price_amount | number}} {{paymentCurrency.value}}</span> \n    <span *ngIf=\"monthly_price_amount\">= {{price_amount | currency : paymentCurrency.value}}</span> \n    <span *ngIf=\"price_amount\">(V.A.T included)</span>\n</div>\n","styles":[""]}]}],"members":{"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3},"arguments":["form"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@schoolbelle/api/purchase","name":"PurchaseService","line":21,"character":23},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":22,"character":20}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"CostTableModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"CostTableComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":8,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":9,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":9,"character":17}],"exports":[{"__symbolic":"reference","name":"CostTableComponent"}],"entryComponents":[{"__symbolic":"reference","name":"CostTableComponent"}]}]}],"members":{}},"CostTableComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"app-cost-table","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":12,"character":18},"member":"OnPush"},"template":"<table *ngIf=\"data\" class=\"table table-bordered text-center\">\n    <tr>\n      <td i18n>No.</td>\n      <td i18n>Item</td>\n      <td i18n>Unit price</td>\n      <td i18n>Quantity</td>\n      <td i18n>Month</td>\n      <td i18n>Period of validity</td>\n      <td i18n>Amount</td>\n    </tr>\n    <tr *ngFor=\"let item of data.items; let i = index\">\n      <td>{{i + 1}}</td>\n      <td>{{item.product.product_name}}</td>\n      <td>\n        {{item.product.price_amount[paymentCurrency.value] | number }}\n      </td>\n      <td>\n        {{(item.product.expires ? item.quantity : item.amount) | number}}\n      </td>\n      <td>\n        {{item.product.expires ? (item.amount | number) : '-'}}\n      </td>\n      <td> <span *ngIf=\"item.product.expires\">{{ item.starts_at | date:'yy/MM/dd'}}</span> - <span *ngIf=\"item.product.expires\">{{ item.expires_at | date:'yy/MM/dd'}}</span></td>\n      <td class=\"text-right\">{{item.product.price_amount[paymentCurrency.value] * item.amount * item.quantity | number }}</td>\n    </tr>\n\n    <tr>\n      <td colspan=\"2\" i18n>Subtotal</td>\n      <td colspan=\"4\"></td>\n      <td class=\"text-right\">\n        {{data.payment_amount * 10 / 11 | number }} {{data.payment_currency}}\n      </td>\n    </tr>\n\n    <tr>\n\n      <td colspan=\"2\" i18n>Tax( {{data.tax_rate * 100}}%)</td>\n      <td colspan=\"4\"></td>\n      <td class=\"text-right\">\n        {{data.payment_amount / 11 | number }} {{data.payment_currency}}\n      </td>\n    </tr>\n\n    <tr>\n      <td colspan=\"2\" i18n>Total</td>\n      <td colspan=\"4\"></td>\n      <td class=\"text-right\">\n        {{data.payment_amount | number }} {{data.payment_currency}}\n      </td>\n    </tr>\n  </table>\n","styles":[""]}]}],"members":{"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3},"arguments":["form"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":26,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"LOCALE_ID","line":26,"character":12}]}]],"parameters":[{"__symbolic":"reference","module":"@schoolbelle/api/purchase","name":"PurchaseService","line":24,"character":23},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":25,"character":20},{"__symbolic":"reference","name":"string"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"buildData":[{"__symbolic":"method"}]}},"EffectiveRangeComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"app-effective-range","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":11,"character":18},"member":"OnPush"},"template":"<div class=\"form-group row\">\n    <div class=\"col-sm-4\">\n        <app-starts-at [ctrl]=\"startsAt\" [disabled]=\"disableStartingDate\"></app-starts-at>\n\n    </div>\n    <div class=\"col-sm-1 d-flex align-items-center justify-content-center\">\n        -\n    </div>\n    <div class=\"col-sm-3\">\n        <select class=\"custom-select\" [formControl]=\"span\">\n            <option *ngIf=\"allowCustomDate\" [ngValue]=\"null\" i18n>to a custom date</option>\n            <option [ngValue]=\"'1year'\" i18n>for 12 months</option>\n            <option [ngValue]=\"'until_end_of_school_year'\" i18n>till the end of the last semester<small>({{endOfSchoolYear | date : 'shortDate'}})</small></option>\n        </select>                \n    </div>    \n    <div class=\"col-sm-4\" *ngIf=\"span.value === null && allowCustomDate\">\n        <app-expires-at [ctrl]=\"expiresAt\"></app-expires-at>\n    </div>\n</div>        \n","styles":[""]}]}],"members":{"disableStartingDate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"allowCustomDate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3},"arguments":["form"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@schoolbelle/api/purchase","name":"PurchaseService","line":42,"character":21},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":43,"character":18}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"refreshMaxDate":[{"__symbolic":"method"}],"refreshEndOfSchoolYear":[{"__symbolic":"method"}],"getLastDayOfFebOfYear":[{"__symbolic":"method"}],"getNumberOfMonths":[{"__symbolic":"method"}],"getNumberOfDiffInMonths":[{"__symbolic":"method"}]}},"EffectiveRangeModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"EffectiveRangeComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":10,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":11,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":11,"character":17},{"__symbolic":"reference","name":"ɵx"},{"__symbolic":"reference","name":"ɵz"}],"exports":[{"__symbolic":"reference","name":"EffectiveRangeComponent"}],"entryComponents":[{"__symbolic":"reference","name":"EffectiveRangeComponent"}]}]}],"members":{}},"GroupInfoComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"app-group-info","template":"\n<div class=\"row mb-3\">\n    <div *ngIf=\"showPurchaseType\" class=\"col-sm mb-3\">\n      <div class=\"input-group\">\n        <div class=\"input-group-prepend\">\n            <span class=\"input-group-text\" i18n>First/Renewal</span>\n        </div>                \n        <select class=\"custom-select\"\n        [formControl]=\"purchaseType\"\n        [ngClass]=\"{'is-invalid': !form.pristine && purchaseType.invalid}\">\n          <option [ngValue]=\"null\" i18n disabled>Not selected</option>\n          <option [ngValue]=\"'first'\" i18n>First</option>\n          <option [ngValue]=\"'renewal'\" i18n>Renewal</option>\n        </select>\n      </div>\n    </div>\n\n    <div *ngIf=\"!toExistingGroup.value\" class=\"col-sm mb-3\">\n      <div class=\"input-group\">\n        <div class=\"input-group-prepend\">\n            <span class=\"input-group-text\" i18n>Type</span>\n        </div>                \n        <select class=\"custom-select\"\n        [formControl]=\"groupType\"\n        [ngClass]=\"{'is-invalid': !form.pristine && groupType.invalid}\">\n          <option [ngValue]=\"null\" i18n disabled>Not selected</option>\n          <option *ngFor=\"let type of group_types\" [ngValue]=\"type\" [ngSwitch]=\"type\">\n            <span *ngSwitchCase=\"'school.kindergarten'\" i18n>Kindergarten/Daycare center</span>\n            <span *ngSwitchCase=\"'school.elementary'\" i18n>Elementary school</span>\n            <span *ngSwitchCase=\"'school.middle'\" i18n>Middle school</span>\n            <span *ngSwitchCase=\"'school.high'\" i18n>High school</span>\n            <span *ngSwitchCase=\"'school.combined'\" i18n>Combined school</span>\n          </option>\n        </select>\n      </div>\n    </div>\n\n    <div *ngIf=\"!toExistingGroup.value\" class=\"col-sm mb-3\">\n      <div class=\"input-group\">\n        <div class=\"input-group-prepend\">\n            <span class=\"input-group-text\" i18n>Name</span>\n        </div>                \n        <input type=\"text\" class=\"form-control\" \n        [formControl]=\"groupName\" i18n-placeholder placeholder=\"Enter your institution name\"\n        [ngClass]=\"{'is-invalid': !form.pristine && groupName.invalid}\">\n      </div>\n    </div>\n\n    <div *ngIf=\"toExistingGroup.value\" class=\"col-sm mb-3\"></div>\n    <div *ngIf=\"toExistingGroup.value\" class=\"col-sm mb-3\">\n      <div class=\"input-group\">\n        <div class=\"input-group-prepend\">\n            <span class=\"input-group-text\" i18n>Name</span>\n        </div>                \n        <select class=\"custom-select\" [formControl]=\"accountId\">\n          <option [ngValue]=\"null\"  disabled>\n            <ng-container *ngIf=\"adminSchools.length; else noAdminSchools;\" i18n>Not selected.</ng-container>\n            <ng-template #noAdminSchools i18n>Only admins can place a purchase.</ng-template>\n          </option>\n          <option *ngFor=\"let school of adminSchools\" [ngValue]=\"'g' + school.group_id\">{{school.group_name}}</option>\n        </select>\n      </div>\n    </div>        \n    <div class=\"col-sm mb-3\">\n      <div class=\"input-group\">\n        <div class=\"input-group-prepend\">\n            <span class=\"input-group-text\" i18n>Address</span>\n        </div>                \n        <address-input [formControl]=\"groupAddress\" [readonly]=\"toExistingGroup.disabled\" i18n-placeholder placeholder=\"search for address\"\n        class=\"form-control p-0\" \n        [ngClass]=\"{'is-invalid': !form.pristine && groupAddress.invalid}\"></address-input>      \n      </div>\n    </div>\n</div>\n\n","styles":[""]}]}],"members":{"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3},"arguments":["form"]}]}],"showPurchaseType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@schoolbelle/api/user-to-group","name":"UserToGroupService","line":22,"character":15}]}],"ngOnInit":[{"__symbolic":"method"}]}},"GroupInfoModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":6,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"GroupInfoComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":9,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":10,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":10,"character":17},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@schoolbelle/api/address-input","name":"AddressInputModule","line":12,"character":4},"member":"forRoot"}}],"exports":[{"__symbolic":"reference","name":"GroupInfoComponent"}]}]}],"members":{}},"PaymentTypeComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"app-payment-type","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":7,"character":18},"member":"OnPush"},"template":"<select class=\"custom-select\" [formControl]=\"paymentType\">\n    <!-- <option ngValue=\"virtualAccount\" i18n>VirtualAccount (It will be created after placing an order.)</option> -->\n    <option ngValue=\"bankTransfer\" i18n>Bank transfer (Nong-hyup 301-4416-6935-11 Schoolbell-e Inc.)</option>\n    <!-- <option ngValue=\"creditCard\" i18n disabled>Credit card (under development)</option> -->\n</select>                  \n","styles":[""]}]}],"members":{"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3},"arguments":["form"]}]}],"ngOnInit":[{"__symbolic":"method"}]}},"PaymentTypeModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"PaymentTypeComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":8,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":9,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":9,"character":17}],"exports":[{"__symbolic":"reference","name":"PaymentTypeComponent"}],"entryComponents":[{"__symbolic":"reference","name":"PaymentTypeComponent"}]}]}],"members":{}},"QuoteComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"app-quote","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":11,"character":18},"member":"OnPush"},"template":"<div id=\"quote\" class=\"d-none\">\n<!-- <div id=\"quote\"> -->\n  \n  <div class=\"modal-body printable\" >\n    <table class=\"table table-bordered text-center\">\n      <tr>\n        <th colspan=\"4\" class=\"text-center\" i18n>\n          Quotation\n        </th>\n      </tr>\n      <tr>\n        <td colspan=\"2\" i18n>To</td>\n        <td i18n>Co. Name</td>\n        <td i18n>Schoolbell-e Inc.</td>\n      </tr>\t\n      <tr>\n        <td i18n>Date</td>\n        <td>{{ data.now |date:'yyyy-MM-dd'}}</td>\n        <td i18n>RN</td>\n        <td>326-86-00361</td>\n      </tr>\t\n      <tr>\n        <td i18n>Company</td>\n        <td>{{data.group_name}}</td>\n        <td i18n>CEO</td>\n        <td i18n>\n          HYEUNGGYUN KIM ( ) \n        </td>\n      </tr>\t\n      <tr>\n        <td i18n>Person in charge</td>\n        <td>{{data.user_name}}</td>\n        <td i18n>Addr</td>\n        <td i18n>504-D, 2016, Hannuri-daero, Sejong-si, Korea</td>\n      </tr>\t\n      <tr>\n        <td i18n>TEL</td>\n        <td>{{data.user_phone_number | phoneNumber}}</td>\n        <td i18n>TEL</td>\n        <td>1522-1225</td>\n      </tr>\t\n      <tr>\n        <td>e-mail</td>\n        <td>{{data.extra_data?.accountant_email}}</td>\n        <td>e-mail</td>\n        <td>sales@schoolbell-e.com</td>\n      </tr>\t\n      <tr>\n        <td i18n>Expiration</td>\n        <td i18n>In 1 month</td>\n        <td>FAX</td>\n        <td>044-864-6585</td>\n      </tr>\t\n    </table>\n  \n    <table class=\"table table-bordered text-center\">\n      <tr>\n        <td i18n>No.</td>\n        <td i18n>Item</td>\n        <td i18n>Unit price</td>\n        <td i18n>Quantity</td>\n        <td i18n>Month</td>\n        <td i18n>Period of validity</td>\n        <td i18n>Amount</td>\n      </tr>\n      <tr *ngFor=\"let item of data.items; let i = index\">\n        <td>{{i + 1}}</td>\n        <td>{{item.product.product_name}}</td>\n        <td>\n          {{item.product.price_amount[paymentCurrency.value] | number }}\n        </td>\n        <td>\n          {{(item.product.expires ? item.quantity : item.amount) | number}}\n        </td>\n        <td>\n          {{item.product.expires ? item.amount : '-'}}\n        </td>\n        <td> <span *ngIf=\"item.product.expires\">{{ item.starts_at | date:'yy/MM/dd'}}</span> - <span *ngIf=\"item.product.expires\">{{ item.expires_at | date:'yy/MM/dd'}}</span></td>\n        <td class=\"text-right\">{{item.product.price_amount[paymentCurrency.value] * item.amount * item.quantity | number }}</td>\n        <!-- <td></td> -->\n      </tr>\n      <tr>\n        <td>{{data.items.length + 1}}</td><td></td><td></td><td></td><td></td><td></td><td></td>\n        <!-- <td></td> -->\n      </tr>\n      <tr>\n        <td>{{data.items.length + 2}}</td><td></td><td></td><td></td><td></td><td></td><td></td>\n        <!-- <td></td> -->\n      </tr>\n      <tr>\n        <td>{{data.items.length + 3}}</td><td></td><td></td><td></td><td></td><td></td><td></td>\n        <!-- <td></td> -->\n      </tr>\n      <tr>\n        <td>{{data.items.length + 4}}</td><td></td><td></td><td></td><td></td><td></td><td></td>\n        <!-- <td></td> -->\n      </tr>\n\n      <tr>\n        <td colspan=\"2\" i18n>Subtotal</td>\n        <td colspan=\"4\"></td>\n        <td class=\"text-right\">\n          {{data.payment_amount * 10 / 11 | number }} {{data.payment_currency}}\n        </td>\n        <!-- <td></td> -->\n      </tr>\n\n      <tr>\n\n        <td colspan=\"2\" i18n>Tax( {{data.tax_rate * 100}}%)</td>\n        <td colspan=\"4\"></td>\n        <td class=\"text-right\">\n          {{data.payment_amount / 11 | number }} {{data.payment_currency}}\n        </td>\n        <!-- <td></td> -->\n      </tr>\n\n      <tr>\n        <td colspan=\"2\" i18n>Total</td>\n        <td colspan=\"4\"></td>\n        <td class=\"text-right\">\n          {{data.payment_amount | number }} {{data.payment_currency}}\n        </td>\n        <!-- <td></td> -->\n      </tr>\n\n      <tr>\n        <td colspan=\"7\" class=\"text-left\" i18n>\n          MEMO<br/>\n          * Payment must be made in one transaction.<br/>\n          * This quotation is for the purpose of preview only. (The real one comes with the stamp,<br/>\n          &nbsp;&nbsp;the details and price may be adjusted according to any requests you leave in the comment box.)<br/>\n          * License includes web and app services where you can :<br/>\n          * Sending letters, photos, files, and simple or advanced surveys.<br/>\n        </td>\n      </tr>\n    </table>\n  </div>\n  <div class=\"modal-footer\">\n    <button type=\"button\" class=\"btn btn-lg btn-default\" onclick=\"window.close()\" i18n>Close</button>\n    <button type=\"button\" class=\"btn btn-lg btn-primary\" onclick=\"window.print()\" i18n>Print</button>\n  </div>\t\n</div>","styles":[""]}]}],"members":{"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":20,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"LOCALE_ID","line":20,"character":12}]}],null],"parameters":[{"__symbolic":"reference","module":"@schoolbelle/api/auth","name":"AuthService","line":18,"character":17},{"__symbolic":"reference","module":"@schoolbelle/api/purchase","name":"PurchaseService","line":19,"character":21},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":21,"character":18}]}],"ngOnInit":[{"__symbolic":"method"}]}},"QuoteModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"QuoteComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":8,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@schoolbelle/common/phone-number","name":"PhoneNumberModule","line":9,"character":4},"member":"forRoot"}}],"exports":[{"__symbolic":"reference","name":"QuoteComponent"}]}]}],"members":{}},"ToExistingGroupComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"app-to-existing-group","template":"<div class=\"row\">\n  <div class=\"col-12\">\n    <div class=\"form-check form-check-inline mb-0\">\n      <input id=\"inlineRadio1\" class=\"form-check-input\" type=\"radio\" [formControl]=\"toExistingGroup\" [value]=\"true\">\n      <label class=\"form-check-label\" for=\"inlineRadio1\" i18n>I already have my institution set up (include one set up for a test run).</label>\n    </div>\n  </div>\n  <div class=\"col-12\">\n    <div class=\"form-check form-check-inline mb-0\">\n      <input id=\"inlineRadio2\" class=\"form-check-input\" type=\"radio\" [formControl]=\"toExistingGroup\" [value]=\"false\">\n      <label class=\"form-check-label\" for=\"inlineRadio2\" i18n>I want to set up my institution.</label>\n    </div>\n  </div>\n</div>\n","styles":[""]}]}],"members":{"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3},"arguments":["form"]}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ToExistingGroupModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":6,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ToExistingGroupComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":9,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":10,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":10,"character":17},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@schoolbelle/api/address-input","name":"AddressInputModule","line":12,"character":4},"member":"forRoot"}}],"exports":[{"__symbolic":"reference","name":"ToExistingGroupComponent"}]}]}],"members":{}},"UserInfoComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"app-user-info","template":"        <div class=\"input-group\">\n          <div class=\"input-group-prepend\">\n              <span class=\"input-group-text\" i18n>E-mail</span>\n          </div>                \n          <input type=\"text\" class=\"form-control\"\n          [formControl]=\"personInChargeEmail\"\n          i18n-placeholder\n          placeholder=\"Enter e-mail\"\n          [ngClass]=\"{'is-invalid': !form.pristine && personInChargeEmail.invalid}\" email>\n        </div>\n        <div *ngIf=\"toExistingGroup.value === false\" class=\"text-center invalid-feedback d-block\" i18n>We send a confirmation link at this address. Double check please.</div>\n","styles":[""]}]}],"members":{"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3},"arguments":["form"]}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"UserInfoModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"UserInfoComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":8,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":9,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":9,"character":17}],"exports":[{"__symbolic":"reference","name":"UserInfoComponent"}]}]}],"members":{}},"VirtualAccountService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":12,"character":5},"arguments":[{"__symbolic":"reference","module":"@schoolbelle/api/tokens","name":"REST_SERVER_HOST","line":12,"character":12}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":11,"character":17},null]}],"getPossibleBanks":[{"__symbolic":"method"}],"getVirtualAccount":[{"__symbolic":"method"}],"createVirtualAccount":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"stateChangeAnimation":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":11,"character":36},"arguments":["stateChange",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":12,"character":2},"arguments":["ready=>paid",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":12,"character":29},"arguments":[{"background":"#d4edda"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":14,"character":6},"arguments":["1s ease"]}]]}]]},"VirtualAccountComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":17,"character":1},"arguments":[{"selector":"app-virtual-account","animations":[{"__symbolic":"reference","name":"stateChangeAnimation"}],"template":"<div class=\"alert mb-0\" [ngClass]=\"['unready', 'expired'].includes(status) ? 'alert-info':'alert-secondary'\" [@stateChange]=\"status\">\n  <div class=\"row\" *ngIf=\"status === 'ready'\"> \n    <!-- <div class=\"col-sm-3 font-weight-bold\" i18n>Virtual Account Info</div> -->\n    <div class=\"col-sm-3 font-weight-bold\" i18n>Account</div>\n    <div class=\"col-sm-9\">{{data.vbank_name}} {{data.vbank_num}} {{data.vbank_holder}}</div>\n    <div class=\"col-sm-3 font-weight-bold\" i18n>Amount</div>\n    <div class=\"col-sm-9\">{{data.amount | number}} {{item.payment_currency}}</div>\n    <div class=\"col-sm-3 font-weight-bold\" i18n>Due</div>\n    <div class=\"col-sm-9\">{{data.vbank_date * 1000 | date: 'yyyy-MM-dd HH:mm:ss'}}</div>\n    <div class=\"col-sm-12 py-3\" i18n>It may take a few minutes to confirm the transaction after a payment is made.</div>\n  </div>\n  <div class=\"row\" *ngIf=\"status === 'expired'\"> \n    <div class=\"col-sm-6 font-weight-bold\" i18n>Virtual Account Expired</div>\n    <div class=\"col-sm-6\" i18n>\n      Sorry, your virtual account is expired. Create one again.\n    </div>\n  </div>  \n  <div class=\"row\" *ngIf=\"status === 'paid'\"> \n    <div class=\"col-sm-5 font-weight-bold\" i18n>Virtual Account Paid</div>\n    <div class=\"col-sm-7\" i18n>\n      Payment has been confirmed. Thank you. \n    </div>\n  </div>  \n  <div class=\"form-group row mb-0\" *ngIf=\"['unready', 'expired'].includes(status)\">\n    <label class=\"col-sm-5 font-weight-bold col-form-label\" i18n>Create Virtual Account</label>\n    <div class=\"col-sm-7\">\n      <div class=\"input-group\">\n        <select class=\"custom-select\" [formControl]=\"vbank_code\">\n          <option [ngValue]=\"null\" disabled i18n>Choose a bank.</option>\n          <option *ngFor=\"let bank of banks\" [ngValue]=\"bank.code\">{{bank.name}}</option>\n        </select>   \n        <div class=\"input-group-append\">\n          <button class=\"btn btn-block\" [ngClass]=\"form.invalid ? 'btn-secondary' : 'btn-primary'\" [disabled]=\"form.invalid\" (click)=\"createVirtualAccount()\" i18n>Create</button>\n        </div>\n      </div>\n\n    </div>\n  </div>\n</div>","styles":[""]}]}],"members":{"item":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"VirtualAccountService"},{"__symbolic":"reference","module":"@schoolbelle/common/loading","name":"LoadingService","line":38,"character":20},{"__symbolic":"reference","module":"@schoolbelle/api/notification-push","name":"NotificationPushService","line":39,"character":17},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":40,"character":18}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"getPossibleBanks":[{"__symbolic":"method"}],"createVirtualAccount":[{"__symbolic":"method"}],"listen":[{"__symbolic":"method"}],"unlisten":[{"__symbolic":"method"}],"getVirtualAccount":[{"__symbolic":"method"}]}},"VirtualAccountModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"VirtualAccountComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":10,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":11,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":11,"character":17}],"exports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":14,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":15,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":15,"character":17},{"__symbolic":"reference","name":"VirtualAccountComponent"}]}]}],"members":{}},"PlaceOrderComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":14,"character":1},"arguments":[{"selector":"app-order-tab","template":"","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":17,"character":18},"member":"OnPush"}}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":60,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"LOCALE_ID","line":60,"character":12}]}]],"parameters":[{"__symbolic":"reference","module":"@schoolbelle/api/group","name":"GroupService","line":55,"character":20},{"__symbolic":"reference","module":"@schoolbelle/api/ledger","name":"LedgerService","line":56,"character":21},{"__symbolic":"reference","module":"@schoolbelle/api/purchase","name":"PurchaseService","line":57,"character":23},{"__symbolic":"reference","module":"@schoolbelle/api/user-to-group","name":"UserToGroupService","line":58,"character":18},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":59,"character":20},{"__symbolic":"reference","name":"string"}]}],"ngOnInit":[{"__symbolic":"method"}],"extractProdcutParams":[{"__symbolic":"method"}],"updateWithProductParams":[{"__symbolic":"method"}],"updateGroupRelatedDetails":[{"__symbolic":"method"}],"addProduct":[{"__symbolic":"method"}],"createControls":[{"__symbolic":"method"}],"setValidators":[{"__symbolic":"method"}],"createForm":[{"__symbolic":"method"}],"emptyEnteredValues":[{"__symbolic":"method"}],"fillInBasicValues":[{"__symbolic":"method"}],"calculateStartsAt":[{"__symbolic":"method"}],"preview":[{"__symbolic":"method"}],"buildParams":[{"__symbolic":"method"}],"order":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"scrollToWrongInput":[{"__symbolic":"method"}]}},"PlaceOrderModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":20,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"PlaceOrderComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":25,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":27,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":27,"character":17},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/popover","name":"PopoverModule","line":28,"character":4},"member":"forRoot"}},{"__symbolic":"reference","name":"GroupInfoModule"},{"__symbolic":"reference","name":"ToExistingGroupModule"},{"__symbolic":"reference","name":"SelectLicenseModule"},{"__symbolic":"reference","name":"SelectSmsModule"},{"__symbolic":"reference","name":"SelectCrawlModule"},{"__symbolic":"reference","name":"EffectiveRangeModule"},{"__symbolic":"reference","name":"CostDetailsModule"},{"__symbolic":"reference","name":"CostTableModule"},{"__symbolic":"reference","name":"PaymentTypeModule"},{"__symbolic":"reference","name":"AccountantInfoModule"},{"__symbolic":"reference","name":"UserInfoModule"},{"__symbolic":"reference","name":"CommentModule"},{"__symbolic":"reference","name":"QuoteModule"}],"exports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":40,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":41,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":41,"character":17},{"__symbolic":"reference","module":"ngx-bootstrap/popover","name":"PopoverModule","line":42,"character":4},{"__symbolic":"reference","name":"GroupInfoModule"},{"__symbolic":"reference","name":"ToExistingGroupModule"},{"__symbolic":"reference","name":"SelectLicenseModule"},{"__symbolic":"reference","name":"SelectSmsModule"},{"__symbolic":"reference","name":"SelectCrawlModule"},{"__symbolic":"reference","name":"EffectiveRangeModule"},{"__symbolic":"reference","name":"CostDetailsModule"},{"__symbolic":"reference","name":"CostTableModule"},{"__symbolic":"reference","name":"PaymentTypeModule"},{"__symbolic":"reference","name":"AccountantInfoModule"},{"__symbolic":"reference","name":"UserInfoModule"},{"__symbolic":"reference","name":"CommentModule"},{"__symbolic":"reference","name":"QuoteModule"}]}]}],"members":{}},"PurchaseModel":{"__symbolic":"class","members":{}},"MailmergeTableComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":21,"character":1},"arguments":[{"selector":"app-mailmerge-table","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":25,"character":18},"member":"OnPush"},"template":"<div class=\"card\">\n  <div class=\"card-header border-bottom-0 p-2\">\n    <div class=\"btn-toolbar justify-content-between align-items-center\">\n      <div class=\"btn-group\">\n        <a class=\"btn btn-light btn-sm\" (click)=\"downloadTemplate()\" i18n>Download template &nbsp;<i class=\"fa fa-download mr-1\"></i></a>\n\n        <button class=\"btn btn-light btn-sm\" \n        ngfSelect [ngfFixOrientation]=\"false\" \n        (filesChange)=\"onExcelUpload($event[0])\"\n        accept=\".xlsx,.xls\"\n        multiple=\"1\" i18n>Upload table &nbsp;<i class=\"fa fa-upload\"></i></button>\n      </div>\n      <div *ngIf=\"tableCtrl.errors\" class=\"text-danger ml-3 d-flex align-items-center\">\n        <i class=\"fa fa-exclamation-triangle text-xs\" aria-hidden=\"true\"></i>\n        <!-- <small *ngFor=\"let item of tableCtrl.errors | keyvalue as list; let last = last\" [ngSwitch]=\"item.key\">\n          {{item.key }} / {{list.length}} {{last}}\n        </small> -->\n        <small class=\"ml-1\" *ngIf=\"tableCtrl.errors?.restricted\" i18n>Restricted word(s) for key value(s).</small> \n        <small class=\"ml-1\" *ngIf=\"tableCtrl.errors?.duplicate\" i18n>Duplicate key values.</small> \n        <small class=\"ml-1\" *ngIf=\"tableCtrl.errors?.required\" i18n>Empty key input(s).</small> \n        <small class=\"ml-1\" *ngIf=\"tableCtrl.errors?.noMatchFound\" i18n>Row(s) with failed member search.</small> \n      </div>\n\n      <button class=\"btn btn-light btn-sm ml-auto\" (click)=\"downloadAsExcel()\" i18n>Download table &nbsp;<i class=\"fa fa-download\"></i></button>\n\n    </div>\n\n\n\n  </div>\n  <app-table-resizer \n  (action)=\"onAction($event)\" \n  [selected]=\"{y:selectedRowIndex + 1}\"\n  scrollContainer='virtual-scroller'\n  [childHeight]=\"42\"\n  [x]=\"table.x\" \n  [y]=\"table.y\"\n  [disableIndexCellFn]=\"disableIndexCellFn\"\n  [classIndexCellFn]=\"classIndexCellFn\">\n    <app-row-focus-box scrollContainer=\"virtual-scroller\" [childHeight]=\"42\" [y]=\"table.y\" [index]=\"selectedRowIndex + 1\">\n      <app-table\n      [table]=\"table\"\n      [tableTemplate]=\"tableTemplate\"\n      mode=\"write\"\n      ></app-table>\n    </app-row-focus-box>\n  </app-table-resizer>   \n</div>\n\n<ng-template let-table=\"table\" #tableTemplate> \n  <virtual-scroller #scroll \n  [bufferAmount]=\"5\"\n  [scrollDebounceTime]=\"10\"\n  [executeRefreshOutsideAngularZone]=\"true\"\n  [items]=\"table.rows.slice(1)\" \n  [style.height]=\"height\">\n    <table class=\"table table-bordered table-sm text-center mb-0\" style=\"table-layout: fixed;\">\n      <thead>\n        <tr *ngIf=\"table.rows[0]\" mailmerge-header \n        [row]=\"table.rows[0]\" \n        [tableForm]=\"tableForm\"></tr>\n      </thead>\n    \n      <tbody #container>\n        <tr \n        *ngFor=\"let row of scroll.viewPortItems;trackBy:trackById\"\n        mailmerge-row\n        [row]=\"row\" \n        [memberType]=\"memberType\" \n        (click)=\"selectRow(row.y)\"\n        [tableForm]=\"tableForm\"\n        [memberMatchRequired]=\"memberMatchRequired\"\n        ></tr>        \n      </tbody> \n    </table>  \n  </virtual-scroller>\n\n</ng-template>\n\n\n\n<div hidden id=\"mailmerge-table-mailmerge\"\ni18n-translation-text\ntranslation-text=\"Mailmerge\"></div>\n\n<div hidden id=\"mailmerge-table-downloading\"\ni18n-translation-text\ntranslation-text=\"Downloading...\"></div>\n\n<div hidden id=\"mailmerge-table-reading\"\ni18n-translation-text\ntranslation-text=\"Reading...\"></div>\n\n<div hidden id=\"mailmerge-table-grade\"\ni18n-translation-text\ntranslation-text=\"Grade\"></div>\n\n<div hidden id=\"mailmerge-table-class\"\ni18n-translation-text\ntranslation-text=\"Class\"></div>\n\n\n<div hidden id=\"mailmerge-table-type\"\ni18n-translation-text=\"@@MemberType\"\ntranslation-text=\"Type\"></div>\n\n<div hidden id=\"mailmerge-table-num\"\ni18n-translation-text\ntranslation-text=\"Num\"></div>\n\n<div hidden id=\"mailmerge-table-name\"\ni18n-translation-text\ntranslation-text=\"Name\"></div>\n\n<div hidden id=\"mailmerge-table-phone-number\"\ni18n-translation-text\ntranslation-text=\"PhoneNumber\"></div>\n\n\n<div hidden id=\"mailmerge-table-math\"\ni18n-translation-text\ntranslation-text=\"Math\"></div>\n<div hidden id=\"mailmerge-table-science\"\ni18n-translation-text\ntranslation-text=\"Science\"></div>\n\n\n<div hidden id=\"mailmerge-table-class1\"\ni18n-translation-text\ntranslation-text=\"1st Grade Class 1\"></div>\n<div hidden id=\"mailmerge-table-class2\"\ni18n-translation-text\ntranslation-text=\"2nd Grade Class 1\"></div>\n<div hidden id=\"mailmerge-table-class3\"\ni18n-translation-text\ntranslation-text=\"Class 104\"></div>\n\n<div hidden id=\"mailmerge-table-name1\"\ni18n-translation-text\ntranslation-text=\"David\"></div>\n\n<div hidden id=\"mailmerge-table-name2\"\ni18n-translation-text\ntranslation-text=\"Ashley\"></div>\n\n<div hidden id=\"mailmerge-table-name3\"\ni18n-translation-text\ntranslation-text=\"John\"></div>\n<div hidden id=\"mailmerge-table-phone-number1\"\ni18n-translation-text\ntranslation-text=\"010-1111-1111\"></div>\n<div hidden id=\"mailmerge-table-phone-number2\"\ni18n-translation-text\ntranslation-text=\"01022223333\"></div>\n<div hidden id=\"mailmerge-table-phone-number3\"\ni18n-translation-text\ntranslation-text=\"+821044445555\"></div>\n\n\n\n<div hidden id=\"mailmerge-table-template\"\ni18n-translation-text\ntranslation-text=\"Mailmerge template\"></div>\n\n<div hidden id=\"mailmerge-table-template-yellow-row-1\"\ni18n-translation-text\ntranslation-text=\"Yellow cells are for guidance and they all should be removed before uploading\"></div>\n<div hidden id=\"mailmerge-table-template-yellow-row-2\"\ni18n-translation-text\ntranslation-text=\"Leave alone red 'key' header cells.\"></div>\n<div hidden id=\"mailmerge-table-template-yellow-row-3\"\ni18n-translation-text\ntranslation-text=\"You can add and edit blue 'key' header cells. Maximum number of 'key' cells are 10.\"></div>\n<div hidden id=\"mailmerge-table-template-yellow-row-4\"\ni18n-translation-text\ntranslation-text=\"Class and/or Name columns' text will be exactly matched including whitespaces.\"></div>\n\n\n\n\n\n","styles":["tr.selected{background:#eee}:host ::ng-deep table{table-layout:fixed}"]}]}],"members":{"ngfSelect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":29,"character":3},"arguments":[{"__symbolic":"reference","module":"angular-file","name":"ngfSelect","line":29,"character":13}]}]}],"table":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"memberType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}],"searchTypes":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3}}]}],"mailmerge":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3}}]}],"mailmergeChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":36,"character":3}}]}],"selectedRowIndex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"selectedRowIndexChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":38,"character":3}}]}],"height":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}],"memberMatchRequired":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3}}]}],"scroll":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":41,"character":3},"arguments":[{"__symbolic":"reference","module":"ngx-virtual-scroller","name":"VirtualScrollerComponent","line":41,"character":13}]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":53,"character":5},"arguments":[{"__symbolic":"reference","module":"@schoolbelle/common/phone-number","name":"DEFAULT_COUNTRY_CALLING_CODE","line":53,"character":12}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":46,"character":18},{"__symbolic":"reference","module":"@schoolbelle/api/excel","name":"ExcelService","line":47,"character":18},{"__symbolic":"reference","module":"@schoolbelle/common/loading","name":"LoadingService","line":48,"character":20},{"__symbolic":"reference","name":"MailmergeTableService"},{"__symbolic":"reference","module":"ngx-toastr","name":"ToastrService","line":50,"character":19},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":51,"character":24},{"__symbolic":"reference","module":"@schoolbelle/common/translation","name":"TranslationService","line":52,"character":25},{"__symbolic":"reference","module":"libphonenumber-js","name":"CountryCallingCode","line":53,"character":81}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onAction":[{"__symbolic":"method"}],"selectRow":[{"__symbolic":"method"}],"loadTable":[{"__symbolic":"method"}],"onExcelUpload":[{"__symbolic":"method"}],"refreshFileInput":[{"__symbolic":"method"}],"downloadAsExcel":[{"__symbolic":"method"}],"downloadTemplate":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"trackById":[{"__symbolic":"method"}]}},"MailmergeTableModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"MailmergeTableComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":18,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":19,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":19,"character":17},{"__symbolic":"reference","module":"@schoolbelle/common/table-resizer","name":"TableResizerModule","line":20,"character":4},{"__symbolic":"reference","module":"@schoolbelle/common/table","name":"TableModule","line":21,"character":4},{"__symbolic":"reference","module":"angular-file","name":"ngfModule","line":22,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":23,"character":4},"member":"forRoot"}},{"__symbolic":"reference","module":"ngx-virtual-scroller","name":"VirtualScrollerModule","line":24,"character":4},{"__symbolic":"reference","name":"MailmergeRowModule"},{"__symbolic":"reference","name":"ɵbb"},{"__symbolic":"reference","name":"ɵbh"}],"providers":[{"__symbolic":"reference","name":"MailmergeTableService"}],"exports":[{"__symbolic":"reference","name":"MailmergeTableComponent"}]}]}],"members":{}},"PossibleSearchTypes":{"__symbolic":"interface"},"possible_search_type_list":["class","type","name","phone-number"],"MailmergeTableService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@schoolbelle/api/group-member","name":"GroupMemberSearchService","line":13,"character":43},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1}}],"members":{"turnMailMergeListToTableArrayData":[{"__symbolic":"method"}],"turnTableDataToMailMergeList":[{"__symbolic":"method"}]}},"MailmergeRowComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@schoolbelle/common/table","name":"RowComponent","line":14,"character":43},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"[mailmerge-row]","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":12,"character":18},"member":"OnPush"},"template":"<ng-template ngFor let-cell [ngForOf]=\"row.cells\" let-x=\"index\" [ngForTrackBy]=\"trackById\">\n  <ng-container *ngIf=\"!cell.col.hidden\" [ngSwitch]=\"x\">\n    <td \n    *ngSwitchCase=\"0\"\n    membersearch-cell [memberType]=\"memberType\" [cell]=\"cell\" searchFor=\"class\"\n    [cell-event-spy]=\"cell\">\n    </td>\n    <td \n    *ngSwitchCase=\"1\"\n    membersearch-cell [memberType]=\"memberType\" [cell]=\"cell\" searchFor=\"type\"\n    [cell-event-spy]=\"cell\">\n    </td>\n    <td \n    *ngSwitchCase=\"2\"\n    membersearch-cell [memberType]=\"memberType\" [cell]=\"cell\" [class_cell]=\"row.cells[0]\" [type_cell]=\"row.cells[1]\" searchFor=\"name\"\n    [cell-event-spy]=\"cell\">\n    </td>\n    <td \n    *ngSwitchCase=\"3\"\n    phone-number-cell [cell]=\"cell\"\n    [cell-event-spy]=\"cell\">\n    </td>    \n    <td *ngSwitchDefault \n    regular-cell [cell]=\"cell\" [tableForm]=\"tableForm\" \n    [cell-event-spy]=\"cell\">\n    </td>    \n  </ng-container>\n</ng-template>\n","styles":["td{height:42px}"]}]}],"members":{"memberType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"memberMatchRequired":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":19,"character":10},{"__symbolic":"reference","name":"MailmergeTableService"}]}],"ngOnInit":[{"__symbolic":"method"}],"matchMember":[{"__symbolic":"method"}],"updateValidity":[{"__symbolic":"method"}]}},"MailmergeRowModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":10,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"MailmergeRowComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":13,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":14,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":14,"character":17},{"__symbolic":"reference","name":"MembersearchCellModule"},{"__symbolic":"reference","name":"PhoneNumberCellModule"},{"__symbolic":"reference","name":"MailmergeRegularCellModule"},{"__symbolic":"reference","module":"@schoolbelle/common/table","name":"EventSpyModule","line":16,"character":4}],"exports":[{"__symbolic":"reference","name":"MailmergeRowComponent"}]}]}],"members":{}},"PhoneNumberCellComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@schoolbelle/common/table","name":"RegularCellComponent","line":13,"character":46},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"[phone-number-cell]","providers":[{"__symbolic":"reference","module":"@schoolbelle/common/phone-number","name":"PhoneNumberPipe","line":9,"character":13}],"template":"<!-- <ng-container *ngIf=\"cell\"> -->\n<phone-number-input *ngIf=\"showDetails; else display\"\n(focus)=\"onFocus()\"\n(blur)=\"onBlur()\"\nclass=\"form-control form-control-sm p-0 border-0 rounded-0 bg-transparent\"\nsize=\"sm\"\ni18n-placeholder\nplaceholder=\"\"\n[(ngModel)]=\"cell.val\"\n></phone-number-input>\n<ng-template #display>\n    <phone-number-display size=\"sm\" class=\"form-control form-control-sm p-0 border-0 rounded-0 bg-transparent user-select-none\"\n    tabindex=\"0\" (focus)=\"onTab()\"\n    [intlTel]=\"cell.val\"></phone-number-display>    \n</ng-template>\n          \n<!-- </ng-container> -->","styles":[""]}]}],"members":{"ngOnInit":[{"__symbolic":"method"}]}},"PhoneNumberCellModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"PhoneNumberCellComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":10,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":11,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":11,"character":17},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@schoolbelle/common/phone-number","name":"PhoneNumberModule","line":12,"character":4},"member":"forRoot"}}],"exports":[{"__symbolic":"reference","name":"PhoneNumberCellComponent"}]}]}],"members":{}},"MailmergeRegularCellComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@schoolbelle/common/table","name":"RegularCellComponent","line":9,"character":51},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"[regular-cell]","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":7,"character":18},"member":"OnPush"},"template":"<input *ngIf=\"showDetails; else display\"\n[(ngModel)]=\"cell.val\" \nclass=\"form-control form-control-sm text-center border-0 rounded-0 bg-transparent\" \n(focus)=\"onFocus()\"\n(blur)=\"onBlur()\">\n<ng-template #display>\n    <div tabindex=\"0\" (focus)=\"onTab()\" class=\"d-flex align-items-center justify-content-center form-control-sm user-select-none\">\n        {{cell?.val}}\n    </div>\n</ng-template>     \n","styles":[""]}]}],"members":{}},"MailmergeRegularCellModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":6,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"MailmergeRegularCellComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":9,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":10,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":10,"character":17}],"exports":[{"__symbolic":"reference","name":"MailmergeRegularCellComponent"}]}]}],"members":{}},"MembersearchCellComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@schoolbelle/common/table","name":"RegularCellComponent","line":13,"character":47},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"[membersearch-cell]","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":11,"character":18},"member":"OnPush"},"template":"<input *ngIf=\"showDetails; else display\"\n[(ngModel)]=\"cell.val\" \nclass=\"form-control form-control-sm text-center border-0 rounded-0 bg-transparent\" \n(focus)=\"onFocus()\"\n(blur)=\"onBlur()\"\n(keydown.ArrowUp)=\"$event.preventDefault()\"\n(keydown.ArrowDown)=\"$event.preventDefault()\"\ncontainer=\"body\"\n[typeaheadIeFix]=\"getMatchedList()\"\n(typeaheadOnSelect)=\"select($event.item);\"\ntypeaheadOptionField=\"display\">\n<ng-template #display>\n    <div tabindex=\"0\" (focus)=\"onTab()\" \n    class=\"d-flex align-items-center justify-content-center form-control-sm user-select-none\">\n        {{cell?.val}}\n    </div>\n</ng-template>     \n","styles":[""]}]}],"members":{"class_cell":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"type_cell":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"memberType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"searchFor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@schoolbelle/common/table","name":"TableEventsService","line":19,"character":10},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":20,"character":10},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":21,"character":13},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":22,"character":10},{"__symbolic":"reference","name":"MailmergeTableService"}]}],"ngOnInit":[{"__symbolic":"method"}],"getMatchedClasses":[{"__symbolic":"method"}],"getMatchedMembers":[{"__symbolic":"method"}],"getMatchedMembersDirectly":[{"__symbolic":"method"}],"getMatchedList":[{"__symbolic":"method"}],"select":[{"__symbolic":"method"}]}},"MembersearchCellModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"MembersearchCellComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":10,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":11,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":11,"character":17},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"TypeaheadIeFixModule"},"member":"forRoot"}}],"exports":[{"__symbolic":"reference","name":"MembersearchCellComponent"}]}]}],"members":{}},"TypeaheadIeFixDirective":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"ngx-bootstrap/typeahead","name":"TypeaheadDirective","line":8,"character":45},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":7,"character":1},"arguments":[{"selector":"[typeaheadIeFix]","exportAs":"bs-typeahead"}]}],"members":{"typeahead":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3},"arguments":["typeaheadIeFix"]}]}],"onBlur":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":12,"character":3},"arguments":["blur"]}]}],"onInput":[{"__symbolic":"method"}]}},"TypeaheadIeFixModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"TypeaheadIeFixDirective"}],"imports":[{"__symbolic":"reference","module":"ngx-bootstrap/typeahead","name":"TypeaheadModule","line":7,"character":4}],"exports":[{"__symbolic":"reference","name":"TypeaheadIeFixDirective"},{"__symbolic":"reference","module":"ngx-bootstrap/typeahead","name":"TypeaheadModule","line":11,"character":4}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"TypeaheadIeFixModule"},"providers":[{"__symbolic":"spread","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/typeahead","name":"TypeaheadModule","line":18,"character":20},"member":"forRoot"}},"member":"providers"}}]}}}},"ProfileImgComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"app-profile-img","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":7,"character":18},"member":"OnPush"},"template":"<img #img [src]=\"url || defaultSrc\">","styles":[":host{overflow:hidden;display:inline-block}"]}]}],"members":{"imgElRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":10,"character":3},"arguments":["img"]}]}],"defaultSrc":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"src":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"width":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"height":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":45,"character":5},"arguments":[{"__symbolic":"reference","module":"@schoolbelle/api/tokens","name":"REST_SERVER_DB_SHARD_ID","line":45,"character":12}]}]],"parameters":[{"__symbolic":"reference","name":"string"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ProfileImgModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ProfileImgComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":7,"character":4}],"exports":[{"__symbolic":"reference","name":"ProfileImgComponent"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalRef","line":6,"character":30}]}],"ngOnInit":[{"__symbolic":"method"}],"ok":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}]}},"ɵb":{"ab":{"name":"Abkhaz","nativeName":"аҧсуа","$quoted$":["name","nativeName"]},"aa":{"name":"Afar","nativeName":"Afaraf","$quoted$":["name","nativeName"]},"af":{"name":"Afrikaans","nativeName":"Afrikaans","$quoted$":["name","nativeName"]},"ak":{"name":"Akan","nativeName":"Akan","$quoted$":["name","nativeName"]},"sq":{"name":"Albanian","nativeName":"Shqip","$quoted$":["name","nativeName"]},"am":{"name":"Amharic","nativeName":"አማርኛ","$quoted$":["name","nativeName"]},"ar":{"name":"Arabic","nativeName":"العربية","$quoted$":["name","nativeName"]},"an":{"name":"Aragonese","nativeName":"Aragonés","$quoted$":["name","nativeName"]},"hy":{"name":"Armenian","nativeName":"Հայերեն","$quoted$":["name","nativeName"]},"as":{"name":"Assamese","nativeName":"অসমীয়া","$quoted$":["name","nativeName"]},"av":{"name":"Avaric","nativeName":"авар мацӀ, магӀарул мацӀ","$quoted$":["name","nativeName"]},"ae":{"name":"Avestan","nativeName":"avesta","$quoted$":["name","nativeName"]},"ay":{"name":"Aymara","nativeName":"aymar aru","$quoted$":["name","nativeName"]},"az":{"name":"Azerbaijani","nativeName":"azərbaycan dili","$quoted$":["name","nativeName"]},"bm":{"name":"Bambara","nativeName":"bamanankan","$quoted$":["name","nativeName"]},"ba":{"name":"Bashkir","nativeName":"башҡорт теле","$quoted$":["name","nativeName"]},"eu":{"name":"Basque","nativeName":"euskara, euskera","$quoted$":["name","nativeName"]},"be":{"name":"Belarusian","nativeName":"Беларуская","$quoted$":["name","nativeName"]},"bn":{"name":"Bengali","nativeName":"বাংলা","$quoted$":["name","nativeName"]},"bh":{"name":"Bihari","nativeName":"भोजपुरी","$quoted$":["name","nativeName"]},"bi":{"name":"Bislama","nativeName":"Bislama","$quoted$":["name","nativeName"]},"bs":{"name":"Bosnian","nativeName":"bosanski jezik","$quoted$":["name","nativeName"]},"br":{"name":"Breton","nativeName":"brezhoneg","$quoted$":["name","nativeName"]},"bg":{"name":"Bulgarian","nativeName":"български език","$quoted$":["name","nativeName"]},"my":{"name":"Burmese","nativeName":"ဗမာစာ","$quoted$":["name","nativeName"]},"ca":{"name":"Catalan; Valencian","nativeName":"Català","$quoted$":["name","nativeName"]},"ch":{"name":"Chamorro","nativeName":"Chamoru","$quoted$":["name","nativeName"]},"ce":{"name":"Chechen","nativeName":"нохчийн мотт","$quoted$":["name","nativeName"]},"ny":{"name":"Chichewa; Chewa; Nyanja","nativeName":"chiCheŵa, chinyanja","$quoted$":["name","nativeName"]},"zh":{"name":"Chinese","nativeName":"中文 (Zhōngwén), 汉语, 漢語","$quoted$":["name","nativeName"]},"cv":{"name":"Chuvash","nativeName":"чӑваш чӗлхи","$quoted$":["name","nativeName"]},"kw":{"name":"Cornish","nativeName":"Kernewek","$quoted$":["name","nativeName"]},"co":{"name":"Corsican","nativeName":"corsu, lingua corsa","$quoted$":["name","nativeName"]},"cr":{"name":"Cree","nativeName":"ᓀᐦᐃᔭᐍᐏᐣ","$quoted$":["name","nativeName"]},"hr":{"name":"Croatian","nativeName":"hrvatski","$quoted$":["name","nativeName"]},"cs":{"name":"Czech","nativeName":"česky, čeština","$quoted$":["name","nativeName"]},"da":{"name":"Danish","nativeName":"dansk","$quoted$":["name","nativeName"]},"dv":{"name":"Divehi; Dhivehi; Maldivian;","nativeName":"ދިވެހި","$quoted$":["name","nativeName"]},"nl":{"name":"Dutch","nativeName":"Nederlands, Vlaams","$quoted$":["name","nativeName"]},"en":{"name":"English","nativeName":"English","$quoted$":["name","nativeName"]},"eo":{"name":"Esperanto","nativeName":"Esperanto","$quoted$":["name","nativeName"]},"et":{"name":"Estonian","nativeName":"eesti, eesti keel","$quoted$":["name","nativeName"]},"ee":{"name":"Ewe","nativeName":"Eʋegbe","$quoted$":["name","nativeName"]},"fo":{"name":"Faroese","nativeName":"føroyskt","$quoted$":["name","nativeName"]},"fj":{"name":"Fijian","nativeName":"vosa Vakaviti","$quoted$":["name","nativeName"]},"fi":{"name":"Finnish","nativeName":"suomi, suomen kieli","$quoted$":["name","nativeName"]},"fr":{"name":"French","nativeName":"français, langue française","$quoted$":["name","nativeName"]},"ff":{"name":"Fula; Fulah; Pulaar; Pular","nativeName":"Fulfulde, Pulaar, Pular","$quoted$":["name","nativeName"]},"gl":{"name":"Galician","nativeName":"Galego","$quoted$":["name","nativeName"]},"ka":{"name":"Georgian","nativeName":"ქართული","$quoted$":["name","nativeName"]},"de":{"name":"German","nativeName":"Deutsch","$quoted$":["name","nativeName"]},"el":{"name":"Greek, Modern","nativeName":"Ελληνικά","$quoted$":["name","nativeName"]},"gn":{"name":"Guaraní","nativeName":"Avañeẽ","$quoted$":["name","nativeName"]},"gu":{"name":"Gujarati","nativeName":"ગુજરાતી","$quoted$":["name","nativeName"]},"ht":{"name":"Haitian; Haitian Creole","nativeName":"Kreyòl ayisyen","$quoted$":["name","nativeName"]},"ha":{"name":"Hausa","nativeName":"Hausa, هَوُسَ","$quoted$":["name","nativeName"]},"he":{"name":"Hebrew (modern)","nativeName":"עברית","$quoted$":["name","nativeName"]},"hz":{"name":"Herero","nativeName":"Otjiherero","$quoted$":["name","nativeName"]},"hi":{"name":"Hindi","nativeName":"हिन्दी, हिंदी","$quoted$":["name","nativeName"]},"ho":{"name":"Hiri Motu","nativeName":"Hiri Motu","$quoted$":["name","nativeName"]},"hu":{"name":"Hungarian","nativeName":"Magyar","$quoted$":["name","nativeName"]},"ia":{"name":"Interlingua","nativeName":"Interlingua","$quoted$":["name","nativeName"]},"id":{"name":"Indonesian","nativeName":"Bahasa Indonesia","$quoted$":["name","nativeName"]},"ie":{"name":"Interlingue","nativeName":"Originally called Occidental; then Interlingue after WWII","$quoted$":["name","nativeName"]},"ga":{"name":"Irish","nativeName":"Gaeilge","$quoted$":["name","nativeName"]},"ig":{"name":"Igbo","nativeName":"Asụsụ Igbo","$quoted$":["name","nativeName"]},"ik":{"name":"Inupiaq","nativeName":"Iñupiaq, Iñupiatun","$quoted$":["name","nativeName"]},"io":{"name":"Ido","nativeName":"Ido","$quoted$":["name","nativeName"]},"is":{"name":"Icelandic","nativeName":"Íslenska","$quoted$":["name","nativeName"]},"it":{"name":"Italian","nativeName":"Italiano","$quoted$":["name","nativeName"]},"iu":{"name":"Inuktitut","nativeName":"ᐃᓄᒃᑎᑐᑦ","$quoted$":["name","nativeName"]},"ja":{"name":"Japanese","nativeName":"日本語 (にほんご／にっぽんご)","$quoted$":["name","nativeName"]},"jv":{"name":"Javanese","nativeName":"basa Jawa","$quoted$":["name","nativeName"]},"kl":{"name":"Kalaallisut, Greenlandic","nativeName":"kalaallisut, kalaallit oqaasii","$quoted$":["name","nativeName"]},"kn":{"name":"Kannada","nativeName":"ಕನ್ನಡ","$quoted$":["name","nativeName"]},"kr":{"name":"Kanuri","nativeName":"Kanuri","$quoted$":["name","nativeName"]},"ks":{"name":"Kashmiri","nativeName":"कश्मीरी, كشميري‎","$quoted$":["name","nativeName"]},"kk":{"name":"Kazakh","nativeName":"Қазақ тілі","$quoted$":["name","nativeName"]},"km":{"name":"Khmer","nativeName":"ភាសាខ្មែរ","$quoted$":["name","nativeName"]},"ki":{"name":"Kikuyu, Gikuyu","nativeName":"Gĩkũyũ","$quoted$":["name","nativeName"]},"rw":{"name":"Kinyarwanda","nativeName":"Ikinyarwanda","$quoted$":["name","nativeName"]},"ky":{"name":"Kirghiz, Kyrgyz","nativeName":"кыргыз тили","$quoted$":["name","nativeName"]},"kv":{"name":"Komi","nativeName":"коми кыв","$quoted$":["name","nativeName"]},"kg":{"name":"Kongo","nativeName":"KiKongo","$quoted$":["name","nativeName"]},"ko":{"name":"Korean","nativeName":"한국어 (韓國語), 조선말 (朝鮮語)","$quoted$":["name","nativeName"]},"ku":{"name":"Kurdish","nativeName":"Kurdî, كوردی‎","$quoted$":["name","nativeName"]},"kj":{"name":"Kwanyama, Kuanyama","nativeName":"Kuanyama","$quoted$":["name","nativeName"]},"la":{"name":"Latin","nativeName":"latine, lingua latina","$quoted$":["name","nativeName"]},"lb":{"name":"Luxembourgish, Letzeburgesch","nativeName":"Lëtzebuergesch","$quoted$":["name","nativeName"]},"lg":{"name":"Luganda","nativeName":"Luganda","$quoted$":["name","nativeName"]},"li":{"name":"Limburgish, Limburgan, Limburger","nativeName":"Limburgs","$quoted$":["name","nativeName"]},"ln":{"name":"Lingala","nativeName":"Lingála","$quoted$":["name","nativeName"]},"lo":{"name":"Lao","nativeName":"ພາສາລາວ","$quoted$":["name","nativeName"]},"lt":{"name":"Lithuanian","nativeName":"lietuvių kalba","$quoted$":["name","nativeName"]},"lu":{"name":"Luba-Katanga","nativeName":"","$quoted$":["name","nativeName"]},"lv":{"name":"Latvian","nativeName":"latviešu valoda","$quoted$":["name","nativeName"]},"gv":{"name":"Manx","nativeName":"Gaelg, Gailck","$quoted$":["name","nativeName"]},"mk":{"name":"Macedonian","nativeName":"македонски јазик","$quoted$":["name","nativeName"]},"mg":{"name":"Malagasy","nativeName":"Malagasy fiteny","$quoted$":["name","nativeName"]},"ms":{"name":"Malay","nativeName":"bahasa Melayu, بهاس ملايو‎","$quoted$":["name","nativeName"]},"ml":{"name":"Malayalam","nativeName":"മലയാളം","$quoted$":["name","nativeName"]},"mt":{"name":"Maltese","nativeName":"Malti","$quoted$":["name","nativeName"]},"mi":{"name":"Māori","nativeName":"te reo Māori","$quoted$":["name","nativeName"]},"mr":{"name":"Marathi (Marāṭhī)","nativeName":"मराठी","$quoted$":["name","nativeName"]},"mh":{"name":"Marshallese","nativeName":"Kajin M̧ajeļ","$quoted$":["name","nativeName"]},"mn":{"name":"Mongolian","nativeName":"монгол","$quoted$":["name","nativeName"]},"na":{"name":"Nauru","nativeName":"Ekakairũ Naoero","$quoted$":["name","nativeName"]},"nv":{"name":"Navajo, Navaho","nativeName":"Diné bizaad, Dinékʼehǰí","$quoted$":["name","nativeName"]},"nb":{"name":"Norwegian Bokmål","nativeName":"Norsk bokmål","$quoted$":["name","nativeName"]},"nd":{"name":"North Ndebele","nativeName":"isiNdebele","$quoted$":["name","nativeName"]},"ne":{"name":"Nepali","nativeName":"नेपाली","$quoted$":["name","nativeName"]},"ng":{"name":"Ndonga","nativeName":"Owambo","$quoted$":["name","nativeName"]},"nn":{"name":"Norwegian Nynorsk","nativeName":"Norsk nynorsk","$quoted$":["name","nativeName"]},"no":{"name":"Norwegian","nativeName":"Norsk","$quoted$":["name","nativeName"]},"ii":{"name":"Nuosu","nativeName":"ꆈꌠ꒿ Nuosuhxop","$quoted$":["name","nativeName"]},"nr":{"name":"South Ndebele","nativeName":"isiNdebele","$quoted$":["name","nativeName"]},"oc":{"name":"Occitan","nativeName":"Occitan","$quoted$":["name","nativeName"]},"oj":{"name":"Ojibwe, Ojibwa","nativeName":"ᐊᓂᔑᓈᐯᒧᐎᓐ","$quoted$":["name","nativeName"]},"cu":{"name":"Old Church Slavonic, Church Slavic, Church Slavonic, Old Bulgarian, Old Slavonic","nativeName":"ѩзыкъ словѣньскъ","$quoted$":["name","nativeName"]},"om":{"name":"Oromo","nativeName":"Afaan Oromoo","$quoted$":["name","nativeName"]},"or":{"name":"Oriya","nativeName":"ଓଡ଼ିଆ","$quoted$":["name","nativeName"]},"os":{"name":"Ossetian, Ossetic","nativeName":"ирон æвзаг","$quoted$":["name","nativeName"]},"pa":{"name":"Panjabi, Punjabi","nativeName":"ਪੰਜਾਬੀ, پنجابی‎","$quoted$":["name","nativeName"]},"pi":{"name":"Pāli","nativeName":"पाऴि","$quoted$":["name","nativeName"]},"fa":{"name":"Persian","nativeName":"فارسی","$quoted$":["name","nativeName"]},"pl":{"name":"Polish","nativeName":"polski","$quoted$":["name","nativeName"]},"ps":{"name":"Pashto, Pushto","nativeName":"پښتو","$quoted$":["name","nativeName"]},"pt":{"name":"Portuguese","nativeName":"Português","$quoted$":["name","nativeName"]},"qu":{"name":"Quechua","nativeName":"Runa Simi, Kichwa","$quoted$":["name","nativeName"]},"rm":{"name":"Romansh","nativeName":"rumantsch grischun","$quoted$":["name","nativeName"]},"rn":{"name":"Kirundi","nativeName":"kiRundi","$quoted$":["name","nativeName"]},"ro":{"name":"Romanian, Moldavian, Moldovan","nativeName":"română","$quoted$":["name","nativeName"]},"ru":{"name":"Russian","nativeName":"русский язык","$quoted$":["name","nativeName"]},"sa":{"name":"Sanskrit (Saṁskṛta)","nativeName":"संस्कृतम्","$quoted$":["name","nativeName"]},"sc":{"name":"Sardinian","nativeName":"sardu","$quoted$":["name","nativeName"]},"sd":{"name":"Sindhi","nativeName":"सिन्धी, سنڌي، سندھی‎","$quoted$":["name","nativeName"]},"se":{"name":"Northern Sami","nativeName":"Davvisámegiella","$quoted$":["name","nativeName"]},"sm":{"name":"Samoan","nativeName":"gagana faa Samoa","$quoted$":["name","nativeName"]},"sg":{"name":"Sango","nativeName":"yângâ tî sängö","$quoted$":["name","nativeName"]},"sr":{"name":"Serbian","nativeName":"српски језик","$quoted$":["name","nativeName"]},"gd":{"name":"Scottish Gaelic; Gaelic","nativeName":"Gàidhlig","$quoted$":["name","nativeName"]},"sn":{"name":"Shona","nativeName":"chiShona","$quoted$":["name","nativeName"]},"si":{"name":"Sinhala, Sinhalese","nativeName":"සිංහල","$quoted$":["name","nativeName"]},"sk":{"name":"Slovak","nativeName":"slovenčina","$quoted$":["name","nativeName"]},"sl":{"name":"Slovene","nativeName":"slovenščina","$quoted$":["name","nativeName"]},"so":{"name":"Somali","nativeName":"Soomaaliga, af Soomaali","$quoted$":["name","nativeName"]},"st":{"name":"Southern Sotho","nativeName":"Sesotho","$quoted$":["name","nativeName"]},"es":{"name":"Spanish; Castilian","nativeName":"español, castellano","$quoted$":["name","nativeName"]},"su":{"name":"Sundanese","nativeName":"Basa Sunda","$quoted$":["name","nativeName"]},"sw":{"name":"Swahili","nativeName":"Kiswahili","$quoted$":["name","nativeName"]},"ss":{"name":"Swati","nativeName":"SiSwati","$quoted$":["name","nativeName"]},"sv":{"name":"Swedish","nativeName":"svenska","$quoted$":["name","nativeName"]},"ta":{"name":"Tamil","nativeName":"தமிழ்","$quoted$":["name","nativeName"]},"te":{"name":"Telugu","nativeName":"తెలుగు","$quoted$":["name","nativeName"]},"tg":{"name":"Tajik","nativeName":"тоҷикӣ, toğikī, تاجیکی‎","$quoted$":["name","nativeName"]},"th":{"name":"Thai","nativeName":"ไทย","$quoted$":["name","nativeName"]},"ti":{"name":"Tigrinya","nativeName":"ትግርኛ","$quoted$":["name","nativeName"]},"bo":{"name":"Tibetan Standard, Tibetan, Central","nativeName":"བོད་ཡིག","$quoted$":["name","nativeName"]},"tk":{"name":"Turkmen","nativeName":"Türkmen, Түркмен","$quoted$":["name","nativeName"]},"tl":{"name":"Tagalog","nativeName":"Wikang Tagalog, ᜏᜒᜃᜅ᜔ ᜆᜄᜎᜓᜄ᜔","$quoted$":["name","nativeName"]},"tn":{"name":"Tswana","nativeName":"Setswana","$quoted$":["name","nativeName"]},"to":{"name":"Tonga (Tonga Islands)","nativeName":"faka Tonga","$quoted$":["name","nativeName"]},"tr":{"name":"Turkish","nativeName":"Türkçe","$quoted$":["name","nativeName"]},"ts":{"name":"Tsonga","nativeName":"Xitsonga","$quoted$":["name","nativeName"]},"tt":{"name":"Tatar","nativeName":"татарча, tatarça, تاتارچا‎","$quoted$":["name","nativeName"]},"tw":{"name":"Twi","nativeName":"Twi","$quoted$":["name","nativeName"]},"ty":{"name":"Tahitian","nativeName":"Reo Tahiti","$quoted$":["name","nativeName"]},"ug":{"name":"Uighur, Uyghur","nativeName":"Uyƣurqə, ئۇيغۇرچە‎","$quoted$":["name","nativeName"]},"uk":{"name":"Ukrainian","nativeName":"українська","$quoted$":["name","nativeName"]},"ur":{"name":"Urdu","nativeName":"اردو","$quoted$":["name","nativeName"]},"uz":{"name":"Uzbek","nativeName":"zbek, Ўзбек, أۇزبېك‎","$quoted$":["name","nativeName"]},"ve":{"name":"Venda","nativeName":"Tshivenḓa","$quoted$":["name","nativeName"]},"vi":{"name":"Vietnamese","nativeName":"Tiếng Việt","$quoted$":["name","nativeName"]},"vo":{"name":"Volapük","nativeName":"Volapük","$quoted$":["name","nativeName"]},"wa":{"name":"Walloon","nativeName":"Walon","$quoted$":["name","nativeName"]},"cy":{"name":"Welsh","nativeName":"Cymraeg","$quoted$":["name","nativeName"]},"wo":{"name":"Wolof","nativeName":"Wollof","$quoted$":["name","nativeName"]},"fy":{"name":"Western Frisian","nativeName":"Frysk","$quoted$":["name","nativeName"]},"xh":{"name":"Xhosa","nativeName":"isiXhosa","$quoted$":["name","nativeName"]},"yi":{"name":"Yiddish","nativeName":"ייִדיש","$quoted$":["name","nativeName"]},"yo":{"name":"Yoruba","nativeName":"Yorùbá","$quoted$":["name","nativeName"]},"za":{"name":"Zhuang, Chuang","nativeName":"Saɯ cueŋƅ, Saw cuengh","$quoted$":["name","nativeName"]},"$quoted$":["ab","aa","af","ak","sq","am","ar","an","hy","as","av","ae","ay","az","bm","ba","eu","be","bn","bh","bi","bs","br","bg","my","ca","ch","ce","ny","zh","cv","kw","co","cr","hr","cs","da","dv","nl","en","eo","et","ee","fo","fj","fi","fr","ff","gl","ka","de","el","gn","gu","ht","ha","he","hz","hi","ho","hu","ia","id","ie","ga","ig","ik","io","is","it","iu","ja","jv","kl","kn","kr","ks","kk","km","ki","rw","ky","kv","kg","ko","ku","kj","la","lb","lg","li","ln","lo","lt","lu","lv","gv","mk","mg","ms","ml","mt","mi","mr","mh","mn","na","nv","nb","nd","ne","ng","nn","no","ii","nr","oc","oj","cu","om","or","os","pa","pi","fa","pl","ps","pt","qu","rm","rn","ro","ru","sa","sc","sd","se","sm","sg","sr","gd","sn","si","sk","sl","so","st","es","su","sw","ss","sv","ta","te","tg","th","ti","bo","tk","tl","tn","to","tr","ts","tt","tw","ty","ug","uk","ur","uz","ve","vi","vo","wa","cy","wo","fy","xh","yi","yo","za"]},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":3,"character":1},"arguments":[{"name":"tableScroll"}]}],"members":{"transform":[{"__symbolic":"method"}],"wrapInXScroller":[{"__symbolic":"method"}]}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":7,"character":1},"arguments":[{"name":"imageResized"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"transform":[{"__symbolic":"method"}]}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@schoolbelle/common/local-storage","name":"LocalStorageService","line":12,"character":20},{"__symbolic":"reference","module":"@schoolbelle/api/auth","name":"AuthService","line":13,"character":17}]}],"get":[{"__symbolic":"method"}],"keys":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"clear":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"gallery-nav","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":7,"character":19},"member":"OnPush"},"template":"\n    <i *ngIf=\"config.loop || state.hasPrev\"\n       class=\"g-nav-prev\"\n       aria-label=\"Previous\"\n       (tapClick)=\"action.emit('prev')\"\n       [innerHtml]=\"navIcon\"></i>\n\n    <i *ngIf=\"config.loop || state.hasNext\"\n       class=\"g-nav-next\"\n       aria-label=\"Next\"\n       (tapClick)=\"action.emit('next')\"\n       [innerHtml]=\"navIcon\"></i>\n  "}]}],"members":{"state":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"config":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"action":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":27,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":29,"character":34}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵh":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"gallery-dots","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":6,"character":19},"member":"OnPush"},"template":"\n    <div class=\"g-dot\"\n         *ngFor=\"let item of state.items; let i = index\"\n         [class.g-dot-active]=\"i === state.currIndex\"\n         [style.width.px]=\"config?.dotsSize\"\n         [style.height.px]=\"config?.dotsSize\"\n         (tapClick)=\"action.emit(i)\">\n      <div class=\"g-dot-inner\"></div>\n    </div>\n  "}]}],"members":{"state":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"config":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"action":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":21,"character":3}}]}]}},"ɵi":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"gallery-core","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":6,"character":19},"member":"OnPush"},"template":"\n    <gallery-thumbs *ngIf=\"config.thumb\"\n                    [state]=\"state\"\n                    [config]=\"config\"\n                    (action)=\"action.emit($event)\"\n                    (thumbClick)=\"thumbClick.emit($event)\">\n    </gallery-thumbs>\n    <div class=\"g-box\">\n      <gallery-slider [state]=\"state\"\n                      [config]=\"config\"\n                      (action)=\"action.emit($event)\"\n                      (itemClick)=\"itemClick.emit($event)\"\n                      (error)=\"error.emit($event)\">\n\n        <gallery-nav *ngIf=\"config.nav && state.items.length > 1\"\n                     [state]=\"state\"\n                     [config]=\"config\"\n                     (action)=\"action.emit($event)\">\n        </gallery-nav>\n\n      </gallery-slider>\n\n      <gallery-dots *ngIf=\"config.dots\"\n                    [state]=\"state\"\n                    [config]=\"config\"\n                    (action)=\"action.emit($event)\">\n      </gallery-dots>\n\n      <gallery-counter *ngIf=\"config.counter\"\n                       [state]=\"state\">\n      </gallery-counter>\n    </div>\n  "}]}],"members":{"state":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":3}}]}],"config":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":3}}]}],"action":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":45,"character":3}}]}],"itemClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":46,"character":3}}]}],"thumbClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":47,"character":3}}]}],"error":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":48,"character":3}}]}],"thumbPosition":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":51,"character":3},"arguments":["attr.thumbPosition"]}]}],"slidingDirection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":56,"character":3},"arguments":["attr.slidingDirection"]}]}],"disableThumb":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":61,"character":3},"arguments":["attr.disableThumb"]}]}],"imageSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":66,"character":3},"arguments":["attr.imageSize"]}]}],"dotsPosition":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":71,"character":3},"arguments":["attr.dotsPosition"]}]}],"counterPosition":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":76,"character":3},"arguments":["attr.counterPosition"]}]}]}},"ɵj":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":24,"character":1},"arguments":[{"selector":"gallery-slider","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":26,"character":19},"member":"OnPush"},"template":"\n    <div *ngIf=\"sliderState$ | async; let sliderState\"\n         class=\"g-items-container\"\n         [ngStyle]=\"zoom\">\n\n      <div class=\"g-slider\"\n           [class.g-no-transition]=\"sliderState.active\"\n           [ngStyle]=\"sliderState.style\">\n\n        <gallery-item *ngFor=\"let item of state.items; let i = index\"\n                      [type]=\"item.type\"\n                      [config]=\"config\"\n                      [data]=\"item.data\"\n                      [currIndex]=\"state.currIndex\"\n                      [index]=\"i\"\n                      (tapClick)=\"itemClick.emit(i)\"\n                      (error)=\"error.emit({itemIndex: i, error: $event})\">\n        </gallery-item>\n\n      </div>\n    </div>\n    <ng-content></ng-content>\n  "}]}],"members":{"state":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":66,"character":3}}]}],"config":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":69,"character":3}}]}],"action":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":72,"character":3}}]}],"itemClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":75,"character":3}}]}],"error":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":78,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":85,"character":63},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"PLATFORM_ID","line":85,"character":70}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":85,"character":27},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":85,"character":54},{"__symbolic":"reference","name":"Object"}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"getSliderStyles":[{"__symbolic":"method"}],"verticalPan":[{"__symbolic":"method"}],"horizontalPan":[{"__symbolic":"method"}],"next":[{"__symbolic":"method"}],"prev":[{"__symbolic":"method"}],"updateSlider":[{"__symbolic":"method"}]}},"ɵk":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"gallery-counter","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":5,"character":19},"member":"OnPush"},"template":"\n    <div class=\"g-counter\">{{(state.currIndex + 1) + '/' + state.items.length}}</div>\n  "}]}],"members":{"state":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}]}},"ɵl":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":22,"character":1},"arguments":[{"selector":"gallery-thumbs","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":24,"character":19},"member":"OnPush"},"template":"\n    <div *ngIf=\"sliderState$ | async; let sliderState\"\n         class=\"g-thumbs-container\">\n      <div class=\"g-slider\"\n           [class.g-no-transition]=\"sliderState.active\"\n           [ngStyle]=\"sliderState.style\">\n\n        <gallery-thumb *ngFor=\"let item of state.items;let i = index\"\n                       [type]=\"item.type\"\n                       [config]=\"config\"\n                       [data]=\"item.data\"\n                       [currIndex]=\"state.currIndex\"\n                       [index]=\"i\"\n                       [tapClickDisabled]=\"config.disableThumb\"\n                       (tapClick)=\"thumbClick.emit(i)\"\n                       (error)=\"error.emit({itemIndex: i, error: $event})\"></gallery-thumb>\n      </div>\n    </div>\n  "}]}],"members":{"state":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":60,"character":3}}]}],"config":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":63,"character":3}}]}],"action":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":66,"character":3}}]}],"thumbClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":69,"character":3}}]}],"error":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":72,"character":3}}]}],"height":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":75,"character":3},"arguments":["style.height"]}]}],"width":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":78,"character":3},"arguments":["style.width"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":80,"character":27},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":80,"character":54}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"strictMode":[{"__symbolic":"method"}],"freeMode":[{"__symbolic":"method"}],"minFreeScrollExceeded":[{"__symbolic":"method"}],"maxFreeScrollExceeded":[{"__symbolic":"method"}],"getSliderStyles":[{"__symbolic":"method"}],"verticalPan":[{"__symbolic":"method"}],"horizontalPan":[{"__symbolic":"method"}],"next":[{"__symbolic":"method"}],"prev":[{"__symbolic":"method"}],"updateSlider":[{"__symbolic":"method"}]}},"ɵm":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"gallery-thumb","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":5,"character":19},"member":"OnPush"},"template":"\n    <gallery-image [src]=\"data.thumb\" \n                   mode=\"indeterminate\"\n                   [isThumbnail]=\"true\" \n                   [loadingIcon]=\"config.thumbLoadingIcon\"\n                   [loadingError]=\"config.thumbLoadingError \"\n                   (error)=\"error.emit($event)\"></gallery-image>\n\n    <div *ngIf=\"config.thumbTemplate\" class=\"g-template g-thumb-template\">\n      <ng-container\n        *ngTemplateOutlet=\"config.thumbTemplate; context: { index: this.index, type: this.type, data: this.data }\">\n      </ng-container>\n    </div>\n  "}]}],"members":{"config":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"index":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"currIndex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3}}]}],"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3}}]}],"error":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":37,"character":3}}]}],"isActive":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":39,"character":3},"arguments":["class.g-active-thumb"]}]}]}},"ɵn":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"gallery-item","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":6,"character":19},"member":"OnPush"},"template":"\n    <ng-container *ngIf=\"load\" [ngSwitch]=\"type\">\n\n      <ng-container *ngSwitchCase=\"Types.Image\">\n\n        <gallery-image [src]=\"data.src\"\n                       [loadingIcon]=\"config.loadingIcon\"\n                       [loadingError]=\"config.loadingError\"\n                       (error)=\"error.emit($event)\"></gallery-image>\n\n        <div class=\"g-template g-item-template\">\n          <ng-container *ngTemplateOutlet=\"config.itemTemplate;\n          context: { index: this.index, currIndex: this.currIndex, type: this.type, data: this.data }\">\n          </ng-container>\n        </div>\n\n      </ng-container>\n\n      <gallery-video *ngSwitchCase=\"Types.Video\"\n                     [src]=\"data.src\"\n                     [poster]=\"data.poster\"\n                     [pause]=\"currIndex !== index\"\n                     (error)=\"error.emit($event)\"></gallery-video>\n\n      <gallery-iframe *ngSwitchCase=\"Types.Youtube\"\n                      [src]=\"data.src\"\n                      [pause]=\"currIndex !== index\"></gallery-iframe>\n\n      <gallery-iframe *ngSwitchCase=\"Types.Iframe\"\n                      [src]=\"data.src\"></gallery-iframe>\n\n      <ng-container *ngSwitchDefault>\n\n        <div class=\"g-template g-item-template\">\n          <ng-container *ngTemplateOutlet=\"config.itemTemplate;\n          context: { index: this.index, currIndex: this.currIndex, type: this.type, data: this.data }\">\n          </ng-container>\n        </div>\n\n      </ng-container>\n\n    </ng-container>\n  "}]}],"members":{"config":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":56,"character":3}}]}],"index":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":59,"character":3}}]}],"currIndex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":62,"character":3}}]}],"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":65,"character":3}}]}],"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":68,"character":3}}]}],"error":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":71,"character":3}}]}],"isActive":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":73,"character":3},"arguments":["class.g-active-item"]}]}]}},"ɵo":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":5,"character":1},"arguments":[{"selector":"[lazyImage]"}]}],"members":{"src":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3},"arguments":["lazyImage"]}]}],"loaded":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":15,"character":3}}]}],"error":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":16,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":18,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":18,"character":22}]}]],"parameters":[{"__symbolic":"reference","name":"any"}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"loadImage":[{"__symbolic":"method"}],"nativeLoader":[{"__symbolic":"method"}]}},"ɵp":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":9,"character":1},"arguments":[{"selector":"[tapClick]"}]}],"members":{"tapClickDisabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"tapClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":17,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":19,"character":27}]}],"ngOnInit":[{"__symbolic":"method"}],"activateClickEvent":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵq":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":9,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵr"},{"__symbolic":"reference","name":"ɵt"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":12,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":13,"character":4},"member":"forRoot"}}],"providers":[{"__symbolic":"reference","name":"ɵu"}],"exports":[{"__symbolic":"reference","name":"ɵr"}],"entryComponents":[{"__symbolic":"reference","name":"ɵt"}]}]}],"members":{}},"ɵr":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"app-faces","template":"<div class=\"dynamic-aspect-container\" #container>\n    <div class=\"dynamic-aspect-content\" [ngStyle]=\"rect\">\n        <ng-content></ng-content>\n        <div [ngClass]=\"{'cursor-pointer':!disabled}\" [ngStyle]=\"getBoxPosition(detection.box)\" style=\"border:2px solid rgba(255, 0, 0, 0.4);\" *ngFor=\"let detection of detections\" dropdown dropdownToggle [isDisabled]=\"disabled\">\n            <div *ngIf=\"!disabled\" class=\"position-absolute text-center\" style=\"left:0; bottom:0; width:100%;background:rgba(255, 0, 0, 0.4);\">\n                <span *ngFor=\"let match of detection.matches\" style=\"color:white;\">{{getNameFromScope(match.scope)}}</span>\n            </div>\n    \n            <div class=\"dropdown-menu dropdown-menu-right\" *dropdownMenu>\n                <ng-container *ngIf=\"detection.matches.length;else memberList;\">\n                    <button class=\"dropdown-item\" *ngFor=\"let match of detection.matches;\" (click)=\"nullifyMatch(match)\">This is not {{getNameFromScope(match.scope)}}.</button>\n                </ng-container>\n                <ng-template #memberList>\n                    <button class=\"dropdown-item\" *ngFor=\"let member of members\" (click)=\"insertRecognition(detection, member)\">This is {{member.member_name}}</button>\n                </ng-template>\n            </div>       \n        </div>\n    \n    </div> \n</div>\n","styles":[".dynamic-aspect-container{position:absolute;height:100%;width:100%;left:0;top:0}.dynamic-aspect-container>.dynamic-aspect-content{position:relative;margin:auto;height:100%}"]}]}],"members":{"container":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":17,"character":3},"arguments":["container"]}]}],"file":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵs"},{"__symbolic":"reference","module":"@schoolbelle/api/group-member","name":"GroupMemberService","line":25,"character":19},{"__symbolic":"reference","module":"@schoolbelle/common/dialog","name":"DialogService","line":26,"character":20},{"__symbolic":"reference","module":"@schoolbelle/common/loading","name":"LoadingService","line":27,"character":20},{"__symbolic":"reference","module":"ngx-toastr","name":"ToastrService","line":28,"character":19},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":29,"character":18},{"__symbolic":"reference","module":"@schoolbelle/common/translation","name":"TranslationService","line":31,"character":24}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"refreshFaces":[{"__symbolic":"method"}],"getBoxPosition":[{"__symbolic":"method"}],"getContainerRect":[{"__symbolic":"method"}],"getNameFromScope":[{"__symbolic":"method"}],"nullifyMatch":[{"__symbolic":"method"}],"insertRecognition":[{"__symbolic":"method"}],"createCanvasWithSrc":[{"__symbolic":"method"}],"crop":[{"__symbolic":"method"}]}},"ɵs":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":34,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":43,"character":5},"arguments":[{"__symbolic":"reference","module":"@schoolbelle/api/tokens","name":"REST_SERVER_HOST","line":43,"character":12}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":40,"character":18},{"__symbolic":"reference","module":"@schoolbelle/api/group","name":"GroupService","line":41,"character":19},{"__symbolic":"reference","module":"@schoolbelle/api/file","name":"FileService","line":42,"character":18},{"__symbolic":"reference","name":"string"}]}],"listReferences":[{"__symbolic":"method"}],"deleteReference":[{"__symbolic":"method"}],"listDetections":[{"__symbolic":"method"}],"insertRecognition":[{"__symbolic":"method"}],"nullifyRecognition":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵt":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"faces-translation","template":"<div hidden id=\"radio\"\ni18n-translation-text=\"@@questionTypeRadio\"\ntranslation-text=\"\"></div>\n\n\n\n\n<div hidden id=\"nullify-match-confirm\"\ni18n-translation-text\ntranslation-text=\"Are you sure this is not the face?\"></div>\n<div hidden id=\"nullify-match-success\"\ni18n-translation-text\ntranslation-text=\"Successfully updated\"></div>\n\n\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵu":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@schoolbelle/common/translation","name":"TranslationService","line":8,"character":42}]}]},"statics":{"ngInjectableDef":{}}},"ɵv":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":1,"character":32},"arguments":["VERSION_INFO"]},"ɵx":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":6,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵy"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":9,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":10,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":10,"character":17},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/datepicker","name":"BsDatepickerModule","line":11,"character":4},"member":"forRoot"}}],"exports":[{"__symbolic":"reference","name":"ɵy"}]}]}],"members":{}},"ɵy":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"app-expires-at","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":10,"character":18},"member":"OnPush"},"template":"<div class=\"input-group mr-1\">\n  <div class=\"input-group-prepend\">\n      <button class=\"btn\" \n      [ngClass]=\"expiresAtCtrl.invalid?'btn-danger':'btn-secondary'\"\n      type=\"button\" \n      (click)=\"expires_at_dp.toggle()\">\n        <i class=\"fa fa-calendar ml-1\"></i>\n      </button>                            \n  </div>\n  <input type=\"text\" \n  class=\"form-control\" \n  [class.is-invalid]=\"expiresAtCtrl.invalid\"\n  style=\"max-width:130px;\"\n  [formControl]=\"expiresAtCtrl\" \n  #expires_at_dp=\"bsDatepicker\" bsDatepicker [maxDate]=\"maxDate\">\n</div>                           \n","styles":[""]}]}],"members":{"maxDate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"ctrl":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3},"arguments":["ctrl"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":21,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"LOCALE_ID","line":21,"character":12}]}]],"parameters":[{"__symbolic":"reference","module":"ngx-bootstrap/datepicker","name":"BsLocaleService","line":19,"character":26},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":20,"character":18},{"__symbolic":"reference","name":"string"}]}],"createControls":[{"__symbolic":"method"}],"fixTimezoneOffset":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵz":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":6,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵba"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":9,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":10,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":10,"character":17},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/datepicker","name":"BsDatepickerModule","line":11,"character":4},"member":"forRoot"}}],"exports":[{"__symbolic":"reference","name":"ɵba"}]}]}],"members":{}},"ɵba":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"app-starts-at","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":10,"character":18},"member":"OnPush"},"template":"<div *ngIf=\"!disabled; else display\" class=\"input-group mr-1\">\n  <div class=\"input-group-prepend\">\n      <button class=\"btn\" \n      [ngClass]=\"startsAtCtrl.invalid?'btn-danger':'btn-secondary'\"\n      type=\"button\" \n      (click)=\"starts_at_dp && starts_at_dp.toggle()\">\n        <i class=\"fa fa-calendar ml-1\"></i>\n      </button>                            \n  </div>\n  <input type=\"text\" \n  class=\"form-control\" \n  [class.is-invalid]=\"startsAtCtrl.invalid\"\n  style=\"max-width:130px;\"\n  [formControl]=\"startsAtCtrl\" \n  #starts_at_dp=\"bsDatepicker\" bsDatepicker [maxDate]=\"maxDate\">\n</div>                           \n<ng-template #display>\n  <div class=\"form-control border-0 text-center user-select-none\">\n    {{startsAtCtrl.value | date: 'yy-MM-dd'}}\n  </div>  \n</ng-template>","styles":[""]}]}],"members":{"ctrl":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3},"arguments":["ctrl"]}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":22,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"LOCALE_ID","line":22,"character":12}]}]],"parameters":[{"__symbolic":"reference","module":"ngx-bootstrap/datepicker","name":"BsLocaleService","line":20,"character":26},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":21,"character":18},{"__symbolic":"reference","name":"string"}]}],"createControls":[{"__symbolic":"method"}],"fixTimezoneOffset":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵbb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":8,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵbc"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":11,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":12,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":12,"character":17},{"__symbolic":"reference","name":"ɵbd"},{"__symbolic":"reference","module":"@schoolbelle/common/table","name":"EventSpyModule","line":14,"character":4}],"exports":[{"__symbolic":"reference","name":"ɵbc"}]}]}],"members":{}},"ɵbc":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@schoolbelle/common/table","name":"RowComponent","line":10,"character":46},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"[mailmerge-header]","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":8,"character":18},"member":"OnPush"},"template":"<ng-template ngFor let-cell \n[ngForOf]=\"row.cells\"\nlet-x=\"index\" \n[ngForTrackBy]=\"trackById\"\n>\n  <ng-container *ngIf=\"!cell.col.hidden\">\n      <!-- <th class=\"cursor-pointer user-select-none\" header-cell [cell]=\"cell\">{{cell.cord}}</th> -->\n      <th *ngIf=\"x <= 3; else editable\" class=\"table-secondary user-select-none\" header-cell [cell]=\"cell\" [cell-event-spy]=\"cell\">\n        {{cell.val}}\n      </th>\n      <ng-template #editable>\n        <th\n        header-cell \n        [cell]=\"cell\" [tableForm]=\"tableForm\" [edit]=\"true\" [cell-event-spy]=\"cell\"></th>        \n      </ng-template>\n  </ng-container>\n</ng-template>\n\n  \n  \n  <!-- <th class=\"align-middle\" style=\"cursor:not-allowed;\" *ngFor=\"let searchType of searchTypes\" [ngSwitch]=\"searchType\">\n    <ng-container *ngSwitchCase=\"'class'\" i18n>Class</ng-container>\n    <ng-container *ngSwitchCase=\"'type'\" i18n>Type</ng-container>\n    <ng-container *ngSwitchCase=\"'name'\" i18n>Name</ng-container>\n    <ng-container *ngSwitchCase=\"'phone-number'\" i18n>PhoneNumber</ng-container>\n    <ng-container *ngSwitchDefault> - </ng-container>\n  </th> \n  <th \n  header-cell \n  [cell]=\"cell\" \n  [tableForm]=\"tableForm\" \n  [searchTypes]=\"searchTypes\"\n  *ngFor=\"let cell of row.cells.slice(4); trackBy:trackById\"></th> -->\n","styles":["th{height:42px;border-bottom-width:1px!important}"]}]}],"members":{}},"ɵbd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":8,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵbe"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":11,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":12,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":12,"character":17},{"__symbolic":"reference","module":"@schoolbelle/common/no-duplicate","name":"NoDuplicateModule","line":13,"character":4},{"__symbolic":"reference","name":"ɵbf"}],"exports":[{"__symbolic":"reference","name":"ɵbe"}]}]}],"members":{}},"ɵbe":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@schoolbelle/common/table","name":"RegularCellComponent","line":10,"character":50},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"[header-cell]","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":8,"character":18},"member":"OnPush"},"template":"<input *ngIf=\"showDetails; else display\" [formControl]=\"cellCtrl\"\n  (focus)=\"onFocus()\"\n  (blur)=\"onBlur()\"\n  class=\"form-control form-control-sm text-center border-0 rounded-0 bg-transparent font-weight-bold\" \n  [restricted]=\"restricted_words\" \n  no-duplicate \n  required>\n  <ng-template #display>\n    <div tabindex=\"0\" (focus)=\"onTab()\" class=\"d-flex align-items-center justify-content-center form-control-sm user-select-none\">\n        {{cell?.val}}\n    </div>\n</ng-template>  \n","styles":[""]}]}],"members":{}},"ɵbf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":3,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵbg"}],"exports":[{"__symbolic":"reference","name":"ɵbg"}]}]}],"members":{}},"ɵbg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":3,"character":1},"arguments":[{"selector":"[restricted][formControlName],[restricted][formControl],[restricted][ngModel]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS","line":8,"character":15},"useExisting":{"__symbolic":"reference","name":"ɵbg"},"multi":true}]}]}],"members":{"restricted":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}]}},"ɵbh":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵbi"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":8,"character":4}],"exports":[{"__symbolic":"reference","name":"ɵbi"}]}]}],"members":{}},"ɵbi":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"app-row-focus-box","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":7,"character":18},"member":"OnPush"},"template":"<div id=\"scroll\">\n  <div \n  [style.height]=\"childHeight + 6 + 'px'\" \n  [style.top]=\"index * childHeight + 'px'\"\n  class=\"border border-warning\"\n  style=\"width:100%; left:0px; z-index:3; border-width:4px!important;pointer-events: none;position:absolute;\"></div>\n  <div id=\"height-dummy\"></div>\n</div>\n<div #content>\n  <ng-content></ng-content>\n</div>\n\n","styles":["#scroll{position:absolute;left:-3px;top:-3px;height:calc(100% + 6px);width:calc(100% + 6px);overflow:hidden;pointer-events:none}"]}]}],"members":{"content":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":12,"character":3},"arguments":["content"]}]}],"scrollContainerQuery":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3},"arguments":["scrollContainer"]}]}],"y":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"childHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"index":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"refreshScrollTop":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":40,"character":18}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"setScrollContainer":[{"__symbolic":"method"}],"watchScroll":[{"__symbolic":"method"}],"resizeHeight":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}]}}},"origins":{"FooterModule":"./lib/footer/footer.module","FooterComponent":"./lib/footer/footer.component","AgreementShowComponent":"./lib/footer/modals/agreement-show/agreement-show.component","AgreementShowModule":"./lib/footer/modals/agreement-show/agreement-show.module","AgreementShowModalService":"./lib/footer/modals/agreement-show/agreement-show.service","MemberStatusBadgeModule":"./lib/member-status-badge/member-status-badge.module","MemberStatusBadgeComponent":"./lib/member-status-badge/member-status-badge.component","GroupTabComponent":"./lib/subgroup-tabs/group-tab.component","SubgroupTabsComponent":"./lib/subgroup-tabs/subgroup-tabs.component","SubgroupTabsModule":"./lib/subgroup-tabs/subgroup-tabs.module","TranslationEditorModule":"./lib/translation-editor/translation-editor.module","TranslationEditorComponentValueAccessor":"./lib/translation-editor/translation-editor.component","TranslationEditorComponent":"./lib/translation-editor/translation-editor.component","TranslationViewerModule":"./lib/translation-viewer/translation-viewer.module","TranslationViewerComponent":"./lib/translation-viewer/translation-viewer.component","languages":"./lib/translation-dropdown/translation-dropdown.component","TranslationDropdownComponent":"./lib/translation-dropdown/translation-dropdown.component","TranslationDropdownModule":"./lib/translation-dropdown/translation-dropdown.module","TextEditorModule":"./lib/text-editor/text-editor.module","TextEditorComponentValueAccessor":"./lib/text-editor/text-editor.component","TextEditorComponent":"./lib/text-editor/text-editor.component","TextEditorService":"./lib/text-editor/text-editor.service","TextViewerComponent":"./lib/text-viewer/text-viewer.component","TextViewerModule":"./lib/text-viewer/text-viewer.module","MailmergedPipe":"./lib/text-viewer/mailmerged.pipe","LetterSimplifiedTargetTextComponent":"./lib/letter-simplified-target-text/letter-simplified-target-text.component","LetterSimplifiedTargetTextModule":"./lib/letter-simplified-target-text/letter-simplified-target-text.module","LetterWriteProfileComponent":"./lib/letter-write-profile/letter-write-profile.component","LetterWriteProfileModule":"./lib/letter-write-profile/letter-write-profile.module","LetterWriteFileListComponent":"./lib/letter-write-file-list/letter-write-file-list.component","LetterWriteFileListModule":"./lib/letter-write-file-list/letter-write-file-list.module","LetterWriteFileListFileNameTextComponent":"./lib/letter-write-file-list/file-name-text/file-name-text.component","LetterWriteFileListFileNameTextModule":"./lib/letter-write-file-list/file-name-text/file-name-text.module","LetterWriteFileListFileRowComponent":"./lib/letter-write-file-list/file-row/file-row.component","LetterWriteFileListFileRowModule":"./lib/letter-write-file-list/file-row/file-row.module","LetterWriteFileListPreviewComponent":"./lib/letter-write-file-list/preview/preview.component","LetterWriteFileListPreviewModule":"./lib/letter-write-file-list/preview/preview.module","AttatchmentLimits":"./lib/letter-write/letter-write.component","DEFAULT_ATTACHMENT_LIMITS":"./lib/letter-write/letter-write.component","AttachmentLimitError":"./lib/letter-write/letter-write.component","LetterWriteAbstractComponent":"./lib/letter-write/letter-write.component","LetterWriteAbstractModule":"./lib/letter-write/letter-write.module","AbstractLetterWriteResolve":"./lib/letter-write/letter-write.resolve","LetterTracker":"./lib/letter-write/letter-tracker","LetterMetadataComponent":"./lib/letter-metadata/letter-metadata.component","LetterMetadataModule":"./lib/letter-metadata/letter-metadata.module","LetterTagsModule":"./lib/letter-tags/letter-tags.module","LetterTagsComponent":"./lib/letter-tags/letter-tags.component","LetterItemComponent":"./lib/letter-item/letter-item.component","LetterItemModule":"./lib/letter-item/letter-item.module","LetterListQuries":"./lib/letter-list/letter-list.component","quriesDefault":"./lib/letter-list/letter-list.component","LetterListComponent":"./lib/letter-list/letter-list.component","LetterListModule":"./lib/letter-list/letter-list.module","LetterFilelistComponent":"./lib/letter-filelist/letter-filelist.component","LetterFilelistModule":"./lib/letter-filelist/letter-filelist.module","Gallery":"./lib/gallery-core/lib/services/gallery.service","GalleryRef":"./lib/gallery-core/lib/services/gallery-ref","GalleryComponent":"./lib/gallery-core/lib/components/gallery.component","ImageItem":"./lib/gallery-core/lib/components/templates/items.model","VideoItem":"./lib/gallery-core/lib/components/templates/items.model","IframeItem":"./lib/gallery-core/lib/components/templates/items.model","YoutubeItem":"./lib/gallery-core/lib/components/templates/items.model","GalleryIframeComponent":"./lib/gallery-core/lib/components/templates/gallery-iframe.component","GalleryImageComponent":"./lib/gallery-core/lib/components/templates/gallery-image.component","GalleryVideoComponent":"./lib/gallery-core/lib/components/templates/gallery-video.component","GALLERY_CONFIG":"./lib/gallery-core/lib/models/config.model","GalleryConfig":"./lib/gallery-core/lib/models/config.model","GalleryState":"./lib/gallery-core/lib/models/gallery.model","GalleryItem":"./lib/gallery-core/lib/models/gallery.model","GalleryError":"./lib/gallery-core/lib/models/gallery.model","GalleryAction":"./lib/gallery-core/lib/models/constants","ImageSize":"./lib/gallery-core/lib/models/constants","LoadingStrategy":"./lib/gallery-core/lib/models/constants","ThumbnailsPosition":"./lib/gallery-core/lib/models/constants","ImageLoaderMode":"./lib/gallery-core/lib/models/constants","DotsPosition":"./lib/gallery-core/lib/models/constants","CounterPosition":"./lib/gallery-core/lib/models/constants","ThumbnailsMode":"./lib/gallery-core/lib/models/constants","SlidingDirection":"./lib/gallery-core/lib/models/constants","GalleryItemType":"./lib/gallery-core/lib/models/constants","GalleryModule":"./lib/gallery-core/lib/gallery.module","MediaBrowserModule":"./lib/media-browser/media-browser.module","MediaBrowserComponent":"./lib/media-browser/media-browser.component","StreamableVideoItem":"./lib/media-browser/media-browser.component","AudioItem":"./lib/media-browser/media-browser.component","LetterNewBadgeComponent":"./lib/letter-new-badge/letter-new-badge.component","LetterNewBadgeModule":"./lib/letter-new-badge/letter-new-badge.module","MailmergeAdminViewerComponent":"./lib/letter-content/mailmerge-admin-viewer/mailmerge-admin-viewer.component","MailmergeAdminViewerModule":"./lib/letter-content/mailmerge-admin-viewer/mailmerge-admin-viewer.module","MailmergeNonadminViewerComponent":"./lib/letter-content/mailmerge-nonadmin-viewer/mailmerge-nonadmin-viewer.component","MailmergeNonadminViewerModule":"./lib/letter-content/mailmerge-nonadmin-viewer/mailmerge-nonadmin-viewer.module","LetterContentComponent":"./lib/letter-content/letter-content.component","LetterContentModule":"./lib/letter-content/letter-content.module","LetterSurveyButtonComponent":"./lib/letter-survey-button/letter-survey-button.component","LetterSurveyButtonModule":"./lib/letter-survey-button/letter-survey-button.module","LetterSurveyNewBadgeComponent":"./lib/letter-survey-new-badge/letter-survey-new-badge.component","LetterSurveyNewBadgeModule":"./lib/letter-survey-new-badge/letter-survey-new-badge.module","AbstractNotificationListComponent":"./lib/notification-list/notification-list.component","VersionWithChangeLogComponent":"./lib/version-with-change-log/version-with-change-log.component","VersionWithChangeLogModule":"./lib/version-with-change-log/version-with-change-log.module","DatetimePickerModule":"./lib/datetime-picker/datetime-picker.module","DatetimePickerComponent":"./lib/datetime-picker/datetime-picker.component","DatePickerModule":"./lib/date-picker/date-picker.module","DatePickerComponent":"./lib/date-picker/date-picker.component","ProductParams":"./lib/place-order/select-abstract/select-abstract.component","SelectAbstractComponent":"./lib/place-order/select-abstract/select-abstract.component","SelectAbstractModule":"./lib/place-order/select-abstract/select-abstract.module","SelectLicenseComponent":"./lib/place-order/select-license/select-license.component","SelectLicenseModule":"./lib/place-order/select-license/select-license.module","SelectCrawlComponent":"./lib/place-order/select-crawl/select-crawl.component","SelectCrawlModule":"./lib/place-order/select-crawl/select-crawl.module","SelectSmsComponent":"./lib/place-order/select-sms/select-sms.component","SelectSmsModule":"./lib/place-order/select-sms/select-sms.module","AccountantInfoModule":"./lib/place-order/accountant-info/accountant-info.module","AccountantInfoComponent":"./lib/place-order/accountant-info/accountant-info.component","CommentComponent":"./lib/place-order/comment/comment.component","CommentModule":"./lib/place-order/comment/comment.module","CostDetailsModule":"./lib/place-order/cost-details/cost-details.module","CostDetailsComponent":"./lib/place-order/cost-details/cost-details.component","CostTableModule":"./lib/place-order/cost-table/cost-table.module","CostTableComponent":"./lib/place-order/cost-table/cost-table.component","EffectiveRangeComponent":"./lib/place-order/effective-range/effective-range.component","EffectiveRangeModule":"./lib/place-order/effective-range/effective-range.module","GroupInfoComponent":"./lib/place-order/group-info/group-info.component","GroupInfoModule":"./lib/place-order/group-info/group-info.module","PaymentTypeComponent":"./lib/place-order/payment-type/payment-type.component","PaymentTypeModule":"./lib/place-order/payment-type/payment-type.module","QuoteComponent":"./lib/place-order/quote/quote.component","QuoteModule":"./lib/place-order/quote/quote.module","ToExistingGroupComponent":"./lib/place-order/to-existing-group/to-existing-group.component","ToExistingGroupModule":"./lib/place-order/to-existing-group/to-existing-group.module","UserInfoComponent":"./lib/place-order/user-info/user-info.component","UserInfoModule":"./lib/place-order/user-info/user-info.module","VirtualAccountService":"./lib/place-order/virtual-account/virtual-account.service","stateChangeAnimation":"./lib/place-order/virtual-account/virtual-account.component","VirtualAccountComponent":"./lib/place-order/virtual-account/virtual-account.component","VirtualAccountModule":"./lib/place-order/virtual-account/virtual-account.module","PlaceOrderComponent":"./lib/place-order/place-order.component","PlaceOrderModule":"./lib/place-order/place-order.module","PurchaseModel":"./lib/place-order/purchase-model","MailmergeTableComponent":"./lib/mailmerge-table/mailmerge-table.component","MailmergeTableModule":"./lib/mailmerge-table/mailmerge-table.module","PossibleSearchTypes":"./lib/mailmerge-table/mailmerge-table.service","possible_search_type_list":"./lib/mailmerge-table/mailmerge-table.service","MailmergeTableService":"./lib/mailmerge-table/mailmerge-table.service","MailmergeRowComponent":"./lib/mailmerge-table/mailmerge-row/mailmerge-row.component","MailmergeRowModule":"./lib/mailmerge-table/mailmerge-row/mailmerge-row.module","PhoneNumberCellComponent":"./lib/mailmerge-table/phone-number-cell/phone-number-cell.component","PhoneNumberCellModule":"./lib/mailmerge-table/phone-number-cell/phone-number-cell.module","MailmergeRegularCellComponent":"./lib/mailmerge-table/regular-cell/regular-cell.component","MailmergeRegularCellModule":"./lib/mailmerge-table/regular-cell/regular-cell.module","MembersearchCellComponent":"./lib/mailmerge-table/membersearch-cell/membersearch-cell.component","MembersearchCellModule":"./lib/mailmerge-table/membersearch-cell/membersearch-cell.module","TypeaheadIeFixDirective":"./lib/typeahead-ie-fix/typeahead-ie-fix.directive","TypeaheadIeFixModule":"./lib/typeahead-ie-fix/typeahead-ie-fix.module","ProfileImgComponent":"./lib/profile-img/profile-img.component","ProfileImgModule":"./lib/profile-img/profile-img.module","ɵa":"./lib/footer/modals/modals.component","ɵb":"./lib/translation-dropdown/iso-lang-list","ɵc":"./lib/translation-viewer","ɵd":"./lib/text-viewer/table-scroll.pipe","ɵe":"./lib/text-viewer/image-resized.pipe","ɵf":"./lib/letter-write-profile/author-name.service","ɵg":"./lib/gallery-core/lib/components/gallery-nav.component","ɵh":"./lib/gallery-core/lib/components/gallery-dots.component","ɵi":"./lib/gallery-core/lib/components/gallery-core.component","ɵj":"./lib/gallery-core/lib/components/gallery-slider.component","ɵk":"./lib/gallery-core/lib/components/gallery-counter.component","ɵl":"./lib/gallery-core/lib/components/gallery-thumbs.component","ɵm":"./lib/gallery-core/lib/components/gallery-thumb.component","ɵn":"./lib/gallery-core/lib/components/gallery-item.component","ɵo":"./lib/gallery-core/lib/directives/lazy-image","ɵp":"./lib/gallery-core/lib/directives/tap-click","ɵq":"./lib/media-browser/faces/faces.module","ɵr":"./lib/media-browser/faces/faces.component","ɵs":"./lib/media-browser/faces/face.service","ɵt":"./lib/media-browser/faces/faces-translation.component","ɵu":"./lib/media-browser/faces/faces-translation.service","ɵv":"./lib/version-with-change-log/version-with-change-log.injections","ɵw":"./lib/place-order/select-abstract","ɵx":"./lib/place-order/effective-range/expires-at/expires-at.module","ɵy":"./lib/place-order/effective-range/expires-at/expires-at.component","ɵz":"./lib/place-order/effective-range/starts-at/starts-at.module","ɵba":"./lib/place-order/effective-range/starts-at/starts-at.component","ɵbb":"./lib/mailmerge-table/mailmerge-header/mailmerge-header.module","ɵbc":"./lib/mailmerge-table/mailmerge-header/mailmerge-header.component","ɵbd":"./lib/mailmerge-table/header-cell/header-cell.module","ɵbe":"./lib/mailmerge-table/header-cell/header-cell.component","ɵbf":"./lib/mailmerge-table/header-cell/restricted/restricted.module","ɵbg":"./lib/mailmerge-table/header-cell/restricted/restricted.directive","ɵbh":"./lib/mailmerge-table/row-focus-box/row-focus-box.module","ɵbi":"./lib/mailmerge-table/row-focus-box/row-focus-box.component"},"importAs":"@schoolbelle/shared/components"}