{"version":3,"file":"sk-front-lib-search-address.mjs","sources":["../../../projects/sk-front-lib/search-address/src/sk-search-address.model.ts","../../../projects/sk-front-lib/search-address/src/sk-search-address.service.ts","../../../projects/sk-front-lib/search-address/src/dialog/dialog.component.ts","../../../projects/sk-front-lib/search-address/src/dialog/dialog.component.html","../../../projects/sk-front-lib/search-address/src/sk-search-address.directive.ts","../../../projects/sk-front-lib/search-address/src/sk-search-address.module.ts","../../../projects/sk-front-lib/search-address/src/sk-front-lib-search-address.ts"],"sourcesContent":["export interface SkDaumAddressModelInterface {\n    postcode: string;\n    postcode1: string;\n    postcode2: string;\n    postcodeSeq: string;\n    zonecode: string;\n    address: string;\n    addressEnglish: string;\n    addressType: string;\n    bcode: string;\n    bname: string;\n    bname1: string;\n    bname2: string;\n    sido: string;\n    sigungu: string;\n    sigunguCode: string;\n    userLanguageType: string;\n    query: string;\n    buildingName: string;\n    buildingCode: string;\n    apartment: string;\n    jibunAddress: string;\n    jibunAddressEnglish: string;\n    roadAddress: string;\n    roadAddressEnglish: string;\n    autoRoadAddress: string;\n    autoRoadAddressEnglish: string;\n    autoJibunAddress: string;\n    autoJibunAddressEnglish: string;\n    userSelectedType: string;\n    hname: string;\n    roadnameCode: string;\n    roadname: string;\n}\n\nexport class SkSearchAddressModel {\n    constructor(public zipCode: string, public address: string, public addressExtra: string = '') {}\n}\n","import {ElementRef, Inject, Injectable, PLATFORM_ID} from '@angular/core';\nimport {isPlatformBrowser} from '@angular/common';\nimport {SkDaumAddressModelInterface, SkSearchAddressModel} from \"./sk-search-address.model\";\n\ndeclare var daum: any;\nconst url = '//t1.daumcdn.net/mapjsapi/bundle/postcode/prod/postcode.v2.js';\n\n@Injectable({providedIn: 'root'})\nexport class SkSearchAddressService {\n\n    injected = false;\n\n    constructor(@Inject(PLATFORM_ID) private platformId: Object) {\n        this.injectScript();\n    }\n\n    injectDialogContent(element: ElementRef): Promise<SkSearchAddressModel> {\n        return new Promise(resolve => {\n                new daum.Postcode({\n                    oncomplete: (data: SkDaumAddressModelInterface) => {\n                        resolve(this.buildSearchAddressModel(data));\n                    },\n                    width: '100%',\n                    height: element.nativeElement.offsetHeight,\n                    animation: true\n                }).embed(element.nativeElement, {autoClose: false});\n        });\n    }\n\n    injectScript() {\n        if (isPlatformBrowser(this.platformId) && !this.injected) {\n            const script = document.createElement('script');\n            script.src = url;\n            script.type = 'text/javascript';\n            script.async = true;\n            document.body.appendChild(script);\n            this.injected = true;\n        }\n    }\n\n    private buildSearchAddressModel(data: SkDaumAddressModelInterface): SkSearchAddressModel {\n\n        // 아래의 코드는 다음 주소찾기에서 주소 파싱하는 부분을 그대로 가져옴\n\n        // 각 주소의 노출 규칙에 따라 주소를 조합한다.\n        // 내려오는 변수가 값이 없는 경우엔 공백('')값을 가지므로, 이를 참고하여 분기 한다.\n        let fullAddr = data.address; // 최종 주소 변수\n        let extraAddr = ''; // 조합형 주소 변수\n\n        // 기본 주소가 도로명 타입일때 조합한다.\n        if (data.addressType === 'R') {\n            // 법정동명이 있을 경우 추가한다.\n            if (data.bname !== '') {\n                extraAddr += data.bname;\n            }\n            // 건물명이 있을 경우 추가한다.\n            if (data.buildingName !== '') {\n                extraAddr += (extraAddr !== '' ? ', ' + data.buildingName : data.buildingName);\n            }\n            // 조합형주소의 유무에 따라 양쪽에 괄호를 추가하여 최종 주소를 만든다.\n            fullAddr += (extraAddr !== '' ? ' (' + extraAddr + ')' : '');\n        }\n\n        return new SkSearchAddressModel(data.zonecode, fullAddr);\n    }\n}\n","import {AfterViewInit, Component, ElementRef, ViewChild} from '@angular/core';\nimport {MatLegacyDialogRef as MatDialogRef} from '@angular/material/legacy-dialog';\nimport {SkSearchAddressService} from \"../sk-search-address.service\";\n\n@Component({\n    selector: 'sk-search-address-dialog',\n    templateUrl: './dialog.component.html',\n    styleUrls: ['./dialog.component.scss']\n})\nexport class SearchAddressDialogComponent implements AfterViewInit {\n\n    @ViewChild('content', {static: true, read: ElementRef}) contentRef: ElementRef;\n\n    constructor(private dialogRef: MatDialogRef<SearchAddressDialogComponent>,\n                private searchAddressService: SkSearchAddressService) {\n    }\n\n    ngAfterViewInit(): void {\n        this.searchAddressService.injectDialogContent(this.contentRef)\n            .then(result => this.dialogRef.close(result));\n    }\n}\n","<mat-toolbar color=\"primary\" style=\"height: 52px; font-size: 16px;\">\n    <span>주소 검색</span>\n    <button mat-icon-button matDialogClose><mat-icon>close</mat-icon></button>\n</mat-toolbar>\n<div class=\"content\" #content>\n\n</div>\n","import {Directive, EventEmitter, HostListener, Input, Output} from '@angular/core';\nimport {filter} from 'rxjs/operators';\nimport {SearchAddressDialogComponent} from './dialog/dialog.component';\nimport {MatLegacyDialog as MatDialog} from \"@angular/material/legacy-dialog\";\nimport {SkSearchAddressModel} from \"./sk-search-address.model\";\nimport {SkSearchAddressService} from \"./sk-search-address.service\";\n\n@Directive({\n    selector: '[skSearchAddress]'\n})\nexport class SkSearchAddressDirective {\n\n    @Input() skSearchAddress: SkSearchAddressModel;\n    @Output() addressSelected = new EventEmitter<SkSearchAddressModel>();\n\n    constructor(private dialog: MatDialog,\n                private searchAddressService: SkSearchAddressService) {\n    }\n\n    @HostListener('click')\n    openDialog() {\n        this.dialog\n            .open(SearchAddressDialogComponent, {\n                panelClass: 'mat-dialog-no-padding',\n                minWidth: '300px',\n                maxWidth: '500px',\n                data: this.skSearchAddress\n            })\n            .afterClosed()\n            .pipe(filter(result => !!result))\n            .subscribe(result => this.addressSelected.emit(result));\n    }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {MatLegacyButtonModule as MatButtonModule} from '@angular/material/legacy-button';\nimport {MatLegacyDialogModule as MatDialogModule} from '@angular/material/legacy-dialog';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatToolbarModule} from '@angular/material/toolbar';\nimport {SearchAddressDialogComponent} from './dialog/dialog.component';\nimport {SkSearchAddressDirective} from \"./sk-search-address.directive\";\n\n@NgModule({\n    imports: [\n        CommonModule,\n        FormsModule,\n        MatToolbarModule,\n        MatIconModule,\n        MatButtonModule,\n        MatDialogModule\n    ],\n    exports: [\n        SkSearchAddressDirective\n    ],\n    declarations: [\n        SearchAddressDialogComponent,\n        SkSearchAddressDirective\n    ]\n})\nexport class SkSearchAddressModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2.SkSearchAddressService","MatButtonModule","MatDialogModule"],"mappings":"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"}