{"version":3,"file":"projects_desktop_src_app_root_root-main_root-main_module_ts.js","mappings":"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45CzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAGA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAGA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA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g1E,0BAArB,CAAgDF,OAAhD,CAAnB;AACH;;AAED,YAAID,gBAAgB,IAAI,IAAxB,EAA8B;AAC1B;AACA,eAAK95D,kBAAL,CAAwBw1C,yBAAxB,CAAkD70D,oFAAlD;AAEAm5E,0BAAgB,CACXhrE,IADL,CAEQ8nD,0DAAS,CAAC,MAAMj6B,+CAAQ,CACpB,KAAK13B,eAAL,CAAqB00E,+BAArB,CAAqD,EAArD,CADoB,EAEpB,KAAK10E,eAAL,CAAqB40E,kCAArB,CAAwD,EAAxD,CAFoB,EAGpB,KAAK50E,eAAL,CAAqB4jE,wBAArB,EAHoB,EAIpB,KAAK5jE,eAAL,CAAqB6jE,2BAArB,EAJoB,CAAf,CAFjB,EAQQlS,0DAAS,CAAC,MAAM,KAAKujB,kBAAZ,CARjB,EAUKlrE,SAVL,CAUe;AACPqB,oBAAQ,EAAE,MAAK;AACX,mBAAK0P,kBAAL,CAAwB21C,0BAAxB,CAAmDh1D,oFAAnD,EADW,CAEX;;AACAguE,0BAAY,CAAC5F,QAAb,CAAsBI,UAAtB;AACH;AALM,WAVf;AAiBH;AACJ,OAvCD;AA2CAwF,kBAAY,CAACsI,SAAb,CAAuB,MAAK;AACxB,aAAKtC,yBAAL,GAAiC,IAAjC,CADwB,CAExB;AACH,OAHD;AAIH,KA/iByB,CAgjB1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;;AAEAyF,6BAAyB,CAAC/B,KAAD,EAAoCgC,QAApC,EAAiD;A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","sources":["./projects/desktop/src/app/root/root-main/child-content-complete-search/child-content-complete-search.component.ts","./projects/desktop/src/app/root/root-main/child-content-complete-search/child-content-complete-search.component.html","./projects/desktop/src/app/root/root-main/child-content-complete-search/child-content-complete-search.module.ts","./projects/desktop/src/app/root/root-main/child-content-complete-search/complete-search-result/complete-search-result.component.ts","./projects/desktop/src/app/root/root-main/child-content-complete-search/complete-search-result/complete-search-result.component.html","./projects/desktop/src/app/root/root-main/child-content-complete-search/complete-search-result/property-template.ts","./projects/desktop/src/app/root/root-main/child-content-complete-search/complete-search-result/search-condition.ts","./projects/desktop/src/app/root/root-main/child-content-complete-search/complete-search.service.ts","./projects/desktop/src/app/root/root-main/child-content-judgment-search/child-content-judgment-search.component.ts","./projects/desktop/src/app/root/root-main/child-content-judgment-search/child-content-judgment-search.component.html","./projects/desktop/src/app/root/root-main/child-content-judgment-search/child-content-judgment-search.module.ts","./projects/desktop/src/app/root/root-main/child-content-judgment-search/indictment-court-id-order.enum.ts","./projects/desktop/src/app/root/root-main/child-content-judgment-search/indictment-search.service.ts","./projects/desktop/src/app/root/root-main/child-content-judgment-search/judgment-condition/indictment-search-condition.ts","./projects/desktop/src/app/root/root-main/child-content-judgment-search/judgment-condition/judgment-condition-save.ts","./projects/desktop/src/app/root/root-main/child-content-judgment-search/judgment-condition/judgment-condition.component.ts","./projects/desktop/src/app/root/root-main/child-content-judgment-search/judgment-condition/judgment-condition.component.html","./projects/desktop/src/app/root/root-main/child-content-judgment-search/judgment-condition/judgment-search-condition.ts","./projects/desktop/src/app/root/root-main/child-content-judgment-search/judgment-result/counting-court.ts","./projects/desktop/src/app/root/root-main/child-content-judgment-search/judgment-result/judgment-result.component.ts","./projects/desktop/src/app/root/root-main/child-content-judgment-search/judgment-result/judgment-result.component.html","./projects/desktop/src/app/root/root-main/child-content-judicial-interpret-search/child-content-judicial-interpret-search.component.ts","./projects/desktop/src/app/root/root-main/child-content-judicial-interpret-search/child-content-judicial-interpret-search.component.html","./projects/desktop/src/app/root/root-main/child-content-judicial-interpret-search/child-content-judicial-interpret-search.module.ts","./projects/desktop/src/app/root/root-main/child-content-judicial-interpret-search/judicial-interpret-condition/judicial-interpret-condition.component.ts","./projects/desktop/src/app/root/root-main/child-content-judicial-interpret-search/judicial-interpret-condition/judicial-interpret-condition.component.html","./projects/desktop/src/app/root/root-main/child-content-judicial-interpret-search/judicial-interpret-condition/judicial-interpret-condition.ts","./projects/desktop/src/app/root/root-main/child-content-judicial-interpret-search/judicial-interpret-result/judicial-interpret-result.component.ts","./projects/desktop/src/app/root/root-main/child-content-judicial-interpret-search/judicial-interpret-result/judicial-interpret-result.component.html","./projects/desktop/src/app/root/root-main/child-content-law-rule-search/child-content-law-rule-search-routing.module.ts","./projects/desktop/src/app/root/root-main/child-content-law-rule-search/child-content-law-rule-search.component.ts","./projects/desktop/src/app/root/root-main/child-content-law-rule-search/child-content-law-rule-search.component.html","./projects/desktop/src/app/root/root-main/child-content-law-rule-search/child-content-law-rule-search.module.ts","./projects/desktop/src/app/root/root-main/child-content-law-rule-search/law-rule-search-condition.ts","./projects/desktop/src/app/root/root-main/child-content-law-rule-search/law-rule-search-filter-condition.ts","./projects/desktop/src/app/root/root-main/child-content-law-rule-search/law-rule-search-mode.enum.ts","./projects/desktop/src/app/root/root-main/child-content-news/child-content-news.component.ts","./projects/desktop/src/app/root/root-main/child-content-news/child-content-news.component.html","./projects/desktop/src/app/root/root-main/child-content-news/child-content-news.module.ts","./projects/desktop/src/app/root/root-main/child-content-recommend-friend/child-content-recommend-friend.component.ts","./projects/desktop/src/app/root/root-main/child-content-recommend-friend/child-content-recommend-friend.component.html","./projects/desktop/src/app/root/root-main/child-content-recommend-friend/child-content-recommend-friend.module.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/child-content-personal-storage-common.module.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/child-content-personal-storage.component.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/child-content-personal-storage.component.html","./projects/desktop/src/app/root/root-main/child-content-storage-personal/child-content-personal-storage.module.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/child-content-personal-storage.service.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/indictment-case.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/issue-add-request.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/issue-bluk-request.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/issue-delete-request.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/issue-edit-request.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/issue-link-summary-request.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/issue-order-request-data.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/issue-order-request.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/judgment.component.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/judgment.component.html","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/judgment.module.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/list-full/list-full.component.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/list-full/list-full.component.html","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/list-simple/list-simple.component.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/list-simple/list-simple.component.html","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/share.service.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judicial-interpret/judicial-interpret.component.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judicial-interpret/judicial-interpret.component.html","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judicial-interpret/judicial-interpret.module.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judicial-interpret/list-full/list-full.component.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judicial-interpret/list-full/list-full.component.html","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judicial-interpret/list-simple/list-simple.component.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judicial-interpret/list-simple/list-simple.component.html","./projects/desktop/src/app/root/root-main/child-content-storage-personal/law-rule/law-rule.component.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/law-rule/law-rule.component.html","./projects/desktop/src/app/root/root-main/child-content-storage-personal/law-rule/law-rule.module.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/law-rule/list-full/list-full.component.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/law-rule/list-full/list-full.component.html","./projects/desktop/src/app/root/root-main/child-content-storage-personal/law-rule/list-simple/list-simple.component.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/law-rule/list-simple/list-simple.component.html","./projects/desktop/src/app/root/root-main/child-content-storage-personal/law-rule/list/list.component.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/law-rule/list/list.component.html","./projects/desktop/src/app/root/root-main/child-content-storage-personal/storage-tab.ts","./projects/desktop/src/app/root/root-main/child-content-team-info-openpage/child-content-team-info-openpage.component.ts","./projects/desktop/src/app/root/root-main/child-content-team-info-openpage/child-content-team-info-openpage.component.html","./projects/desktop/src/app/root/root-main/child-content-team-info-openpage/child-content-team-info-openpage.module.ts","./projects/desktop/src/app/root/root-main/header-member/header-member.component.ts","./projects/desktop/src/app/root/root-main/header-member/header-member.component.html","./projects/desktop/src/app/root/root-main/header-member/header-member.module.ts","./projects/desktop/src/app/root/root-main/root-main-routing.module.ts","./projects/desktop/src/app/root/root-main/root-main.component.ts","./projects/desktop/src/app/root/root-main/root-main.component.html","./projects/desktop/src/app/root/root-main/root-main.module.ts","./projects/desktop/src/app/root/root-note-work-indictment/indictment-case.ts","./projects/lwlib/src/case-type/case-type.service.ts","./projects/lwlib/src/case-type/court-response.ts","./projects/lwlib/src/complete-search-popup/complete-search-popup-opener.service.ts","./projects/lwlib/src/complete-search-tip-popup/complete-search-tip-popup-opener.service.ts","./projects/lwlib/src/compose-case-word/compose-case-word.component.ts","./projects/lwlib/src/compose-case-word/compose-case-word.component.html","./projects/lwlib/src/compose-case-word/compose-case-word.module.ts","./projects/lwlib/src/edit-category-popup/edit-category-popup-opener.service.ts","./projects/lwlib/src/edit-category-popup/edit-category-popup-option.ts","./projects/lwlib/src/filter-types/filter-types.component.ts","./projects/lwlib/src/filter-types/filter-types.component.html","./projects/lwlib/src/keyword-searcher-compose-search/keyword-searcher-compose-search.component.ts","./projects/lwlib/src/keyword-searcher-compose-search/keyword-searcher-compose-search.component.html","./projects/lwlib/src/keyword-searcher-compose-search/keyword-searcher-compose-search.module.ts","./projects/lwlib/src/keyword-searcher/keyword-searcher-list-item.ts","./projects/lwlib/src/law-rule-fast-bag-popup/law-rule-fast-bag-opener.service.ts","./projects/lwlib/src/main-menu-member/main-menu-member.component.ts","./projects/lwlib/src/main-menu-member/main-menu-member.component.html","./projects/lwlib/src/main-menu-member/main-menu-member.module.ts","./projects/lwlib/src/recommend-member-popup/recommend-member-popup-opener.service.ts","./projects/lwlib/src/rename-popup/rename-popup-opener.service.ts","./projects/lwlib/src/right-call-menu/right-call-menu.component.ts","./projects/lwlib/src/right-call-menu/right-call-menu.component.html","./projects/lwlib/src/right-call-menu/right-call-menu.module.ts","./projects/lwlib/src/search-again-popup/search-again-popup.component.ts","./projects/lwlib/src/search-again-popup/search-again-popup.component.html","./projects/lwlib/src/search-again-popup/search-again-popup.module.ts","./projects/lwlib/src/storage-types/storage-types.component.ts","./projects/lwlib/src/storage-types/storage-types.component.html","./projects/lwlib/src/summary-list/summary-delete-request.ts","./projects/lwlib/src/summary-list/summary-list-order-request.ts","./node_modules/@angular/cdk/fesm2015/drag-drop.mjs"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-child-content-complete-search',\r\n templateUrl: './child-content-complete-search.component.html',\r\n styleUrls: ['./child-content-complete-search.component.scss']\r\n})\r\nexport class ChildContentCompleteSearchComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","
\r\n \r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ChildContentCompleteSearchComponent } from './child-content-complete-search.component';\r\nimport { CompleteSearchResultComponent } from './complete-search-result/complete-search-result.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { PipeHighlightModule } from 'projects/lwlib/src/pipe-highlight/pipe-highlight.module';\r\nimport { PageChangeModule } from 'projects/lwlib/src/page-change/page-change.module';\r\nimport { PreviewWindowModule } from 'projects/lwlib/src/preview-window/preview-window.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n\r\n PipeHighlightModule,\r\n PageChangeModule,\r\n PreviewWindowModule,\r\n ],\r\n declarations: [\r\n ChildContentCompleteSearchComponent,\r\n CompleteSearchResultComponent\r\n ],\r\n exports: [\r\n ChildContentCompleteSearchComponent\r\n ]\r\n})\r\nexport class ChildContentCompleteSearchModule { }\r\n","import { Component, OnInit, ViewChild, ElementRef, TemplateRef, HostListener, OnDestroy } from '@angular/core';\r\nimport { CompleteSearchService } from '../complete-search.service';\r\nimport { SearcherKeyword } from 'projects/lwlib/src/keyword-searcher/searcher-keyword';\r\nimport { JudgmentCourtId } from '../../child-content-judgment-search/judgment-condition/judgment-court-id.enum';\r\nimport { JudicialInterpretCourtId } from '../../child-content-judicial-interpret-search/judicial-interpret-condition/judicial-interpret-court-id.enum';\r\nimport { JudgmentSearchService } from '../../child-content-judgment-search/judgment-search.service';\r\nimport { JudicialInterpretSearchService } from '../../child-content-judicial-interpret-search/judicial-interpret-search.service';\r\nimport { JudgmentType } from '../../child-content-judgment-search/judgment-condition/judgment-type.enum';\r\nimport { JudicialInterpretType } from '../../child-content-storage-personal/judicial-interpret/judicial-interpret-type.enum';\r\nimport { CaseType } from 'projects/lwlib/src/personal-config-popup/personal-config-popup.service';\r\nimport { JudgmentTypeCourtBlock } from '../../child-content-judgment-search/judgment-condition/judgment-type-court-block';\r\nimport { JudicialInterpretCaseTypeCourtBlock } from '../../child-content-judicial-interpret-search/judicial-interpret-condition/judicial-interpret-case-type-court-block';\r\nimport { JudicialInterpretCaseType } from '../../child-content-judicial-interpret-search/judicial-interpret-condition/judicial-interpret-case-type.enum';\r\nimport { JudicialInterpretResultTypeButton } from '../../child-content-judicial-interpret-search/judicial-interpret-result/judicial-interpret-result-type-button';\r\nimport { JudicialInterpretSearchResultCaseType } from '../../child-content-judicial-interpret-search/judicial-interpret-result/judicial-interpret-search-result-case-type.enum';\r\nimport { JudgmentSearchResultType } from '../../child-content-judgment-search/judgment-result/judgment-search-result-type.enum';\r\nimport { JudgmentResultTypeButton } from '../../child-content-judgment-search/judgment-result/judgment-result-type-button';\r\nimport { CaseTypeService } from 'projects/lwlib/src/case-type/case-type.service';\r\nimport { Court } from 'projects/lwlib/src/case-type/court';\r\nimport { CourtType } from 'projects/lwlib/src/case-type/court-type';\r\nimport { CourtBlock } from 'projects/lwlib/src/case-type/court-block';\r\nimport { Observable, Subscriber, interval, from, of, EMPTY } from 'rxjs';\r\nimport { tap, takeWhile, map, mergeMap, skipWhile, filter, delay, concatMap, switchMap } from 'rxjs/operators';\r\nimport { PageChangeComponent } from 'projects/lwlib/src/page-change/page-change.component';\r\nimport { NotificationService } from 'projects/lwlib/src/notification/notification.service';\r\nimport { SearchCondition } from './search-condition';\r\nimport { JudgmentService } from '../../child-content-storage-personal/judgment/judgment.service';\r\nimport { JudicialInterpretService } from '../../child-content-storage-personal/judicial-interpret/judicial-interpret.service';\r\nimport { LawRuleService } from '../../child-content-storage-personal/law-rule/law-rule.service';\r\nimport { CaseTypeId } from 'projects/lwlib/src/case-type/case-type-id.enum';\r\nimport { CourtTypeId } from 'projects/lwlib/src/case-type/court-type-id.enum';\r\nimport { throwToolbarMixedModesError } from '@angular/material/toolbar';\r\nimport { JudgmentSearchCondition } from '../../child-content-judgment-search/judgment-condition/judgment-search-condition';\r\nimport { CourtResponse } from 'projects/lwlib/src/case-type/court-response';\r\nimport { CourtId } from 'projects/lwlib/src/case-type/court-id.enum';\r\nimport { Serializable } from 'projects/lwlib/src/serializable';\r\nimport { JudicialInterpretCondition } from '../../child-content-judicial-interpret-search/judicial-interpret-condition/judicial-interpret-condition';\r\n\r\nimport { SearcherKeywordKind } from 'projects/lwlib/src/keyword-searcher/searcher-keyword-kind';\r\nimport { LawRuleCase } from '../../child-content-storage-personal/law-rule/law-rule-case';\r\nimport { JudicialInterpretCase } from '../../child-content-storage-personal/judicial-interpret/judicial-interpret-case';\r\nimport { JudgmentCase } from '../../child-content-storage-personal/judgment/judgment-case';\r\nimport { JudicialInterpretCaseList } from '../../child-content-storage-personal/judicial-interpret/judicial-interpret-case-list';\r\nimport { JudgmentCaseList } from '../../child-content-storage-personal/judgment/judgment-case-list';\r\nimport { AppCommonService } from 'projects/desktop/src/app/app-common.service';\r\nimport { JudgmentProperty } from '../../child-content-storage-personal/judgment/judgment-property';\r\nimport { PropertyId } from 'projects/lwlib/src/case-type/property-id.enum';\r\nimport { PropertyTemplate } from './property-template';\r\nimport { PreviewWindowComponent } from 'projects/lwlib/src/preview-window/preview-window.component';\r\nimport { PreviewWindowType } from 'projects/lwlib/src/preview-window/preview-window-type';\r\nimport { LawRuleSearchCondition } from '../../child-content-law-rule-search/law-rule-search-condition';\r\nimport { LawRuleType } from '../../child-content-storage-personal/law-rule/law-rule-type.enum';\r\nimport { LawRuleCaseList } from '../../child-content-storage-personal/law-rule/law-rule-case-list';\r\nimport { ComposeType } from 'projects/lwlib/src/compose-search-popup/compose-type';\r\nimport { CourtBlockId } from 'projects/lwlib/src/case-type/court-block-id.enum';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { LogPageId } from 'projects/lwlib/src/log-page/log-page-id.enum';\r\nimport { AppConfigService } from 'projects/desktop/src/app/app-config.service';\r\nimport { BroadcastEventListener } from 'ng2-signalr';\r\nimport { IndictmentCase } from '../../child-content-storage-personal/judgment/indictment-case';\r\nimport { IndictmentSearchService } from '../../child-content-judgment-search/indictment-search.service';\r\nimport { IndictmentCaseList } from '../../child-content-judgment-search/indictment-case-list';\r\nimport { IndictmentSearchCondition } from '../../child-content-judgment-search/judgment-condition/indictment-search-condition';\r\nimport { IndictmentCourtId } from '../../child-content-judgment-search/judgment-condition/indictment-court-id.enum';\r\nimport { InitService } from 'projects/lwlib/src/init/init.service';\r\nimport { ActionName } from 'projects/lwlib/src/action-name';\r\nimport { LwExt } from 'projects/lwlib/src/lib/lw-ext';\r\nimport { MaterialHelper } from 'projects/lwlib/src/material-helper';\r\nimport { PrivateCasePopupComponent } from 'projects/lwlib/src/private-case-popup/private-case-popup.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { JudicialInterpretCourtGroupId } from 'projects/lwlib/src/judicial-interpret/judicial-interpret-court';\r\n\r\n@Component({\r\n selector: 'app-complete-search-result',\r\n templateUrl: './complete-search-result.component.html',\r\n styleUrls: ['./complete-search-result.component.scss']\r\n})\r\nexport class CompleteSearchResultComponent implements OnInit, OnDestroy {\r\n\r\n constructor(\r\n public appCommonService: AppCommonService,\r\n private completeSearchService: CompleteSearchService,\r\n private judgmentSearchService: JudgmentSearchService,\r\n private judicialInterpretSearchService: JudicialInterpretSearchService,\r\n private indictmentSearchService: IndictmentSearchService,\r\n\r\n private caseTypeService: CaseTypeService,\r\n\r\n private notificationService: NotificationService,\r\n\r\n private judicialInterpretService: JudicialInterpretService,\r\n private lawRuleService: LawRuleService,\r\n public judgmentService: JudgmentService,\r\n public service: AppService,\r\n private configService: AppConfigService,\r\n private initService: InitService,\r\n private matDialog: MatDialog,\r\n ) {\r\n\r\n\r\n // //設定按鈕清單\r\n // this.typeButtonList = this.getTypeButtonList();\r\n // //設定按鈕dict\r\n // this.fullTypeButton = {} as any;\r\n // this.typeButtonList.forEach(b => {\r\n // this.fullTypeButton[b.fullTypeIdString] = b;\r\n // });\r\n }\r\n // 預覽視窗\r\n @ViewChild('previewWindow', { static: true }) previewWindowComponent: PreviewWindowComponent;\r\n // 案件樣板\r\n @ViewChild('interpretCollege', { static: true }) interpretCollegeTemplate: TemplateRef; // 司法院\r\n @ViewChild('interpretBigJudge', { static: true }) interpretBigJudgeTemplate: TemplateRef; // 大法官解釋\r\n @ViewChild('bigJudgeReject', { static: true }) bigJudgeRejectTemplate: TemplateRef; // 大法官不受理\r\n @ViewChild('xfCourt', { static: true }) xfCourtTemplate: TemplateRef; // 憲法法庭\r\n @ViewChild('judgmentPrecedent', { static: true }) judgmentPrecedentTemplate: TemplateRef; // 判例\r\n @ViewChild('featuredJudgment', { static: true }) featuredJudgmentTemplate: TemplateRef; // 精選裁判\r\n @ViewChild('featuredJudgmentGist', { static: true }) featuredJudgmentGistTemplate: TemplateRef; // 最高法院裁判、價值裁判\r\n @ViewChild('resolution', { static: true }) resolutionTemplate: TemplateRef; // 決議\r\n @ViewChild('discipline', { static: true }) disciplineTemplate: TemplateRef; // 公懲\r\n @ViewChild('seminar', { static: true }) seminarTemplate: TemplateRef; // 座談會\r\n @ViewChild('execute', { static: true }) executeTemplate: TemplateRef; // 行政函釋\r\n @ViewChild('lawRule', { static: true }) lawRuleTemplate: TemplateRef; // 法規\r\n @ViewChild('judgment', { static: true }) judgmentTemplate: TemplateRef; // 裁判資料\r\n @ViewChild('indictment', { static: true }) indictmentTemplate: TemplateRef; // 起訴書\r\n @ViewChild('grand', { static: true }) grandTemplate: TemplateRef; // 起訴書\r\n\r\n // 換頁器\r\n @ViewChild('pageChange', { static: true }) pageChange: PageChangeComponent;\r\n // 筆記清單\r\n @ViewChild('noteListElementRef') noteListElementRef: ElementRef;\r\n // 法院清單\r\n @ViewChild('courtListElementRef', { static: true }) courtListElementRef: ElementRef;\r\n\r\n /** 樣板對照 */\r\n courtTempalte: { [key in keyof typeof PropertyId]: PropertyTemplate } = {\r\n NONE: null,\r\n Judgment_Judgment: PropertyTemplate.create('judgment-judgment', 'judgment', () => this.judgmentTemplate),\r\n Judgment_Decision: PropertyTemplate.create('judgment-decision', 'judgment', () => this.judgmentTemplate),\r\n Judgment_Other: PropertyTemplate.create('judgment-other', 'judgment', () => this.judgmentTemplate),\r\n LawRule_LawRule: PropertyTemplate.create('law-rule-law-rule', 'law-rule', () => this.judgmentTemplate),\r\n\r\n\r\n JudicialInterpret_Unified: PropertyTemplate.create('judicial-interpret-unified', 'interpret-big-judge', () => this.interpretCollegeTemplate),\r\n JudicialInterpret_Solve: PropertyTemplate.create('judicial-interpret-solve', 'interpret-big-judge', () => this.interpretCollegeTemplate),\r\n JudicialInterpret_Yuan: PropertyTemplate.create('judicial-interpret-yuan', 'interpret-big-judge', () => this.interpretCollegeTemplate),\r\n JudicialInterpret_YuanSolve: PropertyTemplate.create('judicial-interpret-yuan-solve', 'interpret-big-judge', () => this.interpretCollegeTemplate),\r\n JudicialInterpret_Explain: PropertyTemplate.create('judicial-interpret-explain', 'interpret-big-judge', () => this.interpretBigJudgeTemplate),\r\n JudicialInterpret_Reject: PropertyTemplate.create('judicial-interpret-reject', 'big-judge-reject', () => this.bigJudgeRejectTemplate),\r\n JudicialInterpret_XF38: PropertyTemplate.create('judicial-interpret-xf', 'xf', () => this.xfCourtTemplate),\r\n JudicialInterpret_XF39: PropertyTemplate.create('judicial-interpret-xf', 'xf', () => this.xfCourtTemplate),\r\n JudicialInterpret_XF40: PropertyTemplate.create('judicial-interpret-xf', 'xf', () => this.xfCourtTemplate),\r\n JudicialInterpret_Precedent: PropertyTemplate.create('judicial-interpret-precedent', 'judgment-precedent', () => this.judgmentPrecedentTemplate),\r\n JudicialInterpret_Judgment: PropertyTemplate.create('judicial-interpret-judgment', 'featured-judgment', () => this.featuredJudgmentTemplate),\r\n JudicialInterpret_JudgmentSeuperme: PropertyTemplate.create('judicial-interpret-judgment-supereme', 'featured-judgment-gist', () => this.featuredJudgmentGistTemplate),\r\n JudicialInterpret_Reference: PropertyTemplate.create('judicial-interpret-reference', 'featured-judgment-gist', () => this.featuredJudgmentGistTemplate),\r\n JudicialInterpret_Resolution: PropertyTemplate.create('judicial-interpret-resolution', 'resolution', () => this.resolutionTemplate),\r\n JudicialInterpret_Discipline: PropertyTemplate.create('judicial-interpret-discipline', 'featured-judgment', () => this.disciplineTemplate),\r\n JudicialInterpret_Seminar: PropertyTemplate.create('judicial-interpret-seminar', 'seminar', () => this.seminarTemplate),\r\n JudicialInterpret_Execute: PropertyTemplate.create('judicial-interpret-execute', 'execute', () => this.executeTemplate),\r\n\r\n\r\n Indictment_Indictment: PropertyTemplate.create('indictment-indictment', 'indictment', () => this.indictmentTemplate),\r\n Indictment_AppendIndictment: PropertyTemplate.create('indictment-append-indictment', 'indictment', () => this.indictmentTemplate),\r\n Indictment_MergeIntention: PropertyTemplate.create('indictment-merge-intention', 'indictment', () => this.indictmentTemplate),\r\n Indictment_SimpleJudgment: PropertyTemplate.create('indictment-simple-judgment', 'indictment', () => this.indictmentTemplate),\r\n Indictment_Other: PropertyTemplate.create('indictment-other', 'indictment', () => this.indictmentTemplate),\r\n JudicialInterpret_Grand: PropertyTemplate.create('judicial-interpret-grand', 'grand', () => this.grandTemplate),\r\n };\r\n /** 法規狀態對照:現行、廢止、停止 */\r\n lawRule_CourtId_Status: { [key: string]: LawRuleType } = {\r\n LawRule_Now_Name: LawRuleType.Current,\r\n LawRule_Repeal_Name: LawRuleType.Repeal,\r\n LawRule_Stop_Name: LawRuleType.Stop,\r\n LawRule_Now_Fulltext: LawRuleType.Current,\r\n LawRule_Repeal_Fulltext: LawRuleType.Repeal,\r\n LawRule_Stop_Fulltext: LawRuleType.Stop,\r\n };\r\n\r\n /** 全法院種類按鈕 */\r\n // courtTypes: { [key in keyof typeof CourtTypeId]: CourtType };\r\n courtTypes: { [key: string]: CourtType } = {};\r\n courtTypeList: CourtType[] = [];\r\n\r\n /** 區塊 */\r\n courtBlocks = [];\r\n\r\n /** 全法院 */\r\n courts: { [key: string]: Court } = {};\r\n courtList: Court[] = [];\r\n\r\n countTasks = [];\r\n forceStop: boolean = false;\r\n\r\n executeTags = {\r\n '總統府': [\r\n '秘書長', '人事處', '主計處', '侍衛室', '政風處',\r\n '第一局', '第二局', '第三局', '機要室',\r\n '公共事務室', '法規委員會',\r\n ],\r\n '行政院': [\r\n '行政院', '秘書處', '人事處', '政風處', '主計處', '資訊處',\r\n '公共關係處', '法規會', '性別平等處', '新聞傳播處', '資通安全處',\r\n '綜合業務處', '消費者保護處', '內政衛福勞動處', '外交國防法務處', '交通環境資源處',\r\n '災害防救辦公室', '財政主計金融處', '國土安全辦公室', '教育科學文化處',\r\n '經濟能源農業處', '內政部', '文化部', '外交部', '交通部',\r\n '法務部', '科技部', '財政部', '國防部', '教育部', '勞動部',\r\n '經濟部', '中央銀行', '主計總處', '大陸委員會', '台灣省政府',\r\n '客家委員會', '海洋委員會', '僑務委員會', '衛生福利部',\r\n '農業委員會', '環境保護署', '人事行政總處', '原子能委員會',\r\n '中央選舉委員會', '公平交易委員會', '原住民族委員會', '國立故宮博物院',\r\n '國家發展委員會', '公共工程委員會', '金融監督管理委員會',\r\n '促進轉型正義委員會', '國家通訊傳播委員會', '國軍退除役官兵輔導委員會',\r\n '其他(早期單位)',\r\n ],\r\n '監察院': [\r\n '監察院', '政風室', '人事室', '統計室',\r\n '會計室', '秘書處', '綜合業務處', '監察調查處',\r\n '監察業務處', '公職人員財產申報處', '國家人權委員會', '訴願審議委員會',\r\n '內政及族群委員會', '外交及國防委員會', '財政及經濟委員會',\r\n '教育及文化委員會', '交通及採購委員會', '司法及獄政委員會',\r\n '社會福利及衛生環境委員會', '諮詢委員會', '廉政委員會',\r\n '法規研究委員會', '監察委員紀律委員會', '審計部',\r\n ],\r\n '考試院': [\r\n '秘書處', '第一組', '第二組', '第三組', '編纂室',\r\n '資訊室', '機要室', '人事室', '會計室', '統計室',\r\n '政風室', '法規委員會', '訴願審議委員會', '研究發展委員會',\r\n '考選部', '銓敘部', '公務人員保障暨培訓委員會',\r\n '公務人員退休撫卹基金監理委員會',\r\n ],\r\n '司法院': [\r\n '司法院', '人事處', '民事廳', '刑事廳', '政風處', '秘書處', '參事室',\r\n '統計處', '會計處', '資訊處', '發言人室', '公共關係處', '司法行政廳',\r\n '大法官書記處', '少年及家事廳', '法官評鑑委員會', '行政訴訟及懲戒廳',\r\n '民間公證人任免委員會', '國家賠償事件處理委員會', '人權與兒少保護及性別友善委員會',\r\n '其他(早期單位)', '臺北', '士林', '新北', '基隆', '宜蘭', '桃園',\r\n '新竹', '苗栗', '臺中', '彰化', '南投', '雲林', '嘉義', '臺南', '高雄',\r\n '橋頭', '花蓮', '臺東', '屏東', '澎湖', '金門', '連江', '高雄少年及家事法院',\r\n '臺灣高等', '臺中分院', '臺南分院', '花蓮分院', '高雄分院',\r\n '金門分院', '智慧財產', '懲戒法院', '法官學院', '最高法院',\r\n ],\r\n '立法院': [\r\n '立法院', '人事處', '公報處', '主計處', '法制局', '秘書處',\r\n '資訊處', '總務處', '議事處', '預算中心', '國會圖書館',\r\n '議政博物館', '中南部服務中心', '內政委員會', '交通委員會',\r\n '財政委員會', '經濟委員會', '司法及法制委員會', '外交及國防委員會',\r\n '教育及文化委員會', '社會福利及衛生環境委員會',\r\n '程序委員會', '紀律委員會', '修憲委員會', '經費稽核委員會',\r\n ],\r\n '地方政府': [\r\n '臺北', '新北', '桃園', '臺中', '臺南',\r\n '高雄', '新竹', '苗栗', '彰化', '南投',\r\n '雲林', '嘉義', '屏東', '宜蘭', '花蓮',\r\n '臺東', '澎湖', '金門', '連江', '基隆',\r\n ],\r\n '其他': [],\r\n };\r\n\r\n\r\n\r\n\r\n judgmentCourtGroup = {\r\n V_I: true,\r\n V_S: true,\r\n V_H_Hualien: true,\r\n V_H_Kaohsiung: true,\r\n V_H_Kinmen: true,\r\n V_H_Tainan: true,\r\n V_D_Hualien: true,\r\n V_D_Kaohsiung_Juvenile: true,\r\n V_D_Kinmen: true,\r\n V_D_Lienchiang: true,\r\n V_D_Miaoli: true,\r\n V_D_Nantou: true,\r\n V_D_Penghu: true,\r\n V_D_Qiaotou: true,\r\n V_D_Taitung: true,\r\n V_D_Yilan: true,\r\n V_D_Yunlin: true,\r\n M_I: true,\r\n M_H_Hualien: true,\r\n M_H_Kinmen: true,\r\n M_D_Hualien: true,\r\n M_D_Kinmen: true,\r\n M_D_Lienchiang: true,\r\n M_D_Miaoli: true,\r\n M_D_Nantou: true,\r\n M_D_Penghu: true,\r\n M_D_Qiaotou: true,\r\n M_D_Yilan: true,\r\n A_I: true,\r\n A_H_Kaohsiung: true,\r\n A_D_Changhua: true,\r\n A_D_Chiayi: true,\r\n A_D_Hsinchu: true,\r\n A_D_Hualien: true,\r\n A_D_Kaohsiung: true,\r\n A_D_Keelung: true,\r\n A_D_Kinmen: true,\r\n A_D_Lienchiang: true,\r\n A_D_Miaoli: true,\r\n A_D_Nantou: true,\r\n A_D_New_Taipei: true,\r\n A_D_Penghu: true,\r\n A_D_Pingtung: true,\r\n A_D_Qiaotou: true,\r\n A_D_Shihlin: true,\r\n A_D_Taichung: true,\r\n A_D_Tainan: true,\r\n A_D_Taipei: true,\r\n A_D_Taitung: true,\r\n A_D_Taoyuan: true,\r\n A_D_Yilan: true,\r\n A_D_Yunlin: true,\r\n O_P: true,\r\n O_C: true,\r\n O_J: true,\r\n }\r\n\r\n\r\n\r\n\r\n /** 檢索條件 */\r\n condition: SearchCondition;\r\n\r\n /** 種類按鈕區塊 */\r\n selectedCourtType: CourtType;\r\n\r\n\r\n /** 法院區塊 */\r\n /** 法院種類區塊 */\r\n courtBlockList: { courtBlock: CourtBlock, list: Court[] }[];\r\n selectedCourt: Court;\r\n /** 目前種類總數 */\r\n totalCount: number = 0;\r\n\r\n\r\n /** 清單區塊 */\r\n noteSearching: boolean = false;\r\n /** 筆記清單 */\r\n noteList: any[]; // JudicialInterpretCase[] | LawRuleCase[] | JudgmentCase[]\r\n /** 固定預覽視窗的欄位元素 */\r\n keepPreviewWindowByRowElement: Element;\r\n\r\n\r\n\r\n /** 綜合請求線程(對應判解、法規、裁判) */\r\n courtCountObserver: { [key in keyof typeof CaseTypeId]: (court: Court) => Observable } = {\r\n NONE: null,\r\n Judgment: (c) => this.countCourtTaskJudgment(c),\r\n JudicialInterpret: (c) => this.countCourtTaskJudicialInterpret(c),\r\n LawRule: (c) => this.countCourtTaskLawRule(c),\r\n Indictment: (c) => this.countCourtTaskIndictment(c),\r\n };\r\n\r\n\r\n\r\n\r\n\r\n /** 綜合請求檢索結果清單,對應(判解、法規、裁判) */\r\n searchCaseListObserver: { [key in keyof typeof CaseTypeId]: (court: Court, pageIndex: number) => Observable } = {\r\n NONE: null,\r\n JudicialInterpret: (c, i) => this.searchCaseListTaskJudicialInterpret(c, i),\r\n LawRule: (c, i) => this.searchCaseListTaskLawRule(c, i),\r\n Judgment: (c, i) => this.searchCaseListTaskJudgment(c, i),\r\n Indictment: (c, i) => this.searchCaseListTaskIndictment(c, i),\r\n };\r\n signalrListeners: { [key: string]: BroadcastEventListener } = {};\r\n\r\n /********************************************************************************************** */\r\n /** 初始化 */\r\n /********************************************************************************************** */\r\n\r\n /** 初始化 */\r\n ngOnInit() {\r\n console.log('init');\r\n\r\n // 設定抬頭按鈕\r\n this.courtTypeList = this.caseTypeService.cloneCourtTypeList();\r\n this.courtTypes = {} as any;\r\n this.courtTypeList.forEach(ct => {\r\n this.courtTypes[ct.courtTypeIdString] = ct;\r\n ct.counting = true;\r\n ct.finish = false;\r\n });\r\n console.log(this.courtTypeList);\r\n\r\n\r\n // 設定要搜尋的所有法院\r\n this.courtList = this.caseTypeService.cloneCourtList();\r\n this.courts = {} as any;\r\n this.courtList.forEach(c => {\r\n this.courts[c.courtIdString] = c;\r\n c.counting = true;\r\n c.finish = false;\r\n });\r\n\r\n // 設定檢索用的關鍵字\r\n this.condition = new SearchCondition();\r\n this.condition.search_keywords = this.completeSearchService.keywords;\r\n\r\n // 設定計數排程\r\n // this.courtList.forEach(c => {\r\n // const countTask = this.courtCountObserver[c.caseTypeIdString](c);\r\n // this.countTasks.push(countTask);\r\n // });\r\n\r\n\r\n\r\n // 把裁判類全部集合成一個檢索請求\r\n\r\n // 計數線程\r\n const countTasks$ = [];\r\n\r\n // 憲法、判解、行政函令, 這裡court用的courtId等於groupId\r\n const judicialInterpretCourts = this.courtList.filter(c => c.case_type_id == CaseTypeId.JudicialInterpret);\r\n countTasks$.push(this.countCourtTaskJudicialInterpretMulti(judicialInterpretCourts));\r\n // for (const court of judicialInterpretCourts) {\r\n // countTasks$.push(this.courtCountObserver[court.caseTypeIdString](court));\r\n // }\r\n\r\n // 法規\r\n const lawRuleCourts = this.courtList.filter(c => c.case_type_id == CaseTypeId.LawRule);\r\n for (const court of lawRuleCourts) {\r\n countTasks$.push(this.courtCountObserver[court.caseTypeIdString](court));\r\n }\r\n\r\n // 裁判所有法院同時計數\r\n const judgmentCourts = this.courtList.filter(c => c.case_type_id == CaseTypeId.Judgment);\r\n countTasks$.push(this.countCourtTaskJudgmentMulti(judgmentCourts));\r\n\r\n // 起訴書\r\n const indictmentCourts = this.courtList.filter(c => c.case_type_id != CaseTypeId.Indictment);\r\n countTasks$.push(this.countCourtTaskIndictmentMulti(indictmentCourts));\r\n // for (const court of indictmentCourts) {\r\n // countTasks$.push(this.courtCountObserver[court.caseTypeIdString](court));\r\n // }\r\n // countTasks$.push(this.countCourtTaskJudgmentMulti(groupCountCourts));\r\n\r\n let countTaskProcess$;\r\n\r\n countTaskProcess$ = from(countTasks$)\r\n .pipe(\r\n mergeMap(t => {\r\n if (this.forceStop) {\r\n return EMPTY;\r\n } else {\r\n return t;\r\n }\r\n }, 5)\r\n )\r\n\r\n // countTaskProcess$ = from(this.courtList)\r\n // .pipe(\r\n // mergeMap(c => {\r\n // if (this.forceStop) {\r\n // // console.log('skip ' + c);\r\n // return EMPTY;\r\n // } else {\r\n // // console.log('request ' , c);\r\n // const countTask = this.courtCountObserver[c.caseTypeIdString](c);\r\n // return countTask;\r\n // }\r\n // }, 5),\r\n // );\r\n\r\n countTaskProcess$\r\n .subscribe({\r\n next: (response: any) => {\r\n console.log('response ', response);\r\n\r\n if (this.forceStop) {\r\n return;\r\n }\r\n\r\n const resps = [];\r\n\r\n if (Array.isArray(response)) {\r\n resps.push(...response);\r\n } else {\r\n resps.push(response);\r\n }\r\n\r\n\r\n for (const v of resps) {\r\n const court = this.courts[v.courtIdString];\r\n court.count = v.count;\r\n court.counting = false;\r\n court.finish = true;\r\n\r\n const courtType_ = this.courtTypes[court.courtTypeIdString];\r\n courtType_.count += v.count;\r\n\r\n const sameTypeCourts = this.courtList.filter(c => c.court_type_id == courtType_.court_type_id);\r\n courtType_.counting = sameTypeCourts.some(c => c.counting);\r\n courtType_.finish = sameTypeCourts.every(c => c.finish);\r\n\r\n\r\n // 如果沒有手動先選擇檢索大分類,這裡自動選擇\r\n if (this.selectedCourtType == null) {\r\n for (const courtType of this.courtTypeList) {\r\n const typeSubCourts = this.courtList.filter(c => c.court_type_id == courtType.court_type_id);\r\n let pass = false;\r\n for (const court2 of typeSubCourts) {\r\n if (court2.counting) {\r\n pass = true;\r\n break;\r\n }\r\n if (court2.finish && court2.count > 0) {\r\n // 請求法院檢索清單\r\n // this.selectedCourtType = courtType;\r\n // this.selectedCourt = court2;\r\n this.clickSelectCourt(court2);\r\n break;\r\n }\r\n }\r\n if (this.selectedCourtType != null || pass) {\r\n break;\r\n }\r\n }\r\n }\r\n // \r\n else if (this.selectedCourtType != null && this.selectedCourt == null) {\r\n const courts = this.courtList.filter(c => c.court_type_id == this.selectedCourtType.court_type_id);\r\n for (const court2 of courts) {\r\n if (court2.counting) {\r\n break;\r\n }\r\n if (court2.finish && court2.count > 0) {\r\n // 請求法院檢索清單\r\n // this.selectedCourt = court2;\r\n this.clickSelectCourt(court2);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n this.updateTotalCount();\r\n }\r\n },\r\n complete: () => { }\r\n });\r\n\r\n this.service.log(LogPageId.CompleteSearch, JSON.stringify(this.condition.search_keywords), '');\r\n\r\n // 設定即時同步接收\r\n const signlarConnSubscribe = this.service.onSignlarConnected.subscribe((connected: boolean) => {\r\n if (connected) {\r\n console.log('add signlar event');\r\n this.addListener('law_rule/note').subscribe((v) => {\r\n this.lawRuleService.getNoteDataStorageObserver(v.case_id)\r\n .subscribe(note => {\r\n // console.log(note);\r\n if (this.noteList) {\r\n const noteIndex = this.noteList.findIndex((n: LawRuleCase) => n.law_rule_id === v.case_id);\r\n if (noteIndex > -1) {\r\n // console.log(this.noteList[noteIndex]);\r\n const sourceNote = this.noteList[noteIndex];\r\n const newNote = Serializable.extendObjectFromResponseObject(new LawRuleCase(), note);\r\n newNote.sn = sourceNote.sn;\r\n this.noteList[noteIndex] = newNote;\r\n }\r\n }\r\n });\r\n });\r\n this.addListener('judgment/note').subscribe((v) => {\r\n this.judgmentService.getNoteDataSearchResultObserver(this.condition.search_keywords, v.case_id)\r\n .subscribe(note => {\r\n // console.log(note);\r\n if (this.noteList) {\r\n const noteIndex = this.noteList.findIndex((n: JudgmentCase) => n.case_id === v.case_id);\r\n if (noteIndex > -1) {\r\n // console.log(this.noteList[noteIndex]);\r\n const sourceNote = this.noteList[noteIndex];\r\n const newNote = Serializable.extendObjectFromResponseObject(new JudgmentCase(), note);\r\n newNote.sn = sourceNote.sn;\r\n this.noteList[noteIndex] = newNote;\r\n }\r\n }\r\n });\r\n });\r\n this.addListener('judicial_interpret/note').subscribe((v) => {\r\n console.log('judicial_interpret/note', v);\r\n this.judicialInterpretService.getNoteDataSearchResultObserver(this.condition.search_keywords, v.case_id)\r\n .subscribe(note => {\r\n console.log(note);\r\n if (this.noteList) {\r\n const noteIndex = this.noteList.findIndex((n: JudicialInterpretCase) => n.case_id === v.case_id);\r\n if (noteIndex > -1) {\r\n // console.log(this.noteList[noteIndex]);\r\n const sourceNote = this.noteList[noteIndex];\r\n const newNote = Serializable.extendObjectFromResponseObject(new JudicialInterpretCase(), note);\r\n newNote.sn = sourceNote.sn;\r\n this.noteList[noteIndex] = newNote;\r\n }\r\n }\r\n });\r\n });\r\n this.addListener('indictment/note').subscribe((v) => {\r\n this.indictmentSearchService.getNoteDataSearchResultObserver(this.condition.search_keywords, v.case_id).subscribe(note => {\r\n if (this.noteList) {\r\n const noteIndex = this.noteList.findIndex((n: IndictmentCase) => n.case_id === v.case_id);\r\n if (noteIndex > -1) {\r\n const sourceNote = this.noteList[noteIndex];\r\n const convertedNote: any = Serializable.extendObjectFromResponseObject(new IndictmentCase(), note);\r\n convertedNote.sn = sourceNote.sn;\r\n this.noteList[noteIndex] = convertedNote;\r\n }\r\n }\r\n });\r\n });\r\n setTimeout(() => { signlarConnSubscribe.unsubscribe(); }, 0);\r\n }\r\n });\r\n\r\n this.initService.trigger(ActionName.SearchCondition);\r\n\r\n return;\r\n\r\n // this.condition.page_index = 1;\r\n // this.condition.per_page_amount = 20;\r\n\r\n // this.selectedCourtType = null;\r\n // this.courtBlockList = null;\r\n // this.totalCount = 0;\r\n // this.selectedCourt = null;\r\n // this.noteList = null;\r\n // this.noteSearching = false;\r\n\r\n\r\n // // 開始請求線程\r\n // this.startSearch();\r\n\r\n // this.initService.trigger(ActionName.SearchCondition);\r\n }\r\n ngOnDestroy(): void {\r\n // console.log('judgment comp destory');\r\n // this.clearListener();\r\n console.log('force stop search');\r\n\r\n this.forceStop = true;\r\n }\r\n\r\n\r\n /********************************************************************************************** */\r\n // 計數\r\n /********************************************************************************************** */\r\n\r\n getTypeButtonCountString(typeButton: any): string {\r\n if (typeButton.count <= 999) {\r\n return typeButton.count;\r\n } else {\r\n return '999+';\r\n }\r\n // return (typeButton.count as number).toLocaleString();\r\n }\r\n // 這裡判解的courtId是JudicialInterpretCourtGroupId\r\n countCourtTaskJudicialInterpret(court: Court): Observable {\r\n const _condition: JudicialInterpretCondition = JSON.parse(JSON.stringify(\r\n Serializable.extendObjectFromResponseObject(\r\n new JudicialInterpretCondition()\r\n , this.condition\r\n )\r\n ));\r\n this.convertConditionKeyword(_condition.search_keywords);\r\n\r\n const keywords = ['', '', '', '', '', ''];\r\n _condition.search_keywords\r\n .filter(k => k.keyword.length > 0)\r\n .map(k => k.keyword)\r\n .forEach((k, i) => {\r\n keywords[i] = k;\r\n });\r\n const composes = ['And', 'And', 'And', 'And', 'And', 'And'];\r\n _condition.search_keywords\r\n .forEach((k, i) => {\r\n composes[i] = ComposeType[k.compose];\r\n });\r\n\r\n const courtIdString = court.courtIdString;\r\n const courtGroupIdString = court.courtIdString.replace(/JudicialInterpret_/, '');\r\n const courtGroupId = JudicialInterpretCourtGroupId[courtGroupIdString];\r\n\r\n const condition = {\r\n courtGroupId: courtGroupId,\r\n keyword: keywords,\r\n compose: composes,\r\n caseDate: ['', '', '', '', '', ''],\r\n property1: true,\r\n property2: true,\r\n property3: true,\r\n property4: true,\r\n };\r\n\r\n return this.judicialInterpretSearchService.getProSearchCourtGroupCount(condition)\r\n .pipe(\r\n map(v => {\r\n // const courtId = CourtId[courtGroupIdString];\r\n const courtId = CourtId[courtIdString];\r\n return CourtResponse.create(courtId, v.count, v.executeResult);\r\n })\r\n );\r\n }\r\n countCourtTaskJudicialInterpretMulti(courts: Court[]): Observable {\r\n const _condition: JudicialInterpretCondition = JSON.parse(JSON.stringify(\r\n Serializable.extendObjectFromResponseObject(\r\n new JudicialInterpretCondition()\r\n , this.condition\r\n )\r\n ));\r\n this.convertConditionKeyword(_condition.search_keywords);\r\n\r\n const keywords = ['', '', '', '', '', ''];\r\n _condition.search_keywords\r\n .filter(k => k.keyword.length > 0)\r\n .map(k => k.keyword)\r\n .forEach((k, i) => {\r\n keywords[i] = k;\r\n });\r\n const composes = ['And', 'And', 'And', 'And', 'And', 'And'];\r\n _condition.search_keywords\r\n .forEach((k, i) => {\r\n composes[i] = ComposeType[k.compose];\r\n });\r\n\r\n\r\n const courtGroupIds = [];\r\n for (const court of courts) {\r\n const courtIdString = court.courtIdString;\r\n const courtGroupIdString = court.courtIdString.replace(/JudicialInterpret_/, '');\r\n const courtGroupId = JudicialInterpretCourtGroupId[courtGroupIdString];\r\n courtGroupIds.push(courtGroupId);\r\n }\r\n\r\n const condition = {\r\n courtGroupIds: courtGroupIds,\r\n keyword: keywords,\r\n compose: composes,\r\n caseDate: ['', '', '', '', '', ''],\r\n property1: true,\r\n property2: true,\r\n property3: true,\r\n property4: true,\r\n };\r\n\r\n return this.judicialInterpretSearchService.searchCourtCountMultiObserver(condition)\r\n .pipe(\r\n map(v => {\r\n\r\n const resultDict = {};\r\n for (const item of v) {\r\n const groupIdString = JudicialInterpretCourtGroupId[item.courtGroupId];\r\n resultDict[groupIdString] = item;\r\n }\r\n\r\n const results = [];\r\n const judicialInterpretCourts = this.courtList.filter(c => c.case_type_id == CaseTypeId.JudicialInterpret);\r\n for (const court of judicialInterpretCourts) {\r\n const groupIdString = court.courtIdString.replace('JudicialInterpret_', '');\r\n if (resultDict[groupIdString] == null) {\r\n results.push(CourtResponse.create(court.court_id, 0, null));\r\n } else {\r\n const v = resultDict[groupIdString];\r\n results.push(CourtResponse.create(court.court_id, v.count, v.executeResult));\r\n }\r\n }\r\n\r\n return results as any;\r\n // const courtId = CourtId[courtGroupIdString];\r\n // const courtId = CourtId[courtIdString];\r\n // return CourtResponse.create(courtId, v.count, v.executeResult);\r\n })\r\n );\r\n }\r\n countCourtTaskLawRule(court: Court): Observable {\r\n const _condition: LawRuleSearchCondition = JSON.parse(JSON.stringify(\r\n Serializable.extendObjectFromResponseObject(\r\n new LawRuleSearchCondition()\r\n , this.condition\r\n )\r\n ));\r\n\r\n _condition.court_id = court.court_id;\r\n _condition.law_rule_type = this.lawRule_CourtId_Status[court.courtIdString];\r\n\r\n // _condition.kind = kindType[court.court_id];\r\n return this.lawRuleService.searchCountObserver(_condition)\r\n .pipe(\r\n map(v => {\r\n // console.log(CourtId[v.court_id], v);\r\n // let lawRuleIdString = SearcherKeywordKind[v.kind];\r\n return CourtResponse.create(v.court_id, v.count);\r\n })\r\n );\r\n }\r\n countCourtTaskJudgment(court: Court): Observable {\r\n const _condition: JudgmentSearchCondition = JSON.parse(JSON.stringify(\r\n Serializable.extendObjectFromResponseObject(\r\n new JudgmentSearchCondition()\r\n , this.condition\r\n )\r\n ));\r\n _condition.court_id = JudgmentCourtId[court.courtIdString.replace(/^Judgment_/, '')];\r\n this.convertConditionKeyword(_condition.search_keywords);\r\n\r\n return this.judgmentService.searchCourtCountOneObserver(_condition)\r\n .pipe(\r\n map(v => {\r\n const judgmentCourtIdString = 'Judgment_' + JudgmentCourtId[v.court_id];\r\n return CourtResponse.create(CourtId[judgmentCourtIdString], v.count);\r\n })\r\n );\r\n }\r\n countCourtTaskJudgmentMulti(courts: Court[]): Observable {\r\n const _condition: JudgmentSearchCondition = JSON.parse(JSON.stringify(\r\n Serializable.extendObjectFromResponseObject(\r\n new JudgmentSearchCondition()\r\n , this.condition\r\n )\r\n ));\r\n _condition.courts = courts.map(c => JudgmentCourtId[c.courtIdString.replace(/^Judgment_/, '')]);\r\n this.convertConditionKeyword(_condition.search_keywords);\r\n\r\n return this.judgmentService.searchCourtCountMultiObserver(_condition)\r\n .pipe(\r\n map((v: any) => {\r\n\r\n const resultDict = {};\r\n for (const item of v) {\r\n const judgmentCourtIdString = JudgmentCourtId[item.court_id];\r\n resultDict[judgmentCourtIdString] = item;\r\n }\r\n\r\n const results = [];\r\n const judgmentCourts = this.courtList.filter(c => c.case_type_id == CaseTypeId.Judgment);\r\n for (const jCourt of judgmentCourts) {\r\n const resultItem = resultDict[jCourt.courtIdString];\r\n if (resultItem == null) {\r\n results.push(CourtResponse.create(jCourt.court_id, 0));\r\n } else {\r\n results.push(CourtResponse.create(jCourt.court_id, resultItem.count));\r\n }\r\n }\r\n console.log(results);\r\n\r\n return results;\r\n // return v.map(v2 => {\r\n // const judgmentCourtIdString = 'Judgment_' + JudgmentCourtId[v2.court_id];\r\n // return CourtResponse.create(CourtId[judgmentCourtIdString], v2.count);\r\n // });\r\n })\r\n );\r\n }\r\n countCourtTaskIndictment(court: Court): Observable {\r\n const _condition: IndictmentSearchCondition = JSON.parse(JSON.stringify(\r\n Serializable.extendObjectFromResponseObject(\r\n new IndictmentSearchCondition()\r\n , this.condition\r\n )\r\n ));\r\n _condition.court_id = IndictmentCourtId[court.courtIdString.replace(/^Judgment_/, '')];\r\n this.convertConditionKeyword(_condition.search_keywords);\r\n // if (_condition.court_id == null\r\n // || _condition.court_id === IndictmentCourtId.NONE\r\n // ) {\r\n // console.error('空法院ID');\r\n // }\r\n\r\n return this.indictmentSearchService.searchCourtCountOneObserver(_condition)\r\n .pipe(\r\n map(v => {\r\n const courtIdString = 'Judgment_' + IndictmentCourtId[v.court_id];\r\n return CourtResponse.create(CourtId[courtIdString], v.count);\r\n })\r\n );\r\n }\r\n countCourtTaskIndictmentMulti(courts: Court[]): Observable {\r\n const _condition: IndictmentSearchCondition = JSON.parse(JSON.stringify(\r\n Serializable.extendObjectFromResponseObject(\r\n new IndictmentSearchCondition()\r\n , this.condition\r\n )\r\n ));\r\n _condition.courts = courts.map(c => IndictmentCourtId[c.courtIdString.replace(/^Judgment_/, '')]);\r\n this.convertConditionKeyword(_condition.search_keywords);\r\n\r\n return this.indictmentSearchService.searchCourtCountMultiObserver(_condition)\r\n .pipe(\r\n map((v: any) => {\r\n\r\n const resultDict = {};\r\n for (const item of v) {\r\n const courtIdString = IndictmentCourtId[item.court_id];\r\n resultDict[courtIdString] = item;\r\n }\r\n\r\n const results = [];\r\n const courts = this.courtList.filter(c => c.case_type_id == CaseTypeId.Indictment);\r\n for (const court of courts) {\r\n const resultItem = resultDict[court.courtIdString];\r\n if (resultItem == null) {\r\n results.push(CourtResponse.create(court.court_id, 0));\r\n } else {\r\n results.push(CourtResponse.create(court.court_id, resultItem.count));\r\n }\r\n }\r\n console.log(results);\r\n\r\n return results;\r\n // return v.map(v2 => {\r\n // const judgmentCourtIdString = 'Judgment_' + JudgmentCourtId[v2.court_id];\r\n // return CourtResponse.create(CourtId[judgmentCourtIdString], v2.count);\r\n // });\r\n })\r\n );\r\n }\r\n\r\n /********************************************************************************************** */\r\n // 取筆記清單\r\n /********************************************************************************************** */\r\n\r\n searchNoteListTask(court: Court, pageIndex: number): Observable {\r\n return new Observable((subscriber: Subscriber) => {\r\n // console.log('search note list: ' + court.caseTypeIdString + ', ' + court.courtIdString);\r\n this.noteSearching = true;\r\n const searchCaseListObserver: Observable = this.searchCaseListObserver[court.caseTypeIdString](court, pageIndex);\r\n\r\n searchCaseListObserver.subscribe({\r\n next: noteList => {\r\n if (this.selectedCourt === court) {\r\n subscriber.next(noteList);\r\n } else {\r\n // console.log('mis match court id, selected:' + this.selectedCourt.court_id + ', response:' + court.court_id);\r\n subscriber.complete();\r\n }\r\n },\r\n complete: () => {\r\n this.noteSearching = false;\r\n subscriber.complete();\r\n }\r\n });\r\n });\r\n }\r\n searchCaseListTaskJudicialInterpret(court: Court, pageIndex: number): Observable {\r\n const _condition: JudicialInterpretCondition = JSON.parse(JSON.stringify(this.condition));\r\n _condition.court_id = JudicialInterpretCourtId[CourtId[court.court_id]];\r\n _condition.page_index = pageIndex;\r\n _condition.start_sn = ((pageIndex - 1) * 20) + 1;\r\n this.convertConditionKeyword(_condition.search_keywords);\r\n // console.log('request list judicial-interpret', JudicialInterpretCourtId[_condition.court_id]);\r\n\r\n const keywords = ['', '', '', '', '', ''];\r\n _condition.search_keywords\r\n .filter(k => k.keyword.length > 0)\r\n .map(k => k.keyword)\r\n .forEach((k, i) => {\r\n keywords[i] = k;\r\n });\r\n const composes = ['And', 'And', 'And', 'And', 'And', 'And'];\r\n _condition.search_keywords\r\n .forEach((k, i) => {\r\n composes[i] = ComposeType[k.compose];\r\n });\r\n\r\n const courtGroupIdString = court.courtIdString.replace(/JudicialInterpret_/, '');\r\n const courtGroupId = JudicialInterpretCourtGroupId[courtGroupIdString];\r\n\r\n const condition = {\r\n courtGroupId: courtGroupId,\r\n keyword: keywords,\r\n compose: composes,\r\n pageNumber: pageIndex\r\n }\r\n\r\n return this.judicialInterpretSearchService.getProSearchCourtGroupNote(condition)\r\n .pipe(\r\n map((result: any) => {\r\n const _noteList = [];\r\n if (result.list.length > 0) {\r\n result.list = result.list.map(item => Serializable.extendObjectFromResponseObject(new JudicialInterpretCase(), item));\r\n result.list.forEach(n => {\r\n const note = Serializable.extendObjectFromResponseObject(new JudicialInterpretCase(), n);\r\n _noteList.push(note);\r\n // console.log(note);\r\n });\r\n }\r\n return _noteList;\r\n })\r\n );\r\n }\r\n searchCaseListTaskLawRule(court: Court, pageIndex: number): Observable {\r\n const _condition: LawRuleSearchCondition = JSON.parse(JSON.stringify(this.condition));\r\n _condition.court_id = court.court_id;\r\n _condition.page_index = pageIndex;\r\n _condition.start_sn = ((pageIndex - 1) * 20) + 1;\r\n _condition.law_rule_type = this.lawRuleService.courtId_Status[court.courtIdString];\r\n\r\n return this.lawRuleService.searchLawRuleListObserver(_condition)\r\n .pipe(\r\n map((result: LawRuleCaseList) => {\r\n const _noteList = [];\r\n if (result.list.length > 0) {\r\n result.list.forEach(n => {\r\n const note = Serializable.extendObjectFromResponseObject(new LawRuleCase(), n);\r\n _noteList.push(note);\r\n });\r\n }\r\n return _noteList;\r\n })\r\n );\r\n }\r\n searchCaseListTaskJudgment(court: Court, pageIndex: number): Observable {\r\n const _condition: JudgmentSearchCondition = JSON.parse(JSON.stringify(this.condition));\r\n _condition.court_id = JudgmentCourtId[CourtId[court.court_id]];\r\n _condition.page_index = pageIndex;\r\n _condition.start_sn = ((pageIndex - 1) * 20) + 1;\r\n this.convertConditionKeyword(_condition.search_keywords);\r\n // console.log('request list judgment', JudgmentCourtId[_condition.court_id]);\r\n\r\n return this.judgmentService.searchProOneObserver(_condition)\r\n .pipe(\r\n map((result: JudgmentCaseList) => {\r\n const _noteList = [];\r\n if (result.list.length > 0) {\r\n result.list = result.list.map(item => Serializable.extendObjectFromResponseObject(new JudgmentCase(), item));\r\n result.list.forEach(n => {\r\n const note = Serializable.extendObjectFromResponseObject(new JudgmentCase(), n);\r\n // note.propertyClassName =\r\n _noteList.push(note);\r\n });\r\n }\r\n return _noteList;\r\n })\r\n );\r\n }\r\n searchCaseListTaskIndictment(court: Court, pageIndex: number): Observable {\r\n const _condition: IndictmentSearchCondition = JSON.parse(JSON.stringify(this.condition));\r\n _condition.court_id = IndictmentCourtId[CourtId[court.court_id]];\r\n _condition.page_index = pageIndex;\r\n _condition.start_sn = ((pageIndex - 1) * 20) + 1;\r\n _condition.case_type = [0, 1, 2, 3, 4];\r\n this.convertConditionKeyword(_condition.search_keywords);\r\n // console.log('request list judgment', JudgmentCourtId[_condition.court_id]);\r\n\r\n return this.indictmentSearchService.searchProOneObserver(_condition)\r\n .pipe(\r\n map((result: IndictmentCaseList) => {\r\n const _noteList = [];\r\n if (result.list.length > 0) {\r\n result.list = result.list.map(item => Serializable.extendObjectFromResponseObject(new IndictmentCase(), item));\r\n result.list.forEach(n => {\r\n const note = Serializable.extendObjectFromResponseObject(new IndictmentCase(), n);\r\n // note.propertyClassName =\r\n _noteList.push(note);\r\n });\r\n }\r\n return _noteList;\r\n })\r\n );\r\n }\r\n /** 更新檢索清單 */\r\n updateNoteList(court: Court, pageNumber: number): void {\r\n this.pageChange.forceDisableAllPageChangeButton = true;\r\n this.searchNoteListTask(court, pageNumber)\r\n .subscribe((noteList: JudicialInterpretCase[] | LawRuleCase[] | JudgmentCase[]) => {\r\n\r\n let baseSn = (pageNumber - 1) * 20 + 1;\r\n for (let i = 0; i < noteList.length; i++) {\r\n const note = noteList[i];\r\n note.sn = baseSn + i;\r\n }\r\n\r\n this.noteList = noteList;\r\n this.pageChange.forceDisableAllPageChangeButton = false;\r\n // this.scrollTopListBlock();\r\n });\r\n }\r\n\r\n /********************************************************************************************** */\r\n // 選擇相關功能\r\n /********************************************************************************************** */\r\n\r\n /** 點擊選擇的種類按鈕 */\r\n clickSelectCourtType(courtType: CourtType): void {\r\n this.selectCourtType(courtType);\r\n this.scrollTopCourtBlock();\r\n\r\n const courtList = this.courtList.filter(c => c.court_type_id === courtType.court_type_id);\r\n const court = this.getFirstHasCountCourt(courtList);\r\n if (court) {\r\n this.clickSelectCourt(court);\r\n }\r\n }\r\n /** 點擊選擇法院 */\r\n clickSelectCourt(court: Court): void {\r\n console.log('select court:' + court.courtIdString);\r\n\r\n this.selectCourt(court);\r\n this.selectCourtType(this.courtTypes[court.courtTypeIdString]);\r\n this.updateCourtBlock();\r\n this.pageChange.update(court.count, court.count, 20);\r\n this.pageChange.goToPageSlient(1);\r\n\r\n this.scrollTopListBlock();\r\n\r\n // 搜尋筆記清單\r\n this.updateNoteList(court, 1);\r\n }\r\n /** 換頁 */\r\n changePage(pageIndex: number): void {\r\n this.scrollTopListBlock();\r\n\r\n this.updateNoteList(this.selectedCourt, pageIndex);\r\n }\r\n\r\n /** 選擇種類 */\r\n selectCourtType(courtType: CourtType): void {\r\n this.selectedCourtType = courtType;\r\n this.selectedCourtType.count_read = true;\r\n }\r\n /** 選擇法院 */\r\n selectCourt(court: Court): void {\r\n this.selectedCourt = court;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n /** 增加即時同步監聽 */\r\n addListener(name: string): BroadcastEventListener {\r\n this.signalrListeners[name] = this.service.addGetSignlaRSystemListener(name);\r\n return this.signalrListeners[name];\r\n }\r\n /** 清除即時同步監聽 */\r\n clearListener(): void {\r\n Object.keys(this.signalrListeners)\r\n .forEach(key => {\r\n this.service.removeSignalrListener(key);\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n\r\n /** 開始搜尋 */\r\n startSearch(): void {\r\n // const _courtlist: any[] = [];\r\n // for (let i = this.courtList.length; i >= 0; i--) {\r\n // _courtlist.push(this.courtList[i]);\r\n // }\r\n // this.courtList = _courtlist;\r\n this.pageChange.forceDisableAllPageChangeButton = true;\r\n // console.log(this.courtList);\r\n this.countAllCourtTask(this.courtList)\r\n .pipe(\r\n // 初始設定,設定換頁器換頁按鈕讀取中\r\n tap(i => {\r\n\r\n }),\r\n // 找出空閒,未計數中、計數完成的法院\r\n map(i => {\r\n /** 搜尋最大線程 */\r\n const maxTaskCount: number = this.configService.maxSearchTaskCount;\r\n const countingCourtList = this.getCountingAndUnfinishCourtList(this.courtList);\r\n const requestCount_IdleCourtList = this.getIdleCourtList(this.courtList)\r\n .slice(0, maxTaskCount - countingCourtList.length);\r\n return requestCount_IdleCourtList;\r\n }),\r\n // 請求法院計數\r\n mergeMap(requestCount_IdleCourtList => {\r\n return this.countCourtsTask(requestCount_IdleCourtList);\r\n }),\r\n\r\n\r\n // 處理請求的計數結果\r\n tap(countResponse => {\r\n this.updateCourtCountResult(countResponse);\r\n }),\r\n // 更新所有種類按鈕狀態\r\n tap(countResponse => {\r\n this.updateAllCourtTypeStatus();\r\n }),\r\n\r\n\r\n // 設定搜尋第一個有結果的法院\r\n map(() => {\r\n this.updateCourtBlock();\r\n return this.findAndSearchFirstHasCountByOrderedCourt();\r\n }),\r\n // 如果還沒有符合的法院->跳過\r\n filter(court => court != null),\r\n // 選擇法院並更新清單\r\n tap(court => {\r\n this.clickSelectCourt(court);\r\n })\r\n )\r\n .subscribe({\r\n complete: () => {\r\n this.updateTotalCount();\r\n console.log('count complete.');\r\n }\r\n });\r\n }\r\n /** 線程,定時觸發,直到輸入的法院全部finish */\r\n countAllCourtTask(courtList: Court[]): Observable {\r\n return new Observable((subscriber: Subscriber) => {\r\n const taskIntervalSubscribe = interval(100)\r\n .pipe(\r\n tap((v) => {\r\n subscriber.next(v);\r\n }),\r\n takeWhile(() => courtList.filter(c => !c.finish).length > 0)\r\n )\r\n .subscribe({\r\n complete: () => {\r\n subscriber.complete();\r\n }\r\n });\r\n return () => {\r\n taskIntervalSubscribe.unsubscribe();\r\n };\r\n });\r\n }\r\n\r\n /** 過濾計數中,且未完成的法院 */\r\n getCountingAndUnfinishCourtList(courtList: Court[]): Court[] {\r\n return courtList.filter(c => c.counting && !c.finish);\r\n }\r\n /** 過濾閒置的法院 */\r\n getIdleCourtList(courtList: Court[]): Court[] {\r\n return courtList.filter(c => !c.counting && !c.finish);\r\n }\r\n /** 線程,同時請求計數指定多個法院 */\r\n countCourtsTask(requestCourtList: Court[]): Observable {\r\n return new Observable((subscriber: Subscriber) => {\r\n /** 設定請求的法院全部計數中 */\r\n requestCourtList.forEach(c => {\r\n c.counting = true;\r\n });\r\n /** 沒內容=>直接跳完成 */\r\n if (requestCourtList.length === 0) {\r\n subscriber.complete();\r\n }\r\n\r\n from(requestCourtList).subscribe({\r\n next: (court) => {\r\n this.notificationService.addNormal('搜尋 : ' + court.courtIdString);\r\n\r\n // 發送計數請求\r\n this.countCourtTask(court).subscribe(result => {\r\n subscriber.next(result);\r\n\r\n if (requestCourtList.every(c => c.finish)) {\r\n subscriber.complete();\r\n }\r\n });\r\n }\r\n });\r\n\r\n return () => { };\r\n });\r\n }\r\n countCourtTask(court: Court): Observable {\r\n return this.courtCountObserver[court.caseTypeIdString](court);\r\n }\r\n\r\n\r\n\r\n convertConditionKeyword(search_keywords: SearcherKeyword[]): void {\r\n const cnMatchString = '^([' + LwExt.ChineseNumber.allChineseNumber + ']+)'\r\n + ',*([^\\d' + LwExt.ChineseNumber.allChineseNumber + ']+?),*'\r\n + '([' + LwExt.ChineseNumber.allChineseNumber + ']+)$';\r\n const cnRegexp = new RegExp(cnMatchString);\r\n\r\n for (const keyword of search_keywords) {\r\n const m = keyword.keyword.match(/^(\\d+),*([^\\d]+?),*(\\d+)$/);\r\n if (m != null) {\r\n const convertedKeyword = `${m[1]}年度${m[2]}字第${m[3]}號`;\r\n keyword.keyword = convertedKeyword;\r\n console.log('set convert keyword:' + convertedKeyword);\r\n continue;\r\n }\r\n\r\n const m2 = cnRegexp.exec(keyword.keyword);\r\n if (m2 != null) {\r\n const convertedKeyword = `${m2[1]}年度${m2[2]}字第${m2[3]}號`;\r\n keyword.keyword = convertedKeyword;\r\n console.log('set convert keyword:' + convertedKeyword);\r\n continue;\r\n }\r\n }\r\n }\r\n getConvertedKeywordHighlight(condition: SearchCondition): string {\r\n const _condition: SearchCondition = JSON.parse(JSON.stringify(condition));\r\n this.convertConditionKeyword(_condition.search_keywords);\r\n const keyword = _condition.search_keywords.filter(k => {\r\n return k.compose !== ComposeType.Not\r\n && k.keyword;\r\n })\r\n .map(k => k.keyword.replace(/\\s+/g, ''))\r\n .join(' ');\r\n return keyword;\r\n }\r\n\r\n\r\n /** 更新計數回應結果 */\r\n updateCourtCountResult(courtResponse: CourtResponse): void {\r\n const court = this.courts[courtResponse.courtIdString];\r\n court.count = courtResponse.count;\r\n court.counting = false;\r\n court.finish = true;\r\n // console.log('update ' + courtResponse.courtIdString, courtResponse.count);\r\n }\r\n /** 更新所有種類按鈕的狀態 */\r\n updateAllCourtTypeStatus(): void {\r\n this.courtTypeList.forEach(ct => {\r\n const ctcs = this.courtList.filter(c => {\r\n let type = c.court_type_id;\r\n if (c.case_type_id == CaseTypeId.Judgment\r\n && c.courtIdString.length == 3\r\n && c.courtIdString[2] == 'I') {\r\n type = CourtTypeId.Judgment_Intellectual;\r\n }\r\n return type === ct.court_type_id;\r\n });\r\n ct.counting = ctcs.some(c => c.counting || !c.finish);\r\n ct.finish = ctcs.every(c => c.finish);\r\n ct.count = ctcs.filter(c => c.finish).map(c => c.count).reduce((sum, c) => sum + c, 0);\r\n // console.log(ct.courtTypeIdString, ct.count);\r\n\r\n });\r\n }\r\n\r\n\r\n /** 取指定法院清單中,依照順序,第一個計數完,有結果的法院 */\r\n getFirstHasCountCourt(courtList: Court[]): Court {\r\n for (const court of courtList) {\r\n if (court.counting) {\r\n return null;\r\n }\r\n if (court.finish && court.count > 0) {\r\n return court;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n /** 依照排序的法院找,第一個有結果的法院、並選擇法院所屬種類、 */\r\n searchFirstNoteList(): void {\r\n if (this.selectedCourt == null) {\r\n let courtList = this.courtList;\r\n if (this.selectedCourtType) {\r\n courtList = this.courtList.filter(c => c.court_type_id === this.selectedCourtType.court_type_id);\r\n }\r\n const court = this.getFirstHasCountCourt(courtList);\r\n if (court) {\r\n // 選擇第一個有數量的法院\r\n this.selectCourtType(this.courtTypes[court.courtTypeIdString]);\r\n this.updateCourtBlock();\r\n this.selectCourt(court);\r\n }\r\n }\r\n this.updateCourtBlock();\r\n }\r\n /** 依照排序的法院找,第一個有結果的法院 */\r\n findAndSearchFirstHasCountByOrderedCourt(): Court {\r\n if (this.noteSearching || this.noteList != null || this.selectedCourt != null) {\r\n return null;\r\n }\r\n\r\n let list = this.courtList;\r\n if (this.selectedCourtType != null) {\r\n list = this.courtList.filter(c => c.court_type_id === this.selectedCourtType.court_type_id);\r\n }\r\n return this.getFirstHasCountCourt(list);\r\n\r\n // for (let i = 0; i < this.courtList.length; i++) {\r\n // const court = this.courtList[i];\r\n // if (court.counting) {\r\n // return null;\r\n // }\r\n // if (court.finish && court.count > 0) {\r\n // return court;\r\n // }\r\n // }\r\n\r\n // return null;\r\n }\r\n\r\n\r\n\r\n getNoteUrlJudgment(note: JudgmentCase): string {\r\n const keyword: string = this.condition.search_keywords\r\n .filter(v => v.keyword && v.compose !== ComposeType.Not)\r\n .map(v => encodeURI(v.keyword))\r\n .join(',');\r\n return this.service.BaseUrlWeb + '/note/judgment/' + note.case_id\r\n + '?'\r\n + 'searchtype=fulltext'\r\n + '&load_save=1'\r\n + (keyword ? '&keywords=' + keyword : '')\r\n ;\r\n }\r\n openPrivateCasePopup(): void {\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PrivateCasePopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '700px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n }\r\n openNoteJudgment(note: JudgmentCase): void {\r\n if (note.case_content_type == 'private') {\r\n this.openPrivateCasePopup();\r\n return;\r\n }\r\n const url: string = this.getNoteUrlJudgment(note);\r\n window.open(url);\r\n }\r\n getNoteUrlJudicialInterpret(note: JudicialInterpretCase): string {\r\n const keyword: string = this.condition.search_keywords\r\n .filter(v => v.keyword && v.compose !== ComposeType.Not)\r\n .map(v => encodeURI(v.keyword))\r\n .join(',');\r\n return this.service.BaseUrlWeb + '/note/judicial_interpret/' + note.case_id\r\n + '?'\r\n + 'searchtype=fulltext'\r\n + '&load_save=1'\r\n + (keyword ? '&keywords=' + keyword : '')\r\n ;\r\n }\r\n openNoteJudicialInterpret(note: JudicialInterpretCase): void {\r\n const url: string = this.getNoteUrlJudicialInterpret(note);\r\n window.open(url);\r\n }\r\n openNoteLawRule(note: LawRuleCase): void {\r\n let url: string = this.service.BaseUrlWeb + '/note/law_rule/' + note.law_rule_id\r\n + '?'\r\n + '&load_save=1';\r\n if (this.selectedCourt\r\n && (\r\n this.selectedCourt.court_id === CourtId.LawRule_Now_Fulltext\r\n || this.selectedCourt.court_id === CourtId.LawRule_Repeal_Fulltext\r\n || this.selectedCourt.court_id === CourtId.LawRule_Stop_Fulltext\r\n )) {\r\n const keywordList = this.condition.search_keywords.filter(v => v.compose !== ComposeType.Not && v.keyword);\r\n if (keywordList.length > 0) {\r\n url += '&searchtype=fulltext&keywords=' + encodeURI(keywordList[0].keyword);\r\n }\r\n }\r\n window.open(url);\r\n }\r\n\r\n getNoteUrlIndictment(note: IndictmentCase): string {\r\n const keyword: string = this.condition.search_keywords\r\n .filter(v => v.keyword && v.compose !== ComposeType.Not)\r\n .map(v => encodeURI(v.keyword))\r\n .join(',');\r\n return this.service.BaseUrlWeb + '/note/indictment/' + note.case_id\r\n + '?'\r\n + 'searchtype=fulltext'\r\n + '&load_save=1'\r\n + (keyword ? '&keywords=' + keyword : '')\r\n ;\r\n }\r\n openNoteIndictment(note: IndictmentCase): void {\r\n const url: string = this.getNoteUrlIndictment(note);\r\n window.open(url);\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n /********************************************************************************************** */\r\n /** 更新區塊、清單 */\r\n /********************************************************************************************** */\r\n\r\n /** 更新目前法院區塊 */\r\n updateCourtBlock(): void {\r\n if (this.selectedCourtType == null) {\r\n return;\r\n }\r\n\r\n // { courtBlock: CourtBlock, list: Court[] }[]\r\n this.courtBlockList = [];\r\n const selectedCourtType_CourtList = this.courtList.filter(c => c.court_type_id === this.selectedCourtType.court_type_id);\r\n this.courtBlockList = this.caseTypeService.convert_CourtList_to_CourtBlockList(selectedCourtType_CourtList);\r\n\r\n this.updateTotalCount();\r\n\r\n console.log(`${this.selectedCourtType} ${this.totalCount}`);\r\n }\r\n updateTotalCount(): void {\r\n if (this.selectedCourtType == null) {\r\n return;\r\n }\r\n\r\n const selectedCourtType_CourtList = this.courtList.filter(c => c.court_type_id === this.selectedCourtType.court_type_id);\r\n this.totalCount = selectedCourtType_CourtList\r\n .filter(c => c.finish)\r\n .map(c => c.count)\r\n .reduce((s, c) => s + c, 0);\r\n }\r\n\r\n\r\n // 是否搜尋中\r\n searching(): boolean {\r\n return false;\r\n // return Object.keys(this.countCourt)\r\n // .some(k => !this.countCourt[k].finish)\r\n // || this.noteSearching;\r\n }\r\n noResult(): boolean {\r\n return this.courtList.every(c => c.finish && c.count === 0);\r\n // return this.countCourtList\r\n // && this.countCourtList.every(c => c.finish && c.count == 0);\r\n }\r\n\r\n\r\n /********************************************************************************************** */\r\n /** 清單介面更改 */\r\n /********************************************************************************************** */\r\n\r\n /** 法院區塊拉條置頂 */\r\n scrollTopCourtBlock(): void {\r\n if (this.courtListElementRef) {\r\n this.courtListElementRef.nativeElement.scrollTop = 0;\r\n }\r\n }\r\n /** 筆記清單區塊拉條置頂 */\r\n scrollTopListBlock(): void {\r\n if (this.noteListElementRef) {\r\n this.noteListElementRef.nativeElement.scrollTop = 0;\r\n }\r\n }\r\n /** 取得法院樣板 */\r\n getNoteTemplate(note: any): TemplateRef {\r\n let item: PropertyTemplate;\r\n if (note.toPropertyId) {\r\n const propertyIdString = PropertyId[note.toPropertyId()];\r\n item = this.courtTempalte[propertyIdString];\r\n } else {\r\n item = this.courtTempalte[note.propertyString];\r\n }\r\n return item.template();\r\n }\r\n /** 取樣版CLASS */\r\n getNoteTemplateClassName(note: any): string {\r\n let item: PropertyTemplate;\r\n if (note.toPropertyId) {\r\n const toPropertyId = note.toPropertyId();\r\n if (toPropertyId != null) {\r\n const propertyIdString = PropertyId[note.toPropertyId()];\r\n item = this.courtTempalte[propertyIdString];\r\n }\r\n }\r\n\r\n if (item == null) {\r\n if (note.propertyString != null) {\r\n item = this.courtTempalte[note.propertyString];\r\n }\r\n }\r\n\r\n\r\n return item.template_class_name;\r\n }\r\n\r\n /** 屬性轉CLASS */\r\n getNotePropertyClassName(note: any): string {\r\n let item: PropertyTemplate;\r\n if (note.court == '司法院刑事補償') {\r\n return 'judgment-other2';\r\n }\r\n else if (this.selectedCourt != null && this.selectedCourt.court_type_id == CourtTypeId.JudicialInterpret_Grand) {\r\n if (note.court_id == JudicialInterpretCourtId.jtype21gc1m1\r\n || note.court_id == JudicialInterpretCourtId.jtype22gc2m1\r\n || note.court_id == JudicialInterpretCourtId.jtype23gc3m1) {\r\n return 'judicial-interpret-grand1';\r\n } else if (note.court_id == JudicialInterpretCourtId.jtype22gc2m2) {\r\n return 'judicial-interpret-grand2';\r\n } else if (note.court_id == JudicialInterpretCourtId.jtype21gc1m3\r\n || note.court_id == JudicialInterpretCourtId.jtype22gc2m3\r\n || note.court_id == JudicialInterpretCourtId.jtype23gc3m3) {\r\n return 'judicial-interpret-grand3';\r\n } else if (note.court_id == JudicialInterpretCourtId.jtype21gc1m4\r\n || note.court_id == JudicialInterpretCourtId.jtype22gc2m4\r\n || note.court_id == JudicialInterpretCourtId.jtype23gc3m4) {\r\n return 'judicial-interpret-grand4';\r\n }\r\n }\r\n else if (this.selectedCourt != null && this.selectedCourt.court_block_id == CourtBlockId.JudicialInterpret_Court_XF) {\r\n if (note.court_id == JudicialInterpretCourtId.xftype38) {\r\n return 'judicial-interpret-xf38';\r\n }\r\n else if (note.court_id == JudicialInterpretCourtId.xftype39) {\r\n return 'judicial-interpret-xf39';\r\n }\r\n else if (note.court_id == JudicialInterpretCourtId.xftype40) {\r\n return 'judicial-interpret-xf40';\r\n }\r\n }\r\n else if (this.selectedCourt != null && this.selectedCourt.court_type_id == CourtTypeId.JudicialInterpret_Discipline) {\r\n if (note.data != null && note.data.append_property) {\r\n return 'judicial-interpret-' + note.data.append_property;\r\n } else {\r\n return 'judicial-interpret-discipline';\r\n }\r\n } else if (note.toPropertyId) {\r\n const propertyIdString = PropertyId[note.toPropertyId()];\r\n item = this.courtTempalte[propertyIdString];\r\n } else {\r\n item = this.courtTempalte[note.propertyString];\r\n }\r\n return item.property_class_name;\r\n }\r\n getTypeButtonIconStyle(button: CourtType): any {\r\n const style: CSSStyleDeclaration = {} as CSSStyleDeclaration;\r\n\r\n style['background-image'] = 'url(/assets/img/case_type/' + button.icon + ')';\r\n // if (this.selectedCaseType == button.type) {\r\n // style['background-image'] = 'url(/assets/img/case_type/' + button.iconSelected + ')';\r\n // }\r\n\r\n return style;\r\n }\r\n\r\n\r\n\r\n\r\n /********************************************************************************************** */\r\n /** 項目功能相關 */\r\n /********************************************************************************************** */\r\n\r\n /** 預覽視窗 */\r\n clickTextPreviewWindow(rowElement: Element, title: string, text: string): void {\r\n this.keepPreviewWindowByRowElement = rowElement;\r\n this.openTextPreview(title, text);\r\n }\r\n mouseenterTextPreview(title: string, text: string): void {\r\n if (this.keepPreviewWindowByRowElement == null) {\r\n this.openTextPreview(title, text);\r\n }\r\n }\r\n mouseleavePreview(): void {\r\n if (this.keepPreviewWindowByRowElement == null) {\r\n this.closePreview();\r\n }\r\n }\r\n openTextPreview(title: string, text: string): void {\r\n const removeNewLine = new RegExp(/[\\s]/g);\r\n const data = {\r\n title: title,\r\n content: (text || '').replace(removeNewLine, '').trim()\r\n };\r\n this.previewWindowComponent.openWindow(PreviewWindowType.TextPreview, data);\r\n }\r\n closePreview(): void {\r\n this.previewWindowComponent.closeWindow();\r\n }\r\n checkCursorClickPreviewWindow(ev: any): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.some(a => a instanceof HTMLElement &&\r\n (\r\n a === this.previewWindowComponent.element\r\n || a.classList.contains('preview-button')\r\n )\r\n );\r\n }\r\n @HostListener('document:click', ['$event']) checkPreviewWindowCloseOrNot(ev: MouseEvent): void {\r\n if (this.keepPreviewWindowByRowElement == null) {\r\n return;\r\n }\r\n if (!this.checkCursorClickPreviewWindow(ev)) {\r\n this.closePreview();\r\n this.keepPreviewWindowByRowElement = null;\r\n }\r\n }\r\n\r\n\r\n\r\n /** 關鍵字高亮 */\r\n getHighlightKeyword(): string {\r\n if (this.selectedCourt.courtIdString.match(/^LawRule.+Fulltext$/)) {\r\n return '';\r\n }\r\n\r\n const keyword = this.condition.search_keywords.filter(k => {\r\n return k.compose !== ComposeType.Not\r\n && k.keyword;\r\n })\r\n .map(k => k.keyword.replace(/\\s+/g, ''))\r\n .join(' ');\r\n\r\n return keyword;\r\n }\r\n\r\n\r\n /** 切換收藏法規 */\r\n switchLawRuleFastBagCollect(note: LawRuleCase, collect: boolean): void {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n console.log(note, collect);\r\n if (collect && this.lawRuleService.fastBag.count >= 30) {\r\n alert('收藏總數已滿!');\r\n setTimeout(() => {\r\n note.fast_bag = false;\r\n }, 100);\r\n return;\r\n }\r\n\r\n this.lawRuleService.fastBagLawRuleCollectObserver(note.law_rule_id, collect).subscribe(() => {\r\n this.lawRuleService.pullFastBagObserver().subscribe();\r\n });\r\n }\r\n\r\n\r\n // isStopCase(note: JudicialInterpretCase): boolean {\r\n // return note.court_id === CourtId.jtype1A\r\n // || note.court_id === CourtId.jtype1B\r\n // || note.court_id === CourtId.jtype1E;\r\n // }\r\n}\r\n","\r\n
\r\n
\r\n
0?'has-count':'')]\" (click)=\"clickSelectCourtType(item)\">\r\n
\r\n
{{item.condition_name}}
\r\n
\r\n
\r\n
0 && !item.count_read\">{{getTypeButtonCountString(item)}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{courtBlock.courtBlock.result_name}}
\r\n
\r\n
\r\n
{{court.list_name}}\r\n 0\"> ({{court.count.toLocaleString()}})\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
總共:{{totalCount.toLocaleString()}} 筆
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
序號
\r\n
法規名稱
\r\n
修正日期
\r\n
公佈日期
\r\n
收存狀態
\r\n
常用法規(快捷包)
\r\n
\r\n
\r\n
\r\n
{{note.sn.toLocaleString()}}
\r\n
\r\n \r\n 廢止\r\n 停用\r\n
\r\n
{{\r\n !note.modify_date||note.modify_date[0]==1?'':\r\n note.modify_date[0] +'/'+\r\n appCommonService.padNumber(note.modify_date[1])\r\n +'/'+appCommonService.padNumber(note.modify_date[2])\r\n }}
\r\n
{{\r\n !note.public_date||note.public_date[0]==1?'':\r\n note.public_date[0] +'/'+\r\n appCommonService.padNumber(note.public_date[1])\r\n +'/'+appCommonService.padNumber(note.public_date[2])\r\n }}
\r\n
0?'has-note':'']\">\r\n
\r\n
\r\n
\r\n
\r\n 移除\r\n \r\n
\r\n \r\n \r\n
\r\n 加入\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
找不到案件?請加入官方LINE,連絡小編協助您找尋案件。
\r\n \r\n \"加入好友\"\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n
序號
\r\n
{{note.sn.toLocaleString()}}
\r\n
\r\n
\r\n\r\n
\r\n
屬性
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
最近瀏覽
\r\n
{{note.note_open_time > 0 ?\r\n appCommonService.convertTimeTickToPastTimeText1(note.note_open_time) : ''}}
\r\n
\r\n
\r\n\r\n
\r\n
收存
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
內容預覽
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
相關法條
\r\n \r\n
\r\n
\r\n
\r\n
{{relateLawRule.name}}
\r\n
第 {{relateLawRule.list.join('、')}} 條
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n \r\n
\r\n
解釋字號
\r\n
\r\n
{{note.case_data.case_word + '字第' +\r\n note.case_data.case_number + '號' +\r\n (note.case_data.case_title || '') }}
\r\n
\r\n
\r\n
\r\n
開啟案件
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
解釋文
\r\n
\r\n

{{note.case_data.article}}

\r\n
\r\n
\r\n
\r\n
解釋日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n \r\n\r\n
\r\n
解釋字號
\r\n
\r\n
{{note.case_data.case_word + '字第' +\r\n note.case_data.case_number + '號' +\r\n (note.case_data.case_title || '') }}
\r\n
\r\n
\r\n
\r\n
開啟案件
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
解釋爭點
\r\n
\r\n

{{note.case_data.issue}}

\r\n
\r\n
\r\n
\r\n
\r\n
解釋文
\r\n
\r\n
\r\n
點擊固定
\r\n
\r\n
\r\n
\r\n

{{note.case_data.article}}

\r\n
\r\n
\r\n
\r\n
解釋日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n \r\n\r\n
\r\n
案次
\r\n
\r\n
{{note.case_data.meet_number}}
\r\n
\r\n
\r\n
\r\n
開啟案件
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n \r\n
\r\n
案號
\r\n
\r\n
\r\n {{note.case_data.case_year+'年度'+note.case_data.case_word+'字第'+note.case_data.case_number+'號'}}
\r\n
\r\n
\r\n
\r\n
開啟案件
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
案由
\r\n
{{note.case_data.reason}}
\r\n
\r\n
\r\n
裁判日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n \r\n\r\n
\r\n
案號
\r\n
\r\n
\r\n {{note.case_data.case_year+'年度'+note.case_data.case_word+'字第'+note.case_data.case_number+'號'}}停用廢止\r\n
\r\n
\r\n
\r\n
\r\n
開啟案件
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
案由
\r\n
{{note.case_data.reason}}
\r\n
\r\n
\r\n
\r\n
判例要旨
\r\n
\r\n
\r\n
點擊固定
\r\n
\r\n
\r\n
\r\n

{{note.case_data.gist}}

\r\n
\r\n
\r\n
\r\n
裁判日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n \r\n\r\n
\r\n
案號
\r\n
\r\n
\r\n {{note.case_data.case_year+'年度'+note.case_data.case_word+'字第'+note.case_data.case_number+'號'}}
\r\n
\r\n
\r\n
\r\n
開啟案件
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
案由
\r\n
{{note.case_data.reason}}
\r\n
\r\n
\r\n
裁判日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n \r\n\r\n
\r\n
案號
\r\n
\r\n
\r\n {{note.case_data.case_year+'年度'+note.case_data.case_word+'字第'+note.case_data.case_number+'號'}}
\r\n
\r\n
\r\n
\r\n
開啟案件
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
案由
\r\n
{{note.case_data.reason}}
\r\n
\r\n
\r\n
\r\n
裁判要旨
\r\n
\r\n
\r\n
點擊固定
\r\n
\r\n
\r\n
\r\n

{{note.case_data.gist}}

\r\n
\r\n
\r\n
\r\n
裁判日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n \r\n\r\n
\r\n
會議次別
\r\n
\r\n
{{note.case_data.meet_title}}停用廢止
\r\n
\r\n
\r\n
\r\n
開啟案件
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
決議主旨
\r\n
\r\n
\r\n
點擊固定
\r\n
\r\n
\r\n
\r\n

{{note.case_data.subject}}

\r\n
\r\n
\r\n
\r\n
決議日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n \r\n\r\n
\r\n
公懲案號
\r\n
\r\n
\r\n {{note.case_data.case_year+'年度'+note.case_data.case_word+'字第'+note.case_data.case_number+'號'}}
\r\n
\r\n
\r\n
\r\n
開啟案件
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
案由
\r\n
{{note.case_data.reason}}
\r\n
\r\n
\r\n
議決日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n \r\n\r\n
\r\n
會議次別
\r\n
\r\n
{{note.case_data.meet_title}}
\r\n
\r\n
\r\n
\r\n
開啟案件
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
問題主旨
\r\n
\r\n
\r\n
點擊固定
\r\n
\r\n
\r\n
\r\n

{{note.case_data.problem}}

\r\n
\r\n
\r\n
\r\n
會議日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n \r\n\r\n
\r\n
案號
\r\n
\r\n
\r\n {{note.case_data.case_year+'年度'+note.case_data.case_word+'字第'+note.case_data.case_number+'號'}}
\r\n
\r\n
\r\n
\r\n
開啟案件
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
案由
\r\n
{{note.case_data.reason}}
\r\n
\r\n
\r\n
裁判日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n \r\n\r\n
\r\n
發文字號
\r\n
\r\n
{{note.case_data.case_name}}
\r\n
\r\n
\r\n
\r\n
開啟案件
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
要旨
\r\n
\r\n
{{note.case_data.gist}}
\r\n
\r\n
\r\n
發文日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
序號
\r\n
{{note.sn}}
\r\n
\r\n
\r\n
案號
\r\n
\r\n
\r\n {{note.case_number[0]}}年度{{note.case_number[1]}}字第{{note.case_number[2]}}號\r\n 不公開\r\n
\r\n
\r\n
\r\n
\r\n
開啟案件
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
屬性
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
案由
\r\n
{{note.case_reason}}
\r\n
\r\n
\r\n
裁判日期
\r\n
\r\n {{note.judg_date[0]}}/{{appCommonService.padNumber(note.judg_date[1])}}/{{appCommonService.padNumber(note.judg_date[2])}}\r\n
\r\n
\r\n
\r\n
最近瀏覽
\r\n
{{note.note_open_time > 0 ?\r\n appCommonService.convertTimeTickToPastTimeText1(note.note_open_time) : ''}}
\r\n
\r\n
\r\n
收存
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
內容預覽
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
相關法條
\r\n
0\">\r\n
\r\n
\r\n
點擊固定
\r\n
\r\n
\r\n
\r\n
\r\n
{{relateLawRule.name}}
\r\n
第 {{relateLawRule.list.join('、')}} 條
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
序號
\r\n
{{note.sn}}
\r\n
\r\n
\r\n
案號
\r\n
\r\n
\r\n {{note.case_number[0]}}年度{{note.case_number[1]}}字第{{note.case_number[2]}}號
\r\n
\r\n
\r\n
\r\n
開啟案件
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
類別
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
案由
\r\n
{{note.case_reason}}
\r\n
\r\n
\r\n
偵結日期
\r\n
\r\n {{note.case_date[0]}}/{{appCommonService.padNumber(note.case_date[1])}}/{{appCommonService.padNumber(note.case_date[2])}}\r\n
\r\n
\r\n
\r\n
最近瀏覽
\r\n
{{note.note_open_time > 0 ?\r\n appCommonService.convertTimeTickToPastTimeText1(note.note_open_time) : ''}}
\r\n
\r\n
\r\n
收存
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
內容預覽
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
相關法條
\r\n
0\">\r\n
\r\n
\r\n
點擊固定
\r\n
\r\n
\r\n
\r\n
\r\n
{{relateLawRule.name}}
\r\n
第 {{relateLawRule.list.join('、')}} 條
\r\n
\r\n
\r\n
\r\n
\r\n
","import { TemplateRef } from \"@angular/core\";\r\n\r\nexport class PropertyTemplate {\r\n template_class_name: string;\r\n property_class_name: string;\r\n template: () => TemplateRef;\r\n\r\n static create(\r\n property_class_name: string\r\n , template_class_name: string\r\n , template: () => TemplateRef\r\n ): PropertyTemplate {\r\n const p = new PropertyTemplate();\r\n p.property_class_name = property_class_name;\r\n p.template_class_name = template_class_name;\r\n p.template = template;\r\n return p;\r\n }\r\n}\r\n","import { SearcherKeyword } from 'projects/lwlib/src/keyword-searcher/searcher-keyword';\r\nimport { CourtId } from 'projects/lwlib/src/case-type/court-id.enum';\r\nimport { ComposeType } from 'projects/lwlib/src/compose-search-popup/compose-type';\r\nimport { CourtBlockId } from 'projects/lwlib/src/case-type/court-block-id.enum';\r\nimport { CourtTypeId } from 'projects/lwlib/src/case-type/court-type-id.enum';\r\nimport { CaseTypeId } from 'projects/lwlib/src/case-type/case-type-id.enum';\r\n\r\nexport class SearchCondition {\r\n /** 頁數指定 */\r\n page_index: number;\r\n per_page_amount: number;\r\n\r\n /** 檢索關鍵字 */\r\n search_keywords: SearcherKeyword[] = [\r\n SearcherKeyword.create({ index: 0, keyword: '' }),\r\n SearcherKeyword.create({ index: 1, keyword: '' }),\r\n SearcherKeyword.create({ index: 2, keyword: '' }),\r\n ];\r\n\r\n /** 請求的法院 */\r\n court_id: CourtId;\r\n /** 法院所屬區塊 */\r\n court_block_id: CourtBlockId;\r\n /** 法院種類 */\r\n court_type_id: CourtTypeId;\r\n /** 案件種類 */\r\n case_type_id: CaseTypeId;\r\n\r\n skip_first_count: number;\r\n start_sn: number;\r\n\r\n getHighlightKeyword(): string {\r\n const keyword = this.search_keywords.filter(k => {\r\n return k.compose !== ComposeType.Not\r\n && k.keyword;\r\n })\r\n .map(k => k.keyword.replace(/\\s+/g, ''))\r\n .join(' ');\r\n\r\n return keyword;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { SearcherKeyword } from 'projects/lwlib/src/keyword-searcher/searcher-keyword';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CompleteSearchService {\r\n\r\n // condition;\r\n keywords: SearcherKeyword[];\r\n\r\n constructor() { }\r\n\r\n setKeywords(keywords: SearcherKeyword[]): void {\r\n this.keywords = keywords;\r\n }\r\n}\r\n","import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';\r\nimport { InitService } from 'projects/lwlib/src/init/init.service';\r\nimport { ActionName } from 'projects/lwlib/src/action-name';\r\nimport { JudgmentService } from '../child-content-storage-personal/judgment/judgment.service';\r\nimport { JudgmentSearchCondition } from './judgment-condition/judgment-search-condition';\r\nimport { LoadingIconService } from 'projects/lwlib/src/loading-icon/loading-icon.service';\r\nimport { JudgmentResultComponent } from './judgment-result/judgment-result.component';\r\nimport { JudgmentSearchService } from './judgment-search.service';\r\nimport { JudgmentConditionComponent } from './judgment-condition/judgment-condition.component';\r\nimport { SearchAgainPopupComponent } from 'projects/lwlib/src/search-again-popup/search-again-popup.component';\r\nimport { MaterialHelper } from 'projects/lwlib/src/material-helper';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { SearcherKeyword } from 'projects/lwlib/src/keyword-searcher/searcher-keyword';\r\n\r\n@Component({\r\n selector: 'app-child-content-judgment-search',\r\n templateUrl: './child-content-judgment-search.component.html',\r\n styleUrls: ['./child-content-judgment-search.component.scss']\r\n})\r\nexport class ChildContentJudgmentSearchComponent implements OnInit, OnDestroy {\r\n\r\n resultMode: boolean = false;\r\n @ViewChild('judgmentCondition') judgmentConditionComponent: JudgmentConditionComponent;\r\n @ViewChild('judgmentResult') judgmentResultComponent: JudgmentResultComponent;\r\n\r\n constructor(\r\n private initService: InitService,\r\n public judgmentService: JudgmentService,\r\n private judgmentSearchService: JudgmentSearchService,\r\n private loadingIconService: LoadingIconService,\r\n private matDialog: MatDialog,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.initService.trigger(ActionName.SearchCondition);\r\n\r\n // this.openSearchAgainPopup();\r\n }\r\n ngOnDestroy(): void {\r\n this.judgmentSearchService.clearSearchResult();\r\n }\r\n\r\n enableResult(): boolean {\r\n return this.judgmentSearchService.resultMode;\r\n }\r\n}\r\n","
\r\n \r\n \r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { ChildContentJudgmentSearchRoutingModule } from './child-content-judgment-search-routing.module';\r\nimport { ChildContentJudgmentSearchComponent } from './child-content-judgment-search.component';\r\nimport { JudgmentConditionComponent } from './judgment-condition/judgment-condition.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { ComposeCommandModule } from 'projects/lwlib/src/compose-command/compose-command.module';\r\nimport { KeywordFinderLiteModule } from 'projects/lwlib/src/keyword-finder-lite/keyword-finder-lite.module';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { PipeHighlightModule } from 'projects/lwlib/src/pipe-highlight/pipe-highlight.module';\r\nimport { JudgmentResultComponent } from './judgment-result/judgment-result.component';\r\nimport { PageChangeModule } from 'projects/lwlib/src/page-change/page-change.module';\r\nimport { SearchAgainPopupModule } from 'projects/lwlib/src/search-again-popup/search-again-popup.module';\r\nimport { PageChange2Module } from 'projects/lwlib/src/page-change2/page-change2.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n\r\n MatAutocompleteModule,\r\n PipeHighlightModule,\r\n\r\n // ChildContentJudgmentSearchRoutingModule,\r\n ComposeCommandModule,\r\n KeywordFinderLiteModule,\r\n PageChangeModule,\r\n PageChange2Module,\r\n SearchAgainPopupModule,\r\n ],\r\n declarations: [\r\n ChildContentJudgmentSearchComponent,\r\n JudgmentConditionComponent,\r\n JudgmentResultComponent\r\n ],\r\n exports: [ChildContentJudgmentSearchComponent],\r\n})\r\nexport class ChildContentJudgmentSearchModule { }\r\n","export enum IndictmentCourtIdOrder {\r\n In_D_Taipei = 0, // 臺灣臺北地方檢察署\r\n In_D_Shihlin = 1, // 臺灣士林地方檢察署\r\n In_D_New_Taipei = 2, // 臺灣新北地方檢察署\r\n In_D_Taoyuan = 3, // 臺灣桃園地方檢察署\r\n In_D_Hsinchu = 4, // 臺灣新竹地方檢察署\r\n In_D_Miaoli = 5, // 臺灣苗栗地方檢察署\r\n In_D_Taichung = 6, // 臺灣臺中地方檢察署\r\n In_D_Changhua = 7, // 臺灣彰化地方檢察署\r\n In_D_Nantou = 8, // 臺灣南投地方檢察署\r\n In_D_Yunlin = 9, // 臺灣雲林地方檢察署\r\n In_D_Chiayi = 10, // 臺灣嘉義地方檢察署\r\n In_D_Tainan = 11, // 臺灣臺南地方檢察署\r\n In_D_Kaohsiung = 12, // 臺灣高雄地方檢察署\r\n In_D_Qiaotou = 13, // 臺灣橋頭地方檢察署\r\n In_D_Pingtung = 14, // 臺灣屏東地方檢察署\r\n In_D_Taitung = 15, // 臺灣臺東地方檢察署\r\n In_D_Hualien = 16, // 臺灣花蓮地方檢察署\r\n In_D_Yilan = 17, // 臺灣宜蘭地方檢察署\r\n In_D_Keelung = 18, // 臺灣基隆地方檢察署\r\n In_D_Penghu = 19, // 臺灣澎湖地方檢察署\r\n In_D_Kinmen = 20, // 福建金門地方檢察署\r\n In_D_Lienchiang = 21, // 福建連江地方檢察署\r\n In_H = 22, // 臺灣高等檢察署\r\n In_H_Taichung = 23, // 臺灣高等檢察署臺中檢察分署\r\n In_H_Tainan = 24, // 臺灣高等檢察署臺南檢察分署\r\n In_H_Kaohsiung = 25, // 臺灣高等檢察署高雄檢察分署\r\n In_H_Hualien = 26, // 臺灣高等檢察署花蓮檢察分署\r\n In_H_Kinmen = 27, // 福建高等檢察署金門檢察分署\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { JudgmentCourtCount } from '../child-content-storage-personal/judgment/judgment-court-count';\r\nimport { JudgmentSearchCondition } from './judgment-condition/judgment-search-condition';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { IndictmentCourtCount } from './indictment-court-count';\r\nimport { IndictmentCaseList } from './indictment-case-list';\r\nimport { IndictmentCase } from '../child-content-storage-personal/judgment/indictment-case';\r\nimport { IndictmentSearchCondition } from './judgment-condition/indictment-search-condition';\r\nimport { IndictmentCourtId } from './judgment-condition/indictment-court-id.enum';\r\nimport { SearcherKeyword } from 'projects/lwlib/src/keyword-searcher/searcher-keyword';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IndictmentSearchService {\r\n\r\n /**\r\n * 條件頁的法院分類找 JudgmentSearchService\r\n * 這裡做檢索請求跟接收處理\r\n */\r\n\r\n constructor(\r\n private service: AppService,\r\n ) { }\r\n\r\n searchCourtCountOneObserver(condition: IndictmentSearchCondition): Observable {\r\n return this.service.post('indictment/search_court_count_one', condition);\r\n }\r\n searchCourtCountMultiObserver(condition: IndictmentSearchCondition): Observable {\r\n return this.service.post('indictment/search_court_count', condition);\r\n }\r\n searchProOneObserver(condition: IndictmentSearchCondition): Observable {\r\n return this.service.post('indictment/search_pro_one', condition);\r\n }\r\n searchSimpleCaseList(condition: IndictmentSearchCondition): Observable {\r\n return this.service.post('indictment/search_simple_list', condition);\r\n }\r\n getSuggestionCaseReasonObserver(keyword: string): Observable {\r\n return this.service.get('indictment/suggest_reason?keyword=' + keyword);\r\n }\r\n getSimpleSearchTypeCourtIdNameList(): string[] {\r\n const courtNames: string[] = [];\r\n for (const key in IndictmentCourtId) {\r\n if (typeof IndictmentCourtId[key] === 'number') {\r\n const courtId: number = IndictmentCourtId[key];\r\n if (courtId > 0) {\r\n courtNames.push(IndictmentCourtId[courtId]);\r\n }\r\n }\r\n }\r\n return courtNames;\r\n }\r\n getNoteDataSearchResultObserver(search_keywords: SearcherKeyword[], case_id: string): Observable {\r\n return this.service.post('indictment/search_result_pro_note?case_id=' + case_id, search_keywords);\r\n }\r\n}\r\n","import { SearcherKeyword } from 'projects/lwlib/src/keyword-searcher/searcher-keyword';\r\nimport { IndictmentCourtId } from './indictment-court-id.enum';\r\nimport { ComposeType } from 'projects/lwlib/src/compose-search-popup/compose-type';\r\nimport { JudgmentSearchResultType } from '../judgment-result/judgment-search-result-type.enum';\r\n\r\nexport class IndictmentSearchCondition {\r\n /** 檢索種類 */\r\n type: JudgmentSearchResultType;\r\n /** start@1 */\r\n page_index: number;\r\n per_page_amount: number;\r\n\r\n skip_first_count: number;\r\n start_sn: number;\r\n\r\n /** 檢索關鍵字 */\r\n search_keywords: SearcherKeyword[] = [\r\n SearcherKeyword.create({ index: 0, keyword: '' }),\r\n SearcherKeyword.create({ index: 1, keyword: '' }),\r\n SearcherKeyword.create({ index: 2, keyword: '' }),\r\n // SearcherKeyword.create({ index: 3, keyword: '' }),\r\n // SearcherKeyword.create({ index: 4, keyword: '' }),\r\n // SearcherKeyword.create({ index: 5, keyword: '' }),\r\n ];\r\n\r\n case_year: number | string;\r\n case_word: string;\r\n case_number: number | string;\r\n\r\n case_reason: string;\r\n case_reason2: string;\r\n case_reason_compose2: ComposeType;\r\n\r\n case_date: number[] = [-1, -1, -1, -1, -1, -1];\r\n case_type: number[] = [];\r\n\r\n court_id: IndictmentCourtId;\r\n courts: IndictmentCourtId[];\r\n\r\n\r\n getHighlightKeyword(): string {\r\n const keyword = this.search_keywords.filter(k => {\r\n return k.compose !== ComposeType.Not\r\n && k.keyword;\r\n })\r\n .map(k => k.keyword.replace(/\\s+/g, ''))\r\n .join(' ');\r\n\r\n return keyword;\r\n }\r\n}\r\n","import { JudgmentCourtId } from './judgment-court-id.enum';\r\nimport { JudgmentType } from './judgment-type.enum';\r\nimport { ComposeType } from 'projects/lwlib/src/compose-search-popup/compose-type';\r\nimport { JudgmentSearchCourtId } from './judgment-search-court-id.enum';\r\n\r\nexport class JudgmentConditionSave {\r\n proMode: boolean;\r\n\r\n simpleText: string;\r\n\r\n type: JudgmentType;\r\n selectedCourt: JudgmentSearchCourtId[];\r\n\r\n composeKeyword1: string;\r\n composeKeyword2: string;\r\n composeKeyword3: string;\r\n composeKeyword4: string;\r\n composeKeyword5: string;\r\n composeKeyword6: string;\r\n composeCommand2Type: ComposeType;\r\n composeCommand3Type: ComposeType;\r\n composeCommand4Type: ComposeType;\r\n composeCommand5Type: ComposeType;\r\n composeCommand6Type: ComposeType;\r\n\r\n caseYear: string;\r\n caseWord: string;\r\n caseNumber: string;\r\n caseReason: string;\r\n caseReason2: string;\r\n caseReasonCompose2Type: ComposeType;\r\n caseMainText: string;\r\n caseDate: number[];\r\n property: string[];\r\n level: string[];\r\n indictmentType: string[];\r\n\r\n static defaultConditionSave(): JudgmentConditionSave {\r\n const cs = new JudgmentConditionSave();\r\n cs.proMode = false;\r\n\r\n cs.simpleText = '';\r\n\r\n cs.type = JudgmentType.Civil;\r\n cs.selectedCourt = [];\r\n\r\n\r\n return cs;\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, AfterViewInit, AfterContentInit, EventEmitter, Output, ElementRef } from '@angular/core';\r\nimport { JudgmentType } from './judgment-type.enum';\r\nimport { JudgmentTypeCourtBlock } from './judgment-type-court-block';\r\nimport { JudgmentCourtId } from './judgment-court-id.enum';\r\nimport { JudgmentCourt } from './judgment-court';\r\nimport { Serializable } from 'projects/lwlib/src/serializable';\r\nimport { JudgmentCourtBlock } from './judgment-court-block';\r\nimport { ComposeCommandStyleType } from 'projects/lwlib/src/compose-command/compse-command-style-type.enum';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { LZStringService } from 'ng-lz-string';\r\nimport { JudgmentConditionSave } from './judgment-condition-save';\r\nimport { KeywordFinderLiteComponent } from 'projects/lwlib/src/keyword-finder-lite/keyword-finder-lite.component';\r\nimport { ComposeType } from 'projects/lwlib/src/compose-search-popup/compose-type';\r\nimport { ComposeCommandComponent } from 'projects/lwlib/src/compose-command/compose-command.component';\r\nimport { JudgmentService } from '../../child-content-storage-personal/judgment/judgment.service';\r\nimport { MatAutocomplete, MatAutocompleteTrigger } from '@angular/material/autocomplete';\r\nimport { Observable, Subscription, of } from 'rxjs';\r\nimport { JudgmentSearchCondition } from './judgment-search-condition';\r\nimport { SearcherKeywordKind } from 'projects/lwlib/src/keyword-searcher/searcher-keyword-kind';\r\nimport { JudgmentSearchService } from '../judgment-search.service';\r\nimport { LogPageId } from 'projects/lwlib/src/log-page/log-page-id.enum';\r\nimport { JudgmentSearchTypeCourtBlock } from './judgment-search-type-court-block';\r\nimport { JudgmentSearchCourtId } from './judgment-search-court-id.enum';\r\nimport { JudgmentSearchCourtBlock } from './judgment-search-court-block';\r\nimport { IndictmentSearchCondition } from './indictment-search-condition';\r\nimport { JudgmentSearchResultType } from '../judgment-result/judgment-search-result-type.enum';\r\nimport { IndictmentCourtId } from './indictment-court-id.enum';\r\nimport { IndictmentSearchService } from '../indictment-search.service';\r\nimport { PlanService } from 'projects/lwlib/src/plan/plan.service';\r\nimport { tap } from 'rxjs/operators';\r\nimport { PlanStatus } from 'projects/lwlib/src/plan/plan';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { CaseName } from 'projects/lwlib/src/case-type/case-name';\r\nimport { CourtTypeId } from 'projects/lwlib/src/case-type/court-type-id.enum';\r\n\r\n@Component({\r\n selector: 'app-judgment-condition',\r\n templateUrl: './judgment-condition.component.html',\r\n styleUrls: ['./judgment-condition.component.scss']\r\n})\r\nexport class JudgmentConditionComponent implements OnInit, AfterContentInit {\r\n\r\n @ViewChild('simpleInputElement', { static: true }) simpleInputElement: ElementRef;\r\n @ViewChild('professionInputfirstElement', { static: true }) professionInputfirstElement: ElementRef;\r\n @ViewChild(KeywordFinderLiteComponent) keywordFinderLite: KeywordFinderLiteComponent;\r\n @ViewChild('composeCommand2', { static: true }) composeCommand2: ComposeCommandComponent;\r\n @ViewChild('composeCommand3', { static: true }) composeCommand3: ComposeCommandComponent;\r\n @ViewChild('composeCommand4', { static: true }) composeCommand4: ComposeCommandComponent;\r\n @ViewChild('composeCommand5', { static: true }) composeCommand5: ComposeCommandComponent;\r\n @ViewChild('composeCommand6', { static: true }) composeCommand6: ComposeCommandComponent;\r\n @ViewChild('reasonAutoComplete', { static: true }) reasonAutoComplete: MatAutocomplete;\r\n @ViewChild('reasonMatAutocompleteInput', { read: MatAutocompleteTrigger, static: true }) reasonAutoCompleteTrigger: MatAutocompleteTrigger;\r\n @ViewChild('reasonAutoComplete2', { static: true }) reasonAutoComplete2: MatAutocomplete;\r\n @ViewChild('reasonMatAutocompleteInput2', { read: MatAutocompleteTrigger, static: true }) reasonAutoCompleteTrigger2: MatAutocompleteTrigger;\r\n @ViewChild('reasonComposeCommand2', { static: true }) reasonComposeCommand2: ComposeCommandComponent;\r\n\r\n @Output() submitPro: EventEmitter = new EventEmitter();\r\n @Output() submitSimple: EventEmitter = new EventEmitter();\r\n\r\n composeCommandStyleType: any = ComposeCommandStyleType;\r\n judgmentType: any = JudgmentType;\r\n // blocks: { [key in keyof typeof JudgmentType]: JudgmentTypeCourtBlock } = this.judgmentSearchService.conditionBlocks;\r\n blocks: { [key in keyof typeof JudgmentType]: JudgmentSearchTypeCourtBlock } = this.judgmentSearchService.searchConditionBlocks;\r\n\r\n\r\n professionSearchMode: boolean = true;\r\n\r\n\r\n // 簡易搜尋\r\n simpleSearchText: string = '';\r\n\r\n // 專業搜尋\r\n // selectedBlock: JudgmentTypeCourtBlock;\r\n selectedSearchBlock: JudgmentSearchTypeCourtBlock;\r\n\r\n composeKeyword1: string = '';\r\n composeKeyword2: string = '';\r\n composeKeyword3: string = '';\r\n composeKeyword4: string = '';\r\n composeKeyword5: string = '';\r\n composeKeyword6: string = '';\r\n composeCommand2Type: ComposeType = ComposeType.And;\r\n composeCommand3Type: ComposeType = ComposeType.And;\r\n composeCommand4Type: ComposeType = ComposeType.And;\r\n composeCommand5Type: ComposeType = ComposeType.And;\r\n composeCommand6Type: ComposeType = ComposeType.And;\r\n\r\n\r\n\r\n caseYear: string = '';\r\n caseWord: string = '';\r\n caseNumber: string = '';\r\n caseReason: string = '';\r\n caseReason2: string = '';\r\n caseReasonCompose2Type: ComposeType = ComposeType.Or;\r\n caseMainText: string = '';\r\n\r\n caseDate: string[] = ['', '', '', '', '', ''];\r\n\r\n checkboxProperty: { [key: string]: boolean } = {\r\n // selectAll: true,\r\n judgment: true,\r\n adjudicate: true,\r\n other: true,\r\n };\r\n checkboxLevel: { [key: string]: boolean } = {\r\n // selectAll: true,\r\n simple: true,\r\n normal: true,\r\n };\r\n checkboxIndictmentType: { [key: string]: boolean } = {\r\n // selectAll: true,\r\n indictment: true,\r\n appendIndictment: true,\r\n simpleJudgment: true,\r\n mergeIntention: true,\r\n other: true,\r\n };\r\n\r\n // 案由提示選單\r\n searchedReasonText: string;\r\n suggestReasons: Observable;\r\n suggestReasonSubscribe: Subscription;\r\n\r\n searchedReasonText2: string;\r\n suggestReasons2: Observable;\r\n suggestReasonSubscribe2: Subscription;\r\n\r\n readonly saveName: string = 'judgment_condition';\r\n saveLoading: boolean = false;\r\n\r\n rowNameCaseName: string;\r\n rowNameCaseReason: string;\r\n rowNameCaseMainText: string;\r\n rowNameCaseDate: string;\r\n showRowMainText: boolean;\r\n showRowProperty: boolean;\r\n showRowCaseType: boolean;\r\n showRowCaseLevel: boolean;\r\n\r\n constructor(\r\n private service: AppService,\r\n private lzService: LZStringService,\r\n public judgmentService: JudgmentService,\r\n private judgmentSearchService: JudgmentSearchService,\r\n private indictmentSearchService: IndictmentSearchService,\r\n private planService: PlanService,\r\n private matDialog: MatDialog,\r\n private router: Router,\r\n private activeRoute: ActivatedRoute,\r\n ) { }\r\n\r\n ngOnInit() {\r\n // this.selectedBlock = this.blocks.Civil;\r\n this.selectedSearchBlock = this.blocks.Civil;\r\n this.service.log(LogPageId.SearchConditionJudgment, '', '');\r\n\r\n console.log(this.activeRoute.snapshot.queryParams);\r\n }\r\n ngAfterContentInit(): void {\r\n console.log('load condition')\r\n this.loadStatus();\r\n if (this.judgmentSearchService.backToProCondition != null) {\r\n this.professionSearchMode = this.judgmentSearchService.backToProCondition;\r\n this.judgmentSearchService.backToProCondition = null;\r\n }\r\n this.focusInput();\r\n setTimeout(() => {\r\n const queryParams = this.activeRoute.snapshot.queryParams;\r\n if (queryParams['judgment_court']\r\n && queryParams['case_year']\r\n && queryParams['case_word']\r\n && queryParams['case_number']) {\r\n this.submitSearchFromQuery();\r\n }\r\n });\r\n }\r\n\r\n focusInput(): void {\r\n if (this.professionSearchMode) {\r\n console.log('focus pro');\r\n this.professionInputfirstElement.nativeElement.focus();\r\n } else {\r\n console.log('focus simple');\r\n this.simpleInputElement.nativeElement.focus();\r\n }\r\n }\r\n\r\n // 模式切換\r\n turnOnProMode(): void {\r\n this.inputChange();\r\n\r\n if (this.professionSearchMode) {\r\n this.loadStatus();\r\n }\r\n\r\n setTimeout(() => {\r\n this.focusInput();\r\n });\r\n }\r\n\r\n\r\n // 選擇法院\r\n selectJudgmentType(type: JudgmentType): void {\r\n this.selectedSearchBlock = this.blocks[JudgmentType[type]];\r\n if (this.selectedSearchBlock.type === JudgmentType.Indictment) {\r\n this.rowNameCaseName = '偵查案號';\r\n this.rowNameCaseReason = '起訴案由';\r\n this.rowNameCaseDate = '偵查期間';\r\n this.showRowMainText = false;\r\n this.showRowProperty = false;\r\n this.showRowCaseType = true;\r\n this.showRowCaseLevel = false;\r\n } else {\r\n this.rowNameCaseName = '裁判案號';\r\n this.rowNameCaseReason = '裁判案由';\r\n this.rowNameCaseMainText = '裁判主文';\r\n this.rowNameCaseDate = '裁判期間';\r\n this.showRowMainText = true;\r\n this.showRowProperty = true;\r\n this.showRowCaseType = false;\r\n this.showRowCaseLevel = true;\r\n }\r\n this.saveStatus();\r\n\r\n setTimeout(() => {\r\n this.focusInput();\r\n });\r\n }\r\n selectAll(courtBlock: JudgmentCourtBlock, setSelected: boolean): void {\r\n // let setSelected = courtBlock.courtList.every(c => c.every(c2 => c2.selected));\r\n courtBlock.courtList.forEach(c => c.forEach(c2 => c2.selected = setSelected));\r\n\r\n this.saveStatus();\r\n }\r\n isAllCourtSelected(courtBlock: JudgmentCourtBlock): boolean {\r\n return courtBlock.courtList.every(c => c.every(c2 => c2.selected));\r\n }\r\n isSelectAllObject(obj: { [key: string]: boolean }): boolean {\r\n return Object.keys(obj).every(k => obj[k]);\r\n }\r\n selectAllObject(obj: { [key: string]: boolean }, selected: boolean): void {\r\n Object.keys(obj).forEach(k => {\r\n obj[k] = selected;\r\n });\r\n\r\n this.saveStatus();\r\n }\r\n\r\n // 輸入更新\r\n inputChange(): void {\r\n this.saveStatus();\r\n }\r\n reasonInputChange(): void {\r\n if (this.suggestReasonSubscribe != null) {\r\n this.suggestReasonSubscribe.unsubscribe();\r\n this.suggestReasonSubscribe = null;\r\n }\r\n\r\n // const type = this.selectedBlock.type;\r\n if (this.selectedSearchBlock === this.blocks.Indictment) {\r\n const keyword = this.caseReason;\r\n this.suggestReasonSubscribe =\r\n this.indictmentSearchService.getSuggestionCaseReasonObserver(keyword)\r\n .subscribe(reasons => {\r\n this.suggestReasons = of(reasons);\r\n this.suggestReasonSubscribe = null;\r\n });\r\n } else {\r\n const type = this.selectedSearchBlock.type;\r\n const keyword = this.caseReason;\r\n this.suggestReasonSubscribe =\r\n this.judgmentService.getSuggestionCaseReasonObserver(keyword, type)\r\n .subscribe(reasons => {\r\n this.suggestReasons = of(reasons);\r\n this.suggestReasonSubscribe = null;\r\n });\r\n }\r\n\r\n\r\n this.saveStatus();\r\n }\r\n reasonInputChange2(): void {\r\n if (this.suggestReasonSubscribe2 != null) {\r\n this.suggestReasonSubscribe2.unsubscribe();\r\n this.suggestReasonSubscribe2 = null;\r\n }\r\n\r\n // const type = this.selectedBlock.type;\r\n if (this.selectedSearchBlock === this.blocks.Indictment) {\r\n const keyword = this.caseReason2;\r\n this.suggestReasonSubscribe2 =\r\n this.indictmentSearchService.getSuggestionCaseReasonObserver(keyword)\r\n .subscribe(reasons => {\r\n this.suggestReasons2 = of(reasons);\r\n this.suggestReasonSubscribe2 = null;\r\n });\r\n } else {\r\n const type = this.selectedSearchBlock.type;\r\n const keyword = this.caseReason2;\r\n this.suggestReasonSubscribe2 =\r\n this.judgmentService.getSuggestionCaseReasonObserver(keyword, type)\r\n .subscribe(reasons => {\r\n this.suggestReasons2 = of(reasons);\r\n this.suggestReasonSubscribe2 = null;\r\n });\r\n }\r\n\r\n\r\n this.saveStatus();\r\n }\r\n mainTextInputChange(): void {\r\n this.saveStatus();\r\n }\r\n clickClearReasonInput(): void {\r\n this.caseReason = '';\r\n }\r\n\r\n // 檢查啟用簡易送出搜尋\r\n disableSimpleSubmit(): boolean {\r\n return this.simpleSearchText.length === 0;\r\n // return this.keywordFinderLite.inputText.isEmpty();\r\n }\r\n showClearButton(): boolean {\r\n return this.simpleSearchText.length > 0;\r\n }\r\n clearSimpleText(): void {\r\n this.simpleSearchText = '';\r\n\r\n this.inputChange();\r\n }\r\n /** 關鍵字搜尋ENTER */\r\n enterKeydown(ev: KeyboardEvent): void {\r\n if (this.disableSimpleSubmit()\r\n || ev.keyCode !== 13) {\r\n return;\r\n }\r\n this.submitSimpleSearch();\r\n }\r\n\r\n // 組合指令選擇\r\n selectComposeCommand(type: ComposeType, index: number): void {\r\n this['composeCommand' + index + 'Type'] = type;\r\n this.inputChange();\r\n }\r\n selectComposeCommand2(type: ComposeType): void {\r\n this.composeCommand2Type = type;\r\n\r\n this.inputChange();\r\n }\r\n selectComposeCommand3(type: ComposeType): void {\r\n this.composeCommand3Type = type;\r\n\r\n this.inputChange();\r\n }\r\n selectReasonComposeCommand(type: ComposeType, index: number): void {\r\n this['caseReasonCompose' + index + 'Type'] = type;\r\n this.inputChange();\r\n }\r\n\r\n // 輸入內容\r\n clearInputContent(): void {\r\n this.composeKeyword1 = '';\r\n this.composeKeyword2 = '';\r\n this.composeKeyword3 = '';\r\n this.composeKeyword4 = '';\r\n this.composeKeyword5 = '';\r\n this.composeKeyword6 = '';\r\n\r\n // this.composeCommand2Type = ComposeType.And;\r\n // this.composeCommand3Type = ComposeType.And;\r\n\r\n // this.composeCommand2.selectByComposeType(this.composeCommand2Type);\r\n // this.composeCommand3.selectByComposeType(this.composeCommand3Type);\r\n\r\n this.caseYear = '';\r\n this.caseWord = '';\r\n this.caseNumber = '';\r\n this.caseReason = '';\r\n this.caseReason2 = '';\r\n this.caseMainText = '';\r\n\r\n this.caseDate = ['', '', '', '', '', ''];\r\n Object.keys(this.checkboxProperty).forEach(v => {\r\n this.checkboxProperty[v] = true;\r\n });\r\n Object.keys(this.checkboxLevel).forEach(v => {\r\n this.checkboxLevel[v] = true;\r\n });\r\n Object.keys(this.checkboxIndictmentType).forEach(v => {\r\n this.checkboxIndictmentType[v] = true;\r\n });\r\n\r\n this.inputChange();\r\n }\r\n disableProSubmitButton(): boolean {\r\n // return this.selectedBlock.getSelectedCourtIdList().length === 0\r\n if (this.selectedSearchBlock.type === JudgmentType.Indictment) {\r\n return this.selectedSearchBlock.getSelectedSourceCourtIdList().length === 0\r\n || Object.keys(this.checkboxIndictmentType).every(v => !this.checkboxIndictmentType[v]);\r\n } else {\r\n return this.selectedSearchBlock.getSelectedSourceCourtIdList().length === 0\r\n || Object.keys(this.checkboxProperty).every(v => !this.checkboxProperty[v])\r\n || Object.keys(this.checkboxLevel).every(v => !this.checkboxLevel[v]);\r\n }\r\n }\r\n clickReasonAutoCompleteOption(ev: any): void {\r\n this.caseReason = ev.option.value;\r\n }\r\n clickReasonAutoCompleteOption2(ev: any): void {\r\n this.caseReason2 = ev.option.value;\r\n }\r\n\r\n\r\n // 送出查詢\r\n submitSimpleSearch(): void {\r\n\r\n // 設定搜尋條件\r\n const conditionJudgment = new JudgmentSearchCondition();\r\n conditionJudgment.courts = [];\r\n for (let item in JudgmentCourtId) {\r\n if (!isNaN(Number(item)) && Number(item) > 0) {\r\n conditionJudgment.courts.push(Number(item));\r\n }\r\n }\r\n conditionJudgment.search_keywords[0].keyword = this.simpleSearchText;\r\n conditionJudgment.type = JudgmentSearchResultType.All;\r\n conditionJudgment.page_index = 1;\r\n conditionJudgment.per_page_amount = 20;\r\n this.judgmentSearchService.conditionJudgment = conditionJudgment;\r\n\r\n const conditionIndictment = new IndictmentSearchCondition();\r\n conditionIndictment.courts = [];\r\n for (let item in IndictmentCourtId) {\r\n if (!isNaN(Number(item)) && Number(item) > 0) {\r\n conditionIndictment.courts.push(Number(item));\r\n }\r\n }\r\n conditionIndictment.search_keywords[0].keyword = this.simpleSearchText;\r\n conditionIndictment.type = JudgmentSearchResultType.All;\r\n conditionIndictment.page_index = 1;\r\n conditionIndictment.per_page_amount = 20;\r\n this.judgmentSearchService.conditionIndictment = conditionIndictment;\r\n\r\n\r\n\r\n\r\n\r\n this.service.log(LogPageId.SearchResultJudgment, this.simpleSearchText, '');\r\n this.judgmentSearchService.enableSearchSimple();\r\n // this.submitSimple.emit(this.simpleSearchText);\r\n }\r\n submitProSearch(): void {\r\n if (this.checkDate()) {\r\n this.judgmentSearchService.conditionIndictment = null;\r\n this.judgmentSearchService.conditionJudgment = null;\r\n // 增加判斷取對應種類的所條件、進入對應種類的檢索結果\r\n if (this.selectedSearchBlock === this.judgmentSearchService.searchConditionBlocks.Indictment) {\r\n // 起訴書\r\n const condition = this.getIndictmentSearchCondition(1);\r\n this.service.log(LogPageId.SearchResultJudgment, JSON.stringify(condition), '');\r\n console.log('indictment search ', condition);\r\n this.judgmentSearchService.enableSearchProIndictment(condition);\r\n } else {\r\n // 裁判資料\r\n const condition = this.getJudgmentSearchCondition(1);\r\n this.service.log(LogPageId.SearchResultJudgment, JSON.stringify(condition), '');\r\n this.judgmentSearchService.enableSearchPro(condition);\r\n }\r\n }\r\n }\r\n submitSearchFromQuery(): void {\r\n const con: JudgmentSearchCondition = new JudgmentSearchCondition();\r\n const queryParams = this.activeRoute.snapshot.queryParams;\r\n const judgment_court: any = queryParams['judgment_court'];\r\n const case_year = queryParams['case_year'];\r\n const case_word = queryParams['case_word'];\r\n const case_number = queryParams['case_number'];\r\n const courtIdString = JudgmentCourtId[judgment_court];\r\n const courtTypeId = CaseName.courts[courtIdString].court_type_id;\r\n const courtTypeIdString = CourtTypeId[courtTypeId];\r\n con.type = JudgmentSearchResultType[courtTypeIdString.replace('Judgment_', '')];\r\n con.courts = [judgment_court] as any;\r\n con.case_year = case_year;\r\n con.case_word = case_word;\r\n con.case_number = case_number;\r\n\r\n con.property = ['judgment', 'adjudicate', 'other'];\r\n con.level = ['simple', 'normal'];\r\n\r\n con.case_reason = '';\r\n con.case_main_text = '';\r\n\r\n con.per_page_amount = 20;\r\n con.page_index = 1;\r\n\r\n console.log(con);\r\n this.router.navigate([], {\r\n queryParams: {\r\n judgment_court: null,\r\n case_year: null,\r\n case_word: null,\r\n case_number: null,\r\n },\r\n queryParamsHandling: 'merge',\r\n });\r\n this.judgmentSearchService.enableSearchPro(con);\r\n\r\n }\r\n\r\n checkDate(): boolean {\r\n if (this.caseDate.every(t => t === '')\r\n || this.caseDate.every(t => t !== '')) {\r\n return true;\r\n } else {\r\n alert('請輸入完整裁判期間');\r\n return false;\r\n }\r\n }\r\n getJudgmentSearchCondition(pageIndex: number): JudgmentSearchCondition {\r\n const condition: JudgmentSearchCondition = new JudgmentSearchCondition();\r\n condition.type = this.judgmentSearchService\r\n // .judgmentTypeSearchType[JudgmentType[this.selectedBlock.type]];\r\n .judgmentTypeSearchType[JudgmentType[this.selectedSearchBlock.type]];\r\n\r\n // con.courts = this.selectedBlock.getSelectedCourtIdList();\r\n condition.courts = this.selectedSearchBlock.getSelectedSourceCourtIdList();\r\n\r\n condition.search_keywords = [\r\n { index: 0, keyword: this.composeKeyword1, kind: SearcherKeywordKind.JudgmentFulltext, compose: ComposeType.And },\r\n { index: 1, keyword: this.composeKeyword2, kind: SearcherKeywordKind.JudgmentFulltext, compose: this.composeCommand2Type },\r\n { index: 2, keyword: this.composeKeyword3, kind: SearcherKeywordKind.JudgmentFulltext, compose: this.composeCommand3Type },\r\n { index: 3, keyword: this.composeKeyword4, kind: SearcherKeywordKind.JudgmentFulltext, compose: this.composeCommand4Type },\r\n { index: 4, keyword: this.composeKeyword5, kind: SearcherKeywordKind.JudgmentFulltext, compose: this.composeCommand5Type },\r\n { index: 5, keyword: this.composeKeyword6, kind: SearcherKeywordKind.JudgmentFulltext, compose: this.composeCommand6Type },\r\n ];\r\n\r\n condition.case_year = Number(this.caseYear);\r\n condition.case_word = this.caseWord;\r\n condition.case_number = Number(this.caseNumber);\r\n\r\n condition.case_reason = this.caseReason;\r\n condition.case_reason2 = this.caseReason2;\r\n condition.case_reason_compose2 = this.caseReasonCompose2Type;\r\n condition.case_main_text = this.caseMainText;\r\n\r\n // con.case_date = this.caseDate.map(v => parseInt(v, 10));\r\n condition.case_date = [0, 0, 0, 0, 0, 0];\r\n for (let i = 0; i < this.caseDate.length; i++) {\r\n const v = this.caseDate[i];\r\n const num = parseInt(v, 10);\r\n if (!isNaN(num)) {\r\n condition.case_date[i] = num;\r\n }\r\n }\r\n\r\n\r\n condition.property = Object.keys(this.checkboxProperty)\r\n .filter(k => this.checkboxProperty[k]) as any;\r\n\r\n condition.level = Object.keys(this.checkboxLevel)\r\n .filter(k => this.checkboxLevel[k]) as any;\r\n\r\n condition.per_page_amount = 20;\r\n condition.page_index = pageIndex;\r\n\r\n return condition;\r\n }\r\n getIndictmentSearchCondition(pageIndex: number): IndictmentSearchCondition {\r\n const con: IndictmentSearchCondition = new IndictmentSearchCondition();\r\n con.type = JudgmentSearchResultType.Indictment;\r\n\r\n // con.courts = this.selectedBlock.getSelectedCourtIdList();\r\n con.courts = this.selectedSearchBlock.getSelectedSourceCourtIdList();\r\n\r\n con.search_keywords = [\r\n { index: 0, keyword: this.composeKeyword1, kind: SearcherKeywordKind.JudgmentFulltext, compose: ComposeType.And },\r\n { index: 1, keyword: this.composeKeyword2, kind: SearcherKeywordKind.JudgmentFulltext, compose: this.composeCommand2Type },\r\n { index: 2, keyword: this.composeKeyword3, kind: SearcherKeywordKind.JudgmentFulltext, compose: this.composeCommand3Type },\r\n { index: 3, keyword: this.composeKeyword4, kind: SearcherKeywordKind.JudgmentFulltext, compose: this.composeCommand4Type },\r\n { index: 4, keyword: this.composeKeyword5, kind: SearcherKeywordKind.JudgmentFulltext, compose: this.composeCommand5Type },\r\n { index: 5, keyword: this.composeKeyword6, kind: SearcherKeywordKind.JudgmentFulltext, compose: this.composeCommand6Type },\r\n ];\r\n\r\n con.case_year = Number(this.caseYear);\r\n con.case_word = this.caseWord;\r\n con.case_number = Number(this.caseNumber);\r\n\r\n con.case_reason = this.caseReason;\r\n con.case_reason2 = this.caseReason2;\r\n con.case_reason_compose2 = this.caseReasonCompose2Type;\r\n\r\n con.case_date = [-1, -1, -1, -1, -1, -1];\r\n for (let i = 0; i < this.caseDate.length; i++) {\r\n const v = this.caseDate[i];\r\n const num = parseInt(v, 10);\r\n if (!isNaN(num) && num >= 0) {\r\n con.case_date[i] = num;\r\n }\r\n }\r\n if (con.case_date.some(v => v >= 0)) {\r\n con.case_date[0] += 1911;\r\n con.case_date[3] += 1911;\r\n }\r\n\r\n const indictmentTypeId: { [key: string]: number } = {\r\n // selectAll: true,\r\n indictment: 0,\r\n appendIndictment: 1,\r\n simpleJudgment: 2,\r\n mergeIntention: 3,\r\n other: 4,\r\n };\r\n\r\n con.case_type = Object.keys(this.checkboxIndictmentType)\r\n .filter(k => this.checkboxIndictmentType[k])\r\n .map(k => indictmentTypeId[k]);\r\n\r\n // con.property = Object.keys(this.checkboxProperty)\r\n // .filter(k => this.checkboxProperty[k]);\r\n\r\n // con.level = Object.keys(this.checkboxLevel)\r\n // .filter(k => this.checkboxLevel[k]);\r\n\r\n con.per_page_amount = 20;\r\n con.page_index = pageIndex;\r\n\r\n return con;\r\n }\r\n\r\n // 儲存紀錄\r\n saveStatus(): void {\r\n if (this.saveLoading) {\r\n return;\r\n }\r\n\r\n const save: JudgmentConditionSave = JudgmentConditionSave.defaultConditionSave();\r\n\r\n // 模式\r\n save.proMode = this.professionSearchMode;\r\n\r\n // 簡易輸入\r\n save.simpleText = this.simpleSearchText;\r\n\r\n // 裁判種類\r\n // save.type = this.selectedBlock.type;\r\n save.type = this.selectedSearchBlock.type;\r\n\r\n // 選擇的法院\r\n Object.keys(this.blocks).forEach((key: string) => {\r\n const idList = this.blocks[key].getSelectedSearchCourtIdList();\r\n save.selectedCourt.push(...idList);\r\n });\r\n\r\n // 輸入內容\r\n save.composeKeyword1 = this.composeKeyword1;\r\n save.composeKeyword2 = this.composeKeyword2;\r\n save.composeKeyword3 = this.composeKeyword3;\r\n save.composeKeyword4 = this.composeKeyword4;\r\n save.composeKeyword5 = this.composeKeyword5;\r\n save.composeKeyword6 = this.composeKeyword6;\r\n save.composeCommand2Type = this.composeCommand2Type;\r\n save.composeCommand3Type = this.composeCommand3Type;\r\n save.composeCommand4Type = this.composeCommand4Type;\r\n save.composeCommand5Type = this.composeCommand5Type;\r\n save.composeCommand6Type = this.composeCommand6Type;\r\n save.caseYear = this.caseYear;\r\n save.caseWord = this.caseWord;\r\n save.caseNumber = this.caseNumber;\r\n save.caseReason = this.caseReason;\r\n save.caseReason2 = this.caseReason2;\r\n save.caseReasonCompose2Type = this.caseReasonCompose2Type;\r\n save.caseMainText = this.caseMainText;\r\n save.caseDate = this.caseDate.map(n => isNaN(parseInt(n, 10)) ? 0 : parseInt(n, 10));\r\n save.property = Object.keys(this.checkboxProperty).filter(k => this.checkboxProperty[k]);\r\n save.level = Object.keys(this.checkboxLevel).filter(k => this.checkboxLevel[k]);\r\n save.indictmentType = Object.keys(this.checkboxIndictmentType).filter(k => this.checkboxIndictmentType[k]);\r\n\r\n // console.log(save);\r\n\r\n\r\n const saveJson = JSON.stringify(save);\r\n const compressedSave = this.lzService.compress(saveJson);\r\n\r\n this.service.setLocal(this.saveName, compressedSave);\r\n }\r\n\r\n // 讀取紀錄\r\n loadStatus(): void {\r\n this.saveLoading = true;\r\n const compressedSave = this.service.getLocal(this.saveName);\r\n if (!compressedSave) {\r\n this.saveLoading = false;\r\n this.selectJudgmentType(JudgmentType.Civil);\r\n return;\r\n }\r\n\r\n try {\r\n const saveJson = this.lzService.decompress(compressedSave as string);\r\n const save: JudgmentConditionSave = JSON.parse(saveJson);\r\n\r\n // 模式\r\n this.professionSearchMode = save.proMode;\r\n\r\n // 簡易輸入\r\n this.simpleSearchText = save.simpleText;\r\n // this.keywordFinderLite.setText(save.simpleText);\r\n\r\n // 裁判種類\r\n this.selectJudgmentType(save.type);\r\n\r\n // 選擇法院\r\n const selectedCourtDict = {};\r\n save.selectedCourt.forEach((searchId: JudgmentSearchCourtId) => {\r\n selectedCourtDict[searchId] = 1;\r\n });\r\n Object.keys(this.blocks).forEach((blockKey: string) => {\r\n this.blocks[blockKey].block.forEach((bRow: JudgmentSearchCourtBlock[]) => {\r\n bRow.forEach(courtBlock => {\r\n courtBlock.courtList.forEach(cRow => {\r\n cRow.forEach(court => {\r\n if (selectedCourtDict[court.id]) {\r\n court.selected = true;\r\n }\r\n });\r\n });\r\n });\r\n });\r\n });\r\n\r\n // 輸入內容\r\n this.composeKeyword1 = save.composeKeyword1;\r\n this.composeKeyword2 = save.composeKeyword2;\r\n this.composeKeyword3 = save.composeKeyword3;\r\n this.composeKeyword4 = save.composeKeyword4;\r\n this.composeKeyword5 = save.composeKeyword5;\r\n this.composeKeyword6 = save.composeKeyword6;\r\n\r\n this.composeCommand2Type = save.composeCommand2Type;\r\n this.composeCommand3Type = save.composeCommand3Type;\r\n this.composeCommand4Type = save.composeCommand4Type;\r\n this.composeCommand5Type = save.composeCommand5Type;\r\n this.composeCommand6Type = save.composeCommand6Type;\r\n\r\n if (this.composeCommand2) {\r\n this.composeCommand2.selectByComposeType(save.composeCommand2Type);\r\n }\r\n if (this.composeCommand3) {\r\n this.composeCommand3.selectByComposeType(save.composeCommand3Type);\r\n }\r\n if (this.composeCommand4) {\r\n this.composeCommand4.selectByComposeType(save.composeCommand4Type);\r\n }\r\n if (this.composeCommand5) {\r\n this.composeCommand5.selectByComposeType(save.composeCommand5Type);\r\n }\r\n if (this.composeCommand6) {\r\n this.composeCommand6.selectByComposeType(save.composeCommand6Type);\r\n }\r\n\r\n this.caseYear = save.caseYear;\r\n this.caseWord = save.caseWord;\r\n this.caseNumber = save.caseNumber;\r\n this.caseReason = save.caseReason;\r\n this.caseReason2 = save.caseReason2;\r\n\r\n // if (this.reasonComposeCommand2) {\r\n // this.caseReasonCompose2Type = save.caseReasonCompose2Type;\r\n // this.reasonComposeCommand2.selectByComposeType(save.caseReasonCompose2Type);\r\n // }\r\n\r\n this.caseMainText = save.caseMainText;\r\n\r\n save.caseDate.forEach((n, i) => {\r\n if (n > 0) {\r\n this.caseDate[i] = n.toString();\r\n }\r\n });\r\n\r\n Object.keys(this.checkboxProperty).forEach(v => { this.checkboxProperty[v] = false; });\r\n Object.keys(this.checkboxLevel).forEach(v => { this.checkboxLevel[v] = false; });\r\n Object.keys(this.checkboxIndictmentType).forEach(v => { this.checkboxIndictmentType[v] = false; });\r\n\r\n save.property.forEach(v => { this.checkboxProperty[v] = true; });\r\n save.level.forEach(v => { this.checkboxLevel[v] = true; });\r\n save.indictmentType.forEach(v => { this.checkboxIndictmentType[v] = true; });\r\n\r\n\r\n } catch (error) {\r\n console.error(error);\r\n this.service.removeLocal(this.saveName);\r\n }\r\n\r\n this.saveLoading = false;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
查詢裁判資料
\r\n
\r\n
\r\n
簡易檢索
\r\n
\r\n \r\n
\r\n
專業檢索
\r\n
\r\n
\r\n
\r\n
\r\n
全文檢索
\r\n \r\n
\r\n
清除
\r\n
\r\n
送出查詢
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
民事類
\r\n
\r\n
\r\n
刑事類
\r\n
\r\n
\r\n
行政類
\r\n
\r\n
\r\n
智財類
\r\n
\r\n
\r\n
其他類
\r\n
\r\n
\r\n
起訴書
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{courtBlock.title}}
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
全文檢索
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{{rowNameCaseName}}
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{rowNameCaseReason}}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
{{rowNameCaseMainText}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
{{rowNameCaseDate}}
\r\n
\r\n
\r\n
自民國
\r\n \r\n
\r\n \r\n
\r\n \r\n
日 至
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
選擇屬性
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
選擇類別
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
程序等級
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
送出查詢
\r\n
清除重填
\r\n
\r\n
\r\n
\r\n
","import { SearcherKeyword } from 'projects/lwlib/src/keyword-searcher/searcher-keyword';\r\nimport { JudgmentCourtId } from './judgment-court-id.enum';\r\nimport { JudgmentType as JudgmentTypeId } from './judgment-type.enum';\r\nimport { ComposeType } from 'projects/lwlib/src/compose-search-popup/compose-type';\r\nimport { JudgmentSearchResultType } from '../judgment-result/judgment-search-result-type.enum';\r\nimport { IndictmentCourtId } from './indictment-court-id.enum';\r\nimport { JudgmentCourt } from './judgment-court';\r\n\r\nexport class JudgmentSearchCondition {\r\n /** start@1 */\r\n page_index: number;\r\n per_page_amount: number;\r\n\r\n /** 檢索關鍵字 */\r\n search_keywords: SearcherKeyword[] = [\r\n SearcherKeyword.create({ index: 0, keyword: '' }),\r\n SearcherKeyword.create({ index: 1, keyword: '' }),\r\n SearcherKeyword.create({ index: 2, keyword: '' }),\r\n // SearcherKeyword.create({ index: 3, keyword: '' }),\r\n // SearcherKeyword.create({ index: 4, keyword: '' }),\r\n // SearcherKeyword.create({ index: 5, keyword: '' }),\r\n ];\r\n\r\n /** 檢索種類 */\r\n type: JudgmentSearchResultType;\r\n /** 選擇的法院 */\r\n court_id: IndictmentCourtId | JudgmentCourtId;\r\n /** 搜尋的法院集 */\r\n courts: JudgmentCourtId[];\r\n\r\n /** 簡易檢索用,起訴書搜尋用的法院ID */\r\n courts_indictment: IndictmentCourtId[];\r\n\r\n skip_first_count: number;\r\n start_sn: number;\r\n\r\n case_year: number | string;\r\n case_word: string;\r\n case_number: number | string;\r\n case_reason: string;\r\n case_reason2: string;\r\n case_reason_compose2: ComposeType;\r\n case_main_text: string;\r\n\r\n case_date: number[] = [-1, -1, -1, -1, -1, -1];\r\n /** judgment, adjudicate, other */\r\n property: ('judgment' | 'adjudicate' | 'other')[] = [];\r\n /** simple, normal */\r\n level: ('simple' | 'normal')[] = [];\r\n\r\n getHighlightKeyword(): string {\r\n const keyword = this.search_keywords.filter(k => {\r\n return k.compose !== ComposeType.Not\r\n && k.keyword;\r\n })\r\n .map(k => k.keyword.replace(/\\s+/g, ''))\r\n .join(' ');\r\n\r\n return keyword;\r\n }\r\n}\r\nexport class JudgmentSearchConditionCourt {\r\n V_D_Taipei: JudgmentCourt = new JudgmentCourt('臺北', JudgmentCourtId.V_D_Taipei);\r\n V_D_Shihlin: JudgmentCourt = new JudgmentCourt('士林', JudgmentCourtId.V_D_Shihlin);\r\n V_D_New_Taipei: JudgmentCourt = new JudgmentCourt('新北', JudgmentCourtId.V_D_New_Taipei);\r\n V_D_Keelung: JudgmentCourt = new JudgmentCourt('基隆', JudgmentCourtId.V_D_Keelung);\r\n V_D_Yilan: JudgmentCourt = new JudgmentCourt('宜蘭', JudgmentCourtId.V_D_Yilan);\r\n V_D_Taoyuan: JudgmentCourt = new JudgmentCourt('桃園', JudgmentCourtId.V_D_Taoyuan);\r\n V_D_Hsinchu: JudgmentCourt = new JudgmentCourt('新竹', JudgmentCourtId.V_D_Hsinchu);\r\n V_D_Miaoli: JudgmentCourt = new JudgmentCourt('苗栗', JudgmentCourtId.V_D_Miaoli);\r\n V_D_Taichung: JudgmentCourt = new JudgmentCourt('臺中', JudgmentCourtId.V_D_Taichung);\r\n V_D_Changhua: JudgmentCourt = new JudgmentCourt('彰化', JudgmentCourtId.V_D_Changhua);\r\n V_D_Nantou: JudgmentCourt = new JudgmentCourt('南投', JudgmentCourtId.V_D_Nantou);\r\n V_D_Yunlin: JudgmentCourt = new JudgmentCourt('雲林', JudgmentCourtId.V_D_Yunlin);\r\n V_D_Chiayi: JudgmentCourt = new JudgmentCourt('嘉義', JudgmentCourtId.V_D_Chiayi);\r\n V_D_Tainan: JudgmentCourt = new JudgmentCourt('臺南', JudgmentCourtId.V_D_Tainan);\r\n V_D_Kaohsiung: JudgmentCourt = new JudgmentCourt('高雄', JudgmentCourtId.V_D_Kaohsiung);\r\n V_D_Qiaotou: JudgmentCourt = new JudgmentCourt('橋頭', JudgmentCourtId.V_D_Qiaotou);\r\n V_D_Hualien: JudgmentCourt = new JudgmentCourt('花蓮', JudgmentCourtId.V_D_Hualien);\r\n V_D_Taitung: JudgmentCourt = new JudgmentCourt('臺東', JudgmentCourtId.V_D_Taitung);\r\n V_D_Pingtung: JudgmentCourt = new JudgmentCourt('屏東', JudgmentCourtId.V_D_Pingtung);\r\n V_D_Penghu: JudgmentCourt = new JudgmentCourt('澎湖', JudgmentCourtId.V_D_Penghu);\r\n V_D_Kinmen: JudgmentCourt = new JudgmentCourt('金門', JudgmentCourtId.V_D_Kinmen);\r\n V_D_Lienchiang: JudgmentCourt = new JudgmentCourt('連江', JudgmentCourtId.V_D_Lienchiang);\r\n V_D_Kaohsiung_Juvenile: JudgmentCourt = new JudgmentCourt('高雄少年及家事法院', JudgmentCourtId.V_D_Kaohsiung_Juvenile);\r\n V_H: JudgmentCourt = new JudgmentCourt('臺灣高等', JudgmentCourtId.V_H);\r\n V_H_Taichung: JudgmentCourt = new JudgmentCourt('臺中分院', JudgmentCourtId.V_H_Taichung);\r\n V_H_Tainan: JudgmentCourt = new JudgmentCourt('臺南分院', JudgmentCourtId.V_H_Tainan);\r\n V_H_Hualien: JudgmentCourt = new JudgmentCourt('花蓮分院', JudgmentCourtId.V_H_Hualien);\r\n V_H_Kaohsiung: JudgmentCourt = new JudgmentCourt('高雄分院', JudgmentCourtId.V_H_Kaohsiung);\r\n V_H_Kinmen: JudgmentCourt = new JudgmentCourt('金門分院', JudgmentCourtId.V_H_Kinmen);\r\n V_S: JudgmentCourt = new JudgmentCourt('最高法院', JudgmentCourtId.V_S);\r\n M_D_Taipei: JudgmentCourt = new JudgmentCourt('臺北', JudgmentCourtId.M_D_Taipei);\r\n M_D_Shihlin: JudgmentCourt = new JudgmentCourt('士林', JudgmentCourtId.M_D_Shihlin);\r\n M_D_New_Taipei: JudgmentCourt = new JudgmentCourt('新北', JudgmentCourtId.M_D_New_Taipei);\r\n M_D_Keelung: JudgmentCourt = new JudgmentCourt('基隆', JudgmentCourtId.M_D_Keelung);\r\n M_D_Yilan: JudgmentCourt = new JudgmentCourt('宜蘭', JudgmentCourtId.M_D_Yilan);\r\n M_D_Taoyuan: JudgmentCourt = new JudgmentCourt('桃園', JudgmentCourtId.M_D_Taoyuan);\r\n M_D_Hsinchu: JudgmentCourt = new JudgmentCourt('新竹', JudgmentCourtId.M_D_Hsinchu);\r\n M_D_Miaoli: JudgmentCourt = new JudgmentCourt('苗栗', JudgmentCourtId.M_D_Miaoli);\r\n M_D_Taichung: JudgmentCourt = new JudgmentCourt('臺中', JudgmentCourtId.M_D_Taichung);\r\n M_D_Changhua: JudgmentCourt = new JudgmentCourt('彰化', JudgmentCourtId.M_D_Changhua);\r\n M_D_Nantou: JudgmentCourt = new JudgmentCourt('南投', JudgmentCourtId.M_D_Nantou);\r\n M_D_Yunlin: JudgmentCourt = new JudgmentCourt('雲林', JudgmentCourtId.M_D_Yunlin);\r\n M_D_Chiayi: JudgmentCourt = new JudgmentCourt('嘉義', JudgmentCourtId.M_D_Chiayi);\r\n M_D_Tainan: JudgmentCourt = new JudgmentCourt('臺南', JudgmentCourtId.M_D_Tainan);\r\n M_D_Kaohsiung: JudgmentCourt = new JudgmentCourt('高雄', JudgmentCourtId.M_D_Kaohsiung);\r\n M_D_Qiaotou: JudgmentCourt = new JudgmentCourt('橋頭', JudgmentCourtId.M_D_Qiaotou);\r\n M_D_Hualien: JudgmentCourt = new JudgmentCourt('花蓮', JudgmentCourtId.M_D_Hualien);\r\n M_D_Taitung: JudgmentCourt = new JudgmentCourt('臺東', JudgmentCourtId.M_D_Taitung);\r\n M_D_Pingtung: JudgmentCourt = new JudgmentCourt('屏東', JudgmentCourtId.M_D_Pingtung);\r\n M_D_Penghu: JudgmentCourt = new JudgmentCourt('澎湖', JudgmentCourtId.M_D_Penghu);\r\n M_D_Kinmen: JudgmentCourt = new JudgmentCourt('金門', JudgmentCourtId.M_D_Kinmen);\r\n M_D_Lienchiang: JudgmentCourt = new JudgmentCourt('連江', JudgmentCourtId.M_D_Lienchiang);\r\n M_H: JudgmentCourt = new JudgmentCourt('臺灣高等', JudgmentCourtId.M_H);\r\n M_H_Taichung: JudgmentCourt = new JudgmentCourt('臺中分院', JudgmentCourtId.M_H_Taichung);\r\n M_H_Tainan: JudgmentCourt = new JudgmentCourt('臺南分院', JudgmentCourtId.M_H_Tainan);\r\n M_H_Hualien: JudgmentCourt = new JudgmentCourt('花蓮分院', JudgmentCourtId.M_H_Hualien);\r\n M_H_Kaohsiung: JudgmentCourt = new JudgmentCourt('高雄分院', JudgmentCourtId.M_H_Kaohsiung);\r\n M_H_Kinmen: JudgmentCourt = new JudgmentCourt('金門分院', JudgmentCourtId.M_H_Kinmen);\r\n M_S: JudgmentCourt = new JudgmentCourt('最高法院', JudgmentCourtId.M_S);\r\n A_D_Taipei: JudgmentCourt = new JudgmentCourt('臺北', JudgmentCourtId.A_D_Taipei);\r\n A_D_Shihlin: JudgmentCourt = new JudgmentCourt('士林', JudgmentCourtId.A_D_Shihlin);\r\n A_D_New_Taipei: JudgmentCourt = new JudgmentCourt('新北', JudgmentCourtId.A_D_New_Taipei);\r\n A_D_Keelung: JudgmentCourt = new JudgmentCourt('基隆', JudgmentCourtId.A_D_Keelung);\r\n A_D_Yilan: JudgmentCourt = new JudgmentCourt('宜蘭', JudgmentCourtId.A_D_Yilan);\r\n A_D_Taoyuan: JudgmentCourt = new JudgmentCourt('桃園', JudgmentCourtId.A_D_Taoyuan);\r\n A_D_Hsinchu: JudgmentCourt = new JudgmentCourt('新竹', JudgmentCourtId.A_D_Hsinchu);\r\n A_D_Miaoli: JudgmentCourt = new JudgmentCourt('苗栗', JudgmentCourtId.A_D_Miaoli);\r\n A_D_Taichung: JudgmentCourt = new JudgmentCourt('臺中', JudgmentCourtId.A_D_Taichung);\r\n A_D_Changhua: JudgmentCourt = new JudgmentCourt('彰化', JudgmentCourtId.A_D_Changhua);\r\n A_D_Nantou: JudgmentCourt = new JudgmentCourt('南投', JudgmentCourtId.A_D_Nantou);\r\n A_D_Yunlin: JudgmentCourt = new JudgmentCourt('雲林', JudgmentCourtId.A_D_Yunlin);\r\n A_D_Chiayi: JudgmentCourt = new JudgmentCourt('嘉義', JudgmentCourtId.A_D_Chiayi);\r\n A_D_Tainan: JudgmentCourt = new JudgmentCourt('臺南', JudgmentCourtId.A_D_Tainan);\r\n A_D_Kaohsiung: JudgmentCourt = new JudgmentCourt('高雄', JudgmentCourtId.A_D_Kaohsiung);\r\n A_D_Qiaotou: JudgmentCourt = new JudgmentCourt('橋頭', JudgmentCourtId.A_D_Qiaotou);\r\n A_D_Hualien: JudgmentCourt = new JudgmentCourt('花蓮', JudgmentCourtId.A_D_Hualien);\r\n A_D_Taitung: JudgmentCourt = new JudgmentCourt('臺東', JudgmentCourtId.A_D_Taitung);\r\n A_D_Pingtung: JudgmentCourt = new JudgmentCourt('屏東', JudgmentCourtId.A_D_Pingtung);\r\n A_D_Penghu: JudgmentCourt = new JudgmentCourt('澎湖', JudgmentCourtId.A_D_Penghu);\r\n A_D_Kinmen: JudgmentCourt = new JudgmentCourt('金門', JudgmentCourtId.A_D_Kinmen);\r\n A_D_Lienchiang: JudgmentCourt = new JudgmentCourt('連江', JudgmentCourtId.A_D_Lienchiang);\r\n A_H_Taipei: JudgmentCourt = new JudgmentCourt('臺北高等', JudgmentCourtId.A_H_Taipei);\r\n A_H_Taichung: JudgmentCourt = new JudgmentCourt('臺中高等', JudgmentCourtId.A_H_Taichung);\r\n A_H_Kaohsiung: JudgmentCourt = new JudgmentCourt('高雄高等', JudgmentCourtId.A_H_Kaohsiung);\r\n A_S: JudgmentCourt = new JudgmentCourt('最高法院', JudgmentCourtId.A_S);\r\n V_I: JudgmentCourt = new JudgmentCourt('民事', JudgmentCourtId.V_I);\r\n M_I: JudgmentCourt = new JudgmentCourt('刑事', JudgmentCourtId.M_I);\r\n A_I: JudgmentCourt = new JudgmentCourt('行政', JudgmentCourtId.A_I);\r\n O_P: JudgmentCourt = new JudgmentCourt('懲戒法院(公務員懲戒委員會)', JudgmentCourtId.O_P);\r\n O_C: JudgmentCourt = new JudgmentCourt('司法院刑事補償', JudgmentCourtId.O_C);\r\n O_J: JudgmentCourt = new JudgmentCourt('司法院職務法庭', JudgmentCourtId.O_J);\r\n In_D_Taipei: JudgmentCourt = new JudgmentCourt('臺北', IndictmentCourtId.In_D_Taipei, true);\r\n In_D_Shihlin: JudgmentCourt = new JudgmentCourt('士林', IndictmentCourtId.In_D_Shihlin, true);\r\n In_D_New_Taipei: JudgmentCourt = new JudgmentCourt('新北', IndictmentCourtId.In_D_New_Taipei, true);\r\n In_D_Keelung: JudgmentCourt = new JudgmentCourt('基隆', IndictmentCourtId.In_D_Keelung, true);\r\n In_D_Yilan: JudgmentCourt = new JudgmentCourt('宜蘭', IndictmentCourtId.In_D_Yilan, true);\r\n In_D_Taoyuan: JudgmentCourt = new JudgmentCourt('桃園', IndictmentCourtId.In_D_Taoyuan, true);\r\n In_D_Hsinchu: JudgmentCourt = new JudgmentCourt('新竹', IndictmentCourtId.In_D_Hsinchu, true);\r\n In_D_Miaoli: JudgmentCourt = new JudgmentCourt('苗栗', IndictmentCourtId.In_D_Miaoli, true);\r\n In_D_Taichung: JudgmentCourt = new JudgmentCourt('臺中', IndictmentCourtId.In_D_Taichung, true);\r\n In_D_Changhua: JudgmentCourt = new JudgmentCourt('彰化', IndictmentCourtId.In_D_Changhua, true);\r\n In_D_Nantou: JudgmentCourt = new JudgmentCourt('南投', IndictmentCourtId.In_D_Nantou, true);\r\n In_D_Yunlin: JudgmentCourt = new JudgmentCourt('雲林', IndictmentCourtId.In_D_Yunlin, true);\r\n In_D_Chiayi: JudgmentCourt = new JudgmentCourt('嘉義', IndictmentCourtId.In_D_Chiayi, true);\r\n In_D_Tainan: JudgmentCourt = new JudgmentCourt('臺南', IndictmentCourtId.In_D_Tainan, true);\r\n In_D_Kaohsiung: JudgmentCourt = new JudgmentCourt('高雄', IndictmentCourtId.In_D_Kaohsiung, true);\r\n In_D_Qiaotou: JudgmentCourt = new JudgmentCourt('橋頭', IndictmentCourtId.In_D_Qiaotou, true);\r\n In_D_Hualien: JudgmentCourt = new JudgmentCourt('花蓮', IndictmentCourtId.In_D_Hualien, true);\r\n In_D_Taitung: JudgmentCourt = new JudgmentCourt('臺東', IndictmentCourtId.In_D_Taitung, true);\r\n In_D_Pingtung: JudgmentCourt = new JudgmentCourt('屏東', IndictmentCourtId.In_D_Pingtung, true);\r\n In_D_Penghu: JudgmentCourt = new JudgmentCourt('澎湖', IndictmentCourtId.In_D_Penghu, true);\r\n In_D_Kinmen: JudgmentCourt = new JudgmentCourt('金門', IndictmentCourtId.In_D_Kinmen, true);\r\n In_D_Lienchiang: JudgmentCourt = new JudgmentCourt('連江', IndictmentCourtId.In_D_Lienchiang, true);\r\n In_H: JudgmentCourt = new JudgmentCourt('臺灣高等', IndictmentCourtId.In_H, true);\r\n In_H_Taichung: JudgmentCourt = new JudgmentCourt('臺中分署', IndictmentCourtId.In_H_Taichung, true);\r\n In_H_Tainan: JudgmentCourt = new JudgmentCourt('臺南分署', IndictmentCourtId.In_H_Tainan, true);\r\n In_H_Kaohsiung: JudgmentCourt = new JudgmentCourt('高雄分署', IndictmentCourtId.In_H_Kaohsiung, true);\r\n In_H_Hualien: JudgmentCourt = new JudgmentCourt('花蓮分署', IndictmentCourtId.In_H_Hualien, true);\r\n In_H_Kinmen: JudgmentCourt = new JudgmentCourt('金門分署', IndictmentCourtId.In_H_Kinmen, true);\r\n 民事臺北 = this.V_D_Taipei;\r\n 民事士林 = this.V_D_Shihlin;\r\n 民事新北 = this.V_D_New_Taipei;\r\n 民事基隆 = this.V_D_Keelung;\r\n 民事宜蘭 = this.V_D_Yilan;\r\n 民事桃園 = this.V_D_Taoyuan;\r\n 民事新竹 = this.V_D_Hsinchu;\r\n 民事苗栗 = this.V_D_Miaoli;\r\n 民事臺中 = this.V_D_Taichung;\r\n 民事彰化 = this.V_D_Changhua;\r\n 民事南投 = this.V_D_Nantou;\r\n 民事雲林 = this.V_D_Yunlin;\r\n 民事嘉義 = this.V_D_Chiayi;\r\n 民事臺南 = this.V_D_Tainan;\r\n 民事高雄 = this.V_D_Kaohsiung;\r\n 民事橋頭 = this.V_D_Qiaotou;\r\n 民事花蓮 = this.V_D_Hualien;\r\n 民事臺東 = this.V_D_Taitung;\r\n 民事屏東 = this.V_D_Pingtung;\r\n 民事澎湖 = this.V_D_Penghu;\r\n 民事金門 = this.V_D_Kinmen;\r\n 民事連江 = this.V_D_Lienchiang;\r\n 民事高雄少年及家事法院 = this.V_D_Kaohsiung_Juvenile;\r\n 民事臺灣高等 = this.V_H;\r\n 民事臺中分院 = this.V_H_Taichung;\r\n 民事臺南分院 = this.V_H_Tainan;\r\n 民事花蓮分院 = this.V_H_Hualien;\r\n 民事高雄分院 = this.V_H_Kaohsiung;\r\n 民事金門分院 = this.V_H_Kinmen;\r\n 民事最高法院 = this.V_S;\r\n 刑事臺北 = this.M_D_Taipei;\r\n 刑事士林 = this.M_D_Shihlin;\r\n 刑事新北 = this.M_D_New_Taipei;\r\n 刑事基隆 = this.M_D_Keelung;\r\n 刑事宜蘭 = this.M_D_Yilan;\r\n 刑事桃園 = this.M_D_Taoyuan;\r\n 刑事新竹 = this.M_D_Hsinchu;\r\n 刑事苗栗 = this.M_D_Miaoli;\r\n 刑事臺中 = this.M_D_Taichung;\r\n 刑事彰化 = this.M_D_Changhua;\r\n 刑事南投 = this.M_D_Nantou;\r\n 刑事雲林 = this.M_D_Yunlin;\r\n 刑事嘉義 = this.M_D_Chiayi;\r\n 刑事臺南 = this.M_D_Tainan;\r\n 刑事高雄 = this.M_D_Kaohsiung;\r\n 刑事橋頭 = this.M_D_Qiaotou;\r\n 刑事花蓮 = this.M_D_Hualien;\r\n 刑事臺東 = this.M_D_Taitung;\r\n 刑事屏東 = this.M_D_Pingtung;\r\n 刑事澎湖 = this.M_D_Penghu;\r\n 刑事金門 = this.M_D_Kinmen;\r\n 刑事連江 = this.M_D_Lienchiang;\r\n 刑事臺灣高等 = this.M_H;\r\n 刑事臺中分院 = this.M_H_Taichung;\r\n 刑事臺南分院 = this.M_H_Tainan;\r\n 刑事花蓮分院 = this.M_H_Hualien;\r\n 刑事高雄分院 = this.M_H_Kaohsiung;\r\n 刑事金門分院 = this.M_H_Kinmen;\r\n 刑事最高法院 = this.M_S;\r\n 行政臺北 = this.A_D_Taipei;\r\n 行政士林 = this.A_D_Shihlin;\r\n 行政新北 = this.A_D_New_Taipei;\r\n 行政基隆 = this.A_D_Keelung;\r\n 行政宜蘭 = this.A_D_Yilan;\r\n 行政桃園 = this.A_D_Taoyuan;\r\n 行政新竹 = this.A_D_Hsinchu;\r\n 行政苗栗 = this.A_D_Miaoli;\r\n 行政臺中 = this.A_D_Taichung;\r\n 行政彰化 = this.A_D_Changhua;\r\n 行政南投 = this.A_D_Nantou;\r\n 行政雲林 = this.A_D_Yunlin;\r\n 行政嘉義 = this.A_D_Chiayi;\r\n 行政臺南 = this.A_D_Tainan;\r\n 行政高雄 = this.A_D_Kaohsiung;\r\n 行政橋頭 = this.A_D_Qiaotou;\r\n 行政花蓮 = this.A_D_Hualien;\r\n 行政臺東 = this.A_D_Taitung;\r\n 行政屏東 = this.A_D_Pingtung;\r\n 行政澎湖 = this.A_D_Penghu;\r\n 行政金門 = this.A_D_Kinmen;\r\n 行政連江 = this.A_D_Lienchiang;\r\n 行政臺北高等 = this.A_H_Taipei;\r\n 行政臺中高等 = this.A_H_Taichung;\r\n 行政高雄高等 = this.A_H_Kaohsiung;\r\n 行政最高法院 = this.A_S;\r\n 民事智慧財產法院 = this.V_I;\r\n 刑事智慧財產法院 = this.M_I;\r\n 行政智慧財產法院 = this.A_I;\r\n \"其他懲戒法院(公務員懲戒委員會)\" = this.O_P;\r\n 其他司法院刑事補償 = this.O_C;\r\n 其他司法院職務法庭 = this.O_J;\r\n 臺北起訴書 = this.In_D_Taipei;\r\n 士林檢察署 = this.In_D_Shihlin;\r\n 新北檢察署 = this.In_D_New_Taipei;\r\n 基隆檢察署 = this.In_D_Keelung;\r\n 宜蘭檢察署 = this.In_D_Yilan;\r\n 桃園檢察署 = this.In_D_Taoyuan;\r\n 新竹檢察署 = this.In_D_Hsinchu;\r\n 苗栗檢察署 = this.In_D_Miaoli;\r\n 臺中檢察署 = this.In_D_Taichung;\r\n 彰化檢察署 = this.In_D_Changhua;\r\n 南投檢察署 = this.In_D_Nantou;\r\n 雲林檢察署 = this.In_D_Yunlin;\r\n 嘉義檢察署 = this.In_D_Chiayi;\r\n 臺南檢察署 = this.In_D_Tainan;\r\n 高雄檢察署 = this.In_D_Kaohsiung;\r\n 橋頭檢察署 = this.In_D_Qiaotou;\r\n 花蓮檢察署 = this.In_D_Hualien;\r\n 臺東檢察署 = this.In_D_Taitung;\r\n 屏東檢察署 = this.In_D_Pingtung;\r\n 澎湖檢察署 = this.In_D_Penghu;\r\n 金門檢察署 = this.In_D_Kinmen;\r\n 連江檢察署 = this.In_D_Lienchiang;\r\n 臺灣高等檢察署 = this.In_H;\r\n 臺中分署檢察署 = this.In_H_Taichung;\r\n 臺南分署檢察署 = this.In_H_Tainan;\r\n 高雄分署檢察署 = this.In_H_Kaohsiung;\r\n 花蓮分署檢察署 = this.In_H_Hualien;\r\n 金門分署檢察署 = this.In_H_Kinmen;\r\n\r\n civilLocalCourts: JudgmentCourt[][] = [\r\n [this.民事臺北, this.民事士林, this.民事新北, this.民事基隆,],\r\n [this.民事宜蘭, this.民事桃園, this.民事新竹, this.民事苗栗,],\r\n [this.民事臺中, this.民事彰化, this.民事南投, this.民事雲林,],\r\n [this.民事嘉義, this.民事臺南, this.民事高雄, this.民事橋頭,],\r\n [this.民事花蓮, this.民事臺東, this.民事屏東, this.民事澎湖,],\r\n [this.民事金門, this.民事連江, this.民事高雄少年及家事法院,],\r\n ];\r\n civilHighCourts: JudgmentCourt[][] = [\r\n [this.民事臺灣高等, this.民事臺中分院, this.民事臺南分院],\r\n [this.民事花蓮分院, this.民事高雄分院, this.民事金門分院]\r\n ];\r\n civilSupremeCourts: JudgmentCourt[][] = [\r\n [this.民事最高法院]\r\n ];\r\n criminalLocalCourts: JudgmentCourt[][] = [\r\n [this.刑事臺北, this.刑事士林, this.刑事新北, this.刑事基隆,],\r\n [this.刑事宜蘭, this.刑事桃園, this.刑事新竹, this.刑事苗栗,],\r\n [this.刑事臺中, this.刑事彰化, this.刑事南投, this.刑事雲林,],\r\n [this.刑事嘉義, this.刑事臺南, this.刑事高雄, this.刑事橋頭,],\r\n [this.刑事花蓮, this.刑事臺東, this.刑事屏東, this.刑事澎湖,],\r\n [this.刑事金門, this.刑事連江,],\r\n ];\r\n criminalHighCourts: JudgmentCourt[][] = [\r\n [this.刑事臺灣高等, this.刑事臺中分院, this.刑事臺南分院],\r\n [this.刑事花蓮分院, this.刑事高雄分院, this.刑事金門分院]\r\n ];\r\n criminalSupremeCourts: JudgmentCourt[][] = [\r\n [this.刑事最高法院]\r\n ];\r\n administrativeLocalCourts: JudgmentCourt[][] = [\r\n [this.行政臺北, this.行政士林, this.行政新北, this.行政基隆,],\r\n [this.行政宜蘭, this.行政桃園, this.行政新竹, this.行政苗栗,],\r\n [this.行政臺中, this.行政彰化, this.行政南投, this.行政雲林,],\r\n [this.行政嘉義, this.行政臺南, this.行政高雄, this.行政橋頭,],\r\n [this.行政花蓮, this.行政臺東, this.行政屏東, this.行政澎湖,],\r\n [this.行政金門, this.行政連江,],\r\n ];\r\n administrativeHighCourts: JudgmentCourt[][] = [\r\n [this.行政臺北高等, this.行政臺中高等, this.行政高雄高等],\r\n ];\r\n administrativeSupremeCourts: JudgmentCourt[][] = [\r\n [this.行政最高法院]\r\n ];\r\n intellectualCourts: JudgmentCourt[][] = [\r\n [this.民事智慧財產法院, this.刑事智慧財產法院, this.行政智慧財產法院,]\r\n ];\r\n otherPCourts: JudgmentCourt[][] = [\r\n [this['其他懲戒法院(公務員懲戒委員會)']]\r\n ];\r\n otherCCourts: JudgmentCourt[][] = [\r\n [this.其他司法院刑事補償]\r\n ];\r\n otherJCourts: JudgmentCourt[][] = [\r\n [this.其他司法院職務法庭]\r\n ];\r\n indictmentLocalCourts: JudgmentCourt[][] = [\r\n [this.臺北起訴書, this.士林檢察署, this.新北檢察署, this.基隆檢察署,],\r\n [this.宜蘭檢察署, this.桃園檢察署, this.新竹檢察署, this.苗栗檢察署,],\r\n [this.臺中檢察署, this.彰化檢察署, this.南投檢察署, this.雲林檢察署,],\r\n [this.嘉義檢察署, this.臺南檢察署, this.高雄檢察署, this.橋頭檢察署,],\r\n [this.花蓮檢察署, this.臺東檢察署, this.屏東檢察署, this.澎湖檢察署,],\r\n [this.金門檢察署, this.連江檢察署,],\r\n ];\r\n indictmentHighCourts: JudgmentCourt[][] = [\r\n [this.臺灣高等檢察署, this.臺中分署檢察署, this.臺南分署檢察署,],\r\n [this.高雄分署檢察署, this.花蓮分署檢察署, this.金門分署檢察署,],\r\n ];\r\n\r\n getSelectedCourts(courts: JudgmentCourt[][]): JudgmentCourt[] {\r\n return courts.reduce((a, r) => {\r\n r.forEach(c => {\r\n if (c.selected) {\r\n a.push(c);\r\n }\r\n });\r\n return a;\r\n }, []);\r\n }\r\n getSelectedCourtsCivilLocal = () => this.getSelectedCourts(this.civilLocalCourts);\r\n getSelectedCourtsCivilHigh = () => this.getSelectedCourts(this.civilHighCourts);\r\n getSelectedCourtsCivilSupreme = () => this.getSelectedCourts(this.civilSupremeCourts);\r\n getSelectedCourtsCriminalLocal = () => this.getSelectedCourts(this.criminalLocalCourts);\r\n getSelectedCourtsCriminalHigh = () => this.getSelectedCourts(this.criminalHighCourts);\r\n getSelectedCourtsCriminalSupreme = () => this.getSelectedCourts(this.criminalSupremeCourts);\r\n getSelectedCourtsAdministrativeLocal = () => this.getSelectedCourts(this.administrativeLocalCourts);\r\n getSelectedCourtsAdministrativeHigh = () => this.getSelectedCourts(this.administrativeHighCourts);\r\n getSelectedCourtsAdministrativeSupreme = () => this.getSelectedCourts(this.administrativeSupremeCourts);\r\n getSelectedCourtsIntellectual = () => this.getSelectedCourts(this.intellectualCourts);\r\n getSelectedCourtsOtherP = () => this.getSelectedCourts(this.otherPCourts);\r\n getSelectedCourtsOtherC = () => this.getSelectedCourts(this.otherCCourts);\r\n getSelectedCourtsOtherJ = () => this.getSelectedCourts(this.otherJCourts);\r\n getSelectedCourtsIndictmentLocal = () => this.getSelectedCourts(this.indictmentLocalCourts);\r\n getSelectedCourtsIndictmentHigh = () => this.getSelectedCourts(this.indictmentHighCourts);\r\n\r\n getSelectedCourtsCivil = () => [\r\n ...this.getSelectedCourtsCivilLocal(),\r\n ...this.getSelectedCourtsCivilHigh(),\r\n ...this.getSelectedCourtsCivilSupreme(),\r\n ];\r\n getSelectedCourtsCriminal = () => [\r\n ...this.getSelectedCourtsCriminalLocal(),\r\n ...this.getSelectedCourtsCriminalHigh(),\r\n ...this.getSelectedCourtsCriminalSupreme(),\r\n ];\r\n getSelectedCourtsAdministrative = () => [\r\n ...this.getSelectedCourtsAdministrativeLocal(),\r\n ...this.getSelectedCourtsAdministrativeHigh(),\r\n ...this.getSelectedCourtsAdministrativeSupreme(),\r\n ];\r\n // getSelectedCourtsIntellectual = () => this.getSelectedCourts(this.intellectualCourts);\r\n getSelectedCourtsOther = () => [\r\n ...this.getSelectedCourtsOtherP(),\r\n ...this.getSelectedCourtsOtherC(),\r\n ...this.getSelectedCourtsOtherJ(),\r\n ];\r\n getSelectedCourtsIndictment = () => [\r\n ...this.getSelectedCourtsIndictmentLocal(),\r\n ...this.getSelectedCourtsIndictmentHigh(),\r\n ];\r\n // 取所有已選擇的法院\r\n getSelectedCourtsAll = () => [\r\n ...this.getSelectedCourtsCivil(),\r\n ...this.getSelectedCourtsCriminal(),\r\n ...this.getSelectedCourtsAdministrative(),\r\n ...this.getSelectedCourtsIntellectual(),\r\n ...this.getSelectedCourtsOther(),\r\n ...this.getSelectedCourtsIndictment(),\r\n ];\r\n\r\n resetCourtSelectedCivil(): void {\r\n this.getSelectedCourtsCivil().forEach(c => {\r\n c.selected = false;\r\n });\r\n }\r\n resetCourtSelectedCriminal(): void {\r\n this.getSelectedCourtsCriminal().forEach(c => {\r\n c.selected = false;\r\n });\r\n }\r\n resetCourtSelectedAdministrative(): void {\r\n this.getSelectedCourtsAdministrative().forEach(c => {\r\n c.selected = false;\r\n });\r\n }\r\n resetCourtSelectedIntellectual(): void {\r\n this.getSelectedCourtsIntellectual().forEach(c => {\r\n c.selected = false;\r\n });\r\n }\r\n resetCourtSelectedOther(): void {\r\n this.getSelectedCourtsOther().forEach(c => {\r\n c.selected = false;\r\n });\r\n }\r\n resetCourtSelectedIndictment(): void {\r\n this.getSelectedCourtsIndictment().forEach(c => {\r\n c.selected = false;\r\n });\r\n }\r\n\r\n\r\n // 重設所有法院選擇\r\n resetCourtSelectedAll(): void {\r\n this.getSelectedCourtsAll().forEach(c => {\r\n c.selected = false;\r\n });\r\n }\r\n\r\n typeFuncs: {\r\n [key in keyof typeof JudgmentTypeId]: {\r\n getSelectedCourts: () => JudgmentCourt[],\r\n resetCourtSelected: () => void\r\n }\r\n } = {\r\n Civil: {\r\n getSelectedCourts: () => this.getSelectedCourtsCivil(),\r\n resetCourtSelected: () => this.resetCourtSelectedCivil(),\r\n },\r\n Criminal: {\r\n getSelectedCourts: () => this.getSelectedCourtsCriminal(),\r\n resetCourtSelected: () => this.resetCourtSelectedCriminal(),\r\n },\r\n Administrative: {\r\n getSelectedCourts: () => this.getSelectedCourtsAdministrative(),\r\n resetCourtSelected: () => this.resetCourtSelectedAdministrative(),\r\n },\r\n Intellectual: {\r\n getSelectedCourts: () => this.getSelectedCourtsIntellectual(),\r\n resetCourtSelected: () => this.resetCourtSelectedIntellectual(),\r\n },\r\n Other: {\r\n getSelectedCourts: () => this.getSelectedCourtsOther(),\r\n resetCourtSelected: () => this.resetCourtSelectedOther(),\r\n },\r\n Indictment: {\r\n getSelectedCourts: () => this.getSelectedCourtsIndictment(),\r\n resetCourtSelected: () => this.resetCourtSelectedIndictment(),\r\n },\r\n }\r\n getSelectedCourtsByTypeId(typeId: JudgmentTypeId): JudgmentCourt[] {\r\n const typeName = JudgmentTypeId[typeId];\r\n const funcObj = this.typeFuncs[typeName];\r\n const courts = funcObj.getSelectedCourts();\r\n return courts;\r\n }\r\n resetCourtSelectedByTypeId(typeId: JudgmentTypeId): void {\r\n const typeName = JudgmentTypeId[typeId];\r\n const funcObj = this.typeFuncs[typeName];\r\n funcObj.resetCourtSelected();\r\n }\r\n\r\n\r\n}","import { JudgmentCourtId } from '../judgment-condition/judgment-court-id.enum';\r\nimport { IndictmentCourtId } from '../judgment-condition/indictment-court-id.enum';\r\nimport { JudgmentType } from '../judgment-condition/judgment-type.enum';\r\n\r\nexport class CountingCourt {\r\n court_id_string: string;\r\n court_id: number | JudgmentCourtId | IndictmentCourtId | string;\r\n counting: boolean = false;\r\n finish: boolean = false;\r\n count: number = 0;\r\n /** 法院種類 JudgmentType:民事、刑事... */\r\n type: JudgmentType;\r\n isIndictment: boolean = false;\r\n}\r\n","import { Component, OnInit, Input, ViewChild, ElementRef, OnDestroy, AfterContentInit } from '@angular/core';\r\nimport { JudgmentType } from '../judgment-condition/judgment-type.enum';\r\nimport { JudgmentSearchResultType } from './judgment-search-result-type.enum';\r\nimport { JudgmentResultTypeButton } from './judgment-result-type-button';\r\nimport { LoadingIconService } from 'projects/lwlib/src/loading-icon/loading-icon.service';\r\nimport { JudgmentService } from '../../child-content-storage-personal/judgment/judgment.service';\r\nimport { JudgmentCase } from '../../child-content-storage-personal/judgment/judgment-case';\r\nimport { JudgmentSearchCondition } from '../judgment-condition/judgment-search-condition';\r\nimport { JudgmentSearchService } from '../judgment-search.service';\r\nimport { JudgmentCourtCount } from '../../child-content-storage-personal/judgment/judgment-court-count';\r\nimport { ActionName } from 'projects/lwlib/src/action-name';\r\nimport { JudgmentCourtBlock } from '../judgment-condition/judgment-court-block';\r\nimport { JudgmentCourtIdOrder } from './judgment-court-id-order.enum';\r\nimport { JudgmentCourtId } from '../judgment-condition/judgment-court-id.enum';\r\nimport { PageChangeComponent } from 'projects/lwlib/src/page-change/page-change.component';\r\nimport { JudgmentProperty } from '../../child-content-storage-personal/judgment/judgment-property';\r\nimport { AppCommonService } from 'projects/desktop/src/app/app-common.service';\r\nimport { of, Observable, interval, timer, from, forkJoin, observable, Subscriber } from 'rxjs';\r\nimport { tap, map, concatMap, switchMap, skipWhile, mergeAll, skipUntil, every, takeUntil, mergeMap } from 'rxjs/operators';\r\nimport { JudgmentCaseList } from '../../child-content-storage-personal/judgment/judgment-case-list';\r\nimport { Serializable } from 'projects/lwlib/src/serializable';\r\nimport { NotificationService } from 'projects/lwlib/src/notification/notification.service';\r\nimport { JudgmentTypeCourtBlock } from '../judgment-condition/judgment-type-court-block';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { ComposeType } from 'projects/lwlib/src/compose-search-popup/compose-type';\r\nimport { AppConfigService } from 'projects/desktop/src/app/app-config.service';\r\nimport { BroadcastEventListener } from 'ng2-signalr';\r\nimport { CaseName } from 'projects/lwlib/src/case-type/case-name';\r\nimport { IndictmentSearchService } from '../indictment-search.service';\r\nimport { IndictmentSearchCondition } from '../judgment-condition/indictment-search-condition';\r\nimport { IndictmentCourtId } from '../judgment-condition/indictment-court-id.enum';\r\nimport { IndictmentCourtIdOrder } from '../indictment-court-id-order.enum';\r\nimport { IndictmentCourtCount } from '../indictment-court-count';\r\nimport { IndictmentCase } from '../../child-content-storage-personal/judgment/indictment-case';\r\nimport { CourtId } from 'projects/lwlib/src/case-type/court-id.enum';\r\nimport { IndictmentCaseList } from '../indictment-case-list';\r\nimport { Court } from 'projects/lwlib/src/case-type/court';\r\nimport { CaseTypeId } from 'projects/lwlib/src/case-type/case-type-id.enum';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MaterialHelper } from 'projects/lwlib/src/material-helper';\r\nimport { SearchAgainPopupComponent } from 'projects/lwlib/src/search-again-popup/search-again-popup.component';\r\nimport { SearcherKeyword } from 'projects/lwlib/src/keyword-searcher/searcher-keyword';\r\nimport { LZStringService } from 'ng-lz-string';\r\nimport { JudgmentConditionSave } from '../judgment-condition/judgment-condition-save';\r\nimport { CountingCourt } from './counting-court';\r\nimport { PageChange2Component } from 'projects/lwlib/src/page-change2/page-change2.component';\r\nimport { PageChangeConfig } from 'projects/lwlib/src/page-change2/page-change-config';\r\nimport { LwExt } from '../../../../../../../lwlib/src/lib/lw-ext';\r\nimport { PrivateCasePopupComponent } from 'projects/lwlib/src/private-case-popup/private-case-popup.component';\r\n@Component({\r\n selector: 'app-judgment-result',\r\n templateUrl: './judgment-result.component.html',\r\n styleUrls: ['./judgment-result.component.scss']\r\n})\r\nexport class JudgmentResultComponent implements OnInit, OnDestroy {\r\n judgmentSearchResultType: any = JudgmentSearchResultType;\r\n judgmentProperty: any = JudgmentProperty;\r\n\r\n private rType = JudgmentSearchResultType;\r\n private tb = JudgmentResultTypeButton;\r\n\r\n get propertyName(): { [key in keyof typeof JudgmentProperty]: string } {\r\n return CaseName.propertyIdName;\r\n }\r\n\r\n\r\n @ViewChild('pageChangePro') pageChangePro: PageChange2Component;\r\n @ViewChild('pageChangeSimple') pageChangeSimple: PageChange2Component;\r\n @ViewChild('proListElement') proListElementRef: ElementRef;\r\n @ViewChild('simpleListElement') simpleListElementRef: ElementRef;\r\n\r\n\r\n\r\n\r\n /** true = 完整模式, false = 簡易模式 */\r\n get multipleMode(): boolean { return this.judgmentSearchService.isProMode; }\r\n set multipleMode(value) { this.judgmentSearchService.isProMode = value; }\r\n /** 完整檢索用,是否起訴書搜尋 */\r\n get isSearchIndictment(): boolean { return this.judgmentSearchService.isIndictment; }\r\n get isSearchJudgment(): boolean { return !this.judgmentSearchService.isIndictment; }\r\n\r\n // 搜尋條件\r\n get conditionJudgment(): JudgmentSearchCondition { return this.judgmentSearchService.conditionJudgment; }\r\n get conditionIndictment(): IndictmentSearchCondition { return this.judgmentSearchService.conditionIndictment; }\r\n firstSearch: boolean = true;\r\n\r\n conditionCache: JudgmentSearchCondition | IndictmentSearchCondition;\r\n get conditionCacheAsJudgment(): JudgmentSearchCondition {\r\n return this.conditionCache as JudgmentSearchCondition;\r\n }\r\n get conditionCacheAsIndictment(): IndictmentSearchCondition {\r\n return this.conditionCache as IndictmentSearchCondition;\r\n }\r\n\r\n /** 簡易檢索 */\r\n\r\n // 種類按鈕\r\n get judgmentTypeButton(): { [key in keyof typeof JudgmentSearchResultType]: JudgmentResultTypeButton } {\r\n return this.judgmentSearchService.judgmentTypeButton;\r\n }\r\n judgmentTypeButtonList: JudgmentResultTypeButton[];\r\n\r\n // 選擇的種類\r\n selectedType: JudgmentSearchResultType;\r\n columnNameProperty: string = '屬性';\r\n columnNameDate: string = '裁判日期';\r\n\r\n _pageChangeConfig: PageChangeConfig = new PageChangeConfig();\r\n get pageChangeConfig(): PageChangeConfig { return this._pageChangeConfig; }\r\n\r\n /** 專業檢索 */\r\n\r\n // 法院結果計數\r\n searchedTypeName: string;\r\n totalCount: number = 0;\r\n\r\n\r\n isCountingCourts: boolean = false;\r\n isNoResult: boolean = false;\r\n isSearchingCase: boolean = false;\r\n get showCaseList(): boolean {\r\n return !this.isNoResult\r\n && !this.isSearchingCase;\r\n }\r\n get showNoResult(): boolean {\r\n return this.isNoResult\r\n && !this.isSearchingCase;\r\n }\r\n\r\n searchingCaseListHash: string = '';\r\n\r\n /** 側邊的法院清單 */\r\n courtList: JudgmentCourtCount[];\r\n /** 側邊法院區塊 */\r\n courtBlockList: { name: string, list: JudgmentCourtCount[] }[];\r\n /** 側邊選擇的法院 */\r\n selectedCourtJudgment: JudgmentCourtCount;\r\n noteListJudgment: JudgmentCase[];\r\n\r\n\r\n courtListIndictment: IndictmentCourtCount[];\r\n courtBlockListIndictment: { name: string, list: IndictmentCourtCount[] }[];\r\n selectedCourtIndictment: IndictmentCourtCount;\r\n noteListIndictment: IndictmentCase[];\r\n\r\n /** 第一次搜尋的計數器 */\r\n firstSearchInterval;\r\n /** key = JudgmentCourtId */\r\n countingCourt: { [key: string]: CountingCourt } = {};\r\n /** 結果清單 */\r\n\r\n /** 搜尋中 */\r\n noteSearching: boolean = false;\r\n\r\n signalrListeners: { [key: string]: BroadcastEventListener } = {};\r\n\r\n\r\n constructor(\r\n public judgmentService: JudgmentService,\r\n public judgmentSearchService: JudgmentSearchService,\r\n private indictmentSearchService: IndictmentSearchService,\r\n private loadingIconService: LoadingIconService,\r\n public appCommonService: AppCommonService,\r\n private notificationService: NotificationService,\r\n private service: AppService,\r\n private configService: AppConfigService,\r\n private matDialog: MatDialog,\r\n private lzService: LZStringService,\r\n ) { }\r\n\r\n /** ==================================================================== */\r\n // 初始化\r\n /** ==================================================================== */\r\n ngOnInit() {\r\n if (this.multipleMode) {\r\n if (this.isSearchJudgment) {\r\n this.setupFullModeJudgment();\r\n } else if (this.isSearchIndictment) {\r\n this.setupFullModeIndictment();\r\n }\r\n } else {\r\n this.setupSimpleMode();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.firstSearchInterval != null) {\r\n clearInterval(this.firstSearchInterval);\r\n }\r\n this.clearListener();\r\n }\r\n\r\n /** 增加即時同步監聽 */\r\n addListener(name: string): BroadcastEventListener {\r\n this.signalrListeners[name] = this.service.addGetSignlaRSystemListener(name);\r\n return this.signalrListeners[name];\r\n }\r\n /** 清除即時同步監聽 */\r\n clearListener(): void {\r\n Object.keys(this.signalrListeners)\r\n .forEach(key => {\r\n this.service.removeSignalrListener(key);\r\n });\r\n }\r\n\r\n\r\n turnOnMultipleMode(): void {\r\n // this.judgmentSearchService.isProMode = this.multipleMode;\r\n this.judgmentSearchService.backToProCondition = this.multipleMode;\r\n this.backToConditionPage();\r\n }\r\n\r\n\r\n\r\n /** ==================================================================== */\r\n // 頁面操作\r\n /** ==================================================================== */\r\n /** 返回條件頁 */\r\n backToConditionPage(): void {\r\n this.reset();\r\n this.judgmentSearchService.resultMode = false;\r\n }\r\n\r\n\r\n\r\n\r\n /** ==================================================================== */\r\n // 條件操作 (再檢索)\r\n /** ==================================================================== */\r\n /** 再檢索彈窗 */\r\n openSearchAgainPopup(): void {\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n SearchAgainPopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '600px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n const sks: SearcherKeyword[] = [];\r\n if (this.conditionJudgment) {\r\n this.conditionJudgment.search_keywords.forEach((v, i) => {\r\n const sk = new SearcherKeyword();\r\n sk.index = v.index;\r\n sk.compose = v.compose;\r\n if (sk.compose == null) {\r\n sk.compose = ComposeType.And;\r\n }\r\n sk.kind = v.kind;\r\n sk.keyword = v.keyword;\r\n sk.disable = v.keyword ? true : false;\r\n sks.push(sk);\r\n });\r\n } else if (this.conditionIndictment) {\r\n this.conditionIndictment.search_keywords.forEach((v, i) => {\r\n const sk = new SearcherKeyword();\r\n sk.index = v.index;\r\n sk.compose = v.compose;\r\n if (sk.compose == null) {\r\n sk.compose = ComposeType.And;\r\n }\r\n sk.kind = v.kind;\r\n sk.keyword = v.keyword;\r\n sk.disable = v.keyword ? true : false;\r\n sks.push(sk);\r\n });\r\n }\r\n\r\n\r\n dlRef.componentInstance.updateKeywords(sks);\r\n dlRef.componentInstance.saveInput = () => {\r\n // 修改儲存紀錄\r\n const compressedSave: string = this.service.getLocal('judgment_condition');\r\n const saveJson = this.lzService.decompress(compressedSave as string);\r\n const save: JudgmentConditionSave = JSON.parse(saveJson);\r\n\r\n let newSearcherKeywords;\r\n if (this.conditionJudgment) {\r\n newSearcherKeywords = this.conditionJudgment.search_keywords;\r\n }\r\n if (this.conditionIndictment) {\r\n newSearcherKeywords = this.conditionIndictment.search_keywords;\r\n }\r\n\r\n newSearcherKeywords.forEach((kw, i) => {\r\n if (i < 6) {\r\n save['composeKeyword' + (i + 1)] = kw.keyword;\r\n save['composeCommand' + (i + 1) + 'Type'] = kw.compose;\r\n }\r\n });\r\n\r\n const newSaveJson = JSON.stringify(save);\r\n const newCompressedSave = this.lzService.compress(newSaveJson);\r\n this.service.setLocal('judgment_condition', newCompressedSave);\r\n };\r\n dlRef.componentInstance.onSubmit = (newSearcherKeywords: SearcherKeyword[]) => {\r\n this.firstSearch = true;\r\n\r\n this.selectedCourtJudgment = null;\r\n this.selectedCourtIndictment = null;\r\n\r\n this.noteListIndictment = null;\r\n this.noteListJudgment = null;\r\n\r\n // this.judgmentTypeButtonList.forEach(v => {\r\n // v.count = 0;\r\n // v.countRead = false;\r\n // v.finish = false;\r\n // });\r\n\r\n const cca = dlRef.componentInstance.composeCommands.toArray();\r\n if (this.conditionJudgment) {\r\n this.conditionJudgment.page_index = 1;\r\n this.conditionJudgment.search_keywords = newSearcherKeywords;\r\n newSearcherKeywords.forEach((kw, i) => {\r\n if (i > 0) {\r\n this.conditionJudgment.search_keywords[i].compose = cca[i - 1].selectedTypeItem.type;\r\n }\r\n });\r\n // this.conditionCache = JSON.parse(JSON.stringify(this.conditionJudgment));\r\n // this.convertConditionKeyword(this.conditionCache.search_keywords);\r\n }\r\n if (this.conditionIndictment) {\r\n this.conditionIndictment.page_index = 1;\r\n this.conditionIndictment.search_keywords = newSearcherKeywords;\r\n newSearcherKeywords.forEach((kw, i) => {\r\n if (i > 0) {\r\n this.conditionIndictment.search_keywords[i].compose = cca[i - 1].selectedTypeItem.type;\r\n }\r\n });\r\n // this.conditionCache = JSON.parse(JSON.stringify(this.conditionIndictment));\r\n // this.convertConditionKeyword(this.conditionCache.search_keywords);\r\n }\r\n\r\n // dlRef.componentInstance.saveInput();\r\n {\r\n // 修改儲存紀錄\r\n const compressedSave: string = this.service.getLocal('judgment_condition');\r\n const saveJson = this.lzService.decompress(compressedSave as string);\r\n const save: JudgmentConditionSave = JSON.parse(saveJson);\r\n\r\n let newSearcherKeywords;\r\n if (this.conditionJudgment) {\r\n newSearcherKeywords = this.conditionJudgment.search_keywords;\r\n }\r\n if (this.conditionIndictment) {\r\n newSearcherKeywords = this.conditionIndictment.search_keywords;\r\n }\r\n\r\n newSearcherKeywords.forEach((kw, i) => {\r\n if (i < 6) {\r\n save['composeKeyword' + (i + 1)] = kw.keyword;\r\n save['composeCommand' + (i + 1) + 'Type'] = kw.compose;\r\n }\r\n });\r\n\r\n const newSaveJson = JSON.stringify(save);\r\n const newCompressedSave = this.lzService.compress(newSaveJson);\r\n this.service.setLocal('judgment_condition', newCompressedSave);\r\n }\r\n\r\n if (this.isSearchJudgment) {\r\n this.setupFullModeJudgment();\r\n } else if (this.isSearchIndictment) {\r\n this.setupFullModeIndictment();\r\n }\r\n\r\n // this.setupFullMode();\r\n // this.updateCaseList();\r\n // this.updateNoteList();\r\n\r\n dlRef.close();\r\n };\r\n }\r\n /** 設定關鍵字案號轉換 */\r\n convertConditionKeyword(search_keywords: SearcherKeyword[]): void {\r\n const cnMatchString = '^([' + LwExt.ChineseNumber.allChineseNumber + ']+)'\r\n + ',*([^\\d' + LwExt.ChineseNumber.allChineseNumber + ']+?),*'\r\n + '([' + LwExt.ChineseNumber.allChineseNumber + ']+)$';\r\n const cnRegexp = new RegExp(cnMatchString);\r\n\r\n for (const keyword of search_keywords) {\r\n const m = keyword.keyword.match(/^(\\d+),*([^\\d]+?),*(\\d+)$/);\r\n if (m != null) {\r\n const convertedKeyword = `${m[1]}年度${m[2]}字第${m[3]}號`;\r\n keyword.keyword = convertedKeyword;\r\n console.log('set convert keyword:' + convertedKeyword);\r\n continue;\r\n }\r\n\r\n const m2 = cnRegexp.exec(keyword.keyword);\r\n if (m2 != null) {\r\n const convertedKeyword = `${m2[1]}年度${m2[2]}字第${m2[3]}號`;\r\n keyword.keyword = convertedKeyword;\r\n console.log('set convert keyword:' + convertedKeyword);\r\n continue;\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n /** ==================================================================== */\r\n // 完整搜尋 - 裁判類\r\n /** ==================================================================== */\r\n /** 完整搜尋初始化,裁判類 */\r\n setupFullModeJudgment(): void {\r\n // 設定搜尋中\r\n this.isSearchingCase = true;\r\n this.isCountingCourts = true;\r\n\r\n // 清除搜尋結果\r\n this.reset();\r\n\r\n // 設定換頁器\r\n this.pageChangeConfig.enableBack = true;\r\n this.pageChangeConfig.enableRefresh = false;\r\n this.pageChangeConfig.onPageChange = (pageIndex: number) => {\r\n this.conditionJudgment.page_index = pageIndex;\r\n this.updateFullModeJudgmentCaseList();\r\n };\r\n this.pageChangeConfig.onBack = () => {\r\n this.backToConditionPage();\r\n };\r\n\r\n // 設定左邊法院清單\r\n {\r\n /** 搜尋種類id, 民事、刑事、起訴書... */\r\n const courtTypeId = this.conditionJudgment.type;\r\n const courtTypeIdString = JudgmentSearchResultType[courtTypeId];\r\n /** 左邊法院清單大標題 */\r\n const searchTypeName = this.judgmentSearchService.conditionBlocks[courtTypeIdString].name;\r\n this.searchedTypeName = searchTypeName;\r\n\r\n // 排序檢索條件的法院順序\r\n let court_id_strings: string[] = [];\r\n court_id_strings = this.conditionJudgment.courts.map(v => JudgmentCourtId[v]);\r\n\r\n // 設定法院清單\r\n for (const courtIdString of court_id_strings) {\r\n const cc = new CountingCourt();\r\n\r\n // 設定法院id\r\n cc.court_id_string = courtIdString;\r\n cc.court_id = JudgmentCourtId[courtIdString];\r\n // 是否起訴書案件\r\n cc.isIndictment = false;\r\n // 設定法院種類\r\n cc.type = this.judgmentSearchService.typeIdName[courtIdString[0]];\r\n this.countingCourt[courtIdString] = cc;\r\n }\r\n\r\n // 設定法院清單區塊\r\n const _courtBlockList: { [key: string]: any[] } = {};\r\n for (const courtIdString of court_id_strings) {\r\n const countingCourt = this.countingCourt[courtIdString];\r\n let levelIdString = courtIdString[2];\r\n\r\n const courtLevelName = this.judgmentSearchService.courtLevelName[levelIdString];\r\n\r\n if (_courtBlockList[courtLevelName] == null) {\r\n _courtBlockList[courtLevelName] = [];\r\n this.courtBlockList.push({\r\n name: courtLevelName,\r\n list: _courtBlockList[courtLevelName],\r\n });\r\n }\r\n\r\n const court: JudgmentCourtCount = {\r\n court_id: countingCourt.court_id as any,\r\n count: -1,\r\n level: levelIdString,\r\n type: this.judgmentSearchService.typeIdName[courtIdString[0]]\r\n };\r\n\r\n this.courtList.push(court);\r\n _courtBlockList[courtLevelName].push(court);\r\n }\r\n }\r\n\r\n // 請求計數所有法院數量\r\n // this.updateFullModeJudgmentCourtCountList(this.conditionJudgment);\r\n this.updateFullModeJudgmentCourtCountList2(this.conditionJudgment);\r\n\r\n // 設定即時同步接收\r\n const signlarConnSubscribe = this.service.onSignlarConnected.subscribe((connected: boolean) => {\r\n if (connected) {\r\n this.addListener('judgment/note').subscribe((v) => {\r\n const noteIndex = this.noteListJudgment.findIndex(n => n.case_id === v.case_id);\r\n console.log(noteIndex);\r\n \r\n if (noteIndex > -1) {\r\n this.judgmentService.getNoteDataSearchResultObserver(this.conditionJudgment.search_keywords, v.case_id).subscribe(note => {\r\n const sourceNote = this.noteListJudgment[noteIndex];\r\n const convertedNote: JudgmentCase = Serializable.extendObjectFromResponseObject(new JudgmentCase(), note);\r\n convertedNote.sn = sourceNote.sn;\r\n this.noteListJudgment[noteIndex] = convertedNote;\r\n });\r\n }\r\n });\r\n setTimeout(() => { signlarConnSubscribe.unsubscribe(); }, 0);\r\n }\r\n });\r\n }\r\n /** 完整模式,裁判類,計數所有法院,單一發送搜尋請求 */\r\n updateFullModeJudgmentCourtCountList(condition: any): void {\r\n // const _condition = JSON.parse(JSON.stringify(condition));\r\n this.judgmentService.searchCourtCountMultiObserver(condition)\r\n .pipe(\r\n map((resp: JudgmentCourtCount[]) => {\r\n console.log(resp);\r\n\r\n // const countingCourts: CountingCourt[] = [];\r\n\r\n // 把搜尋結果轉成dict\r\n const countingResultDict = {};\r\n for (const countResultItem of resp) {\r\n const courtId = countResultItem.court_id;\r\n const courtIdString = JudgmentCourtId[courtId];\r\n countingResultDict[courtIdString] = countResultItem;\r\n }\r\n\r\n\r\n // 全部法院迴圈,設定搜尋結果\r\n for (const court of this.courtList) {\r\n const courtIdString = JudgmentCourtId[court.court_id];\r\n\r\n // 取搜尋結果數量\r\n let resultCount = 0;\r\n if (countingResultDict[courtIdString] != null) {\r\n resultCount = countingResultDict[courtIdString].count;\r\n }\r\n court.count = resultCount;\r\n if (court.count <= 0) {\r\n court.count = 0;\r\n }\r\n\r\n // 設定法院已結束計數\r\n const countCourt: CountingCourt = this.countingCourt[courtIdString];\r\n countCourt.count = resultCount;\r\n countCourt.counting = false;\r\n countCourt.finish = true;\r\n\r\n this.totalCount += countCourt.count;\r\n\r\n if (this.selectedCourtJudgment == null && countCourt.count > 0) {\r\n this.selectedCourtJudgment = court;\r\n this.updateFullModeJudgmentCaseList(\r\n () => {\r\n this.pageChangePro.count = court.count;\r\n }\r\n );\r\n }\r\n }\r\n\r\n this.isCountingCourts = false;\r\n this.isNoResult = Object.values(this.countingCourt).every(c => c.finish && c.count == 0);\r\n if (this.isNoResult) {\r\n this.isSearchingCase = false;\r\n }\r\n })\r\n )\r\n .subscribe();\r\n }\r\n /** 完整模式,裁判類,計數所有法院,舊版,多次發送搜尋請求 */\r\n updateFullModeJudgmentCourtCountList2(condition: any): void {\r\n\r\n const countingResultDict = {};\r\n\r\n from(this.courtList)\r\n .pipe(\r\n mergeMap(c => {\r\n const condition_ = JSON.parse(JSON.stringify(condition));\r\n condition_.court_id = c.court_id;\r\n condition_.courts = [];\r\n const court_id_string = JudgmentCourtId[c.court_id];\r\n const countingCourt = this.countingCourt[court_id_string];\r\n countingCourt.counting = true;\r\n return this.judgmentService.searchCourtCountOneObserver(condition_);\r\n }, 5),\r\n tap((resp: JudgmentCourtCount) => {\r\n const courtId = resp.court_id;\r\n const courtIdString = JudgmentCourtId[courtId];\r\n countingResultDict[courtIdString] = resp;\r\n {\r\n const countCourt: CountingCourt = this.countingCourt[courtIdString];\r\n countCourt.counting = false;\r\n countCourt.finish = true;\r\n countCourt.count = resp.count;\r\n\r\n const court = this.courtList.find(c => c.court_id == courtId);\r\n court.count = countCourt.count;\r\n\r\n this.totalCount += countCourt.count;\r\n }\r\n\r\n // 全部法院迴圈,設定搜尋結果\r\n if (this.selectedCourtJudgment == null) {\r\n for (const court of this.courtList) {\r\n const courtIdString = JudgmentCourtId[court.court_id];\r\n const countCourt: CountingCourt = this.countingCourt[courtIdString];\r\n if (countCourt.counting) {\r\n break;\r\n }\r\n if (!countCourt.finish) {\r\n break;\r\n }\r\n\r\n if (countCourt.count > 0) {\r\n this.selectedCourtJudgment = court;\r\n this.updateFullModeJudgmentCaseList(\r\n () => {\r\n this.pageChangePro.count = court.count;\r\n }\r\n );\r\n break;\r\n }\r\n }\r\n }\r\n })\r\n )\r\n .subscribe({\r\n complete: () => {\r\n this.isCountingCourts = false;\r\n this.isNoResult = Object.values(this.countingCourt).every(c => c.finish && c.count == 0);\r\n if (this.isNoResult) {\r\n this.isSearchingCase = false;\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n /** 完整模式,裁判類,更新裁判案件清單 */\r\n updateFullModeJudgmentCaseList$(): Observable {\r\n // 設定搜尋單一法院的案件清單,因為不能影響原本搜尋條件,這裡克隆一個搜尋條件用\r\n const condition_ = JSON.parse(JSON.stringify(this.conditionJudgment));\r\n condition_.court_id = this.selectedCourtJudgment.court_id;\r\n condition_.courts = [];\r\n\r\n const caseListHash = new Date().getTime().toString();\r\n this.searchingCaseListHash = caseListHash;\r\n\r\n return this.judgmentService.searchProOneObserver(condition_)\r\n .pipe(\r\n tap((result: JudgmentCaseList) => {\r\n result.list = result.list.map(item => Serializable.extendObjectFromResponseObject(new JudgmentCase(), item));\r\n if (result.page_index == (this.conditionJudgment.page_index - 1)) {\r\n this.pageChangePro.count = result.count;\r\n this.noteListJudgment = result.list;\r\n }\r\n })\r\n );\r\n }\r\n /** 完整模式,裁判類,更新案件清單 */\r\n updateFullModeJudgmentCaseList(onComplete: () => void = null): void {\r\n this.isSearchingCase = true;\r\n this.updateFullModeJudgmentCaseList$().subscribe({\r\n complete: () => {\r\n this.isSearchingCase = false;\r\n if (onComplete != null) {\r\n onComplete();\r\n }\r\n }\r\n });\r\n }\r\n\r\n /** 選擇裁判法院 */\r\n selectJudgmentCourt(court: JudgmentCourtCount): void {\r\n if (this.selectedCourtJudgment === court) {\r\n return;\r\n }\r\n this.selectedCourtJudgment = court;\r\n this.conditionJudgment.page_index = 1;\r\n // this.conditionCache.court_id = court.court_id;\r\n // this.conditionCache.courts = [];\r\n\r\n this.pageChangePro.pageIndex = 1;\r\n this.pageChangePro.count = court.count;\r\n\r\n this.updateFullModeJudgmentCaseList();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n /** ==================================================================== */\r\n // 完整搜尋 - 起訴書\r\n /** ==================================================================== */\r\n /** 完整搜尋初始化,起訴書 */\r\n setupFullModeIndictment(): void {\r\n // 設定搜尋中\r\n this.isSearchingCase = true;\r\n this.isCountingCourts = true;\r\n\r\n // 清除搜尋結果\r\n this.reset();\r\n\r\n // 設定換頁器\r\n this.pageChangeConfig.enableBack = true;\r\n this.pageChangeConfig.enableRefresh = false;\r\n this.pageChangeConfig.onPageChange = (pageIndex: number) => {\r\n this.conditionIndictment.page_index = pageIndex;\r\n this.updateFullModeIndictmentCaseList();\r\n };\r\n this.pageChangeConfig.onBack = () => {\r\n this.backToConditionPage();\r\n };\r\n\r\n // 設定左邊法院清單\r\n {\r\n /** 搜尋種類id, 民事、刑事、起訴書... */\r\n const courtTypeId = this.conditionIndictment.type;\r\n const courtTypeIdString = JudgmentSearchResultType[courtTypeId];\r\n /** 左邊法院清單大標題 */\r\n const searchTypeName = this.judgmentSearchService.conditionBlocks[courtTypeIdString].name;\r\n this.searchedTypeName = searchTypeName;\r\n\r\n // 排序檢索條件的法院順序\r\n const icio = IndictmentCourtIdOrder;\r\n this.conditionIndictment.courts.sort((a, b) => icio[IndictmentCourtId[a]] - icio[IndictmentCourtId[b]]);\r\n\r\n\r\n // 搜尋目標的法院id清單\r\n let court_id_strings: string[] = [];\r\n court_id_strings = this.conditionIndictment.courts.map(v => IndictmentCourtId[v]);\r\n\r\n // 設定法院清單\r\n for (const courtIdString of court_id_strings) {\r\n const cc = new CountingCourt();\r\n\r\n // 設定法院id\r\n cc.court_id_string = courtIdString;\r\n cc.court_id = IndictmentCourtId[courtIdString];\r\n // 是否起訴書案件\r\n cc.isIndictment = this.isSearchIndictment;\r\n // 設定法院種類\r\n cc.type = this.judgmentSearchService.typeIdName[courtIdString[0]];\r\n\r\n this.countingCourt[courtIdString] = cc;\r\n }\r\n\r\n // 設定法院清單區塊\r\n const _courtBlockList: { [key: string]: any[] } = {};\r\n for (const courtIdString of court_id_strings) {\r\n const countingCourt = this.countingCourt[courtIdString];\r\n let levelIdString = courtIdString[3] + 'J';\r\n const courtLevelName = this.judgmentSearchService.courtLevelName[levelIdString];\r\n\r\n let courtBlockList = this.courtBlockListIndictment;\r\n if (_courtBlockList[courtLevelName] == null) {\r\n _courtBlockList[courtLevelName] = [];\r\n courtBlockList.push({\r\n name: courtLevelName,\r\n list: _courtBlockList[courtLevelName],\r\n });\r\n }\r\n\r\n const court: JudgmentCourtCount = {\r\n court_id: countingCourt.court_id as any,\r\n count: -1,\r\n level: levelIdString,\r\n type: this.judgmentSearchService.typeIdName[courtIdString[0]]\r\n };\r\n\r\n this.courtList.push(court);\r\n _courtBlockList[courtLevelName].push(court);\r\n }\r\n }\r\n\r\n // 請求計數所有法院數量\r\n // this.updateFullModeIndictmentCourtCountList(this.conditionIndictment);\r\n this.updateFullModeIndictmentCourtCountList2(this.conditionIndictment);\r\n\r\n // 設定即時同步接收\r\n const signlarConnSubscribe = this.service.onSignlarConnected.subscribe((connected: boolean) => {\r\n if (connected) {\r\n this.addListener('indictment/note').subscribe((v) => {\r\n const noteIndex = this.noteListIndictment.findIndex(n => n.case_id === v.case_id);\r\n if (noteIndex > -1) {\r\n this.indictmentSearchService.getNoteDataSearchResultObserver(this.conditionIndictment.search_keywords, v.case_id).subscribe(note => {\r\n const sourceNote = this.noteListIndictment[noteIndex];\r\n const convertedNote: any = Serializable.extendObjectFromResponseObject(new IndictmentCase(), note);\r\n convertedNote.sn = sourceNote.sn;\r\n this.noteListIndictment[noteIndex] = convertedNote;\r\n });\r\n }\r\n });\r\n setTimeout(() => { signlarConnSubscribe.unsubscribe(); }, 0);\r\n }\r\n });\r\n }\r\n /** 完整模式,起訴書,計數所有法院 */\r\n updateFullModeIndictmentCourtCountList(condition: any): void {\r\n this.indictmentSearchService.searchCourtCountMultiObserver(condition)\r\n .pipe(\r\n map((resp: JudgmentCourtCount[]) => {\r\n console.log(resp);\r\n\r\n // 把搜尋結果轉成dict\r\n const countingResultDict = {};\r\n for (const countResultItem of resp) {\r\n const courtId = countResultItem.court_id;\r\n const courtIdString = IndictmentCourtId[courtId];\r\n countingResultDict[courtIdString] = countResultItem;\r\n }\r\n\r\n // 全部法院迴圈,設定搜尋結果\r\n for (const court of this.courtList) {\r\n const courtIdString = IndictmentCourtId[court.court_id];\r\n\r\n // 取搜尋結果數量\r\n let resultCount = 0;\r\n if (countingResultDict[courtIdString] != null) {\r\n resultCount = countingResultDict[courtIdString].count;\r\n }\r\n court.count = resultCount;\r\n if (court.count <= 0) {\r\n court.count = 0;\r\n }\r\n\r\n // 設定法院已結束計數\r\n const countCourt: CountingCourt = this.countingCourt[courtIdString];\r\n countCourt.count = resultCount;\r\n countCourt.counting = false;\r\n countCourt.finish = true;\r\n\r\n this.totalCount += countCourt.count;\r\n\r\n if (this.selectedCourtIndictment == null && countCourt.count > 0) {\r\n this.selectedCourtIndictment = court as IndictmentCourtCount;\r\n this.updateFullModeIndictmentCaseList(\r\n () => {\r\n this.pageChangePro.count = court.count;\r\n }\r\n );\r\n }\r\n }\r\n\r\n this.isCountingCourts = false;\r\n this.isNoResult = Object.values(this.countingCourt).every(c => c.finish && c.count == 0);\r\n if (this.isNoResult) {\r\n this.isSearchingCase = false;\r\n }\r\n })\r\n )\r\n .subscribe();\r\n }\r\n /** 完整模式,裁判類,計數所有法院,舊版,多次發送搜尋請求 */\r\n updateFullModeIndictmentCourtCountList2(condition: any): void {\r\n const countingResultDict = {};\r\n from(this.courtList)\r\n .pipe(\r\n mergeMap(c => {\r\n const condition_ = JSON.parse(JSON.stringify(condition));\r\n condition_.court_id = c.court_id;\r\n condition_.courts = [];\r\n const court_id_string = IndictmentCourtId[c.court_id];\r\n const countingCourt = this.countingCourt[court_id_string];\r\n countingCourt.counting = true;\r\n return this.indictmentSearchService.searchCourtCountOneObserver(condition_);\r\n }, 5),\r\n tap((resp: IndictmentCourtCount) => {\r\n const courtId = resp.court_id;\r\n const courtIdString = IndictmentCourtId[courtId];\r\n countingResultDict[courtIdString] = resp;\r\n {\r\n const countCourt: CountingCourt = this.countingCourt[courtIdString];\r\n countCourt.counting = false;\r\n countCourt.finish = true;\r\n countCourt.count = resp.count;\r\n\r\n const court = this.courtList.find(c => c.court_id == courtId);\r\n court.count = countCourt.count;\r\n\r\n this.totalCount += countCourt.count;\r\n }\r\n\r\n // 全部法院迴圈,設定搜尋結果\r\n if (this.selectedCourtIndictment == null) {\r\n for (const court of this.courtList) {\r\n const courtIdString = IndictmentCourtId[court.court_id];\r\n const countCourt: CountingCourt = this.countingCourt[courtIdString];\r\n if (countCourt.counting) {\r\n break;\r\n }\r\n if (!countCourt.finish) {\r\n break;\r\n }\r\n\r\n if (countCourt.count > 0) {\r\n this.selectedCourtIndictment = court as IndictmentCourtCount;\r\n this.updateFullModeIndictmentCaseList(\r\n () => {\r\n this.pageChangePro.count = court.count;\r\n }\r\n );\r\n break;\r\n }\r\n }\r\n }\r\n })\r\n )\r\n .subscribe({\r\n complete: () => {\r\n this.isCountingCourts = false;\r\n this.isNoResult = Object.values(this.countingCourt).every(c => c.finish && c.count == 0);\r\n if (this.isNoResult) {\r\n this.isSearchingCase = false;\r\n }\r\n }\r\n });\r\n }\r\n\r\n /** 完整模式,起訴書,更新裁判案件清單 */\r\n updateFullModeIndictmentCaseList$(): Observable {\r\n const condition_ = JSON.parse(JSON.stringify(this.conditionIndictment));\r\n condition_.court_id = this.selectedCourtIndictment.court_id;\r\n condition_.courts = [];\r\n\r\n const caseListHash = new Date().getTime().toString();\r\n this.searchingCaseListHash = caseListHash;\r\n\r\n return this.indictmentSearchService.searchProOneObserver(condition_)\r\n .pipe(\r\n tap((result: IndictmentCaseList) => {\r\n result.list = result.list.map((item: IndictmentCase) => Serializable.extendObjectFromResponseObject(new IndictmentCase(), item));\r\n if (result.page_index == (this.conditionIndictment.page_index - 1)) {\r\n this.pageChangePro.count = result.count;\r\n this.noteListIndictment = result.list;\r\n }\r\n })\r\n );\r\n }\r\n /** 完整模式,起訴書,更新案件清單 */\r\n updateFullModeIndictmentCaseList(onComplete: () => void = null): void {\r\n this.isSearchingCase = true;\r\n this.updateFullModeIndictmentCaseList$().subscribe({\r\n complete: () => {\r\n this.isSearchingCase = false;\r\n if (onComplete != null) {\r\n onComplete();\r\n }\r\n }\r\n });\r\n }\r\n\r\n /** 選擇起訴書法院 */\r\n selectIndictmentCourt(court: IndictmentCourtCount): void {\r\n if (this.selectedCourtIndictment === court) {\r\n return;\r\n }\r\n this.selectedCourtIndictment = court;\r\n this.conditionIndictment.page_index = 1;\r\n // this.conditionCache.page_index = 1;\r\n // this.conditionCache.court_id = court.court_id;\r\n // this.conditionCache.courts = [];\r\n\r\n this.pageChangePro.pageIndex = 1;\r\n this.pageChangePro.count = court.count;\r\n\r\n this.updateFullModeIndictmentCaseList();\r\n\r\n // this.pageChangePro.clickGoToPage(1);\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n /** ==================================================================== */\r\n // 簡易搜尋\r\n /** ==================================================================== */\r\n setupSimpleMode(): void {\r\n this.isSearchingCase = true;\r\n this.isCountingCourts = true;\r\n\r\n // 重設法院清單\r\n this.reset();\r\n\r\n // 設定換頁器\r\n this.pageChangeConfig.enableBack = true;\r\n this.pageChangeConfig.enableRefresh = false;\r\n this.pageChangeConfig.onPageChange = (pageIndex: number) => {\r\n this.conditionJudgment.page_index = pageIndex;\r\n this.updateCaseListSimple();\r\n };\r\n this.pageChangeConfig.onBack = () => {\r\n this.backToConditionPage();\r\n };\r\n\r\n\r\n this.judgmentTypeButtonList = Object\r\n .keys(this.judgmentSearchResultType)\r\n .filter(v => isNaN(v as any))\r\n .map(k => this.judgmentTypeButton[k]);\r\n // console.log(this.conditionJudgment);\r\n // console.log(this.conditionIndictment);\r\n // this.backToConditionPage();\r\n // return;\r\n\r\n\r\n\r\n\r\n // 設定法院清單\r\n {\r\n // 設定裁判類\r\n const judgmentCourtIdStrings: string[] = this.judgmentSearchService.getSimpleSearchTypeCourtList();\r\n for (const courtIdString of judgmentCourtIdStrings) {\r\n const cc = new CountingCourt();\r\n cc.court_id_string = courtIdString;\r\n cc.isIndictment = false;\r\n cc.court_id = JudgmentCourtId[courtIdString];\r\n\r\n let type = courtIdString[0];\r\n if (courtIdString.substring(2) == 'I') {\r\n type = 'I';\r\n }\r\n cc.type = this.judgmentSearchService.typeIdName[type];\r\n\r\n this.countingCourt[courtIdString] = cc;\r\n }\r\n\r\n\r\n // 設定起訴書\r\n const indictmentCourtIdStrings: string[] = this.indictmentSearchService.getSimpleSearchTypeCourtIdNameList();\r\n for (const courtIdString of indictmentCourtIdStrings) {\r\n const cc = new CountingCourt();\r\n cc.court_id_string = courtIdString;\r\n cc.isIndictment = true;\r\n cc.court_id = IndictmentCourtId[courtIdString];\r\n cc.type = JudgmentType.Indictment;\r\n this.countingCourt[courtIdString] = cc;\r\n }\r\n }\r\n\r\n this.selectedType = JudgmentSearchResultType.All;\r\n this.judgmentTypeButton.All.countRead = true;\r\n\r\n this.updateCourtCountListSimple();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n /** ==================================================================== */\r\n // 檢索結果 - 操作\r\n /** ==================================================================== */\r\n\r\n /** 重設、清除搜尋結果 */\r\n reset(): void {\r\n this.totalCount = 0;\r\n this.searchedTypeName = '';\r\n this.countingCourt = {};\r\n this.courtBlockList = [];\r\n this.courtBlockListIndictment = [];\r\n this.courtList = [];\r\n this.courtListIndictment = [];\r\n if (this.judgmentTypeButtonList != null) {\r\n this.judgmentTypeButtonList.forEach(item => {\r\n item.loading = true;\r\n item.finish = false;\r\n });\r\n }\r\n this.noteListJudgment = [];\r\n }\r\n /** 私人案件 (不公開) */\r\n openPrivateCasePopup(): void {\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PrivateCasePopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '700px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n }\r\n\r\n /** 開啟裁判案件 */\r\n openNoteJudgment(note: JudgmentCase, loadSave: boolean): void {\r\n if (note.case_content_type == 'private') {\r\n this.openPrivateCasePopup();\r\n return;\r\n }\r\n\r\n const url: string = this.getNoteUrl(note, loadSave);\r\n window.open(url);\r\n }\r\n /** 開啟起訴書案件 */\r\n openNoteIndictment(note: IndictmentCase, loadSave: boolean): void {\r\n const url: string = this.getNoteUrlIndictment(note, loadSave);\r\n window.open(url);\r\n }\r\n\r\n\r\n\r\n /** ==================================================================== */\r\n // 檢索結果 - 完整模式 - 顯示\r\n /** ==================================================================== */\r\n\r\n\r\n /** 取高亮關鍵字字串 */\r\n getHighlightKeywordString(search_keywords: SearcherKeyword[]): string {\r\n const keyword = search_keywords.filter(k => {\r\n return k.compose !== ComposeType.Not\r\n && k.keyword;\r\n })\r\n .map(k => k.keyword.replace(/\\s+/g, ''))\r\n .join(' ');\r\n\r\n return keyword;\r\n }\r\n /** 屬性名稱 */\r\n getPropertyName(note: JudgmentCase): string {\r\n // return this.propertyName[JudgmentProperty[judgmentProperty]];\r\n if (note.case_base === 'indictment') {\r\n // 起訴書: PropertyId.Indictment_Indictment,\r\n // 追加起訴書: PropertyId.Indictment_AppendIndictment,\r\n // 聲請簡易判決處刑書: PropertyId.Indictment_SimpleJudgment,\r\n // 併辦意旨書: PropertyId.Indictment_MergeIntention,\r\n // 移送併辦意旨書: PropertyId.Indictment_MergeIntention,\r\n // 其他: PropertyId.Indictment_Other\r\n\r\n return note.property as any;\r\n // return CaseName.courtList.find(v => v.case_type_id === CaseTypeId.Indictment\r\n // && v.courtIdString === IndictmentCourtId[v.court_id]).list_name;\r\n } else {\r\n return this.propertyName[JudgmentProperty[note.property]];\r\n }\r\n }\r\n /** 取裁判案件法院名稱 */\r\n getJudgmentCourtName(court_id: JudgmentCourtId): string {\r\n return this.judgmentSearchService.courtIdName[JudgmentCourtId[court_id]];\r\n }\r\n /** 取起訴書案件法院名稱 */\r\n getIndictmentCourtName(court_id: IndictmentCourtId): string {\r\n return CaseName.courtList.find(v => CourtId[v.court_id] === IndictmentCourtId[court_id]).list_name;\r\n // return CaseName.courtIdName[IndictmentCourtId[court_id]];\r\n }\r\n\r\n /** 取裁判案件屬性style */\r\n getJudgmentPropertyIconStyle(caseContent: JudgmentCase): any {\r\n const style: CSSStyleDeclaration = {} as CSSStyleDeclaration;\r\n if (caseContent.courtIdString === 'O_C') {\r\n style['background-image'] = 'url(/assets/img/property/s27.png)';\r\n style['width'] = '46px';\r\n } else {\r\n const property = caseContent.property;\r\n if (property === JudgmentProperty.Judgment) {\r\n style['background-image'] = 'url(/assets/img/property/s8.png)';\r\n } else if (property === JudgmentProperty.Decision) {\r\n style['background-image'] = 'url(/assets/img/property/s9.png)';\r\n } else if (property === JudgmentProperty.Other) {\r\n style['background-image'] = 'url(/assets/img/property/s10.png)';\r\n }\r\n }\r\n\r\n return style;\r\n }\r\n /** 取起訴書案件屬性style */\r\n getIndictmentPropertyIconStyle(case_type: string): any {\r\n // debugger\r\n const caseTypeDict = {\r\n 起訴書: { icon: 'property/s23.png', width: 46 },\r\n 追加起訴書: { icon: 'property/s22.png', width: 60 },\r\n 聲請簡易判決處刑書: { icon: 'property/s24.png', width: 60 },\r\n 併辦意旨書: { icon: 'property/s25.png', width: 60 },\r\n 移送併辦意旨書: { icon: 'property/s25.png', width: 60 },\r\n 其他: { icon: 'property/s10.png', width: 37 },\r\n };\r\n\r\n const caseTypeStyle = caseTypeDict[case_type];\r\n\r\n if (caseTypeStyle) {\r\n const style: CSSStyleDeclaration = {} as CSSStyleDeclaration;\r\n style['background-image'] = `url(/assets/img/${caseTypeStyle.icon})`;\r\n style.width = `${caseTypeStyle.width}px`;\r\n return style;\r\n } else {\r\n return {};\r\n }\r\n }\r\n\r\n /** 時間轉換 */\r\n convertTime(time: number): string {\r\n if (time > 0) {\r\n const timeText: string = this.appCommonService.convertTimeTickToPastTimeText1(time);\r\n return timeText;\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n // 簡易清單功能 **********************************************************\r\n\r\n /** 取種類按鈕style */\r\n getTypeButtonIconStyle(button: JudgmentResultTypeButton): any {\r\n const style: CSSStyleDeclaration = {} as CSSStyleDeclaration;\r\n\r\n style['background-image'] = 'url(/assets/img/case_type/' + button.icon + ')';\r\n if (this.selectedType === button.type) {\r\n style['background-image'] = 'url(/assets/img/case_type/' + button.iconSelected + ')';\r\n }\r\n\r\n return style;\r\n }\r\n /** 選擇種類 */\r\n selectType(type: JudgmentSearchResultType): void {\r\n this.selectedType = type;\r\n const selectedTypeName = JudgmentSearchResultType[this.selectedType];\r\n\r\n this.judgmentTypeButton[selectedTypeName].countRead = true;\r\n\r\n this.pageChangeSimple.count = this.judgmentTypeButton[selectedTypeName].count;\r\n this.conditionJudgment.page_index = 1;\r\n this.pageChangeSimple.pageIndex = 1;\r\n\r\n this.updateCaseListSimple();\r\n // this.pageChangeSimple.update(this.judgmentTypeButton[selectedTypeName].count, this.judgmentTypeButton[selectedTypeName].count, 20);\r\n // this.pageChangeSimple.clickGoToPage(1);\r\n }\r\n getNoteUrlAuto(note: any, loadSave: boolean): string {\r\n if (note.case_base === 'indictment') {\r\n return this.getNoteUrlIndictment(note, loadSave);\r\n } else {\r\n return this.getNoteUrl(note, loadSave);\r\n }\r\n }\r\n /** 取得開啟連結 */\r\n getNoteUrl(note: JudgmentCase, loadSave: boolean): string {\r\n let keyword: string = '';\r\n if (!this.multipleMode) {\r\n // keyword = encodeURI(this.condition.search_keywords[0].keyword);\r\n keyword = encodeURI(this.conditionJudgment.search_keywords[0].keyword);\r\n } else {\r\n const _keywords = [];\r\n _keywords.push(...this.conditionJudgment.search_keywords\r\n .filter(v => v.keyword && v.compose !== ComposeType.Not)\r\n .map(v => encodeURI(v.keyword))\r\n );\r\n if ((this.conditionJudgment.case_main_text || '').trim()) {\r\n _keywords.push(encodeURI(this.conditionJudgment.case_main_text));\r\n }\r\n if (_keywords.length > 0) {\r\n keyword = _keywords.join(',');\r\n }\r\n\r\n }\r\n return this.service.BaseUrlWeb + '/note/judgment/' + note.case_id\r\n + '?'\r\n + 'searchtype=fulltext'\r\n + (loadSave ? '&load_save=1' : '')\r\n + (keyword ? '&keywords=' + keyword : '')\r\n // + (this.service.isDesktop() ? '&force_desktop=1' : '')\r\n ;\r\n }\r\n getNoteUrlIndictment(note: IndictmentCase, loadSave: boolean): string {\r\n let keyword: string = '';\r\n if (!this.multipleMode) {\r\n keyword = encodeURI(this.conditionIndictment.search_keywords[0].keyword);\r\n } else {\r\n keyword = this.conditionIndictment.search_keywords\r\n .filter(v => v.keyword && v.compose !== ComposeType.Not)\r\n .map(v => encodeURI(v.keyword))\r\n .join(',');\r\n }\r\n return this.service.BaseUrlWeb + '/note/indictment/' + note.case_id\r\n + '?'\r\n + 'searchtype=fulltext'\r\n + (loadSave ? '&load_save=1' : '')\r\n + (keyword ? '&keywords=' + keyword : '')\r\n ;\r\n }\r\n\r\n\r\n\r\n /** 簡易 *********************************************** */\r\n\r\n /** 設定法院清單 - 簡易 */\r\n setupCourtListSimple(\r\n refCourtList: CountingCourt[]\r\n ): void {\r\n // 設定法院清單\r\n {\r\n const judgmentCourtDict = {};\r\n const indictmentCourtDict = {};\r\n const courtIds: string[] = [];\r\n const judgmentCourtIdStrings: string[] = this.judgmentSearchService.getSimpleSearchTypeCourtList();\r\n const indictmentCourtIdStrings: string[] = this.indictmentSearchService.getSimpleSearchTypeCourtIdNameList();\r\n judgmentCourtIdStrings.forEach(court_id_string => judgmentCourtDict[court_id_string] = 1);\r\n indictmentCourtIdStrings.forEach(court_id_string => indictmentCourtDict[court_id_string] = 1);\r\n courtIds.push(...judgmentCourtIdStrings);\r\n courtIds.push(...indictmentCourtIdStrings);\r\n\r\n courtIds.forEach(court_id_string => {\r\n const cc = new CountingCourt();\r\n cc.court_id_string = court_id_string;\r\n cc.isIndictment = IndictmentCourtId[court_id_string] != null\r\n && IndictmentCourtId[court_id_string] > 0;\r\n if (cc.isIndictment) {\r\n cc.court_id = IndictmentCourtId[court_id_string];\r\n cc.type = JudgmentType.Indictment;\r\n } else {\r\n cc.court_id = JudgmentCourtId[court_id_string];\r\n let type = court_id_string[0];\r\n if (court_id_string.substring(2) == 'I') {\r\n type = 'I';\r\n }\r\n cc.type = this.judgmentSearchService.typeIdName[type];\r\n\r\n }\r\n this.countingCourt[court_id_string] = cc;\r\n refCourtList.push(cc);\r\n });\r\n }\r\n\r\n this.selectedType = JudgmentSearchResultType.All;\r\n this.judgmentTypeButton.All.countRead = true;\r\n }\r\n\r\n updateCourtCountListSimple(): void {\r\n // updateCourtCountListSimple(countingCourts: CountingCourt[]): void {\r\n // const countingCourts: CountingCourt[] = court_id_strings.map(court_id_string => this.countingCourt[court_id_string]);\r\n // const countingCourtDict: { [key: string]: CountingCourt } = {};\r\n\r\n\r\n const countingCourts = Object.values(this.countingCourt);\r\n for (const coutingCourt of countingCourts) {\r\n coutingCourt.counting = true;\r\n }\r\n this.updateTypeButtonLoading();\r\n\r\n // this.countingCourt\r\n const countJudgment$ = this.judgmentService.searchCourtCountMultiObserver(this.conditionJudgment)\r\n .pipe(\r\n tap((resp: JudgmentCourtCount[]) => {\r\n for (const countResultItem of resp) {\r\n const courtId = countResultItem.court_id;\r\n const courtIdString = JudgmentCourtId[courtId];\r\n\r\n const countingCourt = this.countingCourt[courtIdString];\r\n countingCourt.count = countResultItem.count;\r\n\r\n this.totalCount += countResultItem.count;\r\n }\r\n })\r\n );\r\n\r\n const countIndictment$ = this.indictmentSearchService.searchCourtCountMultiObserver(this.conditionIndictment)\r\n .pipe(\r\n tap((resp: JudgmentCourtCount[]) => {\r\n for (const countResultItem of resp) {\r\n const courtId = countResultItem.court_id;\r\n const courtIdString = IndictmentCourtId[courtId];\r\n\r\n const countingCourt = this.countingCourt[courtIdString];\r\n countingCourt.count = countResultItem.count;\r\n\r\n this.totalCount += countResultItem.count;\r\n }\r\n })\r\n )\r\n\r\n\r\n forkJoin([\r\n countJudgment$,\r\n countIndictment$\r\n ])\r\n .pipe(\r\n tap(() => {\r\n let firstTypeResult: boolean = false;\r\n\r\n for (const countingCourt of countingCourts) {\r\n countingCourt.counting = false;\r\n countingCourt.finish = true;\r\n if (countingCourt.count < 0) {\r\n countingCourt.count = 0;\r\n }\r\n\r\n this.judgmentTypeButton[JudgmentType[countingCourt.type]].count += countingCourt.count;\r\n this.judgmentTypeButton.All.count += countingCourt.count;\r\n }\r\n\r\n const selectedTypeName = JudgmentSearchResultType[this.selectedType];\r\n this.pageChangeSimple.count = this.judgmentTypeButton[selectedTypeName].count;\r\n\r\n this.updateTypeButtonLoading();\r\n\r\n\r\n this.isCountingCourts = false;\r\n if (this.pageChangeSimple.count > 0) {\r\n this.isNoResult = false;\r\n this.isSearchingCase = true;\r\n this.updateCaseListSimple();\r\n } else {\r\n this.isNoResult = true;\r\n this.isSearchingCase = false;\r\n }\r\n // for (const countingCourt of countingCourts) {\r\n // if (!firstTypeResult\r\n // && this.checkRequestNoteListReady(this.selectedType)\r\n // && this.pageChangeSimple.count > 0) {\r\n // firstTypeResult = true;\r\n // this.updateCaseListSimple();\r\n // }\r\n // }\r\n\r\n\r\n // this.updateTypeButtonLoading();\r\n\r\n\r\n })\r\n )\r\n .subscribe();\r\n\r\n return;\r\n\r\n\r\n // const maxTaskCount = this.configService.maxSearchTaskCount;\r\n // let isAllFinish: boolean = false;\r\n // let isNoResult: boolean = false;\r\n // let finishCourts: CountingCourt[] = [];\r\n // let firstTypeResult: boolean = false;\r\n\r\n // const courtsRequester = interval(100)\r\n // .pipe(\r\n // // 篩選出要取值的法院\r\n // map(v => {\r\n // const countingCourtLength = Object.keys(countingCourtDict).length;\r\n // if (countingCourtLength >= maxTaskCount) {\r\n // return [];\r\n // }\r\n\r\n // const idleCourts: CountingCourt[] = [];\r\n // for (const court of countingCourts) {\r\n // if (idleCourts.length < maxTaskCount\r\n // && !court.finish\r\n // && !court.counting\r\n // ) {\r\n // idleCourts.push(court);\r\n // }\r\n\r\n // if (idleCourts.length >= maxTaskCount) {\r\n // break;\r\n // }\r\n // }\r\n\r\n // return idleCourts;\r\n // }),\r\n\r\n // // 向S取值\r\n // tap((idleCourts: CountingCourt[]) => {\r\n // idleCourts.forEach((c: CountingCourt) => {\r\n // c.counting = true;\r\n // countingCourtDict[c.court_id_string] = c;\r\n\r\n // if (c.isIndictment) {\r\n // const _condition = JSON.parse(JSON.stringify(this.conditionIndictment));\r\n // _condition.court_id = c.court_id;\r\n // _condition.courts = [];\r\n // this.indictmentSearchService.searchCourtCountOneObserver(_condition)\r\n // .subscribe((result: JudgmentCourtCount) => {\r\n // const court_id_string: string = IndictmentCourtId[result.court_id];\r\n // const court = countingCourtDict[court_id_string];\r\n // court.count = result.count;\r\n // finishCourts.push(court);\r\n // });\r\n // } else {\r\n // const _condition = JSON.parse(JSON.stringify(this.conditionJudgment));\r\n // _condition.court_id = c.court_id;\r\n // _condition.courts = [];\r\n // this.judgmentService.searchCourtCountOneObserver(_condition)\r\n // .subscribe((result: JudgmentCourtCount) => {\r\n // const court_id_string: string = JudgmentCourtId[result.court_id];\r\n // const court = countingCourtDict[court_id_string];\r\n // court.count = result.count;\r\n // finishCourts.push(court);\r\n // });\r\n // }\r\n\r\n // });\r\n // }),\r\n\r\n // // 處理取值完成法院\r\n // tap((_: any) => {\r\n // if (finishCourts.length > 0) {\r\n // finishCourts.forEach(c => {\r\n // c.counting = false;\r\n // c.finish = true;\r\n\r\n // console.log('counting,', c.court_id, c.court_id_string, c.count, c.type);\r\n\r\n // this.judgmentTypeButton[JudgmentType[c.type]].count += c.count;\r\n // this.judgmentTypeButton.All.count += c.count;\r\n\r\n // delete countingCourtDict[c.court_id_string];\r\n // });\r\n // finishCourts = [];\r\n\r\n // const selectedTypeName = JudgmentSearchResultType[this.selectedType];\r\n // this.pageChangeSimple.count = this.judgmentTypeButton[selectedTypeName].count;\r\n\r\n // this.updateTypeButtonLoading();\r\n\r\n // if (!firstTypeResult\r\n // && this.checkRequestNoteListReady(this.selectedType)\r\n // && this.pageChangeSimple.count > 0) {\r\n // firstTypeResult = true;\r\n // this.updateCaseListSimple();\r\n // }\r\n // }\r\n // }),\r\n\r\n // // 法院取值結束檢查\r\n // tap(() => {\r\n // isAllFinish = countingCourts.every(c => c.finish);\r\n // isNoResult = countingCourts.every(c => c.finish && c.count === 0);\r\n\r\n // if (isAllFinish || isNoResult) {\r\n // this.isCountingCourts = false;\r\n // this.isNoResult = isNoResult;\r\n // if (this.isNoResult) {\r\n // this.isSearchingCase = false;\r\n // }\r\n // courtsRequester.unsubscribe();\r\n // }\r\n // }),\r\n // )\r\n // .subscribe();\r\n }\r\n updateCourtCountListMultiSimple(countingCourts: CountingCourt[]): void {\r\n const _conditionJudgment = JSON.parse(JSON.stringify(this.conditionCache));\r\n this.judgmentService.searchCourtCountMultiObserver(_conditionJudgment)\r\n\r\n const _conditionIndictment = JSON.parse(JSON.stringify(this.conditionCache));\r\n this.indictmentSearchService.searchCourtCountMultiObserver(_conditionIndictment)\r\n\r\n }\r\n updateCaseListSimple(\r\n onComplete: () => void = null\r\n ): void {\r\n const _condition: JudgmentSearchCondition = JSON.parse(JSON.stringify(this.conditionJudgment));\r\n _condition.court_id = null;\r\n _condition.courts = [];\r\n _condition.courts_indictment = [];\r\n\r\n // 前幾頁已跳過的數量\r\n const startSkipLength = (_condition.page_index - 1) * _condition.per_page_amount;\r\n // 取到指定數量的案件就停止\r\n const stopTakeLength = startSkipLength + _condition.per_page_amount;\r\n const typeString: string = JudgmentSearchResultType[this.selectedType];\r\n const court_id_strings: string[] = [];\r\n\r\n // 過濾選擇中類別的法院id\r\n if (this.selectedType === JudgmentSearchResultType.All) {\r\n Object.keys(this.judgmentSearchService.conditionBlocks)\r\n .filter(k => k !== 'Indictment')\r\n .map(k => this.judgmentSearchService.conditionBlocks[k])\r\n .forEach((b: JudgmentTypeCourtBlock) => {\r\n b.getCourtIdList()\r\n .map(courtId => {\r\n court_id_strings.push(JudgmentCourtId[courtId]);\r\n });\r\n });\r\n\r\n Object.keys(IndictmentCourtId)\r\n .filter(key => isNaN(parseInt(key, 10)))\r\n .filter(courtIdText => courtIdText !== IndictmentCourtId[IndictmentCourtId.NONE])\r\n .forEach(courtIdText => {\r\n court_id_strings.push(courtIdText);\r\n });\r\n\r\n } else {\r\n if (this.selectedType === JudgmentSearchResultType.Indictment) {\r\n Object.keys(IndictmentCourtId)\r\n .filter(key => isNaN(parseInt(key, 10)))\r\n .filter(courtIdText => courtIdText !== IndictmentCourtId[IndictmentCourtId.NONE])\r\n .forEach(courtIdText => {\r\n court_id_strings.push(courtIdText);\r\n });\r\n } else {\r\n const block: JudgmentTypeCourtBlock = this.judgmentSearchService.conditionBlocks[typeString];\r\n block.getCourtIdList()\r\n .forEach(courtId => {\r\n court_id_strings.push(JudgmentCourtId[courtId]);\r\n });\r\n }\r\n }\r\n\r\n // 過濾出有數量的法院, 需要從最開始的法院數量加起\r\n const hasContentCountingCourts: CountingCourt[] = court_id_strings\r\n .filter(court_id_string => this.countingCourt[court_id_string].count > 0)\r\n .map(court_id_string => this.countingCourt[court_id_string]);\r\n\r\n // 計數新增的數量\r\n let runLength: number = 0;\r\n let needCheckCountingCourts: CountingCourt[] = [];\r\n // 選出起始檢索的法院\r\n for (let i = 0; i < hasContentCountingCourts.length; i++) {\r\n const court: CountingCourt = hasContentCountingCourts[i];\r\n\r\n // 目前計數總數還不到略過長度\r\n if (runLength + court.count > startSkipLength) {\r\n // 包含當前以後的法院\r\n needCheckCountingCourts = hasContentCountingCourts.slice(i);\r\n break;\r\n }\r\n\r\n runLength += court.count;\r\n }\r\n\r\n\r\n // 該次法院請求清單所需要略過的數量\r\n const skipFirstLength = startSkipLength - runLength;\r\n _condition.skip_first_count = skipFirstLength;\r\n _condition.start_sn = startSkipLength + 1;\r\n\r\n const searchCourtList: { sn: number, idText: string }[] = [];\r\n // 選出要搜尋的法院\r\n for (const court of needCheckCountingCourts) {\r\n /**\r\n * 起始數量:0, 已略過:1000, 目標: 1001~1020\r\n */\r\n if (runLength < stopTakeLength) {\r\n runLength += court.count;\r\n for (let ci = skipFirstLength; ci < court.count; ci++) {\r\n searchCourtList.push({ sn: runLength + ci + 1, idText: court.court_id_string });\r\n if (searchCourtList.length >= _condition.per_page_amount) {\r\n break;\r\n }\r\n }\r\n\r\n if (court.isIndictment) {\r\n _condition.courts_indictment.push(IndictmentCourtId[court.court_id_string]);\r\n } else {\r\n _condition.courts.push(JudgmentCourtId[court.court_id_string]);\r\n }\r\n } else {\r\n break;\r\n }\r\n }\r\n\r\n\r\n this.isSearchingCase = true;\r\n this.pageChangeConfig.enableBack = false;\r\n this.pageChangeConfig.enableFirst = false;\r\n this.pageChangeConfig.enablePrev = false;\r\n this.pageChangeConfig.enableNext = false;\r\n this.pageChangeConfig.enableLast = false;\r\n // console.log(_condition);\r\n\r\n const caseListHash = new Date().getTime().toString();\r\n this.searchingCaseListHash = caseListHash;\r\n\r\n const requestSubsc = this.judgmentService.searchSimpleListObserver(_condition)\r\n .pipe(\r\n tap(list => {\r\n if (this.searchingCaseListHash === caseListHash) {\r\n this.noteListJudgment = list.map(n => {\r\n return Serializable.extendObjectFromResponseObject(new JudgmentCase(), n);\r\n });\r\n\r\n // console.log(this.noteList);\r\n\r\n this.noteListJudgment.forEach(n => {\r\n if (n.case_base === 'indictment') {\r\n const indictmentCourt = CaseName.courtList.find(v => v.case_type_id === CaseTypeId.Indictment\r\n && CourtId[v.court_id] === IndictmentCourtId[n.court]);\r\n n.court = indictmentCourt.list_name;\r\n // n.type_name = this.judgmentSearchService.conditionBlocks[JudgmentType[n.type]].name;\r\n }\r\n });\r\n\r\n if (onComplete != null) {\r\n onComplete();\r\n }\r\n\r\n this.pageChangeConfig.enableBack = true;\r\n this.pageChangeConfig.enableFirst = true;\r\n this.pageChangeConfig.enablePrev = true;\r\n this.pageChangeConfig.enableNext = true;\r\n this.pageChangeConfig.enableLast = true;\r\n this.isSearchingCase = false;\r\n console.log('request case list finish');\r\n } else {\r\n console.log('skip old list request');\r\n }\r\n })\r\n ).subscribe({\r\n complete: () => {\r\n requestSubsc.unsubscribe();\r\n }\r\n });\r\n }\r\n\r\n // 更新種類按鈕讀取中\r\n updateTypeButtonLoading(): void {\r\n this.judgmentTypeButtonList\r\n .filter(button => button.type !== JudgmentSearchResultType.All)\r\n .forEach(button => {\r\n const typeName = JudgmentSearchResultType[button.type];\r\n if (button.type === JudgmentSearchResultType.Indictment) {\r\n button.finish = this.judgmentSearchService.conditionBlocks.Indictment.block.every(ic =>\r\n ic.every(ic2 =>\r\n ic2.courtList.every(ic3 =>\r\n ic3.every(ic4 =>\r\n this.countingCourt[IndictmentCourtId[ic4.id]].finish\r\n )\r\n )\r\n )\r\n );\r\n button.loading = !button.finish;\r\n } else {\r\n const courtIds = this.judgmentSearchService.conditionBlocks[typeName].getCourtIdList();\r\n button.loading = !courtIds.every(c => this.countingCourt[JudgmentCourtId[c]].finish);\r\n button.finish = courtIds.every(c => this.countingCourt[JudgmentCourtId[c]].finish);\r\n }\r\n // console.log(typeName, button.loading, courtIds.length);\r\n });\r\n\r\n const allCountingCourts = Object.keys(this.countingCourt).map(k => this.countingCourt[k]);\r\n this.judgmentTypeButton.All.loading = !allCountingCourts.every(court => court.finish);\r\n this.judgmentTypeButton.All.finish = allCountingCourts.every(court => court.finish);\r\n }\r\n checkRequestNoteListReady(resultType: JudgmentSearchResultType): boolean {\r\n let checkRunCount: number = 0;\r\n\r\n const _condition = JSON.parse(JSON.stringify(this.conditionJudgment));\r\n const pageStartRange = (_condition.page_index - 1) * _condition.per_page_amount;\r\n const pageStopRange = pageStartRange + _condition.per_page_amount;\r\n\r\n const typeString: string = JudgmentSearchResultType[resultType];\r\n // let courtIds: JudgmentCourtId[] = [];\r\n const courtIdTexts: string[] = [];\r\n if (resultType === JudgmentSearchResultType.All) {\r\n Object.keys(this.judgmentSearchService.conditionBlocks)\r\n .filter(k => k !== 'Indictment')\r\n .map(k => this.judgmentSearchService.conditionBlocks[k])\r\n .forEach((b: JudgmentTypeCourtBlock) => {\r\n // courtIds.push(...b.getCourtIdList());\r\n b.getCourtIdList()\r\n .forEach(cid => {\r\n courtIdTexts.push(JudgmentCourtId[cid]);\r\n });\r\n });\r\n Object.keys(IndictmentCourtId)\r\n .filter(key => isNaN(parseInt(key, 10)))\r\n .filter(courtIdText => courtIdText !== IndictmentCourtId[IndictmentCourtId.NONE])\r\n .forEach(courtIdText => {\r\n // courtIdsIndictment.push(IndictmentCourtId[courtIdText]);\r\n courtIdTexts.push(courtIdText);\r\n });\r\n } else {\r\n if (resultType === JudgmentSearchResultType.Indictment) {\r\n Object.keys(IndictmentCourtId)\r\n .filter(key => isNaN(parseInt(key, 10)))\r\n .filter(courtIdText => courtIdText !== IndictmentCourtId[IndictmentCourtId.NONE])\r\n .forEach(courtIdText => {\r\n // courtIdsIndictment.push(IndictmentCourtId[courtIdText]);\r\n courtIdTexts.push(courtIdText);\r\n });\r\n } else {\r\n const block: JudgmentTypeCourtBlock = this.judgmentSearchService.conditionBlocks[typeString];\r\n block.getCourtIdList()\r\n .forEach(courtId => {\r\n courtIdTexts.push(JudgmentCourtId[courtId]);\r\n });\r\n // const blockCourtIds = block.getCourtIdList();\r\n // courtIds = block.getCourtIdList();\r\n }\r\n // const block: JudgmentTypeCourtBlock = this.judgmentSearchService.conditionBlocks[typeString];\r\n // courtIds = block.getCourtIdList();\r\n }\r\n\r\n for (const court_id_text of courtIdTexts) {\r\n // const courtIdString = JudgmentCourtId[court_id];\r\n const court = this.countingCourt[court_id_text];\r\n if (court.counting) {\r\n return false;\r\n }\r\n checkRunCount += court.count;\r\n if (checkRunCount > pageStopRange) {\r\n break;\r\n }\r\n }\r\n\r\n return true;\r\n\r\n // // 照順序檢查計數是否已可請求搜尋\r\n // for (const key in this.judgmentSearchService.courtIdName) {\r\n // let keyCourt = this.countingCourt[key];\r\n // if (keyCourt == null) {\r\n // continue;\r\n // }\r\n // if (!keyCourt.finish || keyCourt.counting) {\r\n // break;\r\n // }\r\n // if (keyCourt.count == 0) {\r\n // continue;\r\n // }\r\n\r\n // /** 檢索第一個有數量的清單 */\r\n // if (keyCourt.count > 0) {\r\n // let keyCourtIdString = key;\r\n // this.noteSearching = true;\r\n // this.judgmentService.searchSimpleOneObserver(_condition).subscribe(list => {\r\n // console.log('list:', list);\r\n // this.noteList = list.list;\r\n // this.noteList.forEach(n => {\r\n // n.type_name = this.judgmentSearchService.conditionBlocks[JudgmentType[n.type]].name;\r\n // });\r\n // this.noteSearching = false;\r\n // });\r\n // break;\r\n // }\r\n // }\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
0?'has-count':'')]\"\r\n (click)=\"selectType(item.type)\">\r\n
\r\n
{{item.name}}
\r\n
\r\n
\r\n
0 && !item.countRead\">{{item.getCountText()}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
簡易清單
\r\n
\r\n \r\n
\r\n
多元清單
\r\n
\r\n
\r\n
\r\n
\r\n
找不到案件?請加入官方LINE,連絡小編協助您找尋案件。
\r\n \r\n \"加入好友\"\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
{{searchedTypeName}}類
\r\n
\r\n
\r\n
\r\n
{{courtBlock.name}}
\r\n
\r\n
\r\n
{{getJudgmentCourtName(court.court_id)}}\r\n 0\"> ({{court.count.toLocaleString()}})\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
總共:{{totalCount.toLocaleString()}} 筆
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
再檢索
\r\n
\r\n
\r\n
簡易清單
\r\n
\r\n \r\n
\r\n
多元清單
\r\n
\r\n
\r\n
\r\n
\r\n
找不到案件?請加入官方LINE,連絡小編協助您找尋案件。
\r\n \r\n \"加入好友\"\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
序號
\r\n
{{note.sn}}
\r\n
\r\n
\r\n
案號
\r\n
\r\n
\r\n {{note.case_number[0]}}年度{{note.case_number[1]}}字第{{note.case_number[2]}}號\r\n 不公開\r\n
\r\n
\r\n
\r\n
\r\n
開啟案件
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{columnNameProperty}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
案由
\r\n
{{note.case_reason}}
\r\n
\r\n
\r\n
{{columnNameDate}}
\r\n
\r\n {{note.judg_date[0]}}/{{appCommonService.padNumber(note.judg_date[1])}}/{{appCommonService.padNumber(note.judg_date[2])}}\r\n
\r\n
\r\n
\r\n
最近瀏覽
\r\n
{{convertTime(note.note_open_time)}}
\r\n
\r\n
\r\n
收存
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
內容預覽
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
相關法條
\r\n \r\n
\r\n
\r\n
\r\n
{{relateLawRule.name}}
\r\n
第 {{relateLawRule.list.join('、')}} 條
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{searchedTypeName}}
\r\n
\r\n
\r\n
\r\n
{{courtBlock.name}}
\r\n
\r\n
\r\n
{{getIndictmentCourtName(court.court_id)}}\r\n 0\"> ({{court.count.toLocaleString()}})\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
總共:{{totalCount.toLocaleString()}} 筆
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
再檢索
\r\n
\r\n
\r\n
簡易清單
\r\n
\r\n \r\n
\r\n
多元清單
\r\n
\r\n
\r\n
\r\n
\r\n
找不到案件?請加入官方LINE,連絡小編協助您找尋案件。
\r\n \r\n \"加入好友\"\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
序號
\r\n
{{note.sn}}
\r\n
\r\n
\r\n
案號
\r\n
\r\n
\r\n {{note.case_number[0]}}年度{{note.case_number[1]}}字第{{note.case_number[2]}}號
\r\n
\r\n
\r\n
\r\n
開啟案件
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
類別
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
案由
\r\n
{{note.case_reason}}
\r\n
\r\n
\r\n
偵結日期
\r\n
\r\n {{note.case_date[0]-1911}}/{{appCommonService.padNumber(note.case_date[1])}}/{{appCommonService.padNumber(note.case_date[2])}}\r\n
\r\n
\r\n
\r\n
最近瀏覽
\r\n
{{convertTime(note.note_open_time)}}
\r\n
\r\n
\r\n
收存
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
內容預覽
\r\n
\r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n
相關法條
\r\n
\r\n
\r\n
\r\n
{{relateLawRule.name}}
\r\n
第 {{relateLawRule.list.join('、')}} 條
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { InitService } from 'projects/lwlib/src/init/init.service';\r\nimport { ActionName } from 'projects/lwlib/src/action-name';\r\nimport { JudicialInterpretService } from '../child-content-storage-personal/judicial-interpret/judicial-interpret.service';\r\nimport { JudicialInterpretSearchService } from './judicial-interpret-search.service';\r\nimport { JudicialInterpretCondition } from './judicial-interpret-condition/judicial-interpret-condition';\r\n\r\n@Component({\r\n selector: 'app-child-content-judicial-interpret-search',\r\n templateUrl: './child-content-judicial-interpret-search.component.html',\r\n styleUrls: ['./child-content-judicial-interpret-search.component.scss']\r\n})\r\nexport class ChildContentJudicialInterpretSearchComponent implements OnInit, OnDestroy {\r\n\r\n constructor(\r\n private initService: InitService,\r\n public judicialInterpretService: JudicialInterpretService,\r\n public judicialInterpretSearchService: JudicialInterpretSearchService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.judicialInterpretSearchService.enableConditionPage = true;\r\n this.judicialInterpretSearchService.enableResultPage = false;\r\n this.initService.trigger(ActionName.SearchCondition);\r\n }\r\n ngOnDestroy(): void {\r\n // this.judicialInterpretSearchService.clearSearchResult();\r\n }\r\n\r\n // enableResult(): boolean {\r\n // return this.judicialInterpretSearchService.resultMode;\r\n // }\r\n // searchPro(condition: JudicialInterpretCondition): void {\r\n // this.judicialInterpretSearchService.enableSearchPro(condition);\r\n // }\r\n // searchSimple(keyword: string): void {\r\n // this.judicialInterpretSearchService.enableSearchSimple(keyword);\r\n // }\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { ChildContentJudicialInterpretSearchComponent } from './child-content-judicial-interpret-search.component';\r\nimport { JudicialInterpretConditionComponent } from './judicial-interpret-condition/judicial-interpret-condition.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { ComposeCommandModule } from 'projects/lwlib/src/compose-command/compose-command.module';\r\nimport { ComposeCaseWordModule } from 'projects/lwlib/src/compose-case-word/compose-case-word.module';\r\nimport { JudicialInterpretResultComponent } from './judicial-interpret-result/judicial-interpret-result.component';\r\nimport { PipeHighlightModule } from 'projects/lwlib/src/pipe-highlight/pipe-highlight.module';\r\nimport { KeywordFinderLiteModule } from 'projects/lwlib/src/keyword-finder-lite/keyword-finder-lite.module';\r\nimport { PageChangeModule } from 'projects/lwlib/src/page-change/page-change.module';\r\nimport { PreviewWindowModule } from 'projects/lwlib/src/preview-window/preview-window.module';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { SearchAgainPopupModule } from 'projects/lwlib/src/search-again-popup/search-again-popup.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n\r\n MatAutocompleteModule,\r\n PipeHighlightModule,\r\n\r\n ComposeCommandModule,\r\n ComposeCaseWordModule,\r\n KeywordFinderLiteModule,\r\n PageChangeModule,\r\n PreviewWindowModule,\r\n SearchAgainPopupModule,\r\n ],\r\n declarations: [\r\n ChildContentJudicialInterpretSearchComponent,\r\n JudicialInterpretConditionComponent,\r\n JudicialInterpretResultComponent,\r\n ],\r\n\r\n exports: [ChildContentJudicialInterpretSearchComponent]\r\n})\r\nexport class ChildContentJudicialInterpretSearchModule { }\r\n","import { Component, OnInit, ViewChild, AfterContentInit, Output, EventEmitter, ElementRef } from '@angular/core';\r\nimport { JudicialInterpretCaseType, JudicialInterpretSearchCourtCatalog } from './judicial-interpret-case-type.enum';\r\nimport { JudicialInterpretCaseTypeCourtBlock } from './judicial-interpret-case-type-court-block';\r\nimport { JudicialInterpretCourtBlock } from './judicial-interpret-court-block';\r\nimport { JudicialInterpretCourt } from './judicial-interpret-court';\r\nimport { JudicialInterpretCourtId } from './judicial-interpret-court-id.enum';\r\nimport { ComposeCommandStyleType } from 'projects/lwlib/src/compose-command/compse-command-style-type.enum';\r\nimport { ComposeType } from 'projects/lwlib/src/compose-search-popup/compose-type';\r\nimport { ComposeCommandComponent } from 'projects/lwlib/src/compose-command/compose-command.component';\r\nimport { ComposeCaseWordComponent } from 'projects/lwlib/src/compose-case-word/compose-case-word.component';\r\nimport { JudicialInterpretConditionSave } from './judicial-interpret-condition-save';\r\nimport { LZStringService } from 'ng-lz-string';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { JudicialInterpretCondition } from './judicial-interpret-condition';\r\nimport { JudicialInterpretService } from '../../child-content-storage-personal/judicial-interpret/judicial-interpret.service';\r\nimport { JudicialInterpretSearchService } from '../judicial-interpret-search.service';\r\nimport { SearcherKeywordKind } from 'projects/lwlib/src/keyword-searcher/searcher-keyword-kind';\r\nimport { LogPageId } from 'projects/lwlib/src/log-page/log-page-id.enum';\r\nimport { Observable, Subscription, of } from 'rxjs';\r\nimport { MatAutocomplete, MatAutocompleteTrigger } from '@angular/material/autocomplete';\r\nimport { JudicialInterpretCourtBlockId, JudicialInterpretCourtCatalogId, JudicialInterpretCourtCatalogs, JudicialInterpretCourtGroupId } from 'projects/lwlib/src/judicial-interpret/judicial-interpret-court';\r\n\r\n@Component({\r\n selector: 'app-judicial-interpret-condition',\r\n templateUrl: './judicial-interpret-condition.component.html',\r\n styleUrls: ['./judicial-interpret-condition.component.scss']\r\n})\r\nexport class JudicialInterpretConditionComponent implements OnInit {\r\n @ViewChild('courtComposeCaseWord', { static: false }) courtComposeCaseWord: ComposeCaseWordComponent;\r\n\r\n @ViewChild('simpleInputElement', { static: false }) simpleInputElement: ElementRef;\r\n @ViewChild('courtInputFirstElement', { static: false }) courtInputFirstElement: ElementRef;\r\n @ViewChild('grandInputFirstElement', { static: false }) grandInputFirstElement: ElementRef;\r\n @ViewChild('precedentInputFirstElement', { static: false }) precedentInputFirstElement: ElementRef;\r\n @ViewChild('judgmentInputFirstElement', { static: false }) judgmentInputFirstElement: ElementRef;\r\n @ViewChild('resolutionInputFirstElement', { static: false }) resolutionInputFirstElement: ElementRef;\r\n @ViewChild('disciplineInputFirstElement', { static: false }) disciplineInputFirstElement: ElementRef;\r\n @ViewChild('seminarInputFirstElement', { static: false }) seminarInputFirstElement: ElementRef;\r\n @ViewChild('executeInputFirstElement', { static: false }) executeInputFirstElement: ElementRef;\r\n\r\n @ViewChild('grandAuto') grandAutoComplete: MatAutocomplete;\r\n @ViewChild('grandMatAutocompleteInput', { read: MatAutocompleteTrigger }) grandAutoCompleteTrigger: MatAutocompleteTrigger;\r\n @ViewChild('precedentAuto') precedentAutoComplete: MatAutocomplete;\r\n @ViewChild('precedentMatAutocompleteInput', { read: MatAutocompleteTrigger }) precedentAutoCompleteTrigger: MatAutocompleteTrigger;\r\n @ViewChild('judgmentAuto') judgmentAutoComplete: MatAutocomplete;\r\n @ViewChild('judgmentMatAutocompleteInput', { read: MatAutocompleteTrigger }) judgmentAutoCompleteTrigger: MatAutocompleteTrigger;\r\n @ViewChild('disciplineAuto') disciplineAutoComplete: MatAutocomplete;\r\n @ViewChild('disciplineMatAutocompleteInput', { read: MatAutocompleteTrigger }) disciplineAutoCompleteTrigger: MatAutocompleteTrigger;\r\n\r\n\r\n\r\n @Output() submitPro: EventEmitter = new EventEmitter();\r\n @Output() submitSimple: EventEmitter = new EventEmitter();\r\n\r\n composeCommandStyleType: any = ComposeCommandStyleType;\r\n judicialInterpretCaseType: any = JudicialInterpretCaseType;\r\n JudicialInterpretSearchCourtCatalog = JudicialInterpretSearchCourtCatalog;\r\n JudicialInterpretCourtCatalogId = JudicialInterpretCourtCatalogId;\r\n ComposeType = ComposeType;\r\n\r\n backupInput: { [key: string]: any } = {};\r\n\r\n // blocks: { [key in keyof typeof JudicialInterpretCaseType]: JudicialInterpretCaseTypeCourtBlock } = this.judicialInterpretSearchService.blocks;\r\n\r\n composeCaseWordWindowStyle = {\r\n top: '-50px'\r\n };\r\n\r\n\r\n professionSearchMode: boolean = true;\r\n\r\n // 簡易搜尋\r\n simpleSearchText: string = '';\r\n\r\n // 專業搜尋\r\n selectedCourtCatalogId: JudicialInterpretCourtCatalogId = JudicialInterpretCourtCatalogId.Court;\r\n\r\n courtGroups = {\r\n ctypeABC: {\r\n selected: false, name: '司法院解釋 (包含大理院、最高法院、司法院)',\r\n courtGroupId: JudicialInterpretCourtGroupId.ctypeABC,\r\n courtIds: [\r\n JudicialInterpretCourtId.ctypeA,\r\n JudicialInterpretCourtId.ctypeB,\r\n JudicialInterpretCourtId.ctypeC,\r\n ]\r\n },\r\n ctypeD: {\r\n selected: false, name: '大法官解釋',\r\n courtGroupId: JudicialInterpretCourtGroupId.ctypeD,\r\n courtIds: [\r\n JudicialInterpretCourtId.ctypeD\r\n ]\r\n },\r\n ttypeX: {\r\n selected: false, name: '大法官不受理案件',\r\n courtGroupId: JudicialInterpretCourtGroupId.ttypeX,\r\n courtIds: [\r\n JudicialInterpretCourtId.ttypeX\r\n ]\r\n },\r\n jtype21gc1m134: {\r\n selected: false, name: '民事類',\r\n courtGroupId: JudicialInterpretCourtGroupId.jtype21gc1m134,\r\n courtIds: [\r\n JudicialInterpretCourtId.jtype21gc1m1,\r\n JudicialInterpretCourtId.jtype21gc1m3,\r\n JudicialInterpretCourtId.jtype21gc1m4,\r\n ]\r\n },\r\n jtype22gc2m1342: {\r\n selected: false, name: '刑事類',\r\n courtGroupId: JudicialInterpretCourtGroupId.jtype22gc2m1342,\r\n courtIds: [\r\n JudicialInterpretCourtId.jtype22gc2m1,\r\n JudicialInterpretCourtId.jtype22gc2m3,\r\n JudicialInterpretCourtId.jtype22gc2m4,\r\n JudicialInterpretCourtId.jtype22gc2m2,\r\n ]\r\n },\r\n jtype23gc3m134: {\r\n selected: false, name: '行政類',\r\n courtGroupId: JudicialInterpretCourtGroupId.jtype23gc3m134,\r\n courtIds: [\r\n JudicialInterpretCourtId.jtype23gc3m1,\r\n JudicialInterpretCourtId.jtype23gc3m3,\r\n JudicialInterpretCourtId.jtype23gc3m4,\r\n ]\r\n },\r\n jtypeA: {\r\n selected: false, name: '民事類',\r\n courtGroupId: JudicialInterpretCourtGroupId.jtypeA,\r\n courtIds: [\r\n JudicialInterpretCourtId.jtypeA,\r\n ]\r\n },\r\n jtypeB: {\r\n selected: false, name: '刑事類',\r\n courtGroupId: JudicialInterpretCourtGroupId.jtypeB,\r\n courtIds: [\r\n JudicialInterpretCourtId.jtypeB,\r\n ]\r\n },\r\n jtypeE: {\r\n selected: false, name: '行政類',\r\n courtGroupId: JudicialInterpretCourtGroupId.jtypeE,\r\n courtIds: [\r\n JudicialInterpretCourtId.jtypeE,\r\n ]\r\n },\r\n jtype1A: {\r\n selected: false, name: '民事類',\r\n courtGroupId: JudicialInterpretCourtGroupId.jtype1A,\r\n courtIds: [\r\n JudicialInterpretCourtId.jtype1A,\r\n ]\r\n },\r\n jtype1B: {\r\n selected: false, name: '刑事類',\r\n courtGroupId: JudicialInterpretCourtGroupId.jtype1B,\r\n courtIds: [\r\n JudicialInterpretCourtId.jtype1B,\r\n ]\r\n },\r\n jtype1E: {\r\n selected: false, name: '行政類',\r\n courtGroupId: JudicialInterpretCourtGroupId.jtype1E,\r\n courtIds: [\r\n JudicialInterpretCourtId.jtype1E,\r\n ]\r\n },\r\n jtypeI: {\r\n selected: false, name: '地方法院',\r\n courtGroupId: JudicialInterpretCourtGroupId.jtypeI,\r\n courtIds: [\r\n JudicialInterpretCourtId.jtypeI,\r\n ]\r\n },\r\n jtypeG: {\r\n selected: false, name: '高等法院',\r\n courtGroupId: JudicialInterpretCourtGroupId.jtypeG,\r\n courtIds: [\r\n JudicialInterpretCourtId.jtypeG,\r\n ]\r\n },\r\n jtypeC01: {\r\n selected: false, name: '最高法院',\r\n courtGroupId: JudicialInterpretCourtGroupId.jtypeC01,\r\n courtIds: [\r\n JudicialInterpretCourtId.jtypeC0,\r\n JudicialInterpretCourtId.jtypeC1,\r\n ]\r\n },\r\n jtypeO: {\r\n selected: false, name: '智慧財產法院',\r\n courtGroupId: JudicialInterpretCourtGroupId.jtypeO,\r\n courtIds: [\r\n JudicialInterpretCourtId.jtypeO,\r\n ]\r\n },\r\n jtypeJ: {\r\n selected: false, name: '地方法院',\r\n courtGroupId: JudicialInterpretCourtGroupId.jtypeJ,\r\n courtIds: [\r\n JudicialInterpretCourtId.jtypeJ,\r\n ]\r\n },\r\n jtypeH: {\r\n selected: false, name: '高等法院',\r\n courtGroupId: JudicialInterpretCourtGroupId.jtypeH,\r\n courtIds: [\r\n JudicialInterpretCourtId.jtypeH,\r\n ]\r\n },\r\n jtypeD01: {\r\n selected: false, name: '最高法院',\r\n courtGroupId: JudicialInterpretCourtGroupId.jtypeD01,\r\n courtIds: [\r\n JudicialInterpretCourtId.jtypeD0,\r\n JudicialInterpretCourtId.jtypeD1,\r\n ]\r\n },\r\n jtypeP: {\r\n selected: false, name: '智慧財產法院',\r\n courtGroupId: JudicialInterpretCourtGroupId.jtypeP,\r\n courtIds: [\r\n JudicialInterpretCourtId.jtypeP,\r\n ]\r\n },\r\n jtypeR: {\r\n selected: false, name: '地方法院',\r\n courtGroupId: JudicialInterpretCourtGroupId.jtypeR,\r\n courtIds: [\r\n JudicialInterpretCourtId.jtypeR,\r\n ]\r\n },\r\n jtypeK: {\r\n selected: false, name: '高等法院',\r\n courtGroupId: JudicialInterpretCourtGroupId.jtypeK,\r\n courtIds: [\r\n JudicialInterpretCourtId.jtypeK,\r\n ]\r\n },\r\n jtypeF01: {\r\n selected: false, name: '最高法院',\r\n courtGroupId: JudicialInterpretCourtGroupId.jtypeF01,\r\n courtIds: [\r\n JudicialInterpretCourtId.jtypeF0,\r\n JudicialInterpretCourtId.jtypeF1,\r\n ]\r\n },\r\n jtypeQ: {\r\n selected: false, name: '智慧財產法院',\r\n courtGroupId: JudicialInterpretCourtGroupId.jtypeQ,\r\n courtIds: [\r\n JudicialInterpretCourtId.jtypeQ,\r\n ]\r\n },\r\n jtypeU: {\r\n selected: false, name: '民事類',\r\n courtGroupId: JudicialInterpretCourtGroupId.jtypeU,\r\n courtIds: [\r\n JudicialInterpretCourtId.jtypeU,\r\n ]\r\n },\r\n jtypeV: {\r\n selected: false, name: '刑事類',\r\n courtGroupId: JudicialInterpretCourtGroupId.jtypeV,\r\n courtIds: [\r\n JudicialInterpretCourtId.jtypeV,\r\n ]\r\n },\r\n jtypeS: {\r\n selected: false, name: '民事類',\r\n courtGroupId: JudicialInterpretCourtGroupId.jtypeS,\r\n courtIds: [\r\n JudicialInterpretCourtId.jtypeS,\r\n ]\r\n },\r\n jtypeT: {\r\n selected: false, name: '刑事類',\r\n courtGroupId: JudicialInterpretCourtGroupId.jtypeT,\r\n courtIds: [\r\n JudicialInterpretCourtId.jtypeT,\r\n ]\r\n },\r\n dtypeA01: {\r\n selected: false, name: '最高法院決議 (庭推決議)',\r\n courtGroupId: JudicialInterpretCourtGroupId.dtypeA01,\r\n courtIds: [\r\n JudicialInterpretCourtId.dtypeA0,\r\n JudicialInterpretCourtId.dtypeA1,\r\n ]\r\n },\r\n dtypeB01: {\r\n selected: false, name: '最高法院決議 (庭推決議)',\r\n courtGroupId: JudicialInterpretCourtGroupId.dtypeB01,\r\n courtIds: [\r\n JudicialInterpretCourtId.dtypeB0,\r\n JudicialInterpretCourtId.dtypeB1,\r\n ]\r\n },\r\n dtypeC01: {\r\n selected: false, name: '最高行政法院聯席會議決議',\r\n courtGroupId: JudicialInterpretCourtGroupId.dtypeC01,\r\n courtIds: [\r\n JudicialInterpretCourtId.dtypeC0,\r\n JudicialInterpretCourtId.dtypeC1,\r\n ]\r\n },\r\n jtypeL: {\r\n selected: false, name: '公懲會議決',\r\n courtGroupId: JudicialInterpretCourtGroupId.jtypeL,\r\n courtIds: [\r\n JudicialInterpretCourtId.jtypeL,\r\n ]\r\n },\r\n qtypeA: {\r\n selected: false, name: '民事法律問題座談',\r\n courtGroupId: JudicialInterpretCourtGroupId.qtypeA,\r\n courtIds: [\r\n JudicialInterpretCourtId.qtypeA,\r\n ]\r\n },\r\n qtypeG: {\r\n selected: false, name: '公證法律問題研討',\r\n courtGroupId: JudicialInterpretCourtGroupId.qtypeG,\r\n courtIds: [\r\n JudicialInterpretCourtId.qtypeG,\r\n ]\r\n },\r\n qtypeB: {\r\n selected: false, name: '刑事法律問題座談',\r\n courtGroupId: JudicialInterpretCourtGroupId.qtypeB,\r\n courtIds: [\r\n JudicialInterpretCourtId.qtypeB,\r\n ]\r\n },\r\n qtypeC: {\r\n selected: false, name: '行政法律問題座談',\r\n courtGroupId: JudicialInterpretCourtGroupId.qtypeC,\r\n courtIds: [\r\n JudicialInterpretCourtId.qtypeC,\r\n ]\r\n },\r\n qtypeD: {\r\n selected: false, name: '公懲法律問題座談',\r\n courtGroupId: JudicialInterpretCourtGroupId.qtypeD,\r\n courtIds: [\r\n JudicialInterpretCourtId.qtypeD,\r\n ]\r\n },\r\n etypeX01: {\r\n selected: false, name: '行政函令',\r\n courtGroupId: JudicialInterpretCourtGroupId.etypeX01,\r\n courtIds: [\r\n JudicialInterpretCourtId.etypeX0,\r\n JudicialInterpretCourtId.etypeX1,\r\n ]\r\n },\r\n xftype38: {\r\n selected: false, name: '憲法判決',\r\n courtGroupId: JudicialInterpretCourtGroupId.xftype38,\r\n courtIds: [\r\n JudicialInterpretCourtId.xftype38,\r\n ]\r\n },\r\n xftype39: {\r\n selected: false, name: '實體裁定',\r\n courtGroupId: JudicialInterpretCourtGroupId.xftype39,\r\n courtIds: [\r\n JudicialInterpretCourtId.xftype39,\r\n ]\r\n },\r\n xftype40: {\r\n selected: false, name: '程序裁定',\r\n courtGroupId: JudicialInterpretCourtGroupId.xftype40,\r\n courtIds: [\r\n JudicialInterpretCourtId.xftype40,\r\n ]\r\n }\r\n };\r\n courtBlocks = {\r\n Court_Court: {\r\n iconClass: 'blue', title: '司法院', enableSelectAll: false, selected: false,\r\n courtBlockId: JudicialInterpretCourtBlockId.Court_Court,\r\n courts: [\r\n [this.courtGroups.ctypeABC]\r\n ]\r\n },\r\n Court_BigJudge: {\r\n iconClass: 'green', title: '大法官', enableSelectAll: false, selected: false,\r\n courtBlockId: JudicialInterpretCourtBlockId.Court_BigJudge,\r\n courts: [\r\n [this.courtGroups.ctypeD]\r\n ]\r\n },\r\n Court_Reject: {\r\n iconClass: 'red', title: '不受理', enableSelectAll: false, selected: false,\r\n courtBlockId: JudicialInterpretCourtBlockId.Court_Reject,\r\n courts: [\r\n [this.courtGroups.ttypeX]\r\n ]\r\n },\r\n Court_XF: {\r\n iconClass: 'yellow', title: '憲法法庭', enableSelectAll: true, selected: false,\r\n courtBlockId: JudicialInterpretCourtBlockId.Court_XF,\r\n courts: [\r\n [\r\n this.courtGroups.xftype38,\r\n this.courtGroups.xftype39,\r\n this.courtGroups.xftype40\r\n ]\r\n ]\r\n },\r\n Grand_Normal: {\r\n iconClass: 'blue', title: '一般', enableSelectAll: true, selected: false,\r\n courtBlockId: JudicialInterpretCourtBlockId.Grand_Normal,\r\n courts: [\r\n [this.courtGroups.jtype21gc1m134, this.courtGroups.jtype22gc2m1342, this.courtGroups.jtype23gc3m134]\r\n ]\r\n },\r\n Precedent_Normal: {\r\n iconClass: 'blue', title: '一般', enableSelectAll: true, selected: false,\r\n courtBlockId: JudicialInterpretCourtBlockId.Precedent_Normal,\r\n courts: [\r\n [this.courtGroups.jtypeA, this.courtGroups.jtypeB, this.courtGroups.jtypeE]\r\n ]\r\n },\r\n Precedent_Stop: {\r\n iconClass: 'red', title: '停止適用', enableSelectAll: true, selected: false,\r\n courtBlockId: JudicialInterpretCourtBlockId.Precedent_Stop,\r\n courts: [\r\n [this.courtGroups.jtype1A, this.courtGroups.jtype1B, this.courtGroups.jtype1E]\r\n ]\r\n },\r\n Judgment_V: {\r\n iconClass: 'blue', title: '民事', enableSelectAll: true, selected: false,\r\n courtBlockId: JudicialInterpretCourtBlockId.Judgment_V,\r\n courts: [\r\n [this.courtGroups.jtypeI],\r\n [this.courtGroups.jtypeG],\r\n [this.courtGroups.jtypeC01],\r\n [this.courtGroups.jtypeO]\r\n ]\r\n },\r\n Judgment_M: {\r\n iconClass: 'green', title: '刑事', enableSelectAll: true, selected: false,\r\n courtBlockId: JudicialInterpretCourtBlockId.Judgment_M,\r\n courts: [\r\n [this.courtGroups.jtypeJ],\r\n [this.courtGroups.jtypeH],\r\n [this.courtGroups.jtypeD01],\r\n [this.courtGroups.jtypeP]\r\n ]\r\n },\r\n Judgment_A: {\r\n iconClass: 'red', title: '行政', enableSelectAll: true, selected: false,\r\n courtBlockId: JudicialInterpretCourtBlockId.Judgment_A,\r\n courts: [\r\n [this.courtGroups.jtypeR],\r\n [this.courtGroups.jtypeK],\r\n [this.courtGroups.jtypeF01],\r\n [this.courtGroups.jtypeQ]\r\n ]\r\n },\r\n Judgment_SupremeReference: {\r\n iconClass: 'yellow', title: '最高法院 - 具有參考價值的裁判', enableSelectAll: false, selected: false,\r\n courtBlockId: JudicialInterpretCourtBlockId.Judgment_SupremeReference,\r\n courts: [\r\n [this.courtGroups.jtypeU, this.courtGroups.jtypeV]\r\n ]\r\n },\r\n Judgment_HighReference: {\r\n iconClass: 'purple', title: '高等法院及所屬法院 -\\n具有參考價值的裁判', enableSelectAll: false, selected: false,\r\n courtBlockId: JudicialInterpretCourtBlockId.Judgment_HighReference,\r\n courts: [\r\n [this.courtGroups.jtypeS, this.courtGroups.jtypeT]\r\n ]\r\n },\r\n Resolution_V: {\r\n iconClass: 'blue', title: '民事', enableSelectAll: false, selected: false,\r\n courtBlockId: JudicialInterpretCourtBlockId.Resolution_V,\r\n courts: [\r\n [this.courtGroups.dtypeA01]\r\n ]\r\n },\r\n Resolution_M: {\r\n iconClass: 'green', title: '刑事', enableSelectAll: false, selected: false,\r\n courtBlockId: JudicialInterpretCourtBlockId.Resolution_M,\r\n courts: [\r\n [this.courtGroups.dtypeB01]\r\n ]\r\n },\r\n Resolution_A: {\r\n iconClass: 'red', title: '行政', enableSelectAll: false, selected: false,\r\n courtBlockId: JudicialInterpretCourtBlockId.Resolution_A,\r\n courts: [\r\n [this.courtGroups.dtypeC01]\r\n ]\r\n },\r\n Discipline_Discipline: {\r\n iconClass: 'blue', title: '公懲會議決', enableSelectAll: false, selected: false,\r\n courtBlockId: JudicialInterpretCourtBlockId.Discipline_Discipline,\r\n courts: [\r\n [this.courtGroups.jtypeL]\r\n ]\r\n },\r\n Seminar_V: {\r\n iconClass: 'blue', title: '民事', enableSelectAll: false, selected: false,\r\n courtBlockId: JudicialInterpretCourtBlockId.Seminar_V,\r\n courts: [\r\n [this.courtGroups.qtypeA],\r\n [this.courtGroups.qtypeG]\r\n ]\r\n },\r\n Seminar_M: {\r\n iconClass: 'green', title: '刑事', enableSelectAll: false, selected: false,\r\n courtBlockId: JudicialInterpretCourtBlockId.Seminar_M,\r\n courts: [\r\n [this.courtGroups.qtypeB]\r\n ]\r\n },\r\n Seminar_A: {\r\n iconClass: 'red', title: '行政', enableSelectAll: false, selected: false,\r\n courtBlockId: JudicialInterpretCourtBlockId.Seminar_A,\r\n courts: [\r\n [this.courtGroups.qtypeC]\r\n ]\r\n },\r\n Seminar_Discipline: {\r\n iconClass: 'purple', title: '公懲', enableSelectAll: false, selected: false,\r\n courtBlockId: JudicialInterpretCourtBlockId.Seminar_Discipline,\r\n courts: [\r\n [this.courtGroups.qtypeD]\r\n ]\r\n },\r\n Execute_Execute: {\r\n iconClass: 'blue', title: '行政函釋', enableSelectAll: false, selected: false,\r\n courtBlockId: JudicialInterpretCourtBlockId.Execute_Execute,\r\n courts: [\r\n [this.courtGroups.etypeX01]\r\n ]\r\n },\r\n };\r\n courtCatalogCourts = {\r\n Court: [\r\n [this.courtBlocks.Court_XF],\r\n [\r\n this.courtBlocks.Court_Court,\r\n this.courtBlocks.Court_Reject\r\n ],\r\n [this.courtBlocks.Court_BigJudge],\r\n ],\r\n Grand: [\r\n [this.courtBlocks.Grand_Normal],\r\n []\r\n ],\r\n Precedent: [\r\n [this.courtBlocks.Precedent_Normal],\r\n [this.courtBlocks.Precedent_Stop]\r\n ],\r\n Judgment: [\r\n [this.courtBlocks.Judgment_V],\r\n [this.courtBlocks.Judgment_M],\r\n [this.courtBlocks.Judgment_A],\r\n [\r\n this.courtBlocks.Judgment_SupremeReference,\r\n this.courtBlocks.Judgment_HighReference\r\n ],\r\n ],\r\n Resolution: [\r\n [this.courtBlocks.Resolution_V],\r\n [this.courtBlocks.Resolution_M],\r\n [this.courtBlocks.Resolution_A],\r\n ],\r\n Discipline: [\r\n [this.courtBlocks.Discipline_Discipline],\r\n []\r\n ],\r\n Seminar: [\r\n [this.courtBlocks.Seminar_V],\r\n [this.courtBlocks.Seminar_M],\r\n [this.courtBlocks.Seminar_A],\r\n [this.courtBlocks.Seminar_Discipline],\r\n ],\r\n Execute: [\r\n [this.courtBlocks.Execute_Execute],\r\n []\r\n ],\r\n };\r\n courtCatalogInputs = {\r\n Court: {\r\n keyword: ['', '', '', '', '', ''],\r\n compose: ['And', 'And', 'And', 'And', 'And', 'And'],\r\n caseWords: ['全部', '統', '解', '院', '院解', '釋'],\r\n selectedCaseWord: '全部',\r\n caseWordNumber: '',\r\n caseDate: ['', '', '', '', '', ''],\r\n caseWordMeetNumber: '',\r\n xfCaseYear: '',\r\n xfCaseWord: '',\r\n xfCaseNumber: '',\r\n },\r\n Grand: {\r\n keyword: ['', '', '', '', '', ''],\r\n compose: ['And', 'And', 'And', 'And', 'And', 'And'],\r\n caseWordYear: '',\r\n caseWordWord: '',\r\n caseWordNumber: '',\r\n caseReason: '',\r\n caseDate: ['', '', '', '', '', ''],\r\n property1: true,\r\n property2: true,\r\n property3: true,\r\n property4: true,\r\n },\r\n Precedent: {\r\n keyword: ['', '', '', '', '', ''],\r\n compose: ['And', 'And', 'And', 'And', 'And', 'And'],\r\n caseWordYear: '',\r\n caseWordWord: '',\r\n caseWordNumber: '',\r\n caseReason: '',\r\n caseDate: ['', '', '', '', '', ''],\r\n },\r\n Judgment: {\r\n keyword: ['', '', '', '', '', ''],\r\n compose: ['And', 'And', 'And', 'And', 'And', 'And'],\r\n caseWordYear: '',\r\n caseWordWord: '',\r\n caseWordNumber: '',\r\n caseReason: '',\r\n caseDate: ['', '', '', '', '', ''],\r\n },\r\n Resolution: {\r\n keyword: ['', '', '', '', '', ''],\r\n compose: ['And', 'And', 'And', 'And', 'And', 'And'],\r\n caseWordMeetYear: '',\r\n caseWordMeetMonth: '',\r\n caseWordMeetNumber: '',\r\n caseDate: ['', '', '', '', '', ''],\r\n },\r\n Discipline: {\r\n keyword: ['', '', '', '', '', ''],\r\n compose: ['And', 'And', 'And', 'And', 'And', 'And'],\r\n caseWordYear: '',\r\n caseWordWord: '',\r\n caseWordNumber: '',\r\n caseReason: '',\r\n caseDate: ['', '', '', '', '', ''],\r\n },\r\n Seminar: {\r\n keyword: ['', '', '', '', '', ''],\r\n compose: ['And', 'And', 'And', 'And', 'And', 'And'],\r\n caseDate: ['', '', '', '', '', ''],\r\n },\r\n Execute: {\r\n keyword: ['', '', '', '', '', ''],\r\n compose: ['And', 'And', 'And', 'And', 'And', 'And'],\r\n caseWordAgency: '',\r\n caseWordWord: '',\r\n caseWordNumber: '',\r\n caseDate: ['', '', '', '', '', ''],\r\n },\r\n }\r\n executeCourts = {\r\n '總統府': {\r\n selected: false,\r\n lists: [\r\n {\r\n selectedAll: false,\r\n courts: [\r\n [\r\n { name: '總統', selected: false },\r\n { name: '秘書長', selected: false },\r\n { name: '人事處', selected: false },\r\n { name: '主計處', selected: false },\r\n { name: '侍衛室', selected: false },\r\n ], [\r\n { name: '政風處', selected: false },\r\n { name: '第一局', selected: false },\r\n { name: '第二局', selected: false },\r\n { name: '第三局', selected: false },\r\n { name: '機要室', selected: false },\r\n ], [\r\n { name: '公共事務室', selected: false, width: 200 },\r\n { name: '法規委員會', selected: false, width: 200 },\r\n ]\r\n ]\r\n },\r\n {\r\n selectedAll: false,\r\n courts: [\r\n [\r\n { name: '國史館', selected: false },\r\n { name: '中央研究院', selected: false },\r\n ]\r\n ]\r\n }\r\n ],\r\n },\r\n '行政院': {\r\n selected: false,\r\n lists: [\r\n {\r\n selectedAll: false,\r\n courts: [\r\n [\r\n { name: '行政院', selected: false },\r\n ],\r\n [\r\n { name: '秘書處', selected: false },\r\n { name: '人事處', selected: false },\r\n { name: '政風處', selected: false },\r\n { name: '主計處', selected: false },\r\n { name: '資訊處', selected: false },\r\n ], [\r\n { name: '公共關係處', selected: false },\r\n ], [\r\n { name: '法規會', selected: false, width: 150 },\r\n { name: '性別平等處', selected: false, width: 150 },\r\n { name: '新聞傳播處', selected: false, width: 150 },\r\n ], [\r\n { name: '資通安全處', selected: false, width: 150 },\r\n { name: '綜合業務處', selected: false, width: 150 },\r\n { name: '消費者保護處', selected: false, width: 150 },\r\n ], [\r\n { name: '內政衛福勞動處', selected: false, width: 150 },\r\n { name: '外交國防法務處', selected: false, width: 150 },\r\n { name: '交通環境資源處', selected: false, width: 150 },\r\n ], [\r\n { name: '災害防救辦公室', selected: false, width: 150 },\r\n { name: '財政主計金融處', selected: false, width: 150 },\r\n { name: '國土安全辦公室', selected: false, width: 150 },\r\n ], [\r\n { name: '教育科學文化處', selected: false, width: 150 },\r\n { name: '經濟能源農業處', selected: false, width: 150 },\r\n { name: '國安基金委員會', selected: false, width: 150 },\r\n ]\r\n ]\r\n },\r\n {\r\n selectedAll: false,\r\n courts: [\r\n [\r\n { name: '內政部', selected: false, width: 80 },\r\n { name: '文化部', selected: false, width: 80 },\r\n { name: '外交部', selected: false, width: 80 },\r\n { name: '交通部', selected: false, width: 80 },\r\n { name: '法務部', selected: false, width: 80 },\r\n { name: '科技部', selected: false, width: 80 },\r\n ], [\r\n { name: '財政部', selected: false, width: 80 },\r\n { name: '國防部', selected: false, width: 80 },\r\n { name: '教育部', selected: false, width: 80 },\r\n { name: '勞動部', selected: false, width: 80 },\r\n { name: '經濟部', selected: false, width: 80 },\r\n { name: '中央銀行', selected: false, width: 80 },\r\n ], [\r\n { name: '主計總處', selected: false, width: 160 },\r\n { name: '大陸委員會', selected: false, width: 160 },\r\n { name: '台灣省政府', selected: false, width: 160 },\r\n ], [\r\n { name: '客家委員會', selected: false, width: 160 },\r\n { name: '海洋委員會', selected: false, width: 160 },\r\n { name: '僑務委員會', selected: false, width: 160 },\r\n ], [\r\n { name: '衛生福利部', selected: false, width: 160 },\r\n { name: '農業委員會', selected: false, width: 160 },\r\n { name: '環境保護署', selected: false, width: 160 },\r\n ], [\r\n { name: '人事行政總處', selected: false, width: 160 },\r\n { name: '原子能委員會', selected: false, width: 160 },\r\n { name: '中央選舉委員會', selected: false, width: 160 },\r\n ], [\r\n { name: '公平交易委員會', selected: false, width: 160 },\r\n { name: '原住民族委員會', selected: false, width: 160 },\r\n { name: '國立故宮博物院', selected: false, width: 160 },\r\n ], [\r\n { name: '國家發展委員會', selected: false, width: 160 },\r\n { name: '公共工程委員會', selected: false, width: 160 },\r\n ], [\r\n { name: '金融監督管理委員會', selected: false, width: 240 },\r\n { name: '促進轉型正義委員會', selected: false, width: 240 },\r\n ], [\r\n { name: '國家通訊傳播委員會', selected: false, width: 240 },\r\n { name: '國軍退除役官兵輔導委員會', selected: false, width: 240 },\r\n ], [\r\n { name: '其他(早期單位)', selected: false, width: 240 },\r\n ]\r\n ]\r\n }\r\n ],\r\n },\r\n '監察院': {\r\n selected: false,\r\n lists: [\r\n {\r\n selectedAll: false,\r\n courts: [\r\n [\r\n { name: '監察院', selected: false, width: 80 },\r\n { name: '政風室', selected: false, width: 80 },\r\n { name: '人事室', selected: false, width: 80 },\r\n { name: '統計室', selected: false, width: 80 },\r\n { name: '會計室', selected: false, width: 80 },\r\n { name: '秘書處', selected: false, width: 80 },\r\n ], [\r\n { name: '綜合業務處', selected: false, width: 160 },\r\n { name: '監察調查處', selected: false, width: 160 },\r\n { name: '監察業務處', selected: false, width: 160 },\r\n ], [\r\n { name: '公職人員財產申報處', selected: false, width: 160 },\r\n ]\r\n ]\r\n },\r\n {\r\n selectedAll: false,\r\n courts: [\r\n [\r\n { name: '國家人權委員會', selected: false, width: 160 },\r\n { name: '訴願審議委員會', selected: false, width: 160 },\r\n ], [\r\n { name: '內政及族群委員會', selected: false, width: 160 },\r\n { name: '外交及國防委員會', selected: false, width: 160 },\r\n { name: '財政及經濟委員會', selected: false, width: 160 },\r\n ], [\r\n { name: '教育及文化委員會', selected: false, width: 160 },\r\n { name: '交通及採購委員會', selected: false, width: 160 },\r\n { name: '司法及獄政委員會', selected: false, width: 160 },\r\n ], [\r\n { name: '社會福利及衛生環境委員會', selected: false, width: 160 },\r\n ], [\r\n { name: '諮詢委員會', selected: false, width: 160 },\r\n { name: '廉政委員會', selected: false, width: 160 },\r\n { name: '法規研究委員會', selected: false, width: 160 },\r\n ], [\r\n { name: '監察委員紀律委員會', selected: false, width: 160 },\r\n ]\r\n ]\r\n },\r\n {\r\n selectedAll: false,\r\n courts: [\r\n [\r\n { name: '審計部', selected: false, width: 80 },\r\n ]\r\n ]\r\n }\r\n ],\r\n },\r\n '考試院': {\r\n selected: false,\r\n lists: [\r\n {\r\n selectedAll: false,\r\n courts: [\r\n [\r\n { name: '考試院', selected: false, width: 100 },\r\n { name: '秘書處', selected: false, width: 100 },\r\n { name: '第一組', selected: false, width: 100 },\r\n { name: '第二組', selected: false, width: 100 },\r\n { name: '第三組', selected: false, width: 100 },\r\n ], [\r\n { name: '編纂室', selected: false, width: 100 },\r\n { name: '資訊室', selected: false, width: 100 },\r\n { name: '機要室', selected: false, width: 100 },\r\n { name: '人事室', selected: false, width: 100 },\r\n { name: '會計室', selected: false, width: 100 },\r\n ], [\r\n { name: '統計室', selected: false, width: 100 },\r\n { name: '政風室', selected: false, width: 100 },\r\n { name: '法規委員會', selected: false, width: 200 },\r\n ], [\r\n { name: '訴願審議委員會', selected: false, width: 200 },\r\n { name: '研究發展委員會', selected: false, width: 200 },\r\n ]\r\n ]\r\n },\r\n {\r\n selectedAll: false,\r\n courts: [\r\n [\r\n { name: '考選部', selected: false, width: 100 },\r\n { name: '銓敘部', selected: false, width: 100 },\r\n ], [\r\n { name: '公務人員保障暨培訓委員會', selected: false, width: 100 },\r\n ], [\r\n { name: '公務人員退休撫卹基金監理委員會', selected: false, width: 100 },\r\n ]\r\n ]\r\n }\r\n ],\r\n },\r\n '司法院': {\r\n selected: false,\r\n lists: [\r\n {\r\n selectedAll: false,\r\n courts: [\r\n [\r\n { name: '司法院', selected: false, width: 80 },\r\n { name: '人事處', selected: false, width: 80 },\r\n { name: '民事廳', selected: false, width: 80 },\r\n { name: '刑事廳', selected: false, width: 80 },\r\n { name: '政風處', selected: false, width: 80 },\r\n { name: '秘書處', selected: false, width: 80 },\r\n ], [\r\n { name: '參事室', selected: false, width: 80 },\r\n { name: '統計處', selected: false, width: 80 },\r\n { name: '會計處', selected: false, width: 80 },\r\n { name: '資訊處', selected: false, width: 80 },\r\n { name: '發言人室', selected: false, width: 160 },\r\n ], [\r\n { name: '公共關係處', selected: false, width: 160 },\r\n { name: '司法行政廳', selected: false, width: 160 },\r\n { name: '大法官書記處', selected: false, width: 160 },\r\n ], [\r\n { name: '少年及家事廳', selected: false, width: 160 },\r\n { name: '法官評鑑委員會', selected: false, width: 160 },\r\n { name: '行政訴訟及懲戒廳', selected: false, width: 160 },\r\n ], [\r\n { name: '民間公證人任免委員會', selected: false, width: 160 },\r\n ], [\r\n { name: '國家賠償事件處理委員會', selected: false, width: 240 },\r\n ], [\r\n { name: '人權與兒少保護及性別友善委員會', selected: false, width: 200 },\r\n ], [\r\n { name: '其他(早期單位)', selected: false, width: 200 },\r\n ]\r\n ],\r\n\r\n },\r\n {\r\n selectedAll: false,\r\n courts: [\r\n [\r\n { name: '臺北', selected: false, width: 100 },\r\n { name: '士林', selected: false, width: 100 },\r\n { name: '新北', selected: false, width: 100 },\r\n { name: '基隆', selected: false, width: 100 },\r\n { name: '宜蘭', selected: false, width: 100 },\r\n ], [\r\n { name: '桃園', selected: false, width: 100 },\r\n { name: '新竹', selected: false, width: 100 },\r\n { name: '苗栗', selected: false, width: 100 },\r\n { name: '臺中', selected: false, width: 100 },\r\n { name: '彰化', selected: false, width: 100 },\r\n ], [\r\n { name: '南投', selected: false, width: 100 },\r\n { name: '雲林', selected: false, width: 100 },\r\n { name: '嘉義', selected: false, width: 100 },\r\n { name: '臺南', selected: false, width: 100 },\r\n { name: '高雄', selected: false, width: 100 },\r\n ], [\r\n { name: '橋頭', selected: false, width: 100 },\r\n { name: '花蓮', selected: false, width: 100 },\r\n { name: '臺東', selected: false, width: 100 },\r\n { name: '屏東', selected: false, width: 100 },\r\n { name: '澎湖', selected: false, width: 100 },\r\n ], [\r\n { name: '金門', selected: false, width: 100 },\r\n { name: '連江', selected: false, width: 100 },\r\n { name: '高雄少年及家事法院', selected: false, width: 160 },\r\n ], [\r\n { name: '臺灣高等', selected: false },\r\n { name: '臺中分院', selected: false },\r\n { name: '臺南分院', selected: false },\r\n ], [\r\n { name: '花蓮分院', selected: false },\r\n { name: '高雄分院', selected: false },\r\n { name: '金門分院', selected: false },\r\n ], [\r\n { name: '智慧財產', selected: false },\r\n { name: '懲戒法院', selected: false },\r\n { name: '法官學院', selected: false },\r\n ], [\r\n { name: '最高法院', selected: false },\r\n ]\r\n ]\r\n },\r\n ]\r\n },\r\n '立法院': {\r\n selected: false,\r\n lists: [\r\n {\r\n selectedAll: false,\r\n courts: [\r\n [\r\n { name: '立法院', selected: false, width: 80 },\r\n { name: '人事處', selected: false, width: 80 },\r\n { name: '公報處', selected: false, width: 80 },\r\n { name: '主計處', selected: false, width: 80 },\r\n { name: '法制局', selected: false, width: 80 },\r\n { name: '秘書處', selected: false, width: 80 },\r\n ], [\r\n { name: '資訊處', selected: false, width: 80 },\r\n { name: '總務處', selected: false, width: 80 },\r\n { name: '議事處', selected: false, width: 80 },\r\n { name: '預算中心', selected: false, width: 80 },\r\n ], [\r\n { name: '國會圖書館', selected: false, width: 160 },\r\n { name: '議政博物館', selected: false, width: 160 },\r\n ], [\r\n { name: '中南部服務中心', selected: false, width: 160 },\r\n ]\r\n ],\r\n },\r\n {\r\n selectedAll: false,\r\n courts: [\r\n [\r\n { name: '內政委員會', selected: false, width: 155 },\r\n { name: '交通委員會', selected: false, width: 155 },\r\n { name: '財政委員會', selected: false, width: 155 },\r\n ], [\r\n { name: '經濟委員會', selected: false, width: 155 },\r\n { name: '司法及法制委員會', selected: false, width: 155 },\r\n { name: '外交及國防委員會', selected: false, width: 155 },\r\n ], [\r\n { name: '教育及文化委員會', selected: false, width: 155 },\r\n { name: '社會福利及衛生環境委員會', selected: false, width: 155 },\r\n ], [\r\n { name: '程序委員會', selected: false, width: 155 },\r\n { name: '紀律委員會', selected: false, width: 155 },\r\n { name: '修憲委員會', selected: false, width: 155 },\r\n ], [\r\n { name: '經費稽核委員會', selected: false, width: 155 },\r\n ]\r\n ],\r\n },\r\n ]\r\n },\r\n '地方政府': {\r\n selected: false,\r\n lists: [\r\n {\r\n selectedAll: false,\r\n courts: [\r\n [\r\n { name: '臺北', selected: false, width: 80 },\r\n { name: '新北', selected: false, width: 80 },\r\n { name: '桃園', selected: false, width: 80 },\r\n { name: '臺中', selected: false, width: 80 },\r\n { name: '臺南', selected: false, width: 80 },\r\n ], [\r\n { name: '高雄', selected: false, width: 80 },\r\n { name: '新竹', selected: false, width: 80 },\r\n { name: '苗栗', selected: false, width: 80 },\r\n { name: '彰化', selected: false, width: 80 },\r\n { name: '南投', selected: false, width: 80 },\r\n ], [\r\n { name: '雲林', selected: false, width: 80 },\r\n { name: '嘉義', selected: false, width: 80 },\r\n { name: '屏東', selected: false, width: 80 },\r\n { name: '宜蘭', selected: false, width: 80 },\r\n { name: '花蓮', selected: false, width: 80 },\r\n ], [\r\n { name: '臺東', selected: false, width: 80 },\r\n { name: '澎湖', selected: false, width: 80 },\r\n { name: '金門', selected: false, width: 80 },\r\n { name: '連江', selected: false, width: 80 },\r\n { name: '基隆', selected: false, width: 80 },\r\n ]\r\n ]\r\n },\r\n ],\r\n },\r\n '其他': {\r\n selected: false,\r\n lists: [],\r\n },\r\n };\r\n executeCourtsDict: { [key: string]: { [key: string]: { name: string, selected: boolean } } } = {};\r\n executeSelectedCourt;\r\n executeSelectedSubCourts = {};\r\n executeSelectedAllCourt: boolean = false;\r\n\r\n\r\n grandPropertySelectedAll: boolean = false;\r\n grandSuggestReasons: Observable;\r\n grandSuggestReasonSubscribe: Subscription;\r\n\r\n precedentSuggestReasons: Observable;\r\n precedentSuggestReasonSubscribe: Subscription;\r\n\r\n judgmentSuggestReasons: Observable;\r\n judgmentSuggestReasonSubscribe: Subscription;\r\n\r\n disciplineSuggestReasons: Observable;\r\n disciplineSuggestReasonSubscribe: Subscription;\r\n\r\n // readonly saveName: string = 'judicial_interpret_condition';\r\n saveLoading: boolean = false;\r\n\r\n constructor(\r\n private service: AppService,\r\n private lzService: LZStringService,\r\n private judicialInterpretService: JudicialInterpretService,\r\n private judicialInterpretSearchService: JudicialInterpretSearchService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n Object.keys(this.executeCourts)\r\n .forEach(key => {\r\n this.executeCourtsDict[key] = {};\r\n this.executeCourts[key].lists\r\n .forEach(l => {\r\n l.courts.forEach(ls => {\r\n ls.forEach(c => {\r\n this.executeCourtsDict[key][c.name] = c;\r\n });\r\n });\r\n });\r\n });\r\n\r\n // this.selectedBlock = this.blocks.Court;\r\n this.service.log(LogPageId.SearchConditionJudicialInterpret, '', '');\r\n this.loadStatus();\r\n setTimeout(() => {\r\n this.focusInput();\r\n });\r\n }\r\n\r\n selectCourtCatalog(courtCatalogId: JudicialInterpretCourtCatalogId): void {\r\n this.selectedCourtCatalogId = courtCatalogId;\r\n this.inputChange();\r\n this.grandUpdatePropertySelection();\r\n setTimeout(() => {\r\n this.focusInput();\r\n });\r\n }\r\n onCourtGroupSelectChanged(): void {\r\n // console.log(courtGroup);\r\n this.updateCourtSelectAllStatus();\r\n this.inputChange();\r\n }\r\n onCourtBlockSelectAllChanged(courtBlock: { selected: boolean, courts: { selected: boolean }[][] }): void {\r\n // console.log(courtBlock);\r\n for (const courts of courtBlock.courts) {\r\n for (const court of courts) {\r\n court.selected = courtBlock.selected;\r\n }\r\n }\r\n this.updateCourtSelectAllStatus();\r\n this.inputChange();\r\n }\r\n updateCourtSelectAllStatus(): void {\r\n Object.values(this.courtCatalogCourts)\r\n .forEach(cc => cc\r\n .forEach(cc2 => cc2\r\n .forEach(courtBlock => {\r\n if (courtBlock.enableSelectAll) {\r\n const isAllSelected = courtBlock\r\n .courts\r\n .every(c => c\r\n .every(c2 => c2.selected)\r\n );\r\n courtBlock.selected = isAllSelected;\r\n }\r\n })\r\n )\r\n )\r\n }\r\n onComposeSelect(courtCatalogInput: { compose: string[] }, index: number, composeType: ComposeType): void {\r\n courtCatalogInput.compose[index] = ComposeType[composeType];\r\n this.inputChange();\r\n }\r\n onCourtCaseWordSelect(word: string): void {\r\n this.courtCatalogInputs.Court.selectedCaseWord = word;\r\n }\r\n\r\n inputChange(): void {\r\n this.saveStatus();\r\n }\r\n saveStatus(): void {\r\n const courtGroupIds: JudicialInterpretCourtGroupId[] = [];\r\n Object.values(this.courtBlocks)\r\n .forEach(cb => cb.courts\r\n .forEach(c => c\r\n .forEach(c2 => {\r\n if (c2.selected) {\r\n courtGroupIds.push(c2.courtGroupId);\r\n }\r\n })\r\n )\r\n );\r\n const courtGroupIdNames = courtGroupIds.map(id => JudicialInterpretCourtGroupId[id]);\r\n const currentCourtCatalogName = JudicialInterpretCourtCatalogId[this.selectedCourtCatalogId];\r\n const currentCourtCatalogInput = this.courtCatalogInputs[currentCourtCatalogName];\r\n\r\n const selectedExecutes = {};\r\n Object.keys(this.executeCourts)\r\n .forEach(key => {\r\n const c = this.executeCourts[key];\r\n\r\n selectedExecutes[key] = {\r\n selected: c.selected,\r\n courts: [],\r\n };\r\n this.executeCourts[key].lists\r\n .forEach(l => {\r\n l.courts.forEach(ls => {\r\n ls.forEach(c => {\r\n if (c.selected) {\r\n selectedExecutes[key].courts.push(c.name);\r\n }\r\n });\r\n });\r\n });\r\n });\r\n\r\n // 裁判種類\r\n const save = {\r\n index: JudicialInterpretCourtCatalogId[this.selectedCourtCatalogId],\r\n isProMode: this.professionSearchMode,\r\n simpleSearchKeyword: this.simpleSearchText,\r\n proCourtGroupIdNames: courtGroupIdNames,\r\n proExecuteCourtNames: selectedExecutes,\r\n proInputs: this.courtCatalogInputs\r\n };\r\n console.log(save);\r\n\r\n const saveJson = JSON.stringify(save);\r\n const compressedSave = this.lzService.compress(saveJson);\r\n this.service.removeLocal('judicial_interpret_condition');\r\n this.service.setLocal('judicial_interpret_condition_v3', compressedSave);\r\n }\r\n loadStatus(): void {\r\n const compressedSave = this.service.getLocal('judicial_interpret_condition_v3');\r\n if (compressedSave == null || !compressedSave) {\r\n return;\r\n }\r\n\r\n try {\r\n const saveJson = this.lzService.decompress(compressedSave as string);\r\n const save = JSON.parse(saveJson);\r\n console.log(save);\r\n\r\n // 模式設定\r\n this.professionSearchMode = save.isProMode;\r\n // 簡易模式關鍵字\r\n this.simpleSearchText = save.simpleSearchKeyword;\r\n\r\n if (save.index != null) {\r\n this.selectedCourtCatalogId = JudicialInterpretCourtCatalogId[save.index as string];\r\n }\r\n\r\n // 選擇的法院\r\n for (const name of save.proCourtGroupIdNames) {\r\n this.courtGroups[name].selected = true;\r\n }\r\n\r\n // 行政函釋\r\n if (save.proExecuteCourtNames) {\r\n const selectedExecutes = save.proExecuteCourtNames;\r\n Object.keys(selectedExecutes)\r\n .forEach(key => {\r\n const sec = selectedExecutes[key];\r\n const ec = this.executeCourts[key];\r\n\r\n ec.selected = sec.selected;\r\n\r\n const ecd = this.executeCourtsDict[key];\r\n sec.courts.forEach(c => {\r\n ecd[c].selected = true;\r\n });\r\n });\r\n\r\n Object.keys(this.executeCourts)\r\n .forEach(key => {\r\n const ec = this.executeCourts[key];\r\n ec.lists.forEach(l => {\r\n l.selectedAll = l.courts.every(cs => cs.every(c => c.selected));\r\n });\r\n\r\n if (ec.lists.length > 0) {\r\n ec.selected = ec.lists.some(l => l.\r\n courts.some(cs => cs.some(c => c.selected))\r\n );\r\n }\r\n });\r\n\r\n this.executeSelectedAllCourt = Object.values(this.executeCourts)\r\n .every(ec => ec.selected);\r\n\r\n }\r\n\r\n\r\n this.updateCourtSelectAllStatus();\r\n\r\n // 輸入的內容\r\n const inputs = save.proInputs;\r\n Object.keys(this.courtCatalogInputs)\r\n .forEach(key => {\r\n Object.keys(inputs[key])\r\n .forEach(key2 => {\r\n try {\r\n if (typeof this.courtCatalogInputs[key][key2] == 'object') {\r\n Object.assign(\r\n this.courtCatalogInputs[key][key2],\r\n inputs[key][key2]\r\n );\r\n } else {\r\n this.courtCatalogInputs[key][key2] = inputs[key][key2];\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n });\r\n\r\n this.grandUpdatePropertySelection();\r\n\r\n console.log(JSON.parse(JSON.stringify(this.courtCatalogInputs)));\r\n\r\n // Object.assign(this.courtCatalogInputs, inputs);\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n\r\n }\r\n\r\n checkCourtCatalogHasSelectAnyCourt(judicialInterpretCourtCatalogId: JudicialInterpretCourtCatalogId): boolean {\r\n const name = JudicialInterpretCourtCatalogId[judicialInterpretCourtCatalogId];\r\n const courtCatalogCourt = this.courtCatalogCourts[name];\r\n const hasSelectAnyCourt = courtCatalogCourt\r\n .some(cc =>\r\n cc.some(cc2 =>\r\n cc2.courts.some(c =>\r\n c.some(c2 => c2.selected)\r\n )\r\n )\r\n );\r\n return hasSelectAnyCourt;\r\n }\r\n checkExecuteHasSelectAnyCourt(): boolean {\r\n return Object.values(this.executeCourts).some(ca => ca.selected)\r\n || Object.values(this.executeCourts)\r\n .some(ca => ca.lists\r\n .some(l => l.selectedAll)\r\n )\r\n || Object.values(this.executeCourts)\r\n .some(ca => ca.lists\r\n .some(l => l.courts\r\n .some(cs => cs\r\n .some(c => c.selected)\r\n )\r\n )\r\n );\r\n }\r\n getCourtCatalogSelectedCourtGroupIds(judicialInterpretCourtCatalogId: JudicialInterpretCourtCatalogId): JudicialInterpretCourtGroupId[] {\r\n const name = JudicialInterpretCourtCatalogId[judicialInterpretCourtCatalogId];\r\n const courtCatalogCourt = this.courtCatalogCourts[name];\r\n const courtGroupIds = [];\r\n courtCatalogCourt\r\n .forEach(cc => {\r\n cc.forEach(cc2 => {\r\n cc2.courts\r\n .forEach(c => {\r\n c.forEach(c2 => {\r\n if (c2.selected) {\r\n courtGroupIds.push(c2.courtGroupId);\r\n }\r\n })\r\n })\r\n })\r\n });\r\n return courtGroupIds;\r\n }\r\n clearCourtCatalogInput(judicialInterpretCourtCatalogId: JudicialInterpretCourtCatalogId): void {\r\n const name = JudicialInterpretCourtCatalogId[judicialInterpretCourtCatalogId];\r\n const courtCatalogInput = this.courtCatalogInputs[name];\r\n Object.keys(courtCatalogInput)\r\n .forEach(key => {\r\n if (key == 'compose') {\r\n courtCatalogInput[key] = ['And', 'And', 'And', 'And', 'And', 'And'];\r\n }\r\n else if (key == 'caseWords') {\r\n return;\r\n }\r\n else if (key == 'selectedCaseWord') {\r\n courtCatalogInput[key] = '全部';\r\n if (this.courtComposeCaseWord != null) {\r\n this.courtComposeCaseWord.selectedCaseWord =\r\n this.courtComposeCaseWord.baseList[0];\r\n }\r\n }\r\n else if (Array.isArray(courtCatalogInput[key])) {\r\n courtCatalogInput[key] = ['', '', '', '', '', ''];\r\n }\r\n else if (typeof courtCatalogInput[key] == 'string') {\r\n courtCatalogInput[key] = '';\r\n }\r\n });\r\n this.inputChange();\r\n }\r\n submitProSearch(judicialInterpretCourtCatalogId: JudicialInterpretCourtCatalogId): void {\r\n const name = JudicialInterpretCourtCatalogId[judicialInterpretCourtCatalogId];\r\n const courtCatalogCourt = this.courtCatalogCourts[name];\r\n const courtCatalogInput = this.courtCatalogInputs[name];\r\n // console.log(courtCatalogCourt, courtCatalogInput);\r\n\r\n const courtBlocks = [];\r\n courtCatalogCourt\r\n .forEach(cc => {\r\n cc.forEach(cc2 => {\r\n const isBlockHasAnySelectedCourt = cc2.courts.some(c =>\r\n c.some(c2 => c2.selected)\r\n );\r\n if (isBlockHasAnySelectedCourt) {\r\n const selectedCourtGroupIds = [];\r\n cc2.courts\r\n .forEach(c => {\r\n c.forEach(c2 => {\r\n if (c2.selected) {\r\n selectedCourtGroupIds.push(c2.courtGroupId);\r\n }\r\n })\r\n });\r\n courtBlocks.push({\r\n courtBlockId: cc2.courtBlockId,\r\n courtGroupIds: selectedCourtGroupIds\r\n })\r\n }\r\n })\r\n });\r\n\r\n\r\n let condition: any = {\r\n // catalogId: this.selectedCourtCatalogId,\r\n // courts: this.getCourtCatalogSelectedCourtGroupIds(judicialInterpretCourtCatalogId),\r\n catalogName: JudicialInterpretCourtCatalogs[JudicialInterpretCourtCatalogId[this.selectedCourtCatalogId]].name,\r\n courtBlocks: courtBlocks,\r\n catalogId: judicialInterpretCourtCatalogId,\r\n keyword: courtCatalogInput.keyword,\r\n compose: courtCatalogInput.compose,\r\n caseDate: courtCatalogInput.caseDate,\r\n };\r\n if (judicialInterpretCourtCatalogId == JudicialInterpretCourtCatalogId.Court) {\r\n condition['caseWordWord'] = '';\r\n if (courtCatalogInput.selectedCaseWord != '全部') {\r\n condition['caseWordWord'] = courtCatalogInput.selectedCaseWord;\r\n }\r\n condition['caseWordNumber'] = courtCatalogInput.caseWordNumber;\r\n condition['caseWordMeetNumber'] = courtCatalogInput.caseWordMeetNumber;\r\n condition['xfCaseYear'] = courtCatalogInput.xfCaseYear;\r\n condition['xfCaseWord'] = courtCatalogInput.xfCaseWord;\r\n condition['xfCaseNumber'] = courtCatalogInput.xfCaseNumber;\r\n }\r\n else if (judicialInterpretCourtCatalogId == JudicialInterpretCourtCatalogId.Grand) {\r\n condition['caseWordYear'] = courtCatalogInput.caseWordYear;\r\n condition['caseWordWord'] = courtCatalogInput.caseWordWord;\r\n condition['caseWordNumber'] = courtCatalogInput.caseWordNumber;\r\n condition['caseReason'] = courtCatalogInput.caseReason;\r\n condition['property1'] = courtCatalogInput.property1;\r\n condition['property2'] = courtCatalogInput.property2;\r\n condition['property3'] = courtCatalogInput.property3;\r\n condition['property4'] = courtCatalogInput.property4;\r\n }\r\n else if (judicialInterpretCourtCatalogId == JudicialInterpretCourtCatalogId.Precedent) {\r\n condition['caseWordYear'] = courtCatalogInput.caseWordYear;\r\n condition['caseWordWord'] = courtCatalogInput.caseWordWord;\r\n condition['caseWordNumber'] = courtCatalogInput.caseWordNumber;\r\n condition['caseReason'] = courtCatalogInput.caseReason;\r\n }\r\n else if (judicialInterpretCourtCatalogId == JudicialInterpretCourtCatalogId.Judgment) {\r\n condition['caseWordYear'] = courtCatalogInput.caseWordYear;\r\n condition['caseWordWord'] = courtCatalogInput.caseWordWord;\r\n condition['caseWordNumber'] = courtCatalogInput.caseWordNumber;\r\n condition['caseReason'] = courtCatalogInput.caseReason;\r\n }\r\n else if (judicialInterpretCourtCatalogId == JudicialInterpretCourtCatalogId.Resolution) {\r\n condition['caseWordMeetYear'] = courtCatalogInput.caseWordMeetYear;\r\n condition['caseWordMeetMonth'] = courtCatalogInput.caseWordMeetMonth;\r\n condition['caseWordMeetNumber'] = courtCatalogInput.caseWordMeetNumber;\r\n }\r\n else if (judicialInterpretCourtCatalogId == JudicialInterpretCourtCatalogId.Discipline) {\r\n condition['caseWordYear'] = courtCatalogInput.caseWordYear;\r\n condition['caseWordWord'] = courtCatalogInput.caseWordWord;\r\n condition['caseWordNumber'] = courtCatalogInput.caseWordNumber;\r\n condition['caseReason'] = courtCatalogInput.caseReason;\r\n }\r\n else if (judicialInterpretCourtCatalogId == JudicialInterpretCourtCatalogId.Seminar) {\r\n\r\n }\r\n else if (judicialInterpretCourtCatalogId == JudicialInterpretCourtCatalogId.Execute) {\r\n condition['caseWordAgency'] = courtCatalogInput.caseWordAgency;\r\n condition['caseWordWord'] = courtCatalogInput.caseWordWord;\r\n condition['caseWordNumber'] = courtCatalogInput.caseWordNumber;\r\n\r\n const tag = {};\r\n Object.keys(this.executeCourts)\r\n .forEach(key => {\r\n const tag1Name = key;\r\n const tag1 = this.executeCourts[key];\r\n if (tag1.lists != null) {\r\n tag1.lists.forEach(l => {\r\n l.courts.forEach(cr => {\r\n cr.forEach(c => {\r\n if (c.selected) {\r\n if (tag[tag1Name] == null) {\r\n tag[tag1Name] = [];\r\n }\r\n tag[tag1Name].push(c.name);\r\n }\r\n });\r\n });\r\n });\r\n }\r\n });\r\n\r\n condition['tag'] = tag;\r\n }\r\n\r\n this.service.log(LogPageId.SearchResultJudicialInterpret, JSON.stringify(condition.search_keywords), '');\r\n this.judicialInterpretSearchService.onSubmitProSearch(condition);\r\n }\r\n\r\n\r\n grandReasonInputChange(): void {\r\n if (this.grandSuggestReasonSubscribe != null) {\r\n this.grandSuggestReasonSubscribe.unsubscribe();\r\n this.grandSuggestReasonSubscribe = null;\r\n }\r\n\r\n // this.grandSearchedReasonText = this.grandCaseReason;\r\n\r\n this.grandSuggestReasonSubscribe =\r\n this.judicialInterpretService\r\n .getSuggestionReasonObserver(\r\n this.courtCatalogInputs.Grand.caseReason,\r\n JudicialInterpretCaseType.Grand\r\n )\r\n .subscribe(reasons => {\r\n this.grandSuggestReasons = of(reasons);\r\n this.grandSuggestReasonSubscribe = null;\r\n });\r\n }\r\n grandClickAutoCompleteOption(ev: any): void {\r\n this.courtCatalogInputs.Grand.caseReason = ev.option.value;\r\n }\r\n grandUpdatePropertySelection(): void {\r\n this.grandPropertySelectedAll = this.courtCatalogInputs.Grand.property1\r\n && this.courtCatalogInputs.Grand.property2\r\n && this.courtCatalogInputs.Grand.property3\r\n && this.courtCatalogInputs.Grand.property4;\r\n\r\n this.inputChange();\r\n }\r\n grandPropertyToggleAll(): void {\r\n this.courtCatalogInputs.Grand.property1 = this.grandPropertySelectedAll;\r\n this.courtCatalogInputs.Grand.property2 = this.grandPropertySelectedAll;\r\n this.courtCatalogInputs.Grand.property3 = this.grandPropertySelectedAll;\r\n this.courtCatalogInputs.Grand.property4 = this.grandPropertySelectedAll;\r\n\r\n this.inputChange();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n precedentReasonInputChange(): void {\r\n if (this.precedentSuggestReasonSubscribe != null) {\r\n this.precedentSuggestReasonSubscribe.unsubscribe();\r\n this.precedentSuggestReasonSubscribe = null;\r\n }\r\n\r\n // this.precedentSearchedReasonText = this.precedentCaseReason;\r\n\r\n this.precedentSuggestReasonSubscribe =\r\n this.judicialInterpretService\r\n .getSuggestionReasonObserver(\r\n this.courtCatalogInputs.Precedent.caseReason,\r\n JudicialInterpretCaseType.Precedent\r\n )\r\n .subscribe(reasons => {\r\n this.precedentSuggestReasons = of(reasons);\r\n this.precedentSuggestReasonSubscribe = null;\r\n });\r\n }\r\n precedentClickAutoCompleteOption(ev: any): void {\r\n this.courtCatalogInputs.Precedent.caseReason = ev.option.value;\r\n }\r\n\r\n judgmentReasonInputChange(): void {\r\n if (this.judgmentSuggestReasonSubscribe != null) {\r\n this.judgmentSuggestReasonSubscribe.unsubscribe();\r\n this.judgmentSuggestReasonSubscribe = null;\r\n }\r\n\r\n // this.judgmentSearchedReasonText = this.judgmentCaseReason;\r\n this.judgmentSuggestReasonSubscribe =\r\n this.judicialInterpretService\r\n .getSuggestionReasonObserver(\r\n this.courtCatalogInputs.Judgment.caseReason,\r\n JudicialInterpretCaseType.Judgment\r\n )\r\n .subscribe(reasons => {\r\n this.judgmentSuggestReasons = of(reasons);\r\n this.judgmentSuggestReasonSubscribe = null;\r\n });\r\n }\r\n judgmentClickAutoCompleteOption(ev: any): void {\r\n this.courtCatalogInputs.Judgment.caseReason = ev.option.value;\r\n }\r\n\r\n disciplineReasonInputChange(): void {\r\n if (this.disciplineSuggestReasonSubscribe != null) {\r\n this.disciplineSuggestReasonSubscribe.unsubscribe();\r\n this.disciplineSuggestReasonSubscribe = null;\r\n }\r\n\r\n // this.disciplineSearchedReasonText = this.disciplineCaseReason;\r\n this.disciplineSuggestReasonSubscribe =\r\n this.judicialInterpretService.getSuggestionReasonObserver(\r\n this.courtCatalogInputs.Discipline.caseReason,\r\n JudicialInterpretCaseType.Discipline\r\n )\r\n .subscribe(reasons => {\r\n this.disciplineSuggestReasons = of(reasons);\r\n this.disciplineSuggestReasonSubscribe = null;\r\n });\r\n }\r\n disciplineClickAutoCompleteOption(ev: any): void {\r\n this.courtCatalogInputs.Discipline.caseReason = ev.option.value;\r\n }\r\n\r\n // 點擊最上級文字選擇,更新選擇影響結果\r\n executeUpdateSelectCourt(courtName: string): void {\r\n // 右邊區切換選擇的最上級\r\n this.executeSelectedCourt = this.executeCourts[courtName];\r\n\r\n // 設定最上級底下的所有機關為當前最上級選擇狀態\r\n {\r\n const executeCatalog = this.executeCourts[courtName];\r\n\r\n // 更新機關\r\n executeCatalog.lists\r\n .forEach(list => list.courts\r\n .forEach(row => row\r\n .forEach(c => {\r\n c.selected = executeCatalog.selected;\r\n })\r\n )\r\n );\r\n\r\n // 更新機關全選按鈕\r\n executeCatalog.lists.forEach(executeList => {\r\n executeList.selectedAll = executeList.courts.every(cs => cs.every(c => c.selected));\r\n });\r\n\r\n // 更新最上級全選按鈕\r\n this.executeSelectedAllCourt = Object.values(this.executeCourts)\r\n .every(ec => ec.selected);\r\n }\r\n\r\n // 紀錄輸入結果\r\n this.inputChange();\r\n }\r\n // 點擊最上級右邊按鈕,切換右邊區\r\n executeSelectCourt(courtName: string): void {\r\n this.executeSelectedCourt = this.executeCourts[courtName];\r\n }\r\n // 點擊最上級全選按鈕,更新最上級、底下機關,選擇結果\r\n executeCourtCatalogSelectAll(): void {\r\n const selected = this.executeSelectedAllCourt;\r\n Object.values(this.executeCourts)\r\n .forEach((ec: any) => {\r\n ec.selected = selected;\r\n ec.lists.forEach(lc => {\r\n lc.selectedAll = selected;\r\n lc.courts.forEach(c1 => {\r\n c1.forEach(c => {\r\n c.selected = selected;\r\n });\r\n });\r\n });\r\n });\r\n\r\n // 紀錄選擇結果\r\n this.inputChange();\r\n }\r\n // 取最上級右邊按鈕目前選擇狀態\r\n executeGetCourtCatalogSelectCount(\r\n executeCatalog: { selected: boolean, lists: any[] }\r\n ): { count: number, total: number, isSelectedAll: boolean } {\r\n let count = 0;\r\n let total = 0;\r\n executeCatalog.lists.forEach(lc => {\r\n lc.courts.forEach(c1 => {\r\n c1.forEach(c => {\r\n total++;\r\n if (c.selected) {\r\n count++;\r\n }\r\n });\r\n });\r\n });\r\n const isSelectedAll = total == count;\r\n return {\r\n count: count,\r\n total: total,\r\n isSelectedAll: isSelectedAll,\r\n };\r\n }\r\n\r\n // 點擊機關選擇,更新機關全選、最上級、最上級全選,選擇結果\r\n executeUpdateCourtSelection(\r\n executeList: { selectedAll: boolean, courts: { name: string, selected: boolean }[][] },\r\n executeCatalog: { selected: boolean, lists: any[] }\r\n ): void {\r\n // 更新機關全選按鈕\r\n executeList.selectedAll = executeList.courts.every(cs => cs.every(c => c.selected));\r\n\r\n // 更新最上級選擇按鈕\r\n executeCatalog.selected = executeCatalog.lists\r\n .some(cl => cl.courts\r\n .some(cs => cs\r\n .some(c => c.selected)\r\n )\r\n );\r\n\r\n // 更新最上級全選按鈕\r\n this.executeSelectedAllCourt = Object.values(this.executeCourts)\r\n .every(ec => ec.selected);\r\n\r\n this.inputChange();\r\n }\r\n // 點擊右邊區,機關全選按鈕,更新底下機關、最上級、最上級全選,選擇結果\r\n executeUpdateCourtSelectAll(\r\n executeList: { selectedAll: boolean, courts: { name: string, selected: boolean }[][] },\r\n executeCatalog: { selected: boolean, lists: any[] }\r\n ): void {\r\n executeList.courts.forEach(c => {\r\n c.forEach(c2 => {\r\n c2.selected = executeList.selectedAll;\r\n })\r\n });\r\n\r\n executeCatalog.selected = executeCatalog.lists\r\n .some(cl => cl.courts\r\n .some(cs => cs\r\n .some(c => c.selected)\r\n )\r\n );\r\n\r\n this.executeSelectedAllCourt = Object.values(this.executeCourts)\r\n .every(ec => ec.selected);\r\n\r\n this.inputChange();\r\n }\r\n\r\n\r\n\r\n\r\n focusInput(): void {\r\n if (this.professionSearchMode) {\r\n if (this.selectedCourtCatalogId == JudicialInterpretCourtCatalogId.Court\r\n && this.courtInputFirstElement.nativeElement != null) {\r\n this.courtInputFirstElement.nativeElement.focus();\r\n }\r\n else if (this.selectedCourtCatalogId == JudicialInterpretCourtCatalogId.Grand\r\n && this.grandInputFirstElement.nativeElement != null) {\r\n this.grandInputFirstElement.nativeElement.focus();\r\n }\r\n else if (this.selectedCourtCatalogId == JudicialInterpretCourtCatalogId.Precedent\r\n && this.precedentInputFirstElement.nativeElement != null) {\r\n this.precedentInputFirstElement.nativeElement.focus();\r\n }\r\n else if (this.selectedCourtCatalogId == JudicialInterpretCourtCatalogId.Judgment\r\n && this.judgmentInputFirstElement.nativeElement != null) {\r\n this.judgmentInputFirstElement.nativeElement.focus();\r\n }\r\n else if (this.selectedCourtCatalogId == JudicialInterpretCourtCatalogId.Resolution\r\n && this.resolutionInputFirstElement.nativeElement != null) {\r\n this.resolutionInputFirstElement.nativeElement.focus();\r\n }\r\n else if (this.selectedCourtCatalogId == JudicialInterpretCourtCatalogId.Discipline\r\n && this.disciplineInputFirstElement.nativeElement != null) {\r\n this.disciplineInputFirstElement.nativeElement.focus();\r\n }\r\n else if (this.selectedCourtCatalogId == JudicialInterpretCourtCatalogId.Seminar\r\n && this.seminarInputFirstElement.nativeElement != null) {\r\n this.seminarInputFirstElement.nativeElement.focus();\r\n }\r\n else if (this.selectedCourtCatalogId == JudicialInterpretCourtCatalogId.Execute\r\n && this.executeInputFirstElement.nativeElement != null) {\r\n this.executeInputFirstElement.nativeElement.focus();\r\n }\r\n } else {\r\n this.simpleInputElement.nativeElement.focus();\r\n }\r\n }\r\n turnOnProMode(): void {\r\n this.inputChange();\r\n\r\n setTimeout(() => {\r\n this.focusInput();\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n\r\n /** **************************************************** */\r\n // ! 簡易檢索\r\n /** **************************************************** */\r\n\r\n submitSimpleSearch(): void {\r\n this.service.log(LogPageId.SearchResultJudicialInterpret, this.simpleSearchText, '');\r\n\r\n // this.judicialInterpretSearchService.onSubmitSimpleSearch(this.simpleSearchText);\r\n // this.submitSimple.emit(this.simpleSearchText);\r\n\r\n let keyword = this.simpleSearchText;\r\n this.judicialInterpretSearchService.onSubmitSimpleSearch(keyword);\r\n }\r\n\r\n\r\n\r\n\r\n\r\n disableSimpleSubmit(): boolean {\r\n return this.simpleSearchText.length === 0;\r\n }\r\n showClearButton(): boolean {\r\n return this.simpleSearchText.length > 0;\r\n }\r\n clearSimpleText(): void {\r\n this.simpleSearchText = '';\r\n\r\n this.inputChange();\r\n }\r\n\r\n /** 關鍵字搜尋ENTER */\r\n enterKeydown(ev: KeyboardEvent): void {\r\n if (this.disableSimpleSubmit()\r\n || ev.keyCode !== 13) {\r\n return;\r\n }\r\n this.submitSimpleSearch();\r\n }\r\n getNumberFromString(numberString: string): number {\r\n const num = parseInt(numberString, 10);\r\n return isNaN(num) ? null : num;\r\n }\r\n getTrimText(text: string): string {\r\n if (!text) { return text; }\r\n\r\n return text.trim();\r\n }\r\n\r\n\r\n selectAll(courtBlock: JudicialInterpretCourtBlock, setSelected: boolean): void {\r\n // let setSelected = courtBlock.courtList.every(c => c.every(c2 => c2.selected));\r\n courtBlock.courtList.forEach(c => c.forEach(c2 => c2.selected = setSelected));\r\n\r\n // this.saveStatus();\r\n }\r\n isAllCourtSelected(courtBlock: JudicialInterpretCourtBlock): boolean {\r\n return courtBlock.courtList.every(c => c.every(c2 => c2.selected));\r\n }\r\n isSelectAllObject(obj: { [key: string]: boolean }): boolean {\r\n return Object.keys(obj).every(k => obj[k]);\r\n }\r\n selectAllObject(obj: { [key: string]: boolean }, selected: boolean): void {\r\n Object.keys(obj).forEach(k => {\r\n obj[k] = selected;\r\n });\r\n\r\n // this.saveStatus();\r\n }\r\n\r\n loadSaveToVar(save: JudicialInterpretConditionSave, varName: string): void {\r\n if (save[varName] == null) {\r\n return;\r\n }\r\n this[varName] = save[varName];\r\n }\r\n\r\n\r\n\r\n\r\n\r\n // 專業檢索檢查\r\n checkDate(date: string[]): boolean {\r\n return true;\r\n if (date.every(t => t === '')\r\n || date.every(t => t !== '')) {\r\n return true;\r\n } else {\r\n alert('請輸入完整裁判期間');\r\n return false;\r\n }\r\n }\r\n setDateFromSourceCaseDate(refCondition: JudicialInterpretCondition, numberString: string[]): void {\r\n let date_start_year: number = numberString[0] == '' ? null : Number(numberString[0]);\r\n let date_start_month: number = numberString[1] == '' ? null : Number(numberString[1]);\r\n let date_start_day: number = numberString[2] == '' ? null : Number(numberString[2]);\r\n let date_end_year: number = numberString[3] == '' ? null : Number(numberString[3]);\r\n let date_end_month: number = numberString[4] == '' ? null : Number(numberString[4]);\r\n let date_end_day: number = numberString[5] == '' ? null : Number(numberString[5]);\r\n\r\n if (isNaN(date_start_year)) { date_start_year = null; }\r\n if (isNaN(date_start_month)) { date_start_month = null; }\r\n if (isNaN(date_start_day)) { date_start_day = null; }\r\n if (isNaN(date_end_year)) { date_end_year = null; }\r\n if (isNaN(date_end_month)) { date_end_month = null; }\r\n if (isNaN(date_end_day)) { date_end_day = null; }\r\n\r\n refCondition.date_start_year = date_start_year;\r\n refCondition.date_start_month = date_start_month;\r\n refCondition.date_start_day = date_start_day;\r\n refCondition.date_end_year = date_end_year;\r\n refCondition.date_end_month = date_end_month;\r\n refCondition.date_end_day = date_end_day;\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
查詢司法判解
\r\n
\r\n
\r\n
簡易檢索
\r\n
\r\n \r\n
\r\n
專業檢索
\r\n
\r\n
\r\n
\r\n
\r\n
全文檢索
\r\n \r\n
\r\n
清除
\r\n
\r\n
送出查詢
\r\n
\r\n
\r\n
\r\n
\r\n
司法院
\r\n
大法庭
\r\n
判例
\r\n
精選裁判
\r\n
決議
\r\n
公懲
\r\n
座談會
\r\n
行政函令
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
憲法法庭
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
大法官(舊制,110年以前)
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
不受理(舊制,110年以前)
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
司法院
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
全文檢索
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
憲法案號
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
解釋字號
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
解釋期間
\r\n
\r\n
\r\n
自民國
\r\n \r\n
\r\n \r\n
\r\n \r\n
日 至
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
會  次
\r\n
\r\n
\r\n \r\n
次大法官不受理案件
\r\n
\r\n
\r\n\r\n
\r\n
送出查詢
\r\n
清除重填
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
一般
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
全文檢索
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
最高法院
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
裁判案由
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
選擇類別
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
裁判期間
\r\n
\r\n
\r\n
自民國
\r\n \r\n
\r\n \r\n
\r\n \r\n
日 至
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
送出查詢
\r\n
清除重填
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
一般
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
停止適用
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
全文檢索
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
最高法院
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
裁判案由
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
裁判期間
\r\n
\r\n
\r\n
自民國
\r\n \r\n
\r\n \r\n
\r\n \r\n
日 至
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
送出查詢
\r\n
清除重填
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
民事
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
刑事
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
行政
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
最高法院 - 具有參考價值的裁判
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
高等法院及所屬法院 -
具有參考價值的裁判
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
全文檢索
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
裁判案號
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
裁判案由
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
裁判期間
\r\n
\r\n
\r\n
自民國
\r\n \r\n
\r\n \r\n
\r\n \r\n
日 至
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
送出查詢
\r\n
清除重填
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
民事
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
刑事
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
行政
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
全文檢索
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
會議次別
\r\n
\r\n
\r\n \r\n
年度
\r\n \r\n
月份
\r\n \r\n
次 會議決議
\r\n
\r\n
\r\n
\r\n
\r\n
決議期間
\r\n
\r\n
\r\n
自民國
\r\n \r\n
\r\n \r\n
\r\n \r\n
日 至
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
送出查詢
\r\n
清除重填
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
公懲法院
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
全文檢索
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
公懲案號
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
公懲案由
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
裁判期間
\r\n
\r\n
\r\n
自民國
\r\n \r\n
\r\n \r\n
\r\n \r\n
日 至
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
送出查詢
\r\n
清除重填
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
民事
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
刑事
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
行政
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
公懲
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
全文檢索
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
會議期間
\r\n
\r\n
\r\n
自民國
\r\n \r\n
\r\n \r\n
\r\n \r\n
日 至
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
送出查詢
\r\n
清除重填
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
行政函令
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
院本部
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
所屬機關
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
院本部
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
輔助單位
\r\n
\r\n \r\n
\r\n
業務單位
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
所屬機關
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
院本部
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
委員會
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
常設委員會
\r\n
\r\n \r\n
\r\n
特種委員會
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
所屬機關
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
院本部
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
所屬機關
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
院本部
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
法院政令
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
院本部
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
委員會
\r\n \r\n
\r\n
\r\n
常設委員會
\r\n
\r\n \r\n
\r\n
特種委員會
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
管轄地區
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
全文檢索
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
發文字號
\r\n
\r\n
\r\n \r\n
機關
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
發文日期
\r\n
\r\n
\r\n
自民國
\r\n \r\n
\r\n \r\n
\r\n \r\n
日 至
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
送出查詢
\r\n
清除重填
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n 全選\r\n 0\">{{executeGetCourtCatalogSelectCount(executeCourts[courtCatalogName]).count}}\r\n 請選擇\r\n
\r\n
","import { SearcherKeyword } from 'projects/lwlib/src/keyword-searcher/searcher-keyword';\r\nimport { JudicialInterpretType } from '../../child-content-storage-personal/judicial-interpret/judicial-interpret-type.enum';\r\nimport { JudicialInterpretCourtId } from './judicial-interpret-court-id.enum';\r\nimport { ComposeType } from 'projects/lwlib/src/compose-search-popup/compose-type';\r\nimport { JudicialInterpretCaseType } from './judicial-interpret-case-type.enum';\r\n\r\nexport class JudicialInterpretCondition {\r\n /** start@1 */\r\n page_index: number;\r\n per_page_amount: number;\r\n\r\n /** 檢索關鍵字 */\r\n search_keywords: SearcherKeyword[] = [\r\n SearcherKeyword.create({ index: 0, keyword: '' }),\r\n SearcherKeyword.create({ index: 1, keyword: '' }),\r\n SearcherKeyword.create({ index: 2, keyword: '' }),\r\n SearcherKeyword.create({ index: 3, keyword: '' }),\r\n SearcherKeyword.create({ index: 4, keyword: '' }),\r\n SearcherKeyword.create({ index: 5, keyword: '' }),\r\n ];\r\n\r\n /** 檢索種類 */\r\n case_type: JudicialInterpretCaseType;\r\n /** 選擇的法院 */\r\n court_id: JudicialInterpretCourtId;\r\n /** 搜尋的法院集 */\r\n courts: JudicialInterpretCourtId[];\r\n\r\n skip_first_count: number;\r\n start_sn: number;\r\n\r\n case_year: number;\r\n case_word: string;\r\n case_number: number;\r\n case_reason: string;\r\n\r\n // case_date: number[] = [-1, -1, -1, -1, -1, -1];\r\n date_start_year: number;\r\n date_start_month: number;\r\n date_start_day: number;\r\n date_end_year: number;\r\n date_end_month: number;\r\n date_end_day: number;\r\n\r\n meet_year: number;\r\n meet_number: number;\r\n\r\n getHighlightKeyword(): string {\r\n const keyword = this.search_keywords.filter(k => {\r\n return k.compose !== ComposeType.Not\r\n && k.keyword;\r\n })\r\n .map(k => k.keyword.replace(/\\s+/g, ''))\r\n .join(' ');\r\n\r\n return keyword;\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, TemplateRef, HostListener, OnDestroy, ElementRef } from '@angular/core';\r\nimport { JudicialInterpretSearchResultCaseType } from './judicial-interpret-search-result-case-type.enum';\r\nimport { JudicialInterpretResultTypeButton } from './judicial-interpret-result-type-button';\r\nimport { JudicialInterpretPropertyItem } from '../../child-content-storage-personal/judicial-interpret/judicial-interpret-property-item';\r\nimport { JudicialInterpretProperty } from '../../child-content-storage-personal/judicial-interpret/judicial-interpret-property.enum';\r\nimport { JudicialInterpretType } from '../../child-content-storage-personal/judicial-interpret/judicial-interpret-type.enum';\r\nimport { AppCommonService } from 'projects/desktop/src/app/app-common.service';\r\nimport { JudicialInterpretService } from '../../child-content-storage-personal/judicial-interpret/judicial-interpret.service';\r\nimport { LoadingIconService } from 'projects/lwlib/src/loading-icon/loading-icon.service';\r\nimport { JudicialInterpretCase } from '../../child-content-storage-personal/judicial-interpret/judicial-interpret-case';\r\nimport { PreviewWindowType } from 'projects/lwlib/src/preview-window/preview-window-type';\r\nimport { PreviewWindowComponent } from 'projects/lwlib/src/preview-window/preview-window.component';\r\nimport { JudicialInterpretCondition } from '../judicial-interpret-condition/judicial-interpret-condition';\r\nimport { JudicialInterpretCourtCount } from '../../child-content-storage-personal/judicial-interpret/judicial-interpret-court-count';\r\nimport { JudicialInterpretSearchService } from '../judicial-interpret-search.service';\r\nimport { PageChangeComponent } from 'projects/lwlib/src/page-change/page-change.component';\r\nimport { JudicialInterpretCourtIdOrder } from './judicial-interpret-court-id-order.enum';\r\nimport { JudicialInterpretCourtId } from '../judicial-interpret-condition/judicial-interpret-court-id.enum';\r\nimport { JudicialInterpretCaseType } from '../judicial-interpret-condition/judicial-interpret-case-type.enum';\r\nimport { JudicialInterpretCaseFull } from '../../child-content-storage-personal/judicial-interpret/judicial-interpret-case-full';\r\nimport { JudicialInterpretCaseList } from '../../child-content-storage-personal/judicial-interpret/judicial-interpret-case-list';\r\nimport { tap, takeWhile, map, switchMap, mergeMap } from 'rxjs/operators';\r\nimport { Observable, of, from, Subscriber, interval, Subject } from 'rxjs';\r\nimport { NotificationService } from 'projects/lwlib/src/notification/notification.service';\r\nimport { Serializable } from 'projects/lwlib/src/serializable';\r\nimport { ComposeType } from 'projects/lwlib/src/compose-search-popup/compose-type';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { AppConfigService } from 'projects/desktop/src/app/app-config.service';\r\nimport { BroadcastEventListener } from 'ng2-signalr';\r\nimport { SearcherKeyword } from 'projects/lwlib/src/keyword-searcher/searcher-keyword';\r\nimport { MaterialHelper } from 'projects/lwlib/src/material-helper';\r\nimport { LZStringService } from 'ng-lz-string';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { SearchAgainPopupComponent } from 'projects/lwlib/src/search-again-popup/search-again-popup.component';\r\nimport { JudicialInterpretConditionSave } from '../judicial-interpret-condition/judicial-interpret-condition-save';\r\nimport { CourtId } from 'projects/lwlib/src/case-type/court-id.enum';\r\nimport { LwExt } from 'projects/lwlib/src/lib/lw-ext';\r\nimport { getJudicialInterpretCourtGroupIdsFromCourtCatalogId, JudicialInterpretCourtBlockId, JudicialInterpretCourtBlocks, JudicialInterpretCourtCatalogId, JudicialInterpretCourtCatalogs, JudicialInterpretCourtGroupId, JudicialInterpretCourtGroups, judicialInterpretCourts, JudicialInterpretSearchCourtCatalog, JudicialInterpretSearchCourtGroup } from 'projects/lwlib/src/judicial-interpret/judicial-interpret-court';\r\n\r\n@Component({\r\n selector: 'app-judicial-interpret-result',\r\n templateUrl: './judicial-interpret-result.component.html',\r\n styleUrls: ['./judicial-interpret-result.component.scss']\r\n})\r\nexport class JudicialInterpretResultComponent implements OnInit, OnDestroy {\r\n judicialInterpretSearchResultType: any = JudicialInterpretSearchResultCaseType;\r\n private rType = JudicialInterpretSearchResultCaseType;\r\n private tb = JudicialInterpretResultTypeButton;\r\n private jipi = JudicialInterpretPropertyItem;\r\n private jip = JudicialInterpretProperty;\r\n private jit = JudicialInterpretType;\r\n\r\n @ViewChild('interpretCollege', { static: true }) interpretCollegeTemplate: TemplateRef; // 司法院\r\n @ViewChild('interpretBigJudge', { static: true }) interpretBigJudgeTemplate: TemplateRef; // 大法官解釋\r\n @ViewChild('bigJudgeReject', { static: true }) bigJudgeRejectTemplate: TemplateRef; // 大法官不受理\r\n @ViewChild('xfCourt', { static: true }) xfCourtTemplate: TemplateRef; // 憲法法庭\r\n @ViewChild('judgmentPrecedent', { static: true }) judgmentPrecedentTemplate: TemplateRef; // 判例\r\n @ViewChild('featuredJudgment', { static: true }) featuredJudgmentTemplate: TemplateRef; // 精選裁判\r\n @ViewChild('featuredJudgmentGist', { static: true }) featuredJudgmentGistTemplate: TemplateRef; // 最高法院裁判、價值裁判\r\n @ViewChild('resolution', { static: true }) resolutionTemplate: TemplateRef; // 決議\r\n @ViewChild('discipline', { static: true }) disciplineTemplate: TemplateRef; // 公懲\r\n @ViewChild('seminar', { static: true }) seminarTemplate: TemplateRef; // 座談會\r\n @ViewChild('grand', { static: true }) grandTemplate: TemplateRef; // 大法庭\r\n @ViewChild('execute', { static: true }) executeTemplate: TemplateRef; // 行政函釋\r\n\r\n @ViewChild('pageChangePro') pageChangePro: PageChangeComponent;\r\n @ViewChild('pageChangeSimple') pageChangeSimple: PageChangeComponent;\r\n @ViewChild('proListElementRef') proListElementRef: ElementRef;\r\n @ViewChild('simpleListElementRef') simpleListElementRef: ElementRef;\r\n\r\n @ViewChild('previewWindow', { static: true }) previewWindowComponent: PreviewWindowComponent;\r\n\r\n // 檢索模式\r\n isProMode: boolean = true;\r\n\r\n // 檢索模式:完整\r\n courtCatalogName: string = '';\r\n courtBlocks: {\r\n name: string,\r\n courtGroups: JudicialInterpretSearchCourtGroup[]\r\n }[] = [];\r\n courtBlockDict = {};\r\n courtGroups: JudicialInterpretSearchCourtGroup[] = [];\r\n courtGroupDict: { [key: string]: JudicialInterpretSearchCourtGroup } = {};\r\n totalCount: number = 0;\r\n searchTasks: Observable[] = [];\r\n selectedCourtGroup: JudicialInterpretSearchCourtGroup;\r\n /** 結果清單 */\r\n noteList: JudicialInterpretCase[] = [];\r\n /** 搜尋中 */\r\n noteSearching: boolean = true;\r\n noResult: boolean = false;\r\n enablePageChange: boolean = true;\r\n pageNumber: number = 1;\r\n\r\n forceStopSearch: boolean = false;\r\n\r\n isEtype: boolean = false;\r\n\r\n\r\n // 檢索模式:簡易\r\n searchAllCourtCatalog: JudicialInterpretSearchCourtCatalog;\r\n courtCatalogs: JudicialInterpretSearchCourtCatalog[] = [];\r\n courtCatalogDict: { [key: string]: JudicialInterpretSearchCourtCatalog } = {};\r\n selectedCourtCatalog: JudicialInterpretSearchCourtCatalog;\r\n courtGroupCatalogDict: { [key: string]: JudicialInterpretSearchCourtCatalog } = {};\r\n\r\n getJudicialInterpretCaseSimpleName = {\r\n ctypeD: (data) => this.getCaseName1(data),\r\n ctypeA: (data) => this.getCaseName1(data),\r\n ctypeB: (data) => this.getCaseName1(data),\r\n ctypeC: (data) => this.getCaseName1(data),\r\n ttypeX: (data) => this.getCaseName1_2(data),\r\n jtype21gc1m1: (data) => this.getCaseName1_3(data),\r\n jtype21gc1m3: (data) => this.getCaseName1_3(data),\r\n jtype21gc1m4: (data) => this.getCaseName1_3(data),\r\n jtype22gc2m1: (data) => this.getCaseName1_3(data),\r\n jtype22gc2m3: (data) => this.getCaseName1_3(data),\r\n jtype22gc2m4: (data) => this.getCaseName1_3(data),\r\n jtype22gc2m2: (data) => this.getCaseName1_3(data),\r\n jtype23gc3m1: (data) => this.getCaseName1_3(data),\r\n jtype23gc3m3: (data) => this.getCaseName1_3(data),\r\n jtype23gc3m4: (data) => this.getCaseName1_3(data),\r\n jtypeA: (data) => this.getCaseName1_1(data),\r\n jtypeB: (data) => this.getCaseName1_1(data),\r\n jtypeE: (data) => this.getCaseName1_1(data),\r\n jtype1A: (data) => this.getCaseName1_1(data),\r\n jtype1B: (data) => this.getCaseName1_1(data),\r\n jtype1E: (data) => this.getCaseName1_1(data),\r\n jtypeC0: (data) => this.getCaseName2(data),\r\n jtypeC1: (data) => this.getCaseName2(data),\r\n jtypeD0: (data) => this.getCaseName2(data),\r\n jtypeD1: (data) => this.getCaseName2(data),\r\n jtypeF0: (data) => this.getCaseName2(data),\r\n jtypeF1: (data) => this.getCaseName2(data),\r\n jtypeG: (data) => this.getCaseName2(data),\r\n jtypeH: (data) => this.getCaseName2(data),\r\n jtypeK: (data) => this.getCaseName2(data),\r\n jtypeO: (data) => this.getCaseName2(data),\r\n jtypeP: (data) => this.getCaseName2(data),\r\n jtypeQ: (data) => this.getCaseName2(data),\r\n jtypeI: (data) => this.getCaseName2(data),\r\n jtypeJ: (data) => this.getCaseName2(data),\r\n jtypeR: (data) => this.getCaseName2(data),\r\n jtypeU: (data) => this.getCaseName2(data),\r\n jtypeV: (data) => this.getCaseName2(data),\r\n jtypeS: (data) => this.getCaseName2(data),\r\n jtypeT: (data) => this.getCaseName1_1(data),\r\n dtypeA0: (data) => this.getCaseName3(data),\r\n dtypeA1: (data) => this.getCaseName3(data),\r\n dtypeB0: (data) => this.getCaseName3(data),\r\n dtypeB1: (data) => this.getCaseName3(data),\r\n dtypeC0: (data) => this.getCaseName3(data),\r\n dtypeC1: (data) => this.getCaseName3(data),\r\n jtypeL: (data) => this.getCaseName1_1(data),\r\n qtypeA: (data) => this.getCaseName4(data),\r\n qtypeG: (data) => this.getCaseName4(data),\r\n qtypeB: (data) => this.getCaseName4(data),\r\n qtypeC: (data) => this.getCaseName4(data),\r\n qtypeD: (data) => this.getCaseName4(data),\r\n etypeX0: (data) => this.getCaseName5(data),\r\n etypeX1: (data) => this.getCaseName5(data),\r\n xftype38: (data) => this.getCaseName2(data),\r\n xftype39: (data) => this.getCaseName2(data),\r\n xftype40: (data) => this.getCaseName2(data),\r\n }\r\n\r\n // 清單模式\r\n multipleMode: boolean = true;\r\n\r\n\r\n // 搜尋條件\r\n condition: JudicialInterpretCondition;\r\n firstSearch: boolean = true;\r\n allCountFinish: boolean = false;\r\n\r\n conditionCache: JudicialInterpretCondition;\r\n\r\n\r\n /** 簡易檢索 */\r\n\r\n /** 檢索結果種類按鈕 */\r\n judicialInterpretSearchResultCaseTypeButton: { [key in keyof typeof JudicialInterpretSearchResultCaseType]: JudicialInterpretResultTypeButton };\r\n\r\n // 種類按鈕清單\r\n judicialInterpretSearchResultCaseTypeButtonList;\r\n\r\n // 選擇的種類\r\n selectedCaseType: JudicialInterpretSearchResultCaseType;\r\n\r\n\r\n\r\n /** 專業檢索 */\r\n\r\n // 屬性----------版型\r\n // 統字\t 司法院\r\n // 解字\t 司法院\r\n // 院字\t 司法院\r\n // 院解字\t 司法院\r\n // 釋字\t 大法官解釋\r\n // 不受理\t 大法官不受理\r\n // 判例\t 判例\r\n // 判決\t 精選裁判\r\n // 最高法院判決\t 精選裁判含按要旨\r\n // 價值裁判\t 精選裁判含按要旨\r\n // 決議\t 決議\r\n // 公懲\t 公懲\r\n // 座談會\t 座談會\r\n\r\n // 屬性->版型\r\n // baseList: { [key in keyof typeof JudicialInterpretProperty]: JudicialInterpretPropertyItem } = {\r\n // Unified: this.jipi.create('unified', this.jip.Unified, 'interpret-big-judge', this.jit.BigJudgeReject, () => this.interpretCollegeTemplate), // 司法院解釋 - 統字\r\n // Solve: this.jipi.create('solve', this.jip.Solve, 'interpret-big-judge', this.jit.BigJudgeReject, () => this.interpretCollegeTemplate), // 司法院解釋 - 解字\r\n // Yuan: this.jipi.create('yuan', this.jip.Yuan, 'interpret-big-judge', this.jit.BigJudgeReject, () => this.interpretCollegeTemplate), // 司法院解釋 - 院字\r\n // YuanSolve: this.jipi.create('yuan-solve', this.jip.YuanSolve, 'interpret-big-judge', this.jit.BigJudgeReject, () => this.interpretCollegeTemplate), // 司法院解釋 - 院解字\r\n // Explain: this.jipi.create('explain', this.jip.Explain, 'interpret-big-judge', this.jit.BigJudgeReject, () => this.interpretBigJudgeTemplate), // 大法官解釋 - 釋字\r\n // Reject: this.jipi.create('reject', this.jip.Reject, 'big-judge-reject', this.jit.BigJudgeReject, () => this.bigJudgeRejectTemplate), // 大法官不受理 - 不受理\r\n // Precedent: this.jipi.create('precedent', this.jip.Precedent, 'judgment-precedent', this.jit.JudgmentPrecedent, () => this.judgmentPrecedentTemplate), // 判例\r\n // Judgment: this.jipi.create('judgment', this.jip.Judgment, 'featured-judgment', this.jit.FeaturedJudgment, () => this.featuredJudgmentTemplate), // 精選裁判 - 判決\r\n // JudgmentSeuperme: this.jipi.create('judgment-supereme', this.jip.JudgmentSeuperme, 'featured-judgment-gist', this.jit.FeaturedJudgmentGist, () => this.featuredJudgmentGistTemplate), // 最高法院判決\r\n // Reference: this.jipi.create('reference', this.jip.Reference, 'featured-judgment-gist', this.jit.FeaturedJudgmentGist, () => this.featuredJudgmentGistTemplate), // 精選裁判 - 價值裁判\r\n // Resolution: this.jipi.create('resolution', this.jip.Resolution, 'resolution', this.jit.Resolution, () => this.resolutionTemplate), // 決議\r\n // Discipline: this.jipi.create('discipline', this.jip.Discipline, 'featured-judgment', this.jit.FeaturedJudgment, () => this.disciplineTemplate), // 公懲\r\n // Seminar: this.jipi.create('seminar', this.jip.Seminar, 'seminar', this.jit.Seminar, () => this.seminarTemplate), // 座談會\r\n // Grand: this.jipi.create('grand', this.jip.Grand, 'grand', this.jit.Grand, () => this.grandTemplate), // 大法庭\r\n // };\r\n\r\n courtTemplates: { [key in keyof typeof JudicialInterpretCourtId]: () => TemplateRef } = {\r\n ctypeD: () => this.interpretBigJudgeTemplate,\r\n ctypeA: () => this.interpretCollegeTemplate,\r\n ctypeB: () => this.interpretCollegeTemplate,\r\n ctypeC: () => this.interpretCollegeTemplate,\r\n ttypeX: () => this.bigJudgeRejectTemplate,\r\n jtype21gc1m1: () => this.grandTemplate,\r\n jtype21gc1m3: () => this.grandTemplate,\r\n jtype21gc1m4: () => this.grandTemplate,\r\n jtype22gc2m1: () => this.grandTemplate,\r\n jtype22gc2m3: () => this.grandTemplate,\r\n jtype22gc2m4: () => this.grandTemplate,\r\n jtype22gc2m2: () => this.grandTemplate,\r\n jtype23gc3m1: () => this.grandTemplate,\r\n jtype23gc3m3: () => this.grandTemplate,\r\n jtype23gc3m4: () => this.grandTemplate,\r\n jtypeA: () => this.judgmentPrecedentTemplate,\r\n jtypeB: () => this.judgmentPrecedentTemplate,\r\n jtypeE: () => this.judgmentPrecedentTemplate,\r\n jtype1A: () => this.judgmentPrecedentTemplate,\r\n jtype1B: () => this.judgmentPrecedentTemplate,\r\n jtype1E: () => this.judgmentPrecedentTemplate,\r\n jtypeC0: () => this.featuredJudgmentGistTemplate,\r\n jtypeC1: () => this.featuredJudgmentGistTemplate,\r\n jtypeD0: () => this.featuredJudgmentGistTemplate,\r\n jtypeD1: () => this.featuredJudgmentGistTemplate,\r\n jtypeF0: () => this.featuredJudgmentGistTemplate,\r\n jtypeF1: () => this.featuredJudgmentGistTemplate,\r\n jtypeG: () => this.featuredJudgmentTemplate,\r\n jtypeH: () => this.featuredJudgmentTemplate,\r\n jtypeK: () => this.featuredJudgmentTemplate,\r\n jtypeO: () => this.featuredJudgmentTemplate,\r\n jtypeP: () => this.featuredJudgmentTemplate,\r\n jtypeQ: () => this.featuredJudgmentTemplate,\r\n jtypeI: () => this.featuredJudgmentTemplate,\r\n jtypeJ: () => this.featuredJudgmentTemplate,\r\n jtypeR: () => this.featuredJudgmentTemplate,\r\n jtypeU: () => this.featuredJudgmentGistTemplate,\r\n jtypeV: () => this.featuredJudgmentGistTemplate,\r\n jtypeS: () => this.featuredJudgmentGistTemplate,\r\n jtypeT: () => this.featuredJudgmentGistTemplate,\r\n dtypeA0: () => this.resolutionTemplate,\r\n dtypeA1: () => this.resolutionTemplate,\r\n dtypeB0: () => this.resolutionTemplate,\r\n dtypeB1: () => this.resolutionTemplate,\r\n dtypeC0: () => this.resolutionTemplate,\r\n dtypeC1: () => this.resolutionTemplate,\r\n jtypeL: () => this.disciplineTemplate,\r\n qtypeA: () => this.seminarTemplate,\r\n qtypeG: () => this.seminarTemplate,\r\n qtypeB: () => this.seminarTemplate,\r\n qtypeC: () => this.seminarTemplate,\r\n qtypeD: () => this.seminarTemplate,\r\n etypeX0: () => this.executeTemplate,\r\n etypeX1: () => this.executeTemplate,\r\n xftype38: () =>this.xfCourtTemplate,\r\n xftype39: () =>this.xfCourtTemplate,\r\n xftype40: () =>this.xfCourtTemplate,\r\n }\r\n courtPropertyClassName: { [key in keyof typeof JudicialInterpretCourtId]: string } = {\r\n ctypeD: 'explain',\r\n ctypeA: 'unified',\r\n ctypeB: 'solve',\r\n ctypeC: 'yuan',\r\n ttypeX: 'reject',\r\n jtype21gc1m1: 'grand grand1', // 提案裁定\r\n jtype21gc1m3: 'grand grand3', // 大法庭\r\n jtype21gc1m4: 'grand grand4', // 意見統一\r\n jtype22gc2m1: 'grand grand1', // 提案裁定\r\n jtype22gc2m3: 'grand grand3', // 大法庭\r\n jtype22gc2m4: 'grand grand4', // 意見統一\r\n jtype22gc2m2: 'grand grand2', // 撤銷提案\r\n jtype23gc3m1: 'grand grand1', // 提案裁定\r\n jtype23gc3m3: 'grand grand3', // 大法庭\r\n jtype23gc3m4: 'grand grand4', // 意見統一\r\n jtypeA: 'precedent',\r\n jtypeB: 'precedent',\r\n jtypeE: 'precedent',\r\n jtype1A: 'precedent',\r\n jtype1B: 'precedent',\r\n jtype1E: 'precedent',\r\n jtypeC0: 'judgment-supereme',\r\n jtypeC1: 'judgment-supereme',\r\n jtypeD0: 'judgment-supereme',\r\n jtypeD1: 'judgment-supereme',\r\n jtypeF0: 'judgment-supereme',\r\n jtypeF1: 'judgment-supereme',\r\n jtypeG: 'judgment',\r\n jtypeH: 'judgment',\r\n jtypeK: 'judgment',\r\n jtypeO: 'judgment',\r\n jtypeP: 'judgment',\r\n jtypeQ: 'judgment',\r\n jtypeI: 'judgment',\r\n jtypeJ: 'judgment',\r\n jtypeR: 'judgment',\r\n jtypeU: 'reference',\r\n jtypeV: 'reference',\r\n jtypeS: 'reference',\r\n jtypeT: 'reference',\r\n dtypeA0: 'resolution',\r\n dtypeA1: 'resolution',\r\n dtypeB0: 'resolution',\r\n dtypeB1: 'resolution',\r\n dtypeC0: 'resolution',\r\n dtypeC1: 'resolution',\r\n jtypeL: 'judgment-supereme discipline',\r\n qtypeA: 'seminar',\r\n qtypeG: 'seminar',\r\n qtypeB: 'seminar',\r\n qtypeC: 'seminar',\r\n qtypeD: 'seminar',\r\n etypeX0: 'execute',\r\n etypeX1: 'execute',\r\n xftype38: 'xf38',\r\n xftype39: 'xf39',\r\n xftype40: 'xf40',\r\n }\r\n templateClassName: { [key in keyof typeof JudicialInterpretCourtId]: string } = {\r\n ctypeD: 'interpret-big-judge',\r\n ctypeA: 'interpret-big-judge',\r\n ctypeB: 'interpret-big-judge',\r\n ctypeC: 'interpret-big-judge',\r\n ttypeX: 'big-judge-reject',\r\n jtype21gc1m1: 'grand grand1', // 提案裁定\r\n jtype21gc1m3: 'grand grand3', // 大法庭\r\n jtype21gc1m4: 'grand grand4', // 意見統一\r\n jtype22gc2m1: 'grand grand1', // 提案裁定\r\n jtype22gc2m3: 'grand grand3', // 大法庭\r\n jtype22gc2m4: 'grand grand4', // 意見統一\r\n jtype22gc2m2: 'grand grand2', // 撤銷提案\r\n jtype23gc3m1: 'grand grand1', // 提案裁定\r\n jtype23gc3m3: 'grand grand3', // 大法庭\r\n jtype23gc3m4: 'grand grand4', // 意見統一\r\n jtypeA: 'judgment-precedent',\r\n jtypeB: 'judgment-precedent',\r\n jtypeE: 'judgment-precedent',\r\n jtype1A: 'judgment-precedent',\r\n jtype1B: 'judgment-precedent',\r\n jtype1E: 'judgment-precedent',\r\n jtypeC0: 'featured-judgment-gist',\r\n jtypeC1: 'featured-judgment-gist',\r\n jtypeD0: 'featured-judgment-gist',\r\n jtypeD1: 'featured-judgment-gist',\r\n jtypeF0: 'featured-judgment-gist',\r\n jtypeF1: 'featured-judgment-gist',\r\n jtypeG: 'featured-judgment',\r\n jtypeH: 'featured-judgment',\r\n jtypeK: 'featured-judgment',\r\n jtypeO: 'featured-judgment',\r\n jtypeP: 'featured-judgment',\r\n jtypeQ: 'featured-judgment',\r\n jtypeI: 'featured-judgment',\r\n jtypeJ: 'featured-judgment',\r\n jtypeR: 'featured-judgment',\r\n jtypeU: 'reference',\r\n jtypeV: 'reference',\r\n jtypeS: 'reference',\r\n jtypeT: 'reference',\r\n dtypeA0: 'resolution',\r\n dtypeA1: 'resolution',\r\n dtypeB0: 'resolution',\r\n dtypeB1: 'resolution',\r\n dtypeC0: 'resolution',\r\n dtypeC1: 'resolution',\r\n jtypeL: 'featured-judgment discipline',\r\n qtypeA: 'seminar',\r\n qtypeG: 'seminar',\r\n qtypeB: 'seminar',\r\n qtypeC: 'seminar',\r\n qtypeD: 'seminar',\r\n etypeX0: 'execute',\r\n etypeX1: 'execute',\r\n xftype38: 'xf',\r\n xftype39: 'xf',\r\n xftype40: 'xf',\r\n }\r\n\r\n // 法院結果計數\r\n /** 選擇的條件種類名稱 */\r\n searchedCaseTypeName: string;\r\n // courtList: JudicialInterpretCourtCount[];\r\n /** 法院等級區塊 */\r\n courtLevelBlock: { [key: string]: { name: string, list: JudicialInterpretCourtCount[] } };\r\n courtLevelBlockList: { name: string, list: JudicialInterpretCourtCount[] }[];\r\n /** 選擇的法院 */\r\n selectedCourt: JudicialInterpretCourtCount;\r\n /** 法院檢索結果總數 */\r\n // totalCount: number = 0;\r\n\r\n\r\n\r\n /** key = JudicialInterpretCourtId */\r\n countCourt: { [key: number]: JudicialInterpretCourtCount } = {};\r\n countCourtList: JudicialInterpretCourtCount[];\r\n\r\n\r\n\r\n\r\n\r\n // //結果清單\r\n // tmpCaseData = {\r\n // case_year: 100,\r\n // case_word: '案號',\r\n // case_number: '123',\r\n // case_title: '標題',\r\n // date_year: 100,\r\n // date_month: 10,\r\n // date_day: 10,\r\n // article: '收復區敵偽產業處理辦法第四條第一款所謂日方包括日本僑民及其團體在 內不以日本政府為限所謂強迫接收係專指以強暴行為侵奪占有而言其本國 盟國或友邦人民因被脅迫而為出賣或其他移轉占有之意思表示者並不包含 在內至敵偽出資收購之產業已經敵偽產業處理機關接收後其原出賣人為本 國盟國或友邦人民以其契約有無效或得撤銷之原因主張該產業應准收回得 以敵偽產業處理機關為被告提起民事訴訟倘當事人仍以日僑為被告其所得 勝訴確定判決並無拘束敵偽產業處理機關之效力',\r\n // issue: '收復區敵偽產業處理辦法第四條第一款所謂日方包括日本僑民及其團體在 內不以日本政府為限所謂強迫接收係專指以強暴行為侵奪占有而言其本國 盟國或友邦人民因被脅迫而為出賣或其他移轉占有之意思表示者並不包含 在內至敵偽出資收購之產業已經敵偽產業處理機關接收後其原出賣人為本 國盟國或友邦人民以其契約有無效或得撤銷之原因主張該產業應准收回得 以敵偽產業處理機關為被告提起民事訴訟倘當事人仍以日僑為被告其所得 勝訴確定判決並無拘束敵偽產業處理機關之效力',\r\n // meet_title: '會議標題',\r\n // meet_number: 10,\r\n // subject: '收復區敵偽產業處理辦法第四條第一款所謂日方包括日本僑民及其團體在',\r\n // gist: '收復區敵偽產業處理辦法第四條第一款所謂日方包括日本僑民及其團體在 內不以日本政府為限所謂強迫接收係專指以強暴行為侵奪占有而言其本國 盟國或友邦人民因被脅迫而為出賣或其他移轉占有之意思表示者並不包含 在內至敵偽出資收購之產業已經敵偽產業處理機關接收後其原出賣人為本 國盟國或友邦人民以其契約有無效或得撤銷之原因主張該產業應准收回得 以敵偽產業處理機關為被告提起民事訴訟倘當事人仍以日僑為被告其所得 勝訴確定判決並無拘束敵偽產業處理機關之效力',\r\n // reason: '收復區敵偽產業處理辦法第四條第一款所謂日方包括日本僑民及其團體在',\r\n // problem: '收復區敵偽產業處理辦法第四條第一款所謂日方包括日本僑民及其團體在',\r\n // }\r\n // createTmpCase(property: JudicialInterpretProperty): JudicialInterpretCase {\r\n // return JudicialInterpretCase.create({\r\n // sn: 1,\r\n // property: property,\r\n // type: this.baseList[JudicialInterpretProperty[property]],\r\n // case_data: this.tmpCaseData\r\n // })\r\n // }\r\n // noteList: JudicialInterpretCase[] = [\r\n // this.createTmpCase(JudicialInterpretProperty.Seminar),\r\n // this.createTmpCase(JudicialInterpretProperty.Discipline),\r\n // this.createTmpCase(JudicialInterpretProperty.Resolution),\r\n // this.createTmpCase(JudicialInterpretProperty.Reference),\r\n\r\n // this.createTmpCase(JudicialInterpretProperty.JudgmentSeuperme),\r\n // this.createTmpCase(JudicialInterpretProperty.Judgment),\r\n // this.createTmpCase(JudicialInterpretProperty.Precedent),\r\n // this.createTmpCase(JudicialInterpretProperty.Reject),\r\n // this.createTmpCase(JudicialInterpretProperty.Explain),\r\n // this.createTmpCase(JudicialInterpretProperty.Unified),\r\n // this.createTmpCase(JudicialInterpretProperty.Solve),\r\n // this.createTmpCase(JudicialInterpretProperty.Yuan),\r\n // this.createTmpCase(JudicialInterpretProperty.YuanSolve),\r\n // ];\r\n\r\n // selectedType: JudicialInterpretSearchResultType = JudicialInterpretSearchResultType.Court;\r\n\r\n keepPreviewWindowByRowElement: Element;\r\n signalrListeners: { [key: string]: BroadcastEventListener } = {};\r\n\r\n constructor(\r\n private judicialInterpretService: JudicialInterpretService,\r\n private judicialInterpretSearchService: JudicialInterpretSearchService,\r\n public appCommonService: AppCommonService,\r\n private loadingIconService: LoadingIconService,\r\n private notificationService: NotificationService,\r\n private service: AppService,\r\n private configService: AppConfigService,\r\n private matDialog: MatDialog,\r\n private lzService: LZStringService,\r\n ) {\r\n this.judicialInterpretSearchResultCaseTypeButton = judicialInterpretSearchService.judicialInterpretSearchResultCaseTypeButton;\r\n this.judicialInterpretSearchResultCaseTypeButtonList = Object\r\n .keys(this.judicialInterpretSearchResultType)\r\n .filter(v => isNaN(v as any))\r\n .map(k => this.judicialInterpretSearchResultCaseTypeButton[k]);\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.setup2();\r\n }\r\n ngOnDestroy(): void {\r\n this.forceStopSearch = true;\r\n console.log('force Stop Search');\r\n\r\n // this.clearListener();\r\n }\r\n\r\n setup2(): void {\r\n this.isProMode = this.judicialInterpretSearchService.isProMode;\r\n\r\n // 開始專業檢索\r\n if (this.isProMode) {\r\n // 設定左邊法院欄位\r\n const condition = this.judicialInterpretSearchService.proCondition;\r\n console.log(condition);\r\n\r\n const catalogId = condition.catalogId;\r\n const catalog = JudicialInterpretCourtCatalogs[JudicialInterpretCourtCatalogId[catalogId]];\r\n this.courtCatalogName = catalog.name;\r\n this.isEtype = catalogId == JudicialInterpretCourtCatalogId.Execute;\r\n\r\n this.courtBlocks = [];\r\n this.courtBlockDict = {};\r\n this.courtGroups = [];\r\n this.courtGroupDict = {};\r\n this.searchTasks = [];\r\n this.pageNumber = 1;\r\n this.selectedCourtGroup = null;\r\n\r\n if (this.isEtype) {\r\n Object.keys(condition.tag)\r\n .forEach(key => {\r\n const courtBlock = {\r\n name: key,\r\n courtGroups: []\r\n };\r\n\r\n condition.tag[key].forEach(agent => {\r\n const searchCourtGroup = new JudicialInterpretSearchCourtGroup();\r\n searchCourtGroup.name = agent;\r\n searchCourtGroup.courtGroupId = JudicialInterpretCourtGroupId.etypeX01;\r\n searchCourtGroup.tag1 = key;\r\n searchCourtGroup.tag2 = agent;\r\n searchCourtGroup.count = 0;\r\n searchCourtGroup.isCounting = true;\r\n searchCourtGroup.isRequested = false;\r\n searchCourtGroup.isCountFinish = false;\r\n\r\n this.courtGroups.push(searchCourtGroup);\r\n this.courtGroupDict[`${key}-${agent}`] = searchCourtGroup;\r\n\r\n courtBlock.courtGroups.push(searchCourtGroup);\r\n\r\n });\r\n\r\n this.courtBlocks.push(courtBlock);\r\n\r\n this.courtBlockDict[key] = courtBlock;\r\n });\r\n\r\n const searchExecuteGroup = new JudicialInterpretSearchCourtGroup();\r\n searchExecuteGroup.courtGroupId = JudicialInterpretCourtGroupId.etypeX01;\r\n this.searchTasks.push(this.countCourtGroup$(searchExecuteGroup, condition));\r\n } else {\r\n condition.courtBlocks.forEach(b => {\r\n const courtBlockIdName = JudicialInterpretCourtBlockId[b.courtBlockId];\r\n const courtBlock = {\r\n name: JudicialInterpretCourtBlocks[courtBlockIdName].resultName,\r\n courtGroups: []\r\n };\r\n\r\n b.courtGroupIds.forEach(courtGroupId => {\r\n const courtGroupIdName = JudicialInterpretCourtGroupId[courtGroupId];\r\n const courtGroup = JudicialInterpretCourtGroups[courtGroupIdName];\r\n const searchCourtGroup = new JudicialInterpretSearchCourtGroup();\r\n searchCourtGroup.name = courtGroup.resultName;\r\n searchCourtGroup.courtGroupId = courtGroupId;\r\n searchCourtGroup.count = 0;\r\n searchCourtGroup.isCounting = true;\r\n searchCourtGroup.isRequested = false;\r\n searchCourtGroup.isCountFinish = false;\r\n\r\n this.courtGroups.push(searchCourtGroup);\r\n this.courtGroupDict[courtGroupIdName] = searchCourtGroup;\r\n\r\n courtBlock.courtGroups.push(searchCourtGroup);\r\n\r\n this.searchTasks.push(this.countCourtGroup$(searchCourtGroup, condition));\r\n });\r\n\r\n this.courtBlocks.push(courtBlock);\r\n this.courtBlockDict[courtBlockIdName] = courtBlock;\r\n });\r\n }\r\n\r\n // 執行計數迴圈, 檢查是否檢索結果有清單,沒有就依照第一個法院計數完成後發送,跟以前一樣\r\n from(this.searchTasks)\r\n .pipe(\r\n mergeMap(t => t, 3)\r\n )\r\n .subscribe({\r\n next: (v) => {\r\n if (this.forceStopSearch) {\r\n return;\r\n }\r\n if (this.isEtype) {\r\n Object.keys(v.executeResult)\r\n .forEach(key => {\r\n Object.keys(v.executeResult[key])\r\n .forEach(agent => {\r\n const count = v.executeResult[key][agent];\r\n const groupKey = `${key}-${agent}`;\r\n const courtGroup = this.courtGroupDict[groupKey];\r\n courtGroup.count = count;\r\n courtGroup.isCounting = false;\r\n courtGroup.isRequested = true;\r\n courtGroup.isCountFinish = true;\r\n this.totalCount += count;\r\n });\r\n });\r\n } else {\r\n const courtGroupIdName = JudicialInterpretCourtGroupId[v.courtGroupId];\r\n console.log(courtGroupIdName, v);\r\n const courtGroup = this.courtGroupDict[courtGroupIdName];\r\n courtGroup.count = v.count;\r\n courtGroup.isCounting = false;\r\n courtGroup.isRequested = true;\r\n courtGroup.isCountFinish = true;\r\n this.totalCount += v.count;\r\n }\r\n\r\n if (this.selectedCourtGroup == null) {\r\n for (const courtGroup_ of this.courtGroups) {\r\n if (courtGroup_.isCountFinish) {\r\n if (courtGroup_.count > 0) {\r\n this.selectedCourtGroup = courtGroup_;\r\n this.pageNumber = 1;\r\n // this.pageChangePro.update(this.selectedCourtGroup.count, this.selectedCourtGroup.count, 20);\r\n this.updateProNoteList();\r\n break;\r\n }\r\n } else {\r\n break;\r\n }\r\n }\r\n }\r\n },\r\n complete: () => {\r\n if (this.selectedCourtGroup == null) {\r\n if (this.courtGroups.every(c => c.count == 0)) {\r\n this.noResult = true;\r\n this.noteSearching = false;\r\n this.enablePageChange = true;\r\n this.noteList = [];\r\n setTimeout(() => {\r\n if (this.pageChangePro != null) {\r\n this.pageChangePro.forceDisableAllPageChangeButton = true;\r\n }\r\n })\r\n }\r\n }\r\n\r\n const signlarConnSubscribe = this.service.onSignlarConnected.subscribe((connected: boolean) => {\r\n if (connected) {\r\n // console.log('add signlar event');\r\n this.addListener('judicial_interpret/note').subscribe((v) => {\r\n const noteIndex = this.noteList.findIndex(n => n.case_id === v.case_id);\r\n if (noteIndex > -1) {\r\n // console.log('judicial_interpret/note', v);\r\n const searcherKeywords = this.judicialInterpretSearchService.getSearcherKeywordsFromProCondition();\r\n\r\n this.judicialInterpretService\r\n .getNoteDataSearchResultObserver(searcherKeywords, v.case_id)\r\n .subscribe(note => {\r\n console.log(note);\r\n const sourceNote = this.noteList[noteIndex];\r\n const convertedNote = Serializable.extendObjectFromResponseObject(new JudicialInterpretCase(), note);\r\n convertedNote.sn = sourceNote.sn;\r\n const noteFull = this.extendNoteToFull(convertedNote);\r\n // noteFull.property_template = this.baseList[JudicialInterpretProperty[convertedNote.property]];\r\n // noteFull.property_template = this.getCaseTemplate(noteFull);\r\n this.noteList[noteIndex] = noteFull;\r\n });\r\n }\r\n });\r\n\r\n setTimeout(() => { signlarConnSubscribe.unsubscribe(); }, 0);\r\n }\r\n });\r\n\r\n console.log('count end');\r\n }\r\n });\r\n }\r\n // 開始簡易檢索\r\n else {\r\n // 設定上邊種類欄位\r\n this.courtGroups = [];\r\n this.courtGroupDict = {};\r\n this.courtCatalogs = [];\r\n this.searchTasks = [];\r\n this.courtGroupCatalogDict = {};\r\n this.selectedCourtCatalog = null;\r\n this.pageNumber = 1;\r\n\r\n const keyword = this.judicialInterpretSearchService.simpleKeyword;\r\n\r\n const searchCourtCatalogAll = new JudicialInterpretSearchCourtCatalog();\r\n searchCourtCatalogAll.name = '全部';\r\n searchCourtCatalogAll.courtCatalogId = null;\r\n searchCourtCatalogAll.count = 0;\r\n searchCourtCatalogAll.isCounting = true;\r\n searchCourtCatalogAll.isRequested = false;\r\n searchCourtCatalogAll.isCountFinished = false;\r\n searchCourtCatalogAll.countRead = true;\r\n this.searchAllCourtCatalog = searchCourtCatalogAll;\r\n this.selectedCourtCatalog = searchCourtCatalogAll;\r\n this.searchTasks.push(this.countCourtCatalog$(searchCourtCatalogAll, keyword));\r\n\r\n Object.values(JudicialInterpretCourtCatalogs)\r\n .forEach(courtCatalog => {\r\n const searchCourtCatalog = new JudicialInterpretSearchCourtCatalog();\r\n searchCourtCatalog.name = courtCatalog.name;\r\n searchCourtCatalog.courtCatalogId = courtCatalog.id;\r\n searchCourtCatalog.count = 0;\r\n searchCourtCatalog.isCounting = true;\r\n searchCourtCatalog.isRequested = false;\r\n searchCourtCatalog.isCountFinished = false;\r\n searchCourtCatalog.countRead = false;\r\n\r\n const courtCatalogIdName = JudicialInterpretCourtCatalogId[courtCatalog.id];\r\n\r\n this.courtCatalogs.push(searchCourtCatalog);\r\n this.courtCatalogDict[courtCatalogIdName] = searchCourtCatalog;\r\n\r\n this.searchTasks.push(this.countCourtCatalog$(searchCourtCatalog, keyword));\r\n });\r\n\r\n // 執行計數迴圈, 檢查是否檢索結果有清單,沒有就依照第一個法院計數完成後發送,跟以前一樣\r\n from(this.searchTasks)\r\n .pipe(\r\n mergeMap(t => t, 3)\r\n )\r\n .subscribe({\r\n next: (v) => {\r\n console.log(v);\r\n\r\n if (this.forceStopSearch) {\r\n return;\r\n }\r\n\r\n\r\n let searchCourtCatalog = null;\r\n // 更新法院大分類數量\r\n if (v.courtCatalogId == null) {\r\n searchCourtCatalog = this.searchAllCourtCatalog;\r\n } else {\r\n const courtCatalogId = v.courtCatalogId;\r\n const courtCatalogIdName = JudicialInterpretCourtCatalogId[courtCatalogId];\r\n searchCourtCatalog = this.courtCatalogDict[courtCatalogIdName];\r\n }\r\n\r\n searchCourtCatalog.count = v.count;\r\n searchCourtCatalog.isCounting = false;\r\n searchCourtCatalog.isRequested = true;\r\n searchCourtCatalog.isCountFinished = true;\r\n },\r\n complete: () => {\r\n console.log('count end');\r\n }\r\n });\r\n this.updateSimpleNoteList();\r\n }\r\n\r\n }\r\n turnOnMultipleMode(): void {\r\n this.judicialInterpretSearchService.onBackConditionPage();\r\n // this.judicialInterpretSearchService.backToProCondition = this.multipleMode;\r\n // this.backToConditionPage();\r\n }\r\n getTotalCountString(): string {\r\n return this.totalCount.toLocaleString();\r\n }\r\n selectCourtGroup(courtGroup: JudicialInterpretSearchCourtGroup): void {\r\n if (this.selectedCourtGroup == courtGroup) {\r\n return;\r\n }\r\n this.pageNumber = 1;\r\n this.selectedCourtGroup = courtGroup;\r\n // this.pageChangePro.currentIndex = 1;\r\n // this.pageChangePro.update(this.selectedCourtGroup.count, this.selectedCourtGroup.count, 20);\r\n this.updateProNoteList();\r\n }\r\n getCourtGroupName(courtGroup: JudicialInterpretSearchCourtGroup): string {\r\n return courtGroup.name;\r\n }\r\n\r\n countCourtGroup$(courtGroup: JudicialInterpretSearchCourtGroup,\r\n condition: any): Observable {\r\n return new Observable((subsc: Subscriber) => {\r\n if (this.forceStopSearch) {\r\n subsc.complete();\r\n return;\r\n }\r\n\r\n const _cond = JSON.parse(JSON.stringify(condition));\r\n _cond['courtGroupId'] = courtGroup.courtGroupId;\r\n // _condition.courtGroupId = courtGroup.courtGroupId;\r\n // const _cond = this.judicialInterpretSearchService.proCondition;\r\n // const _condition = {\r\n // courtGroupId: courtGroup.courtGroupId,\r\n // keyword: _cond.keyword,\r\n // compose: _cond.compose,\r\n // caseDate: _cond.caseDate,\r\n // };\r\n\r\n courtGroup.isRequested = true;\r\n courtGroup.isCounting = true;\r\n courtGroup.isCountFinish = false;\r\n // console.log(_condition);\r\n this.judicialInterpretSearchService\r\n .getProSearchCourtGroupCount(_cond)\r\n .subscribe((result) => {\r\n // console.log(result);\r\n subsc.next(result);\r\n subsc.complete();\r\n });\r\n });\r\n }\r\n getCourtGroupNote$(courtGroup: JudicialInterpretSearchCourtGroup,\r\n condition: any): Observable {\r\n return new Observable((subsc: Subscriber) => {\r\n const _cond = JSON.parse(JSON.stringify(condition));\r\n _cond['courtGroupId'] = courtGroup.courtGroupId;\r\n const tag = {};\r\n tag[courtGroup.tag1] = [courtGroup.tag2];\r\n _cond['tag'] = tag;\r\n\r\n // const _condition = {\r\n // courtGroupId: courtGroup.courtGroupId,\r\n // keyword: _cond.keyword,\r\n // compose: _cond.compose,\r\n // caseDate: _cond.caseDate,\r\n // pageNumber: _cond.pageNumber,\r\n // };\r\n\r\n this.judicialInterpretSearchService\r\n .getProSearchCourtGroupNote(_cond)\r\n .subscribe((result) => {\r\n subsc.next(result);\r\n subsc.complete();\r\n });\r\n });\r\n }\r\n\r\n\r\n updateProNoteList(): void {\r\n this.enablePageChange = true;\r\n this.noteSearching = true;\r\n const _cond = JSON.parse(JSON.stringify(this.judicialInterpretSearchService.proCondition));\r\n\r\n this.convertConditionKeyword2(_cond.keyword);\r\n\r\n _cond['courtGroupId'] = this.selectedCourtGroup.courtGroupId;\r\n _cond['pageNumber'] = this.pageNumber;\r\n // const condition = {\r\n // courtGroupId: this.selectedCourtGroup.courtGroupId,\r\n // keyword: _cond.keyword,\r\n // compose: _cond.compose,\r\n // caseDate: _cond.caseDate,\r\n // pageNumber: this.pageNumber\r\n // };\r\n // console.log(condition);\r\n\r\n this.getCourtGroupNote$(this.selectedCourtGroup, _cond)\r\n .subscribe({\r\n next: (v) => {\r\n console.log(v);\r\n this.noteList = v.list;\r\n this.noteSearching = false;\r\n },\r\n complete: () => {\r\n setTimeout(() => {\r\n console.log(this.pageChangePro, this.selectedCourtGroup.count);\r\n if (this.pageChangePro != null) {\r\n this.pageChangePro.forceDisableAllPageChangeButton = false;\r\n // this.pageChangePro.currentIndex = this.pageNumber;\r\n this.pageChangePro.update(this.selectedCourtGroup.count, this.selectedCourtGroup.count, 20);\r\n // this.pageChangePro.totalCount = this.selectedCourtGroup.count;\r\n this.pageChangePro.updateEnableButtons();\r\n }\r\n });\r\n }\r\n });\r\n this.scrollListToTopLater();\r\n }\r\n /** 換頁 */\r\n changePage(pageNumber: number): void {\r\n console.log(pageNumber);\r\n // this.conditionCache.page_index = pageIndex;\r\n this.pageNumber = pageNumber;\r\n if (this.isProMode) {\r\n this.updateProNoteList();\r\n } else {\r\n this.updateSimpleNoteList();\r\n }\r\n }\r\n\r\n getCaseTemplate(judicialInterpretCase: JudicialInterpretCase): TemplateRef {\r\n const courtIdName = JudicialInterpretCourtId[judicialInterpretCase.court_id];\r\n const templateRef: TemplateRef = this.courtTemplates[courtIdName]();\r\n return templateRef;\r\n }\r\n getCasePropertyClassName(judicialInterpretCase: JudicialInterpretCase): string {\r\n let className = '';\r\n if (className.length == 0) {\r\n if (judicialInterpretCase.data) {\r\n const data = judicialInterpretCase.data;\r\n if (data.overwrite_property) {\r\n className = data.overwrite_property;\r\n } else if (data.append_property) {\r\n const courtIdName = JudicialInterpretCourtId[judicialInterpretCase.court_id];\r\n className = this.courtPropertyClassName[courtIdName] + ' ' + data.append_property;\r\n }\r\n }\r\n }\r\n\r\n if (className.length == 0) {\r\n\r\n if (judicialInterpretCase.court_id == JudicialInterpretCourtId.ctypeC) {\r\n if (judicialInterpretCase.case_data.case_word == '院解') {\r\n className = 'yuan-solve';\r\n }\r\n }\r\n }\r\n\r\n if (className.length == 0) {\r\n const courtIdName = JudicialInterpretCourtId[judicialInterpretCase.court_id];\r\n className = this.courtPropertyClassName[courtIdName];\r\n }\r\n\r\n return className;\r\n }\r\n getCaseTemplateClassName(judicialInterpretCase: JudicialInterpretCase): string {\r\n if (judicialInterpretCase.data) {\r\n const data = judicialInterpretCase.data;\r\n if (data.overwrite_property) {\r\n return data.overwrite_property;\r\n } else if (data.append_property) {\r\n const courtIdName = JudicialInterpretCourtId[judicialInterpretCase.court_id];\r\n return this.templateClassName[courtIdName] + ' ' + data.append_property;\r\n }\r\n }\r\n\r\n const courtIdName = JudicialInterpretCourtId[judicialInterpretCase.court_id];\r\n return this.templateClassName[courtIdName];\r\n }\r\n // [ngClass] = \"[getCaseClassName(note)]\"\r\n getCaseSn(judicialInterpretCase: JudicialInterpretCase): string {\r\n const noteIndex = this.noteList.findIndex(v => v == judicialInterpretCase);\r\n const sn = (this.pageNumber - 1) * 20 + noteIndex + 1;\r\n return sn.toLocaleString();\r\n }\r\n getValidKeywords(): string[] {\r\n const validKeywords = [];\r\n for (let i = 0; i < this.judicialInterpretSearchService.proCondition.keyword.length; i++) {\r\n const keyword = this.judicialInterpretSearchService.proCondition.keyword[i].trim();\r\n const compose: string = this.judicialInterpretSearchService.proCondition.compose[i];\r\n if (compose != 'Not' && keyword.length > 0) {\r\n validKeywords.push(keyword);\r\n }\r\n }\r\n return validKeywords;\r\n }\r\n getProCaseHighlightKeywords(): string {\r\n const validKeywords = this.getValidKeywords();\r\n\r\n const highlightKeyword = validKeywords\r\n .map(k => k.replace(/\\s+/g, ''))\r\n .join(' ');\r\n\r\n return highlightKeyword;\r\n }\r\n getExecuteCaseAgentHighlight(): string {\r\n let highlightKeyword = this.judicialInterpretSearchService.proCondition.caseWordAgency.trim();\r\n return highlightKeyword;\r\n }\r\n getExecuteCaseWordHighlight(): string {\r\n let highlightKeyword = this.judicialInterpretSearchService.proCondition.caseWordWord.trim();\r\n return highlightKeyword;\r\n }\r\n getExecuteCaseNumberHighlight(): string {\r\n let highlightKeyword = this.judicialInterpretSearchService.proCondition.caseWordNumber.trim();\r\n return highlightKeyword;\r\n }\r\n getLastView(judicialInterpretCase: JudicialInterpretCase): string {\r\n return judicialInterpretCase.note_open_time > 0 ?\r\n this.appCommonService.convertTimeTickToPastTimeText1(judicialInterpretCase.note_open_time) : ''\r\n }\r\n\r\n getRelateLawRuleNameList(judicialInterpretCase: JudicialInterpretCase): { name: string, list: string[] }[] {\r\n return judicialInterpretCase.relate_law_rule_list.map(r => {\r\n return {\r\n name: r.name,\r\n list: r.list.map(rs => rs[1])\r\n };\r\n });\r\n }\r\n getExecuteBlockHasResult(block: { name: string, courtGroups: JudicialInterpretSearchCourtGroup[] }): boolean {\r\n let result = block.courtGroups.some(c =>\r\n c.isCounting ||\r\n (c.isCountFinish && c.count > 0)\r\n );\r\n return result;\r\n }\r\n\r\n\r\n\r\n /** 返回條件頁 */\r\n backToConditionPage(): void {\r\n // this.clearResult();\r\n // this.judicialInterpretSearchService.resultMode = false;\r\n this.judicialInterpretSearchService.onBackConditionPage();\r\n }\r\n\r\n\r\n // getSimpleIsAllAnyCourtCatalogCounting(): boolean {\r\n // return this.courtCatalogs.some(c => c.isCounting);\r\n // }\r\n // getSimpleIsAllHasAnyCount(): boolean {\r\n // return this.courtCatalogs.some(c => c.count > 0);\r\n // }\r\n // getSimpleIsAllNoResult(): boolean {\r\n // return this.courtCatalogs.every(c => c.isCountFinished && c.count == 0);\r\n // }\r\n getSimpleCourtCatalogClass(courtCatalog: JudicialInterpretSearchCourtCatalog): string {\r\n return JudicialInterpretCourtCatalogId[courtCatalog.courtCatalogId].toLowerCase();\r\n }\r\n getSimpleCourtCatalogCount(courtCatalog: JudicialInterpretSearchCourtCatalog): string {\r\n if (courtCatalog.count > 999) {\r\n return '999+';\r\n } else {\r\n return courtCatalog.count.toLocaleString();\r\n }\r\n }\r\n countCourtCatalog$(courtCatalog: JudicialInterpretSearchCourtCatalog, keyword: string): Observable {\r\n return new Observable((subsc: Subscriber) => {\r\n if (this.forceStopSearch) {\r\n subsc.complete();\r\n return;\r\n }\r\n\r\n const condition = {\r\n keyword: [keyword, '', '', '', '', ''],\r\n }\r\n if (courtCatalog.courtCatalogId != null) {\r\n condition['isSimpleAll'] = false;\r\n condition['courtCatalogId'] = courtCatalog.courtCatalogId;\r\n } else {\r\n condition['isSimpleAll'] = true;\r\n }\r\n\r\n courtCatalog.isRequested = true;\r\n courtCatalog.isCounting = true;\r\n courtCatalog.isCountFinished = false;\r\n\r\n this.judicialInterpretSearchService\r\n .getSimpleSearchCourtCatalogCount(condition)\r\n .subscribe((result) => {\r\n // console.log(result);\r\n subsc.next(result);\r\n subsc.complete();\r\n });\r\n });\r\n }\r\n\r\n selectSimpleCourtCatalog(courtCatalog: JudicialInterpretSearchCourtCatalog): void {\r\n this.selectedCourtCatalog = courtCatalog;\r\n this.selectedCourtCatalog.countRead = true;\r\n this.updateSimpleNoteList();\r\n }\r\n getSimpleCourtCatalogNote$(courtCatalog: JudicialInterpretSearchCourtCatalog,\r\n keyword: string): Observable {\r\n return new Observable((subsc: Subscriber) => {\r\n const condition = {\r\n keyword: [keyword, '', '', '', '', ''],\r\n pageNumber: this.pageNumber\r\n }\r\n if (courtCatalog.courtCatalogId != null) {\r\n condition['isSimpleAll'] = false;\r\n condition['courtCatalogId'] = courtCatalog.courtCatalogId;\r\n } else {\r\n condition['isSimpleAll'] = true;\r\n }\r\n this.judicialInterpretSearchService\r\n .getSimpleSearchCourtCatalogNote(condition)\r\n .subscribe((result) => {\r\n subsc.next(result);\r\n subsc.complete();\r\n });\r\n });\r\n }\r\n updateSimpleNoteList(): void {\r\n this.enablePageChange = true;\r\n this.noteSearching = true;\r\n this.noResult = false;\r\n this.getSimpleCourtCatalogNote$(this.selectedCourtCatalog,\r\n this.judicialInterpretSearchService.simpleKeyword)\r\n .subscribe({\r\n next: (v) => {\r\n console.log(v);\r\n this.totalCount = v.count;\r\n this.noteList = v.list;\r\n this.noteSearching = false;\r\n if (v.count == 0) {\r\n this.noResult = true;\r\n }\r\n },\r\n complete: () => {\r\n setTimeout(() => {\r\n console.log(this.pageChangeSimple);\r\n if (this.pageChangeSimple != null) {\r\n this.pageChangeSimple.forceDisableAllPageChangeButton = false;\r\n // this.pageChangeSimple.currentIndex = this.pageNumber;\r\n this.pageChangeSimple.update(this.totalCount, this.totalCount, 20);\r\n // this.pageChangeSimple.totalCount = this.selectedCourtGroup.count;\r\n this.pageChangeSimple.updateEnableButtons();\r\n }\r\n });\r\n }\r\n });\r\n this.scrollListToTopLater();\r\n }\r\n getSimpleCaseHighlightKeywords(): string {\r\n const highlightKeyword = this.judicialInterpretSearchService.simpleKeyword\r\n .replace(/\\s+/g, '');\r\n\r\n return highlightKeyword;\r\n }\r\n getSimpleCaseName(judicialInterpretCase: JudicialInterpretCase): string {\r\n const courtIdName = JudicialInterpretCourtId[judicialInterpretCase.court_id];\r\n const name = this.getJudicialInterpretCaseSimpleName[courtIdName](judicialInterpretCase);\r\n\r\n return name;\r\n }\r\n\r\n getCaseName1(data: JudicialInterpretCase): string {\r\n const courtIdName = JudicialInterpretCourtId[data.court_id];\r\n const court = judicialInterpretCourts[courtIdName];\r\n\r\n const name = court.courtName + ' , '\r\n + (data.case_data.case_year != null ? data.case_data.case_year + '年度' : '')\r\n + (data.case_data.case_word != null ? data.case_data.case_word + '字' : '')\r\n + (data.case_data.case_number != null ? '第' + data.case_data.case_number + '號' : '');\r\n return name;\r\n }\r\n getCaseName1_1(data: JudicialInterpretCase): string {\r\n const courtIdName = JudicialInterpretCourtId[data.court_id];\r\n const court = judicialInterpretCourts[courtIdName];\r\n\r\n const name = court.courtName + ' , '\r\n + (data.case_data.case_year != null ? data.case_data.case_year + '年度' : '')\r\n + (data.case_data.case_word != null ? data.case_data.case_word + '字' : '')\r\n + (data.case_data.case_number != null ? '第' + data.case_data.case_number + '號' : '')\r\n + ' , ' + data.case_data.reason;\r\n return name;\r\n }\r\n getCaseName1_2(data: JudicialInterpretCase): string {\r\n const courtIdName = JudicialInterpretCourtId[data.court_id];\r\n const court = judicialInterpretCourts[courtIdName];\r\n\r\n const name = court.courtName + ' , ' + data.case_data.meet_number;\r\n return name;\r\n }\r\n getCaseName1_3(data: JudicialInterpretCase): string {\r\n const courtIdName = JudicialInterpretCourtId[data.court_id];\r\n const court = judicialInterpretCourts[courtIdName];\r\n\r\n const name = court.catalogName + ' , ' + court.courtName + ' , '\r\n + (data.case_data.case_year != null ? data.case_data.case_year + '年度' : '')\r\n + (data.case_data.case_word != null ? data.case_data.case_word + '字' : '')\r\n + (data.case_data.case_number != null ? '第' + data.case_data.case_number + '號' : '')\r\n + ' , ' + data.case_data.reason;\r\n return name;\r\n }\r\n getCaseName2(data: JudicialInterpretCase): string {\r\n const courtIdName = JudicialInterpretCourtId[data.court_id];\r\n const court = judicialInterpretCourts[courtIdName];\r\n const name = court.blockName + \", \" + court.courtName\r\n + (data.case_data.case_year != null ? data.case_data.case_year + '年度' : '')\r\n + (data.case_data.case_word != null ? data.case_data.case_word + '字' : '')\r\n + (data.case_data.case_number != null ? '第' + data.case_data.case_number + '號' : '');\r\n return name;\r\n }\r\n getCaseName3(data: JudicialInterpretCase): string {\r\n const courtIdName = JudicialInterpretCourtId[data.court_id];\r\n const court = judicialInterpretCourts[courtIdName];\r\n const name = court.blockName + \", \" + court.courtName\r\n + data.case_data.meet_title;\r\n return name;\r\n }\r\n getCaseName4(data: JudicialInterpretCase): string {\r\n const courtIdName = JudicialInterpretCourtId[data.court_id];\r\n const court = judicialInterpretCourts[courtIdName];\r\n\r\n const name = court.courtName + ' , '\r\n + data.case_data.meet_title;\r\n return name;\r\n }\r\n getCaseName5(data: JudicialInterpretCase): string {\r\n const courtIdName = JudicialInterpretCourtId[data.court_id];\r\n const court = judicialInterpretCourts[courtIdName];\r\n\r\n const name = court.courtName + ' , '\r\n + data.case_data.case_name;\r\n return name;\r\n }\r\n /** scrollListTop */\r\n scrollListToTopLater(): void {\r\n if (this.proListElementRef) {\r\n this.proListElementRef.nativeElement.scrollTop = 0;\r\n this.proListElementRef.nativeElement.scrollTo(0, 0);\r\n }\r\n if (this.simpleListElementRef) {\r\n this.simpleListElementRef.nativeElement.scrollTop = 0;\r\n this.simpleListElementRef.nativeElement.scrollTo(0, 0);\r\n }\r\n }\r\n\r\n\r\n\r\n /** 取得開啟連結 */\r\n getNoteUrl(note: JudicialInterpretCase, loadSave: boolean): string {\r\n let keyword: string = '';\r\n if (this.isProMode) {\r\n keyword = this.getValidKeywords()\r\n .map(v => encodeURI(v))\r\n .join(',');\r\n } else {\r\n // const keywords = this.getValidKeywords()\r\n // if (keywords.length > 0) {\r\n // keyword = encodeURI(keywords[0]);\r\n // }\r\n\r\n keyword = encodeURI(this.judicialInterpretSearchService.simpleKeyword);\r\n }\r\n return this.service.BaseUrlWeb + '/note/judicial_interpret/' + note.case_id\r\n + '?'\r\n + 'searchtype=fulltext'\r\n + (loadSave ? '&load_save=1' : '')\r\n + (keyword ? '&keywords=' + keyword : '')\r\n // + (this.service.isDesktop() ? '&force_desktop=1' : '')\r\n ;\r\n }\r\n openNote(note: JudicialInterpretCase, loadSave: boolean): void {\r\n const url: string = this.getNoteUrl(note, loadSave);\r\n window.open(url);\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n // setup(): void {\r\n // // 開啟檢索結果頁面\r\n // // 取設定的檢索條件\r\n // this.multipleMode = this.judicialInterpretSearchService.isProMode;\r\n // this.condition = this.judicialInterpretSearchService.condition;\r\n // // if (this.condition.case_date[0] == null) { this.condition.case_date[0] = 0; }\r\n // // if (this.condition.case_date[1] == null) { this.condition.case_date[1] = 0; }\r\n // // if (this.condition.case_date[2] == null) { this.condition.case_date[2] = 0; }\r\n // // if (this.condition.case_date[3] == null) { this.condition.case_date[3] = 0; }\r\n // // if (this.condition.case_date[4] == null) { this.condition.case_date[4] = 0; }\r\n // // if (this.condition.case_date[5] == null) { this.condition.case_date[5] = 0; }\r\n\r\n // this.conditionCache = JSON.parse(JSON.stringify(this.condition));\r\n // // this.condition.page_index = 1;\r\n // this.conditionCache.page_index = 1;\r\n // this.convertConditionKeyword(this.conditionCache.search_keywords);\r\n\r\n // this.judicialInterpretSearchResultCaseTypeButtonList.forEach(v => {\r\n // v.count = 0;\r\n // v.countRead = false;\r\n // v.finish = false;\r\n // });\r\n\r\n // // 設定即時同步接收\r\n // const signlarConnSubscribe = this.service.onSignlarConnected.subscribe((connected: boolean) => {\r\n // if (connected) {\r\n // // console.log('add signlar event');\r\n // this.addListener('judicial_interpret/note').subscribe((v) => {\r\n // const noteIndex = this.noteList.findIndex(n => n.case_id === v.case_id);\r\n // if (noteIndex > -1) {\r\n // // console.log('judicial_interpret/note', v);\r\n // this.judicialInterpretService\r\n // .getNoteDataSearchResultObserver(this.conditionCache.search_keywords, v.case_id)\r\n // .subscribe(note => {\r\n // console.log(note);\r\n // const sourceNote = this.noteList[noteIndex];\r\n // const convertedNote = Serializable.extendObjectFromResponseObject(new JudicialInterpretCase(), note);\r\n // convertedNote.sn = sourceNote.sn;\r\n // const noteFull = this.extendNoteToFull(convertedNote);\r\n // noteFull.property_template = this.baseList[JudicialInterpretProperty[convertedNote.property]];\r\n // this.noteList[noteIndex] = noteFull;\r\n // });\r\n // }\r\n // });\r\n\r\n // setTimeout(() => { signlarConnSubscribe.unsubscribe(); }, 0);\r\n // }\r\n // });\r\n\r\n // this.updateProNoteList();\r\n // }\r\n\r\n\r\n // convertConditionKeyword(search_keywords: SearcherKeyword[]): void {\r\n // const cnMatchString = '^([' + LwExt.ChineseNumber.allChineseNumber + ']+)'\r\n // + ',*([^\\d' + LwExt.ChineseNumber.allChineseNumber + ']+?),*'\r\n // + '([' + LwExt.ChineseNumber.allChineseNumber + ']+)$';\r\n // const cnRegexp = new RegExp(cnMatchString);\r\n\r\n // for (const keyword of search_keywords) {\r\n // const m = keyword.keyword.match(/^(\\d+),*([^\\d]+?),*(\\d+)$/);\r\n // if (m != null) {\r\n // const convertedKeyword = `${m[1]}年度${m[2]}字第${m[3]}號`;\r\n // keyword.keyword = convertedKeyword;\r\n // console.log('set convert keyword:' + convertedKeyword);\r\n // continue;\r\n // }\r\n\r\n // const m2 = cnRegexp.exec(keyword.keyword);\r\n // if (m2 != null) {\r\n // const convertedKeyword = `${m2[1]}年度${m2[2]}字第${m2[3]}號`;\r\n // keyword.keyword = convertedKeyword;\r\n // console.log('set convert keyword:' + convertedKeyword);\r\n // continue;\r\n // }\r\n // }\r\n // }\r\n convertConditionKeyword2(search_keywords: string[]): void {\r\n const cnMatchString = '^([' + LwExt.ChineseNumber.allChineseNumber + ']+)'\r\n + ',*([^\\d' + LwExt.ChineseNumber.allChineseNumber + ']+?),*'\r\n + '([' + LwExt.ChineseNumber.allChineseNumber + ']+)$';\r\n const cnRegexp = new RegExp(cnMatchString);\r\n\r\n for (let i = 0; i < search_keywords.length; i++) {\r\n const keyword = search_keywords[i];\r\n const m = keyword.match(/^(\\d+),*([^\\d]+?),*(\\d+)$/);\r\n if (m != null) {\r\n const convertedKeyword = `${m[1]}年度${m[2]}字第${m[3]}號`;\r\n search_keywords[i] = convertedKeyword;\r\n console.log('set convert keyword:' + convertedKeyword);\r\n continue;\r\n }\r\n\r\n const m2 = cnRegexp.exec(keyword);\r\n if (m2 != null) {\r\n const convertedKeyword = `${m2[1]}年度${m2[2]}字第${m2[3]}號`;\r\n search_keywords[i] = convertedKeyword;\r\n console.log('set convert keyword:' + convertedKeyword);\r\n continue;\r\n }\r\n }\r\n for (const keyword of search_keywords) {\r\n\r\n }\r\n }\r\n // getHighlightKeywordString(search_keywords: SearcherKeyword[]): string {\r\n // const keyword = search_keywords.filter(k => {\r\n // return k.compose !== ComposeType.Not\r\n // && k.keyword;\r\n // })\r\n // .map(k => k.keyword.replace(/\\s+/g, ''))\r\n // .join(' ');\r\n\r\n // return keyword;\r\n // }\r\n\r\n\r\n /** 增加即時同步監聽 */\r\n addListener(name: string): BroadcastEventListener {\r\n this.signalrListeners[name] = this.service.addGetSignlaRSystemListener(name);\r\n return this.signalrListeners[name];\r\n }\r\n // /** 清除即時同步監聽 */\r\n // clearListener(): void {\r\n // Object.keys(this.signalrListeners)\r\n // .forEach(key => {\r\n // this.service.removeSignalrListener(key);\r\n // });\r\n // }\r\n\r\n /** note 型別轉換 */\r\n extendNoteToFull(source_note: JudicialInterpretCase): JudicialInterpretCaseFull {\r\n // let note = Serializable.extendObjectFromResponseObject(new JudicialInterpretCaseFull(), source_note);\r\n return source_note as JudicialInterpretCaseFull;\r\n }\r\n\r\n\r\n\r\n\r\n // /** 取種類按鈕style */\r\n // getTypeButtonIconStyle(button: JudicialInterpretResultTypeButton): any {\r\n // const style: CSSStyleDeclaration = {} as CSSStyleDeclaration;\r\n\r\n // style['background-image'] = 'url(/assets/img/case_type/' + button.icon + ')';\r\n // if (this.selectedCaseType === button.type) {\r\n // style['background-image'] = 'url(/assets/img/case_type/' + button.iconSelected + ')';\r\n // }\r\n\r\n // return style;\r\n // }\r\n // /** 選擇種類 */\r\n // selectCaseType(type: JudicialInterpretSearchResultCaseType): void {\r\n // this.selectedCaseType = type;\r\n\r\n // const selectedCaseTypeName = JudicialInterpretSearchResultCaseType[this.selectedCaseType];\r\n\r\n // const selectedButton: JudicialInterpretResultTypeButton = this.judicialInterpretSearchResultCaseTypeButton[selectedCaseTypeName];\r\n // selectedButton.countRead = true;\r\n\r\n // this.pageChangeSimple.update(\r\n // selectedButton.count\r\n // , selectedButton.count\r\n // , 20\r\n // );\r\n // this.pageChangeSimple.clickGoToPage(1);\r\n // }\r\n\r\n\r\n\r\n /** 預覽視窗 */\r\n clickTextPreviewWindow(rowElement: Element, title: string, text: string): void {\r\n this.keepPreviewWindowByRowElement = rowElement;\r\n this.openTextPreview(title, text);\r\n }\r\n mouseenterTextPreview(title: string, text: string): void {\r\n if (this.keepPreviewWindowByRowElement == null) {\r\n this.openTextPreview(title, text);\r\n }\r\n }\r\n mouseleavePreview(): void {\r\n if (this.keepPreviewWindowByRowElement == null) {\r\n this.closePreview();\r\n }\r\n }\r\n openTextPreview(title: string, text: string): void {\r\n const removeNewLine = new RegExp(/[\\s]/g);\r\n const data = {\r\n title: title,\r\n content: (text || '').replace(removeNewLine, '').trim()\r\n };\r\n this.previewWindowComponent.openWindow(PreviewWindowType.TextPreview, data);\r\n }\r\n closePreview(): void {\r\n this.previewWindowComponent.closeWindow();\r\n }\r\n checkCursorClickPreviewWindow(ev: any): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.some(a => a instanceof HTMLElement &&\r\n (\r\n a === this.previewWindowComponent.element\r\n || a.classList.contains('preview-button')\r\n )\r\n );\r\n }\r\n @HostListener('document:click', ['$event']) checkPreviewWindowCloseOrNot(ev: MouseEvent): void {\r\n if (this.keepPreviewWindowByRowElement == null) {\r\n return;\r\n }\r\n if (!this.checkCursorClickPreviewWindow(ev)) {\r\n this.closePreview();\r\n this.keepPreviewWindowByRowElement = null;\r\n }\r\n }\r\n\r\n // /** 選擇法院 */\r\n // selectCourt(court: JudicialInterpretCourtCount): void {\r\n // if (this.selectedCourt === court) {\r\n // return;\r\n // }\r\n // this.selectedCourt = court;\r\n // this.conditionCache.page_index = 1;\r\n // this.conditionCache.court_id = court.court_id;\r\n // this.conditionCache.courts = [];\r\n\r\n // // this.pageChangePro.clickGoToPage(1);\r\n // this.pageChangePro.currentIndex = 1;\r\n // this.pageChangePro.displayTotalCount = court.count;\r\n // this.pageChangePro.totalCount = court.count;\r\n\r\n // this.scrollListToTopLater();\r\n // this.updateListPro();\r\n // // this.updateListPro();\r\n // }\r\n\r\n // // 通用功能 ************************************************************\r\n\r\n\r\n // searching(): boolean {\r\n // return Object.keys(this.countCourt)\r\n // .some(k => !this.countCourt[k].finish)\r\n // || this.noteSearching;\r\n\r\n // }\r\n // // noResult(): boolean {\r\n // // return this.countCourtList\r\n // // && this.countCourtList.every(c => c.finish && c.count === 0);\r\n // // // return Object.keys(this.countCourt)\r\n // // // .every(k => this.countCourt[k].finish && this.countCourt[k].count == 0);\r\n // // }\r\n // /** 取法院名稱 */\r\n // getCourtName(court_id: JudicialInterpretCourtId): string {\r\n // return this.judicialInterpretSearchService.courtIdName[JudicialInterpretCourtId[court_id]];\r\n // }\r\n\r\n // /** 清除結果 */\r\n // clearResult(): void {\r\n // // this.courtList = [];\r\n // this.noteList = [];\r\n // this.totalCount = 0;\r\n // }\r\n\r\n // /** 更新清單 *********************************************************************************** */\r\n // // updateNoteList(): void {\r\n // // if (this.multipleMode) {\r\n // // if (this.firstSearch) {\r\n // // this.updateListProFirst();\r\n // // } else {\r\n // // this.updateListPro();\r\n // // }\r\n // // } else {\r\n // // if (this.firstSearch) {\r\n // // this.updateListSimpleFirst();\r\n // // } else {\r\n // // this.updateListSimple();\r\n // // }\r\n // // }\r\n\r\n // // this.scrollListToTopLater();\r\n // // }\r\n // // 通用更新功能 - 計數法院(計數總接口,input:所有要計數的法院清單)\r\n // /** 開始請求計數線程,每0.1秒觸發一次next,所有 JudicialInterpretCourtCount 在finish後發送complete */\r\n // searchCountCourtTask(countCourtList: JudicialInterpretCourtCount[]): Observable {\r\n // return new Observable((subscriber: Subscriber) => {\r\n\r\n // const taskIntervalSubscribe = interval(100)\r\n // .pipe(\r\n // tap((v) => {\r\n // subscriber.next(v);\r\n // }),\r\n // takeWhile(() => countCourtList.filter(c => !c.finish).length > 0)\r\n // )\r\n // .subscribe({\r\n // complete: () => {\r\n // subscriber.complete();\r\n // }\r\n // });\r\n\r\n // return () => {\r\n // taskIntervalSubscribe.unsubscribe();\r\n // };\r\n // });\r\n // }\r\n // /** 開始請求計數 */\r\n // countCourtTask(requestCountIdleCourtList: JudicialInterpretCourtCount[]): Observable {\r\n // return new Observable((subscriber: Subscriber) => {\r\n // // 設定法院開始計數中\r\n // requestCountIdleCourtList.forEach(c => {\r\n // c.counting = true;\r\n // });\r\n\r\n // if (requestCountIdleCourtList.length === 0) {\r\n // subscriber.complete();\r\n // }\r\n\r\n // from(requestCountIdleCourtList).subscribe({\r\n // next: (countCourt) => {\r\n // this.notificationService.addNormal('搜尋 : ' + countCourt.courtIdString);\r\n\r\n // const _condition = JSON.parse(JSON.stringify(this.conditionCache));\r\n // _condition.court_id = countCourt.court_id;\r\n\r\n // // 發送請求計數\r\n // this.judicialInterpretService.searchCourtCountOneObserver(_condition)\r\n // .subscribe(result => {\r\n // subscriber.next(result);\r\n\r\n // if (requestCountIdleCourtList.every(cc => cc.finish)) {\r\n // subscriber.complete();\r\n // }\r\n // });\r\n // },\r\n // // complete: () => {\r\n // // subscriber.complete();\r\n // // }\r\n // });\r\n // return () => { };\r\n // });\r\n // }\r\n // // 計數、筆記搜尋結束\r\n // finishCountAndListTask(): void {\r\n // this.notificationService.addNormal('搜尋完成');\r\n // console.log('搜尋完成');\r\n\r\n // this.firstSearch = false;\r\n\r\n // if (this.pageChangeSimple) {\r\n // this.pageChangeSimple.forceDisableAllPageChangeButton = false;\r\n // // 沒結果,設定無按鈕\r\n // if (!this.noteList) {\r\n // this.pageChangeSimple.update(0, 0, 20);\r\n // }\r\n // }\r\n // if (this.pageChangePro) {\r\n // this.pageChangePro.forceDisableAllPageChangeButton = false;\r\n // // 沒結果,設定無按鈕\r\n // if (!this.noteList) {\r\n // this.pageChangePro.update(0, 0, 20);\r\n // }\r\n // }\r\n // }\r\n // // 取空閒,未在計數的法院\r\n // getIdleCourtList(): JudicialInterpretCourtCount[] {\r\n // return this.countCourtList.filter(c => !c.counting && !c.finish);\r\n // }\r\n // // 取計數中,但未完成法院\r\n // getCountingAndUnfinishCourtList(): JudicialInterpretCourtCount[] {\r\n // return this.countCourtList.filter(c => c.counting && !c.finish);\r\n // }\r\n // // 處理請求計數結果\r\n // updateCountCourtResult(countCourtResult: JudicialInterpretCourtCount): void {\r\n // // 更新計數結果\r\n // const court_id = countCourtResult.court_id;\r\n // const court_id_string = JudicialInterpretCourtId[court_id];\r\n\r\n // const countCourt = this.countCourt[court_id];\r\n\r\n // countCourt.count = countCourtResult.count;\r\n // countCourt.counting = false;\r\n // countCourt.finish = true;\r\n\r\n // this.totalCount += countCourt.count;\r\n\r\n // // console.log('update count:', countCourt.caseTypeString, countCourt.courtIdString, countCourt.count);\r\n\r\n // this.allCountFinish = this.countCourtList.every(c => c.finish);\r\n // if (this.allCountFinish) {\r\n // this.notificationService.addNormal('計數完成');\r\n // console.log('計數完成');\r\n // }\r\n // }\r\n // /** 依照原始法院順序選擇第一個計數完成的法院 (司法院>判例>精選裁判...) */\r\n // getFirstCountFinishCourt(): JudicialInterpretCourtCount {\r\n // const courtIdList = this.judicialInterpretSearchService.getCourtIdOrderByBlock();\r\n // for (const court_id of courtIdList) {\r\n // // if (!courtIdList.hasOwnProperty(court_id)) {\r\n // // continue;\r\n // // }\r\n // const countCourt = this.countCourt[court_id];\r\n // if (countCourt == null) {\r\n // continue;\r\n // }\r\n // if (!countCourt.finish || countCourt.counting) {\r\n // break;\r\n // }\r\n // if (countCourt.count === 0) {\r\n // continue;\r\n // }\r\n\r\n // if (countCourt.count > 0) {\r\n // return countCourt;\r\n // }\r\n // }\r\n // }\r\n\r\n\r\n // /** 更新多元清單 *********************************** */\r\n // /** 第一次進入更新 ******************************** */\r\n // updateListProFirst(): void {\r\n // // 初始化\r\n // this.totalCount = 0;\r\n\r\n // // 設定種類名稱\r\n // this.searchedCaseTypeName = this.judicialInterpretSearchService.blocks[JudicialInterpretCaseType[this.conditionCache.case_type]].name;\r\n\r\n // // 排序檢索條件的法院\r\n // this.conditionCache.courts.sort((a_court_id, b_court_id) => {\r\n // return a_court_id - b_court_id;\r\n // });\r\n\r\n // // 設定檢索的法院\r\n // this.countCourt = {};\r\n // this.countCourtList = [];\r\n // // 設定可計數法院\r\n // this.conditionCache.courts.forEach(cid => {\r\n // const countCourt = JudicialInterpretCourtCount.create(this.conditionCache.case_type, cid);\r\n // this.countCourt[cid] = countCourt;\r\n // this.countCourtList.push(countCourt);\r\n // });\r\n\r\n // // 設定法院分類區塊\r\n // this.courtLevelBlock = {};\r\n // this.courtLevelBlockList = [];\r\n // this.countCourtList.forEach(countCourt => {\r\n // // this.judicialInterpretSearchService.courtLevelName = court_id : 法院等級名稱\r\n // const courtLevelName = this.judicialInterpretSearchService.courtLevelName[countCourt.courtIdString];\r\n // if (this.courtLevelBlock[courtLevelName] == null) {\r\n // const levelBlock = {\r\n // name: courtLevelName,\r\n // list: []\r\n // };\r\n\r\n // this.courtLevelBlock[courtLevelName] = levelBlock;\r\n // this.courtLevelBlockList.push(levelBlock);\r\n // }\r\n\r\n // this.courtLevelBlock[courtLevelName].list.push(countCourt);\r\n // });\r\n\r\n // // 開始計數線程\r\n // this.searchCountCourtTask(this.countCourtList)\r\n // .pipe(\r\n // // 初始設定,設定換頁器換頁按鈕讀取中\r\n // tap(i => {\r\n // this.pageChangePro.forceDisableAllPageChangeButton = true;\r\n // }),\r\n // // 找出空閒,未計數中、計數完成的法院\r\n // map(i => {\r\n // const maxTaskCount: number = this.configService.maxSearchTaskCount;\r\n // const countingCourtList = this.getCountingAndUnfinishCourtList();\r\n // const requestCountIdleCourtList = this.getIdleCourtList()\r\n // .slice(0, maxTaskCount - countingCourtList.length);\r\n // return requestCountIdleCourtList;\r\n // }),\r\n // // 請求法院計數\r\n // mergeMap(requestCountIdleCourtList => {\r\n // return this.countCourtTask(requestCountIdleCourtList);\r\n // }),\r\n\r\n // // 處理法院計數請求結果,更新法院計數結果數量\r\n // tap(countCourtResult => {\r\n // this.updateCountCourtResult(countCourtResult);\r\n // }),\r\n\r\n // // 找出第一個有數量的法院並請求筆記清單\r\n // mergeMap(() => {\r\n // return this.searchFirstCountCourtNoteListProTask();\r\n // }),\r\n // // 更新筆記清單(有結果的話)\r\n // tap(noteListResult => {\r\n // this.updateNoteResultPro(noteListResult);\r\n // })\r\n // )\r\n // .subscribe({\r\n // complete: () => {\r\n // // 完成所有法院計數\r\n // this.finishCountAndListTask();\r\n // }\r\n // });\r\n // }\r\n // /** 請求指定法院筆記 */\r\n // requestCountCourtNoteListPro(countCourt: JudicialInterpretCourtCount): Observable {\r\n // const _condition = JSON.parse(JSON.stringify(this.conditionCache));\r\n // _condition.court_id = countCourt.court_id;\r\n\r\n // return this.judicialInterpretService.searchProOneObserver(_condition)\r\n // .pipe(\r\n // map(noteList => {\r\n // if (noteList.list) {\r\n // noteList.list = noteList.list.map(item => Serializable.extendObjectFromResponseObject(new JudicialInterpretCase(), item));\r\n // noteList.list.forEach(note => {\r\n // const noteFull = this.extendNoteToFull(note);\r\n // noteFull.property_template = this.baseList[JudicialInterpretProperty[note.property]];\r\n // });\r\n // }\r\n // return noteList;\r\n // }),\r\n // );\r\n // }\r\n // /** 更新專業檢索結果 */\r\n // updateNoteResultPro(noteListResult: JudicialInterpretCaseList): void {\r\n // if (noteListResult) {\r\n // this.noteList = noteListResult.list;\r\n // this.pageChangePro.update(\r\n // noteListResult.count\r\n // , noteListResult.count\r\n // , 20\r\n // );\r\n // }\r\n // }\r\n // /** 找第一個有數量法院的檢索清單 */\r\n // searchFirstCountCourtNoteListProTask(): Observable {\r\n // return new Observable((subscriber: Subscriber) => {\r\n // if (this.noteSearching\r\n // || this.noteList != null\r\n // || this.getFirstCountFinishCourt() == null) {\r\n // subscriber.complete();\r\n // }\r\n\r\n // if (!this.noteSearching && this.noteList == null) {\r\n // const firstFinishCourt = this.getFirstCountFinishCourt();\r\n // if (firstFinishCourt != null) {\r\n\r\n // // 設定選選擇的法院\r\n // this.selectedCourt = firstFinishCourt;\r\n\r\n // this.noteSearching = true;\r\n\r\n // this.requestCountCourtNoteListPro(firstFinishCourt).subscribe(result => {\r\n\r\n // // 設定條件種類名稱\r\n // // this.noteList = result.list;\r\n // // result.list.forEach(n => {\r\n // // const case_type_string = JudicialInterpretCaseType[n.case_type];\r\n // // n.case_type_name = this.judicialInterpretSearchService.blocks[case_type_string].name;\r\n // // });\r\n\r\n // // 結束清單檢索\r\n // this.noteSearching = false;\r\n\r\n // subscriber.next(result);\r\n // subscriber.complete();\r\n // });\r\n // }\r\n // }\r\n\r\n // return () => { };\r\n // });\r\n // }\r\n\r\n\r\n // /** 選擇法院、換頁更新 **************************** */\r\n // updateListPro(): void {\r\n // this.noteSearching = true;\r\n\r\n // this.requestCountCourtNoteListPro(this.selectedCourt).subscribe(noteListResult => {\r\n // this.noteSearching = false;\r\n // this.updateNoteResultPro(noteListResult);\r\n // this.scrollListToTopLater();\r\n // });\r\n // }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n // /** 更新簡易清單 ********************************** */\r\n // /** 第一次進入更新 ******************************** */\r\n // updateListSimpleFirst(): void {\r\n // // 初始設定\r\n // // 設定種類按鈕取值狀態\r\n // this.judicialInterpretSearchResultCaseTypeButtonList.forEach(item => {\r\n // item.loading = true;\r\n // item.finish = false;\r\n // });\r\n\r\n // // 交互排序要計數的法院清單\r\n // this.countCourtList = this.judicialInterpretSearchService.getSimpleSearchTypeCountCourtList();\r\n\r\n // // 換頁器先設定無結果\r\n // // this.pageChangeSimple.update(0, 0, 20);\r\n\r\n // // 設定可計數法院\r\n // this.countCourt = {};\r\n // this.countCourtList.forEach(countCourt => {\r\n // this.countCourt[countCourt.court_id] = countCourt;\r\n // });\r\n\r\n // // 設定預設選擇種類\r\n // this.selectedCaseType = JudicialInterpretSearchResultCaseType.All;\r\n // this.judicialInterpretSearchResultCaseTypeButton.All.countRead = true;\r\n\r\n // // 開始簡易計數線程\r\n // this.searchCountCourtTask(this.countCourtList)\r\n // .pipe(\r\n // // 初始設定,設定換頁器換頁按鈕讀取中\r\n // tap(i => {\r\n // this.pageChangeSimple.forceDisableAllPageChangeButton = true;\r\n // }),\r\n // // 找出空閒,未計數中、計數完成的法院\r\n // map(i => {\r\n // const maxTaskCount: number = this.configService.maxSearchTaskCount;\r\n // const countingCourtList = this.getCountingAndUnfinishCourtList();\r\n // const requestCountIdleCourtList = this.getIdleCourtList()\r\n // .slice(0, maxTaskCount - countingCourtList.length);\r\n // return requestCountIdleCourtList;\r\n // }),\r\n // // 請求法院計數\r\n // mergeMap(requestCountIdleCourtList => {\r\n // return this.countCourtTask(requestCountIdleCourtList);\r\n // }),\r\n // // 處理法院計數請求結果\r\n // tap(countCourtResult => {\r\n // // 更新法院計數結果數量\r\n // this.updateCountCourtResult(countCourtResult);\r\n // }),\r\n // // 更新簡易模式種類按鈕數量\r\n // tap(countCourtResult => {\r\n // this.updateCountCourtResultSimple(countCourtResult);\r\n // }),\r\n\r\n\r\n // // 找出第一個有數量的法院並請求筆記清單\r\n // mergeMap(() => {\r\n // // 找出第一個有數量的法院並請求筆記清單\r\n // return this.searchFirstCountCourtNoteListSimpleTask();\r\n // }),\r\n // // 更新筆記清單(有結果的話)\r\n // tap(noteListResult => {\r\n // // console.log(noteListResult);\r\n // if (noteListResult) {\r\n // this.noteList = noteListResult;\r\n // }\r\n // // this.updateNoteResultPro(noteListResult);\r\n // }),\r\n // )\r\n // .subscribe({\r\n // complete: () => {\r\n // this.finishCountAndListTask();\r\n // }\r\n // });\r\n // }\r\n // /** 更新簡易檢索種類按鈕讀取中 */\r\n // updateCountCourtResultSimple(countCourtResult: JudicialInterpretCourtCount): void {\r\n // this.judicialInterpretSearchResultCaseTypeButton.All.count += countCourtResult.count;\r\n\r\n // // 更新法院所屬種類數量\r\n // const courtTypeName = countCourtResult.caseTypeString;\r\n // const resultCourtTypeButton: JudicialInterpretResultTypeButton = this.judicialInterpretSearchResultCaseTypeButton[courtTypeName];\r\n // resultCourtTypeButton.count += countCourtResult.count;\r\n\r\n // // 更新計數結果的法院種類按鈕狀態\r\n // const currentResultTypeCountCourtList = this.countCourtList.filter(c => c.case_type === countCourtResult.case_type);\r\n // resultCourtTypeButton.loading = currentResultTypeCountCourtList.some(c => c.counting || !c.finish);\r\n // resultCourtTypeButton.finish = currentResultTypeCountCourtList.every(c => c.finish);\r\n\r\n // // console.log(courtTypeName\r\n // // , currentResultTypeCountCourtList.length\r\n // // , resultCourtTypeButton.loading\r\n // // , resultCourtTypeButton.finish\r\n // // );\r\n\r\n // // 更新法院讀取完成狀態\r\n // this.judicialInterpretSearchResultCaseTypeButton.All.loading = this.countCourtList.some(c => c.counting || !c.finish);\r\n // this.judicialInterpretSearchResultCaseTypeButton.All.finish = this.countCourtList.every(c => c.finish);\r\n\r\n // // 更新換頁器數量\r\n // const selectedCaseTypeName = JudicialInterpretSearchResultCaseType[this.selectedCaseType];\r\n // this.pageChangeSimple.update(\r\n // this.judicialInterpretSearchResultCaseTypeButton[selectedCaseTypeName].count\r\n // , this.judicialInterpretSearchResultCaseTypeButton[selectedCaseTypeName].count\r\n // , 20\r\n // );\r\n // }\r\n // /** 找第一個有數量法院的檢索清單 */\r\n // searchFirstCountCourtNoteListSimpleTask(): Observable {\r\n // return new Observable((subscriber: Subscriber) => {\r\n // if (this.noteSearching\r\n // || this.noteList != null\r\n // || this.getSearchListConditionSimple(JudicialInterpretSearchResultCaseType.All) == null) {\r\n // subscriber.complete();\r\n // }\r\n\r\n // if (!this.noteSearching && this.noteList == null) {\r\n // const _condition = this.getSearchListConditionSimple(JudicialInterpretSearchResultCaseType.All);\r\n // if (_condition != null) {\r\n // this.noteSearching = true;\r\n\r\n // this.requestCountCourtNoteListSimple(_condition)\r\n // .subscribe(resultNoteList => {\r\n // // console.log(resultNoteList);\r\n\r\n // this.noteSearching = false;\r\n // subscriber.next(resultNoteList);\r\n // subscriber.complete();\r\n // });\r\n // }\r\n // }\r\n\r\n // return () => { };\r\n // });\r\n // }\r\n // /** 依照數量檢索指定法院的清單 */\r\n // getSearchListConditionSimple(searchResultCaseType: JudicialInterpretSearchResultCaseType): JudicialInterpretCondition {\r\n // const _condition = JSON.parse(JSON.stringify(this.conditionCache));\r\n // _condition.court_id = null;\r\n // _condition.courts = [];\r\n\r\n // const startSkipLength = (_condition.page_index - 1) * _condition.per_page_amount;\r\n // const stopTakeLength = startSkipLength + _condition.per_page_amount;\r\n\r\n // // 設定要檢索的法院\r\n // let courts: JudicialInterpretCourtCount[] = [];\r\n // if (searchResultCaseType === JudicialInterpretSearchResultCaseType.All) {\r\n // courts = this.countCourtList;\r\n // } else {\r\n // courts = this.countCourtList\r\n // .filter(c => c.caseTypeString === JudicialInterpretSearchResultCaseType[searchResultCaseType]);\r\n // }\r\n\r\n // // 檢查要搜尋範圍的法院是否已經都完成計數\r\n // let checkRunCount: number = 0;\r\n // for (const court of courts) {\r\n // if (court.counting) {\r\n // return null;\r\n // }\r\n // checkRunCount += court.count;\r\n // if (checkRunCount > stopTakeLength) {\r\n // break;\r\n // }\r\n // }\r\n\r\n // // 過濾,只選擇有數量的法院\r\n // courts = courts.filter(c => c.count > 0);\r\n\r\n // // 取範圍內法院\r\n // let runLength: number = 0;\r\n // // 要搜尋的法院對照清單\r\n // const searchCourtList: { sn: number, id: number }[] = [];\r\n\r\n // courts.forEach((court, i) => {\r\n // if (searchCourtList.length >= _condition.per_page_amount) {\r\n // return;\r\n // }\r\n\r\n // if (runLength <= startSkipLength) {\r\n // if (startSkipLength < runLength + court.count) {\r\n // const skipFirstLength = startSkipLength - runLength;\r\n // let addCount = 0;\r\n // for (let index = skipFirstLength; index < court.count; index++) {\r\n // searchCourtList.push({ sn: runLength + index + 1, id: court.court_id });\r\n // addCount++;\r\n // if (searchCourtList.length >= _condition.per_page_amount) {\r\n // break;\r\n // }\r\n // }\r\n\r\n // _condition.courts.push(court.court_id);\r\n // _condition.skip_first_count = skipFirstLength;\r\n // _condition.start_sn = startSkipLength + 1;\r\n\r\n // console.log('進入初始計數點');\r\n // let msg = startSkipLength + '~' + (stopTakeLength - 1);\r\n // msg += ' id:' + court.court_id + ' (' + court.count + ')';\r\n // msg +=\r\n // ' -' + (skipFirstLength)\r\n // + ', +' + addCount\r\n // + ', ' + (startSkipLength) + '~' + (startSkipLength + addCount - 1);\r\n // console.log(msg);\r\n // }\r\n // } else if (runLength < stopTakeLength) {\r\n // if (runLength < stopTakeLength) {\r\n // let addCount = 0;\r\n // for (let index = 0; index < court.count; index++) {\r\n // searchCourtList.push({ sn: runLength + index, id: court.court_id });\r\n // addCount++;\r\n // if (searchCourtList.length >= _condition.per_page_amount) {\r\n // break;\r\n // }\r\n // }\r\n\r\n // _condition.courts.push(court.court_id);\r\n\r\n // let msg = '>' + startSkipLength + '~' + (stopTakeLength - 1);\r\n // msg += ' id:' + court.court_id + ' (' + court.count + ')';\r\n // if (runLength + court.count < stopTakeLength) {\r\n // msg += ' +' + addCount\r\n // + ', ' + runLength + '~' + (runLength + court.count - 1)\r\n // ;\r\n // } else {\r\n // msg += ' +' + addCount\r\n // + ', ' + runLength + '~' + (stopTakeLength - 1) + '(~' + (runLength + court.count) + ')'\r\n // ;\r\n // }\r\n // console.log(msg);\r\n // }\r\n // }\r\n // runLength += court.count;\r\n // });\r\n\r\n // console.log(_condition.courts.join(','));\r\n // // console.log(pageStartRange + '~' + pageStopRange);\r\n // console.log('------------------------------------------------------------------');\r\n // // let rangeLine = '0~';\r\n // // let rangeLineCount = 0;\r\n // // courts.forEach(c => {\r\n // // rangeLineCount += this.countCourt[c.courtIdString].count;\r\n // // rangeLine += rangeLineCount + '~';\r\n // // });\r\n // // console.log(rangeLine);\r\n\r\n // return _condition;\r\n // }\r\n // /** 簡易檢索結果清單 */\r\n // requestCountCourtNoteListSimple(_condition: JudicialInterpretCondition): Observable {\r\n // return this.judicialInterpretService.searchSimpleListObserver(_condition)\r\n // .pipe(\r\n // map(list => {\r\n // console.log(list);\r\n\r\n // if (list) {\r\n // list.forEach(note => {\r\n // const noteFull = this.extendNoteToFull(note);\r\n // noteFull.property_template = this.baseList[JudicialInterpretProperty[note.property]];\r\n // });\r\n // }\r\n // return list;\r\n // })\r\n // );\r\n // }\r\n\r\n\r\n // /** 換頁、更新清單 ******************************** */\r\n // updateListSimple(): void {\r\n // const _condition = this.getSearchListConditionSimple(this.selectedCaseType);\r\n\r\n // this.noteSearching = true;\r\n // this.pageChangeSimple.forceDisableAllPageChangeButton = true;\r\n\r\n // this.requestCountCourtNoteListSimple(_condition)\r\n // .subscribe(noteListResult => {\r\n // this.noteList = noteListResult;\r\n // this.pageChangeSimple.forceDisableAllPageChangeButton = false;\r\n // this.noteSearching = false;\r\n // this.scrollListToTopLater();\r\n // });\r\n\r\n // // this.searchNoteListSimpleTask(this.selectedCourt).subscribe(noteListResult => {\r\n // // this.noteSearching = false;\r\n // // this.updateNoteResultPro(noteListResult);\r\n // // this.scrollListToTopLater();\r\n // // });\r\n // }\r\n // getCaseTitle(note: JudicialInterpretCase): string {\r\n // return this.judicialInterpretSearchService.courtIdTitle[note.courtIdString](note);\r\n // }\r\n // isStopCase(note: JudicialInterpretCase): boolean {\r\n // return note.court_id === CourtId.jtype1A\r\n // || note.court_id === CourtId.jtype1B\r\n // || note.court_id === CourtId.jtype1E;\r\n // }\r\n\r\n\r\n openSearchAgainPopup(): void {\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n SearchAgainPopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '600px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n const sks: SearcherKeyword[] = [];\r\n\r\n const condition = this.judicialInterpretSearchService.proCondition;\r\n for (let i = 0; i < condition.compose.length; i++) {\r\n const compose = condition.compose[i];\r\n const keyword = condition.keyword[i];\r\n\r\n const sk = new SearcherKeyword();\r\n sk.index = i;\r\n sk.compose = ComposeType[compose];\r\n if (sk.compose == null) {\r\n sk.compose = ComposeType.And;\r\n }\r\n sk.kind = null;\r\n sk.keyword = keyword;\r\n sk.disable = keyword.length > 0 ? true : false;\r\n sks.push(sk);\r\n\r\n\r\n }\r\n\r\n {\r\n const compressedSave: string = this.service.getLocal('judicial_interpret_condition_v3');\r\n const saveJson = this.lzService.decompress(compressedSave as string);\r\n const save: any = JSON.parse(saveJson);\r\n\r\n console.log(save);\r\n console.log(condition);\r\n\r\n }\r\n // this.condition.search_keywords.forEach((v, i) => {\r\n // const sk = new SearcherKeyword();\r\n // sk.index = v.index;\r\n // sk.compose = v.compose;\r\n // if (sk.compose == null) {\r\n // sk.compose = ComposeType.And;\r\n // }\r\n // sk.kind = v.kind;\r\n // sk.keyword = v.keyword;\r\n // sk.disable = v.keyword ? true : false;\r\n // sks.push(sk);\r\n // });\r\n\r\n dlRef.componentInstance.updateKeywords(sks);\r\n dlRef.componentInstance.saveInput = () => {\r\n // 修改儲存紀錄\r\n const compressedSave: string = this.service.getLocal('judicial_interpret_condition_v3');\r\n const saveJson = this.lzService.decompress(compressedSave as string);\r\n const save = JSON.parse(saveJson);\r\n console.log(save);\r\n // this.condition.search_keywords.forEach((kw, i) => {\r\n // if (i < 6) {\r\n // save[JudicialInterpretCaseType[save.type].toString().toLowerCase() + 'ComposeKeyword' + (i + 1)] = kw.keyword;\r\n // save[JudicialInterpretCaseType[save.type].toString().toLowerCase() + 'ComposeCommand' + (i + 1) + 'Type'] = kw.compose;\r\n // }\r\n // });\r\n const newSaveJson = JSON.stringify(save);\r\n const newCompressedSave = this.lzService.compress(newSaveJson);\r\n this.service.setLocal('judicial_interpret_condition_v3', newCompressedSave);\r\n };\r\n dlRef.componentInstance.onSubmit = (newSearcherKeywords: SearcherKeyword[]) => {\r\n const compressedSave: string = this.service.getLocal('judicial_interpret_condition_v3');\r\n const saveJson = this.lzService.decompress(compressedSave as string);\r\n const save = JSON.parse(saveJson);\r\n\r\n const catalogIdName: string = save.index;\r\n // const catalogId: string = JudicialInterpretCourtCatalogId[save.index];\r\n const inputs = save.proInputs[catalogIdName];\r\n console.log(newSearcherKeywords);\r\n\r\n const condition = this.judicialInterpretSearchService.proCondition;\r\n\r\n for (let i = 0; i < newSearcherKeywords.length; i++) {\r\n const newSearcherKeyword = newSearcherKeywords[i];\r\n const newKeyword: string = newSearcherKeyword.keyword;\r\n const newCompose: string = ComposeType[newSearcherKeyword.compose];\r\n\r\n inputs.keyword[i] = newKeyword;\r\n inputs.compose[i] = newCompose;\r\n condition.keyword[i] = newKeyword;\r\n condition.compose[i] = newCompose;\r\n }\r\n\r\n\r\n\r\n const newSaveJson = JSON.stringify(save);\r\n const newCompressedSave = this.lzService.compress(newSaveJson);\r\n this.service.setLocal('judicial_interpret_condition_v3', newCompressedSave);\r\n\r\n // this.firstSearch = true;\r\n\r\n // this.selectedCourt = null;\r\n // this.noteList = null;\r\n\r\n // this.judicialInterpretSearchResultCaseTypeButtonList.forEach(v => {\r\n // v.count = 0;\r\n // v.countRead = false;\r\n // v.finish = false;\r\n // v.loading = null;\r\n // });\r\n\r\n // const cca = dlRef.componentInstance.composeCommands.toArray();\r\n // if (this.condition) {\r\n // this.condition.page_index = 1;\r\n // this.condition.search_keywords = newSearcherKeywords;\r\n // newSearcherKeywords.forEach((kw, i) => {\r\n // if (i > 0) {\r\n // this.condition.search_keywords[i].compose = cca[i - 1].selectedTypeItem.type;\r\n // }\r\n // });\r\n // this.conditionCache = JSON.parse(JSON.stringify(this.condition));\r\n // this.convertConditionKeyword(this.conditionCache.search_keywords);\r\n // }\r\n\r\n // dlRef.componentInstance.saveInput();\r\n\r\n this.setup2();\r\n\r\n dlRef.close();\r\n };\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
0?'has-count':''),\r\n (searchAllCourtCatalog.isCountFinished && searchAllCourtCatalog.count==0?'disable':'')\r\n ]\" (click)=\"selectSimpleCourtCatalog(searchAllCourtCatalog)\">\r\n
\r\n
全部
\r\n
\r\n
\r\n
\r\n
\r\n
0?'has-count':'')]\" (click)=\"selectSimpleCourtCatalog(item)\">\r\n
\r\n
{{item.name}}
\r\n
\r\n
\r\n
0 && !item.countRead\">{{getSimpleCourtCatalogCount(item)}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 0\">\r\n
\r\n
簡易清單
\r\n
\r\n \r\n
\r\n
多元清單
\r\n
\r\n
\r\n
\r\n
\r\n
找不到案件?請加入官方LINE,連絡小編協助您找尋案件。
\r\n \r\n \"加入好友\"\r\n\r\n \r\n
\r\n
0\">\r\n
\r\n
\r\n {{getSimpleCaseName(note)}}\r\n 停用廢止\r\n
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{courtCatalogName}}
\r\n
\r\n
\r\n \r\n \r\n
\r\n
{{courtBlock.name}}
\r\n
\r\n \r\n 0 || courtGroup.isCounting)\">\r\n
\r\n
{{getCourtGroupName(courtGroup)}}\r\n 0\">\r\n ({{courtGroup.count.toLocaleString()}})\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
總共:{{getTotalCountString()}} 筆
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
0\" (click)=\"openSearchAgainPopup()\">\r\n
再檢索
\r\n
\r\n
\r\n
簡易清單
\r\n
\r\n \r\n
\r\n
多元清單
\r\n
\r\n
\r\n
\r\n
\r\n
找不到案件?請加入官方LINE,連絡小編協助您找尋案件。
\r\n \r\n \"加入好友\"\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n
序號
\r\n
{{getCaseSn(note)}}
\r\n
\r\n
\r\n\r\n
\r\n
屬性
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
最近瀏覽
\r\n
{{getLastView(note)}}
\r\n
\r\n
\r\n\r\n
\r\n
收存
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
內容預覽
\r\n
\r\n

\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
相關法條
\r\n \r\n
\r\n
\r\n
\r\n
{{relateLawRule.name}}
\r\n
第 {{relateLawRule.list.join('、')}} 條
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n \r\n\r\n
\r\n
解釋字號
\r\n
\r\n
{{note.case_data.case_word + '字第' +\r\n note.case_data.case_number + '號' +\r\n (note.case_data.case_title || '') }}
\r\n
\r\n
\r\n
\r\n
開啟案件
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
解釋爭點
\r\n
\r\n

{{note.case_data.issue}}

\r\n
\r\n
\r\n
\r\n
\r\n
解釋文
\r\n
\r\n
\r\n
點擊固定
\r\n
\r\n
\r\n
\r\n

{{note.case_data.article}}

\r\n
\r\n
\r\n
\r\n
解釋日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n \r\n
\r\n
解釋字號
\r\n
\r\n
{{note.case_data.case_word + '字第' +\r\n note.case_data.case_number + '號' +\r\n (note.case_data.case_title || '') }}
\r\n
\r\n
\r\n
\r\n
開啟案件
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
解釋文
\r\n
\r\n

{{note.case_data.article}}

\r\n
\r\n
\r\n
\r\n
解釋日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n \r\n
\r\n
案號
\r\n
\r\n
\r\n {{note.case_data.case_year+'年度'+note.case_data.case_word+'字第'+note.case_data.case_number+'號'}}
\r\n
\r\n
\r\n
\r\n
開啟案件
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
案由
\r\n
{{note.case_data.reason}}
\r\n
\r\n
\r\n
裁判日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n \r\n\r\n
\r\n
案號
\r\n
\r\n
\r\n {{note.case_data.case_year+'年度'+note.case_data.case_word+'字第'+note.case_data.case_number+'號'}}
\r\n
\r\n
\r\n
\r\n
開啟案件
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
案由
\r\n
{{note.case_data.reason}}
\r\n
\r\n
\r\n
裁判日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n \r\n\r\n
\r\n
案次
\r\n
\r\n
{{note.case_data.meet_number}}
\r\n
\r\n
\r\n
\r\n
開啟案件
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n \r\n\r\n
\r\n
案號
\r\n
\r\n
\r\n {{note.case_data.case_year+'年度'+note.case_data.case_word+'字第'+note.case_data.case_number+'號'}}停用廢止\r\n
\r\n
\r\n
\r\n
\r\n
開啟案件
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
案由
\r\n
{{note.case_data.reason}}
\r\n
\r\n
\r\n
\r\n
判例要旨
\r\n
\r\n
\r\n
點擊固定
\r\n
\r\n
\r\n
\r\n

{{note.case_data.gist}}

\r\n
\r\n
\r\n
\r\n
裁判日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n \r\n\r\n
\r\n
案號
\r\n
\r\n
\r\n {{note.case_data.case_year+'年度'+note.case_data.case_word+'字第'+note.case_data.case_number+'號'}}
\r\n
\r\n
\r\n
\r\n
開啟案件
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
案由
\r\n
{{note.case_data.reason}}
\r\n
\r\n
\r\n
裁判日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n \r\n\r\n
\r\n
案號
\r\n
\r\n
\r\n {{note.case_data.case_year+'年度'+note.case_data.case_word+'字第'+note.case_data.case_number+'號'}}
\r\n
\r\n
\r\n
\r\n
開啟案件
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
案由
\r\n
{{note.case_data.reason}}
\r\n
\r\n
\r\n
\r\n
裁判要旨
\r\n
\r\n
\r\n
點擊固定
\r\n
\r\n
\r\n
\r\n

{{note.case_data.gist}}

\r\n
\r\n
\r\n
\r\n
裁判日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n \r\n\r\n
\r\n
會議次別
\r\n
\r\n
{{note.case_data.meet_title}}停用廢止
\r\n
\r\n
\r\n
\r\n
開啟案件
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
決議主旨
\r\n
\r\n
\r\n
點擊固定
\r\n
\r\n
\r\n
\r\n

{{note.case_data.subject}}

\r\n
\r\n
\r\n
\r\n
決議日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n \r\n\r\n
\r\n
公懲案號
\r\n
\r\n
\r\n {{note.case_data.case_year+'年度'+note.case_data.case_word+'字第'+note.case_data.case_number+'號'}}
\r\n
\r\n
\r\n
\r\n
開啟案件
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
案由
\r\n
{{note.case_data.reason}}
\r\n
\r\n
\r\n
議決日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n \r\n\r\n
\r\n
會議次別
\r\n
\r\n
{{note.case_data.meet_title}}
\r\n
\r\n
\r\n
\r\n
開啟案件
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
問題主旨
\r\n
\r\n
\r\n
點擊固定
\r\n
\r\n
\r\n
\r\n

{{note.case_data.problem}}

\r\n
\r\n
\r\n
\r\n
會議日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n \r\n\r\n
\r\n
字號
\r\n
\r\n
\r\n \r\n \r\n \r\n 字第\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
開啟案件
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
要旨
\r\n
{{note.case_data.gist}}
\r\n
\r\n
\r\n
發文日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?'\r\n :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nconst routes: Routes = [];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class ChildContentLawRuleSearchRoutingModule { }\r\n","import { Component, OnInit, ViewChild, ElementRef, OnDestroy } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { InitService } from 'projects/lwlib/src/init/init.service';\r\nimport { ActionName } from 'projects/lwlib/src/action-name';\r\nimport { SearcherKeywordKind } from 'projects/lwlib/src/keyword-searcher/searcher-keyword-kind';\r\nimport { ChooseKindItem } from 'projects/lwlib/src/choose-kind/choose-kind-item';\r\nimport { InputText } from 'projects/lwlib/src/compose-search-popup/input-text';\r\nimport { ComposeCaseWordComponent } from 'projects/lwlib/src/compose-case-word/compose-case-word.component';\r\nimport { LawRuleService } from '../child-content-storage-personal/law-rule/law-rule.service';\r\nimport { LawRuleCategory } from './law-rule-category';\r\nimport { LawRuleSubcategory } from './law-rule-subcategory';\r\nimport { Serializable } from 'projects/lwlib/src/serializable';\r\nimport { LawRuleExamIndex } from './law-rule-exam-index';\r\nimport { AppCommonService } from 'projects/desktop/src/app/app-common.service';\r\nimport { LawRuleSearchFilterCondition } from './law-rule-search-filter-condition';\r\nimport { LawRuleSearchMode } from './law-rule-search-mode.enum';\r\nimport { LawRuleType } from '../child-content-storage-personal/law-rule/law-rule-type.enum';\r\nimport { LoadingIconService } from 'projects/lwlib/src/loading-icon/loading-icon.service';\r\nimport { PageChangeComponent } from 'projects/lwlib/src/page-change/page-change.component';\r\nimport { Observable, interval, of, Subscription } from 'rxjs';\r\nimport { LawRuleCase } from '../child-content-storage-personal/law-rule/law-rule-case';\r\nimport { tap, startWith, map } from 'rxjs/operators';\r\nimport { MatAutocomplete, MatAutocompleteTrigger } from '@angular/material/autocomplete';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { LogPageId } from 'projects/lwlib/src/log-page/log-page-id.enum';\r\nimport { BroadcastEventListener } from 'ng2-signalr';\r\nimport { LwExt } from 'projects/lwlib/src/lib/lw-ext';\r\n\r\n@Component({\r\n selector: 'app-child-content-law-rule-search',\r\n templateUrl: './child-content-law-rule-search.component.html',\r\n styleUrls: ['./child-content-law-rule-search.component.scss']\r\n})\r\nexport class ChildContentLawRuleSearchComponent implements OnInit, OnDestroy {\r\n\r\n lawRuleSearchMode: any = LawRuleSearchMode;\r\n lawRuleType: any = LawRuleType;\r\n\r\n @ViewChild('pageChange') pageChange: PageChangeComponent;\r\n @ViewChild('composeReadMode', { static: true }) composeReadMode: ComposeCaseWordComponent;\r\n @ViewChild('contentElement', { static: true }) contentElement: ElementRef;\r\n @ViewChild('auto', { static: true }) autoComplete: MatAutocomplete;\r\n @ViewChild('inputElement', { static: true }) inputElement: ElementRef;\r\n @ViewChild('matAutocompleteInput', { read: MatAutocompleteTrigger, static: true }) autoCompleteTrigger: MatAutocompleteTrigger;\r\n\r\n kindList: SearcherKeywordKind[] = [\r\n SearcherKeywordKind.LawRuleName,\r\n SearcherKeywordKind.LawRuleFulltext,\r\n ];\r\n readModeList: string[] = [\r\n '全部目錄', '律師高考'\r\n ];\r\n readModeWindowStyle = {\r\n left: '0',\r\n top: '48px',\r\n };\r\n readModeButtonStyle = {\r\n height: '38px',\r\n 'border-radius': '5px',\r\n };\r\n chooseKindButtonStyle = {\r\n height: '38px',\r\n };\r\n\r\n\r\n // 搜尋模式\r\n mode: LawRuleSearchMode = LawRuleSearchMode.Index;\r\n\r\n // 關鍵字種類\r\n searchedKind: SearcherKeywordKind = SearcherKeywordKind.LawRuleName;\r\n kind: SearcherKeywordKind = SearcherKeywordKind.LawRuleName;\r\n // 關鍵字\r\n searchedText: string;\r\n inputText: InputText = new InputText();\r\n // 選擇的分類、子分類\r\n selectedCategory: LawRuleCategory;\r\n selectedSubcategory: LawRuleSubcategory;\r\n // 法規種類(現行、廢止、停止),自動=自動選擇第一個有結果的種類\r\n selectedLawRuleType: LawRuleType = LawRuleType.Auto;\r\n\r\n searchedTypeCount: { [key in keyof typeof LawRuleType]: number } = {\r\n Auto: 0, Current: 0, Repeal: 0, Stop: 0\r\n };\r\n\r\n // 目錄頁面的拉條高度\r\n contentElementScrollTop: number = 0;\r\n currentContentElementScrollTop: number = 0;\r\n scrolling: boolean = false;\r\n\r\n // 分類目錄\r\n categoryIndexList: LawRuleCategory[] = [];\r\n // 考試目錄\r\n _examList: LawRuleExamIndex[] = [];\r\n _optionExamList: LawRuleExamIndex[] = [];\r\n examList: LawRuleExamIndex[] = [];\r\n optionExamList: LawRuleExamIndex[] = [];\r\n searchedExamList: LawRuleCase[] = [];\r\n\r\n searchModeWordIndex: { [key: string]: LawRuleSearchMode } = {\r\n '全部目錄': LawRuleSearchMode.Index,\r\n '律師高考': LawRuleSearchMode.Exam,\r\n };\r\n categoryIndexLawRuleList: LawRuleCase[] = [];\r\n\r\n\r\n // keywordControl = new FormControl();\r\n // options: string[] = ['One', 'Two', 'Three'];\r\n // filteredOptions: Observable;\r\n suggestLawRuleNames: Observable;\r\n suggestLawRuleNameSubscribe: Subscription;\r\n\r\n signalrListeners: { [key: string]: BroadcastEventListener } = {};\r\n\r\n\r\n constructor(\r\n private initService: InitService,\r\n public appCommonService: AppCommonService,\r\n private lawRuleService: LawRuleService,\r\n private loadingIconService: LoadingIconService,\r\n public service: AppService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.lawRuleService.getCategoryIndex().subscribe((indexList: LawRuleCategory[]) => {\r\n this.categoryIndexList = indexList;\r\n this.categoryIndexList.forEach(c => {\r\n if (c.name[c.name.length - 1] === '類') {\r\n c.name = c.name.substr(0, c.name.length - 1);\r\n }\r\n });\r\n console.log(this.categoryIndexList);\r\n });\r\n this.lawRuleService.getExamIndex().subscribe(index => {\r\n console.log(index);\r\n this._examList = index['exam'];\r\n this._optionExamList = index['option_exam'];\r\n\r\n this.updateExamFilterList();\r\n });\r\n\r\n // 設定即時同步接收\r\n const signlarConnSubscribe = this.service.onSignlarConnected.subscribe((connected: boolean) => {\r\n if (connected) {\r\n // console.log('add signlar event');\r\n this.addListener('law_rule/note').subscribe((v) => {\r\n console.log(v);\r\n const _noteList1 = this.examList.find(l => l.list.some(n => n.law_rule_id === v.case_id));\r\n const noteList1: LawRuleCase[] = _noteList1 ? _noteList1.list : null;\r\n const _noteList2 = this.optionExamList.find(l => l.list.some(n => n.law_rule_id === v.case_id));\r\n const noteList2: LawRuleCase[] = _noteList2 ? _noteList2.list : null;\r\n const noteList3: LawRuleCase[] = this.categoryIndexLawRuleList.some(n => n.law_rule_id === v.case_id) ? this.categoryIndexLawRuleList : null;\r\n\r\n if (noteList1\r\n || noteList2\r\n || noteList3) {\r\n this.lawRuleService.getNoteDataStorageObserver(v.case_id).subscribe(note => {\r\n if (noteList1) {\r\n const noteIndex1 = noteList1.findIndex(n => n.law_rule_id === v.case_id);\r\n noteList1[noteIndex1] = note;\r\n }\r\n if (noteList2) {\r\n const noteIndex2 = noteList2.findIndex(n => n.law_rule_id === v.case_id);\r\n noteList2[noteIndex2] = note;\r\n }\r\n if (noteList3) {\r\n const noteIndex3 = noteList3.findIndex(n => n.law_rule_id === v.case_id);\r\n noteList3[noteIndex3] = note;\r\n }\r\n });\r\n }\r\n });\r\n setTimeout(() => { signlarConnSubscribe.unsubscribe(); }, 0);\r\n }\r\n });\r\n\r\n this.service.log(LogPageId.SearchConditionLawRule, '', '');\r\n this.initService.trigger(ActionName.SearchCondition);\r\n\r\n setTimeout(() => {\r\n this.inputElement.nativeElement.focus();\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n this.clearListener();\r\n }\r\n /** 增加即時同步監聽 */\r\n addListener(name: string): BroadcastEventListener {\r\n this.signalrListeners[name] = this.service.addGetSignlaRSystemListener(name);\r\n return this.signalrListeners[name];\r\n }\r\n /** 清除即時同步監聽 */\r\n clearListener(): void {\r\n Object.keys(this.signalrListeners)\r\n .forEach(key => {\r\n this.service.removeSignalrListener(key);\r\n });\r\n }\r\n\r\n // 抬頭列 ****************************************************************************\r\n\r\n\r\n /** 搜尋模式切換 */\r\n readModeChange(): void {\r\n const selectedSearchMode = this.composeReadMode.selectedCaseWord;\r\n this.mode = this.searchModeWordIndex[selectedSearchMode];\r\n this.contentElement.nativeElement.scrollTop = 0;\r\n\r\n this.backToIndex();\r\n\r\n if (this.mode === LawRuleSearchMode.Exam) {\r\n this.updateExamFilterList();\r\n }\r\n }\r\n /** 關鍵字檢索種類切換 */\r\n kindSelect(kind: ChooseKindItem): void {\r\n this.kind = kind.kind;\r\n\r\n if (this.kind !== SearcherKeywordKind.LawRuleName) {\r\n this.suggestLawRuleNames = of([]);\r\n }\r\n }\r\n inputTextChange(): void {\r\n // this.autoCompleteTrigger.openPanel();\r\n // this.inputText.text = keyword != null ? keyword : '';\r\n // if (this.inputText.text) {\r\n // const sourcetext = this.inputText.text;\r\n // const num = LwExt.ChineseNumber.ChineseToArabic(sourcetext);\r\n // console.log(`${sourcetext} -> ${num}`);\r\n // }\r\n\r\n\r\n if (this.kind !== SearcherKeywordKind.LawRuleName\r\n || this.mode !== LawRuleSearchMode.Index) {\r\n this.suggestLawRuleNames = of([]);\r\n return;\r\n }\r\n\r\n if (this.suggestLawRuleNameSubscribe != null) {\r\n this.suggestLawRuleNameSubscribe.unsubscribe();\r\n this.suggestLawRuleNameSubscribe = null;\r\n }\r\n\r\n this.suggestLawRuleNameSubscribe =\r\n this.lawRuleService.getLawRuleNameSuggestionObserver(this.inputText.text)\r\n .subscribe(names => {\r\n this.suggestLawRuleNames = of(names);\r\n });\r\n }\r\n /** 停用送出按鈕 */\r\n disableSubmitButton(): boolean {\r\n if (this.inputText.isEmpty()) {\r\n return true;\r\n }\r\n if (this.searchedText === this.inputText.text\r\n && this.searchedKind === this.kind) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n /** 顯示清除按鈕 */\r\n showClearButton(): boolean {\r\n if (!this.inputText.isEmpty()) {\r\n return true;\r\n }\r\n if (this.searchedText) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n /** 觸發關鍵字搜尋清除 */\r\n clickClear(): void {\r\n this.inputText.clear();\r\n // this.keywordControl.reset();\r\n if (this.mode === LawRuleSearchMode.Exam) {\r\n this.searchedText = '';\r\n this.searchedExamList = [];\r\n this.updateExamFilterList();\r\n } else if (this.mode === LawRuleSearchMode.Index && !this.selectedSubcategory) {\r\n this.backToIndex();\r\n } else if (this.mode === LawRuleSearchMode.Index && this.selectedSubcategory) {\r\n this.searchedText = '';\r\n this.clickSearchSubcategory();\r\n }\r\n }\r\n /** 觸發關鍵字送出搜尋 */\r\n clickSubmit(): void {\r\n this.service.log(LogPageId.SearchResultLawRule, this.mode.toString() + '&' + this.inputText.text, '');\r\n this.contentElementScrollTop = this.contentElement.nativeElement.scrollTop;\r\n this.contentElement.nativeElement.scrollTop = 0;\r\n if (this.mode === LawRuleSearchMode.Exam) {\r\n this.clickSearchExamIndex();\r\n } else if (this.mode === LawRuleSearchMode.Index && !this.selectedSubcategory) {\r\n this.clickSearchAllIndex();\r\n } else if (this.mode === LawRuleSearchMode.Index && this.selectedSubcategory) {\r\n this.clickSearchSubcategory();\r\n }\r\n }\r\n\r\n /** 關鍵字搜尋ENTER */\r\n enterKeydown(ev: KeyboardEvent): void {\r\n if (this.disableSubmitButton()\r\n || ev.keyCode !== 13) {\r\n return;\r\n }\r\n if (!this.autoComplete.options.some(v => v.active)) {\r\n if (this.autoComplete.isOpen) {\r\n this.autoCompleteTrigger.closePanel();\r\n // this.suggestLawRuleNames = of([]);\r\n }\r\n this.clickSubmit();\r\n }\r\n }\r\n clickAutoCompleteOption(ev: any): void {\r\n this.inputText.text = ev.option.value;\r\n // this.clickSubmit();\r\n }\r\n getBaseSearchFilterCondition(): LawRuleSearchFilterCondition {\r\n const condition: LawRuleSearchFilterCondition = new LawRuleSearchFilterCondition();\r\n condition.page_index = 1;\r\n condition.per_page_amount = 20;\r\n\r\n return condition;\r\n }\r\n\r\n /** 法規關鍵字提示 */\r\n getLawRuleKeywordList(): Observable {\r\n if (this.inputText.isEmpty()) {\r\n return of([]);\r\n }\r\n\r\n return this.lawRuleService.getLawRuleNameSuggestionObserver(this.inputText.text);\r\n }\r\n\r\n\r\n\r\n /** 關鍵字點擊送出搜尋 */\r\n clickSearchExamIndex() {\r\n this.searchedText = this.inputText.text;\r\n this.searchedKind = this.kind;\r\n\r\n const condition: LawRuleSearchFilterCondition = this.getBaseSearchFilterCondition();\r\n condition.mode = LawRuleSearchMode.Exam;\r\n condition.law_rule_type = this.selectedLawRuleType;\r\n condition.category = null;\r\n condition.subcategory = null;\r\n condition.page_index = 1;\r\n condition.kind = this.searchedKind;\r\n // condition.keyword = this.searchedText;\r\n condition.search_keywords[0].keyword = this.searchedText;\r\n\r\n\r\n this.searchLawRule(condition).subscribe(list => {\r\n console.log(list);\r\n this.searchedExamList = list;\r\n this.updateExamFilterList();\r\n });\r\n }\r\n clickSearchAllIndex() {\r\n this.searchedText = this.inputText.text;\r\n this.searchedKind = this.kind;\r\n\r\n const condition: LawRuleSearchFilterCondition = this.getBaseSearchFilterCondition();\r\n condition.mode = LawRuleSearchMode.Index;\r\n condition.law_rule_type = this.selectedLawRuleType;\r\n condition.category = null;\r\n condition.subcategory = null;\r\n condition.page_index = 1;\r\n condition.kind = this.searchedKind;\r\n // condition.keyword = this.searchedText;\r\n condition.search_keywords[0].keyword = this.searchedText;\r\n\r\n this.searchIndex(condition);\r\n }\r\n clickSearchSubcategory() {\r\n this.searchedText = this.inputText.text;\r\n this.searchedKind = this.kind;\r\n\r\n const condition: LawRuleSearchFilterCondition = this.getBaseSearchFilterCondition();\r\n condition.mode = LawRuleSearchMode.Index;\r\n condition.law_rule_type = this.selectedLawRuleType;\r\n condition.category = this.selectedCategory.name;\r\n condition.subcategory = this.selectedSubcategory.name;\r\n condition.page_index = 1;\r\n condition.kind = this.searchedKind;\r\n // condition.keyword = this.searchedText;\r\n condition.search_keywords[0].keyword = this.searchedText;\r\n\r\n this.searchIndex(condition);\r\n }\r\n\r\n\r\n\r\n // 目錄 ****************************************************************************\r\n\r\n\r\n /** 回頂端 */\r\n goTop(): void {\r\n this.contentElement.nativeElement.scrollTo({\r\n 'behavior': 'smooth',\r\n 'top': 0\r\n });\r\n\r\n // of(\r\n // () => { this.scrolling = true; },\r\n // () => { this.contentElement.nativeElement.scrollTop = 0; },\r\n // () => { this.scrolling = false; }\r\n // )\r\n // .pipe(\r\n // concatMap(v => {\r\n // console.log(v);\r\n // v();\r\n // return of(v).pipe(delay(1));\r\n // })\r\n // )\r\n // .subscribe();\r\n }\r\n /** 更新拉條高度 */\r\n updateScrollTop(): void {\r\n this.currentContentElementScrollTop = this.contentElement.nativeElement.scrollTop;\r\n }\r\n /** 顯示置頂按鈕 */\r\n showScrollTopButton(): boolean {\r\n return this.currentContentElementScrollTop > 200;\r\n }\r\n /** 點擊子類別 */\r\n clickSubcategory(categoryName: string, subcategoryName: string): void {\r\n console.log('select ', categoryName, subcategoryName);\r\n\r\n // 紀錄目前拉條位置\r\n this.contentElementScrollTop = this.contentElement.nativeElement.scrollTop;\r\n\r\n // 設定選擇到的分類\r\n this.selectedCategory = this.categoryIndexList.find(v => v.name === categoryName);\r\n this.selectedSubcategory = this.selectedCategory.subcategory.find(v => v.name === subcategoryName);\r\n this.selectedLawRuleType = LawRuleType.Auto;\r\n\r\n const condition = this.getBaseSearchFilterCondition();\r\n condition.mode = LawRuleSearchMode.Index;\r\n condition.law_rule_type = this.selectedLawRuleType;\r\n condition.category = this.selectedCategory.name;\r\n condition.subcategory = this.selectedSubcategory.name;\r\n condition.page_index = 1;\r\n // condition.search_keywords[0].keyword = this.searchedText ? this.searchedText : '';\r\n\r\n this.searchIndex(condition);\r\n }\r\n\r\n\r\n\r\n // 清單 ****************************************************************************\r\n\r\n openNote(note: LawRuleCase): void {\r\n let url: string = this.service.BaseUrlWeb + '/note/law_rule/' + note.law_rule_id\r\n + '?load_save=1';\r\n if (this.searchedKind === SearcherKeywordKind.LawRuleFulltext\r\n && this.searchedText) {\r\n url += '&searchtype=fulltext'\r\n + '&keywords=' + encodeURIComponent(this.searchedText)\r\n // + (this.service.isDesktop() ? '&force_desktop=1' : '')\r\n ;\r\n }\r\n window.open(url);\r\n }\r\n\r\n getTypeCount(type: LawRuleType): number {\r\n return this.searchedTypeCount[LawRuleType[type]];\r\n }\r\n /** 返回目錄 */\r\n backToIndex(): void {\r\n this.selectedCategory = null;\r\n this.selectedSubcategory = null;\r\n this.selectedLawRuleType = LawRuleType.Auto;\r\n this.categoryIndexLawRuleList = [];\r\n this.searchedText = '';\r\n\r\n // 復原拉條位置\r\n setTimeout(() => {\r\n this.contentElement.nativeElement.scrollTop = this.contentElementScrollTop;\r\n }, 0);\r\n }\r\n /** 換頁,目前只有類別結果清單才有 */\r\n clickGoToPage(index: number): void {\r\n const condition = this.getBaseSearchFilterCondition();\r\n condition.mode = LawRuleSearchMode.Index;\r\n condition.law_rule_type = this.selectedLawRuleType;\r\n condition.category = this.selectedCategory ? this.selectedCategory.name : null;\r\n condition.subcategory = this.selectedSubcategory ? this.selectedSubcategory.name : null;\r\n condition.page_index = index;\r\n condition.kind = this.kind;\r\n condition.search_keywords[0].keyword = this.searchedText ? this.searchedText : '';\r\n // condition.keyword = this.searchedText ? this.searchedText : null;\r\n\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.LawRuleSearch);\r\n this.searchLawRule(condition).subscribe(lawRuleList => {\r\n console.log(lawRuleList);\r\n this.categoryIndexLawRuleList = lawRuleList;\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.LawRuleSearch);\r\n });\r\n }\r\n\r\n /** 清單法規種類切換 */\r\n clickTypeChange(type: LawRuleType): void {\r\n this.selectedLawRuleType = type;\r\n\r\n const count = this.searchedTypeCount[LawRuleType[type]];\r\n this.pageChange.update(count, count, 20);\r\n\r\n const condition = this.getBaseSearchFilterCondition();\r\n condition.mode = LawRuleSearchMode.Index;\r\n condition.law_rule_type = this.selectedLawRuleType;\r\n condition.category = this.selectedCategory ? this.selectedCategory.name : null;\r\n condition.subcategory = this.selectedSubcategory ? this.selectedSubcategory.name : null;\r\n condition.page_index = 1;\r\n condition.kind = this.kind;\r\n // condition.keyword = this.searchedText ? this.searchedText : null;\r\n condition.search_keywords[0].keyword = this.searchedText ? this.searchedText : '';\r\n\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.LawRuleSearch);\r\n\r\n this.searchLawRule(condition).subscribe(lawRuleList => {\r\n console.log(lawRuleList);\r\n this.categoryIndexLawRuleList = lawRuleList;\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.LawRuleSearch);\r\n });\r\n }\r\n\r\n /** 關鍵字高亮 */\r\n getHighlightKeyword(): string {\r\n if (this.searchedKind === SearcherKeywordKind.LawRuleName && this.searchedText) {\r\n const keyword = this.searchedText\r\n .replace(/\\s+/g, '');\r\n return keyword;\r\n }\r\n\r\n return '';\r\n }\r\n\r\n /** 更新考試模式的清單過濾 */\r\n updateExamFilterList(): void {\r\n this.examList = this.filterExamList(this._examList);\r\n this.optionExamList = this.filterExamList(this._optionExamList);\r\n }\r\n filterExamList(examIndexList: LawRuleExamIndex[]): LawRuleExamIndex[] {\r\n if (this.searchedExamList.length === 0) {\r\n return examIndexList;\r\n }\r\n\r\n const searchedExamName = {};\r\n this.searchedExamList.forEach(v => {\r\n searchedExamName[v.law_rule_name] = 1;\r\n });\r\n\r\n const list = [];\r\n examIndexList.forEach(ei => {\r\n const lawRuleList = ei.list.filter(c => {\r\n return searchedExamName[c.law_rule_name];\r\n });\r\n if (lawRuleList.length === 0) {\r\n return;\r\n }\r\n\r\n const lrei = new LawRuleExamIndex();\r\n lrei.name = ei.name;\r\n lrei.list = lawRuleList;\r\n\r\n list.push(lrei);\r\n });\r\n\r\n return list;\r\n }\r\n\r\n\r\n /** 搜尋考試模式 */\r\n searchExamIndex(condition: LawRuleSearchFilterCondition) {\r\n\r\n }\r\n\r\n /** 搜尋目錄 */\r\n searchIndex(condition: LawRuleSearchFilterCondition): void {\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.LawRuleSearch);\r\n this.searchIndexCount(condition).subscribe(result => {\r\n console.log(result);\r\n\r\n // 設定搜尋到的數量\r\n Object.keys(result).forEach(k => {\r\n this.searchedTypeCount[k] = result[k];\r\n });\r\n\r\n console.log(condition);\r\n\r\n let hasLawRuleTypeString: string = null;\r\n // 如果是自動選擇數量\r\n if (condition.law_rule_type === LawRuleType.Auto) {\r\n // 找第一個有結果的種類\r\n hasLawRuleTypeString = Object.keys(result).find(key => result[key] > 0);\r\n } else {\r\n // 檢查手動選擇的結果是否有數量\r\n hasLawRuleTypeString = LawRuleType[condition.law_rule_type];\r\n if (result[hasLawRuleTypeString] === 0) {\r\n // 找第一個有結果的種類\r\n hasLawRuleTypeString = Object.keys(result).find(key => result[key] > 0);\r\n }\r\n }\r\n\r\n // 都沒有找到\r\n if (hasLawRuleTypeString == null) {\r\n this.selectedLawRuleType = LawRuleType.Auto;\r\n this.categoryIndexLawRuleList = [];\r\n this.pageChange.update(0, 0, 20);\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.LawRuleSearch);\r\n } else {\r\n condition.law_rule_type = LawRuleType[hasLawRuleTypeString];\r\n this.selectedLawRuleType = LawRuleType[hasLawRuleTypeString];\r\n\r\n // 設定換頁器數量=目前選擇種類總數、頁數\r\n const currentTypeCount = result[hasLawRuleTypeString];\r\n this.pageChange.update(currentTypeCount, currentTypeCount, 20);\r\n\r\n this.searchLawRule(condition).subscribe(lawRuleList => {\r\n console.log(lawRuleList);\r\n this.categoryIndexLawRuleList = lawRuleList;\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.LawRuleSearch);\r\n });\r\n }\r\n });\r\n }\r\n /** 搜尋種類數量 */\r\n searchIndexCount(condition: LawRuleSearchFilterCondition): Observable<{ [key in keyof typeof LawRuleType]: number }> {\r\n return this.lawRuleService.countLawRuleTypeObserver(condition);\r\n }\r\n /** 搜尋法規清單 */\r\n searchLawRule(condition: LawRuleSearchFilterCondition): Observable {\r\n return this.lawRuleService.searchLawRuleObserver(condition);\r\n }\r\n\r\n\r\n /** 切換收藏法規 */\r\n switchLawRuleFastBagCollect(note: LawRuleCase, collect: boolean): void {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n console.log(note, collect);\r\n if (collect && this.lawRuleService.fastBag.count >= 30) {\r\n alert('收藏總數已滿!');\r\n setTimeout(() => {\r\n note.fast_bag = false;\r\n }, 100);\r\n return;\r\n }\r\n\r\n this.lawRuleService.fastBagLawRuleCollectObserver(note.law_rule_id, collect).subscribe(() => {\r\n this.lawRuleService.pullFastBagObserver().subscribe();\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
搜尋模式
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
清除
\r\n
\r\n
送出
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{category.name}}類
\r\n
\r\n
\r\n
{{subcategory.name\r\n + ' ('+subcategory.count.toLocaleString() +')'}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{item.name}}
\r\n \r\n
\r\n
0\">\r\n
\r\n
選考科目
\r\n
\r\n
\r\n
\r\n
{{item.name}}
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{selectedCategory.name}}類
\r\n
{{selectedSubcategory.name}} ({{selectedSubcategory.count.toLocaleString()}})
\r\n
\r\n \r\n
\r\n
\r\n
找不到法規?請加入官方LINE,連絡小編協助您找尋法規。
\r\n \r\n \"加入好友\"\r\n\r\n \r\n
\r\n 0\">\r\n
\r\n
現行法\r\n ({{getTypeCount(lawRuleType.Current).toLocaleString()}})
\r\n
廢止法\r\n ({{getTypeCount(lawRuleType.Repeal).toLocaleString()}})
\r\n
經停用\r\n ({{getTypeCount(lawRuleType.Stop).toLocaleString()}})
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
回頂端
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
序號
\r\n
法規名稱
\r\n
修正日期
\r\n
公佈日期
\r\n
收存狀態
\r\n
最愛法規(快捷包)
\r\n
\r\n
\r\n
\r\n
{{note.sn.toLocaleString()}}
\r\n
{{(i+1).toLocaleString()}}
\r\n
\r\n \r\n 廢止\r\n 停用\r\n
\r\n
{{\r\n !note.modify_date||note.modify_date[0]==1?'':\r\n note.modify_date[0] +'/'+\r\n appCommonService.padNumber(note.modify_date[1])\r\n +'/'+appCommonService.padNumber(note.modify_date[2])\r\n }}
\r\n
{{\r\n !note.public_date||note.public_date[0]==1?'':\r\n note.public_date[0] +'/'+\r\n appCommonService.padNumber(note.public_date[1])\r\n +'/'+appCommonService.padNumber(note.public_date[2])\r\n }}
\r\n
0?'has-note':'']\">\r\n
\r\n
\r\n
\r\n
\r\n 移除\r\n \r\n
\r\n \r\n \r\n
\r\n 加入\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { ChildContentLawRuleSearchRoutingModule } from './child-content-law-rule-search-routing.module';\r\nimport { ChildContentLawRuleSearchComponent } from './child-content-law-rule-search.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { ChooseKindModule } from 'projects/lwlib/src/choose-kind/choose-kind.module';\r\nimport { ComposeCaseWordModule } from 'projects/lwlib/src/compose-case-word/compose-case-word.module';\r\nimport { PageChangeModule } from 'projects/lwlib/src/page-change/page-change.module';\r\nimport { PipeHighlightModule } from 'projects/lwlib/src/pipe-highlight/pipe-highlight.module';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n\r\n MatAutocompleteModule,\r\n PipeHighlightModule,\r\n\r\n ChildContentLawRuleSearchRoutingModule,\r\n ChooseKindModule,\r\n ComposeCaseWordModule,\r\n PageChangeModule,\r\n ],\r\n declarations: [\r\n ChildContentLawRuleSearchComponent\r\n ],\r\n exports: [\r\n ChildContentLawRuleSearchComponent\r\n ]\r\n})\r\nexport class ChildContentLawRuleSearchModule { }\r\n","import { SearchCondition } from '../child-content-complete-search/complete-search-result/search-condition';\r\nimport { LawRuleType } from '../child-content-storage-personal/law-rule/law-rule-type.enum';\r\nimport { LawRuleSearchMode } from './law-rule-search-mode.enum';\r\n\r\nexport class LawRuleSearchCondition extends SearchCondition {\r\n\r\n mode: LawRuleSearchMode;\r\n law_rule_type: LawRuleType;\r\n category: string;\r\n subcategory: string;\r\n\r\n constructor() { super(); }\r\n}\r\n","import { SearcherKeywordKind } from 'projects/lwlib/src/keyword-searcher/searcher-keyword-kind';\r\nimport { LawRuleType } from '../child-content-storage-personal/law-rule/law-rule-type.enum';\r\nimport { LawRuleSearchMode } from './law-rule-search-mode.enum';\r\nimport { SearcherKeyword } from 'projects/lwlib/src/keyword-searcher/searcher-keyword';\r\n\r\nexport class LawRuleSearchFilterCondition {\r\n kind: SearcherKeywordKind;\r\n // keyword: string;\r\n search_keywords: SearcherKeyword[] = [\r\n SearcherKeyword.create({ index: 0, keyword: '' }),\r\n SearcherKeyword.create({ index: 1, keyword: '' }),\r\n SearcherKeyword.create({ index: 2, keyword: '' }),\r\n ];\r\n law_rule_type: LawRuleType;\r\n category: string;\r\n subcategory: string;\r\n mode: LawRuleSearchMode;\r\n page_index: number;\r\n per_page_amount: number;\r\n}\r\n","export enum LawRuleSearchMode {\r\n Index = 0,\r\n Exam = 1,\r\n}\r\n","import { Component, HostListener, OnInit } from '@angular/core';\r\nimport { ActionName } from 'projects/lwlib/src/action-name';\r\nimport { InitService } from 'projects/lwlib/src/init/init.service';\r\nimport { LogPageId } from 'projects/lwlib/src/log-page/log-page-id.enum';\r\nimport { MemberService } from 'projects/lwlib/src/member/member.service';\r\nimport { NetService } from 'projects/lwlib/src/net.service';\r\nimport { Observable } from 'rxjs';\r\nimport { concatMap, tap } from 'rxjs/operators';\r\nimport { AppService } from '../../../app.service';\r\n\r\nclass Message {\r\n id: number;\r\n case_id: string;\r\n name: string;\r\n date: string;\r\n prop: string;\r\n status: string;\r\n url: string;\r\n full_name: string;\r\n overwrite: any;\r\n}\r\n\r\n@Component({\r\n selector: 'app-child-content-news',\r\n templateUrl: './child-content-news.component.html',\r\n styleUrls: ['./child-content-news.component.scss']\r\n})\r\nexport class ChildContentNewsComponent implements OnInit {\r\n\r\n\r\n hasEditPermission: boolean = false;\r\n isEditMode: boolean = false;\r\n isLoading: boolean = true;\r\n\r\n messagesSystemLog: Message[] = [];\r\n\r\n messagesXF: Message[] = [];\r\n messagesExplain: Message[] = [];\r\n\r\n messagesSupreme: Message[] = [];\r\n messagesSupremeV: Message[] = [];\r\n messagesSupremeM: Message[] = [];\r\n messagesSupremeA: Message[] = [];\r\n\r\n messagesGrand: Message[] = [];\r\n messagesGrandV: Message[] = [];\r\n messagesGrandM: Message[] = [];\r\n messagesGrandA: Message[] = [];\r\n\r\n messagesLawRule: Message[] = [];\r\n messagesLawRuleLFY: Message[] = [];\r\n messagesLawRuleQGFG: Message[] = [];\r\n\r\n\r\n\r\n lastUpdateTimeString: string = '';\r\n\r\n isMenuShowSupreme: boolean = false;\r\n isMenuShowGrand: boolean = false;\r\n isMenuShowLawRule: boolean = false;\r\n\r\n menuListSupreme: string[] = ['民事類', '刑事類', '行政類'];\r\n selectedItemSupreme: string = this.menuListSupreme[0];\r\n\r\n menuListGrand: string[] = ['民事類', '刑事類', '行政類'];\r\n selectedItemGrand: string = this.menuListGrand[0];\r\n\r\n menuListLawRule: string[] = ['一般法律', '法規命令'];\r\n selectedItemLawRule: string = this.menuListLawRule[0];\r\n\r\n\r\n editMessageList_: Message[] = [];\r\n editMessageList: Message[] = [];\r\n\r\n editSelectedType: string = '';\r\n enableEditSave: boolean = false;\r\n editActionList: { action: string, data: any }[] = [];\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n constructor(\r\n private service: AppService,\r\n private initService: InitService,\r\n private net: NetService,\r\n private memberService: MemberService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n // 註冊初始化事件\r\n\r\n this.net.log(LogPageId.NEWS, '', '');\r\n\r\n this.pullNews()\r\n .subscribe({\r\n next: (v) => {\r\n\r\n this.setupData(v);\r\n\r\n this.updateMenuItemSelectedGrand();\r\n this.updateMenuItemSelectedSupreme();\r\n this.updateMenuItemSelectedLawRule();\r\n\r\n this.setupEdit('SystemLog');\r\n\r\n this.isLoading = false;\r\n }\r\n });\r\n\r\n this.hasEditPermission = this.memberService.memberHeader.is_admin;\r\n\r\n this.initService.trigger(ActionName.PersonalStorage);\r\n console.log(this.initService);\r\n\r\n }\r\n\r\n msgVal(msg: Message, colName: string): string {\r\n let v = msg[colName];\r\n if (msg.overwrite[colName] != null\r\n && msg.overwrite[colName] != '') {\r\n v = msg.overwrite[colName];\r\n }\r\n\r\n return v;\r\n }\r\n\r\n\r\n toggleMenuSupreme(): void {\r\n this.isMenuShowSupreme = !this.isMenuShowSupreme;\r\n }\r\n toggleMenuGrand(): void {\r\n this.isMenuShowGrand = !this.isMenuShowGrand;\r\n }\r\n toggleMenuLawRule(): void {\r\n this.isMenuShowLawRule = !this.isMenuShowLawRule;\r\n }\r\n\r\n updateMenuItemSelectedGrand(): void {\r\n if (this.selectedItemGrand == '民事類') {\r\n this.messagesGrand = this.messagesGrandV;\r\n } else if (this.selectedItemGrand == '刑事類') {\r\n this.messagesGrand = this.messagesGrandM;\r\n } else if (this.selectedItemGrand == '行政類') {\r\n this.messagesGrand = this.messagesGrandA;\r\n }\r\n }\r\n updateMenuItemSelectedSupreme(): void {\r\n if (this.selectedItemSupreme == '民事類') {\r\n this.messagesSupreme = this.messagesSupremeV;\r\n } else if (this.selectedItemSupreme == '刑事類') {\r\n this.messagesSupreme = this.messagesSupremeM;\r\n } else if (this.selectedItemSupreme == '行政類') {\r\n this.messagesSupreme = this.messagesSupremeA;\r\n }\r\n }\r\n updateMenuItemSelectedLawRule(): void {\r\n if (this.selectedItemLawRule == '一般法律') {\r\n this.messagesLawRule = this.messagesLawRuleLFY;\r\n } else if (this.selectedItemLawRule == '法規命令') {\r\n this.messagesLawRule = this.messagesLawRuleQGFG;\r\n }\r\n }\r\n\r\n getLawRuleStatusLFY(msg: Message): string {\r\n let status = msg.status;\r\n if (msg.overwrite.status != null\r\n && msg.overwrite.status != '') {\r\n status = msg.overwrite.status;\r\n }\r\n if (status == '全文修正') {\r\n return '修正';\r\n }\r\n return status;\r\n }\r\n\r\n pullNews(): Observable<{ time: string, result: { [key: string]: Message[] } }> {\r\n return this.net.getRaw('user/news');\r\n }\r\n setupData(data: any): void {\r\n console.log(data);\r\n\r\n const date = new Date(Date.parse(data.time));\r\n this.lastUpdateTimeString = date.getFullYear()\r\n + '/' + (date.getMonth() + 1).toString().padStart(2, '0')\r\n + '/' + date.getDate().toString().padStart(2, '0')\r\n + ' ' + date.getHours().toString().padStart(2, '0')\r\n + ':' + date.getMinutes().toString().padStart(2, '0');\r\n\r\n this.messagesSystemLog = data.result.SystemLog;\r\n\r\n this.messagesXF = data.result.XF;\r\n this.messagesExplain = data.result.Explain;\r\n\r\n this.messagesGrandV = data.result.GrandV;\r\n this.messagesGrandM = data.result.GrandM;\r\n this.messagesGrandA = data.result.GrandA;\r\n\r\n this.messagesSupremeV = data.result.SupremeV;\r\n this.messagesSupremeM = data.result.SupremeM;\r\n this.messagesSupremeA = data.result.SupremeA;\r\n\r\n this.messagesLawRuleLFY = data.result.LawRuleLFY;\r\n this.messagesLawRuleQGFG = data.result.LawRuleQGFG;\r\n\r\n }\r\n updateNow(): void {\r\n this.isLoading = true;\r\n\r\n this.net.postRaw('management/news_update_now', {})\r\n .pipe(\r\n concatMap(() => this.pullNews())\r\n )\r\n .subscribe({\r\n next: (v) => {\r\n this.setupData(v);\r\n this.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n setupEdit(type: string): void {\r\n if (this.enableEditSave) {\r\n if (!confirm('注意編輯結果沒儲存, 確定要切換?')) {\r\n return;\r\n }\r\n }\r\n\r\n\r\n this.editSelectedType = type;\r\n if (type == 'SystemLog') {\r\n this.editMessageList_ = this.messagesSystemLog;\r\n }\r\n else if (type == 'Explain') {\r\n this.editMessageList_ = this.messagesExplain;\r\n }\r\n else if (type == 'SupremeV') {\r\n this.editMessageList_ = this.messagesSupremeV;\r\n }\r\n else if (type == 'SupremeM') {\r\n this.editMessageList_ = this.messagesSupremeM;\r\n }\r\n else if (type == 'SupremeA') {\r\n this.editMessageList_ = this.messagesSupremeA;\r\n }\r\n else if (type == 'GrandV') {\r\n this.editMessageList_ = this.messagesGrandV;\r\n }\r\n else if (type == 'GrandM') {\r\n this.editMessageList_ = this.messagesGrandM;\r\n }\r\n else if (type == 'GrandA') {\r\n this.editMessageList_ = this.messagesGrandA;\r\n }\r\n else if (type == 'LawRuleLFY') {\r\n this.editMessageList_ = this.messagesLawRuleLFY;\r\n }\r\n else if (type == 'LawRuleQGFG') {\r\n this.editMessageList_ = this.messagesLawRuleQGFG;\r\n }\r\n\r\n this.editMessageList = JSON.parse(JSON.stringify(this.editMessageList_));\r\n this.editActionList = [];\r\n }\r\n addNewEditMessage_SystemLog(): void {\r\n const msg: any = {\r\n hash: '',\r\n date: '',\r\n prop: '',\r\n title: '',\r\n text: '',\r\n overwrite: {}\r\n };\r\n // Object.keys(this.editMessageList_[0])\r\n // .forEach(key => {\r\n // if (typeof this.editMessageList_[0] == 'string') {\r\n // msg[key] = '';\r\n // }\r\n // });\r\n\r\n this.editMessageList.splice(0, 0, msg);\r\n\r\n this.editActionList.push({\r\n action: 'add',\r\n data: msg\r\n });\r\n\r\n console.log(this.editActionList);\r\n\r\n }\r\n deleteMessage(message): void {\r\n if (!confirm('確定刪除?')) {\r\n return;\r\n }\r\n this.enableEditSave = true;\r\n\r\n const index = this.editMessageList.findIndex(v => v == message);\r\n if (index > -1) {\r\n this.editMessageList.splice(index, 1);\r\n\r\n // 找這訊息是不是還沒上傳更新的\r\n const hasAdd = this.editActionList.find(v => v.data == message && v.action == 'add');\r\n if (hasAdd != null) {\r\n // 不在資料庫的訊息,直接清空動作\r\n this.editActionList = this.editActionList.filter(v => !(v.data == message));\r\n } else {\r\n // 在資料庫裡的訊息,新增刪除動作\r\n this.editActionList.push({\r\n action: 'delete',\r\n data: message\r\n });\r\n }\r\n }\r\n }\r\n onMessageEdit(msg): void {\r\n this.enableEditSave = true;\r\n\r\n var action = this.editActionList.find(v => v.data == msg && (v.action == 'update' || v.action == 'add'));\r\n // 防止相同動作重複增加\r\n if (action == null) {\r\n this.editActionList.push({\r\n action: 'update',\r\n data: msg\r\n });\r\n }\r\n }\r\n\r\n saveEditMessage(): void {\r\n console.log(this.editActionList);\r\n\r\n this.isLoading = true;\r\n this.net.postRaw('management/update_news', { data: this.editActionList })\r\n .pipe(\r\n concatMap(() => this.pullNews()),\r\n tap((v) => {\r\n this.enableEditSave = false;\r\n this.setupData(v);\r\n this.setupEdit(this.editSelectedType);\r\n this.isLoading = false;\r\n })\r\n )\r\n .subscribe();\r\n }\r\n\r\n setMessageAsAnnounce(message: Message): void {\r\n const data = {\r\n id: 0\r\n }\r\n if (message) {\r\n data.id = message.id;\r\n }\r\n \r\n this.isLoading = true;\r\n this.net.postRaw('management/set_news_announce', data)\r\n .pipe(\r\n concatMap(() => this.pullNews()),\r\n tap((v) => {\r\n this.enableEditSave = false;\r\n this.setupData(v);\r\n this.setupEdit(this.editSelectedType);\r\n this.isLoading = false;\r\n })\r\n )\r\n .subscribe();\r\n }\r\n\r\n\r\n\r\n openNoteJudgment(case_id: string): void {\r\n if (!case_id) { return; }\r\n const url: string = this.service.BaseUrlWeb + '/note/judgment/' + case_id\r\n + '?'\r\n + 'searchtype=fulltext'\r\n + '&load_save=1'\r\n window.open(url);\r\n }\r\n openNoteJudicialInterpret(case_id: string): void {\r\n if (!case_id) { return; }\r\n const url: string = this.service.BaseUrlWeb + '/note/judicial_interpret/' + case_id\r\n + '?'\r\n + 'searchtype=fulltext'\r\n + '&load_save=1'\r\n window.open(url);\r\n }\r\n openNoteLawRule(law_rule_id: string): void {\r\n if (!law_rule_id) { return; }\r\n const url: string = this.service.BaseUrlWeb + '/note/law_rule/' + law_rule_id\r\n + '?'\r\n + '&load_save=1'\r\n window.open(url);\r\n }\r\n openUrl(url: string): void {\r\n if (!url) { return; }\r\n window.open(url);\r\n }\r\n\r\n\r\n\r\n\r\n checkCursorClickClassName(ev: any, className: string): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a.classList.contains(className);\r\n });\r\n }\r\n @HostListener('document:click', ['$event']) emptyClick($event): void {\r\n if (this.isMenuShowSupreme\r\n && !this.checkCursorClickClassName($event, 'menu-button-supreme')) {\r\n this.isMenuShowSupreme = false;\r\n }\r\n if (this.isMenuShowGrand\r\n && !this.checkCursorClickClassName($event, 'menu-button-grand')) {\r\n this.isMenuShowGrand = false;\r\n }\r\n if (this.isMenuShowLawRule\r\n && !this.checkCursorClickClassName($event, 'menu-button-law-rule')) {\r\n this.isMenuShowLawRule = false;\r\n }\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
最新消息
\r\n
\r\n
\r\n
\r\n
立即更新
\r\n
\r\n
更新時間: {{lastUpdateTimeString}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
每日更新時間
\r\n
00:00、06:00、12:00、18:00
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
系統更新
\r\n
\r\n
\r\n
\r\n
\r\n
主管編輯
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{msgVal(message,'date')}}
\r\n
【{{msgVal(message,'prop')}}】
\r\n
{{msgVal(message,'title')}}
\r\n
\r\n
\r\n
{{msgVal(message,'text')}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
憲法法庭裁判
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{msgVal(message,'date')}}
\r\n
{{msgVal(message,'name')}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
尚未上架
\r\n
\r\n
\r\n
\r\n
\r\n
開啟筆記
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
大法庭見解
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{selectedItemGrand}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{item}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{msgVal(message,'date')}}
\r\n
【{{msgVal(message,'prop')}}】
\r\n
{{msgVal(message,'name')}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
尚未上架
\r\n
\r\n
\r\n
\r\n
\r\n
開啟筆記
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
最高法院裁判
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{selectedItemSupreme}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{item}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{msgVal(message,'date')}}
\r\n
【{{msgVal(message,'prop')}}】
\r\n
{{msgVal(message,'name')}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
尚未上架
\r\n
\r\n
\r\n
\r\n
\r\n
開啟筆記
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
法規修正
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{selectedItemLawRule}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{item}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{{msgVal(message,'date')}}
\r\n
【{{getLawRuleStatusLFY(message)}}】
\r\n
{{msgVal(message,'name')}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
開啟筆記
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{{msgVal(message,'date')}}
\r\n
\r\n {{msgVal(message,'name')}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
前往主管機關
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
編輯模式
\r\n
\r\n
\r\n
系統更新\r\n
\r\n
大法官解釋\r\n
\r\n
大法庭民事\r\n
\r\n
大法庭刑事\r\n
\r\n
大法庭行政\r\n
\r\n
最高法院裁判民事\r\n
\r\n
最高法院裁判刑事\r\n
\r\n
最高法院裁判行政\r\n
\r\n
\r\n 法規修正:一般法律
\r\n
\r\n 法規修正:法規命令
\r\n
\r\n
\r\n \r\n
\r\n
新增
\r\n
儲存
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
日期
\r\n
\r\n
\r\n
屬性
\r\n
\r\n
\r\n
狀態
\r\n
\r\n
\r\n
字號
\r\n
\r\n
\r\n
標題
\r\n
\r\n
\r\n
內容
\r\n
\r\n
\r\n
\r\n
來源內容
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
手動編輯
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
公告
\r\n
\r\n
\r\n
\r\n
收回
\r\n
\r\n
\r\n
\r\n
刪除
\r\n
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ChildContentNewsComponent } from './child-content-news.component';\r\nimport { PageChange2Module } from 'projects/lwlib/src/page-change2/page-change2.module';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [ChildContentNewsComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n PageChange2Module,\r\n DragDropModule,\r\n ],\r\n exports: [ChildContentNewsComponent]\r\n})\r\nexport class ChildContentNewsModule { }\r\n","import { Component, OnInit, ElementRef, ViewChild } from '@angular/core';\r\nimport { InitService } from 'projects/lwlib/src/init/init.service';\r\nimport { ActionName } from 'projects/lwlib/src/action-name';\r\nimport { trigger, transition, animate, keyframes, style } from '@angular/animations';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { MemberService } from 'projects/lwlib/src/member/member.service';\r\nimport { RecommendMember } from 'projects/lwlib/src/member/recommend-member';\r\nimport { AppCommonService } from 'projects/desktop/src/app/app-common.service';\r\nimport { LoadingIconService } from 'projects/lwlib/src/loading-icon/loading-icon.service';\r\nimport { RecommendMemberPopupOpenerService } from 'projects/lwlib/src/recommend-member-popup/recommend-member-popup-opener.service';\r\nimport { LogPageId } from 'projects/lwlib/src/log-page/log-page-id.enum';\r\n\r\n@Component({\r\n selector: 'app-child-content-recommend-friend',\r\n templateUrl: './child-content-recommend-friend.component.html',\r\n styleUrls: ['./child-content-recommend-friend.component.scss'],\r\n animations: [\r\n trigger('copyedTextAnimation', [\r\n transition('*=>true', animate('800ms', keyframes([\r\n style({ color: 'rgba(0,0,0, 1.0)' }),\r\n style({ color: 'rgba(0,0,0, 0.0)' })\r\n ])))\r\n ])\r\n ]\r\n})\r\nexport class ChildContentRecommendFriendComponent implements OnInit {\r\n @ViewChild('recommendUrlElement', { static: true }) recommendUrlElementRef: ElementRef;\r\n sn: string = 'A1234';\r\n get recommendUrl(): string {\r\n return this.sn ? this.service.BaseUrlWeb + '/register?sn=' + this.sn : '';\r\n }\r\n copyedState: boolean = false;\r\n\r\n member_count_recommend: number = 0;\r\n member_count_recommend_passed: number = 0;\r\n member_list_recommend: RecommendMember[] = [];\r\n member_list_recommend_passed: RecommendMember[] = [];\r\n has_more_recommend_member: boolean;\r\n has_more_recommend_passed_member: boolean;\r\n\r\n recommend_member_count_total: number = 0;\r\n recommend_member_count_week: number = 0;\r\n recommend_member_count_month: number = 0;\r\n\r\n reward_point_total: number = 0;\r\n\r\n constructor(\r\n private service: AppService,\r\n private initService: InitService,\r\n private memberService: MemberService,\r\n public appCommonService: AppCommonService,\r\n private loadingIconService: LoadingIconService,\r\n private recommendMemberPopupOpenerService: RecommendMemberPopupOpenerService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.service.log(LogPageId.RecommendFriend, '', '');\r\n\r\n this.memberService.requestRecommendData().subscribe(result => {\r\n // 前置處理\r\n if (result.recommend_member_count === 1) {\r\n result.recommend_member_list = result.recommend_member_list.filter(v => v.picture);\r\n result.recommend_member_count = result.recommend_member_list.length;\r\n result.count_total = result.recommend_member_count;\r\n }\r\n\r\n\r\n this.sn = result.sn;\r\n this.member_count_recommend = result.recommend_member_count;\r\n this.member_count_recommend_passed = result.recommend_passed_member_count;\r\n this.member_list_recommend = result.recommend_member_list;\r\n this.member_list_recommend_passed = result.recommend_passed_member_list;\r\n this.has_more_recommend_member = result.has_more_recommend_member;\r\n this.has_more_recommend_passed_member = result.has_more_recommend_passed_member;\r\n\r\n this.recommend_member_count_total = result.count_total;\r\n this.recommend_member_count_week = result.count_current_week;\r\n this.recommend_member_count_month = result.count_current_month;\r\n\r\n this.reward_point_total = result.reward_point_total;\r\n\r\n this.initService.trigger(ActionName.PersonalStorage);\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.RecommendFriend);\r\n\r\n // this.has_more_recommend_member = true;\r\n // this.has_more_recommend_passed_member = true;\r\n });\r\n }\r\n\r\n /** 複製 */\r\n copyText(text: string): void {\r\n const selBox = document.createElement('textarea');\r\n selBox.style.position = 'fixed';\r\n selBox.style.left = '0';\r\n selBox.style.top = '0';\r\n selBox.style.opacity = '0';\r\n selBox.value = text;\r\n document.body.appendChild(selBox);\r\n selBox.focus();\r\n selBox.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(selBox);\r\n }\r\n selectElement(element: Element): void {\r\n const range = document.createRange();\r\n range.selectNode(element);\r\n const selection = window.getSelection();\r\n selection.removeAllRanges();\r\n selection.addRange(range);\r\n }\r\n copyLink(): void {\r\n this.copyText(this.recommendUrl);\r\n this.selectElement(this.recommendUrlElementRef.nativeElement);\r\n this.copyedState = true;\r\n }\r\n resetCopy(): void {\r\n this.copyedState = false;\r\n }\r\n\r\n /** 推薦會員 */\r\n getRegisterTimeText(ticks: number): string {\r\n return this.appCommonService.convertTimeTickToTimeText2(ticks);\r\n }\r\n\r\n openMoreRecommendMemberPopup(): void {\r\n const compRef = this.recommendMemberPopupOpenerService.openPopup('我的推薦', false);\r\n }\r\n openMoreRecommendPassedMemberPopup(): void {\r\n const compRef = this.recommendMemberPopupOpenerService.openPopup('審查成功', true);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
推薦方法
\r\n
\r\n
\r\n
\r\n
您的會員序號:
\r\n
{{sn}}
\r\n
立即通知好友,並提醒其申請會員時,填入它!
\r\n
\r\n
\r\n
\r\n \r\n
{{recommendUrl}}
\r\n
{{copyedState ? '已複製' : '複製'}}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
推薦歷史
\r\n
\r\n
\r\n
\r\n
我的推薦:
\r\n
{{member_count_recommend.toLocaleString()}}人
\r\n
\r\n
\r\n
\r\n
\r\n
{{member.nickname+'\\n申請日期 '+getRegisterTimeText(member.register_time)}}
\r\n
\r\n
更多
\r\n
\r\n
\r\n
審查成功:
\r\n
{{member_count_recommend_passed.toLocaleString()}}人
\r\n
\r\n
\r\n
\r\n
\r\n
{{member.nickname+'\\n申請日期 '+getRegisterTimeText(member.register_time)}}
\r\n
\r\n
更多
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
推薦成果
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
總共 - 推薦數量:
\r\n
{{recommend_member_count_total.toLocaleString()}}人
\r\n
\r\n
\r\n
本週 - 推薦數量:
\r\n
{{recommend_member_count_week.toLocaleString()}}人
\r\n
\r\n
\r\n
本月 - 推薦數量:
\r\n
{{recommend_member_count_month.toLocaleString()}}人
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
每 1 人 - 贈送獎勵點數+100
\r\n
每 10 人 - 加贈獎勵點數+200
\r\n
\r\n
您已獲得:
\r\n
{{reward_point_total.toLocaleString()}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ChildContentRecommendFriendComponent } from './child-content-recommend-friend.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { ShareButtonsModule } from 'ngx-sharebuttons/buttons';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n\r\n FormsModule,\r\n HttpClientModule, // (Required) for share counts\r\n ShareButtonsModule\r\n // ShareButtonsModule\r\n // ShareButtonsModule.forRoot()\r\n ],\r\n declarations: [ChildContentRecommendFriendComponent],\r\n exports: [ChildContentRecommendFriendComponent]\r\n})\r\nexport class ChildContentRecommendFriendModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n// import { MSizePopupPersonalConfigPopupModule } from \"../../../component/m-size-popup-personal-config-popup/m-size-popup-personal-config-popup.module\";\r\n\r\nimport { FilterTypesComponent } from 'projects/lwlib/src/filter-types/filter-types.component';\r\nimport { KeywordSearcherComponent } from 'projects/lwlib/src/keyword-searcher/keyword-searcher.component';\r\nimport { PageChangeModule } from 'projects/lwlib/src/page-change/page-change.module';\r\nimport { StorageTypesComponent } from 'projects/lwlib/src/storage-types/storage-types.component';\r\n\r\n// import { FilterPopupModule } from \"../../../component/filter-popup/filter-popup.module\";\r\nimport { PersonalConfigPopupModule } from 'projects/lwlib/src/personal-config-popup/personal-config-popup.module';\r\nimport { RightCallMenuModule } from 'projects/lwlib/src/right-call-menu/right-call-menu.module';\r\nimport { RenamePopupModule } from 'projects/lwlib/src/rename-popup/rename-popup.module';\r\nimport { DeleteConfirmPopupModule } from 'projects/lwlib/src/delete-confirm-popup/delete-confirm-popup.module';\r\nimport { DetailInfoClickWindowModule } from 'projects/lwlib/src/detail-info-click-window/detail-info-click-window.module';\r\nimport { ComposeSearchPopupModule } from 'projects/lwlib/src/compose-search-popup/compose-search-popup.module';\r\nimport { KeywordSearcherComposeSearchModule } from 'projects/lwlib/src/keyword-searcher-compose-search/keyword-searcher-compose-search.module';\r\nimport { CommentPopupModule } from 'projects/lwlib/src/comment-popup/comment-popup.module';\r\nimport { KeywordSearcherModule } from 'projects/lwlib/src/keyword-searcher/keyword-searcher.module';\r\nimport { LoadingIconModule } from 'projects/lwlib/src/loading-icon/loading-icon.module';\r\nimport { EditCategoryPopupModule } from 'projects/lwlib/src/edit-category-popup/edit-category-popup.module';\r\nimport { FilterPopupModule } from 'projects/lwlib/src/filter-popup/filter-popup.module';\r\nimport { PreviewWindowModule } from 'projects/lwlib/src/preview-window/preview-window.module';\r\nimport { CheckLightFilterPopupModule } from 'projects/lwlib/src/check-light-filter-popup/check-light-filter-popup.module';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n PageChangeModule,\r\n FilterPopupModule,\r\n RightCallMenuModule,\r\n RenamePopupModule,\r\n DeleteConfirmPopupModule,\r\n DetailInfoClickWindowModule,\r\n ComposeSearchPopupModule,\r\n KeywordSearcherComposeSearchModule,\r\n KeywordSearcherModule,\r\n CommentPopupModule,\r\n LoadingIconModule,\r\n EditCategoryPopupModule,\r\n PreviewWindowModule,\r\n CheckLightFilterPopupModule,\r\n ],\r\n\r\n declarations: [\r\n FilterTypesComponent,\r\n StorageTypesComponent\r\n ],\r\n\r\n exports: [\r\n FilterTypesComponent,\r\n KeywordSearcherModule,\r\n StorageTypesComponent,\r\n PageChangeModule,\r\n FilterPopupModule,\r\n PersonalConfigPopupModule,\r\n RightCallMenuModule,\r\n RenamePopupModule,\r\n DeleteConfirmPopupModule,\r\n DetailInfoClickWindowModule,\r\n ComposeSearchPopupModule,\r\n KeywordSearcherComposeSearchModule,\r\n CommentPopupModule,\r\n LoadingIconModule,\r\n EditCategoryPopupModule,\r\n PreviewWindowModule,\r\n ]\r\n})\r\nexport class ChildContentPersonalStorageCommonModule { }\r\n","import { Component, OnInit, ViewChild, OnDestroy, ElementRef } from '@angular/core';\r\nimport { ChildContent_PersonalStorageService } from './child-content-personal-storage.service';\r\nimport { PersonalConfigPopupService, CaseType, PersonalConfig } from 'projects/lwlib/src/personal-config-popup/personal-config-popup.service';\r\nimport { LoadingIconComponent } from 'projects/lwlib/src/loading-icon/loading-icon.component';\r\nimport { forkJoin } from 'rxjs';\r\nimport { SubscriptionGroup } from 'projects/lwlib/src/subscription-group';\r\nimport { InitService } from 'projects/lwlib/src/init/init.service';\r\nimport { ActionName } from 'projects/lwlib/src/action-name';\r\nimport { LoadingIconService } from 'projects/lwlib/src/loading-icon/loading-icon.service';\r\nimport { AppService } from '../../../app.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-child-content-personal-storage',\r\n templateUrl: './child-content-personal-storage.component.html',\r\n styleUrls: ['./child-content-personal-storage.component.scss'],\r\n // providers: [ChildContent_PersonalStorageService],\r\n})\r\n// tslint:disable-next-line:class-name\r\nexport class ChildContent_PersonalStorageComponent implements OnInit, OnDestroy {\r\n // @ViewChild(LoadingIconComponent) loginIcon: LoadingIconComponent;\r\n\r\n storageType: any = CaseType;\r\n selectedStorageType: CaseType;\r\n\r\n subscriptions: SubscriptionGroup = {};\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private personalConfigService: PersonalConfigPopupService,\r\n private personalStorageService: ChildContent_PersonalStorageService,\r\n private loadingIconService: LoadingIconService,\r\n private initService: InitService,\r\n private childContent_PersonalStorageService: ChildContent_PersonalStorageService,\r\n private service: AppService,\r\n ) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n // 註冊初始化事件\r\n this.initService.register({\r\n target: [\r\n [\r\n ActionName.PersonalStorageJudgment,\r\n ActionName.PersonalStorageLaw,\r\n ActionName.PersonalStorageJudicialInterpret,\r\n ]\r\n ],\r\n onComplete: () => {\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.PersonalStorage);\r\n\r\n this.initService.trigger(ActionName.PersonalStorage);\r\n }\r\n });\r\n // 設定倉庫種類切換訂閱\r\n this.subscriptions.selectedStorageType = this.personalStorageService.selectedStorageType$.subscribe(type => {\r\n this.selectedStorageType = type;\r\n // 開啟讀取畫面\r\n this.loadingIconService.openAreaLoadingIcon(ActionName.PersonalStorage, this.elementRef.nativeElement);\r\n\r\n // 註冊初始化事件\r\n this.initService.register({\r\n target: [\r\n [\r\n ActionName.PersonalStorageJudgment,\r\n ActionName.PersonalStorageLaw,\r\n ActionName.PersonalStorageJudicialInterpret,\r\n ]\r\n ],\r\n onComplete: () => {\r\n // 倉庫觸發初始化完成,關閉讀取動畫\r\n this.loadingIconService.closeAreaLoadingIcon(ActionName.PersonalStorage);\r\n }\r\n });\r\n });\r\n\r\n // 開啟讀取畫面\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.PersonalStorage);\r\n\r\n /** 取個人化設定 */\r\n if (this.service.IsGuest) {\r\n if (this.personalConfigService.personalConfig == null) {\r\n this.personalConfigService.personalConfig = new PersonalConfig();\r\n }\r\n this.personalStorageService.selectStorageType(this.personalConfigService.personalConfig.storageHome);\r\n } else {\r\n this.personalConfigService.pullPersonalConfigObserver().subscribe(v => {\r\n this.personalStorageService.selectStorageType(v.storageHome);\r\n // this.selectedStorageType = this.personalConfigService.personalConfig.storageHome;\r\n });\r\n }\r\n }\r\n ngOnDestroy(): void {\r\n this.childContent_PersonalStorageService.searchKeywords = [];\r\n SubscriptionGroup.unsubscribeAll(this.subscriptions);\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { JudgmentModule } from './judgment/judgment.module';\r\nimport { JudicialInterpretModule } from './judicial-interpret/judicial-interpret.module';\r\nimport { LawRuleModule } from './law-rule/law-rule.module';\r\nimport { LoadingIconModule } from 'projects/lwlib/src/loading-icon/loading-icon.module';\r\nimport { ChildContent_PersonalStorageComponent } from './child-content-personal-storage.component';\r\nimport { ChildContentPersonalStorageRoutingModule } from './child-content-personal-storage-routing.module';\r\nimport { PrintConfigPopupModule } from 'projects/lwlib/src/print-config-popup/print-config-popup.module';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { PrintPermissionPopupModule } from 'projects/lwlib/src/print-permission-popup/print-permission-popup.module';\r\nimport { PrintConfigLawRulePopupModule } from 'projects/lwlib/src/print-config-law-rule-popup/print-config-law-rule-popup.module';\r\nimport { PrintPermissionLawRulePopupModule } from 'projects/lwlib/src/print-permission-law-rule-popup/print-permission-law-rule-popup.module';\r\nimport { CheckLightDetailDataLawArticlePopupModule } from 'projects/lwlib/src/check-light-detail-data-law-article-popup/check-light-detail-data-law-article-popup.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n // RouterModule,\r\n JudgmentModule,\r\n JudicialInterpretModule,\r\n LawRuleModule,\r\n LoadingIconModule,\r\n\r\n // ChildContentPersonalStorageRoutingModule,\r\n PrintConfigPopupModule,\r\n PrintPermissionPopupModule,\r\n PrintConfigLawRulePopupModule,\r\n PrintPermissionLawRulePopupModule,\r\n MatDialogModule,\r\n CheckLightDetailDataLawArticlePopupModule,\r\n ],\r\n declarations: [\r\n ChildContent_PersonalStorageComponent\r\n ],\r\n exports: [\r\n ChildContent_PersonalStorageComponent\r\n ]\r\n})\r\nexport class ChildContentPersonalStorageModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, of, Subject, BehaviorSubject } from 'rxjs';\r\nimport { CaseType, PersonalConfigPopupService, OrderWayCourtLevel, OrderWayJudgDate, OrderWayEditDate } from 'projects/lwlib/src/personal-config-popup/personal-config-popup.service';\r\nimport { SearcherKeyword } from 'projects/lwlib/src/keyword-searcher/searcher-keyword';\r\nimport { SearcherKeywordKind } from 'projects/lwlib/src/keyword-searcher/searcher-keyword-kind';\r\nimport { Category } from 'projects/lwlib/src/category/category';\r\nimport { Subcategory } from 'projects/lwlib/src/category/subcategory';\r\nimport { StorageTab } from './storage-tab';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n// tslint:disable-next-line:class-name\r\nexport class ChildContent_PersonalStorageService {\r\n\r\n storageTab: { [key in keyof typeof CaseType]: StorageTab } = {\r\n Judgment: StorageTab.create(CaseType.Judgment),\r\n LawRule: StorageTab.create(CaseType.LawRule),\r\n JudicialInterpret: StorageTab.create(CaseType.JudicialInterpret),\r\n Indictment: null,\r\n };\r\n\r\n selectedStorageType: CaseType = CaseType.Judgment;\r\n selectedStorageType$: Subject = new Subject();\r\n // showLoadingIcon$: Subject = new Subject();\r\n\r\n searchKeywords: SearcherKeyword[] = [];\r\n isComposeSearch: boolean = false;\r\n\r\n\r\n constructor() {\r\n this.storageTab.Judgment.kindList = [\r\n SearcherKeywordKind.FileSubject,\r\n SearcherKeywordKind.PointSummary,\r\n SearcherKeywordKind.SummaryTag,\r\n SearcherKeywordKind.IssueSortOut,\r\n SearcherKeywordKind.IssueAnswer,\r\n SearcherKeywordKind.CaseTag,\r\n SearcherKeywordKind.Bookmark,\r\n SearcherKeywordKind.Comment,\r\n SearcherKeywordKind.ComposeSearch\r\n ];\r\n this.storageTab.LawRule.kindList = [\r\n SearcherKeywordKind.LawRuleName,\r\n SearcherKeywordKind.PointSummary,\r\n SearcherKeywordKind.SummaryTag,\r\n SearcherKeywordKind.Comment,\r\n SearcherKeywordKind.ComposeSearch,\r\n ];\r\n this.storageTab.JudicialInterpret.kindList = [\r\n SearcherKeywordKind.FileSubject,\r\n SearcherKeywordKind.PointSummary,\r\n SearcherKeywordKind.SummaryTag,\r\n SearcherKeywordKind.IssueSortOut,\r\n SearcherKeywordKind.IssueAnswer,\r\n SearcherKeywordKind.CaseTag,\r\n SearcherKeywordKind.Bookmark,\r\n SearcherKeywordKind.Comment,\r\n SearcherKeywordKind.ComposeSearch\r\n ];\r\n }\r\n isAllSearchKeywordEmpty(): boolean {\r\n return this.searchKeywords.every(s => !s.keyword);\r\n }\r\n selectStorageType(type: CaseType): void {\r\n if (this.selectedStorageType != null) {\r\n const currentTab: StorageTab = this.storageTab[CaseType[this.selectedStorageType]];\r\n const targetTab: StorageTab = this.storageTab[CaseType[type]];\r\n targetTab.enableSearchResultCount = false;\r\n targetTab.searchResultCount = 0;\r\n }\r\n\r\n\r\n this.selectedStorageType = type;\r\n this.selectedStorageType$.next(type);\r\n }\r\n\r\n // openLoadingIconFullScreen(): void {\r\n // this.showLoadingIcon$.next(true);\r\n // }\r\n // closeLoadingIcon(): void {\r\n // this.showLoadingIcon$.next(false);\r\n // }\r\n\r\n resetStorageTab(): void {\r\n this.storageTab.Judgment.resetData();\r\n this.storageTab.LawRule.resetData();\r\n this.storageTab.JudicialInterpret.resetData();\r\n }\r\n\r\n}\r\n","import { PropertyId } from 'projects/lwlib/src/case-type/property-id.enum';\r\nimport { LawRuleCaseRelate } from '../law-rule/law-rule-case-relate';\r\n\r\nexport class IndictmentCase {\r\n static caseTypePropertyId: { [name: string]: PropertyId } = {\r\n 起訴書: PropertyId.Indictment_Indictment,\r\n 追加起訴書: PropertyId.Indictment_AppendIndictment,\r\n 聲請簡易判決處刑書: PropertyId.Indictment_SimpleJudgment,\r\n 併辦意旨書: PropertyId.Indictment_MergeIntention,\r\n 移送併辦意旨書: PropertyId.Indictment_MergeIntention,\r\n 其他: PropertyId.Indictment_Other\r\n };\r\n sn: number;\r\n case_id: string;\r\n case_type: string;\r\n relate_law_rule_list: LawRuleCaseRelate[];\r\n get relate_law_rule_name_list() {\r\n return this.relate_law_rule_list.map(r => {\r\n return {\r\n name: r.name,\r\n list: r.list.map(rs => rs[1])\r\n };\r\n });\r\n }\r\n toPropertyId(): PropertyId {\r\n // return PropertyId.Indictment_Indictment;\r\n // return PropertyId['Indictment_Indictment'];\r\n return IndictmentCase.caseTypePropertyId[this.case_type];\r\n }\r\n}\r\n","export class IssueAddRequest {\r\n // 有note_id,優先取note_id,沒有才用case_id取自己note_id\r\n team_id: string;\r\n team_note_id: string;\r\n \r\n case_id: string;\r\n sn: number;\r\n issue_text: string;\r\n answer_text: string;\r\n}\r\n","import { Issue } from './issue';\r\n\r\nexport class IssueBlukRequest {\r\n // 有note_id,優先取note_id,沒有才用case_id取自己note_id\r\n team_id: string;\r\n team_note_id: string;\r\n\r\n case_id: string;\r\n list: Issue[];\r\n}\r\n","export class IssueDeleteRequest {\r\n // 有note_id,優先取note_id,沒有才用case_id取自己note_id\r\n team_id: string;\r\n team_note_id: string;\r\n \r\n case_id: string;\r\n\r\n // issue_id: string;\r\n sn: number;\r\n}\r\n","import { Issue } from './issue';\r\n\r\nexport class IssueEditRequest {\r\n // 有note_id,優先取note_id,沒有才用case_id取自己note_id\r\n team_id: string;\r\n team_note_id: string;\r\n \r\n case_id: string;\r\n issue: Issue;\r\n}\r\n","export class IssueLinkSummaryRequest {\r\n // 有note_id,優先取note_id,沒有才用case_id取自己note_id\r\n team_id: string;\r\n team_note_id: string;\r\n \r\n case_id: string;\r\n issue_id: string;\r\n summary_id: string;\r\n}\r\n","export class IssueOrderRequestData {\r\n sn: number;\r\n id: string;\r\n}\r\n","import { IssueOrderRequestData } from './issue-order-request-data';\r\n\r\nexport class IssueOrderRequest {\r\n // 有note_id,優先取note_id,沒有才用case_id取自己note_id\r\n team_id: string;\r\n team_note_id: string;\r\n \r\n case_id: string;\r\n order_list: IssueOrderRequestData[];\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef, OnDestroy, HostListener } from '@angular/core';\r\nimport { PersonalConfigPopupService, DisplayMode, CaseType, PersonalConfig } from 'projects/lwlib/src/personal-config-popup/personal-config-popup.service';\r\nimport { ChildContent_PersonalStorageService } from '../child-content-personal-storage.service';\r\nimport { SearcherKeywordKind } from 'projects/lwlib/src/keyword-searcher/searcher-keyword-kind';\r\nimport { SearcherKeyword } from 'projects/lwlib/src/keyword-searcher/searcher-keyword';\r\nimport { JudgmentService } from './judgment.service';\r\nimport { PageChangeComponent } from 'projects/lwlib/src/page-change/page-change.component';\r\nimport { KeywordSearcherComponent } from 'projects/lwlib/src/keyword-searcher/keyword-searcher.component';\r\nimport { EditCategoryPopupComponent } from 'projects/lwlib/src/edit-category-popup/edit-category-popup.component';\r\nimport { DetailInfoClickWindowComponent } from 'projects/lwlib/src/detail-info-click-window/detail-info-click-window.component';\r\nimport { forkJoin, of, Subscription, Observable } from 'rxjs';\r\nimport { map, delay, concatMap, tap } from 'rxjs/operators';\r\nimport { EditCategoryPopupService } from 'projects/lwlib/src/edit-category-popup/edit-category-popup.service';\r\nimport { SubscriptionGroup } from 'projects/lwlib/src/subscription-group';\r\nimport { FilterPopupOpenerService } from 'projects/lwlib/src/filter-popup/filter-popup-opener.service';\r\nimport { FilterTypesComponent } from 'projects/lwlib/src/filter-types/filter-types.component';\r\nimport { InitService } from 'projects/lwlib/src/init/init.service';\r\nimport { ActionName } from 'projects/lwlib/src/action-name';\r\nimport { LoadingIconService } from 'projects/lwlib/src/loading-icon/loading-icon.service';\r\nimport { LogPageId } from 'projects/lwlib/src/log-page/log-page-id.enum';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { BroadcastEventListener } from 'ng2-signalr';\r\nimport { PersonalConfigPopupOpenerService } from 'projects/lwlib/src/personal-config-popup/personal-config-popup-opener.service';\r\nimport { FilterPopupService, FilterPopupTabType, FilterPopupResult } from 'projects/lwlib/src/filter-popup/filter-popup.service';\r\nimport { Category } from 'projects/lwlib/src/category/category';\r\nimport { Subcategory } from 'projects/lwlib/src/category/subcategory';\r\nimport { ChooseKindItem } from 'projects/lwlib/src/choose-kind/choose-kind-item';\r\nimport { IndictmentService } from 'projects/lwlib/src/indictment/indictment.service';\r\nimport { CheckInJudgment } from 'projects/lwlib/src/check-in/check-in-judgment';\r\nimport { Guid } from 'projects/lwlib/src/guid';\r\nimport { CheckInDataJudgmentCase } from 'projects/lwlib/src/check-in/check-in-data-judgment-case';\r\nimport { JudgmentCase } from './judgment-case';\r\nimport { MaterialHelper } from 'projects/lwlib/src/material-helper';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { CheckLightDetailDataLawArticlePopupComponent } from 'projects/lwlib/src/check-light-detail-data-law-article-popup/check-light-detail-data-law-article-popup.component';\r\nimport { CheckLightFilterPopupComponent } from 'projects/lwlib/src/check-light-filter-popup/check-light-filter-popup.component';\r\nimport { CheckLightFilterConfig } from 'projects/lwlib/src/check-light-filter-popup/check-light-filter-config';\r\nimport { StorageTypesComponent } from 'projects/lwlib/src/storage-types/storage-types.component';\r\nimport { FilterCondition } from '../filter-condition';\r\nimport { JudgmentCaseList } from './judgment-case-list';\r\nimport { Serializable } from 'projects/lwlib/src/serializable';\r\nimport { PlanService } from 'projects/lwlib/src/plan/plan.service';\r\n\r\n\r\n\r\n\r\n/**\r\n * 裁判倉庫\r\n */\r\n@Component({\r\n selector: 'app-judgment',\r\n templateUrl: './judgment.component.html',\r\n styleUrls: ['./judgment.component.scss'],\r\n providers: [FilterPopupService, EditCategoryPopupService]\r\n})\r\nexport class JudgmentComponent implements OnInit, OnDestroy {\r\n @ViewChild(StorageTypesComponent, { static: true }) storageTypesComponent: StorageTypesComponent;\r\n @ViewChild(PageChangeComponent, { static: true }) pageChange: PageChangeComponent;\r\n @ViewChild(KeywordSearcherComponent, { static: true }) keywordSearcher: KeywordSearcherComponent;\r\n @ViewChild(DetailInfoClickWindowComponent) detailInfoClickWindow: DetailInfoClickWindowComponent;\r\n @ViewChild(FilterTypesComponent, { static: true }) filterTypesComponent: FilterTypesComponent;\r\n @ViewChild('listElement', { static: true }) listElement: ElementRef;\r\n\r\n get filterCondition(): FilterCondition { return this.judgmentService.filterCondition; }\r\n get check_in_button_text(): string {\r\n if (this.filterCondition.check_in_past_day <= 0 && this.filterCondition.check_in_status < 0) {\r\n return '燈號篩選';\r\n } else if (this.filterCondition.check_in_status === 1) {\r\n return `綠燈${(this.filterCondition.check_in_past_day <= 0 ? '' : `(過去 ${this.filterCondition.check_in_past_day} 天)`)}`;\r\n } else if (this.filterCondition.check_in_status === 2) {\r\n return `橘燈${(this.filterCondition.check_in_past_day <= 0 ? '' : `(過去 ${this.filterCondition.check_in_past_day} 天)`)}`;\r\n } else if (this.filterCondition.check_in_status === 3) {\r\n return `紅燈${(this.filterCondition.check_in_past_day <= 0 ? '' : `(過去 ${this.filterCondition.check_in_past_day} 天)`)}`;\r\n } else if (this.filterCondition.check_in_status === 0) {\r\n return `灰燈${(this.filterCondition.check_in_past_day <= 0 ? '' : `(過去 ${this.filterCondition.check_in_past_day} 天)`)}`;\r\n } else if (this.filterCondition.check_in_status < 0 && this.filterCondition.check_in_past_day > 0) {\r\n return `全部(過去 ${this.filterCondition.check_in_past_day} 天)`;\r\n }\r\n }\r\n\r\n displayMode: any = DisplayMode;\r\n get listDisplayMode(): DisplayMode { return this.personalConfigPopupService.personalConfig.displayMode; }\r\n\r\n inited: boolean = false;\r\n\r\n // 存量顯示\r\n showSaveLimit: boolean = true;\r\n\r\n // listElement: Element;\r\n // judgment: JudgmentComponent;\r\n\r\n get kindList(): SearcherKeywordKind[] {\r\n return this.childContent_PersonalStorageService.storageTab.Judgment.kindList;\r\n }\r\n kindAutocomplete: { [key: string]: (keyword: string) => Observable } = {\r\n FileSubject: (keyword: string) => this.suggestKeywordNoteTitle(keyword),\r\n CaseTag: (keyword: string) => this.suggestKeywordCaseTag(keyword),\r\n SummaryTag: (keyword: string) => this.suggestKeywordSummaryTag(keyword),\r\n };\r\n\r\n subscriptions: SubscriptionGroup = {};\r\n signalrListeners: { [key: string]: BroadcastEventListener } = {};\r\n\r\n listenClickEventList: ((ev: MouseEvent) => void)[] = [];\r\n removeListenClickEventList: ((ev: MouseEvent) => void)[] = [];\r\n\r\n isWaitCheckIn: boolean = false;\r\n get IsGuest(): boolean { return this.service.IsGuest; }\r\n\r\n constructor(\r\n // private editCategoryPopupService: EditCategoryPopupService,\r\n // private filterPopupService: FilterPopupService,\r\n private elementRef: ElementRef,\r\n public judgmentService: JudgmentService,\r\n private childContent_PersonalStorageService: ChildContent_PersonalStorageService,\r\n private personalConfigPopupService: PersonalConfigPopupService,\r\n private initService: InitService,\r\n private loadingIconService: LoadingIconService,\r\n private filterPopupOpenerService: FilterPopupOpenerService,\r\n public service: AppService,\r\n private personalConfigPopupOpenerService: PersonalConfigPopupOpenerService,\r\n private indictmentService: IndictmentService,\r\n private matDialog: MatDialog,\r\n public planService: PlanService,\r\n // private personalStorageService: ChildContent_PersonalStorageService,\r\n ) {\r\n // this.judgment = this;\r\n\r\n // this.filterCondition = new FilterCondition(\r\n // 20,\r\n // Category.allCategory,\r\n // Subcategory.allSubcategory,\r\n // this.personalConfigPopupService,\r\n // );\r\n }\r\n\r\n ngOnInit() {\r\n\r\n // console.log(this.keywordSearcher);\r\n // console.log(this.keywordSearcher.chooseKind);\r\n\r\n // 設定預設搜尋條件\r\n this.judgmentService.filterCondition = new FilterCondition();\r\n this.filterCondition.orderWayCourtLevel = this.personalConfigPopupService.personalConfig.orderWayCourtLevel;\r\n this.filterCondition.orderWayJudgDate = this.personalConfigPopupService.personalConfig.orderWayJudgDate;\r\n this.filterCondition.orderWayEditDate = this.personalConfigPopupService.personalConfig.orderWayEditDate;\r\n this.filterCondition.per_page_note_amount = 12;\r\n\r\n // 檢查是否要帶入其他頁面搜尋的關鍵字\r\n // console.log('import search keywords,', this.keywordSearcher);\r\n if (!this.childContent_PersonalStorageService.isAllSearchKeywordEmpty()) {\r\n const searchKeywords: SearcherKeyword[] = this.childContent_PersonalStorageService.searchKeywords;\r\n const kindList: SearcherKeywordKind[] = this.childContent_PersonalStorageService.storageTab.Judgment.kindList;\r\n this.filterCondition.searchKeywords = searchKeywords;\r\n\r\n // 設定是否組合查找\r\n if (this.childContent_PersonalStorageService.isComposeSearch) {\r\n this.keywordSearcher.searchedTemplate = this.keywordSearcher.composeTemplate;\r\n this.keywordSearcher.chooseKind.selectedKind = this.keywordSearcher.chooseKind.baseList[SearcherKeywordKind[SearcherKeywordKind.ComposeSearch]];\r\n // 設定符合種類的關鍵字\r\n for (let i = 0; i < searchKeywords.length; i++) {\r\n const searchKeyword = searchKeywords[i];\r\n if (kindList.some(k => k === searchKeyword.kind)) {\r\n this.keywordSearcher.searchedKeywords[i] = searchKeyword;\r\n }\r\n }\r\n } else {\r\n if (kindList.some(k => k === searchKeywords[0].kind)) {\r\n this.keywordSearcher.chooseKind.selectedKind = this.keywordSearcher.chooseKind.baseList[SearcherKeywordKind[searchKeywords[0].kind]];\r\n this.keywordSearcher.searchedKind = this.keywordSearcher.chooseKind.selectedKind;\r\n this.keywordSearcher.inputText.text = searchKeywords[0].keyword;\r\n this.keywordSearcher.searchedText = searchKeywords[0].keyword;\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n // 子元件設定\r\n\r\n // 類別項目篩選變動\r\n console.log(this.filterTypesComponent);\r\n this.filterTypesComponent.get_filterCondition = () => this.judgmentService.filterCondition;\r\n this.filterTypesComponent.open.subscribe((openType: FilterPopupTabType) => {\r\n console.log('open ft popup');\r\n\r\n const compomentRef = this.filterPopupOpenerService.openPopup(\r\n openType,\r\n this.judgmentService.filterCondition.category, // 已選擇的類別\r\n this.judgmentService.filterCondition.subcategory, // 已選擇的項目\r\n () => this.judgmentService.categoryList, // 類別清單\r\n () => this.judgmentService.subcategoryList, // 項目清單\r\n this.judgmentService.pullCategoryListObserver(), // 刷新類別清單\r\n this.judgmentService.pullSubcategoryListObserver() // 刷新項目清單\r\n );\r\n\r\n compomentRef.instance.submit.subscribe((result: FilterPopupResult) => {\r\n this.filterCondition.category = result.category;\r\n this.filterCondition.subcategory = result.subcategory;\r\n this.filterCondition.pageIndex = 1;\r\n this.pageChange.currentIndex = 1;\r\n this.pullNoteList();\r\n\r\n compomentRef.instance.closePopup();\r\n });\r\n });\r\n\r\n\r\n\r\n\r\n // 設定訂閱\r\n\r\n // 個人化設定變動\r\n this.subscriptions.personalConfig = this.personalConfigPopupService.personalConfig$.subscribe(personalConfig => {\r\n // 更新搜尋條件\r\n this.filterCondition.orderWayCourtLevel = this.personalConfigPopupService.personalConfig.orderWayCourtLevel;\r\n this.filterCondition.orderWayJudgDate = this.personalConfigPopupService.personalConfig.orderWayJudgDate;\r\n this.filterCondition.orderWayEditDate = this.personalConfigPopupService.personalConfig.orderWayEditDate;\r\n\r\n // 筆記清單拉條置頂\r\n // this.listDisplayMode = r.displayMode;\r\n this.listElement.nativeElement.scrollTo(0, 0);\r\n\r\n console.log(personalConfig);\r\n\r\n\r\n // 刷新筆記清單\r\n this.pullNoteList();\r\n });\r\n\r\n // 換頁器,設定每頁數量\r\n this.pageChange.perPageAmount = this.filterCondition.per_page_note_amount;\r\n\r\n // 換頁器,刷新\r\n this.subscriptions.pageRefresh = this.pageChange.refresh.subscribe(() => {\r\n this.listElement.nativeElement.scrollTo(0, 0);\r\n\r\n // 刷新筆記清單\r\n this.pullAllList();\r\n });\r\n\r\n // 換頁器,換頁\r\n this.subscriptions.pageChange = this.pageChange.clickGoToIndex$.subscribe(pageIndex => {\r\n // 更新搜尋條件\r\n this.filterCondition.pageIndex = pageIndex;\r\n\r\n // 筆記清單拉條置頂\r\n this.listElement.nativeElement.scrollTo(0, 0);\r\n\r\n // 刷新筆記清單\r\n this.pullNoteList();\r\n });\r\n\r\n // 筆記清單更新\r\n this.subscriptions.noteList = this.judgmentService.storageNoteList$.subscribe(list => {\r\n // 更新換頁器數量\r\n this.pageChange.update(\r\n this.judgmentService.storageNoteTotalCount,\r\n this.judgmentService.storageNoteTotalCount,\r\n this.filterCondition.per_page_note_amount\r\n );\r\n });\r\n\r\n // 訂閱即時同步接收\r\n const signlarConnSubscribe = this.service.onSignlarConnected.subscribe((connected: boolean) => {\r\n if (connected) {\r\n console.log('add signlar event');\r\n\r\n this.addListener('judgment/category').subscribe((v) => { this.judgmentService.pullCategoryListObserver().subscribe(); });\r\n this.addListener('judgment/category_delete').subscribe((v) => { this.judgmentService.updateNoteDataStorageByCategory(v.category); });\r\n this.addListener('judgment/category_edit').subscribe((v) => { this.judgmentService.updateNoteDataStorageByCategory(v.old_category); });\r\n this.addListener('judgment/subcategory').subscribe((v) => { this.judgmentService.pullSubcategoryListObserver().subscribe(); });\r\n this.addListener('judgment/subcategory_delete').subscribe((v) => { this.judgmentService.updateNoteDataStorageBySubcategory(v.category, v.subcategory); });\r\n this.addListener('judgment/subcategory_edit').subscribe((v) => { this.judgmentService.updateNoteDataStorageBySubcategory(v.category, v.old_subcategory); });\r\n this.addListener('judgment/note').subscribe((v) => { this.judgmentService.updateNoteDataStorage(v.case_id); });\r\n this.addListener('judgment/case_tag').subscribe((v) => { this.judgmentService.updateNoteDataStorage(v.case_id); });\r\n this.addListener('indictment/note').subscribe((v) => { this.indictmentService.updateNoteDataStorageToList(this.judgmentService.storageNoteList, v.case_id); });\r\n this.addListener('indictment/case_tag').subscribe((v) => { this.indictmentService.updateNoteDataStorageToList(this.judgmentService.storageNoteList, v.case_id); });\r\n\r\n setTimeout(() => { signlarConnSubscribe.unsubscribe(); }, 0);\r\n }\r\n });\r\n\r\n // 更新方案狀態\r\n const planStatus$ = of(1)\r\n .pipe(\r\n concatMap(() => {\r\n if (this.service.IsGuest) {\r\n return of(1);\r\n } else {\r\n return this.pullPlanStatus();\r\n }\r\n }),\r\n );\r\n\r\n\r\n // 開始抓取\r\n // 先抓類別項目清單\r\n of(1)\r\n .pipe(\r\n concatMap(() => this.service.refreshLoginStatus()),\r\n concatMap(() => planStatus$),\r\n concatMap(() => this.judgmentService.pullSaveStatusObserver()),\r\n concatMap(() => this.judgmentService.pullCategoryListObserver()),\r\n concatMap(() => this.judgmentService.pullSubcategoryListObserver()),\r\n concatMap(() => this.judgmentService.pullStorageNoteListObserver(this.filterCondition)),\r\n concatMap(() => {\r\n this.setupStorageList();\r\n return of(true).pipe(delay(1));\r\n }),\r\n ).subscribe({\r\n complete: () => {\r\n /** 項目排序,已經在S先做好了 */\r\n // 觸發完成\r\n this.initService.trigger(ActionName.PersonalStorageJudgment);\r\n }\r\n });\r\n\r\n // 基本功能部份初始化結束\r\n this.service.log(LogPageId.PersonalStorageJudgment, '', '');\r\n this.inited = true;\r\n }\r\n ngOnDestroy(): void {\r\n // console.log('judgment comp destory');\r\n SubscriptionGroup.unsubscribeAll(this.subscriptions);\r\n this.clearListener();\r\n }\r\n\r\n /** 增加即時同步監聽 */\r\n addListener(name: string): BroadcastEventListener {\r\n this.signalrListeners[name] = this.service.addGetSignlaRSystemListener(name);\r\n return this.signalrListeners[name];\r\n }\r\n /** 清除即時同步監聽 */\r\n clearListener(): void {\r\n Object.keys(this.signalrListeners)\r\n .forEach(key => {\r\n this.service.removeSignalrListener(key);\r\n });\r\n }\r\n\r\n\r\n\r\n updateCheckInCaseObserver(case_id: string): Observable {\r\n return this.judgmentService.getCheckInDataCaseObserver(case_id);\r\n }\r\n checkIn(note: JudgmentCase, status: number): void {\r\n if (!note.checkIn.enableCheckIn || note.checkIn.isWaitCheckIn || this.isWaitCheckIn) { return; }\r\n\r\n this.isWaitCheckIn = true;\r\n note.checkIn.isWaitCheckIn = true;\r\n\r\n let checkInObserver = this.judgmentService.checkInObserver(note.case_id, status);\r\n let getCheckInDataCaseObserver = this.judgmentService.getCheckInDataCaseObserver(note.case_id);\r\n\r\n if (note.case_base === 'indictment') {\r\n checkInObserver = this.judgmentService.checkInIndictmentObserver(note.case_id, status);\r\n getCheckInDataCaseObserver = this.judgmentService.getCheckInDataIndictmentCaseObserver(note.case_id);\r\n }\r\n\r\n const subsc = checkInObserver\r\n .pipe(\r\n concatMap(() => getCheckInDataCaseObserver),\r\n tap((data: CheckInDataJudgmentCase) => {\r\n note.check_in_data = data;\r\n this.setupNoteCheckIn(note);\r\n })\r\n ).subscribe({\r\n complete: () => {\r\n note.checkIn.isWaitCheckIn = false;\r\n this.isWaitCheckIn = false;\r\n subsc.unsubscribe();\r\n }\r\n });\r\n }\r\n openCheckInDetailDataPopup(note: JudgmentCase): void {\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n CheckLightDetailDataLawArticlePopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '380px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n const c = dlRef.componentInstance;\r\n // c.selectedCountPastDay = checkInLawArticle.count_past_day;\r\n c.updateCheckInDataSystem = (countPastDay: number) => {\r\n if (c.isLoading || note.checkIn.isWaitLoadingData) { return; }\r\n\r\n note.checkIn.count_past_day = countPastDay;\r\n note.checkIn.isWaitLoadingData = true;\r\n c.isLoading = true;\r\n\r\n let getCheckInDataCaseObserver = this.judgmentService.getCheckInDataCaseObserver(\r\n note.case_id,\r\n note.checkIn.count_past_day\r\n );\r\n if (note.case_base === 'indictment') {\r\n getCheckInDataCaseObserver = this.judgmentService.getCheckInDataIndictmentCaseObserver(\r\n note.case_id,\r\n note.checkIn.count_past_day\r\n );\r\n }\r\n\r\n\r\n\r\n // 從service取打卡資料\r\n const subsc = getCheckInDataCaseObserver\r\n .pipe(\r\n tap(data => {\r\n if (data.log && data.log.length > 0) {\r\n data.log.forEach(l => {\r\n l.time = new Date(l.time);\r\n });\r\n }\r\n }),\r\n tap(data => {\r\n note.checkIn.updateFromDataCase(data);\r\n c.checkInCount = note.checkIn.total_count;\r\n c.log = note.checkIn.log;\r\n })\r\n )\r\n .subscribe({\r\n complete: () => {\r\n note.checkIn.isWaitLoadingData = false;\r\n c.isLoading = false;\r\n subsc.unsubscribe();\r\n }\r\n });\r\n };\r\n c.updateCheckInDataSystem(c.selectedCountPastDay);\r\n }\r\n\r\n\r\n setupNoteCheckIn(note: JudgmentCase): void {\r\n if (note.check_in_data) {\r\n if (note.check_in_data.log) {\r\n note.check_in_data.log.forEach(l => {\r\n l.time = new Date(l.time);\r\n });\r\n }\r\n\r\n if (note.checkIn == null) {\r\n note.checkIn = new CheckInJudgment();\r\n note.checkInMenuId = Guid.newGuid();\r\n note.checkInButtonId = Guid.newGuid();\r\n\r\n note.checkIn.onCheckIn = (status: number) => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n this.checkIn(note, status);\r\n };\r\n note.registeCheckInMenuClickEvent = (ev) => {\r\n if (note.checkInMenuElement != null\r\n && note.checkInButtonElement != null\r\n && !this.checkCursorClickTarget(ev, note.checkInMenuElement)\r\n && !this.checkCursorClickTarget(ev, note.checkInButtonElement)\r\n ) {\r\n note.showCheckInMenu = false;\r\n note.onCheckInMenuHide();\r\n }\r\n };\r\n note.onCheckInMenuShow = () => {\r\n setTimeout(() => {\r\n this.listenClickEvent(note.registeCheckInMenuClickEvent);\r\n }, 0);\r\n };\r\n note.onCheckInMenuHide = () => {\r\n this.removeClickEventListenter(note.registeCheckInMenuClickEvent);\r\n // this.removeListenClickEventList.push(block.registeCheckInMenuClickEvent);\r\n };\r\n note.onOpenCheckInDetailDataPopup = () => {\r\n this.openCheckInDetailDataPopup(note);\r\n // this.openCheckInDetailDataLawArticlePopup(cila);\r\n };\r\n }\r\n\r\n note.checkIn.updateFromDataCase(note.check_in_data);\r\n note.checkInStatusClassName = 'gray';\r\n if (CheckInJudgment.statusClassNameDict[note.check_in_data.last_check_in_status]) {\r\n note.checkInStatusClassName = CheckInJudgment.statusClassNameDict[note.check_in_data.last_check_in_status];\r\n }\r\n note.checkInTotalCount = note.check_in_data.total_check_in_count;\r\n }\r\n }\r\n setupStorageList(): void {\r\n this.judgmentService.storageNoteList.forEach((note: JudgmentCase) => {\r\n this.setupNoteCheckIn(note);\r\n });\r\n }\r\n\r\n pullPlanStatus(): Observable {\r\n return this.planService.pullPlanStatus()\r\n .pipe(tap(() => {\r\n this.showSaveLimit = this.planService.planStatus.plan_type != '4';\r\n }));\r\n }\r\n pullAllList(): void {\r\n // // 刷新筆記清單\r\n // this.loadingIconService.openAreaLoadingIcon(ActionName.PersonalStorageJudgment, this.elementRef.nativeElement);\r\n // const rfs = forkJoin(\r\n // this.judgmentService.pullCategoryListObserver(),\r\n // this.judgmentService.pullSubcategoryListObserver(),\r\n // this.judgmentService.pullStorageNoteListObserver(this.filterCondition)\r\n // ).subscribe({\r\n // complete: () => {\r\n // this.loadingIconService.closeAreaLoadingIcon(ActionName.PersonalStorageJudgment);\r\n // rfs.unsubscribe();\r\n // }\r\n // });\r\n\r\n this.loadingIconService.openAreaLoadingIcon(ActionName.PersonalStorageJudgment, this.elementRef.nativeElement);\r\n const rfs = of(1)\r\n .pipe(\r\n concatMap(() => this.pullPlanStatus()),\r\n concatMap(() => this.judgmentService.pullSaveStatusObserver()),\r\n concatMap(() => this.judgmentService.pullCategoryListObserver()),\r\n concatMap(() => this.judgmentService.pullSubcategoryListObserver()),\r\n concatMap(() => this.judgmentService.pullStorageNoteListObserver(this.filterCondition)),\r\n ).subscribe({\r\n complete: () => {\r\n this.setupStorageList();\r\n /** 項目排序,已經在S先做好了 */\r\n // 觸發完成\r\n this.loadingIconService.closeAreaLoadingIcon(ActionName.PersonalStorageJudgment);\r\n rfs.unsubscribe();\r\n }\r\n });\r\n }\r\n\r\n pullNoteList(): void {\r\n // this.loadingIconService.openAreaLoadingIcon(ActionName.PersonalStorageJudgment, this.elementRef.nativeElement);\r\n // this.judgmentService.pullStorageNoteListObserver(this.filterCondition).subscribe(list => {\r\n // this.loadingIconService.closeAreaLoadingIcon(ActionName.PersonalStorageJudgment);\r\n // });\r\n\r\n this.loadingIconService.openAreaLoadingIcon(ActionName.PersonalStorageJudgment, this.elementRef.nativeElement);\r\n this.pullNoteListObserver().subscribe({\r\n complete: () => {\r\n this.loadingIconService.closeAreaLoadingIcon(ActionName.PersonalStorageJudgment);\r\n }\r\n });\r\n // const rfs = of(1)\r\n // .pipe(\r\n // concatMap(() => {\r\n // // this.storageTypesComponent.storageTab.LawRule.enableSearchResultCount = true;\r\n // // this.storageTypesComponent.storageTab.JudicialInterpret.enableSearchResultCount = true;\r\n // // if (!this.filterCondition.isAllSearchKeywordEmpty()) {\r\n // // // this.storageTypesComponent.storageTab.LawRule.isSearching = true;\r\n // // // this.storageTypesComponent.storageTab.JudicialInterpret.isSearching = true;\r\n // // }\r\n // return of(1).pipe(delay(1));\r\n // }),\r\n // concatMap(() => this.judgmentService.pullStorageNoteListObserver(this.filterCondition)),\r\n // concatMap((judgmentCaseList: JudgmentCaseList) => {\r\n // // this.storageTypesComponent.storageTab.LawRule.searchResultCount = Math.floor(Math.random() * 9999);\r\n // // this.storageTypesComponent.storageTab.JudicialInterpret.searchResultCount = Math.floor(Math.random() * 9999);\r\n // if (!this.filterCondition.isAllSearchKeywordEmpty()) {\r\n // const lawRuleTab = this.storageTypesComponent.storageTab.LawRule;\r\n // const judicialInterpretTab = this.storageTypesComponent.storageTab.JudicialInterpret;\r\n // const caseList = judgmentCaseList;\r\n\r\n // this.childContent_PersonalStorageService.searchKeywords = this.filterCondition.searchKeywords;\r\n // this.childContent_PersonalStorageService.isComposeSearch = this.keywordSearcher.searchedTemplate === this.keywordSearcher.composeTemplate;\r\n\r\n // lawRuleTab.enableSearchResultCount = false;\r\n // lawRuleTab.searchResultCount = 0;\r\n // lawRuleTab.hasSearchResult = false;\r\n // judicialInterpretTab.enableSearchResultCount = false;\r\n // judicialInterpretTab.searchResultCount = 0;\r\n // judicialInterpretTab.hasSearchResult = false;\r\n\r\n // // 檢查關鍵字搜尋種類有沒有在法規關鍵字種類中\r\n // if (\r\n // this.childContent_PersonalStorageService.searchKeywords\r\n // .filter(s => s.keyword != null && s.keyword.length > 0)\r\n // .every(sk => lawRuleTab.kindList.some(kk => kk === sk.kind))\r\n // ) {\r\n // lawRuleTab.enableSearchResultCount = true;\r\n // lawRuleTab.isSearching = false;\r\n // lawRuleTab.searchResultCount = caseList.type_count[CaseType[CaseType.LawRule]];\r\n // lawRuleTab.hasSearchResult = (lawRuleTab.searchResultCount > 0);\r\n // }\r\n\r\n // if (\r\n // this.childContent_PersonalStorageService.searchKeywords\r\n // .filter(s => s.keyword != null && s.keyword.length > 0)\r\n // .every(sk => judicialInterpretTab.kindList.some(kk => kk === sk.kind))\r\n // ) {\r\n // judicialInterpretTab.enableSearchResultCount = true;\r\n // judicialInterpretTab.isSearching = false;\r\n // judicialInterpretTab.searchResultCount = caseList.type_count[CaseType[CaseType.JudicialInterpret]];\r\n // judicialInterpretTab.hasSearchResult = (judicialInterpretTab.searchResultCount > 0);\r\n // }\r\n // }\r\n // return of(1).pipe(delay(1));\r\n // }),\r\n // // concatMap(() => {\r\n // // return of(1).pipe(delay(1));\r\n // // })\r\n // ).subscribe({\r\n // complete: () => {\r\n // this.setupStorageList();\r\n // /** 項目排序,已經在S先做好了 */\r\n // // 觸發完成\r\n // this.loadingIconService.closeAreaLoadingIcon(ActionName.PersonalStorageJudgment);\r\n // rfs.unsubscribe();\r\n // }\r\n // });\r\n\r\n\r\n }\r\n pullNoteListObserver(): Observable {\r\n return of(1)\r\n .pipe(\r\n concatMap(() => of(1).pipe(delay(1))),\r\n concatMap(() => this.judgmentService.pullStorageNoteListObserver(this.filterCondition)),\r\n concatMap((judgmentCaseList: JudgmentCaseList) => {\r\n if (!this.filterCondition.isAllSearchKeywordEmpty()) {\r\n const lawRuleTab = this.storageTypesComponent.storageTab.LawRule;\r\n const judicialInterpretTab = this.storageTypesComponent.storageTab.JudicialInterpret;\r\n const caseList = judgmentCaseList;\r\n\r\n this.childContent_PersonalStorageService.searchKeywords = this.filterCondition.searchKeywords;\r\n this.childContent_PersonalStorageService.isComposeSearch = this.keywordSearcher.searchedTemplate === this.keywordSearcher.composeTemplate;\r\n\r\n lawRuleTab.enableSearchResultCount = false;\r\n lawRuleTab.searchResultCount = 0;\r\n lawRuleTab.hasSearchResult = false;\r\n judicialInterpretTab.enableSearchResultCount = false;\r\n judicialInterpretTab.searchResultCount = 0;\r\n judicialInterpretTab.hasSearchResult = false;\r\n\r\n // 檢查關鍵字搜尋種類有沒有在法規關鍵字種類中\r\n if (\r\n this.childContent_PersonalStorageService.searchKeywords\r\n .filter(s => s.keyword != null && s.keyword.length > 0)\r\n .every(sk => lawRuleTab.kindList.some(kk => kk === sk.kind))\r\n ) {\r\n lawRuleTab.enableSearchResultCount = true;\r\n lawRuleTab.isSearching = false;\r\n lawRuleTab.searchResultCount = caseList.type_count[CaseType[CaseType.LawRule]];\r\n lawRuleTab.hasSearchResult = (lawRuleTab.searchResultCount > 0);\r\n }\r\n\r\n if (\r\n this.childContent_PersonalStorageService.searchKeywords\r\n .filter(s => s.keyword != null && s.keyword.length > 0)\r\n .every(sk => judicialInterpretTab.kindList.some(kk => kk === sk.kind))\r\n ) {\r\n judicialInterpretTab.enableSearchResultCount = true;\r\n judicialInterpretTab.isSearching = false;\r\n judicialInterpretTab.searchResultCount = caseList.type_count[CaseType[CaseType.JudicialInterpret]];\r\n judicialInterpretTab.hasSearchResult = (judicialInterpretTab.searchResultCount > 0);\r\n }\r\n }\r\n return of(1).pipe(delay(1));\r\n }),\r\n concatMap(() => {\r\n this.setupStorageList();\r\n return of(1).pipe(delay(1));\r\n })\r\n );\r\n }\r\n\r\n /** 0:檢查中, 1:有筆記, 2:沒筆記 */\r\n checkNoteList(): number {\r\n if (this.judgmentService.storageNoteList == null) {\r\n return 0;\r\n } else if (this.judgmentService.storageNoteTotalCount > 0) {\r\n return 1;\r\n } else if (this.filterCondition.searchKeywords.find(v => v.keyword && v.keyword.length > 0) != null) {\r\n return 0;\r\n } else if (this.judgmentService.storageNoteList.length === 0\r\n && !this.disableAllClearButton()) {\r\n return 3;\r\n } else {\r\n return 2;\r\n }\r\n }\r\n\r\n clearSearchKeywords(): void {\r\n const hasSearched: boolean = this.filterCondition.searchKeywords.filter(a => a.keyword).length > 0;\r\n this.filterCondition.clearSearchKeywords();\r\n\r\n this.childContent_PersonalStorageService.searchKeywords = [];\r\n this.childContent_PersonalStorageService.isComposeSearch = false;\r\n this.storageTypesComponent.storageTab.LawRule.enableSearchResultCount = false;\r\n this.storageTypesComponent.storageTab.LawRule.searchResultCount = 0;\r\n this.storageTypesComponent.storageTab.JudicialInterpret.enableSearchResultCount = false;\r\n this.storageTypesComponent.storageTab.JudicialInterpret.searchResultCount = 0;\r\n\r\n if (hasSearched) {\r\n this.filterCondition.pageIndex = 1;\r\n this.pageChange.currentIndex = 1;\r\n this.pullNoteList();\r\n }\r\n }\r\n updateKeywordSearcherToFilterCondition(results: SearcherKeyword[]) {\r\n\r\n const _keywords: SearcherKeyword[] = [];\r\n results.forEach(kw => {\r\n const kwObject = JSON.parse(JSON.stringify(kw));\r\n const cloneSearchKeyword = Serializable.extend(new SearcherKeyword(), kwObject);\r\n\r\n let keyword = cloneSearchKeyword.keyword;\r\n if (keyword && keyword.match(/^【.+】$/)) {\r\n keyword = keyword.match(/^【(.+)】$/)[1];\r\n }\r\n cloneSearchKeyword.keyword = keyword;\r\n\r\n _keywords.push(cloneSearchKeyword);\r\n });\r\n\r\n this.filterCondition.searchKeywords = _keywords;\r\n this.filterCondition.pageIndex = 1;\r\n this.pageChange.currentIndex = 1;\r\n this.pullNoteList();\r\n }\r\n\r\n\r\n // applySearchFilter(): void {\r\n // this.filterCondition.gotoPage(1);\r\n // this.pageChange.goToPageSlient(1);\r\n // this.applyFilter();\r\n // }\r\n // applyFilter(refresh: boolean = false): void {\r\n // this.listElement.nativeElement.scrollTo(0, 0);\r\n // if (refresh) {\r\n // this.judgmentService.pullCategoryList();\r\n // this.judgmentService.pullSubcategoryList();\r\n // }\r\n // this.pullNoteList();\r\n // }\r\n\r\n disableAllClearButton(): boolean {\r\n if (this.filterCondition.category !== Category.allCategory\r\n || this.filterCondition.subcategory !== Subcategory.allSubcategory\r\n || this.filterCondition.check_in_past_day !== 0\r\n || this.filterCondition.check_in_status !== -1\r\n ) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n allClear(): void {\r\n this.filterCondition.category = Category.allCategory;\r\n this.filterCondition.subcategory = Subcategory.allSubcategory;\r\n this.filterCondition.check_in_past_day = 0;\r\n this.filterCondition.check_in_status = -1;\r\n this.filterCondition.clearSearchKeywords();\r\n this.filterCondition.pageIndex = 1;\r\n this.pageChange.currentIndex = 1;\r\n this.keywordSearcher.clickClear();\r\n this.pullNoteList();\r\n\r\n // this.keywordSearcher.reset();\r\n // this.filterCondition.selectCategory(Category.allCategory);\r\n // this.filterCondition.selectSubcategory(Subcategory.allSubcategory);\r\n // this.filterCondition.clearSearchKeywords();\r\n // this.keywordSearcher.reset();\r\n // this.applySearchFilter();\r\n\r\n // this.applySearchFilter();\r\n }\r\n\r\n\r\n // openFilterPopup(type: FilterPopupTabType): void {\r\n // const componentRef = this.filterPopupOpenerService.openPopup(\r\n // this.judgmentService,\r\n // // this.judgmentService.categoryList,\r\n // // this.judgmentService.subcategoryList,\r\n // // this.judgmentService.categoryList$,\r\n // // this.judgmentService.subcategoryList$,\r\n // // this.judgmentService.pullCategoryList,\r\n // // this.judgmentService.pullSubcategoryList,\r\n // type,\r\n // this.filterCondition\r\n // );\r\n\r\n // componentRef.instance.submit.subscribe((filterPopupResult: FilterPopupResult) => {\r\n // this.updateFilterPopupResultToFilterCondition(filterPopupResult);\r\n // });\r\n // }\r\n\r\n\r\n openPersonalConfigPopup(): void {\r\n const componentRef = this.personalConfigPopupOpenerService.openPopup();\r\n componentRef.instance.confirm.subscribe((cfg: PersonalConfig) => {\r\n // console.log('save personal config');\r\n if (this.IsGuest) {\r\n this.personalConfigPopupService.personalConfig = Object.assign(new PersonalConfig(), cfg);\r\n componentRef.instance.closePopup();\r\n }\r\n else {\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.PersonalStorage);\r\n this.personalConfigPopupService.pushPersonalConfigObserver(cfg)\r\n .pipe(\r\n concatMap(v => this.personalConfigPopupService.pullPersonalConfigObserver()),\r\n tap(() => {\r\n componentRef.instance.closePopup();\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.PersonalStorage);\r\n return of(1).pipe(delay(1));\r\n }),\r\n )\r\n .subscribe();\r\n }\r\n });\r\n }\r\n openCheckInFilterPopup(): void {\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n CheckLightFilterPopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '480px',\r\n // maxWidth: '500px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n\r\n const c = dlRef.componentInstance;\r\n const checkLightConfig: CheckLightFilterConfig = new CheckLightFilterConfig();\r\n checkLightConfig.day_range = this.filterCondition.check_in_past_day;\r\n if (this.filterCondition.check_in_status < 0) {\r\n Object.keys(checkLightConfig.show_status).forEach(key => {\r\n checkLightConfig.show_status[key] = true;\r\n });\r\n } else {\r\n Object.keys(checkLightConfig.show_status).forEach(key => {\r\n checkLightConfig.show_status[key] = false;\r\n });\r\n checkLightConfig.show_status[this.filterCondition.check_in_status] = true;\r\n }\r\n c.setupConfig(checkLightConfig);\r\n c.onConfirmFilter = (config: CheckLightFilterConfig) => {\r\n this.filterCondition.check_in_past_day = config.day_range;\r\n if (Object.values(config.show_status).every(v => v)) {\r\n this.filterCondition.check_in_status = -1;\r\n } else {\r\n this.filterCondition.check_in_status = parseInt(Object.entries(config.show_status).find(v => v[1])[0], 10);\r\n }\r\n\r\n this.filterCondition.pageIndex = 1;\r\n this.pageChange.currentIndex = 1;\r\n this.pullNoteList();\r\n };\r\n }\r\n\r\n updateEnableSuggestion(kind: ChooseKindItem): void {\r\n\r\n }\r\n\r\n\r\n\r\n suggestKeywordNoteTitle(keyword: string): Observable {\r\n return this.judgmentService.getSuggestionNoteTitleObserver(keyword);\r\n }\r\n suggestKeywordCaseTag(keyword: string): Observable {\r\n return this.judgmentService.getSuggestionCaseTagObserver(keyword);\r\n }\r\n suggestKeywordSummaryTag(keyword: string): Observable {\r\n return this.judgmentService.getSuggestionSummaryTagObserver(keyword);\r\n }\r\n\r\n\r\n\r\n\r\n checkCursorClickTarget(ev: any, element: Element): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a === element;\r\n });\r\n }\r\n listenClickEvent(func: (ev: MouseEvent) => void): void {\r\n this.listenClickEventList.push(func);\r\n }\r\n removeClickEventListenter(func: (ev: MouseEvent) => void): void {\r\n this.removeListenClickEventList.push(func);\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n checkOnClick(ev: MouseEvent): void {\r\n // alert('event:' + ev.type);\r\n for (const rev of this.removeListenClickEventList) {\r\n this.listenClickEventList = this.listenClickEventList.filter(v => v !== rev);\r\n }\r\n this.removeListenClickEventList = [];\r\n for (const cev of this.listenClickEventList) {\r\n cev(ev);\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n requestSampleNote(): void {\r\n if (this.judgmentService.storageNoteTotalCount > 0) {\r\n return;\r\n }\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.CopyNote);\r\n this.judgmentService.requestSampleNoteJudgment()\r\n .pipe(\r\n concatMap(() => this.judgmentService.pullSaveStatusObserver()),\r\n concatMap(() => this.judgmentService.pullCategoryListObserver()),\r\n concatMap(() => this.judgmentService.pullSubcategoryListObserver()),\r\n concatMap(() => this.judgmentService.pullStorageNoteListObserver(this.filterCondition)),\r\n )\r\n .subscribe({\r\n complete: () => {\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.CopyNote);\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
{{check_in_button_text}}
\r\n
\r\n
\r\n
全部清除
\r\n
\r\n
\r\n
個人化設定
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n 案件存量\r\n 存量無限\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 目前:{{judgmentService.saveStatus.judgment_note_save_current}} / 無限\r\n
\r\n
\r\n 目前:{{judgmentService.saveStatus.judgment_note_save_current}} /\r\n 上限:{{judgmentService.saveStatus.getJudgmentNoteSaveMaxString()}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n 所有摘要\r\n 摘要無限\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 目前:{{judgmentService.saveStatus.total_summary_save_current}} / 無限
\r\n
\r\n 目前:{{judgmentService.saveStatus.total_summary_save_current}} /\r\n 上限:{{judgmentService.saveStatus.getTotalSummarySaveMaxString()}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
尚未收存任何案件
\r\n \r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { ChildContentPersonalStorageCommonModule } from '../child-content-personal-storage-common.module';\r\n\r\nimport { JudgmentComponent } from './judgment.component';\r\nimport { ListFullComponent } from './list-full/list-full.component';\r\nimport { ListSimpleComponent } from './list-simple/list-simple.component';\r\nimport { PipeHighlightModule } from 'projects/lwlib/src/pipe-highlight/pipe-highlight.module';\r\nimport { DetailInfoClickWindowService } from 'projects/lwlib/src/detail-info-click-window/detail-info-click-window.service';\r\nimport { SummaryWindowModule } from 'projects/lwlib/src/summary-window/summary-window.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ChildContentPersonalStorageCommonModule,\r\n SummaryWindowModule,\r\n PipeHighlightModule,\r\n ],\r\n declarations: [\r\n JudgmentComponent,\r\n ListFullComponent,\r\n ListSimpleComponent\r\n ],\r\n exports: [\r\n JudgmentComponent\r\n ],\r\n providers: [\r\n DetailInfoClickWindowService\r\n ]\r\n})\r\nexport class JudgmentModule { }\r\n","import { Component, OnInit, Input, ViewChild, OnDestroy, Output, EventEmitter } from '@angular/core';\r\nimport { DetailInfoClickWindowComponent } from 'projects/lwlib/src/detail-info-click-window/detail-info-click-window.component';\r\nimport { JudgmentCase } from '../judgment-case';\r\nimport { JudgmentService } from '../judgment.service';\r\nimport { AppCommonService } from 'projects/desktop/src/app/app-common.service';\r\nimport { JudgmentProperty } from '../judgment-property';\r\nimport { Issue } from '../issue';\r\nimport { SummaryTypeItem } from '../summary-type-item';\r\nimport { NoteSummaryListType } from '../note-summary-list-type';\r\nimport { SummaryTypeId } from '../summary-type-id.enum';\r\nimport { BookmarkType } from '../bookmark-type';\r\nimport { SearcherKeywordKind } from 'projects/lwlib/src/keyword-searcher/searcher-keyword-kind';\r\nimport { EditCategoryTabId } from 'projects/lwlib/src/edit-category-popup/edit-category-tab-id';\r\nimport { DeleteConfirmPopupOpenerService } from 'projects/lwlib/src/delete-confirm-popup/delete-confirm-popup-opener.service';\r\nimport { EditCategoryPopupOpenerService } from 'projects/lwlib/src/edit-category-popup/edit-category-popup-opener.service';\r\nimport { CaseType } from 'projects/lwlib/src/personal-config-popup/personal-config-popup.service';\r\nimport { forkJoin, Observable, of } from 'rxjs';\r\nimport { EditCategoryPopupConfirmData } from 'projects/lwlib/src/edit-category-popup/edit-category-popup-confirm-data';\r\nimport { RenamePopupOpenerService } from 'projects/lwlib/src/rename-popup/rename-popup-opener.service';\r\nimport { DeleteConfirmPopupType } from 'projects/lwlib/src/delete-confirm-popup/delete-confirm-popup-type';\r\nimport { CommentService } from '../../../comment.service';\r\nimport { CommentPopupOpenerService } from 'projects/lwlib/src/comment-popup/comment-popup-opener.service';\r\nimport { CaseTagPopupOpenerService } from 'projects/lwlib/src/case-tag-popup/case-tag-popup-opener.service';\r\nimport { LoadingIconService } from 'projects/lwlib/src/loading-icon/loading-icon.service';\r\nimport { ActionName } from 'projects/lwlib/src/action-name';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { ComposeType } from 'projects/lwlib/src/compose-search-popup/compose-type';\r\nimport { CaseTag } from '../case-tag';\r\nimport { DetailInfoClickWindowOption } from 'projects/lwlib/src/detail-info-click-window/detail-info-click-window-option';\r\nimport { DetailInfoClickWindowTabId } from 'projects/lwlib/src/detail-info-click-window/detail-info-click-window-tab-id.enum';\r\nimport { EditCategoryPopupOption } from 'projects/lwlib/src/edit-category-popup/edit-category-popup-option';\r\nimport { IssueService } from '../issue.service';\r\nimport { IssueAddRequest } from '../issue-add-request';\r\nimport { IssueEditRequest } from '../issue-edit-request';\r\nimport { IssueDeleteRequest } from '../issue-delete-request';\r\nimport { tap, map, concatMap } from 'rxjs/operators';\r\nimport { ShareService } from '../share.service';\r\nimport { ShareRequest } from '../share-request';\r\nimport { Category } from 'projects/lwlib/src/category/category';\r\nimport { Subcategory } from 'projects/lwlib/src/category/subcategory';\r\nimport { SummaryWindowService } from 'projects/lwlib/src/summary-window/summary-window.service';\r\nimport { SummarySave } from 'projects/lwlib/src/summary-list/summary-save';\r\nimport { SummaryConvert } from 'projects/lwlib/src/summary-list/summary-convert';\r\nimport { SummaryBlock } from 'projects/lwlib/src/summary-list/summary-block';\r\nimport { SummaryFilterSetting } from 'projects/lwlib/src/summary-filter-popup/summary-filter-setting';\r\nimport { SummaryFilterDisplayModeId } from 'projects/lwlib/src/summary-filter-popup/summary-filter-display-mode-id.enum';\r\nimport { Summary } from 'projects/lwlib/src/summary-list/summary';\r\nimport { DetailInfoClickWindowService } from 'projects/lwlib/src/detail-info-click-window/detail-info-click-window.service';\r\nimport { SummaryType } from 'projects/lwlib/src/summary-list/summary-type';\r\nimport { Serializable } from 'projects/lwlib/src/serializable';\r\nimport { SubscriptionGroup } from 'projects/lwlib/src/subscription-group';\r\nimport { SummaryWindowOption } from 'projects/lwlib/src/summary-window/summary-window-option';\r\nimport { DisplayContentBlockBasicInfoOption } from 'projects/lwlib/src/detail-info-click-window/display-content-block-basic-info/display-content-block-basic-info-option';\r\nimport { DisplayContentBlockShareInfoOption } from 'projects/lwlib/src/detail-info-click-window/display-content-block-share-info/display-content-block-share-info-option';\r\nimport { DisplayContentBlockIssueSortOutOption } from 'projects/lwlib/src/detail-info-click-window/display-content-block-issue-sort-out/display-content-block-issue-sort-out-option';\r\nimport { IssueBlukRequest } from '../issue-bluk-request';\r\nimport { IssueLinkSummaryRequest } from '../issue-link-summary-request';\r\nimport { ElementScroll } from 'projects/lwlib/src/element-scroll/element-scroll';\r\nimport { IssueOrderRequest } from '../issue-order-request';\r\nimport { IssueOrderRequestData } from '../issue-order-request-data';\r\nimport { SummaryListOrderRequest } from 'projects/lwlib/src/summary-list/summary-list-order-request';\r\nimport { SummaryDeleteRequest } from 'projects/lwlib/src/summary-list/summary-delete-request';\r\nimport { SuccessTipOpenerService } from 'projects/lwlib/src/succes-tip/success-tip-opener.service';\r\nimport { IndictmentCourtId } from '../../../child-content-judgment-search/judgment-condition/indictment-court-id.enum';\r\nimport { CourtId } from 'projects/lwlib/src/case-type/court-id.enum';\r\nimport { CaseName } from 'projects/lwlib/src/case-type/case-name';\r\nimport { IndictmentService } from 'projects/lwlib/src/indictment/indictment.service';\r\nimport { MaterialHelper } from 'projects/lwlib/src/material-helper';\r\nimport { PrintConfigPopupComponent } from 'projects/lwlib/src/print-config-popup/print-config-popup.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MemberService } from 'projects/lwlib/src/member/member.service';\r\nimport { FilterCondition } from '../../filter-condition';\r\nimport { PutInNotePopupComponent } from 'projects/lwlib/src/put-in-note-popup/put-in-note-popup.component';\r\nimport { PutInNoteCheckPopupComponent } from 'projects/lwlib/src/put-in-note-check-popup/put-in-note-check-popup.component';\r\nimport { NotePutInTeam } from 'projects/lwlib/src/team/note-put-in-team';\r\nimport { IndictmentCase } from '../../../../root-note-work-indictment/indictment-case';\r\nimport { PutInNoteSuccessPopupComponent } from 'projects/lwlib/src/put-in-note-success-popup/put-in-note-success-popup.component';\r\nimport { SaveResultStatusId } from 'projects/lwlib/src/save-count-limit-popup/save-result-status.enum';\r\nimport { PayInfoOverSaveLimitPopupComponent } from 'projects/lwlib/src/pay-info-over-save-limit-popup/pay-info-over-save-limit-popup.component';\r\nimport { PrintPermissionPopupComponent } from 'projects/lwlib/src/print-permission-popup/print-permission-popup.component';\r\n\r\n@Component({\r\n selector: 'app-list-full',\r\n templateUrl: './list-full.component.html',\r\n styleUrls: ['./list-full.component.scss']\r\n})\r\nexport class ListFullComponent implements OnInit, OnDestroy {\r\n detailInfoClickWindowTabId: any = DetailInfoClickWindowTabId;\r\n editCategoryTab: any = EditCategoryTabId;\r\n searcherKeywordKind: any = SearcherKeywordKind;\r\n\r\n\r\n // @Input() importJudgment: JudgmentComponent;\r\n // @Input() importFilterCondition: FilterCondition;\r\n @Output() noteUpdate: EventEmitter = new EventEmitter();\r\n @Input() noteUpdateObserver: Observable;\r\n @ViewChild(DetailInfoClickWindowComponent, { static: true }) detailInfoClickWindowComponent: DetailInfoClickWindowComponent;\r\n // detailInfoClickWindow: DetailInfoClickWindowComponent;\r\n\r\n\r\n // filterCondition: FilterCondition;\r\n get filterCondition(): FilterCondition { return this.judgmentService.filterCondition; }\r\n get noteList(): JudgmentCase[] { return this.judgmentService.storageNoteList; }\r\n selectedRowElement: Element;\r\n selectedRowBy: string = '';\r\n private _selectedNoteId: string = '';\r\n\r\n enableTeam: boolean = false;\r\n\r\n subscriptions: SubscriptionGroup = {};\r\n\r\n // 打卡狀態選單\r\n showCheckinMenuNote: any;\r\n // 打卡詳細資料彈窗\r\n showCheckInPopupNote: any;\r\n // 置入團隊彈窗\r\n showCloneToTeamPopupNote: any;\r\n showCloneToTeamCheckPopupNote: any;\r\n showCloneToTeamSuccessPopupNote: any;\r\n // 顯示列印彈窗\r\n showPrintPopupNote: any;\r\n // 團隊分享、爭點整理、隨意備註、案件標籤視窗\r\n showDetailWindowNote: any;\r\n // 刪除筆記彈窗\r\n showDeleteNotePopupNote: any;\r\n // 編輯筆記名稱談窗\r\n showEditNoteNamePopupNote: any;\r\n // 檔案管理彈窗\r\n showEditCategoryPopupNote: any;\r\n // 編輯案件標籤彈窗\r\n showEditCaseTagPopupNote: any;\r\n // 摘要預覽視窗\r\n showSummaryPreviewWindowNote: any;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n constructor(\r\n public judgmentService: JudgmentService,\r\n private indictmentService: IndictmentService,\r\n public appCommonService: AppCommonService,\r\n private commentService: CommentService,\r\n private deleteConfirmPopupOpenerService: DeleteConfirmPopupOpenerService,\r\n private editCategoryPopupOpenerService: EditCategoryPopupOpenerService,\r\n private renamePopupOpenerService: RenamePopupOpenerService,\r\n private commentPopupOpenerService: CommentPopupOpenerService,\r\n private caseTagPopupOpenerService: CaseTagPopupOpenerService,\r\n private detailInfoClickWindowService: DetailInfoClickWindowService,\r\n private summaryWindowService: SummaryWindowService,\r\n private issueService: IssueService,\r\n private shareService: ShareService,\r\n private loadingIconService: LoadingIconService,\r\n private service: AppService,\r\n private successTipOpenerService: SuccessTipOpenerService,\r\n private matDialog: MatDialog,\r\n private memberService: MemberService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.subscriptions.noteList = this.judgmentService.noteList$.subscribe(() => {\r\n // 如果選擇的筆記已經不再清單>清空\r\n if (!this.noteList.find(n => n.case_id === this._selectedNoteId)) {\r\n this.clearSelectedNote();\r\n }\r\n });\r\n\r\n this.enableTeam = this.memberService.memberHeader.has_team;\r\n }\r\n ngOnDestroy(): void {\r\n SubscriptionGroup.unsubscribeAll(this.subscriptions);\r\n }\r\n\r\n isSelectedNote(note: JudgmentCase): boolean {\r\n return this._selectedNoteId === note.note_id;\r\n }\r\n selectNote(note: JudgmentCase, selectedBy: string): void {\r\n this._selectedNoteId = note.note_id;\r\n this.selectedRowBy = selectedBy;\r\n }\r\n clearSelectedNote(): void {\r\n this._selectedNoteId = '';\r\n this.selectedRowBy = '';\r\n }\r\n\r\n checkShowNoteBorder(note: any): boolean {\r\n let show = false;\r\n\r\n if (this.showCheckinMenuNote == note) { show = true; }\r\n if (this.showCheckInPopupNote == note) { show = true; }\r\n\r\n if (this.showCloneToTeamPopupNote == note) { show = true; }\r\n if (this.showCloneToTeamCheckPopupNote == note) { show = true; }\r\n if (this.showCloneToTeamSuccessPopupNote == note) { show = true; }\r\n if (this.showPrintPopupNote == note) { show = true; }\r\n if (this.showDetailWindowNote == note) { show = true; }\r\n if (this.showSummaryPreviewWindowNote == note) { show = true; }\r\n if (this.showDeleteNotePopupNote == note) { show = true; }\r\n if (this.showEditCategoryPopupNote == note) { show = true; }\r\n if (this.showEditNoteNamePopupNote == note) { show = true; }\r\n\r\n if (this.showEditCaseTagPopupNote == note) { show = true; }\r\n\r\n return show;\r\n }\r\n\r\n\r\n\r\n getCategoryIconStyle(category: Category): any {\r\n if (category) {\r\n const _category = this.judgmentService.categoryList.find(v => v.text === category.text);\r\n if (_category) {\r\n return Category.getIconStyle(_category);\r\n } else {\r\n return Category.getIconStyle(category);\r\n }\r\n }\r\n\r\n return {\r\n backgroundImage: 'url(/assets/img/icon/symbol_question.png)'\r\n };\r\n }\r\n getSubcategoryIconStyle(subcategory: Subcategory): any {\r\n if (subcategory) {\r\n const _subcategory = this.judgmentService.subcategoryList.find(v => v.category_text === subcategory.category_text && v.text === subcategory.text);\r\n if (_subcategory) {\r\n return Subcategory.getIconStyle(_subcategory);\r\n } else {\r\n return Subcategory.getIconStyle(subcategory);\r\n }\r\n }\r\n return {\r\n backgroundImage: 'url(/assets/img/icon/symbol_question.png)'\r\n };\r\n }\r\n\r\n getPropertyIconStyle(property: JudgmentProperty): any {\r\n let iconName = '';\r\n const anyProperty: any = property;\r\n\r\n const style: CSSStyleDeclaration = {} as CSSStyleDeclaration;\r\n let width = null;\r\n // debugger\r\n if (property === JudgmentProperty.Judgment) {\r\n iconName = 'property/s8.png';\r\n } else if (property === JudgmentProperty.Decision) {\r\n iconName = 'property/s9.png';\r\n } else if (property === JudgmentProperty.Other) {\r\n iconName = 'property/s10.png';\r\n } else if (anyProperty === '起訴書') {\r\n iconName = 'property/s23.png';\r\n width = 46;\r\n } else if (anyProperty === '追加起訴書') {\r\n iconName = 'property/s22.png';\r\n width = 60;\r\n } else if (anyProperty === '聲請簡易判決處刑書') {\r\n iconName = 'property/s24.png';\r\n width = 60;\r\n } else if (anyProperty === '併辦意旨書') {\r\n iconName = 'property/s25.png';\r\n width = 60;\r\n } else if (anyProperty === '移送併辦意旨書') {\r\n iconName = 'property/s25.png';\r\n width = 60;\r\n } else if (anyProperty === '其他') {\r\n iconName = 'property/s10.png';\r\n }\r\n\r\n if (!iconName) {\r\n return {};\r\n }\r\n\r\n style['background-image'] = `url(/assets/img/${iconName})`;\r\n if (width != null) {\r\n style.width = `${width}px`;\r\n }\r\n\r\n return style;\r\n }\r\n\r\n getCourtName(note: any): string {\r\n if (note.case_base === 'indictment') {\r\n const icid: string = IndictmentCourtId[note.court_id];\r\n const courtId = CourtId['Judgment_' + icid];\r\n const court = CaseName.courtList.find(v => v.court_id === courtId);\r\n return court.list_name;\r\n } else {\r\n return note.court;\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n filterIssueList(issueList: Issue[]): Issue[] {\r\n if (!issueList || issueList.length === 0) {\r\n return [];\r\n }\r\n\r\n return issueList.filter(a => {\r\n return a.issue_text;\r\n });\r\n }\r\n filterIssueAnswerList(issueList: Issue[]): Issue[] {\r\n if (!issueList || issueList.length === 0) {\r\n return [];\r\n }\r\n\r\n return issueList.filter(a => {\r\n return a.answer_text;\r\n });\r\n }\r\n convertTimeText(tick: number): string {\r\n return this.appCommonService.convertTimeTickToPastTimeText1(tick);\r\n }\r\n convertSummaryItemToClass(item: SummaryTypeItem): string {\r\n // debugger;\r\n if (item.list_type === NoteSummaryListType.Bookmark) {\r\n return this.appCommonService.convertText_CamelCaseToLowerDash(BookmarkType[item.list_type].toString());\r\n } else {\r\n return this.appCommonService.convertText_CamelCaseToLowerDash(SummaryTypeId[item.item_type].toString());\r\n }\r\n }\r\n\r\n\r\n selectRow(element: Element, selectedBy: string): void {\r\n if (!this.selectedRowElement) {\r\n this.selectedRowElement = element;\r\n this.selectedRowBy = selectedBy;\r\n }\r\n }\r\n clearSelectedRow(): void {\r\n this.selectedRowElement = null;\r\n this.selectedRowBy = '';\r\n }\r\n\r\n\r\n\r\n openNote(note: JudgmentCase): void {\r\n const query = ['load_save=1'];\r\n const keywords = this.filterCondition.searchKeywords\r\n .filter(k => k.keyword && k.compose !== ComposeType.Not);\r\n const hasSpecKeywords = keywords.filter(k => k.kind === SearcherKeywordKind.PointSummary\r\n || k.kind === SearcherKeywordKind.SummaryTag\r\n || k.kind === SearcherKeywordKind.Bookmark);\r\n if (hasSpecKeywords.length > 0) {\r\n query.push('keywords=' + hasSpecKeywords[0].keyword);\r\n if (hasSpecKeywords[0].kind === SearcherKeywordKind.PointSummary\r\n || hasSpecKeywords[0].kind === SearcherKeywordKind.SummaryTag) {\r\n query.push('searchtype=summary');\r\n } else if (hasSpecKeywords[0].kind === SearcherKeywordKind.Bookmark) {\r\n query.push('searchtype=bookmark');\r\n }\r\n } else {\r\n query.push('searchtype=bookmark');\r\n }\r\n // if (this.service.isDesktop()) {\r\n // query.push('force_desktop=1');\r\n // }\r\n const url: string = this.service.BaseUrlWeb + '/note/' + IndictmentCase.noteTypeName(note) + '/' + note.case_id\r\n + '?' + query.join('&');\r\n window.open(url);\r\n }\r\n openRenamePopup(note: JudgmentCase): void {\r\n // this.selectRow(fromElement, 'renamePopup');\r\n // this.selectNote(note, 'renamePopup');\r\n this.showEditNoteNamePopupNote = note;\r\n const componentRef = this.renamePopupOpenerService.openPopup(note.file_subject, note.file_subject2);\r\n\r\n componentRef.instance.confirm.subscribe((newNames: string[]) => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n const anyNote: any = note;\r\n if (anyNote.case_base === 'indictment') {\r\n this.indictmentService.renameNoteObserver(note.note_id, newNames[0], newNames[1]).subscribe(() => {\r\n note.file_subject = newNames[0];\r\n note.file_subject2 = newNames[1]\r\n });\r\n } else {\r\n this.judgmentService.renameNoteObserver(note.note_id, newNames[0], newNames[1]).subscribe(() => {\r\n // 更新清單\r\n // console.log('new name ', newName);\r\n note.file_subject = newNames[0];\r\n note.file_subject2 = newNames[1];\r\n });\r\n }\r\n componentRef.instance.closePopup();\r\n });\r\n\r\n componentRef.onDestroy(() => {\r\n this.showEditNoteNamePopupNote = null;\r\n // this.clearSelectedRow();\r\n // this.clearSelectedNote();\r\n });\r\n }\r\n\r\n /** 刪除確認 */\r\n openDeleteConfirmPopup(note: JudgmentCase): void {\r\n // this.selectRow(fromElement, 'deleteConfirmPopup');\r\n // this.selectNote(note, 'deleteConfirmPopup');\r\n this.showDeleteNotePopupNote = note;\r\n const componentRef = this.deleteConfirmPopupOpenerService.openPopup(DeleteConfirmPopupType.Note);\r\n\r\n componentRef.instance.confirm.subscribe(() => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n\r\n const anyNote: any = note;\r\n if (anyNote.case_base === 'indictment') {\r\n this.indictmentService.deleteNoteObserver(note.note_id, note.case_id).subscribe(() => {\r\n // 更新清單\r\n this.noteUpdate.emit();\r\n });\r\n } else {\r\n this.judgmentService.deleteNoteObserver(note.note_id, note.case_id).subscribe(() => {\r\n // 更新清單\r\n this.noteUpdate.emit();\r\n });\r\n }\r\n\r\n componentRef.instance.closePopup();\r\n });\r\n\r\n componentRef.onDestroy(() => {\r\n // this.clearSelectedRow();\r\n // this.clearSelectedNote();\r\n this.showDeleteNotePopupNote = null;\r\n });\r\n }\r\n\r\n\r\n openCommentPopup(note: JudgmentCase): void {\r\n this._openCommentPopup(\r\n note,\r\n note.comment,\r\n (comment) => note.comment = comment\r\n );\r\n }\r\n private _openCommentPopup(\r\n note: JudgmentCase,\r\n comment: string,\r\n onConfirmSave: (comment: string) => void\r\n ): void {\r\n const componentRef = this.commentPopupOpenerService.openPopup('隨意備註', comment);\r\n const anyNote: any = note;\r\n if (anyNote.case_base === 'indictment') {\r\n componentRef.instance.submit.subscribe(new_comment => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n componentRef.instance.closePopup();\r\n return;\r\n }\r\n\r\n this.commentService.updateNoteCommentIndictmentObserver(note.case_id, new_comment)\r\n .subscribe(() => {\r\n if (onConfirmSave) {\r\n onConfirmSave(new_comment);\r\n }\r\n // 關閉彈窗\r\n componentRef.instance.closePopup();\r\n });\r\n });\r\n } else {\r\n componentRef.instance.submit.subscribe(new_comment => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n this.commentService.updateNoteCommentJudgmentObserver(note.case_id, new_comment)\r\n .subscribe(() => {\r\n if (onConfirmSave) {\r\n onConfirmSave(new_comment);\r\n }\r\n // 關閉彈窗\r\n componentRef.instance.closePopup();\r\n });\r\n });\r\n }\r\n\r\n }\r\n\r\n\r\n openCaseTagPopup(note: JudgmentCase): void {\r\n // this.selectNote(note, 'caseTagPopup');\r\n this.showEditCaseTagPopupNote = note;\r\n const onConfirmSave = (list: CaseTag[]) => {\r\n note.case_tag_list = list;\r\n };\r\n const onDestory = () => {\r\n // if (this.selectedRowBy === 'caseTagPopup') {\r\n // this.clearSelectedNote();\r\n // }\r\n this.showEditCaseTagPopupNote = null;\r\n };\r\n\r\n this._openCaseTagPopup(\r\n // note.note_id,\r\n note,\r\n note.case_tag_list,\r\n onConfirmSave,\r\n onDestory\r\n );\r\n\r\n }\r\n private _openCaseTagPopup(\r\n // note_id: string,\r\n note: JudgmentCase,\r\n caseTagList: CaseTag[],\r\n onConfirmSave: (list: CaseTag[]) => void,\r\n onDestroy: () => void\r\n ): void {\r\n const componentRef = this.caseTagPopupOpenerService.openPopup(CaseType.Judgment, caseTagList);\r\n componentRef.instance.confirm.subscribe((list: CaseTag[]) => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n const anyNote: any = note;\r\n if (anyNote.case_base === 'indictment') {\r\n // 更新到S\r\n this.indictmentService.updateNoteCaseTagListObserver(note.note_id, list)\r\n .subscribe(() => {\r\n // 更新本地\r\n if (onConfirmSave) {\r\n onConfirmSave(list);\r\n }\r\n // 關閉彈窗\r\n componentRef.instance.closePopup();\r\n });\r\n\r\n } else {\r\n // 更新到S\r\n this.judgmentService.updateNoteCaseTagListObserver(note.note_id, list)\r\n .subscribe(() => {\r\n // 更新本地\r\n if (onConfirmSave) {\r\n onConfirmSave(list);\r\n }\r\n // 關閉彈窗\r\n componentRef.instance.closePopup();\r\n });\r\n }\r\n });\r\n componentRef.onDestroy(() => {\r\n onDestroy();\r\n });\r\n }\r\n\r\n /** 體系歸納 */\r\n openEditCategoryPopup(\r\n tabId: EditCategoryTabId,\r\n note: JudgmentCase,\r\n ): void {\r\n this.showEditCategoryPopupNote = note;\r\n // this.selectNote(note, 'editCategoryPopup');\r\n\r\n\r\n const option: EditCategoryPopupOption = new EditCategoryPopupOption();\r\n option.tab_id = tabId;\r\n\r\n option.get_note_category = () => note.category;\r\n option.get_note_subcategory = () => note.subcategory;\r\n\r\n option.get_category_list = () => this.judgmentService.categoryList;\r\n option.get_subcategory_list = () => this.judgmentService.subcategoryList;\r\n option.pullCategoryListObserver = () => this.judgmentService.pullCategoryListObserver();\r\n option.pullSubcategoryListObserver = () => this.judgmentService.pullSubcategoryListObserver();\r\n option.pullNoteListObserver = () => this.judgmentService.pullStorageNoteListObserver(this.filterCondition);\r\n\r\n option.addCategoryListObserver = (category) => this.judgmentService.addCategoryObserver(category);\r\n option.addSubcategoryListObserver = (subcategory) => this.judgmentService.addSubcategoryObserver(subcategory);\r\n option.editCategoryListObserver = (old_category, new_category) =>\r\n this.judgmentService.editCategoryObserver(old_category, new_category);\r\n option.editSubcategoryListObserver = (category, old_subcategory, new_subcategory) =>\r\n this.judgmentService.editSubcategoryObserver(category, old_subcategory, new_subcategory);\r\n option.deleteCategoryObserver = (text) => this.judgmentService.deleteCategoryObserver(text);\r\n option.deleteSubcategoryObserver = (category, text) => this.judgmentService.deleteSubcategoryObserver(category, text);\r\n option.orderCategoryListObserver = (list) => this.judgmentService.orderCategoryObserver(list);\r\n option.orderSubcategoryListObserver = (list) => this.judgmentService.orderSubcategoryObserver(list);\r\n option.broadcastCategoryUpdateObserver = (exci) => this.judgmentService.broadcastCategoryUpdateObserver(exci);\r\n option.broadcastSubcategoryUpdateObserver = (exci) => this.judgmentService.broadcastSubcategoryUpdateObserver(exci);\r\n\r\n const componentRef = this.editCategoryPopupOpenerService.openPopup(option);\r\n\r\n // 確定置換\r\n componentRef.instance.confirm.subscribe((result: EditCategoryPopupConfirmData) => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n let classifyObserver: Observable;\r\n\r\n // 置換請求\r\n if (IndictmentCase.noteTypeName(note) === 'indictment') {\r\n const request = this.indictmentService.getNoteClassifyRequest(note.note_id, result.category, result.subcategory);\r\n classifyObserver = this.indictmentService.updateNoteClassifyObserver(request);\r\n } else {\r\n const request = this.judgmentService.getNoteClassifyRequest(note.note_id, result.category, result.subcategory);\r\n classifyObserver = this.judgmentService.updateNoteClassifyObserver(request);\r\n }\r\n\r\n if (classifyObserver != null) {\r\n // 讀取動畫\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.EditCategory);\r\n\r\n classifyObserver\r\n .pipe(\r\n concatMap(() => forkJoin(\r\n this.judgmentService.broadcastCategoryUpdateObserver(''),\r\n this.judgmentService.broadcastSubcategoryUpdateObserver(''),\r\n this.judgmentService.pullCategoryListObserver(),\r\n this.judgmentService.pullSubcategoryListObserver(),\r\n )),\r\n concatMap(() => this.noteUpdateObserver)\r\n )\r\n .subscribe({\r\n complete: () => {\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n // 關閉彈窗\r\n componentRef.instance.closePopup();\r\n }\r\n });\r\n }\r\n });\r\n\r\n\r\n\r\n componentRef.onDestroy(() => {\r\n this.showEditCategoryPopupNote = null;\r\n // this.clearSelectedNote();\r\n });\r\n }\r\n // openEditCategoryPopup(fromElement: Element,\r\n // tab: EditCategoryTabId,\r\n // note: JudgmentCase,\r\n // ): void {\r\n // // this.selectRow(fromElement, 'editCategoryPopup');\r\n // this.selectNote(note, 'editCategoryPopup');\r\n // const componentRef = this.editCategoryPopupOpenerService.openPopup(\r\n // tab,\r\n // this.judgmentService,\r\n // note.judgment_id,\r\n // );\r\n\r\n // // 確定選擇類別項目\r\n // componentRef.instance.confirm.subscribe((r: EditCategoryPopupConfirmData) => {\r\n // this.loadingIconService.openFullScreenLoadingIcon(ActionName.EditCategory);\r\n // const request = this.judgmentService.getNoteClassifyRequest(note.judgment_note_id, r.category, r.subcategory);\r\n // this.judgmentService.updateNoteClassifyObserver(request).subscribe(() => {\r\n // this.judgmentService.broadcastCategoryUpdateObserver('').subscribe();\r\n // this.judgmentService.broadcastSubcategoryUpdateObserver('').subscribe();\r\n // this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n // componentRef.instance.closePopup();\r\n\r\n // // // 更新類別項目清單,更新數量用\r\n // // forkJoin(\r\n // // this.judgmentService.pullCategoryListObserver(),\r\n // // this.judgmentService.pullSubcategoryListObserver(),\r\n // // ).subscribe({\r\n // // complete: () => {\r\n // // // this.judgmentService.pullPersonalStorageJudgmentFullNoteListObserver(this.filterCondition)\r\n // // // .subscribe(() => {\r\n // // // });\r\n // // // note.category = r.category;\r\n // // // note.subcategory = r.subcategory;\r\n // // }\r\n // // });\r\n // });\r\n // });\r\n // // // 類別刪除\r\n // // componentRef.instance.deleteCategory.subscribe((category: Category) => {\r\n // // this.noteList.forEach(_note => {\r\n // // if (_note.category\r\n // // && _note.category.sn > -1\r\n // // && _note.category.text === category.text) {\r\n // // _note.category = Category.unCategory;\r\n // // _note.subcategory = Subcategory.unSubcategory;\r\n // // }\r\n // // });\r\n // // });\r\n // // // 項目刪除\r\n // // componentRef.instance.deleteSubcategory.subscribe((subcategory: Subcategory) => {\r\n // // this.noteList.forEach(_note => {\r\n // // if (_note.category\r\n // // && _note.category.sn > -1\r\n // // && _note.category.text === subcategory.category\r\n // // && _note.subcategory\r\n // // && _note.subcategory.sn > -1\r\n // // && _note.subcategory.text === subcategory.text\r\n // // ) {\r\n // // _note.subcategory = Subcategory.unSubcategory;\r\n // // }\r\n // // });\r\n // // });\r\n // // // 類別編輯\r\n // // componentRef.instance.editCategory.subscribe((data: EditCategoryData) => {\r\n // // this.noteList.forEach(_note => {\r\n // // if (_note.category\r\n // // && _note.category.sn > -1\r\n // // && _note.category.text === data.sourceName) {\r\n // // _note.category = data.newCategory;\r\n // // _note.subcategory = Subcategory.unSubcategory;\r\n // // }\r\n // // });\r\n // // });\r\n // // // 項目編輯\r\n // // componentRef.instance.editSubcategory.subscribe((data: EditSubcategoryData) => {\r\n // // this.noteList.forEach(_note => {\r\n // // if (_note.category\r\n // // && _note.category.sn > -1\r\n // // && _note.category.text === data.category\r\n // // && _note.subcategory\r\n // // && _note.subcategory.text === data.sourceName) {\r\n // // _note.subcategory = data.newSubcategory;\r\n // // }\r\n // // });\r\n // // });\r\n\r\n // componentRef.onDestroy(() => {\r\n // // this.clearSelectedRow();\r\n // this.clearSelectedNote();\r\n // });\r\n // }\r\n\r\n showDetailInfoClickWindow(tabId: DetailInfoClickWindowTabId, noteData: any): void {\r\n // this.selectNote(noteData, 'detailInfoClickWindow');\r\n\r\n this.showSummaryPreviewWindowNote = null;\r\n this.showDetailWindowNote = noteData;\r\n\r\n const note: JudgmentCase = noteData as JudgmentCase;\r\n\r\n const option: DetailInfoClickWindowOption = new DetailInfoClickWindowOption();\r\n option.tab_id = tabId;\r\n option.note_id = note.note_id;\r\n option.caseType = CaseType.Judgment;\r\n option.filterCondition = this.filterCondition;\r\n\r\n option.onWindowShow = () => {\r\n // console.log('show window');\r\n this.detailInfoClickWindowService.translateX = 0;\r\n this.detailInfoClickWindowService.windowShowing = true;\r\n this.detailInfoClickWindowService.windowHideLock = true;\r\n };\r\n option.onWindowAfterShow = () => {\r\n this.detailInfoClickWindowService.windowShowing = false;\r\n this.detailInfoClickWindowService.windowHideLock = false;\r\n this.detailInfoClickWindowService.windowShowed = true;\r\n };\r\n option.onWindowHide = () => {\r\n this.showDetailWindowNote = null;\r\n // console.log('hide window');\r\n if (!this.detailInfoClickWindowService.windowHideLock) {\r\n this.detailInfoClickWindowService.windowHiding = true;\r\n this.detailInfoClickWindowService.translateX = -700;\r\n // this.clearSelectedNote();\r\n }\r\n\r\n };\r\n option.onWindowAfterHide = () => {\r\n if (!this.detailInfoClickWindowService.windowHideLock) {\r\n this.detailInfoClickWindowService.windowHiding = false;\r\n this.detailInfoClickWindowService.windowShowed = false;\r\n }\r\n };\r\n\r\n\r\n /** 基本資訊 */\r\n option.basicInfoOption = new DisplayContentBlockBasicInfoOption();\r\n option.basicInfoOption.rootOption = option;\r\n option.basicInfoOption.reason = note.case_reason;\r\n option.basicInfoOption.get_edit_date = () => note.edit_date;\r\n option.basicInfoOption.get_summaryTypeItemList = () => note.summary_type_item_list;\r\n option.basicInfoOption.get_case_tag_list = () => note.case_tag_list;\r\n option.basicInfoOption.get_comment = () => note.comment;\r\n option.basicInfoOption.editCaseTag = () => {\r\n this._openCaseTagPopup(\r\n // note.note_id,\r\n note,\r\n note.case_tag_list,\r\n (list) => note.case_tag_list = list,\r\n () => { }\r\n );\r\n };\r\n option.basicInfoOption.editComment = () => {\r\n this._openCommentPopup(\r\n note,\r\n note.comment,\r\n (comment) => note.comment = comment\r\n );\r\n };\r\n option.basicInfoOption.openSummaryPreviewWindow = (summaryTypeItem: SummaryTypeItem) => {\r\n this.detailInfoClickWindowService.hideWindow();\r\n this.showSummaryPreviewWindow(note, summaryTypeItem);\r\n };\r\n\r\n\r\n /** 分享資訊 */\r\n option.shareInfoOption = new DisplayContentBlockShareInfoOption();\r\n option.shareInfoOption.rootOption = option;\r\n option.shareInfoOption.share_id = note.share_info ? note.share_info.share_id : '';\r\n option.shareInfoOption.share_click_count = note.share_info ? note.share_info.click_count : 0;\r\n option.shareInfoOption.updateNoteShare = (enable: boolean) => {\r\n\r\n const request: ShareRequest = new ShareRequest();\r\n request.type = CaseType.Judgment;\r\n request.note_id = note.note_id;\r\n request.enable = enable;\r\n const anyNote: any = note;\r\n if (anyNote.case_base === 'indictment') {\r\n this.shareService.shareNoteIndictmentObserver(request).subscribe(si => {\r\n note.share_info = si;\r\n if (si) {\r\n option.shareInfoOption.share_id = si.share_id;\r\n option.shareInfoOption.share_click_count = si.click_count;\r\n }\r\n });\r\n } else {\r\n this.shareService.shareNoteJudgmentObserver(request).subscribe(si => {\r\n note.share_info = si;\r\n if (si) {\r\n option.shareInfoOption.share_id = si.share_id;\r\n option.shareInfoOption.share_click_count = si.click_count;\r\n }\r\n });\r\n }\r\n };\r\n\r\n /** 爭點整理 */\r\n option.issueSortOutOption = new DisplayContentBlockIssueSortOutOption();\r\n option.issueSortOutOption.rootOption = option;\r\n option.issueSortOutOption.summaryWindowService = this.summaryWindowService;\r\n option.issueSortOutOption.get_issue_list = () => note.issue_list;\r\n option.issueSortOutOption.addIssue = (issue: Issue) => {\r\n const request = new IssueAddRequest();\r\n request.case_id = note.case_id;\r\n request.sn = issue.sn;\r\n request.issue_text = issue.issue_text;\r\n request.answer_text = issue.answer_text;\r\n\r\n\r\n\r\n const anyNote: any = note;\r\n if (anyNote.case_base === 'indictment') {\r\n const s = this.issueService.addIndictmentObserver(request).subscribe(() => {\r\n const callback = () => {\r\n setTimeout(() => {\r\n const newIssue = note.issue_list[note.issue_list.length - 1];\r\n ElementScroll.intoView(document.getElementById(newIssue.id), 0);\r\n setTimeout(() => {\r\n newIssue.highlightState = 'play';\r\n setTimeout(() => {\r\n newIssue.highlightState = 'play';\r\n });\r\n });\r\n });\r\n };\r\n this.indictmentService.updateNoteData(note, note.case_id, callback);\r\n // this.indictmentService.updateNoteDataStorage(note.case_id, callback);\r\n });\r\n } else {\r\n const s = this.issueService.addJudgmentObserver(request).subscribe(() => {\r\n const callback = () => {\r\n setTimeout(() => {\r\n const newIssue = note.issue_list[note.issue_list.length - 1];\r\n ElementScroll.intoView(document.getElementById(newIssue.id), 0);\r\n setTimeout(() => {\r\n newIssue.highlightState = 'play';\r\n setTimeout(() => {\r\n newIssue.highlightState = 'play';\r\n });\r\n });\r\n });\r\n };\r\n this.judgmentService.updateNoteDataStorage(note.case_id, callback);\r\n });\r\n }\r\n };\r\n option.issueSortOutOption.editIssue = (issue: Issue) => {\r\n const request = new IssueEditRequest();\r\n request.case_id = note.case_id;\r\n request.issue = issue;\r\n const anyNote: any = note;\r\n if (anyNote.case_base === 'indictment') {\r\n const s = this.issueService.updateIndictmentObserver(request).subscribe(() => {\r\n this.issueService.getIndictmentIssueListObserver(note.note_id)\r\n .subscribe((list: Issue[]) => {\r\n note.issue_list = list.map(v =>\r\n Serializable.extendObjectFromResponseObject(new Issue(), v)\r\n );\r\n s.unsubscribe();\r\n });\r\n });\r\n } else {\r\n const s = this.issueService.updateJudgmentObserver(request).subscribe(() => {\r\n this.issueService.getJudgmentIssueListObserver(note.note_id)\r\n .subscribe((list: Issue[]) => {\r\n note.issue_list = list.map(v =>\r\n Serializable.extendObjectFromResponseObject(new Issue(), v)\r\n );\r\n s.unsubscribe();\r\n });\r\n });\r\n }\r\n };\r\n option.issueSortOutOption.deleteIssue = (issue: Issue) => {\r\n const request = new IssueDeleteRequest();\r\n request.case_id = note.case_id;\r\n request.sn = issue.sn;\r\n\r\n const anyNote: any = note;\r\n if (anyNote.case_base === 'indictment') {\r\n } else {\r\n }\r\n\r\n\r\n };\r\n option.issueSortOutOption.linkSummary = (issue: Issue) => {\r\n const request = new IssueLinkSummaryRequest();\r\n request.case_id = note.case_id;\r\n request.issue_id = issue.id;\r\n request.summary_id = issue.link_summary_id;\r\n\r\n const anyNote: any = note;\r\n if (anyNote.case_base === 'indictment') {\r\n this.issueService.linkSummaryIndictmentObserver(request).subscribe(() => {\r\n // this.indictmentService.updateNoteDataStorage(note.case_id);\r\n this.indictmentService.updateNoteData(note, note.case_id);\r\n });\r\n } else {\r\n this.issueService.linkSummaryJudgmentObserver(request).subscribe(() => {\r\n this.judgmentService.updateNoteDataStorage(note.case_id);\r\n });\r\n }\r\n\r\n\r\n\r\n };\r\n option.issueSortOutOption.orderIssue = (callback: () => void) => {\r\n const request: IssueOrderRequest = new IssueOrderRequest();\r\n request.case_id = note.case_id;\r\n request.order_list = [];\r\n note.issue_list.forEach(i => {\r\n const orderData: IssueOrderRequestData = new IssueOrderRequestData();\r\n orderData.sn = i.sn;\r\n orderData.id = i.id;\r\n request.order_list.push(orderData);\r\n });\r\n\r\n const anyNote: any = note;\r\n if (anyNote.case_base === 'indictment') {\r\n this.issueService.orderIndictmentObserver(request).subscribe(() => {\r\n if (callback) { callback(); }\r\n });\r\n } else {\r\n this.issueService.orderJudgmentObserver(request).subscribe(() => {\r\n if (callback) { callback(); }\r\n });\r\n }\r\n };\r\n option.issueSortOutOption.pullIssueList = () => {\r\n const anyNote: any = note;\r\n if (anyNote.case_base === 'indictment') {\r\n this.issueService.getIndictmentIssueListObserver(note.note_id)\r\n .subscribe((list: Issue[]) => {\r\n note.issue_list = list;\r\n });\r\n } else {\r\n this.issueService.getJudgmentIssueListObserver(note.note_id)\r\n .subscribe((list: Issue[]) => {\r\n note.issue_list = list;\r\n });\r\n }\r\n };\r\n option.issueSortOutOption.moveUpIssue = (issue: Issue) => {\r\n const prevIssueIndex = issue.sn - 1;\r\n const prevIssue = note.issue_list[prevIssueIndex];\r\n const prevSn = prevIssue.sn;\r\n prevIssue.sn = issue.sn;\r\n issue.sn = prevSn;\r\n note.issue_list.splice(prevIssueIndex, 2, issue, prevIssue);\r\n option.issueSortOutOption.disableMoveOption = true;\r\n issue.playHighlight();\r\n setTimeout(() => {\r\n ElementScroll.intoView(document.getElementById(issue.id), 0);\r\n });\r\n option.issueSortOutOption.orderIssue(() => {\r\n setTimeout(() => {\r\n option.issueSortOutOption.disableMoveOption = false;\r\n }, 300);\r\n });\r\n };\r\n option.issueSortOutOption.moveDownIssue = (issue: Issue) => {\r\n // console.log('issue move down');\r\n\r\n const sourceIndex = issue.sn;\r\n const nextIssueIndex = issue.sn + 1;\r\n const nextIssue = note.issue_list[nextIssueIndex];\r\n const nextSn = nextIssue.sn;\r\n nextIssue.sn = issue.sn;\r\n issue.sn = nextSn;\r\n note.issue_list.splice(sourceIndex, 2, nextIssue, issue);\r\n option.issueSortOutOption.disableMoveOption = true;\r\n // const _issue = note.issue_list.find(v => v.id === issue.id);\r\n issue.playHighlight();\r\n setTimeout(() => {\r\n ElementScroll.intoView(document.getElementById(issue.id), 0);\r\n });\r\n option.issueSortOutOption.orderIssue(() => {\r\n setTimeout(() => {\r\n option.issueSortOutOption.disableMoveOption = false;\r\n }, 300);\r\n });\r\n };\r\n option.issueSortOutOption.showSummaryWindow = () => {\r\n if (!this.summaryWindowService.windowShowed) {\r\n option.issueSortOutOption.issueLinkBackup = {};\r\n option.issueSortOutOption.issueAnswerBackup = {};\r\n\r\n if (note.issue_list\r\n && note.issue_list.length) {\r\n note.issue_list.forEach(i => {\r\n option.issueSortOutOption.issueLinkBackup[i.id] = i.link_summary_id;\r\n option.issueSortOutOption.issueAnswerBackup[i.id] = i.answer_text;\r\n });\r\n }\r\n\r\n console.log('backup source links', option.issueSortOutOption.issueLinkBackup);\r\n }\r\n const soption = new SummaryWindowOption();\r\n option.issueSortOutOption.summaryWindowOption = soption;\r\n\r\n // soption.disableBottomMenu = true;\r\n // soption.disableTopRightMenu = true;\r\n // soption.disableTextCopy = true;\r\n // soption.disableTypeSelect = true;\r\n // soption.disableTextEdit = true;\r\n // soption.disableTagEdit = true;\r\n // soption.disableCancelSelect = true;\r\n // soption.disableGistEdit = true;\r\n soption.selectedSummaryId = option.issueSortOutOption.linkingIssue.link_summary_id;\r\n\r\n soption.title = '連結摘要';\r\n // soption.isLinkIssueMode = true;\r\n soption.onWindowShow = () => {\r\n this.summaryWindowService.translateX = 600;\r\n this.summaryWindowService.windowShowing = true;\r\n this.summaryWindowService.windowHideLock = true;\r\n this.summaryWindowService.summaryListService.linkMode = true;\r\n soption.updateSummaryList();\r\n };\r\n soption.onWindowAfterShow = () => {\r\n this.summaryWindowService.windowShowing = false;\r\n this.summaryWindowService.windowHideLock = false;\r\n this.summaryWindowService.windowShowed = true;\r\n };\r\n soption.onWindowHide = () => {\r\n if (!this.summaryWindowService.windowHideLock) {\r\n this.summaryWindowService.windowHiding = true;\r\n this.summaryWindowService.translateX = -700;\r\n option.issueSortOutOption.linkingIssue = null;\r\n option.issueSortOutOption.enableLinkConfirmButton = false;\r\n note.issue_list.forEach(i => {\r\n i.link_summary_id = option.issueSortOutOption.issueLinkBackup[i.id];\r\n i.answer_text = option.issueSortOutOption.issueAnswerBackup[i.id];\r\n });\r\n this.summaryWindowService.summaryListService.linkMode = false;\r\n\r\n if (this.summaryWindowService.component) {\r\n this.summaryWindowService.component.keyword = '';\r\n }\r\n }\r\n };\r\n soption.onWindowAfterHide = () => {\r\n if (!this.summaryWindowService.windowHideLock) {\r\n this.summaryWindowService.windowHiding = false;\r\n this.summaryWindowService.windowShowed = false;\r\n this.summaryWindowService.searchedKeyword = '';\r\n this.summaryWindowService.selectedSummaryType = SummaryType.summaryTypeAll;\r\n }\r\n };\r\n /** 更新摘要清單 */\r\n soption.updateSummaryList = () => {\r\n const anyNote: any = note;\r\n let source: Observable;\r\n if (anyNote.case_base === 'indictment') {\r\n source = this.indictmentService.getSummaryListObserver(note.case_id)\r\n .pipe(\r\n map(list => (list as any).map(summary =>\r\n Serializable.extendObjectFromResponseObject(new SummarySave(), summary)\r\n )),\r\n tap(list => {\r\n note.summary = list;\r\n })\r\n );\r\n } else {\r\n source = this.judgmentService.getSummaryListObserver(note.case_id)\r\n .pipe(\r\n map(list => (list as any).map(summary =>\r\n Serializable.extendObjectFromResponseObject(new SummarySave(), summary)\r\n )),\r\n tap(list => {\r\n note.summary = list;\r\n })\r\n );\r\n }\r\n\r\n\r\n\r\n if (note.summary) {\r\n console.log('note-summary');\r\n source = of(note.summary);\r\n }\r\n this.summaryWindowService.loadingSummaryList = true;\r\n source.subscribe(sl => {\r\n const summaryListService = this.summaryWindowService.summaryListService;\r\n summaryListService.setSelectedSummaryBlockAndSummary(null, null);\r\n summaryListService.summaryBlockList = [];\r\n summaryListService.setupReaderMode();\r\n summaryListService.disableCancelSelect = true;\r\n summaryListService.enableCopySummaryButtonDisplay = false;\r\n summaryListService.enableCopyLearnTrainingButtonDisplay = false;\r\n // summaryListService.disableBottomMenu = soption.disableBottomMenu;\r\n // summaryListService.disableTopRightMenu = soption.disableTopRightMenu;\r\n // summaryListService.disableTextCopy = soption.disableTextCopy;\r\n // summaryListService.disableTypeSelect = soption.disableTypeSelect;\r\n // summaryListService.disableTextEdit = soption.disableTextEdit;\r\n // summaryListService.disableTagEdit = soption.disableTagEdit;\r\n // summaryListService.disableCancelSelect = soption.disableCancelSelect;\r\n // summaryListService.disableGistEdit = soption.disableGistEdit;\r\n\r\n const summaryBlock = {};\r\n sl.forEach((summary: SummarySave) => {\r\n if (!summaryBlock[summary.summary_block_index]) {\r\n const block = new SummaryBlock(summaryListService);\r\n block.blockIndex = summary.summary_block_index;\r\n summaryBlock[summary.summary_block_index] = block;\r\n }\r\n });\r\n const summaryBlockList = [];\r\n Object.keys(summaryBlock).forEach(key => {\r\n summaryBlockList.push(summaryBlock[key]);\r\n });\r\n summaryBlockList.sort((a, b) => a.blockIndex - b.blockIndex);\r\n\r\n sl.forEach((summarySave: SummarySave) => {\r\n const summary = SummaryConvert.saveToSummary(\r\n summarySave,\r\n summaryBlock[summarySave.summary_block_index],\r\n summaryListService,\r\n null\r\n );\r\n summary.summaryBlock.list.push(summary);\r\n });\r\n\r\n summaryBlockList.forEach(block => {\r\n block.list.sort((a, b) => a.index - b.index);\r\n summaryListService.summaryBlockList.push(block);\r\n });\r\n summaryListService.recalcAllSummaryOrder();\r\n\r\n console.log('setup list summary', summaryListService.summaryBlockList);\r\n this.summaryWindowService.loadingSummaryList = false;\r\n\r\n // 設定摘要清單過濾\r\n const filterSetting: SummaryFilterSetting = new SummaryFilterSetting();\r\n filterSetting.displayModeId = SummaryFilterDisplayModeId.All;\r\n filterSetting.selectedTypes = [];\r\n filterSetting.keyword = '';\r\n const summaryTypes: { [key: string]: SummaryTypeId } = {};\r\n sl.forEach((summarySave: SummarySave) => {\r\n summaryTypes[SummaryTypeId[summarySave.summary_type_id]] = summarySave.summary_type_id;\r\n });\r\n filterSetting.selectedTypes = Object.keys(summaryTypes)\r\n .map(key => summaryTypes[key]);\r\n this.summaryWindowService.summaryListService.updateSummaryListShow(filterSetting);\r\n this.summaryWindowService.searchedKeyword = '';\r\n\r\n setTimeout(() => {\r\n if (option.issueSortOutOption\r\n && option.issueSortOutOption.linkingIssue.link_summary_id) {\r\n const summaryItem = this.summaryWindowService.summaryListService.getFlatSummaryList().find(v => v.summaryId === option.issueSortOutOption.linkingIssue.link_summary_id);\r\n if (summaryItem) {\r\n this.summaryWindowService.summaryListService.setSelectedSummaryBlockAndSummary(summaryItem.summaryBlock, summaryItem);\r\n summaryItem.scrollIntoView();\r\n }\r\n }\r\n });\r\n });\r\n };\r\n soption.onSummarySelected = (summary: Summary) => {\r\n console.log('linking mode, select summary ', summary, option.issueSortOutOption.linkingIssue);\r\n\r\n if (option.issueSortOutOption.linkingIssue) {\r\n option.issueSortOutOption.enableLinkConfirmButton = true;\r\n option.issueSortOutOption.linkingIssue.link_summary_id = summary ? summary.summaryId : '';\r\n option.issueSortOutOption.linkingIssue.edit_time = new Date().getTime();\r\n\r\n if (!option.issueSortOutOption.issueAnswerBackup[option.issueSortOutOption.linkingIssue.id]) {\r\n option.issueSortOutOption.linkingIssue.answer_text = summary.titleText;\r\n }\r\n }\r\n };\r\n\r\n this.summaryWindowService._option = soption;\r\n this.summaryWindowService.showWindow();\r\n };\r\n option.issueSortOutOption.cancelLink = () => {\r\n this.summaryWindowService.hideWindow();\r\n };\r\n option.issueSortOutOption.confirmLink = () => {\r\n const blukData: IssueBlukRequest = new IssueBlukRequest();\r\n blukData.case_id = note.case_id;\r\n blukData.list = [];\r\n if (note.issue_list) {\r\n blukData.list = note.issue_list;\r\n // note.issue_list.forEach(i => {\r\n // linkData[i.id] = i.link_summary_id;\r\n // });\r\n this.issueService.blukJudgmentObserver(blukData)\r\n .subscribe(() => { });\r\n // setTimeout(() => {\r\n // this.summaryWindowService.hideWindow();\r\n // }, 1000);\r\n }\r\n note.issue_list.forEach(i => {\r\n option.issueSortOutOption.issueLinkBackup[i.id] = i.link_summary_id;\r\n option.issueSortOutOption.issueAnswerBackup[i.id] = i.answer_text;\r\n });\r\n this.summaryWindowService.hideWindow();\r\n // option.issueSortOutOption.issueLinkBackup = {};\r\n };\r\n\r\n this.detailInfoClickWindowService.selectedTab = null;\r\n setTimeout(() => {\r\n // console.log('show window root');\r\n this.detailInfoClickWindowService._option = option;\r\n this.detailInfoClickWindowService.selectedTab = this.detailInfoClickWindowService.tabs[option.tab_id_text];\r\n this.detailInfoClickWindowService.showWindow();\r\n });\r\n }\r\n showSummaryPreviewWindow(noteData: any, summaryTypeItem: SummaryTypeItem): void {\r\n // this.selectNote(noteData, 'detailInfoClickWindow');\r\n\r\n this.showSummaryPreviewWindowNote = noteData;\r\n this.showDetailWindowNote = null;\r\n\r\n const note: JudgmentCase = noteData as JudgmentCase;\r\n\r\n const soption = new SummaryWindowOption();\r\n soption.title = '摘要預覽';\r\n\r\n // soption.disableBottomMenu = false;\r\n // soption.disableTopRightMenu = false;\r\n // soption.disableTextCopy = false;\r\n // soption.disableTypeSelect = false;\r\n // soption.disableTextEdit = false;\r\n // soption.disableTagEdit = false;\r\n // soption.disableCancelSelect = false;\r\n // soption.disableGistEdit = false;\r\n\r\n soption.onWindowShow = () => {\r\n this.summaryWindowService.translateX = 0;\r\n this.summaryWindowService.windowShowing = true;\r\n this.summaryWindowService.windowHideLock = true;\r\n\r\n if (SummaryWindowOption.textCopySubscription) {\r\n SummaryWindowOption.textCopySubscription.unsubscribe();\r\n SummaryWindowOption.textCopySubscription = null;\r\n }\r\n if (SummaryWindowOption.summaryCopyOnlineSubscription) {\r\n SummaryWindowOption.summaryCopyOnlineSubscription.unsubscribe();\r\n SummaryWindowOption.summaryCopyOnlineSubscription = null;\r\n }\r\n SummaryWindowOption.textCopySubscription = this.summaryWindowService.summaryListService.textCopyed$.subscribe(() => {\r\n this.successTipOpenerService.showPopTip('複製成功', '3s cubic-bezier(0.895, 0.03, 0.685, 0.22)');\r\n });\r\n SummaryWindowOption.summaryCopyOnlineSubscription = this.summaryWindowService.summaryListService.copySummaryOnline$\r\n .subscribe(() => {\r\n this.successTipOpenerService.showPopTip('已複製,請建立新摘要並建入', '4s cubic-bezier(0.895, 0.03, 0.685, 0.22)');\r\n });\r\n\r\n document.querySelector('.summary-window .result-row').scrollTop = 0;\r\n soption.updateSummaryList();\r\n };\r\n soption.onWindowAfterShow = () => {\r\n this.summaryWindowService.windowShowing = false;\r\n this.summaryWindowService.windowHideLock = false;\r\n this.summaryWindowService.windowShowed = true;\r\n };\r\n soption.onWindowHide = () => {\r\n this.showSummaryPreviewWindowNote = null;\r\n // console.log('preview windows hide');\r\n if (!this.summaryWindowService.windowHideLock) {\r\n this.summaryWindowService.windowHiding = true;\r\n this.summaryWindowService.translateX = -700;\r\n\r\n if (this.summaryWindowService.component) {\r\n this.summaryWindowService.component.keyword = '';\r\n }\r\n\r\n this.summaryWindowService.summaryListService.updateMovingSummary(null);\r\n\r\n // if (!this.detailInfoClickWindowService.windowShowing\r\n // && !this.detailInfoClickWindowService.windowShowed) {\r\n // this.clearSelectedNote();\r\n // }\r\n }\r\n };\r\n soption.onWindowAfterHide = () => {\r\n if (!this.summaryWindowService.windowHideLock) {\r\n this.summaryWindowService.windowHiding = false;\r\n this.summaryWindowService.windowShowed = false;\r\n this.summaryWindowService.searchedKeyword = '';\r\n this.summaryWindowService.selectedSummaryType = SummaryType.summaryTypeAll;\r\n }\r\n };\r\n soption.onSummarySelected = () => {\r\n\r\n };\r\n /** 更新摘要清單 */\r\n soption.updateSummaryList = () => {\r\n const summaryListService = this.summaryWindowService.summaryListService;\r\n summaryListService.summaryTypeList = SummaryType.judgmentSummaryTypeList;\r\n summaryListService.setSelectedSummaryBlockAndSummary(null, null);\r\n summaryListService.summaryBlockList = [];\r\n\r\n\r\n const anyNote: any = note;\r\n let source: Observable;\r\n if (anyNote.case_base === 'indictment') {\r\n source = this.indictmentService.getSummaryListObserver(note.case_id)\r\n .pipe(\r\n map(list => (list as any).map(summary =>\r\n Serializable.extendObjectFromResponseObject(new SummarySave(), summary)\r\n )),\r\n tap(list => {\r\n note.summary = list;\r\n })\r\n );\r\n } else {\r\n source = this.judgmentService.getSummaryListObserver(note.case_id)\r\n .pipe(\r\n map(list => (list as any).map(summary =>\r\n Serializable.extendObjectFromResponseObject(new SummarySave(), summary)\r\n )),\r\n tap(list => {\r\n note.summary = list;\r\n })\r\n );\r\n }\r\n\r\n\r\n if (note.summary) {\r\n console.log('note-summary');\r\n source = of(note.summary);\r\n }\r\n this.summaryWindowService.loadingSummaryList = true;\r\n source.subscribe(sl => {\r\n const summaryBlock = {};\r\n sl.forEach((summary: SummarySave) => {\r\n if (!summaryBlock[summary.summary_block_index]) {\r\n const block = new SummaryBlock(summaryListService);\r\n block.blockIndex = summary.summary_block_index;\r\n summaryBlock[summary.summary_block_index] = block;\r\n }\r\n });\r\n const summaryBlockList = [];\r\n summaryListService.setupEditorMode();\r\n summaryListService.disableCancelSelect = false;\r\n summaryListService.isCopySummaryLoginAlert = false;\r\n // summaryListService.disableBottomMenu = soption.disableBottomMenu;\r\n // summaryListService.disableTopRightMenu = soption.disableTopRightMenu;\r\n // summaryListService.disableTextCopy = soption.disableTextCopy;\r\n // summaryListService.disableTypeSelect = soption.disableTypeSelect;\r\n // summaryListService.disableTextEdit = soption.disableTextEdit;\r\n // summaryListService.disableTagEdit = soption.disableTagEdit;\r\n // summaryListService.disableCancelSelect = soption.disableCancelSelect;\r\n // summaryListService.disableGistEdit = soption.disableGistEdit;\r\n\r\n Object.keys(summaryBlock).forEach(key => {\r\n summaryBlockList.push(summaryBlock[key]);\r\n });\r\n summaryBlockList.sort((a, b) => a.blockIndex - b.blockIndex);\r\n\r\n sl.forEach((summarySave: SummarySave) => {\r\n const summary = SummaryConvert.saveToSummary(\r\n summarySave,\r\n summaryBlock[summarySave.summary_block_index],\r\n summaryListService,\r\n null\r\n );\r\n\r\n // summary.onComponentInit = (_summary) => {\r\n // // 全面複製設定, 自己的筆記,有編輯權限\r\n // _summary.disableCopySummaryToggle = false;\r\n // _summary.disableTopCopySummaryButton = true;\r\n // _summary.isOpenCopy = _summary.summary.isOpenCopy;\r\n\r\n // // 學習紀錄設定\r\n // if (_summary.summary.learnTrainingTitle\r\n // && _summary.summary.learnTrainingContent) {\r\n // // 自己的筆記,有編輯權限\r\n // _summary.disableLearnTrainingToggle = false;\r\n // _summary.disableLearnTrainingButton = true;\r\n // _summary.isOpenCopyLearnTraining = _summary.summary.learnTrainingOpenCopy;\r\n // }\r\n // };\r\n\r\n summary.summaryBlock.list.push(summary);\r\n });\r\n\r\n summaryBlockList.forEach(block => {\r\n block.list.sort((a, b) => a.index - b.index);\r\n summaryListService.summaryBlockList.push(block);\r\n });\r\n summaryListService.recalcAllSummaryOrder();\r\n\r\n console.log('setup list summary', summaryListService.summaryBlockList);\r\n this.summaryWindowService.loadingSummaryList = false;\r\n\r\n // 設定摘要清單過濾\r\n const filterSetting: SummaryFilterSetting = new SummaryFilterSetting();\r\n filterSetting.displayModeId = SummaryFilterDisplayModeId.All;\r\n filterSetting.selectedTypes = [];\r\n filterSetting.keyword = '';\r\n const summaryTypes: { [key: string]: SummaryTypeId } = {};\r\n sl.forEach((summarySave: SummarySave) => {\r\n summaryTypes[SummaryTypeId[summarySave.summary_type_id]] = summarySave.summary_type_id;\r\n });\r\n filterSetting.selectedTypes = Object.keys(summaryTypes)\r\n .map(key => summaryTypes[key]);\r\n this.summaryWindowService.selectedSummaryType = SummaryType.summaryTypeAll;\r\n\r\n if (summaryTypeItem != null\r\n && summaryTypeItem.list_type !== NoteSummaryListType.Bookmark\r\n && this.summaryWindowService.selectedSummaryType) {\r\n this.summaryWindowService.selectedSummaryType = SummaryType.typeDict[SummaryTypeId[summaryTypeItem.item_type]];\r\n filterSetting.selectedTypes = [this.summaryWindowService.selectedSummaryType.id];\r\n }\r\n\r\n\r\n this.summaryWindowService.searchedKeyword = '';\r\n this.summaryWindowService.summaryListService.updateSummaryListShow(filterSetting);\r\n });\r\n };\r\n\r\n /** 更新摘要 */\r\n soption.updateSummary = (summary: Summary) => {\r\n if (summary.isNewSummary) { return; }\r\n\r\n const saveRequest = SummaryConvert.summaryToSave(summary);\r\n if (summary.linkStartTextIndex > -1) {\r\n saveRequest.summary_link_range = [summary.linkStartTextIndex, summary.linkEndTextIndex].join(',');\r\n }\r\n if ((note as any).case_base === 'indictment') {\r\n this.indictmentService.updateSummaryObserver(note.case_id, saveRequest).subscribe();\r\n } else {\r\n this.judgmentService.updateSummaryObserver(note.case_id, saveRequest).subscribe();\r\n }\r\n };\r\n /** 新增摘要 */\r\n soption.addSummary = (summary: Summary) => {\r\n const saveRequest = SummaryConvert.summaryToSave(summary);\r\n let addSummary$: Observable = null;\r\n if ((note as any).case_base === 'indictment') {\r\n addSummary$ = this.indictmentService.addSummaryObserver(note.case_id, saveRequest);\r\n } else {\r\n addSummary$ = this.judgmentService.addSummaryObserver(note.case_id, saveRequest);\r\n }\r\n addSummary$.subscribe(result => {\r\n if (result == SaveResultStatusId.ReachSummarySaveLimit) {\r\n PayInfoOverSaveLimitPopupComponent.open(this.matDialog, 'summary');\r\n }\r\n });\r\n };\r\n /** 刪除摘要 */\r\n soption.deleteSummary = (delete_list: Summary[]) => {\r\n const request: SummaryDeleteRequest = new SummaryDeleteRequest();\r\n request.case_id = note.case_id;\r\n request.summary_id_list = delete_list.map(s => s.summaryId);\r\n request.summary_id_sn = {};\r\n const currentList = this.summaryWindowService.summaryListService.getFlatSummaryList();\r\n currentList.forEach(s => {\r\n request.summary_id_sn[s.summaryId] = [s.summaryBlock.blockIndex, s.index];\r\n });\r\n\r\n if ((note as any).case_base === 'indictment') {\r\n this.indictmentService.deleteSummaryObserver(request).subscribe();\r\n } else {\r\n this.judgmentService.deleteSummaryObserver(request).subscribe();\r\n }\r\n };\r\n /** 排序摘要 */\r\n soption.updateSummaryListOrder = (list: Summary[]) => {\r\n const request: SummaryListOrderRequest = new SummaryListOrderRequest();\r\n request.case_id = note.case_id;\r\n request.summary_id_sn = {};\r\n list.forEach(s => {\r\n request.summary_id_sn[s.summaryId] = [s.summaryBlock.blockIndex, s.index];\r\n });\r\n if ((note as any).case_base === 'indictment') {\r\n this.indictmentService.updateSummaryListOrderObserver(request).subscribe();\r\n } else {\r\n this.judgmentService.updateSummaryListOrderObserver(request).subscribe();\r\n }\r\n };\r\n /** 摘要是否可新增檢查 */\r\n soption.beforeAddSummaryCheck = () => {\r\n if (this.judgmentService.saveStatus.IsReachSummarySaveLimitTotal()) {\r\n PayInfoOverSaveLimitPopupComponent.open(this.matDialog, 'summary');\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n\r\n this.summaryWindowService._option = soption;\r\n this.summaryWindowService.showWindow();\r\n }\r\n\r\n\r\n\r\n\r\n openPrintPopup(note: any): void {\r\n if (this.memberService.permissions.judgment_print === '1') {\r\n this.openPrintConfigPopup(note);\r\n } else {\r\n this.openPrintPermissionPopup();\r\n }\r\n }\r\n openPrintConfigPopup(note: any): void {\r\n // this.selectNote(note, 'print');\r\n this.showPrintPopupNote = note;\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PrintConfigPopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n dlRef.afterClosed().subscribe(() => {\r\n // this.clearSelectedNote();\r\n this.showPrintPopupNote = null;\r\n });\r\n if (note.case_content_type == 'pdf') {\r\n dlRef.componentInstance.isFileFulltext = true;\r\n dlRef.componentInstance.printConfig.font = false;\r\n dlRef.componentInstance.printConfig.rownumber = false;\r\n }\r\n dlRef.componentInstance.note_id = note.note_id;\r\n dlRef.componentInstance.url = () => {\r\n const optionArray = [\r\n dlRef.componentInstance.printConfig.fulltext ? '1' : '0',\r\n dlRef.componentInstance.printConfig.summary ? '1' : '0',\r\n dlRef.componentInstance.printConfig.font ? '1' : '0',\r\n dlRef.componentInstance.printConfig.rownumber ? '1' : '0',\r\n dlRef.componentInstance.printConfig.homepage ? '1' : '0',\r\n ];\r\n const optionText: string = optionArray.join().replace(/,/g, '');\r\n let url = '';\r\n if (note.case_base === 'judgment') {\r\n url = 'print/judgment/' + note.note_id + '?option=' + optionText;\r\n } else if (note.case_base === 'indictment') {\r\n url = 'print/indictment/' + note.note_id + '?option=' + optionText;\r\n }\r\n return url;\r\n };\r\n }\r\n // 沒權限也不會有這按鈕出現\r\n openPrintPermissionPopup(): void {\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PrintPermissionPopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n }\r\n\r\n\r\n openPutinNotePopup(note: JudgmentCase): void {\r\n\r\n\r\n\r\n // this.selectNote(note, 'putin-team');\r\n this.showCloneToTeamPopupNote = note;\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PutInNotePopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n dlRef.afterClosed().subscribe(() => {\r\n // this.clearSelectedNote();\r\n this.showCloneToTeamPopupNote = null;\r\n });\r\n const c = dlRef.componentInstance;\r\n c.is_loading = true;\r\n this.judgmentService.getNotePutinTeamObserver(note.case_base, note.note_id)\r\n .subscribe((v) => {\r\n console.log(v);\r\n c.team_list = v;\r\n c.is_loading = false;\r\n });\r\n c.onSubmit = () => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n const selectedTeamList = c.getSelectedTeamList();\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.CopyNote);\r\n if (selectedTeamList.length > 0) {\r\n this.judgmentService.copyNoteToTeamObserver(\r\n note.case_base,\r\n note.note_id,\r\n selectedTeamList.map(t => t.team_id),\r\n false)\r\n // .pipe(\r\n // tap(result => {\r\n // }),\r\n // )\r\n .subscribe((result) => {\r\n console.log(result);\r\n const copyResult: number = result.copy_result;\r\n if (copyResult === 1) {\r\n note.putin_team_count = result.note_in_team_count[note.note_id];\r\n this.openPutinNoteSuccessPopup(note);\r\n } else if (copyResult === 2) {\r\n this.openPutinNoteCheckPopup(note, selectedTeamList);\r\n }\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.CopyNote);\r\n c.closePopup();\r\n });\r\n }\r\n };\r\n\r\n // c.team_list = NotePutInTeam.convertFromNotePutinTeamObject(note.putin_team);\r\n }\r\n openPutinNoteCheckPopup(note: JudgmentCase, selectedTeamList: NotePutInTeam[]): void {\r\n this.showCloneToTeamCheckPopupNote = note;\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PutInNoteCheckPopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n dlRef.afterClosed().subscribe(() => {\r\n this.showCloneToTeamPopupNote = null;\r\n });\r\n const c = dlRef.componentInstance;\r\n c.onConfirm = () => {\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.CopyNote);\r\n this.judgmentService.copyNoteToTeamObserver(\r\n note.case_base,\r\n note.note_id,\r\n selectedTeamList.map(t => t.team_id),\r\n true\r\n )\r\n .subscribe((result) => {\r\n console.log(result);\r\n const copyResult: number = result.copy_result;\r\n if (copyResult === 1) {\r\n this.openPutinNoteSuccessPopup(note);\r\n note.putin_team_count = result.note_in_team_count[note.note_id];\r\n } else if (copyResult === 2) {\r\n this.openPutinNoteCheckPopup(note, selectedTeamList);\r\n }\r\n\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.CopyNote);\r\n c.closePopup();\r\n });\r\n c.closePopup();\r\n };\r\n }\r\n openPutinNoteSuccessPopup(note: JudgmentCase): void {\r\n this.showCloneToTeamSuccessPopupNote = note;\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PutInNoteSuccessPopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n dlRef.afterClosed().subscribe(() => {\r\n this.showCloneToTeamSuccessPopupNote = null;\r\n });\r\n }\r\n\r\n checkinNote(note: any, status: any): void {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n note.checkInCase(1); note.toggleShowCheckInMenu();\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 打卡\r\n {{(note.checkInTotalCount||0).toLocaleString()}}\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
綠燈
\r\n
\r\n
\r\n
\r\n
橘燈
\r\n
\r\n
\r\n
\r\n
紅燈
\r\n
\r\n
\r\n
\r\n
詳細資料
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
置入團隊
\r\n
\r\n
0?'has-on':'')]\">
\r\n
\r\n 已置入 \r\n {{note.putin_team_count}}\r\n 個團隊\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
匯出
\r\n
智慧列印
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{(note.share_info?'開啟':'關閉')}}
\r\n
分享
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
刪除
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
序號
\r\n
{{note.sn}}
\r\n
\r\n
\r\n
類別
\r\n
\r\n
\r\n
{{note.category ? note.category.text : '未分類'}}
\r\n
\r\n
\r\n
\r\n
項目
\r\n
\r\n
\r\n
{{note.subcategory ? note.subcategory.text : '未分項'}}
\r\n
\r\n
\r\n
\r\n
題目
\r\n
\r\n
\r\n
\r\n
\r\n
】\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
重新命名
\r\n
\r\n
\r\n
\r\n
開啟筆記
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
屬性
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{note.case_base==='indictment'?'檢察署及案號':'法院及案號'}}
\r\n
\r\n {{getCourtName(note)}}\r\n \r\n
{{note.case_number[0]}}年度{{note.case_number[1]}}字第{{note.case_number[2]}}號\r\n
\r\n
\r\n
\r\n
案由
\r\n
{{note.case_reason}}
\r\n
\r\n
\r\n
{{note.case_base==='indictment'?'偵結日期':'裁判日期'}}
\r\n
\r\n {{(note.judg_date[0]>1911?note.judg_date[0]-1911:note.judg_date[0])}}/{{appCommonService.padNumber(note.judg_date[1])}}/{{appCommonService.padNumber(note.judg_date[2])}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
爭點整理
\r\n
\r\n
\r\n
({{issueItem.sn+1}})
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
保存日期
\r\n
{{convertTimeText(note.edit_date)}}
\r\n
\r\n
\r\n
\r\n
爭點簡答
\r\n
\r\n
\r\n
隨意備註
\r\n
\r\n
\r\n
\r\n
\r\n
({{issueItem.sn+1}})
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
案件標籤
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
編輯
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{summaryTypeItem.count}}
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, Input, OnDestroy, ViewChild, Output, EventEmitter } from '@angular/core';\r\nimport { JudgmentCase } from '../judgment-case';\r\nimport { JudgmentService } from '../judgment.service';\r\nimport { JudgmentProperty } from '../judgment-property';\r\nimport { AppCommonService } from 'projects/desktop/src/app/app-common.service';\r\nimport { DetailInfoClickWindowComponent } from 'projects/lwlib/src/detail-info-click-window/detail-info-click-window.component';\r\nimport { SearcherKeywordKind } from 'projects/lwlib/src/keyword-searcher/searcher-keyword-kind';\r\nimport { JudgmentComponent } from '../judgment.component';\r\nimport { EditCategoryTabId } from 'projects/lwlib/src/edit-category-popup/edit-category-tab-id';\r\nimport { Subscription, forkJoin, of, Observable } from 'rxjs';\r\nimport { DeleteConfirmPopupOpenerService } from 'projects/lwlib/src/delete-confirm-popup/delete-confirm-popup-opener.service';\r\nimport { EditCategoryPopupOpenerService } from 'projects/lwlib/src/edit-category-popup/edit-category-popup-opener.service';\r\nimport { EditCategoryPopupService } from 'projects/lwlib/src/edit-category-popup/edit-category-popup.service';\r\nimport { CaseType } from 'projects/lwlib/src/personal-config-popup/personal-config-popup.service';\r\nimport { EditCategoryPopupConfirmData } from 'projects/lwlib/src/edit-category-popup/edit-category-popup-confirm-data';\r\nimport { RenamePopupOpenerService } from 'projects/lwlib/src/rename-popup/rename-popup-opener.service';\r\nimport { DeleteConfirmPopupType } from 'projects/lwlib/src/delete-confirm-popup/delete-confirm-popup-type';\r\nimport { LoadingIconService } from 'projects/lwlib/src/loading-icon/loading-icon.service';\r\nimport { ActionName } from 'projects/lwlib/src/action-name';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { ComposeType } from 'projects/lwlib/src/compose-search-popup/compose-type';\r\nimport { DetailInfoClickWindowOption } from 'projects/lwlib/src/detail-info-click-window/detail-info-click-window-option';\r\nimport { DetailInfoClickWindowTabId } from 'projects/lwlib/src/detail-info-click-window/detail-info-click-window-tab-id.enum';\r\nimport { CaseTagPopupOpenerService } from 'projects/lwlib/src/case-tag-popup/case-tag-popup-opener.service';\r\nimport { CaseTag } from '../case-tag';\r\nimport { CommentPopupOpenerService } from 'projects/lwlib/src/comment-popup/comment-popup-opener.service';\r\nimport { EditCategoryPopupOption } from 'projects/lwlib/src/edit-category-popup/edit-category-popup-option';\r\nimport { Issue } from '../issue';\r\nimport { IssueAddRequest } from '../issue-add-request';\r\nimport { IssueEditRequest } from '../issue-edit-request';\r\nimport { IssueDeleteRequest } from '../issue-delete-request';\r\nimport { ShareRequest } from '../share-request';\r\nimport { IssueService } from '../issue.service';\r\nimport { ShareService } from '../share.service';\r\nimport { CommentService } from '../../../comment.service';\r\nimport { Category } from 'projects/lwlib/src/category/category';\r\nimport { Subcategory } from 'projects/lwlib/src/category/subcategory';\r\nimport { Serializable } from 'projects/lwlib/src/serializable';\r\nimport { DetailInfoClickWindowService } from 'projects/lwlib/src/detail-info-click-window/detail-info-click-window.service';\r\nimport { SummaryWindowService } from 'projects/lwlib/src/summary-window/summary-window.service';\r\nimport { DisplayContentBlockBasicInfoOption } from 'projects/lwlib/src/detail-info-click-window/display-content-block-basic-info/display-content-block-basic-info-option';\r\nimport { SummaryTypeItem } from '../summary-type-item';\r\nimport { DisplayContentBlockShareInfoOption } from 'projects/lwlib/src/detail-info-click-window/display-content-block-share-info/display-content-block-share-info-option';\r\nimport { DisplayContentBlockIssueSortOutOption } from 'projects/lwlib/src/detail-info-click-window/display-content-block-issue-sort-out/display-content-block-issue-sort-out-option';\r\nimport { IssueLinkSummaryRequest } from '../issue-link-summary-request';\r\nimport { IssueOrderRequest } from '../issue-order-request';\r\nimport { IssueOrderRequestData } from '../issue-order-request-data';\r\nimport { ElementScroll } from 'projects/lwlib/src/element-scroll/element-scroll';\r\nimport { SummaryWindowOption } from 'projects/lwlib/src/summary-window/summary-window-option';\r\nimport { SummaryType } from 'projects/lwlib/src/summary-list/summary-type';\r\nimport { map, tap, concatMap } from 'rxjs/operators';\r\nimport { SummarySave } from 'projects/lwlib/src/summary-list/summary-save';\r\nimport { SummaryBlock } from 'projects/lwlib/src/summary-list/summary-block';\r\nimport { SummaryConvert } from 'projects/lwlib/src/summary-list/summary-convert';\r\nimport { SummaryFilterSetting } from 'projects/lwlib/src/summary-filter-popup/summary-filter-setting';\r\nimport { SummaryFilterDisplayModeId } from 'projects/lwlib/src/summary-filter-popup/summary-filter-display-mode-id.enum';\r\nimport { SummaryTypeId } from '../summary-type-id.enum';\r\nimport { IssueBlukRequest } from '../issue-bluk-request';\r\nimport { NoteSummaryListType } from '../note-summary-list-type';\r\nimport { SummaryDeleteRequest } from 'projects/lwlib/src/summary-list/summary-delete-request';\r\nimport { SummaryListOrderRequest } from 'projects/lwlib/src/summary-list/summary-list-order-request';\r\nimport { Summary } from 'projects/lwlib/src/summary-list/summary';\r\nimport { DetailInfoClickWindowTab } from 'projects/lwlib/src/detail-info-click-window/detail-info-click-window-tab';\r\nimport { SearcherKeyword } from 'projects/lwlib/src/keyword-searcher/searcher-keyword';\r\nimport { SuccessTipOpenerService } from 'projects/lwlib/src/succes-tip/success-tip-opener.service';\r\nimport { IndictmentService } from 'projects/lwlib/src/indictment/indictment.service';\r\nimport { IndictmentCourtId } from '../../../child-content-judgment-search/judgment-condition/indictment-court-id.enum';\r\nimport { CourtId } from 'projects/lwlib/src/case-type/court-id.enum';\r\nimport { CaseName } from 'projects/lwlib/src/case-type/case-name';\r\nimport { MaterialHelper } from 'projects/lwlib/src/material-helper';\r\nimport { PrintPermissionPopupComponent } from 'projects/lwlib/src/print-permission-popup/print-permission-popup.component';\r\nimport { PrintConfigPopupComponent } from 'projects/lwlib/src/print-config-popup/print-config-popup.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MemberService } from 'projects/lwlib/src/member/member.service';\r\nimport { FilterCondition } from '../../filter-condition';\r\nimport { PutInNoteCheckPopupComponent } from 'projects/lwlib/src/put-in-note-check-popup/put-in-note-check-popup.component';\r\nimport { NotePutInTeam } from 'projects/lwlib/src/team/note-put-in-team';\r\nimport { PutInNotePopupComponent } from 'projects/lwlib/src/put-in-note-popup/put-in-note-popup.component';\r\nimport { PutInNoteSuccessPopupComponent } from 'projects/lwlib/src/put-in-note-success-popup/put-in-note-success-popup.component';\r\nimport { IndictmentCase } from '../../../../root-note-work-indictment/indictment-case';\r\nimport { SaveResultStatusId } from 'projects/lwlib/src/save-count-limit-popup/save-result-status.enum';\r\nimport { PayInfoOverSaveLimitPopupComponent } from 'projects/lwlib/src/pay-info-over-save-limit-popup/pay-info-over-save-limit-popup.component';\r\n\r\n@Component({\r\n selector: 'app-list-simple',\r\n templateUrl: './list-simple.component.html',\r\n styleUrls: ['./list-simple.component.scss']\r\n})\r\nexport class ListSimpleComponent implements OnInit, OnDestroy {\r\n detailInfoClickWindowTabId: any = DetailInfoClickWindowTabId;\r\n editCategoryTab: any = EditCategoryTabId;\r\n searcherKeywordKind: any = SearcherKeywordKind;\r\n\r\n // @Input() importJudgment: JudgmentComponent;\r\n // detailInfoClickWindow: DetailInfoClickWindowComponent;\r\n // @Input() importFilterCondition: FilterCondition;\r\n @Output() noteUpdate: EventEmitter = new EventEmitter();\r\n @Input() noteUpdateObserver: Observable;\r\n @ViewChild(DetailInfoClickWindowComponent, { static: true }) detailInfoClickWindowComponent: DetailInfoClickWindowComponent;\r\n\r\n\r\n // noteList: JudgmentCase[];\r\n get filterCondition(): FilterCondition { return this.judgmentService.filterCondition; }\r\n get noteList(): JudgmentCase[] { return this.judgmentService.storageNoteList; }\r\n\r\n selectedRowElement: Element;\r\n selectedRowBy: string = '';\r\n private _selectedNoteId: string = '';\r\n\r\n enableTeam: boolean = false;\r\n\r\n subscriptions: Subscription;\r\n\r\n lastTabId: DetailInfoClickWindowTabId = DetailInfoClickWindowTabId.BasicInfo;\r\n\r\n // 打卡狀態選單\r\n showCheckinMenuNote: any;\r\n // 打卡詳細資料彈窗\r\n showCheckInPopupNote: any;\r\n // 置入團隊彈窗\r\n showCloneToTeamPopupNote: any;\r\n showCloneToTeamCheckPopupNote: any;\r\n showCloneToTeamSuccessPopupNote: any;\r\n // 顯示列印彈窗\r\n showPrintPopupNote: any;\r\n // 團隊分享、爭點整理、隨意備註、案件標籤視窗\r\n showDetailWindowNote: any;\r\n // 刪除筆記彈窗\r\n showDeleteNotePopupNote: any;\r\n // 編輯筆記名稱談窗\r\n showEditNoteNamePopupNote: any;\r\n // 檔案管理彈窗\r\n showEditCategoryPopupNote: any;\r\n // 編輯案件標籤彈窗\r\n showEditCaseTagPopupNote: any;\r\n // 摘要預覽視窗\r\n showSummaryPreviewWindowNote: any;\r\n\r\n constructor(\r\n public judgmentService: JudgmentService,\r\n private indictmentService: IndictmentService,\r\n public appCommonService: AppCommonService,\r\n private editCategoryPopupService: EditCategoryPopupService,\r\n private deleteConfirmPopupOpenerService: DeleteConfirmPopupOpenerService,\r\n private editCategoryPopupOpenerService: EditCategoryPopupOpenerService,\r\n private detailInfoClickWindowService: DetailInfoClickWindowService,\r\n private summaryWindowService: SummaryWindowService,\r\n private issueService: IssueService,\r\n private commentPopupOpenerService: CommentPopupOpenerService,\r\n private shareService: ShareService,\r\n private commentService: CommentService,\r\n private caseTagPopupOpenerService: CaseTagPopupOpenerService,\r\n private renamePopupOpenerService: RenamePopupOpenerService,\r\n private loadingIconService: LoadingIconService,\r\n private service: AppService,\r\n private successTipOpenerService: SuccessTipOpenerService,\r\n private matDialog: MatDialog,\r\n private memberService: MemberService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.subscriptions = this.judgmentService.noteList$.subscribe(r => {\r\n // this.noteList = r.list;\r\n\r\n // 如果選擇的筆記已經不再清單>清空\r\n if (!this.noteList.find(n => n.case_id === this._selectedNoteId)) {\r\n this.clearSelectedNote();\r\n }\r\n });\r\n\r\n this.enableTeam = this.memberService.memberHeader.has_team;\r\n }\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n\r\n isSelectedNote(note: JudgmentCase): boolean {\r\n return this._selectedNoteId === note.case_id;\r\n }\r\n selectNote(note: JudgmentCase, selectedBy: string): void {\r\n this._selectedNoteId = note.case_id;\r\n this.selectedRowBy = selectedBy;\r\n }\r\n clearSelectedNote(): void {\r\n this._selectedNoteId = '';\r\n this.selectedRowBy = '';\r\n }\r\n\r\n checkShowNoteBorder(note: any): boolean {\r\n let show = false;\r\n\r\n if (this.showCheckinMenuNote == note) { show = true; }\r\n if (this.showCheckInPopupNote == note) { show = true; }\r\n\r\n if (this.showEditCategoryPopupNote == note) { show = true; }\r\n if (this.showEditNoteNamePopupNote == note) { show = true; }\r\n if (this.showDetailWindowNote == note) { show = true; }\r\n if (this.showSummaryPreviewWindowNote == note) { show = true; }\r\n if (this.showPrintPopupNote == note) { show = true; }\r\n if (this.showDeleteNotePopupNote == note) { show = true; }\r\n\r\n if (this.showCloneToTeamPopupNote == note) { show = true; }\r\n if (this.showCloneToTeamCheckPopupNote == note) { show = true; }\r\n if (this.showCloneToTeamSuccessPopupNote == note) { show = true; }\r\n\r\n if (this.showEditCaseTagPopupNote == note) { show = true; }\r\n\r\n return show;\r\n }\r\n\r\n\r\n getCategoryIconStyle(category: Category): any {\r\n if (category) {\r\n const _category = this.judgmentService.categoryList.find(v => v.text === category.text);\r\n if (_category) {\r\n return Category.getIconStyle(_category);\r\n } else {\r\n return Category.getIconStyle(category);\r\n }\r\n }\r\n\r\n return {\r\n backgroundImage: 'url(/assets/img/icon/symbol_question.png)'\r\n };\r\n }\r\n getSubcategoryIconStyle(subcategory: Subcategory): any {\r\n if (subcategory) {\r\n const _subcategory = this.judgmentService.subcategoryList.find(v => v.category_text === subcategory.category_text && v.text === subcategory.text);\r\n if (_subcategory) {\r\n return Subcategory.getIconStyle(_subcategory);\r\n } else {\r\n return Subcategory.getIconStyle(subcategory);\r\n }\r\n }\r\n return {\r\n backgroundImage: 'url(/assets/img/icon/symbol_question.png)'\r\n };\r\n }\r\n\r\n getPropertyIconStyle(property: JudgmentProperty): any {\r\n let iconName = '';\r\n const anyProperty: any = property;\r\n\r\n const style: CSSStyleDeclaration = {} as CSSStyleDeclaration;\r\n let width = null;\r\n // debugger\r\n if (property === JudgmentProperty.Judgment) {\r\n iconName = 'property/s8.png';\r\n } else if (property === JudgmentProperty.Decision) {\r\n iconName = 'property/s9.png';\r\n } else if (property === JudgmentProperty.Other) {\r\n iconName = 'property/s10.png';\r\n } else if (anyProperty === '起訴書') {\r\n iconName = 'property/s23.png';\r\n width = 46;\r\n } else if (anyProperty === '追加起訴書') {\r\n iconName = 'property/s22.png';\r\n width = 60;\r\n } else if (anyProperty === '聲請簡易判決處刑書') {\r\n iconName = 'property/s24.png';\r\n width = 60;\r\n } else if (anyProperty === '併辦意旨書') {\r\n iconName = 'property/s25.png';\r\n width = 60;\r\n } else if (anyProperty === '移送併辦意旨書') {\r\n iconName = 'property/s25.png';\r\n width = 60;\r\n } else if (anyProperty === '其他') {\r\n iconName = 'property/s10.png';\r\n }\r\n\r\n if (!iconName) {\r\n return {};\r\n }\r\n\r\n style['background-image'] = `url(/assets/img/${iconName})`;\r\n if (width != null) {\r\n style.width = `${width}px`;\r\n }\r\n\r\n return style;\r\n }\r\n\r\n getCourtName(note: any): string {\r\n if (note.case_base === 'indictment') {\r\n const icid: string = IndictmentCourtId[note.court_id];\r\n const courtId = CourtId[icid];\r\n const court = CaseName.courtList.find(v => v.court_id === courtId);\r\n return court.list_name;\r\n } else {\r\n return note.court;\r\n }\r\n }\r\n\r\n selectRow(element: Element, selectedBy: string): void {\r\n this.selectedRowElement = element;\r\n this.selectedRowBy = selectedBy;\r\n }\r\n clearSelectedRow(): void {\r\n this.selectedRowElement = null;\r\n this.selectedRowBy = '';\r\n }\r\n\r\n\r\n\r\n openNote(note: JudgmentCase): void {\r\n const query = ['load_save=1'];\r\n const keywords = this.filterCondition.searchKeywords\r\n .filter(k => k.keyword && k.compose !== ComposeType.Not);\r\n const hasSpecKeywords = keywords.filter(k => k.kind === SearcherKeywordKind.PointSummary\r\n || k.kind === SearcherKeywordKind.SummaryTag\r\n || k.kind === SearcherKeywordKind.Bookmark);\r\n if (hasSpecKeywords.length > 0) {\r\n query.push('keywords=' + hasSpecKeywords[0].keyword);\r\n if (hasSpecKeywords[0].kind === SearcherKeywordKind.PointSummary\r\n || hasSpecKeywords[0].kind === SearcherKeywordKind.SummaryTag) {\r\n query.push('searchtype=summary');\r\n } else if (hasSpecKeywords[0].kind === SearcherKeywordKind.Bookmark) {\r\n query.push('searchtype=bookmark');\r\n }\r\n } else {\r\n query.push('searchtype=bookmark');\r\n }\r\n // if (this.service.isDesktop()) {\r\n // query.push('force_desktop=1');\r\n // }\r\n const url: string = this.service.BaseUrlWeb + '/note/' + IndictmentCase.noteTypeName(note) + '/' + note.case_id\r\n + '?' + query.join('&');\r\n window.open(url);\r\n }\r\n openRenamePopup(fromElement: Element, note: JudgmentCase): void {\r\n // this.selectRow(fromElement, 'renamePopup');\r\n // this.selectNote(note, 'renamePopup');\r\n this.showEditNoteNamePopupNote = note;\r\n const componentRef = this.renamePopupOpenerService.openPopup(note.file_subject, note.file_subject2);\r\n\r\n componentRef.instance.confirm.subscribe((newNames: string[]) => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n const anyNote: any = note;\r\n if (anyNote.case_base === 'indictment') {\r\n this.indictmentService.renameNoteObserver(note.note_id, newNames[0], newNames[1]).subscribe(() => {\r\n note.file_subject = newNames[0];\r\n note.file_subject2 = newNames[1];\r\n });\r\n } else {\r\n this.judgmentService.renameNoteObserver(note.note_id, newNames[0], newNames[1]).subscribe(() => {\r\n // 更新清單\r\n // console.log('new name ', newName);\r\n note.file_subject = newNames[0];\r\n note.file_subject2 = newNames[1];\r\n });\r\n }\r\n componentRef.instance.closePopup();\r\n });\r\n componentRef.onDestroy(() => {\r\n // this.clearSelectedRow();\r\n // this.clearSelectedNote();\r\n this.showEditNoteNamePopupNote = null;\r\n });\r\n }\r\n openDeleteConfirmPopup(fromElement: Element, note: JudgmentCase): void {\r\n // this.selectRow(fromElement, 'deleteConfirmPopup');\r\n // this.selectNote(note, 'deleteConfirmPopup');\r\n this.showDeleteNotePopupNote = note;\r\n const componentRef = this.deleteConfirmPopupOpenerService.openPopup(DeleteConfirmPopupType.Note);\r\n\r\n componentRef.instance.confirm.subscribe(() => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n \r\n const anyNote: any = note;\r\n if (anyNote.case_base === 'indictment') {\r\n this.indictmentService.deleteNoteObserver(note.note_id, note.case_id).subscribe(() => {\r\n // 更新清單\r\n this.noteUpdate.emit();\r\n });\r\n } else {\r\n this.judgmentService.deleteNoteObserver(note.note_id, note.case_id).subscribe(() => {\r\n // 更新清單\r\n this.noteUpdate.emit();\r\n });\r\n }\r\n\r\n componentRef.instance.closePopup();\r\n });\r\n\r\n componentRef.onDestroy(() => {\r\n this.showDeleteNotePopupNote = null;\r\n // this.clearSelectedRow();\r\n // this.clearSelectedNote();\r\n });\r\n }\r\n\r\n openEditCategoryPopup(fromElement: Element,\r\n tabId: EditCategoryTabId,\r\n note: JudgmentCase,\r\n ): void {\r\n // this.selectNote(note, 'editCategoryPopup');\r\n this.showEditCategoryPopupNote = note;\r\n\r\n const option: EditCategoryPopupOption = new EditCategoryPopupOption();\r\n option.tab_id = tabId;\r\n\r\n option.get_note_category = () => note.category;\r\n option.get_note_subcategory = () => note.subcategory;\r\n\r\n option.get_category_list = () => this.judgmentService.categoryList;\r\n option.get_subcategory_list = () => this.judgmentService.subcategoryList;\r\n option.pullCategoryListObserver = () => this.judgmentService.pullCategoryListObserver();\r\n option.pullSubcategoryListObserver = () => this.judgmentService.pullSubcategoryListObserver();\r\n option.pullNoteListObserver = () => this.judgmentService.pullStorageNoteListObserver(this.filterCondition);\r\n\r\n option.addCategoryListObserver = (category) => this.judgmentService.addCategoryObserver(category);\r\n option.addSubcategoryListObserver = (subcategory) => this.judgmentService.addSubcategoryObserver(subcategory);\r\n option.editCategoryListObserver = (old_category, new_category) =>\r\n this.judgmentService.editCategoryObserver(old_category, new_category);\r\n option.editSubcategoryListObserver = (category, old_subcategory, new_subcategory) =>\r\n this.judgmentService.editSubcategoryObserver(category, old_subcategory, new_subcategory);\r\n option.deleteCategoryObserver = (text) => this.judgmentService.deleteCategoryObserver(text);\r\n option.deleteSubcategoryObserver = (category, text) => this.judgmentService.deleteSubcategoryObserver(category, text);\r\n option.orderCategoryListObserver = (list) => this.judgmentService.orderCategoryObserver(list);\r\n option.orderSubcategoryListObserver = (list) => this.judgmentService.orderSubcategoryObserver(list);\r\n option.broadcastCategoryUpdateObserver = (exci) => this.judgmentService.broadcastCategoryUpdateObserver(exci);\r\n option.broadcastSubcategoryUpdateObserver = (exci) => this.judgmentService.broadcastSubcategoryUpdateObserver(exci);\r\n\r\n const componentRef = this.editCategoryPopupOpenerService.openPopup(option);\r\n\r\n // 確定置換\r\n componentRef.instance.confirm.subscribe((result: EditCategoryPopupConfirmData) => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n let classifyObserver: Observable;\r\n\r\n // 置換請求\r\n if (IndictmentCase.noteTypeName(note) === 'indictment') {\r\n const request = this.indictmentService.getNoteClassifyRequest(note.note_id, result.category, result.subcategory);\r\n classifyObserver = this.indictmentService.updateNoteClassifyObserver(request);\r\n } else {\r\n const request = this.judgmentService.getNoteClassifyRequest(note.note_id, result.category, result.subcategory);\r\n classifyObserver = this.judgmentService.updateNoteClassifyObserver(request);\r\n }\r\n\r\n if (classifyObserver != null) {\r\n // 讀取動畫\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.EditCategory);\r\n\r\n classifyObserver\r\n .pipe(\r\n concatMap(() => forkJoin(\r\n this.judgmentService.broadcastCategoryUpdateObserver(''),\r\n this.judgmentService.broadcastSubcategoryUpdateObserver(''),\r\n this.judgmentService.pullCategoryListObserver(),\r\n this.judgmentService.pullSubcategoryListObserver(),\r\n )),\r\n concatMap(() => this.noteUpdateObserver)\r\n )\r\n .subscribe({\r\n complete: () => {\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n // 關閉彈窗\r\n componentRef.instance.closePopup();\r\n }\r\n });\r\n }\r\n });\r\n\r\n\r\n\r\n componentRef.onDestroy(() => {\r\n // this.clearSelectedNote();\r\n this.showEditCategoryPopupNote = null;\r\n });\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n // // this.selectRow(fromElement, 'editCategoryPopup');\r\n // this.selectNote(note, 'editCategoryPopup');\r\n // const componentRef = this.editCategoryPopupOpenerService.openPopup(\r\n // tab,\r\n // this.judgmentService,\r\n // note.judgment_id,\r\n // );\r\n\r\n // // 確定選擇類別項目\r\n // componentRef.instance.confirm.subscribe((r: EditCategoryPopupConfirmData) => {\r\n // this.loadingIconService.openFullScreenLoadingIcon(ActionName.EditCategory);\r\n // const request = this.judgmentService.getNoteClassifyRequest(note.judgment_note_id, r.category, r.subcategory);\r\n // this.judgmentService.updateNoteClassifyObserver(request).subscribe(() => {\r\n // this.judgmentService.broadcastCategoryUpdateObserver('').subscribe();\r\n // this.judgmentService.broadcastSubcategoryUpdateObserver('').subscribe();\r\n // this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n // componentRef.instance.closePopup();\r\n\r\n // // // 更新類別項目清單,更新數量用\r\n // // forkJoin(\r\n // // this.judgmentService.pullCategoryListObserver(),\r\n // // this.judgmentService.pullSubcategoryListObserver(),\r\n // // ).subscribe({\r\n // // complete: () => {\r\n // // this.judgmentService.pullPersonalStorageJudgmentFullNoteListObserver(this.importFilterCondition)\r\n // // .subscribe(() => {\r\n // // this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n // // });\r\n\r\n // // note.category = r.category;\r\n // // note.subcategory = r.subcategory;\r\n // // componentRef.instance.closePopup();\r\n // // }\r\n // // });\r\n // });\r\n // });\r\n\r\n // componentRef.onDestroy(() => {\r\n // // this.clearSelectedRow();\r\n // this.clearSelectedNote();\r\n // });\r\n }\r\n\r\n\r\n\r\n private _openCaseTagPopup(\r\n // note_id: string,\r\n note: JudgmentCase,\r\n caseTagList: CaseTag[],\r\n onConfirmSave: (list: CaseTag[]) => void,\r\n onDestroy: () => void\r\n ): void {\r\n const componentRef = this.caseTagPopupOpenerService.openPopup(CaseType.Judgment, caseTagList);\r\n componentRef.instance.confirm.subscribe((list: CaseTag[]) => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n const anyNote: any = note;\r\n if (anyNote.case_base === 'indictment') {\r\n // 更新到S\r\n this.indictmentService.updateNoteCaseTagListObserver(note.note_id, list)\r\n .subscribe(() => {\r\n // 更新本地\r\n if (onConfirmSave) {\r\n onConfirmSave(list);\r\n }\r\n // 關閉彈窗\r\n componentRef.instance.closePopup();\r\n });\r\n\r\n } else {\r\n // 更新到S\r\n this.judgmentService.updateNoteCaseTagListObserver(note.note_id, list)\r\n .subscribe(() => {\r\n // 更新本地\r\n if (onConfirmSave) {\r\n onConfirmSave(list);\r\n }\r\n // 關閉彈窗\r\n componentRef.instance.closePopup();\r\n });\r\n }\r\n });\r\n componentRef.onDestroy(() => {\r\n onDestroy();\r\n });\r\n }\r\n private _openCommentPopup(\r\n note: JudgmentCase,\r\n comment: string,\r\n onConfirmSave: (comment: string) => void\r\n ): void {\r\n const componentRef = this.commentPopupOpenerService.openPopup('隨意備註', comment);\r\n const anyNote: any = note;\r\n if (anyNote.case_base === 'indictment') {\r\n componentRef.instance.submit.subscribe(new_comment => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n componentRef.instance.closePopup();\r\n return;\r\n }\r\n\r\n this.commentService.updateNoteCommentIndictmentObserver(note.case_id, new_comment)\r\n .subscribe(() => {\r\n if (onConfirmSave) {\r\n onConfirmSave(new_comment);\r\n }\r\n // 關閉彈窗\r\n componentRef.instance.closePopup();\r\n });\r\n });\r\n } else {\r\n componentRef.instance.submit.subscribe(new_comment => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n this.commentService.updateNoteCommentJudgmentObserver(note.case_id, new_comment)\r\n .subscribe(() => {\r\n if (onConfirmSave) {\r\n onConfirmSave(new_comment);\r\n }\r\n // 關閉彈窗\r\n componentRef.instance.closePopup();\r\n });\r\n });\r\n }\r\n }\r\n\r\n showDetailInfoClickWindow(fromElement: Element, tabId: DetailInfoClickWindowTabId, noteData: any): void {\r\n // this.selectNote(noteData, 'detailInfoClickWindow');\r\n this.showDetailWindowNote = noteData;\r\n this.showSummaryPreviewWindowNote = null;\r\n const note: JudgmentCase = noteData as JudgmentCase;\r\n\r\n const option: DetailInfoClickWindowOption = new DetailInfoClickWindowOption();\r\n if (tabId === DetailInfoClickWindowTabId.None) {\r\n tabId = this.lastTabId;\r\n } else {\r\n this.lastTabId = tabId;\r\n }\r\n option.tab_id = tabId;\r\n\r\n option.note_id = note.note_id;\r\n option.caseType = CaseType.Judgment;\r\n option.filterCondition = this.filterCondition;\r\n\r\n option.onWindowShow = () => {\r\n // console.log('show window');\r\n this.detailInfoClickWindowService.translateX = 0;\r\n this.detailInfoClickWindowService.windowShowing = true;\r\n this.detailInfoClickWindowService.windowHideLock = true;\r\n };\r\n option.onWindowAfterShow = () => {\r\n this.detailInfoClickWindowService.windowShowing = false;\r\n this.detailInfoClickWindowService.windowHideLock = false;\r\n this.detailInfoClickWindowService.windowShowed = true;\r\n };\r\n option.onWindowHide = () => {\r\n this.showDetailWindowNote = null;\r\n // console.log('hide window');\r\n if (!this.detailInfoClickWindowService.windowHideLock) {\r\n this.detailInfoClickWindowService.windowHiding = true;\r\n this.detailInfoClickWindowService.translateX = -700;\r\n this.clearSelectedNote();\r\n }\r\n\r\n };\r\n option.onWindowAfterHide = () => {\r\n if (!this.detailInfoClickWindowService.windowHideLock) {\r\n this.detailInfoClickWindowService.windowHiding = false;\r\n this.detailInfoClickWindowService.windowShowed = false;\r\n }\r\n };\r\n option.onTabChange = (tab: DetailInfoClickWindowTab) => {\r\n this.lastTabId = tab.id;\r\n };\r\n\r\n /** 基本資訊 */\r\n option.basicInfoOption = new DisplayContentBlockBasicInfoOption();\r\n option.basicInfoOption.rootOption = option;\r\n option.basicInfoOption.reason = note.case_reason;\r\n option.basicInfoOption.get_edit_date = () => note.edit_date;\r\n option.basicInfoOption.get_summaryTypeItemList = () => note.summary_type_item_list;\r\n option.basicInfoOption.get_case_tag_list = () => note.case_tag_list;\r\n option.basicInfoOption.get_comment = () => note.comment;\r\n option.basicInfoOption.editCaseTag = () => {\r\n this._openCaseTagPopup(\r\n note,\r\n note.case_tag_list,\r\n (list) => note.case_tag_list = list,\r\n () => { }\r\n );\r\n };\r\n option.basicInfoOption.editComment = () => {\r\n this._openCommentPopup(\r\n note,\r\n note.comment,\r\n (comment) => note.comment = comment\r\n );\r\n };\r\n option.basicInfoOption.openSummaryPreviewWindow = (summaryTypeItem: SummaryTypeItem) => {\r\n this.detailInfoClickWindowService.hideWindow();\r\n this.showSummaryPreviewWindow(note, summaryTypeItem);\r\n };\r\n\r\n\r\n /** 分享資訊 */\r\n option.shareInfoOption = new DisplayContentBlockShareInfoOption();\r\n option.shareInfoOption.rootOption = option;\r\n option.shareInfoOption.share_id = note.share_info ? note.share_info.share_id : '';\r\n option.shareInfoOption.share_click_count = note.share_info ? note.share_info.click_count : 0;\r\n option.shareInfoOption.updateNoteShare = (enable: boolean) => {\r\n\r\n const request: ShareRequest = new ShareRequest();\r\n request.type = CaseType.Judgment;\r\n request.note_id = note.note_id;\r\n request.enable = enable;\r\n const anyNote: any = note;\r\n if (anyNote.case_base === 'indictment') {\r\n this.shareService.shareNoteIndictmentObserver(request).subscribe(si => {\r\n note.share_info = si;\r\n if (si) {\r\n option.shareInfoOption.share_id = si.share_id;\r\n option.shareInfoOption.share_click_count = si.click_count;\r\n }\r\n });\r\n } else {\r\n this.shareService.shareNoteJudgmentObserver(request).subscribe(si => {\r\n note.share_info = si;\r\n if (si) {\r\n option.shareInfoOption.share_id = si.share_id;\r\n option.shareInfoOption.share_click_count = si.click_count;\r\n }\r\n });\r\n }\r\n };\r\n\r\n /** 爭點整理 */\r\n option.issueSortOutOption = new DisplayContentBlockIssueSortOutOption();\r\n option.issueSortOutOption.rootOption = option;\r\n option.issueSortOutOption.summaryWindowService = this.summaryWindowService;\r\n option.issueSortOutOption.get_issue_list = () => note.issue_list;\r\n option.issueSortOutOption.addIssue = (issue: Issue) => {\r\n const request = new IssueAddRequest();\r\n request.case_id = note.case_id;\r\n request.sn = issue.sn;\r\n request.issue_text = issue.issue_text;\r\n request.answer_text = issue.answer_text;\r\n\r\n const anyNote: any = note;\r\n if (anyNote.case_base === 'indictment') {\r\n const s = this.issueService.addIndictmentObserver(request).subscribe(() => {\r\n const callback = () => {\r\n setTimeout(() => {\r\n const newIssue = note.issue_list[note.issue_list.length - 1];\r\n ElementScroll.intoView(document.getElementById(newIssue.id), 0);\r\n setTimeout(() => {\r\n newIssue.highlightState = 'play';\r\n setTimeout(() => {\r\n newIssue.highlightState = 'play';\r\n });\r\n });\r\n });\r\n };\r\n this.indictmentService.updateNoteData(note, note.case_id, callback);\r\n // this.indictmentService.updateNoteDataStorage(note.case_id, callback);\r\n });\r\n } else {\r\n const s = this.issueService.addJudgmentObserver(request).subscribe(() => {\r\n const callback = () => {\r\n setTimeout(() => {\r\n const newIssue = note.issue_list[note.issue_list.length - 1];\r\n ElementScroll.intoView(document.getElementById(newIssue.id), 0);\r\n setTimeout(() => {\r\n newIssue.highlightState = 'play';\r\n setTimeout(() => {\r\n newIssue.highlightState = 'play';\r\n });\r\n });\r\n });\r\n };\r\n this.judgmentService.updateNoteDataStorage(note.case_id, callback);\r\n });\r\n }\r\n };\r\n option.issueSortOutOption.editIssue = (issue: Issue) => {\r\n const request = new IssueEditRequest();\r\n request.case_id = note.case_id;\r\n request.issue = issue;\r\n\r\n const anyNote: any = note;\r\n if (anyNote.case_base === 'indictment') {\r\n const s = this.issueService.updateIndictmentObserver(request).subscribe(() => {\r\n this.issueService.getIndictmentIssueListObserver(note.note_id)\r\n .subscribe((list: Issue[]) => {\r\n note.issue_list = list.map(v =>\r\n Serializable.extendObjectFromResponseObject(new Issue(), v)\r\n );\r\n s.unsubscribe();\r\n });\r\n });\r\n } else {\r\n const s = this.issueService.updateJudgmentObserver(request).subscribe(() => {\r\n this.issueService.getJudgmentIssueListObserver(note.note_id)\r\n .subscribe((list: Issue[]) => {\r\n note.issue_list = list.map(v =>\r\n Serializable.extendObjectFromResponseObject(new Issue(), v)\r\n );\r\n s.unsubscribe();\r\n });\r\n });\r\n }\r\n };\r\n option.issueSortOutOption.deleteIssue = (issue: Issue) => {\r\n const request = new IssueDeleteRequest();\r\n request.case_id = note.case_id;\r\n request.sn = issue.sn;\r\n\r\n const anyNote: any = note;\r\n if (anyNote.case_base === 'indictment') {\r\n const s = this.issueService.deleteIndictmentObserver(request).subscribe(() => {\r\n // this.indictmentService.updateNoteDataStorage(note.case_id);\r\n this.indictmentService.updateNoteData(note, note.case_id);\r\n });\r\n } else {\r\n const s = this.issueService.deleteJudgmentObserver(request).subscribe(() => {\r\n this.judgmentService.updateNoteDataStorage(note.case_id);\r\n });\r\n }\r\n };\r\n option.issueSortOutOption.linkSummary = (issue: Issue) => {\r\n const request = new IssueLinkSummaryRequest();\r\n request.case_id = note.case_id;\r\n request.issue_id = issue.id;\r\n request.summary_id = issue.link_summary_id;\r\n\r\n const anyNote: any = note;\r\n if (anyNote.case_base === 'indictment') {\r\n this.issueService.linkSummaryIndictmentObserver(request).subscribe(() => {\r\n // this.indictmentService.updateNoteDataStorage(note.case_id);\r\n this.indictmentService.updateNoteData(note, note.case_id);\r\n });\r\n } else {\r\n this.issueService.linkSummaryJudgmentObserver(request).subscribe(() => {\r\n this.judgmentService.updateNoteDataStorage(note.case_id);\r\n });\r\n }\r\n };\r\n option.issueSortOutOption.orderIssue = (callback: () => void) => {\r\n const request: IssueOrderRequest = new IssueOrderRequest();\r\n request.case_id = note.case_id;\r\n request.order_list = [];\r\n note.issue_list.forEach(i => {\r\n const orderData: IssueOrderRequestData = new IssueOrderRequestData();\r\n orderData.sn = i.sn;\r\n orderData.id = i.id;\r\n request.order_list.push(orderData);\r\n });\r\n\r\n const anyNote: any = note;\r\n if (anyNote.case_base === 'indictment') {\r\n this.issueService.orderIndictmentObserver(request).subscribe(() => {\r\n if (callback) { callback(); }\r\n });\r\n } else {\r\n this.issueService.orderJudgmentObserver(request).subscribe(() => {\r\n if (callback) { callback(); }\r\n });\r\n }\r\n };\r\n option.issueSortOutOption.pullIssueList = () => {\r\n const anyNote: any = note;\r\n if (anyNote.case_base === 'indictment') {\r\n this.issueService.getIndictmentIssueListObserver(note.note_id)\r\n .subscribe((list: Issue[]) => {\r\n note.issue_list = list;\r\n });\r\n } else {\r\n this.issueService.getJudgmentIssueListObserver(note.note_id)\r\n .subscribe((list: Issue[]) => {\r\n note.issue_list = list;\r\n });\r\n }\r\n };\r\n option.issueSortOutOption.moveUpIssue = (issue: Issue) => {\r\n const prevIssueIndex = issue.sn - 1;\r\n const prevIssue = note.issue_list[prevIssueIndex];\r\n const prevSn = prevIssue.sn;\r\n prevIssue.sn = issue.sn;\r\n issue.sn = prevSn;\r\n note.issue_list.splice(prevIssueIndex, 2, issue, prevIssue);\r\n option.issueSortOutOption.disableMoveOption = true;\r\n issue.playHighlight();\r\n setTimeout(() => {\r\n ElementScroll.intoView(document.getElementById(issue.id), 0);\r\n });\r\n option.issueSortOutOption.orderIssue(() => {\r\n setTimeout(() => {\r\n option.issueSortOutOption.disableMoveOption = false;\r\n }, 300);\r\n });\r\n };\r\n option.issueSortOutOption.moveDownIssue = (issue: Issue) => {\r\n // console.log('issue move down');\r\n\r\n const sourceIndex = issue.sn;\r\n const nextIssueIndex = issue.sn + 1;\r\n const nextIssue = note.issue_list[nextIssueIndex];\r\n const nextSn = nextIssue.sn;\r\n nextIssue.sn = issue.sn;\r\n issue.sn = nextSn;\r\n note.issue_list.splice(sourceIndex, 2, nextIssue, issue);\r\n option.issueSortOutOption.disableMoveOption = true;\r\n issue.playHighlight();\r\n setTimeout(() => {\r\n ElementScroll.intoView(document.getElementById(issue.id), 0);\r\n });\r\n option.issueSortOutOption.orderIssue(() => {\r\n setTimeout(() => {\r\n option.issueSortOutOption.disableMoveOption = false;\r\n }, 300);\r\n });\r\n };\r\n option.issueSortOutOption.showSummaryWindow = () => {\r\n if (!this.summaryWindowService.windowShowed) {\r\n option.issueSortOutOption.issueLinkBackup = {};\r\n option.issueSortOutOption.issueAnswerBackup = {};\r\n\r\n if (note.issue_list\r\n && note.issue_list.length) {\r\n note.issue_list.forEach(i => {\r\n option.issueSortOutOption.issueLinkBackup[i.id] = i.link_summary_id;\r\n option.issueSortOutOption.issueAnswerBackup[i.id] = i.answer_text;\r\n });\r\n }\r\n\r\n console.log('backup source links', option.issueSortOutOption.issueLinkBackup);\r\n }\r\n const soption = new SummaryWindowOption();\r\n option.issueSortOutOption.summaryWindowOption = soption;\r\n\r\n // soption.disableBottomMenu = true;\r\n // soption.disableTopRightMenu = true;\r\n // soption.disableTextCopy = true;\r\n // soption.disableTypeSelect = true;\r\n // soption.disableTextEdit = true;\r\n // soption.disableTagEdit = true;\r\n // soption.disableCancelSelect = true;\r\n // soption.disableGistEdit = true;\r\n soption.selectedSummaryId = option.issueSortOutOption.linkingIssue.link_summary_id;\r\n\r\n soption.title = '連結摘要';\r\n // soption.isLinkIssueMode = true;\r\n soption.onWindowShow = () => {\r\n this.summaryWindowService.translateX = 600;\r\n this.summaryWindowService.windowShowing = true;\r\n this.summaryWindowService.windowHideLock = true;\r\n this.summaryWindowService.summaryListService.linkMode = true;\r\n soption.updateSummaryList();\r\n };\r\n soption.onWindowAfterShow = () => {\r\n this.summaryWindowService.windowShowing = false;\r\n this.summaryWindowService.windowHideLock = false;\r\n this.summaryWindowService.windowShowed = true;\r\n };\r\n soption.onWindowHide = () => {\r\n if (!this.summaryWindowService.windowHideLock) {\r\n this.summaryWindowService.windowHiding = true;\r\n this.summaryWindowService.translateX = -700;\r\n option.issueSortOutOption.linkingIssue = null;\r\n option.issueSortOutOption.enableLinkConfirmButton = false;\r\n note.issue_list.forEach(i => {\r\n i.link_summary_id = option.issueSortOutOption.issueLinkBackup[i.id];\r\n i.answer_text = option.issueSortOutOption.issueAnswerBackup[i.id];\r\n });\r\n this.summaryWindowService.summaryListService.linkMode = false;\r\n\r\n if (this.summaryWindowService.component) {\r\n this.summaryWindowService.component.keyword = '';\r\n }\r\n }\r\n };\r\n soption.onWindowAfterHide = () => {\r\n if (!this.summaryWindowService.windowHideLock) {\r\n this.summaryWindowService.windowHiding = false;\r\n this.summaryWindowService.windowShowed = false;\r\n this.summaryWindowService.searchedKeyword = '';\r\n this.summaryWindowService.selectedSummaryType = SummaryType.summaryTypeAll;\r\n }\r\n };\r\n /** 更新摘要清單 */\r\n soption.updateSummaryList = () => {\r\n const anyNote: any = note;\r\n let source: Observable;\r\n if (anyNote.case_base === 'indictment') {\r\n source = this.indictmentService.getSummaryListObserver(note.case_id)\r\n .pipe(\r\n map(list => (list as any).map(summary =>\r\n Serializable.extendObjectFromResponseObject(new SummarySave(), summary)\r\n )),\r\n tap(list => {\r\n note.summary = list;\r\n })\r\n );\r\n } else {\r\n source = this.judgmentService.getSummaryListObserver(note.case_id)\r\n .pipe(\r\n map(list => (list as any).map(summary =>\r\n Serializable.extendObjectFromResponseObject(new SummarySave(), summary)\r\n )),\r\n tap(list => {\r\n note.summary = list;\r\n })\r\n );\r\n }\r\n\r\n\r\n\r\n if (note.summary) {\r\n console.log('note-summary');\r\n source = of(note.summary);\r\n }\r\n this.summaryWindowService.loadingSummaryList = true;\r\n source.subscribe(sl => {\r\n const summaryListService = this.summaryWindowService.summaryListService;\r\n summaryListService.setSelectedSummaryBlockAndSummary(null, null);\r\n summaryListService.summaryBlockList = [];\r\n summaryListService.setupReaderMode();\r\n summaryListService.disableCancelSelect = true;\r\n summaryListService.enableCopySummaryButtonDisplay = false;\r\n summaryListService.enableCopyLearnTrainingButtonDisplay = false;\r\n // summaryListService.disableBottomMenu = soption.disableBottomMenu;\r\n // summaryListService.disableTopRightMenu = soption.disableTopRightMenu;\r\n // summaryListService.disableTextCopy = soption.disableTextCopy;\r\n // summaryListService.disableTypeSelect = soption.disableTypeSelect;\r\n // summaryListService.disableTextEdit = soption.disableTextEdit;\r\n // summaryListService.disableTagEdit = soption.disableTagEdit;\r\n // summaryListService.disableCancelSelect = soption.disableCancelSelect;\r\n // summaryListService.disableGistEdit = soption.disableGistEdit;\r\n\r\n const summaryBlock = {};\r\n sl.forEach((summary: SummarySave) => {\r\n if (!summaryBlock[summary.summary_block_index]) {\r\n const block = new SummaryBlock(summaryListService);\r\n block.blockIndex = summary.summary_block_index;\r\n summaryBlock[summary.summary_block_index] = block;\r\n }\r\n });\r\n const summaryBlockList = [];\r\n Object.keys(summaryBlock).forEach(key => {\r\n summaryBlockList.push(summaryBlock[key]);\r\n });\r\n summaryBlockList.sort((a, b) => a.blockIndex - b.blockIndex);\r\n\r\n sl.forEach((summarySave: SummarySave) => {\r\n const summary = SummaryConvert.saveToSummary(\r\n summarySave,\r\n summaryBlock[summarySave.summary_block_index],\r\n summaryListService,\r\n null\r\n );\r\n summary.summaryBlock.list.push(summary);\r\n });\r\n\r\n summaryBlockList.forEach(block => {\r\n block.list.sort((a, b) => a.index - b.index);\r\n summaryListService.summaryBlockList.push(block);\r\n });\r\n summaryListService.recalcAllSummaryOrder();\r\n\r\n console.log('setup list summary', summaryListService.summaryBlockList);\r\n this.summaryWindowService.loadingSummaryList = false;\r\n\r\n // 設定摘要清單過濾\r\n const filterSetting: SummaryFilterSetting = new SummaryFilterSetting();\r\n filterSetting.displayModeId = SummaryFilterDisplayModeId.All;\r\n filterSetting.selectedTypes = [];\r\n filterSetting.keyword = '';\r\n const summaryTypes: { [key: string]: SummaryTypeId } = {};\r\n sl.forEach((summarySave: SummarySave) => {\r\n summaryTypes[SummaryTypeId[summarySave.summary_type_id]] = summarySave.summary_type_id;\r\n });\r\n filterSetting.selectedTypes = Object.keys(summaryTypes)\r\n .map(key => summaryTypes[key]);\r\n this.summaryWindowService.summaryListService.updateSummaryListShow(filterSetting);\r\n this.summaryWindowService.searchedKeyword = '';\r\n\r\n setTimeout(() => {\r\n if (option.issueSortOutOption\r\n && option.issueSortOutOption.linkingIssue.link_summary_id) {\r\n const summaryItem = this.summaryWindowService.summaryListService.getFlatSummaryList().find(v => v.summaryId === option.issueSortOutOption.linkingIssue.link_summary_id);\r\n if (summaryItem) {\r\n this.summaryWindowService.summaryListService.setSelectedSummaryBlockAndSummary(summaryItem.summaryBlock, summaryItem);\r\n summaryItem.scrollIntoView();\r\n }\r\n }\r\n });\r\n });\r\n };\r\n soption.onSummarySelected = (summary: Summary) => {\r\n console.log('linking mode, select summary ', summary, option.issueSortOutOption.linkingIssue);\r\n\r\n if (option.issueSortOutOption.linkingIssue) {\r\n option.issueSortOutOption.enableLinkConfirmButton = true;\r\n option.issueSortOutOption.linkingIssue.link_summary_id = summary ? summary.summaryId : '';\r\n option.issueSortOutOption.linkingIssue.edit_time = new Date().getTime();\r\n\r\n if (!option.issueSortOutOption.issueAnswerBackup[option.issueSortOutOption.linkingIssue.id]) {\r\n option.issueSortOutOption.linkingIssue.answer_text = summary.titleText;\r\n }\r\n }\r\n };\r\n\r\n this.summaryWindowService._option = soption;\r\n this.summaryWindowService.showWindow();\r\n };\r\n option.issueSortOutOption.cancelLink = () => {\r\n this.summaryWindowService.hideWindow();\r\n };\r\n option.issueSortOutOption.confirmLink = () => {\r\n const blukData: IssueBlukRequest = new IssueBlukRequest();\r\n blukData.case_id = note.case_id;\r\n blukData.list = [];\r\n if (note.issue_list) {\r\n blukData.list = note.issue_list;\r\n // note.issue_list.forEach(i => {\r\n // linkData[i.id] = i.link_summary_id;\r\n // });\r\n this.issueService.blukJudgmentObserver(blukData)\r\n .subscribe(r => { });\r\n // setTimeout(() => {\r\n // this.summaryWindowService.hideWindow();\r\n // }, 1000);\r\n }\r\n note.issue_list.forEach(i => {\r\n option.issueSortOutOption.issueLinkBackup[i.id] = i.link_summary_id;\r\n option.issueSortOutOption.issueAnswerBackup[i.id] = i.answer_text;\r\n });\r\n this.summaryWindowService.hideWindow();\r\n // option.issueSortOutOption.issueLinkBackup = {};\r\n };\r\n\r\n\r\n // // console.log('show window root');\r\n // this.detailInfoClickWindowService._option = option;\r\n // this.detailInfoClickWindowService.selectedTab = this.detailInfoClickWindowService.tabs[option.tab_id_text];\r\n // this.detailInfoClickWindowService.showWindow();\r\n\r\n this.detailInfoClickWindowService.selectedTab = null;\r\n setTimeout(() => {\r\n // console.log('show window root');\r\n this.detailInfoClickWindowService._option = option;\r\n this.detailInfoClickWindowService.selectedTab = this.detailInfoClickWindowService.tabs[option.tab_id_text];\r\n this.detailInfoClickWindowService.showWindow();\r\n });\r\n }\r\n showSummaryPreviewWindow(noteData: any, summaryTypeItem: SummaryTypeItem): void {\r\n // this.selectNote(noteData, 'detailInfoClickWindow');\r\n this.showSummaryPreviewWindowNote = noteData;\r\n this.showDetailWindowNote = null;\r\n const note: JudgmentCase = noteData as JudgmentCase;\r\n\r\n const soption = new SummaryWindowOption();\r\n soption.title = '摘要預覽';\r\n\r\n // soption.disableBottomMenu = false;\r\n // soption.disableTopRightMenu = false;\r\n // soption.disableTextCopy = false;\r\n // soption.disableTypeSelect = false;\r\n // soption.disableTextEdit = false;\r\n // soption.disableTagEdit = false;\r\n // soption.disableCancelSelect = false;\r\n // soption.disableGistEdit = false;\r\n\r\n soption.onWindowShow = () => {\r\n this.summaryWindowService.translateX = 0;\r\n this.summaryWindowService.windowShowing = true;\r\n this.summaryWindowService.windowHideLock = true;\r\n\r\n if (SummaryWindowOption.textCopySubscription) {\r\n SummaryWindowOption.textCopySubscription.unsubscribe();\r\n SummaryWindowOption.textCopySubscription = null;\r\n }\r\n if (SummaryWindowOption.summaryCopyOnlineSubscription) {\r\n SummaryWindowOption.summaryCopyOnlineSubscription.unsubscribe();\r\n SummaryWindowOption.summaryCopyOnlineSubscription = null;\r\n }\r\n SummaryWindowOption.textCopySubscription = this.summaryWindowService.summaryListService.textCopyed$.subscribe(() => {\r\n this.successTipOpenerService.showPopTip('複製成功', '3s cubic-bezier(0.895, 0.03, 0.685, 0.22)');\r\n });\r\n SummaryWindowOption.summaryCopyOnlineSubscription = this.summaryWindowService.summaryListService.copySummaryOnline$\r\n .subscribe(() => {\r\n this.successTipOpenerService.showPopTip('已複製,請建立新摘要並建入', '4s cubic-bezier(0.895, 0.03, 0.685, 0.22)');\r\n });\r\n\r\n document.querySelector('.summary-window .result-row').scrollTop = 0;\r\n soption.updateSummaryList();\r\n };\r\n soption.onWindowAfterShow = () => {\r\n this.summaryWindowService.windowShowing = false;\r\n this.summaryWindowService.windowHideLock = false;\r\n this.summaryWindowService.windowShowed = true;\r\n };\r\n soption.onWindowHide = () => {\r\n this.showSummaryPreviewWindowNote = null;\r\n // console.log('preview windows hide');\r\n if (!this.summaryWindowService.windowHideLock) {\r\n this.summaryWindowService.windowHiding = true;\r\n this.summaryWindowService.translateX = -700;\r\n\r\n if (this.summaryWindowService.component) {\r\n this.summaryWindowService.component.keyword = '';\r\n }\r\n\r\n this.summaryWindowService.summaryListService.updateMovingSummary(null);\r\n\r\n if (!this.detailInfoClickWindowService.windowShowing\r\n && !this.detailInfoClickWindowService.windowShowed) {\r\n this.clearSelectedNote();\r\n }\r\n }\r\n };\r\n soption.onWindowAfterHide = () => {\r\n if (!this.summaryWindowService.windowHideLock) {\r\n this.summaryWindowService.windowHiding = false;\r\n this.summaryWindowService.windowShowed = false;\r\n this.summaryWindowService.searchedKeyword = '';\r\n this.summaryWindowService.selectedSummaryType = SummaryType.summaryTypeAll;\r\n }\r\n };\r\n soption.onSummarySelected = (summary: Summary) => {\r\n\r\n };\r\n /** 更新摘要清單 */\r\n soption.updateSummaryList = () => {\r\n const summaryListService = this.summaryWindowService.summaryListService;\r\n summaryListService.summaryTypeList = SummaryType.judgmentSummaryTypeList;\r\n summaryListService.setSelectedSummaryBlockAndSummary(null, null);\r\n summaryListService.summaryBlockList = [];\r\n\r\n\r\n const anyNote: any = note;\r\n let source: Observable;\r\n if (anyNote.case_base === 'indictment') {\r\n source = this.indictmentService.getSummaryListObserver(note.case_id)\r\n .pipe(\r\n map(list => (list as any).map(summary =>\r\n Serializable.extendObjectFromResponseObject(new SummarySave(), summary)\r\n )),\r\n tap(list => {\r\n note.summary = list;\r\n })\r\n );\r\n } else {\r\n source = this.judgmentService.getSummaryListObserver(note.case_id)\r\n .pipe(\r\n map(list => (list as any).map(summary =>\r\n Serializable.extendObjectFromResponseObject(new SummarySave(), summary)\r\n )),\r\n tap(list => {\r\n note.summary = list;\r\n })\r\n );\r\n }\r\n\r\n\r\n if (note.summary) {\r\n console.log('note-summary');\r\n source = of(note.summary);\r\n }\r\n this.summaryWindowService.loadingSummaryList = true;\r\n source.subscribe(sl => {\r\n const summaryBlock = {};\r\n sl.forEach((summary: SummarySave) => {\r\n if (!summaryBlock[summary.summary_block_index]) {\r\n const block = new SummaryBlock(summaryListService);\r\n block.blockIndex = summary.summary_block_index;\r\n summaryBlock[summary.summary_block_index] = block;\r\n }\r\n });\r\n const summaryBlockList = [];\r\n summaryListService.setupEditorMode();\r\n summaryListService.disableCancelSelect = false;\r\n summaryListService.isCopySummaryLoginAlert = false;\r\n // summaryListService.disableBottomMenu = soption.disableBottomMenu;\r\n // summaryListService.disableTopRightMenu = soption.disableTopRightMenu;\r\n // summaryListService.disableTextCopy = soption.disableTextCopy;\r\n // summaryListService.disableTypeSelect = soption.disableTypeSelect;\r\n // summaryListService.disableTextEdit = soption.disableTextEdit;\r\n // summaryListService.disableTagEdit = soption.disableTagEdit;\r\n // summaryListService.disableCancelSelect = soption.disableCancelSelect;\r\n // summaryListService.disableGistEdit = soption.disableGistEdit;\r\n\r\n Object.keys(summaryBlock).forEach(key => {\r\n summaryBlockList.push(summaryBlock[key]);\r\n });\r\n summaryBlockList.sort((a, b) => a.blockIndex - b.blockIndex);\r\n\r\n sl.forEach((summarySave: SummarySave) => {\r\n const summary = SummaryConvert.saveToSummary(\r\n summarySave,\r\n summaryBlock[summarySave.summary_block_index],\r\n summaryListService,\r\n null\r\n );\r\n\r\n // summary.onComponentInit = (_summary) => {\r\n // // 全面複製設定, 自己的筆記,有編輯權限\r\n // _summary.disableCopySummaryToggle = false;\r\n // _summary.disableTopCopySummaryButton = true;\r\n // _summary.isOpenCopy = _summary.summary.isOpenCopy;\r\n\r\n // // 學習紀錄設定\r\n // if (_summary.summary.learnTrainingTitle\r\n // && _summary.summary.learnTrainingContent) {\r\n // // 自己的筆記,有編輯權限\r\n // _summary.disableLearnTrainingToggle = false;\r\n // _summary.disableLearnTrainingButton = true;\r\n // _summary.isOpenCopyLearnTraining = _summary.summary.learnTrainingOpenCopy;\r\n // }\r\n // };\r\n\r\n summary.summaryBlock.list.push(summary);\r\n });\r\n\r\n summaryBlockList.forEach(block => {\r\n block.list.sort((a, b) => a.index - b.index);\r\n summaryListService.summaryBlockList.push(block);\r\n });\r\n summaryListService.recalcAllSummaryOrder();\r\n\r\n console.log('setup list summary', summaryListService.summaryBlockList);\r\n this.summaryWindowService.loadingSummaryList = false;\r\n\r\n // 設定摘要清單過濾\r\n const filterSetting: SummaryFilterSetting = new SummaryFilterSetting();\r\n filterSetting.displayModeId = SummaryFilterDisplayModeId.All;\r\n filterSetting.selectedTypes = [];\r\n filterSetting.keyword = '';\r\n const summaryTypes: { [key: string]: SummaryTypeId } = {};\r\n sl.forEach((summarySave: SummarySave) => {\r\n summaryTypes[SummaryTypeId[summarySave.summary_type_id]] = summarySave.summary_type_id;\r\n });\r\n filterSetting.selectedTypes = Object.keys(summaryTypes)\r\n .map(key => summaryTypes[key]);\r\n this.summaryWindowService.selectedSummaryType = SummaryType.summaryTypeAll;\r\n\r\n if (summaryTypeItem != null\r\n && summaryTypeItem.list_type !== NoteSummaryListType.Bookmark\r\n && this.summaryWindowService.selectedSummaryType) {\r\n this.summaryWindowService.selectedSummaryType = SummaryType.typeDict[SummaryTypeId[summaryTypeItem.item_type]];\r\n filterSetting.selectedTypes = [this.summaryWindowService.selectedSummaryType.id];\r\n }\r\n\r\n\r\n this.summaryWindowService.searchedKeyword = '';\r\n this.summaryWindowService.summaryListService.updateSummaryListShow(filterSetting);\r\n });\r\n };\r\n\r\n /** 更新摘要 */\r\n soption.updateSummary = (summary: Summary) => {\r\n if (summary.isNewSummary) { return; }\r\n const saveRequest = SummaryConvert.summaryToSave(summary);\r\n if (summary.linkStartTextIndex > -1) {\r\n saveRequest.summary_link_range = [summary.linkStartTextIndex, summary.linkEndTextIndex].join(',');\r\n }\r\n if ((note as any).case_base === 'indictment') {\r\n this.indictmentService.updateSummaryObserver(note.case_id, saveRequest).subscribe();\r\n } else {\r\n this.judgmentService.updateSummaryObserver(note.case_id, saveRequest).subscribe();\r\n }\r\n };\r\n /** 新增摘要 */\r\n soption.addSummary = (summary: Summary) => {\r\n const saveRequest = SummaryConvert.summaryToSave(summary);\r\n let addSummary$: Observable = null;\r\n if ((note as any).case_base === 'indictment') {\r\n addSummary$ = this.indictmentService.addSummaryObserver(note.case_id, saveRequest);\r\n } else {\r\n addSummary$ = this.judgmentService.addSummaryObserver(note.case_id, saveRequest);\r\n }\r\n addSummary$.subscribe(result => {\r\n if (result == SaveResultStatusId.ReachSummarySaveLimit) {\r\n PayInfoOverSaveLimitPopupComponent.open(this.matDialog, 'summary');\r\n }\r\n });\r\n };\r\n /** 刪除摘要 */\r\n soption.deleteSummary = (delete_list: Summary[]) => {\r\n const request: SummaryDeleteRequest = new SummaryDeleteRequest();\r\n request.case_id = note.case_id;\r\n request.summary_id_list = delete_list.map(s => s.summaryId);\r\n request.summary_id_sn = {};\r\n const currentList = this.summaryWindowService.summaryListService.getFlatSummaryList();\r\n currentList.forEach(s => {\r\n request.summary_id_sn[s.summaryId] = [s.summaryBlock.blockIndex, s.index];\r\n });\r\n\r\n if ((note as any).case_base === 'indictment') {\r\n this.indictmentService.deleteSummaryObserver(request).subscribe();\r\n } else {\r\n this.judgmentService.deleteSummaryObserver(request).subscribe();\r\n }\r\n };\r\n /** 排序摘要 */\r\n soption.updateSummaryListOrder = (list: Summary[]) => {\r\n const request: SummaryListOrderRequest = new SummaryListOrderRequest();\r\n request.case_id = note.case_id;\r\n request.summary_id_sn = {};\r\n list.forEach(s => {\r\n request.summary_id_sn[s.summaryId] = [s.summaryBlock.blockIndex, s.index];\r\n });\r\n if ((note as any).case_base === 'indictment') {\r\n this.indictmentService.updateSummaryListOrderObserver(request).subscribe();\r\n } else {\r\n this.judgmentService.updateSummaryListOrderObserver(request).subscribe();\r\n }\r\n };\r\n /** 摘要是否可新增檢查 */\r\n soption.beforeAddSummaryCheck = () => {\r\n if (this.judgmentService.saveStatus.IsReachSummarySaveLimitTotal()) {\r\n PayInfoOverSaveLimitPopupComponent.open(this.matDialog, 'summary');\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n this.summaryWindowService._option = soption;\r\n this.summaryWindowService.showWindow();\r\n }\r\n\r\n\r\n\r\n openPrintPopup(note: any): void {\r\n if (this.memberService.permissions.judgment_print === '1') {\r\n this.openPrintConfigPopup(note);\r\n } else {\r\n this.openPrintPermissionPopup();\r\n }\r\n }\r\n openPrintConfigPopup(note: any): void {\r\n this.showPrintPopupNote = note;\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PrintConfigPopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n dlRef.afterClosed().subscribe(() => { this.showPrintPopupNote = null; });\r\n dlRef.componentInstance.note_id = note.note_id;\r\n dlRef.componentInstance.url = () => {\r\n const optionArray = [\r\n dlRef.componentInstance.printConfig.fulltext ? '1' : '0',\r\n dlRef.componentInstance.printConfig.summary ? '1' : '0',\r\n dlRef.componentInstance.printConfig.font ? '1' : '0',\r\n dlRef.componentInstance.printConfig.rownumber ? '1' : '0',\r\n dlRef.componentInstance.printConfig.homepage ? '1' : '0',\r\n ];\r\n const optionText: string = optionArray.join().replace(/,/g, '');\r\n let url = '';\r\n if (note.case_base === 'judgment') {\r\n url = 'print/judgment/' + note.note_id + '?option=' + optionText;\r\n } else if (note.case_base === 'indictment') {\r\n url = 'print/indictment/' + note.note_id + '?option=' + optionText;\r\n }\r\n return url;\r\n };\r\n }\r\n openPrintPermissionPopup(): void {\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PrintPermissionPopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n }\r\n\r\n\r\n openPutinNotePopup(note: JudgmentCase): void {\r\n this.showCloneToTeamPopupNote = note;\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PutInNotePopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n dlRef.afterClosed().subscribe(() => { this.showCloneToTeamPopupNote = null; });\r\n\r\n const c = dlRef.componentInstance;\r\n c.is_loading = true;\r\n this.judgmentService.getNotePutinTeamObserver(note.case_base, note.note_id)\r\n .subscribe((v) => {\r\n console.log(v);\r\n c.team_list = v;\r\n c.is_loading = false;\r\n });\r\n c.onSubmit = () => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n \r\n const selectedTeamList = c.getSelectedTeamList();\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.CopyNote);\r\n if (selectedTeamList.length > 0) {\r\n this.judgmentService.copyNoteToTeamObserver(\r\n note.case_base,\r\n note.note_id,\r\n selectedTeamList.map(t => t.team_id),\r\n false\r\n )\r\n // .pipe(\r\n // tap(result => {\r\n // }),\r\n // )\r\n .subscribe((result) => {\r\n console.log(result);\r\n const copyResult: number = result.copy_result;\r\n if (copyResult === 1) {\r\n note.putin_team_count = result.note_in_team_count[note.note_id];\r\n this.openPutinNoteSuccessPopup(note);\r\n } else if (copyResult === 2) {\r\n this.openPutinNoteCheckPopup(note, selectedTeamList);\r\n }\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.CopyNote);\r\n c.closePopup();\r\n });\r\n }\r\n };\r\n\r\n // c.team_list = NotePutInTeam.convertFromNotePutinTeamObject(note.putin_team);\r\n }\r\n openPutinNoteCheckPopup(note: JudgmentCase, selectedTeamList: NotePutInTeam[]): void {\r\n this.showCloneToTeamCheckPopupNote = note;\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PutInNoteCheckPopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n dlRef.afterClosed().subscribe(() => { this.showCloneToTeamCheckPopupNote = null; });\r\n const c = dlRef.componentInstance;\r\n c.onConfirm = () => {\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.CopyNote);\r\n this.judgmentService.copyNoteToTeamObserver(\r\n note.case_base,\r\n note.note_id,\r\n selectedTeamList.map(t => t.team_id),\r\n true\r\n )\r\n .subscribe((result) => {\r\n console.log(result);\r\n const copyResult: number = result.copy_result;\r\n if (copyResult === 1) {\r\n this.openPutinNoteSuccessPopup(note);\r\n note.putin_team_count = result.note_in_team_count[note.note_id];\r\n } else if (copyResult === 2) {\r\n this.openPutinNoteCheckPopup(note, selectedTeamList);\r\n }\r\n\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.CopyNote);\r\n c.closePopup();\r\n });\r\n c.closePopup();\r\n };\r\n }\r\n openPutinNoteSuccessPopup(note: JudgmentCase): void {\r\n this.showCloneToTeamSuccessPopupNote = note;\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PutInNoteSuccessPopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n dlRef.afterClosed().subscribe(() => { this.showCloneToTeamSuccessPopupNote = null; });\r\n }\r\n\r\n\r\n checkinNote(note: any, status: any): void {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n note.checkInCase(status); note.toggleShowCheckInMenu();\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
序號
\r\n
類別
\r\n
項目
\r\n
\r\n
題目
\r\n
\r\n
屬性
\r\n
法院及案號
\r\n
裁判日期
\r\n
指令動作
\r\n
\r\n
\r\n
\r\n
{{note.sn}}
\r\n \r\n
\r\n
\r\n
{{note.subcategory ? note.subcategory.text : '未分項'}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
】\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
重新命名
\r\n
\r\n
\r\n
\r\n
開啟筆記
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{getCourtName(note)}}\r\n
{{note.case_number[0]}}年度{{note.case_number[1]}}字第{{note.case_number[2]}}號\r\n
\r\n
\r\n {{(note.judg_date[0]>1911?note.judg_date[0]-1911:note.judg_date[0])}}/{{appCommonService.padNumber(note.judg_date[1])}}/{{appCommonService.padNumber(note.judg_date[2])}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
詳細資訊
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 打卡\r\n {{(note.checkInTotalCount||0).toLocaleString()}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
綠燈
\r\n
\r\n
\r\n
\r\n
橘燈
\r\n
\r\n
\r\n
\r\n
紅燈
\r\n
\r\n
\r\n
\r\n
詳細資料
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
列印
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
預覽摘要
\r\n
\r\n
\r\n
\r\n
刪除
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
分享
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
置入團隊
\r\n
\r\n
0?'has-on':'')]\">
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ShareRequest } from './share-request';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { CaseType } from 'projects/lwlib/src/personal-config-popup/personal-config-popup.service';\r\nimport { ShareInfo } from './share-info';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ShareService {\r\n\r\n constructor(\r\n private service: AppService,\r\n ) { }\r\n\r\n typeTable: {\r\n [key in keyof typeof CaseType]: {\r\n share: (request: ShareRequest) => Observable\r\n }\r\n } = {\r\n Judgment: {\r\n share: (request) => this.shareNoteJudgmentObserver(request)\r\n },\r\n JudicialInterpret: {\r\n share: (request) => this.shareNoteJudicialInterpretObserver(request)\r\n },\r\n LawRule: null,\r\n Indictment: {\r\n share: (request) => this.shareNoteIndictmentObserver(request)\r\n },\r\n };\r\n\r\n /** 分享筆記 */\r\n // getShareNoteObserver(type: CaseType, note_id: string, enable: boolean): Observable {\r\n\r\n\r\n // return this.service.post(CaseType[type].toLowerCase() + '/share', request);\r\n // }\r\n shareNoteObserver(type: CaseType, note_id: string, enable: boolean): Observable {\r\n const request: ShareRequest = {\r\n type: type,\r\n note_id: note_id,\r\n enable: enable,\r\n } as ShareRequest;\r\n\r\n return this.typeTable[CaseType[type]].share(request);\r\n // return this.getShareNoteObserver(type, note_id, enable);\r\n }\r\n\r\n shareNoteJudgmentObserver(request: ShareRequest): Observable {\r\n return this.service.post('judgment/share', request);\r\n }\r\n shareNoteJudicialInterpretObserver(request: ShareRequest): Observable {\r\n return this.service.post('judicial_interpret/share', request);\r\n }\r\n shareNoteIndictmentObserver(request: ShareRequest): Observable {\r\n return this.service.post('indictment/share', request);\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef, OnDestroy, HostListener } from '@angular/core';\r\nimport { FilterPopupService, FilterPopupTabType, FilterPopupResult } from 'projects/lwlib/src/filter-popup/filter-popup.service';\r\nimport { PersonalConfigPopupService, DisplayMode, PersonalConfig, CaseType } from 'projects/lwlib/src/personal-config-popup/personal-config-popup.service';\r\nimport { ChildContent_PersonalStorageService } from '../child-content-personal-storage.service';\r\nimport { PersonalConfigPopupComponent } from 'projects/lwlib/src/personal-config-popup/personal-config-popup.component';\r\nimport { KeywordSearcherComponent } from 'projects/lwlib/src/keyword-searcher/keyword-searcher.component';\r\nimport { PageChangeComponent } from 'projects/lwlib/src/page-change/page-change.component';\r\nimport { DetailInfoClickWindowComponent } from 'projects/lwlib/src/detail-info-click-window/detail-info-click-window.component';\r\nimport { FilterTypesComponent } from 'projects/lwlib/src/filter-types/filter-types.component';\r\nimport { SubscriptionGroup } from 'projects/lwlib/src/subscription-group';\r\nimport { FilterPopupOpenerService } from 'projects/lwlib/src/filter-popup/filter-popup-opener.service';\r\nimport { InitService } from 'projects/lwlib/src/init/init.service';\r\nimport { LoadingIconService } from 'projects/lwlib/src/loading-icon/loading-icon.service';\r\nimport { ActionName } from 'projects/lwlib/src/action-name';\r\nimport { forkJoin, of, Observable } from 'rxjs';\r\nimport { JudicialInterpretService } from './judicial-interpret.service';\r\nimport { EditCategoryPopupService } from 'projects/lwlib/src/edit-category-popup/edit-category-popup.service';\r\nimport { SearcherKeyword } from 'projects/lwlib/src/keyword-searcher/searcher-keyword';\r\nimport { AppService, LoginStatus } from 'projects/desktop/src/app/app.service';\r\nimport { LogPageId } from 'projects/lwlib/src/log-page/log-page-id.enum';\r\nimport { BroadcastEventListener } from 'ng2-signalr';\r\nimport { Category } from 'projects/lwlib/src/category/category';\r\nimport { Subcategory } from 'projects/lwlib/src/category/subcategory';\r\nimport { SubcategoryList } from 'projects/lwlib/src/category/subcategory-list';\r\nimport { PersonalConfigPopupOpenerService } from 'projects/lwlib/src/personal-config-popup/personal-config-popup-opener.service';\r\nimport { SearcherKeywordKind } from 'projects/lwlib/src/keyword-searcher/searcher-keyword-kind';\r\nimport { tap, concatMap, delay } from 'rxjs/operators';\r\nimport { CheckLightDetailDataLawArticlePopupComponent } from 'projects/lwlib/src/check-light-detail-data-law-article-popup/check-light-detail-data-law-article-popup.component';\r\nimport { MaterialHelper } from 'projects/lwlib/src/material-helper';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { CheckInDataJudgmentCase } from 'projects/lwlib/src/check-in/check-in-data-judgment-case';\r\nimport { JudicialInterpretCase } from './judicial-interpret-case';\r\nimport { CheckInJudgment } from 'projects/lwlib/src/check-in/check-in-judgment';\r\nimport { Guid } from 'projects/lwlib/src/guid';\r\nimport { CheckLightFilterPopupComponent } from 'projects/lwlib/src/check-light-filter-popup/check-light-filter-popup.component';\r\nimport { CheckLightFilterConfig } from 'projects/lwlib/src/check-light-filter-popup/check-light-filter-config';\r\nimport { FilterCondition } from '../filter-condition';\r\nimport { StorageTypesComponent } from 'projects/lwlib/src/storage-types/storage-types.component';\r\nimport { JudicialInterpretCaseList } from './judicial-interpret-case-list';\r\nimport { Serializable } from 'projects/lwlib/src/serializable';\r\nimport { JudgmentService } from '../judgment/judgment.service';\r\nimport { PlanService } from 'projects/lwlib/src/plan/plan.service';\r\n\r\n@Component({\r\n selector: 'app-judicial-interpret',\r\n templateUrl: './judicial-interpret.component.html',\r\n styleUrls: ['./judicial-interpret.component.scss'],\r\n providers: [FilterPopupService, EditCategoryPopupService]\r\n})\r\nexport class JudicialInterpretComponent implements OnInit, OnDestroy {\r\n @ViewChild(StorageTypesComponent, { static: true }) storageTypesComponent: StorageTypesComponent;\r\n @ViewChild(PageChangeComponent, { static: true }) pageChange: PageChangeComponent;\r\n @ViewChild(KeywordSearcherComponent, { static: true }) keywordSearcher: KeywordSearcherComponent;\r\n @ViewChild(DetailInfoClickWindowComponent) detailInfoClickWindow: DetailInfoClickWindowComponent;\r\n @ViewChild(FilterTypesComponent, { static: true }) filterTypes: FilterTypesComponent;\r\n @ViewChild('listElement', { static: true }) listElement: ElementRef;\r\n\r\n // filterCondition: FilterCondition;\r\n get filterCondition(): FilterCondition { return this.judicialInterpretService.filterCondition; }\r\n get check_in_button_text(): string {\r\n if (this.filterCondition.check_in_past_day <= 0 && this.filterCondition.check_in_status < 0) {\r\n return '燈號篩選';\r\n } else if (this.filterCondition.check_in_status === 1) {\r\n return `綠燈${(this.filterCondition.check_in_past_day <= 0 ? '' : `(過去 ${this.filterCondition.check_in_past_day} 天)`)}`;\r\n } else if (this.filterCondition.check_in_status === 2) {\r\n return `橘燈${(this.filterCondition.check_in_past_day <= 0 ? '' : `(過去 ${this.filterCondition.check_in_past_day} 天)`)}`;\r\n } else if (this.filterCondition.check_in_status === 3) {\r\n return `紅燈${(this.filterCondition.check_in_past_day <= 0 ? '' : `(過去 ${this.filterCondition.check_in_past_day} 天)`)}`;\r\n } else if (this.filterCondition.check_in_status === 0) {\r\n return `灰燈${(this.filterCondition.check_in_past_day <= 0 ? '' : `(過去 ${this.filterCondition.check_in_past_day} 天)`)}`;\r\n } else if (this.filterCondition.check_in_status < 0 && this.filterCondition.check_in_past_day > 0) {\r\n return `全部(過去 ${this.filterCondition.check_in_past_day} 天)`;\r\n }\r\n }\r\n\r\n displayMode: any = DisplayMode;\r\n get listDisplayMode(): DisplayMode { return this.personalConfigPopupService.personalConfig.displayMode; }\r\n // listDisplayMode: DisplayMode;\r\n\r\n inited: boolean = false;\r\n\r\n // 存量顯示\r\n showSaveLimit: boolean = true;\r\n\r\n // judicialInterpret: JudicialInterpretComponent;\r\n\r\n kindList: SearcherKeywordKind[] = [\r\n SearcherKeywordKind.FileSubject,\r\n SearcherKeywordKind.PointSummary,\r\n SearcherKeywordKind.SummaryTag,\r\n SearcherKeywordKind.IssueSortOut,\r\n SearcherKeywordKind.IssueAnswer,\r\n SearcherKeywordKind.CaseTag,\r\n SearcherKeywordKind.Bookmark,\r\n SearcherKeywordKind.Comment,\r\n SearcherKeywordKind.ComposeSearch\r\n ];\r\n kindAutocomplete: { [key: string]: (keyword: string) => Observable } = {\r\n FileSubject: (keyword: string) => this.suggestKeywordNoteTitle(keyword),\r\n CaseTag: (keyword: string) => this.suggestKeywordCaseTag(keyword),\r\n SummaryTag: (keyword: string) => this.suggestKeywordSummaryTag(keyword),\r\n };\r\n\r\n\r\n\r\n\r\n subscriptions: SubscriptionGroup = {};\r\n signalrListeners: { [key: string]: BroadcastEventListener } = {};\r\n\r\n listenClickEventList: ((ev: MouseEvent) => void)[] = [];\r\n removeListenClickEventList: ((ev: MouseEvent) => void)[] = [];\r\n\r\n isWaitCheckIn: boolean = false;\r\n get IsGuest(): boolean { return this.service.IsGuest; }\r\n\r\n\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n public judgmentService: JudgmentService,\r\n private judicialInterpretService: JudicialInterpretService,\r\n private childContent_PersonalStorageService: ChildContent_PersonalStorageService,\r\n private personalConfigPopupService: PersonalConfigPopupService,\r\n // private personalStorageService: ChildContent_PersonalStorageService,\r\n private initService: InitService,\r\n private loadingIconService: LoadingIconService,\r\n private filterPopupOpenerService: FilterPopupOpenerService,\r\n private service: AppService,\r\n private personalConfigPopupOpenerService: PersonalConfigPopupOpenerService,\r\n private matDialog: MatDialog,\r\n public planService: PlanService,\r\n ) {\r\n // this.judicialInterpret = this;\r\n\r\n // this.filterCondition = new FilterCondition(\r\n // 20,\r\n // Category.allCategory,\r\n // Subcategory.allSubcategory,\r\n // this.personalConfigPopupService,\r\n // );\r\n }\r\n\r\n ngOnInit() {\r\n this.judicialInterpretService.filterCondition = new FilterCondition();\r\n this.filterCondition.orderWayCourtLevel = this.personalConfigPopupService.personalConfig.orderWayCourtLevel;\r\n this.filterCondition.orderWayJudgDate = this.personalConfigPopupService.personalConfig.orderWayJudgDate;\r\n this.filterCondition.orderWayEditDate = this.personalConfigPopupService.personalConfig.orderWayEditDate;\r\n this.filterCondition.per_page_note_amount = 12;\r\n\r\n // 檢查是否要帶入其他頁面搜尋的關鍵字\r\n if (!this.childContent_PersonalStorageService.isAllSearchKeywordEmpty()) {\r\n const searchKeywords: SearcherKeyword[] = this.childContent_PersonalStorageService.searchKeywords;\r\n const kindList: SearcherKeywordKind[] = this.childContent_PersonalStorageService.storageTab.JudicialInterpret.kindList;\r\n this.filterCondition.searchKeywords = searchKeywords;\r\n\r\n // 設定是否組合查找\r\n if (this.childContent_PersonalStorageService.isComposeSearch) {\r\n this.keywordSearcher.searchedTemplate = this.keywordSearcher.composeTemplate;\r\n this.keywordSearcher.chooseKind.selectedKind = this.keywordSearcher.chooseKind.baseList[SearcherKeywordKind[SearcherKeywordKind.ComposeSearch]];\r\n // 設定符合種類的關鍵字\r\n for (let i = 0; i < searchKeywords.length; i++) {\r\n const searchKeyword = searchKeywords[i];\r\n if (kindList.some(k => k === searchKeyword.kind)) {\r\n this.keywordSearcher.searchedKeywords[i] = searchKeyword;\r\n }\r\n }\r\n } else {\r\n if (kindList.some(k => k === searchKeywords[0].kind)) {\r\n this.keywordSearcher.chooseKind.selectedKind = this.keywordSearcher.chooseKind.baseList[SearcherKeywordKind[searchKeywords[0].kind]];\r\n this.keywordSearcher.searchedKind = this.keywordSearcher.chooseKind.selectedKind;\r\n this.keywordSearcher.inputText.text = searchKeywords[0].keyword;\r\n this.keywordSearcher.searchedText = searchKeywords[0].keyword;\r\n }\r\n }\r\n }\r\n\r\n // this.listDisplayMode = this.personalConfigPopupService.personalConfig.displayMode;\r\n\r\n // 子元件設定\r\n // 類別項目篩選變動\r\n\r\n this.filterTypes.get_filterCondition = () => this.judicialInterpretService.filterCondition;\r\n this.filterTypes.open.subscribe((openType: FilterPopupTabType) => {\r\n console.log('open ft popup');\r\n\r\n const compomentRef = this.filterPopupOpenerService.openPopup(\r\n openType,\r\n this.judicialInterpretService.filterCondition.category, // 已選擇的類別\r\n this.judicialInterpretService.filterCondition.subcategory, // 已選擇的項目\r\n () => this.judicialInterpretService.categoryList, // 類別清單\r\n () => this.judicialInterpretService.subcategoryList, // 項目清單\r\n this.judicialInterpretService.pullCategoryListObserver(), // 刷新類別清單\r\n this.judicialInterpretService.pullSubcategoryListObserver() // 刷新項目清單\r\n );\r\n\r\n compomentRef.instance.submit.subscribe((result: FilterPopupResult) => {\r\n this.filterCondition.category = result.category;\r\n this.filterCondition.subcategory = result.subcategory;\r\n this.filterCondition.pageIndex = 1;\r\n this.pageChange.currentIndex = 1;\r\n this.pullNoteList();\r\n\r\n compomentRef.instance.closePopup();\r\n });\r\n });\r\n\r\n\r\n // 設定訂閱\r\n\r\n // 個人化設定變動\r\n // this.subscriptions.personalConfig = this.personalConfigPopupService.personalConfig$.subscribe(r => {\r\n // this.listDisplayMode = r.displayMode;\r\n // this.listElement.nativeElement.scrollTo(0, 0);\r\n // this.pullNoteList();\r\n // });\r\n this.subscriptions.personalConfig = this.personalConfigPopupService.personalConfig$.subscribe(personalConfig => {\r\n // 更新搜尋條件\r\n this.filterCondition.orderWayCourtLevel = this.personalConfigPopupService.personalConfig.orderWayCourtLevel;\r\n this.filterCondition.orderWayJudgDate = this.personalConfigPopupService.personalConfig.orderWayJudgDate;\r\n this.filterCondition.orderWayEditDate = this.personalConfigPopupService.personalConfig.orderWayEditDate;\r\n\r\n // 筆記清單拉條置頂\r\n // this.listDisplayMode = r.displayMode;\r\n this.listElement.nativeElement.scrollTo(0, 0);\r\n\r\n // 刷新筆記清單\r\n this.pullNoteList();\r\n });\r\n\r\n // 換頁器,設定每頁數量\r\n this.pageChange.perPageAmount = this.filterCondition.per_page_note_amount;\r\n\r\n // 換頁器,刷新\r\n this.subscriptions.pageRefresh = this.pageChange.refresh.subscribe(() => {\r\n this.listElement.nativeElement.scrollTo(0, 0);\r\n\r\n // 刷新筆記清單\r\n this.pullAllList();\r\n });\r\n\r\n // 訂閱:換頁器,換頁\r\n this.subscriptions.pageChange = this.pageChange.clickGoToIndex$.subscribe(pageIndex => {\r\n // 更新搜尋條件\r\n this.filterCondition.pageIndex = pageIndex;\r\n\r\n // 筆記清單拉條置頂\r\n this.listElement.nativeElement.scrollTo(0, 0);\r\n\r\n // 刷新筆記清單\r\n this.pullNoteList();\r\n });\r\n\r\n // 筆記清單更新\r\n this.subscriptions.noteList = this.judicialInterpretService.storageNoteList$.subscribe(list => {\r\n // 更新換頁器數量\r\n this.pageChange.update(\r\n this.judicialInterpretService.storageNoteTotalCount,\r\n this.judicialInterpretService.storageNoteTotalCount,\r\n this.filterCondition.per_page_note_amount\r\n );\r\n });\r\n\r\n // 設定即時同步接收\r\n const signlarConnSubscribe = this.service.onSignlarConnected.subscribe((connected: boolean) => {\r\n if (connected) {\r\n console.log('add signlar event');\r\n\r\n this.addListener('judicial_interpret/category').subscribe((v) => { this.judicialInterpretService.pullCategoryListObserver().subscribe(); });\r\n this.addListener('judicial_interpret/category_delete').subscribe((v) => { this.judicialInterpretService.updateNoteDataStorageByCategory(v.category); });\r\n this.addListener('judicial_interpret/category_edit').subscribe((v) => { this.judicialInterpretService.updateNoteDataStorageByCategory(v.old_category); });\r\n this.addListener('judicial_interpret/subcategory').subscribe((v) => { this.judicialInterpretService.pullSubcategoryListObserver().subscribe(); });\r\n this.addListener('judicial_interpret/subcategory_delete').subscribe((v) => { this.judicialInterpretService.updateNoteDataStorageBySubcategory(v.category, v.subcategory); });\r\n this.addListener('judicial_interpret/subcategory_edit').subscribe((v) => { this.judicialInterpretService.updateNoteDataStorageBySubcategory(v.category, v.old_subcategory); });\r\n this.addListener('judicial_interpret/note').subscribe((v) => { this.judicialInterpretService.updateNoteDataStorage(v.case_id); });\r\n this.addListener('judicial_interpret/case_tag').subscribe((v) => { this.judicialInterpretService.updateNoteDataStorage(v.case_id); });\r\n\r\n setTimeout(() => { signlarConnSubscribe.unsubscribe(); }, 0);\r\n }\r\n });\r\n\r\n // 更新方案狀態\r\n const planStatus$ = of(1)\r\n .pipe(\r\n concatMap(() => {\r\n if (this.service.IsGuest) {\r\n this.showSaveLimit = false;\r\n return of(1);\r\n } else {\r\n return this.pullPlanStatus();\r\n }\r\n }),\r\n );\r\n\r\n of(1)\r\n .pipe(\r\n concatMap(() => this.service.refreshLoginStatus()),\r\n concatMap(() => planStatus$),\r\n concatMap(() => this.judgmentService.pullSaveStatusObserver()),\r\n concatMap(() => this.judicialInterpretService.pullCategoryListObserver()),\r\n concatMap(() => this.judicialInterpretService.pullSubcategoryListObserver()),\r\n concatMap(() => this.judicialInterpretService.pullStorageNoteListObserver(this.filterCondition)),\r\n concatMap(() => {\r\n this.setupStorageList();\r\n return of(true).pipe(delay(1));\r\n }),\r\n )\r\n .subscribe({\r\n complete: () => {\r\n /** 項目排序,已經在S先做好了 */\r\n // 觸發完成\r\n this.initService.trigger(ActionName.PersonalStorageJudicialInterpret);\r\n }\r\n });\r\n // forkJoin(\r\n // this.judicialInterpretService.pullCategoryListObserver(),\r\n // this.judicialInterpretService.pullSubcategoryListObserver(),\r\n // this.judicialInterpretService.pullStorageNoteListObserver(this.filterCondition)\r\n // ).subscribe({\r\n // complete: () => {\r\n // /** 項目排序,已經在S先做好了 */\r\n // // 觸發完成\r\n // this.initService.trigger(ActionName.PersonalStorageJudicialInterpret);\r\n\r\n // // // 檢查項目排序\r\n // // const sourceSnText = this.judicialInterpretService.subcategoryList.list.map(v => v.sn).join();\r\n // // // Subcategory.OrderSubcategory(this.judicialInterpretService.categoryList.list, this.judicialInterpretService.subcategoryList.list);\r\n // // SubcategoryList.reindexSubcategoryListSn(this.judicialInterpretService.subcategoryList.list);\r\n // // const newSnText = this.judicialInterpretService.subcategoryList.list.map(v => v.sn).join();\r\n\r\n // // let checkAndUpdateSubcategoryListSnOrder = of(null);\r\n // // if (sourceSnText !== newSnText) {\r\n // // const orderSubcategoryRequestData = SubcategoryList.getSubcategoryListOrderRequestData(this.judicialInterpretService.subcategoryList.list);\r\n // // checkAndUpdateSubcategoryListSnOrder = this.judicialInterpretService.orderSubcategoryObserver(orderSubcategoryRequestData);\r\n // // }\r\n\r\n // // checkAndUpdateSubcategoryListSnOrder.subscribe(() => {\r\n\r\n // // // 之後在抓筆記清單\r\n // // this.judicialInterpretService.pullPersonalStorageJudicialInterpretFullNoteListObserver(this.filterCondition).subscribe({\r\n // // complete: () => {\r\n\r\n // // // 觸發完成\r\n // // this.initService.trigger(ActionName.PersonalStorageJudicialInterpret);\r\n // // }\r\n // // });\r\n // // });\r\n // }\r\n // });\r\n\r\n\r\n\r\n this.service.log(LogPageId.PersonalStorageJudicialInterpret, '', '');\r\n this.inited = true;\r\n }\r\n ngOnDestroy(): void {\r\n SubscriptionGroup.unsubscribeAll(this.subscriptions);\r\n this.clearListener();\r\n }\r\n\r\n /** 增加即時同步監聽 */\r\n addListener(name: string): BroadcastEventListener {\r\n this.signalrListeners[name] = this.service.addGetSignlaRSystemListener(name);\r\n return this.signalrListeners[name];\r\n }\r\n /** 清除即時同步監聽 */\r\n clearListener(): void {\r\n Object.keys(this.signalrListeners)\r\n .forEach(key => {\r\n this.service.removeSignalrListener(key);\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n\r\n updateCheckInCaseObserver(case_id: string): Observable {\r\n return this.judicialInterpretService.getCheckInDataCaseObserver(case_id);\r\n }\r\n checkIn(note: JudicialInterpretCase, status: number): void {\r\n if (!note.checkIn.enableCheckIn || note.checkIn.isWaitCheckIn || this.isWaitCheckIn) { return; }\r\n\r\n this.isWaitCheckIn = true;\r\n note.checkIn.isWaitCheckIn = true;\r\n\r\n const checkInObserver = this.judicialInterpretService.checkInObserver(note.case_id, status);\r\n const getCheckInDataCaseObserver = this.judicialInterpretService.getCheckInDataCaseObserver(note.case_id);\r\n\r\n const subsc = checkInObserver\r\n .pipe(\r\n concatMap(() => getCheckInDataCaseObserver),\r\n tap((data: CheckInDataJudgmentCase) => {\r\n note.check_in_data = data;\r\n this.setupNoteCheckIn(note);\r\n })\r\n ).subscribe({\r\n complete: () => {\r\n note.checkIn.isWaitCheckIn = false;\r\n this.isWaitCheckIn = false;\r\n subsc.unsubscribe();\r\n }\r\n });\r\n }\r\n openCheckInDetailDataPopup(note: JudicialInterpretCase): void {\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n CheckLightDetailDataLawArticlePopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '380px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n const c = dlRef.componentInstance;\r\n // c.selectedCountPastDay = checkInLawArticle.count_past_day;\r\n c.updateCheckInDataSystem = (countPastDay: number) => {\r\n if (c.isLoading || note.checkIn.isWaitLoadingData) { return; }\r\n\r\n note.checkIn.count_past_day = countPastDay;\r\n note.checkIn.isWaitLoadingData = true;\r\n c.isLoading = true;\r\n\r\n const getCheckInDataCaseObserver = this.judicialInterpretService.getCheckInDataCaseObserver(\r\n note.case_id,\r\n note.checkIn.count_past_day\r\n );\r\n\r\n // 從service取打卡資料\r\n const subsc = getCheckInDataCaseObserver\r\n .pipe(\r\n tap(data => {\r\n if (data.log && data.log.length > 0) {\r\n data.log.forEach(l => {\r\n l.time = new Date(l.time);\r\n });\r\n }\r\n }),\r\n tap(data => {\r\n note.checkIn.updateFromDataCase(data);\r\n c.checkInCount = note.checkIn.total_count;\r\n c.log = note.checkIn.log;\r\n })\r\n )\r\n .subscribe({\r\n complete: () => {\r\n note.checkIn.isWaitLoadingData = false;\r\n c.isLoading = false;\r\n subsc.unsubscribe();\r\n }\r\n });\r\n };\r\n c.updateCheckInDataSystem(c.selectedCountPastDay);\r\n }\r\n\r\n\r\n setupNoteCheckIn(note: JudicialInterpretCase): void {\r\n if (note.check_in_data) {\r\n if (note.check_in_data.log) {\r\n note.check_in_data.log.forEach(l => {\r\n l.time = new Date(l.time);\r\n });\r\n }\r\n\r\n if (note.checkIn == null) {\r\n note.checkIn = new CheckInJudgment();\r\n note.checkInMenuId = Guid.newGuid();\r\n note.checkInButtonId = Guid.newGuid();\r\n\r\n note.checkIn.onCheckIn = (status: number) => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n \r\n this.checkIn(note, status);\r\n };\r\n note.registeCheckInMenuClickEvent = (ev) => {\r\n if (note.checkInMenuElement != null\r\n && note.checkInButtonElement != null\r\n && !this.checkCursorClickTarget(ev, note.checkInMenuElement)\r\n && !this.checkCursorClickTarget(ev, note.checkInButtonElement)\r\n ) {\r\n note.showCheckInMenu = false;\r\n note.onCheckInMenuHide();\r\n }\r\n };\r\n note.onCheckInMenuShow = () => {\r\n setTimeout(() => {\r\n this.listenClickEvent(note.registeCheckInMenuClickEvent);\r\n }, 0);\r\n };\r\n note.onCheckInMenuHide = () => {\r\n this.removeClickEventListenter(note.registeCheckInMenuClickEvent);\r\n // this.removeListenClickEventList.push(block.registeCheckInMenuClickEvent);\r\n };\r\n note.onOpenCheckInDetailDataPopup = () => {\r\n this.openCheckInDetailDataPopup(note);\r\n // this.openCheckInDetailDataLawArticlePopup(cila);\r\n };\r\n }\r\n\r\n note.checkIn.updateFromDataCase(note.check_in_data);\r\n note.checkInStatusClassName = 'gray';\r\n if (CheckInJudgment.statusClassNameDict[note.check_in_data.last_check_in_status]) {\r\n note.checkInStatusClassName = CheckInJudgment.statusClassNameDict[note.check_in_data.last_check_in_status];\r\n }\r\n note.checkInTotalCount = note.check_in_data.total_check_in_count;\r\n }\r\n }\r\n setupStorageList(): void {\r\n this.judicialInterpretService.storageNoteList.forEach((note: JudicialInterpretCase) => {\r\n this.setupNoteCheckIn(note);\r\n });\r\n }\r\n\r\n\r\n\r\n pullPlanStatus(): Observable {\r\n return this.planService.pullPlanStatus()\r\n .pipe(tap(() => {\r\n this.showSaveLimit = this.planService.planStatus.plan_type != '4';\r\n }));\r\n }\r\n pullAllList(): void {\r\n // 刷新筆記清單\r\n this.loadingIconService.openAreaLoadingIcon(ActionName.PersonalStorageJudicialInterpret, this.elementRef.nativeElement);\r\n const rfs = forkJoin([\r\n this.pullPlanStatus(),\r\n this.judgmentService.pullSaveStatusObserver(),\r\n this.judicialInterpretService.pullCategoryListObserver(),\r\n this.judicialInterpretService.pullSubcategoryListObserver(),\r\n this.judicialInterpretService.pullStorageNoteListObserver(this.filterCondition),\r\n ]).subscribe({\r\n complete: () => {\r\n this.setupStorageList();\r\n this.loadingIconService.closeAreaLoadingIcon(ActionName.PersonalStorageJudicialInterpret);\r\n rfs.unsubscribe();\r\n }\r\n });\r\n }\r\n\r\n pullNoteList(): void {\r\n this.loadingIconService.openAreaLoadingIcon(ActionName.PersonalStorageJudicialInterpret, this.elementRef.nativeElement);\r\n this.pullNoteListObserver().subscribe({\r\n complete: () => {\r\n this.loadingIconService.closeAreaLoadingIcon(ActionName.PersonalStorageJudicialInterpret);\r\n }\r\n });\r\n // of(1)\r\n // .pipe(\r\n // concatMap(() => of(1).pipe(delay(1))),\r\n // concatMap(() => this.judicialInterpretService.pullStorageNoteListObserver(this.filterCondition)),\r\n // tap((_) => {\r\n // this.judicialInterpretService.storageNoteList.forEach((note: JudicialInterpretCase) => {\r\n // this.setupNoteCheckIn(note);\r\n // });\r\n // }),\r\n // concatMap((judicialInterpretCaseList: JudicialInterpretCaseList) => {\r\n // if (!this.filterCondition.isAllSearchKeywordEmpty()) {\r\n // const lawRuleTab = this.storageTypesComponent.storageTab.LawRule;\r\n // const judgmentTab = this.storageTypesComponent.storageTab.Judgment;\r\n // const caseList = judicialInterpretCaseList;\r\n\r\n // this.childContent_PersonalStorageService.searchKeywords = this.filterCondition.searchKeywords;\r\n // this.childContent_PersonalStorageService.isComposeSearch = this.keywordSearcher.searchedTemplate === this.keywordSearcher.composeTemplate;\r\n\r\n // lawRuleTab.enableSearchResultCount = false;\r\n // lawRuleTab.searchResultCount = 0;\r\n // lawRuleTab.hasSearchResult = false;\r\n // judgmentTab.enableSearchResultCount = false;\r\n // judgmentTab.searchResultCount = 0;\r\n // judgmentTab.hasSearchResult = false;\r\n\r\n // if (\r\n // this.childContent_PersonalStorageService.searchKeywords\r\n // .filter(s => !!s.keyword)\r\n // .every(sk => lawRuleTab.kindList.some(kk => kk === sk.kind))\r\n // ) {\r\n // lawRuleTab.enableSearchResultCount = true;\r\n // lawRuleTab.isSearching = false;\r\n // lawRuleTab.searchResultCount = caseList.type_count[CaseType[CaseType.LawRule]];\r\n // lawRuleTab.hasSearchResult = (lawRuleTab.searchResultCount > 0);\r\n // }\r\n\r\n // if (\r\n // this.childContent_PersonalStorageService.searchKeywords\r\n // .filter(s => !!s.keyword)\r\n // .every(sk => judgmentTab.kindList.some(kk => kk === sk.kind))\r\n // ) {\r\n // judgmentTab.enableSearchResultCount = true;\r\n // judgmentTab.isSearching = false;\r\n // judgmentTab.searchResultCount = caseList.type_count[CaseType[CaseType.Judgment]];\r\n // judgmentTab.hasSearchResult = (judgmentTab.searchResultCount > 0);\r\n // }\r\n // }\r\n // return of(1).pipe(delay(1));\r\n // }),\r\n // ).subscribe({\r\n // complete: () => {\r\n // this.setupStorageList();\r\n // /** 項目排序,已經在S先做好了 */\r\n // // 觸發完成\r\n // this.loadingIconService.closeAreaLoadingIcon(ActionName.PersonalStorageJudgment);\r\n // }\r\n // });\r\n // this.judicialInterpretService.pullStorageNoteListObserver(this.filterCondition)\r\n // .subscribe(list => {\r\n // this.judicialInterpretService.storageNoteList.forEach((note: JudicialInterpretCase) => {\r\n // this.setupNoteCheckIn(note);\r\n // });\r\n // this.loadingIconService.closeAreaLoadingIcon(ActionName.PersonalStorageJudicialInterpret);\r\n // });\r\n // if (!this.inited) {\r\n // return;\r\n // }\r\n // this.loadingIconService.openAreaLoadingIcon(ActionName.PersonalStorageJudicialInterpret, this.elementRef.nativeElement);\r\n // if (this.listDisplayMode === DisplayMode.Simple) {\r\n // // this.subscriptions.pullSimpleList = this.judicialInterpretService.pullPersonalStorageJudicialInterpretSimpleNoteListObserver(this.filterCondition)\r\n // this.subscriptions.pullSimpleList = this.judicialInterpretService.pullPersonalStorageJudicialInterpretFullNoteListObserver(this.filterCondition)\r\n // .subscribe({\r\n // complete: () => {\r\n // this.filterCondition.refresh = false;\r\n // this.loadingIconService.closeAreaLoadingIcon(ActionName.PersonalStorageJudicialInterpret);\r\n // }\r\n // });\r\n // } else {\r\n // this.subscriptions.pullFullList = this.judicialInterpretService.pullPersonalStorageJudicialInterpretFullNoteListObserver(this.filterCondition)\r\n // .subscribe({\r\n // complete: () => {\r\n // this.filterCondition.refresh = false;\r\n // this.loadingIconService.closeAreaLoadingIcon(ActionName.PersonalStorageJudicialInterpret);\r\n // }\r\n // });\r\n // }\r\n }\r\n pullNoteListObserver(): Observable {\r\n return of(1)\r\n .pipe(\r\n concatMap(() => {\r\n return of(1).pipe(delay(1));\r\n }),\r\n concatMap(() => this.judicialInterpretService.pullStorageNoteListObserver(this.filterCondition)),\r\n tap((_) => {\r\n this.judicialInterpretService.storageNoteList.forEach((note: JudicialInterpretCase) => {\r\n this.setupNoteCheckIn(note);\r\n });\r\n }),\r\n concatMap((judicialInterpretCaseList: JudicialInterpretCaseList) => {\r\n if (!this.filterCondition.isAllSearchKeywordEmpty()) {\r\n const lawRuleTab = this.storageTypesComponent.storageTab.LawRule;\r\n const judgmentTab = this.storageTypesComponent.storageTab.Judgment;\r\n const caseList = judicialInterpretCaseList;\r\n\r\n this.childContent_PersonalStorageService.searchKeywords = this.filterCondition.searchKeywords;\r\n this.childContent_PersonalStorageService.isComposeSearch = this.keywordSearcher.searchedTemplate === this.keywordSearcher.composeTemplate;\r\n\r\n lawRuleTab.enableSearchResultCount = false;\r\n lawRuleTab.searchResultCount = 0;\r\n lawRuleTab.hasSearchResult = false;\r\n judgmentTab.enableSearchResultCount = false;\r\n judgmentTab.searchResultCount = 0;\r\n judgmentTab.hasSearchResult = false;\r\n\r\n if (\r\n this.childContent_PersonalStorageService.searchKeywords\r\n .filter(s => !!s.keyword)\r\n .every(sk => lawRuleTab.kindList.some(kk => kk === sk.kind))\r\n ) {\r\n lawRuleTab.enableSearchResultCount = true;\r\n lawRuleTab.isSearching = false;\r\n lawRuleTab.searchResultCount = caseList.type_count[CaseType[CaseType.LawRule]];\r\n lawRuleTab.hasSearchResult = (lawRuleTab.searchResultCount > 0);\r\n }\r\n\r\n if (\r\n this.childContent_PersonalStorageService.searchKeywords\r\n .filter(s => !!s.keyword)\r\n .every(sk => judgmentTab.kindList.some(kk => kk === sk.kind))\r\n ) {\r\n judgmentTab.enableSearchResultCount = true;\r\n judgmentTab.isSearching = false;\r\n judgmentTab.searchResultCount = caseList.type_count[CaseType[CaseType.Judgment]];\r\n judgmentTab.hasSearchResult = (judgmentTab.searchResultCount > 0);\r\n }\r\n }\r\n return of(1).pipe(delay(1));\r\n }),\r\n concatMap(() => {\r\n this.setupStorageList();\r\n return of(1).pipe(delay(1));\r\n })\r\n );\r\n }\r\n\r\n /** 0:檢查中, 1:有筆記, 2:沒筆記, 3:檢索中沒筆記 */\r\n checkNoteList(): number {\r\n if (this.judicialInterpretService.storageNoteList == null) {\r\n return 0;\r\n } else if (this.judicialInterpretService.storageNoteList.length > 0) {\r\n return 1;\r\n } else if (this.filterCondition.searchKeywords.find(v => v.keyword && v.keyword.length > 0) != null) {\r\n return 0;\r\n } else if (this.judicialInterpretService.storageNoteList.length === 0\r\n && !this.disableAllClearButton()) {\r\n return 3;\r\n } else {\r\n return 2;\r\n }\r\n }\r\n clearSearchKeywords(): void {\r\n const hasSearched: boolean = this.filterCondition.searchKeywords.filter(a => a.keyword).length > 0;\r\n this.filterCondition.clearSearchKeywords();\r\n\r\n this.childContent_PersonalStorageService.searchKeywords = [];\r\n this.childContent_PersonalStorageService.isComposeSearch = false;\r\n this.storageTypesComponent.storageTab.LawRule.enableSearchResultCount = false;\r\n this.storageTypesComponent.storageTab.LawRule.searchResultCount = 0;\r\n this.storageTypesComponent.storageTab.Judgment.enableSearchResultCount = false;\r\n this.storageTypesComponent.storageTab.Judgment.searchResultCount = 0;\r\n\r\n if (hasSearched) {\r\n this.filterCondition.pageIndex = 1;\r\n this.pageChange.currentIndex = 1;\r\n this.pullNoteList();\r\n }\r\n }\r\n updateKeywordSearcherToFilterCondition(results: SearcherKeyword[]) {\r\n\r\n const _keywords: SearcherKeyword[] = [];\r\n results.forEach(kw => {\r\n const kwObject = JSON.parse(JSON.stringify(kw));\r\n const cloneSearchKeyword = Serializable.extend(new SearcherKeyword(), kwObject);\r\n\r\n let keyword = cloneSearchKeyword.keyword;\r\n if (keyword && keyword.match(/^【.+】$/)) {\r\n keyword = keyword.match(/^【(.+)】$/)[1];\r\n }\r\n cloneSearchKeyword.keyword = keyword;\r\n\r\n _keywords.push(cloneSearchKeyword);\r\n });\r\n\r\n this.filterCondition.searchKeywords = _keywords;\r\n this.filterCondition.pageIndex = 1;\r\n this.pageChange.currentIndex = 1;\r\n this.pullNoteList();\r\n // this.filterCondition.updateKeywordSearch(results);\r\n // this.applySearchFilter();\r\n }\r\n // applySearchFilter(): void {\r\n // this.filterCondition.gotoPage(1);\r\n // this.pageChange.goToPageSlient(1);\r\n // this.applyFilter();\r\n // }\r\n // applyFilter(refresh: boolean = false): void {\r\n // this.listElement.nativeElement.scrollTo(0, 0);\r\n // if (refresh) {\r\n // this.judicialInterpretService.pullCategoryList();\r\n // this.judicialInterpretService.pullSubcategoryList();\r\n // }\r\n // this.pullNoteList();\r\n // }\r\n disableAllClearButton(): boolean {\r\n if (this.filterCondition.category !== Category.allCategory\r\n || this.filterCondition.subcategory !== Subcategory.allSubcategory\r\n || this.filterCondition.check_in_past_day !== 0\r\n || this.filterCondition.check_in_status !== -1\r\n ) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n allClear(): void {\r\n this.filterCondition.category = Category.allCategory;\r\n this.filterCondition.subcategory = Subcategory.allSubcategory;\r\n this.filterCondition.check_in_past_day = 0;\r\n this.filterCondition.check_in_status = -1;\r\n this.filterCondition.clearSearchKeywords();\r\n this.filterCondition.pageIndex = 1;\r\n this.pageChange.currentIndex = 1;\r\n this.keywordSearcher.clickClear();\r\n this.pullNoteList();\r\n // this.keywordSearcher.reset();\r\n // this.filterCondition.selectCategory(Category.allCategory);\r\n // this.filterCondition.selectSubcategory(Subcategory.allSubcategory);\r\n // this.filterCondition.clearSearchKeywords();\r\n // this.keywordSearcher.reset();\r\n // this.applySearchFilter();\r\n\r\n // this.applySearchFilter();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n // updateFilterPopupResultToFilterCondition(result: FilterPopupResult) {\r\n // this.filterCondition.selectCategory(result.category);\r\n // this.filterCondition.selectSubcategory(result.subcategory);\r\n // this.applySearchFilter();\r\n // }\r\n\r\n\r\n\r\n\r\n // openFilterPopup(type: FilterPopupTabType): void {\r\n // const componentRef = this.filterPopupOpenerService.openPopup(\r\n // this.judicialInterpretService,\r\n // type,\r\n // this.filterCondition\r\n // );\r\n\r\n // componentRef.instance.submit.subscribe((filterPopupResult: FilterPopupResult) => {\r\n // this.updateFilterPopupResultToFilterCondition(filterPopupResult);\r\n // });\r\n // }\r\n openPersonalConfigPopup(): void {\r\n const componentRef = this.personalConfigPopupOpenerService.openPopup();\r\n componentRef.instance.confirm.subscribe((cfg: PersonalConfig) => {\r\n // console.log('save personal config');\r\n\r\n if (this.IsGuest) {\r\n this.personalConfigPopupService.personalConfig = Object.assign(new PersonalConfig(), cfg);\r\n componentRef.instance.closePopup();\r\n } else {\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.PersonalStorage);\r\n this.personalConfigPopupService.pushPersonalConfigObserver(cfg)\r\n .pipe(\r\n concatMap(() => this.personalConfigPopupService.pullPersonalConfigObserver()),\r\n tap(() => {\r\n componentRef.instance.closePopup();\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.PersonalStorage);\r\n })\r\n )\r\n .subscribe();\r\n }\r\n });\r\n }\r\n openCheckInFilterPopup(): void {\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n CheckLightFilterPopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '480px',\r\n // maxWidth: '500px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n\r\n const c = dlRef.componentInstance;\r\n const checkLightConfig: CheckLightFilterConfig = new CheckLightFilterConfig();\r\n checkLightConfig.day_range = this.filterCondition.check_in_past_day;\r\n if (this.filterCondition.check_in_status < 0) {\r\n Object.keys(checkLightConfig.show_status).forEach(key => {\r\n checkLightConfig.show_status[key] = true;\r\n });\r\n } else {\r\n Object.keys(checkLightConfig.show_status).forEach(key => {\r\n checkLightConfig.show_status[key] = false;\r\n });\r\n checkLightConfig.show_status[this.filterCondition.check_in_status] = true;\r\n }\r\n c.setupConfig(checkLightConfig);\r\n c.onConfirmFilter = (config: CheckLightFilterConfig) => {\r\n this.filterCondition.check_in_past_day = config.day_range;\r\n if (Object.values(config.show_status).every(v => v)) {\r\n this.filterCondition.check_in_status = -1;\r\n } else {\r\n this.filterCondition.check_in_status = parseInt(Object.entries(config.show_status).find(v => v[1])[0], 10);\r\n }\r\n\r\n this.filterCondition.pageIndex = 1;\r\n this.pageChange.currentIndex = 1;\r\n this.pullNoteList();\r\n };\r\n }\r\n\r\n\r\n suggestKeywordNoteTitle(keyword: string): Observable {\r\n return this.judicialInterpretService.getSuggestionNoteTitleObserver(keyword);\r\n }\r\n suggestKeywordCaseTag(keyword: string): Observable {\r\n return this.judicialInterpretService.getSuggestionCaseTagObserver(keyword);\r\n }\r\n suggestKeywordSummaryTag(keyword: string): Observable {\r\n return this.judicialInterpretService.getSuggestionSummaryTagObserver(keyword);\r\n }\r\n\r\n\r\n\r\n\r\n checkCursorClickTarget(ev: any, element: Element): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a === element;\r\n });\r\n }\r\n listenClickEvent(func: (ev: MouseEvent) => void): void {\r\n this.listenClickEventList.push(func);\r\n }\r\n removeClickEventListenter(func: (ev: MouseEvent) => void): void {\r\n this.removeListenClickEventList.push(func);\r\n }\r\n @HostListener('document:click', ['$event']) checkOnClick(ev: MouseEvent): void {\r\n for (const rev of this.removeListenClickEventList) {\r\n this.listenClickEventList = this.listenClickEventList.filter(v => v !== rev);\r\n }\r\n this.removeListenClickEventList = [];\r\n for (const cev of this.listenClickEventList) {\r\n cev(ev);\r\n }\r\n }\r\n\r\n\r\n\r\n requestSampleNote(): void {\r\n if (this.judicialInterpretService.storageNoteTotalCount > 0) {\r\n return;\r\n }\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.CopyNote);\r\n this.judicialInterpretService.requestSampleNoteJudicialInterpret()\r\n .pipe(\r\n concatMap(() => this.judgmentService.pullSaveStatusObserver()),\r\n concatMap(() => this.judicialInterpretService.pullCategoryListObserver()),\r\n concatMap(() => this.judicialInterpretService.pullSubcategoryListObserver()),\r\n concatMap(() => this.judicialInterpretService.pullStorageNoteListObserver(this.filterCondition)),\r\n )\r\n .subscribe({\r\n complete: () => {\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.CopyNote);\r\n }\r\n });\r\n }\r\n}\r\n","\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
{{check_in_button_text}}
\r\n
\r\n
\r\n
全部清除
\r\n
\r\n
\r\n
個人化設定
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
預備列印
\r\n
\r\n
\r\n
預備匯出
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n 案件存量\r\n 存量無限\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 目前:{{judgmentService.saveStatus.judicialInterpret_note_save_current}} / 無限\r\n
\r\n
\r\n 目前:{{judgmentService.saveStatus.judicialInterpret_note_save_current}} /\r\n 上限:{{judgmentService.saveStatus.getJudicialInterpretNoteSaveMaxString()}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n 所有摘要\r\n 摘要無限\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 目前:{{judgmentService.saveStatus.total_summary_save_current}} / 無限
\r\n
\r\n 目前:{{judgmentService.saveStatus.total_summary_save_current}} /\r\n 上限:{{judgmentService.saveStatus.getTotalSummarySaveMaxString()}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
尚未收存任何案件
\r\n \r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { ChildContentPersonalStorageCommonModule } from '../child-content-personal-storage-common.module';\r\n\r\nimport { JudicialInterpretComponent } from './judicial-interpret.component';\r\nimport { ListFullComponent } from './list-full/list-full.component';\r\nimport { ListSimpleComponent } from './list-simple/list-simple.component';\r\nimport { PipeHighlightModule } from 'projects/lwlib/src/pipe-highlight/pipe-highlight.module';\r\nimport { DetailInfoClickWindowService } from 'projects/lwlib/src/detail-info-click-window/detail-info-click-window.service';\r\nimport { SummaryWindowModule } from 'projects/lwlib/src/summary-window/summary-window.module';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ChildContentPersonalStorageCommonModule,\r\n SummaryWindowModule,\r\n PipeHighlightModule,\r\n ],\r\n declarations: [\r\n JudicialInterpretComponent,\r\n ListFullComponent,\r\n ListSimpleComponent,\r\n ],\r\n exports: [\r\n JudicialInterpretComponent\r\n ],\r\n providers: [\r\n DetailInfoClickWindowService\r\n ]\r\n})\r\nexport class JudicialInterpretModule { }\r\n","import { Component, OnInit, ViewChild, TemplateRef, Input, OnDestroy, ElementRef, HostListener, EventEmitter, Output } from '@angular/core';\r\nimport { JudicialInterpretProperty } from '../judicial-interpret-property.enum';\r\nimport { JudicialInterpretPropertyItem } from '../judicial-interpret-property-item';\r\nimport { JudicialInterpretType } from '../judicial-interpret-type.enum';\r\nimport { JudicialInterpretService } from '../judicial-interpret.service';\r\nimport { AppCommonService } from 'projects/desktop/src/app/app-common.service';\r\nimport { EditCategoryPopupService } from 'projects/lwlib/src/edit-category-popup/edit-category-popup.service';\r\nimport { CommentService } from '../../../comment.service';\r\nimport { DeleteConfirmPopupOpenerService } from 'projects/lwlib/src/delete-confirm-popup/delete-confirm-popup-opener.service';\r\nimport { EditCategoryPopupOpenerService } from 'projects/lwlib/src/edit-category-popup/edit-category-popup-opener.service';\r\nimport { RenamePopupOpenerService } from 'projects/lwlib/src/rename-popup/rename-popup-opener.service';\r\nimport { CommentPopupOpenerService } from 'projects/lwlib/src/comment-popup/comment-popup-opener.service';\r\nimport { CaseTagPopupOpenerService } from 'projects/lwlib/src/case-tag-popup/case-tag-popup-opener.service';\r\nimport { LoadingIconService } from 'projects/lwlib/src/loading-icon/loading-icon.service';\r\nimport { DetailInfoClickWindowComponent } from 'projects/lwlib/src/detail-info-click-window/detail-info-click-window.component';\r\nimport { EditCategoryTabId } from 'projects/lwlib/src/edit-category-popup/edit-category-tab-id';\r\nimport { SearcherKeywordKind } from 'projects/lwlib/src/keyword-searcher/searcher-keyword-kind';\r\nimport { JudicialInterpretCase } from '../judicial-interpret-case';\r\nimport { Subscription, forkJoin, of, Observable } from 'rxjs';\r\nimport { JudicialInterpretPropertyIcon } from '../judicial-interpret-property-icon.enum';\r\nimport { JudicialInterpretCaseFull } from '../judicial-interpret-case-full';\r\nimport { Serializable } from 'projects/lwlib/src/serializable';\r\nimport { SummaryTypeItem } from '../../judgment/summary-type-item';\r\nimport { NoteSummaryListType } from '../../judgment/note-summary-list-type';\r\nimport { BookmarkType } from '../../judgment/bookmark-type';\r\nimport { SummaryTypeId } from '../../judgment/summary-type-id.enum';\r\nimport { Issue } from '../../judgment/issue';\r\nimport { CaseType } from 'projects/lwlib/src/personal-config-popup/personal-config-popup.service';\r\nimport { DeleteConfirmPopupType } from 'projects/lwlib/src/delete-confirm-popup/delete-confirm-popup-type';\r\nimport { JudgmentCase } from '../../judgment/judgment-case';\r\nimport { EditCategoryPopupConfirmData } from 'projects/lwlib/src/edit-category-popup/edit-category-popup-confirm-data';\r\nimport { ActionName } from 'projects/lwlib/src/action-name';\r\nimport { EditCategoryData } from 'projects/lwlib/src/edit-category-popup/edit-category-data';\r\nimport { EditSubcategoryData } from 'projects/lwlib/src/edit-category-popup/edit-subcategory-data';\r\nimport { PreviewWindowComponent } from 'projects/lwlib/src/preview-window/preview-window.component';\r\nimport { PreviewWindowType } from 'projects/lwlib/src/preview-window/preview-window-type';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { ComposeType } from 'projects/lwlib/src/compose-search-popup/compose-type';\r\nimport { DetailInfoClickWindowTabId } from 'projects/lwlib/src/detail-info-click-window/detail-info-click-window-tab-id.enum';\r\nimport { DetailInfoClickWindowOption } from 'projects/lwlib/src/detail-info-click-window/detail-info-click-window-option';\r\nimport { CaseTag } from '../../judgment/case-tag';\r\nimport { Category } from 'projects/lwlib/src/category/category';\r\nimport { Subcategory } from 'projects/lwlib/src/category/subcategory';\r\nimport { EditCategoryPopupOption } from 'projects/lwlib/src/edit-category-popup/edit-category-popup-option';\r\nimport { DetailInfoClickWindowService } from 'projects/lwlib/src/detail-info-click-window/detail-info-click-window.service';\r\nimport { SummaryWindowService } from 'projects/lwlib/src/summary-window/summary-window.service';\r\nimport { DisplayContentBlockBasicInfoOption } from 'projects/lwlib/src/detail-info-click-window/display-content-block-basic-info/display-content-block-basic-info-option';\r\nimport { DisplayContentBlockShareInfoOption } from 'projects/lwlib/src/detail-info-click-window/display-content-block-share-info/display-content-block-share-info-option';\r\nimport { ShareRequest } from '../../judgment/share-request';\r\nimport { DisplayContentBlockIssueSortOutOption } from 'projects/lwlib/src/detail-info-click-window/display-content-block-issue-sort-out/display-content-block-issue-sort-out-option';\r\nimport { IssueAddRequest } from '../../judgment/issue-add-request';\r\nimport { IssueEditRequest } from '../../judgment/issue-edit-request';\r\nimport { IssueDeleteRequest } from '../../judgment/issue-delete-request';\r\nimport { IssueLinkSummaryRequest } from '../../judgment/issue-link-summary-request';\r\nimport { IssueOrderRequest } from '../../judgment/issue-order-request';\r\nimport { IssueOrderRequestData } from '../../judgment/issue-order-request-data';\r\nimport { ElementScroll } from 'projects/lwlib/src/element-scroll/element-scroll';\r\nimport { SummaryWindowOption } from 'projects/lwlib/src/summary-window/summary-window-option';\r\nimport { SummaryType } from 'projects/lwlib/src/summary-list/summary-type';\r\nimport { map, tap, concatMap } from 'rxjs/operators';\r\nimport { SummarySave } from 'projects/lwlib/src/summary-list/summary-save';\r\nimport { SummaryBlock } from 'projects/lwlib/src/summary-list/summary-block';\r\nimport { SummaryConvert } from 'projects/lwlib/src/summary-list/summary-convert';\r\nimport { SummaryFilterSetting } from 'projects/lwlib/src/summary-filter-popup/summary-filter-setting';\r\nimport { SummaryFilterDisplayModeId } from 'projects/lwlib/src/summary-filter-popup/summary-filter-display-mode-id.enum';\r\nimport { IssueBlukRequest } from '../../judgment/issue-bluk-request';\r\nimport { SummaryDeleteRequest } from 'projects/lwlib/src/summary-list/summary-delete-request';\r\nimport { SummaryListOrderRequest } from 'projects/lwlib/src/summary-list/summary-list-order-request';\r\nimport { ShareService } from '../../judgment/share.service';\r\nimport { IssueService } from '../../judgment/issue.service';\r\nimport { Summary } from 'projects/lwlib/src/summary-list/summary';\r\nimport { SuccessTipOpenerService } from 'projects/lwlib/src/succes-tip/success-tip-opener.service';\r\nimport { MaterialHelper } from 'projects/lwlib/src/material-helper';\r\nimport { PrintConfigPopupComponent } from 'projects/lwlib/src/print-config-popup/print-config-popup.component';\r\nimport { PrintPermissionPopupComponent } from 'projects/lwlib/src/print-permission-popup/print-permission-popup.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MemberService } from 'projects/lwlib/src/member/member.service';\r\nimport { CourtId } from 'projects/lwlib/src/case-type/court-id.enum';\r\nimport { FilterCondition } from '../../filter-condition';\r\nimport { PutInNotePopupComponent } from 'projects/lwlib/src/put-in-note-popup/put-in-note-popup.component';\r\nimport { PutInNoteCheckPopupComponent } from 'projects/lwlib/src/put-in-note-check-popup/put-in-note-check-popup.component';\r\nimport { NotePutInTeam } from 'projects/lwlib/src/team/note-put-in-team';\r\nimport { PutInNoteSuccessPopupComponent } from 'projects/lwlib/src/put-in-note-success-popup/put-in-note-success-popup.component';\r\nimport { PayInfoOverSaveLimitPopupComponent } from 'projects/lwlib/src/pay-info-over-save-limit-popup/pay-info-over-save-limit-popup.component';\r\nimport { JudgmentService } from '../../judgment/judgment.service';\r\nimport { SaveResultStatusId } from 'projects/lwlib/src/save-count-limit-popup/save-result-status.enum';\r\nimport { JudicialInterpretCourtId } from '../../../child-content-judicial-interpret-search/judicial-interpret-condition/judicial-interpret-court-id.enum';\r\n\r\n@Component({\r\n selector: 'app-list-full',\r\n templateUrl: './list-full.component.html',\r\n styleUrls: ['./list-full.component.scss']\r\n})\r\nexport class ListFullComponent implements OnInit, OnDestroy {\r\n @ViewChild('interpretBigJudge', { static: true }) interpretBigJudgeTemplate: TemplateRef; // 大法官解釋\r\n @ViewChild('bigJudgeReject', { static: true }) bigJudgeRejectTemplate: TemplateRef; // 大法官不受理\r\n @ViewChild('xfCourt', { static: true }) xfCourtTemplate: TemplateRef; // 憲法法庭\r\n @ViewChild('seminar', { static: true }) seminarTemplate: TemplateRef; // 座談會\r\n @ViewChild('resolution', { static: true }) resolutionTemplate: TemplateRef;\r\n @ViewChild('featuredJudgmentGist', { static: true }) featuredJudgmentGistTemplate: TemplateRef;\r\n @ViewChild('featuredJudgment', { static: true }) featuredJudgmentTemplate: TemplateRef;\r\n @ViewChild('discipline', { static: true }) disciplineTemplate: TemplateRef;\r\n @ViewChild('judgmentPrecedent', { static: true }) judgmentPrecedentTemplate: TemplateRef;\r\n @ViewChild('interpretCollege', { static: true }) interpretCollegeTemplate: TemplateRef;\r\n @ViewChild('grand', { static: true }) grandTemplate: TemplateRef;\r\n @ViewChild('execute', { static: true }) executeTemplate: TemplateRef;\r\n\r\n private jipi = JudicialInterpretPropertyItem;\r\n private jip = JudicialInterpretProperty;\r\n private jit = JudicialInterpretType;\r\n baseList: { [key in keyof typeof JudicialInterpretProperty]: JudicialInterpretPropertyItem } = {\r\n Unified: this.jipi.create('unified', this.jip.Unified, 'interpret-big-judge', this.jit.BigJudgeReject, () => this.interpretCollegeTemplate), // 司法院解釋 - 統字\r\n Solve: this.jipi.create('solve', this.jip.Solve, 'interpret-big-judge', this.jit.BigJudgeReject, () => this.interpretCollegeTemplate), // 司法院解釋 - 解字\r\n Yuan: this.jipi.create('yuan', this.jip.Yuan, 'interpret-big-judge', this.jit.BigJudgeReject, () => this.interpretCollegeTemplate), // 司法院解釋 - 院字\r\n YuanSolve: this.jipi.create('yuan-solve', this.jip.YuanSolve, 'interpret-big-judge', this.jit.BigJudgeReject, () => this.interpretCollegeTemplate), // 司法院解釋 - 院解字\r\n Explain: this.jipi.create('explain', this.jip.Explain, 'interpret-big-judge', this.jit.BigJudgeReject, () => this.interpretBigJudgeTemplate), // 大法官解釋 - 釋字\r\n Reject: this.jipi.create('reject', this.jip.Reject, 'big-judge-reject', this.jit.BigJudgeReject, () => this.bigJudgeRejectTemplate), // 大法官不受理 - 不受理\r\n XF38: this.jipi.create('xf38', this.jip.XF38, 'xf', this.jit.XF, () => this.xfCourtTemplate), // 憲法判決\r\n XF39: this.jipi.create('xf39', this.jip.XF39, 'xf', this.jit.XF, () => this.xfCourtTemplate), // 實體裁定\r\n XF40: this.jipi.create('xf40', this.jip.XF40, 'xf', this.jit.XF, () => this.xfCourtTemplate), // 程序裁定\r\n Precedent: this.jipi.create('precedent', this.jip.Precedent, 'judgment-precedent', this.jit.JudgmentPrecedent, () => this.judgmentPrecedentTemplate), // 判例\r\n Judgment: this.jipi.create('judgment', this.jip.Judgment, 'featured-judgment', this.jit.FeaturedJudgment, () => this.featuredJudgmentTemplate), // 精選裁判 - 判決\r\n JudgmentSeuperme: this.jipi.create('judgment-supereme', this.jip.JudgmentSeuperme, 'featured-judgment-gist', this.jit.FeaturedJudgmentGist, () => this.featuredJudgmentGistTemplate), // 最高法院判決\r\n Reference: this.jipi.create('reference', this.jip.Reference, 'featured-judgment-gist', this.jit.FeaturedJudgmentGist, () => this.featuredJudgmentGistTemplate), // 精選裁判 - 價值裁判\r\n Resolution: this.jipi.create('resolution', this.jip.Resolution, 'resolution', this.jit.Resolution, () => this.resolutionTemplate), // 決議\r\n Discipline: this.jipi.create('discipline', this.jip.Discipline, 'featured-judgment', this.jit.FeaturedJudgment, () => this.disciplineTemplate), // 公懲\r\n Seminar: this.jipi.create('seminar', this.jip.Seminar, 'seminar', this.jit.Seminar, () => this.seminarTemplate), // 座談會\r\n Grand: this.jipi.create('grand', this.jip.Grand, 'grand', this.jit.Grand, () => this.grandTemplate), // 大法庭\r\n Execute: this.jipi.create('execute', this.jip.Execute, 'execute', this.jit.Execute, () => this.executeTemplate),\r\n };\r\n courtPropertyClassName: { [key in keyof typeof JudicialInterpretCourtId]: string } = {\r\n ctypeD: 'interpret-big-judge',\r\n ctypeA: 'interpret-big-judge',\r\n ctypeB: 'interpret-big-judge',\r\n ctypeC: 'interpret-big-judge',\r\n ttypeX: 'big-judge-reject',\r\n jtype21gc1m1: 'grand grand1', // 提案裁定\r\n jtype21gc1m3: 'grand grand3', // 大法庭\r\n jtype21gc1m4: 'grand grand4', // 意見統一\r\n jtype22gc2m1: 'grand grand1', // 提案裁定\r\n jtype22gc2m3: 'grand grand3', // 大法庭\r\n jtype22gc2m4: 'grand grand4', // 意見統一\r\n jtype22gc2m2: 'grand grand2', // 撤銷提案\r\n jtype23gc3m1: 'grand grand1', // 提案裁定\r\n jtype23gc3m3: 'grand grand3', // 大法庭\r\n jtype23gc3m4: 'grand grand4', // 意見統一\r\n jtypeA: 'judgment-precedent',\r\n jtypeB: 'judgment-precedent',\r\n jtypeE: 'judgment-precedent',\r\n jtype1A: 'judgment-precedent',\r\n jtype1B: 'judgment-precedent',\r\n jtype1E: 'judgment-precedent',\r\n jtypeC0: 'featured-judgment-gist',\r\n jtypeC1: 'featured-judgment-gist',\r\n jtypeD0: 'featured-judgment-gist',\r\n jtypeD1: 'featured-judgment-gist',\r\n jtypeF0: 'featured-judgment-gist',\r\n jtypeF1: 'featured-judgment-gist',\r\n jtypeG: 'featured-judgment',\r\n jtypeH: 'featured-judgment',\r\n jtypeK: 'featured-judgment',\r\n jtypeO: 'featured-judgment',\r\n jtypeP: 'featured-judgment',\r\n jtypeQ: 'featured-judgment',\r\n jtypeI: 'featured-judgment',\r\n jtypeJ: 'featured-judgment',\r\n jtypeR: 'featured-judgment',\r\n jtypeU: 'reference',\r\n jtypeV: 'reference',\r\n jtypeS: 'reference',\r\n jtypeT: 'reference',\r\n dtypeA0: 'resolution',\r\n dtypeA1: 'resolution',\r\n dtypeB0: 'resolution',\r\n dtypeB1: 'resolution',\r\n dtypeC0: 'resolution',\r\n dtypeC1: 'resolution',\r\n jtypeL: 'featured-judgment discipline',\r\n qtypeA: 'seminar',\r\n qtypeG: 'seminar',\r\n qtypeB: 'seminar',\r\n qtypeC: 'seminar',\r\n qtypeD: 'seminar',\r\n etypeX0: 'execute',\r\n etypeX1: 'execute',\r\n xftype38: 'xf38',\r\n xftype39: 'xf39',\r\n xftype40: 'xf40',\r\n }\r\n\r\n detailInfoClickWindowTabId: any = DetailInfoClickWindowTabId;\r\n editCategoryTab: any = EditCategoryTabId;\r\n // noteList = [\r\n // { type: this.baseList.Unified },\r\n // { type: this.baseList.Solve },\r\n // { type: this.baseList.Yuan },\r\n // { type: this.baseList.YuanSolve },\r\n // { type: this.baseList.Explain },\r\n // { type: this.baseList.Reject },\r\n // { type: this.baseList.Precedent },\r\n // { type: this.baseList.Judgment },\r\n // { type: this.baseList.JudgmentSeuperme },\r\n // { type: this.baseList.Reference },\r\n // { type: this.baseList.Resolution },\r\n // { type: this.baseList.Discipline },\r\n // { type: this.baseList.Seminar },\r\n // ];\r\n\r\n @Input() importFilterCondition: FilterCondition;\r\n @Output() noteUpdate: EventEmitter = new EventEmitter();\r\n @Input() noteUpdateObserver: Observable;\r\n @ViewChild(DetailInfoClickWindowComponent, { static: true }) detailInfoClickWindowComponent: DetailInfoClickWindowComponent;\r\n @ViewChild('previewWindow', { static: true }) previewWindowComponent: PreviewWindowComponent;\r\n // editCategoryTab: any = EditCategoryTab;\r\n searcherKeywordKind: any = SearcherKeywordKind;\r\n\r\n // @Output() noteUpdate: EventEmitter = new EventEmitter();\r\n // @ViewChild(DetailInfoClickWindowComponent, { static: true }) detailInfoClickWindowComponent: DetailInfoClickWindowComponent;\r\n // @ViewChild('previewWindow', { static: true }) previewWindowComponent: PreviewWindowComponent;\r\n\r\n get filterCondition(): FilterCondition { return this.judicialInterpretService.filterCondition; }\r\n get noteList(): JudicialInterpretCase[] { return this.judicialInterpretService.storageNoteList; }\r\n selectedRowElement: Element;\r\n selectedRowBy: string = '';\r\n private _selectedNoteId: string = '';\r\n\r\n enableTeam: boolean = false;\r\n\r\n subscriptions: Subscription;\r\n\r\n keepPreviewWindowByRowElement: Element;\r\n\r\n // 打卡狀態選單\r\n showCheckinMenuNote: any;\r\n // 打卡詳細資料彈窗\r\n showCheckInPopupNote: any;\r\n // 置入團隊彈窗\r\n showCloneToTeamPopupNote: any;\r\n showCloneToTeamCheckPopupNote: any;\r\n showCloneToTeamSuccessPopupNote: any;\r\n // 顯示列印彈窗\r\n showPrintPopupNote: any;\r\n // 團隊分享、爭點整理、隨意備註、案件標籤視窗\r\n showDetailWindowNote: any;\r\n // 刪除筆記彈窗\r\n showDeleteNotePopupNote: any;\r\n // 編輯筆記名稱談窗\r\n showEditNoteNamePopupNote: any;\r\n // 檔案管理彈窗\r\n showEditCategoryPopupNote: any;\r\n // 編輯案件標籤彈窗\r\n showEditCaseTagPopupNote: any;\r\n // 摘要預覽視窗\r\n showSummaryPreviewWindowNote: any;\r\n\r\n constructor(\r\n public judgmentService: JudgmentService,\r\n private judicialInterpretService: JudicialInterpretService,\r\n public appCommonService: AppCommonService,\r\n private editCategoryPopupService: EditCategoryPopupService,\r\n private commentService: CommentService,\r\n private deleteConfirmPopupOpenerService: DeleteConfirmPopupOpenerService,\r\n private editCategoryPopupOpenerService: EditCategoryPopupOpenerService,\r\n private renamePopupOpenerService: RenamePopupOpenerService,\r\n private commentPopupOpenerService: CommentPopupOpenerService,\r\n private caseTagPopupOpenerService: CaseTagPopupOpenerService,\r\n private detailInfoClickWindowService: DetailInfoClickWindowService,\r\n private summaryWindowService: SummaryWindowService,\r\n private issueService: IssueService,\r\n private shareService: ShareService,\r\n private loadingIconService: LoadingIconService,\r\n private service: AppService,\r\n private successTipOpenerService: SuccessTipOpenerService,\r\n private matDialog: MatDialog,\r\n private memberService: MemberService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.subscriptions = this.judicialInterpretService.noteList$.subscribe(r => {\r\n if (!this.noteList.find(n => n.case_id === this._selectedNoteId)) {\r\n this.clearSelectedNote();\r\n }\r\n });\r\n\r\n this.enableTeam = this.memberService.memberHeader.has_team;\r\n }\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n isSelectedNote(note: JudicialInterpretCase): boolean {\r\n return this._selectedNoteId === note.note_id;\r\n }\r\n selectNote(note: JudicialInterpretCase, selectedBy: string): void {\r\n this._selectedNoteId = note.note_id;\r\n this.selectedRowBy = selectedBy;\r\n }\r\n clearSelectedNote(): void {\r\n this._selectedNoteId = '';\r\n this.selectedRowBy = '';\r\n }\r\n\r\n checkShowNoteBorder(note: any): boolean {\r\n let show = false;\r\n\r\n if (this.showCheckinMenuNote == note) { show = true; }\r\n if (this.showCheckInPopupNote == note) { show = true; }\r\n\r\n if (this.showCloneToTeamPopupNote == note) { show = true; }\r\n if (this.showCloneToTeamCheckPopupNote == note) { show = true; }\r\n if (this.showCloneToTeamSuccessPopupNote == note) { show = true; }\r\n if (this.showPrintPopupNote == note) { show = true; }\r\n if (this.showDetailWindowNote == note) { show = true; }\r\n if (this.showSummaryPreviewWindowNote == note) { show = true; }\r\n if (this.showDeleteNotePopupNote == note) { show = true; }\r\n if (this.showEditCategoryPopupNote == note) { show = true; }\r\n if (this.showEditNoteNamePopupNote == note) { show = true; }\r\n\r\n if (this.showEditCaseTagPopupNote == note) { show = true; }\r\n\r\n return show;\r\n }\r\n\r\n\r\n /** note 型別轉換 */\r\n extendNoteToFull(source_note: JudicialInterpretCase): JudicialInterpretCaseFull {\r\n // let note = Serializable.extendObjectFromResponseObject(new JudicialInterpretCaseFull(), source_note);\r\n return source_note as JudicialInterpretCaseFull;\r\n }\r\n noteListExtender(noteList: JudicialInterpretCase[]): JudicialInterpretCaseFull[] {\r\n const list = noteList.map(note => {\r\n const _note = this.extendNoteToFull(note);\r\n _note.property_template = this.baseList[JudicialInterpretProperty[note.property]];\r\n return _note;\r\n });\r\n return list;\r\n }\r\n\r\n\r\n /** 清單資料轉換 */\r\n getCategoryIconStyle(category: Category): any {\r\n // return Category.getIconStyle(category);\r\n if (category) {\r\n const _category = this.judicialInterpretService.categoryList.find(v => v.text === category.text);\r\n if (_category) {\r\n return Category.getIconStyle(_category);\r\n } else {\r\n return Category.getIconStyle(category);\r\n }\r\n }\r\n\r\n return {\r\n backgroundImage: 'url(/assets/img/icon/symbol_question.png)'\r\n };\r\n }\r\n getSubcategoryIconStyle(subcategory: Subcategory): any {\r\n // return Subcategory.getIconStyle(subcategory);\r\n if (subcategory) {\r\n const _subcategory = this.judicialInterpretService.subcategoryList.find(v => v.category_text === subcategory.category_text && v.text === subcategory.text);\r\n if (_subcategory) {\r\n return Subcategory.getIconStyle(_subcategory);\r\n } else {\r\n return Subcategory.getIconStyle(subcategory);\r\n }\r\n }\r\n return {\r\n backgroundImage: 'url(/assets/img/icon/symbol_question.png)'\r\n };\r\n }\r\n getPropertyIconStyle(property: JudicialInterpretProperty): any {\r\n let iconName = '';\r\n const p = property;\r\n const propertyName = JudicialInterpretProperty[p];\r\n if (!JudicialInterpretPropertyIcon[propertyName]) {\r\n return {};\r\n }\r\n\r\n iconName = 'property/' + JudicialInterpretPropertyIcon[propertyName];\r\n\r\n const style = {\r\n 'background-image': 'url(/assets/img/' + iconName + ')'\r\n };\r\n\r\n return style;\r\n }\r\n convertTimeText(tick: number): string {\r\n return this.appCommonService.convertTimeTickToPastTimeText1(tick);\r\n }\r\n convertSummaryItemToClass(item: SummaryTypeItem): string {\r\n // debugger;\r\n if (item.list_type === NoteSummaryListType.Bookmark) {\r\n return this.appCommonService.convertText_CamelCaseToLowerDash(BookmarkType[item.list_type].toString());\r\n } else {\r\n return this.appCommonService.convertText_CamelCaseToLowerDash(SummaryTypeId[item.item_type].toString());\r\n }\r\n }\r\n\r\n /** 清單過濾 */\r\n filterIssueList(issueList: Issue[]): Issue[] {\r\n if (!issueList || issueList.length === 0) {\r\n return [];\r\n }\r\n\r\n return issueList.filter(a => {\r\n return a.issue_text;\r\n });\r\n }\r\n filterIssueAnswerList(issueList: Issue[]): Issue[] {\r\n if (!issueList || issueList.length === 0) {\r\n return [];\r\n }\r\n\r\n return issueList.filter(a => {\r\n return a.answer_text;\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n /** 選擇筆記行 */\r\n selectRow(element: Element, selectedBy: string): void {\r\n // if (!this.selectedRowElement) {\r\n // }\r\n this.selectedRowElement = element;\r\n this.selectedRowBy = selectedBy;\r\n }\r\n clearSelectedRow(): void {\r\n this.selectedRowElement = null;\r\n this.selectedRowBy = '';\r\n }\r\n\r\n\r\n /** 預覽視窗 */\r\n clickTextPreviewWindow(rowElement: Element, title: string, text: string): void {\r\n this.keepPreviewWindowByRowElement = rowElement;\r\n this.openTextPreview(title, text);\r\n }\r\n mouseenterTextPreview(title: string, text: string): void {\r\n if (this.keepPreviewWindowByRowElement == null) {\r\n this.openTextPreview(title, text);\r\n }\r\n }\r\n mouseleavePreview(): void {\r\n if (this.keepPreviewWindowByRowElement == null) {\r\n this.closePreview();\r\n }\r\n }\r\n openTextPreview(title: string, text: string): void {\r\n const removeNewLine = new RegExp(/[\\s]/g);\r\n const data = {\r\n title: title,\r\n content: (text || '').replace(removeNewLine, '').trim()\r\n };\r\n this.previewWindowComponent.openWindow(PreviewWindowType.TextPreview, data);\r\n }\r\n closePreview(): void {\r\n this.previewWindowComponent.closeWindow();\r\n }\r\n checkCursorClickPreviewWindow(ev: any): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.some(a => a instanceof HTMLElement &&\r\n (\r\n a === this.previewWindowComponent.element\r\n || a.classList.contains('preview-button')\r\n )\r\n );\r\n }\r\n @HostListener('document:click', ['$event']) checkPreviewWindowCloseOrNot(ev: MouseEvent): void {\r\n if (this.keepPreviewWindowByRowElement == null) {\r\n return;\r\n }\r\n if (!this.checkCursorClickPreviewWindow(ev)) {\r\n this.closePreview();\r\n this.keepPreviewWindowByRowElement = null;\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n /** 開啟筆記 */\r\n openNote(note: JudicialInterpretCase): void {\r\n const query = ['load_save=1'];\r\n const keywords = this.filterCondition.searchKeywords\r\n .filter(k => k.keyword && k.compose !== ComposeType.Not);\r\n const hasSpecKeywords = keywords.filter(k => k.kind === SearcherKeywordKind.PointSummary\r\n || k.kind === SearcherKeywordKind.SummaryTag\r\n || k.kind === SearcherKeywordKind.Bookmark);\r\n if (hasSpecKeywords.length > 0) {\r\n query.push('keywords=' + hasSpecKeywords[0].keyword);\r\n if (hasSpecKeywords[0].kind === SearcherKeywordKind.PointSummary\r\n || hasSpecKeywords[0].kind === SearcherKeywordKind.SummaryTag) {\r\n query.push('searchtype=summary');\r\n } else if (hasSpecKeywords[0].kind === SearcherKeywordKind.Bookmark) {\r\n query.push('searchtype=bookmark');\r\n }\r\n } else {\r\n query.push('searchtype=bookmark');\r\n }\r\n // if (this.service.isDesktop()) {\r\n // query.push('force_desktop=1');\r\n // }\r\n const url: string = this.service.BaseUrlWeb + '/note/judicial_interpret/' + note.case_id\r\n + '?' + query.join('&');\r\n window.open(url);\r\n }\r\n /** 重新命名 */\r\n openRenamePopup(fromElement: Element, note: JudicialInterpretCase): void {\r\n // this.selectRow(fromElement, 'renamePopup');\r\n // this.selectNote(note, 'renamePopup');\r\n this.showEditNoteNamePopupNote = note;\r\n\r\n const componentRef = this.renamePopupOpenerService.openPopup(note.file_subject, note.file_subject2);\r\n\r\n componentRef.instance.confirm.subscribe((newNames: string[]) => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n this.judicialInterpretService.renameNoteObserver(note.note_id, newNames[0], newNames[1]).subscribe(() => {\r\n // 更新清單\r\n // console.log('new name ', newName);\r\n note.file_subject = newNames[0];\r\n note.file_subject2 = newNames[1];\r\n });\r\n\r\n componentRef.instance.closePopup();\r\n });\r\n\r\n componentRef.onDestroy(() => {\r\n // this.clearSelectedRow();\r\n // this.clearSelectedNote();\r\n this.showEditNoteNamePopupNote = null;\r\n });\r\n }\r\n\r\n /** 刪除確認 */\r\n openDeleteConfirmPopup(fromElement: Element, note: JudicialInterpretCase): void {\r\n // this.selectRow(fromElement, 'deleteConfirmPopup');\r\n // this.selectNote(note, 'deleteConfirmPopup');\r\n this.showDeleteNotePopupNote = note;\r\n const componentRef = this.deleteConfirmPopupOpenerService.openPopup(DeleteConfirmPopupType.Note);\r\n\r\n componentRef.instance.confirm.subscribe(() => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n this.judicialInterpretService.deleteNoteObserver(note.note_id, note.case_id).subscribe(() => {\r\n // 更新清單\r\n this.noteUpdate.emit();\r\n });\r\n\r\n componentRef.instance.closePopup();\r\n });\r\n\r\n componentRef.onDestroy(() => {\r\n // this.clearSelectedRow();\r\n this.showDeleteNotePopupNote = null;\r\n });\r\n }\r\n\r\n\r\n /** 隨意備註 */\r\n openCommentPopup(fromElement: Element, note: JudicialInterpretCase): void {\r\n // const componentRef = this.commentPopupOpenerService.openPopup(note.comment);\r\n // componentRef.instance.submit.subscribe(r => {\r\n // note.comment = r;\r\n // this.commentPopupService.pushJudicialInterpretObserver(note.judicial_interpret_id, r).subscribe();\r\n // });\r\n this._openCommentPopup(\r\n note.case_id,\r\n note.comment,\r\n (comment) => note.comment = comment\r\n );\r\n }\r\n private _openCommentPopup(\r\n note_id: string,\r\n comment: string,\r\n onConfirmSave: (comment: string) => void\r\n ): void {\r\n const componentRef = this.commentPopupOpenerService.openPopup('隨意備註', comment);\r\n componentRef.instance.submit.subscribe(new_comment => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n componentRef.instance.closePopup();\r\n return;\r\n }\r\n\r\n this.commentService.updateNoteCommentJudicialInterpretObserver(note_id, new_comment)\r\n .subscribe(() => {\r\n if (onConfirmSave) {\r\n onConfirmSave(new_comment);\r\n }\r\n // 關閉彈窗\r\n componentRef.instance.closePopup();\r\n });\r\n });\r\n }\r\n\r\n\r\n /** 案件標籤 */\r\n openCaseTagPopup(fromElement: Element, note: JudicialInterpretCase): void {\r\n // this.selectRow(fromElement, 'caseTagPopup');\r\n\r\n // const componentRef = this.caseTagPopupOpenerService.openPopup(CaseType.JudicialInterpret, note.case_tag_list, note);\r\n\r\n // componentRef.onDestroy(() => {\r\n // if (this.selectedRowBy === 'caseTagPopup') {\r\n // this.clearSelectedRow();\r\n // }\r\n // });\r\n this.showEditCaseTagPopupNote = note;\r\n const onConfirmSave = (list: CaseTag[]) => {\r\n note.case_tag_list = list;\r\n };\r\n const onDestory = () => {\r\n this.showEditCaseTagPopupNote = null;\r\n // if (this.selectedRowBy === 'caseTagPopup') {\r\n // this.clearSelectedRow();\r\n // }\r\n };\r\n\r\n this._openCaseTagPopup(\r\n note.note_id,\r\n note.case_tag_list,\r\n onConfirmSave,\r\n onDestory\r\n );\r\n }\r\n private _openCaseTagPopup(\r\n note_id: string,\r\n caseTagList: CaseTag[],\r\n onConfirmSave: (list: CaseTag[]) => void,\r\n onDestroy: () => void\r\n ): void {\r\n const componentRef = this.caseTagPopupOpenerService.openPopup(CaseType.JudicialInterpret, caseTagList);\r\n componentRef.instance.confirm.subscribe((list: CaseTag[]) => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n // 更新到S\r\n this.judicialInterpretService.updateNoteCaseTagListObserver(note_id, list)\r\n .subscribe(() => {\r\n // 更新本地\r\n if (onConfirmSave) {\r\n onConfirmSave(list);\r\n }\r\n // 關閉彈窗\r\n componentRef.instance.closePopup();\r\n });\r\n });\r\n componentRef.onDestroy(() => {\r\n onDestroy();\r\n });\r\n }\r\n\r\n\r\n /** 體系歸納 */\r\n openEditCategoryPopup(\r\n fromElement: Element,\r\n tabId: EditCategoryTabId,\r\n note: JudicialInterpretCase,\r\n ): void {\r\n // this.selectNote(note, 'editCategoryPopup');\r\n this.showEditCategoryPopupNote = note;\r\n\r\n const option: EditCategoryPopupOption = new EditCategoryPopupOption();\r\n option.tab_id = tabId;\r\n\r\n option.get_note_category = () => note.category;\r\n option.get_note_subcategory = () => note.subcategory;\r\n\r\n option.get_category_list = () => this.judicialInterpretService.categoryList;\r\n option.get_subcategory_list = () => this.judicialInterpretService.subcategoryList;\r\n option.pullCategoryListObserver = () => this.judicialInterpretService.pullCategoryListObserver();\r\n option.pullSubcategoryListObserver = () => this.judicialInterpretService.pullSubcategoryListObserver();\r\n option.pullNoteListObserver = () => this.judicialInterpretService.pullStorageNoteListObserver(this.filterCondition);\r\n\r\n option.addCategoryListObserver = (category) => this.judicialInterpretService.addCategoryObserver(category);\r\n option.addSubcategoryListObserver = (subcategory) => this.judicialInterpretService.addSubcategoryObserver(subcategory);\r\n option.editCategoryListObserver = (old_category, new_category) =>\r\n this.judicialInterpretService.editCategoryObserver(old_category, new_category);\r\n option.editSubcategoryListObserver = (category, old_subcategory, new_subcategory) =>\r\n this.judicialInterpretService.editSubcategoryObserver(category, old_subcategory, new_subcategory);\r\n option.deleteCategoryObserver = (text) => this.judicialInterpretService.deleteCategoryObserver(text);\r\n option.deleteSubcategoryObserver = (category, text) => this.judicialInterpretService.deleteSubcategoryObserver(category, text);\r\n option.orderCategoryListObserver = (list) => this.judicialInterpretService.orderCategoryObserver(list);\r\n option.orderSubcategoryListObserver = (list) => this.judicialInterpretService.orderSubcategoryObserver(list);\r\n option.broadcastCategoryUpdateObserver = (exci) => this.judicialInterpretService.broadcastCategoryUpdateObserver(exci);\r\n option.broadcastSubcategoryUpdateObserver = (exci) => this.judicialInterpretService.broadcastSubcategoryUpdateObserver(exci);\r\n\r\n\r\n\r\n const componentRef = this.editCategoryPopupOpenerService.openPopup(option);\r\n\r\n // 確定置換\r\n componentRef.instance.confirm.subscribe((result: EditCategoryPopupConfirmData) => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n \r\n // 讀取動畫\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.EditCategory);\r\n\r\n // 置換請求\r\n const request = this.judicialInterpretService.getNoteClassifyRequest(note.note_id, result.category, result.subcategory);\r\n this.judicialInterpretService.updateNoteClassifyObserver(request)\r\n .pipe(\r\n concatMap(() => forkJoin(\r\n this.judicialInterpretService.broadcastCategoryUpdateObserver(''),\r\n this.judicialInterpretService.broadcastSubcategoryUpdateObserver(''),\r\n this.judicialInterpretService.pullCategoryListObserver(),\r\n this.judicialInterpretService.pullSubcategoryListObserver(),\r\n )),\r\n concatMap(() => this.noteUpdateObserver)\r\n )\r\n .subscribe({\r\n complete: () => {\r\n // 關閉讀取動畫\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n // 關閉彈窗\r\n componentRef.instance.closePopup();\r\n }\r\n });\r\n });\r\n\r\n componentRef.onDestroy(() => {\r\n // this.clearSelectedNote();\r\n this.showEditCategoryPopupNote = null;\r\n });\r\n }\r\n\r\n\r\n\r\n log(text): void {\r\n console.log(text);\r\n }\r\n\r\n\r\n getNoteTemplate(note: JudicialInterpretCase): JudicialInterpretPropertyItem {\r\n return this.baseList[note.propertyString];\r\n }\r\n getGrandPropertyClass(note: JudicialInterpretCase): string {\r\n if (note.court_id == JudicialInterpretCourtId.jtype21gc1m1\r\n || note.court_id == JudicialInterpretCourtId.jtype22gc2m1\r\n || note.court_id == JudicialInterpretCourtId.jtype23gc3m1) {\r\n return 'grand1';\r\n } else if (note.court_id == JudicialInterpretCourtId.jtype22gc2m2) {\r\n return 'grand2';\r\n } else if (note.court_id == JudicialInterpretCourtId.jtype21gc1m3\r\n || note.court_id == JudicialInterpretCourtId.jtype22gc2m3\r\n || note.court_id == JudicialInterpretCourtId.jtype23gc3m3) {\r\n return 'grand3';\r\n } else if (note.court_id == JudicialInterpretCourtId.jtype21gc1m4\r\n || note.court_id == JudicialInterpretCourtId.jtype22gc2m4\r\n || note.court_id == JudicialInterpretCourtId.jtype23gc3m4) {\r\n return 'grand4';\r\n }\r\n\r\n return '';\r\n }\r\n getPropertyClassName(judicialInterpretCase: JudicialInterpretCase): string {\r\n if (judicialInterpretCase.data) {\r\n const data = judicialInterpretCase.data;\r\n if (data.overwrite_property) {\r\n return data.overwrite_property;\r\n } else if (data.append_property) {\r\n const courtIdName = JudicialInterpretCourtId[judicialInterpretCase.court_id];\r\n return this.courtPropertyClassName[courtIdName] + ' ' + data.append_property;\r\n }\r\n }\r\n\r\n const courtIdName = JudicialInterpretCourtId[judicialInterpretCase.court_id];\r\n return this.courtPropertyClassName[courtIdName];\r\n }\r\n\r\n\r\n\r\n\r\n showDetailInfoClickWindow(fromElement: Element, tabId: DetailInfoClickWindowTabId, noteData: any): void {\r\n // this.selectNote(noteData, 'detailInfoClickWindow');\r\n\r\n this.showSummaryPreviewWindowNote = null;\r\n this.showDetailWindowNote = noteData;\r\n\r\n // const note: JudgmentCase = noteData;\r\n const note: JudicialInterpretCase = noteData as JudicialInterpretCase;\r\n\r\n const option: DetailInfoClickWindowOption = new DetailInfoClickWindowOption();\r\n option.tab_id = tabId;\r\n option.note_id = note.note_id;\r\n option.caseType = CaseType.JudicialInterpret;\r\n option.filterCondition = this.filterCondition;\r\n\r\n option.onWindowShow = () => {\r\n // console.log('show window');\r\n this.detailInfoClickWindowService.translateX = 0;\r\n this.detailInfoClickWindowService.windowShowing = true;\r\n this.detailInfoClickWindowService.windowHideLock = true;\r\n };\r\n option.onWindowAfterShow = () => {\r\n this.detailInfoClickWindowService.windowShowing = false;\r\n this.detailInfoClickWindowService.windowHideLock = false;\r\n this.detailInfoClickWindowService.windowShowed = true;\r\n };\r\n option.onWindowHide = () => {\r\n this.showDetailWindowNote = null;\r\n // console.log('hide window');\r\n if (!this.detailInfoClickWindowService.windowHideLock) {\r\n this.detailInfoClickWindowService.windowHiding = true;\r\n this.detailInfoClickWindowService.translateX = -700;\r\n this.clearSelectedNote();\r\n }\r\n\r\n };\r\n option.onWindowAfterHide = () => {\r\n if (!this.detailInfoClickWindowService.windowHideLock) {\r\n this.detailInfoClickWindowService.windowHiding = false;\r\n this.detailInfoClickWindowService.windowShowed = false;\r\n }\r\n };\r\n\r\n\r\n /** 基本資訊 */\r\n option.basicInfoOption = new DisplayContentBlockBasicInfoOption();\r\n option.basicInfoOption.rootOption = option;\r\n option.basicInfoOption.reason = note.case_reason;\r\n option.basicInfoOption.get_edit_date = () => note.edit_date;\r\n option.basicInfoOption.get_summaryTypeItemList = () => note.summary_type_item_list;\r\n option.basicInfoOption.get_case_tag_list = () => note.case_tag_list;\r\n option.basicInfoOption.get_comment = () => note.comment;\r\n option.basicInfoOption.editCaseTag = () => {\r\n this._openCaseTagPopup(\r\n note.note_id,\r\n note.case_tag_list,\r\n (list) => note.case_tag_list = list,\r\n () => { }\r\n );\r\n };\r\n option.basicInfoOption.editComment = () => {\r\n this._openCommentPopup(\r\n note.case_id,\r\n note.comment,\r\n (comment) => note.comment = comment\r\n );\r\n };\r\n option.basicInfoOption.openSummaryPreviewWindow = (summaryTypeItem: SummaryTypeItem) => {\r\n this.detailInfoClickWindowService.hideWindow();\r\n this.showSummaryPreviewWindow(note, summaryTypeItem);\r\n };\r\n\r\n\r\n /** 分享資訊 */\r\n option.shareInfoOption = new DisplayContentBlockShareInfoOption();\r\n option.shareInfoOption.rootOption = option;\r\n option.shareInfoOption.share_id = note.share_info ? note.share_info.share_id : '';\r\n option.shareInfoOption.share_click_count = note.share_info ? note.share_info.click_count : 0;\r\n option.shareInfoOption.updateNoteShare = (enable: boolean) => {\r\n \r\n const request: ShareRequest = new ShareRequest();\r\n request.type = CaseType.JudicialInterpret;\r\n request.note_id = note.note_id;\r\n request.enable = enable;\r\n this.shareService.shareNoteJudicialInterpretObserver(request).subscribe(si => {\r\n note.share_info = si;\r\n if (si) {\r\n option.shareInfoOption.share_id = si.share_id;\r\n option.shareInfoOption.share_click_count = si.click_count;\r\n }\r\n });\r\n };\r\n\r\n /** 爭點整理 */\r\n option.issueSortOutOption = new DisplayContentBlockIssueSortOutOption();\r\n option.issueSortOutOption.rootOption = option;\r\n option.issueSortOutOption.summaryWindowService = this.summaryWindowService;\r\n option.issueSortOutOption.get_issue_list = () => note.issue_list;\r\n option.issueSortOutOption.addIssue = (issue: Issue) => {\r\n const request = new IssueAddRequest();\r\n request.case_id = note.case_id;\r\n request.sn = issue.sn;\r\n request.issue_text = issue.issue_text;\r\n request.answer_text = issue.answer_text;\r\n\r\n // this.loadingIconService.openFullScreenLoadingIcon(ActionName.Issue);\r\n const s = this.issueService.addJudicialInterpretObserver(request).subscribe(() => {\r\n this.judicialInterpretService.updateNoteDataStorage(note.case_id, () => {\r\n setTimeout(() => {\r\n const newIssue = note.issue_list[note.issue_list.length - 1];\r\n ElementScroll.intoView(document.getElementById(newIssue.id), 0);\r\n setTimeout(() => {\r\n newIssue.highlightState = 'play';\r\n setTimeout(() => {\r\n newIssue.highlightState = 'play';\r\n });\r\n });\r\n });\r\n });\r\n });\r\n };\r\n option.issueSortOutOption.editIssue = (issue: Issue) => {\r\n const request = new IssueEditRequest();\r\n request.case_id = note.case_id;\r\n request.issue = issue;\r\n const s = this.issueService.updateJudicialInterpretObserver(request).subscribe(() => {\r\n this.issueService.getJudicialInterpretIssueListObserver(note.note_id)\r\n .subscribe((list: Issue[]) => {\r\n note.issue_list = list.map(v =>\r\n Serializable.extendObjectFromResponseObject(new Issue(), v)\r\n );\r\n s.unsubscribe();\r\n });\r\n });\r\n };\r\n option.issueSortOutOption.deleteIssue = (issue: Issue) => {\r\n const request = new IssueDeleteRequest();\r\n request.case_id = note.case_id;\r\n request.sn = issue.sn;\r\n const s = this.issueService.deleteJudicialInterpretObserver(request).subscribe(() => {\r\n this.judicialInterpretService.updateNoteDataStorage(note.case_id);\r\n });\r\n };\r\n option.issueSortOutOption.linkSummary = (issue: Issue) => {\r\n const request = new IssueLinkSummaryRequest();\r\n request.case_id = note.case_id;\r\n request.issue_id = issue.id;\r\n request.summary_id = issue.link_summary_id;\r\n const s = this.issueService.linkSummaryJudicialInterpretObserver(request).subscribe(() => {\r\n this.judicialInterpretService.updateNoteDataStorage(note.case_id);\r\n });\r\n };\r\n option.issueSortOutOption.orderIssue = (callback: () => void) => {\r\n const request: IssueOrderRequest = new IssueOrderRequest();\r\n request.case_id = note.case_id;\r\n request.order_list = [];\r\n note.issue_list.forEach(i => {\r\n const orderData: IssueOrderRequestData = new IssueOrderRequestData();\r\n orderData.sn = i.sn;\r\n orderData.id = i.id;\r\n request.order_list.push(orderData);\r\n });\r\n this.issueService.orderJudicialInterpretObserver(request)\r\n .subscribe(() => {\r\n if (callback) {\r\n callback();\r\n }\r\n });\r\n };\r\n option.issueSortOutOption.pullIssueList = () => {\r\n this.issueService.getJudicialInterpretIssueListObserver(note.note_id)\r\n .subscribe((list: Issue[]) => {\r\n note.issue_list = list;\r\n });\r\n };\r\n option.issueSortOutOption.moveUpIssue = (issue: Issue) => {\r\n const prevIssueIndex = issue.sn - 1;\r\n const prevIssue = note.issue_list[prevIssueIndex];\r\n const prevSn = prevIssue.sn;\r\n prevIssue.sn = issue.sn;\r\n issue.sn = prevSn;\r\n note.issue_list.splice(prevIssueIndex, 2, issue, prevIssue);\r\n option.issueSortOutOption.disableMoveOption = true;\r\n issue.playHighlight();\r\n setTimeout(() => {\r\n ElementScroll.intoView(document.getElementById(issue.id), 0);\r\n });\r\n option.issueSortOutOption.orderIssue(() => {\r\n setTimeout(() => {\r\n option.issueSortOutOption.disableMoveOption = false;\r\n }, 300);\r\n });\r\n };\r\n option.issueSortOutOption.moveDownIssue = (issue: Issue) => {\r\n // console.log('issue move down');\r\n\r\n const sourceIndex = issue.sn;\r\n const nextIssueIndex = issue.sn + 1;\r\n const nextIssue = note.issue_list[nextIssueIndex];\r\n const nextSn = nextIssue.sn;\r\n nextIssue.sn = issue.sn;\r\n issue.sn = nextSn;\r\n note.issue_list.splice(sourceIndex, 2, nextIssue, issue);\r\n option.issueSortOutOption.disableMoveOption = true;\r\n issue.playHighlight();\r\n setTimeout(() => {\r\n ElementScroll.intoView(document.getElementById(issue.id), 0);\r\n });\r\n option.issueSortOutOption.orderIssue(() => {\r\n setTimeout(() => {\r\n option.issueSortOutOption.disableMoveOption = false;\r\n }, 300);\r\n });\r\n };\r\n option.issueSortOutOption.showSummaryWindow = () => {\r\n if (!this.summaryWindowService.windowShowed) {\r\n option.issueSortOutOption.issueLinkBackup = {};\r\n option.issueSortOutOption.issueAnswerBackup = {};\r\n\r\n if (note.issue_list\r\n && note.issue_list.length) {\r\n note.issue_list.forEach(i => {\r\n option.issueSortOutOption.issueLinkBackup[i.id] = i.link_summary_id;\r\n option.issueSortOutOption.issueAnswerBackup[i.id] = i.answer_text;\r\n });\r\n }\r\n\r\n console.log('backup source links', option.issueSortOutOption.issueLinkBackup);\r\n }\r\n const soption = new SummaryWindowOption();\r\n option.issueSortOutOption.summaryWindowOption = soption;\r\n\r\n // soption.disableBottomMenu = true;\r\n // soption.disableTopRightMenu = true;\r\n // soption.disableTextCopy = true;\r\n // soption.disableTypeSelect = true;\r\n // soption.disableTextEdit = true;\r\n // soption.disableTagEdit = true;\r\n // soption.disableCancelSelect = true;\r\n // soption.disableGistEdit = true;\r\n soption.selectedSummaryId = option.issueSortOutOption.linkingIssue.link_summary_id;\r\n\r\n soption.title = '連結摘要';\r\n // soption.isLinkIssueMode = true;\r\n soption.onWindowShow = () => {\r\n this.summaryWindowService.translateX = 600;\r\n this.summaryWindowService.windowShowing = true;\r\n this.summaryWindowService.windowHideLock = true;\r\n this.summaryWindowService.summaryListService.linkMode = true;\r\n soption.updateSummaryList();\r\n };\r\n soption.onWindowAfterShow = () => {\r\n this.summaryWindowService.windowShowing = false;\r\n this.summaryWindowService.windowHideLock = false;\r\n this.summaryWindowService.windowShowed = true;\r\n };\r\n soption.onWindowHide = () => {\r\n if (!this.summaryWindowService.windowHideLock) {\r\n this.summaryWindowService.windowHiding = true;\r\n this.summaryWindowService.translateX = -700;\r\n option.issueSortOutOption.linkingIssue = null;\r\n option.issueSortOutOption.enableLinkConfirmButton = false;\r\n note.issue_list.forEach(i => {\r\n i.link_summary_id = option.issueSortOutOption.issueLinkBackup[i.id];\r\n i.answer_text = option.issueSortOutOption.issueAnswerBackup[i.id];\r\n });\r\n this.summaryWindowService.summaryListService.linkMode = false;\r\n\r\n if (this.summaryWindowService.component) {\r\n this.summaryWindowService.component.keyword = '';\r\n }\r\n }\r\n };\r\n soption.onWindowAfterHide = () => {\r\n if (!this.summaryWindowService.windowHideLock) {\r\n this.summaryWindowService.windowHiding = false;\r\n this.summaryWindowService.windowShowed = false;\r\n this.summaryWindowService.searchedKeyword = '';\r\n this.summaryWindowService.selectedSummaryType = SummaryType.summaryTypeAll;\r\n }\r\n };\r\n /** 更新摘要清單 */\r\n soption.updateSummaryList = () => {\r\n let source = this.judicialInterpretService.getSummaryListObserver(note.case_id)\r\n .pipe(\r\n map(list => (list as any).map(summary =>\r\n Serializable.extendObjectFromResponseObject(new SummarySave(), summary)\r\n )),\r\n tap(list => {\r\n note.summary = list;\r\n })\r\n );\r\n if (note.summary) {\r\n console.log('note-summary');\r\n source = of(note.summary);\r\n }\r\n this.summaryWindowService.loadingSummaryList = true;\r\n source.subscribe(sl => {\r\n const summaryListService = this.summaryWindowService.summaryListService;\r\n summaryListService.setSelectedSummaryBlockAndSummary(null, null);\r\n summaryListService.summaryBlockList = [];\r\n summaryListService.setupReaderMode();\r\n summaryListService.disableCancelSelect = true;\r\n summaryListService.enableCopySummaryButtonDisplay = false;\r\n summaryListService.enableCopyLearnTrainingButtonDisplay = false;\r\n // summaryListService.disableBottomMenu = soption.disableBottomMenu;\r\n // summaryListService.disableTopRightMenu = soption.disableTopRightMenu;\r\n // summaryListService.disableTextCopy = soption.disableTextCopy;\r\n // summaryListService.disableTypeSelect = soption.disableTypeSelect;\r\n // summaryListService.disableTextEdit = soption.disableTextEdit;\r\n // summaryListService.disableTagEdit = soption.disableTagEdit;\r\n // summaryListService.disableCancelSelect = soption.disableCancelSelect;\r\n // summaryListService.disableGistEdit = soption.disableGistEdit;\r\n\r\n const summaryBlock = {};\r\n sl.forEach((summary: SummarySave) => {\r\n if (!summaryBlock[summary.summary_block_index]) {\r\n const block = new SummaryBlock(summaryListService);\r\n block.blockIndex = summary.summary_block_index;\r\n summaryBlock[summary.summary_block_index] = block;\r\n }\r\n });\r\n const summaryBlockList = [];\r\n Object.keys(summaryBlock).forEach(key => {\r\n summaryBlockList.push(summaryBlock[key]);\r\n });\r\n summaryBlockList.sort((a, b) => a.blockIndex - b.blockIndex);\r\n\r\n sl.forEach((summarySave: SummarySave) => {\r\n const summary = SummaryConvert.saveToSummary(\r\n summarySave,\r\n summaryBlock[summarySave.summary_block_index],\r\n summaryListService,\r\n null\r\n );\r\n summary.summaryBlock.list.push(summary);\r\n });\r\n\r\n summaryBlockList.forEach(block => {\r\n block.list.sort((a, b) => a.index - b.index);\r\n summaryListService.summaryBlockList.push(block);\r\n });\r\n summaryListService.recalcAllSummaryOrder();\r\n\r\n console.log('setup list summary', summaryListService.summaryBlockList);\r\n this.summaryWindowService.loadingSummaryList = false;\r\n\r\n // 設定摘要清單過濾\r\n const filterSetting: SummaryFilterSetting = new SummaryFilterSetting();\r\n filterSetting.displayModeId = SummaryFilterDisplayModeId.All;\r\n filterSetting.selectedTypes = [];\r\n filterSetting.keyword = '';\r\n const summaryTypes: { [key: string]: SummaryTypeId } = {};\r\n sl.forEach((summarySave: SummarySave) => {\r\n summaryTypes[SummaryTypeId[summarySave.summary_type_id]] = summarySave.summary_type_id;\r\n });\r\n filterSetting.selectedTypes = Object.keys(summaryTypes)\r\n .map(key => summaryTypes[key]);\r\n this.summaryWindowService.summaryListService.updateSummaryListShow(filterSetting);\r\n this.summaryWindowService.searchedKeyword = '';\r\n\r\n setTimeout(() => {\r\n if (option.issueSortOutOption\r\n && option.issueSortOutOption.linkingIssue.link_summary_id) {\r\n const summaryItem = this.summaryWindowService.summaryListService.getFlatSummaryList().find(v => v.summaryId === option.issueSortOutOption.linkingIssue.link_summary_id);\r\n if (summaryItem) {\r\n this.summaryWindowService.summaryListService.setSelectedSummaryBlockAndSummary(summaryItem.summaryBlock, summaryItem);\r\n summaryItem.scrollIntoView();\r\n }\r\n }\r\n });\r\n });\r\n };\r\n soption.onSummarySelected = (summary: Summary) => {\r\n console.log('linking mode, select summary ', summary, option.issueSortOutOption.linkingIssue);\r\n\r\n if (option.issueSortOutOption.linkingIssue) {\r\n option.issueSortOutOption.enableLinkConfirmButton = true;\r\n option.issueSortOutOption.linkingIssue.link_summary_id = summary ? summary.summaryId : '';\r\n option.issueSortOutOption.linkingIssue.edit_time = new Date().getTime();\r\n\r\n if (!option.issueSortOutOption.issueAnswerBackup[option.issueSortOutOption.linkingIssue.id]) {\r\n option.issueSortOutOption.linkingIssue.answer_text = summary.titleText;\r\n }\r\n }\r\n };\r\n\r\n this.summaryWindowService._option = soption;\r\n this.summaryWindowService.showWindow();\r\n };\r\n option.issueSortOutOption.cancelLink = () => {\r\n this.summaryWindowService.hideWindow();\r\n };\r\n option.issueSortOutOption.confirmLink = () => {\r\n const blukData: IssueBlukRequest = new IssueBlukRequest();\r\n blukData.case_id = note.case_id;\r\n blukData.list = [];\r\n if (note.issue_list) {\r\n blukData.list = note.issue_list;\r\n // note.issue_list.forEach(i => {\r\n // linkData[i.id] = i.link_summary_id;\r\n // });\r\n this.issueService.blukJudicialInterpretObserver(blukData)\r\n .subscribe(r => { });\r\n // setTimeout(() => {\r\n // this.summaryWindowService.hideWindow();\r\n // }, 1000);\r\n }\r\n note.issue_list.forEach(i => {\r\n option.issueSortOutOption.issueLinkBackup[i.id] = i.link_summary_id;\r\n option.issueSortOutOption.issueAnswerBackup[i.id] = i.answer_text;\r\n });\r\n this.summaryWindowService.hideWindow();\r\n // option.issueSortOutOption.issueLinkBackup = {};\r\n };\r\n\r\n this.detailInfoClickWindowService.selectedTab = null;\r\n setTimeout(() => {\r\n // console.log('show window root');\r\n this.detailInfoClickWindowService._option = option;\r\n this.detailInfoClickWindowService.selectedTab = this.detailInfoClickWindowService.tabs[option.tab_id_text];\r\n this.detailInfoClickWindowService.showWindow();\r\n });\r\n // // console.log('show window root');\r\n // this.detailInfoClickWindowService._option = option;\r\n // this.detailInfoClickWindowService.selectedTab = this.detailInfoClickWindowService.tabs[option.tab_id_text];\r\n // this.detailInfoClickWindowService.showWindow();\r\n }\r\n showSummaryPreviewWindow(noteData: any, summaryTypeItem: SummaryTypeItem): void {\r\n // this.selectNote(noteData, 'detailInfoClickWindow');\r\n\r\n this.showSummaryPreviewWindowNote = noteData;\r\n this.showDetailWindowNote = null;\r\n\r\n const note: JudicialInterpretCase = noteData as JudicialInterpretCase;\r\n\r\n const soption = new SummaryWindowOption();\r\n soption.title = '摘要預覽';\r\n\r\n // soption.disableBottomMenu = false;\r\n // soption.disableTopRightMenu = false;\r\n // soption.disableTextCopy = false;\r\n // soption.disableTypeSelect = false;\r\n // soption.disableTextEdit = false;\r\n // soption.disableTagEdit = false;\r\n // soption.disableCancelSelect = false;\r\n // soption.disableGistEdit = false;\r\n\r\n soption.onWindowShow = () => {\r\n this.summaryWindowService.translateX = 0;\r\n this.summaryWindowService.windowShowing = true;\r\n this.summaryWindowService.windowHideLock = true;\r\n\r\n if (SummaryWindowOption.textCopySubscription) {\r\n SummaryWindowOption.textCopySubscription.unsubscribe();\r\n SummaryWindowOption.textCopySubscription = null;\r\n }\r\n if (SummaryWindowOption.summaryCopyOnlineSubscription) {\r\n SummaryWindowOption.summaryCopyOnlineSubscription.unsubscribe();\r\n SummaryWindowOption.summaryCopyOnlineSubscription = null;\r\n }\r\n SummaryWindowOption.textCopySubscription = this.summaryWindowService.summaryListService.textCopyed$.subscribe(() => {\r\n this.successTipOpenerService.showPopTip('複製成功', '3s cubic-bezier(0.895, 0.03, 0.685, 0.22)');\r\n });\r\n SummaryWindowOption.summaryCopyOnlineSubscription = this.summaryWindowService.summaryListService.copySummaryOnline$\r\n .subscribe(() => {\r\n this.successTipOpenerService.showPopTip('已複製,請建立新摘要並建入', '4s cubic-bezier(0.895, 0.03, 0.685, 0.22)');\r\n });\r\n\r\n document.querySelector('.summary-window .result-row').scrollTop = 0;\r\n soption.updateSummaryList();\r\n };\r\n soption.onWindowAfterShow = () => {\r\n this.summaryWindowService.windowShowing = false;\r\n this.summaryWindowService.windowHideLock = false;\r\n this.summaryWindowService.windowShowed = true;\r\n };\r\n soption.onWindowHide = () => {\r\n this.showSummaryPreviewWindowNote = null;\r\n // console.log('preview windows hide');\r\n if (!this.summaryWindowService.windowHideLock) {\r\n this.summaryWindowService.windowHiding = true;\r\n this.summaryWindowService.translateX = -700;\r\n\r\n if (this.summaryWindowService.component) {\r\n this.summaryWindowService.component.keyword = '';\r\n }\r\n\r\n this.summaryWindowService.summaryListService.updateMovingSummary(null);\r\n\r\n if (!this.detailInfoClickWindowService.windowShowing\r\n && !this.detailInfoClickWindowService.windowShowed) {\r\n this.clearSelectedNote();\r\n }\r\n }\r\n };\r\n soption.onWindowAfterHide = () => {\r\n if (!this.summaryWindowService.windowHideLock) {\r\n this.summaryWindowService.windowHiding = false;\r\n this.summaryWindowService.windowShowed = false;\r\n this.summaryWindowService.searchedKeyword = '';\r\n this.summaryWindowService.selectedSummaryType = SummaryType.summaryTypeAll;\r\n }\r\n };\r\n soption.onSummarySelected = (summary: Summary) => {\r\n\r\n };\r\n /** 更新摘要清單 */\r\n soption.updateSummaryList = () => {\r\n const summaryListService = this.summaryWindowService.summaryListService;\r\n summaryListService.summaryTypeList = SummaryType.judgmentSummaryTypeList;\r\n summaryListService.setSelectedSummaryBlockAndSummary(null, null);\r\n summaryListService.summaryBlockList = [];\r\n\r\n let source = this.judicialInterpretService.getSummaryListObserver(note.case_id)\r\n .pipe(\r\n map(list => (list as any).map(summary =>\r\n Serializable.extendObjectFromResponseObject(new SummarySave(), summary)\r\n )),\r\n tap(list => {\r\n note.summary = list;\r\n })\r\n );\r\n if (note.summary) {\r\n console.log('note-summary');\r\n source = of(note.summary);\r\n }\r\n this.summaryWindowService.loadingSummaryList = true;\r\n source.subscribe(sl => {\r\n const summaryBlock = {};\r\n sl.forEach((summary: SummarySave) => {\r\n if (!summaryBlock[summary.summary_block_index]) {\r\n const block = new SummaryBlock(summaryListService);\r\n block.blockIndex = summary.summary_block_index;\r\n summaryBlock[summary.summary_block_index] = block;\r\n }\r\n });\r\n const summaryBlockList = [];\r\n summaryListService.setupEditorMode();\r\n summaryListService.disableCancelSelect = false;\r\n summaryListService.isCopySummaryLoginAlert = false;\r\n // summaryListService.disableBottomMenu = soption.disableBottomMenu;\r\n // summaryListService.disableTopRightMenu = soption.disableTopRightMenu;\r\n // summaryListService.disableTextCopy = soption.disableTextCopy;\r\n // summaryListService.disableTypeSelect = soption.disableTypeSelect;\r\n // summaryListService.disableTextEdit = soption.disableTextEdit;\r\n // summaryListService.disableTagEdit = soption.disableTagEdit;\r\n // summaryListService.disableCancelSelect = soption.disableCancelSelect;\r\n // summaryListService.disableGistEdit = soption.disableGistEdit;\r\n\r\n Object.keys(summaryBlock).forEach(key => {\r\n summaryBlockList.push(summaryBlock[key]);\r\n });\r\n summaryBlockList.sort((a, b) => a.blockIndex - b.blockIndex);\r\n\r\n sl.forEach((summarySave: SummarySave) => {\r\n const summary = SummaryConvert.saveToSummary(\r\n summarySave,\r\n summaryBlock[summarySave.summary_block_index],\r\n summaryListService,\r\n null\r\n );\r\n summary.summaryBlock.list.push(summary);\r\n });\r\n\r\n summaryBlockList.forEach(block => {\r\n block.list.sort((a, b) => a.index - b.index);\r\n summaryListService.summaryBlockList.push(block);\r\n });\r\n summaryListService.recalcAllSummaryOrder();\r\n\r\n console.log('setup list summary', summaryListService.summaryBlockList);\r\n this.summaryWindowService.loadingSummaryList = false;\r\n\r\n // 設定摘要清單過濾\r\n const filterSetting: SummaryFilterSetting = new SummaryFilterSetting();\r\n filterSetting.displayModeId = SummaryFilterDisplayModeId.All;\r\n filterSetting.selectedTypes = [];\r\n filterSetting.keyword = '';\r\n const summaryTypes: { [key: string]: SummaryTypeId } = {};\r\n sl.forEach((summarySave: SummarySave) => {\r\n summaryTypes[SummaryTypeId[summarySave.summary_type_id]] = summarySave.summary_type_id;\r\n });\r\n filterSetting.selectedTypes = Object.keys(summaryTypes)\r\n .map(key => summaryTypes[key]);\r\n this.summaryWindowService.selectedSummaryType = SummaryType.summaryTypeAll;\r\n\r\n if (summaryTypeItem != null\r\n && summaryTypeItem.list_type !== NoteSummaryListType.Bookmark\r\n && this.summaryWindowService.selectedSummaryType) {\r\n this.summaryWindowService.selectedSummaryType = SummaryType.typeDict[SummaryTypeId[summaryTypeItem.item_type]];\r\n filterSetting.selectedTypes = [this.summaryWindowService.selectedSummaryType.id];\r\n }\r\n\r\n\r\n this.summaryWindowService.searchedKeyword = '';\r\n this.summaryWindowService.summaryListService.updateSummaryListShow(filterSetting);\r\n });\r\n };\r\n\r\n /** 更新摘要 */\r\n soption.updateSummary = (summary: Summary) => {\r\n if (summary.isNewSummary) { return; }\r\n const saveRequest = SummaryConvert.summaryToSave(summary);\r\n this.judicialInterpretService.updateSummaryObserver(note.case_id, saveRequest).subscribe();\r\n };\r\n /** 新增摘要 */\r\n soption.addSummary = (summary: Summary) => {\r\n const saveRequest = SummaryConvert.summaryToSave(summary);\r\n this.judicialInterpretService.addSummaryObserver(note.case_id, saveRequest)\r\n .subscribe((result) => {\r\n if (result == SaveResultStatusId.ReachSummarySaveLimit) {\r\n PayInfoOverSaveLimitPopupComponent.open(this.matDialog, 'summary');\r\n }\r\n });\r\n };\r\n /** 刪除摘要 */\r\n soption.deleteSummary = (delete_list: Summary[]) => {\r\n const request: SummaryDeleteRequest = new SummaryDeleteRequest();\r\n request.case_id = note.case_id;\r\n request.summary_id_list = delete_list.map(s => s.summaryId);\r\n request.summary_id_sn = {};\r\n const currentList = this.summaryWindowService.summaryListService.getFlatSummaryList();\r\n currentList.forEach(s => {\r\n request.summary_id_sn[s.summaryId] = [s.summaryBlock.blockIndex, s.index];\r\n });\r\n\r\n this.judicialInterpretService.deleteSummaryObserver(request).subscribe();\r\n };\r\n /** 排序摘要 */\r\n soption.updateSummaryListOrder = (list: Summary[]) => {\r\n const request: SummaryListOrderRequest = new SummaryListOrderRequest();\r\n request.case_id = note.case_id;\r\n request.summary_id_sn = {};\r\n list.forEach(s => {\r\n request.summary_id_sn[s.summaryId] = [s.summaryBlock.blockIndex, s.index];\r\n });\r\n this.judicialInterpretService.updateSummaryListOrderObserver(request).subscribe();\r\n };\r\n /** 摘要是否可新增檢查 */\r\n soption.beforeAddSummaryCheck = () => {\r\n if (this.judgmentService.saveStatus.IsReachSummarySaveLimitTotal()) {\r\n PayInfoOverSaveLimitPopupComponent.open(this.matDialog, 'summary');\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n this.summaryWindowService._option = soption;\r\n this.summaryWindowService.showWindow();\r\n }\r\n\r\n\r\n\r\n\r\n openPrintPopup(note: any): void {\r\n if (this.memberService.permissions.judicial_interpret_print === '1') {\r\n this.openPrintConfigPopup(note);\r\n } else {\r\n this.openPrintPermissionPopup();\r\n }\r\n }\r\n openPrintConfigPopup(note: any): void {\r\n // this.selectNote(note, 'print');\r\n this.showPrintPopupNote = note;\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PrintConfigPopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n dlRef.afterClosed().subscribe(() => {\r\n // this.clearSelectedNote();\r\n this.showPrintPopupNote = null;\r\n });\r\n dlRef.componentInstance.note_id = note.note_id;\r\n dlRef.componentInstance.url = () => {\r\n const optionArray = [\r\n dlRef.componentInstance.printConfig.fulltext ? '1' : '0',\r\n dlRef.componentInstance.printConfig.summary ? '1' : '0',\r\n dlRef.componentInstance.printConfig.font ? '1' : '0',\r\n dlRef.componentInstance.printConfig.rownumber ? '1' : '0',\r\n dlRef.componentInstance.printConfig.homepage ? '1' : '0',\r\n ];\r\n const optionText: string = optionArray.join().replace(/,/g, '');\r\n const url = 'print/judicial_interpret/' + note.note_id + '?option=' + optionText;\r\n return url;\r\n };\r\n }\r\n openPrintPermissionPopup(): void {\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PrintPermissionPopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n }\r\n\r\n\r\n // isStopCase(note: JudicialInterpretCase): boolean {\r\n // return note.court_id === CourtId.jtype1A\r\n // || note.court_id === CourtId.jtype1B\r\n // || note.court_id === CourtId.jtype1E;\r\n // }\r\n\r\n\r\n\r\n openPutinNotePopup(note: JudicialInterpretCase): void {\r\n // this.selectNote(note, 'putin-team');\r\n this.showCloneToTeamPopupNote = note;\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PutInNotePopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n dlRef.afterClosed().subscribe(() => {\r\n // this.clearSelectedNote();\r\n this.showCloneToTeamPopupNote = null;\r\n });\r\n const c = dlRef.componentInstance;\r\n c.is_loading = true;\r\n this.judicialInterpretService.getNotePutinTeamObserver(note.note_id)\r\n .subscribe((v) => {\r\n console.log(v);\r\n c.team_list = v;\r\n c.is_loading = false;\r\n });\r\n c.onSubmit = () => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n \r\n const selectedTeamList = c.getSelectedTeamList();\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.CopyNote);\r\n if (selectedTeamList.length > 0) {\r\n this.judicialInterpretService.copyNoteToTeamObserver(note.note_id,\r\n selectedTeamList.map(t => t.team_id),\r\n false)\r\n // .pipe(\r\n // tap(result => {\r\n // }),\r\n // )\r\n .subscribe((result) => {\r\n console.log(result);\r\n const copyResult: number = result.copy_result;\r\n if (copyResult === 1) {\r\n note.putin_team_count = result.note_in_team_count[note.note_id];\r\n this.openPutinNoteSuccessPopup();\r\n } else if (copyResult === 2) {\r\n this.openPutinNoteCheckPopup(note, selectedTeamList);\r\n }\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.CopyNote);\r\n c.closePopup();\r\n });\r\n }\r\n };\r\n\r\n // c.team_list = NotePutInTeam.convertFromNotePutinTeamObject(note.putin_team);\r\n }\r\n openPutinNoteCheckPopup(note: JudicialInterpretCase, selectedTeamList: NotePutInTeam[]): void {\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PutInNoteCheckPopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n const c = dlRef.componentInstance;\r\n c.onConfirm = () => {\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.CopyNote);\r\n this.judicialInterpretService.copyNoteToTeamObserver(note.note_id, selectedTeamList.map(t => t.team_id), true)\r\n .subscribe((result) => {\r\n console.log(result);\r\n const copyResult: number = result.copy_result;\r\n if (copyResult === 1) {\r\n this.openPutinNoteSuccessPopup();\r\n note.putin_team_count = result.note_in_team_count[note.note_id];\r\n } else if (copyResult === 2) {\r\n this.openPutinNoteCheckPopup(note, selectedTeamList);\r\n }\r\n\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.CopyNote);\r\n c.closePopup();\r\n });\r\n c.closePopup();\r\n };\r\n }\r\n openPutinNoteSuccessPopup(): void {\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PutInNoteSuccessPopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n }\r\n\r\n checkinNote(note: any, status: any): void {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n note.checkInCase(1); note.toggleShowCheckInMenu();\r\n }\r\n}\r\n","\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 打卡\r\n {{(note.checkInTotalCount||0).toLocaleString()}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
綠燈
\r\n
\r\n
\r\n
\r\n
橘燈
\r\n
\r\n
\r\n
\r\n
紅燈
\r\n
\r\n
\r\n
\r\n
詳細資料
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
置入團隊
\r\n
\r\n
0?'has-on':'')]\">
\r\n
\r\n 已置入 \r\n {{note.putin_team_count}}\r\n 個團隊\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
匯出
\r\n
智慧列印
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{(note.share_info?'開啟':'關閉')}}
\r\n
分享
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
刪除
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
0\">\r\n
\r\n
\r\n
{{summaryTypeItem.count}}
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
爭點整理
\r\n
\r\n
\r\n
({{issueItem.sn+1}})
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
保存日期
\r\n
{{convertTimeText(note.edit_date)}}
\r\n
\r\n
\r\n
\r\n
爭點簡答
\r\n
\r\n
\r\n
隨意備註
\r\n
\r\n
\r\n
\r\n
\r\n
({{issueItem.sn+1}})
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
案件標籤
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
編輯
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
序號
\r\n
{{note.sn}}
\r\n
\r\n
\r\n
類別
\r\n
\r\n
\r\n
{{note.category ? note.category.text : '未分類'}}
\r\n
\r\n
\r\n
\r\n
項目
\r\n
\r\n
\r\n
{{note.subcategory ? note.subcategory.text : '未分項'}}
\r\n
\r\n
\r\n
\r\n
題目
\r\n
\r\n
\r\n
\r\n
\r\n
】\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
重新命名
\r\n
\r\n
\r\n
\r\n
開啟筆記
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
屬性
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n \r\n
\r\n
案號
\r\n
\r\n {{note.case_data.case_year+'年度'+note.case_data.case_word+'字第'+note.case_data.case_number+'號'}}
\r\n
\r\n
\r\n
案由
\r\n
{{note.case_data.reason}}
\r\n
\r\n
\r\n
裁判日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?' :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?' :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n \r\n
\r\n \r\n
\r\n
發文字號
\r\n
{{note.case_data.case_name}}
\r\n
\r\n
\r\n
發文日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?' :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?' :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
要旨
\r\n
\r\n
\r\n

{{note.case_data.gist}}

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n \r\n
\r\n \r\n
\r\n
案號
\r\n
\r\n {{note.case_data.case_year+'年度'+note.case_data.case_word+'字第'+note.case_data.case_number+'號'}}
\r\n
\r\n
\r\n
案由
\r\n
{{note.case_data.reason}}
\r\n
\r\n
\r\n
裁判日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?' :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?' :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n \r\n
\r\n \r\n
\r\n
會議次別
\r\n
{{note.case_data.meet_title}}
\r\n
\r\n
\r\n
會議日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?' :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?' :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
問題主旨
\r\n
\r\n
\r\n
點擊固定
\r\n
\r\n
\r\n
\r\n

{{note.case_data.problem}}

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n \r\n
\r\n \r\n
\r\n
會議次別
\r\n
{{note.case_data.meet_title}}停用廢止
\r\n
\r\n
\r\n
決議日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?' :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?' :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
決議主旨
\r\n
\r\n
\r\n
點擊固定
\r\n
\r\n
\r\n
\r\n

{{note.case_data.subject}}

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n \r\n
\r\n \r\n
\r\n
案號
\r\n
\r\n {{note.case_data.case_year+'年度'+note.case_data.case_word+'字第'+note.case_data.case_number+'號'}}
\r\n
\r\n
\r\n
案由
\r\n
{{note.case_data.reason}}
\r\n
\r\n
\r\n
裁判日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?' :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?' :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
裁判要旨
\r\n
\r\n
\r\n
點擊固定
\r\n
\r\n
\r\n
\r\n

{{note.case_data.gist}}

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n \r\n
\r\n \r\n
\r\n
案號
\r\n
\r\n {{note.case_data.case_year+'年度'+note.case_data.case_word+'字第'+note.case_data.case_number+'號'}}
\r\n
\r\n
\r\n
案由
\r\n
{{note.case_data.reason}}
\r\n
\r\n
\r\n
裁判日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?' :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?' :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n \r\n
\r\n \r\n
\r\n
公懲案號
\r\n
\r\n {{note.case_data.case_year+'年度'+note.case_data.case_word+'字第'+note.case_data.case_number+'號'}}
\r\n
\r\n
\r\n
案由
\r\n
{{note.case_data.reason}}
\r\n
\r\n
\r\n
議決日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?' :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?' :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n \r\n
\r\n \r\n
\r\n
案號
\r\n
\r\n
\r\n {{note.case_data.case_year+'年度'+note.case_data.case_word+'字第'+note.case_data.case_number+'號'}}停用廢止
\r\n
\r\n
\r\n
\r\n
案由
\r\n
{{note.case_data.reason}}
\r\n
\r\n
\r\n
裁判日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?' :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?' :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
判例要旨
\r\n
\r\n
\r\n
點擊固定
\r\n
\r\n
\r\n
\r\n

{{note.case_data.gist}}

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n \r\n
\r\n \r\n
\r\n
案次
\r\n
{{note.case_data.meet_number}}
\r\n
\r\n
\r\n
日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?' :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?' :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n \r\n
\r\n \r\n
\r\n
解釋字號
\r\n
{{note.case_data.case_word + '字第' + note.case_data.case_number + '號' +\r\n (note.case_data.case_title?note.case_data.case_title:'') }}
\r\n \r\n
\r\n
\r\n
解釋日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?' :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?' :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n
\r\n
\r\n
\r\n
解釋爭點
\r\n
\r\n

{{note.case_data.issue}}

\r\n
\r\n
\r\n
\r\n
\r\n
解釋文
\r\n
\r\n
\r\n
點擊固定
\r\n
\r\n
\r\n
\r\n

{{note.case_data.article}}

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n \r\n
\r\n \r\n
\r\n
解釋字號
\r\n
{{note.case_data.case_word + '字第' + note.case_data.case_number + '號' +\r\n (note.case_data.case_title || '') }}
\r\n
\r\n
\r\n
解釋日期
\r\n
{{\r\n note.case_data.date_year+'/'+(note.case_data.date_month==0? '?' :appCommonService.padNumber(note.case_data.date_month))+'/'+(note.case_data.date_day==0? '?' :appCommonService.padNumber(note.case_data.date_day))\r\n }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
解釋文
\r\n
\r\n
\r\n
點擊固定
\r\n
\r\n
\r\n
\r\n

{{note.case_data.article}}

\r\n
\r\n
\r\n
\r\n \r\n \r\n
","import { Component, OnInit, OnDestroy, Input, ViewChild, EventEmitter, Output } from '@angular/core';\r\nimport { DetailInfoClickWindowComponent } from 'projects/lwlib/src/detail-info-click-window/detail-info-click-window.component';\r\nimport { EditCategoryTabId } from 'projects/lwlib/src/edit-category-popup/edit-category-tab-id';\r\nimport { SearcherKeywordKind } from 'projects/lwlib/src/keyword-searcher/searcher-keyword-kind';\r\nimport { JudicialInterpretCaseFull } from '../judicial-interpret-case-full';\r\nimport { Subscription, forkJoin, of, Observable } from 'rxjs';\r\nimport { JudicialInterpretService } from '../judicial-interpret.service';\r\nimport { AppCommonService } from 'projects/desktop/src/app/app-common.service';\r\nimport { EditCategoryPopupService } from 'projects/lwlib/src/edit-category-popup/edit-category-popup.service';\r\nimport { CommentService } from '../../../comment.service';\r\nimport { DeleteConfirmPopupOpenerService } from 'projects/lwlib/src/delete-confirm-popup/delete-confirm-popup-opener.service';\r\nimport { EditCategoryPopupOpenerService } from 'projects/lwlib/src/edit-category-popup/edit-category-popup-opener.service';\r\nimport { RenamePopupOpenerService } from 'projects/lwlib/src/rename-popup/rename-popup-opener.service';\r\nimport { CommentPopupOpenerService } from 'projects/lwlib/src/comment-popup/comment-popup-opener.service';\r\nimport { CaseTagPopupOpenerService } from 'projects/lwlib/src/case-tag-popup/case-tag-popup-opener.service';\r\nimport { LoadingIconService } from 'projects/lwlib/src/loading-icon/loading-icon.service';\r\nimport { JudicialInterpretProperty } from '../judicial-interpret-property.enum';\r\nimport { JudicialInterpretPropertyIcon } from '../judicial-interpret-property-icon.enum';\r\nimport { SummaryTypeItem } from '../../judgment/summary-type-item';\r\nimport { NoteSummaryListType } from '../../judgment/note-summary-list-type';\r\nimport { BookmarkType } from '../../judgment/bookmark-type';\r\nimport { SummaryTypeId } from '../../judgment/summary-type-id.enum';\r\nimport { Issue } from '../../judgment/issue';\r\nimport { CaseType } from 'projects/lwlib/src/personal-config-popup/personal-config-popup.service';\r\nimport { JudicialInterpretCase } from '../judicial-interpret-case';\r\nimport { DeleteConfirmPopupType } from 'projects/lwlib/src/delete-confirm-popup/delete-confirm-popup-type';\r\nimport { JudgmentCase } from '../../judgment/judgment-case';\r\nimport { EditCategoryPopupConfirmData } from 'projects/lwlib/src/edit-category-popup/edit-category-popup-confirm-data';\r\nimport { ActionName } from 'projects/lwlib/src/action-name';\r\nimport { EditCategoryData } from 'projects/lwlib/src/edit-category-popup/edit-category-data';\r\nimport { EditSubcategoryData } from 'projects/lwlib/src/edit-category-popup/edit-subcategory-data';\r\nimport { JudicialInterpretPropertyItem } from '../judicial-interpret-property-item';\r\nimport { JudicialInterpretType } from '../judicial-interpret-type.enum';\r\nimport { JudicialInterpretCaseData } from '../judicial-interpret-case-data';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { ComposeType } from 'projects/lwlib/src/compose-search-popup/compose-type';\r\nimport { DetailInfoClickWindowOption } from 'projects/lwlib/src/detail-info-click-window/detail-info-click-window-option';\r\nimport { DetailInfoClickWindowTabId } from 'projects/lwlib/src/detail-info-click-window/detail-info-click-window-tab-id.enum';\r\nimport { CaseTag } from '../../judgment/case-tag';\r\nimport { Category } from 'projects/lwlib/src/category/category';\r\nimport { Subcategory } from 'projects/lwlib/src/category/subcategory';\r\nimport { EditCategoryPopupOption } from 'projects/lwlib/src/edit-category-popup/edit-category-popup-option';\r\nimport { ShareService } from '../../judgment/share.service';\r\nimport { IssueService } from '../../judgment/issue.service';\r\nimport { SummaryWindowService } from 'projects/lwlib/src/summary-window/summary-window.service';\r\nimport { DetailInfoClickWindowService } from 'projects/lwlib/src/detail-info-click-window/detail-info-click-window.service';\r\nimport { SummaryWindowOption } from 'projects/lwlib/src/summary-window/summary-window-option';\r\nimport { DisplayContentBlockBasicInfoOption } from 'projects/lwlib/src/detail-info-click-window/display-content-block-basic-info/display-content-block-basic-info-option';\r\nimport { DisplayContentBlockShareInfoOption } from 'projects/lwlib/src/detail-info-click-window/display-content-block-share-info/display-content-block-share-info-option';\r\nimport { ShareRequest } from '../../judgment/share-request';\r\nimport { DisplayContentBlockIssueSortOutOption } from 'projects/lwlib/src/detail-info-click-window/display-content-block-issue-sort-out/display-content-block-issue-sort-out-option';\r\nimport { IssueAddRequest } from '../../judgment/issue-add-request';\r\nimport { IssueEditRequest } from '../../judgment/issue-edit-request';\r\nimport { Serializable } from 'projects/lwlib/src/serializable';\r\nimport { IssueDeleteRequest } from '../../judgment/issue-delete-request';\r\nimport { IssueLinkSummaryRequest } from '../../judgment/issue-link-summary-request';\r\nimport { IssueOrderRequest } from '../../judgment/issue-order-request';\r\nimport { IssueOrderRequestData } from '../../judgment/issue-order-request-data';\r\nimport { ElementScroll } from 'projects/lwlib/src/element-scroll/element-scroll';\r\nimport { SummaryType } from 'projects/lwlib/src/summary-list/summary-type';\r\nimport { map, tap, concatMap } from 'rxjs/operators';\r\nimport { SummarySave } from 'projects/lwlib/src/summary-list/summary-save';\r\nimport { SummaryBlock } from 'projects/lwlib/src/summary-list/summary-block';\r\nimport { SummaryConvert } from 'projects/lwlib/src/summary-list/summary-convert';\r\nimport { SummaryFilterSetting } from 'projects/lwlib/src/summary-filter-popup/summary-filter-setting';\r\nimport { SummaryFilterDisplayModeId } from 'projects/lwlib/src/summary-filter-popup/summary-filter-display-mode-id.enum';\r\nimport { IssueBlukRequest } from '../../judgment/issue-bluk-request';\r\nimport { SummaryDeleteRequest } from 'projects/lwlib/src/summary-list/summary-delete-request';\r\nimport { SummaryListOrderRequest } from 'projects/lwlib/src/summary-list/summary-list-order-request';\r\nimport { Summary } from 'projects/lwlib/src/summary-list/summary';\r\nimport { DetailInfoClickWindowTab } from 'projects/lwlib/src/detail-info-click-window/detail-info-click-window-tab';\r\nimport { SuccessTipOpenerService } from 'projects/lwlib/src/succes-tip/success-tip-opener.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MemberService } from 'projects/lwlib/src/member/member.service';\r\nimport { MaterialHelper } from 'projects/lwlib/src/material-helper';\r\nimport { PrintConfigPopupComponent } from 'projects/lwlib/src/print-config-popup/print-config-popup.component';\r\nimport { PrintPermissionPopupComponent } from 'projects/lwlib/src/print-permission-popup/print-permission-popup.component';\r\nimport { CourtId } from 'projects/lwlib/src/case-type/court-id.enum';\r\nimport { FilterCondition } from '../../filter-condition';\r\nimport { PutInNotePopupComponent } from 'projects/lwlib/src/put-in-note-popup/put-in-note-popup.component';\r\nimport { NotePutInTeam } from 'projects/lwlib/src/team/note-put-in-team';\r\nimport { PutInNoteCheckPopupComponent } from 'projects/lwlib/src/put-in-note-check-popup/put-in-note-check-popup.component';\r\nimport { PutInNoteSuccessPopupComponent } from 'projects/lwlib/src/put-in-note-success-popup/put-in-note-success-popup.component';\r\nimport { PayInfoOverSaveLimitPopupComponent } from 'projects/lwlib/src/pay-info-over-save-limit-popup/pay-info-over-save-limit-popup.component';\r\nimport { JudgmentService } from '../../judgment/judgment.service';\r\nimport { SaveResultStatusId } from 'projects/lwlib/src/save-count-limit-popup/save-result-status.enum';\r\nimport { JudicialInterpretCourtId } from '../../../child-content-judicial-interpret-search/judicial-interpret-condition/judicial-interpret-court-id.enum';\r\n\r\n@Component({\r\n selector: 'app-list-simple',\r\n templateUrl: './list-simple.component.html',\r\n styleUrls: ['./list-simple.component.scss']\r\n})\r\nexport class ListSimpleComponent implements OnInit, OnDestroy {\r\n\r\n constructor(\r\n public judgmentService: JudgmentService,\r\n private judicialInterpretService: JudicialInterpretService,\r\n public appCommonService: AppCommonService,\r\n private editCategoryPopupService: EditCategoryPopupService,\r\n private commentService: CommentService,\r\n private deleteConfirmPopupOpenerService: DeleteConfirmPopupOpenerService,\r\n private editCategoryPopupOpenerService: EditCategoryPopupOpenerService,\r\n private renamePopupOpenerService: RenamePopupOpenerService,\r\n private commentPopupOpenerService: CommentPopupOpenerService,\r\n private caseTagPopupOpenerService: CaseTagPopupOpenerService,\r\n private detailInfoClickWindowService: DetailInfoClickWindowService,\r\n private summaryWindowService: SummaryWindowService,\r\n private issueService: IssueService,\r\n private shareService: ShareService,\r\n private loadingIconService: LoadingIconService,\r\n private service: AppService,\r\n private successTipOpenerService: SuccessTipOpenerService,\r\n private matDialog: MatDialog,\r\n private memberService: MemberService,\r\n ) { }\r\n\r\n private jipi = JudicialInterpretPropertyItem;\r\n private jip = JudicialInterpretProperty;\r\n private jit = JudicialInterpretType;\r\n\r\n baseList: { [key in keyof typeof JudicialInterpretProperty]: JudicialInterpretPropertyItem } = {\r\n Unified: this.jipi.create('unified', this.jip.Unified, 'interpret-big-judge', this.jit.BigJudgeReject, () => null), // 司法院解釋 - 統字\r\n Solve: this.jipi.create('solve', this.jip.Solve, 'interpret-big-judge', this.jit.BigJudgeReject, () => null), // 司法院解釋 - 解字\r\n Yuan: this.jipi.create('yuan', this.jip.Yuan, 'interpret-big-judge', this.jit.BigJudgeReject, () => null), // 司法院解釋 - 院字\r\n YuanSolve: this.jipi.create('yuan-solve', this.jip.YuanSolve, 'interpret-big-judge', this.jit.BigJudgeReject, () => null), // 司法院解釋 - 院解字\r\n Explain: this.jipi.create('explain', this.jip.Explain, 'interpret-big-judge', this.jit.BigJudgeReject, () => null), // 大法官解釋 - 釋字\r\n Reject: this.jipi.create('reject', this.jip.Reject, 'big-judge-reject', this.jit.BigJudgeReject, () => null), // 大法官不受理 - 不受理\r\n XF38: this.jipi.create('xf38', this.jip.XF38, 'xf', this.jit.XF, () => null), // 憲法判決\r\n XF39: this.jipi.create('xf39', this.jip.XF39, 'xf', this.jit.XF, () => null), // 實體裁定\r\n XF40: this.jipi.create('xf40', this.jip.XF40, 'xf', this.jit.XF, () => null), // 程序裁定\r\n Precedent: this.jipi.create('precedent', this.jip.Precedent, 'judgment-precedent', this.jit.JudgmentPrecedent, () => null), // 判例\r\n Judgment: this.jipi.create('judgment', this.jip.Judgment, 'featured-judgment', this.jit.FeaturedJudgment, () => null), // 精選裁判 - 判決\r\n JudgmentSeuperme: this.jipi.create('judgment-supereme', this.jip.JudgmentSeuperme, 'featured-judgment-gist', this.jit.FeaturedJudgmentGist, () => null), // 最高法院判決\r\n Reference: this.jipi.create('reference', this.jip.Reference, 'featured-judgment-gist', this.jit.FeaturedJudgmentGist, () => null), // 精選裁判 - 價值裁判\r\n Resolution: this.jipi.create('resolution', this.jip.Resolution, 'resolution', this.jit.Resolution, () => null), // 決議\r\n Discipline: this.jipi.create('discipline', this.jip.Discipline, 'featured-judgment', this.jit.FeaturedJudgment, () => null), // 公懲\r\n Seminar: this.jipi.create('seminar', this.jip.Seminar, 'seminar', this.jit.Seminar, () => null), // 座談會\r\n Grand: this.jipi.create('grand', this.jip.Grand, 'grand', this.jit.Grand, () => null), // 大法庭\r\n Execute: this.jipi.create('execute', this.jip.Execute, 'execute', this.jit.Execute, () => null),\r\n };\r\n courtPropertyClassName: { [key in keyof typeof JudicialInterpretCourtId]: string } = {\r\n ctypeD: 'interpret-big-judge',\r\n ctypeA: 'interpret-big-judge',\r\n ctypeB: 'interpret-big-judge',\r\n ctypeC: 'interpret-big-judge',\r\n ttypeX: 'big-judge-reject',\r\n jtype21gc1m1: 'grand grand1', // 提案裁定\r\n jtype21gc1m3: 'grand grand3', // 大法庭\r\n jtype21gc1m4: 'grand grand4', // 意見統一\r\n jtype22gc2m1: 'grand grand1', // 提案裁定\r\n jtype22gc2m3: 'grand grand3', // 大法庭\r\n jtype22gc2m4: 'grand grand4', // 意見統一\r\n jtype22gc2m2: 'grand grand2', // 撤銷提案\r\n jtype23gc3m1: 'grand grand1', // 提案裁定\r\n jtype23gc3m3: 'grand grand3', // 大法庭\r\n jtype23gc3m4: 'grand grand4', // 意見統一\r\n jtypeA: 'judgment-precedent',\r\n jtypeB: 'judgment-precedent',\r\n jtypeE: 'judgment-precedent',\r\n jtype1A: 'judgment-precedent',\r\n jtype1B: 'judgment-precedent',\r\n jtype1E: 'judgment-precedent',\r\n jtypeC0: 'featured-judgment-gist',\r\n jtypeC1: 'featured-judgment-gist',\r\n jtypeD0: 'featured-judgment-gist',\r\n jtypeD1: 'featured-judgment-gist',\r\n jtypeF0: 'featured-judgment-gist',\r\n jtypeF1: 'featured-judgment-gist',\r\n jtypeG: 'featured-judgment',\r\n jtypeH: 'featured-judgment',\r\n jtypeK: 'featured-judgment',\r\n jtypeO: 'featured-judgment',\r\n jtypeP: 'featured-judgment',\r\n jtypeQ: 'featured-judgment',\r\n jtypeI: 'featured-judgment',\r\n jtypeJ: 'featured-judgment',\r\n jtypeR: 'featured-judgment',\r\n jtypeU: 'reference',\r\n jtypeV: 'reference',\r\n jtypeS: 'reference',\r\n jtypeT: 'reference',\r\n dtypeA0: 'resolution',\r\n dtypeA1: 'resolution',\r\n dtypeB0: 'resolution',\r\n dtypeB1: 'resolution',\r\n dtypeC0: 'resolution',\r\n dtypeC1: 'resolution',\r\n jtypeL: 'featured-judgment discipline',\r\n qtypeA: 'seminar',\r\n qtypeG: 'seminar',\r\n qtypeB: 'seminar',\r\n qtypeC: 'seminar',\r\n qtypeD: 'seminar',\r\n etypeX0: 'execute',\r\n etypeX1: 'execute',\r\n xftype38: 'xf38',\r\n xftype39: 'xf39',\r\n xftype40: 'xf40',\r\n }\r\n\r\n detailInfoClickWindowTabId: any = DetailInfoClickWindowTabId;\r\n editCategoryTab: any = EditCategoryTabId;\r\n searcherKeywordKind: any = SearcherKeywordKind;\r\n\r\n // @Input() importFilterCondition: FilterCondition;\r\n @Output() noteUpdate: EventEmitter = new EventEmitter();\r\n @Input() noteUpdateObserver: Observable;\r\n @ViewChild(DetailInfoClickWindowComponent, { static: true }) detailInfoClickWindowComponent: DetailInfoClickWindowComponent;\r\n\r\n\r\n // noteList: JudicialInterpretCaseFull[];\r\n get filterCondition(): FilterCondition { return this.judicialInterpretService.filterCondition; }\r\n get noteList(): JudicialInterpretCase[] { return this.judicialInterpretService.storageNoteList; }\r\n selectedRowElement: Element;\r\n selectedRowBy: string = '';\r\n private _selectedNoteId: string = '';\r\n\r\n enableTeam: boolean = false;\r\n\r\n subscriptions: Subscription;\r\n lastTabId: DetailInfoClickWindowTabId = DetailInfoClickWindowTabId.BasicInfo;\r\n\r\n noteCaseNameTable: { [key in keyof typeof JudicialInterpretProperty]: (data: JudicialInterpretCaseData) => string } = {\r\n Unified: (c) => c.case_word + '字第' + c.case_number + '號' + (c.case_title || ''),\r\n Solve: (c) => c.case_word + '字第' + c.case_number + '號' + (c.case_title || ''),\r\n Yuan: (c) => c.case_word + '字第' + c.case_number + '號' + (c.case_title || ''),\r\n YuanSolve: (c) => c.case_word + '字第' + c.case_number + '號' + (c.case_title || ''),\r\n Explain: (c) => c.case_word + '字第' + c.case_number + '號' + (c.case_title || ''),\r\n Reject: (c) => c.meet_number,\r\n XF38: (c) => c.case_year + '年度' + c.case_word + '字第' + c.case_number + '號',\r\n XF39: (c) => c.case_year + '年度' + c.case_word + '字第' + c.case_number + '號',\r\n XF40: (c) => c.case_year + '年度' + c.case_word + '字第' + c.case_number + '號',\r\n Precedent: (c) => c.case_year + '年度' + c.case_word + '字第' + c.case_number + '號',\r\n Judgment: (c) => c.case_year + '年度' + c.case_word + '字第' + c.case_number + '號',\r\n JudgmentSeuperme: (c) => c.case_year + '年度' + c.case_word + '字第' + c.case_number + '號',\r\n Reference: (c) => c.case_year + '年度' + c.case_word + '字第' + c.case_number + '號',\r\n Resolution: (c) => c.meet_title,\r\n Discipline: (c) => c.case_year + '年度' + c.case_word + '字第' + c.case_number + '號',\r\n Seminar: (c) => c.meet_title,\r\n Grand: (c) => c.case_year + '年度' + c.case_word + '字第' + c.case_number + '號',\r\n Execute: (c) => c.case_name,\r\n };\r\n\r\n // 打卡狀態選單\r\n showCheckinMenuNote: any;\r\n // 打卡詳細資料彈窗\r\n showCheckInPopupNote: any;\r\n // 置入團隊彈窗\r\n showCloneToTeamPopupNote: any;\r\n showCloneToTeamCheckPopupNote: any;\r\n showCloneToTeamSuccessPopupNote: any;\r\n // 顯示列印彈窗\r\n showPrintPopupNote: any;\r\n // 團隊分享、爭點整理、隨意備註、案件標籤視窗\r\n showDetailWindowNote: any;\r\n // 刪除筆記彈窗\r\n showDeleteNotePopupNote: any;\r\n // 編輯筆記名稱談窗\r\n showEditNoteNamePopupNote: any;\r\n // 檔案管理彈窗\r\n showEditCategoryPopupNote: any;\r\n // 編輯案件標籤彈窗\r\n showEditCaseTagPopupNote: any;\r\n // 摘要預覽視窗\r\n showSummaryPreviewWindowNote: any;\r\n\r\n\r\n\r\n ngOnInit() {\r\n this.subscriptions = this.judicialInterpretService.noteList$.subscribe(r => {\r\n // this.noteList = this.noteListExtender(r.list);\r\n // // this.noteList = r.list;\r\n // console.log(this.noteList);\r\n // 如果選擇的筆記已經不再清單>清空\r\n if (!this.noteList.find(n => n.case_id === this._selectedNoteId)) {\r\n this.clearSelectedNote();\r\n }\r\n });\r\n\r\n this.enableTeam = this.memberService.memberHeader.has_team;\r\n }\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n isSelectedNote(note: JudgmentCase): boolean {\r\n return this._selectedNoteId === note.note_id;\r\n }\r\n selectNote(note: JudicialInterpretCase, selectedBy: string): void {\r\n this._selectedNoteId = note.note_id;\r\n this.selectedRowBy = selectedBy;\r\n }\r\n clearSelectedNote(): void {\r\n this._selectedNoteId = '';\r\n this.selectedRowBy = '';\r\n }\r\n\r\n checkShowNoteBorder(note: any): boolean {\r\n let show = false;\r\n\r\n if (this.showCheckinMenuNote == note) { show = true; }\r\n if (this.showCheckInPopupNote == note) { show = true; }\r\n\r\n if (this.showCloneToTeamPopupNote == note) { show = true; }\r\n if (this.showCloneToTeamCheckPopupNote == note) { show = true; }\r\n if (this.showCloneToTeamSuccessPopupNote == note) { show = true; }\r\n if (this.showPrintPopupNote == note) { show = true; }\r\n if (this.showDetailWindowNote == note) { show = true; }\r\n if (this.showSummaryPreviewWindowNote == note) { show = true; }\r\n if (this.showDeleteNotePopupNote == note) { show = true; }\r\n if (this.showEditCategoryPopupNote == note) { show = true; }\r\n if (this.showEditNoteNamePopupNote == note) { show = true; }\r\n\r\n if (this.showEditCaseTagPopupNote == note) { show = true; }\r\n\r\n return show;\r\n }\r\n\r\n /** note 型別轉換 */\r\n extendNoteToFull(source_note: JudicialInterpretCase): JudicialInterpretCaseFull {\r\n // let note = Serializable.extendObjectFromResponseObject(new JudicialInterpretCaseFull(), source_note);\r\n return source_note as JudicialInterpretCaseFull;\r\n }\r\n noteListExtender(noteList: JudicialInterpretCase[]): JudicialInterpretCaseFull[] {\r\n const list = noteList.map(note => {\r\n const _note = this.extendNoteToFull(note);\r\n _note.property_template = this.baseList[JudicialInterpretProperty[note.property]];\r\n return _note;\r\n });\r\n return list;\r\n }\r\n\r\n /** 清單資料轉換 */\r\n getCategoryIconStyle(category: Category): any {\r\n return Category.getIconStyle(category);\r\n }\r\n getSubcategoryIconStyle(subcategory: Subcategory): any {\r\n return Subcategory.getIconStyle(subcategory);\r\n }\r\n getPropertyIconStyle(property: JudicialInterpretProperty): any {\r\n let iconName = '';\r\n const p = property;\r\n const propertyName = JudicialInterpretProperty[p];\r\n if (!JudicialInterpretPropertyIcon[propertyName]) {\r\n return {};\r\n }\r\n\r\n iconName = 'property/' + JudicialInterpretPropertyIcon[propertyName];\r\n\r\n const style = {\r\n 'background-image': 'url(/assets/img/' + iconName + ')'\r\n };\r\n\r\n return style;\r\n }\r\n convertTimeText(tick: number): string {\r\n return this.appCommonService.convertTimeTickToPastTimeText1(tick);\r\n }\r\n convertSummaryItemToClass(item: SummaryTypeItem): string {\r\n // debugger;\r\n if (item.list_type === NoteSummaryListType.Bookmark) {\r\n return this.appCommonService.convertText_CamelCaseToLowerDash(BookmarkType[item.list_type].toString());\r\n } else {\r\n return this.appCommonService.convertText_CamelCaseToLowerDash(SummaryTypeId[item.item_type].toString());\r\n }\r\n }\r\n\r\n getCaseName(note: JudicialInterpretCaseFull): string {\r\n return this.noteCaseNameTable[JudicialInterpretProperty[note.property]](note.case_data);\r\n }\r\n getGrandPropertyClass(note: JudicialInterpretCase): string {\r\n if (note.court_id == JudicialInterpretCourtId.jtype21gc1m1\r\n || note.court_id == JudicialInterpretCourtId.jtype22gc2m1\r\n || note.court_id == JudicialInterpretCourtId.jtype23gc3m1) {\r\n return 'grand1';\r\n } else if (note.court_id == JudicialInterpretCourtId.jtype22gc2m2) {\r\n return 'grand2';\r\n } else if (note.court_id == JudicialInterpretCourtId.jtype21gc1m3\r\n || note.court_id == JudicialInterpretCourtId.jtype22gc2m3\r\n || note.court_id == JudicialInterpretCourtId.jtype23gc3m3) {\r\n return 'grand3';\r\n } else if (note.court_id == JudicialInterpretCourtId.jtype21gc1m4\r\n || note.court_id == JudicialInterpretCourtId.jtype22gc2m4\r\n || note.court_id == JudicialInterpretCourtId.jtype23gc3m4) {\r\n return 'grand4';\r\n }\r\n\r\n return '';\r\n }\r\n getPropertyClassName(judicialInterpretCase: JudicialInterpretCase): string {\r\n if (judicialInterpretCase.data) {\r\n const data = judicialInterpretCase.data;\r\n if (data.overwrite_property) {\r\n return data.overwrite_property;\r\n } else if (data.append_property) {\r\n const courtIdName = JudicialInterpretCourtId[judicialInterpretCase.court_id];\r\n return this.courtPropertyClassName[courtIdName] + ' ' + data.append_property;\r\n }\r\n }\r\n\r\n const courtIdName = JudicialInterpretCourtId[judicialInterpretCase.court_id];\r\n return this.courtPropertyClassName[courtIdName];\r\n }\r\n\r\n getCaseDate(note: JudicialInterpretCaseFull): string {\r\n const c = note.case_data;\r\n return c.date_year\r\n + '/' + (c.date_month == 0 ? '?' : this.appCommonService.padNumber(c.date_month))\r\n + '/' + (c.date_day == 0 ? '?' : this.appCommonService.padNumber(c.date_day))\r\n ;\r\n // return c.date_year + '/' + this.appCommonService.padNumber(c.date_month) + '/' + this.appCommonService.padNumber(c.date_day);\r\n }\r\n\r\n\r\n /** 清單過濾 */\r\n filterIssueList(issueList: Issue[]): Issue[] {\r\n if (!issueList || issueList.length === 0) {\r\n return [];\r\n }\r\n\r\n return issueList.filter(a => {\r\n return a.issue_text;\r\n });\r\n }\r\n filterIssueAnswerList(issueList: Issue[]): Issue[] {\r\n if (!issueList || issueList.length === 0) {\r\n return [];\r\n }\r\n\r\n return issueList.filter(a => {\r\n return a.answer_text;\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n\r\n /** 選擇筆記行 */\r\n selectRow(element: Element, selectedBy: string): void {\r\n this.selectedRowElement = element;\r\n this.selectedRowBy = selectedBy;\r\n }\r\n clearSelectedRow(): void {\r\n this.selectedRowElement = null;\r\n this.selectedRowBy = '';\r\n }\r\n\r\n\r\n\r\n /** 點擊視窗 */\r\n showDetailInfoClickWindow(fromElement: Element, tabId: DetailInfoClickWindowTabId, noteData: any): void {\r\n // this.selectNote(noteData, 'detailInfoClickWindow');\r\n this.showSummaryPreviewWindowNote = null;\r\n this.showDetailWindowNote = noteData;\r\n\r\n // const note: JudgmentCase = noteData;\r\n const note: JudicialInterpretCase = noteData as JudicialInterpretCase;\r\n\r\n const option: DetailInfoClickWindowOption = new DetailInfoClickWindowOption();\r\n if (tabId === DetailInfoClickWindowTabId.None) {\r\n tabId = this.lastTabId;\r\n } else {\r\n this.lastTabId = tabId;\r\n }\r\n option.tab_id = tabId;\r\n\r\n option.note_id = note.note_id;\r\n option.caseType = CaseType.JudicialInterpret;\r\n option.filterCondition = this.filterCondition;\r\n\r\n option.onWindowShow = () => {\r\n // console.log('show window');\r\n this.detailInfoClickWindowService.translateX = 0;\r\n this.detailInfoClickWindowService.windowShowing = true;\r\n this.detailInfoClickWindowService.windowHideLock = true;\r\n };\r\n option.onWindowAfterShow = () => {\r\n this.detailInfoClickWindowService.windowShowing = false;\r\n this.detailInfoClickWindowService.windowHideLock = false;\r\n this.detailInfoClickWindowService.windowShowed = true;\r\n };\r\n option.onWindowHide = () => {\r\n this.showDetailWindowNote = null;\r\n // console.log('hide window');\r\n if (!this.detailInfoClickWindowService.windowHideLock) {\r\n this.detailInfoClickWindowService.windowHiding = true;\r\n this.detailInfoClickWindowService.translateX = -700;\r\n this.clearSelectedNote();\r\n }\r\n\r\n };\r\n option.onWindowAfterHide = () => {\r\n if (!this.detailInfoClickWindowService.windowHideLock) {\r\n this.detailInfoClickWindowService.windowHiding = false;\r\n this.detailInfoClickWindowService.windowShowed = false;\r\n }\r\n };\r\n option.onTabChange = (tab: DetailInfoClickWindowTab) => {\r\n this.lastTabId = tab.id;\r\n };\r\n\r\n /** 基本資訊 */\r\n option.basicInfoOption = new DisplayContentBlockBasicInfoOption();\r\n option.basicInfoOption.rootOption = option;\r\n option.basicInfoOption.reason = note.case_reason;\r\n option.basicInfoOption.get_edit_date = () => note.edit_date;\r\n option.basicInfoOption.get_summaryTypeItemList = () => note.summary_type_item_list;\r\n option.basicInfoOption.get_case_tag_list = () => note.case_tag_list;\r\n option.basicInfoOption.get_comment = () => note.comment;\r\n option.basicInfoOption.editCaseTag = () => {\r\n this._openCaseTagPopup(\r\n note.note_id,\r\n note.case_tag_list,\r\n (list) => note.case_tag_list = list,\r\n () => { }\r\n );\r\n };\r\n option.basicInfoOption.editComment = () => {\r\n this._openCommentPopup(\r\n note.case_id,\r\n note.comment,\r\n (comment) => note.comment = comment\r\n );\r\n };\r\n option.basicInfoOption.openSummaryPreviewWindow = (summaryTypeItem: SummaryTypeItem) => {\r\n this.detailInfoClickWindowService.hideWindow();\r\n this.showSummaryPreviewWindow(note, summaryTypeItem);\r\n };\r\n\r\n\r\n /** 分享資訊 */\r\n option.shareInfoOption = new DisplayContentBlockShareInfoOption();\r\n option.shareInfoOption.rootOption = option;\r\n option.shareInfoOption.share_id = note.share_info ? note.share_info.share_id : '';\r\n option.shareInfoOption.share_click_count = note.share_info ? note.share_info.click_count : 0;\r\n option.shareInfoOption.updateNoteShare = (enable: boolean) => {\r\n\r\n const request: ShareRequest = new ShareRequest();\r\n request.type = CaseType.JudicialInterpret;\r\n request.note_id = note.note_id;\r\n request.enable = enable;\r\n this.shareService.shareNoteJudicialInterpretObserver(request).subscribe(si => {\r\n note.share_info = si;\r\n if (si) {\r\n option.shareInfoOption.share_id = si.share_id;\r\n option.shareInfoOption.share_click_count = si.click_count;\r\n }\r\n });\r\n };\r\n\r\n /** 爭點整理 */\r\n option.issueSortOutOption = new DisplayContentBlockIssueSortOutOption();\r\n option.issueSortOutOption.rootOption = option;\r\n option.issueSortOutOption.summaryWindowService = this.summaryWindowService;\r\n option.issueSortOutOption.get_issue_list = () => note.issue_list;\r\n option.issueSortOutOption.addIssue = (issue: Issue) => {\r\n const request = new IssueAddRequest();\r\n request.case_id = note.case_id;\r\n request.sn = issue.sn;\r\n request.issue_text = issue.issue_text;\r\n request.answer_text = issue.answer_text;\r\n\r\n // this.loadingIconService.openFullScreenLoadingIcon(ActionName.Issue);\r\n const s = this.issueService.addJudicialInterpretObserver(request).subscribe(() => {\r\n this.judicialInterpretService.updateNoteDataStorage(note.case_id, () => {\r\n setTimeout(() => {\r\n const newIssue = note.issue_list[note.issue_list.length - 1];\r\n ElementScroll.intoView(document.getElementById(newIssue.id), 0);\r\n setTimeout(() => {\r\n newIssue.highlightState = 'play';\r\n setTimeout(() => {\r\n newIssue.highlightState = 'play';\r\n });\r\n });\r\n });\r\n });\r\n });\r\n };\r\n option.issueSortOutOption.editIssue = (issue: Issue) => {\r\n const request = new IssueEditRequest();\r\n request.case_id = note.case_id;\r\n request.issue = issue;\r\n const s = this.issueService.updateJudicialInterpretObserver(request).subscribe(() => {\r\n this.issueService.getJudicialInterpretIssueListObserver(note.note_id)\r\n .subscribe((list: Issue[]) => {\r\n note.issue_list = list.map(v =>\r\n Serializable.extendObjectFromResponseObject(new Issue(), v)\r\n );\r\n s.unsubscribe();\r\n });\r\n });\r\n };\r\n option.issueSortOutOption.deleteIssue = (issue: Issue) => {\r\n const request = new IssueDeleteRequest();\r\n request.case_id = note.case_id;\r\n request.sn = issue.sn;\r\n const s = this.issueService.deleteJudicialInterpretObserver(request).subscribe(() => {\r\n this.judicialInterpretService.updateNoteDataStorage(note.case_id);\r\n });\r\n };\r\n option.issueSortOutOption.linkSummary = (issue: Issue) => {\r\n const request = new IssueLinkSummaryRequest();\r\n request.case_id = note.case_id;\r\n request.issue_id = issue.id;\r\n request.summary_id = issue.link_summary_id;\r\n const s = this.issueService.linkSummaryJudicialInterpretObserver(request).subscribe(() => {\r\n this.judicialInterpretService.updateNoteDataStorage(note.case_id);\r\n });\r\n };\r\n option.issueSortOutOption.orderIssue = (callback: () => void) => {\r\n const request: IssueOrderRequest = new IssueOrderRequest();\r\n request.case_id = note.case_id;\r\n request.order_list = [];\r\n note.issue_list.forEach(i => {\r\n const orderData: IssueOrderRequestData = new IssueOrderRequestData();\r\n orderData.sn = i.sn;\r\n orderData.id = i.id;\r\n request.order_list.push(orderData);\r\n });\r\n this.issueService.orderJudicialInterpretObserver(request)\r\n .subscribe(() => {\r\n if (callback) {\r\n callback();\r\n }\r\n });\r\n };\r\n option.issueSortOutOption.pullIssueList = () => {\r\n this.issueService.getJudicialInterpretIssueListObserver(note.note_id)\r\n .subscribe((list: Issue[]) => {\r\n note.issue_list = list;\r\n });\r\n };\r\n option.issueSortOutOption.moveUpIssue = (issue: Issue) => {\r\n const prevIssueIndex = issue.sn - 1;\r\n const prevIssue = note.issue_list[prevIssueIndex];\r\n const prevSn = prevIssue.sn;\r\n prevIssue.sn = issue.sn;\r\n issue.sn = prevSn;\r\n note.issue_list.splice(prevIssueIndex, 2, issue, prevIssue);\r\n option.issueSortOutOption.disableMoveOption = true;\r\n issue.playHighlight();\r\n setTimeout(() => {\r\n ElementScroll.intoView(document.getElementById(issue.id), 0);\r\n });\r\n option.issueSortOutOption.orderIssue(() => {\r\n setTimeout(() => {\r\n option.issueSortOutOption.disableMoveOption = false;\r\n }, 300);\r\n });\r\n };\r\n option.issueSortOutOption.moveDownIssue = (issue: Issue) => {\r\n // console.log('issue move down');\r\n\r\n const sourceIndex = issue.sn;\r\n const nextIssueIndex = issue.sn + 1;\r\n const nextIssue = note.issue_list[nextIssueIndex];\r\n const nextSn = nextIssue.sn;\r\n nextIssue.sn = issue.sn;\r\n issue.sn = nextSn;\r\n note.issue_list.splice(sourceIndex, 2, nextIssue, issue);\r\n option.issueSortOutOption.disableMoveOption = true;\r\n issue.playHighlight();\r\n setTimeout(() => {\r\n ElementScroll.intoView(document.getElementById(issue.id), 0);\r\n });\r\n option.issueSortOutOption.orderIssue(() => {\r\n setTimeout(() => {\r\n option.issueSortOutOption.disableMoveOption = false;\r\n }, 300);\r\n });\r\n };\r\n option.issueSortOutOption.showSummaryWindow = () => {\r\n if (!this.summaryWindowService.windowShowed) {\r\n option.issueSortOutOption.issueLinkBackup = {};\r\n option.issueSortOutOption.issueAnswerBackup = {};\r\n\r\n if (note.issue_list\r\n && note.issue_list.length) {\r\n note.issue_list.forEach(i => {\r\n option.issueSortOutOption.issueLinkBackup[i.id] = i.link_summary_id;\r\n option.issueSortOutOption.issueAnswerBackup[i.id] = i.answer_text;\r\n });\r\n }\r\n\r\n console.log('backup source links', option.issueSortOutOption.issueLinkBackup);\r\n }\r\n const soption = new SummaryWindowOption();\r\n option.issueSortOutOption.summaryWindowOption = soption;\r\n\r\n // soption.disableBottomMenu = true;\r\n // soption.disableTopRightMenu = true;\r\n // soption.disableTextCopy = true;\r\n // soption.disableTypeSelect = true;\r\n // soption.disableTextEdit = true;\r\n // soption.disableTagEdit = true;\r\n // soption.disableCancelSelect = true;\r\n // soption.disableGistEdit = true;\r\n soption.selectedSummaryId = option.issueSortOutOption.linkingIssue.link_summary_id;\r\n\r\n soption.title = '連結摘要';\r\n // soption.isLinkIssueMode = true;\r\n soption.onWindowShow = () => {\r\n this.summaryWindowService.translateX = 600;\r\n this.summaryWindowService.windowShowing = true;\r\n this.summaryWindowService.windowHideLock = true;\r\n this.summaryWindowService.summaryListService.linkMode = true;\r\n soption.updateSummaryList();\r\n };\r\n soption.onWindowAfterShow = () => {\r\n this.summaryWindowService.windowShowing = false;\r\n this.summaryWindowService.windowHideLock = false;\r\n this.summaryWindowService.windowShowed = true;\r\n };\r\n soption.onWindowHide = () => {\r\n if (!this.summaryWindowService.windowHideLock) {\r\n this.summaryWindowService.windowHiding = true;\r\n this.summaryWindowService.translateX = -700;\r\n option.issueSortOutOption.linkingIssue = null;\r\n option.issueSortOutOption.enableLinkConfirmButton = false;\r\n note.issue_list.forEach(i => {\r\n i.link_summary_id = option.issueSortOutOption.issueLinkBackup[i.id];\r\n i.answer_text = option.issueSortOutOption.issueAnswerBackup[i.id];\r\n });\r\n this.summaryWindowService.summaryListService.linkMode = false;\r\n\r\n if (this.summaryWindowService.component) {\r\n this.summaryWindowService.component.keyword = '';\r\n }\r\n }\r\n };\r\n soption.onWindowAfterHide = () => {\r\n if (!this.summaryWindowService.windowHideLock) {\r\n this.summaryWindowService.windowHiding = false;\r\n this.summaryWindowService.windowShowed = false;\r\n this.summaryWindowService.searchedKeyword = '';\r\n this.summaryWindowService.selectedSummaryType = SummaryType.summaryTypeAll;\r\n }\r\n };\r\n /** 更新摘要清單 */\r\n soption.updateSummaryList = () => {\r\n let source = this.judicialInterpretService.getSummaryListObserver(note.case_id)\r\n .pipe(\r\n map(list => (list as any).map(summary =>\r\n Serializable.extendObjectFromResponseObject(new SummarySave(), summary)\r\n )),\r\n tap(list => {\r\n note.summary = list;\r\n })\r\n );\r\n if (note.summary) {\r\n console.log('note-summary');\r\n source = of(note.summary);\r\n }\r\n this.summaryWindowService.loadingSummaryList = true;\r\n source.subscribe(sl => {\r\n const summaryListService = this.summaryWindowService.summaryListService;\r\n summaryListService.setSelectedSummaryBlockAndSummary(null, null);\r\n summaryListService.summaryBlockList = [];\r\n summaryListService.setupReaderMode();\r\n summaryListService.disableCancelSelect = true;\r\n summaryListService.enableCopySummaryButtonDisplay = false;\r\n summaryListService.enableCopyLearnTrainingButtonDisplay = false;\r\n // summaryListService.disableBottomMenu = soption.disableBottomMenu;\r\n // summaryListService.disableTopRightMenu = soption.disableTopRightMenu;\r\n // summaryListService.disableTextCopy = soption.disableTextCopy;\r\n // summaryListService.disableTypeSelect = soption.disableTypeSelect;\r\n // summaryListService.disableTextEdit = soption.disableTextEdit;\r\n // summaryListService.disableTagEdit = soption.disableTagEdit;\r\n // summaryListService.disableCancelSelect = soption.disableCancelSelect;\r\n // summaryListService.disableGistEdit = soption.disableGistEdit;\r\n\r\n const summaryBlock = {};\r\n sl.forEach((summary: SummarySave) => {\r\n if (!summaryBlock[summary.summary_block_index]) {\r\n const block = new SummaryBlock(summaryListService);\r\n block.blockIndex = summary.summary_block_index;\r\n summaryBlock[summary.summary_block_index] = block;\r\n }\r\n });\r\n const summaryBlockList = [];\r\n Object.keys(summaryBlock).forEach(key => {\r\n summaryBlockList.push(summaryBlock[key]);\r\n });\r\n summaryBlockList.sort((a, b) => a.blockIndex - b.blockIndex);\r\n\r\n sl.forEach((summarySave: SummarySave) => {\r\n const summary = SummaryConvert.saveToSummary(\r\n summarySave,\r\n summaryBlock[summarySave.summary_block_index],\r\n summaryListService,\r\n null\r\n );\r\n summary.summaryBlock.list.push(summary);\r\n });\r\n\r\n summaryBlockList.forEach(block => {\r\n block.list.sort((a, b) => a.index - b.index);\r\n summaryListService.summaryBlockList.push(block);\r\n });\r\n summaryListService.recalcAllSummaryOrder();\r\n\r\n console.log('setup list summary', summaryListService.summaryBlockList);\r\n this.summaryWindowService.loadingSummaryList = false;\r\n\r\n // 設定摘要清單過濾\r\n const filterSetting: SummaryFilterSetting = new SummaryFilterSetting();\r\n filterSetting.displayModeId = SummaryFilterDisplayModeId.All;\r\n filterSetting.selectedTypes = [];\r\n filterSetting.keyword = '';\r\n const summaryTypes: { [key: string]: SummaryTypeId } = {};\r\n sl.forEach((summarySave: SummarySave) => {\r\n summaryTypes[SummaryTypeId[summarySave.summary_type_id]] = summarySave.summary_type_id;\r\n });\r\n filterSetting.selectedTypes = Object.keys(summaryTypes)\r\n .map(key => summaryTypes[key]);\r\n this.summaryWindowService.summaryListService.updateSummaryListShow(filterSetting);\r\n this.summaryWindowService.searchedKeyword = '';\r\n\r\n setTimeout(() => {\r\n if (option.issueSortOutOption\r\n && option.issueSortOutOption.linkingIssue.link_summary_id) {\r\n const summaryItem = this.summaryWindowService.summaryListService.getFlatSummaryList().find(v => v.summaryId === option.issueSortOutOption.linkingIssue.link_summary_id);\r\n if (summaryItem) {\r\n this.summaryWindowService.summaryListService.setSelectedSummaryBlockAndSummary(summaryItem.summaryBlock, summaryItem);\r\n summaryItem.scrollIntoView();\r\n }\r\n }\r\n });\r\n });\r\n };\r\n soption.onSummarySelected = (summary: Summary) => {\r\n console.log('linking mode, select summary ', summary, option.issueSortOutOption.linkingIssue);\r\n\r\n if (option.issueSortOutOption.linkingIssue) {\r\n option.issueSortOutOption.enableLinkConfirmButton = true;\r\n option.issueSortOutOption.linkingIssue.link_summary_id = summary ? summary.summaryId : '';\r\n option.issueSortOutOption.linkingIssue.edit_time = new Date().getTime();\r\n\r\n if (!option.issueSortOutOption.issueAnswerBackup[option.issueSortOutOption.linkingIssue.id]) {\r\n option.issueSortOutOption.linkingIssue.answer_text = summary.titleText;\r\n }\r\n }\r\n };\r\n\r\n this.summaryWindowService._option = soption;\r\n this.summaryWindowService.showWindow();\r\n };\r\n option.issueSortOutOption.cancelLink = () => {\r\n this.summaryWindowService.hideWindow();\r\n };\r\n option.issueSortOutOption.confirmLink = () => {\r\n const blukData: IssueBlukRequest = new IssueBlukRequest();\r\n blukData.case_id = note.case_id;\r\n blukData.list = [];\r\n if (note.issue_list) {\r\n blukData.list = note.issue_list;\r\n // note.issue_list.forEach(i => {\r\n // linkData[i.id] = i.link_summary_id;\r\n // });\r\n this.issueService.blukJudicialInterpretObserver(blukData)\r\n .subscribe(r => { });\r\n // setTimeout(() => {\r\n // this.summaryWindowService.hideWindow();\r\n // }, 1000);\r\n }\r\n note.issue_list.forEach(i => {\r\n option.issueSortOutOption.issueLinkBackup[i.id] = i.link_summary_id;\r\n option.issueSortOutOption.issueAnswerBackup[i.id] = i.answer_text;\r\n });\r\n this.summaryWindowService.hideWindow();\r\n // option.issueSortOutOption.issueLinkBackup = {};\r\n };\r\n\r\n\r\n // // console.log('show window root');\r\n // this.detailInfoClickWindowService._option = option;\r\n // this.detailInfoClickWindowService.selectedTab = this.detailInfoClickWindowService.tabs[option.tab_id_text];\r\n // this.detailInfoClickWindowService.showWindow();\r\n\r\n this.detailInfoClickWindowService.selectedTab = null;\r\n setTimeout(() => {\r\n // console.log('show window root');\r\n this.detailInfoClickWindowService._option = option;\r\n this.detailInfoClickWindowService.selectedTab = this.detailInfoClickWindowService.tabs[option.tab_id_text];\r\n this.detailInfoClickWindowService.showWindow();\r\n });\r\n }\r\n showSummaryPreviewWindow(noteData: any, summaryTypeItem: SummaryTypeItem): void {\r\n // this.selectNote(noteData, 'detailInfoClickWindow');\r\n\r\n this.showSummaryPreviewWindowNote = noteData;\r\n this.showDetailWindowNote = null;\r\n\r\n const note: JudicialInterpretCase = noteData as JudicialInterpretCase;\r\n\r\n const soption = new SummaryWindowOption();\r\n soption.title = '摘要預覽';\r\n\r\n // soption.disableBottomMenu = false;\r\n // soption.disableTopRightMenu = false;\r\n // soption.disableTextCopy = false;\r\n // soption.disableTypeSelect = false;\r\n // soption.disableTextEdit = false;\r\n // soption.disableTagEdit = false;\r\n // soption.disableCancelSelect = false;\r\n // soption.disableGistEdit = false;\r\n\r\n soption.onWindowShow = () => {\r\n this.summaryWindowService.translateX = 0;\r\n this.summaryWindowService.windowShowing = true;\r\n this.summaryWindowService.windowHideLock = true;\r\n\r\n if (SummaryWindowOption.textCopySubscription) {\r\n SummaryWindowOption.textCopySubscription.unsubscribe();\r\n SummaryWindowOption.textCopySubscription = null;\r\n }\r\n if (SummaryWindowOption.summaryCopyOnlineSubscription) {\r\n SummaryWindowOption.summaryCopyOnlineSubscription.unsubscribe();\r\n SummaryWindowOption.summaryCopyOnlineSubscription = null;\r\n }\r\n SummaryWindowOption.textCopySubscription = this.summaryWindowService.summaryListService.textCopyed$.subscribe(() => {\r\n this.successTipOpenerService.showPopTip('複製成功', '3s cubic-bezier(0.895, 0.03, 0.685, 0.22)');\r\n });\r\n SummaryWindowOption.summaryCopyOnlineSubscription = this.summaryWindowService.summaryListService.copySummaryOnline$\r\n .subscribe(() => {\r\n this.successTipOpenerService.showPopTip('已複製,請建立新摘要並建入', '4s cubic-bezier(0.895, 0.03, 0.685, 0.22)');\r\n });\r\n\r\n document.querySelector('.summary-window .result-row').scrollTop = 0;\r\n soption.updateSummaryList();\r\n };\r\n soption.onWindowAfterShow = () => {\r\n this.summaryWindowService.windowShowing = false;\r\n this.summaryWindowService.windowHideLock = false;\r\n this.summaryWindowService.windowShowed = true;\r\n };\r\n soption.onWindowHide = () => {\r\n this.showSummaryPreviewWindowNote = null;\r\n // console.log('preview windows hide');\r\n if (!this.summaryWindowService.windowHideLock) {\r\n this.summaryWindowService.windowHiding = true;\r\n this.summaryWindowService.translateX = -700;\r\n\r\n if (this.summaryWindowService.component) {\r\n this.summaryWindowService.component.keyword = '';\r\n }\r\n\r\n this.summaryWindowService.summaryListService.updateMovingSummary(null);\r\n\r\n if (!this.detailInfoClickWindowService.windowShowing\r\n && !this.detailInfoClickWindowService.windowShowed) {\r\n this.clearSelectedNote();\r\n }\r\n }\r\n };\r\n soption.onWindowAfterHide = () => {\r\n if (!this.summaryWindowService.windowHideLock) {\r\n this.summaryWindowService.windowHiding = false;\r\n this.summaryWindowService.windowShowed = false;\r\n this.summaryWindowService.searchedKeyword = '';\r\n this.summaryWindowService.selectedSummaryType = SummaryType.summaryTypeAll;\r\n }\r\n };\r\n soption.onSummarySelected = (summary: Summary) => {\r\n\r\n };\r\n /** 更新摘要清單 */\r\n soption.updateSummaryList = () => {\r\n const summaryListService = this.summaryWindowService.summaryListService;\r\n summaryListService.summaryTypeList = SummaryType.judgmentSummaryTypeList;\r\n summaryListService.setSelectedSummaryBlockAndSummary(null, null);\r\n summaryListService.summaryBlockList = [];\r\n\r\n let source = this.judicialInterpretService.getSummaryListObserver(note.case_id)\r\n .pipe(\r\n map(list => (list as any).map(summary =>\r\n Serializable.extendObjectFromResponseObject(new SummarySave(), summary)\r\n )),\r\n tap(list => {\r\n note.summary = list;\r\n })\r\n );\r\n if (note.summary) {\r\n console.log('note-summary');\r\n source = of(note.summary);\r\n }\r\n this.summaryWindowService.loadingSummaryList = true;\r\n source.subscribe(sl => {\r\n const summaryBlock = {};\r\n sl.forEach((summary: SummarySave) => {\r\n if (!summaryBlock[summary.summary_block_index]) {\r\n const block = new SummaryBlock(summaryListService);\r\n block.blockIndex = summary.summary_block_index;\r\n summaryBlock[summary.summary_block_index] = block;\r\n }\r\n });\r\n const summaryBlockList = [];\r\n summaryListService.setupEditorMode();\r\n summaryListService.disableCancelSelect = false;\r\n summaryListService.isCopySummaryLoginAlert = false;\r\n // summaryListService.disableBottomMenu = soption.disableBottomMenu;\r\n // summaryListService.disableTopRightMenu = soption.disableTopRightMenu;\r\n // summaryListService.disableTextCopy = soption.disableTextCopy;\r\n // summaryListService.disableTypeSelect = soption.disableTypeSelect;\r\n // summaryListService.disableTextEdit = soption.disableTextEdit;\r\n // summaryListService.disableTagEdit = soption.disableTagEdit;\r\n // summaryListService.disableCancelSelect = soption.disableCancelSelect;\r\n // summaryListService.disableGistEdit = soption.disableGistEdit;\r\n\r\n Object.keys(summaryBlock).forEach(key => {\r\n summaryBlockList.push(summaryBlock[key]);\r\n });\r\n summaryBlockList.sort((a, b) => a.blockIndex - b.blockIndex);\r\n\r\n sl.forEach((summarySave: SummarySave) => {\r\n const summary = SummaryConvert.saveToSummary(\r\n summarySave,\r\n summaryBlock[summarySave.summary_block_index],\r\n summaryListService,\r\n null\r\n );\r\n summary.summaryBlock.list.push(summary);\r\n });\r\n\r\n summaryBlockList.forEach(block => {\r\n block.list.sort((a, b) => a.index - b.index);\r\n summaryListService.summaryBlockList.push(block);\r\n });\r\n summaryListService.recalcAllSummaryOrder();\r\n\r\n console.log('setup list summary', summaryListService.summaryBlockList);\r\n this.summaryWindowService.loadingSummaryList = false;\r\n\r\n // 設定摘要清單過濾\r\n const filterSetting: SummaryFilterSetting = new SummaryFilterSetting();\r\n filterSetting.displayModeId = SummaryFilterDisplayModeId.All;\r\n filterSetting.selectedTypes = [];\r\n filterSetting.keyword = '';\r\n const summaryTypes: { [key: string]: SummaryTypeId } = {};\r\n sl.forEach((summarySave: SummarySave) => {\r\n summaryTypes[SummaryTypeId[summarySave.summary_type_id]] = summarySave.summary_type_id;\r\n });\r\n filterSetting.selectedTypes = Object.keys(summaryTypes)\r\n .map(key => summaryTypes[key]);\r\n this.summaryWindowService.selectedSummaryType = SummaryType.summaryTypeAll;\r\n\r\n if (summaryTypeItem != null\r\n && summaryTypeItem.list_type !== NoteSummaryListType.Bookmark\r\n && this.summaryWindowService.selectedSummaryType) {\r\n this.summaryWindowService.selectedSummaryType = SummaryType.typeDict[SummaryTypeId[summaryTypeItem.item_type]];\r\n filterSetting.selectedTypes = [this.summaryWindowService.selectedSummaryType.id];\r\n }\r\n\r\n\r\n this.summaryWindowService.searchedKeyword = '';\r\n this.summaryWindowService.summaryListService.updateSummaryListShow(filterSetting);\r\n });\r\n };\r\n\r\n /** 更新摘要 */\r\n soption.updateSummary = (summary: Summary) => {\r\n if (summary.isNewSummary) { return; }\r\n const saveRequest = SummaryConvert.summaryToSave(summary);\r\n this.judicialInterpretService.updateSummaryObserver(note.case_id, saveRequest).subscribe();\r\n };\r\n /** 新增摘要 */\r\n soption.addSummary = (summary: Summary) => {\r\n const saveRequest = SummaryConvert.summaryToSave(summary);\r\n this.judicialInterpretService.addSummaryObserver(note.case_id, saveRequest)\r\n .subscribe((result) => {\r\n if (result == SaveResultStatusId.ReachSummarySaveLimit) {\r\n PayInfoOverSaveLimitPopupComponent.open(this.matDialog, 'summary');\r\n }\r\n });\r\n };\r\n /** 刪除摘要 */\r\n soption.deleteSummary = (delete_list: Summary[]) => {\r\n const request: SummaryDeleteRequest = new SummaryDeleteRequest();\r\n request.case_id = note.case_id;\r\n request.summary_id_list = delete_list.map(s => s.summaryId);\r\n request.summary_id_sn = {};\r\n const currentList = this.summaryWindowService.summaryListService.getFlatSummaryList();\r\n currentList.forEach(s => {\r\n request.summary_id_sn[s.summaryId] = [s.summaryBlock.blockIndex, s.index];\r\n });\r\n\r\n this.judicialInterpretService.deleteSummaryObserver(request).subscribe();\r\n };\r\n /** 排序摘要 */\r\n soption.updateSummaryListOrder = (list: Summary[]) => {\r\n const request: SummaryListOrderRequest = new SummaryListOrderRequest();\r\n request.case_id = note.case_id;\r\n request.summary_id_sn = {};\r\n list.forEach(s => {\r\n request.summary_id_sn[s.summaryId] = [s.summaryBlock.blockIndex, s.index];\r\n });\r\n this.judicialInterpretService.updateSummaryListOrderObserver(request).subscribe();\r\n };\r\n /** 摘要是否可新增檢查 */\r\n soption.beforeAddSummaryCheck = () => {\r\n if (this.judgmentService.saveStatus.IsReachSummarySaveLimitTotal()) {\r\n PayInfoOverSaveLimitPopupComponent.open(this.matDialog, 'summary');\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n this.summaryWindowService._option = soption;\r\n this.summaryWindowService.showWindow();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n /** 開啟筆記 */\r\n openNote(note: JudicialInterpretCase): void {\r\n const query = ['load_save=1'];\r\n const keywords = this.filterCondition.searchKeywords\r\n .filter(k => k.keyword && k.compose !== ComposeType.Not);\r\n const hasSpecKeywords = keywords.filter(k => k.kind === SearcherKeywordKind.PointSummary\r\n || k.kind === SearcherKeywordKind.SummaryTag\r\n || k.kind === SearcherKeywordKind.Bookmark);\r\n if (hasSpecKeywords.length > 0) {\r\n query.push('keywords=' + hasSpecKeywords[0].keyword);\r\n if (hasSpecKeywords[0].kind === SearcherKeywordKind.PointSummary\r\n || hasSpecKeywords[0].kind === SearcherKeywordKind.SummaryTag) {\r\n query.push('searchtype=summary');\r\n } else if (hasSpecKeywords[0].kind === SearcherKeywordKind.Bookmark) {\r\n query.push('searchtype=bookmark');\r\n }\r\n } else {\r\n query.push('searchtype=bookmark');\r\n }\r\n // if (this.service.isDesktop()) {\r\n // query.push('force_desktop=1');\r\n // }\r\n const url: string = this.service.BaseUrlWeb + '/note/judicial_interpret/' + note.case_id\r\n + '?' + query.join('&');\r\n window.open(url);\r\n }\r\n /** 重新命名 */\r\n openRenamePopup(fromElement: Element, note: JudicialInterpretCase): void {\r\n // this.selectRow(fromElement, 'renamePopup');\r\n this.showEditNoteNamePopupNote = note;\r\n const componentRef = this.renamePopupOpenerService.openPopup(note.file_subject, note.file_subject2);\r\n\r\n componentRef.instance.confirm.subscribe((newNames: string[]) => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n this.judicialInterpretService.renameNoteObserver(note.note_id, newNames[0], newNames[1]).subscribe(() => {\r\n // 更新清單\r\n // console.log('new name ', newName);\r\n note.file_subject = newNames[0];\r\n note.file_subject2 = newNames[1];\r\n });\r\n\r\n componentRef.instance.closePopup();\r\n });\r\n\r\n componentRef.onDestroy(() => {\r\n // this.clearSelectedRow();\r\n this.showEditNoteNamePopupNote = null;\r\n });\r\n }\r\n\r\n /** 刪除確認 */\r\n openDeleteConfirmPopup(fromElement: Element, note: JudicialInterpretCase): void {\r\n // this.selectRow(fromElement, 'deleteConfirmPopup');\r\n this.showDeleteNotePopupNote = note;\r\n const componentRef = this.deleteConfirmPopupOpenerService.openPopup(DeleteConfirmPopupType.Note);\r\n\r\n componentRef.instance.confirm.subscribe(() => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n this.judicialInterpretService.deleteNoteObserver(note.note_id, note.case_id).subscribe(() => {\r\n // 更新清單\r\n this.noteUpdate.emit();\r\n });\r\n componentRef.instance.closePopup();\r\n });\r\n\r\n componentRef.onDestroy(() => {\r\n // this.clearSelectedRow();\r\n this.showDeleteNotePopupNote = null;\r\n });\r\n }\r\n\r\n /** 隨意備註 */\r\n openCommentPopup(fromElement: Element, note: JudicialInterpretCase): void {\r\n // const componentRef = this.commentPopupOpenerService.openPopup(note.comment);\r\n // componentRef.instance.submit.subscribe(r => {\r\n // note.comment = r;\r\n // this.commentPopupService.pushJudicialInterpretObserver(note.judicial_interpret_id, r).subscribe();\r\n // });\r\n this._openCommentPopup(\r\n note.case_id,\r\n note.comment,\r\n (comment) => note.comment = comment\r\n );\r\n }\r\n private _openCommentPopup(\r\n note_id: string,\r\n comment: string,\r\n onConfirmSave: (comment: string) => void\r\n ): void {\r\n const componentRef = this.commentPopupOpenerService.openPopup('隨意備註', comment);\r\n componentRef.instance.submit.subscribe(new_comment => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n componentRef.instance.closePopup();\r\n return;\r\n }\r\n\r\n this.commentService.updateNoteCommentJudicialInterpretObserver(note_id, new_comment)\r\n .subscribe(() => {\r\n if (onConfirmSave) {\r\n onConfirmSave(new_comment);\r\n }\r\n // 關閉彈窗\r\n componentRef.instance.closePopup();\r\n });\r\n });\r\n }\r\n\r\n\r\n /** 案件標籤 */\r\n openCaseTagPopup(fromElement: Element, note: JudicialInterpretCase): void {\r\n // this.selectRow(fromElement, 'caseTagPopup');\r\n\r\n // const componentRef = this.caseTagPopupOpenerService.openPopup(CaseType.JudicialInterpret, note.case_tag_list, note);\r\n // componentRef.onDestroy(() => {\r\n // if (this.selectedRowBy === 'caseTagPopup') {\r\n // this.clearSelectedRow();\r\n // }\r\n // });\r\n this.showEditCaseTagPopupNote = note;\r\n const onConfirmSave = (list: CaseTag[]) => {\r\n note.case_tag_list = list;\r\n };\r\n const onDestory = () => {\r\n this.showEditCaseTagPopupNote = null;\r\n // if (this.selectedRowBy === 'caseTagPopup') {\r\n // this.clearSelectedRow();\r\n // }\r\n };\r\n\r\n this._openCaseTagPopup(\r\n note.note_id,\r\n note.case_tag_list,\r\n onConfirmSave,\r\n onDestory\r\n );\r\n }\r\n private _openCaseTagPopup(\r\n note_id: string,\r\n caseTagList: CaseTag[],\r\n onConfirmSave: (list: CaseTag[]) => void,\r\n onDestroy: () => void\r\n ): void {\r\n const componentRef = this.caseTagPopupOpenerService.openPopup(CaseType.Judgment, caseTagList);\r\n componentRef.instance.confirm.subscribe((list: CaseTag[]) => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n // 更新到S\r\n this.judicialInterpretService.updateNoteCaseTagListObserver(note_id, list)\r\n .subscribe(() => {\r\n // 更新本地\r\n if (onConfirmSave) {\r\n onConfirmSave(list);\r\n }\r\n // 關閉彈窗\r\n componentRef.instance.closePopup();\r\n });\r\n });\r\n componentRef.onDestroy(() => {\r\n onDestroy();\r\n });\r\n }\r\n\r\n /** 體系歸納 */\r\n openEditCategoryPopup(\r\n fromElement: Element,\r\n tabId: EditCategoryTabId,\r\n note: JudicialInterpretCase,\r\n ): void {\r\n // this.selectNote(note, 'editCategoryPopup');\r\n this.showEditCategoryPopupNote = note;\r\n\r\n const option: EditCategoryPopupOption = new EditCategoryPopupOption();\r\n option.tab_id = tabId;\r\n\r\n option.get_note_category = () => note.category;\r\n option.get_note_subcategory = () => note.subcategory;\r\n\r\n option.get_category_list = () => this.judicialInterpretService.categoryList;\r\n option.get_subcategory_list = () => this.judicialInterpretService.subcategoryList;\r\n option.pullCategoryListObserver = () => this.judicialInterpretService.pullCategoryListObserver();\r\n option.pullSubcategoryListObserver = () => this.judicialInterpretService.pullSubcategoryListObserver();\r\n option.pullNoteListObserver = () => this.judicialInterpretService.pullStorageNoteListObserver(this.filterCondition);\r\n\r\n option.addCategoryListObserver = (category) => this.judicialInterpretService.addCategoryObserver(category);\r\n option.addSubcategoryListObserver = (subcategory) => this.judicialInterpretService.addSubcategoryObserver(subcategory);\r\n option.editCategoryListObserver = (old_category, new_category) =>\r\n this.judicialInterpretService.editCategoryObserver(old_category, new_category);\r\n option.editSubcategoryListObserver = (category, old_subcategory, new_subcategory) =>\r\n this.judicialInterpretService.editSubcategoryObserver(category, old_subcategory, new_subcategory);\r\n option.deleteCategoryObserver = (text) => this.judicialInterpretService.deleteCategoryObserver(text);\r\n option.deleteSubcategoryObserver = (category, text) => this.judicialInterpretService.deleteSubcategoryObserver(category, text);\r\n option.orderCategoryListObserver = (list) => this.judicialInterpretService.orderCategoryObserver(list);\r\n option.orderSubcategoryListObserver = (list) => this.judicialInterpretService.orderSubcategoryObserver(list);\r\n option.broadcastCategoryUpdateObserver = (exci) => this.judicialInterpretService.broadcastCategoryUpdateObserver(exci);\r\n option.broadcastSubcategoryUpdateObserver = (exci) => this.judicialInterpretService.broadcastSubcategoryUpdateObserver(exci);\r\n\r\n\r\n\r\n const componentRef = this.editCategoryPopupOpenerService.openPopup(option);\r\n\r\n // 確定置換\r\n componentRef.instance.confirm.subscribe((result: EditCategoryPopupConfirmData) => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n // 讀取動畫\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.EditCategory);\r\n\r\n // 置換請求\r\n const request = this.judicialInterpretService.getNoteClassifyRequest(note.note_id, result.category, result.subcategory);\r\n this.judicialInterpretService.updateNoteClassifyObserver(request)\r\n .pipe(\r\n concatMap(() => forkJoin(\r\n this.judicialInterpretService.broadcastCategoryUpdateObserver(''),\r\n this.judicialInterpretService.broadcastSubcategoryUpdateObserver(''),\r\n this.judicialInterpretService.pullCategoryListObserver(),\r\n this.judicialInterpretService.pullSubcategoryListObserver(),\r\n )),\r\n concatMap(() => this.noteUpdateObserver)\r\n )\r\n .subscribe({\r\n complete: () => {\r\n // 關閉讀取動畫\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n // 關閉彈窗\r\n componentRef.instance.closePopup();\r\n }\r\n });\r\n });\r\n\r\n componentRef.onDestroy(() => {\r\n // this.clearSelectedNote();\r\n this.showEditCategoryPopupNote = null;\r\n });\r\n }\r\n\r\n getNoteTemplate(note: JudicialInterpretCase): JudicialInterpretPropertyItem {\r\n return this.baseList[note.propertyString];\r\n }\r\n\r\n\r\n openPrintPopup(note: any): void {\r\n if (this.memberService.permissions.judicial_interpret_print === '1') {\r\n this.openPrintConfigPopup(note);\r\n } else {\r\n this.openPrintPermissionPopup();\r\n }\r\n }\r\n openPrintConfigPopup(note: any): void {\r\n this.showPrintPopupNote = note;\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PrintConfigPopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n dlRef.afterClosed().subscribe(() => {\r\n this.showPrintPopupNote = null;\r\n });\r\n dlRef.componentInstance.note_id = note.note_id;\r\n dlRef.componentInstance.url = () => {\r\n const optionArray = [\r\n dlRef.componentInstance.printConfig.fulltext ? '1' : '0',\r\n dlRef.componentInstance.printConfig.summary ? '1' : '0',\r\n dlRef.componentInstance.printConfig.font ? '1' : '0',\r\n dlRef.componentInstance.printConfig.rownumber ? '1' : '0',\r\n dlRef.componentInstance.printConfig.homepage ? '1' : '0',\r\n ];\r\n const optionText: string = optionArray.join().replace(/,/g, '');\r\n const url = 'print/judicial_interpret/' + note.note_id + '?option=' + optionText;\r\n return url;\r\n };\r\n }\r\n openPrintPermissionPopup(): void {\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PrintPermissionPopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n }\r\n\r\n\r\n // isStopCase(note: JudicialInterpretCase): boolean {\r\n // return note.court_id === CourtId.jtype1A\r\n // || note.court_id === CourtId.jtype1B\r\n // || note.court_id === CourtId.jtype1E;\r\n // }\r\n\r\n\r\n\r\n openPutinNotePopup(note: JudicialInterpretCase): void {\r\n this.showCloneToTeamPopupNote = note;\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PutInNotePopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n dlRef.afterClosed().subscribe(() => {\r\n this.showCloneToTeamPopupNote = null;\r\n });\r\n const c = dlRef.componentInstance;\r\n c.is_loading = true;\r\n this.judicialInterpretService.getNotePutinTeamObserver(note.note_id)\r\n .subscribe((v) => {\r\n console.log(v);\r\n c.team_list = v;\r\n c.is_loading = false;\r\n });\r\n c.onSubmit = () => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n const selectedTeamList = c.getSelectedTeamList();\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.CopyNote);\r\n if (selectedTeamList.length > 0) {\r\n this.judicialInterpretService.copyNoteToTeamObserver(note.note_id,\r\n selectedTeamList.map(t => t.team_id),\r\n false)\r\n // .pipe(\r\n // tap(result => {\r\n // }),\r\n // )\r\n .subscribe((result) => {\r\n console.log(result);\r\n const copyResult: number = result.copy_result;\r\n if (copyResult === 1) {\r\n note.putin_team_count = result.note_in_team_count[note.note_id];\r\n this.openPutinNoteSuccessPopup();\r\n } else if (copyResult === 2) {\r\n this.openPutinNoteCheckPopup(note, selectedTeamList);\r\n }\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.CopyNote);\r\n c.closePopup();\r\n });\r\n }\r\n };\r\n\r\n // c.team_list = NotePutInTeam.convertFromNotePutinTeamObject(note.putin_team);\r\n }\r\n openPutinNoteCheckPopup(note: JudicialInterpretCase, selectedTeamList: NotePutInTeam[]): void {\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PutInNoteCheckPopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n const c = dlRef.componentInstance;\r\n c.onConfirm = () => {\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.CopyNote);\r\n this.judicialInterpretService.copyNoteToTeamObserver(note.note_id, selectedTeamList.map(t => t.team_id), true)\r\n .subscribe((result) => {\r\n console.log(result);\r\n const copyResult: number = result.copy_result;\r\n if (copyResult === 1) {\r\n this.openPutinNoteSuccessPopup();\r\n note.putin_team_count = result.note_in_team_count[note.note_id];\r\n } else if (copyResult === 2) {\r\n this.openPutinNoteCheckPopup(note, selectedTeamList);\r\n }\r\n\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.CopyNote);\r\n c.closePopup();\r\n });\r\n c.closePopup();\r\n };\r\n }\r\n openPutinNoteSuccessPopup(): void {\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PutInNoteSuccessPopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n }\r\n\r\n checkinNote(note: any, status: any): void {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n note.checkInCase(1); note.toggleShowCheckInMenu();\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n
序號
\r\n
類別
\r\n
項目
\r\n
\r\n
題目
\r\n
\r\n
屬性
\r\n
案號
\r\n
日期
\r\n
指令動作
\r\n
\r\n
\r\n
\r\n
{{note.sn}}
\r\n \r\n
\r\n
\r\n
{{note.subcategory ? note.subcategory.text : '未分項'}}
\r\n
\r\n
\r\n
\r\n
\r\n
】\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
重新命名
\r\n
\r\n
\r\n
\r\n
開啟筆記
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{getCaseName(note)}}停用廢止
\r\n
\r\n
{{getCaseDate(note)}}
\r\n
\r\n
\r\n
\r\n
\r\n
詳細資訊
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 打卡\r\n {{(note.checkInTotalCount||0).toLocaleString()}}\r\n \r\n
\r\n
\r\n
\r\n
每日只可打卡一次
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
綠燈
\r\n
\r\n
\r\n
\r\n
橘燈
\r\n
\r\n
\r\n
\r\n
紅燈
\r\n
\r\n
\r\n
\r\n
詳細資料
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
列印
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
預覽摘要
\r\n
\r\n
\r\n
\r\n
刪除
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
分享
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
置入團隊
\r\n
\r\n
0?'has-on':'')]\">
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild, ElementRef, OnDestroy } from '@angular/core';\r\nimport { PersonalConfigPopupComponent } from 'projects/lwlib/src/personal-config-popup/personal-config-popup.component';\r\nimport { DisplayMode, PersonalConfigPopupService, PersonalConfig, CaseType } from 'projects/lwlib/src/personal-config-popup/personal-config-popup.service';\r\nimport { InitService } from 'projects/lwlib/src/init/init.service';\r\nimport { LoadingIconService } from 'projects/lwlib/src/loading-icon/loading-icon.service';\r\nimport { SubscriptionGroup } from 'projects/lwlib/src/subscription-group';\r\nimport { LawRuleService } from './law-rule.service';\r\nimport { ActionName } from 'projects/lwlib/src/action-name';\r\nimport { PageChangeComponent } from 'projects/lwlib/src/page-change/page-change.component';\r\nimport { KeywordSearcherComponent } from 'projects/lwlib/src/keyword-searcher/keyword-searcher.component';\r\nimport { FilterTypesComponent } from 'projects/lwlib/src/filter-types/filter-types.component';\r\nimport { SearcherKeywordKind } from 'projects/lwlib/src/keyword-searcher/searcher-keyword-kind';\r\nimport { SearcherKeyword } from 'projects/lwlib/src/keyword-searcher/searcher-keyword';\r\nimport { LogPageId } from 'projects/lwlib/src/log-page/log-page-id.enum';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { BroadcastEventListener } from 'ng2-signalr';\r\nimport { PersonalConfigPopupOpenerService } from 'projects/lwlib/src/personal-config-popup/personal-config-popup-opener.service';\r\nimport { forkJoin, Observable, of } from 'rxjs';\r\nimport { ChildContent_PersonalStorageService } from '../child-content-personal-storage.service';\r\nimport { FilterCondition } from '../filter-condition';\r\nimport { concatMap, delay, tap } from 'rxjs/operators';\r\nimport { LawRuleCaseList } from './law-rule-case-list';\r\nimport { StorageTypesComponent } from 'projects/lwlib/src/storage-types/storage-types.component';\r\nimport { JudgmentService } from '../judgment/judgment.service';\r\nimport { PlanService } from 'projects/lwlib/src/plan/plan.service';\r\n// import { TestUserLawRuleNotePopupOpenerService } from 'projects/lwlib/src/test-user-law-rule-note-popup/test-user-law-rule-note-popup-opener.service';\r\n\r\n@Component({\r\n selector: 'app-law-rule',\r\n templateUrl: './law-rule.component.html',\r\n styleUrls: ['./law-rule.component.scss'],\r\n})\r\nexport class LawRuleComponent implements OnInit, OnDestroy {\r\n @ViewChild(StorageTypesComponent, { static: true }) storageTypesComponent: StorageTypesComponent;\r\n @ViewChild(PageChangeComponent, { static: true }) pageChange: PageChangeComponent;\r\n @ViewChild(KeywordSearcherComponent, { static: true }) keywordSearcher: KeywordSearcherComponent;\r\n @ViewChild(FilterTypesComponent) filterTypes: FilterTypesComponent;\r\n\r\n kindList: SearcherKeywordKind[] = [\r\n SearcherKeywordKind.LawRuleName,\r\n SearcherKeywordKind.PointSummary,\r\n SearcherKeywordKind.SummaryTag,\r\n SearcherKeywordKind.Comment,\r\n SearcherKeywordKind.ComposeSearch,\r\n ];\r\n kindAutocomplete: { [key: string]: (keyword: string) => Observable } = {\r\n LawRuleName: (keyword: string) => this.suggestKeywordNoteLawRule(keyword),\r\n SummaryTag: (keyword: string) => this.suggestKeywordSummaryTag(keyword),\r\n };\r\n\r\n\r\n get filterCondition(): FilterCondition { return this.lawRuleService.filterCondition; }\r\n // set filterCondition(value) { this.lawRuleService.filterCondition = value; }\r\n\r\n displayMode: any = DisplayMode;\r\n listDisplayMode: DisplayMode;\r\n\r\n listElement: Element;\r\n // lawRule: LawRuleComponent;\r\n\r\n inited: boolean = false;\r\n\r\n // 存量顯示\r\n showSaveLimit: boolean = true;\r\n\r\n subscriptions: SubscriptionGroup = {};\r\n signalrListeners: { [key: string]: BroadcastEventListener } = {};\r\n\r\n get IsGuest(): boolean { return this.service.IsGuest; }\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n public judgmentService: JudgmentService,\r\n private personalConfigPopupService: PersonalConfigPopupService,\r\n private childContent_PersonalStorageService: ChildContent_PersonalStorageService,\r\n // private personalStorageService: ChildContent_PersonalStorageService,\r\n private initService: InitService,\r\n private loadingIconService: LoadingIconService,\r\n private lawRuleService: LawRuleService,\r\n private service: AppService,\r\n private personalConfigPopupOpenerService: PersonalConfigPopupOpenerService,\r\n public planService: PlanService,\r\n // private testService: TestUserLawRuleNotePopupOpenerService,\r\n ) {\r\n // this.lawRule = this;\r\n\r\n // this.filterCondition = new FilterCondition(\r\n // 20,\r\n // Category.allCategory,\r\n // Subcategory.allSubcategory,\r\n // this.personalConfigPopupService,\r\n // );\r\n }\r\n\r\n ngOnInit() {\r\n this.lawRuleService.filterCondition = new FilterCondition();\r\n this.filterCondition.orderWayCourtLevel = this.personalConfigPopupService.personalConfig.orderWayCourtLevel;\r\n this.filterCondition.orderWayJudgDate = this.personalConfigPopupService.personalConfig.orderWayJudgDate;\r\n this.filterCondition.orderWayEditDate = this.personalConfigPopupService.personalConfig.orderWayEditDate;\r\n this.filterCondition.per_page_note_amount = 12;\r\n\r\n // 檢查是否要帶入其他頁面搜尋的關鍵字\r\n if (!this.childContent_PersonalStorageService.isAllSearchKeywordEmpty()) {\r\n const searchKeywords: SearcherKeyword[] = this.childContent_PersonalStorageService.searchKeywords;\r\n const kindList: SearcherKeywordKind[] = this.childContent_PersonalStorageService.storageTab.LawRule.kindList;\r\n this.filterCondition.searchKeywords = searchKeywords;\r\n\r\n // 設定是否組合查找\r\n if (this.childContent_PersonalStorageService.isComposeSearch) {\r\n this.keywordSearcher.searchedTemplate = this.keywordSearcher.composeTemplate;\r\n this.keywordSearcher.chooseKind.selectedKind = this.keywordSearcher.chooseKind.baseList[SearcherKeywordKind[SearcherKeywordKind.ComposeSearch]];\r\n // 設定符合種類的關鍵字\r\n for (let i = 0; i < searchKeywords.length; i++) {\r\n const searchKeyword = searchKeywords[i];\r\n if (kindList.some(k => k === searchKeyword.kind)) {\r\n this.keywordSearcher.searchedKeywords[i] = searchKeyword;\r\n }\r\n }\r\n } else {\r\n if (kindList.some(k => k === searchKeywords[0].kind)) {\r\n this.keywordSearcher.chooseKind.selectedKind = this.keywordSearcher.chooseKind.baseList[SearcherKeywordKind[searchKeywords[0].kind]];\r\n this.keywordSearcher.searchedKind = this.keywordSearcher.chooseKind.selectedKind;\r\n this.keywordSearcher.inputText.text = searchKeywords[0].keyword;\r\n this.keywordSearcher.searchedText = searchKeywords[0].keyword;\r\n }\r\n }\r\n }\r\n\r\n\r\n this.listElement = (this.elementRef.nativeElement as Element).querySelector(':scope>.law-rule>.list');\r\n\r\n this.listDisplayMode = this.personalConfigPopupService.personalConfig.displayMode;\r\n\r\n // 換頁器,設定每頁數量\r\n this.pageChange.perPageAmount = this.filterCondition.per_page_note_amount;\r\n\r\n // 訂閱:換頁器,換頁\r\n this.subscriptions.pageChange = this.pageChange.clickGoToIndex$.subscribe(i => {\r\n // this.filterCondition.gotoPage(i);\r\n this.filterCondition.pageIndex = i;\r\n this.listElement.scrollTo(0, 0);\r\n this.pullNoteList();\r\n });\r\n\r\n this.subscriptions.personalConfig = this.personalConfigPopupService.personalConfig$.subscribe(r => {\r\n this.listDisplayMode = r.displayMode;\r\n this.listElement.scrollTo(0, 0);\r\n this.pullNoteList();\r\n });\r\n\r\n this.subscriptions.noteList = this.lawRuleService.noteList$.subscribe(list => {\r\n this.pageChange.update(list.count, list.count, this.filterCondition.per_page_note_amount);\r\n });\r\n\r\n // 更新方案狀態\r\n const planStatus$ = of(1)\r\n .pipe(\r\n concatMap(() => {\r\n if (this.service.IsGuest) {\r\n this.showSaveLimit = false;\r\n return of(1);\r\n } else {\r\n return this.pullPlanStatus();\r\n }\r\n }),\r\n );\r\n\r\n of(1)\r\n .pipe(\r\n concatMap(() => this.service.refreshLoginStatus()),\r\n concatMap(() => planStatus$),\r\n concatMap(() => this.judgmentService.pullSaveStatusObserver()),\r\n concatMap(() => this.lawRuleService.pullPersonalStorageLawRuleFullNoteListObserver(this.filterCondition)),\r\n )\r\n .subscribe(r => {\r\n console.log('law-rule note list', r);\r\n // 觸發完成\r\n this.initService.trigger(ActionName.PersonalStorageLaw);\r\n });\r\n\r\n // 設定即時同步接收\r\n const signlarConnSubscribe = this.service.onSignlarConnected.subscribe((connected: boolean) => {\r\n if (connected) {\r\n console.log('add signlar event');\r\n this.addListener('law_rule/note').subscribe((v) => {\r\n console.log('law_rule/note', v);\r\n this.lawRuleService.updateNoteDataStorageObserver(v.case_id);\r\n });\r\n setTimeout(() => { signlarConnSubscribe.unsubscribe(); }, 0);\r\n }\r\n });\r\n\r\n this.service.log(LogPageId.PersonalStorageLawRule, '', '');\r\n this.inited = true;\r\n\r\n // this.testService.openPopup();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n // console.log('judgment comp destory');\r\n SubscriptionGroup.unsubscribeAll(this.subscriptions);\r\n this.clearListener();\r\n }\r\n\r\n /** 增加即時同步監聽 */\r\n addListener(name: string): BroadcastEventListener {\r\n this.signalrListeners[name] = this.service.addGetSignlaRSystemListener(name);\r\n return this.signalrListeners[name];\r\n }\r\n /** 清除即時同步監聽 */\r\n clearListener(): void {\r\n Object.keys(this.signalrListeners)\r\n .forEach(key => {\r\n this.service.removeSignalrListener(key);\r\n });\r\n }\r\n\r\n\r\n\r\n pullPlanStatus(): Observable {\r\n return this.planService.pullPlanStatus()\r\n .pipe(tap(() => {\r\n this.showSaveLimit = this.planService.planStatus.plan_type != '4';\r\n }));\r\n }\r\n pullNoteList(): void {\r\n if (!this.inited) {\r\n return;\r\n }\r\n\r\n // console.log('open loading');\r\n\r\n this.loadingIconService.openAreaLoadingIcon(ActionName.PersonalStorageLaw, this.elementRef.nativeElement);\r\n of(1)\r\n .pipe(\r\n concatMap(() => { return of(1).pipe(delay(1)); }),\r\n concatMap(() => this.pullPlanStatus()),\r\n concatMap(() => this.lawRuleService.pullPersonalStorageLawRuleFullNoteListObserver(this.filterCondition)),\r\n concatMap((lawRuleCaseList: LawRuleCaseList) => {\r\n if (!this.filterCondition.isAllSearchKeywordEmpty()) {\r\n const judicialInterpretTab = this.storageTypesComponent.storageTab.JudicialInterpret;\r\n const judgmentTab = this.storageTypesComponent.storageTab.Judgment;\r\n const caseList = lawRuleCaseList;\r\n\r\n this.childContent_PersonalStorageService.searchKeywords = this.filterCondition.searchKeywords;\r\n this.childContent_PersonalStorageService.isComposeSearch = this.keywordSearcher.searchedTemplate === this.keywordSearcher.composeTemplate;\r\n\r\n judgmentTab.enableSearchResultCount = false;\r\n judgmentTab.searchResultCount = 0;\r\n judgmentTab.hasSearchResult = false;\r\n judicialInterpretTab.enableSearchResultCount = false;\r\n judicialInterpretTab.searchResultCount = 0;\r\n judicialInterpretTab.hasSearchResult = false;\r\n\r\n if (\r\n this.childContent_PersonalStorageService.searchKeywords\r\n .filter(s => !!s.keyword)\r\n .every(sk => judicialInterpretTab.kindList.some(kk => kk === sk.kind))\r\n ) {\r\n judicialInterpretTab.enableSearchResultCount = true;\r\n judicialInterpretTab.isSearching = false;\r\n judicialInterpretTab.searchResultCount = caseList.type_count[CaseType[CaseType.JudicialInterpret]];\r\n judicialInterpretTab.hasSearchResult = (judicialInterpretTab.searchResultCount > 0);\r\n }\r\n\r\n if (\r\n this.childContent_PersonalStorageService.searchKeywords\r\n .filter(s => !!s.keyword)\r\n .every(sk => judgmentTab.kindList.some(kk => kk === sk.kind))\r\n ) {\r\n judgmentTab.enableSearchResultCount = true;\r\n judgmentTab.isSearching = false;\r\n judgmentTab.searchResultCount = caseList.type_count[CaseType[CaseType.Judgment]];\r\n judgmentTab.hasSearchResult = (judgmentTab.searchResultCount > 0);\r\n }\r\n }\r\n return of(1).pipe(delay(1));\r\n }),\r\n ).subscribe(r => {\r\n // console.log('close loading');\r\n this.loadingIconService.closeAreaLoadingIcon(ActionName.PersonalStorageLaw);\r\n });\r\n // this.lawRuleService.pullPersonalStorageLawRuleFullNoteListObserver(this.filterCondition)\r\n // .subscribe(r => {\r\n // // console.log('close loading');\r\n // this.loadingIconService.closeAreaLoadingIcon(ActionName.PersonalStorageLaw);\r\n // });\r\n }\r\n /** 0:檢查中, 1:有筆記, 2:沒筆記 */\r\n checkNoteList(): number {\r\n if (this.lawRuleService.noteList == null) {\r\n return 0;\r\n } else if (this.lawRuleService.noteList.count > 0) {\r\n return 1;\r\n } else if (this.filterCondition.searchKeywords.find(v => v.keyword && v.keyword.length > 0) != null) {\r\n return 0;\r\n } else {\r\n return 2;\r\n }\r\n }\r\n\r\n\r\n\r\n // 關鍵字搜尋\r\n updateKeywordSearcherToFilterCondition(results: SearcherKeyword[]) {\r\n // this.filterCondition.updateKeywordSearch(results);\r\n this.filterCondition.searchKeywords = results;\r\n this.filterCondition.pageIndex = 1;\r\n this.pageChange.currentIndex = 1;\r\n this.pullNoteList();\r\n // this.applySearchFilter();\r\n }\r\n clearSearchKeywords(): void {\r\n const hasSearched: boolean = this.filterCondition.searchKeywords.filter(a => a.keyword).length > 0;\r\n\r\n this.filterCondition.clearSearchKeywords();\r\n\r\n this.childContent_PersonalStorageService.searchKeywords = [];\r\n this.childContent_PersonalStorageService.isComposeSearch = false;\r\n this.storageTypesComponent.storageTab.Judgment.enableSearchResultCount = false;\r\n this.storageTypesComponent.storageTab.Judgment.searchResultCount = 0;\r\n this.storageTypesComponent.storageTab.JudicialInterpret.enableSearchResultCount = false;\r\n this.storageTypesComponent.storageTab.JudicialInterpret.searchResultCount = 0;\r\n\r\n if (hasSearched) {\r\n this.filterCondition.pageIndex = 1;\r\n this.pageChange.currentIndex = 1;\r\n this.applySearchFilter();\r\n }\r\n }\r\n applySearchFilter(): void {\r\n // this.filterCondition.gotoPage(1);\r\n this.filterCondition.pageIndex = 1;\r\n this.pageChange.currentIndex = 1;\r\n this.pageChange.goToPageSlient(1);\r\n this.applyFilter();\r\n }\r\n applyFilter(): void {\r\n this.listElement.scrollTo(0, 0);\r\n this.pullNoteList();\r\n }\r\n\r\n\r\n\r\n openPersonalConfigPopup(): void {\r\n const componentRef = this.personalConfigPopupOpenerService.openPopup();\r\n componentRef.instance.confirm.subscribe((cfg: PersonalConfig) => {\r\n\r\n if (this.IsGuest) {\r\n this.personalConfigPopupService.personalConfig = Object.assign(new PersonalConfig(), cfg);\r\n componentRef.instance.closePopup();\r\n }\r\n else {\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.PersonalStorage);\r\n this.personalConfigPopupService.pushPersonalConfigObserver(cfg)\r\n .pipe(\r\n concatMap(v => this.personalConfigPopupService.pullPersonalConfigObserver()),\r\n tap(() => {\r\n componentRef.instance.closePopup();\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.PersonalStorage);\r\n return of(1).pipe(delay(1));\r\n }),\r\n )\r\n .subscribe();\r\n }\r\n // // console.log('save personal config');\r\n // this.loadingIconService.openFullScreenLoadingIcon(ActionName.PersonalStorage);\r\n // this.personalConfigPopupService.pushPersonalConfigObserver(cfg).subscribe(v => {\r\n // this.personalConfigPopupService.pullPersonalConfigObserver().subscribe(v2 => {\r\n // componentRef.instance.closePopup();\r\n // this.loadingIconService.closeFullScreenLoadingIcon(ActionName.PersonalStorage);\r\n // });\r\n // });\r\n\r\n });\r\n }\r\n\r\n suggestKeywordNoteLawRule(keyword: string): Observable {\r\n return this.lawRuleService.getSuggestionNoteLawRuleObserver(keyword);\r\n }\r\n suggestKeywordSummaryTag(keyword: string): Observable {\r\n return this.lawRuleService.getSuggestionSummaryTagObserver(keyword);\r\n }\r\n\r\n\r\n\r\n requestImportNewStorageLawRule(): void {\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.CopyNote);\r\n this.lawRuleService.request_storage_note()\r\n .pipe(\r\n concatMap(() => this.lawRuleService.pullPersonalStorageLawRuleFullNoteListObserver(this.filterCondition)),\r\n )\r\n .subscribe({\r\n complete: () => {\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.CopyNote);\r\n }\r\n });\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
個人化設定
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
預備列印
\r\n
\r\n
\r\n
預備匯出
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n 案件存量\r\n 存量無限\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 目前:{{judgmentService.saveStatus.lawRule_note_save_current}} / 無限\r\n
\r\n
\r\n 目前:{{judgmentService.saveStatus.lawRule_note_save_current}} /\r\n 上限:{{judgmentService.saveStatus.getLawRuleNoteSaveMaxString()}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n 所有摘要\r\n 摘要無限\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 目前:{{judgmentService.saveStatus.total_summary_save_current}} / 無限
\r\n
\r\n 目前:{{judgmentService.saveStatus.total_summary_save_current}} /\r\n 上限:{{judgmentService.saveStatus.getTotalSummarySaveMaxString()}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
尚未收存任何法規
\r\n \r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { ChildContentPersonalStorageCommonModule } from '../child-content-personal-storage-common.module';\r\n\r\nimport { LawRuleComponent } from './law-rule.component';\r\n// import { Header1Component } from './header1/header1.component';\r\n// import { Header2Component } from './header2/header2.component';\r\nimport { ListComponent } from './list/list.component';\r\nimport { ListFullComponent } from './list-full/list-full.component';\r\nimport { ListSimpleComponent } from './list-simple/list-simple.component';\r\nimport { PipeHighlightModule } from 'projects/lwlib/src/pipe-highlight/pipe-highlight.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ChildContentPersonalStorageCommonModule,\r\n PipeHighlightModule,\r\n ],\r\n declarations: [\r\n LawRuleComponent,\r\n // Header1Component,\r\n // Header2Component,\r\n ListComponent,\r\n ListFullComponent,\r\n ListSimpleComponent,\r\n ],\r\n exports: [\r\n LawRuleComponent\r\n ]\r\n})\r\nexport class LawRuleModule { }\r\n","import { Component, OnInit, Input, OnDestroy, Output, EventEmitter, HostListener } from '@angular/core';\r\nimport { LawRuleCase } from '../law-rule-case';\r\nimport { LawRuleService } from '../law-rule.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { AppCommonService } from 'projects/desktop/src/app/app-common.service';\r\nimport { SearcherKeywordKind } from 'projects/lwlib/src/keyword-searcher/searcher-keyword-kind';\r\nimport { SummaryTypeItem } from '../../judgment/summary-type-item';\r\nimport { NoteSummaryListType } from '../../judgment/note-summary-list-type';\r\nimport { BookmarkType } from '../../judgment/bookmark-type';\r\nimport { SummaryTypeId } from '../../judgment/summary-type-id.enum';\r\nimport { CommentPopupOpenerService } from 'projects/lwlib/src/comment-popup/comment-popup-opener.service';\r\nimport { CommentService } from '../../../comment.service';\r\nimport { DeleteConfirmPopupOpenerService } from 'projects/lwlib/src/delete-confirm-popup/delete-confirm-popup-opener.service';\r\nimport { DeleteConfirmPopupType } from 'projects/lwlib/src/delete-confirm-popup/delete-confirm-popup-type';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { ComposeType } from 'projects/lwlib/src/compose-search-popup/compose-type';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MemberService } from 'projects/lwlib/src/member/member.service';\r\nimport { MaterialHelper } from 'projects/lwlib/src/material-helper';\r\nimport { PrintPermissionPopupComponent } from 'projects/lwlib/src/print-permission-popup/print-permission-popup.component';\r\nimport { PrintConfigLawRulePopupComponent } from 'projects/lwlib/src/print-config-law-rule-popup/print-config-law-rule-popup.component';\r\nimport { PrintPermissionLawRulePopupComponent } from 'projects/lwlib/src/print-permission-law-rule-popup/print-permission-law-rule-popup.component';\r\nimport { FilterCondition } from '../../filter-condition';\r\n\r\n@Component({\r\n selector: 'app-list-full',\r\n templateUrl: './list-full.component.html',\r\n styleUrls: ['./list-full.component.scss']\r\n})\r\nexport class ListFullComponent implements OnInit, OnDestroy {\r\n @Input() importFilterCondition: FilterCondition;\r\n @Output() noteUpdate: EventEmitter = new EventEmitter();\r\n\r\n searcherKeywordKind: any = SearcherKeywordKind;\r\n noteList: LawRuleCase[];\r\n\r\n selectedNote: LawRuleCase;\r\n selectedRowElement: Element;\r\n selectedRowBy: string;\r\n\r\n subscriptions: Subscription;\r\n\r\n hasShiftDown: boolean = false;\r\n\r\n // 顯示列印彈窗\r\n showPrintPopupNote: any;\r\n // 刪除筆記彈窗\r\n showDeleteNotePopupNote: any;\r\n // 備註\r\n showEditCommentPopupNote: any;\r\n\r\n constructor(\r\n private lawRuleService: LawRuleService,\r\n public appCommonService: AppCommonService,\r\n private commentPopupService: CommentService,\r\n private commentPopupOpenerService: CommentPopupOpenerService,\r\n private deleteConfirmPopupOpenerService: DeleteConfirmPopupOpenerService,\r\n public service: AppService,\r\n private matDialog: MatDialog,\r\n private memberService: MemberService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (this.lawRuleService.noteList) {\r\n this.noteList = this.lawRuleService.noteList.list;\r\n }\r\n this.subscriptions = this.lawRuleService.noteList$.subscribe(r => {\r\n this.noteList = r.list;\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n\r\n checkShowNoteBorder(note: any): boolean {\r\n let show = false;\r\n\r\n if (this.showPrintPopupNote == note) { show = true; }\r\n if (this.showDeleteNotePopupNote == note) { show = true; }\r\n if (this.showEditCommentPopupNote == note) { show = true; }\r\n\r\n return show;\r\n }\r\n\r\n\r\n openNote(note: LawRuleCase): void {\r\n const query = ['load_save=1'];\r\n const keywords = this.lawRuleService.filterCondition.searchKeywords\r\n .filter(k => k.keyword && k.compose !== ComposeType.Not);\r\n const hasSpecKeywords = keywords.filter(k => k.kind === SearcherKeywordKind.PointSummary\r\n || k.kind === SearcherKeywordKind.SummaryTag\r\n || k.kind === SearcherKeywordKind.Bookmark);\r\n if (hasSpecKeywords.length > 0) {\r\n query.push('keywords=' + hasSpecKeywords[0].keyword);\r\n if (hasSpecKeywords[0].kind === SearcherKeywordKind.PointSummary\r\n || hasSpecKeywords[0].kind === SearcherKeywordKind.SummaryTag) {\r\n query.push('searchtype=summary');\r\n }\r\n }\r\n // if (this.service.isDesktop()) {\r\n // query.push('force_desktop=1');\r\n // }\r\n const url: string = this.service.BaseUrlWeb + '/note/law_rule/' + note.law_rule_id\r\n + '?' + query.join('&');\r\n\r\n // if (this.lawRuleService.filterCondition) {\r\n // const summaryKeywords = this.lawRuleService.filterCondition.searchKeywords\r\n // .filter(v => v.compose !== ComposeType.Not && v.kind === SearcherKeywordKind.PointSummary);\r\n // if (summaryKeywords.length > 0) {\r\n // url += '&searchtype=summary&keywords=' + summaryKeywords.map(v => encodeURI(v.keyword)).join(',');\r\n // }\r\n // }\r\n\r\n // if (this.hasShiftDown) {\r\n // url = this.service.baseUrlWeb + '/note/law_rule/' + note.law_rule_id + '?load_save=1';\r\n // }\r\n window.open(url);\r\n }\r\n\r\n // @HostListener('document:keydown', ['$event']) keydown(ev: KeyboardEvent): void {\r\n // if (ev.key === 'Shift') {\r\n // // this.hasShiftDown = !this.hasShiftDown;\r\n // this.hasShiftDown = true;\r\n // console.log(this.hasShiftDown);\r\n // }\r\n // }\r\n // @HostListener('document:keyup', ['$event']) keyup(ev: KeyboardEvent): void {\r\n // if (ev.key === 'Shift') {\r\n // // this.hasShiftDown = !this.hasShiftDown;\r\n // this.hasShiftDown = false;\r\n // }\r\n // }\r\n\r\n convertStatusName(status: string): string {\r\n return this.lawRuleService.statusIdNameDict[status];\r\n }\r\n convertTimeText(tick: number): string {\r\n return this.appCommonService.convertTimeTickToPastTimeText1(tick);\r\n }\r\n\r\n convertSummaryItemToClass(item: SummaryTypeItem): string {\r\n // debugger;\r\n if (item.list_type === NoteSummaryListType.Bookmark) {\r\n return this.appCommonService.convertText_CamelCaseToLowerDash(BookmarkType[item.list_type].toString());\r\n } else {\r\n return this.appCommonService.convertText_CamelCaseToLowerDash(SummaryTypeId[item.item_type].toString());\r\n }\r\n }\r\n\r\n selectRow(element: Element, selectedBy: string): void {\r\n this.selectedRowElement = element;\r\n this.selectedRowBy = selectedBy;\r\n }\r\n clearSelectedRow(): void {\r\n this.selectedRowElement = null;\r\n this.selectedRowBy = '';\r\n }\r\n\r\n\r\n\r\n switchLawRuleFastBagCollect(note: LawRuleCase, collect: boolean): void {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n console.log(note, collect);\r\n if (collect && this.lawRuleService.fastBag.count >= 30) {\r\n alert('收藏總數已滿!');\r\n setTimeout(() => {\r\n note.fast_bag = false;\r\n }, 100);\r\n return;\r\n }\r\n\r\n this.lawRuleService.fastBagLawRuleCollectObserver(note.law_rule_id, collect).subscribe(() => {\r\n this.lawRuleService.pullFastBagObserver().subscribe();\r\n });\r\n }\r\n\r\n openCommentPopup(fromElement: Element, note: LawRuleCase): void {\r\n // this.selectRow(fromElement, 'commentPopup');\r\n this.showEditCommentPopupNote = note;\r\n const componentRef = this.commentPopupOpenerService.openPopup('隨意備註', note.comment);\r\n\r\n componentRef.instance.submit.subscribe(r => {\r\n // console.log('edit comment:' + r);\r\n note.comment = r;\r\n this.commentPopupService.updateNoteCommentLawRuleObserver(note.law_rule_id, r)\r\n .subscribe({\r\n complete: () => {\r\n setTimeout(() => {\r\n componentRef.instance.closePopup();\r\n }, 100);\r\n }\r\n });\r\n\r\n });\r\n\r\n componentRef.onDestroy(() => {\r\n // this.clearSelectedRow();\r\n this.showEditCommentPopupNote = null;\r\n });\r\n }\r\n\r\n openDeleteConfirmPopup(fromElement: Element, note: LawRuleCase): void {\r\n // this.selectRow(fromElement, 'deleteConfirmPopup');\r\n this.showDeleteNotePopupNote = note;\r\n const componentRef = this.deleteConfirmPopupOpenerService.openPopup(DeleteConfirmPopupType.Note);\r\n\r\n componentRef.instance.confirm.subscribe(() => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n this.lawRuleService.deleteNoteObserver(note.law_rule_note_id, note.law_rule_id).subscribe(() => {\r\n // 更新快捷包清單\r\n this.lawRuleService.pullFastBagObserver().subscribe();\r\n\r\n // 更新清單\r\n this.noteUpdate.emit();\r\n // this.lawRuleService.pullPersonalStorageLawRuleFullNoteListObserver(this.importFilterCondition).subscribe();\r\n });\r\n\r\n componentRef.instance.closePopup();\r\n });\r\n\r\n componentRef.onDestroy(() => {\r\n // this.clearSelectedRow();\r\n this.showDeleteNotePopupNote = null;\r\n });\r\n }\r\n\r\n\r\n openPrintPopup(note: any): void {\r\n if (this.memberService.permissions['law_rule_print'] === '1') {\r\n // if (this.memberService.permissions['judgment_print'] === '1') {\r\n this.openPrintConfigPopup(note);\r\n } else {\r\n this.openPrintPermissionPopup();\r\n }\r\n }\r\n openPrintConfigPopup(note: any): void {\r\n this.showPrintPopupNote = note;\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PrintConfigLawRulePopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n dlRef.afterClosed().subscribe(() => { this.showPrintPopupNote = null; });\r\n dlRef.componentInstance.note_id = note.law_rule_note_id;\r\n dlRef.componentInstance.url = () => {\r\n const optionArray = [\r\n dlRef.componentInstance.printConfig.lawrulestartnumber.padStart(4, '0')\r\n + dlRef.componentInstance.printConfig.lawrulestartsubnum.padStart(4, '0')\r\n + dlRef.componentInstance.printConfig.lawrulestopnumber.padStart(4, '0')\r\n + dlRef.componentInstance.printConfig.lawrulestopsubnum.padStart(4, '0'),\r\n dlRef.componentInstance.printConfig.font ? '1' : '0',\r\n dlRef.componentInstance.printConfig.summary ? '1' : '0',\r\n ];\r\n const optionText: string = optionArray.join(',');\r\n const url = 'print/law_rule/' + note.law_rule_note_id + '?option=' + optionText;\r\n return url;\r\n };\r\n }\r\n openPrintPermissionPopup(): void {\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PrintPermissionLawRulePopupComponent,\r\n {\r\n panelClass: ['no-padding', 'transparent-background'],\r\n autoFocus: false,\r\n }\r\n ));\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
加入最愛
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
匯出
\r\n
智慧列印
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
刪除
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
序號
\r\n
\r\n
{{note.sn}}
\r\n
\r\n
\r\n
\r\n
法規名稱
\r\n
\r\n
\r\n \r\n 廢止\r\n 停用\r\n
\r\n
\r\n
\r\n
\r\n
開啟筆記
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
條文總數
\r\n
{{note.law_article_count.toLocaleString()}}
\r\n
\r\n
\r\n
修法日期
\r\n
\r\n \r\n {{ (convertStatusName(note.modify_status) || '修正') +'日 '+ note.modify_date[0] +'/'+ appCommonService.padNumber(note.modify_date[1]) +'/'+appCommonService.padNumber(note.modify_date[2])\r\n }}\r\n \r\n
\r\n 1\">\r\n {{ (convertStatusName(note.public_status) || '公佈') +'日 '+ note.public_date[0] +'/'+ appCommonService.padNumber(note.public_date[1]) +'/'+appCommonService.padNumber(note.public_date[2])\r\n }}\r\n \r\n
\r\n
\r\n
\r\n
保存日期
\r\n
{{convertTimeText(note.edit_date)}}
\r\n
\r\n
\r\n
\r\n
隨意備註
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{summaryTypeItem.count}}
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, Input, OnDestroy, Output, EventEmitter } from '@angular/core';\r\nimport { SearcherKeywordKind } from 'projects/lwlib/src/keyword-searcher/searcher-keyword-kind';\r\nimport { LawRuleCase } from '../law-rule-case';\r\nimport { Subscription } from 'rxjs';\r\nimport { LawRuleService } from '../law-rule.service';\r\nimport { AppCommonService } from 'projects/desktop/src/app/app-common.service';\r\nimport { CommentService } from '../../../comment.service';\r\nimport { CommentPopupOpenerService } from 'projects/lwlib/src/comment-popup/comment-popup-opener.service';\r\nimport { DeleteConfirmPopupOpenerService } from 'projects/lwlib/src/delete-confirm-popup/delete-confirm-popup-opener.service';\r\nimport { SummaryTypeItem } from '../../judgment/summary-type-item';\r\nimport { NoteSummaryListType } from '../../judgment/note-summary-list-type';\r\nimport { BookmarkType } from '../../judgment/bookmark-type';\r\nimport { SummaryTypeId } from '../../judgment/summary-type-id.enum';\r\nimport { DeleteConfirmPopupType } from 'projects/lwlib/src/delete-confirm-popup/delete-confirm-popup-type';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { ComposeType } from 'projects/lwlib/src/compose-search-popup/compose-type';\r\nimport { PrintConfigLawRulePopupComponent } from 'projects/lwlib/src/print-config-law-rule-popup/print-config-law-rule-popup.component';\r\nimport { PrintPermissionPopupComponent } from 'projects/lwlib/src/print-permission-popup/print-permission-popup.component';\r\nimport { MaterialHelper } from 'projects/lwlib/src/material-helper';\r\nimport { MemberService } from 'projects/lwlib/src/member/member.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { PrintPermissionLawRulePopupComponent } from 'projects/lwlib/src/print-permission-law-rule-popup/print-permission-law-rule-popup.component';\r\nimport { FilterCondition } from '../../filter-condition';\r\n\r\n@Component({\r\n selector: 'app-list-simple',\r\n templateUrl: './list-simple.component.html',\r\n styleUrls: ['./list-simple.component.scss']\r\n})\r\nexport class ListSimpleComponent implements OnInit, OnDestroy {\r\n @Input() importFilterCondition: FilterCondition;\r\n @Output() noteUpdate: EventEmitter = new EventEmitter();\r\n\r\n searcherKeywordKind: any = SearcherKeywordKind;\r\n noteList: LawRuleCase[];\r\n\r\n selectedRowElement: Element;\r\n selectedRowBy: string;\r\n\r\n subscriptions: Subscription;\r\n\r\n // 顯示列印彈窗\r\n showPrintPopupNote: any;\r\n // 刪除筆記彈窗\r\n showDeleteNotePopupNote: any;\r\n // 備註\r\n showEditCommentPopupNote: any;\r\n\r\n constructor(\r\n private lawRuleService: LawRuleService,\r\n public appCommonService: AppCommonService,\r\n private commentPopupService: CommentService,\r\n private commentPopupOpenerService: CommentPopupOpenerService,\r\n private deleteConfirmPopupOpenerService: DeleteConfirmPopupOpenerService,\r\n public service: AppService,\r\n private matDialog: MatDialog,\r\n private memberService: MemberService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (this.lawRuleService.noteList) {\r\n this.noteList = this.lawRuleService.noteList.list;\r\n }\r\n this.subscriptions = this.lawRuleService.noteList$.subscribe(r => {\r\n this.noteList = r.list;\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n checkShowNoteBorder(note: any): boolean {\r\n let show = false;\r\n\r\n if (this.showPrintPopupNote == note) { show = true; }\r\n if (this.showDeleteNotePopupNote == note) { show = true; }\r\n if (this.showEditCommentPopupNote == note) { show = true; }\r\n\r\n return show;\r\n }\r\n\r\n openNote(note: LawRuleCase): void {\r\n const query = ['load_save=1'];\r\n const keywords = this.lawRuleService.filterCondition.searchKeywords\r\n .filter(k => k.keyword && k.compose !== ComposeType.Not);\r\n const hasSpecKeywords = keywords.filter(k => k.kind === SearcherKeywordKind.PointSummary\r\n || k.kind === SearcherKeywordKind.SummaryTag\r\n || k.kind === SearcherKeywordKind.Bookmark);\r\n if (hasSpecKeywords.length > 0) {\r\n query.push('keywords=' + hasSpecKeywords[0].keyword);\r\n if (hasSpecKeywords[0].kind === SearcherKeywordKind.PointSummary\r\n || hasSpecKeywords[0].kind === SearcherKeywordKind.SummaryTag) {\r\n query.push('searchtype=summary');\r\n }\r\n }\r\n // if (this.service.isDesktop()) {\r\n // query.push('force_desktop=1');\r\n // }\r\n const url: string = this.service.BaseUrlWeb + '/note/law_rule/' + note.law_rule_id\r\n + '?' + query.join('&');\r\n // let url: string = this.service.baseUrlWeb + '/note/law_rule/' + note.law_rule_id + '?load_save=1';\r\n\r\n // if (this.lawRuleService.filterCondition) {\r\n // const summaryKeywords = this.lawRuleService.filterCondition.searchKeywords\r\n // .filter(v => v.compose !== ComposeType.Not && v.kind === SearcherKeywordKind.PointSummary);\r\n // if (summaryKeywords.length > 0) {\r\n // url += '&searchtype=summary&keywords=' + summaryKeywords.map(v => encodeURI(v.keyword)).join(',');\r\n // }\r\n // }\r\n\r\n window.open(url);\r\n }\r\n\r\n convertStatusName(status: string): string {\r\n return this.lawRuleService.statusIdNameDict[status];\r\n }\r\n\r\n convertTimeText(tick: number): string {\r\n return this.appCommonService.convertTimeTickToPastTimeText1(tick);\r\n }\r\n\r\n convertSummaryItemToClass(item: SummaryTypeItem): string {\r\n // debugger;\r\n if (item.list_type === NoteSummaryListType.Bookmark) {\r\n return this.appCommonService.convertText_CamelCaseToLowerDash(BookmarkType[item.list_type].toString());\r\n } else {\r\n return this.appCommonService.convertText_CamelCaseToLowerDash(SummaryTypeId[item.item_type].toString());\r\n }\r\n }\r\n\r\n\r\n\r\n selectRow(element: Element, selectedBy: string): void {\r\n this.selectedRowElement = element;\r\n this.selectedRowBy = selectedBy;\r\n }\r\n clearSelectedRow(): void {\r\n this.selectedRowElement = null;\r\n this.selectedRowBy = '';\r\n }\r\n\r\n\r\n\r\n switchLawRuleFastBagCollect(note: LawRuleCase, collect: boolean): void {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n console.log(note, collect);\r\n if (collect && this.lawRuleService.fastBag.count >= 30) {\r\n alert('收藏總數已滿!');\r\n setTimeout(() => {\r\n note.fast_bag = false;\r\n }, 100);\r\n return;\r\n }\r\n\r\n this.lawRuleService.fastBagLawRuleCollectObserver(note.law_rule_id, collect).subscribe(() => {\r\n this.lawRuleService.pullFastBagObserver().subscribe();\r\n });\r\n }\r\n\r\n openCommentPopup(fromElement: Element, note: LawRuleCase): void {\r\n // this.selectRow(fromElement, 'commentPopup');\r\n this.showEditCommentPopupNote = note;\r\n const componentRef = this.commentPopupOpenerService.openPopup('隨意備註', note.comment);\r\n\r\n componentRef.instance.submit.subscribe(r => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n \r\n // console.log('edit comment:' + r);\r\n note.comment = r;\r\n this.commentPopupService.updateNoteCommentLawRuleObserver(note.law_rule_id, r)\r\n .subscribe({\r\n complete: () => {\r\n setTimeout(() => {\r\n componentRef.instance.closePopup();\r\n }, 100);\r\n }\r\n });\r\n });\r\n\r\n componentRef.onDestroy(() => {\r\n // this.clearSelectedRow();\r\n this.showEditCommentPopupNote = null;\r\n });\r\n }\r\n\r\n openDeleteConfirmPopup(fromElement: Element, note: LawRuleCase): void {\r\n // this.selectRow(fromElement, 'deleteConfirmPopup');\r\n this.showDeleteNotePopupNote = note;\r\n const componentRef = this.deleteConfirmPopupOpenerService.openPopup(DeleteConfirmPopupType.Note);\r\n\r\n componentRef.instance.confirm.subscribe(() => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n this.lawRuleService.deleteNoteObserver(note.law_rule_note_id, note.law_rule_id).subscribe(() => {\r\n // 更新快捷包清單\r\n this.lawRuleService.pullFastBagObserver().subscribe();\r\n\r\n // 更新清單\r\n this.noteUpdate.emit();\r\n // this.lawRuleService.pullPersonalStorageLawRuleFullNoteListObserver(this.importFilterCondition).subscribe();\r\n });\r\n\r\n componentRef.instance.closePopup();\r\n });\r\n\r\n componentRef.onDestroy(() => {\r\n // this.clearSelectedRow();\r\n this.showDeleteNotePopupNote = null;\r\n });\r\n }\r\n openPrintPopup(note: any): void {\r\n if (this.memberService.permissions['law_rule_print'] === '1') {\r\n // if (this.memberService.permissions['judgment_print'] === '1') {\r\n this.openPrintConfigPopup(note);\r\n } else {\r\n this.openPrintPermissionPopup();\r\n }\r\n }\r\n openPrintConfigPopup(note: any): void {\r\n this.showPrintPopupNote = note;\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PrintConfigLawRulePopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n dlRef.afterClosed().subscribe(() => { this.showPrintPopupNote = null; });\r\n dlRef.componentInstance.note_id = note.law_rule_note_id;\r\n dlRef.componentInstance.url = () => {\r\n const optionArray = [\r\n dlRef.componentInstance.printConfig.lawrulestartnumber.padStart(4, '0')\r\n + dlRef.componentInstance.printConfig.lawrulestartsubnum.padStart(4, '0')\r\n + dlRef.componentInstance.printConfig.lawrulestopnumber.padStart(4, '0')\r\n + dlRef.componentInstance.printConfig.lawrulestopsubnum.padStart(4, '0'),\r\n dlRef.componentInstance.printConfig.font ? '1' : '0',\r\n dlRef.componentInstance.printConfig.summary ? '1' : '0',\r\n ];\r\n const optionText: string = optionArray.join(',');\r\n const url = 'print/law_rule/' + note.law_rule_note_id + '?option=' + optionText;\r\n return url;\r\n };\r\n }\r\n openPrintPermissionPopup(): void {\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PrintPermissionLawRulePopupComponent,\r\n {\r\n panelClass: ['no-padding', 'transparent-background'],\r\n autoFocus: false,\r\n }\r\n ));\r\n }\r\n}\r\n","
\r\n
\r\n
序號
\r\n
法規名稱
\r\n
條文總數
\r\n
修法日期
\r\n
保存日期
\r\n \r\n
指令動作
\r\n
\r\n
\r\n
\r\n
{{note.sn}}
\r\n
\r\n
\r\n \r\n 廢止\r\n 停用\r\n
\r\n
\r\n
\r\n
\r\n
開啟筆記
\r\n
\r\n
\r\n
\r\n
{{note.law_article_count.toLocaleString()}}
\r\n
\r\n \r\n {{ (convertStatusName(note.modify_status) || '修正') +'日 '+ note.modify_date[0] +'/'+\r\n appCommonService.padNumber(note.modify_date[1])\r\n +'/'+appCommonService.padNumber(note.modify_date[2])\r\n }}\r\n \r\n
\r\n 1\">\r\n {{ (convertStatusName(note.public_status) || '公佈') +'日 '+ note.public_date[0] +'/'+\r\n appCommonService.padNumber(note.public_date[1])\r\n +'/'+appCommonService.padNumber(note.public_date[2])\r\n }}\r\n \r\n
\r\n
{{convertTimeText(note.edit_date)}}
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
隨意備註
\r\n
\r\n
\r\n
\r\n
刪除
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
列印
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
加入最愛
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-list',\r\n templateUrl: './list.component.html',\r\n styleUrls: ['./list.component.scss']\r\n})\r\nexport class ListComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
加入常用法規
\r\n
\r\n
\r\n
\r\n
\r\n
刪除
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
序號
\r\n
01
\r\n
\r\n
\r\n
法規名稱
\r\n
\r\n
\r\n
中華民國刑法
\r\n
\r\n
\r\n
\r\n
條文總數
\r\n
406
\r\n
\r\n
\r\n
修法日期
\r\n
\r\n 修正日 105/05/27\r\n
\r\n 公佈日 105/06/22\r\n
\r\n
\r\n
\r\n
修改日期
\r\n
107年02月28日
\r\n
\r\n
\r\n
\r\n
隨意備註
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { CaseType } from 'projects/lwlib/src/personal-config-popup/personal-config-popup.service';\r\nimport { SearcherKeyword } from 'projects/lwlib/src/keyword-searcher/searcher-keyword';\r\nimport { SearcherKeywordKind } from 'projects/lwlib/src/keyword-searcher/searcher-keyword-kind';\r\nimport { FilterCondition } from './filter-condition';\r\n\r\n\r\nexport class StorageTab {\r\n // name: string;\r\n type: CaseType;\r\n enableSearchResultCount: boolean;\r\n isSearching: boolean;\r\n searchResultCount: number;\r\n hasSearchResult: boolean;\r\n // searchKeywords: SearcherKeyword[] = [];\r\n kindList: SearcherKeywordKind[] = [];\r\n\r\n static create(type: CaseType): StorageTab {\r\n const st = new StorageTab();\r\n\r\n // st.name = name;\r\n st.type = type;\r\n\r\n return st;\r\n }\r\n\r\n resetData(): void {\r\n this.enableSearchResultCount = null;\r\n this.isSearching = null;\r\n this.searchResultCount = null;\r\n this.hasSearchResult = null;\r\n // this.searchKeywords = FilterCondition.emptySearchKeywords();\r\n }\r\n\r\n}\r\n","import { Component, OnInit, HostListener, ViewChild, ElementRef } from '@angular/core';\r\nimport { RootTeamService } from '../../root-team/root-team.service';\r\nimport { concatAll, concatMap, map, tap } from 'rxjs/operators';\r\nimport { TeamInfo } from 'projects/lwlib/src/team/team-info';\r\nimport { LoadingIconService } from 'projects/lwlib/src/loading-icon/loading-icon.service';\r\nimport { ActionName } from 'projects/lwlib/src/action-name';\r\nimport { InitService } from 'projects/lwlib/src/init/init.service';\r\nimport { MaterialHelper } from 'projects/lwlib/src/material-helper';\r\nimport { ContactSupportPopupComponent } from 'projects/lwlib/src/contact-support-popup/contact-support-popup.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { from } from 'rxjs';\r\nimport { CommentPopupOpenerService } from 'projects/lwlib/src/comment-popup/comment-popup-opener.service';\r\nimport { AppService } from '../../../app.service';\r\n\r\n@Component({\r\n selector: 'app-child-content-team-info-openpage',\r\n templateUrl: './child-content-team-info-openpage.component.html',\r\n styleUrls: ['./child-content-team-info-openpage.component.scss']\r\n})\r\nexport class ChildContentTeamInfoOpenpageComponent implements OnInit {\r\n\r\n showMyTeamMenu: boolean = false;\r\n @ViewChild('chooseButtonElement') chooseButtonElement: ElementRef;\r\n\r\n // _myTeamList: TeamInfo[][] = [];\r\n // myTeamList: TeamInfo[][] = [];\r\n isEnableLastBuildTeamRow: boolean = false;\r\n myTeamList: TeamInfo[] = [];\r\n\r\n\r\n constructor(\r\n private teamService: RootTeamService,\r\n private initService: InitService,\r\n private loadingIconService: LoadingIconService,\r\n private matDialog: MatDialog,\r\n private commentPopupOpenerService: CommentPopupOpenerService,\r\n private service: AppService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.MyTeam);\r\n\r\n const getMyTeamListObserver = this.teamService.pullJoinTeamListObserver()\r\n .pipe(\r\n tap(list => {\r\n this.myTeamList = list;\r\n console.log(this.myTeamList);\r\n })\r\n );\r\n\r\n const subsc = from([\r\n // of(1).pipe(delay(1000)),\r\n getMyTeamListObserver,\r\n // of(2).pipe(delay(1000)),\r\n // this.teamService.searchTeamByName('9'),\r\n // of(3).pipe(delay(1000)),\r\n ])\r\n .pipe(concatAll())\r\n .subscribe(() => {\r\n this.initService.trigger(ActionName.MyTeam);\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.MyTeam);\r\n subsc.unsubscribe();\r\n });\r\n }\r\n\r\n openTeam(teamInfo: TeamInfo, page: string): void {\r\n // window.open(`/team/${teamInfo.team_id}/${page}?force_desktop=1`);\r\n window.open(`/team/${teamInfo.team_id}/${page}`);\r\n }\r\n openBuildTeam(): void {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n window.open('/team/build');\r\n }\r\n openLine(): void {\r\n window.open('https://line.me/R/ti/p/%40rxm3631s');\r\n }\r\n toggleShowMenu(): void {\r\n this.showMyTeamMenu = !this.showMyTeamMenu;\r\n }\r\n toggleTeamList(): void {\r\n // if (this.myTeamList.length > 0) {\r\n // this.myTeamList = [];\r\n // } else {\r\n // this.myTeamList = this._myTeamList;\r\n // }\r\n }\r\n openIntro(): void {\r\n window.open('https://www.legalworks.info/');\r\n }\r\n openContactSupportPopup(): void {\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n ContactSupportPopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: true,\r\n }\r\n ));\r\n dlRef.componentInstance.text = '聯絡官方LINE,請系統秘書為您擴充團隊容量';\r\n }\r\n\r\n openEditCommentPopup(teamInfo: TeamInfo): void {\r\n const sourceComment = teamInfo.team_comment;\r\n const compRef = this.commentPopupOpenerService.openPopup('備註訊息', sourceComment);\r\n const subsc = compRef.instance.submit.subscribe((comment: string) => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n compRef.instance.closePopup();\r\n subsc.unsubscribe();\r\n return;\r\n }\r\n\r\n this.teamService\r\n .setTeamCommentObserver(teamInfo.team_id, comment)\r\n .subscribe(() => {\r\n teamInfo.team_comment = comment;\r\n compRef.instance.closePopup();\r\n subsc.unsubscribe();\r\n });\r\n\r\n\r\n });\r\n\r\n // const subsc = compRef.instance.submit\r\n // .pipe(\r\n // concatMap((comment: string) =>\r\n // this.teamService.setTeamCommentObserver(teamInfo.team_id, comment)\r\n // .pipe(map(() => comment)))\r\n // )\r\n // .subscribe((comment: string) => {\r\n // teamInfo.team_comment = comment;\r\n // compRef.instance.closePopup();\r\n // subsc.unsubscribe();\r\n // });\r\n }\r\n\r\n\r\n checkCursorClickTarget(ev: any, element: Element): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a === element;\r\n });\r\n }\r\n @HostListener('document:click', ['$event']) emptyClick($event): void {\r\n if (this.showMyTeamMenu && !this.checkCursorClickTarget($event, this.chooseButtonElement.nativeElement)) {\r\n this.showMyTeamMenu = false;\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
聯繫客服開通
\r\n
\r\n
\r\n
\r\n
創建您的團隊
\r\n
\r\n
\r\n
\r\n
0\">\r\n
\r\n \r\n
我的團隊 共 {{myTeamList.length}}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{team.team_name}}
\r\n
\r\n
\r\n
\r\n
{{team.founder_name}}(召集人)
\r\n
\r\n
\r\n
\r\n
{{team.team_member_count}} / {{team.team_capacity_member}} 人
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
數據資訊
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{(team.team_note_point||0).toLocaleString()}}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{team.note_count_judicial_interpret}}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{team.note_count_judgment}}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
進入團隊
\r\n
\r\n
\r\n
\r\n
\r\n
備註訊息
\r\n
\r\n
{{team.team_comment}}
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
尚未加入團隊
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ChildContentTeamInfoOpenpageComponent } from './child-content-team-info-openpage.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [ChildContentTeamInfoOpenpageComponent],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [ChildContentTeamInfoOpenpageComponent]\r\n})\r\nexport class ChildContentTeamInfoOpenpageModule { }\r\n","import { Component, OnInit, HostListener, TemplateRef, AfterViewInit, ViewChild } from '@angular/core';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { Router } from '@angular/router';\r\nimport { MemberService } from 'projects/lwlib/src/member/member.service';\r\nimport { RootMainService, ChildContent } from '../root-main.service';\r\nimport { LoadingIconService } from 'projects/lwlib/src/loading-icon/loading-icon.service';\r\nimport { ActionName } from 'projects/lwlib/src/action-name';\r\nimport { LogPageId } from 'projects/lwlib/src/log-page/log-page-id.enum';\r\nimport { Notify } from 'projects/lwlib/src/notify/notify';\r\nimport { NotifyTypeId } from 'projects/lwlib/src/notify/notify-type-id.enum';\r\nimport { NotifyService } from 'projects/lwlib/src/notify/notify.service';\r\nimport { concatMap, tap } from 'rxjs/operators';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { trigger, state, style, transition, animate } from '@angular/animations';\r\nimport { LawRuleFastBagOpenerService } from 'projects/lwlib/src/law-rule-fast-bag-popup/law-rule-fast-bag-opener.service';\r\nimport { MemberPcitureAndNicknameWindow } from './MemberPcitureAndNicknameWindow';\r\nimport { LawRuleService } from '../child-content-storage-personal/law-rule/law-rule.service';\r\nimport { MaterialHelper } from 'projects/lwlib/src/material-helper';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { PopupMyAccountComponent } from 'projects/mobile/src/app/common/popup-my-account/popup-my-account.component';\r\n\r\n@Component({\r\n selector: 'app-header-member',\r\n templateUrl: './header-member.component.html',\r\n styleUrls: ['./header-member.component.scss'],\r\n animations: [\r\n trigger('notifyWindowStatus', [\r\n state('open', style({ bottom: '20px', left: '20px' })),\r\n state('close', style({ bottom: '-100px', left: '20px' })),\r\n transition('* => open', [animate('0.2s')]),\r\n transition('open => *', [animate('0.2s')]),\r\n ])\r\n ]\r\n})\r\nexport class HeaderMemberComponent implements OnInit, AfterViewInit {\r\n // @ViewChildren(TemplateRef, { read: TemplateRef }) notifyTemplates = new QueryList>();\r\n @ViewChild('notifyText', { static: true }) notifyText: TemplateRef;\r\n @ViewChild('notifyReceiveTeamInvite', { static: true }) notifyReceiveTeamInvite: TemplateRef;\r\n @ViewChild('notifySendTeamInvite', { static: true }) notifySendTeamInvite: TemplateRef;\r\n @ViewChild('notifyTeamAnnounce', { static: true }) notifyTeamAnnounce: TemplateRef;\r\n @ViewChild('notifyTeamNewCase', { static: true }) notifyTeamNewCase: TemplateRef;\r\n @ViewChild('notifyTeamCaseNewDiscuss', { static: true }) notifyTeamCaseNewDiscuss: TemplateRef;\r\n @ViewChild('notifyTeamNotePublish', { static: true }) notifyTeamNotePublish: TemplateRef;\r\n\r\n memberPcitureAndNicknameWindow: MemberPcitureAndNicknameWindow = new MemberPcitureAndNicknameWindow();\r\n picture: string;\r\n nickname: string;\r\n reward_point: number = 0;\r\n fastBagPopupOpened: boolean = false;\r\n\r\n\r\n enableNotify: boolean = true;\r\n showNotifyWindow: boolean = false;\r\n hasUnread: boolean = false;\r\n get unReadCount(): number { return this.notifyService.list.filter(v => !v.is_read).length; }\r\n get listNotify(): Notify[] { return this.notifyService.list; }\r\n newMessageCount: number = 0;\r\n get newMessageCountString(): string {\r\n return this.newMessageCount <= 0 ? ''\r\n : this.newMessageCount <= 99 ? this.newMessageCount.toString()\r\n : '99+';\r\n }\r\n windowShowRunning: boolean = false;\r\n isWindowAnimating: boolean = false;\r\n windowShow: boolean = false;\r\n windowOpenAnimationDone$: Subject = new Subject();\r\n windowCloseAnimationDone$: Subject = new Subject();\r\n runAgainTrigger$: Subject = new Subject();\r\n triggerCloseNotifyPopup$: Subject = new Subject();\r\n currentNotify: Notify;\r\n waitShowNotifyList: Notify[] = [];\r\n windowShowKeepTime: number = 5000;\r\n\r\n\r\n hasNotify: boolean = false;\r\n rewardNotify: boolean = false;\r\n waitingRewardNotify: boolean = false;\r\n\r\n\r\n\r\n constructor(\r\n public service: AppService,\r\n private memberService: MemberService,\r\n private lawRuleFastBagOpenerService: LawRuleFastBagOpenerService,\r\n private lawRuleService: LawRuleService,\r\n private router: Router,\r\n private rootMainService: RootMainService,\r\n private loadingIconService: LoadingIconService,\r\n private notifyService: NotifyService,\r\n private matDialog: MatDialog,\r\n ) { }\r\n\r\n ngOnInit() {\r\n // this.openPopupMyAccount();\r\n // this.listNotify.push({ type: NotifyTypeId.Text, data: { text: '123qwe/\\]' } } as Notify);\r\n // this.listNotify.push({ type: NotifyTypeId.ReceiveTeamInvite, data: {} } as Notify);\r\n // this.listNotify.push({ type: NotifyTypeId.SendTeamInvite, data: {} } as Notify);\r\n this.memberService.memberHeader$\r\n .subscribe(member => {\r\n this.picture = member.picture;\r\n this.nickname = member.nickname;\r\n this.reward_point = member.reward_point;\r\n });\r\n\r\n // let newNotifyId = '';\r\n // const receiveNotify$ = this.notifyService.notifySubject\r\n // .pipe(\r\n // tap((notify_id: string) => { newNotifyId = notify_id; }),\r\n // concatMap(() => this.updateNotifyListObserver()),\r\n // tap((list: Notify[]) => {\r\n // const newNotify = list.find(n => n.notify_id === newNotifyId);\r\n // if (newNotify != null) {\r\n // this.waitShowNotifyList.push(newNotify);\r\n // }\r\n // })\r\n // );\r\n\r\n // scheduled([receiveNotify$, this.runAgainTrigger$], asapScheduler)\r\n // .pipe(mergeAll())\r\n // // of(receiveNotify$, this.runAgainTrigger$)\r\n // .pipe(\r\n // switchMap(() => {\r\n // if (this.windowShowRunning) {\r\n // return scheduled([], asapScheduler);\r\n // }\r\n\r\n // if (this.waitShowNotifyList.length > 0) {\r\n // this.currentNotify = this.waitShowNotifyList.splice(0, 1)[0];\r\n // this.waitShowNotifyList = [];\r\n // console.log('set show notify ', this.currentNotify);\r\n\r\n // return of(this.currentNotify);\r\n // }\r\n\r\n // return scheduled([], asapScheduler);\r\n // }),\r\n // // 觸發開啟視窗\r\n // tap(() => { this.windowShowRunning = true; }),\r\n // tap(() => {\r\n // console.log('show window');\r\n // this.windowShow = true;\r\n // }),\r\n // // 等待視窗動畫跳出動畫結束\r\n // // concatMap(() => interval(100)),\r\n // tap(() => { console.log('wait show window anim '); }),\r\n // concatMap(() => this.windowOpenAnimationDone$),\r\n // // 視窗顯示等待\r\n // tap(() => { console.log('wait window stay'); }),\r\n // // delay(this.windowShowKeepTime),\r\n // concatMap(() => race(of(1).pipe(delay(this.windowShowKeepTime)), this.triggerCloseNotifyPopup$)),\r\n // // 觸發關閉視窗\r\n // tap(() => {\r\n // console.log('hide window');\r\n // this.windowShow = false;\r\n // }),\r\n // concatMap(() => this.windowCloseAnimationDone$),\r\n // // concatMap(() => merge(this.windowCloseAnimationDone$, this.triggerCloseNotifyPopup$)),\r\n // tap(() => {\r\n // console.log('reset window');\r\n // this.currentNotify = null;\r\n // this.windowShowRunning = false;\r\n\r\n // if (this.waitShowNotifyList.length > 0) {\r\n // this.runAgainTrigger$.next();\r\n // }\r\n // }),\r\n // )\r\n // .subscribe();\r\n\r\n\r\n // this.updateNotifyListObserver().subscribe();\r\n }\r\n ngAfterViewInit() {\r\n // this.cd.detectChanges();\r\n }\r\n\r\n getNotifyTemplate(notify: Notify): TemplateRef {\r\n if (notify.type === NotifyTypeId.Text) {\r\n return this.notifyText;\r\n } else if (notify.type === NotifyTypeId.ReceiveTeamInvite) {\r\n return this.notifyReceiveTeamInvite;\r\n } else if (notify.type === NotifyTypeId.SendTeamInvite) {\r\n return this.notifySendTeamInvite;\r\n } else if (notify.type === NotifyTypeId.TeamAnnounce) {\r\n return this.notifyTeamAnnounce;\r\n } else if (notify.type === NotifyTypeId.TeamNewCase) {\r\n return this.notifyTeamNewCase;\r\n } else if (notify.type === NotifyTypeId.TeamCaseNewDiscuss) {\r\n return this.notifyTeamCaseNewDiscuss;\r\n } else if (notify.type === NotifyTypeId.TeamNotePublish) {\r\n return this.notifyTeamNotePublish;\r\n }\r\n }\r\n updateNotifyListObserver(): Observable {\r\n return this.notifyService.pullNotifyList()\r\n .pipe(\r\n tap(() => {\r\n this.hasUnread = this.notifyService.list.some(n => !n.is_read);\r\n })\r\n );\r\n }\r\n\r\n\r\n\r\n openPopupMyAccount(): void {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PopupMyAccountComponent,\r\n {\r\n panelClass: ['overflow-view'],\r\n width: '85vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n }\r\n ));\r\n const comp = dlRef.componentInstance;\r\n comp.pcMode = true;\r\n comp.onClose = () => {\r\n dlRef.close();\r\n }\r\n comp.onClickRecommendFriend = () => {\r\n dlRef.close();\r\n this.selectChildContentRecommendFriend();\r\n // this.openRecommendFriendPage();\r\n };\r\n comp.onClickProfile = () => {\r\n dlRef.close();\r\n window.open('/member_profile_mang');\r\n };\r\n comp.onClickBuy = () => {\r\n dlRef.close();\r\n window.open('https://www.legalworks.info/%E4%BB%98%E8%B2%BB%E6%96%B9%E6%A1%88');\r\n };\r\n comp.onClickInfo = () => {\r\n dlRef.close();\r\n // this.openRewardPage();\r\n };\r\n comp.onClickContact = () => {\r\n dlRef.close();\r\n window.open('https://line.me/R/ti/p/%40rxm3631s');\r\n }\r\n comp.onClickLogout = () => {\r\n dlRef.close();\r\n this.logout();\r\n }\r\n }\r\n\r\n\r\n\r\n logout(): void {\r\n console.log('logout');\r\n this.service.log(LogPageId.Logout, '', '');\r\n this.service.logoutPopupBlock = true;\r\n this.service.logout()\r\n .subscribe(() => {\r\n AppService.loginToken = '';\r\n this.service.removeCookie('token');\r\n this.service.removeCookie('token2');\r\n this.router.navigate(['logout']);\r\n });\r\n }\r\n\r\n\r\n openFastBagPopup(): void {\r\n const componentRef = this.lawRuleFastBagOpenerService.openPopup();\r\n const comp = componentRef.instance;\r\n comp.requestImportFavLawRule = () => {\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.CopyNote);\r\n this.lawRuleService.request_import_fav_law_rule()\r\n .pipe(\r\n concatMap(() => this.lawRuleService.pullFastBagObserver())\r\n )\r\n .subscribe({\r\n complete: () => {\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.CopyNote);\r\n }\r\n });\r\n };\r\n }\r\n\r\n selectChildContentRecommendFriend(): void {\r\n this.memberPcitureAndNicknameWindow.clickShowWindow = false;\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.RecommendFriend);\r\n this.rootMainService.selectChildContent(ChildContent.RecommendFriend);\r\n }\r\n selectChildContentMemberProfileManagement(): void {\r\n this.memberPcitureAndNicknameWindow.clickShowWindow = false;\r\n window.open('/member_mang', '');\r\n // this.loadingIconService.openFullScreenLoadingIcon(ActionName.MemberProfile);\r\n // this.rootMainService.selectChildContent(ChildContent.MemberProfileManagement);\r\n }\r\n\r\n toggleWindow(): void {\r\n this.memberPcitureAndNicknameWindow.decideClickShowWindow();\r\n this.hasNotify = false;\r\n if (!this.waitingRewardNotify\r\n && this.rewardNotify) {\r\n this.waitingRewardNotify = true;\r\n setTimeout(() => {\r\n this.rewardNotify = false;\r\n this.waitingRewardNotify = false;\r\n }, 2000);\r\n }\r\n }\r\n\r\n\r\n\r\n toggleNotifyWindow(): void {\r\n this.showNotifyWindow = !this.showNotifyWindow;\r\n }\r\n\r\n checkCursorClickClassName(ev: any, className: string): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a.classList.contains(className);\r\n });\r\n }\r\n @HostListener('document:click', ['$event']) emptyClick($event): void {\r\n this.memberPcitureAndNicknameWindow.checkClickWindowCloseOrNot($event);\r\n\r\n if (this.showNotifyWindow\r\n && !this.checkCursorClickClassName($event, 'notify')) {\r\n this.showNotifyWindow = false;\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n // 通知系統功能\r\n markReadAllNotify(): void {\r\n if (!this.hasUnread) {\r\n return;\r\n }\r\n this.hasUnread = false;\r\n this.notifyService.list.forEach(n => n.is_read = true);\r\n this.notifyService.markAllNotifyRead().subscribe();\r\n }\r\n setNotifyReadClick($ev: MouseEvent, notify: Notify): void {\r\n if (this.checkCursorClickClassName($ev, 'read-button')) {\r\n return;\r\n }\r\n if (notify.is_read) {\r\n return;\r\n }\r\n notify.is_read = true;\r\n this.hasUnread = this.notifyService.list.some(n => !n.is_read);\r\n this.notifyService.setNotifyRead(notify.notify_id, true).subscribe();\r\n }\r\n deleteNotify(notify: Notify): void {\r\n if (confirm('確定刪除此通知')) {\r\n this.notifyService.deleteNotify(notify.notify_id)\r\n .pipe(\r\n concatMap(() => this.updateNotifyListObserver())\r\n )\r\n .subscribe();\r\n }\r\n }\r\n toggleNotifyRead(notify: Notify): void {\r\n const is_read = !notify.is_read;\r\n notify.is_read = is_read;\r\n if (!is_read) {\r\n this.hasUnread = true;\r\n }\r\n this.notifyService.setNotifyRead(notify.notify_id, is_read).subscribe();\r\n }\r\n onWindowAnimationStart(): void {\r\n // 觸發視窗動畫顯示\r\n this.isWindowAnimating = true;\r\n }\r\n onWindowAnimationDone(): void {\r\n this.isWindowAnimating = false;\r\n // this.$windowAnimationDone.next(this.windowShow);\r\n if (this.windowShow) {\r\n this.windowOpenAnimationDone$.next(true);\r\n } else {\r\n this.windowCloseAnimationDone$.next(true);\r\n }\r\n }\r\n closeNotifyPopup(): void {\r\n this.triggerCloseNotifyPopup$.next(true);\r\n }\r\n\r\n // * 通知用功能 *******************************************************\r\n confirmJoinTeam($ev: MouseEvent, notify: Notify): void {\r\n if (this.checkCursorClickClassName($ev, 'ignore-click')) { return; }\r\n\r\n // this.showNotifyWindow = false;\r\n notify.data.is_reply = true;\r\n notify.data.reply_result = 'confirm';\r\n notify.is_read = true;\r\n // this.closeNotifyPopup();\r\n this.notifyService.confirmJoinTeam(notify)\r\n .pipe(\r\n concatMap(() => this.notifyService.setNotifyRead(notify.notify_id, true)),\r\n concatMap(() => this.updateNotifyListObserver())\r\n )\r\n .subscribe();\r\n }\r\n rejectJoinTeam($ev: MouseEvent, notify: Notify): void {\r\n if (this.checkCursorClickClassName($ev, 'ignore-click')) { return; }\r\n\r\n notify.data.is_reply = true;\r\n notify.data.reply_result = 'reject';\r\n notify.is_read = true;\r\n // this.closeNotifyPopup();\r\n this.notifyService.rejectJoinTeam(notify)\r\n .pipe(\r\n concatMap(() => this.notifyService.setNotifyRead(notify.notify_id, true)),\r\n concatMap(() => this.updateNotifyListObserver())\r\n )\r\n .subscribe();\r\n }\r\n openTeam($ev: MouseEvent, notify: Notify): void {\r\n if (this.checkCursorClickClassName($ev, 'ignore-click')) { return; }\r\n\r\n window.open(`/team/${notify.data.team_id}`);\r\n }\r\n openTeamIfAgree($ev: MouseEvent, notify: Notify): void {\r\n if (this.checkCursorClickClassName($ev, 'ignore-click')) { return; }\r\n\r\n if (notify.data.is_reply\r\n && notify.data.reply_result === 'confirm') {\r\n window.open(`/team/${notify.data.team_id}`);\r\n }\r\n }\r\n openTeamNewCase($ev: MouseEvent, notify: Notify): void {\r\n if (this.checkCursorClickClassName($ev, 'ignore-click')) { return; }\r\n\r\n const query = [\r\n `tab=${notify.data.note_type}`,\r\n `search_type=note_title`,\r\n `search_keyword=${encodeURI(notify.data.note_title)}`\r\n ].join('&');\r\n window.open(`/team/${notify.data.team_id}/shared_storage?${query}`);\r\n }\r\n openTeamCaseNewDiscuss($ev: MouseEvent, notify: Notify): void {\r\n if (this.checkCursorClickClassName($ev, 'ignore-click')) { return; }\r\n\r\n // notify.data.note_type;\r\n // notify.data.note_title;\r\n const query = [\r\n `tab=${notify.data.note_type}`,\r\n `search_type=note_title`,\r\n `search_keyword=${encodeURI(notify.data.note_title)}`,\r\n `note_action=open_note_discuss`,\r\n `note_id=${notify.data.note_id}`\r\n ].join('&');\r\n window.open(`/team/${notify.data.team_id}/shared_storage?${query}`);\r\n }\r\n}\r\n\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
最愛法規
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
幫助
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
{{nickname}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{reward_point.toLocaleString()}}
\r\n
\r\n
\r\n
\r\n
\r\n 獎勵點數\r\n
\r\n
\r\n 藉此感恩大家推薦好友、同事或同學們加入 Legal Works\r\n
\r\n
獎勵點數未來有以下用途:
\r\n 抵免付費(詳待公告)。\r\n
\r\n 參加官方特定活動。\r\n
\r\n 取得特殊功能。\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
推薦好友
\r\n
\r\n \r\n
\r\n
資料管理
\r\n
\r\n \r\n
\r\n
聯絡客服
\r\n
\r\n \r\n
\r\n
\r\n
立即登出
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
訪客登出
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LawRuleFastBagPopupModule } from 'projects/lwlib/src/law-rule-fast-bag-popup/law-rule-fast-bag-popup.module';\r\nimport { HeaderMemberComponent } from './header-member.component';\r\nimport { NotifyModule } from 'projects/lwlib/src/notify/notify.module';\r\nimport { PopupMyAccountModule } from 'projects/mobile/src/app/common/popup-my-account/popup-my-account.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n LawRuleFastBagPopupModule,\r\n NotifyModule,\r\n PopupMyAccountModule,\r\n ],\r\n declarations: [\r\n HeaderMemberComponent\r\n ],\r\n exports: [\r\n HeaderMemberComponent\r\n ]\r\n})\r\nexport class HeaderMemberModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { RootMainComponent } from './root-main.component';\r\nimport { AuthGuard } from 'projects/desktop/src/app/app.service';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '', component: RootMainComponent\r\n // , canActivate: [AuthGuard]\r\n // , children: [\r\n // { path: 'personal_storage', loadChildren: () => import('./child-content-storage-personal/child-content-personal-storage.module').then(m => m.ChildContentPersonalStorageModule) },\r\n // // { path: 'judgment_search', loadChildren: () => import('./child-content-judgment-search/child-content-judgment-search.module').then(m => m.ChildContentJudgmentSearchModule) },\r\n // { path: '', pathMatch: 'full', loadChildren: () => import('./child-content-storage-personal/child-content-personal-storage.module').then(m => m.ChildContentPersonalStorageModule) },\r\n // ]\r\n },\r\n\r\n // { path: '', redirectTo: '/personal_storage', pathMatch: 'full' },\r\n // { path: '**', redirectTo: '' },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class RootMainRoutingModule { }\r\n","import { Component, OnInit, ViewChild, OnDestroy } from '@angular/core';\r\nimport { LoadingIconComponent } from 'projects/lwlib/src/loading-icon/loading-icon.component';\r\nimport { Observable, of, forkJoin } from 'rxjs';\r\nimport { map, flatMap } from 'rxjs/operators';\r\nimport { MemberService } from 'projects/lwlib/src/member/member.service';\r\nimport { RootMainService, ChildContent } from './root-main.service';\r\nimport { MainMenuMemberComponent } from 'projects/lwlib/src/main-menu-member/main-menu-member.component';\r\nimport { LoadingIconService } from 'projects/lwlib/src/loading-icon/loading-icon.service';\r\nimport { SubscriptionGroup } from 'projects/lwlib/src/subscription-group';\r\nimport { InitService } from 'projects/lwlib/src/init/init.service';\r\nimport { ActionName } from 'projects/lwlib/src/action-name';\r\nimport { LawRuleService } from './child-content-storage-personal/law-rule/law-rule.service';\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\nimport { CaseTypeService } from 'projects/lwlib/src/case-type/case-type.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MaterialHelper } from 'projects/lwlib/src/material-helper';\r\nimport { RewardPointTipPopupComponent } from 'projects/lwlib/src/reward-point-tip-popup/reward-point-tip-popup.component';\r\nimport { HeaderMemberComponent } from './header-member/header-member.component';\r\nimport { PrintPermissionLawRulePopupComponent } from 'projects/lwlib/src/print-permission-law-rule-popup/print-permission-law-rule-popup.component';\r\nimport { CompleteSearchService } from './child-content-complete-search/complete-search.service';\r\nimport { SearcherKeyword } from 'projects/lwlib/src/keyword-searcher/searcher-keyword';\r\nimport { SearcherKeywordKind } from 'projects/lwlib/src/keyword-searcher/searcher-keyword-kind';\r\nimport { ComposeType } from 'projects/lwlib/src/compose-search-popup/compose-type';\r\n\r\n\r\n@Component({\r\n selector: 'app-root-main',\r\n templateUrl: './root-main.component.html',\r\n styleUrls: ['./root-main.component.scss']\r\n})\r\nexport class RootMainComponent implements OnInit, OnDestroy {\r\n // @ViewChild(LoadingIconComponent) loginIcon: LoadingIconComponent;\r\n @ViewChild(MainMenuMemberComponent, { static: true }) mainMenuMember: MainMenuMemberComponent;\r\n @ViewChild(HeaderMemberComponent, { static: true }) headerMemberComponent: HeaderMemberComponent;\r\n childContent: any = ChildContent;\r\n selectedChildContent: ChildContent;\r\n\r\n subscriptions: SubscriptionGroup = {};\r\n\r\n constructor(\r\n private memberService: MemberService,\r\n private rootMainService: RootMainService,\r\n private lawRuleService: LawRuleService,\r\n private loadingIconService: LoadingIconService,\r\n private initService: InitService,\r\n private router: Router,\r\n private caseTypeService: CaseTypeService,\r\n private activatedRoute: ActivatedRoute,\r\n private matDialog: MatDialog,\r\n private completeSearchService: CompleteSearchService,\r\n ) {\r\n console.log('RootMainComponent constructor');\r\n\r\n initService.register({\r\n target: [\r\n [\r\n ActionName.PersonalStorage\r\n , ActionName.SearchCondition\r\n , ActionName.MyTeam\r\n ]\r\n ],\r\n onComplete: () => {\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.Root);\r\n\r\n initService.trigger(ActionName.Root);\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n console.log('RootMainComponent ngOnInit');\r\n const queryParams: Params = this.activatedRoute.snapshot.queryParams;\r\n const params: Params = this.activatedRoute.snapshot.params;\r\n\r\n // if (!environment.production) {\r\n // this.headerMemberComponent.enableNotify = true;\r\n // }\r\n console.log(queryParams, params);\r\n\r\n\r\n scrollTo(0, 0);\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.Root);\r\n\r\n this.selectedChildContent = this.rootMainService.selectedChildContent;\r\n this.rootMainService.selectedChildContent$.subscribe(v => {\r\n this.selectedChildContent = null;\r\n setTimeout(() => {\r\n this.selectedChildContent = v;\r\n }, 1);\r\n\r\n // let routeName = this.rootMainService.routeLinkName[ChildContent[v]];\r\n // this.router.navigate(['/' + routeName]);\r\n });\r\n\r\n forkJoin([\r\n this.lawRuleService.pullFastBagObserver(),\r\n this.memberService.pullHeaderObserver(),\r\n this.memberService.pullRewardPointInfo(),\r\n this.memberService.pullPermission(),\r\n this.rootMainService.pullDefaultHomeObserver(),\r\n ])\r\n .subscribe({\r\n complete: () => {\r\n console.log(queryParams.p);\r\n\r\n if (queryParams.p === 'complete_search') {\r\n const keywords: SearcherKeyword[] = [\r\n SearcherKeyword.create({ index: 0, kind: SearcherKeywordKind.ComposeSearch, compose: ComposeType.Or, keyword: '' }),\r\n SearcherKeyword.create({ index: 1, kind: SearcherKeywordKind.ComposeSearch, compose: ComposeType.Or, keyword: '' }),\r\n SearcherKeyword.create({ index: 2, kind: SearcherKeywordKind.ComposeSearch, compose: ComposeType.Or, keyword: '' })\r\n ];\r\n if (queryParams.keyword1) {\r\n keywords[0].keyword = queryParams.keyword1;\r\n }\r\n if (queryParams.keyword2) {\r\n keywords[1].keyword = queryParams.keyword2;\r\n }\r\n this.completeSearchService.setKeywords(keywords);\r\n // console.log(keywords);\r\n\r\n this.rootMainService.selectChildContent(ChildContent.CompleteSearch);\r\n } else if (queryParams.p === 'judgment_search') {\r\n this.rootMainService.selectChildContent(ChildContent.Judgment);\r\n } else if (queryParams.p === 'judicial_interpert_search') {\r\n this.rootMainService.selectChildContent(ChildContent.JudicialInterpret);\r\n } else if (queryParams.p === 'law_rule_search') {\r\n this.rootMainService.selectChildContent(ChildContent.LawRule);\r\n } else if (queryParams.p === 'my_team') {\r\n this.rootMainService.selectChildContent(ChildContent.MyTeam);\r\n } else if (queryParams.p === 'news') {\r\n this.rootMainService.selectChildContent(ChildContent.News);\r\n } else if (queryParams.p === 'recommend_friends') {\r\n this.rootMainService.selectChildContent(ChildContent.RecommendFriend);\r\n } else {\r\n // this.rootMainService.selectChildContent(this.rootMainService.defaultChildContent);\r\n this.rootMainService.selectChildContent(ChildContent.News);\r\n }\r\n\r\n if (this.memberService.rewardPointInfo\r\n && this.memberService.rewardPointInfo.has_update) {\r\n this.headerMemberComponent.hasNotify = true;\r\n this.headerMemberComponent.rewardNotify = true;\r\n this.openRewardPointPopup();\r\n }\r\n\r\n\r\n if (this.memberService.permissions\r\n && this.memberService.permissions['law_rule_print'] !== '1'\r\n && !localStorage.getItem('has_read_law_rule_print_update')) {\r\n localStorage.setItem('has_read_law_rule_print_update', '1');\r\n this.openPrintPermissionPopup();\r\n }\r\n // this.loadingIconService.closeFullScreenLoadingIcon('root-main');\r\n }\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n SubscriptionGroup.unsubscribeAll(this.subscriptions);\r\n }\r\n\r\n\r\n openRewardPointPopup(): void {\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n RewardPointTipPopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n disableClose: true\r\n // autoFocus: false,\r\n }\r\n ));\r\n }\r\n\r\n openPrintPermissionPopup(): void {\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PrintPermissionLawRulePopupComponent,\r\n {\r\n panelClass: ['no-padding', 'transparent-background'],\r\n autoFocus: false,\r\n }\r\n ));\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RootMainComponent } from './root-main.component';\r\n\r\nimport { HeaderMemberModule } from './header-member/header-member.module';\r\nimport { MainMenuMemberModule } from 'projects/lwlib/src/main-menu-member/main-menu-member.module';\r\nimport { LoadingIconModule } from 'projects/lwlib/src/loading-icon/loading-icon.module';\r\nimport { RootMainRoutingModule } from './root-main-routing.module';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { PrintPermissionLawRulePopupModule } from 'projects/lwlib/src/print-permission-law-rule-popup/print-permission-law-rule-popup.module';\r\nimport { ChildContentPersonalStorageModule } from './child-content-storage-personal/child-content-personal-storage.module';\r\nimport { ChildContentJudgmentSearchModule } from './child-content-judgment-search/child-content-judgment-search.module';\r\n// tslint:disable-next-line:max-line-length\r\nimport { ChildContentJudicialInterpretSearchModule } from './child-content-judicial-interpret-search/child-content-judicial-interpret-search.module';\r\nimport { ChildContentLawRuleSearchModule } from './child-content-law-rule-search/child-content-law-rule-search.module';\r\nimport { ChildContentCompleteSearchModule } from './child-content-complete-search/child-content-complete-search.module';\r\nimport { ChildContentRecommendFriendModule } from './child-content-recommend-friend/child-content-recommend-friend.module';\r\n// import { ChildContentMemberProfileManagementModule } from './child-content-member-profile-management/child-content-member-profile-management.module';\r\nimport { ChildContentTeamInfoOpenpageModule } from './child-content-team-info-openpage/child-content-team-info-openpage.module';\r\nimport { ChildContentNewsModule } from './child-content-news/child-content-news.module';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n\r\n // FilterPopupModule,\r\n ChildContentPersonalStorageModule,\r\n ChildContentJudgmentSearchModule,\r\n ChildContentLawRuleSearchModule,\r\n ChildContentJudicialInterpretSearchModule,\r\n ChildContentCompleteSearchModule,\r\n ChildContentRecommendFriendModule,\r\n // ChildContentMemberProfileManagementModule,\r\n ChildContentTeamInfoOpenpageModule,\r\n ChildContentNewsModule,\r\n\r\n HeaderMemberModule,\r\n MainMenuMemberModule,\r\n LoadingIconModule,\r\n PrintPermissionLawRulePopupModule,\r\n\r\n RootMainRoutingModule,\r\n MatDialogModule,\r\n ],\r\n declarations: [\r\n RootMainComponent,\r\n // HeaderMemberComponent,\r\n // MainMenuMemberComponent,\r\n ],\r\n exports: [\r\n RootMainComponent,\r\n ]\r\n})\r\nexport class RootMainModule {\r\n constructor() {\r\n console.log('RootMainModule');\r\n }\r\n}\r\n","import { IndictmentRelateJudgmentCase } from './indictment-relate-judgment-case';\r\nimport { CheckInJudgment } from 'projects/lwlib/src/check-in/check-in-judgment';\r\nimport { CheckInDataJudgmentCase } from 'projects/lwlib/src/check-in/check-in-data-judgment-case';\r\nimport { IndictmentCourtId } from '../root-main/child-content-judgment-search/judgment-condition/indictment-court-id.enum';\r\n\r\nexport class IndictmentCase {\r\n /** ************************************************* */\r\n // 基本案件訊息\r\n /** ************************************************* */\r\n // 案件種類(裁判、起訴書)\r\n case_base: 'judgment' | 'indictment';\r\n // 序號, 倉庫顯示用\r\n sn: number;\r\n // 案件ID\r\n case_id: string;\r\n // 案號\r\n case_number: string[];\r\n\r\n case_type: string;\r\n\r\n case_reason: string;\r\n // 法院ID\r\n court_id: IndictmentCourtId;\r\n // get法院ID\r\n get courtIdString(): string { return IndictmentCourtId[this.court_id]; }\r\n\r\n note_id: string;\r\n\r\n\r\n source_fulltext: string;\r\n\r\n\r\n\r\n relate_judgment_case: IndictmentRelateJudgmentCase[];\r\n\r\n\r\n\r\n\r\n // 打卡紀錄\r\n check_in_data: CheckInDataJudgmentCase;\r\n checkIn: CheckInJudgment;\r\n checkInButtonId: string;\r\n get checkInButtonElement(): HTMLElement { return document.getElementById(this.checkInMenuId); }\r\n checkInMenuId: string;\r\n get checkInMenuElement(): HTMLElement { return document.getElementById(this.checkInMenuId); }\r\n\r\n showCheckInMenu: boolean = false;\r\n onCheckInMenuShow: () => void;\r\n onCheckInMenuHide: () => void;\r\n registeCheckInMenuClickEvent: (ev: MouseEvent) => void;\r\n checkInTotalCount: number = 0;\r\n checkInStatusClassName: string = '';\r\n get checkInTodayChecked(): boolean {\r\n if (this.checkIn) {\r\n return this.checkIn.today_checked;\r\n }\r\n return true;\r\n }\r\n onOpenCheckInDetailDataPopup: () => void;\r\n\r\n\r\n\r\n static noteTypeName(note: any): string {\r\n return note.case_base === 'indictment' ? 'indictment' : 'judgment';\r\n }\r\n\r\n\r\n toggleShowCheckInMenu(): void {\r\n this.showCheckInMenu = !this.showCheckInMenu;\r\n if (this.showCheckInMenu) {\r\n this.onCheckInMenuShow();\r\n } else {\r\n this.onCheckInMenuHide();\r\n }\r\n }\r\n checkInCase(status: number): void {\r\n this.checkIn.onCheckIn(status);\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Court } from './court';\r\nimport { CourtBlock } from './court-block';\r\nimport { CaseType } from './case-type';\r\nimport { CaseTypeId } from './case-type-id.enum';\r\nimport { CourtId } from './court-id.enum';\r\nimport { CourtBlockId } from './court-block-id.enum';\r\nimport { CourtTypeId } from './court-type-id.enum';\r\nimport { CourtType } from './court-type';\r\nimport { Serializable } from 'projects/lwlib/src/serializable';\r\nimport { PropertyId } from './property-id.enum';\r\nimport { CaseName } from './case-name';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CaseTypeService {\r\n private get courtList(): Court[] { return CaseName.courtList; }\r\n private get courtBlockList(): CourtBlock[] { return CaseName.courtBlockList; }\r\n private get courtTypeList(): CourtType[] { return CaseName.courtTypeList; }\r\n private get caseTypeList(): CaseType[] { return CaseName.caseTypeList; }\r\n get propertyIdClassName(): { [key in keyof typeof PropertyId]: string } { return CaseName.propertyIdClassName; }\r\n\r\n // courts: { [key in keyof typeof CourtId]: Court };\r\n // courtBlocks: { [key in keyof typeof CourtBlockId]: CourtBlock };\r\n // courtTypes: { [key in keyof typeof CourtTypeId]: CourtType };\r\n // caseTypes: { [key in keyof typeof CaseTypeId]: CaseType };\r\n\r\n\r\n constructor() { }\r\n\r\n\r\n cloneCourtList(): Court[] {\r\n const result = this.courtList.map(c => {\r\n return Serializable.extendObjectFromResponseObject(new Court(), c);\r\n });\r\n\r\n return result;\r\n }\r\n cloneCourtBlockList(): CourtBlock[] {\r\n const result = this.courtBlockList.map(c => {\r\n return Serializable.extendObjectFromResponseObject(new CourtBlock(), c);\r\n });\r\n return result;\r\n }\r\n cloneCourtTypeList(): CourtType[] {\r\n // return JSON.parse(JSON.stringify(this.courtTypeList));\r\n const result = this.courtTypeList.map(c => {\r\n return Serializable.extendObjectFromResponseObject(new CourtType(), c);\r\n });\r\n return result;\r\n }\r\n cloneCaseTypeList(): CaseType[] {\r\n // return JSON.parse(JSON.stringify(this.caseTypeList));\r\n const result = this.caseTypeList.map(c => {\r\n return Serializable.extendObjectFromResponseObject(new CaseType(), c);\r\n });\r\n return result;\r\n }\r\n\r\n\r\n convert_CourtList_to_CourtBlockList(courtList: Court[]): { courtBlock: CourtBlock, list: Court[] }[] {\r\n const _block: any = {};\r\n const blockList = this.cloneCourtBlockList();\r\n const result: { courtBlock: CourtBlock, list: Court[] }[] = [];\r\n courtList.forEach(c => {\r\n if (_block[c.court_block_id] == null) {\r\n _block[c.court_block_id] = [];\r\n result.push({\r\n courtBlock: blockList.find(b => b.court_block_id === c.court_block_id),\r\n list: _block[c.court_block_id],\r\n });\r\n }\r\n _block[c.court_block_id].push(c);\r\n });\r\n\r\n return result;\r\n }\r\n}\r\n","import { CourtId } from \"./court-id.enum\";\r\n\r\nexport class CourtResponse {\r\n court_id: CourtId;\r\n get courtIdString(): string { return CourtId[this.court_id]; }\r\n count: number;\r\n executeResult: { [key: string]: { [key: string]: number } };\r\n\r\n static create(\r\n court_id: CourtId\r\n , count: number\r\n , executeResult?\r\n ) {\r\n let c = new CourtResponse();\r\n c.court_id = court_id;\r\n c.count = count;\r\n c.executeResult = executeResult;\r\n return c;\r\n }\r\n}\r\n","import { Injectable, ComponentFactoryResolver, Injector, ApplicationRef, ComponentRef } from '@angular/core';\r\nimport { CompleteSearchPopupComponent } from './complete-search-popup.component';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { SearcherKeywordKind } from '../keyword-searcher/searcher-keyword-kind';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CompleteSearchPopupOpenerService {\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private injector: Injector,\r\n private appRef: ApplicationRef,\r\n private popupManagerService: PopupManagerService\r\n ) { }\r\n\r\n buildPopup(): ComponentRef {\r\n const component = this.componentFactoryResolver\r\n .resolveComponentFactory(CompleteSearchPopupComponent)\r\n .create(this.injector);\r\n\r\n component.instance.componentRef = component;\r\n\r\n component.location.nativeElement.setAttribute('popup', '');\r\n document.body.appendChild(component.location.nativeElement);\r\n\r\n this.appRef.attachView(component.hostView);\r\n\r\n return component;\r\n }\r\n\r\n openPopup(): ComponentRef {\r\n const component = this.buildPopup();\r\n\r\n component.instance.onAfterContentInit$.subscribe(() => {\r\n const instance = component.instance;\r\n instance.initPopup();\r\n });\r\n\r\n this.popupManagerService.open(component);\r\n return component;\r\n }\r\n\r\n}\r\n","import { Injectable, ComponentFactoryResolver, Injector, ApplicationRef, ComponentRef } from '@angular/core';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { CompleteSearchTipPopupComponent } from './complete-search-tip-popup.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CompleteSearchTipPopupOpenerService {\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private injector: Injector,\r\n private appRef: ApplicationRef,\r\n private popupManagerService: PopupManagerService\r\n ) { }\r\n\r\n\r\n buildPopup(): ComponentRef {\r\n const component = this.componentFactoryResolver\r\n .resolveComponentFactory(CompleteSearchTipPopupComponent)\r\n .create(this.injector);\r\n\r\n component.instance.componentRef = component;\r\n\r\n component.location.nativeElement.setAttribute('popup', '');\r\n document.body.appendChild(component.location.nativeElement);\r\n\r\n this.appRef.attachView(component.hostView);\r\n\r\n return component;\r\n }\r\n\r\n openPopup(): ComponentRef {\r\n const component = this.buildPopup();\r\n\r\n component.instance.onAfterContentInit$.subscribe(() => {\r\n const instance = component.instance;\r\n instance.initPopup();\r\n });\r\n\r\n this.popupManagerService.open(component);\r\n return component;\r\n }\r\n}\r\n","import { Component, OnInit, Input, ElementRef, HostListener, EventEmitter, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-compose-case-word',\r\n templateUrl: './compose-case-word.component.html',\r\n styleUrls: ['./compose-case-word.component.scss']\r\n})\r\nexport class ComposeCaseWordComponent implements OnInit {\r\n @Input(\"baseList\") baseList: string[] = [];\r\n @Input(\"title\") title: string = '';\r\n @Input(\"windowStyle\") windowStyle: any = {};\r\n @Input(\"buttonStyle\") buttonStyle: any = {};\r\n @Input(\"initValue\") initValue: string;\r\n @Output() select: EventEmitter = new EventEmitter();\r\n\r\n list: string[] = [];\r\n\r\n selectedCaseWord: string;\r\n\r\n clickShowWindow: boolean = false;\r\n\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n ) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.list = [];\r\n this.list.push(...this.baseList);\r\n\r\n if (!this.selectedCaseWord && this.baseList.length > 0) {\r\n this.selectedCaseWord = this.baseList[0];\r\n }\r\n if (this.initValue != null) {\r\n this.selectedCaseWord = this.initValue;\r\n }\r\n }\r\n\r\n selectItem(item: string): void {\r\n let _item = this.list.find(v => v == item);\r\n if (_item) {\r\n this.selectedCaseWord = _item;\r\n }\r\n }\r\n clickSelect(item: string): void {\r\n this.selectedCaseWord = item;\r\n this.select.emit(item);\r\n this.closeWindow();\r\n }\r\n\r\n\r\n\r\n decideClickShowWindow(): void {\r\n if (this.clickShowWindow) {\r\n this.closeWindow();\r\n } else {\r\n this.openWindow();\r\n }\r\n }\r\n openWindow(): void {\r\n this.clickShowWindow = true;\r\n }\r\n closeWindow(): void {\r\n this.clickShowWindow = false;\r\n }\r\n\r\n checkCursorClickTarget(ev: any): boolean {\r\n var path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.some(a => a == this.elementRef.nativeElement);\r\n }\r\n @HostListener('document:click', ['$event']) checkClickWindowCloseOrNot(ev: MouseEvent): void {\r\n if (!this.clickShowWindow) {\r\n return;\r\n }\r\n if (!this.checkCursorClickTarget(ev)) {\r\n this.closeWindow();\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
{{selectedCaseWord}}
\r\n
\r\n
\r\n
\r\n
\r\n
{{title}}
\r\n
\r\n
\r\n \r\n
{{item}}
\r\n
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ComposeCaseWordComponent } from './compose-case-word.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [ComposeCaseWordComponent],\r\n exports: [ComposeCaseWordComponent]\r\n})\r\nexport class ComposeCaseWordModule { }\r\n","import { Injectable, ComponentFactoryResolver, Injector, ApplicationRef, ComponentRef } from '@angular/core';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { EditCategoryTabId } from './edit-category-tab-id';\r\nimport { EditCategoryPopupComponent } from './edit-category-popup.component';\r\nimport { IPopupServiceCriterion } from 'projects/lwlib/src/i-popup-service-criterion';\r\nimport { IEditCategoryService } from './i-edit-category-service';\r\nimport { EditCategoryPopupOption } from './edit-category-popup-option';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class EditCategoryPopupOpenerService implements IPopupServiceCriterion {\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private injector: Injector,\r\n private appRef: ApplicationRef,\r\n private popupManagerService: PopupManagerService\r\n ) { }\r\n\r\n // openPopup(\r\n // tab: EditCategoryTabId,\r\n // service: IEditCategoryService,\r\n // case_id: string\r\n // // selectedCategory: Category,\r\n // // selectedSubcategory: Subcategory,\r\n // // pullNoteObserver: Observable\r\n // // editCategoryPopupServiceCategoryList: CategoryList,\r\n // // editCategoryPopupServiceSubcategoryList: SubcategoryList,\r\n // // editCategoryPopupServiceCategoryList$: Subject,\r\n // // editCategoryPopupServiceSubcategoryList$: Subject,\r\n // // editCategoryPopupServicePullCategoryList: () => Subscription,\r\n // // editCategoryPopupServicePullSubcategoryList: () => Subscription,\r\n\r\n // // addCategory:any,\r\n // // editCategory:any,\r\n // // deleteCategory:any,\r\n // // orderCategory:any,\r\n // // addSubcategory:any,\r\n // // editSubcategory:any,\r\n // // deleteSubcategory:any,\r\n // // orderSubcategory:any,\r\n // ): ComponentRef {\r\n // const component = this.buildPopup();\r\n\r\n // component.instance.onAfterContentInit$.subscribe(() => {\r\n // const instance = component.instance;\r\n // // initServiceFunc(instance.editCategoryPopupService);\r\n // // instance.editCategoryPopupService.init(service, pullNoteObserver);\r\n // instance.initPopup(tab, service, case_id);\r\n // });\r\n\r\n // this.popupManagerService.open(component);\r\n // return component;\r\n // }\r\n openPopup(option: EditCategoryPopupOption): ComponentRef {\r\n const component = this.buildPopup();\r\n\r\n component.instance.onAfterContentInit$.subscribe(() => {\r\n const instance = component.instance;\r\n instance.initPopup(option);\r\n });\r\n\r\n this.popupManagerService.open(component);\r\n return component;\r\n }\r\n openPopup2(option: EditCategoryPopupOption): ComponentRef {\r\n const component = this.buildPopup();\r\n\r\n component.instance.onAfterContentInit$.subscribe(() => {\r\n const instance = component.instance;\r\n instance.initPopup(option);\r\n });\r\n\r\n this.popupManagerService.open(component);\r\n return component;\r\n }\r\n buildPopup(): ComponentRef {\r\n const component = this.componentFactoryResolver\r\n .resolveComponentFactory(EditCategoryPopupComponent)\r\n .create(this.injector);\r\n component.instance.componentRef = component;\r\n\r\n component.location.nativeElement.setAttribute('popup', '');\r\n document.body.appendChild(component.location.nativeElement);\r\n\r\n this.appRef.attachView(component.hostView);\r\n\r\n return component;\r\n }\r\n}\r\n","import { Observable } from 'rxjs';\r\nimport { EditCategoryTabId } from './edit-category-tab-id';\r\nimport { CategoryOrderRequestData } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/category-order-request-data';\r\nimport { SubcategoryOrderRequestData } from './subcategory-order-request-data';\r\nimport { Category } from '../category/category';\r\nimport { Subcategory } from '../category/subcategory';\r\n\r\n/**\r\n * 需要連網的部份,從外部引入\r\n *\r\n * @export\r\n * @class EditCategoryPopupOption\r\n */\r\nexport class EditCategoryPopupOption {\r\n tab_id: EditCategoryTabId;\r\n\r\n get_note_category: () => Category;\r\n get note_category(): Category { return this.get_note_category(); }\r\n\r\n get_note_subcategory: () => Subcategory;\r\n get note_subcategory(): Subcategory { return this.get_note_subcategory(); }\r\n\r\n get_category_list: () => Category[];\r\n get category_list(): Category[] { return this.get_category_list(); }\r\n\r\n get_subcategory_list: () => Subcategory[];\r\n get subcategory_list(): Subcategory[] { return this.get_subcategory_list(); }\r\n\r\n\r\n\r\n\r\n pullCategoryListObserver: () => Observable;\r\n pullSubcategoryListObserver: () => Observable;\r\n pullNoteListObserver: () => Observable;\r\n\r\n addCategoryListObserver: (category: Category) => Observable;\r\n addSubcategoryListObserver: (subcategory: Subcategory) => Observable;\r\n editCategoryListObserver: (old_category: string, new_category: Category) => Observable;\r\n editSubcategoryListObserver: (category: string, old_subcategory: string, new_subcategory: Subcategory) => Observable;\r\n deleteCategoryObserver: (text: string) => Observable;\r\n deleteSubcategoryObserver: (category: string, text: string) => Observable;\r\n orderCategoryListObserver: (list: CategoryOrderRequestData[]) => Observable;\r\n orderSubcategoryListObserver: (list: SubcategoryOrderRequestData[]) => Observable;\r\n\r\n broadcastCategoryUpdateObserver: (ex_connection_id: string) => Observable;\r\n broadcastSubcategoryUpdateObserver: (ex_connection_id: string) => Observable;\r\n}\r\n","import { Component, OnInit, Input, OnDestroy, Output, EventEmitter } from '@angular/core';\r\nimport { FilterPopupComponent } from '../filter-popup/filter-popup.component';\r\nimport { CaseType } from '../personal-config-popup/personal-config-popup.service';\r\n\r\nimport { SubscriptionGroup } from 'projects/lwlib/src/subscription-group';\r\nimport { FilterPopupTabType } from '../filter-popup/filter-popup.service';\r\nimport { Category } from '../category/category';\r\nimport { Subcategory } from '../category/subcategory';\r\nimport { FilterCondition } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/filter-condition';\r\n\r\n@Component({\r\n selector: 'app-filter-types',\r\n templateUrl: './filter-types.component.html',\r\n styleUrls: ['./filter-types.component.scss']\r\n})\r\nexport class FilterTypesComponent implements OnInit, OnDestroy {\r\n // @Input()\r\n @Output() open: EventEmitter = new EventEmitter();\r\n\r\n filterPopupTabType: any = FilterPopupTabType;\r\n\r\n get_filterCondition: () => FilterCondition;\r\n get filterCondition(): FilterCondition { return this.get_filterCondition(); }\r\n\r\n get category(): Category { return this.filterCondition.category; }\r\n get subcategory(): Subcategory { return this.filterCondition.subcategory; }\r\n\r\n subscriptions: SubscriptionGroup = {};\r\n\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n // this.category = this.importFilterCondition.category;\r\n // this.subcategory = this.importFilterCondition.subcategory;\r\n\r\n // this.subscriptions.category = this.importFilterCondition.category$.subscribe(r => {\r\n // this.category = r;\r\n // });\r\n // this.subscriptions.subcategory = this.importFilterCondition.subcategory$.subscribe(r => {\r\n // this.subcategory = r;\r\n // });\r\n }\r\n ngOnDestroy(): void {\r\n SubscriptionGroup.unsubscribeAll(this.subscriptions);\r\n }\r\n\r\n getCategoryIconStyle(category: Category): any {\r\n return Category.getIconStyle(category);\r\n }\r\n\r\n getSubcategoryIconStyle(subcategory: Subcategory): any {\r\n // debugger;\r\n return Subcategory.getIconStyle(subcategory);\r\n }\r\n getIconStyle(icon: string): any {\r\n const style = {};\r\n if (!icon) {\r\n return style;\r\n }\r\n\r\n style['backgroundImage'] = 'url(/assets/img/' + icon + ')';\r\n\r\n return style;\r\n }\r\n\r\n openFilterPopup(type: FilterPopupTabType): void {\r\n this.open.emit(type);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
{{category.text}}
\r\n
\r\n
\r\n
\r\n
{{subcategory.text}}
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { KeywordSearcherListItem } from '../keyword-searcher/keyword-searcher-list-item';\r\n\r\n@Component({\r\n selector: 'app-keyword-searcher-compose-search',\r\n templateUrl: './keyword-searcher-compose-search.component.html',\r\n styleUrls: ['./keyword-searcher-compose-search.component.scss'],\r\n host: {\r\n '(document:click)': 'checkClickWindowCloseOrNot($event)',\r\n } \r\n})\r\nexport class KeywordSearcherComposeSearchComponent implements OnInit {\r\n\r\n clickShowWindow: boolean = false;\r\n selectedKind: KeywordSearcherListItem;\r\n \r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.selectKind(document.querySelector('.list-content>.file-subject'));\r\n }\r\n\r\n\r\n selectKind(kindElement: Element): void {\r\n this.selectedKind = new KeywordSearcherListItem();\r\n this.selectedKind.className = kindElement.classList[0];\r\n this.selectedKind.text = kindElement.querySelector(':scope>.text').textContent;\r\n }\r\n\r\n //顯示點擊視窗\r\n showClickWindow(): void {\r\n this.clickShowWindow = true;\r\n }\r\n\r\n //隱藏點擊視窗\r\n hideClickWindow(): void {\r\n this.clickShowWindow = false;\r\n }\r\n\r\n decideClickShowWindow(): void {\r\n if (this.clickShowWindow) {\r\n this.hideClickWindow();\r\n } else {\r\n this.showClickWindow();\r\n }\r\n }\r\n\r\n\r\n\r\n //檢查點擊視窗關閉與否\r\n checkClickWindowCloseOrNot(ev: MouseEvent): void {\r\n if (!this.checkCursorClickTarget(ev)) {\r\n this.hideClickWindow();\r\n }\r\n }\r\n \r\n //檢查指標點擊目標\r\n checkCursorClickTarget(ev: MouseEvent): boolean {\r\n let memberPictureAndNickname: Element = document.querySelector('.choose-kind');\r\n return memberPictureAndNickname.contains(ev.target as Node);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
{{selectedKind.text}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
查找種類
\r\n
\r\n \r\n
\r\n
\r\n
筆記題目
\r\n
\r\n
\r\n
\r\n
輸入筆記題目的部分名稱
\r\n
\r\n 1題目類型:成敗式
\r\n
\r\n 2題目類型:結論式
\r\n
\r\n 3題目類型:問題式
\r\n
\r\n 4題目類型:情況式
\r\n
\r\n 5題目類型:矚目式
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
重點摘要
\r\n
\r\n
\r\n
\r\n
輸入摘要內容的部分文字
\r\n
包含標題或註解區的內容
\r\n
EX:確認利益
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
爭點整理
\r\n
\r\n
\r\n
\r\n
輸入爭點整理的部分文字
\r\n
妥善整理爭點問題有助查找
\r\n
訓練自我整理爭點的能力
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
爭點簡答
\r\n
\r\n
\r\n
\r\n
輸入爭點簡答的部分文字
\r\n
整理審判長就爭點的結論
\r\n
立即回憶與掌握法律理由
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
案件標籤
\r\n
\r\n
\r\n
\r\n
輸入案件所標籤的部分文字
\r\n
Tag 事實特徵
\r\n
Tag 重點法條
\r\n
Tag 法學名詞
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
書籤大綱
\r\n
\r\n
\r\n
\r\n
請輸入書籤大綱的題目文字
\r\n
不包含書籤所選取的段落內容
\r\n
EX:原告起訴主張
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
隨意備註
\r\n
\r\n
\r\n
\r\n
輸入隨意備註的部分文字
\r\n
寫下心得感想?
\r\n
或者寫下裁判主文
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
組合查找
\r\n
\r\n
\r\n
\r\n
使用多組種類關鍵字查找
\r\n
EX:題目 + 爭點 + 標籤
\r\n
限付費會員使用
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
使用說明
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
使用
\r\n
\r\n
\r\n
民法
\r\n
\r\n
清除
\r\n
\r\n
\r\n
\r\n
\r\n
違章建築物
\r\n
\r\n
清除
\r\n
\r\n
\r\n
\r\n
\r\n
違反所有權違反所有權違反所有權違反
\r\n
\r\n
清除
\r\n
\r\n
\r\n
全部清除
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { KeywordSearcherComposeSearchComponent } from './keyword-searcher-compose-search.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [KeywordSearcherComposeSearchComponent],\r\n exports: [KeywordSearcherComposeSearchComponent]\r\n})\r\nexport class KeywordSearcherComposeSearchModule { }\r\n","import { SafeUrl } from \"@angular/platform-browser\";\r\nimport { SearcherKeywordKind } from \"./searcher-keyword-kind\";\r\n\r\nexport class KeywordSearcherListItem {\r\n text: string;\r\n className: string;\r\n kind: SearcherKeywordKind;\r\n}\r\n","import { Injectable, ComponentFactoryResolver, Injector, ApplicationRef, ComponentRef } from '@angular/core';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { LawRuleFastBagPopupComponent } from './law-rule-fast-bag-popup.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LawRuleFastBagOpenerService {\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private injector: Injector,\r\n private appRef: ApplicationRef,\r\n private popupManagerService: PopupManagerService\r\n ) { }\r\n\r\n buildPopup(): ComponentRef {\r\n const component = this.componentFactoryResolver\r\n .resolveComponentFactory(LawRuleFastBagPopupComponent)\r\n .create(this.injector);\r\n\r\n component.instance.componentRef = component;\r\n\r\n component.location.nativeElement.setAttribute('popup', '');\r\n document.body.appendChild(component.location.nativeElement);\r\n\r\n this.appRef.attachView(component.hostView);\r\n\r\n return component;\r\n }\r\n\r\n openPopup(): ComponentRef {\r\n const component = this.buildPopup();\r\n\r\n component.instance.onAfterContentInit$.subscribe(() => {\r\n const instance = component.instance;\r\n instance.initPopup();\r\n });\r\n\r\n this.popupManagerService.open(component);\r\n return component;\r\n }\r\n}\r\n","import { Component, OnInit, ComponentRef } from '@angular/core';\r\nimport { ChildContent, RootMainService } from 'projects/desktop/src/app/root/root-main/root-main.service';\r\nimport { Router, RouterLink } from '@angular/router';\r\nimport { CompleteSearchPopupOpenerService } from '../complete-search-popup/complete-search-popup-opener.service';\r\nimport { CompleteSearchPopupComponent } from '../complete-search-popup/complete-search-popup.component';\r\nimport { CompleteSearchService } from 'projects/desktop/src/app/root/root-main/child-content-complete-search/complete-search.service';\r\nimport { MemberIdentity } from '../member/member-identity.enum';\r\nimport { MemberService } from '../member/member.service';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { CompleteSearchTipPopupOpenerService } from '../complete-search-tip-popup/complete-search-tip-popup-opener.service';\r\nimport { CompleteSearchTipPopupComponent } from '../complete-search-tip-popup/complete-search-tip-popup.component';\r\nimport { Location } from '@angular/common';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MaterialHelper } from 'projects/lwlib/src/material-helper';\r\n\r\n@Component({\r\n selector: 'app-main-menu-member',\r\n templateUrl: './main-menu-member.component.html',\r\n styleUrls: ['./main-menu-member.component.scss']\r\n})\r\nexport class MainMenuMemberComponent implements OnInit {\r\n childContent: any = ChildContent;\r\n selectedChildContent: ChildContent;\r\n\r\n completeSearchRef: ComponentRef;\r\n completeSearchTipRef: ComponentRef;\r\n\r\n enableCompleteSearch: boolean = false;\r\n enableTeam: boolean = true;\r\n enableBackend: boolean = false;\r\n\r\n constructor(\r\n private rootMainService: RootMainService,\r\n private router: Router,\r\n private completeSearchPopupOpenerService: CompleteSearchPopupOpenerService,\r\n private completeSearchTipPopupOpenerService: CompleteSearchTipPopupOpenerService,\r\n private completeSearchService: CompleteSearchService,\r\n private memberService: MemberService,\r\n private service: AppService,\r\n private location: Location,\r\n private matDialog: MatDialog\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.rootMainService.selectedChildContent$\r\n .subscribe(v => {\r\n this.selectedChildContent = v;\r\n });\r\n\r\n // console.log(this.memberService.memberHeader);\r\n\r\n if (this.memberService.memberHeader && this.memberService.memberHeader.complete_search) {\r\n this.enableCompleteSearch = this.memberService.memberHeader.complete_search;\r\n }\r\n this.memberService.memberHeader$.subscribe(v => {\r\n if (this.memberService.memberHeader == null) {\r\n return;\r\n }\r\n // console.trace(`\r\n // v.complete_search=${v.complete_search},\r\n // v.has_team=${v.has_team},\r\n // v.is_admin=${v.is_admin},\r\n // this.isAdmin()=${this.isAdmin()},\r\n // this.service.getCookie('token2')=${this.service.getCookie('token2')}`);\r\n\r\n // console.log('set this.lockCompleteSearch', v);\r\n this.enableCompleteSearch = v.complete_search;\r\n // if (v.has_team === true) {\r\n // this.enableTeam = v.has_team;\r\n // }\r\n if (v.is_admin === true) {\r\n this.enableBackend = v.is_admin;\r\n }\r\n // if (v.is_admin === true\r\n // && this.isAdmin()) {\r\n // this.enableBackend = v.is_admin;\r\n // }\r\n });\r\n\r\n // this.openCompleteSearchPopup();\r\n }\r\n\r\n isAdmin(): boolean {\r\n return this.memberService.memberHeader.is_admin;\r\n // const token2 = this.service.getCookie('token2');\r\n // return token2 != null && token2.length > 0;\r\n }\r\n\r\n selectChildContent(childContent: ChildContent): void {\r\n if (childContent === ChildContent.JudicialInterpret) {\r\n this.location.go('/?p=judicial_interpert_search');\r\n } else if (childContent === ChildContent.LawRule) {\r\n this.location.go('/?p=law_rule_search');\r\n } else if (childContent === ChildContent.Judgment) {\r\n this.location.go('/?p=judgment_search');\r\n } else {\r\n this.location.go('/');\r\n }\r\n this.rootMainService.selectChildContent(childContent);\r\n\r\n // let routeName = this.rootMainService.routeLinkName[ChildContent[childContent]];\r\n // console.log(routeName);\r\n // console.log(this.router);\r\n // console.log(this.router.config);\r\n\r\n // console.log(this.router.routerState.snapshot);\r\n // console.log(this.router.routerState.root);\r\n // this.router.navigate([\r\n // '/' + routeName\r\n // ,\r\n // { outlets: { 'root-main': ['', routeName] } }\r\n // ]);\r\n }\r\n\r\n openCompleteSearchPopup(): void {\r\n if (this.memberService.memberHeader\r\n && this.memberService.memberHeader.complete_search) {\r\n this.completeSearchRef = this.completeSearchPopupOpenerService.openPopup();\r\n\r\n this.completeSearchRef.instance.submit.subscribe(keywords => {\r\n // console.log(keywords);\r\n this.completeSearchService.setKeywords(keywords);\r\n this.selectChildContent(ChildContent.CompleteSearch);\r\n });\r\n\r\n this.completeSearchRef.onDestroy(() => {\r\n this.completeSearchRef = null;\r\n });\r\n } else {\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n CompleteSearchTipPopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n // this.completeSearchTipRef = this.completeSearchTipPopupOpenerService.openPopup();\r\n // this.completeSearchTipRef.onDestroy(() => {\r\n // this.completeSearchTipRef = null;\r\n // });\r\n }\r\n }\r\n openManagement(): void {\r\n const url = this.service.BaseUrlWeb + '/management_page_new';\r\n window.open(url);\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
官方簡介
\r\n
\r\n \r\n
\r\n
新聞首頁
\r\n
\r\n
\r\n
\r\n
\r\n
全面檢索
\r\n
\r\n \r\n
\r\n
司法判解
\r\n
\r\n \r\n
\r\n
法規檢索
\r\n
\r\n \r\n
\r\n
裁判檢索
\r\n
\r\n \r\n \r\n
\r\n
筆記倉庫
\r\n
\r\n
\r\n
\r\n
我的團隊
\r\n
\r\n
\r\n
\r\n
後台管理
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MainMenuMemberComponent } from './main-menu-member.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CompleteSearchPopupModule } from '../complete-search-popup/complete-search-popup.module';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\n\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n CompleteSearchPopupModule,\r\n MatDialogModule,\r\n ],\r\n declarations: [\r\n MainMenuMemberComponent\r\n ],\r\n exports: [\r\n MainMenuMemberComponent\r\n ]\r\n})\r\nexport class MainMenuMemberModule { }\r\n","import { Injectable, ComponentFactoryResolver, Injector, ApplicationRef, ComponentRef } from '@angular/core';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { RecommendMemberPopupComponent } from './recommend-member-popup.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RecommendMemberPopupOpenerService {\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private injector: Injector,\r\n private appRef: ApplicationRef,\r\n private popupManagerService: PopupManagerService\r\n ) { }\r\n\r\n buildPopup(): ComponentRef {\r\n const component = this.componentFactoryResolver\r\n .resolveComponentFactory(RecommendMemberPopupComponent)\r\n .create(this.injector);\r\n\r\n component.instance.componentRef = component;\r\n\r\n component.location.nativeElement.setAttribute('popup', '');\r\n document.body.appendChild(component.location.nativeElement);\r\n\r\n this.appRef.attachView(component.hostView);\r\n\r\n return component;\r\n }\r\n\r\n openPopup(\r\n title: string,\r\n passed: boolean\r\n ): ComponentRef {\r\n const component = this.buildPopup();\r\n\r\n component.instance.onAfterContentInit$.subscribe(() => {\r\n const instance = component.instance;\r\n instance.initPopup(title, passed);\r\n });\r\n\r\n this.popupManagerService.open(component);\r\n return component;\r\n }\r\n}\r\n","import { Injectable, ComponentFactoryResolver, Injector, ApplicationRef, ComponentRef } from '@angular/core';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { RenamePopupComponent } from './rename-popup.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RenamePopupOpenerService {\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private injector: Injector,\r\n private appRef: ApplicationRef,\r\n private popupManagerService: PopupManagerService\r\n ) { }\r\n\r\n buildPopup(): ComponentRef {\r\n const component = this.componentFactoryResolver\r\n .resolveComponentFactory(RenamePopupComponent)\r\n .create(this.injector);\r\n\r\n component.instance.componentRef = component;\r\n\r\n component.location.nativeElement.setAttribute('popup', '');\r\n document.body.appendChild(component.location.nativeElement);\r\n\r\n this.appRef.attachView(component.hostView);\r\n\r\n return component;\r\n }\r\n\r\n openPopup(sourceText: string, sourceText2: string): ComponentRef {\r\n const component = this.buildPopup();\r\n\r\n component.instance.onAfterContentInit$.subscribe(() => {\r\n const instance = component.instance;\r\n instance.initPopup(sourceText, sourceText2);\r\n });\r\n\r\n this.popupManagerService.open(component);\r\n return component;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-right-call-menu',\r\n templateUrl: './right-call-menu.component.html',\r\n styleUrls: ['./right-call-menu.component.scss']\r\n})\r\nexport class RightCallMenuComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","
\r\n
指令動作
\r\n
\r\n
\r\n
\r\n
重新命名
\r\n
\r\n
\r\n
\r\n
刪除筆記
\r\n
\r\n
\r\n
\r\n
進行分享
\r\n
\r\n
\r\n
\r\n
置入團隊
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RightCallMenuComponent } from './right-call-menu.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [RightCallMenuComponent],\r\n exports: [RightCallMenuComponent]\r\n})\r\nexport class RightCallMenuModule { }\r\n","import { Component, OnInit, ViewChildren, QueryList, ElementRef, OnDestroy } from '@angular/core';\r\nimport { ComposeCommandComponent } from '../compose-command/compose-command.component';\r\nimport { SearcherKeyword } from '../keyword-searcher/searcher-keyword';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { ComposeCommandStyleType } from '../compose-command/compse-command-style-type.enum';\r\nimport { Serializable } from 'projects/lwlib/src/serializable';\r\n\r\n@Component({\r\n selector: 'app-search-again-popup',\r\n templateUrl: './search-again-popup.component.html',\r\n styleUrls: ['./search-again-popup.component.scss']\r\n})\r\nexport class SearchAgainPopupComponent implements OnInit, OnDestroy {\r\n composeCommandStyleType: any = ComposeCommandStyleType;\r\n @ViewChildren('composeCommand') composeCommands: QueryList;\r\n @ViewChildren('inputElement') inputElements: QueryList;\r\n\r\n sourceSearcherKeywordsJson: string = '';\r\n searcherKeywords: SearcherKeyword[] = [];\r\n onSubmit: (nsks: SearcherKeyword[]) => void;\r\n onClear: () => void;\r\n saveInput: () => void;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n ) { }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n ngOnDestroy(): void {\r\n\r\n }\r\n updateKeywords(searcherKeywords: SearcherKeyword[]): void {\r\n this.searcherKeywords = searcherKeywords;\r\n this.sourceSearcherKeywordsJson = JSON.stringify(this.searcherKeywords);\r\n setTimeout(() => {\r\n this.composeCommands.forEach((cc, i) => {\r\n const index = i + 1;\r\n const sk = this.searcherKeywords[index];\r\n if (sk != null) {\r\n // cc.disableGetter = () => sk.disable;\r\n cc.disable = sk.disable;\r\n cc.selectByComposeType(sk.compose);\r\n }\r\n });\r\n }, 1);\r\n }\r\n disableSubmitButton(): void {\r\n\r\n }\r\n clearRewrite(): void {\r\n const searcherKeywords: SearcherKeyword[] = JSON.parse(this.sourceSearcherKeywordsJson);\r\n this.searcherKeywords.forEach((ssk, i) => {\r\n Serializable.extendObjectFromResponseObject(ssk, searcherKeywords[i]);\r\n });\r\n this.composeCommands.forEach((cc, i) => {\r\n const index = i + 1;\r\n const sk = this.searcherKeywords[index];\r\n if (sk != null) {\r\n cc.disable = sk.disable;\r\n cc.selectByComposeType(sk.compose);\r\n }\r\n });\r\n }\r\n clickSubmit(): void {\r\n if (this.onSubmit != null) {\r\n this.onSubmit(this.searcherKeywords);\r\n }\r\n }\r\n closePopup(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n // getComposeCommandDisableGetter(index: number): () => boolean {\r\n // return () => {\r\n // if (index === 0) {\r\n // if (this.searcherKeywords[index + 1] != null\r\n // && this.searcherKeywords[index + 1].disable) {\r\n // // console.log(index, true);\r\n // return true;\r\n // }\r\n // }\r\n // if (index === this.searcherKeywords.length - 1) {\r\n // // console.log(index, true);\r\n // return true;\r\n // }\r\n // if (this.searcherKeywords[index + 1] != null\r\n // && this.searcherKeywords[index + 1].disable) {\r\n // // console.log(index, true);\r\n // return true;\r\n // }\r\n\r\n // // console.log(index, false);\r\n // return false;\r\n // };\r\n // }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
再檢索
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
全文檢索{{i+1}}
\r\n
\r\n \r\n
\r\n
清除
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
送出查詢\r\n
\r\n
清除重填
\r\n
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SearchAgainPopupComponent } from './search-again-popup.component';\r\nimport { ComposeCommandModule } from '../compose-command/compose-command.module';\r\nimport { ChooseKindModule } from '../choose-kind/choose-kind.module';\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [SearchAgainPopupComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n MaskFullScreenModule,\r\n ChooseKindModule,\r\n ComposeCommandModule,\r\n MatDialogModule,\r\n FramePopupCloseModule,\r\n ],\r\n exports: [SearchAgainPopupComponent]\r\n})\r\nexport class SearchAgainPopupModule { }\r\n","import { Component, OnInit, Input, OnDestroy } from '@angular/core';\r\nimport { ChildContent_PersonalStorageService } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/child-content-personal-storage.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { CaseType } from '../personal-config-popup/personal-config-popup.service';\r\nimport { SubscriptionGroup } from 'projects/lwlib/src/subscription-group';\r\nimport { StorageTab } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/storage-tab';\r\n\r\n\r\n@Component({\r\n selector: 'app-storage-types',\r\n templateUrl: './storage-types.component.html',\r\n styleUrls: ['./storage-types.component.scss'],\r\n\r\n})\r\nexport class StorageTypesComponent implements OnInit, OnDestroy {\r\n\r\n storageType: any = CaseType;\r\n\r\n get storageTab(): { [key in keyof typeof CaseType]: StorageTab } {\r\n return this.storagePersonalService.storageTab;\r\n }\r\n // storageTypeJudgment: CaseType = CaseType.Judgment;\r\n // storageTypeLawRule: CaseType = CaseType.LawRule;\r\n // storageTypeJudicialInterpret: CaseType = CaseType.JudicialInterpret;\r\n\r\n\r\n\r\n get selectedType(): CaseType { return this.storagePersonalService.selectedStorageType; }\r\n subscriptions: SubscriptionGroup = {};\r\n\r\n constructor(\r\n private storagePersonalService: ChildContent_PersonalStorageService,\r\n ) { }\r\n\r\n ngOnInit() { }\r\n\r\n ngOnDestroy(): void {\r\n // SubscriptionGroup.unsubscribeAll(this.subscriptions);\r\n }\r\n\r\n /** 更新選擇的倉庫種類 */\r\n selectType(type: CaseType) {\r\n this.storagePersonalService.selectStorageType(type);\r\n\r\n // const sTab: StorageTab = this.storageTab[CaseType[type]];\r\n // sTab.enableSearchResultCount = false;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
裁判資料
\r\n
{{storageTab.Judgment.searchResultCount.toLocaleString()}}\r\n
\r\n
\r\n
\r\n
\r\n
法規資料
\r\n
{{storageTab.LawRule.searchResultCount.toLocaleString()}}
\r\n
\r\n
\r\n
\r\n
司法判解
\r\n
\r\n {{storageTab.JudicialInterpret.searchResultCount.toLocaleString()}}
\r\n
\r\n
","export class SummaryDeleteRequest {\r\n case_id: string;\r\n summary_id_list: string[];\r\n summary_id_sn: { [id: string]: number[] };\r\n}\r\n","export class SummaryListOrderRequest {\r\n case_id: string;\r\n summary_id_sn: { [id: string]: number[] };\r\n}\r\n","import * as i0 from '@angular/core';\nimport { Injectable, Inject, InjectionToken, Directive, Input, EventEmitter, Optional, SkipSelf, Output, Self, ContentChildren, ContentChild, NgModule } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { _getEventTarget, normalizePassiveListenerOptions, _getShadowRoot } from '@angular/cdk/platform';\nimport { coerceBooleanProperty, coerceElement, coerceArray, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { isFakeTouchstartFromScreenReader, isFakeMousedownFromScreenReader } from '@angular/cdk/a11y';\nimport { Subject, Subscription, interval, animationFrameScheduler, Observable, merge } from 'rxjs';\nimport { takeUntil, startWith, map, take, tap, switchMap } from 'rxjs/operators';\nimport * as i1 from '@angular/cdk/scrolling';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\nimport * as i3 from '@angular/cdk/bidi';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Shallow-extends a stylesheet object with another stylesheet-like object.\n * Note that the keys in `source` have to be dash-cased.\n * @docs-private\n */\nfunction extendStyles(dest, source, importantProperties) {\n for (let key in source) {\n if (source.hasOwnProperty(key)) {\n const value = source[key];\n if (value) {\n dest.setProperty(key, value, (importantProperties === null || importantProperties === void 0 ? void 0 : importantProperties.has(key)) ? 'important' : '');\n }\n else {\n dest.removeProperty(key);\n }\n }\n }\n return dest;\n}\n/**\n * Toggles whether the native drag interactions should be enabled for an element.\n * @param element Element on which to toggle the drag interactions.\n * @param enable Whether the drag interactions should be enabled.\n * @docs-private\n */\nfunction toggleNativeDragInteractions(element, enable) {\n const userSelect = enable ? '' : 'none';\n extendStyles(element.style, {\n 'touch-action': enable ? '' : 'none',\n '-webkit-user-drag': enable ? '' : 'none',\n '-webkit-tap-highlight-color': enable ? '' : 'transparent',\n 'user-select': userSelect,\n '-ms-user-select': userSelect,\n '-webkit-user-select': userSelect,\n '-moz-user-select': userSelect,\n });\n}\n/**\n * Toggles whether an element is visible while preserving its dimensions.\n * @param element Element whose visibility to toggle\n * @param enable Whether the element should be visible.\n * @param importantProperties Properties to be set as `!important`.\n * @docs-private\n */\nfunction toggleVisibility(element, enable, importantProperties) {\n extendStyles(element.style, {\n position: enable ? '' : 'fixed',\n top: enable ? '' : '0',\n opacity: enable ? '' : '0',\n left: enable ? '' : '-999em',\n }, importantProperties);\n}\n/**\n * Combines a transform string with an optional other transform\n * that exited before the base transform was applied.\n */\nfunction combineTransforms(transform, initialTransform) {\n return initialTransform && initialTransform != 'none'\n ? transform + ' ' + initialTransform\n : transform;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Parses a CSS time value to milliseconds. */\nfunction parseCssTimeUnitsToMs(value) {\n // Some browsers will return it in seconds, whereas others will return milliseconds.\n const multiplier = value.toLowerCase().indexOf('ms') > -1 ? 1 : 1000;\n return parseFloat(value) * multiplier;\n}\n/** Gets the transform transition duration, including the delay, of an element in milliseconds. */\nfunction getTransformTransitionDurationInMs(element) {\n const computedStyle = getComputedStyle(element);\n const transitionedProperties = parseCssPropertyValue(computedStyle, 'transition-property');\n const property = transitionedProperties.find(prop => prop === 'transform' || prop === 'all');\n // If there's no transition for `all` or `transform`, we shouldn't do anything.\n if (!property) {\n return 0;\n }\n // Get the index of the property that we're interested in and match\n // it up to the same index in `transition-delay` and `transition-duration`.\n const propertyIndex = transitionedProperties.indexOf(property);\n const rawDurations = parseCssPropertyValue(computedStyle, 'transition-duration');\n const rawDelays = parseCssPropertyValue(computedStyle, 'transition-delay');\n return (parseCssTimeUnitsToMs(rawDurations[propertyIndex]) +\n parseCssTimeUnitsToMs(rawDelays[propertyIndex]));\n}\n/** Parses out multiple values from a computed style into an array. */\nfunction parseCssPropertyValue(computedStyle, name) {\n const value = computedStyle.getPropertyValue(name);\n return value.split(',').map(part => part.trim());\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Gets a mutable version of an element's bounding `ClientRect`. */\nfunction getMutableClientRect(element) {\n const clientRect = element.getBoundingClientRect();\n // We need to clone the `clientRect` here, because all the values on it are readonly\n // and we need to be able to update them. Also we can't use a spread here, because\n // the values on a `ClientRect` aren't own properties. See:\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect#Notes\n return {\n top: clientRect.top,\n right: clientRect.right,\n bottom: clientRect.bottom,\n left: clientRect.left,\n width: clientRect.width,\n height: clientRect.height,\n x: clientRect.x,\n y: clientRect.y,\n };\n}\n/**\n * Checks whether some coordinates are within a `ClientRect`.\n * @param clientRect ClientRect that is being checked.\n * @param x Coordinates along the X axis.\n * @param y Coordinates along the Y axis.\n */\nfunction isInsideClientRect(clientRect, x, y) {\n const { top, bottom, left, right } = clientRect;\n return y >= top && y <= bottom && x >= left && x <= right;\n}\n/**\n * Updates the top/left positions of a `ClientRect`, as well as their bottom/right counterparts.\n * @param clientRect `ClientRect` that should be updated.\n * @param top Amount to add to the `top` position.\n * @param left Amount to add to the `left` position.\n */\nfunction adjustClientRect(clientRect, top, left) {\n clientRect.top += top;\n clientRect.bottom = clientRect.top + clientRect.height;\n clientRect.left += left;\n clientRect.right = clientRect.left + clientRect.width;\n}\n/**\n * Checks whether the pointer coordinates are close to a ClientRect.\n * @param rect ClientRect to check against.\n * @param threshold Threshold around the ClientRect.\n * @param pointerX Coordinates along the X axis.\n * @param pointerY Coordinates along the Y axis.\n */\nfunction isPointerNearClientRect(rect, threshold, pointerX, pointerY) {\n const { top, right, bottom, left, width, height } = rect;\n const xThreshold = width * threshold;\n const yThreshold = height * threshold;\n return (pointerY > top - yThreshold &&\n pointerY < bottom + yThreshold &&\n pointerX > left - xThreshold &&\n pointerX < right + xThreshold);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Keeps track of the scroll position and dimensions of the parents of an element. */\nclass ParentPositionTracker {\n constructor(_document, _viewportRuler) {\n this._document = _document;\n this._viewportRuler = _viewportRuler;\n /** Cached positions of the scrollable parent elements. */\n this.positions = new Map();\n }\n /** Clears the cached positions. */\n clear() {\n this.positions.clear();\n }\n /** Caches the positions. Should be called at the beginning of a drag sequence. */\n cache(elements) {\n this.clear();\n this.positions.set(this._document, {\n scrollPosition: this._viewportRuler.getViewportScrollPosition(),\n });\n elements.forEach(element => {\n this.positions.set(element, {\n scrollPosition: { top: element.scrollTop, left: element.scrollLeft },\n clientRect: getMutableClientRect(element),\n });\n });\n }\n /** Handles scrolling while a drag is taking place. */\n handleScroll(event) {\n const target = _getEventTarget(event);\n const cachedPosition = this.positions.get(target);\n if (!cachedPosition) {\n return null;\n }\n const scrollPosition = cachedPosition.scrollPosition;\n let newTop;\n let newLeft;\n if (target === this._document) {\n const viewportScrollPosition = this._viewportRuler.getViewportScrollPosition();\n newTop = viewportScrollPosition.top;\n newLeft = viewportScrollPosition.left;\n }\n else {\n newTop = target.scrollTop;\n newLeft = target.scrollLeft;\n }\n const topDifference = scrollPosition.top - newTop;\n const leftDifference = scrollPosition.left - newLeft;\n // Go through and update the cached positions of the scroll\n // parents that are inside the element that was scrolled.\n this.positions.forEach((position, node) => {\n if (position.clientRect && target !== node && target.contains(node)) {\n adjustClientRect(position.clientRect, topDifference, leftDifference);\n }\n });\n scrollPosition.top = newTop;\n scrollPosition.left = newLeft;\n return { top: topDifference, left: leftDifference };\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Creates a deep clone of an element. */\nfunction deepCloneNode(node) {\n const clone = node.cloneNode(true);\n const descendantsWithId = clone.querySelectorAll('[id]');\n const nodeName = node.nodeName.toLowerCase();\n // Remove the `id` to avoid having multiple elements with the same id on the page.\n clone.removeAttribute('id');\n for (let i = 0; i < descendantsWithId.length; i++) {\n descendantsWithId[i].removeAttribute('id');\n }\n if (nodeName === 'canvas') {\n transferCanvasData(node, clone);\n }\n else if (nodeName === 'input' || nodeName === 'select' || nodeName === 'textarea') {\n transferInputData(node, clone);\n }\n transferData('canvas', node, clone, transferCanvasData);\n transferData('input, textarea, select', node, clone, transferInputData);\n return clone;\n}\n/** Matches elements between an element and its clone and allows for their data to be cloned. */\nfunction transferData(selector, node, clone, callback) {\n const descendantElements = node.querySelectorAll(selector);\n if (descendantElements.length) {\n const cloneElements = clone.querySelectorAll(selector);\n for (let i = 0; i < descendantElements.length; i++) {\n callback(descendantElements[i], cloneElements[i]);\n }\n }\n}\n// Counter for unique cloned radio button names.\nlet cloneUniqueId = 0;\n/** Transfers the data of one input element to another. */\nfunction transferInputData(source, clone) {\n // Browsers throw an error when assigning the value of a file input programmatically.\n if (clone.type !== 'file') {\n clone.value = source.value;\n }\n // Radio button `name` attributes must be unique for radio button groups\n // otherwise original radio buttons can lose their checked state\n // once the clone is inserted in the DOM.\n if (clone.type === 'radio' && clone.name) {\n clone.name = `mat-clone-${clone.name}-${cloneUniqueId++}`;\n }\n}\n/** Transfers the data of one canvas element to another. */\nfunction transferCanvasData(source, clone) {\n const context = clone.getContext('2d');\n if (context) {\n // In some cases `drawImage` can throw (e.g. if the canvas size is 0x0).\n // We can't do much about it so just ignore the error.\n try {\n context.drawImage(source, 0, 0);\n }\n catch (_a) { }\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Options that can be used to bind a passive event listener. */\nconst passiveEventListenerOptions = normalizePassiveListenerOptions({ passive: true });\n/** Options that can be used to bind an active event listener. */\nconst activeEventListenerOptions = normalizePassiveListenerOptions({ passive: false });\n/**\n * Time in milliseconds for which to ignore mouse events, after\n * receiving a touch event. Used to avoid doing double work for\n * touch devices where the browser fires fake mouse events, in\n * addition to touch events.\n */\nconst MOUSE_EVENT_IGNORE_TIME = 800;\n/** Inline styles to be set as `!important` while dragging. */\nconst dragImportantProperties = new Set([\n // Needs to be important, because some `mat-table` sets `position: sticky !important`. See #22781.\n 'position',\n]);\n/**\n * Reference to a draggable item. Used to manipulate or dispose of the item.\n */\nclass DragRef {\n constructor(element, _config, _document, _ngZone, _viewportRuler, _dragDropRegistry) {\n this._config = _config;\n this._document = _document;\n this._ngZone = _ngZone;\n this._viewportRuler = _viewportRuler;\n this._dragDropRegistry = _dragDropRegistry;\n /**\n * CSS `transform` applied to the element when it isn't being dragged. We need a\n * passive transform in order for the dragged element to retain its new position\n * after the user has stopped dragging and because we need to know the relative\n * position in case they start dragging again. This corresponds to `element.style.transform`.\n */\n this._passiveTransform = { x: 0, y: 0 };\n /** CSS `transform` that is applied to the element while it's being dragged. */\n this._activeTransform = { x: 0, y: 0 };\n /**\n * Whether the dragging sequence has been started. Doesn't\n * necessarily mean that the element has been moved.\n */\n this._hasStartedDragging = false;\n /** Emits when the item is being moved. */\n this._moveEvents = new Subject();\n /** Subscription to pointer movement events. */\n this._pointerMoveSubscription = Subscription.EMPTY;\n /** Subscription to the event that is dispatched when the user lifts their pointer. */\n this._pointerUpSubscription = Subscription.EMPTY;\n /** Subscription to the viewport being scrolled. */\n this._scrollSubscription = Subscription.EMPTY;\n /** Subscription to the viewport being resized. */\n this._resizeSubscription = Subscription.EMPTY;\n /** Cached reference to the boundary element. */\n this._boundaryElement = null;\n /** Whether the native dragging interactions have been enabled on the root element. */\n this._nativeInteractionsEnabled = true;\n /** Elements that can be used to drag the draggable item. */\n this._handles = [];\n /** Registered handles that are currently disabled. */\n this._disabledHandles = new Set();\n /** Layout direction of the item. */\n this._direction = 'ltr';\n /**\n * Amount of milliseconds to wait after the user has put their\n * pointer down before starting to drag the element.\n */\n this.dragStartDelay = 0;\n this._disabled = false;\n /** Emits as the drag sequence is being prepared. */\n this.beforeStarted = new Subject();\n /** Emits when the user starts dragging the item. */\n this.started = new Subject();\n /** Emits when the user has released a drag item, before any animations have started. */\n this.released = new Subject();\n /** Emits when the user stops dragging an item in the container. */\n this.ended = new Subject();\n /** Emits when the user has moved the item into a new container. */\n this.entered = new Subject();\n /** Emits when the user removes the item its container by dragging it into another container. */\n this.exited = new Subject();\n /** Emits when the user drops the item inside a container. */\n this.dropped = new Subject();\n /**\n * Emits as the user is dragging the item. Use with caution,\n * because this event will fire for every pixel that the user has dragged.\n */\n this.moved = this._moveEvents;\n /** Handler for the `mousedown`/`touchstart` events. */\n this._pointerDown = (event) => {\n this.beforeStarted.next();\n // Delegate the event based on whether it started from a handle or the element itself.\n if (this._handles.length) {\n const targetHandle = this._handles.find(handle => {\n return event.target && (event.target === handle || handle.contains(event.target));\n });\n if (targetHandle && !this._disabledHandles.has(targetHandle) && !this.disabled) {\n this._initializeDragSequence(targetHandle, event);\n }\n }\n else if (!this.disabled) {\n this._initializeDragSequence(this._rootElement, event);\n }\n };\n /** Handler that is invoked when the user moves their pointer after they've initiated a drag. */\n this._pointerMove = (event) => {\n const pointerPosition = this._getPointerPositionOnPage(event);\n if (!this._hasStartedDragging) {\n const distanceX = Math.abs(pointerPosition.x - this._pickupPositionOnPage.x);\n const distanceY = Math.abs(pointerPosition.y - this._pickupPositionOnPage.y);\n const isOverThreshold = distanceX + distanceY >= this._config.dragStartThreshold;\n // Only start dragging after the user has moved more than the minimum distance in either\n // direction. Note that this is preferrable over doing something like `skip(minimumDistance)`\n // in the `pointerMove` subscription, because we're not guaranteed to have one move event\n // per pixel of movement (e.g. if the user moves their pointer quickly).\n if (isOverThreshold) {\n const isDelayElapsed = Date.now() >= this._dragStartTime + this._getDragStartDelay(event);\n const container = this._dropContainer;\n if (!isDelayElapsed) {\n this._endDragSequence(event);\n return;\n }\n // Prevent other drag sequences from starting while something in the container is still\n // being dragged. This can happen while we're waiting for the drop animation to finish\n // and can cause errors, because some elements might still be moving around.\n if (!container || (!container.isDragging() && !container.isReceiving())) {\n // Prevent the default action as soon as the dragging sequence is considered as\n // \"started\" since waiting for the next event can allow the device to begin scrolling.\n event.preventDefault();\n this._hasStartedDragging = true;\n this._ngZone.run(() => this._startDragSequence(event));\n }\n }\n return;\n }\n // We only need the preview dimensions if we have a boundary element.\n if (this._boundaryElement) {\n // Cache the preview element rect if we haven't cached it already or if\n // we cached it too early before the element dimensions were computed.\n if (!this._previewRect || (!this._previewRect.width && !this._previewRect.height)) {\n this._previewRect = (this._preview || this._rootElement).getBoundingClientRect();\n }\n }\n // We prevent the default action down here so that we know that dragging has started. This is\n // important for touch devices where doing this too early can unnecessarily block scrolling,\n // if there's a dragging delay.\n event.preventDefault();\n const constrainedPointerPosition = this._getConstrainedPointerPosition(pointerPosition);\n this._hasMoved = true;\n this._lastKnownPointerPosition = pointerPosition;\n this._updatePointerDirectionDelta(constrainedPointerPosition);\n if (this._dropContainer) {\n this._updateActiveDropContainer(constrainedPointerPosition, pointerPosition);\n }\n else {\n const activeTransform = this._activeTransform;\n activeTransform.x =\n constrainedPointerPosition.x - this._pickupPositionOnPage.x + this._passiveTransform.x;\n activeTransform.y =\n constrainedPointerPosition.y - this._pickupPositionOnPage.y + this._passiveTransform.y;\n this._applyRootElementTransform(activeTransform.x, activeTransform.y);\n }\n // Since this event gets fired for every pixel while dragging, we only\n // want to fire it if the consumer opted into it. Also we have to\n // re-enter the zone because we run all of the events on the outside.\n if (this._moveEvents.observers.length) {\n this._ngZone.run(() => {\n this._moveEvents.next({\n source: this,\n pointerPosition: constrainedPointerPosition,\n event,\n distance: this._getDragDistance(constrainedPointerPosition),\n delta: this._pointerDirectionDelta,\n });\n });\n }\n };\n /** Handler that is invoked when the user lifts their pointer up, after initiating a drag. */\n this._pointerUp = (event) => {\n this._endDragSequence(event);\n };\n this.withRootElement(element).withParent(_config.parentDragRef || null);\n this._parentPositions = new ParentPositionTracker(_document, _viewportRuler);\n _dragDropRegistry.registerDragItem(this);\n }\n /** Whether starting to drag this element is disabled. */\n get disabled() {\n return this._disabled || !!(this._dropContainer && this._dropContainer.disabled);\n }\n set disabled(value) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this._disabled) {\n this._disabled = newValue;\n this._toggleNativeDragInteractions();\n this._handles.forEach(handle => toggleNativeDragInteractions(handle, newValue));\n }\n }\n /**\n * Returns the element that is being used as a placeholder\n * while the current element is being dragged.\n */\n getPlaceholderElement() {\n return this._placeholder;\n }\n /** Returns the root draggable element. */\n getRootElement() {\n return this._rootElement;\n }\n /**\n * Gets the currently-visible element that represents the drag item.\n * While dragging this is the placeholder, otherwise it's the root element.\n */\n getVisibleElement() {\n return this.isDragging() ? this.getPlaceholderElement() : this.getRootElement();\n }\n /** Registers the handles that can be used to drag the element. */\n withHandles(handles) {\n this._handles = handles.map(handle => coerceElement(handle));\n this._handles.forEach(handle => toggleNativeDragInteractions(handle, this.disabled));\n this._toggleNativeDragInteractions();\n // Delete any lingering disabled handles that may have been destroyed. Note that we re-create\n // the set, rather than iterate over it and filter out the destroyed handles, because while\n // the ES spec allows for sets to be modified while they're being iterated over, some polyfills\n // use an array internally which may throw an error.\n const disabledHandles = new Set();\n this._disabledHandles.forEach(handle => {\n if (this._handles.indexOf(handle) > -1) {\n disabledHandles.add(handle);\n }\n });\n this._disabledHandles = disabledHandles;\n return this;\n }\n /**\n * Registers the template that should be used for the drag preview.\n * @param template Template that from which to stamp out the preview.\n */\n withPreviewTemplate(template) {\n this._previewTemplate = template;\n return this;\n }\n /**\n * Registers the template that should be used for the drag placeholder.\n * @param template Template that from which to stamp out the placeholder.\n */\n withPlaceholderTemplate(template) {\n this._placeholderTemplate = template;\n return this;\n }\n /**\n * Sets an alternate drag root element. The root element is the element that will be moved as\n * the user is dragging. Passing an alternate root element is useful when trying to enable\n * dragging on an element that you might not have access to.\n */\n withRootElement(rootElement) {\n const element = coerceElement(rootElement);\n if (element !== this._rootElement) {\n if (this._rootElement) {\n this._removeRootElementListeners(this._rootElement);\n }\n this._ngZone.runOutsideAngular(() => {\n element.addEventListener('mousedown', this._pointerDown, activeEventListenerOptions);\n element.addEventListener('touchstart', this._pointerDown, passiveEventListenerOptions);\n });\n this._initialTransform = undefined;\n this._rootElement = element;\n }\n if (typeof SVGElement !== 'undefined' && this._rootElement instanceof SVGElement) {\n this._ownerSVGElement = this._rootElement.ownerSVGElement;\n }\n return this;\n }\n /**\n * Element to which the draggable's position will be constrained.\n */\n withBoundaryElement(boundaryElement) {\n this._boundaryElement = boundaryElement ? coerceElement(boundaryElement) : null;\n this._resizeSubscription.unsubscribe();\n if (boundaryElement) {\n this._resizeSubscription = this._viewportRuler\n .change(10)\n .subscribe(() => this._containInsideBoundaryOnResize());\n }\n return this;\n }\n /** Sets the parent ref that the ref is nested in. */\n withParent(parent) {\n this._parentDragRef = parent;\n return this;\n }\n /** Removes the dragging functionality from the DOM element. */\n dispose() {\n var _a, _b;\n this._removeRootElementListeners(this._rootElement);\n // Do this check before removing from the registry since it'll\n // stop being considered as dragged once it is removed.\n if (this.isDragging()) {\n // Since we move out the element to the end of the body while it's being\n // dragged, we have to make sure that it's removed if it gets destroyed.\n (_a = this._rootElement) === null || _a === void 0 ? void 0 : _a.remove();\n }\n (_b = this._anchor) === null || _b === void 0 ? void 0 : _b.remove();\n this._destroyPreview();\n this._destroyPlaceholder();\n this._dragDropRegistry.removeDragItem(this);\n this._removeSubscriptions();\n this.beforeStarted.complete();\n this.started.complete();\n this.released.complete();\n this.ended.complete();\n this.entered.complete();\n this.exited.complete();\n this.dropped.complete();\n this._moveEvents.complete();\n this._handles = [];\n this._disabledHandles.clear();\n this._dropContainer = undefined;\n this._resizeSubscription.unsubscribe();\n this._parentPositions.clear();\n this._boundaryElement =\n this._rootElement =\n this._ownerSVGElement =\n this._placeholderTemplate =\n this._previewTemplate =\n this._anchor =\n this._parentDragRef =\n null;\n }\n /** Checks whether the element is currently being dragged. */\n isDragging() {\n return this._hasStartedDragging && this._dragDropRegistry.isDragging(this);\n }\n /** Resets a standalone drag item to its initial position. */\n reset() {\n this._rootElement.style.transform = this._initialTransform || '';\n this._activeTransform = { x: 0, y: 0 };\n this._passiveTransform = { x: 0, y: 0 };\n }\n /**\n * Sets a handle as disabled. While a handle is disabled, it'll capture and interrupt dragging.\n * @param handle Handle element that should be disabled.\n */\n disableHandle(handle) {\n if (!this._disabledHandles.has(handle) && this._handles.indexOf(handle) > -1) {\n this._disabledHandles.add(handle);\n toggleNativeDragInteractions(handle, true);\n }\n }\n /**\n * Enables a handle, if it has been disabled.\n * @param handle Handle element to be enabled.\n */\n enableHandle(handle) {\n if (this._disabledHandles.has(handle)) {\n this._disabledHandles.delete(handle);\n toggleNativeDragInteractions(handle, this.disabled);\n }\n }\n /** Sets the layout direction of the draggable item. */\n withDirection(direction) {\n this._direction = direction;\n return this;\n }\n /** Sets the container that the item is part of. */\n _withDropContainer(container) {\n this._dropContainer = container;\n }\n /**\n * Gets the current position in pixels the draggable outside of a drop container.\n */\n getFreeDragPosition() {\n const position = this.isDragging() ? this._activeTransform : this._passiveTransform;\n return { x: position.x, y: position.y };\n }\n /**\n * Sets the current position in pixels the draggable outside of a drop container.\n * @param value New position to be set.\n */\n setFreeDragPosition(value) {\n this._activeTransform = { x: 0, y: 0 };\n this._passiveTransform.x = value.x;\n this._passiveTransform.y = value.y;\n if (!this._dropContainer) {\n this._applyRootElementTransform(value.x, value.y);\n }\n return this;\n }\n /**\n * Sets the container into which to insert the preview element.\n * @param value Container into which to insert the preview.\n */\n withPreviewContainer(value) {\n this._previewContainer = value;\n return this;\n }\n /** Updates the item's sort order based on the last-known pointer position. */\n _sortFromLastPointerPosition() {\n const position = this._lastKnownPointerPosition;\n if (position && this._dropContainer) {\n this._updateActiveDropContainer(this._getConstrainedPointerPosition(position), position);\n }\n }\n /** Unsubscribes from the global subscriptions. */\n _removeSubscriptions() {\n this._pointerMoveSubscription.unsubscribe();\n this._pointerUpSubscription.unsubscribe();\n this._scrollSubscription.unsubscribe();\n }\n /** Destroys the preview element and its ViewRef. */\n _destroyPreview() {\n var _a, _b;\n (_a = this._preview) === null || _a === void 0 ? void 0 : _a.remove();\n (_b = this._previewRef) === null || _b === void 0 ? void 0 : _b.destroy();\n this._preview = this._previewRef = null;\n }\n /** Destroys the placeholder element and its ViewRef. */\n _destroyPlaceholder() {\n var _a, _b;\n (_a = this._placeholder) === null || _a === void 0 ? void 0 : _a.remove();\n (_b = this._placeholderRef) === null || _b === void 0 ? void 0 : _b.destroy();\n this._placeholder = this._placeholderRef = null;\n }\n /**\n * Clears subscriptions and stops the dragging sequence.\n * @param event Browser event object that ended the sequence.\n */\n _endDragSequence(event) {\n // Note that here we use `isDragging` from the service, rather than from `this`.\n // The difference is that the one from the service reflects whether a dragging sequence\n // has been initiated, whereas the one on `this` includes whether the user has passed\n // the minimum dragging threshold.\n if (!this._dragDropRegistry.isDragging(this)) {\n return;\n }\n this._removeSubscriptions();\n this._dragDropRegistry.stopDragging(this);\n this._toggleNativeDragInteractions();\n if (this._handles) {\n this._rootElement.style.webkitTapHighlightColor =\n this._rootElementTapHighlight;\n }\n if (!this._hasStartedDragging) {\n return;\n }\n this.released.next({ source: this });\n if (this._dropContainer) {\n // Stop scrolling immediately, instead of waiting for the animation to finish.\n this._dropContainer._stopScrolling();\n this._animatePreviewToPlaceholder().then(() => {\n this._cleanupDragArtifacts(event);\n this._cleanupCachedDimensions();\n this._dragDropRegistry.stopDragging(this);\n });\n }\n else {\n // Convert the active transform into a passive one. This means that next time\n // the user starts dragging the item, its position will be calculated relatively\n // to the new passive transform.\n this._passiveTransform.x = this._activeTransform.x;\n const pointerPosition = this._getPointerPositionOnPage(event);\n this._passiveTransform.y = this._activeTransform.y;\n this._ngZone.run(() => {\n this.ended.next({\n source: this,\n distance: this._getDragDistance(pointerPosition),\n dropPoint: pointerPosition,\n });\n });\n this._cleanupCachedDimensions();\n this._dragDropRegistry.stopDragging(this);\n }\n }\n /** Starts the dragging sequence. */\n _startDragSequence(event) {\n if (isTouchEvent(event)) {\n this._lastTouchEventTime = Date.now();\n }\n this._toggleNativeDragInteractions();\n const dropContainer = this._dropContainer;\n if (dropContainer) {\n const element = this._rootElement;\n const parent = element.parentNode;\n const placeholder = (this._placeholder = this._createPlaceholderElement());\n const anchor = (this._anchor = this._anchor || this._document.createComment(''));\n // Needs to happen before the root element is moved.\n const shadowRoot = this._getShadowRoot();\n // Insert an anchor node so that we can restore the element's position in the DOM.\n parent.insertBefore(anchor, element);\n // There's no risk of transforms stacking when inside a drop container so\n // we can keep the initial transform up to date any time dragging starts.\n this._initialTransform = element.style.transform || '';\n // Create the preview after the initial transform has\n // been cached, because it can be affected by the transform.\n this._preview = this._createPreviewElement();\n // We move the element out at the end of the body and we make it hidden, because keeping it in\n // place will throw off the consumer's `:last-child` selectors. We can't remove the element\n // from the DOM completely, because iOS will stop firing all subsequent events in the chain.\n toggleVisibility(element, false, dragImportantProperties);\n this._document.body.appendChild(parent.replaceChild(placeholder, element));\n this._getPreviewInsertionPoint(parent, shadowRoot).appendChild(this._preview);\n this.started.next({ source: this }); // Emit before notifying the container.\n dropContainer.start();\n this._initialContainer = dropContainer;\n this._initialIndex = dropContainer.getItemIndex(this);\n }\n else {\n this.started.next({ source: this });\n this._initialContainer = this._initialIndex = undefined;\n }\n // Important to run after we've called `start` on the parent container\n // so that it has had time to resolve its scrollable parents.\n this._parentPositions.cache(dropContainer ? dropContainer.getScrollableParents() : []);\n }\n /**\n * Sets up the different variables and subscriptions\n * that will be necessary for the dragging sequence.\n * @param referenceElement Element that started the drag sequence.\n * @param event Browser event object that started the sequence.\n */\n _initializeDragSequence(referenceElement, event) {\n // Stop propagation if the item is inside another\n // draggable so we don't start multiple drag sequences.\n if (this._parentDragRef) {\n event.stopPropagation();\n }\n const isDragging = this.isDragging();\n const isTouchSequence = isTouchEvent(event);\n const isAuxiliaryMouseButton = !isTouchSequence && event.button !== 0;\n const rootElement = this._rootElement;\n const target = _getEventTarget(event);\n const isSyntheticEvent = !isTouchSequence &&\n this._lastTouchEventTime &&\n this._lastTouchEventTime + MOUSE_EVENT_IGNORE_TIME > Date.now();\n const isFakeEvent = isTouchSequence\n ? isFakeTouchstartFromScreenReader(event)\n : isFakeMousedownFromScreenReader(event);\n // If the event started from an element with the native HTML drag&drop, it'll interfere\n // with our own dragging (e.g. `img` tags do it by default). Prevent the default action\n // to stop it from happening. Note that preventing on `dragstart` also seems to work, but\n // it's flaky and it fails if the user drags it away quickly. Also note that we only want\n // to do this for `mousedown` since doing the same for `touchstart` will stop any `click`\n // events from firing on touch devices.\n if (target && target.draggable && event.type === 'mousedown') {\n event.preventDefault();\n }\n // Abort if the user is already dragging or is using a mouse button other than the primary one.\n if (isDragging || isAuxiliaryMouseButton || isSyntheticEvent || isFakeEvent) {\n return;\n }\n // If we've got handles, we need to disable the tap highlight on the entire root element,\n // otherwise iOS will still add it, even though all the drag interactions on the handle\n // are disabled.\n if (this._handles.length) {\n const rootStyles = rootElement.style;\n this._rootElementTapHighlight = rootStyles.webkitTapHighlightColor || '';\n rootStyles.webkitTapHighlightColor = 'transparent';\n }\n this._hasStartedDragging = this._hasMoved = false;\n // Avoid multiple subscriptions and memory leaks when multi touch\n // (isDragging check above isn't enough because of possible temporal and/or dimensional delays)\n this._removeSubscriptions();\n this._pointerMoveSubscription = this._dragDropRegistry.pointerMove.subscribe(this._pointerMove);\n this._pointerUpSubscription = this._dragDropRegistry.pointerUp.subscribe(this._pointerUp);\n this._scrollSubscription = this._dragDropRegistry\n .scrolled(this._getShadowRoot())\n .subscribe(scrollEvent => this._updateOnScroll(scrollEvent));\n if (this._boundaryElement) {\n this._boundaryRect = getMutableClientRect(this._boundaryElement);\n }\n // If we have a custom preview we can't know ahead of time how large it'll be so we position\n // it next to the cursor. The exception is when the consumer has opted into making the preview\n // the same size as the root element, in which case we do know the size.\n const previewTemplate = this._previewTemplate;\n this._pickupPositionInElement =\n previewTemplate && previewTemplate.template && !previewTemplate.matchSize\n ? { x: 0, y: 0 }\n : this._getPointerPositionInElement(referenceElement, event);\n const pointerPosition = (this._pickupPositionOnPage =\n this._lastKnownPointerPosition =\n this._getPointerPositionOnPage(event));\n this._pointerDirectionDelta = { x: 0, y: 0 };\n this._pointerPositionAtLastDirectionChange = { x: pointerPosition.x, y: pointerPosition.y };\n this._dragStartTime = Date.now();\n this._dragDropRegistry.startDragging(this, event);\n }\n /** Cleans up the DOM artifacts that were added to facilitate the element being dragged. */\n _cleanupDragArtifacts(event) {\n // Restore the element's visibility and insert it at its old position in the DOM.\n // It's important that we maintain the position, because moving the element around in the DOM\n // can throw off `NgFor` which does smart diffing and re-creates elements only when necessary,\n // while moving the existing elements in all other cases.\n toggleVisibility(this._rootElement, true, dragImportantProperties);\n this._anchor.parentNode.replaceChild(this._rootElement, this._anchor);\n this._destroyPreview();\n this._destroyPlaceholder();\n this._boundaryRect = this._previewRect = this._initialTransform = undefined;\n // Re-enter the NgZone since we bound `document` events on the outside.\n this._ngZone.run(() => {\n const container = this._dropContainer;\n const currentIndex = container.getItemIndex(this);\n const pointerPosition = this._getPointerPositionOnPage(event);\n const distance = this._getDragDistance(pointerPosition);\n const isPointerOverContainer = container._isOverContainer(pointerPosition.x, pointerPosition.y);\n this.ended.next({ source: this, distance, dropPoint: pointerPosition });\n this.dropped.next({\n item: this,\n currentIndex,\n previousIndex: this._initialIndex,\n container: container,\n previousContainer: this._initialContainer,\n isPointerOverContainer,\n distance,\n dropPoint: pointerPosition,\n });\n container.drop(this, currentIndex, this._initialIndex, this._initialContainer, isPointerOverContainer, distance, pointerPosition);\n this._dropContainer = this._initialContainer;\n });\n }\n /**\n * Updates the item's position in its drop container, or moves it\n * into a new one, depending on its current drag position.\n */\n _updateActiveDropContainer({ x, y }, { x: rawX, y: rawY }) {\n // Drop container that draggable has been moved into.\n let newContainer = this._initialContainer._getSiblingContainerFromPosition(this, x, y);\n // If we couldn't find a new container to move the item into, and the item has left its\n // initial container, check whether the it's over the initial container. This handles the\n // case where two containers are connected one way and the user tries to undo dragging an\n // item into a new container.\n if (!newContainer &&\n this._dropContainer !== this._initialContainer &&\n this._initialContainer._isOverContainer(x, y)) {\n newContainer = this._initialContainer;\n }\n if (newContainer && newContainer !== this._dropContainer) {\n this._ngZone.run(() => {\n // Notify the old container that the item has left.\n this.exited.next({ item: this, container: this._dropContainer });\n this._dropContainer.exit(this);\n // Notify the new container that the item has entered.\n this._dropContainer = newContainer;\n this._dropContainer.enter(this, x, y, newContainer === this._initialContainer &&\n // If we're re-entering the initial container and sorting is disabled,\n // put item the into its starting index to begin with.\n newContainer.sortingDisabled\n ? this._initialIndex\n : undefined);\n this.entered.next({\n item: this,\n container: newContainer,\n currentIndex: newContainer.getItemIndex(this),\n });\n });\n }\n // Dragging may have been interrupted as a result of the events above.\n if (this.isDragging()) {\n this._dropContainer._startScrollingIfNecessary(rawX, rawY);\n this._dropContainer._sortItem(this, x, y, this._pointerDirectionDelta);\n this._applyPreviewTransform(x - this._pickupPositionInElement.x, y - this._pickupPositionInElement.y);\n }\n }\n /**\n * Creates the element that will be rendered next to the user's pointer\n * and will be used as a preview of the element that is being dragged.\n */\n _createPreviewElement() {\n const previewConfig = this._previewTemplate;\n const previewClass = this.previewClass;\n const previewTemplate = previewConfig ? previewConfig.template : null;\n let preview;\n if (previewTemplate && previewConfig) {\n // Measure the element before we've inserted the preview\n // since the insertion could throw off the measurement.\n const rootRect = previewConfig.matchSize ? this._rootElement.getBoundingClientRect() : null;\n const viewRef = previewConfig.viewContainer.createEmbeddedView(previewTemplate, previewConfig.context);\n viewRef.detectChanges();\n preview = getRootNode(viewRef, this._document);\n this._previewRef = viewRef;\n if (previewConfig.matchSize) {\n matchElementSize(preview, rootRect);\n }\n else {\n preview.style.transform = getTransform(this._pickupPositionOnPage.x, this._pickupPositionOnPage.y);\n }\n }\n else {\n const element = this._rootElement;\n preview = deepCloneNode(element);\n matchElementSize(preview, element.getBoundingClientRect());\n if (this._initialTransform) {\n preview.style.transform = this._initialTransform;\n }\n }\n extendStyles(preview.style, {\n // It's important that we disable the pointer events on the preview, because\n // it can throw off the `document.elementFromPoint` calls in the `CdkDropList`.\n 'pointer-events': 'none',\n // We have to reset the margin, because it can throw off positioning relative to the viewport.\n 'margin': '0',\n 'position': 'fixed',\n 'top': '0',\n 'left': '0',\n 'z-index': `${this._config.zIndex || 1000}`,\n }, dragImportantProperties);\n toggleNativeDragInteractions(preview, false);\n preview.classList.add('cdk-drag-preview');\n preview.setAttribute('dir', this._direction);\n if (previewClass) {\n if (Array.isArray(previewClass)) {\n previewClass.forEach(className => preview.classList.add(className));\n }\n else {\n preview.classList.add(previewClass);\n }\n }\n return preview;\n }\n /**\n * Animates the preview element from its current position to the location of the drop placeholder.\n * @returns Promise that resolves when the animation completes.\n */\n _animatePreviewToPlaceholder() {\n // If the user hasn't moved yet, the transitionend event won't fire.\n if (!this._hasMoved) {\n return Promise.resolve();\n }\n const placeholderRect = this._placeholder.getBoundingClientRect();\n // Apply the class that adds a transition to the preview.\n this._preview.classList.add('cdk-drag-animating');\n // Move the preview to the placeholder position.\n this._applyPreviewTransform(placeholderRect.left, placeholderRect.top);\n // If the element doesn't have a `transition`, the `transitionend` event won't fire. Since\n // we need to trigger a style recalculation in order for the `cdk-drag-animating` class to\n // apply its style, we take advantage of the available info to figure out whether we need to\n // bind the event in the first place.\n const duration = getTransformTransitionDurationInMs(this._preview);\n if (duration === 0) {\n return Promise.resolve();\n }\n return this._ngZone.runOutsideAngular(() => {\n return new Promise(resolve => {\n const handler = ((event) => {\n var _a;\n if (!event ||\n (_getEventTarget(event) === this._preview && event.propertyName === 'transform')) {\n (_a = this._preview) === null || _a === void 0 ? void 0 : _a.removeEventListener('transitionend', handler);\n resolve();\n clearTimeout(timeout);\n }\n });\n // If a transition is short enough, the browser might not fire the `transitionend` event.\n // Since we know how long it's supposed to take, add a timeout with a 50% buffer that'll\n // fire if the transition hasn't completed when it was supposed to.\n const timeout = setTimeout(handler, duration * 1.5);\n this._preview.addEventListener('transitionend', handler);\n });\n });\n }\n /** Creates an element that will be shown instead of the current element while dragging. */\n _createPlaceholderElement() {\n const placeholderConfig = this._placeholderTemplate;\n const placeholderTemplate = placeholderConfig ? placeholderConfig.template : null;\n let placeholder;\n if (placeholderTemplate) {\n this._placeholderRef = placeholderConfig.viewContainer.createEmbeddedView(placeholderTemplate, placeholderConfig.context);\n this._placeholderRef.detectChanges();\n placeholder = getRootNode(this._placeholderRef, this._document);\n }\n else {\n placeholder = deepCloneNode(this._rootElement);\n }\n placeholder.classList.add('cdk-drag-placeholder');\n return placeholder;\n }\n /**\n * Figures out the coordinates at which an element was picked up.\n * @param referenceElement Element that initiated the dragging.\n * @param event Event that initiated the dragging.\n */\n _getPointerPositionInElement(referenceElement, event) {\n const elementRect = this._rootElement.getBoundingClientRect();\n const handleElement = referenceElement === this._rootElement ? null : referenceElement;\n const referenceRect = handleElement ? handleElement.getBoundingClientRect() : elementRect;\n const point = isTouchEvent(event) ? event.targetTouches[0] : event;\n const scrollPosition = this._getViewportScrollPosition();\n const x = point.pageX - referenceRect.left - scrollPosition.left;\n const y = point.pageY - referenceRect.top - scrollPosition.top;\n return {\n x: referenceRect.left - elementRect.left + x,\n y: referenceRect.top - elementRect.top + y,\n };\n }\n /** Determines the point of the page that was touched by the user. */\n _getPointerPositionOnPage(event) {\n const scrollPosition = this._getViewportScrollPosition();\n const point = isTouchEvent(event)\n ? // `touches` will be empty for start/end events so we have to fall back to `changedTouches`.\n // Also note that on real devices we're guaranteed for either `touches` or `changedTouches`\n // to have a value, but Firefox in device emulation mode has a bug where both can be empty\n // for `touchstart` and `touchend` so we fall back to a dummy object in order to avoid\n // throwing an error. The value returned here will be incorrect, but since this only\n // breaks inside a developer tool and the value is only used for secondary information,\n // we can get away with it. See https://bugzilla.mozilla.org/show_bug.cgi?id=1615824.\n event.touches[0] || event.changedTouches[0] || { pageX: 0, pageY: 0 }\n : event;\n const x = point.pageX - scrollPosition.left;\n const y = point.pageY - scrollPosition.top;\n // if dragging SVG element, try to convert from the screen coordinate system to the SVG\n // coordinate system\n if (this._ownerSVGElement) {\n const svgMatrix = this._ownerSVGElement.getScreenCTM();\n if (svgMatrix) {\n const svgPoint = this._ownerSVGElement.createSVGPoint();\n svgPoint.x = x;\n svgPoint.y = y;\n return svgPoint.matrixTransform(svgMatrix.inverse());\n }\n }\n return { x, y };\n }\n /** Gets the pointer position on the page, accounting for any position constraints. */\n _getConstrainedPointerPosition(point) {\n const dropContainerLock = this._dropContainer ? this._dropContainer.lockAxis : null;\n let { x, y } = this.constrainPosition ? this.constrainPosition(point, this) : point;\n if (this.lockAxis === 'x' || dropContainerLock === 'x') {\n y = this._pickupPositionOnPage.y;\n }\n else if (this.lockAxis === 'y' || dropContainerLock === 'y') {\n x = this._pickupPositionOnPage.x;\n }\n if (this._boundaryRect) {\n const { x: pickupX, y: pickupY } = this._pickupPositionInElement;\n const boundaryRect = this._boundaryRect;\n const previewRect = this._previewRect;\n const minY = boundaryRect.top + pickupY;\n const maxY = boundaryRect.bottom - (previewRect.height - pickupY);\n const minX = boundaryRect.left + pickupX;\n const maxX = boundaryRect.right - (previewRect.width - pickupX);\n x = clamp$1(x, minX, maxX);\n y = clamp$1(y, minY, maxY);\n }\n return { x, y };\n }\n /** Updates the current drag delta, based on the user's current pointer position on the page. */\n _updatePointerDirectionDelta(pointerPositionOnPage) {\n const { x, y } = pointerPositionOnPage;\n const delta = this._pointerDirectionDelta;\n const positionSinceLastChange = this._pointerPositionAtLastDirectionChange;\n // Amount of pixels the user has dragged since the last time the direction changed.\n const changeX = Math.abs(x - positionSinceLastChange.x);\n const changeY = Math.abs(y - positionSinceLastChange.y);\n // Because we handle pointer events on a per-pixel basis, we don't want the delta\n // to change for every pixel, otherwise anything that depends on it can look erratic.\n // To make the delta more consistent, we track how much the user has moved since the last\n // delta change and we only update it after it has reached a certain threshold.\n if (changeX > this._config.pointerDirectionChangeThreshold) {\n delta.x = x > positionSinceLastChange.x ? 1 : -1;\n positionSinceLastChange.x = x;\n }\n if (changeY > this._config.pointerDirectionChangeThreshold) {\n delta.y = y > positionSinceLastChange.y ? 1 : -1;\n positionSinceLastChange.y = y;\n }\n return delta;\n }\n /** Toggles the native drag interactions, based on how many handles are registered. */\n _toggleNativeDragInteractions() {\n if (!this._rootElement || !this._handles) {\n return;\n }\n const shouldEnable = this._handles.length > 0 || !this.isDragging();\n if (shouldEnable !== this._nativeInteractionsEnabled) {\n this._nativeInteractionsEnabled = shouldEnable;\n toggleNativeDragInteractions(this._rootElement, shouldEnable);\n }\n }\n /** Removes the manually-added event listeners from the root element. */\n _removeRootElementListeners(element) {\n element.removeEventListener('mousedown', this._pointerDown, activeEventListenerOptions);\n element.removeEventListener('touchstart', this._pointerDown, passiveEventListenerOptions);\n }\n /**\n * Applies a `transform` to the root element, taking into account any existing transforms on it.\n * @param x New transform value along the X axis.\n * @param y New transform value along the Y axis.\n */\n _applyRootElementTransform(x, y) {\n const transform = getTransform(x, y);\n const styles = this._rootElement.style;\n // Cache the previous transform amount only after the first drag sequence, because\n // we don't want our own transforms to stack on top of each other.\n // Should be excluded none because none + translate3d(x, y, x) is invalid css\n if (this._initialTransform == null) {\n this._initialTransform =\n styles.transform && styles.transform != 'none' ? styles.transform : '';\n }\n // Preserve the previous `transform` value, if there was one. Note that we apply our own\n // transform before the user's, because things like rotation can affect which direction\n // the element will be translated towards.\n styles.transform = combineTransforms(transform, this._initialTransform);\n }\n /**\n * Applies a `transform` to the preview, taking into account any existing transforms on it.\n * @param x New transform value along the X axis.\n * @param y New transform value along the Y axis.\n */\n _applyPreviewTransform(x, y) {\n var _a;\n // Only apply the initial transform if the preview is a clone of the original element, otherwise\n // it could be completely different and the transform might not make sense anymore.\n const initialTransform = ((_a = this._previewTemplate) === null || _a === void 0 ? void 0 : _a.template) ? undefined : this._initialTransform;\n const transform = getTransform(x, y);\n this._preview.style.transform = combineTransforms(transform, initialTransform);\n }\n /**\n * Gets the distance that the user has dragged during the current drag sequence.\n * @param currentPosition Current position of the user's pointer.\n */\n _getDragDistance(currentPosition) {\n const pickupPosition = this._pickupPositionOnPage;\n if (pickupPosition) {\n return { x: currentPosition.x - pickupPosition.x, y: currentPosition.y - pickupPosition.y };\n }\n return { x: 0, y: 0 };\n }\n /** Cleans up any cached element dimensions that we don't need after dragging has stopped. */\n _cleanupCachedDimensions() {\n this._boundaryRect = this._previewRect = undefined;\n this._parentPositions.clear();\n }\n /**\n * Checks whether the element is still inside its boundary after the viewport has been resized.\n * If not, the position is adjusted so that the element fits again.\n */\n _containInsideBoundaryOnResize() {\n let { x, y } = this._passiveTransform;\n if ((x === 0 && y === 0) || this.isDragging() || !this._boundaryElement) {\n return;\n }\n const boundaryRect = this._boundaryElement.getBoundingClientRect();\n const elementRect = this._rootElement.getBoundingClientRect();\n // It's possible that the element got hidden away after dragging (e.g. by switching to a\n // different tab). Don't do anything in this case so we don't clear the user's position.\n if ((boundaryRect.width === 0 && boundaryRect.height === 0) ||\n (elementRect.width === 0 && elementRect.height === 0)) {\n return;\n }\n const leftOverflow = boundaryRect.left - elementRect.left;\n const rightOverflow = elementRect.right - boundaryRect.right;\n const topOverflow = boundaryRect.top - elementRect.top;\n const bottomOverflow = elementRect.bottom - boundaryRect.bottom;\n // If the element has become wider than the boundary, we can't\n // do much to make it fit so we just anchor it to the left.\n if (boundaryRect.width > elementRect.width) {\n if (leftOverflow > 0) {\n x += leftOverflow;\n }\n if (rightOverflow > 0) {\n x -= rightOverflow;\n }\n }\n else {\n x = 0;\n }\n // If the element has become taller than the boundary, we can't\n // do much to make it fit so we just anchor it to the top.\n if (boundaryRect.height > elementRect.height) {\n if (topOverflow > 0) {\n y += topOverflow;\n }\n if (bottomOverflow > 0) {\n y -= bottomOverflow;\n }\n }\n else {\n y = 0;\n }\n if (x !== this._passiveTransform.x || y !== this._passiveTransform.y) {\n this.setFreeDragPosition({ y, x });\n }\n }\n /** Gets the drag start delay, based on the event type. */\n _getDragStartDelay(event) {\n const value = this.dragStartDelay;\n if (typeof value === 'number') {\n return value;\n }\n else if (isTouchEvent(event)) {\n return value.touch;\n }\n return value ? value.mouse : 0;\n }\n /** Updates the internal state of the draggable element when scrolling has occurred. */\n _updateOnScroll(event) {\n const scrollDifference = this._parentPositions.handleScroll(event);\n if (scrollDifference) {\n const target = _getEventTarget(event);\n // ClientRect dimensions are based on the scroll position of the page and its parent\n // node so we have to update the cached boundary ClientRect if the user has scrolled.\n if (this._boundaryRect &&\n target !== this._boundaryElement &&\n target.contains(this._boundaryElement)) {\n adjustClientRect(this._boundaryRect, scrollDifference.top, scrollDifference.left);\n }\n this._pickupPositionOnPage.x += scrollDifference.left;\n this._pickupPositionOnPage.y += scrollDifference.top;\n // If we're in free drag mode, we have to update the active transform, because\n // it isn't relative to the viewport like the preview inside a drop list.\n if (!this._dropContainer) {\n this._activeTransform.x -= scrollDifference.left;\n this._activeTransform.y -= scrollDifference.top;\n this._applyRootElementTransform(this._activeTransform.x, this._activeTransform.y);\n }\n }\n }\n /** Gets the scroll position of the viewport. */\n _getViewportScrollPosition() {\n const cachedPosition = this._parentPositions.positions.get(this._document);\n return cachedPosition\n ? cachedPosition.scrollPosition\n : this._viewportRuler.getViewportScrollPosition();\n }\n /**\n * Lazily resolves and returns the shadow root of the element. We do this in a function, rather\n * than saving it in property directly on init, because we want to resolve it as late as possible\n * in order to ensure that the element has been moved into the shadow DOM. Doing it inside the\n * constructor might be too early if the element is inside of something like `ngFor` or `ngIf`.\n */\n _getShadowRoot() {\n if (this._cachedShadowRoot === undefined) {\n this._cachedShadowRoot = _getShadowRoot(this._rootElement);\n }\n return this._cachedShadowRoot;\n }\n /** Gets the element into which the drag preview should be inserted. */\n _getPreviewInsertionPoint(initialParent, shadowRoot) {\n const previewContainer = this._previewContainer || 'global';\n if (previewContainer === 'parent') {\n return initialParent;\n }\n if (previewContainer === 'global') {\n const documentRef = this._document;\n // We can't use the body if the user is in fullscreen mode,\n // because the preview will render under the fullscreen element.\n // TODO(crisbeto): dedupe this with the `FullscreenOverlayContainer` eventually.\n return (shadowRoot ||\n documentRef.fullscreenElement ||\n documentRef.webkitFullscreenElement ||\n documentRef.mozFullScreenElement ||\n documentRef.msFullscreenElement ||\n documentRef.body);\n }\n return coerceElement(previewContainer);\n }\n}\n/**\n * Gets a 3d `transform` that can be applied to an element.\n * @param x Desired position of the element along the X axis.\n * @param y Desired position of the element along the Y axis.\n */\nfunction getTransform(x, y) {\n // Round the transforms since some browsers will\n // blur the elements for sub-pixel transforms.\n return `translate3d(${Math.round(x)}px, ${Math.round(y)}px, 0)`;\n}\n/** Clamps a value between a minimum and a maximum. */\nfunction clamp$1(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\n/** Determines whether an event is a touch event. */\nfunction isTouchEvent(event) {\n // This function is called for every pixel that the user has dragged so we need it to be\n // as fast as possible. Since we only bind mouse events and touch events, we can assume\n // that if the event's name starts with `t`, it's a touch event.\n return event.type[0] === 't';\n}\n/**\n * Gets the root HTML element of an embedded view.\n * If the root is not an HTML element it gets wrapped in one.\n */\nfunction getRootNode(viewRef, _document) {\n const rootNodes = viewRef.rootNodes;\n if (rootNodes.length === 1 && rootNodes[0].nodeType === _document.ELEMENT_NODE) {\n return rootNodes[0];\n }\n const wrapper = _document.createElement('div');\n rootNodes.forEach(node => wrapper.appendChild(node));\n return wrapper;\n}\n/**\n * Matches the target element's size to the source's size.\n * @param target Element that needs to be resized.\n * @param sourceRect Dimensions of the source element.\n */\nfunction matchElementSize(target, sourceRect) {\n target.style.width = `${sourceRect.width}px`;\n target.style.height = `${sourceRect.height}px`;\n target.style.transform = getTransform(sourceRect.left, sourceRect.top);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Moves an item one index in an array to another.\n * @param array Array in which to move the item.\n * @param fromIndex Starting index of the item.\n * @param toIndex Index to which the item should be moved.\n */\nfunction moveItemInArray(array, fromIndex, toIndex) {\n const from = clamp(fromIndex, array.length - 1);\n const to = clamp(toIndex, array.length - 1);\n if (from === to) {\n return;\n }\n const target = array[from];\n const delta = to < from ? -1 : 1;\n for (let i = from; i !== to; i += delta) {\n array[i] = array[i + delta];\n }\n array[to] = target;\n}\n/**\n * Moves an item from one array to another.\n * @param currentArray Array from which to transfer the item.\n * @param targetArray Array into which to put the item.\n * @param currentIndex Index of the item in its current array.\n * @param targetIndex Index at which to insert the item.\n */\nfunction transferArrayItem(currentArray, targetArray, currentIndex, targetIndex) {\n const from = clamp(currentIndex, currentArray.length - 1);\n const to = clamp(targetIndex, targetArray.length);\n if (currentArray.length) {\n targetArray.splice(to, 0, currentArray.splice(from, 1)[0]);\n }\n}\n/**\n * Copies an item from one array to another, leaving it in its\n * original position in current array.\n * @param currentArray Array from which to copy the item.\n * @param targetArray Array into which is copy the item.\n * @param currentIndex Index of the item in its current array.\n * @param targetIndex Index at which to insert the item.\n *\n */\nfunction copyArrayItem(currentArray, targetArray, currentIndex, targetIndex) {\n const to = clamp(targetIndex, targetArray.length);\n if (currentArray.length) {\n targetArray.splice(to, 0, currentArray[currentIndex]);\n }\n}\n/** Clamps a number between zero and a maximum. */\nfunction clamp(value, max) {\n return Math.max(0, Math.min(max, value));\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Proximity, as a ratio to width/height, at which a\n * dragged item will affect the drop container.\n */\nconst DROP_PROXIMITY_THRESHOLD = 0.05;\n/**\n * Proximity, as a ratio to width/height at which to start auto-scrolling the drop list or the\n * viewport. The value comes from trying it out manually until it feels right.\n */\nconst SCROLL_PROXIMITY_THRESHOLD = 0.05;\n/**\n * Reference to a drop list. Used to manipulate or dispose of the container.\n */\nclass DropListRef {\n constructor(element, _dragDropRegistry, _document, _ngZone, _viewportRuler) {\n this._dragDropRegistry = _dragDropRegistry;\n this._ngZone = _ngZone;\n this._viewportRuler = _viewportRuler;\n /** Whether starting a dragging sequence from this container is disabled. */\n this.disabled = false;\n /** Whether sorting items within the list is disabled. */\n this.sortingDisabled = false;\n /**\n * Whether auto-scrolling the view when the user\n * moves their pointer close to the edges is disabled.\n */\n this.autoScrollDisabled = false;\n /** Number of pixels to scroll for each frame when auto-scrolling an element. */\n this.autoScrollStep = 2;\n /**\n * Function that is used to determine whether an item\n * is allowed to be moved into a drop container.\n */\n this.enterPredicate = () => true;\n /** Functions that is used to determine whether an item can be sorted into a particular index. */\n this.sortPredicate = () => true;\n /** Emits right before dragging has started. */\n this.beforeStarted = new Subject();\n /**\n * Emits when the user has moved a new drag item into this container.\n */\n this.entered = new Subject();\n /**\n * Emits when the user removes an item from the container\n * by dragging it into another container.\n */\n this.exited = new Subject();\n /** Emits when the user drops an item inside the container. */\n this.dropped = new Subject();\n /** Emits as the user is swapping items while actively dragging. */\n this.sorted = new Subject();\n /** Whether an item in the list is being dragged. */\n this._isDragging = false;\n /** Cache of the dimensions of all the items inside the container. */\n this._itemPositions = [];\n /**\n * Keeps track of the item that was last swapped with the dragged item, as well as what direction\n * the pointer was moving in when the swap occured and whether the user's pointer continued to\n * overlap with the swapped item after the swapping occurred.\n */\n this._previousSwap = { drag: null, delta: 0, overlaps: false };\n /** Draggable items in the container. */\n this._draggables = [];\n /** Drop lists that are connected to the current one. */\n this._siblings = [];\n /** Direction in which the list is oriented. */\n this._orientation = 'vertical';\n /** Connected siblings that currently have a dragged item. */\n this._activeSiblings = new Set();\n /** Layout direction of the drop list. */\n this._direction = 'ltr';\n /** Subscription to the window being scrolled. */\n this._viewportScrollSubscription = Subscription.EMPTY;\n /** Vertical direction in which the list is currently scrolling. */\n this._verticalScrollDirection = 0 /* NONE */;\n /** Horizontal direction in which the list is currently scrolling. */\n this._horizontalScrollDirection = 0 /* NONE */;\n /** Used to signal to the current auto-scroll sequence when to stop. */\n this._stopScrollTimers = new Subject();\n /** Shadow root of the current element. Necessary for `elementFromPoint` to resolve correctly. */\n this._cachedShadowRoot = null;\n /** Starts the interval that'll auto-scroll the element. */\n this._startScrollInterval = () => {\n this._stopScrolling();\n interval(0, animationFrameScheduler)\n .pipe(takeUntil(this._stopScrollTimers))\n .subscribe(() => {\n const node = this._scrollNode;\n const scrollStep = this.autoScrollStep;\n if (this._verticalScrollDirection === 1 /* UP */) {\n node.scrollBy(0, -scrollStep);\n }\n else if (this._verticalScrollDirection === 2 /* DOWN */) {\n node.scrollBy(0, scrollStep);\n }\n if (this._horizontalScrollDirection === 1 /* LEFT */) {\n node.scrollBy(-scrollStep, 0);\n }\n else if (this._horizontalScrollDirection === 2 /* RIGHT */) {\n node.scrollBy(scrollStep, 0);\n }\n });\n };\n this.element = coerceElement(element);\n this._document = _document;\n this.withScrollableParents([this.element]);\n _dragDropRegistry.registerDropContainer(this);\n this._parentPositions = new ParentPositionTracker(_document, _viewportRuler);\n }\n /** Removes the drop list functionality from the DOM element. */\n dispose() {\n this._stopScrolling();\n this._stopScrollTimers.complete();\n this._viewportScrollSubscription.unsubscribe();\n this.beforeStarted.complete();\n this.entered.complete();\n this.exited.complete();\n this.dropped.complete();\n this.sorted.complete();\n this._activeSiblings.clear();\n this._scrollNode = null;\n this._parentPositions.clear();\n this._dragDropRegistry.removeDropContainer(this);\n }\n /** Whether an item from this list is currently being dragged. */\n isDragging() {\n return this._isDragging;\n }\n /** Starts dragging an item. */\n start() {\n this._draggingStarted();\n this._notifyReceivingSiblings();\n }\n /**\n * Emits an event to indicate that the user moved an item into the container.\n * @param item Item that was moved into the container.\n * @param pointerX Position of the item along the X axis.\n * @param pointerY Position of the item along the Y axis.\n * @param index Index at which the item entered. If omitted, the container will try to figure it\n * out automatically.\n */\n enter(item, pointerX, pointerY, index) {\n this._draggingStarted();\n // If sorting is disabled, we want the item to return to its starting\n // position if the user is returning it to its initial container.\n let newIndex;\n if (index == null) {\n newIndex = this.sortingDisabled ? this._draggables.indexOf(item) : -1;\n if (newIndex === -1) {\n // We use the coordinates of where the item entered the drop\n // zone to figure out at which index it should be inserted.\n newIndex = this._getItemIndexFromPointerPosition(item, pointerX, pointerY);\n }\n }\n else {\n newIndex = index;\n }\n const activeDraggables = this._activeDraggables;\n const currentIndex = activeDraggables.indexOf(item);\n const placeholder = item.getPlaceholderElement();\n let newPositionReference = activeDraggables[newIndex];\n // If the item at the new position is the same as the item that is being dragged,\n // it means that we're trying to restore the item to its initial position. In this\n // case we should use the next item from the list as the reference.\n if (newPositionReference === item) {\n newPositionReference = activeDraggables[newIndex + 1];\n }\n // If we didn't find a new position reference, it means that either the item didn't start off\n // in this container, or that the item requested to be inserted at the end of the list.\n if (!newPositionReference &&\n (newIndex == null || newIndex === -1 || newIndex < activeDraggables.length - 1) &&\n this._shouldEnterAsFirstChild(pointerX, pointerY)) {\n newPositionReference = activeDraggables[0];\n }\n // Since the item may be in the `activeDraggables` already (e.g. if the user dragged it\n // into another container and back again), we have to ensure that it isn't duplicated.\n if (currentIndex > -1) {\n activeDraggables.splice(currentIndex, 1);\n }\n // Don't use items that are being dragged as a reference, because\n // their element has been moved down to the bottom of the body.\n if (newPositionReference && !this._dragDropRegistry.isDragging(newPositionReference)) {\n const element = newPositionReference.getRootElement();\n element.parentElement.insertBefore(placeholder, element);\n activeDraggables.splice(newIndex, 0, item);\n }\n else {\n coerceElement(this.element).appendChild(placeholder);\n activeDraggables.push(item);\n }\n // The transform needs to be cleared so it doesn't throw off the measurements.\n placeholder.style.transform = '';\n // Note that the positions were already cached when we called `start` above,\n // but we need to refresh them since the amount of items has changed and also parent rects.\n this._cacheItemPositions();\n this._cacheParentPositions();\n // Notify siblings at the end so that the item has been inserted into the `activeDraggables`.\n this._notifyReceivingSiblings();\n this.entered.next({ item, container: this, currentIndex: this.getItemIndex(item) });\n }\n /**\n * Removes an item from the container after it was dragged into another container by the user.\n * @param item Item that was dragged out.\n */\n exit(item) {\n this._reset();\n this.exited.next({ item, container: this });\n }\n /**\n * Drops an item into this container.\n * @param item Item being dropped into the container.\n * @param currentIndex Index at which the item should be inserted.\n * @param previousIndex Index of the item when dragging started.\n * @param previousContainer Container from which the item got dragged in.\n * @param isPointerOverContainer Whether the user's pointer was over the\n * container when the item was dropped.\n * @param distance Distance the user has dragged since the start of the dragging sequence.\n */\n drop(item, currentIndex, previousIndex, previousContainer, isPointerOverContainer, distance, dropPoint) {\n this._reset();\n this.dropped.next({\n item,\n currentIndex,\n previousIndex,\n container: this,\n previousContainer,\n isPointerOverContainer,\n distance,\n dropPoint,\n });\n }\n /**\n * Sets the draggable items that are a part of this list.\n * @param items Items that are a part of this list.\n */\n withItems(items) {\n const previousItems = this._draggables;\n this._draggables = items;\n items.forEach(item => item._withDropContainer(this));\n if (this.isDragging()) {\n const draggedItems = previousItems.filter(item => item.isDragging());\n // If all of the items being dragged were removed\n // from the list, abort the current drag sequence.\n if (draggedItems.every(item => items.indexOf(item) === -1)) {\n this._reset();\n }\n else {\n this._cacheItems();\n }\n }\n return this;\n }\n /** Sets the layout direction of the drop list. */\n withDirection(direction) {\n this._direction = direction;\n return this;\n }\n /**\n * Sets the containers that are connected to this one. When two or more containers are\n * connected, the user will be allowed to transfer items between them.\n * @param connectedTo Other containers that the current containers should be connected to.\n */\n connectedTo(connectedTo) {\n this._siblings = connectedTo.slice();\n return this;\n }\n /**\n * Sets the orientation of the container.\n * @param orientation New orientation for the container.\n */\n withOrientation(orientation) {\n this._orientation = orientation;\n return this;\n }\n /**\n * Sets which parent elements are can be scrolled while the user is dragging.\n * @param elements Elements that can be scrolled.\n */\n withScrollableParents(elements) {\n const element = coerceElement(this.element);\n // We always allow the current element to be scrollable\n // so we need to ensure that it's in the array.\n this._scrollableElements =\n elements.indexOf(element) === -1 ? [element, ...elements] : elements.slice();\n return this;\n }\n /** Gets the scrollable parents that are registered with this drop container. */\n getScrollableParents() {\n return this._scrollableElements;\n }\n /**\n * Figures out the index of an item in the container.\n * @param item Item whose index should be determined.\n */\n getItemIndex(item) {\n if (!this._isDragging) {\n return this._draggables.indexOf(item);\n }\n // Items are sorted always by top/left in the cache, however they flow differently in RTL.\n // The rest of the logic still stands no matter what orientation we're in, however\n // we need to invert the array when determining the index.\n const items = this._orientation === 'horizontal' && this._direction === 'rtl'\n ? this._itemPositions.slice().reverse()\n : this._itemPositions;\n return items.findIndex(currentItem => currentItem.drag === item);\n }\n /**\n * Whether the list is able to receive the item that\n * is currently being dragged inside a connected drop list.\n */\n isReceiving() {\n return this._activeSiblings.size > 0;\n }\n /**\n * Sorts an item inside the container based on its position.\n * @param item Item to be sorted.\n * @param pointerX Position of the item along the X axis.\n * @param pointerY Position of the item along the Y axis.\n * @param pointerDelta Direction in which the pointer is moving along each axis.\n */\n _sortItem(item, pointerX, pointerY, pointerDelta) {\n // Don't sort the item if sorting is disabled or it's out of range.\n if (this.sortingDisabled ||\n !this._clientRect ||\n !isPointerNearClientRect(this._clientRect, DROP_PROXIMITY_THRESHOLD, pointerX, pointerY)) {\n return;\n }\n const siblings = this._itemPositions;\n const newIndex = this._getItemIndexFromPointerPosition(item, pointerX, pointerY, pointerDelta);\n if (newIndex === -1 && siblings.length > 0) {\n return;\n }\n const isHorizontal = this._orientation === 'horizontal';\n const currentIndex = siblings.findIndex(currentItem => currentItem.drag === item);\n const siblingAtNewPosition = siblings[newIndex];\n const currentPosition = siblings[currentIndex].clientRect;\n const newPosition = siblingAtNewPosition.clientRect;\n const delta = currentIndex > newIndex ? 1 : -1;\n // How many pixels the item's placeholder should be offset.\n const itemOffset = this._getItemOffsetPx(currentPosition, newPosition, delta);\n // How many pixels all the other items should be offset.\n const siblingOffset = this._getSiblingOffsetPx(currentIndex, siblings, delta);\n // Save the previous order of the items before moving the item to its new index.\n // We use this to check whether an item has been moved as a result of the sorting.\n const oldOrder = siblings.slice();\n // Shuffle the array in place.\n moveItemInArray(siblings, currentIndex, newIndex);\n this.sorted.next({\n previousIndex: currentIndex,\n currentIndex: newIndex,\n container: this,\n item,\n });\n siblings.forEach((sibling, index) => {\n // Don't do anything if the position hasn't changed.\n if (oldOrder[index] === sibling) {\n return;\n }\n const isDraggedItem = sibling.drag === item;\n const offset = isDraggedItem ? itemOffset : siblingOffset;\n const elementToOffset = isDraggedItem\n ? item.getPlaceholderElement()\n : sibling.drag.getRootElement();\n // Update the offset to reflect the new position.\n sibling.offset += offset;\n // Since we're moving the items with a `transform`, we need to adjust their cached\n // client rects to reflect their new position, as well as swap their positions in the cache.\n // Note that we shouldn't use `getBoundingClientRect` here to update the cache, because the\n // elements may be mid-animation which will give us a wrong result.\n if (isHorizontal) {\n // Round the transforms since some browsers will\n // blur the elements, for sub-pixel transforms.\n elementToOffset.style.transform = combineTransforms(`translate3d(${Math.round(sibling.offset)}px, 0, 0)`, sibling.initialTransform);\n adjustClientRect(sibling.clientRect, 0, offset);\n }\n else {\n elementToOffset.style.transform = combineTransforms(`translate3d(0, ${Math.round(sibling.offset)}px, 0)`, sibling.initialTransform);\n adjustClientRect(sibling.clientRect, offset, 0);\n }\n });\n // Note that it's important that we do this after the client rects have been adjusted.\n this._previousSwap.overlaps = isInsideClientRect(newPosition, pointerX, pointerY);\n this._previousSwap.drag = siblingAtNewPosition.drag;\n this._previousSwap.delta = isHorizontal ? pointerDelta.x : pointerDelta.y;\n }\n /**\n * Checks whether the user's pointer is close to the edges of either the\n * viewport or the drop list and starts the auto-scroll sequence.\n * @param pointerX User's pointer position along the x axis.\n * @param pointerY User's pointer position along the y axis.\n */\n _startScrollingIfNecessary(pointerX, pointerY) {\n if (this.autoScrollDisabled) {\n return;\n }\n let scrollNode;\n let verticalScrollDirection = 0 /* NONE */;\n let horizontalScrollDirection = 0 /* NONE */;\n // Check whether we should start scrolling any of the parent containers.\n this._parentPositions.positions.forEach((position, element) => {\n // We have special handling for the `document` below. Also this would be\n // nicer with a for...of loop, but it requires changing a compiler flag.\n if (element === this._document || !position.clientRect || scrollNode) {\n return;\n }\n if (isPointerNearClientRect(position.clientRect, DROP_PROXIMITY_THRESHOLD, pointerX, pointerY)) {\n [verticalScrollDirection, horizontalScrollDirection] = getElementScrollDirections(element, position.clientRect, pointerX, pointerY);\n if (verticalScrollDirection || horizontalScrollDirection) {\n scrollNode = element;\n }\n }\n });\n // Otherwise check if we can start scrolling the viewport.\n if (!verticalScrollDirection && !horizontalScrollDirection) {\n const { width, height } = this._viewportRuler.getViewportSize();\n const clientRect = {\n width,\n height,\n top: 0,\n right: width,\n bottom: height,\n left: 0,\n };\n verticalScrollDirection = getVerticalScrollDirection(clientRect, pointerY);\n horizontalScrollDirection = getHorizontalScrollDirection(clientRect, pointerX);\n scrollNode = window;\n }\n if (scrollNode &&\n (verticalScrollDirection !== this._verticalScrollDirection ||\n horizontalScrollDirection !== this._horizontalScrollDirection ||\n scrollNode !== this._scrollNode)) {\n this._verticalScrollDirection = verticalScrollDirection;\n this._horizontalScrollDirection = horizontalScrollDirection;\n this._scrollNode = scrollNode;\n if ((verticalScrollDirection || horizontalScrollDirection) && scrollNode) {\n this._ngZone.runOutsideAngular(this._startScrollInterval);\n }\n else {\n this._stopScrolling();\n }\n }\n }\n /** Stops any currently-running auto-scroll sequences. */\n _stopScrolling() {\n this._stopScrollTimers.next();\n }\n /** Starts the dragging sequence within the list. */\n _draggingStarted() {\n const styles = coerceElement(this.element).style;\n this.beforeStarted.next();\n this._isDragging = true;\n // We need to disable scroll snapping while the user is dragging, because it breaks automatic\n // scrolling. The browser seems to round the value based on the snapping points which means\n // that we can't increment/decrement the scroll position.\n this._initialScrollSnap = styles.msScrollSnapType || styles.scrollSnapType || '';\n styles.scrollSnapType = styles.msScrollSnapType = 'none';\n this._cacheItems();\n this._viewportScrollSubscription.unsubscribe();\n this._listenToScrollEvents();\n }\n /** Caches the positions of the configured scrollable parents. */\n _cacheParentPositions() {\n const element = coerceElement(this.element);\n this._parentPositions.cache(this._scrollableElements);\n // The list element is always in the `scrollableElements`\n // so we can take advantage of the cached `ClientRect`.\n this._clientRect = this._parentPositions.positions.get(element).clientRect;\n }\n /** Refreshes the position cache of the items and sibling containers. */\n _cacheItemPositions() {\n const isHorizontal = this._orientation === 'horizontal';\n this._itemPositions = this._activeDraggables\n .map(drag => {\n const elementToMeasure = drag.getVisibleElement();\n return {\n drag,\n offset: 0,\n initialTransform: elementToMeasure.style.transform || '',\n clientRect: getMutableClientRect(elementToMeasure),\n };\n })\n .sort((a, b) => {\n return isHorizontal\n ? a.clientRect.left - b.clientRect.left\n : a.clientRect.top - b.clientRect.top;\n });\n }\n /** Resets the container to its initial state. */\n _reset() {\n this._isDragging = false;\n const styles = coerceElement(this.element).style;\n styles.scrollSnapType = styles.msScrollSnapType = this._initialScrollSnap;\n // TODO(crisbeto): may have to wait for the animations to finish.\n this._activeDraggables.forEach(item => {\n var _a;\n const rootElement = item.getRootElement();\n if (rootElement) {\n const initialTransform = (_a = this._itemPositions.find(current => current.drag === item)) === null || _a === void 0 ? void 0 : _a.initialTransform;\n rootElement.style.transform = initialTransform || '';\n }\n });\n this._siblings.forEach(sibling => sibling._stopReceiving(this));\n this._activeDraggables = [];\n this._itemPositions = [];\n this._previousSwap.drag = null;\n this._previousSwap.delta = 0;\n this._previousSwap.overlaps = false;\n this._stopScrolling();\n this._viewportScrollSubscription.unsubscribe();\n this._parentPositions.clear();\n }\n /**\n * Gets the offset in pixels by which the items that aren't being dragged should be moved.\n * @param currentIndex Index of the item currently being dragged.\n * @param siblings All of the items in the list.\n * @param delta Direction in which the user is moving.\n */\n _getSiblingOffsetPx(currentIndex, siblings, delta) {\n const isHorizontal = this._orientation === 'horizontal';\n const currentPosition = siblings[currentIndex].clientRect;\n const immediateSibling = siblings[currentIndex + delta * -1];\n let siblingOffset = currentPosition[isHorizontal ? 'width' : 'height'] * delta;\n if (immediateSibling) {\n const start = isHorizontal ? 'left' : 'top';\n const end = isHorizontal ? 'right' : 'bottom';\n // Get the spacing between the start of the current item and the end of the one immediately\n // after it in the direction in which the user is dragging, or vice versa. We add it to the\n // offset in order to push the element to where it will be when it's inline and is influenced\n // by the `margin` of its siblings.\n if (delta === -1) {\n siblingOffset -= immediateSibling.clientRect[start] - currentPosition[end];\n }\n else {\n siblingOffset += currentPosition[start] - immediateSibling.clientRect[end];\n }\n }\n return siblingOffset;\n }\n /**\n * Gets the offset in pixels by which the item that is being dragged should be moved.\n * @param currentPosition Current position of the item.\n * @param newPosition Position of the item where the current item should be moved.\n * @param delta Direction in which the user is moving.\n */\n _getItemOffsetPx(currentPosition, newPosition, delta) {\n const isHorizontal = this._orientation === 'horizontal';\n let itemOffset = isHorizontal\n ? newPosition.left - currentPosition.left\n : newPosition.top - currentPosition.top;\n // Account for differences in the item width/height.\n if (delta === -1) {\n itemOffset += isHorizontal\n ? newPosition.width - currentPosition.width\n : newPosition.height - currentPosition.height;\n }\n return itemOffset;\n }\n /**\n * Checks if pointer is entering in the first position\n * @param pointerX Position of the user's pointer along the X axis.\n * @param pointerY Position of the user's pointer along the Y axis.\n */\n _shouldEnterAsFirstChild(pointerX, pointerY) {\n if (!this._activeDraggables.length) {\n return false;\n }\n const itemPositions = this._itemPositions;\n const isHorizontal = this._orientation === 'horizontal';\n // `itemPositions` are sorted by position while `activeDraggables` are sorted by child index\n // check if container is using some sort of \"reverse\" ordering (eg: flex-direction: row-reverse)\n const reversed = itemPositions[0].drag !== this._activeDraggables[0];\n if (reversed) {\n const lastItemRect = itemPositions[itemPositions.length - 1].clientRect;\n return isHorizontal ? pointerX >= lastItemRect.right : pointerY >= lastItemRect.bottom;\n }\n else {\n const firstItemRect = itemPositions[0].clientRect;\n return isHorizontal ? pointerX <= firstItemRect.left : pointerY <= firstItemRect.top;\n }\n }\n /**\n * Gets the index of an item in the drop container, based on the position of the user's pointer.\n * @param item Item that is being sorted.\n * @param pointerX Position of the user's pointer along the X axis.\n * @param pointerY Position of the user's pointer along the Y axis.\n * @param delta Direction in which the user is moving their pointer.\n */\n _getItemIndexFromPointerPosition(item, pointerX, pointerY, delta) {\n const isHorizontal = this._orientation === 'horizontal';\n const index = this._itemPositions.findIndex(({ drag, clientRect }) => {\n // Skip the item itself.\n if (drag === item) {\n return false;\n }\n if (delta) {\n const direction = isHorizontal ? delta.x : delta.y;\n // If the user is still hovering over the same item as last time, their cursor hasn't left\n // the item after we made the swap, and they didn't change the direction in which they're\n // dragging, we don't consider it a direction swap.\n if (drag === this._previousSwap.drag &&\n this._previousSwap.overlaps &&\n direction === this._previousSwap.delta) {\n return false;\n }\n }\n return isHorizontal\n ? // Round these down since most browsers report client rects with\n // sub-pixel precision, whereas the pointer coordinates are rounded to pixels.\n pointerX >= Math.floor(clientRect.left) && pointerX < Math.floor(clientRect.right)\n : pointerY >= Math.floor(clientRect.top) && pointerY < Math.floor(clientRect.bottom);\n });\n return index === -1 || !this.sortPredicate(index, item, this) ? -1 : index;\n }\n /** Caches the current items in the list and their positions. */\n _cacheItems() {\n this._activeDraggables = this._draggables.slice();\n this._cacheItemPositions();\n this._cacheParentPositions();\n }\n /**\n * Checks whether the user's pointer is positioned over the container.\n * @param x Pointer position along the X axis.\n * @param y Pointer position along the Y axis.\n */\n _isOverContainer(x, y) {\n return this._clientRect != null && isInsideClientRect(this._clientRect, x, y);\n }\n /**\n * Figures out whether an item should be moved into a sibling\n * drop container, based on its current position.\n * @param item Drag item that is being moved.\n * @param x Position of the item along the X axis.\n * @param y Position of the item along the Y axis.\n */\n _getSiblingContainerFromPosition(item, x, y) {\n return this._siblings.find(sibling => sibling._canReceive(item, x, y));\n }\n /**\n * Checks whether the drop list can receive the passed-in item.\n * @param item Item that is being dragged into the list.\n * @param x Position of the item along the X axis.\n * @param y Position of the item along the Y axis.\n */\n _canReceive(item, x, y) {\n if (!this._clientRect ||\n !isInsideClientRect(this._clientRect, x, y) ||\n !this.enterPredicate(item, this)) {\n return false;\n }\n const elementFromPoint = this._getShadowRoot().elementFromPoint(x, y);\n // If there's no element at the pointer position, then\n // the client rect is probably scrolled out of the view.\n if (!elementFromPoint) {\n return false;\n }\n const nativeElement = coerceElement(this.element);\n // The `ClientRect`, that we're using to find the container over which the user is\n // hovering, doesn't give us any information on whether the element has been scrolled\n // out of the view or whether it's overlapping with other containers. This means that\n // we could end up transferring the item into a container that's invisible or is positioned\n // below another one. We use the result from `elementFromPoint` to get the top-most element\n // at the pointer position and to find whether it's one of the intersecting drop containers.\n return elementFromPoint === nativeElement || nativeElement.contains(elementFromPoint);\n }\n /**\n * Called by one of the connected drop lists when a dragging sequence has started.\n * @param sibling Sibling in which dragging has started.\n */\n _startReceiving(sibling, items) {\n const activeSiblings = this._activeSiblings;\n if (!activeSiblings.has(sibling) &&\n items.every(item => {\n // Note that we have to add an exception to the `enterPredicate` for items that started off\n // in this drop list. The drag ref has logic that allows an item to return to its initial\n // container, if it has left the initial container and none of the connected containers\n // allow it to enter. See `DragRef._updateActiveDropContainer` for more context.\n return this.enterPredicate(item, this) || this._draggables.indexOf(item) > -1;\n })) {\n activeSiblings.add(sibling);\n this._cacheParentPositions();\n this._listenToScrollEvents();\n }\n }\n /**\n * Called by a connected drop list when dragging has stopped.\n * @param sibling Sibling whose dragging has stopped.\n */\n _stopReceiving(sibling) {\n this._activeSiblings.delete(sibling);\n this._viewportScrollSubscription.unsubscribe();\n }\n /**\n * Starts listening to scroll events on the viewport.\n * Used for updating the internal state of the list.\n */\n _listenToScrollEvents() {\n this._viewportScrollSubscription = this._dragDropRegistry\n .scrolled(this._getShadowRoot())\n .subscribe(event => {\n if (this.isDragging()) {\n const scrollDifference = this._parentPositions.handleScroll(event);\n if (scrollDifference) {\n // Since we know the amount that the user has scrolled we can shift all of the\n // client rectangles ourselves. This is cheaper than re-measuring everything and\n // we can avoid inconsistent behavior where we might be measuring the element before\n // its position has changed.\n this._itemPositions.forEach(({ clientRect }) => {\n adjustClientRect(clientRect, scrollDifference.top, scrollDifference.left);\n });\n // We need two loops for this, because we want all of the cached\n // positions to be up-to-date before we re-sort the item.\n this._itemPositions.forEach(({ drag }) => {\n if (this._dragDropRegistry.isDragging(drag)) {\n // We need to re-sort the item manually, because the pointer move\n // events won't be dispatched while the user is scrolling.\n drag._sortFromLastPointerPosition();\n }\n });\n }\n }\n else if (this.isReceiving()) {\n this._cacheParentPositions();\n }\n });\n }\n /**\n * Lazily resolves and returns the shadow root of the element. We do this in a function, rather\n * than saving it in property directly on init, because we want to resolve it as late as possible\n * in order to ensure that the element has been moved into the shadow DOM. Doing it inside the\n * constructor might be too early if the element is inside of something like `ngFor` or `ngIf`.\n */\n _getShadowRoot() {\n if (!this._cachedShadowRoot) {\n const shadowRoot = _getShadowRoot(coerceElement(this.element));\n this._cachedShadowRoot = (shadowRoot || this._document);\n }\n return this._cachedShadowRoot;\n }\n /** Notifies any siblings that may potentially receive the item. */\n _notifyReceivingSiblings() {\n const draggedItems = this._activeDraggables.filter(item => item.isDragging());\n this._siblings.forEach(sibling => sibling._startReceiving(this, draggedItems));\n }\n}\n/**\n * Gets whether the vertical auto-scroll direction of a node.\n * @param clientRect Dimensions of the node.\n * @param pointerY Position of the user's pointer along the y axis.\n */\nfunction getVerticalScrollDirection(clientRect, pointerY) {\n const { top, bottom, height } = clientRect;\n const yThreshold = height * SCROLL_PROXIMITY_THRESHOLD;\n if (pointerY >= top - yThreshold && pointerY <= top + yThreshold) {\n return 1 /* UP */;\n }\n else if (pointerY >= bottom - yThreshold && pointerY <= bottom + yThreshold) {\n return 2 /* DOWN */;\n }\n return 0 /* NONE */;\n}\n/**\n * Gets whether the horizontal auto-scroll direction of a node.\n * @param clientRect Dimensions of the node.\n * @param pointerX Position of the user's pointer along the x axis.\n */\nfunction getHorizontalScrollDirection(clientRect, pointerX) {\n const { left, right, width } = clientRect;\n const xThreshold = width * SCROLL_PROXIMITY_THRESHOLD;\n if (pointerX >= left - xThreshold && pointerX <= left + xThreshold) {\n return 1 /* LEFT */;\n }\n else if (pointerX >= right - xThreshold && pointerX <= right + xThreshold) {\n return 2 /* RIGHT */;\n }\n return 0 /* NONE */;\n}\n/**\n * Gets the directions in which an element node should be scrolled,\n * assuming that the user's pointer is already within it scrollable region.\n * @param element Element for which we should calculate the scroll direction.\n * @param clientRect Bounding client rectangle of the element.\n * @param pointerX Position of the user's pointer along the x axis.\n * @param pointerY Position of the user's pointer along the y axis.\n */\nfunction getElementScrollDirections(element, clientRect, pointerX, pointerY) {\n const computedVertical = getVerticalScrollDirection(clientRect, pointerY);\n const computedHorizontal = getHorizontalScrollDirection(clientRect, pointerX);\n let verticalScrollDirection = 0 /* NONE */;\n let horizontalScrollDirection = 0 /* NONE */;\n // Note that we here we do some extra checks for whether the element is actually scrollable in\n // a certain direction and we only assign the scroll direction if it is. We do this so that we\n // can allow other elements to be scrolled, if the current element can't be scrolled anymore.\n // This allows us to handle cases where the scroll regions of two scrollable elements overlap.\n if (computedVertical) {\n const scrollTop = element.scrollTop;\n if (computedVertical === 1 /* UP */) {\n if (scrollTop > 0) {\n verticalScrollDirection = 1 /* UP */;\n }\n }\n else if (element.scrollHeight - scrollTop > element.clientHeight) {\n verticalScrollDirection = 2 /* DOWN */;\n }\n }\n if (computedHorizontal) {\n const scrollLeft = element.scrollLeft;\n if (computedHorizontal === 1 /* LEFT */) {\n if (scrollLeft > 0) {\n horizontalScrollDirection = 1 /* LEFT */;\n }\n }\n else if (element.scrollWidth - scrollLeft > element.clientWidth) {\n horizontalScrollDirection = 2 /* RIGHT */;\n }\n }\n return [verticalScrollDirection, horizontalScrollDirection];\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Event options that can be used to bind an active, capturing event. */\nconst activeCapturingEventOptions = normalizePassiveListenerOptions({\n passive: false,\n capture: true,\n});\n/**\n * Service that keeps track of all the drag item and drop container\n * instances, and manages global event listeners on the `document`.\n * @docs-private\n */\n// Note: this class is generic, rather than referencing CdkDrag and CdkDropList directly, in order\n// to avoid circular imports. If we were to reference them here, importing the registry into the\n// classes that are registering themselves will introduce a circular import.\nclass DragDropRegistry {\n constructor(_ngZone, _document) {\n this._ngZone = _ngZone;\n /** Registered drop container instances. */\n this._dropInstances = new Set();\n /** Registered drag item instances. */\n this._dragInstances = new Set();\n /** Drag item instances that are currently being dragged. */\n this._activeDragInstances = [];\n /** Keeps track of the event listeners that we've bound to the `document`. */\n this._globalListeners = new Map();\n /**\n * Predicate function to check if an item is being dragged. Moved out into a property,\n * because it'll be called a lot and we don't want to create a new function every time.\n */\n this._draggingPredicate = (item) => item.isDragging();\n /**\n * Emits the `touchmove` or `mousemove` events that are dispatched\n * while the user is dragging a drag item instance.\n */\n this.pointerMove = new Subject();\n /**\n * Emits the `touchend` or `mouseup` events that are dispatched\n * while the user is dragging a drag item instance.\n */\n this.pointerUp = new Subject();\n /**\n * Emits when the viewport has been scrolled while the user is dragging an item.\n * @deprecated To be turned into a private member. Use the `scrolled` method instead.\n * @breaking-change 13.0.0\n */\n this.scroll = new Subject();\n /**\n * Event listener that will prevent the default browser action while the user is dragging.\n * @param event Event whose default action should be prevented.\n */\n this._preventDefaultWhileDragging = (event) => {\n if (this._activeDragInstances.length > 0) {\n event.preventDefault();\n }\n };\n /** Event listener for `touchmove` that is bound even if no dragging is happening. */\n this._persistentTouchmoveListener = (event) => {\n if (this._activeDragInstances.length > 0) {\n // Note that we only want to prevent the default action after dragging has actually started.\n // Usually this is the same time at which the item is added to the `_activeDragInstances`,\n // but it could be pushed back if the user has set up a drag delay or threshold.\n if (this._activeDragInstances.some(this._draggingPredicate)) {\n event.preventDefault();\n }\n this.pointerMove.next(event);\n }\n };\n this._document = _document;\n }\n /** Adds a drop container to the registry. */\n registerDropContainer(drop) {\n if (!this._dropInstances.has(drop)) {\n this._dropInstances.add(drop);\n }\n }\n /** Adds a drag item instance to the registry. */\n registerDragItem(drag) {\n this._dragInstances.add(drag);\n // The `touchmove` event gets bound once, ahead of time, because WebKit\n // won't preventDefault on a dynamically-added `touchmove` listener.\n // See https://bugs.webkit.org/show_bug.cgi?id=184250.\n if (this._dragInstances.size === 1) {\n this._ngZone.runOutsideAngular(() => {\n // The event handler has to be explicitly active,\n // because newer browsers make it passive by default.\n this._document.addEventListener('touchmove', this._persistentTouchmoveListener, activeCapturingEventOptions);\n });\n }\n }\n /** Removes a drop container from the registry. */\n removeDropContainer(drop) {\n this._dropInstances.delete(drop);\n }\n /** Removes a drag item instance from the registry. */\n removeDragItem(drag) {\n this._dragInstances.delete(drag);\n this.stopDragging(drag);\n if (this._dragInstances.size === 0) {\n this._document.removeEventListener('touchmove', this._persistentTouchmoveListener, activeCapturingEventOptions);\n }\n }\n /**\n * Starts the dragging sequence for a drag instance.\n * @param drag Drag instance which is being dragged.\n * @param event Event that initiated the dragging.\n */\n startDragging(drag, event) {\n // Do not process the same drag twice to avoid memory leaks and redundant listeners\n if (this._activeDragInstances.indexOf(drag) > -1) {\n return;\n }\n this._activeDragInstances.push(drag);\n if (this._activeDragInstances.length === 1) {\n const isTouchEvent = event.type.startsWith('touch');\n // We explicitly bind __active__ listeners here, because newer browsers will default to\n // passive ones for `mousemove` and `touchmove`. The events need to be active, because we\n // use `preventDefault` to prevent the page from scrolling while the user is dragging.\n this._globalListeners\n .set(isTouchEvent ? 'touchend' : 'mouseup', {\n handler: (e) => this.pointerUp.next(e),\n options: true,\n })\n .set('scroll', {\n handler: (e) => this.scroll.next(e),\n // Use capturing so that we pick up scroll changes in any scrollable nodes that aren't\n // the document. See https://github.com/angular/components/issues/17144.\n options: true,\n })\n // Preventing the default action on `mousemove` isn't enough to disable text selection\n // on Safari so we need to prevent the selection event as well. Alternatively this can\n // be done by setting `user-select: none` on the `body`, however it has causes a style\n // recalculation which can be expensive on pages with a lot of elements.\n .set('selectstart', {\n handler: this._preventDefaultWhileDragging,\n options: activeCapturingEventOptions,\n });\n // We don't have to bind a move event for touch drag sequences, because\n // we already have a persistent global one bound from `registerDragItem`.\n if (!isTouchEvent) {\n this._globalListeners.set('mousemove', {\n handler: (e) => this.pointerMove.next(e),\n options: activeCapturingEventOptions,\n });\n }\n this._ngZone.runOutsideAngular(() => {\n this._globalListeners.forEach((config, name) => {\n this._document.addEventListener(name, config.handler, config.options);\n });\n });\n }\n }\n /** Stops dragging a drag item instance. */\n stopDragging(drag) {\n const index = this._activeDragInstances.indexOf(drag);\n if (index > -1) {\n this._activeDragInstances.splice(index, 1);\n if (this._activeDragInstances.length === 0) {\n this._clearGlobalListeners();\n }\n }\n }\n /** Gets whether a drag item instance is currently being dragged. */\n isDragging(drag) {\n return this._activeDragInstances.indexOf(drag) > -1;\n }\n /**\n * Gets a stream that will emit when any element on the page is scrolled while an item is being\n * dragged.\n * @param shadowRoot Optional shadow root that the current dragging sequence started from.\n * Top-level listeners won't pick up events coming from the shadow DOM so this parameter can\n * be used to include an additional top-level listener at the shadow root level.\n */\n scrolled(shadowRoot) {\n const streams = [this.scroll];\n if (shadowRoot && shadowRoot !== this._document) {\n // Note that this is basically the same as `fromEvent` from rjxs, but we do it ourselves,\n // because we want to guarantee that the event is bound outside of the `NgZone`. With\n // `fromEvent` it'll only happen if the subscription is outside the `NgZone`.\n streams.push(new Observable((observer) => {\n return this._ngZone.runOutsideAngular(() => {\n const eventOptions = true;\n const callback = (event) => {\n if (this._activeDragInstances.length) {\n observer.next(event);\n }\n };\n shadowRoot.addEventListener('scroll', callback, eventOptions);\n return () => {\n shadowRoot.removeEventListener('scroll', callback, eventOptions);\n };\n });\n }));\n }\n return merge(...streams);\n }\n ngOnDestroy() {\n this._dragInstances.forEach(instance => this.removeDragItem(instance));\n this._dropInstances.forEach(instance => this.removeDropContainer(instance));\n this._clearGlobalListeners();\n this.pointerMove.complete();\n this.pointerUp.complete();\n }\n /** Clears out the global event listeners from the `document`. */\n _clearGlobalListeners() {\n this._globalListeners.forEach((config, name) => {\n this._document.removeEventListener(name, config.handler, config.options);\n });\n this._globalListeners.clear();\n }\n}\nDragDropRegistry.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.2.0\", ngImport: i0, type: DragDropRegistry, deps: [{ token: i0.NgZone }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nDragDropRegistry.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.2.0\", ngImport: i0, type: DragDropRegistry, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.2.0\", ngImport: i0, type: DragDropRegistry, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () {\n return [{ type: i0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }];\n } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Default configuration to be used when creating a `DragRef`. */\nconst DEFAULT_CONFIG = {\n dragStartThreshold: 5,\n pointerDirectionChangeThreshold: 5,\n};\n/**\n * Service that allows for drag-and-drop functionality to be attached to DOM elements.\n */\nclass DragDrop {\n constructor(_document, _ngZone, _viewportRuler, _dragDropRegistry) {\n this._document = _document;\n this._ngZone = _ngZone;\n this._viewportRuler = _viewportRuler;\n this._dragDropRegistry = _dragDropRegistry;\n }\n /**\n * Turns an element into a draggable item.\n * @param element Element to which to attach the dragging functionality.\n * @param config Object used to configure the dragging behavior.\n */\n createDrag(element, config = DEFAULT_CONFIG) {\n return new DragRef(element, config, this._document, this._ngZone, this._viewportRuler, this._dragDropRegistry);\n }\n /**\n * Turns an element into a drop list.\n * @param element Element to which to attach the drop list functionality.\n */\n createDropList(element) {\n return new DropListRef(element, this._dragDropRegistry, this._document, this._ngZone, this._viewportRuler);\n }\n}\nDragDrop.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.2.0\", ngImport: i0, type: DragDrop, deps: [{ token: DOCUMENT }, { token: i0.NgZone }, { token: i1.ViewportRuler }, { token: DragDropRegistry }], target: i0.ɵɵFactoryTarget.Injectable });\nDragDrop.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.2.0\", ngImport: i0, type: DragDrop, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.2.0\", ngImport: i0, type: DragDrop, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i0.NgZone }, { type: i1.ViewportRuler }, { type: DragDropRegistry }];\n } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Injection token that can be used for a `CdkDrag` to provide itself as a parent to the\n * drag-specific child directive (`CdkDragHandle`, `CdkDragPreview` etc.). Used primarily\n * to avoid circular imports.\n * @docs-private\n */\nconst CDK_DRAG_PARENT = new InjectionToken('CDK_DRAG_PARENT');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Injection token that can be used to reference instances of `CdkDropListGroup`. It serves as\n * alternative token to the actual `CdkDropListGroup` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst CDK_DROP_LIST_GROUP = new InjectionToken('CdkDropListGroup');\n/**\n * Declaratively connects sibling `cdkDropList` instances together. All of the `cdkDropList`\n * elements that are placed inside a `cdkDropListGroup` will be connected to each other\n * automatically. Can be used as an alternative to the `cdkDropListConnectedTo` input\n * from `cdkDropList`.\n */\nclass CdkDropListGroup {\n constructor() {\n /** Drop lists registered inside the group. */\n this._items = new Set();\n this._disabled = false;\n }\n /** Whether starting a dragging sequence from inside this group is disabled. */\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n }\n ngOnDestroy() {\n this._items.clear();\n }\n}\nCdkDropListGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.2.0\", ngImport: i0, type: CdkDropListGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nCdkDropListGroup.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.2.0\", type: CdkDropListGroup, selector: \"[cdkDropListGroup]\", inputs: { disabled: [\"cdkDropListGroupDisabled\", \"disabled\"] }, providers: [{ provide: CDK_DROP_LIST_GROUP, useExisting: CdkDropListGroup }], exportAs: [\"cdkDropListGroup\"], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.2.0\", ngImport: i0, type: CdkDropListGroup, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkDropListGroup]',\n exportAs: 'cdkDropListGroup',\n providers: [{ provide: CDK_DROP_LIST_GROUP, useExisting: CdkDropListGroup }],\n }]\n }], propDecorators: { disabled: [{\n type: Input,\n args: ['cdkDropListGroupDisabled']\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Injection token that can be used to configure the\n * behavior of the drag&drop-related components.\n */\nconst CDK_DRAG_CONFIG = new InjectionToken('CDK_DRAG_CONFIG');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Asserts that a particular node is an element.\n * @param node Node to be checked.\n * @param name Name to attach to the error message.\n */\nfunction assertElementNode(node, name) {\n if (node.nodeType !== 1) {\n throw Error(`${name} must be attached to an element node. ` + `Currently attached to \"${node.nodeName}\".`);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Counter used to generate unique ids for drop zones. */\nlet _uniqueIdCounter = 0;\n/**\n * Injection token that can be used to reference instances of `CdkDropList`. It serves as\n * alternative token to the actual `CdkDropList` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst CDK_DROP_LIST = new InjectionToken('CdkDropList');\n/** Container that wraps a set of draggable items. */\nclass CdkDropList {\n constructor(\n /** Element that the drop list is attached to. */\n element, dragDrop, _changeDetectorRef, _scrollDispatcher, _dir, _group, config) {\n this.element = element;\n this._changeDetectorRef = _changeDetectorRef;\n this._scrollDispatcher = _scrollDispatcher;\n this._dir = _dir;\n this._group = _group;\n /** Emits when the list has been destroyed. */\n this._destroyed = new Subject();\n /**\n * Other draggable containers that this container is connected to and into which the\n * container's items can be transferred. Can either be references to other drop containers,\n * or their unique IDs.\n */\n this.connectedTo = [];\n /**\n * Unique ID for the drop zone. Can be used as a reference\n * in the `connectedTo` of another `CdkDropList`.\n */\n this.id = `cdk-drop-list-${_uniqueIdCounter++}`;\n /**\n * Function that is used to determine whether an item\n * is allowed to be moved into a drop container.\n */\n this.enterPredicate = () => true;\n /** Functions that is used to determine whether an item can be sorted into a particular index. */\n this.sortPredicate = () => true;\n /** Emits when the user drops an item inside the container. */\n this.dropped = new EventEmitter();\n /**\n * Emits when the user has moved a new drag item into this container.\n */\n this.entered = new EventEmitter();\n /**\n * Emits when the user removes an item from the container\n * by dragging it into another container.\n */\n this.exited = new EventEmitter();\n /** Emits as the user is swapping items while actively dragging. */\n this.sorted = new EventEmitter();\n /**\n * Keeps track of the items that are registered with this container. Historically we used to\n * do this with a `ContentChildren` query, however queries don't handle transplanted views very\n * well which means that we can't handle cases like dragging the headers of a `mat-table`\n * correctly. What we do instead is to have the items register themselves with the container\n * and then we sort them based on their position in the DOM.\n */\n this._unsortedItems = new Set();\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n assertElementNode(element.nativeElement, 'cdkDropList');\n }\n this._dropListRef = dragDrop.createDropList(element);\n this._dropListRef.data = this;\n if (config) {\n this._assignDefaults(config);\n }\n this._dropListRef.enterPredicate = (drag, drop) => {\n return this.enterPredicate(drag.data, drop.data);\n };\n this._dropListRef.sortPredicate = (index, drag, drop) => {\n return this.sortPredicate(index, drag.data, drop.data);\n };\n this._setupInputSyncSubscription(this._dropListRef);\n this._handleEvents(this._dropListRef);\n CdkDropList._dropLists.push(this);\n if (_group) {\n _group._items.add(this);\n }\n }\n /** Whether starting a dragging sequence from this container is disabled. */\n get disabled() {\n return this._disabled || (!!this._group && this._group.disabled);\n }\n set disabled(value) {\n // Usually we sync the directive and ref state right before dragging starts, in order to have\n // a single point of failure and to avoid having to use setters for everything. `disabled` is\n // a special case, because it can prevent the `beforeStarted` event from firing, which can lock\n // the user in a disabled state, so we also need to sync it as it's being set.\n this._dropListRef.disabled = this._disabled = coerceBooleanProperty(value);\n }\n /** Registers an items with the drop list. */\n addItem(item) {\n this._unsortedItems.add(item);\n if (this._dropListRef.isDragging()) {\n this._syncItemsWithRef();\n }\n }\n /** Removes an item from the drop list. */\n removeItem(item) {\n this._unsortedItems.delete(item);\n if (this._dropListRef.isDragging()) {\n this._syncItemsWithRef();\n }\n }\n /** Gets the registered items in the list, sorted by their position in the DOM. */\n getSortedItems() {\n return Array.from(this._unsortedItems).sort((a, b) => {\n const documentPosition = a._dragRef\n .getVisibleElement()\n .compareDocumentPosition(b._dragRef.getVisibleElement());\n // `compareDocumentPosition` returns a bitmask so we have to use a bitwise operator.\n // https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition\n // tslint:disable-next-line:no-bitwise\n return documentPosition & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1;\n });\n }\n ngOnDestroy() {\n const index = CdkDropList._dropLists.indexOf(this);\n if (index > -1) {\n CdkDropList._dropLists.splice(index, 1);\n }\n if (this._group) {\n this._group._items.delete(this);\n }\n this._unsortedItems.clear();\n this._dropListRef.dispose();\n this._destroyed.next();\n this._destroyed.complete();\n }\n /** Syncs the inputs of the CdkDropList with the options of the underlying DropListRef. */\n _setupInputSyncSubscription(ref) {\n if (this._dir) {\n this._dir.change\n .pipe(startWith(this._dir.value), takeUntil(this._destroyed))\n .subscribe(value => ref.withDirection(value));\n }\n ref.beforeStarted.subscribe(() => {\n const siblings = coerceArray(this.connectedTo).map(drop => {\n if (typeof drop === 'string') {\n const correspondingDropList = CdkDropList._dropLists.find(list => list.id === drop);\n if (!correspondingDropList && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n console.warn(`CdkDropList could not find connected drop list with id \"${drop}\"`);\n }\n return correspondingDropList;\n }\n return drop;\n });\n if (this._group) {\n this._group._items.forEach(drop => {\n if (siblings.indexOf(drop) === -1) {\n siblings.push(drop);\n }\n });\n }\n // Note that we resolve the scrollable parents here so that we delay the resolution\n // as long as possible, ensuring that the element is in its final place in the DOM.\n if (!this._scrollableParentsResolved) {\n const scrollableParents = this._scrollDispatcher\n .getAncestorScrollContainers(this.element)\n .map(scrollable => scrollable.getElementRef().nativeElement);\n this._dropListRef.withScrollableParents(scrollableParents);\n // Only do this once since it involves traversing the DOM and the parents\n // shouldn't be able to change without the drop list being destroyed.\n this._scrollableParentsResolved = true;\n }\n ref.disabled = this.disabled;\n ref.lockAxis = this.lockAxis;\n ref.sortingDisabled = coerceBooleanProperty(this.sortingDisabled);\n ref.autoScrollDisabled = coerceBooleanProperty(this.autoScrollDisabled);\n ref.autoScrollStep = coerceNumberProperty(this.autoScrollStep, 2);\n ref\n .connectedTo(siblings.filter(drop => drop && drop !== this).map(list => list._dropListRef))\n .withOrientation(this.orientation);\n });\n }\n /** Handles events from the underlying DropListRef. */\n _handleEvents(ref) {\n ref.beforeStarted.subscribe(() => {\n this._syncItemsWithRef();\n this._changeDetectorRef.markForCheck();\n });\n ref.entered.subscribe(event => {\n this.entered.emit({\n container: this,\n item: event.item.data,\n currentIndex: event.currentIndex,\n });\n });\n ref.exited.subscribe(event => {\n this.exited.emit({\n container: this,\n item: event.item.data,\n });\n this._changeDetectorRef.markForCheck();\n });\n ref.sorted.subscribe(event => {\n this.sorted.emit({\n previousIndex: event.previousIndex,\n currentIndex: event.currentIndex,\n container: this,\n item: event.item.data,\n });\n });\n ref.dropped.subscribe(event => {\n this.dropped.emit({\n previousIndex: event.previousIndex,\n currentIndex: event.currentIndex,\n previousContainer: event.previousContainer.data,\n container: event.container.data,\n item: event.item.data,\n isPointerOverContainer: event.isPointerOverContainer,\n distance: event.distance,\n dropPoint: event.dropPoint,\n });\n // Mark for check since all of these events run outside of change\n // detection and we're not guaranteed for something else to have triggered it.\n this._changeDetectorRef.markForCheck();\n });\n }\n /** Assigns the default input values based on a provided config object. */\n _assignDefaults(config) {\n const { lockAxis, draggingDisabled, sortingDisabled, listAutoScrollDisabled, listOrientation } = config;\n this.disabled = draggingDisabled == null ? false : draggingDisabled;\n this.sortingDisabled = sortingDisabled == null ? false : sortingDisabled;\n this.autoScrollDisabled = listAutoScrollDisabled == null ? false : listAutoScrollDisabled;\n this.orientation = listOrientation || 'vertical';\n if (lockAxis) {\n this.lockAxis = lockAxis;\n }\n }\n /** Syncs up the registered drag items with underlying drop list ref. */\n _syncItemsWithRef() {\n this._dropListRef.withItems(this.getSortedItems().map(item => item._dragRef));\n }\n}\n/** Keeps track of the drop lists that are currently on the page. */\nCdkDropList._dropLists = [];\nCdkDropList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.2.0\", ngImport: i0, type: CdkDropList, deps: [{ token: i0.ElementRef }, { token: DragDrop }, { token: i0.ChangeDetectorRef }, { token: i1.ScrollDispatcher }, { token: i3.Directionality, optional: true }, { token: CDK_DROP_LIST_GROUP, optional: true, skipSelf: true }, { token: CDK_DRAG_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nCdkDropList.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.2.0\", type: CdkDropList, selector: \"[cdkDropList], cdk-drop-list\", inputs: { connectedTo: [\"cdkDropListConnectedTo\", \"connectedTo\"], data: [\"cdkDropListData\", \"data\"], orientation: [\"cdkDropListOrientation\", \"orientation\"], id: \"id\", lockAxis: [\"cdkDropListLockAxis\", \"lockAxis\"], disabled: [\"cdkDropListDisabled\", \"disabled\"], sortingDisabled: [\"cdkDropListSortingDisabled\", \"sortingDisabled\"], enterPredicate: [\"cdkDropListEnterPredicate\", \"enterPredicate\"], sortPredicate: [\"cdkDropListSortPredicate\", \"sortPredicate\"], autoScrollDisabled: [\"cdkDropListAutoScrollDisabled\", \"autoScrollDisabled\"], autoScrollStep: [\"cdkDropListAutoScrollStep\", \"autoScrollStep\"] }, outputs: { dropped: \"cdkDropListDropped\", entered: \"cdkDropListEntered\", exited: \"cdkDropListExited\", sorted: \"cdkDropListSorted\" }, host: { properties: { \"attr.id\": \"id\", \"class.cdk-drop-list-disabled\": \"disabled\", \"class.cdk-drop-list-dragging\": \"_dropListRef.isDragging()\", \"class.cdk-drop-list-receiving\": \"_dropListRef.isReceiving()\" }, classAttribute: \"cdk-drop-list\" }, providers: [\n // Prevent child drop lists from picking up the same group as their parent.\n { provide: CDK_DROP_LIST_GROUP, useValue: undefined },\n { provide: CDK_DROP_LIST, useExisting: CdkDropList },\n ], exportAs: [\"cdkDropList\"], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.2.0\", ngImport: i0, type: CdkDropList, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkDropList], cdk-drop-list',\n exportAs: 'cdkDropList',\n providers: [\n // Prevent child drop lists from picking up the same group as their parent.\n { provide: CDK_DROP_LIST_GROUP, useValue: undefined },\n { provide: CDK_DROP_LIST, useExisting: CdkDropList },\n ],\n host: {\n 'class': 'cdk-drop-list',\n '[attr.id]': 'id',\n '[class.cdk-drop-list-disabled]': 'disabled',\n '[class.cdk-drop-list-dragging]': '_dropListRef.isDragging()',\n '[class.cdk-drop-list-receiving]': '_dropListRef.isReceiving()',\n },\n }]\n }], ctorParameters: function () {\n return [{ type: i0.ElementRef }, { type: DragDrop }, { type: i0.ChangeDetectorRef }, { type: i1.ScrollDispatcher }, { type: i3.Directionality, decorators: [{\n type: Optional\n }] }, { type: CdkDropListGroup, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [CDK_DROP_LIST_GROUP]\n }, {\n type: SkipSelf\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [CDK_DRAG_CONFIG]\n }] }];\n }, propDecorators: { connectedTo: [{\n type: Input,\n args: ['cdkDropListConnectedTo']\n }], data: [{\n type: Input,\n args: ['cdkDropListData']\n }], orientation: [{\n type: Input,\n args: ['cdkDropListOrientation']\n }], id: [{\n type: Input\n }], lockAxis: [{\n type: Input,\n args: ['cdkDropListLockAxis']\n }], disabled: [{\n type: Input,\n args: ['cdkDropListDisabled']\n }], sortingDisabled: [{\n type: Input,\n args: ['cdkDropListSortingDisabled']\n }], enterPredicate: [{\n type: Input,\n args: ['cdkDropListEnterPredicate']\n }], sortPredicate: [{\n type: Input,\n args: ['cdkDropListSortPredicate']\n }], autoScrollDisabled: [{\n type: Input,\n args: ['cdkDropListAutoScrollDisabled']\n }], autoScrollStep: [{\n type: Input,\n args: ['cdkDropListAutoScrollStep']\n }], dropped: [{\n type: Output,\n args: ['cdkDropListDropped']\n }], entered: [{\n type: Output,\n args: ['cdkDropListEntered']\n }], exited: [{\n type: Output,\n args: ['cdkDropListExited']\n }], sorted: [{\n type: Output,\n args: ['cdkDropListSorted']\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Injection token that can be used to reference instances of `CdkDragHandle`. It serves as\n * alternative token to the actual `CdkDragHandle` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst CDK_DRAG_HANDLE = new InjectionToken('CdkDragHandle');\n/** Handle that can be used to drag a CdkDrag instance. */\nclass CdkDragHandle {\n constructor(element, parentDrag) {\n this.element = element;\n /** Emits when the state of the handle has changed. */\n this._stateChanges = new Subject();\n this._disabled = false;\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n assertElementNode(element.nativeElement, 'cdkDragHandle');\n }\n this._parentDrag = parentDrag;\n }\n /** Whether starting to drag through this handle is disabled. */\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n this._stateChanges.next(this);\n }\n ngOnDestroy() {\n this._stateChanges.complete();\n }\n}\nCdkDragHandle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.2.0\", ngImport: i0, type: CdkDragHandle, deps: [{ token: i0.ElementRef }, { token: CDK_DRAG_PARENT, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive });\nCdkDragHandle.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.2.0\", type: CdkDragHandle, selector: \"[cdkDragHandle]\", inputs: { disabled: [\"cdkDragHandleDisabled\", \"disabled\"] }, host: { classAttribute: \"cdk-drag-handle\" }, providers: [{ provide: CDK_DRAG_HANDLE, useExisting: CdkDragHandle }], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.2.0\", ngImport: i0, type: CdkDragHandle, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkDragHandle]',\n host: {\n 'class': 'cdk-drag-handle',\n },\n providers: [{ provide: CDK_DRAG_HANDLE, useExisting: CdkDragHandle }],\n }]\n }], ctorParameters: function () {\n return [{ type: i0.ElementRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [CDK_DRAG_PARENT]\n }, {\n type: Optional\n }, {\n type: SkipSelf\n }] }];\n }, propDecorators: { disabled: [{\n type: Input,\n args: ['cdkDragHandleDisabled']\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Injection token that can be used to reference instances of `CdkDragPlaceholder`. It serves as\n * alternative token to the actual `CdkDragPlaceholder` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst CDK_DRAG_PLACEHOLDER = new InjectionToken('CdkDragPlaceholder');\n/**\n * Element that will be used as a template for the placeholder of a CdkDrag when\n * it is being dragged. The placeholder is displayed in place of the element being dragged.\n */\nclass CdkDragPlaceholder {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nCdkDragPlaceholder.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.2.0\", ngImport: i0, type: CdkDragPlaceholder, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\nCdkDragPlaceholder.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.2.0\", type: CdkDragPlaceholder, selector: \"ng-template[cdkDragPlaceholder]\", inputs: { data: \"data\" }, providers: [{ provide: CDK_DRAG_PLACEHOLDER, useExisting: CdkDragPlaceholder }], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.2.0\", ngImport: i0, type: CdkDragPlaceholder, decorators: [{\n type: Directive,\n args: [{\n selector: 'ng-template[cdkDragPlaceholder]',\n providers: [{ provide: CDK_DRAG_PLACEHOLDER, useExisting: CdkDragPlaceholder }],\n }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; }, propDecorators: { data: [{\n type: Input\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Injection token that can be used to reference instances of `CdkDragPreview`. It serves as\n * alternative token to the actual `CdkDragPreview` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst CDK_DRAG_PREVIEW = new InjectionToken('CdkDragPreview');\n/**\n * Element that will be used as a template for the preview\n * of a CdkDrag when it is being dragged.\n */\nclass CdkDragPreview {\n constructor(templateRef) {\n this.templateRef = templateRef;\n this._matchSize = false;\n }\n /** Whether the preview should preserve the same size as the item that is being dragged. */\n get matchSize() {\n return this._matchSize;\n }\n set matchSize(value) {\n this._matchSize = coerceBooleanProperty(value);\n }\n}\nCdkDragPreview.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.2.0\", ngImport: i0, type: CdkDragPreview, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\nCdkDragPreview.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.2.0\", type: CdkDragPreview, selector: \"ng-template[cdkDragPreview]\", inputs: { data: \"data\", matchSize: \"matchSize\" }, providers: [{ provide: CDK_DRAG_PREVIEW, useExisting: CdkDragPreview }], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.2.0\", ngImport: i0, type: CdkDragPreview, decorators: [{\n type: Directive,\n args: [{\n selector: 'ng-template[cdkDragPreview]',\n providers: [{ provide: CDK_DRAG_PREVIEW, useExisting: CdkDragPreview }],\n }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; }, propDecorators: { data: [{\n type: Input\n }], matchSize: [{\n type: Input\n }] } });\n\nconst DRAG_HOST_CLASS = 'cdk-drag';\n/** Element that can be moved inside a CdkDropList container. */\nclass CdkDrag {\n constructor(\n /** Element that the draggable is attached to. */\n element, \n /** Droppable container that the draggable is a part of. */\n dropContainer, \n /**\n * @deprecated `_document` parameter no longer being used and will be removed.\n * @breaking-change 12.0.0\n */\n _document, _ngZone, _viewContainerRef, config, _dir, dragDrop, _changeDetectorRef, _selfHandle, _parentDrag) {\n this.element = element;\n this.dropContainer = dropContainer;\n this._ngZone = _ngZone;\n this._viewContainerRef = _viewContainerRef;\n this._dir = _dir;\n this._changeDetectorRef = _changeDetectorRef;\n this._selfHandle = _selfHandle;\n this._parentDrag = _parentDrag;\n this._destroyed = new Subject();\n /** Emits when the user starts dragging the item. */\n this.started = new EventEmitter();\n /** Emits when the user has released a drag item, before any animations have started. */\n this.released = new EventEmitter();\n /** Emits when the user stops dragging an item in the container. */\n this.ended = new EventEmitter();\n /** Emits when the user has moved the item into a new container. */\n this.entered = new EventEmitter();\n /** Emits when the user removes the item its container by dragging it into another container. */\n this.exited = new EventEmitter();\n /** Emits when the user drops the item inside a container. */\n this.dropped = new EventEmitter();\n /**\n * Emits as the user is dragging the item. Use with caution,\n * because this event will fire for every pixel that the user has dragged.\n */\n this.moved = new Observable((observer) => {\n const subscription = this._dragRef.moved\n .pipe(map(movedEvent => ({\n source: this,\n pointerPosition: movedEvent.pointerPosition,\n event: movedEvent.event,\n delta: movedEvent.delta,\n distance: movedEvent.distance,\n })))\n .subscribe(observer);\n return () => {\n subscription.unsubscribe();\n };\n });\n this._dragRef = dragDrop.createDrag(element, {\n dragStartThreshold: config && config.dragStartThreshold != null ? config.dragStartThreshold : 5,\n pointerDirectionChangeThreshold: config && config.pointerDirectionChangeThreshold != null\n ? config.pointerDirectionChangeThreshold\n : 5,\n zIndex: config === null || config === void 0 ? void 0 : config.zIndex,\n });\n this._dragRef.data = this;\n // We have to keep track of the drag instances in order to be able to match an element to\n // a drag instance. We can't go through the global registry of `DragRef`, because the root\n // element could be different.\n CdkDrag._dragInstances.push(this);\n if (config) {\n this._assignDefaults(config);\n }\n // Note that usually the container is assigned when the drop list is picks up the item, but in\n // some cases (mainly transplanted views with OnPush, see #18341) we may end up in a situation\n // where there are no items on the first change detection pass, but the items get picked up as\n // soon as the user triggers another pass by dragging. This is a problem, because the item would\n // have to switch from standalone mode to drag mode in the middle of the dragging sequence which\n // is too late since the two modes save different kinds of information. We work around it by\n // assigning the drop container both from here and the list.\n if (dropContainer) {\n this._dragRef._withDropContainer(dropContainer._dropListRef);\n dropContainer.addItem(this);\n }\n this._syncInputs(this._dragRef);\n this._handleEvents(this._dragRef);\n }\n /** Whether starting to drag this element is disabled. */\n get disabled() {\n return this._disabled || (this.dropContainer && this.dropContainer.disabled);\n }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n this._dragRef.disabled = this._disabled;\n }\n /**\n * Returns the element that is being used as a placeholder\n * while the current element is being dragged.\n */\n getPlaceholderElement() {\n return this._dragRef.getPlaceholderElement();\n }\n /** Returns the root draggable element. */\n getRootElement() {\n return this._dragRef.getRootElement();\n }\n /** Resets a standalone drag item to its initial position. */\n reset() {\n this._dragRef.reset();\n }\n /**\n * Gets the pixel coordinates of the draggable outside of a drop container.\n */\n getFreeDragPosition() {\n return this._dragRef.getFreeDragPosition();\n }\n ngAfterViewInit() {\n // Normally this isn't in the zone, but it can cause major performance regressions for apps\n // using `zone-patch-rxjs` because it'll trigger a change detection when it unsubscribes.\n this._ngZone.runOutsideAngular(() => {\n // We need to wait for the zone to stabilize, in order for the reference\n // element to be in the proper place in the DOM. This is mostly relevant\n // for draggable elements inside portals since they get stamped out in\n // their original DOM position and then they get transferred to the portal.\n this._ngZone.onStable.pipe(take(1), takeUntil(this._destroyed)).subscribe(() => {\n this._updateRootElement();\n this._setupHandlesListener();\n if (this.freeDragPosition) {\n this._dragRef.setFreeDragPosition(this.freeDragPosition);\n }\n });\n });\n }\n ngOnChanges(changes) {\n const rootSelectorChange = changes['rootElementSelector'];\n const positionChange = changes['freeDragPosition'];\n // We don't have to react to the first change since it's being\n // handled in `ngAfterViewInit` where it needs to be deferred.\n if (rootSelectorChange && !rootSelectorChange.firstChange) {\n this._updateRootElement();\n }\n // Skip the first change since it's being handled in `ngAfterViewInit`.\n if (positionChange && !positionChange.firstChange && this.freeDragPosition) {\n this._dragRef.setFreeDragPosition(this.freeDragPosition);\n }\n }\n ngOnDestroy() {\n if (this.dropContainer) {\n this.dropContainer.removeItem(this);\n }\n const index = CdkDrag._dragInstances.indexOf(this);\n if (index > -1) {\n CdkDrag._dragInstances.splice(index, 1);\n }\n // Unnecessary in most cases, but used to avoid extra change detections with `zone-paths-rxjs`.\n this._ngZone.runOutsideAngular(() => {\n this._destroyed.next();\n this._destroyed.complete();\n this._dragRef.dispose();\n });\n }\n /** Syncs the root element with the `DragRef`. */\n _updateRootElement() {\n var _a;\n const element = this.element.nativeElement;\n let rootElement = element;\n if (this.rootElementSelector) {\n rootElement =\n element.closest !== undefined\n ? element.closest(this.rootElementSelector)\n : // Comment tag doesn't have closest method, so use parent's one.\n (_a = element.parentElement) === null || _a === void 0 ? void 0 : _a.closest(this.rootElementSelector);\n }\n if (rootElement && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n assertElementNode(rootElement, 'cdkDrag');\n }\n this._dragRef.withRootElement(rootElement || element);\n }\n /** Gets the boundary element, based on the `boundaryElement` value. */\n _getBoundaryElement() {\n const boundary = this.boundaryElement;\n if (!boundary) {\n return null;\n }\n if (typeof boundary === 'string') {\n return this.element.nativeElement.closest(boundary);\n }\n return coerceElement(boundary);\n }\n /** Syncs the inputs of the CdkDrag with the options of the underlying DragRef. */\n _syncInputs(ref) {\n ref.beforeStarted.subscribe(() => {\n if (!ref.isDragging()) {\n const dir = this._dir;\n const dragStartDelay = this.dragStartDelay;\n const placeholder = this._placeholderTemplate\n ? {\n template: this._placeholderTemplate.templateRef,\n context: this._placeholderTemplate.data,\n viewContainer: this._viewContainerRef,\n }\n : null;\n const preview = this._previewTemplate\n ? {\n template: this._previewTemplate.templateRef,\n context: this._previewTemplate.data,\n matchSize: this._previewTemplate.matchSize,\n viewContainer: this._viewContainerRef,\n }\n : null;\n ref.disabled = this.disabled;\n ref.lockAxis = this.lockAxis;\n ref.dragStartDelay =\n typeof dragStartDelay === 'object' && dragStartDelay\n ? dragStartDelay\n : coerceNumberProperty(dragStartDelay);\n ref.constrainPosition = this.constrainPosition;\n ref.previewClass = this.previewClass;\n ref\n .withBoundaryElement(this._getBoundaryElement())\n .withPlaceholderTemplate(placeholder)\n .withPreviewTemplate(preview)\n .withPreviewContainer(this.previewContainer || 'global');\n if (dir) {\n ref.withDirection(dir.value);\n }\n }\n });\n // This only needs to be resolved once.\n ref.beforeStarted.pipe(take(1)).subscribe(() => {\n var _a;\n // If we managed to resolve a parent through DI, use it.\n if (this._parentDrag) {\n ref.withParent(this._parentDrag._dragRef);\n return;\n }\n // Otherwise fall back to resolving the parent by looking up the DOM. This can happen if\n // the item was projected into another item by something like `ngTemplateOutlet`.\n let parent = this.element.nativeElement.parentElement;\n while (parent) {\n if (parent.classList.contains(DRAG_HOST_CLASS)) {\n ref.withParent(((_a = CdkDrag._dragInstances.find(drag => {\n return drag.element.nativeElement === parent;\n })) === null || _a === void 0 ? void 0 : _a._dragRef) || null);\n break;\n }\n parent = parent.parentElement;\n }\n });\n }\n /** Handles the events from the underlying `DragRef`. */\n _handleEvents(ref) {\n ref.started.subscribe(() => {\n this.started.emit({ source: this });\n // Since all of these events run outside of change detection,\n // we need to ensure that everything is marked correctly.\n this._changeDetectorRef.markForCheck();\n });\n ref.released.subscribe(() => {\n this.released.emit({ source: this });\n });\n ref.ended.subscribe(event => {\n this.ended.emit({\n source: this,\n distance: event.distance,\n dropPoint: event.dropPoint,\n });\n // Since all of these events run outside of change detection,\n // we need to ensure that everything is marked correctly.\n this._changeDetectorRef.markForCheck();\n });\n ref.entered.subscribe(event => {\n this.entered.emit({\n container: event.container.data,\n item: this,\n currentIndex: event.currentIndex,\n });\n });\n ref.exited.subscribe(event => {\n this.exited.emit({\n container: event.container.data,\n item: this,\n });\n });\n ref.dropped.subscribe(event => {\n this.dropped.emit({\n previousIndex: event.previousIndex,\n currentIndex: event.currentIndex,\n previousContainer: event.previousContainer.data,\n container: event.container.data,\n isPointerOverContainer: event.isPointerOverContainer,\n item: this,\n distance: event.distance,\n dropPoint: event.dropPoint,\n });\n });\n }\n /** Assigns the default input values based on a provided config object. */\n _assignDefaults(config) {\n const { lockAxis, dragStartDelay, constrainPosition, previewClass, boundaryElement, draggingDisabled, rootElementSelector, previewContainer, } = config;\n this.disabled = draggingDisabled == null ? false : draggingDisabled;\n this.dragStartDelay = dragStartDelay || 0;\n if (lockAxis) {\n this.lockAxis = lockAxis;\n }\n if (constrainPosition) {\n this.constrainPosition = constrainPosition;\n }\n if (previewClass) {\n this.previewClass = previewClass;\n }\n if (boundaryElement) {\n this.boundaryElement = boundaryElement;\n }\n if (rootElementSelector) {\n this.rootElementSelector = rootElementSelector;\n }\n if (previewContainer) {\n this.previewContainer = previewContainer;\n }\n }\n /** Sets up the listener that syncs the handles with the drag ref. */\n _setupHandlesListener() {\n // Listen for any newly-added handles.\n this._handles.changes\n .pipe(startWith(this._handles), \n // Sync the new handles with the DragRef.\n tap((handles) => {\n const childHandleElements = handles\n .filter(handle => handle._parentDrag === this)\n .map(handle => handle.element);\n // Usually handles are only allowed to be a descendant of the drag element, but if\n // the consumer defined a different drag root, we should allow the drag element\n // itself to be a handle too.\n if (this._selfHandle && this.rootElementSelector) {\n childHandleElements.push(this.element);\n }\n this._dragRef.withHandles(childHandleElements);\n }), \n // Listen if the state of any of the handles changes.\n switchMap((handles) => {\n return merge(...handles.map(item => {\n return item._stateChanges.pipe(startWith(item));\n }));\n }), takeUntil(this._destroyed))\n .subscribe(handleInstance => {\n // Enabled/disable the handle that changed in the DragRef.\n const dragRef = this._dragRef;\n const handle = handleInstance.element.nativeElement;\n handleInstance.disabled ? dragRef.disableHandle(handle) : dragRef.enableHandle(handle);\n });\n }\n}\nCdkDrag._dragInstances = [];\nCdkDrag.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.2.0\", ngImport: i0, type: CdkDrag, deps: [{ token: i0.ElementRef }, { token: CDK_DROP_LIST, optional: true, skipSelf: true }, { token: DOCUMENT }, { token: i0.NgZone }, { token: i0.ViewContainerRef }, { token: CDK_DRAG_CONFIG, optional: true }, { token: i3.Directionality, optional: true }, { token: DragDrop }, { token: i0.ChangeDetectorRef }, { token: CDK_DRAG_HANDLE, optional: true, self: true }, { token: CDK_DRAG_PARENT, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive });\nCdkDrag.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.2.0\", type: CdkDrag, selector: \"[cdkDrag]\", inputs: { data: [\"cdkDragData\", \"data\"], lockAxis: [\"cdkDragLockAxis\", \"lockAxis\"], rootElementSelector: [\"cdkDragRootElement\", \"rootElementSelector\"], boundaryElement: [\"cdkDragBoundary\", \"boundaryElement\"], dragStartDelay: [\"cdkDragStartDelay\", \"dragStartDelay\"], freeDragPosition: [\"cdkDragFreeDragPosition\", \"freeDragPosition\"], disabled: [\"cdkDragDisabled\", \"disabled\"], constrainPosition: [\"cdkDragConstrainPosition\", \"constrainPosition\"], previewClass: [\"cdkDragPreviewClass\", \"previewClass\"], previewContainer: [\"cdkDragPreviewContainer\", \"previewContainer\"] }, outputs: { started: \"cdkDragStarted\", released: \"cdkDragReleased\", ended: \"cdkDragEnded\", entered: \"cdkDragEntered\", exited: \"cdkDragExited\", dropped: \"cdkDragDropped\", moved: \"cdkDragMoved\" }, host: { properties: { \"class.cdk-drag-disabled\": \"disabled\", \"class.cdk-drag-dragging\": \"_dragRef.isDragging()\" }, classAttribute: \"cdk-drag\" }, providers: [{ provide: CDK_DRAG_PARENT, useExisting: CdkDrag }], queries: [{ propertyName: \"_previewTemplate\", first: true, predicate: CDK_DRAG_PREVIEW, descendants: true }, { propertyName: \"_placeholderTemplate\", first: true, predicate: CDK_DRAG_PLACEHOLDER, descendants: true }, { propertyName: \"_handles\", predicate: CDK_DRAG_HANDLE, descendants: true }], exportAs: [\"cdkDrag\"], usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.2.0\", ngImport: i0, type: CdkDrag, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkDrag]',\n exportAs: 'cdkDrag',\n host: {\n 'class': DRAG_HOST_CLASS,\n '[class.cdk-drag-disabled]': 'disabled',\n '[class.cdk-drag-dragging]': '_dragRef.isDragging()',\n },\n providers: [{ provide: CDK_DRAG_PARENT, useExisting: CdkDrag }],\n }]\n }], ctorParameters: function () {\n return [{ type: i0.ElementRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [CDK_DROP_LIST]\n }, {\n type: Optional\n }, {\n type: SkipSelf\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i0.NgZone }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [CDK_DRAG_CONFIG]\n }] }, { type: i3.Directionality, decorators: [{\n type: Optional\n }] }, { type: DragDrop }, { type: i0.ChangeDetectorRef }, { type: CdkDragHandle, decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [CDK_DRAG_HANDLE]\n }] }, { type: CdkDrag, decorators: [{\n type: Optional\n }, {\n type: SkipSelf\n }, {\n type: Inject,\n args: [CDK_DRAG_PARENT]\n }] }];\n }, propDecorators: { _handles: [{\n type: ContentChildren,\n args: [CDK_DRAG_HANDLE, { descendants: true }]\n }], _previewTemplate: [{\n type: ContentChild,\n args: [CDK_DRAG_PREVIEW]\n }], _placeholderTemplate: [{\n type: ContentChild,\n args: [CDK_DRAG_PLACEHOLDER]\n }], data: [{\n type: Input,\n args: ['cdkDragData']\n }], lockAxis: [{\n type: Input,\n args: ['cdkDragLockAxis']\n }], rootElementSelector: [{\n type: Input,\n args: ['cdkDragRootElement']\n }], boundaryElement: [{\n type: Input,\n args: ['cdkDragBoundary']\n }], dragStartDelay: [{\n type: Input,\n args: ['cdkDragStartDelay']\n }], freeDragPosition: [{\n type: Input,\n args: ['cdkDragFreeDragPosition']\n }], disabled: [{\n type: Input,\n args: ['cdkDragDisabled']\n }], constrainPosition: [{\n type: Input,\n args: ['cdkDragConstrainPosition']\n }], previewClass: [{\n type: Input,\n args: ['cdkDragPreviewClass']\n }], previewContainer: [{\n type: Input,\n args: ['cdkDragPreviewContainer']\n }], started: [{\n type: Output,\n args: ['cdkDragStarted']\n }], released: [{\n type: Output,\n args: ['cdkDragReleased']\n }], ended: [{\n type: Output,\n args: ['cdkDragEnded']\n }], entered: [{\n type: Output,\n args: ['cdkDragEntered']\n }], exited: [{\n type: Output,\n args: ['cdkDragExited']\n }], dropped: [{\n type: Output,\n args: ['cdkDragDropped']\n }], moved: [{\n type: Output,\n args: ['cdkDragMoved']\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass DragDropModule {\n}\nDragDropModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.2.0\", ngImport: i0, type: DragDropModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nDragDropModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.2.0\", ngImport: i0, type: DragDropModule, declarations: [CdkDropList,\n CdkDropListGroup,\n CdkDrag,\n CdkDragHandle,\n CdkDragPreview,\n CdkDragPlaceholder], exports: [CdkScrollableModule,\n CdkDropList,\n CdkDropListGroup,\n CdkDrag,\n CdkDragHandle,\n CdkDragPreview,\n CdkDragPlaceholder] });\nDragDropModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.2.0\", ngImport: i0, type: DragDropModule, providers: [DragDrop], imports: [CdkScrollableModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.2.0\", ngImport: i0, type: DragDropModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [\n CdkDropList,\n CdkDropListGroup,\n CdkDrag,\n CdkDragHandle,\n CdkDragPreview,\n CdkDragPlaceholder,\n ],\n exports: [\n CdkScrollableModule,\n CdkDropList,\n CdkDropListGroup,\n CdkDrag,\n CdkDragHandle,\n CdkDragPreview,\n CdkDragPlaceholder,\n ],\n providers: [DragDrop],\n }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CDK_DRAG_CONFIG, CDK_DRAG_HANDLE, CDK_DRAG_PARENT, CDK_DRAG_PLACEHOLDER, CDK_DRAG_PREVIEW, CDK_DROP_LIST, CDK_DROP_LIST_GROUP, CdkDrag, CdkDragHandle, CdkDragPlaceholder, CdkDragPreview, CdkDropList, CdkDropListGroup, DragDrop, DragDropModule, DragDropRegistry, DragRef, DropListRef, copyArrayItem, moveItemInArray, transferArrayItem };\n"],"names":["ChildContentCompleteSearchComponent","constructor","ngOnInit","selectors","decls","vars","consts","template","i0","CommonModule","CompleteSearchResultComponent","FormsModule","ReactiveFormsModule","PipeHighlightModule","PageChangeModule","PreviewWindowModule","ChildContentCompleteSearchModule","declarations","imports","exports","JudgmentCourtId","JudicialInterpretCourtId","Observable","interval","from","EMPTY","tap","takeWhile","map","mergeMap","filter","SearchCondition","CaseTypeId","CourtTypeId","JudgmentSearchCondition","CourtResponse","CourtId","Serializable","JudicialInterpretCondition","LawRuleCase","JudicialInterpretCase","JudgmentCase","PropertyId","PropertyTemplate","PreviewWindowType","LawRuleSearchCondition","LawRuleType","ComposeType","CourtBlockId","LogPageId","IndictmentCase","IndictmentSearchCondition","IndictmentCourtId","ActionName","LwExt","MaterialHelper","PrivateCasePopupComponent","JudicialInterpretCourtGroupId","ctx_r53","ctx_r61","ctx_r79","ctx_r82","ctx_r86","ctx_r96","ctx_r109","ctx_r111","ctx_r119","ctx_r121","ctx_r122","note_r112","ctx_r123","ctx_r124","ctx_r132","ctx_r134","ctx_r142","ctx_r144","ctx_r154","ctx_r156","ctx_r157","note_r145","ctx_r158","ctx_r159","ctx_r167","ctx_r169","ctx_r177","ctx_r179","ctx_r180","note_r170","ctx_r181","ctx_r182","ctx_r192","ctx_r194","ctx_r195","note_r183","ctx_r196","ctx_r197","ctx_r205","ctx_r207","ctx_r215","ctx_r217","ctx_r218","note_r208","ctx_r219","ctx_r220","ctx_r228","ctx_r230","ctx_r238","ctx_r240","ctx_r249","ctx_r251","ctx_r252","ctx_r258","ctx_r260","ctx_r261","appCommonService","completeSearchService","judgmentSearchService","judicialInterpretSearchService","indictmentSearchService","caseTypeService","notificationService","judicialInterpretService","lawRuleService","judgmentService","service","configService","initService","matDialog","NONE","Judgment_Judgment","create","judgmentTemplate","Judgment_Decision","Judgment_Other","LawRule_LawRule","JudicialInterpret_Unified","interpretCollegeTemplate","JudicialInterpret_Solve","JudicialInterpret_Yuan","JudicialInterpret_YuanSolve","JudicialInterpret_Explain","interpretBigJudgeTemplate","JudicialInterpret_Reject","bigJudgeRejectTemplate","JudicialInterpret_XF38","xfCourtTemplate","JudicialInterpret_XF39","JudicialInterpret_XF40","JudicialInterpret_Precedent","judgmentPrecedentTemplate","JudicialInterpret_Judgment","featuredJudgmentTemplate","JudicialInterpret_JudgmentSeuperme","featuredJudgmentGistTemplate","JudicialInterpret_Reference","JudicialInterpret_Resolution","resolutionTemplate","JudicialInterpret_Discipline","disciplineTemplate","JudicialInterpret_Seminar","seminarTemplate","JudicialInterpret_Execute","executeTemplate","Indictment_Indictment","indictmentTemplate","Indictment_AppendIndictment","Indictment_MergeIntention","Indictment_SimpleJudgment","Indictment_Other","JudicialInterpret_Grand","grandTemplate","LawRule_Now_Name","Current","LawRule_Repeal_Name","Repeal","LawRule_Stop_Name","Stop","LawRule_Now_Fulltext","LawRule_Repeal_Fulltext","LawRule_Stop_Fulltext","V_I","V_S","V_H_Hualien","V_H_Kaohsiung","V_H_Kinmen","V_H_Tainan","V_D_Hualien","V_D_Kaohsiung_Juvenile","V_D_Kinmen","V_D_Lienchiang","V_D_Miaoli","V_D_Nantou","V_D_Penghu","V_D_Qiaotou","V_D_Taitung","V_D_Yilan","V_D_Yunlin","M_I","M_H_Hualien","M_H_Kinmen","M_D_Hualien","M_D_Kinmen","M_D_Lienchiang","M_D_Miaoli","M_D_Nantou","M_D_Penghu","M_D_Qiaotou","M_D_Yilan","A_I","A_H_Kaohsiung","A_D_Changhua","A_D_Chiayi","A_D_Hsinchu","A_D_Hualien","A_D_Kaohsiung","A_D_Keelung","A_D_Kinmen","A_D_Lienchiang","A_D_Miaoli","A_D_Nantou","A_D_New_Taipei","A_D_Penghu","A_D_Pingtung","A_D_Qiaotou","A_D_Shihlin","A_D_Taichung","A_D_Tainan","A_D_Taipei","A_D_Taitung","A_D_Taoyuan","A_D_Yilan","A_D_Yunlin","O_P","O_C","O_J","Judgment","c","countCourtTaskJudgment","JudicialInterpret","countCourtTaskJudicialInterpret","LawRule","countCourtTaskLawRule","Indictment","countCourtTaskIndictment","i","searchCaseListTaskJudicialInterpret","searchCaseListTaskLawRule","searchCaseListTaskJudgment","searchCaseListTaskIndictment","console","log","courtTypeList","cloneCourtTypeList","courtTypes","forEach","ct","courtTypeIdString","counting","finish","courtList","cloneCourtList","courts","courtIdString","condition","search_keywords","keywords","countTasks$","judicialInterpretCourts","case_type_id","push","countCourtTaskJudicialInterpretMulti","lawRuleCourts","court","courtCountObserver","caseTypeIdString","judgmentCourts","countCourtTaskJudgmentMulti","indictmentCourts","countCourtTaskIndictmentMulti","countTaskProcess$","pipe","t","forceStop","subscribe","next","response","resps","Array","isArray","v","count","courtType_","sameTypeCourts","court_type_id","some","every","selectedCourtType","courtType","typeSubCourts","pass","court2","clickSelectCourt","selectedCourt","updateTotalCount","complete","CompleteSearch","JSON","stringify","signlarConnSubscribe","onSignlarConnected","connected","addListener","getNoteDataStorageObserver","case_id","note","noteList","noteIndex","findIndex","n","law_rule_id","sourceNote","newNote","extendObjectFromResponseObject","sn","getNoteDataSearchResultObserver","convertedNote","setTimeout","unsubscribe","trigger","ngOnDestroy","getTypeButtonCountString","typeButton","_condition","parse","convertConditionKeyword","k","keyword","length","composes","compose","courtGroupIdString","replace","courtGroupId","caseDate","property1","property2","property3","property4","getProSearchCourtGroupCount","courtId","executeResult","courtGroupIds","searchCourtCountMultiObserver","resultDict","item","groupIdString","results","court_id","law_rule_type","lawRule_CourtId_Status","searchCountObserver","searchCourtCountOneObserver","judgmentCourtIdString","jCourt","resultItem","searchNoteListTask","pageIndex","subscriber","noteSearching","searchCaseListObserver","page_index","start_sn","pageNumber","getProSearchCourtGroupNote","result","_noteList","list","courtId_Status","searchLawRuleListObserver","searchProOneObserver","case_type","updateNoteList","pageChange","forceDisableAllPageChangeButton","baseSn","clickSelectCourtType","selectCourtType","scrollTopCourtBlock","getFirstHasCountCourt","selectCourt","updateCourtBlock","update","goToPageSlient","scrollTopListBlock","changePage","count_read","name","signalrListeners","addGetSignlaRSystemListener","clearListener","Object","keys","key","removeSignalrListener","startSearch","countAllCourtTask","maxTaskCount","maxSearchTaskCount","countingCourtList","getCountingAndUnfinishCourtList","requestCount_IdleCourtList","getIdleCourtList","slice","countCourtsTask","countResponse","updateCourtCountResult","updateAllCourtTypeStatus","findAndSearchFirstHasCountByOrderedCourt","taskIntervalSubscribe","requestCourtList","addNormal","countCourtTask","cnMatchString","ChineseNumber","allChineseNumber","cnRegexp","RegExp","m","match","convertedKeyword","m2","exec","getConvertedKeywordHighlight","Not","join","courtResponse","ctcs","type","Judgment_Intellectual","reduce","sum","searchFirstNoteList","getNoteUrlJudgment","encodeURI","BaseUrlWeb","openPrivateCasePopup","dlRef","openDialog","open","panelClass","width","maxWidth","maxHeight","document","body","clientHeight","autoFocus","openNoteJudgment","case_content_type","url","window","getNoteUrlJudicialInterpret","openNoteJudicialInterpret","openNoteLawRule","keywordList","getNoteUrlIndictment","openNoteIndictment","courtBlockList","selectedCourtType_CourtList","convert_CourtList_to_CourtBlockList","totalCount","s","searching","noResult","courtListElementRef","nativeElement","scrollTop","noteListElementRef","getNoteTemplate","toPropertyId","propertyIdString","courtTempalte","propertyString","getNoteTemplateClassName","template_class_name","getNotePropertyClassName","jtype21gc1m1","jtype22gc2m1","jtype23gc3m1","jtype22gc2m2","jtype21gc1m3","jtype22gc2m3","jtype23gc3m3","jtype21gc1m4","jtype22gc2m4","jtype23gc3m4","court_block_id","JudicialInterpret_Court_XF","xftype38","xftype39","xftype40","data","append_property","property_class_name","getTypeButtonIconStyle","button","style","icon","clickTextPreviewWindow","rowElement","title","text","keepPreviewWindowByRowElement","openTextPreview","mouseenterTextPreview","mouseleavePreview","closePreview","removeNewLine","content","trim","previewWindowComponent","openWindow","TextPreview","closeWindow","checkCursorClickPreviewWindow","ev","path","composedPath","a","HTMLElement","element","classList","contains","checkPreviewWindowCloseOrNot","getHighlightKeyword","switchLawRuleFastBagCollect","collect","IsGuest","openPopupBlockGuestFunction","fastBag","alert","fast_bag","fastBagLawRuleCollectObserver","pullFastBagObserver","viewQuery","ctx","p","SearcherKeyword","index","CompleteSearchService","setKeywords","factory","providedIn","ChildContentJudgmentSearchComponent","loadingIconService","clearSearchResult","enableResult","resultMode","JudgmentConditionComponent","ComposeCommandModule","KeywordFinderLiteModule","MatAutocompleteModule","JudgmentResultComponent","SearchAgainPopupModule","PageChange2Module","ChildContentJudgmentSearchModule","IndictmentCourtIdOrder","IndictmentSearchService","post","searchSimpleCaseList","getSuggestionCaseReasonObserver","get","getSimpleSearchTypeCourtIdNameList","courtNames","JudgmentType","JudgmentConditionSave","defaultConditionSave","cs","proMode","simpleText","Civil","EventEmitter","ComposeCommandStyleType","KeywordFinderLiteComponent","MatAutocompleteTrigger","of","SearcherKeywordKind","JudgmentSearchResultType","CaseName","ctx_r19","ctx_r27","ctx_r36","ctx_r41","ctx_r42","ctx_r45","ctx_r47","ctx_r49","ctx_r50","ctx_r55","ctx_r57","ctx_r59","ctx_r62","ctx_r65","ctx_r67","lzService","planService","router","activeRoute","searchConditionBlocks","And","Or","judgment","adjudicate","other","simple","normal","indictment","appendIndictment","simpleJudgment","mergeIntention","selectedSearchBlock","blocks","SearchConditionJudgment","snapshot","queryParams","ngAfterContentInit","loadStatus","backToProCondition","professionSearchMode","focusInput","submitSearchFromQuery","professionInputfirstElement","focus","simpleInputElement","turnOnProMode","inputChange","selectJudgmentType","rowNameCaseName","rowNameCaseReason","rowNameCaseDate","showRowMainText","showRowProperty","showRowCaseType","showRowCaseLevel","rowNameCaseMainText","saveStatus","selectAll","courtBlock","setSelected","c2","selected","isAllCourtSelected","isSelectAllObject","obj","selectAllObject","reasonInputChange","suggestReasonSubscribe","caseReason","reasons","suggestReasons","reasonInputChange2","suggestReasonSubscribe2","caseReason2","suggestReasons2","mainTextInputChange","clickClearReasonInput","disableSimpleSubmit","simpleSearchText","showClearButton","clearSimpleText","enterKeydown","keyCode","submitSimpleSearch","selectComposeCommand","selectComposeCommand2","composeCommand2Type","selectComposeCommand3","composeCommand3Type","selectReasonComposeCommand","clearInputContent","composeKeyword1","composeKeyword2","composeKeyword3","composeKeyword4","composeKeyword5","composeKeyword6","caseYear","caseWord","caseNumber","caseMainText","checkboxProperty","checkboxLevel","checkboxIndictmentType","disableProSubmitButton","getSelectedSourceCourtIdList","clickReasonAutoCompleteOption","option","value","clickReasonAutoCompleteOption2","conditionJudgment","isNaN","Number","All","per_page_amount","conditionIndictment","SearchResultJudgment","enableSearchSimple","submitProSearch","checkDate","getIndictmentSearchCondition","enableSearchProIndictment","getJudgmentSearchCondition","enableSearchPro","con","judgment_court","case_year","case_word","case_number","courtTypeId","property","level","case_reason","case_main_text","navigate","queryParamsHandling","judgmentTypeSearchType","kind","JudgmentFulltext","composeCommand4Type","composeCommand5Type","composeCommand6Type","case_reason2","case_reason_compose2","caseReasonCompose2Type","case_date","num","parseInt","indictmentTypeId","saveLoading","save","idList","getSelectedSearchCourtIdList","indictmentType","saveJson","compressedSave","compress","setLocal","saveName","getLocal","decompress","selectedCourtDict","searchId","blockKey","block","bRow","cRow","id","composeCommand2","selectByComposeType","composeCommand3","composeCommand4","composeCommand5","composeCommand6","toString","error","removeLocal","$event","_r10","_r13","JudgmentTypeId","JudgmentCourt","JudgmentSearchConditionCourt","V_D_Taipei","V_D_Shihlin","V_D_New_Taipei","V_D_Keelung","V_D_Taoyuan","V_D_Hsinchu","V_D_Taichung","V_D_Changhua","V_D_Chiayi","V_D_Tainan","V_D_Kaohsiung","V_D_Pingtung","V_H","V_H_Taichung","M_D_Taipei","M_D_Shihlin","M_D_New_Taipei","M_D_Keelung","M_D_Taoyuan","M_D_Hsinchu","M_D_Taichung","M_D_Changhua","M_D_Yunlin","M_D_Chiayi","M_D_Tainan","M_D_Kaohsiung","M_D_Taitung","M_D_Pingtung","M_H","M_H_Taichung","M_H_Tainan","M_H_Kaohsiung","M_S","A_H_Taipei","A_H_Taichung","A_S","In_D_Taipei","In_D_Shihlin","In_D_New_Taipei","In_D_Keelung","In_D_Yilan","In_D_Taoyuan","In_D_Hsinchu","In_D_Miaoli","In_D_Taichung","In_D_Changhua","In_D_Nantou","In_D_Yunlin","In_D_Chiayi","In_D_Tainan","In_D_Kaohsiung","In_D_Qiaotou","In_D_Hualien","In_D_Taitung","In_D_Pingtung","In_D_Penghu","In_D_Kinmen","In_D_Lienchiang","In_H","In_H_Taichung","In_H_Tainan","In_H_Kaohsiung","In_H_Hualien","In_H_Kinmen","民事臺北","民事士林","民事新北","民事基隆","民事宜蘭","民事桃園","民事新竹","民事苗栗","民事臺中","民事彰化","民事南投","民事雲林","民事嘉義","民事臺南","民事高雄","民事橋頭","民事花蓮","民事臺東","民事屏東","民事澎湖","民事金門","民事連江","民事高雄少年及家事法院","民事臺灣高等","民事臺中分院","民事臺南分院","民事花蓮分院","民事高雄分院","民事金門分院","民事最高法院","刑事臺北","刑事士林","刑事新北","刑事基隆","刑事宜蘭","刑事桃園","刑事新竹","刑事苗栗","刑事臺中","刑事彰化","刑事南投","刑事雲林","刑事嘉義","刑事臺南","刑事高雄","刑事橋頭","刑事花蓮","刑事臺東","刑事屏東","刑事澎湖","刑事金門","刑事連江","刑事臺灣高等","刑事臺中分院","刑事臺南分院","刑事花蓮分院","刑事高雄分院","刑事金門分院","刑事最高法院","行政臺北","行政士林","行政新北","行政基隆","行政宜蘭","行政桃園","行政新竹","行政苗栗","行政臺中","行政彰化","行政南投","行政雲林","行政嘉義","行政臺南","行政高雄","行政橋頭","行政花蓮","行政臺東","行政屏東","行政澎湖","行政金門","行政連江","行政臺北高等","行政臺中高等","行政高雄高等","行政最高法院","民事智慧財產法院","刑事智慧財產法院","行政智慧財產法院","其他司法院刑事補償","其他司法院職務法庭","臺北起訴書","士林檢察署","新北檢察署","基隆檢察署","宜蘭檢察署","桃園檢察署","新竹檢察署","苗栗檢察署","臺中檢察署","彰化檢察署","南投檢察署","雲林檢察署","嘉義檢察署","臺南檢察署","高雄檢察署","橋頭檢察署","花蓮檢察署","臺東檢察署","屏東檢察署","澎湖檢察署","金門檢察署","連江檢察署","臺灣高等檢察署","臺中分署檢察署","臺南分署檢察署","高雄分署檢察署","花蓮分署檢察署","金門分署檢察署","getSelectedCourts","civilLocalCourts","civilHighCourts","civilSupremeCourts","criminalLocalCourts","criminalHighCourts","criminalSupremeCourts","administrativeLocalCourts","administrativeHighCourts","administrativeSupremeCourts","intellectualCourts","otherPCourts","otherCCourts","otherJCourts","indictmentLocalCourts","indictmentHighCourts","getSelectedCourtsCivilLocal","getSelectedCourtsCivilHigh","getSelectedCourtsCivilSupreme","getSelectedCourtsCriminalLocal","getSelectedCourtsCriminalHigh","getSelectedCourtsCriminalSupreme","getSelectedCourtsAdministrativeLocal","getSelectedCourtsAdministrativeHigh","getSelectedCourtsAdministrativeSupreme","getSelectedCourtsOtherP","getSelectedCourtsOtherC","getSelectedCourtsOtherJ","getSelectedCourtsIndictmentLocal","getSelectedCourtsIndictmentHigh","getSelectedCourtsCivil","getSelectedCourtsCriminal","getSelectedCourtsAdministrative","getSelectedCourtsIntellectual","getSelectedCourtsOther","getSelectedCourtsIndictment","resetCourtSelected","resetCourtSelectedCivil","Criminal","resetCourtSelectedCriminal","Administrative","resetCourtSelectedAdministrative","Intellectual","resetCourtSelectedIntellectual","Other","resetCourtSelectedOther","resetCourtSelectedIndictment","r","resetCourtSelectedAll","getSelectedCourtsAll","getSelectedCourtsByTypeId","typeId","typeName","funcObj","typeFuncs","resetCourtSelectedByTypeId","CountingCourt","JudgmentResultTypeButton","JudgmentProperty","forkJoin","SearchAgainPopupComponent","PageChangeConfig","ctx_r11","ctx_r18","ctx_r28","ctx_r38","ctx_r40","ctx_r64","ctx_r66","ctx_r69","propertyName","propertyIdName","multipleMode","isProMode","isSearchIndictment","isIndictment","isSearchJudgment","conditionCacheAsJudgment","conditionCache","conditionCacheAsIndictment","judgmentTypeButton","pageChangeConfig","_pageChangeConfig","showCaseList","isNoResult","isSearchingCase","showNoResult","setupFullModeJudgment","setupFullModeIndictment","setupSimpleMode","firstSearchInterval","clearInterval","turnOnMultipleMode","backToConditionPage","reset","openSearchAgainPopup","sks","sk","disable","componentInstance","updateKeywords","saveInput","newSearcherKeywords","kw","newSaveJson","newCompressedSave","onSubmit","firstSearch","selectedCourtJudgment","selectedCourtIndictment","noteListIndictment","noteListJudgment","cca","composeCommands","toArray","selectedTypeItem","close","isCountingCourts","enableBack","enableRefresh","onPageChange","updateFullModeJudgmentCaseList","onBack","searchTypeName","conditionBlocks","searchedTypeName","court_id_strings","cc","court_id_string","typeIdName","countingCourt","_courtBlockList","levelIdString","courtLevelName","updateFullModeJudgmentCourtCountList2","updateFullModeJudgmentCourtCountList","resp","countingResultDict","countResultItem","resultCount","countCourt","pageChangePro","values","condition_","find","updateFullModeJudgmentCaseList$","caseListHash","Date","getTime","searchingCaseListHash","onComplete","selectJudgmentCourt","updateFullModeIndictmentCaseList","icio","sort","b","courtBlockListIndictment","updateFullModeIndictmentCourtCountList2","updateFullModeIndictmentCourtCountList","updateFullModeIndictmentCaseList$","selectIndictmentCourt","updateCaseListSimple","judgmentTypeButtonList","judgmentSearchResultType","judgmentCourtIdStrings","getSimpleSearchTypeCourtList","substring","indictmentCourtIdStrings","selectedType","countRead","updateCourtCountListSimple","courtListIndictment","loading","loadSave","getNoteUrl","getHighlightKeywordString","getPropertyName","case_base","getJudgmentCourtName","courtIdName","getIndictmentCourtName","list_name","getJudgmentPropertyIconStyle","caseContent","Decision","getIndictmentPropertyIconStyle","caseTypeDict","起訴書","追加起訴書","聲請簡易判決處刑書","併辦意旨書","移送併辦意旨書","其他","caseTypeStyle","convertTime","time","timeText","convertTimeTickToPastTimeText1","iconSelected","selectType","selectedTypeName","pageChangeSimple","getNoteUrlAuto","_keywords","setupCourtListSimple","refCourtList","judgmentCourtDict","indictmentCourtDict","courtIds","countingCourts","coutingCourt","updateTypeButtonLoading","countJudgment$","countIndictment$","firstTypeResult","updateCourtCountListMultiSimple","_conditionJudgment","_conditionIndictment","courts_indictment","startSkipLength","stopTakeLength","typeString","getCourtIdList","courtIdText","hasContentCountingCourts","runLength","needCheckCountingCourts","skipFirstLength","skip_first_count","searchCourtList","ci","idText","enableFirst","enablePrev","enableNext","enableLast","requestSubsc","searchSimpleListObserver","indictmentCourt","ic","ic2","ic3","ic4","allCountingCourts","checkRequestNoteListReady","resultType","checkRunCount","pageStartRange","pageStopRange","courtIdTexts","cid","court_id_text","ChildContentJudicialInterpretSearchComponent","enableConditionPage","enableResultPage","JudicialInterpretConditionComponent","ComposeCaseWordModule","JudicialInterpretResultComponent","ChildContentJudicialInterpretSearchModule","JudicialInterpretCaseType","JudicialInterpretSearchCourtCatalog","JudicialInterpretCourtBlockId","JudicialInterpretCourtCatalogId","JudicialInterpretCourtCatalogs","ctx_r12","ctx_r20","ctx_r22","ctx_r24","ctx_r26","ctx_r30","ctx_r32","ctx_r33","ctx_r35","ctx_r39","ctx_r44","ctx_r51","ctx_r54","ctx_r56","ctx_r58","ctx_r60","ctx_r68","ctx_r70","ctx_r71","ctx_r72","ctx_r2","ctx_r80","ctx_r84","ctx_r88","ctx_r89","ctx_r91","ctx_r92","ctx_r94","ctx_r95","ctx_r97","ctx_r98","ctx_r100","ctx_r101","ctx_r103","ctx_r105","ctx_r107","ctx_r112","ctx_r114","ctx_r116","ctx_r118","ctx_r120","ctx_r126","ctx_r128","ctx_r130","ctx_r135","ctx_r136","ctx_r3","_r75","ctx_r146","ctx_r148","ctx_r150","ctx_r152","ctx_r160","ctx_r161","ctx_r163","ctx_r164","ctx_r166","ctx_r170","ctx_r172","ctx_r173","ctx_r175","ctx_r183","ctx_r184","ctx_r186","ctx_r188","ctx_r190","ctx_r198","ctx_r4","_r139","ctx_r206","ctx_r208","ctx_r210","ctx_r212","ctx_r214","ctx_r216","ctx_r222","ctx_r224","ctx_r226","ctx_r232","ctx_r234","ctx_r236","ctx_r242","ctx_r244","ctx_r245","ctx_r247","ctx_r248","ctx_r250","ctx_r253","ctx_r254","ctx_r256","ctx_r257","ctx_r259","ctx_r263","ctx_r265","ctx_r267","ctx_r268","ctx_r270","ctx_r272","ctx_r274","ctx_r276","ctx_r278","ctx_r280","ctx_r281","ctx_r282","ctx_r5","_r201","ctx_r286","ctx_r288","ctx_r290","ctx_r292","ctx_r293","ctx_r295","ctx_r296","ctx_r298","ctx_r299","ctx_r301","ctx_r302","ctx_r304","ctx_r305","ctx_r307","ctx_r309","ctx_r311","ctx_r313","ctx_r315","ctx_r317","ctx_r319","ctx_r321","ctx_r323","ctx_r325","ctx_r326","ctx_r327","ctx_r6","ctx_r335","ctx_r337","ctx_r338","ctx_r340","ctx_r341","ctx_r343","ctx_r344","ctx_r346","ctx_r347","ctx_r349","ctx_r350","ctx_r352","ctx_r354","ctx_r356","ctx_r358","ctx_r360","ctx_r361","ctx_r363","ctx_r365","ctx_r367","ctx_r369","ctx_r371","ctx_r373","ctx_r374","ctx_r375","ctx_r7","_r330","ctx_r379","ctx_r381","ctx_r383","ctx_r385","ctx_r387","ctx_r389","ctx_r390","ctx_r392","ctx_r393","ctx_r395","ctx_r396","ctx_r398","ctx_r399","ctx_r401","ctx_r402","ctx_r404","ctx_r406","ctx_r408","ctx_r410","ctx_r412","ctx_r414","ctx_r416","ctx_r417","ctx_r418","ctx_r8","ctx_r441","ctx_r447","selectedAll","ctx_r450","ctx_r452","ctx_r462","ctx_r468","ctx_r474","ctx_r480","ctx_r483","ctx_r485","ctx_r496","ctx_r502","ctx_r508","ctx_r514","ctx_r520","ctx_r523","ctx_r525","ctx_r533","ctx_r539","ctx_r542","ctx_r544","ctx_r552","ctx_r558","ctx_r561","ctx_r563","ctx_r572","ctx_r578","ctx_r584","ctx_r587","ctx_r589","ctx_r596","ctx_r599","ctx_r602","ctx_r604","ctx_r606","ctx_r608","ctx_r610","ctx_r612","ctx_r614","ctx_r616","ctx_r618","ctx_r620","ctx_r621","ctx_r623","ctx_r624","ctx_r626","ctx_r627","ctx_r629","ctx_r630","ctx_r632","ctx_r633","ctx_r635","ctx_r637","ctx_r639","ctx_r641","ctx_r643","ctx_r645","ctx_r647","ctx_r649","ctx_r651","ctx_r653","ctx_r654","ctx_r655","ctx_r9","ctx_r661","top","Court","ctypeABC","ctypeA","ctypeB","ctypeC","ctypeD","ttypeX","jtype21gc1m134","jtype22gc2m1342","jtype23gc3m134","jtypeA","jtypeB","jtypeE","jtype1A","jtype1B","jtype1E","jtypeI","jtypeG","jtypeC01","jtypeC0","jtypeC1","jtypeO","jtypeJ","jtypeH","jtypeD01","jtypeD0","jtypeD1","jtypeP","jtypeR","jtypeK","jtypeF01","jtypeF0","jtypeF1","jtypeQ","jtypeU","jtypeV","jtypeS","jtypeT","dtypeA01","dtypeA0","dtypeA1","dtypeB01","dtypeB0","dtypeB1","dtypeC01","dtypeC0","dtypeC1","jtypeL","qtypeA","qtypeG","qtypeB","qtypeC","qtypeD","etypeX01","etypeX0","etypeX1","Court_Court","iconClass","enableSelectAll","courtBlockId","courtGroups","Court_BigJudge","Court_Reject","Court_XF","Grand_Normal","Precedent_Normal","Precedent_Stop","Judgment_V","Judgment_M","Judgment_A","Judgment_SupremeReference","Judgment_HighReference","Resolution_V","Resolution_M","Resolution_A","Discipline_Discipline","Seminar_V","Seminar_M","Seminar_A","Seminar_Discipline","Execute_Execute","courtBlocks","Grand","Precedent","Resolution","Discipline","Seminar","Execute","caseWords","selectedCaseWord","caseWordNumber","caseWordMeetNumber","xfCaseYear","xfCaseWord","xfCaseNumber","caseWordYear","caseWordWord","caseWordMeetYear","caseWordMeetMonth","caseWordAgency","lists","executeCourts","executeCourtsDict","l","ls","SearchConditionJudicialInterpret","selectCourtCatalog","courtCatalogId","selectedCourtCatalogId","grandUpdatePropertySelection","onCourtGroupSelectChanged","updateCourtSelectAllStatus","onCourtBlockSelectAllChanged","courtCatalogCourts","cc2","isAllSelected","onComposeSelect","courtCatalogInput","composeType","onCourtCaseWordSelect","word","courtCatalogInputs","cb","courtGroupIdNames","currentCourtCatalogName","currentCourtCatalogInput","selectedExecutes","simpleSearchKeyword","proCourtGroupIdNames","proExecuteCourtNames","proInputs","sec","ec","ecd","executeSelectedAllCourt","inputs","key2","assign","checkCourtCatalogHasSelectAnyCourt","judicialInterpretCourtCatalogId","courtCatalogCourt","hasSelectAnyCourt","checkExecuteHasSelectAnyCourt","ca","getCourtCatalogSelectedCourtGroupIds","clearCourtCatalogInput","courtComposeCaseWord","baseList","isBlockHasAnySelectedCourt","selectedCourtGroupIds","catalogName","catalogId","tag","tag1Name","tag1","cr","SearchResultJudicialInterpret","onSubmitProSearch","grandReasonInputChange","grandSuggestReasonSubscribe","getSuggestionReasonObserver","grandSuggestReasons","grandClickAutoCompleteOption","grandPropertySelectedAll","grandPropertyToggleAll","precedentReasonInputChange","precedentSuggestReasonSubscribe","precedentSuggestReasons","precedentClickAutoCompleteOption","judgmentReasonInputChange","judgmentSuggestReasonSubscribe","judgmentSuggestReasons","judgmentClickAutoCompleteOption","disciplineReasonInputChange","disciplineSuggestReasonSubscribe","disciplineSuggestReasons","disciplineClickAutoCompleteOption","executeUpdateSelectCourt","courtName","executeSelectedCourt","executeCatalog","row","executeList","executeSelectCourt","executeCourtCatalogSelectAll","lc","c1","executeGetCourtCatalogSelectCount","total","isSelectedAll","executeUpdateCourtSelection","cl","executeUpdateCourtSelectAll","courtInputFirstElement","grandInputFirstElement","precedentInputFirstElement","judgmentInputFirstElement","resolutionInputFirstElement","disciplineInputFirstElement","seminarInputFirstElement","executeInputFirstElement","onSubmitSimpleSearch","getNumberFromString","numberString","getTrimText","loadSaveToVar","varName","date","setDateFromSourceCaseDate","refCondition","date_start_year","date_start_month","date_start_day","date_end_year","date_end_month","date_end_day","JudicialInterpretSearchResultCaseType","JudicialInterpretResultTypeButton","JudicialInterpretPropertyItem","JudicialInterpretProperty","JudicialInterpretType","JudicialInterpretCourtBlocks","JudicialInterpretCourtGroups","JudicialInterpretSearchCourtGroup","ctx_r46","ctx_r73","ctx_r63","ctx_r113","ctx_r115","note_r106","ctx_r117","ctx_r138","ctx_r168","ctx_r171","note_r159","ctx_r191","ctx_r193","note_r184","ctx_r209","note_r197","ctx_r211","ctx_r221","ctx_r229","ctx_r231","note_r222","ctx_r233","getCaseName1","getCaseName1_2","getCaseName1_3","getCaseName1_1","getCaseName2","getCaseName3","getCaseName4","getCaseName5","judicialInterpretSearchResultCaseTypeButton","judicialInterpretSearchResultCaseTypeButtonList","judicialInterpretSearchResultType","setup2","forceStopSearch","proCondition","catalog","courtCatalogName","isEtype","courtBlockDict","courtGroupDict","searchTasks","selectedCourtGroup","agent","searchCourtGroup","tag2","isCounting","isRequested","isCountFinish","searchExecuteGroup","countCourtGroup$","courtBlockIdName","resultName","courtGroupIdName","courtGroup","groupKey","courtGroup_","updateProNoteList","enablePageChange","searcherKeywords","getSearcherKeywordsFromProCondition","noteFull","extendNoteToFull","courtCatalogs","courtGroupCatalogDict","selectedCourtCatalog","simpleKeyword","searchCourtCatalogAll","isCountFinished","searchAllCourtCatalog","countCourtCatalog$","courtCatalog","searchCourtCatalog","courtCatalogIdName","courtCatalogDict","updateSimpleNoteList","onBackConditionPage","getTotalCountString","toLocaleString","selectCourtGroup","getCourtGroupName","subsc","_cond","getCourtGroupNote$","convertConditionKeyword2","updateEnableButtons","scrollListToTopLater","getCaseTemplate","judicialInterpretCase","templateRef","courtTemplates","getCasePropertyClassName","className","overwrite_property","courtPropertyClassName","case_data","getCaseTemplateClassName","templateClassName","getCaseSn","getValidKeywords","validKeywords","getProCaseHighlightKeywords","highlightKeyword","getExecuteCaseAgentHighlight","getExecuteCaseWordHighlight","getExecuteCaseNumberHighlight","getLastView","note_open_time","getRelateLawRuleNameList","relate_law_rule_list","rs","getExecuteBlockHasResult","getSimpleCourtCatalogClass","toLowerCase","getSimpleCourtCatalogCount","getSimpleSearchCourtCatalogCount","selectSimpleCourtCatalog","getSimpleCourtCatalogNote$","getSimpleSearchCourtCatalogNote","getSimpleCaseHighlightKeywords","getSimpleCaseName","getJudicialInterpretCaseSimpleName","reason","meet_number","blockName","meet_title","case_name","proListElementRef","scrollTo","simpleListElementRef","openNote","source_note","catalogIdName","newSearcherKeyword","newKeyword","newCompose","RouterModule","routes","ChildContentLawRuleSearchRoutingModule","forChild","InputText","LawRuleExamIndex","LawRuleSearchFilterCondition","LawRuleSearchMode","ctx_r14","ctx_r37","ChildContentLawRuleSearchComponent","LawRuleName","LawRuleFulltext","left","height","Index","Auto","Exam","getCategoryIndex","indexList","categoryIndexList","substr","getExamIndex","_examList","_optionExamList","updateExamFilterList","_noteList1","examList","noteList1","_noteList2","optionExamList","noteList2","noteList3","categoryIndexLawRuleList","noteIndex1","noteIndex2","noteIndex3","SearchConditionLawRule","inputElement","readModeChange","selectedSearchMode","composeReadMode","mode","searchModeWordIndex","contentElement","backToIndex","kindSelect","suggestLawRuleNames","inputTextChange","suggestLawRuleNameSubscribe","getLawRuleNameSuggestionObserver","inputText","names","disableSubmitButton","isEmpty","searchedText","searchedKind","clickClear","clear","searchedExamList","selectedSubcategory","clickSearchSubcategory","clickSubmit","SearchResultLawRule","contentElementScrollTop","clickSearchExamIndex","clickSearchAllIndex","autoComplete","options","active","isOpen","autoCompleteTrigger","closePanel","clickAutoCompleteOption","getBaseSearchFilterCondition","getLawRuleKeywordList","selectedLawRuleType","category","subcategory","searchLawRule","searchIndex","selectedCategory","goTop","updateScrollTop","currentContentElementScrollTop","showScrollTopButton","clickSubcategory","categoryName","subcategoryName","encodeURIComponent","getTypeCount","searchedTypeCount","clickGoToPage","openFullScreenLoadingIcon","LawRuleSearch","lawRuleList","closeFullScreenLoadingIcon","clickTypeChange","filterExamList","examIndexList","searchedExamName","law_rule_name","ei","lrei","searchExamIndex","searchIndexCount","hasLawRuleTypeString","currentTypeCount","countLawRuleTypeObserver","searchLawRuleObserver","_r3","ChooseKindModule","ChildContentLawRuleSearchModule","concatMap","ctx_r31","ctx_r125","ctx_r131","ctx_r137","ctx_r143","ctx_r151","ctx_r153","ctx_r162","ctx_r165","Message","ChildContentNewsComponent","net","memberService","menuListSupreme","menuListGrand","menuListLawRule","NEWS","pullNews","setupData","updateMenuItemSelectedGrand","updateMenuItemSelectedSupreme","updateMenuItemSelectedLawRule","setupEdit","isLoading","hasEditPermission","memberHeader","is_admin","PersonalStorage","msgVal","msg","colName","overwrite","toggleMenuSupreme","isMenuShowSupreme","toggleMenuGrand","isMenuShowGrand","toggleMenuLawRule","isMenuShowLawRule","selectedItemGrand","messagesGrand","messagesGrandV","messagesGrandM","messagesGrandA","selectedItemSupreme","messagesSupreme","messagesSupremeV","messagesSupremeM","messagesSupremeA","selectedItemLawRule","messagesLawRule","messagesLawRuleLFY","messagesLawRuleQGFG","getLawRuleStatusLFY","status","getRaw","lastUpdateTimeString","getFullYear","getMonth","padStart","getDate","getHours","getMinutes","messagesSystemLog","SystemLog","messagesXF","XF","messagesExplain","Explain","GrandV","GrandM","GrandA","SupremeV","SupremeM","SupremeA","LawRuleLFY","LawRuleQGFG","updateNow","postRaw","enableEditSave","confirm","editSelectedType","editMessageList_","editMessageList","editActionList","addNewEditMessage_SystemLog","hash","prop","splice","action","deleteMessage","message","hasAdd","onMessageEdit","saveEditMessage","setMessageAsAnnounce","openUrl","checkCursorClickClassName","emptyClick","hostBindings","DragDropModule","ChildContentNewsModule","transition","animate","keyframes","ChildContentRecommendFriendComponent","recommendMemberPopupOpenerService","recommendUrl","RecommendFriend","requestRecommendData","recommend_member_count","recommend_member_list","picture","count_total","member_count_recommend","member_count_recommend_passed","recommend_passed_member_count","member_list_recommend","member_list_recommend_passed","recommend_passed_member_list","has_more_recommend_member","has_more_recommend_passed_member","recommend_member_count_total","recommend_member_count_week","count_current_week","recommend_member_count_month","count_current_month","reward_point_total","copyText","selBox","createElement","position","opacity","appendChild","select","execCommand","removeChild","selectElement","range","createRange","selectNode","selection","getSelection","removeAllRanges","addRange","copyLink","recommendUrlElementRef","copyedState","resetCopy","getRegisterTimeText","ticks","convertTimeTickToTimeText2","openMoreRecommendMemberPopup","compRef","openPopup","openMoreRecommendPassedMemberPopup","color","HttpClientModule","ShareButtonsModule","ChildContentRecommendFriendModule","FilterTypesComponent","StorageTypesComponent","PersonalConfigPopupModule","RightCallMenuModule","RenamePopupModule","DeleteConfirmPopupModule","DetailInfoClickWindowModule","ComposeSearchPopupModule","KeywordSearcherComposeSearchModule","CommentPopupModule","KeywordSearcherModule","LoadingIconModule","EditCategoryPopupModule","FilterPopupModule","CheckLightFilterPopupModule","ChildContentPersonalStorageCommonModule","CaseType","PersonalConfig","SubscriptionGroup","ChildContent_PersonalStorageComponent","elementRef","personalConfigService","personalStorageService","childContent_PersonalStorageService","register","target","PersonalStorageJudgment","PersonalStorageLaw","PersonalStorageJudicialInterpret","subscriptions","selectedStorageType","selectedStorageType$","openAreaLoadingIcon","closeAreaLoadingIcon","personalConfig","selectStorageType","storageHome","pullPersonalConfigObserver","searchKeywords","unsubscribeAll","JudgmentModule","JudicialInterpretModule","LawRuleModule","PrintConfigPopupModule","MatDialogModule","PrintPermissionPopupModule","PrintConfigLawRulePopupModule","PrintPermissionLawRulePopupModule","CheckLightDetailDataLawArticlePopupModule","ChildContentPersonalStorageModule","Subject","StorageTab","ChildContent_PersonalStorageService","storageTab","kindList","FileSubject","PointSummary","SummaryTag","IssueSortOut","IssueAnswer","CaseTag","Bookmark","Comment","ComposeSearch","isAllSearchKeywordEmpty","currentTab","targetTab","enableSearchResultCount","searchResultCount","resetStorageTab","resetData","relate_law_rule_name_list","caseTypePropertyId","IssueAddRequest","IssueBlukRequest","IssueDeleteRequest","IssueEditRequest","IssueLinkSummaryRequest","IssueOrderRequestData","IssueOrderRequest","DisplayMode","PageChangeComponent","KeywordSearcherComponent","DetailInfoClickWindowComponent","delay","EditCategoryPopupService","FilterPopupService","Category","Subcategory","CheckInJudgment","Guid","CheckLightDetailDataLawArticlePopupComponent","CheckLightFilterPopupComponent","CheckLightFilterConfig","FilterCondition","ctx_r17","ctx_r21","JudgmentComponent","personalConfigPopupService","filterPopupOpenerService","personalConfigPopupOpenerService","indictmentService","suggestKeywordNoteTitle","suggestKeywordCaseTag","suggestKeywordSummaryTag","filterCondition","check_in_button_text","check_in_past_day","check_in_status","listDisplayMode","displayMode","orderWayCourtLevel","orderWayJudgDate","orderWayEditDate","per_page_note_amount","isComposeSearch","keywordSearcher","searchedTemplate","composeTemplate","chooseKind","selectedKind","searchKeyword","searchedKeywords","filterTypesComponent","get_filterCondition","openType","compomentRef","categoryList","subcategoryList","pullCategoryListObserver","pullSubcategoryListObserver","instance","submit","currentIndex","pullNoteList","closePopup","personalConfig$","listElement","perPageAmount","pageRefresh","refresh","pullAllList","clickGoToIndex$","storageNoteList$","storageNoteTotalCount","updateNoteDataStorageByCategory","old_category","updateNoteDataStorageBySubcategory","old_subcategory","updateNoteDataStorage","updateNoteDataStorageToList","storageNoteList","planStatus$","pullPlanStatus","refreshLoginStatus","pullSaveStatusObserver","pullStorageNoteListObserver","setupStorageList","inited","updateCheckInCaseObserver","getCheckInDataCaseObserver","checkIn","enableCheckIn","isWaitCheckIn","checkInObserver","checkInIndictmentObserver","getCheckInDataIndictmentCaseObserver","check_in_data","setupNoteCheckIn","openCheckInDetailDataPopup","updateCheckInDataSystem","countPastDay","isWaitLoadingData","count_past_day","updateFromDataCase","checkInCount","total_count","selectedCountPastDay","checkInMenuId","newGuid","checkInButtonId","onCheckIn","registeCheckInMenuClickEvent","checkInMenuElement","checkInButtonElement","checkCursorClickTarget","showCheckInMenu","onCheckInMenuHide","onCheckInMenuShow","listenClickEvent","removeClickEventListenter","onOpenCheckInDetailDataPopup","checkInStatusClassName","statusClassNameDict","last_check_in_status","checkInTotalCount","total_check_in_count","showSaveLimit","planStatus","plan_type","rfs","pullNoteListObserver","judgmentCaseList","lawRuleTab","storageTypesComponent","judicialInterpretTab","caseList","hasSearchResult","kk","isSearching","type_count","checkNoteList","disableAllClearButton","clearSearchKeywords","hasSearched","updateKeywordSearcherToFilterCondition","kwObject","cloneSearchKeyword","extend","allCategory","allSubcategory","allClear","openPersonalConfigPopup","componentRef","cfg","pushPersonalConfigObserver","openCheckInFilterPopup","checkLightConfig","day_range","show_status","setupConfig","onConfirmFilter","config","entries","updateEnableSuggestion","getSuggestionNoteTitleObserver","getSuggestionCaseTagObserver","getSuggestionSummaryTagObserver","func","listenClickEventList","removeListenClickEventList","checkOnClick","rev","cev","requestSampleNote","CopyNote","requestSampleNoteJudgment","ListFullComponent","ListSimpleComponent","DetailInfoClickWindowService","SummaryWindowModule","Issue","NoteSummaryListType","SummaryTypeId","BookmarkType","EditCategoryTabId","DeleteConfirmPopupType","DetailInfoClickWindowOption","DetailInfoClickWindowTabId","EditCategoryPopupOption","ShareRequest","SummarySave","SummaryConvert","SummaryBlock","SummaryFilterSetting","SummaryFilterDisplayModeId","SummaryType","SummaryWindowOption","DisplayContentBlockBasicInfoOption","DisplayContentBlockShareInfoOption","DisplayContentBlockIssueSortOutOption","ElementScroll","SummaryListOrderRequest","SummaryDeleteRequest","PrintConfigPopupComponent","PutInNotePopupComponent","PutInNoteCheckPopupComponent","PutInNoteSuccessPopupComponent","SaveResultStatusId","PayInfoOverSaveLimitPopupComponent","PrintPermissionPopupComponent","ctx_r13","ctx_r16","note_r3","ctx_r43","ctx_r48","ctx_r52","commentService","deleteConfirmPopupOpenerService","editCategoryPopupOpenerService","renamePopupOpenerService","commentPopupOpenerService","caseTagPopupOpenerService","detailInfoClickWindowService","summaryWindowService","issueService","shareService","successTipOpenerService","noteList$","_selectedNoteId","clearSelectedNote","enableTeam","has_team","isSelectedNote","note_id","selectNote","selectedBy","selectedRowBy","checkShowNoteBorder","show","showCheckinMenuNote","showCheckInPopupNote","showCloneToTeamPopupNote","showCloneToTeamCheckPopupNote","showCloneToTeamSuccessPopupNote","showPrintPopupNote","showDetailWindowNote","showSummaryPreviewWindowNote","showDeleteNotePopupNote","showEditCategoryPopupNote","showEditNoteNamePopupNote","showEditCaseTagPopupNote","getCategoryIconStyle","_category","getIconStyle","backgroundImage","getSubcategoryIconStyle","_subcategory","category_text","getPropertyIconStyle","iconName","anyProperty","getCourtName","icid","filterIssueList","issueList","issue_text","filterIssueAnswerList","answer_text","convertTimeText","tick","convertSummaryItemToClass","list_type","convertText_CamelCaseToLowerDash","item_type","selectRow","selectedRowElement","clearSelectedRow","query","hasSpecKeywords","noteTypeName","openRenamePopup","file_subject","file_subject2","newNames","anyNote","renameNoteObserver","onDestroy","openDeleteConfirmPopup","Note","deleteNoteObserver","noteUpdate","emit","openCommentPopup","_openCommentPopup","comment","onConfirmSave","new_comment","updateNoteCommentIndictmentObserver","updateNoteCommentJudgmentObserver","openCaseTagPopup","case_tag_list","onDestory","_openCaseTagPopup","caseTagList","updateNoteCaseTagListObserver","openEditCategoryPopup","tabId","tab_id","get_note_category","get_note_subcategory","get_category_list","get_subcategory_list","addCategoryListObserver","addCategoryObserver","addSubcategoryListObserver","addSubcategoryObserver","editCategoryListObserver","new_category","editCategoryObserver","editSubcategoryListObserver","new_subcategory","editSubcategoryObserver","deleteCategoryObserver","deleteSubcategoryObserver","orderCategoryListObserver","orderCategoryObserver","orderSubcategoryListObserver","orderSubcategoryObserver","broadcastCategoryUpdateObserver","exci","broadcastSubcategoryUpdateObserver","classifyObserver","request","getNoteClassifyRequest","updateNoteClassifyObserver","EditCategory","noteUpdateObserver","showDetailInfoClickWindow","noteData","caseType","onWindowShow","translateX","windowShowing","windowHideLock","onWindowAfterShow","windowShowed","onWindowHide","windowHiding","onWindowAfterHide","basicInfoOption","rootOption","get_edit_date","edit_date","get_summaryTypeItemList","summary_type_item_list","get_case_tag_list","get_comment","editCaseTag","editComment","openSummaryPreviewWindow","summaryTypeItem","hideWindow","showSummaryPreviewWindow","shareInfoOption","share_id","share_info","share_click_count","click_count","updateNoteShare","enable","shareNoteIndictmentObserver","si","shareNoteJudgmentObserver","issueSortOutOption","get_issue_list","issue_list","addIssue","issue","addIndictmentObserver","callback","newIssue","intoView","getElementById","highlightState","updateNoteData","addJudgmentObserver","editIssue","updateIndictmentObserver","getIndictmentIssueListObserver","updateJudgmentObserver","getJudgmentIssueListObserver","deleteIssue","linkSummary","issue_id","summary_id","link_summary_id","linkSummaryIndictmentObserver","linkSummaryJudgmentObserver","orderIssue","order_list","orderData","orderIndictmentObserver","orderJudgmentObserver","pullIssueList","moveUpIssue","prevIssueIndex","prevIssue","prevSn","disableMoveOption","playHighlight","moveDownIssue","sourceIndex","nextIssueIndex","nextIssue","nextSn","showSummaryWindow","issueLinkBackup","issueAnswerBackup","soption","summaryWindowOption","selectedSummaryId","linkingIssue","summaryListService","linkMode","updateSummaryList","enableLinkConfirmButton","component","searchedKeyword","selectedSummaryType","summaryTypeAll","source","getSummaryListObserver","summary","loadingSummaryList","sl","setSelectedSummaryBlockAndSummary","summaryBlockList","setupReaderMode","disableCancelSelect","enableCopySummaryButtonDisplay","enableCopyLearnTrainingButtonDisplay","summaryBlock","summary_block_index","blockIndex","summarySave","saveToSummary","recalcAllSummaryOrder","filterSetting","displayModeId","selectedTypes","summaryTypes","summary_type_id","updateSummaryListShow","summaryItem","getFlatSummaryList","summaryId","scrollIntoView","onSummarySelected","edit_time","titleText","_option","showWindow","cancelLink","confirmLink","blukData","blukJudgmentObserver","selectedTab","tabs","tab_id_text","textCopySubscription","summaryCopyOnlineSubscription","textCopyed$","showPopTip","copySummaryOnline$","querySelector","updateMovingSummary","summaryTypeList","judgmentSummaryTypeList","setupEditorMode","isCopySummaryLoginAlert","typeDict","updateSummary","isNewSummary","saveRequest","summaryToSave","linkStartTextIndex","summary_link_range","linkEndTextIndex","updateSummaryObserver","addSummary","addSummary$","addSummaryObserver","ReachSummarySaveLimit","deleteSummary","delete_list","summary_id_list","summary_id_sn","currentList","deleteSummaryObserver","updateSummaryListOrder","updateSummaryListOrderObserver","beforeAddSummaryCheck","IsReachSummarySaveLimitTotal","openPrintPopup","permissions","judgment_print","openPrintConfigPopup","openPrintPermissionPopup","afterClosed","isFileFulltext","printConfig","font","rownumber","optionArray","fulltext","homepage","optionText","openPutinNotePopup","is_loading","getNotePutinTeamObserver","team_list","selectedTeamList","getSelectedTeamList","copyNoteToTeamObserver","team_id","copyResult","copy_result","putin_team_count","note_in_team_count","openPutinNoteSuccessPopup","openPutinNoteCheckPopup","onConfirm","checkinNote","checkInCase","toggleShowCheckInMenu","ctx_r10","ctx_r15","ctx_r34","editCategoryPopupService","BasicInfo","fromElement","None","lastTabId","onTabChange","tab","deleteIndictmentObserver","deleteJudgmentObserver","ShareService","share","shareNoteJudicialInterpretObserver","shareNoteObserver","typeTable","ctx_r23","ctx_r25","JudicialInterpretComponent","filterTypes","_","judicialInterpretCaseList","judgmentTab","requestSampleNoteJudicialInterpret","JudicialInterpretPropertyIcon","note_r39","ctx_r85","ctx_r87","note_r76","ctx_r90","ctx_r99","ctx_r102","ctx_r127","note_r121","ctx_r129","ctx_r139","note_r131","ctx_r141","ctx_r149","note_r143","note_r165","ctx_r176","ctx_r189","ctx_r199","note_r193","ctx_r201","ctx_r202","Unified","jipi","jip","jit","BigJudgeReject","Solve","Yuan","YuanSolve","Reject","XF38","XF39","XF40","JudgmentPrecedent","FeaturedJudgment","JudgmentSeuperme","FeaturedJudgmentGist","Reference","noteListExtender","_note","property_template","updateNoteCommentJudicialInterpretObserver","getGrandPropertyClass","getPropertyClassName","addJudicialInterpretObserver","updateJudicialInterpretObserver","getJudicialInterpretIssueListObserver","deleteJudicialInterpretObserver","linkSummaryJudicialInterpretObserver","orderJudicialInterpretObserver","blukJudicialInterpretObserver","judicial_interpret_print","case_title","getCaseName","noteCaseNameTable","getCaseDate","date_year","date_month","padNumber","date_day","LawRuleComponent","suggestKeywordNoteLawRule","pullPersonalStorageLawRuleFullNoteListObserver","updateNoteDataStorageObserver","PersonalStorageLawRule","lawRuleCaseList","applySearchFilter","applyFilter","getSuggestionNoteLawRuleObserver","requestImportNewStorageLawRule","request_storage_note","ListComponent","PrintConfigLawRulePopupComponent","PrintPermissionLawRulePopupComponent","ctx_r29","commentPopupService","showEditCommentPopupNote","convertStatusName","statusIdNameDict","updateNoteCommentLawRuleObserver","law_rule_note_id","lawrulestartnumber","lawrulestartsubnum","lawrulestopnumber","lawrulestopsubnum","importFilterCondition","outputs","st","concatAll","ContactSupportPopupComponent","ChildContentTeamInfoOpenpageComponent","teamService","MyTeam","getMyTeamListObserver","pullJoinTeamListObserver","myTeamList","openTeam","teamInfo","page","openBuildTeam","openLine","toggleShowMenu","showMyTeamMenu","toggleTeamList","openIntro","openContactSupportPopup","openEditCommentPopup","sourceComment","team_comment","setTeamCommentObserver","chooseButtonElement","ChildContentTeamInfoOpenpageModule","AppService","ChildContent","NotifyTypeId","state","MemberPcitureAndNicknameWindow","PopupMyAccountComponent","HeaderMemberComponent","lawRuleFastBagOpenerService","rootMainService","notifyService","unReadCount","is_read","listNotify","newMessageCountString","newMessageCount","memberHeader$","member","nickname","reward_point","ngAfterViewInit","getNotifyTemplate","notify","Text","notifyText","ReceiveTeamInvite","notifyReceiveTeamInvite","SendTeamInvite","notifySendTeamInvite","TeamAnnounce","notifyTeamAnnounce","TeamNewCase","notifyTeamNewCase","TeamCaseNewDiscuss","notifyTeamCaseNewDiscuss","TeamNotePublish","notifyTeamNotePublish","updateNotifyListObserver","pullNotifyList","hasUnread","openPopupMyAccount","comp","pcMode","onClose","onClickRecommendFriend","selectChildContentRecommendFriend","onClickProfile","onClickBuy","onClickInfo","onClickContact","onClickLogout","logout","Logout","logoutPopupBlock","loginToken","removeCookie","openFastBagPopup","requestImportFavLawRule","request_import_fav_law_rule","memberPcitureAndNicknameWindow","clickShowWindow","selectChildContent","selectChildContentMemberProfileManagement","toggleWindow","decideClickShowWindow","hasNotify","waitingRewardNotify","rewardNotify","toggleNotifyWindow","showNotifyWindow","checkClickWindowCloseOrNot","markReadAllNotify","markAllNotifyRead","setNotifyReadClick","$ev","setNotifyRead","notify_id","deleteNotify","toggleNotifyRead","onWindowAnimationStart","isWindowAnimating","onWindowAnimationDone","windowShow","windowOpenAnimationDone$","windowCloseAnimationDone$","closeNotifyPopup","triggerCloseNotifyPopup$","confirmJoinTeam","is_reply","reply_result","rejectJoinTeam","openTeamIfAgree","openTeamNewCase","note_type","note_title","openTeamCaseNewDiscuss","bottom","LawRuleFastBagPopupModule","NotifyModule","PopupMyAccountModule","HeaderMemberModule","RootMainComponent","RootMainRoutingModule","MainMenuMemberComponent","RewardPointTipPopupComponent","activatedRoute","Root","params","selectedChildContent","selectedChildContent$","pullHeaderObserver","pullRewardPointInfo","pullPermission","pullDefaultHomeObserver","keyword1","keyword2","News","rewardPointInfo","has_update","headerMemberComponent","openRewardPointPopup","localStorage","getItem","setItem","disableClose","MainMenuMemberModule","RootMainModule","checkInTodayChecked","today_checked","CourtBlock","CourtType","CaseTypeService","caseTypeList","propertyIdClassName","cloneCourtBlockList","cloneCaseTypeList","_block","blockList","CompleteSearchPopupComponent","CompleteSearchPopupOpenerService","componentFactoryResolver","injector","appRef","popupManagerService","buildPopup","resolveComponentFactory","location","setAttribute","attachView","hostView","onAfterContentInit$","initPopup","CompleteSearchTipPopupComponent","CompleteSearchTipPopupOpenerService","ComposeCaseWordComponent","initValue","selectItem","_item","clickSelect","EditCategoryPopupComponent","EditCategoryPopupOpenerService","openPopup2","note_category","note_subcategory","category_list","subcategory_list","FilterPopupTabType","openFilterPopup","KeywordSearcherListItem","KeywordSearcherComposeSearchComponent","selectKind","kindElement","textContent","showClickWindow","hideClickWindow","memberPictureAndNickname","LawRuleFastBagPopupComponent","LawRuleFastBagOpenerService","completeSearchPopupOpenerService","completeSearchTipPopupOpenerService","complete_search","enableCompleteSearch","enableBackend","isAdmin","childContent","go","openCompleteSearchPopup","completeSearchRef","openManagement","CompleteSearchPopupModule","RecommendMemberPopupComponent","RecommendMemberPopupOpenerService","passed","RenamePopupComponent","RenamePopupOpenerService","sourceText","sourceText2","RightCallMenuComponent","sk_r1","dialogRef","sourceSearcherKeywordsJson","clearRewrite","ssk","FramePopupCloseModule","MaskFullScreenModule","storagePersonalService","Injectable","Inject","InjectionToken","Directive","Input","Optional","SkipSelf","Output","Self","ContentChildren","ContentChild","NgModule","DOCUMENT","_getEventTarget","normalizePassiveListenerOptions","_getShadowRoot","coerceBooleanProperty","coerceElement","coerceArray","coerceNumberProperty","isFakeTouchstartFromScreenReader","isFakeMousedownFromScreenReader","Subscription","animationFrameScheduler","merge","takeUntil","startWith","take","switchMap","i1","CdkScrollableModule","i3","extendStyles","dest","importantProperties","hasOwnProperty","setProperty","has","removeProperty","toggleNativeDragInteractions","userSelect","toggleVisibility","combineTransforms","transform","initialTransform","parseCssTimeUnitsToMs","multiplier","indexOf","parseFloat","getTransformTransitionDurationInMs","computedStyle","getComputedStyle","transitionedProperties","parseCssPropertyValue","propertyIndex","rawDurations","rawDelays","getPropertyValue","split","part","getMutableClientRect","clientRect","getBoundingClientRect","right","x","y","isInsideClientRect","adjustClientRect","isPointerNearClientRect","rect","threshold","pointerX","pointerY","xThreshold","yThreshold","ParentPositionTracker","_document","_viewportRuler","positions","Map","cache","elements","set","scrollPosition","getViewportScrollPosition","scrollLeft","handleScroll","event","cachedPosition","newTop","newLeft","viewportScrollPosition","topDifference","leftDifference","node","deepCloneNode","clone","cloneNode","descendantsWithId","querySelectorAll","nodeName","removeAttribute","transferCanvasData","transferInputData","transferData","selector","descendantElements","cloneElements","cloneUniqueId","context","getContext","drawImage","_a","passiveEventListenerOptions","passive","activeEventListenerOptions","MOUSE_EVENT_IGNORE_TIME","dragImportantProperties","Set","DragRef","_config","_ngZone","_dragDropRegistry","_passiveTransform","_activeTransform","_hasStartedDragging","_moveEvents","_pointerMoveSubscription","_pointerUpSubscription","_scrollSubscription","_resizeSubscription","_boundaryElement","_nativeInteractionsEnabled","_handles","_disabledHandles","_direction","dragStartDelay","_disabled","beforeStarted","started","released","ended","entered","exited","dropped","moved","_pointerDown","targetHandle","handle","disabled","_initializeDragSequence","_rootElement","_pointerMove","pointerPosition","_getPointerPositionOnPage","distanceX","Math","abs","_pickupPositionOnPage","distanceY","isOverThreshold","dragStartThreshold","isDelayElapsed","now","_dragStartTime","_getDragStartDelay","container","_dropContainer","_endDragSequence","isDragging","isReceiving","preventDefault","run","_startDragSequence","_previewRect","_preview","constrainedPointerPosition","_getConstrainedPointerPosition","_hasMoved","_lastKnownPointerPosition","_updatePointerDirectionDelta","_updateActiveDropContainer","activeTransform","_applyRootElementTransform","observers","distance","_getDragDistance","delta","_pointerDirectionDelta","_pointerUp","withRootElement","withParent","parentDragRef","_parentPositions","registerDragItem","newValue","_toggleNativeDragInteractions","getPlaceholderElement","_placeholder","getRootElement","getVisibleElement","withHandles","handles","disabledHandles","add","withPreviewTemplate","_previewTemplate","withPlaceholderTemplate","_placeholderTemplate","rootElement","_removeRootElementListeners","runOutsideAngular","addEventListener","_initialTransform","undefined","SVGElement","_ownerSVGElement","ownerSVGElement","withBoundaryElement","boundaryElement","change","_containInsideBoundaryOnResize","parent","_parentDragRef","dispose","_b","remove","_anchor","_destroyPreview","_destroyPlaceholder","removeDragItem","_removeSubscriptions","disableHandle","enableHandle","delete","withDirection","direction","_withDropContainer","getFreeDragPosition","setFreeDragPosition","withPreviewContainer","_previewContainer","_sortFromLastPointerPosition","_previewRef","destroy","_placeholderRef","stopDragging","webkitTapHighlightColor","_rootElementTapHighlight","_stopScrolling","_animatePreviewToPlaceholder","then","_cleanupDragArtifacts","_cleanupCachedDimensions","dropPoint","isTouchEvent","_lastTouchEventTime","dropContainer","parentNode","placeholder","_createPlaceholderElement","anchor","createComment","shadowRoot","insertBefore","_createPreviewElement","replaceChild","_getPreviewInsertionPoint","start","_initialContainer","_initialIndex","getItemIndex","getScrollableParents","referenceElement","stopPropagation","isTouchSequence","isAuxiliaryMouseButton","isSyntheticEvent","isFakeEvent","draggable","rootStyles","pointerMove","pointerUp","scrolled","scrollEvent","_updateOnScroll","_boundaryRect","previewTemplate","_pickupPositionInElement","matchSize","_getPointerPositionInElement","_pointerPositionAtLastDirectionChange","startDragging","isPointerOverContainer","_isOverContainer","previousIndex","previousContainer","drop","rawX","rawY","newContainer","_getSiblingContainerFromPosition","exit","enter","sortingDisabled","_startScrollingIfNecessary","_sortItem","_applyPreviewTransform","previewConfig","previewClass","preview","rootRect","viewRef","viewContainer","createEmbeddedView","detectChanges","getRootNode","matchElementSize","getTransform","zIndex","Promise","resolve","placeholderRect","duration","handler","removeEventListener","clearTimeout","timeout","placeholderConfig","placeholderTemplate","elementRect","handleElement","referenceRect","point","targetTouches","_getViewportScrollPosition","pageX","pageY","touches","changedTouches","svgMatrix","getScreenCTM","svgPoint","createSVGPoint","matrixTransform","inverse","dropContainerLock","lockAxis","constrainPosition","pickupX","pickupY","boundaryRect","previewRect","minY","maxY","minX","maxX","clamp$1","pointerPositionOnPage","positionSinceLastChange","changeX","changeY","pointerDirectionChangeThreshold","shouldEnable","styles","currentPosition","pickupPosition","leftOverflow","rightOverflow","topOverflow","bottomOverflow","touch","mouse","scrollDifference","_cachedShadowRoot","initialParent","previewContainer","documentRef","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","round","min","max","rootNodes","nodeType","ELEMENT_NODE","wrapper","sourceRect","moveItemInArray","array","fromIndex","toIndex","clamp","to","transferArrayItem","currentArray","targetArray","targetIndex","copyArrayItem","DROP_PROXIMITY_THRESHOLD","SCROLL_PROXIMITY_THRESHOLD","DropListRef","autoScrollDisabled","autoScrollStep","enterPredicate","sortPredicate","sorted","_isDragging","_itemPositions","_previousSwap","drag","overlaps","_draggables","_siblings","_orientation","_activeSiblings","_viewportScrollSubscription","_verticalScrollDirection","_horizontalScrollDirection","_stopScrollTimers","_startScrollInterval","_scrollNode","scrollStep","scrollBy","withScrollableParents","registerDropContainer","removeDropContainer","_draggingStarted","_notifyReceivingSiblings","newIndex","_getItemIndexFromPointerPosition","activeDraggables","_activeDraggables","newPositionReference","_shouldEnterAsFirstChild","parentElement","_cacheItemPositions","_cacheParentPositions","_reset","withItems","items","previousItems","draggedItems","_cacheItems","connectedTo","withOrientation","orientation","_scrollableElements","reverse","currentItem","size","pointerDelta","_clientRect","siblings","isHorizontal","siblingAtNewPosition","newPosition","itemOffset","_getItemOffsetPx","siblingOffset","_getSiblingOffsetPx","oldOrder","sibling","isDraggedItem","offset","elementToOffset","scrollNode","verticalScrollDirection","horizontalScrollDirection","getElementScrollDirections","getViewportSize","getVerticalScrollDirection","getHorizontalScrollDirection","_initialScrollSnap","msScrollSnapType","scrollSnapType","_listenToScrollEvents","elementToMeasure","current","_stopReceiving","immediateSibling","end","itemPositions","reversed","lastItemRect","firstItemRect","floor","_canReceive","elementFromPoint","_startReceiving","activeSiblings","computedVertical","computedHorizontal","scrollHeight","scrollWidth","clientWidth","activeCapturingEventOptions","capture","DragDropRegistry","_dropInstances","_dragInstances","_activeDragInstances","_globalListeners","_draggingPredicate","scroll","_preventDefaultWhileDragging","_persistentTouchmoveListener","startsWith","e","_clearGlobalListeners","streams","observer","eventOptions","ɵfac","NgZone","ɵprov","DEFAULT_CONFIG","DragDrop","createDrag","createDropList","ViewportRuler","CDK_DRAG_PARENT","CDK_DROP_LIST_GROUP","CdkDropListGroup","_items","ɵdir","provide","useExisting","CDK_DRAG_CONFIG","assertElementNode","Error","_uniqueIdCounter","CDK_DROP_LIST","CdkDropList","dragDrop","_changeDetectorRef","_scrollDispatcher","_dir","_group","_destroyed","_unsortedItems","ngDevMode","_dropListRef","_assignDefaults","_setupInputSyncSubscription","_handleEvents","_dropLists","addItem","_syncItemsWithRef","removeItem","getSortedItems","documentPosition","_dragRef","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","ref","correspondingDropList","warn","_scrollableParentsResolved","scrollableParents","getAncestorScrollContainers","scrollable","getElementRef","markForCheck","draggingDisabled","listAutoScrollDisabled","listOrientation","ElementRef","ChangeDetectorRef","ScrollDispatcher","Directionality","useValue","CDK_DRAG_HANDLE","CdkDragHandle","parentDrag","_stateChanges","_parentDrag","CDK_DRAG_PLACEHOLDER","CdkDragPlaceholder","TemplateRef","CDK_DRAG_PREVIEW","CdkDragPreview","_matchSize","DRAG_HOST_CLASS","CdkDrag","_viewContainerRef","_selfHandle","subscription","movedEvent","_syncInputs","onStable","_updateRootElement","_setupHandlesListener","freeDragPosition","ngOnChanges","changes","rootSelectorChange","positionChange","firstChange","rootElementSelector","closest","_getBoundaryElement","boundary","dir","childHandleElements","handleInstance","dragRef","ViewContainerRef","ɵmod","ɵinj"],"sourceRoot":"webpack:///"}