sk-front-lib 0.17.44 → 0.17.46
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/api/model/api-config.d.ts +6 -0
- package/api/model/api-pageable-param.d.ts +11 -0
- package/api/model/api-pageable.d.ts +11 -0
- package/api/model/api-response.d.ts +8 -0
- package/api/model/index.d.ts +4 -0
- package/api/package.json +10 -0
- package/api/public_api.d.ts +3 -0
- package/api/sk-api.module.d.ts +12 -0
- package/api/sk-api.service.d.ts +34 -0
- package/api/sk-front-lib-api.d.ts +5 -0
- package/article/package.json +10 -0
- package/article/public_api.d.ts +6 -0
- package/article/sk-article-editor-server.component.d.ts +23 -0
- package/article/sk-article-editor.component.d.ts +27 -0
- package/article/sk-article-server.module.d.ts +10 -0
- package/article/sk-article.module.d.ts +9 -0
- package/article/sk-article.service.d.ts +96 -0
- package/article/sk-froala-editor.directive.d.ts +40 -0
- package/article/sk-front-lib-article.d.ts +5 -0
- package/crud/package.json +10 -0
- package/crud/public_api.d.ts +24 -0
- package/crud/sk-account.service.d.ts +16 -0
- package/crud/sk-affiliate.service.d.ts +38 -0
- package/crud/sk-auth-admin.guard.d.ts +13 -0
- package/crud/sk-auth.guard.d.ts +13 -0
- package/crud/sk-auth.service.d.ts +33 -0
- package/crud/sk-board.service.d.ts +21 -0
- package/crud/sk-brand.service.d.ts +19 -0
- package/crud/sk-cart.service.d.ts +72 -0
- package/crud/sk-category.service.d.ts +28 -0
- package/crud/sk-comment.service.d.ts +15 -0
- package/crud/sk-config.service.d.ts +13 -0
- package/crud/sk-contact.service.d.ts +15 -0
- package/crud/sk-coupon.service.d.ts +24 -0
- package/crud/sk-document.service.d.ts +51 -0
- package/crud/sk-etc.service.d.ts +12 -0
- package/crud/sk-file.service.d.ts +18 -0
- package/crud/sk-front-lib-crud.d.ts +5 -0
- package/crud/sk-keyword.service.d.ts +19 -0
- package/crud/sk-order.service.d.ts +45 -0
- package/crud/sk-point.service.d.ts +17 -0
- package/crud/sk-product.service.d.ts +84 -0
- package/crud/sk-promotion.service.d.ts +41 -0
- package/crud/sk-search.service.d.ts +12 -0
- package/crud/sk-store.service.d.ts +17 -0
- package/crud/sk-user.service.d.ts +25 -0
- package/esm2020/api/model/api-config.mjs +2 -0
- package/esm2020/api/model/api-pageable-param.mjs +29 -0
- package/esm2020/api/model/api-pageable.mjs +3 -0
- package/esm2020/api/model/api-response.mjs +3 -0
- package/esm2020/api/model/index.mjs +4 -0
- package/esm2020/api/public_api.mjs +4 -0
- package/esm2020/api/sk-api.module.mjs +35 -0
- package/esm2020/api/sk-api.service.mjs +145 -0
- package/esm2020/api/sk-front-lib-api.mjs +5 -0
- package/esm2020/article/public_api.mjs +7 -0
- package/esm2020/article/sk-article-editor-server.component.mjs +51 -0
- package/esm2020/article/sk-article-editor.component.mjs +93 -0
- package/esm2020/article/sk-article-server.module.mjs +33 -0
- package/esm2020/article/sk-article.module.mjs +32 -0
- package/esm2020/article/sk-article.service.mjs +248 -0
- package/esm2020/article/sk-froala-editor.directive.mjs +325 -0
- package/esm2020/article/sk-front-lib-article.mjs +5 -0
- package/esm2020/crud/public_api.mjs +25 -0
- package/esm2020/crud/sk-account.service.mjs +36 -0
- package/esm2020/crud/sk-affiliate.service.mjs +94 -0
- package/esm2020/crud/sk-auth-admin.guard.mjs +31 -0
- package/esm2020/crud/sk-auth.guard.mjs +31 -0
- package/esm2020/crud/sk-auth.service.mjs +67 -0
- package/esm2020/crud/sk-board.service.mjs +54 -0
- package/esm2020/crud/sk-brand.service.mjs +46 -0
- package/esm2020/crud/sk-cart.service.mjs +256 -0
- package/esm2020/crud/sk-category.service.mjs +63 -0
- package/esm2020/crud/sk-comment.service.mjs +43 -0
- package/esm2020/crud/sk-config.service.mjs +31 -0
- package/esm2020/crud/sk-contact.service.mjs +39 -0
- package/esm2020/crud/sk-coupon.service.mjs +62 -0
- package/esm2020/crud/sk-document.service.mjs +110 -0
- package/esm2020/crud/sk-etc.service.mjs +25 -0
- package/esm2020/crud/sk-file.service.mjs +37 -0
- package/esm2020/crud/sk-front-lib-crud.mjs +5 -0
- package/esm2020/crud/sk-keyword.service.mjs +46 -0
- package/esm2020/crud/sk-order.service.mjs +133 -0
- package/esm2020/crud/sk-point.service.mjs +45 -0
- package/esm2020/crud/sk-product.service.mjs +168 -0
- package/esm2020/crud/sk-promotion.service.mjs +84 -0
- package/esm2020/crud/sk-search.service.mjs +25 -0
- package/esm2020/crud/sk-store.service.mjs +47 -0
- package/esm2020/crud/sk-user.service.mjs +73 -0
- package/esm2020/google-analytics/google-analytics-router.module.mjs +30 -0
- package/esm2020/google-analytics/google-analytics.module.mjs +40 -0
- package/esm2020/google-analytics/initializers/google-analytics-router.initializer.mjs +24 -0
- package/esm2020/google-analytics/initializers/google-analytics.initializer.mjs +46 -0
- package/esm2020/google-analytics/interfaces/google-analytics-command.mjs +2 -0
- package/esm2020/google-analytics/interfaces/google-analytics-settings.mjs +2 -0
- package/esm2020/google-analytics/public_api.mjs +11 -0
- package/esm2020/google-analytics/services/google-analytics.service.mjs +223 -0
- package/esm2020/google-analytics/sk-front-lib-google-analytics.mjs +5 -0
- package/esm2020/google-analytics/tokens/google-analytics-settings-token.mjs +5 -0
- package/esm2020/google-analytics/types/ga-action.type.mjs +2 -0
- package/esm2020/google-analytics/types/ga-bind.type.mjs +2 -0
- package/esm2020/image/public_api.mjs +3 -0
- package/esm2020/image/sk-front-lib-image.mjs +5 -0
- package/esm2020/image/sk-image.component.mjs +262 -0
- package/esm2020/image/sk-image.module.mjs +43 -0
- package/{esm2022 → esm2020}/lib/sk-byte.pipe.mjs +4 -4
- package/{esm2022 → esm2020}/lib/sk-date-time.pipe.mjs +4 -4
- package/{esm2022 → esm2020}/lib/sk-date.pipe.mjs +4 -4
- package/esm2020/lib/sk-front-lib.module.mjs +41 -0
- package/{esm2022 → esm2020}/lib/sk-keys.pipe.mjs +4 -4
- package/{esm2022 → esm2020}/lib/sk-time.pipe.mjs +4 -4
- package/esm2020/model/lib/article.mjs +11 -0
- package/esm2020/model/lib/audit.mjs +12 -0
- package/esm2020/model/lib/auth.mjs +2 -0
- package/esm2020/model/lib/board.mjs +21 -0
- package/esm2020/model/lib/cart.mjs +29 -0
- package/esm2020/model/lib/comment.mjs +25 -0
- package/esm2020/model/lib/contact.mjs +28 -0
- package/esm2020/model/lib/coupon.mjs +23 -0
- package/esm2020/model/lib/document.mjs +49 -0
- package/esm2020/model/lib/etc.mjs +57 -0
- package/esm2020/model/lib/file.mjs +8 -0
- package/esm2020/model/lib/filetype.mjs +179 -0
- package/esm2020/model/lib/grid.mjs +83 -0
- package/esm2020/model/lib/nicepay.mjs +81 -0
- package/esm2020/model/lib/order.mjs +106 -0
- package/esm2020/model/lib/payment.mjs +30 -0
- package/esm2020/model/lib/point.mjs +47 -0
- package/esm2020/model/lib/product-series.mjs +2 -0
- package/esm2020/model/lib/product.mjs +156 -0
- package/esm2020/model/lib/promotion.mjs +80 -0
- package/esm2020/model/lib/shipping.mjs +37 -0
- package/esm2020/model/lib/user.mjs +61 -0
- package/esm2020/model/public_api.mjs +23 -0
- package/esm2020/model/sk-front-lib-model.mjs +5 -0
- package/esm2020/search-address/dialog/dialog.component.mjs +27 -0
- package/esm2020/search-address/public_api.mjs +4 -0
- package/esm2020/search-address/sk-front-lib-search-address.mjs +5 -0
- package/esm2020/search-address/sk-search-address.directive.mjs +41 -0
- package/esm2020/search-address/sk-search-address.model.mjs +8 -0
- package/esm2020/search-address/sk-search-address.module.mjs +52 -0
- package/esm2020/search-address/sk-search-address.service.mjs +65 -0
- package/esm2020/uploader/public_api.mjs +4 -0
- package/esm2020/uploader/sk-front-lib-uploader.mjs +5 -0
- package/esm2020/uploader/sk-uploader-file-item.model.mjs +95 -0
- package/esm2020/uploader/sk-uploader.animation.mjs +47 -0
- package/esm2020/uploader/sk-uploader.class.mjs +188 -0
- package/esm2020/uploader/sk-uploader.component.mjs +120 -0
- package/esm2020/uploader/sk-uploader.directive.mjs +44 -0
- package/esm2020/uploader/sk-uploader.module.mjs +62 -0
- package/fesm2015/sk-front-lib-api.mjs +218 -0
- package/fesm2015/sk-front-lib-api.mjs.map +1 -0
- package/fesm2015/sk-front-lib-article.mjs +762 -0
- package/fesm2015/sk-front-lib-article.mjs.map +1 -0
- package/fesm2015/sk-front-lib-crud.mjs +1529 -0
- package/fesm2015/sk-front-lib-crud.mjs.map +1 -0
- package/fesm2015/sk-front-lib-google-analytics.mjs +361 -0
- package/fesm2015/sk-front-lib-google-analytics.mjs.map +1 -0
- package/fesm2015/sk-front-lib-image.mjs +306 -0
- package/fesm2015/sk-front-lib-image.mjs.map +1 -0
- package/fesm2015/sk-front-lib-model.mjs +1105 -0
- package/fesm2015/sk-front-lib-model.mjs.map +1 -0
- package/fesm2015/sk-front-lib-search-address.mjs +188 -0
- package/fesm2015/sk-front-lib-search-address.mjs.map +1 -0
- package/fesm2015/sk-front-lib-uploader.mjs +551 -0
- package/fesm2015/sk-front-lib-uploader.mjs.map +1 -0
- package/{fesm2022 → fesm2015}/sk-front-lib.mjs +27 -27
- package/{fesm2022 → fesm2015}/sk-front-lib.mjs.map +1 -1
- package/fesm2020/sk-front-lib-api.mjs +216 -0
- package/fesm2020/sk-front-lib-api.mjs.map +1 -0
- package/fesm2020/sk-front-lib-article.mjs +771 -0
- package/fesm2020/sk-front-lib-article.mjs.map +1 -0
- package/fesm2020/sk-front-lib-crud.mjs +1525 -0
- package/fesm2020/sk-front-lib-crud.mjs.map +1 -0
- package/fesm2020/sk-front-lib-google-analytics.mjs +358 -0
- package/fesm2020/sk-front-lib-google-analytics.mjs.map +1 -0
- package/fesm2020/sk-front-lib-image.mjs +309 -0
- package/fesm2020/sk-front-lib-image.mjs.map +1 -0
- package/fesm2020/sk-front-lib-model.mjs +1105 -0
- package/fesm2020/sk-front-lib-model.mjs.map +1 -0
- package/fesm2020/sk-front-lib-search-address.mjs +186 -0
- package/fesm2020/sk-front-lib-search-address.mjs.map +1 -0
- package/fesm2020/sk-front-lib-uploader.mjs +549 -0
- package/fesm2020/sk-front-lib-uploader.mjs.map +1 -0
- package/fesm2020/sk-front-lib.mjs +538 -0
- package/fesm2020/sk-front-lib.mjs.map +1 -0
- package/google-analytics/google-analytics-router.module.d.ts +8 -0
- package/google-analytics/google-analytics.module.d.ts +10 -0
- package/google-analytics/initializers/google-analytics-router.initializer.d.ts +5 -0
- package/google-analytics/initializers/google-analytics.initializer.d.ts +4 -0
- package/google-analytics/interfaces/google-analytics-command.d.ts +4 -0
- package/google-analytics/interfaces/google-analytics-settings.d.ts +6 -0
- package/google-analytics/package.json +10 -0
- package/google-analytics/public_api.d.ts +10 -0
- package/google-analytics/services/google-analytics.service.d.ts +85 -0
- package/google-analytics/sk-front-lib-google-analytics.d.ts +5 -0
- package/google-analytics/tokens/google-analytics-settings-token.d.ts +3 -0
- package/google-analytics/types/ga-action.type.d.ts +1 -0
- package/google-analytics/types/ga-bind.type.d.ts +1 -0
- package/image/package.json +10 -0
- package/image/public_api.d.ts +3 -0
- package/image/sk-front-lib-image.d.ts +5 -0
- package/image/sk-image.component.d.ts +112 -0
- package/image/sk-image.module.d.ts +12 -0
- package/lib/sk-byte.pipe.d.ts +1 -1
- package/lib/sk-date-time.pipe.d.ts +1 -1
- package/lib/sk-date.pipe.d.ts +1 -1
- package/lib/sk-keys.pipe.d.ts +1 -1
- package/lib/sk-time.pipe.d.ts +1 -1
- package/model/lib/article.d.ts +13 -0
- package/model/lib/audit.d.ts +13 -0
- package/model/lib/auth.d.ts +8 -0
- package/model/lib/board.d.ts +39 -0
- package/model/lib/cart.d.ts +45 -0
- package/model/lib/comment.d.ts +43 -0
- package/model/lib/contact.d.ts +40 -0
- package/model/lib/coupon.d.ts +116 -0
- package/model/lib/document.d.ts +104 -0
- package/model/lib/etc.d.ts +220 -0
- package/model/lib/file.d.ts +24 -0
- package/model/lib/filetype.d.ts +10 -0
- package/model/lib/grid.d.ts +97 -0
- package/model/lib/nicepay.d.ts +39 -0
- package/model/lib/order.d.ts +163 -0
- package/model/lib/payment.d.ts +27 -0
- package/model/lib/point.d.ts +30 -0
- package/model/lib/product-series.d.ts +25 -0
- package/model/lib/product.d.ts +308 -0
- package/model/lib/promotion.d.ts +169 -0
- package/model/lib/shipping.d.ts +44 -0
- package/model/lib/user.d.ts +54 -0
- package/model/package.json +10 -0
- package/model/public_api.d.ts +22 -0
- package/model/sk-front-lib-model.d.ts +5 -0
- package/package.json +77 -7
- package/search-address/dialog/dialog.component.d.ts +13 -0
- package/search-address/package.json +10 -0
- package/search-address/public_api.d.ts +3 -0
- package/search-address/sk-front-lib-search-address.d.ts +5 -0
- package/search-address/sk-search-address.directive.d.ts +15 -0
- package/search-address/sk-search-address.model.d.ts +40 -0
- package/search-address/sk-search-address.module.d.ts +14 -0
- package/search-address/sk-search-address.service.d.ts +13 -0
- package/uploader/package.json +10 -0
- package/uploader/public_api.d.ts +4 -0
- package/uploader/sk-front-lib-uploader.d.ts +5 -0
- package/uploader/sk-uploader-file-item.model.d.ts +29 -0
- package/uploader/sk-uploader.animation.d.ts +1 -0
- package/uploader/sk-uploader.class.d.ts +47 -0
- package/uploader/sk-uploader.component.d.ts +28 -0
- package/uploader/sk-uploader.directive.d.ts +15 -0
- package/uploader/sk-uploader.module.d.ts +16 -0
- package/esm2022/lib/sk-front-lib.module.mjs +0 -41
- /package/{esm2022 → esm2020}/lib/sk-animations.mjs +0 -0
- /package/{esm2022 → esm2020}/lib/sk-utils.mjs +0 -0
- /package/{esm2022 → esm2020}/public-api.mjs +0 -0
- /package/{esm2022 → esm2020}/sk-front-lib.mjs +0 -0
- /package/{index.d.ts → sk-front-lib.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
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 expireStartDate?: string;\n expireEndDate?: 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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"}
|
|
@@ -0,0 +1,186 @@
|
|
|
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 i4 from '@angular/material/button';
|
|
6
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
7
|
+
import * as i1 from '@angular/material/dialog';
|
|
8
|
+
import { MatDialogModule } from '@angular/material/dialog';
|
|
9
|
+
import * as i5 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: "13.0.2", ngImport: i0, type: SkSearchAddressService, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
75
|
+
SkSearchAddressService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkSearchAddressService, providedIn: 'root' });
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkSearchAddressService, decorators: [{
|
|
77
|
+
type: Injectable,
|
|
78
|
+
args: [{ providedIn: 'root' }]
|
|
79
|
+
}], ctorParameters: function () { return [{ type: Object, decorators: [{
|
|
80
|
+
type: Inject,
|
|
81
|
+
args: [PLATFORM_ID]
|
|
82
|
+
}] }]; } });
|
|
83
|
+
|
|
84
|
+
class SearchAddressDialogComponent {
|
|
85
|
+
constructor(dialogRef, searchAddressService) {
|
|
86
|
+
this.dialogRef = dialogRef;
|
|
87
|
+
this.searchAddressService = searchAddressService;
|
|
88
|
+
}
|
|
89
|
+
ngAfterViewInit() {
|
|
90
|
+
this.searchAddressService.injectDialogContent(this.contentRef)
|
|
91
|
+
.then(result => this.dialogRef.close(result));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
SearchAddressDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SearchAddressDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: SkSearchAddressService }], target: i0.ɵɵFactoryTarget.Component });
|
|
95
|
+
SearchAddressDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", 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"], components: [{ type: i3.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i4.MatButton, 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"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }] });
|
|
96
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SearchAddressDialogComponent, decorators: [{
|
|
97
|
+
type: Component,
|
|
98
|
+
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"] }]
|
|
99
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: SkSearchAddressService }]; }, propDecorators: { contentRef: [{
|
|
100
|
+
type: ViewChild,
|
|
101
|
+
args: ['content', { static: true, read: ElementRef }]
|
|
102
|
+
}] } });
|
|
103
|
+
|
|
104
|
+
class SkSearchAddressDirective {
|
|
105
|
+
constructor(dialog, searchAddressService) {
|
|
106
|
+
this.dialog = dialog;
|
|
107
|
+
this.searchAddressService = searchAddressService;
|
|
108
|
+
this.addressSelected = new EventEmitter();
|
|
109
|
+
}
|
|
110
|
+
openDialog() {
|
|
111
|
+
this.dialog
|
|
112
|
+
.open(SearchAddressDialogComponent, {
|
|
113
|
+
panelClass: 'mat-dialog-no-padding',
|
|
114
|
+
minWidth: '300px',
|
|
115
|
+
maxWidth: '500px',
|
|
116
|
+
data: this.skSearchAddress
|
|
117
|
+
})
|
|
118
|
+
.afterClosed()
|
|
119
|
+
.pipe(filter(result => !!result))
|
|
120
|
+
.subscribe(result => this.addressSelected.emit(result));
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
SkSearchAddressDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkSearchAddressDirective, deps: [{ token: i1.MatDialog }, { token: SkSearchAddressService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
124
|
+
SkSearchAddressDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: SkSearchAddressDirective, selector: "[skSearchAddress]", inputs: { skSearchAddress: "skSearchAddress" }, outputs: { addressSelected: "addressSelected" }, host: { listeners: { "click": "openDialog()" } }, ngImport: i0 });
|
|
125
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkSearchAddressDirective, decorators: [{
|
|
126
|
+
type: Directive,
|
|
127
|
+
args: [{
|
|
128
|
+
selector: '[skSearchAddress]'
|
|
129
|
+
}]
|
|
130
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: SkSearchAddressService }]; }, propDecorators: { skSearchAddress: [{
|
|
131
|
+
type: Input
|
|
132
|
+
}], addressSelected: [{
|
|
133
|
+
type: Output
|
|
134
|
+
}], openDialog: [{
|
|
135
|
+
type: HostListener,
|
|
136
|
+
args: ['click']
|
|
137
|
+
}] } });
|
|
138
|
+
|
|
139
|
+
class SkSearchAddressModule {
|
|
140
|
+
}
|
|
141
|
+
SkSearchAddressModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkSearchAddressModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
142
|
+
SkSearchAddressModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkSearchAddressModule, declarations: [SearchAddressDialogComponent,
|
|
143
|
+
SkSearchAddressDirective], imports: [CommonModule,
|
|
144
|
+
FormsModule,
|
|
145
|
+
MatToolbarModule,
|
|
146
|
+
MatIconModule,
|
|
147
|
+
MatButtonModule,
|
|
148
|
+
MatDialogModule], exports: [SkSearchAddressDirective] });
|
|
149
|
+
SkSearchAddressModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkSearchAddressModule, imports: [[
|
|
150
|
+
CommonModule,
|
|
151
|
+
FormsModule,
|
|
152
|
+
MatToolbarModule,
|
|
153
|
+
MatIconModule,
|
|
154
|
+
MatButtonModule,
|
|
155
|
+
MatDialogModule
|
|
156
|
+
]] });
|
|
157
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkSearchAddressModule, decorators: [{
|
|
158
|
+
type: NgModule,
|
|
159
|
+
args: [{
|
|
160
|
+
imports: [
|
|
161
|
+
CommonModule,
|
|
162
|
+
FormsModule,
|
|
163
|
+
MatToolbarModule,
|
|
164
|
+
MatIconModule,
|
|
165
|
+
MatButtonModule,
|
|
166
|
+
MatDialogModule
|
|
167
|
+
],
|
|
168
|
+
exports: [
|
|
169
|
+
SkSearchAddressDirective
|
|
170
|
+
],
|
|
171
|
+
entryComponents: [
|
|
172
|
+
SearchAddressDialogComponent
|
|
173
|
+
],
|
|
174
|
+
declarations: [
|
|
175
|
+
SearchAddressDialogComponent,
|
|
176
|
+
SkSearchAddressDirective
|
|
177
|
+
]
|
|
178
|
+
}]
|
|
179
|
+
}] });
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Generated bundle index. Do not edit.
|
|
183
|
+
*/
|
|
184
|
+
|
|
185
|
+
export { SkSearchAddressDirective, SkSearchAddressModel, SkSearchAddressModule };
|
|
186
|
+
//# sourceMappingURL=sk-front-lib-search-address.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
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 {MatDialogRef} from '@angular/material/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 {MatDialog} from \"@angular/material/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 {MatButtonModule} from '@angular/material/button';\nimport {MatDialogModule} from '@angular/material/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 entryComponents: [\n SearchAddressDialogComponent\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":[],"mappings":"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"}
|