sk-front-lib 0.18.2 → 0.18.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/article/sk-article-editor-server.component.d.ts +1 -1
- package/article/sk-article-editor.component.d.ts +1 -1
- package/article/sk-froala-editor.directive.d.ts +1 -1
- package/crud/sk-auth-admin.guard.d.ts +2 -2
- package/crud/sk-auth.guard.d.ts +2 -2
- package/{esm2020 → esm2022}/api/sk-api.module.mjs +9 -9
- package/{esm2020 → esm2022}/api/sk-api.service.mjs +4 -4
- package/{esm2020 → esm2022}/article/sk-article-editor-server.component.mjs +4 -4
- package/{esm2020 → esm2022}/article/sk-article-editor.component.mjs +4 -4
- package/{esm2020 → esm2022}/article/sk-article-server.module.mjs +5 -5
- package/{esm2020 → esm2022}/article/sk-article.module.mjs +7 -7
- package/{esm2020 → esm2022}/article/sk-article.service.mjs +4 -4
- package/{esm2020 → esm2022}/article/sk-froala-editor.directive.mjs +7 -7
- package/{esm2020 → esm2022}/crud/sk-account.service.mjs +4 -4
- package/{esm2020 → esm2022}/crud/sk-affiliate.service.mjs +4 -4
- package/{esm2020 → esm2022}/crud/sk-auth-admin.guard.mjs +4 -4
- package/{esm2020 → esm2022}/crud/sk-auth.guard.mjs +4 -4
- package/{esm2020 → esm2022}/crud/sk-auth.service.mjs +7 -7
- package/{esm2020 → esm2022}/crud/sk-board.service.mjs +4 -4
- package/{esm2020 → esm2022}/crud/sk-brand.service.mjs +4 -4
- package/esm2022/crud/sk-cart.service.mjs +256 -0
- package/{esm2020 → esm2022}/crud/sk-category.service.mjs +4 -4
- package/{esm2020 → esm2022}/crud/sk-comment.service.mjs +4 -4
- package/{esm2020 → esm2022}/crud/sk-config.service.mjs +4 -4
- package/{esm2020 → esm2022}/crud/sk-contact.service.mjs +4 -4
- package/{esm2020 → esm2022}/crud/sk-coupon.service.mjs +4 -4
- package/{esm2020 → esm2022}/crud/sk-document.service.mjs +4 -4
- package/{esm2020 → esm2022}/crud/sk-etc.service.mjs +4 -4
- package/{esm2020 → esm2022}/crud/sk-file.service.mjs +4 -4
- package/{esm2020 → esm2022}/crud/sk-keyword.service.mjs +4 -4
- package/{esm2020 → esm2022}/crud/sk-order.service.mjs +4 -4
- package/{esm2020 → esm2022}/crud/sk-point.service.mjs +4 -4
- package/{esm2020 → esm2022}/crud/sk-product.service.mjs +4 -4
- package/{esm2020 → esm2022}/crud/sk-promotion.service.mjs +4 -4
- package/{esm2020 → esm2022}/crud/sk-search.service.mjs +4 -4
- package/{esm2020 → esm2022}/crud/sk-store.service.mjs +4 -4
- package/{esm2020 → esm2022}/crud/sk-user.service.mjs +4 -4
- package/{esm2020 → esm2022}/google-analytics/google-analytics-router.module.mjs +9 -9
- package/{esm2020 → esm2022}/google-analytics/google-analytics.module.mjs +5 -5
- package/esm2022/google-analytics/services/google-analytics.service.mjs +223 -0
- package/{esm2020 → esm2022}/image/sk-image.component.mjs +6 -6
- package/esm2022/image/sk-image.module.mjs +40 -0
- package/{esm2020 → esm2022}/lib/sk-byte.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/sk-date-time.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/sk-date.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/sk-front-lib.module.mjs +13 -13
- package/{esm2020 → esm2022}/lib/sk-keys.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/sk-time.pipe.mjs +4 -4
- package/esm2022/model/lib/filetype.mjs +179 -0
- package/esm2022/search-address/dialog/dialog.component.mjs +27 -0
- package/{esm2020 → esm2022}/search-address/sk-search-address.directive.mjs +6 -6
- package/esm2022/search-address/sk-search-address.module.mjs +47 -0
- package/{esm2020 → esm2022}/search-address/sk-search-address.service.mjs +4 -4
- package/esm2022/uploader/sk-uploader.component.mjs +119 -0
- package/esm2022/uploader/sk-uploader.directive.mjs +44 -0
- package/esm2022/uploader/sk-uploader.module.mjs +57 -0
- package/{fesm2020 → fesm2022}/sk-front-lib-api.mjs +11 -11
- package/{fesm2020 → fesm2022}/sk-front-lib-api.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/sk-front-lib-article.mjs +25 -25
- package/{fesm2020 → fesm2022}/sk-front-lib-article.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/sk-front-lib-crud.mjs +93 -93
- package/fesm2022/sk-front-lib-crud.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/sk-front-lib-google-analytics.mjs +38 -16
- package/fesm2022/sk-front-lib-google-analytics.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/sk-front-lib-image.mjs +21 -21
- package/fesm2022/sk-front-lib-image.mjs.map +1 -0
- package/{fesm2015 → fesm2022}/sk-front-lib-model.mjs +56 -56
- package/{fesm2020 → fesm2022}/sk-front-lib-model.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/sk-front-lib-search-address.mjs +32 -32
- package/fesm2022/sk-front-lib-search-address.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/sk-front-lib-uploader.mjs +48 -49
- package/fesm2022/sk-front-lib-uploader.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/sk-front-lib.mjs +27 -27
- package/{fesm2015 → fesm2022}/sk-front-lib.mjs.map +1 -1
- package/google-analytics/services/google-analytics.service.d.ts +2 -1
- package/google-analytics/types/ga-action.type.d.ts +1 -1
- package/google-analytics/types/ga-bind.type.d.ts +1 -1
- package/image/sk-image.component.d.ts +2 -2
- package/image/sk-image.module.d.ts +3 -3
- package/model/lib/payment.d.ts +1 -1
- package/package.json +46 -68
- package/search-address/dialog/dialog.component.d.ts +1 -1
- package/search-address/sk-search-address.directive.d.ts +2 -2
- package/search-address/sk-search-address.module.d.ts +3 -3
- package/uploader/sk-uploader.component.d.ts +1 -1
- package/uploader/sk-uploader.directive.d.ts +2 -2
- package/uploader/sk-uploader.module.d.ts +5 -5
- package/esm2020/crud/sk-cart.service.mjs +0 -256
- package/esm2020/google-analytics/services/google-analytics.service.mjs +0 -200
- package/esm2020/image/sk-image.module.mjs +0 -40
- package/esm2020/model/lib/filetype.mjs +0 -179
- package/esm2020/search-address/dialog/dialog.component.mjs +0 -27
- package/esm2020/search-address/sk-search-address.module.mjs +0 -47
- package/esm2020/uploader/sk-uploader.component.mjs +0 -120
- package/esm2020/uploader/sk-uploader.directive.mjs +0 -44
- package/esm2020/uploader/sk-uploader.module.mjs +0 -57
- package/fesm2015/sk-front-lib-api.mjs +0 -216
- package/fesm2015/sk-front-lib-api.mjs.map +0 -1
- package/fesm2015/sk-front-lib-article.mjs +0 -758
- package/fesm2015/sk-front-lib-article.mjs.map +0 -1
- package/fesm2015/sk-front-lib-crud.mjs +0 -1529
- package/fesm2015/sk-front-lib-crud.mjs.map +0 -1
- package/fesm2015/sk-front-lib-google-analytics.mjs +0 -334
- package/fesm2015/sk-front-lib-google-analytics.mjs.map +0 -1
- package/fesm2015/sk-front-lib-image.mjs +0 -303
- package/fesm2015/sk-front-lib-image.mjs.map +0 -1
- package/fesm2015/sk-front-lib-model.mjs.map +0 -1
- package/fesm2015/sk-front-lib-search-address.mjs +0 -183
- package/fesm2015/sk-front-lib-search-address.mjs.map +0 -1
- package/fesm2015/sk-front-lib-uploader.mjs +0 -546
- package/fesm2015/sk-front-lib-uploader.mjs.map +0 -1
- package/fesm2015/sk-front-lib.mjs +0 -538
- package/fesm2020/sk-front-lib-crud.mjs.map +0 -1
- package/fesm2020/sk-front-lib-google-analytics.mjs.map +0 -1
- package/fesm2020/sk-front-lib-image.mjs.map +0 -1
- package/fesm2020/sk-front-lib-model.mjs +0 -1105
- package/fesm2020/sk-front-lib-search-address.mjs.map +0 -1
- package/fesm2020/sk-front-lib-uploader.mjs.map +0 -1
- package/fesm2020/sk-front-lib.mjs.map +0 -1
- /package/{esm2020 → esm2022}/api/model/api-config.mjs +0 -0
- /package/{esm2020 → esm2022}/api/model/api-pageable-param.mjs +0 -0
- /package/{esm2020 → esm2022}/api/model/api-pageable.mjs +0 -0
- /package/{esm2020 → esm2022}/api/model/api-response.mjs +0 -0
- /package/{esm2020 → esm2022}/api/model/index.mjs +0 -0
- /package/{esm2020 → esm2022}/api/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/api/sk-front-lib-api.mjs +0 -0
- /package/{esm2020 → esm2022}/article/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/article/sk-front-lib-article.mjs +0 -0
- /package/{esm2020 → esm2022}/crud/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/crud/sk-front-lib-crud.mjs +0 -0
- /package/{esm2020 → esm2022}/google-analytics/initializers/google-analytics-router.initializer.mjs +0 -0
- /package/{esm2020 → esm2022}/google-analytics/initializers/google-analytics.initializer.mjs +0 -0
- /package/{esm2020 → esm2022}/google-analytics/interfaces/google-analytics-command.mjs +0 -0
- /package/{esm2020 → esm2022}/google-analytics/interfaces/google-analytics-settings.mjs +0 -0
- /package/{esm2020 → esm2022}/google-analytics/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/google-analytics/sk-front-lib-google-analytics.mjs +0 -0
- /package/{esm2020 → esm2022}/google-analytics/tokens/google-analytics-settings-token.mjs +0 -0
- /package/{esm2020 → esm2022}/google-analytics/types/ga-action.type.mjs +0 -0
- /package/{esm2020 → esm2022}/google-analytics/types/ga-bind.type.mjs +0 -0
- /package/{esm2020 → esm2022}/image/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/image/sk-front-lib-image.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/sk-animations.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/sk-utils.mjs +0 -0
- /package/{esm2020 → esm2022}/model/lib/article.mjs +0 -0
- /package/{esm2020 → esm2022}/model/lib/audit.mjs +0 -0
- /package/{esm2020 → esm2022}/model/lib/auth.mjs +0 -0
- /package/{esm2020 → esm2022}/model/lib/board.mjs +0 -0
- /package/{esm2020 → esm2022}/model/lib/cart.mjs +0 -0
- /package/{esm2020 → esm2022}/model/lib/comment.mjs +0 -0
- /package/{esm2020 → esm2022}/model/lib/contact.mjs +0 -0
- /package/{esm2020 → esm2022}/model/lib/coupon.mjs +0 -0
- /package/{esm2020 → esm2022}/model/lib/document.mjs +0 -0
- /package/{esm2020 → esm2022}/model/lib/etc.mjs +0 -0
- /package/{esm2020 → esm2022}/model/lib/file.mjs +0 -0
- /package/{esm2020 → esm2022}/model/lib/grid.mjs +0 -0
- /package/{esm2020 → esm2022}/model/lib/nicepay.mjs +0 -0
- /package/{esm2020 → esm2022}/model/lib/order.mjs +0 -0
- /package/{esm2020 → esm2022}/model/lib/payment.mjs +0 -0
- /package/{esm2020 → esm2022}/model/lib/point.mjs +0 -0
- /package/{esm2020 → esm2022}/model/lib/product-series.mjs +0 -0
- /package/{esm2020 → esm2022}/model/lib/product.mjs +0 -0
- /package/{esm2020 → esm2022}/model/lib/promotion.mjs +0 -0
- /package/{esm2020 → esm2022}/model/lib/shipping.mjs +0 -0
- /package/{esm2020 → esm2022}/model/lib/user.mjs +0 -0
- /package/{esm2020 → esm2022}/model/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/model/sk-front-lib-model.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/search-address/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/search-address/sk-front-lib-search-address.mjs +0 -0
- /package/{esm2020 → esm2022}/search-address/sk-search-address.model.mjs +0 -0
- /package/{esm2020 → esm2022}/sk-front-lib.mjs +0 -0
- /package/{esm2020 → esm2022}/uploader/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/uploader/sk-front-lib-uploader.mjs +0 -0
- /package/{esm2020 → esm2022}/uploader/sk-uploader-file-item.model.mjs +0 -0
- /package/{esm2020 → esm2022}/uploader/sk-uploader.animation.mjs +0 -0
- /package/{esm2020 → esm2022}/uploader/sk-uploader.class.mjs +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sk-front-lib-model.mjs","sources":["../../../projects/sk-front-lib/model/src/lib/audit.ts","../../../projects/sk-front-lib/model/src/lib/user.ts","../../../projects/sk-front-lib/model/src/lib/file.ts","../../../projects/sk-front-lib/model/src/lib/filetype.ts","../../../projects/sk-front-lib/model/src/lib/article.ts","../../../projects/sk-front-lib/model/src/lib/board.ts","../../../projects/sk-front-lib/model/src/lib/product.ts","../../../projects/sk-front-lib/model/src/lib/document.ts","../../../projects/sk-front-lib/model/src/lib/cart.ts","../../../projects/sk-front-lib/model/src/lib/etc.ts","../../../projects/sk-front-lib/model/src/lib/promotion.ts","../../../projects/sk-front-lib/model/src/lib/order.ts","../../../projects/sk-front-lib/model/src/lib/payment.ts","../../../projects/sk-front-lib/model/src/lib/shipping.ts","../../../projects/sk-front-lib/model/src/lib/nicepay.ts","../../../projects/sk-front-lib/model/src/lib/point.ts","../../../projects/sk-front-lib/model/src/lib/coupon.ts","../../../projects/sk-front-lib/model/src/lib/comment.ts","../../../projects/sk-front-lib/model/src/lib/contact.ts","../../../projects/sk-front-lib/model/src/lib/grid.ts","../../../projects/sk-front-lib/model/src/sk-front-lib-model.ts"],"sourcesContent":["export interface IAudit {\n createdBy?: string;\n createdDate?: string;\n updatedBy?: string;\n updatedDate?: string;\n}\n\nexport class Audit {\n public createdBy: string;\n public createdDate: string;\n public updatedBy: string;\n public updatedDate: string;\n\n constructor(data: IAudit = {}) {\n if (data === null) {\n data = {};\n }\n\n this.createdBy = data.createdBy || '';\n this.createdDate = data.createdDate || '';\n this.updatedBy = data.updatedBy || '';\n this.updatedDate = data.updatedDate || '';\n }\n}\n","import {Audit, IAudit} from './audit';\n\nexport interface SkUserCount {\n total?: number;\n trash?: number;\n}\n\nexport enum SkUserRoleName {\n Admin = 'ROLE_ADMIN',\n Developer = 'ROLE_DEVELOPER',\n Manager = 'ROLE_MANAGER',\n User = 'ROLE_USER',\n Dealer = 'ROLE_DEALER',\n Leave = 'ROLE_LEAVE',\n Affiliate = 'ROLE_AFFILIATE'\n}\n\nexport interface ISkUserRole {\n name: SkUserRoleName;\n}\n\nexport interface ISkUser extends IAudit {\n id?: number;\n email?: string;\n nickname?: string;\n emailValid?: boolean;\n roles?: ISkUserRole[];\n}\n\nexport class SkUser extends Audit {\n id: number;\n email: string;\n nickname: string;\n emailValid: boolean;\n roles: ISkUserRole[];\n\n // transient values\n roleNames: SkUserRoleName[];\n\n constructor(data: ISkUser = {}) {\n super(data);\n\n this.id = data.id;\n this.email = data.email;\n this.nickname = data.nickname;\n this.emailValid = data.emailValid || false;\n this.roles = data.roles || [];\n\n // set transient values\n this.roleNames = this.roles.map(value => value.name);\n\n }\n\n hasRole(role: SkUserRoleName): boolean {\n return this.roleNames.indexOf(role) > -1;\n }\n\n hasRoleFromArray(roles: SkUserRoleName[] = []): boolean {\n if (!roles || roles.length === 0) { return false; }\n\n let result = false;\n roles.forEach(role => {\n result = result || this.hasRole(role);\n });\n\n return result;\n }\n\n isEmpty(): boolean {\n return !this.id;\n }\n\n isAnonymous(): boolean {\n return this.isEmpty();\n }\n\n isAdmin(): boolean {\n return this.hasRole(SkUserRoleName.Admin);\n }\n\n isDeveloper(): boolean {\n return this.hasRole(SkUserRoleName.Developer);\n }\n\n isManager(): boolean {\n return this.hasRole(SkUserRoleName.Manager);\n }\n\n isDealer(): boolean {\n return this.hasRole(SkUserRoleName.Dealer);\n }\n\n isUser(): boolean {\n return this.hasRole(SkUserRoleName.User);\n }\n\n isAdminAccessable(): boolean {\n return this.isAdmin() || this.isDeveloper() || this.isManager();\n }\n}\n\nexport interface SkUserSignup {\n email: string;\n password: string;\n passwordConfirm: string;\n nickname: string;\n}\n\nexport interface ISkAuthor {\n id?: number;\n nickname?: number;\n email?: number;\n}\n","import {Audit, IAudit} from './audit';\n\nexport interface ISkFile extends IAudit {\n id?: number;\n mime?: string;\n fileSize?: number;\n sourceFilename?: string;\n ext?: string;\n uploadedFilename?: string;\n uploadedPath?: string;\n isValid?: boolean;\n isPrivate?: boolean;\n}\n\nexport class SkFile extends Audit {\n id: number;\n mime: string;\n fileSize: number;\n sourceFilename: string;\n ext: string;\n uploadedFilename: string;\n uploadedPath: string;\n isValid: boolean;\n isPrivate: boolean;\n\n constructor(data: ISkFile = {}) {\n super(data);\n Object.assign(this, data);\n }\n}\n","import {SkFile} from './file';\n\nexport class FileType {\n /* MS office */\n public static mime_doc: string[] = [\n 'application/msword',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',\n 'application/vnd.ms-word.document.macroEnabled.12',\n 'application/vnd.ms-word.template.macroEnabled.12'\n ];\n public static mime_xsl: string[] = [\n 'application/vnd.ms-excel',\n 'application/vnd.ms-excel',\n 'application/vnd.ms-excel',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',\n 'application/vnd.ms-excel.sheet.macroEnabled.12',\n 'application/vnd.ms-excel.template.macroEnabled.12',\n 'application/vnd.ms-excel.addin.macroEnabled.12',\n 'application/vnd.ms-excel.sheet.binary.macroEnabled.12'\n ];\n public static mime_ppt: string[] = [\n 'application/vnd.ms-powerpoint',\n 'application/vnd.ms-powerpoint',\n 'application/vnd.ms-powerpoint',\n 'application/vnd.ms-powerpoint',\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n 'application/vnd.openxmlformats-officedocument.presentationml.template',\n 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',\n 'application/vnd.ms-powerpoint.addin.macroEnabled.12',\n 'application/vnd.ms-powerpoint.presentation.macroEnabled.12',\n 'application/vnd.ms-powerpoint.presentation.macroEnabled.12',\n 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12'\n ];\n\n /* PSD */\n public static mime_psd: string[] = [\n 'image/photoshop',\n 'image/x-photoshop',\n 'image/psd',\n 'application/photoshop',\n 'application/psd',\n 'zz-application/zz-winassoc-psd'\n ];\n\n /* Compressed files */\n public static mime_compress: string[] = [\n 'application/x-gtar',\n 'application/x-gcompress',\n 'application/compress',\n 'application/x-tar',\n 'application/x-rar-compressed',\n 'application/octet-stream',\n 'application/x-zip-compressed',\n 'application/zip-compressed',\n 'application/x-7z-compressed',\n 'application/gzip',\n 'application/x-bzip2'\n ];\n\n public static getMimeClass(file: SkFile | File): string {\n let mime = '';\n let name = '';\n if (file instanceof SkFile) {\n mime = (file as SkFile).mime;\n name = (file as SkFile).sourceFilename;\n }\n\n if (file instanceof File) {\n mime = (file as File).type;\n name = (file as File).name;\n }\n\n let mimeClass = 'application';\n if (this.mime_psd.indexOf(mime) !== -1) {\n mimeClass = 'image';\n } else if (mime.match('image.*')) {\n mimeClass = 'image';\n } else if (mime.match('video.*')) {\n mimeClass = 'video';\n } else if (mime.match('audio.*')) {\n mimeClass = 'audio';\n } else if (mime === 'application/pdf') {\n mimeClass = 'pdf';\n } else if (this.mime_compress.indexOf(mime) !== -1) {\n mimeClass = 'compress';\n } else if (this.mime_doc.indexOf(mime) !== -1) {\n mimeClass = 'doc';\n } else if (this.mime_xsl.indexOf(mime) !== -1) {\n mimeClass = 'xls';\n } else if (this.mime_ppt.indexOf(mime) !== -1) {\n mimeClass = 'ppt';\n }\n if (mimeClass === 'application') {\n mimeClass = this.fileTypeDetection(name);\n }\n\n return mimeClass;\n }\n\n public static fileTypeDetection(inputFilename: string): string {\n const types: { [ key: string ]: string } = {\n jpg: 'image',\n jpeg: 'image',\n tif: 'image',\n psd: 'image',\n bmp: 'image',\n png: 'image',\n nef: 'image',\n tiff: 'image',\n cr2: 'image',\n dwg: 'image',\n cdr: 'image',\n ai: 'image',\n indd: 'image',\n pin: 'image',\n cdp: 'image',\n skp: 'image',\n stp: 'image',\n '3dm': 'image',\n mp3: 'audio',\n wav: 'audio',\n wma: 'audio',\n mod: 'audio',\n m4a: 'audio',\n compress: 'compress',\n zip: 'compress',\n rar: 'compress',\n '7z': 'compress',\n lz: 'compress',\n z01: 'compress',\n bz2: 'compress',\n gz: 'compress',\n alz: 'compress',\n pdf: 'pdf',\n xls: 'xls',\n xlsx: 'xls',\n ods: 'xls',\n mp4: 'video',\n avi: 'video',\n wmv: 'video',\n mpg: 'video',\n mts: 'video',\n flv: 'video',\n '3gp': 'video',\n vob: 'video',\n m4v: 'video',\n mpeg: 'video',\n m2ts: 'video',\n mov: 'video',\n doc: 'doc',\n docx: 'doc',\n eps: 'doc',\n txt: 'doc',\n odt: 'doc',\n rtf: 'doc',\n ppt: 'ppt',\n pptx: 'ppt',\n pps: 'ppt',\n ppsx: 'ppt',\n key: 'ppt',\n odp: 'ppt'\n };\n\n const chunks = inputFilename.split('.');\n if (chunks.length < 2) {\n return 'application';\n }\n const extension = chunks[ chunks.length - 1 ].toLowerCase();\n if (types[ extension ] === undefined) {\n return 'application';\n } else {\n return types[ extension ];\n }\n }\n}\n","import {ISkFile, SkFile} from \"./file\";\nimport {Audit, IAudit} from \"./audit\";\n\nexport interface ISkArticle extends IAudit {\n id?: number;\n content?: string;\n images?: ISkFile[];\n}\n\nexport class SkArticle extends Audit {\n id: number;\n content: string;\n images: SkFile[];\n\n constructor(data: ISkArticle = {}) {\n super(data);\n this.id = data.id;\n this.content = data.content;\n this.images = (data.images || []).map(item => new SkFile(item));\n }\n}\n","import {Audit, IAudit} from \"./audit\";\nimport {ISkDocumentPublicList} from \"./document\";\nimport {ApiPageable} from \"sk-front-lib/api\";\n\nexport interface ISkBoard extends IAudit {\n id?: number;\n url?: string;\n title?: string;\n subtitle?: string;\n skin?: string;\n\n showSupport?: boolean;\n\n permissions?: {\n publicRead?: boolean;\n publicWrite?: boolean;\n secretRead?: boolean;\n secretWrite?: boolean;\n useNotice?: boolean;\n }\n\n}\n\nexport class SkBoard extends Audit {\n id: number;\n url: string;\n title: string;\n subtitle?: string;\n skin: string;\n\n showSupport: boolean;\n\n permissions: {\n publicRead?: boolean;\n publicWrite?: boolean;\n secretRead?: boolean;\n secretWrite?: boolean;\n useNotice?: boolean;\n };\n\n\n constructor(data: ISkBoard = {}) {\n super(data);\n Object.assign(this,\n {\n skin: 'default',\n showSupport: false,\n permissions: {\n publicRead: true,\n publicWrite: false,\n secretRead: false,\n secretWrite: false,\n useNotice: false\n }\n },\n data\n );\n }\n\n isEmpty(): boolean {\n return !this.id;\n }\n}\n\nexport interface ISkBoardDetail extends ISkBoard {\n noticeDocuments?: ISkDocumentPublicList[];\n documents?: ApiPageable<ISkDocumentPublicList>;\n}\n","import { ISkArticle, SkArticle } from './article';\nimport { Audit, IAudit } from './audit';\nimport { ISkDocumentPublicList } from './document';\nimport {\n SkBrand,\n SkCatalogEmbed,\n SkCategory,\n SkKeyword,\n SkNaverEpEmbed,\n SkOpengraph,\n SkSubCategoryItem,\n SkValueType\n} from './etc';\nimport { ISkFile, SkFile } from './file';\nimport { SkPaymentStatus } from './payment';\nimport { ISkPromotionGiftGroupItem, ISkPromotionPublicList } from './promotion';\n\nexport interface SkProductCount {\n total?: number;\n trash?: number;\n}\n\nexport interface SkProductStockCount {\n totalIn?: number;\n totalOut?: number;\n current?: number;\n}\n\nexport enum SkProductType {\n Package = 'PACKAGE',\n Single = 'SINGLE'\n}\n\nexport enum SkProductStuffType {\n Hardware = 'HARDWARE',\n Software = 'SOFTWARE',\n Furniture = 'FURNITURE'\n}\n\nexport enum SkProductStatus {\n Preorder = 'PREORDER',\n Onsale = 'ONSALE',\n Soldout = 'SOLDOUT',\n Deactivate = 'DEACTIVATE'\n}\n\nexport enum SkProductAccessPolicy {\n Public = 'PUBLIC',\n Hidden = 'HIDDEN',\n PrivateLink = 'PRIVATE_LINK',\n PrivateUser = 'PRIVATE_USER'\n}\n\nexport interface ISkProductBrand {\n id?: number;\n product?: ISkProduct;\n brand?: SkBrand;\n isDefault?: boolean;\n}\n\nexport class SkProductBrand {\n id: number;\n product: SkProduct;\n brand: SkBrand;\n isDefault: boolean;\n\n constructor(data: ISkProductBrand = {}) {\n this.id = data.id;\n this.product = data.product ? new SkProduct(data.product) : null;\n this.brand = data.brand;\n this.isDefault = data.isDefault || false;\n }\n}\n\nexport interface ISkProductCategory {\n id?: number;\n product?: ISkProduct;\n category?: SkCategory;\n isDefault?: boolean;\n}\n\nexport class SkProductCategory {\n id: number;\n product: SkProduct;\n category: SkCategory;\n isDefault: boolean;\n\n constructor(data: ISkProductCategory = {}) {\n this.id = data.id;\n this.product = data.product ? new SkProduct(data.product) : null;\n this.category = data.category;\n this.isDefault = data.isDefault || false;\n }\n}\n\nexport interface ISkProductImage {\n id?: number;\n product?: ISkProduct;\n file?: ISkFile;\n orderIndex?: number;\n}\n\nexport class SkProductImage {\n id: number;\n product: SkProduct;\n file: SkFile;\n orderIndex: number;\n\n constructor(data: ISkProductImage = {}) {\n this.id = data.id;\n this.product = data.product ? new SkProduct(data.product) : new SkProduct();\n this.file = data.file ? new SkFile(data.file) : new SkFile();\n this.orderIndex = data.orderIndex || -1;\n }\n}\n\nexport enum SkProductOptionType {\n Base = 'BASE', // 기본옵션 (상품의 가격 범위 산정에 영향을 미침)\n Additional = 'ADDITIONAL', // 부가옵션 (상품의 가격 범위 산정에 영향을 미치지 않는다.)\n Multiple = 'MULTIPLE' // 추가옵션 (가격 범위 산정에 영향을 미치지 않으며, 중복으로 선택 가능하다)\n}\n\nexport interface ISkProductOption {\n id?: number;\n type?: SkProductOptionType;\n title?: string;\n values?: ISkProductOptionValue[];\n promotionOption?: boolean;\n}\n\nexport interface ISkProductOptionValue {\n id?: number;\n title?: string;\n value?: string;\n addedPrice?: number;\n}\n\nexport interface ISkProductOptionAnswer {\n id?: number;\n value?: any;\n}\n\nexport interface ISkProductPackage {\n id?: number;\n children?: ISkProduct;\n hidden?: boolean;\n share?: number;\n amount?: number;\n}\n\nexport class SkProductPackage {\n id: number;\n children: SkProduct;\n hidden: boolean;\n share: number;\n amount: number;\n\n constructor(data: ISkProductPackage = {}) {\n this.id = data.id;\n this.children = data.children ? new SkProduct(data.children) : null;\n this.hidden = data.hidden || false;\n this.share = data.share || (data.children ? data.children.price.retail : 0);\n this.amount = data.amount || 1;\n }\n}\n\nexport interface SkProductPrice {\n message?: string;\n quotaFree?: boolean;\n paymentNaver?: boolean;\n original?: number;\n retail?: number;\n pointAmount?: number;\n pointType?: SkValueType;\n rebateAmount?: number;\n rebateType?: SkValueType;\n maxUsablePoint?: number;\n wholesaleNormal?: number;\n wholesaleDealer?: number;\n wholesaleConditionA?: number;\n wholesaleConditionB?: number;\n wholesaleConditionC?: number;\n useVarPrice?: boolean;\n useVarPriceXc?: boolean;\n varCurrency?: string;\n varFormula?: string;\n varMap?: number;\n varCost?: number;\n varAddAmount?: number;\n varAddPercent?: number;\n varUpdatedDate?: string;\n}\n\nexport interface SkProductStock {\n useStockHistory?: boolean;\n useAutoStatusChange?: boolean;\n useXchangeApi?: boolean;\n}\n\nexport interface SkProductEDelivery {\n sku?: string;\n downloadLink?: string;\n template?: string;\n}\n\nexport interface ISkProductStockHistory extends IAudit {\n id?: number;\n used?: boolean;\n serial?: string;\n memo?: string;\n}\n\n\nexport interface ISkProduct extends IAudit {\n id?: number;\n title?: string;\n code?: string;\n url?: string;\n type?: SkProductType;\n stuffType?: SkProductStuffType;\n status?: SkProductStatus;\n preorderStartDate?: string;\n brands?: ISkProductBrand[];\n categories?: ISkProductCategory[];\n keywords?: SkKeyword[];\n images?: ISkProductImage[];\n accessPolicy?: SkProductAccessPolicy;\n accessPolicyValue?: string;\n price?: SkProductPrice;\n stockConfig?: SkProductStock;\n edelivery?: SkProductEDelivery;\n furnitureAssembly?: boolean;\n opengraph?: SkOpengraph;\n naverep?: SkNaverEpEmbed;\n catalog?: SkCatalogEmbed;\n options?: ISkProductOption[];\n articleDesc?: ISkArticle;\n articleSpec?: ISkArticle;\n packages?: ISkProductPackage[];\n activated?: boolean;\n listOrder?: number;\n viewCount?: number;\n simpleText?: string;\n}\n\nexport class SkProduct extends Audit {\n id: number;\n title: string;\n code?: string;\n url?: string;\n type: SkProductType;\n stuffType: SkProductStuffType;\n status: SkProductStatus;\n preorderStartDate: string;\n brands: SkProductBrand[];\n categories: SkProductCategory[];\n keywords: SkKeyword[];\n images: SkProductImage[];\n accessPolicy: SkProductAccessPolicy;\n accessPolicyValue: string;\n price: SkProductPrice;\n stockConfig: SkProductStock;\n edelivery: SkProductEDelivery;\n furnitureAssembly: boolean;\n opengraph: SkOpengraph;\n naverep: SkNaverEpEmbed;\n catalog: SkCatalogEmbed;\n options: ISkProductOption[];\n articleDesc: ISkArticle;\n articleSpec: ISkArticle;\n packages: SkProductPackage[];\n activated: boolean;\n listOrder: number;\n viewCount: number;\n simpleText: string;\n\n constructor(data: ISkProduct = {}) {\n super(data);\n\n this.id = data.id;\n this.title = data.title;\n this.code = data.code;\n this.url = data.url;\n this.type = data.type || SkProductType.Single;\n this.stuffType = data.stuffType;\n this.status = data.status || SkProductStatus.Onsale;\n this.preorderStartDate = data.preorderStartDate;\n this.brands = (data.brands || []).map(item => new SkProductBrand(item));\n this.categories = (data.categories || []).map(item => new SkProductCategory(item));\n this.keywords = (data.keywords || []);\n this.images = (data.images || []).map(item => new SkProductImage(item));\n this.accessPolicy = data.accessPolicy || SkProductAccessPolicy.Public;\n this.accessPolicyValue = data.accessPolicyValue;\n this.price = Object.assign({}, {\n message: '',\n quotaFree: false,\n paymentNaver: false,\n original: 0,\n retail: 0,\n pointAmount: 0,\n pointType: 'AMOUNT',\n maxUsablePoint: 50,\n wholesaleNormal: 0,\n wholesaleDealer: 0,\n wholesaleConditionA: 0,\n wholesaleConditionB: 0,\n wholesaleConditionC: 0,\n useVarPrice: false,\n useVarPriceXc: false,\n varCurrency: 'USD',\n varFormula: '',\n varMap: 0,\n varCost: 0,\n varAddAmount: 0,\n varAddPercent: 0,\n varUpdatedDate: null\n }, data.price);\n this.stockConfig = Object.assign({}, {useStockHistory: false, useAutoStatusChange: false, useXchangeApi: false}, data.stockConfig);\n this.opengraph = Object.assign({}, {ogTitle: '', ogAutoFill: true, ogDesc: '', ogImage: null}, data.opengraph);\n this.naverep = Object.assign({}, {naverepShow: true, naverepCustom: false, naverepTitle: '', naverepCategory: ''}, data.naverep);\n this.catalog = Object.assign({}, {catalogShow: true, catalogCustom: false, catalogTitle: '', catalogCategory: null}, data.catalog );\n this.edelivery = Object.assign({}, {sku: '', downloadLink: '', template: ''}, data.edelivery);\n this.furnitureAssembly = data.furnitureAssembly || false;\n this.options = data.options || [];\n this.articleDesc = data.articleDesc ? new SkArticle(data.articleDesc) : new SkArticle();\n this.articleSpec = data.articleSpec ? new SkArticle(data.articleSpec) : new SkArticle();\n this.packages = (data.packages || []).map(item => new SkProductPackage(item));\n this.activated = data.activated || false;\n this.listOrder = data.listOrder || 0;\n this.viewCount = data.viewCount || 0;\n this.simpleText = data.simpleText || '';\n }\n\n isEmpty(): boolean {\n return !this.id;\n }\n}\n\nexport interface SkProductListItem {\n id?: number;\n title?: string;\n code?: string;\n url?: string;\n type?: SkProductType;\n stuffType?: SkProductStuffType;\n status?: SkProductStatus;\n hasPromotion?: boolean;\n hasGift?: boolean;\n realtimeSoftware?: boolean;\n furnitureAssembly?: boolean;\n brandName?: string;\n brandId?: number;\n brands?: ISkProductBrandItem[];\n\n wishlistCount?: number;\n wishlistMe?: boolean;\n image?: ISkFile;\n\n quotaFree?: boolean;\n priceMessage?: string;\n priceOriginal?: number;\n priceDiscounted?: number;\n priceMin?: number;\n priceMax?: number;\n\n packageItems?: ISkProductPackageListItem[];\n\n accessPolicy?: SkProductAccessPolicy;\n accessPolicyValue?: string;\n}\n\nexport interface ISkProductDetail extends SkProductListItem {\n point?: number;\n includedInPackage?: boolean;\n images?: ISkFile[];\n simpleText?: string;\n articleDesc?: ISkArticle;\n articleSpec?: ISkArticle;\n opengraph?: SkOpengraph;\n paymentNaver?: boolean;\n packageItems?: ISkProductPackageListItem[];\n linkedSeries?: ISkProductDetailSeries[];\n linkedDocuments?: ISkDocumentPublicList[];\n linkedPromotions?: ISkPromotionPublicList[];\n linkedPromotionGiftGroups?: ISkPromotionGiftGroupItem[];\n}\n\nexport interface ISkProductPackageListItem {\n id?: number;\n product?: SkProductListItem;\n showSpec?: boolean;\n showDesc?: boolean;\n orderIndex?: number;\n amount?: number;\n}\n\nexport interface SkProductWishlist {\n wishlistCount?: number;\n wishlistMe?: boolean;\n}\n\nexport interface ISkProductDetailSeriesItem {\n id?: number;\n title?: string;\n url?: string;\n}\n\nexport interface ISkProductDetailSeries {\n id?: number;\n title?: string;\n items?: ISkProductDetailSeriesItem[];\n}\n\nexport interface ISkProductFilterData {\n lowestPrice?: number;\n highestPrice?: number;\n minPrice?: number;\n maxPrice?: number;\n availableBrands?: SkBrand[];\n availableCategories?: SkCategory[];\n availableSubCategories?: SkCategory[];\n selectedSubCategoryItems?: SkSubCategoryItem[];\n}\n\nexport interface ISkProductBrandItem {\n id: number;\n name: string;\n}\n\nexport interface ISkProductPublish {\n id?: number;\n productId?: number;\n status?: SkProductStatus;\n preorderStartDate?: string;\n accessPolicy?: SkProductAccessPolicy;\n actionDate?: string;\n activated?: boolean;\n}\n\nexport function getSkProductStatusText(status: SkProductStatus) {\n switch (status) {\n case SkProductStatus.Deactivate:\n return '판매 중지';\n case SkProductStatus.Onsale:\n return '판매중';\n case SkProductStatus.Preorder:\n return '예약판매';\n case SkProductStatus.Soldout:\n return '품절';\n default:\n return status;\n }\n}\n\nexport function getSkProductAccessPolicyText(accessPolicy: SkProductAccessPolicy) {\n switch (accessPolicy) {\n case SkProductAccessPolicy.Hidden:\n return '어드민 외 접근불가';\n case SkProductAccessPolicy.PrivateLink:\n return '링크로만 접근 가능';\n case SkProductAccessPolicy.PrivateUser:\n return '해당 유저만 접근 가능';\n case SkProductAccessPolicy.Public:\n return '공개';\n default:\n return accessPolicy;\n }\n}\n\n\n","import {Audit, IAudit} from \"./audit\";\nimport {ISkFile, SkFile} from \"./file\";\nimport {ISkArticle, SkArticle} from \"./article\";\nimport {ISkBoard, SkBoard} from \"./board\";\nimport { ISkProduct, SkProduct, SkProductAccessPolicy, SkProductStatus } from \"./product\";\nimport {SkCategory, SkOpengraph} from \"./etc\";\nimport {ISkUser, SkUser} from \"./user\";\n\nexport interface SkDocumentCount {\n total?: number;\n trash?: number;\n}\n\nexport interface ISkDocumentSibling {\n id?: number;\n url?: string;\n}\n\nexport enum SkDocumentType {\n Editorial = 'EDITORIAL',\n Studio = 'STUDIO',\n Post = 'POST',\n Page = 'PAGE'\n}\n\nexport interface ISkDocumentAttachment {\n id?: number;\n file?: any;\n title?: string;\n url?: string;\n}\n\nexport class SkDocumentAttachment {\n id: number;\n file: SkFile;\n title: string;\n url: string;\n\n constructor(data: ISkDocumentAttachment = {}) {\n this.id = data.id;\n this.file = new SkFile(data.file);\n this.title = data.title;\n this.url = data.url;\n }\n}\n\nexport interface ISkDocument extends IAudit {\n id?: number;\n type?: SkDocumentType;\n url?: string;\n title?: string;\n author?: ISkUser;\n activate?: boolean;\n published?: boolean;\n secret?: boolean;\n notice?: boolean;\n article?: ISkArticle;\n image?: ISkFile;\n imageAlt?: ISkFile;\n board?: ISkBoard;\n category?: SkCategory;\n linkedProduct?: ISkProduct[];\n attachment?: ISkDocumentAttachment[];\n viewCount?: number;\n listOrder?: number;\n opengraph?: SkOpengraph;\n}\n\nexport class SkDocument extends Audit {\n id: number;\n type: SkDocumentType;\n url: string;\n title: string;\n author: SkUser;\n activate: boolean;\n published: boolean;\n secret: boolean;\n notice: boolean;\n article: SkArticle;\n image: SkFile;\n imageAlt: SkFile;\n board: SkBoard;\n category: SkCategory;\n linkedProduct: SkProduct[];\n attachment: SkDocumentAttachment[];\n viewCount: number;\n listOrder: number;\n opengraph: SkOpengraph;\n\n constructor(data: ISkDocument = {}) {\n super(data);\n\n this.id = data.id;\n this.type = data.type;\n this.url = data.url;\n this.title = data.title;\n this.author = data.author ? new SkUser(data.author) : null;\n this.activate = data.activate || false;\n this.published = data.published || false;\n this.secret = data.secret || false;\n this.notice = data.notice || false;\n this.article = data.article ? new SkArticle(data.article) : null;\n this.image = data.image ? new SkFile(data.image) : null;\n this.imageAlt = data.imageAlt ? new SkFile(data.imageAlt): null;\n this.board = data.board ? new SkBoard(data.board) : null;\n this.category = data.category;\n this.linkedProduct = (data.linkedProduct || []).map(item => new SkProduct(item));\n this.attachment = (data.attachment || []).map(item => new SkDocumentAttachment(item));\n this.viewCount = data.viewCount;\n this.listOrder = data.listOrder || 0;\n this.opengraph = Object.assign({}, {ogTitle: '', ogAutoFill: true, ogDesc: '', ogImage: null}, data.opengraph);\n }\n\n isEmpty(): boolean {\n return !this.id;\n }\n}\n\nexport interface ISkDocumentPublicList {\n id?: number;\n url?: string;\n type?: SkDocumentType;\n category?: SkCategory;\n title?: string;\n boardUrl?: string;\n boardName?: string;\n desc?: String;\n image?: ISkFile;\n imageAlt?: ISkFile;\n subImages?: number[];\n authorId?: number;\n authorNickname?: string;\n authorEmail?: string;\n createdDate?: string;\n}\n\nexport interface ISkDocumentPublish {\n id?: number;\n documentId?: number;\n published?: boolean;\n notice?: boolean;\n listOrder?: boolean;\n actionDate?: string;\n activated?: boolean;\n}\n","import { ISkProductDetail, ISkProductOption, ISkProductOptionValue } from './product';\nimport { ISkPromotionGiftItem } from './promotion';\n\nexport interface ISkCartOption {\n id?: number;\n option?: ISkProductOption;\n value?: ISkProductOptionValue;\n amount?: number;\n}\n\nexport interface ISkCart {\n id?: number;\n product?: ISkProductDetail;\n amount?: number;\n options?: ISkCartOption[];\n gifts?: ISkPromotionGiftItem[]\n}\n\nexport class SkCartOption {\n id: number;\n option: ISkProductOption;\n value: ISkProductOptionValue;\n amount: number;\n\n constructor(data: ISkCartOption = {}) {\n this.id = data.id || null;\n this.option = data.option;\n this.value = data.value;\n this.amount = data.amount || 1;\n }\n}\n\nexport class SkCart {\n id: number;\n product: ISkProductDetail;\n amount: number;\n options: SkCartOption[];\n gifts: ISkPromotionGiftItem[];\n\n constructor(data: ISkCart = {}) {\n this.id = data.id || null;\n this.product = data.product;\n this.amount = data.amount || 1;\n this.options = (data.options || []).map(item => new SkCartOption(item));\n this.gifts = data.gifts || [];\n }\n\n getSinglePrice(): number {\n const basePrice = Math.min(this.product.priceOriginal, this.product.priceDiscounted);\n const optionPrice = (this.options || []).map(item => item.value.addedPrice * item.amount).reduce((previousValue, currentValue) => previousValue + currentValue, 0);\n return basePrice + optionPrice;\n }\n\n getTotalPrice(): number {\n return this.getSinglePrice() * this.amount;\n }\n\n checkOptionExists(): boolean {\n return this.options.filter(option => !!option.value).length > 0;\n }\n}\n\nexport interface ISkCartOptionCreate {\n option: number;\n value: number;\n}\n\nexport interface ISkCartCreate {\n product: number;\n amount: number;\n selectedOptions: ISkCartOptionCreate[];\n selectedGifts: {id: number}[];\n}\n\n","import { ApiPageable } from 'sk-front-lib/api';\nimport { ISkArticle } from './article';\nimport { IAudit } from './audit';\nimport { ISkDocumentPublicList } from './document';\nimport { ISkFile } from './file';\nimport { SkProduct, SkProductListItem } from './product';\nimport { ISkPromotionPublicList } from './promotion';\nimport { ISkUser } from './user';\n\nexport interface SkOpengraph {\n ogAutoFill?: boolean;\n ogTitle?: string;\n ogDesc?: string;\n ogImage?: ISkFile;\n}\n\nexport interface SkNaverEpEmbed {\n naverepShow?: boolean;\n naverepCustom?: boolean;\n naverepTitle?: string;\n naverepCategory?: string;\n}\n\nexport interface SkCatalogEmbed {\n catalogShow?: boolean;\n catalogCustom?: boolean;\n catalogTitle?: string;\n catalogCategory?: number;\n}\n\nexport enum SkValueType {\n Amount = 'AMOUNT',\n Percent = 'PERCENT',\n Fixed = 'FIXED',\n Custom = 'CUSTOM'\n}\n\nexport enum SkGiftType {\n Real = 'REAL',\n Custom = 'CUSTOM'\n}\n\nexport interface SkBrand {\n id?: number;\n title?: string;\n content?: string;\n showDistribution?: boolean;\n listOrder?: number;\n image?: ISkFile;\n opengraph?: SkOpengraph;\n selected?: boolean;\n disabled?: boolean;\n hidden?: boolean;\n}\n\nexport enum SkCategoryType {\n Product = 'PRODUCT', // 상품 관련\n Promotion = 'PROMOTION', // 프로모션\n Editorial = 'EDITORIAL',\n Studio = 'STUDIO',\n Board = 'BOARD'\n}\n\nexport interface SkSubCategoryItem {\n id?: number;\n title?: string;\n selected?: boolean;\n disabled?: boolean;\n hidden?: boolean;\n}\n\nexport interface SkSubCategory {\n id?: number;\n title?: string;\n children?: SkSubCategoryItem[];\n}\n\nexport interface SkCategory {\n id?: number;\n title?: string;\n selected?: boolean;\n disabled?: boolean;\n hidden?: boolean;\n type?: SkCategoryType;\n subCategories?: SkSubCategory[];\n opengraph?: SkOpengraph;\n}\n\nexport interface SkKeyword {\n id?: number;\n title?: string;\n}\n\nexport interface ISkAddress {\n id?: number;\n title?: string;\n receiverName?: string;\n email?: string;\n phone?: string;\n phone2?: string;\n zipCode?: string;\n address?: string;\n address2?: string;\n isDefault?: boolean;\n}\n\nexport interface ISkStore {\n id?: number;\n name?: string;\n url?: string;\n address?: string;\n phone?: string;\n email?: string;\n mapKakaoUrl?: string;\n mapNaverUrl?: string;\n mapGoogleUrl?: string;\n mapEmbedUrl?: string;\n showDistribution?: boolean;\n brands?: SkBrand[];\n}\n\nexport class SkStore {\n id: number;\n name: string;\n url: string;\n address: string;\n phone: string;\n email: string;\n mapKakaoUrl: string;\n mapNaverUrl: string;\n mapGoogleUrl: string;\n mapEmbedUrl: string;\n showDistribution: boolean;\n brands: SkBrand[];\n\n constructor(data: ISkStore = {}) {\n Object.assign(this, {\n name: '',\n url: '',\n address: '',\n phone: '',\n email: '',\n mapKakaoUrl: '',\n mapNaverUrl: '',\n mapGoogleUrl: '',\n mapEmbedUrl: '',\n showDistribution: false,\n brands: []\n }, data);\n }\n}\n\nexport interface ISkSearchResult {\n product?: ApiPageable<SkProductListItem>;\n promotion?: ApiPageable<ISkPromotionPublicList>;\n editorial?: ApiPageable<ISkDocumentPublicList>;\n studio?: ApiPageable<ISkDocumentPublicList>;\n etc?: ApiPageable<ISkDocumentPublicList>;\n}\n\nexport interface ISkSearchKeyword {\n id?: number;\n keyword?: string;\n}\n\nexport interface ISkShippingFee {\n id?: number;\n zipCodeStart?: string;\n zipCodeEnd?: string;\n address?: string;\n fee?: number;\n}\n\nexport interface ISkIdTitleValue {\n id?: number | string;\n title?: string;\n value?: string;\n}\n\nexport interface SkBank {\n id?: number;\n name?: string;\n}\n\nexport enum SkAffiliateRequestStatus {\n Wait = 'WAIT',\n Approve = 'APPROVE',\n Deny = 'DENY',\n}\n\nexport enum SkAffiliateTargetType {\n None = 'NONE',\n All = 'ALL',\n Brand = 'BRAND',\n Category = 'CATEGORY',\n Product = 'PRODUCT'\n}\n\nexport enum SkAffiliateTargetApply {\n Include = 'INCLUDE',\n Exclude = 'EXCLUDE'\n}\n\nexport interface ISkAffiliateTarget {\n id?: number;\n type?: SkAffiliateTargetType;\n apply?: SkAffiliateTargetApply;\n orderIndex?: number;\n startDate?: string;\n endDate?: string;\n brand?: SkBrand;\n category?: SkCategory;\n products?: SkProduct[];\n rebateAmount?: number;\n rebateType?: SkValueType;\n activated?: boolean;\n}\n\nexport interface ISkAffiliateRequest extends IAudit {\n id: string,\n status: SkAffiliateRequestStatus,\n user: ISkUser,\n name: string,\n phoneNumber: string,\n social?: string,\n desc: ISkArticle,\n attachment?: ISkFile,\n denyReason?: string\n}\n\nexport interface ISkAffiliateStatsItem {\n date?: string;\n count?: number;\n sum?: number;\n sum2?: number;\n\n rank?: {\n id?: number;\n name?: string;\n count?: number;\n sum?: number;\n sum2?: number;\n }[]\n}\n\nexport interface ISkAffiliateRebateMonthly {\n id?: number;\n year?: number;\n month?: number;\n totalRebatePoint?: number;\n totalOrderCount?: number;\n totalProductView?: number;\n pointPaid?: boolean;\n paidDate?: boolean;\n}\n\nexport interface ISkAffiliateStats {\n dailyProductView?: ISkAffiliateStatsItem[];\n dailyPurchase?: ISkAffiliateStatsItem[];\n monthlyProductView?: ISkAffiliateStatsItem[];\n monthlyPurchase?: ISkAffiliateStatsItem[];\n monthlyRebates?: ISkAffiliateRebateMonthly[];\n}\n","import { ISkArticle, SkArticle } from './article';\nimport { Audit, IAudit } from './audit';\nimport { SkCategory, SkGiftType, SkOpengraph, SkValueType } from './etc';\nimport { ISkFile, SkFile } from './file';\nimport { ISkProduct, ISkProductOption, SkProduct, SkProductListItem } from './product';\n\nexport enum SkPromotionAccessPolicy {\n Public = 'PUBLIC',\n Hidden = 'HIDDEN'\n}\n\nexport enum SkPromotionGiftServeType {\n All = 'ALL',\n Select = 'SELECT'\n}\n\nexport interface SkPromotionCount {\n total?: number;\n trash?: number;\n}\n\nexport interface ISkPromotionGift {\n id?: number;\n product?: ISkProduct;\n amount?: number;\n\n type?: SkGiftType;\n optionTitle?: string;\n optionValueTitle?: string;\n optionAddedPrice?: number;\n customTitle?: string;\n customImage?: ISkFile;\n customBrandName?: string;\n customPrice?: number;\n}\n\nexport class SkPromotionGift {\n id: number;\n product: SkProduct;\n amount: number;\n\n type: SkGiftType;\n optionTitle: string;\n optionValueTitle: string;\n optionAddedPrice: number;\n customTitle: string;\n customImage: ISkFile;\n customBrandName: string;\n customPrice: number;\n\n constructor(data: ISkPromotionGift = {}) {\n this.id = data.id;\n this.product = data.product ? new SkProduct(data.product) : null;\n this.amount = data.amount || 1;\n\n this.type = data.type || SkGiftType.Real;\n this.optionTitle = data.optionTitle || '';\n this.optionValueTitle = data.optionValueTitle || '';\n this.optionAddedPrice = data.optionAddedPrice || 0;\n this.customTitle = data.customTitle || '';\n this.customImage = new SkFile(data.customImage || {});\n this.customBrandName = data.customBrandName || '';\n this.customPrice = data.customPrice || 0;\n }\n}\n\nexport interface ISkPromotionGiftGroup {\n id?: number;\n serveType?: SkPromotionGiftServeType;\n gifts?: ISkPromotionGift[];\n}\n\nexport class SkPromotionGiftGroup {\n id: number;\n serveType: SkPromotionGiftServeType;\n gifts: ISkPromotionGift[];\n\n constructor(data: ISkPromotionGiftGroup = {}) {\n this.id = data.id;\n this.serveType = data.serveType || SkPromotionGiftServeType.All;\n this.gifts = (data.gifts || []).map(item => new SkPromotionGift(item));\n }\n}\n\nexport interface ISkPromotionTarget {\n id?: number;\n promotion?: ISkPromotion;\n product?: ISkProduct;\n isLimited?: boolean;\n stockAmount?: number;\n discountType?: SkValueType;\n discountValue?: number;\n giftGroups?: ISkPromotionGiftGroup[];\n}\n\nexport class SkPromotionTarget {\n id: number;\n promotion: SkPromotion;\n product: SkProduct;\n isLimited: boolean;\n stockAmount: number;\n discountType: SkValueType;\n discountValue: number;\n giftGroups: SkPromotionGiftGroup[];\n\n constructor(data: ISkPromotionTarget = {}) {\n this.id = data.id;\n this.promotion = data.promotion ? new SkPromotion(data.promotion) : null;\n this.product = data.product ? new SkProduct(data.product) : null;\n this.isLimited = data.isLimited || false;\n this.stockAmount = data.stockAmount || 0;\n this.discountType = data.discountType;\n this.discountValue = data.discountValue || 0;\n this.giftGroups = (data.giftGroups || []).map(item => new SkPromotionGiftGroup(item));\n }\n}\n\nexport interface ISkPromotionCategory {\n id?: number;\n category?: SkCategory;\n}\n\nexport class SkPromotionCategory {\n id: number;\n category: SkCategory;\n\n constructor(data: ISkPromotionCategory = {}) {\n this.id = data.id;\n this.category = data.category;\n }\n}\n\nexport interface ISkPromotion extends IAudit {\n id?: number;\n title?: string;\n startDate?: string;\n endDate?: string;\n endDateString?: string;\n rebateString?: string;\n accessPolicy?: SkPromotionAccessPolicy;\n categories?: ISkPromotionCategory[];\n image?: ISkFile;\n imageAlt?: ISkFile;\n article?: ISkArticle;\n benefit?: ISkArticle;\n targets?: ISkPromotionTarget[];\n opengraph?: SkOpengraph;\n listOrder?: number;\n activated?: boolean;\n}\n\nexport class SkPromotion extends Audit {\n id: number;\n title: string;\n startDate: string;\n endDate: string;\n endDateString: string;\n rebateString: string;\n accessPolicy?: SkPromotionAccessPolicy;\n categories?: SkPromotionCategory[];\n image: SkFile;\n imageAlt: SkFile;\n article: SkArticle;\n benefit: SkArticle;\n targets: SkPromotionTarget[];\n opengraph: SkOpengraph;\n listOrder: number;\n activated: boolean;\n\n constructor(data: ISkPromotion = {}) {\n super(data);\n\n this.id = data.id;\n this.title = data.title || '';\n this.startDate = data.startDate;\n this.endDate = data.endDate;\n this.endDateString = data.endDateString || '';\n this.rebateString = data.rebateString || '';\n this.accessPolicy = data.accessPolicy || SkPromotionAccessPolicy.Public;\n this.categories = (data.categories || []).map(item => new SkPromotionCategory(item));\n this.image = data.image ? new SkFile(data.image) : null;\n this.imageAlt = data.imageAlt ? new SkFile(data.imageAlt) : null;\n this.article = data.article ? new SkArticle(data.article) : null;\n this.benefit = data.benefit ? new SkArticle(data.benefit) : null;\n this.targets = (data.targets || []).map(item => new SkPromotionTarget(item));\n this.opengraph = Object.assign({}, {ogTitle: '', ogAutoFill: true, ogDesc: '', ogImage: null}, data.opengraph);\n this.listOrder = data.listOrder;\n this.activated = data.activated;\n }\n\n isEmpty(): boolean {\n return !this.id;\n }\n}\n\nexport interface ISkPromotionGiftItem {\n id?: number;\n product?: SkProductListItem;\n amount?: number;\n type: SkGiftType;\n optionTitle: string;\n optionValueTitle: string;\n optionAddedPrice: number;\n customTitle: string;\n customImage: ISkFile;\n customBrandName: string;\n customPrice: number;\n}\n\nexport interface ISkPromotionGiftGroupItem {\n serveType?: SkPromotionGiftServeType;\n gifts?: ISkPromotionGiftItem[];\n}\n\nexport interface ISkPromotionTargetItem {\n productId?: number;\n product?: SkProductListItem;\n isLimited?: boolean;\n stockAmount?: number;\n discountType?: SkValueType;\n discountValue?: number;\n giftGroups?: ISkPromotionGiftGroupItem[];\n options?: ISkProductOption[];\n}\n\nexport interface ISkPromotionUpdateImage {\n image?: number;\n imageAlt?: number;\n}\n\nexport interface ISkPromotionPublicList {\n id?: number;\n image?: ISkFile;\n imageAlt?: ISkFile;\n title?: string;\n endDate?: string;\n endDateString?: string;\n rebateString?: string;\n}\n\nexport interface ISkPromotionPublicDetail extends ISkPromotionPublicList {\n content?: string;\n benefit?: string;\n targets?: ISkPromotionTargetItem[];\n opengraph?: SkOpengraph;\n}\n","import {IAudit} from './audit';\nimport {ISkAddress} from './etc';\nimport {ISkFile} from './file';\nimport {ISkPayment} from './payment';\nimport {ISkProductDetail} from './product';\nimport {ISkShipping, SkShippingMethod} from './shipping';\nimport {ISkAuthor, ISkUser, SkUser} from './user';\n\nexport interface ISkOrderCount {\n total?: number;\n wait?: number;\n paid?: number;\n process?: number;\n complete?: number;\n cancel?: number;\n}\n\nexport enum SkOrderType {\n Normal = 'NORMAL',\n Admin = 'ADMIN',\n DEALER = 'DEALER'\n}\n\nexport enum SkOrderStatus {\n Prepare = 'PREPARE', // 최초 주문 생성시 적용 상태.\n Progress = 'PROGRESS', // 결제 진행중.\n Wait = 'WAIT', // 결제 대기중 (무통장 입금)\n Paid = 'PAID', // 결제 완료.\n ProcessStart = 'PROCESS_START', // 결제 후 처리 시작 (사측이 확인한 상태)\n ProcessPartial = 'PROCESS_PARTIAL', // 결제 후 일부 처리중.\n Process = 'PROCESS', // 결제 후 처리중.\n Complete = 'COMPLETE', // 결제후 (배송 등 처리까지) 완료.\n CancelRequest = 'CANCEL_REQUEST', // 주문 취소 요청\n CancelSystem = 'CANCEL_SYSTEM', // 시스템에 의한 자동 취소\n Cancel = 'CANCEL', // 주문 취소\n Error = 'ERROR'\n}\n\nexport enum SkOrderCancelType {\n Just = 'JUST', // 구매 의사 없음 (변심)\n ModifyOrder = 'MODIFY_ORDER', // 주문 정보 변경\n Wrong = 'WRONG', // 다른 상품 잘못 주문\n Cheaper = 'CHEAPER', // 타 쇼핑몰에서 더 저렴하게 판매\n Error = 'ERROR' // 상품 정보 오류\n}\n\nexport function getSkOrderCancelTypeText(type: SkOrderCancelType) {\n switch (type) {\n case SkOrderCancelType.Just:\n return '구매 의사 없음 (변심)';\n case SkOrderCancelType.ModifyOrder:\n return '주문 정보 변경';\n case SkOrderCancelType.Wrong:\n return '다른 상품 잘못 주문';\n case SkOrderCancelType.Cheaper:\n return '타 쇼핑몰에서 더 저렴하게 판매';\n case SkOrderCancelType.Error:\n return '상품 정보 오류';\n default:\n return '코드(' + type + ')';\n }\n}\n\nexport function getSkOrderStatusText(status: SkOrderStatus) {\n switch (status) {\n case SkOrderStatus.Prepare:\n return '주문 생성중';\n case SkOrderStatus.Progress:\n return '결제 진행중';\n case SkOrderStatus.Wait:\n return '결제 대기중';\n case SkOrderStatus.Paid:\n return '결제 완료';\n case SkOrderStatus.ProcessStart:\n return '배송 준비중';\n case SkOrderStatus.ProcessPartial:\n return '부분 배송중';\n case SkOrderStatus.Process:\n return '배송중';\n case SkOrderStatus.Complete:\n return '배송 완료';\n case SkOrderStatus.CancelRequest:\n return '주문 취소 요청중'\n case SkOrderStatus.CancelSystem:\n return '시스템 취소'\n case SkOrderStatus.Cancel:\n return '주문 취소';\n case SkOrderStatus.Error:\n return '주문 오류(취소)';\n default:\n return '상태코드(' + status + ')';\n }\n}\n\nexport interface ISkOrderItemOption {\n id?: number;\n optionTitle?: string;\n valueTitle?: string;\n addedPrice?: number;\n amount?: number;\n}\n\nexport interface ISkOrderList {\n id?: string;\n title?: string;\n type?: SkOrderType;\n image?: ISkFile;\n status?: SkOrderStatus;\n\n user?: ISkAuthor;\n\n total?: number;\n subtotal?: number;\n shippingFee?: number;\n usedPoint?: number;\n\n createdDate?: string;\n}\n\nexport interface ISkOrderDetail {\n id?: string;\n title?: string;\n type?: SkOrderType;\n status?: SkOrderStatus;\n receiverName?: string;\n email?: string;\n phone?: string;\n items?: ISkOrderDetailItem[];\n payment?: ISkPayment;\n cancelType?: SkOrderCancelType;\n cancelDesc?: string;\n refundAccount?: string;\n shipping?: ISkShipping;\n\n user?: ISkUser;\n\n memo?: string;\n total?: number;\n subtotal?: number;\n shippingFee?: number;\n usedPoint?: number;\n discount?: number;\n maxUsablePoint?: number;\n affiliateKey?: string;\n\n createdDate?: string;\n}\n\nexport class SkOrderDetail {\n id: string;\n title: string;\n type: SkOrderType;\n status: SkOrderStatus;\n receiverName: string;\n email: string;\n phone: string;\n items: SkOrderDetailItem[];\n payment: ISkPayment;\n cancelType?: SkOrderCancelType;\n cancelDesc?: string;\n refundAccount?: string;\n shipping: ISkShipping;\n\n user: SkUser;\n\n memo: string;\n total: number;\n subtotal: number;\n shippingFee: number;\n usedPoint: number;\n maxUsablePoint: number;\n discount: number;\n affiliateKey?: string;\n\n createdDate: string;\n\n constructor(data: ISkOrderDetail = {}) {\n if (data === null) { data = {}; }\n Object.assign(this, data);\n\n this.user = data.user ? new SkUser(data.user) : null;\n this.items = (data.items || []).map(item => new SkOrderDetailItem(item));\n }\n}\n\nexport interface ISkOrderDetailItem {\n id?: number;\n product?: ISkProductDetail;\n amount?: number;\n options?: ISkOrderItemOption[];\n cartId?: string;\n price?: number;\n point?: number;\n couponDiscount?: number;\n}\n\nexport class SkOrderDetailItem {\n id: number;\n product: ISkProductDetail;\n amount: number;\n options: ISkOrderItemOption[];\n cartId: string;\n price: number;\n point: number;\n couponDiscount: number;\n originalPriceAtMoment: number;\n discountedPriceAtMoment: number;\n discountedMemo: string;\n\n constructor(data: ISkOrderDetailItem = {}) {\n if (data === null) { data = {}; }\n Object.assign(this, data);\n }\n\n getSinglePrice() {\n const basePrice = Math.min(this.product.priceOriginal, this.product.priceDiscounted);\n const optionPrice = (this.options || []).map(option => option.addedPrice * option.amount).reduce((previousValue, currentValue) => previousValue + currentValue, 0);\n\n return basePrice + optionPrice;\n }\n\n getTotalPrice() {\n return this.getSinglePrice() * this.amount;\n }\n\n checkOptionExists(): boolean {\n return (this.options || []).length > 0;\n }\n}\n\nexport interface ISkOrderReqProgress {\n addressData?: ISkAddress;\n createAddress?: boolean;\n usePoint?: number;\n banker?: string;\n memo?: string;\n method?: SkShippingMethod;\n useCoupons?: string[];\n}\n\nexport interface ISkOrderLog extends IAudit {\n id?: number;\n type?: 'SYSTEM' | 'MEMO';\n message?: string;\n}\n\nexport interface ISkValidateCoupon {\n discountAmount?: number;\n couponData?: {discountAmount: number, title: string, serial: string}[];\n}\n","export enum SkPaymentStatus {\n Transfer = 'TRANSFER', // 무통장 입금\n Card = 'CARD', // 일반 카드결제\n Card2 = 'CARD2', // 무이자 할부 카드결제\n Naver = 'NAVER', // 네이버 페이 (주문형)\n NaverPG = 'NAVER_PG', // 네이버 페이 (결제형)\n Kakao = 'KAKAO', // 카카오 페이\n Payco = 'PAYCO' // 페이코\n}\n\nexport interface ISkPayment {\n id?: string;\n type?: SkPaymentStatus;\n txId?: string;\n responseCode?: string;\n responseMessage?: string;\n cancelCode?: string;\n cancelMessage?: string;\n paidPrice?: number;\n banker?: string;\n bankExpireDate?: string;\n cardName?: string;\n cardQuota?: string;\n rawResponse?: string;\n rawCancelResponse?: string;\n paidDate?: string;\n}\n\nexport function getSkPaymentStatusText(status: SkPaymentStatus) {\n switch (status) {\n case SkPaymentStatus.Transfer:\n return '무통장입금';\n case SkPaymentStatus.Card:\n return '카드결제 (일반 무이자)';\n case SkPaymentStatus.Card2:\n return '카드결제 (분담 무이자)';\n case SkPaymentStatus.Kakao:\n return '카카오페이';\n case SkPaymentStatus.Payco:\n return 'PAYCO';\n case SkPaymentStatus.Naver:\n case SkPaymentStatus.NaverPG:\n return '네이버페이';\n default:\n return status;\n }\n}\n","import { SkProductListItem } from \"./product\";\n\nexport enum SkShippingStatus {\n Prepare = 'PREPARE', // 배송 준비중\n Progress = 'PROGRESS', // 배송중\n Done = 'DONE', // 배송 완료\n Fail = 'FAIL' // 배송 실패\n}\n\nexport enum SkShippingMethod {\n Normal = 'NORMAL',\n Normal2 = 'NORMAL2',\n Quick = 'QUICK',\n Visit = 'VISIT',\n Software = 'SOFTWARE',\n SoftwareRealtime = 'SOFTWARE_REALTIME',\n Howser = 'HOWSER',\n Howser2 = 'HOWSER2'\n}\n\nexport interface ISkShippingInfo {\n id?: number;\n memo?: string;\n method?: SkShippingMethod;\n status?: SkShippingStatus;\n orderItemId?: number;\n productInfo?: SkProductListItem;\n amount?: number;\n shippingCompanyName?: string;\n shippingCompanyCode?: string;\n trackingCode?: string;\n edeliveryInfo?: string;\n}\n\nexport interface ISkShipping {\n id?: number;\n receiverName?: string;\n email?: string;\n phone?: string;\n phone2?: string;\n zipCode?: string;\n address?: string;\n address2?: string;\n infoList?: ISkShippingInfo[];\n hardwareShipping?: boolean;\n softwareShipping?: boolean;\n}\n\nexport function getSkShippingMethodText(method: SkShippingMethod) {\n switch (method) {\n case SkShippingMethod.Normal:\n return '택배 배송';\n case SkShippingMethod.Normal2:\n return '착불 배송';\n case SkShippingMethod.Quick:\n return '퀵 배송 (착불)';\n case SkShippingMethod.Visit:\n return '방문 수령';\n case SkShippingMethod.Software:\n return '전자배송(수동)';\n case SkShippingMethod.SoftwareRealtime:\n return '전자배송(실시간)';\n case SkShippingMethod.Howser:\n return '가구 전문 배송(착불)'\n }\n}\n","export enum SkNicePayCreditCards {\n BC = '01', // 비씨\n KB = '02', // KB 국민\n KEB = '03', // 외환\n Samsung = '04', // 삼성\n Shinhan = '06', // 신한\n Hyundae = '07', // 현대\n Lotte = '08', // 롯데\n Hanmi = '09', // 한미\n SHanmi = '10', // 신세계한미\n City = '11', // 시티\n NH = '12', // 농협\n SuHyup = '13', // 수협\n PyungHwa = '14', // 평화\n Woori = '15', // 우리\n HanaSK = '16', // 하나 SK\n DongName = '17', // 동남(주택)\n JuTaek = '18', // 주택\n ChoHeung = '19', // 조흥(강원)\n ChuckHyup = '20', // 축협(농협)\n Gwangju = '21', // 광주\n Jeonbuk = '22', // 전북\n Jeju = '23', // 제주\n KDBC = '24', // 산은캐피탈\n VISA = '25', // 해외비자\n MASTER = '26', // 해외마스터\n Diners = '27', // 해외다이너스\n AMX = '28', // 해외 AMX\n JCB = '29', // 해외 JCB\n SKOKCashbag = '31', // SK-OKCashBag\n ePost = '32', // 우체국\n FSB = '33', // 저축은행\n UnionPay = '34', // 은련\n KFCC = '35', // 새마을금고\n KDB = '36', // KDB 산업\n Kakao = '37', // 카카오뱅크\n KBank = '38' // 케이뱅크\n}\n\nexport function getNicePayCreditCardTitle(value: SkNicePayCreditCards) {\n switch (value) {\n case SkNicePayCreditCards.BC: return '비씨카드';\n case SkNicePayCreditCards.KB: return 'KB국민카드';\n case SkNicePayCreditCards.KEB: return '외환카드';\n case SkNicePayCreditCards.Samsung: return '삼성카드';\n case SkNicePayCreditCards.Shinhan: return '신한카드';\n case SkNicePayCreditCards.Hyundae: return '현대카드';\n case SkNicePayCreditCards.Lotte: return '롯데카드';\n case SkNicePayCreditCards.Hanmi: return '한미카드';\n case SkNicePayCreditCards.SHanmi: return '신세계한미카드';\n case SkNicePayCreditCards.City: return '시티카드';\n case SkNicePayCreditCards.NH: return '농협카드';\n case SkNicePayCreditCards.SuHyup: return '수협카드';\n case SkNicePayCreditCards.PyungHwa: return '평화카드';\n case SkNicePayCreditCards.Woori: return '우리카드';\n case SkNicePayCreditCards.HanaSK: return '하나SK카드';\n case SkNicePayCreditCards.DongName: return '동남(주택)카드';\n case SkNicePayCreditCards.JuTaek: return '주택카드';\n case SkNicePayCreditCards.ChoHeung: return '조흥(강원)카드';\n case SkNicePayCreditCards.ChuckHyup: return '축협(농협)카드';\n case SkNicePayCreditCards.Gwangju: return '광주카드';\n case SkNicePayCreditCards.Jeonbuk: return '전북카드';\n case SkNicePayCreditCards.Jeju: return '제주카드';\n case SkNicePayCreditCards.KDBC: return '산은캐피탈카드';\n case SkNicePayCreditCards.VISA: return '해외비자카드';\n case SkNicePayCreditCards.MASTER: return '해외마스터카드';\n case SkNicePayCreditCards.Diners: return '해외다이너스카드';\n case SkNicePayCreditCards.AMX: return '해외AMX카드';\n case SkNicePayCreditCards.JCB: return '해외JCB카드';\n case SkNicePayCreditCards.SKOKCashbag: return 'SK-OKCashBag카드';\n case SkNicePayCreditCards.ePost: return '우체국카드';\n case SkNicePayCreditCards.FSB: return '저축은행카드';\n case SkNicePayCreditCards.UnionPay: return '은련카드';\n case SkNicePayCreditCards.KFCC: return '새마을금고카드';\n case SkNicePayCreditCards.KDB: return 'KDB산업카드';\n case SkNicePayCreditCards.Kakao: return '카카오뱅크카드';\n case SkNicePayCreditCards.KBank: return '케이뱅크카드';\n default: return `알수없음 (code: ${value})`;\n }\n}\n","import {ISkFile} from \"./file\";\nimport {Audit, IAudit} from \"./audit\";\n\nexport enum SkPointType {\n Add = 'ADD',\n Subtract = 'SUBTRACT'\n}\n\nexport interface ISkPoint extends IAudit{\n id?: number;\n type?: SkPointType;\n amount?: number;\n used?: boolean;\n cause?: string;\n expiredDate?: string;\n}\n\nexport class SkPoint extends Audit {\n id: number;\n type: SkPointType;\n amount: number;\n used: boolean;\n cause: string;\n expiredDate: string;\n\n constructor(data: ISkFile = {}) {\n super(data);\n Object.assign(this, data);\n }\n\n causeText(): string {\n let text = '';\n if (this.cause === 'ADMIN') {\n text = '어드민에 의해';\n\n if (this.type === SkPointType.Add) {\n text = text + ' 추가됨';\n } else if (this.type === SkPointType.Subtract) {\n text = text + ' 차감됨';\n }\n } else if (this.cause.startsWith('ORDER-')) {\n text = '주문(' + this.cause.replace('ORDER-', '') + ') 에 의해';\n\n if (this.type === SkPointType.Add) {\n text = text + ' 적립됨';\n } else if (this.type === SkPointType.Subtract) {\n text = text + ' 사용됨';\n }\n } else if (this.cause.startsWith('CANCEL-')) {\n text = '주문(' + this.cause.replace('CANCEL-', '') + ') 취소에 의해';\n\n if (this.type === SkPointType.Add) {\n text = text + ' 추가됨';\n } else if (this.type === SkPointType.Subtract) {\n text = text + ' 차감됨';\n }\n } else {\n text = this.cause;\n }\n\n return text;\n }\n}\n\nexport interface ISkPointAdd {\n type?: SkPointType;\n amount?: number;\n userId?: number;\n cause?: string;\n}\n\n","import { IAudit } from './audit';\nimport { ISkIdTitleValue, SkBrand, SkCategory, SkSubCategoryItem, SkValueType } from './etc';\nimport { ISkOrderList } from './order';\nimport { SkProductListItem } from './product';\nimport { ISkUser } from './user';\n\nexport enum SkCouponType {\n Code = 'CODE',\n Inject = 'INJECT'\n}\n\nexport enum SkCouponTarget {\n All = 'ALL',\n Brand = 'BRAND',\n Category = 'CATEGORY',\n SubCategory = 'SUBCATEGORY',\n Product = 'PRODUCT'\n}\n\nexport enum SkCouponTrigger {\n None = 'NONE',\n All = 'ALL',\n Brand = 'BRAND',\n Category = 'CATEGORY',\n SubCategory = 'SUBCATEGORY',\n Product = 'PRODUCT'\n}\n\nexport interface ISkCouponCount {\n total?: number;\n trash?: number;\n}\n\nexport interface ISkCouponListItem extends IAudit {\n id?: number;\n title?: string;\n type?: SkCouponType;\n startDate?: string;\n endDate?: string;\n forever?: boolean;\n singleCode?: string;\n activated?: boolean;\n}\n\nexport interface ISkCouponDetail extends ISkCouponListItem {\n usableWithOthers?: boolean; // 다른 쿠폰과 함께 사용 가능한지 여부\n duplicatable?: boolean; // 중복으로 사용 가능한지 여부\n anonymous?: boolean; // 비로그인 유저도 사용 가능 여부\n total?: number;\n used?: number;\n couponTarget?: SkCouponTarget;\n couponTargetBrands?: SkBrand[];\n couponTargetCategories?: SkCategory[];\n couponTargetSubCategories?: SkSubCategoryItem[];\n couponTargetProducts?: SkProductListItem[];\n couponTrigger?: SkCouponTrigger;\n couponTriggerAmount?: number;\n couponTriggerBrands?: SkBrand[];\n couponTriggerCategories?: SkCategory[];\n couponTriggerSubCategories?: SkSubCategoryItem[];\n couponTriggerProducts?: SkProductListItem[];\n discountAmount?: number;\n discountType?: SkValueType;\n minUsablePrice?: number;\n}\n\nexport interface ISkCouponTicket {\n id?: number;\n code?: string;\n coupon?: ISkCouponDetail;\n order?: ISkOrderList;\n user?: ISkUser;\n}\n\nexport interface ISkCouponTriggerUpdate {\n couponTrigger?: SkCouponTrigger;\n couponTriggerAmount?: number;\n couponTriggerBrandIds?: number[];\n couponTriggerCategoryIds?: number[];\n couponTriggerSubCategoryIds?: number[];\n couponTriggerProductIds?: number[];\n}\n\nexport interface ISkUserCouponInfo {\n id?: number;\n title?: string;\n code?: string;\n\n startDate?: string;\n endDate?: string;\n forever?: boolean;\n\n activated?: boolean;\n usableWithOthers?: boolean;\n\n couponTarget?: SkCouponTarget;\n couponTargetBrands?: ISkIdTitleValue[];\n couponTargetCategories?: ISkIdTitleValue[];\n couponTargetSubCategories?: ISkIdTitleValue[];\n couponTargetProducts?: ISkIdTitleValue[];\n\n discountAmount?: number;\n discountType?: SkValueType;\n minUsablePrice?: number;\n\n orderId?: string;\n paidDate?: string;\n}\n\nexport interface ISkUserCouponInfo {\n id?: number;\n title?: string;\n code?: string;\n\n startDate?: string;\n endDate?: string;\n forever?: boolean;\n\n activated?: boolean;\n usableWithOthers?: boolean;\n\n couponTarget?: SkCouponTarget;\n couponTargetBrands?: ISkIdTitleValue[];\n couponTargetCategories?: ISkIdTitleValue[];\n couponTargetSubCategories?: ISkIdTitleValue[];\n couponTargetProducts?: ISkIdTitleValue[];\n\n discountAmount?: number;\n discountType?: SkValueType;\n minUsablePrice?: number;\n\n orderId?: string;\n paidDate?: string;\n}\n","import {Audit, IAudit} from \"./audit\";\nimport {ISkDocumentPublicList} from \"./document\";\nimport {ISkUser, SkUser} from \"./user\";\n\nexport interface IComment extends IAudit {\n id?: number;\n author?: ISkUser;\n content?: string;\n secret?: boolean;\n}\n\nexport class SkComment extends Audit {\n id: number;\n author: SkUser;\n content: string;\n secret: boolean;\n\n constructor(data: IComment = {}) {\n super(data);\n\n this.id = data.id || null;\n this.author = new SkUser(data.author);\n this.content = data.content || '';\n this.secret = data.secret || false;\n }\n}\n\n\n/**\n * 문서용 댓글 데이터 정의\n */\n\nexport interface ISkDocumentCommentUpdate {\n content?: string;\n secret?: boolean;\n}\n\nexport interface ISkDocumentCommentWrite extends ISkDocumentCommentUpdate{\n documentId?: number;\n parentId?: number;\n}\n\nexport interface ISkDocumentCommentParent extends IComment {\n document?: ISkDocumentPublicList;\n\n childrens: ISkDocumentCommentChild[];\n childrenCount: number;\n}\n\nexport interface ISkDocumentCommentChild extends IComment {\n}\n\n\n\nexport class SkDocumentCommentParent extends SkComment {\n document: ISkDocumentPublicList;\n childrens: SkDocumentCommentChild[];\n childrenCount: number;\n\n constructor(data: ISkDocumentCommentParent) {\n super(data);\n\n this.document = data.document;\n this.childrens = (data.childrens || []).map(item => new SkDocumentCommentChild(item));\n this.childrenCount = data.childrenCount || 0;\n }\n}\n\nexport class SkDocumentCommentChild extends SkComment {\n constructor(data: ISkDocumentCommentChild) {\n super(data);\n }\n}\n\n","import {ISkUser} from \"./user\";\nimport {ISkFile} from \"./file\";\nimport {ISkProductDetail} from \"./product\";\nimport {ISkOrderDetail} from \"./order\";\nimport {IAudit} from \"./audit\";\n\nexport enum SkContactStatus {\n Open = 'OPEN',\n Close = 'CLOSE'\n}\n\nexport enum SkContactType {\n Normal = 'NORMAL', // 1:1 문의\n BeforeBuy = 'BEFOREBUY', // 구매전 상담\n Technical = 'TECHNICAL', // 기술지원\n Software = 'SOFTWARE', // 전자배송상품 문의\n AS = 'AS', // AS 문의\n}\n\nexport function getSkContactTypeText(type: SkContactType) {\n switch (type) {\n case SkContactType.Normal:\n return '1:1 문의';\n case SkContactType.BeforeBuy:\n return '구매전 상담';\n case SkContactType.Technical:\n return '기술지원';\n case SkContactType.Software:\n return '전자배송상품';\n case SkContactType.AS:\n return 'AS 문의';\n }\n}\n\nexport interface ISkContact extends IAudit {\n id?: number;\n status?: SkContactStatus;\n type?: SkContactType;\n\n user?: ISkUser;\n userName?: string;\n email?: string;\n phone?: string;\n title?: string;\n content?: string;\n attachment?: ISkFile;\n product?: ISkProductDetail;\n order?: ISkOrderDetail;\n seller?: string;\n serialNumber?: string;\n buyDate?: string;\n answers?: ISkContactAnswer[]\n}\n\nexport interface ISkContactAnswer extends IAudit {\n id?: number;\n user?: ISkUser;\n content?: string;\n}\n","export enum SkGridItemType {\n Icon = 'Icon',\n Image = 'Image',\n SlidePromotion = 'SlidePromotion',\n SlideShop = 'SlideShop',\n SlideEditorial = 'SlideEditorial',\n SlideStudio = 'SlideStudio',\n SlideCustom = 'SlideCustom'\n}\n\nexport interface ISkGridItemIconData {\n iconType?: 'material' | 'custom';\n icon?: string\n title?: string;\n url?: string;\n}\n\nexport class SkGridItemIconData {\n iconType: 'material' | 'custom';\n icon: string;\n title: string;\n url: string;\n\n constructor(data: ISkGridItemIconData = {}) {\n this.iconType = data.iconType || 'material';\n this.icon = data.icon || 'error_outline';\n this.url = data.url || '';\n this.title = data.title || '';\n }\n}\n\nexport interface ISkGridItemImageData {\n src?: string | number;\n title?: string;\n url?: string;\n}\n\nexport class SkGridItemImageData {\n src: string | number;\n title: string;\n url: string;\n\n constructor(data: ISkGridItemImageData = {}) {\n this.src = data.src || '';\n this.title = data.title || '';\n this.url = data.url;\n }\n}\n\nexport interface ISkGridItemSlideDataCustomFormat {\n imageId?: number;\n type?: string;\n title?: string;\n desc?: string;\n link?: string;\n}\n\nexport interface ISkGridItemSlideData {\n target?: 'featured' | 'latest' | string;\n count?: number;\n list?: any[] | number[] | ISkGridItemSlideDataCustomFormat[];\n lastImageId?: number;\n}\n\nexport class SkGridItemSlideData {\n target: 'featured' | 'latest' | string;\n count: number;\n list: any[] | number[] | ISkGridItemSlideDataCustomFormat[];\n lastImageId?: number;\n\n constructor(data: ISkGridItemSlideData = {}) {\n this.target = data.target || 'latest';\n this.count = data.count || 5;\n this.list = data.list || [];\n this.lastImageId = data.lastImageId;\n }\n}\n\nexport interface ISkGridItem {\n rowspan?: number;\n colspan?: number;\n type?: SkGridItemType\n value?: ISkGridItemSlideData | ISkGridItemIconData | ISkGridItemImageData;\n url?: string;\n}\n\nexport class SkGridItem {\n rowspan: number;\n colspan: number;\n type: SkGridItemType;\n value: SkGridItemSlideData | SkGridItemIconData | SkGridItemImageData;\n\n constructor(data: ISkGridItem = {}) {\n this.rowspan = data.rowspan || 1;\n this.colspan = data.colspan || 1;\n\n this.type = data.type || SkGridItemType.SlideEditorial;\n\n switch (this.type) {\n case SkGridItemType.Icon:\n this.value = new SkGridItemIconData(<ISkGridItemIconData> data.value);\n break;\n case SkGridItemType.Image:\n this.value = new SkGridItemImageData(<ISkGridItemImageData> data.value);\n break;\n case SkGridItemType.SlidePromotion:\n case SkGridItemType.SlideShop:\n case SkGridItemType.SlideEditorial:\n case SkGridItemType.SlideStudio:\n case SkGridItemType.SlideCustom:\n this.value = new SkGridItemSlideData(<ISkGridItemSlideData> data.value);\n }\n }\n}\n\nexport interface ISkGridData {\n cols?: number;\n gutterSize?: number;\n aspect?: string;\n items?: ISkGridItem[];\n}\n\nexport class SkGridData {\n cols: number;\n gutterSize: number;\n aspect: string;\n items: SkGridItem[];\n\n constructor(data: ISkGridData = {}) {\n this.cols = data.cols || 4;\n this.gutterSize = data.gutterSize || 0;\n this.aspect = data.aspect || '1:1';\n this.items = (data.items || []).map(item => new SkGridItem(item));\n }\n\n setItems(items: ISkGridItem[]) {\n this.items = (items || []).map(item => new SkGridItem(item));\n }\n\n setItem(item: ISkGridItem) {\n this.items.push(new SkGridItem(item))\n }\n\n updateItem(index: number, item: ISkGridItem) {\n this.items[index] = new SkGridItem(item);\n }\n\n removeItem(index: number) {\n this.items.splice(index, 1);\n }\n}\n\nexport interface ISkMobileMainData {\n editorials?: SkGridItemSlideData;\n studios?: SkGridItemSlideData;\n promotions?: SkGridItemSlideData;\n products?: SkGridItemSlideData;\n}\n\nexport class SkMobileMainData {\n editorials: SkGridItemSlideData;\n studios: SkGridItemSlideData;\n promotions: SkGridItemSlideData;\n products: SkGridItemSlideData;\n\n constructor(data: ISkMobileMainData = {}) {\n this.editorials = new SkGridItemSlideData(data.editorials);\n this.studios = new SkGridItemSlideData(data.studios);\n this.promotions = new SkGridItemSlideData(data.promotions);\n this.products = new SkGridItemSlideData(data.products);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
import { isPlatformBrowser, CommonModule } from '@angular/common';
|
|
2
|
-
import * as i0 from '@angular/core';
|
|
3
|
-
import { PLATFORM_ID, Injectable, Inject, ElementRef, Component, ViewChild, EventEmitter, Directive, Input, Output, HostListener, NgModule } from '@angular/core';
|
|
4
|
-
import { FormsModule } from '@angular/forms';
|
|
5
|
-
import * as i5 from '@angular/material/legacy-button';
|
|
6
|
-
import { MatLegacyButtonModule } from '@angular/material/legacy-button';
|
|
7
|
-
import * as i1 from '@angular/material/legacy-dialog';
|
|
8
|
-
import { MatLegacyDialogModule } from '@angular/material/legacy-dialog';
|
|
9
|
-
import * as i4 from '@angular/material/icon';
|
|
10
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
11
|
-
import * as i3 from '@angular/material/toolbar';
|
|
12
|
-
import { MatToolbarModule } from '@angular/material/toolbar';
|
|
13
|
-
import { filter } from 'rxjs/operators';
|
|
14
|
-
|
|
15
|
-
class SkSearchAddressModel {
|
|
16
|
-
constructor(zipCode, address, addressExtra = '') {
|
|
17
|
-
this.zipCode = zipCode;
|
|
18
|
-
this.address = address;
|
|
19
|
-
this.addressExtra = addressExtra;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
const url = '//t1.daumcdn.net/mapjsapi/bundle/postcode/prod/postcode.v2.js';
|
|
24
|
-
class SkSearchAddressService {
|
|
25
|
-
constructor(platformId) {
|
|
26
|
-
this.platformId = platformId;
|
|
27
|
-
this.injected = false;
|
|
28
|
-
this.injectScript();
|
|
29
|
-
}
|
|
30
|
-
injectDialogContent(element) {
|
|
31
|
-
return new Promise(resolve => {
|
|
32
|
-
new daum.Postcode({
|
|
33
|
-
oncomplete: (data) => {
|
|
34
|
-
resolve(this.buildSearchAddressModel(data));
|
|
35
|
-
},
|
|
36
|
-
width: '100%',
|
|
37
|
-
height: element.nativeElement.offsetHeight,
|
|
38
|
-
animation: true
|
|
39
|
-
}).embed(element.nativeElement, { autoClose: false });
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
injectScript() {
|
|
43
|
-
if (isPlatformBrowser(this.platformId) && !this.injected) {
|
|
44
|
-
const script = document.createElement('script');
|
|
45
|
-
script.src = url;
|
|
46
|
-
script.type = 'text/javascript';
|
|
47
|
-
script.async = true;
|
|
48
|
-
document.body.appendChild(script);
|
|
49
|
-
this.injected = true;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
buildSearchAddressModel(data) {
|
|
53
|
-
// 아래의 코드는 다음 주소찾기에서 주소 파싱하는 부분을 그대로 가져옴
|
|
54
|
-
// 각 주소의 노출 규칙에 따라 주소를 조합한다.
|
|
55
|
-
// 내려오는 변수가 값이 없는 경우엔 공백('')값을 가지므로, 이를 참고하여 분기 한다.
|
|
56
|
-
let fullAddr = data.address; // 최종 주소 변수
|
|
57
|
-
let extraAddr = ''; // 조합형 주소 변수
|
|
58
|
-
// 기본 주소가 도로명 타입일때 조합한다.
|
|
59
|
-
if (data.addressType === 'R') {
|
|
60
|
-
// 법정동명이 있을 경우 추가한다.
|
|
61
|
-
if (data.bname !== '') {
|
|
62
|
-
extraAddr += data.bname;
|
|
63
|
-
}
|
|
64
|
-
// 건물명이 있을 경우 추가한다.
|
|
65
|
-
if (data.buildingName !== '') {
|
|
66
|
-
extraAddr += (extraAddr !== '' ? ', ' + data.buildingName : data.buildingName);
|
|
67
|
-
}
|
|
68
|
-
// 조합형주소의 유무에 따라 양쪽에 괄호를 추가하여 최종 주소를 만든다.
|
|
69
|
-
fullAddr += (extraAddr !== '' ? ' (' + extraAddr + ')' : '');
|
|
70
|
-
}
|
|
71
|
-
return new SkSearchAddressModel(data.zonecode, fullAddr);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
SkSearchAddressService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SkSearchAddressService, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
75
|
-
SkSearchAddressService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SkSearchAddressService, providedIn: 'root' });
|
|
76
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SkSearchAddressService, decorators: [{
|
|
77
|
-
type: Injectable,
|
|
78
|
-
args: [{ providedIn: 'root' }]
|
|
79
|
-
}], ctorParameters: function () {
|
|
80
|
-
return [{ type: Object, decorators: [{
|
|
81
|
-
type: Inject,
|
|
82
|
-
args: [PLATFORM_ID]
|
|
83
|
-
}] }];
|
|
84
|
-
} });
|
|
85
|
-
|
|
86
|
-
class SearchAddressDialogComponent {
|
|
87
|
-
constructor(dialogRef, searchAddressService) {
|
|
88
|
-
this.dialogRef = dialogRef;
|
|
89
|
-
this.searchAddressService = searchAddressService;
|
|
90
|
-
}
|
|
91
|
-
ngAfterViewInit() {
|
|
92
|
-
this.searchAddressService.injectDialogContent(this.contentRef)
|
|
93
|
-
.then(result => this.dialogRef.close(result));
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
SearchAddressDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SearchAddressDialogComponent, deps: [{ token: i1.MatLegacyDialogRef }, { token: SkSearchAddressService }], target: i0.ɵɵFactoryTarget.Component });
|
|
97
|
-
SearchAddressDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SearchAddressDialogComponent, selector: "sk-search-address-dialog", viewQueries: [{ propertyName: "contentRef", first: true, predicate: ["content"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<mat-toolbar color=\"primary\" style=\"height: 52px; font-size: 16px;\">\n <span>\uC8FC\uC18C \uAC80\uC0C9</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", styles: [":host{display:flex;min-width:300px;max-width:500px;height:500px;flex-direction:column}@media screen and (min-width: 600px){:host{min-width:400px;height:600px}}@media screen and (min-width: 960px){:host{min-width:500px;height:700px}}mat-toolbar{justify-content:space-between;padding-right:0;flex-shrink:0}.content{flex-grow:1}\n"], dependencies: [{ kind: "component", type: i3.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1.MatLegacyDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }] });
|
|
98
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SearchAddressDialogComponent, decorators: [{
|
|
99
|
-
type: Component,
|
|
100
|
-
args: [{ selector: 'sk-search-address-dialog', template: "<mat-toolbar color=\"primary\" style=\"height: 52px; font-size: 16px;\">\n <span>\uC8FC\uC18C \uAC80\uC0C9</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", styles: [":host{display:flex;min-width:300px;max-width:500px;height:500px;flex-direction:column}@media screen and (min-width: 600px){:host{min-width:400px;height:600px}}@media screen and (min-width: 960px){:host{min-width:500px;height:700px}}mat-toolbar{justify-content:space-between;padding-right:0;flex-shrink:0}.content{flex-grow:1}\n"] }]
|
|
101
|
-
}], ctorParameters: function () { return [{ type: i1.MatLegacyDialogRef }, { type: SkSearchAddressService }]; }, propDecorators: { contentRef: [{
|
|
102
|
-
type: ViewChild,
|
|
103
|
-
args: ['content', { static: true, read: ElementRef }]
|
|
104
|
-
}] } });
|
|
105
|
-
|
|
106
|
-
class SkSearchAddressDirective {
|
|
107
|
-
constructor(dialog, searchAddressService) {
|
|
108
|
-
this.dialog = dialog;
|
|
109
|
-
this.searchAddressService = searchAddressService;
|
|
110
|
-
this.addressSelected = new EventEmitter();
|
|
111
|
-
}
|
|
112
|
-
openDialog() {
|
|
113
|
-
this.dialog
|
|
114
|
-
.open(SearchAddressDialogComponent, {
|
|
115
|
-
panelClass: 'mat-dialog-no-padding',
|
|
116
|
-
minWidth: '300px',
|
|
117
|
-
maxWidth: '500px',
|
|
118
|
-
data: this.skSearchAddress
|
|
119
|
-
})
|
|
120
|
-
.afterClosed()
|
|
121
|
-
.pipe(filter(result => !!result))
|
|
122
|
-
.subscribe(result => this.addressSelected.emit(result));
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
SkSearchAddressDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SkSearchAddressDirective, deps: [{ token: i1.MatLegacyDialog }, { token: SkSearchAddressService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
126
|
-
SkSearchAddressDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SkSearchAddressDirective, selector: "[skSearchAddress]", inputs: { skSearchAddress: "skSearchAddress" }, outputs: { addressSelected: "addressSelected" }, host: { listeners: { "click": "openDialog()" } }, ngImport: i0 });
|
|
127
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SkSearchAddressDirective, decorators: [{
|
|
128
|
-
type: Directive,
|
|
129
|
-
args: [{
|
|
130
|
-
selector: '[skSearchAddress]'
|
|
131
|
-
}]
|
|
132
|
-
}], ctorParameters: function () { return [{ type: i1.MatLegacyDialog }, { type: SkSearchAddressService }]; }, propDecorators: { skSearchAddress: [{
|
|
133
|
-
type: Input
|
|
134
|
-
}], addressSelected: [{
|
|
135
|
-
type: Output
|
|
136
|
-
}], openDialog: [{
|
|
137
|
-
type: HostListener,
|
|
138
|
-
args: ['click']
|
|
139
|
-
}] } });
|
|
140
|
-
|
|
141
|
-
class SkSearchAddressModule {
|
|
142
|
-
}
|
|
143
|
-
SkSearchAddressModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SkSearchAddressModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
144
|
-
SkSearchAddressModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: SkSearchAddressModule, declarations: [SearchAddressDialogComponent,
|
|
145
|
-
SkSearchAddressDirective], imports: [CommonModule,
|
|
146
|
-
FormsModule,
|
|
147
|
-
MatToolbarModule,
|
|
148
|
-
MatIconModule,
|
|
149
|
-
MatLegacyButtonModule,
|
|
150
|
-
MatLegacyDialogModule], exports: [SkSearchAddressDirective] });
|
|
151
|
-
SkSearchAddressModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SkSearchAddressModule, imports: [CommonModule,
|
|
152
|
-
FormsModule,
|
|
153
|
-
MatToolbarModule,
|
|
154
|
-
MatIconModule,
|
|
155
|
-
MatLegacyButtonModule,
|
|
156
|
-
MatLegacyDialogModule] });
|
|
157
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SkSearchAddressModule, decorators: [{
|
|
158
|
-
type: NgModule,
|
|
159
|
-
args: [{
|
|
160
|
-
imports: [
|
|
161
|
-
CommonModule,
|
|
162
|
-
FormsModule,
|
|
163
|
-
MatToolbarModule,
|
|
164
|
-
MatIconModule,
|
|
165
|
-
MatLegacyButtonModule,
|
|
166
|
-
MatLegacyDialogModule
|
|
167
|
-
],
|
|
168
|
-
exports: [
|
|
169
|
-
SkSearchAddressDirective
|
|
170
|
-
],
|
|
171
|
-
declarations: [
|
|
172
|
-
SearchAddressDialogComponent,
|
|
173
|
-
SkSearchAddressDirective
|
|
174
|
-
]
|
|
175
|
-
}]
|
|
176
|
-
}] });
|
|
177
|
-
|
|
178
|
-
/**
|
|
179
|
-
* Generated bundle index. Do not edit.
|
|
180
|
-
*/
|
|
181
|
-
|
|
182
|
-
export { SkSearchAddressDirective, SkSearchAddressModel, SkSearchAddressModule };
|
|
183
|
-
//# sourceMappingURL=sk-front-lib-search-address.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"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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"}
|