@rolatech/angular-product 17.2.0 → 19.0.0-beta.0

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.
Files changed (50) hide show
  1. package/fesm2022/{rolatech-angular-product-product-index.component-DEoLkyVK.mjs → rolatech-angular-product-product-index.component-Dy6tCxJf.mjs} +6 -7
  2. package/fesm2022/rolatech-angular-product-product-index.component-Dy6tCxJf.mjs.map +1 -0
  3. package/fesm2022/rolatech-angular-product.mjs +128 -171
  4. package/fesm2022/rolatech-angular-product.mjs.map +1 -1
  5. package/package.json +8 -6
  6. package/themes/_default.scss +1 -1
  7. package/esm2022/index.mjs +0 -7
  8. package/esm2022/lib/components/index.mjs +0 -12
  9. package/esm2022/lib/components/product-action/product-action.component.mjs +0 -32
  10. package/esm2022/lib/components/product-info/product-info.component.mjs +0 -19
  11. package/esm2022/lib/components/product-item/product-item.component.mjs +0 -17
  12. package/esm2022/lib/components/product-manage-option-add/product-manage-option-add.component.mjs +0 -68
  13. package/esm2022/lib/components/product-manage-option-item/product-manage-option-item.component.mjs +0 -49
  14. package/esm2022/lib/components/product-manage-variant/product-manage-variant.component.mjs +0 -127
  15. package/esm2022/lib/components/product-mange-option-action/product-manage-option-action.component.mjs +0 -22
  16. package/esm2022/lib/components/product-mange-section-item/product-mange-section-item.component.mjs +0 -89
  17. package/esm2022/lib/components/product-media/product-media.component.mjs +0 -34
  18. package/esm2022/lib/components/product-option/product-option.component.mjs +0 -23
  19. package/esm2022/lib/components/product-owner-renderer/product-owner-renderer.component.mjs +0 -20
  20. package/esm2022/lib/components/product-pricing/product-pricing.component.mjs +0 -31
  21. package/esm2022/lib/components/product-section/product-section.component.mjs +0 -26
  22. package/esm2022/lib/interfaces/category.mjs +0 -2
  23. package/esm2022/lib/interfaces/index.mjs +0 -2
  24. package/esm2022/lib/interfaces/product.mjs +0 -36
  25. package/esm2022/lib/pages/product/product-category/product-category.component.mjs +0 -73
  26. package/esm2022/lib/pages/product/product-details/product-details.component.mjs +0 -185
  27. package/esm2022/lib/pages/product/product-details/selected.pipe.mjs +0 -18
  28. package/esm2022/lib/pages/product/product-index/product-index.component.mjs +0 -43
  29. package/esm2022/lib/pages/product/product-layout/product-layout.component.mjs +0 -49
  30. package/esm2022/lib/pages/product/product.routes.mjs +0 -24
  31. package/esm2022/lib/pages/product-manage/product-manage-content/product-manage-content.component.mjs +0 -12
  32. package/esm2022/lib/pages/product-manage/product-manage-create/product-manage-create.component.mjs +0 -61
  33. package/esm2022/lib/pages/product-manage/product-manage-index/product-manage-index.component.mjs +0 -155
  34. package/esm2022/lib/pages/product-manage/product-manage-info/product-manage-info.component.mjs +0 -111
  35. package/esm2022/lib/pages/product-manage/product-manage-inventory/product-manage-inventory.component.mjs +0 -153
  36. package/esm2022/lib/pages/product-manage/product-manage-item/product-manage-item.component.mjs +0 -28
  37. package/esm2022/lib/pages/product-manage/product-manage-item-header/product-manage-item-header.component.mjs +0 -12
  38. package/esm2022/lib/pages/product-manage/product-manage-layout/product-manage-layout.component.mjs +0 -55
  39. package/esm2022/lib/pages/product-manage/product-manage-media/product-manage-media.component.mjs +0 -137
  40. package/esm2022/lib/pages/product-manage/product-manage-options/product-manage-options.component.mjs +0 -102
  41. package/esm2022/lib/pages/product-manage/product-manage-pricing/product-manage-pricing.component.mjs +0 -12
  42. package/esm2022/lib/pages/product-manage/product-manage-schedule/product-manage-schedule.component.mjs +0 -14
  43. package/esm2022/lib/pages/product-manage/product-manage-sections/product-manage-sections.component.mjs +0 -171
  44. package/esm2022/lib/pages/product-manage/product-manage-variants/product-manage-variants.component.mjs +0 -130
  45. package/esm2022/lib/pages/product-manage/product-manage.routes.mjs +0 -60
  46. package/esm2022/lib/services/index.mjs +0 -2
  47. package/esm2022/provider.mjs +0 -11
  48. package/esm2022/rolatech-angular-product.mjs +0 -5
  49. package/fesm2022/rolatech-angular-product-product-index.component-DEoLkyVK.mjs.map +0 -1
  50. package/lib/components/product-mange-option-action/product-manage-option-action.component.d.ts +0 -10
package/package.json CHANGED
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "name": "@rolatech/angular-product",
3
- "version": "17.2.0",
3
+ "version": "19.0.0-beta.0",
4
+ "private": false,
4
5
  "peerDependencies": {
5
- "@angular/common": "^18.0.0",
6
- "@angular/core": "^18.0.0"
6
+ "@angular/common": "^19.0.0",
7
+ "@angular/core": "^19.0.0"
7
8
  },
8
9
  "dependencies": {
9
10
  "tslib": "^2.3.0"
@@ -14,12 +15,13 @@
14
15
  "url": "https://github.com/viablecell/rolatech-web.git"
15
16
  },
16
17
  "license": "MIT",
18
+ "publishConfig": {
19
+ "access": "public"
20
+ },
17
21
  "exports": {
18
22
  ".": {
19
23
  "sass": "./themes/styles.scss",
20
24
  "types": "./index.d.ts",
21
- "esm2022": "./esm2022/rolatech-angular-product.mjs",
22
- "esm": "./esm2022/rolatech-angular-product.mjs",
23
25
  "default": "./fesm2022/rolatech-angular-product.mjs"
24
26
  },
25
27
  "./package.json": {
@@ -28,4 +30,4 @@
28
30
  },
29
31
  "module": "fesm2022/rolatech-angular-product.mjs",
30
32
  "typings": "index.d.ts"
31
- }
33
+ }
@@ -1 +1 @@
1
- .pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.left-0{left:0}.right-0{right:0}.top-0{top:0}.z-20{z-index:20}.z-30{z-index:30}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.-m-1{margin:-.25rem}.m-3{margin:.75rem}.m-auto{margin:auto}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-bottom:.5rem;margin-top:.5rem}.my-3{margin-bottom:.75rem;margin-top:.75rem}.-ml-2{margin-left:-.5rem}.-mt-4{margin-top:-1rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.ml-0{margin-left:0}.ml-1{margin-left:.25rem}.ml-14{margin-left:3.5rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-\[40px\]{margin-left:40px}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-\[6px\]{margin-top:6px}.box-border{box-sizing:border-box}.line-clamp-1{-webkit-line-clamp:1}.line-clamp-1,.line-clamp-4{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical}.line-clamp-4{-webkit-line-clamp:4}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.hidden{display:none}.aspect-video{aspect-ratio:16/9}.h-0{height:0}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-20{height:5rem}.h-24{height:6rem}.h-32{height:8rem}.h-4{height:1rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[190px\]{height:190px}.h-\[1px\]{height:1px}.h-\[256px\]{height:256px}.h-\[72px\]{height:72px}.h-auto{height:auto}.h-fit{height:-moz-fit-content;height:fit-content}.h-full{height:100%}.max-h-32{max-height:8rem}.max-h-8{max-height:2rem}.max-h-9{max-height:2.25rem}.min-h-10{min-height:2.5rem}.min-h-11{min-height:2.75rem}.min-h-\[28px\]{min-height:28px}.min-h-\[320px\]{min-height:320px}.w-1{width:.25rem}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2\/5{width:40%}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3\/5{width:60%}.w-32{width:8rem}.w-36{width:9rem}.w-4{width:1rem}.w-7{width:1.75rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-\[160px\]{width:160px}.w-\[190px\]{width:190px}.w-\[256px\]{width:256px}.w-full{width:100%}.min-w-10{min-width:2.5rem}.min-w-24{min-width:6rem}.min-w-28{min-width:7rem}.min-w-9{min-width:2.25rem}.min-w-\[100px\]{min-width:100px}.min-w-\[240px\]{min-width:240px}.min-w-\[256px\]{min-width:256px}.min-w-\[28px\]{min-width:28px}.min-w-\[320px\]{min-width:320px}.max-w-24{max-width:6rem}.max-w-8{max-width:2rem}.max-w-\[1120px\]{max-width:1120px}.max-w-\[1280px\]{max-width:1280px}.max-w-\[500px\]{max-width:500px}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.flex-1{flex:1 1 0%}.grow{flex-grow:1}.scale-90{--tw-scale-x:.9;--tw-scale-y:.9}.scale-90,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-pointer{cursor:pointer}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overflow-x-scroll{overflow-x:scroll}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-normal{white-space:normal}.whitespace-pre{white-space:pre}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-dashed{border-style:dashed}.border-\[--rt-border-color\]{border-color:var(--rt-border-color)}.border-black{--tw-border-opacity:1;border-color:rgb(0 0 0/var(--tw-border-opacity))}.bg-\[--rt-10-percent-layer\]{background-color:var(--rt-10-percent-layer)}.bg-\[--rt-20-percent-layer\]{background-color:var(--rt-20-percent-layer)}.bg-\[--rt-badge-chip-background\]{background-color:var(--rt-badge-chip-background)}.bg-\[--rt-base-background-inverse\]{background-color:var(--rt-base-background-inverse)}.bg-\[--rt-base-background\]{background-color:var(--rt-base-background)}.bg-\[--rt-brand-color\]{background-color:var(--rt-brand-color)}.bg-\[--rt-raised-background\]{background-color:var(--rt-raised-background)}.bg-fixed{background-attachment:fixed}.fill-current{fill:currentColor}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.\!p-1{padding:.25rem!important}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-11{padding-bottom:2.75rem;padding-top:2.75rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pr-2{padding-right:.5rem}.pr-4{padding-right:1rem}.text-center{text-align:center}.text-right{text-align:right}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.italic{font-style:italic}.leading-3{line-height:.75rem}.leading-none{line-height:1}.text-\[--rt-brand-color\]{color:var(--rt-brand-color)}.text-\[--rt-text-primary-inverse\]{color:var(--rt-text-primary-inverse)}.text-\[--rt-text-primary\]{color:var(--rt-text-primary)}.text-\[--rt-text-secondary\]{color:var(--rt-text-secondary)}.text-transparent{color:transparent}.underline{text-decoration-line:underline}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.outline-4{outline-width:4px}.outline-transparent{outline-color:transparent}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.hover\:bg-\[--rt-10-percent-layer\]:hover{background-color:var(--rt-10-percent-layer)}.hover\:bg-\[--rt-base-background-inverse\]:hover{background-color:var(--rt-base-background-inverse)}.hover\:bg-\[--rt-base-background\]:hover{background-color:var(--rt-base-background)}.hover\:bg-\[--rt-raised-background\]:hover{background-color:var(--rt-raised-background)}.hover\:text-\[--rt-text-primary-inverse\]:hover{color:var(--rt-text-primary-inverse)}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.hover\:outline-\[--rt-raised-background\]:hover{outline-color:var(--rt-raised-background)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.group:hover .group-hover\:visible{visibility:visible}@media (min-width:600px){.sm\:w-1\/3{width:33.333333%}}@media (min-width:768px){.md\:visible{visibility:visible}.md\:mb-1{margin-bottom:.25rem}.md\:ml-16{margin-left:4rem}.md\:ml-2{margin-left:.5rem}.md\:mr-0{margin-right:0}.md\:mr-16{margin-right:4rem}.md\:mt-6{margin-top:1.5rem}.md\:line-clamp-2{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.md\:block{display:block}.md\:flex{display:flex}.md\:h-auto{height:auto}.md\:h-full{height:100%}.md\:w-1\/2{width:50%}.md\:w-1\/4{width:25%}.md\:w-3\/4{width:75%}.md\:w-full{width:100%}.md\:flex-row{flex-direction:row}.md\:flex-row-reverse{flex-direction:row-reverse}.md\:flex-col{flex-direction:column}.md\:items-start{align-items:flex-start}.md\:gap-10{gap:2.5rem}.md\:bg-\[--rt-base-background\]{background-color:var(--rt-base-background)}.md\:p-3{padding:.75rem}.md\:px-0{padding-left:0;padding-right:0}.md\:px-1{padding-left:.25rem;padding-right:.25rem}.md\:px-16{padding-left:4rem;padding-right:4rem}.md\:text-lg{font-size:1.125rem}.md\:text-lg,.md\:text-xl{line-height:1.75rem}.md\:text-xl{font-size:1.25rem}}@media (min-width:1024px){.lg\:w-1\/6{width:16.666667%}.lg\:basis-1\/2{flex-basis:50%}.lg\:flex-row{flex-direction:row}.lg\:px-3{padding-left:.75rem;padding-right:.75rem}}@media (min-width:1280px){.xl\:max-w-\[1024px\]{max-width:1024px}}@media (min-width:1536px){.\32xl\:max-w-\[1280px\]{max-width:1280px}}
1
+ .pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.left-0{left:0}.right-0{right:0}.top-0{top:0}.z-20{z-index:20}.z-30{z-index:30}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.-m-1{margin:-.25rem}.m-3{margin:.75rem}.m-auto{margin:auto}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-bottom:.5rem;margin-top:.5rem}.my-3{margin-bottom:.75rem;margin-top:.75rem}.-ml-2{margin-left:-.5rem}.-mt-4{margin-top:-1rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.ml-0{margin-left:0}.ml-1{margin-left:.25rem}.ml-14{margin-left:3.5rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-\[40px\]{margin-left:40px}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-\[6px\]{margin-top:6px}.box-border{box-sizing:border-box}.line-clamp-1{-webkit-line-clamp:1}.line-clamp-1,.line-clamp-4{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical}.line-clamp-4{-webkit-line-clamp:4}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.hidden{display:none}.aspect-video{aspect-ratio:16/9}.h-0{height:0}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-20{height:5rem}.h-24{height:6rem}.h-4{height:1rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[190px\]{height:190px}.h-\[1px\]{height:1px}.h-\[256px\]{height:256px}.h-\[72px\]{height:72px}.h-auto{height:auto}.h-fit{height:-moz-fit-content;height:fit-content}.h-full{height:100%}.max-h-32{max-height:8rem}.max-h-8{max-height:2rem}.max-h-9{max-height:2.25rem}.min-h-10{min-height:2.5rem}.min-h-11{min-height:2.75rem}.min-h-\[28px\]{min-height:28px}.min-h-\[320px\]{min-height:320px}.w-1{width:.25rem}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2\/5{width:40%}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3\/5{width:60%}.w-32{width:8rem}.w-36{width:9rem}.w-4{width:1rem}.w-7{width:1.75rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-\[160px\]{width:160px}.w-\[190px\]{width:190px}.w-\[256px\]{width:256px}.w-full{width:100%}.min-w-10{min-width:2.5rem}.min-w-24{min-width:6rem}.min-w-28{min-width:7rem}.min-w-9{min-width:2.25rem}.min-w-\[100px\]{min-width:100px}.min-w-\[240px\]{min-width:240px}.min-w-\[256px\]{min-width:256px}.min-w-\[28px\]{min-width:28px}.min-w-\[320px\]{min-width:320px}.max-w-24{max-width:6rem}.max-w-8{max-width:2rem}.max-w-\[1120px\]{max-width:1120px}.max-w-\[1280px\]{max-width:1280px}.max-w-\[500px\]{max-width:500px}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.flex-1{flex:1 1 0%}.grow{flex-grow:1}.scale-90{--tw-scale-x:.9;--tw-scale-y:.9}.scale-90,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-pointer{cursor:pointer}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overflow-x-scroll{overflow-x:scroll}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-normal{white-space:normal}.whitespace-pre{white-space:pre}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-dashed{border-style:dashed}.border-\[--rt-border-color\]{border-color:var(--rt-border-color)}.border-black{--tw-border-opacity:1;border-color:rgb(0 0 0/var(--tw-border-opacity,1))}.bg-\[--rt-10-percent-layer\]{background-color:var(--rt-10-percent-layer)}.bg-\[--rt-20-percent-layer\]{background-color:var(--rt-20-percent-layer)}.bg-\[--rt-badge-chip-background\]{background-color:var(--rt-badge-chip-background)}.bg-\[--rt-base-background-inverse\]{background-color:var(--rt-base-background-inverse)}.bg-\[--rt-base-background\]{background-color:var(--rt-base-background)}.bg-\[--rt-brand-color\]{background-color:var(--rt-brand-color)}.bg-\[--rt-raised-background\]{background-color:var(--rt-raised-background)}.bg-fixed{background-attachment:fixed}.fill-current{fill:currentColor}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.\!p-1{padding:.25rem!important}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-11{padding-bottom:2.75rem;padding-top:2.75rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pr-2{padding-right:.5rem}.pr-4{padding-right:1rem}.text-center{text-align:center}.text-right{text-align:right}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.italic{font-style:italic}.leading-3{line-height:.75rem}.leading-none{line-height:1}.text-\[--rt-brand-color\]{color:var(--rt-brand-color)}.text-\[--rt-text-primary-inverse\]{color:var(--rt-text-primary-inverse)}.text-\[--rt-text-primary\]{color:var(--rt-text-primary)}.text-\[--rt-text-secondary\]{color:var(--rt-text-secondary)}.text-transparent{color:transparent}.underline{text-decoration-line:underline}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.outline-4{outline-width:4px}.outline-transparent{outline-color:transparent}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.hover\:bg-\[--rt-10-percent-layer\]:hover{background-color:var(--rt-10-percent-layer)}.hover\:bg-\[--rt-base-background-inverse\]:hover{background-color:var(--rt-base-background-inverse)}.hover\:bg-\[--rt-base-background\]:hover{background-color:var(--rt-base-background)}.hover\:bg-\[--rt-raised-background\]:hover{background-color:var(--rt-raised-background)}.hover\:text-\[--rt-text-primary-inverse\]:hover{color:var(--rt-text-primary-inverse)}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\:outline-\[--rt-raised-background\]:hover{outline-color:var(--rt-raised-background)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.group:hover .group-hover\:visible{visibility:visible}@media (min-width:600px){.sm\:w-1\/3{width:33.333333%}}@media (min-width:768px){.md\:visible{visibility:visible}.md\:mb-1{margin-bottom:.25rem}.md\:ml-16{margin-left:4rem}.md\:ml-2{margin-left:.5rem}.md\:mr-0{margin-right:0}.md\:mr-16{margin-right:4rem}.md\:mt-6{margin-top:1.5rem}.md\:line-clamp-2{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.md\:block{display:block}.md\:flex{display:flex}.md\:h-auto{height:auto}.md\:h-full{height:100%}.md\:w-1\/2{width:50%}.md\:w-1\/4{width:25%}.md\:w-3\/4{width:75%}.md\:w-full{width:100%}.md\:flex-row{flex-direction:row}.md\:flex-row-reverse{flex-direction:row-reverse}.md\:flex-col{flex-direction:column}.md\:items-start{align-items:flex-start}.md\:gap-10{gap:2.5rem}.md\:bg-\[--rt-base-background\]{background-color:var(--rt-base-background)}.md\:p-3{padding:.75rem}.md\:px-0{padding-left:0;padding-right:0}.md\:px-1{padding-left:.25rem;padding-right:.25rem}.md\:px-16{padding-left:4rem;padding-right:4rem}.md\:text-lg{font-size:1.125rem}.md\:text-lg,.md\:text-xl{line-height:1.75rem}.md\:text-xl{font-size:1.25rem}}@media (min-width:1024px){.lg\:w-1\/6{width:16.666667%}.lg\:basis-1\/2{flex-basis:50%}.lg\:flex-row{flex-direction:row}.lg\:px-3{padding-left:.75rem;padding-right:.75rem}}@media (min-width:1280px){.xl\:max-w-\[1024px\]{max-width:1024px}}@media (min-width:1536px){.\32xl\:max-w-\[1280px\]{max-width:1280px}}
package/esm2022/index.mjs DELETED
@@ -1,7 +0,0 @@
1
- export { productRoutes } from './lib/pages/product/product.routes';
2
- export { productManageRoutes } from './lib/pages/product-manage/product-manage.routes';
3
- export * from './provider';
4
- export * from './lib/components';
5
- export * from './lib/interfaces';
6
- export * from './lib/services';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItcHJvZHVjdC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3ZGLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgcHJvZHVjdFJvdXRlcyB9IGZyb20gJy4vbGliL3BhZ2VzL3Byb2R1Y3QvcHJvZHVjdC5yb3V0ZXMnO1xuZXhwb3J0IHsgcHJvZHVjdE1hbmFnZVJvdXRlcyB9IGZyb20gJy4vbGliL3BhZ2VzL3Byb2R1Y3QtbWFuYWdlL3Byb2R1Y3QtbWFuYWdlLnJvdXRlcyc7XG5leHBvcnQgKiBmcm9tICcuL3Byb3ZpZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7XG4iXX0=
@@ -1,12 +0,0 @@
1
- export * from './product-info/product-info.component';
2
- export * from './product-media/product-media.component';
3
- export * from './product-section/product-section.component';
4
- export * from './product-item/product-item.component';
5
- export * from './product-action/product-action.component';
6
- export * from './product-pricing/product-pricing.component';
7
- export * from './product-section/product-section.component';
8
- export * from './product-option/product-option.component';
9
- export * from './product-mange-section-item/product-mange-section-item.component';
10
- export * from './product-manage-option-add/product-manage-option-add.component';
11
- export * from './product-manage-option-item/product-manage-option-item.component';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItcHJvZHVjdC9zcmMvbGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsbUVBQW1FLENBQUM7QUFDbEYsY0FBYyxpRUFBaUUsQ0FBQztBQUNoRixjQUFjLG1FQUFtRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wcm9kdWN0LWluZm8vcHJvZHVjdC1pbmZvLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3Byb2R1Y3QtbWVkaWEvcHJvZHVjdC1tZWRpYS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9kdWN0LXNlY3Rpb24vcHJvZHVjdC1zZWN0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3Byb2R1Y3QtaXRlbS9wcm9kdWN0LWl0ZW0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdC1hY3Rpb24vcHJvZHVjdC1hY3Rpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdC1wcmljaW5nL3Byb2R1Y3QtcHJpY2luZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9kdWN0LXNlY3Rpb24vcHJvZHVjdC1zZWN0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3Byb2R1Y3Qtb3B0aW9uL3Byb2R1Y3Qtb3B0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3Byb2R1Y3QtbWFuZ2Utc2VjdGlvbi1pdGVtL3Byb2R1Y3QtbWFuZ2Utc2VjdGlvbi1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3Byb2R1Y3QtbWFuYWdlLW9wdGlvbi1hZGQvcHJvZHVjdC1tYW5hZ2Utb3B0aW9uLWFkZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9kdWN0LW1hbmFnZS1vcHRpb24taXRlbS9wcm9kdWN0LW1hbmFnZS1vcHRpb24taXRlbS5jb21wb25lbnQnO1xuIl19
@@ -1,32 +0,0 @@
1
- import { Component, computed, input, output, ViewEncapsulation } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { MatButtonModule } from '@angular/material/button';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/material/button";
6
- export class ProductActionComponent {
7
- constructor() {
8
- this.product = input.required();
9
- this.cart = output();
10
- this.checkout = output();
11
- this.deposit = output();
12
- this.displayDeposit = computed(() => {
13
- return (this.product().deposit / 100).toFixed(2);
14
- });
15
- }
16
- onCart(product) {
17
- this.cart.emit(product);
18
- }
19
- onCheckout(product) {
20
- this.checkout.emit(product);
21
- }
22
- onDeposit(product) {
23
- this.deposit.emit(product);
24
- }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProductActionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: ProductActionComponent, isStandalone: true, selector: "rolatech-product-action", inputs: { product: { classPropertyName: "product", publicName: "product", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { cart: "cart", checkout: "checkout", deposit: "deposit" }, ngImport: i0, template: "<div class=\"flex gap-3\">\n <a mat-stroked-button class=\"\" (click)=\"onCart(product())\">\u52A0\u5165\u8D2D\u7269\u8F66</a>\n @if (product().priceType && product().priceType.toString() === 'PARTIAL') {\n <a mat-flat-button class=\"\" (click)=\"onDeposit(product())\">\u652F\u4ED8\u5B9A\u91D1 \u00A5{{ displayDeposit() }}</a>\n } @else {\n <a mat-flat-button class=\"\" (click)=\"onCheckout(product())\">\u7ACB\u5373\u8D2D\u4E70</a>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }], encapsulation: i0.ViewEncapsulation.None }); }
27
- }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProductActionComponent, decorators: [{
29
- type: Component,
30
- args: [{ selector: 'rolatech-product-action', standalone: true, imports: [CommonModule, MatButtonModule], encapsulation: ViewEncapsulation.None, template: "<div class=\"flex gap-3\">\n <a mat-stroked-button class=\"\" (click)=\"onCart(product())\">\u52A0\u5165\u8D2D\u7269\u8F66</a>\n @if (product().priceType && product().priceType.toString() === 'PARTIAL') {\n <a mat-flat-button class=\"\" (click)=\"onDeposit(product())\">\u652F\u4ED8\u5B9A\u91D1 \u00A5{{ displayDeposit() }}</a>\n } @else {\n <a mat-flat-button class=\"\" (click)=\"onCheckout(product())\">\u7ACB\u5373\u8D2D\u4E70</a>\n }\n</div>\n" }]
31
- }] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1hY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXByb2R1Y3Qvc3JjL2xpYi9jb21wb25lbnRzL3Byb2R1Y3QtYWN0aW9uL3Byb2R1Y3QtYWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1wcm9kdWN0L3NyYy9saWIvY29tcG9uZW50cy9wcm9kdWN0LWFjdGlvbi9wcm9kdWN0LWFjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7OztBQVUzRCxNQUFNLE9BQU8sc0JBQXNCO0lBUm5DO1FBU0UsWUFBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVcsQ0FBQztRQUNwQyxTQUFJLEdBQUcsTUFBTSxFQUFXLENBQUM7UUFDekIsYUFBUSxHQUFHLE1BQU0sRUFBVyxDQUFDO1FBQzdCLFlBQU8sR0FBRyxNQUFNLEVBQVcsQ0FBQztRQUM1QixtQkFBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDN0IsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFDO0tBV0o7SUFUQyxNQUFNLENBQUMsT0FBZ0I7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUNELFVBQVUsQ0FBQyxPQUFnQjtRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBQ0QsU0FBUyxDQUFDLE9BQWdCO1FBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUM7OEdBakJVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLGlTQ2JuQyw0Y0FRQSx5RERBWSxZQUFZLDhCQUFFLGVBQWU7OzJGQUs1QixzQkFBc0I7a0JBUmxDLFNBQVM7K0JBQ0UseUJBQXlCLGNBQ3ZCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUMsaUJBR3pCLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbnB1dCwgb3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFByb2R1Y3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb2R1Y3QtYWN0aW9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2R1Y3QtYWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb2R1Y3QtYWN0aW9uLmNvbXBvbmVudC5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvZHVjdEFjdGlvbkNvbXBvbmVudCB7XG4gIHByb2R1Y3QgPSBpbnB1dC5yZXF1aXJlZDxQcm9kdWN0PigpO1xuICBjYXJ0ID0gb3V0cHV0PFByb2R1Y3Q+KCk7XG4gIGNoZWNrb3V0ID0gb3V0cHV0PFByb2R1Y3Q+KCk7XG4gIGRlcG9zaXQgPSBvdXRwdXQ8UHJvZHVjdD4oKTtcbiAgZGlzcGxheURlcG9zaXQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuICh0aGlzLnByb2R1Y3QoKS5kZXBvc2l0IC8gMTAwKS50b0ZpeGVkKDIpO1xuICB9KTtcblxuICBvbkNhcnQocHJvZHVjdDogUHJvZHVjdCkge1xuICAgIHRoaXMuY2FydC5lbWl0KHByb2R1Y3QpO1xuICB9XG4gIG9uQ2hlY2tvdXQocHJvZHVjdDogUHJvZHVjdCkge1xuICAgIHRoaXMuY2hlY2tvdXQuZW1pdChwcm9kdWN0KTtcbiAgfVxuICBvbkRlcG9zaXQocHJvZHVjdDogUHJvZHVjdCkge1xuICAgIHRoaXMuZGVwb3NpdC5lbWl0KHByb2R1Y3QpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBnYXAtM1wiPlxuICA8YSBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJcIiAoY2xpY2spPVwib25DYXJ0KHByb2R1Y3QoKSlcIj7liqDlhaXotK3nianovaY8L2E+XG4gIEBpZiAocHJvZHVjdCgpLnByaWNlVHlwZSAmJiBwcm9kdWN0KCkucHJpY2VUeXBlLnRvU3RyaW5nKCkgPT09ICdQQVJUSUFMJykge1xuICAgIDxhIG1hdC1mbGF0LWJ1dHRvbiBjbGFzcz1cIlwiIChjbGljayk9XCJvbkRlcG9zaXQocHJvZHVjdCgpKVwiPuaUr+S7mOWumumHkSDCpXt7IGRpc3BsYXlEZXBvc2l0KCkgfX08L2E+XG4gIH0gQGVsc2Uge1xuICAgIDxhIG1hdC1mbGF0LWJ1dHRvbiBjbGFzcz1cIlwiIChjbGljayk9XCJvbkNoZWNrb3V0KHByb2R1Y3QoKSlcIj7nq4vljbPotK3kubA8L2E+XG4gIH1cbjwvZGl2PlxuIl19
@@ -1,19 +0,0 @@
1
- import { Component, input, ViewEncapsulation } from '@angular/core';
2
- import { MatIconModule } from '@angular/material/icon';
3
- import { RouterModule } from '@angular/router';
4
- import * as i0 from "@angular/core";
5
- export class ProductInfoComponent {
6
- constructor() {
7
- this.name = input.required();
8
- this.description = input();
9
- }
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProductInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.8", type: ProductInfoComponent, isStandalone: true, selector: "rolatech-product-info", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "id": "rolatech-product-info" } }, ngImport: i0, template: "<div>\n <div class=\"text-2xl font-medium\">{{ name() }}</div>\n <div>\n {{ description() }}\n </div>\n</div>\n", styles: ["rolatech-product-info mat-icon{transform:scale(.8)}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: RouterModule }], encapsulation: i0.ViewEncapsulation.None }); }
12
- }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProductInfoComponent, decorators: [{
14
- type: Component,
15
- args: [{ selector: 'rolatech-product-info', standalone: true, imports: [MatIconModule, RouterModule], encapsulation: ViewEncapsulation.None, host: {
16
- id: 'rolatech-product-info',
17
- }, template: "<div>\n <div class=\"text-2xl font-medium\">{{ name() }}</div>\n <div>\n {{ description() }}\n </div>\n</div>\n", styles: ["rolatech-product-info mat-icon{transform:scale(.8)}\n"] }]
18
- }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1pbmZvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1wcm9kdWN0L3NyYy9saWIvY29tcG9uZW50cy9wcm9kdWN0LWluZm8vcHJvZHVjdC1pbmZvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1wcm9kdWN0L3NyYy9saWIvY29tcG9uZW50cy9wcm9kdWN0LWluZm8vcHJvZHVjdC1pbmZvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBYS9DLE1BQU0sT0FBTyxvQkFBb0I7SUFYakM7UUFZRSxTQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBQ2hDLGdCQUFXLEdBQUcsS0FBSyxFQUFVLENBQUM7S0FDL0I7OEdBSFksb0JBQW9CO2tHQUFwQixvQkFBb0Isb1pDZmpDLHVIQU1BLDhHRENZLGFBQWEsOEJBQUUsWUFBWTs7MkZBUTFCLG9CQUFvQjtrQkFYaEMsU0FBUzsrQkFDRSx1QkFBdUIsY0FDckIsSUFBSSxXQUNQLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxpQkFHdkIsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixFQUFFLEVBQUUsdUJBQXVCO3FCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1wcm9kdWN0LWluZm8nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTWF0SWNvbk1vZHVsZSwgUm91dGVyTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2R1Y3QtaW5mby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9kdWN0LWluZm8uY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgaWQ6ICdyb2xhdGVjaC1wcm9kdWN0LWluZm8nLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdWN0SW5mb0NvbXBvbmVudCB7XG4gIG5hbWUgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG4gIGRlc2NyaXB0aW9uID0gaW5wdXQ8c3RyaW5nPigpO1xufVxuIiwiPGRpdj5cbiAgPGRpdiBjbGFzcz1cInRleHQtMnhsIGZvbnQtbWVkaXVtXCI+e3sgbmFtZSgpIH19PC9kaXY+XG4gIDxkaXY+XG4gICAge3sgZGVzY3JpcHRpb24oKSB9fVxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,17 +0,0 @@
1
- import { Component, input, ViewEncapsulation } from '@angular/core';
2
- import { AngularCommonModule } from '@rolatech/angular-common';
3
- import { AngularComponentsModule, RichViewComponent, RichItemComponent } from '@rolatech/angular-components';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/router";
6
- export class ProductItemComponent {
7
- constructor() {
8
- this.product = input.required();
9
- }
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProductItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.8", type: ProductItemComponent, isStandalone: true, selector: "rolatech-product-item", inputs: { product: { classPropertyName: "product", publicName: "product", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<rolatech-rich-item\n [routerLink]=\"['./', product().id]\"\n [thumbnail]=\"product().media[0].url + '!w400'\"\n [title]=\"product().name\"\n [subtitle]=\"product().description\"\n [price]=\"product().price / 100\"\n></rolatech-rich-item>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: RichItemComponent, selector: "rolatech-rich-item", inputs: ["list", "thumbnail", "avatar", "title", "subtitle", "price", "thumbnailRatio"] }], encapsulation: i0.ViewEncapsulation.None }); }
12
- }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProductItemComponent, decorators: [{
14
- type: Component,
15
- args: [{ selector: 'rolatech-product-item', standalone: true, imports: [AngularCommonModule, AngularComponentsModule, RichViewComponent, RichItemComponent], encapsulation: ViewEncapsulation.None, template: "<rolatech-rich-item\n [routerLink]=\"['./', product().id]\"\n [thumbnail]=\"product().media[0].url + '!w400'\"\n [title]=\"product().name\"\n [subtitle]=\"product().description\"\n [price]=\"product().price / 100\"\n></rolatech-rich-item>\n" }]
16
- }] });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1wcm9kdWN0L3NyYy9saWIvY29tcG9uZW50cy9wcm9kdWN0LWl0ZW0vcHJvZHVjdC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1wcm9kdWN0L3NyYy9saWIvY29tcG9uZW50cy9wcm9kdWN0LWl0ZW0vcHJvZHVjdC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXBFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7QUFXN0csTUFBTSxPQUFPLG9CQUFvQjtJQVJqQztRQVNFLFlBQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFXLENBQUM7S0FDckM7OEdBRlksb0JBQW9CO2tHQUFwQixvQkFBb0IsME5DZGpDLHVQQU9BLHlEREVZLG1CQUFtQiwrUUFBRSx1QkFBdUIsK0JBQXFCLGlCQUFpQjs7MkZBS2pGLG9CQUFvQjtrQkFSaEMsU0FBUzsrQkFDRSx1QkFBdUIsY0FDckIsSUFBSSxXQUNQLENBQUMsbUJBQW1CLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUMsaUJBRzlFLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFuZ3VsYXJDb21tb25Nb2R1bGUgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21tb24nO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUsIFJpY2hWaWV3Q29tcG9uZW50LCBSaWNoSXRlbUNvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgUHJvZHVjdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1wcm9kdWN0LWl0ZW0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQW5ndWxhckNvbW1vbk1vZHVsZSwgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUsIFJpY2hWaWV3Q29tcG9uZW50LCBSaWNoSXRlbUNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9kdWN0LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvZHVjdC1pdGVtLmNvbXBvbmVudC5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvZHVjdEl0ZW1Db21wb25lbnQge1xuICBwcm9kdWN0ID0gaW5wdXQucmVxdWlyZWQ8UHJvZHVjdD4oKTtcbn1cbiIsIjxyb2xhdGVjaC1yaWNoLWl0ZW1cbiAgW3JvdXRlckxpbmtdPVwiWycuLycsIHByb2R1Y3QoKS5pZF1cIlxuICBbdGh1bWJuYWlsXT1cInByb2R1Y3QoKS5tZWRpYVswXS51cmwgKyAnIXc0MDAnXCJcbiAgW3RpdGxlXT1cInByb2R1Y3QoKS5uYW1lXCJcbiAgW3N1YnRpdGxlXT1cInByb2R1Y3QoKS5kZXNjcmlwdGlvblwiXG4gIFtwcmljZV09XCJwcm9kdWN0KCkucHJpY2UgLyAxMDBcIlxuPjwvcm9sYXRlY2gtcmljaC1pdGVtPlxuIl19
@@ -1,68 +0,0 @@
1
- import { Component, output } from '@angular/core';
2
- import { ENTER, COMMA } from '@angular/cdk/keycodes';
3
- import { MatChipsModule } from '@angular/material/chips';
4
- import { MatButtonModule } from '@angular/material/button';
5
- import { MatFormFieldModule } from '@angular/material/form-field';
6
- import { MatIconModule } from '@angular/material/icon';
7
- import { AngularCommonModule } from '@rolatech/angular-common';
8
- import { AngularComponentsModule } from '@rolatech/angular-components';
9
- import { ProductManageOptionActionComponent } from '../product-mange-option-action/product-manage-option-action.component';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "@angular/material/chips";
12
- import * as i2 from "@angular/material/button";
13
- import * as i3 from "@angular/material/form-field";
14
- import * as i4 from "@angular/forms";
15
- import * as i5 from "@angular/material/icon";
16
- import * as i6 from "@angular/material/input";
17
- export class ProductManageOptionAddComponent {
18
- constructor() {
19
- this.option = {
20
- id: '',
21
- name: '',
22
- values: [],
23
- };
24
- this.addOnBlur = true;
25
- this.separatorKeysCodes = [ENTER, COMMA];
26
- this.cancel = output();
27
- this.save = output();
28
- this.action = true;
29
- this.output = output();
30
- }
31
- onCancel() {
32
- this.cancel.emit();
33
- }
34
- onSave() {
35
- this.save.emit(this.option);
36
- }
37
- addOptionValues(event) {
38
- const value = (event.value || '').trim();
39
- if (value) {
40
- this.option.values.push({ name: value });
41
- }
42
- event.chipInput.clear();
43
- }
44
- removeValue(value) {
45
- if (value) {
46
- const index = this.option.values.findIndex((item) => item.name === value.name);
47
- this.option.values?.splice(index, 1);
48
- }
49
- }
50
- ngDoCheck() {
51
- this.output.emit(this.option);
52
- }
53
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProductManageOptionAddComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
54
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: ProductManageOptionAddComponent, isStandalone: true, selector: "rolatech-product-manage-option-add", outputs: { cancel: "cancel", save: "save", output: "output" }, ngImport: i0, template: "<div class=\"flex flex-col\">\n <div class=\"p-1\">\u9009\u9879</div>\n <form>\n <mat-form-field appearance=\"fill\">\n <input matInput placeholder=\"\u540D\u79F0\" type=\"text\" [(ngModel)]=\"option.name\" [ngModelOptions]=\"{ standalone: true }\" />\n </mat-form-field>\n <mat-form-field>\n <mat-chip-grid #chipGrid aria-label=\"Enter values\">\n @for (value of option.values; track value) {\n <mat-chip-row\n (removed)=\"removeValue(value)\"\n [editable]=\"true\"\n [aria-description]=\"'press enter to edit ' + value.name\"\n >\n {{ value.name }}\n <button matChipRemove [attr.aria-label]=\"'remove ' + value.name\">\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip-row>\n }\n <input\n placeholder=\"\u9009\u9879\u503C\"\n [matChipInputFor]=\"chipGrid\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n [matChipInputAddOnBlur]=\"addOnBlur\"\n (matChipInputTokenEnd)=\"addOptionValues($event)\"\n />\n </mat-chip-grid>\n </mat-form-field>\n </form>\n</div>\n@if (action) {\n <div class=\"flex items-center justify-end\">\n <button mat-button (click)=\"onCancel()\">\u53D6\u6D88</button>\n <button mat-button color=\"primary\" (click)=\"onSave()\">\u4FDD\u5B58</button>\n </div>\n}\n", styles: ["mat-form-field{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i1.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i1.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i1.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i1.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: AngularCommonModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatIconModule }] }); }
55
- }
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProductManageOptionAddComponent, decorators: [{
57
- type: Component,
58
- args: [{ selector: 'rolatech-product-manage-option-add', standalone: true, imports: [
59
- MatChipsModule,
60
- MatButtonModule,
61
- MatFormFieldModule,
62
- AngularCommonModule,
63
- AngularComponentsModule,
64
- MatIconModule,
65
- ProductManageOptionActionComponent,
66
- ], template: "<div class=\"flex flex-col\">\n <div class=\"p-1\">\u9009\u9879</div>\n <form>\n <mat-form-field appearance=\"fill\">\n <input matInput placeholder=\"\u540D\u79F0\" type=\"text\" [(ngModel)]=\"option.name\" [ngModelOptions]=\"{ standalone: true }\" />\n </mat-form-field>\n <mat-form-field>\n <mat-chip-grid #chipGrid aria-label=\"Enter values\">\n @for (value of option.values; track value) {\n <mat-chip-row\n (removed)=\"removeValue(value)\"\n [editable]=\"true\"\n [aria-description]=\"'press enter to edit ' + value.name\"\n >\n {{ value.name }}\n <button matChipRemove [attr.aria-label]=\"'remove ' + value.name\">\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip-row>\n }\n <input\n placeholder=\"\u9009\u9879\u503C\"\n [matChipInputFor]=\"chipGrid\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n [matChipInputAddOnBlur]=\"addOnBlur\"\n (matChipInputTokenEnd)=\"addOptionValues($event)\"\n />\n </mat-chip-grid>\n </mat-form-field>\n </form>\n</div>\n@if (action) {\n <div class=\"flex items-center justify-end\">\n <button mat-button (click)=\"onCancel()\">\u53D6\u6D88</button>\n <button mat-button color=\"primary\" (click)=\"onSave()\">\u4FDD\u5B58</button>\n </div>\n}\n", styles: ["mat-form-field{width:100%}\n"] }]
67
- }] });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1tYW5hZ2Utb3B0aW9uLWFkZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItcHJvZHVjdC9zcmMvbGliL2NvbXBvbmVudHMvcHJvZHVjdC1tYW5hZ2Utb3B0aW9uLWFkZC9wcm9kdWN0LW1hbmFnZS1vcHRpb24tYWRkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1wcm9kdWN0L3NyYy9saWIvY29tcG9uZW50cy9wcm9kdWN0LW1hbmFnZS1vcHRpb24tYWRkL3Byb2R1Y3QtbWFuYWdlLW9wdGlvbi1hZGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBa0IsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFxQixjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHVFQUF1RSxDQUFDOzs7Ozs7OztBQWlCM0gsTUFBTSxPQUFPLCtCQUErQjtJQWY1QztRQWdCRSxXQUFNLEdBQWtCO1lBQ3RCLEVBQUUsRUFBRSxFQUFFO1lBQ04sSUFBSSxFQUFFLEVBQUU7WUFDUixNQUFNLEVBQUUsRUFBRTtTQUNYLENBQUM7UUFDRixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ1IsdUJBQWtCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFVLENBQUM7UUFDdEQsV0FBTSxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQ2xCLFNBQUksR0FBRyxNQUFNLEVBQWlCLENBQUM7UUFDL0IsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLFdBQU0sR0FBRyxNQUFNLEVBQU8sQ0FBQztLQXlCeEI7SUF2QkMsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUNELE1BQU07UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUF3QjtRQUN0QyxNQUFNLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekMsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLENBQUM7UUFDRCxLQUFLLENBQUMsU0FBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFDRCxXQUFXLENBQUMsS0FBVTtRQUNwQixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwRixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0lBQ0QsU0FBUztRQUNQLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDOzhHQW5DVSwrQkFBK0I7a0dBQS9CLCtCQUErQiw2SkMxQjVDLDQ0Q0FxQ0EscUZEdEJJLGNBQWMsNHVCQUNkLGVBQWUsMk5BQ2Ysa0JBQWtCLHlPQUNsQixtQkFBbUIsdWlDQUNuQix1QkFBdUIsK2ZBQ3ZCLGFBQWE7OzJGQU1KLCtCQUErQjtrQkFmM0MsU0FBUzsrQkFDRSxvQ0FBb0MsY0FDbEMsSUFBSSxXQUNQO3dCQUNQLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3dCQUN2QixhQUFhO3dCQUNiLGtDQUFrQztxQkFDbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIERvQ2hlY2ssIG1vZGVsLCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVOVEVSLCBDT01NQSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBNYXRDaGlwSW5wdXRFdmVudCwgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQgeyBQcm9kdWN0T3B0aW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBBbmd1bGFyQ29tbW9uTW9kdWxlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBQcm9kdWN0TWFuYWdlT3B0aW9uQWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vcHJvZHVjdC1tYW5nZS1vcHRpb24tYWN0aW9uL3Byb2R1Y3QtbWFuYWdlLW9wdGlvbi1hY3Rpb24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvZHVjdC1tYW5hZ2Utb3B0aW9uLWFkZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBNYXRDaGlwc01vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIEFuZ3VsYXJDb21tb25Nb2R1bGUsXG4gICAgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBQcm9kdWN0TWFuYWdlT3B0aW9uQWN0aW9uQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZHVjdC1tYW5hZ2Utb3B0aW9uLWFkZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9kdWN0LW1hbmFnZS1vcHRpb24tYWRkLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvZHVjdE1hbmFnZU9wdGlvbkFkZENvbXBvbmVudCBpbXBsZW1lbnRzIERvQ2hlY2sge1xuICBvcHRpb246IFByb2R1Y3RPcHRpb24gPSB7XG4gICAgaWQ6ICcnLFxuICAgIG5hbWU6ICcnLFxuICAgIHZhbHVlczogW10sXG4gIH07XG4gIGFkZE9uQmx1ciA9IHRydWU7XG4gIHJlYWRvbmx5IHNlcGFyYXRvcktleXNDb2RlcyA9IFtFTlRFUiwgQ09NTUFdIGFzIGNvbnN0O1xuICBjYW5jZWwgPSBvdXRwdXQoKTtcbiAgc2F2ZSA9IG91dHB1dDxQcm9kdWN0T3B0aW9uPigpO1xuICBhY3Rpb24gPSB0cnVlO1xuICBvdXRwdXQgPSBvdXRwdXQ8YW55PigpO1xuXG4gIG9uQ2FuY2VsKCkge1xuICAgIHRoaXMuY2FuY2VsLmVtaXQoKTtcbiAgfVxuICBvblNhdmUoKSB7XG4gICAgdGhpcy5zYXZlLmVtaXQodGhpcy5vcHRpb24pO1xuICB9XG5cbiAgYWRkT3B0aW9uVmFsdWVzKGV2ZW50OiBNYXRDaGlwSW5wdXRFdmVudCkge1xuICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnZhbHVlIHx8ICcnKS50cmltKCk7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLm9wdGlvbi52YWx1ZXMucHVzaCh7IG5hbWU6IHZhbHVlIH0pO1xuICAgIH1cbiAgICBldmVudC5jaGlwSW5wdXQhLmNsZWFyKCk7XG4gIH1cbiAgcmVtb3ZlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm9wdGlvbi52YWx1ZXMuZmluZEluZGV4KChpdGVtOiBhbnkpID0+IGl0ZW0ubmFtZSA9PT0gdmFsdWUubmFtZSk7XG4gICAgICB0aGlzLm9wdGlvbi52YWx1ZXM/LnNwbGljZShpbmRleCEsIDEpO1xuICAgIH1cbiAgfVxuICBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgdGhpcy5vdXRwdXQuZW1pdCh0aGlzLm9wdGlvbik7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XG4gIDxkaXYgY2xhc3M9XCJwLTFcIj7pgInpobk8L2Rpdj5cbiAgPGZvcm0+XG4gICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCLlkI3np7BcIiB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwib3B0aW9uLm5hbWVcIiBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIiAvPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1jaGlwLWdyaWQgI2NoaXBHcmlkIGFyaWEtbGFiZWw9XCJFbnRlciB2YWx1ZXNcIj5cbiAgICAgICAgQGZvciAodmFsdWUgb2Ygb3B0aW9uLnZhbHVlczsgdHJhY2sgdmFsdWUpIHtcbiAgICAgICAgICA8bWF0LWNoaXAtcm93XG4gICAgICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmVWYWx1ZSh2YWx1ZSlcIlxuICAgICAgICAgICAgW2VkaXRhYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgW2FyaWEtZGVzY3JpcHRpb25dPVwiJ3ByZXNzIGVudGVyIHRvIGVkaXQgJyArIHZhbHVlLm5hbWVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IHZhbHVlLm5hbWUgfX1cbiAgICAgICAgICAgIDxidXR0b24gbWF0Q2hpcFJlbW92ZSBbYXR0ci5hcmlhLWxhYmVsXT1cIidyZW1vdmUgJyArIHZhbHVlLm5hbWVcIj5cbiAgICAgICAgICAgICAgPG1hdC1pY29uPmNhbmNlbDwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L21hdC1jaGlwLXJvdz5cbiAgICAgICAgfVxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIumAiemhueWAvFwiXG4gICAgICAgICAgW21hdENoaXBJbnB1dEZvcl09XCJjaGlwR3JpZFwiXG4gICAgICAgICAgW21hdENoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzXT1cInNlcGFyYXRvcktleXNDb2Rlc1wiXG4gICAgICAgICAgW21hdENoaXBJbnB1dEFkZE9uQmx1cl09XCJhZGRPbkJsdXJcIlxuICAgICAgICAgIChtYXRDaGlwSW5wdXRUb2tlbkVuZCk9XCJhZGRPcHRpb25WYWx1ZXMoJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgICA8L21hdC1jaGlwLWdyaWQ+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9mb3JtPlxuPC9kaXY+XG5AaWYgKGFjdGlvbikge1xuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1lbmRcIj5cbiAgICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cIm9uQ2FuY2VsKClcIj7lj5bmtog8L2J1dHRvbj5cbiAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cIm9uU2F2ZSgpXCI+5L+d5a2YPC9idXR0b24+XG4gIDwvZGl2PlxufVxuIl19
@@ -1,49 +0,0 @@
1
- import { Component, input, output } from '@angular/core';
2
- import { MatButtonModule } from '@angular/material/button';
3
- import { MatChipsModule } from '@angular/material/chips';
4
- import { MatFormFieldModule } from '@angular/material/form-field';
5
- import { MatIconModule } from '@angular/material/icon';
6
- import { AngularCommonModule } from '@rolatech/angular-common';
7
- import { AngularComponentsModule } from '@rolatech/angular-components';
8
- import { OptionsFormatPipe } from '@rolatech/angular-common';
9
- import { ProductManageOptionAddComponent } from '../product-manage-option-add/product-manage-option-add.component';
10
- import { ProductManageOptionActionComponent } from '../product-mange-option-action/product-manage-option-action.component';
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "@angular/material/button";
13
- import * as i2 from "@angular/material/divider";
14
- import * as i3 from "@angular/material/icon";
15
- export class ProductManageOptionItemComponent {
16
- constructor() {
17
- this.option = input.required();
18
- this.addOnBlur = true;
19
- this.delete = output();
20
- this.save = output();
21
- this.edit = output();
22
- }
23
- onDelete() {
24
- this.delete.emit(this.option());
25
- }
26
- onSave() {
27
- this.save.emit(this.option());
28
- }
29
- onEdit() {
30
- this.edit.emit(this.option());
31
- }
32
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProductManageOptionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
33
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.8", type: ProductManageOptionItemComponent, isStandalone: true, selector: "rolatech-product-manage-option-item", inputs: { option: { classPropertyName: "option", publicName: "option", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { delete: "delete", save: "save", edit: "edit" }, ngImport: i0, template: "<div class=\"group flex justify-between items-center h-14 hover:bg-[--rt-raised-background] cursor-pointer px-2\">\n <div class=\"flex\">\n <div class=\"min-w-[100px]\">{{ option().name }}</div>\n <div class=\"overflow-hidden line-clamp-1\">\n {{ option().values! | options }}\n </div>\n </div>\n <div class=\"flex justify-end max-w-24 w-24 invisible group-hover:visible\">\n <button mat-icon-button (click)=\"onEdit()\">\n <mat-icon>edit</mat-icon>\n </button>\n <button mat-icon-button (click)=\"onDelete()\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n</div>\n<mat-divider></mat-divider>\n", styles: ["mat-icon{scale:.9}\n"], dependencies: [{ kind: "ngmodule", type: MatChipsModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: AngularCommonModule }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: i2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "pipe", type: OptionsFormatPipe, name: "options" }] }); }
34
- }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProductManageOptionItemComponent, decorators: [{
36
- type: Component,
37
- args: [{ selector: 'rolatech-product-manage-option-item', standalone: true, imports: [
38
- MatChipsModule,
39
- MatButtonModule,
40
- MatFormFieldModule,
41
- AngularCommonModule,
42
- AngularComponentsModule,
43
- MatIconModule,
44
- ProductManageOptionActionComponent,
45
- ProductManageOptionAddComponent,
46
- OptionsFormatPipe,
47
- ], template: "<div class=\"group flex justify-between items-center h-14 hover:bg-[--rt-raised-background] cursor-pointer px-2\">\n <div class=\"flex\">\n <div class=\"min-w-[100px]\">{{ option().name }}</div>\n <div class=\"overflow-hidden line-clamp-1\">\n {{ option().values! | options }}\n </div>\n </div>\n <div class=\"flex justify-end max-w-24 w-24 invisible group-hover:visible\">\n <button mat-icon-button (click)=\"onEdit()\">\n <mat-icon>edit</mat-icon>\n </button>\n <button mat-icon-button (click)=\"onDelete()\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n</div>\n<mat-divider></mat-divider>\n", styles: ["mat-icon{scale:.9}\n"] }]
48
- }] });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1tYW5hZ2Utb3B0aW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXByb2R1Y3Qvc3JjL2xpYi9jb21wb25lbnRzL3Byb2R1Y3QtbWFuYWdlLW9wdGlvbi1pdGVtL3Byb2R1Y3QtbWFuYWdlLW9wdGlvbi1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1wcm9kdWN0L3NyYy9saWIvY29tcG9uZW50cy9wcm9kdWN0LW1hbmFnZS1vcHRpb24taXRlbS9wcm9kdWN0LW1hbmFnZS1vcHRpb24taXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDbkgsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sdUVBQXVFLENBQUM7Ozs7O0FBbUIzSCxNQUFNLE9BQU8sZ0NBQWdDO0lBakI3QztRQWtCRSxXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBaUIsQ0FBQztRQUN6QyxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLFdBQU0sR0FBRyxNQUFNLEVBQWlCLENBQUM7UUFDakMsU0FBSSxHQUFHLE1BQU0sRUFBaUIsQ0FBQztRQUMvQixTQUFJLEdBQUcsTUFBTSxFQUFpQixDQUFDO0tBV2hDO0lBVEMsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNELE1BQU07UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNoQyxDQUFDOzhHQWZVLGdDQUFnQztrR0FBaEMsZ0NBQWdDLGdTQzdCN0MsbW9CQWlCQSw2RURESSxjQUFjLDhCQUNkLGVBQWUsMklBQ2Ysa0JBQWtCLDhCQUNsQixtQkFBbUIsOEJBQ25CLHVCQUF1Qix1UkFDdkIsYUFBYSwwQkFHYixpQkFBaUI7OzJGQUtSLGdDQUFnQztrQkFqQjVDLFNBQVM7K0JBQ0UscUNBQXFDLGNBQ25DLElBQUksV0FDUDt3QkFDUCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsYUFBYTt3QkFDYixrQ0FBa0M7d0JBQ2xDLCtCQUErQjt3QkFDL0IsaUJBQWlCO3FCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdENoaXBzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBBbmd1bGFyQ29tbW9uTW9kdWxlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBQcm9kdWN0T3B0aW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBPcHRpb25zRm9ybWF0UGlwZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQgeyBQcm9kdWN0TWFuYWdlT3B0aW9uQWRkQ29tcG9uZW50IH0gZnJvbSAnLi4vcHJvZHVjdC1tYW5hZ2Utb3B0aW9uLWFkZC9wcm9kdWN0LW1hbmFnZS1vcHRpb24tYWRkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9kdWN0TWFuYWdlT3B0aW9uQWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vcHJvZHVjdC1tYW5nZS1vcHRpb24tYWN0aW9uL3Byb2R1Y3QtbWFuYWdlLW9wdGlvbi1hY3Rpb24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvZHVjdC1tYW5hZ2Utb3B0aW9uLWl0ZW0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0Q2hpcHNNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBBbmd1bGFyQ29tbW9uTW9kdWxlLFxuICAgIEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgUHJvZHVjdE1hbmFnZU9wdGlvbkFjdGlvbkNvbXBvbmVudCxcbiAgICBQcm9kdWN0TWFuYWdlT3B0aW9uQWRkQ29tcG9uZW50LFxuICAgIE9wdGlvbnNGb3JtYXRQaXBlLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZHVjdC1tYW5hZ2Utb3B0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvZHVjdC1tYW5hZ2Utb3B0aW9uLWl0ZW0uY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdWN0TWFuYWdlT3B0aW9uSXRlbUNvbXBvbmVudCB7XG4gIG9wdGlvbiA9IGlucHV0LnJlcXVpcmVkPFByb2R1Y3RPcHRpb24+KCk7XG4gIGFkZE9uQmx1ciA9IHRydWU7XG4gIGRlbGV0ZSA9IG91dHB1dDxQcm9kdWN0T3B0aW9uPigpO1xuICBzYXZlID0gb3V0cHV0PFByb2R1Y3RPcHRpb24+KCk7XG4gIGVkaXQgPSBvdXRwdXQ8UHJvZHVjdE9wdGlvbj4oKTtcblxuICBvbkRlbGV0ZSgpIHtcbiAgICB0aGlzLmRlbGV0ZS5lbWl0KHRoaXMub3B0aW9uKCkpO1xuICB9XG4gIG9uU2F2ZSgpIHtcbiAgICB0aGlzLnNhdmUuZW1pdCh0aGlzLm9wdGlvbigpKTtcbiAgfVxuICBvbkVkaXQoKSB7XG4gICAgdGhpcy5lZGl0LmVtaXQodGhpcy5vcHRpb24oKSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJncm91cCBmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgaC0xNCBob3ZlcjpiZy1bLS1ydC1yYWlzZWQtYmFja2dyb3VuZF0gY3Vyc29yLXBvaW50ZXIgcHgtMlwiPlxuICA8ZGl2IGNsYXNzPVwiZmxleFwiPlxuICAgIDxkaXYgY2xhc3M9XCJtaW4tdy1bMTAwcHhdXCI+e3sgb3B0aW9uKCkubmFtZSB9fTwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJvdmVyZmxvdy1oaWRkZW4gbGluZS1jbGFtcC0xXCI+XG4gICAgICB7eyBvcHRpb24oKS52YWx1ZXMhIHwgb3B0aW9ucyB9fVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1lbmQgbWF4LXctMjQgdy0yNCBpbnZpc2libGUgZ3JvdXAtaG92ZXI6dmlzaWJsZVwiPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJvbkVkaXQoKVwiPlxuICAgICAgPG1hdC1pY29uPmVkaXQ8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJvbkRlbGV0ZSgpXCI+XG4gICAgICA8bWF0LWljb24+ZGVsZXRlPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuIl19
@@ -1,127 +0,0 @@
1
- import { Component, computed, inject, model, output } from '@angular/core';
2
- import { MatFormFieldModule } from '@angular/material/form-field';
3
- import { MatIcon } from '@angular/material/icon';
4
- import { MatProgressBarModule } from '@angular/material/progress-bar';
5
- import { MatTableModule } from '@angular/material/table';
6
- import { AngularCommonModule, DecimalDirective } from '@rolatech/angular-common';
7
- import { AngularComponentsModule, ToolbarComponent, ThumbnailComponent, ImageComponent, ImagePreviewDialogComponent, } from '@rolatech/angular-components';
8
- import { OptionsFormatPipe } from '@rolatech/angular-common';
9
- import { ProductManageContentComponent } from '../../pages/product-manage/product-manage-content/product-manage-content.component';
10
- import { ProductInventoryStatus } from '../../interfaces';
11
- import { trigger, state, style, transition, animate } from '@angular/animations';
12
- import { MatDialog } from '@angular/material/dialog';
13
- import { MatSelectModule } from '@angular/material/select';
14
- import { DecimalPipe } from '@angular/common';
15
- import * as i0 from "@angular/core";
16
- import * as i1 from "@angular/forms";
17
- import * as i2 from "@angular/material/core";
18
- import * as i3 from "@angular/material/button";
19
- import * as i4 from "@angular/material/divider";
20
- import * as i5 from "@angular/material/icon";
21
- import * as i6 from "@angular/material/form-field";
22
- import * as i7 from "@angular/material/input";
23
- import * as i8 from "@angular/material/progress-spinner";
24
- import * as i9 from "@angular/material/select";
25
- export class ProductManageVariantComponent {
26
- constructor() {
27
- this.dialog = inject(MatDialog);
28
- this.variant = model.required();
29
- this.price = computed(() => {
30
- return (this.variant().price / 100).toFixed(2);
31
- });
32
- this.expanded = false;
33
- this.upload = output();
34
- this.variantStatus = ProductInventoryStatus;
35
- this.enumKeys = Object.keys(this.variantStatus).filter((key) => isNaN(Number(key)));
36
- }
37
- onUpload(event) {
38
- const file = event.target.files[0];
39
- if (file) {
40
- const reader = new FileReader();
41
- const formData = new FormData();
42
- formData.append('file', file);
43
- reader.readAsDataURL(file);
44
- reader.onload = () => {
45
- const img = new Image();
46
- img.onload = () => {
47
- this.variant.update((item) => {
48
- item.media = item.media ? item.media : [];
49
- item.media.push({
50
- url: img.src,
51
- alt: 'upload image',
52
- uploading: true,
53
- });
54
- return item;
55
- });
56
- };
57
- img.src = reader.result;
58
- this.upload.emit(formData);
59
- };
60
- reader.onerror = (error) => { };
61
- }
62
- }
63
- onMediaClick(i) {
64
- const dialogRef = this.dialog.open(ImagePreviewDialogComponent, {
65
- maxWidth: '80vw',
66
- maxHeight: '80vh',
67
- height: '80%',
68
- width: '80%',
69
- panelClass: 'full-screen-modal',
70
- data: {
71
- media: this.variant().media,
72
- selected: i,
73
- },
74
- });
75
- dialogRef.afterClosed().subscribe((result) => { });
76
- }
77
- statusCompareFn(t1, t2) {
78
- return t1 === ProductInventoryStatus[t2];
79
- }
80
- onStatusChange(event) {
81
- this.variant.update((item) => {
82
- item.status = Object.keys(this.variantStatus).find((key) => this.variantStatus[key] === event.value);
83
- return item;
84
- });
85
- }
86
- onPriceChange(event) {
87
- const value = event.target.value;
88
- this.variant.update((currentVariant) => {
89
- currentVariant.price = value * 100;
90
- return { ...currentVariant };
91
- });
92
- }
93
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProductManageVariantComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
94
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: ProductManageVariantComponent, isStandalone: true, selector: "rolatech-product-manage-variant", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { variant: "variantChange", upload: "upload" }, ngImport: i0, template: "<div class=\"flex items-center h-[72px] cursor-pointer px-2\" (click)=\"expanded = !expanded; $event.stopPropagation()\">\n <div>{{ variant().options | options }}</div>\n <div class=\"flex-1\"></div>\n <div class=\"px-3 dense-2\" (click)=\"$event.stopPropagation()\">\n <mat-form-field subscriptSizing=\"dynamic\" class=\"h-12\">\n <span matTextPrefix> \u00A5 &nbsp;</span>\n <input matInput type=\"text\" [value]=\"price()\" (change)=\"onPriceChange($event)\" rolatechDecimal />\n </mat-form-field>\n </div>\n <div class=\"px-3\">\n <mat-form-field class=\"dense-2\" (click)=\"$event.stopPropagation()\" subscriptSizing=\"dynamic\">\n <mat-select\n name=\"type\"\n [compareWith]=\"statusCompareFn\"\n (selectionChange)=\"onStatusChange($event)\"\n [(ngModel)]=\"variant().status\"\n >\n @for (key of enumKeys; track key) {\n <mat-option [value]=\"variantStatus[key]\">\n {{ variantStatus[key] }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"block w-20 text-right\">\n <button mat-icon-button aria-label=\"expand row\" (click)=\"expanded = !expanded; $event.stopPropagation()\">\n @if (expanded) {\n <mat-icon>keyboard_arrow_up</mat-icon>\n } @else {\n <mat-icon>keyboard_arrow_down</mat-icon>\n }\n </button>\n </div>\n</div>\n<div>\n <div class=\"flex flex-col gap-3 w-full overflow-hidden\" [@detailExpand]=\"expanded ? 'expanded' : 'collapsed'\">\n <div class=\"flex flex-col my-3 md:w-1/2\">\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\" class=\"h-12\">\n <span matTextPrefix> \u00A5 &nbsp;</span>\n <input matInput type=\"number\" [value]=\"price()\" rolatechDecimal />\n </mat-form-field>\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>\u5E93\u5B58</mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"variant().price\" />\n </mat-form-field>\n </div>\n <div class=\"flex flex-col items-start my-3 md:w-1/2\">\n <div class=\"flex flex-wrap\">\n @for (media of variant().media; track $index) {\n <div class=\"media-list-item\">\n <div class=\"inner-media\">\n @defer (on viewport()) {\n <img (click)=\"onMediaClick($index)\" [src]=\"media.url\" [alt]=\"media.alt\" />\n } @placeholder {\n <div class=\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\"></div>\n }\n @if (media.uploading) {\n <div class=\"absolute flex items-center justify-center p-4 w-full h-full bg-[--rt-20-percent-layer]\">\n <mat-spinner></mat-spinner>\n <!--\n <svg\n viewBox=\"0 0 24 24\"\n preserveAspectRatio=\"xMidYMid meet\"\n focusable=\"false\"\n class=\"style-scope tp-yt-iron-icon\"\n style=\"pointer-events: none; display: block; width: 100%; height: 100%\"\n >\n <g class=\"style-scope tp-yt-iron-icon\">\n <path\n d=\"M17,18v1H6V18ZM6.49,9l.71.71L11,5.91V16h1V5.91l3.8,3.81L16.51,9l-5-5Z\"\n class=\"style-scope tp-yt-iron-icon\"\n ></path>\n </g>\n </svg>\n <span>Uploading\u2026</span> -->\n </div>\n }\n </div>\n </div>\n }\n <div class=\"media-list-item\">\n <div class=\"inner-media\" (click)=\"fileInput.click()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"48px\" viewBox=\"0 -960 960 960\" width=\"48px\" fill=\"#5f6368\">\n <path d=\"M444-444H240v-72h204v-204h72v204h204v72H516v204h-72v-204Z\" />\n </svg>\n </div>\n </div>\n <input style=\"display: none\" type=\"file\" accept=\"image/*\" (change)=\"onUpload($event)\" #fileInput />\n </div>\n </div>\n </div>\n</div>\n<mat-divider></mat-divider>\n", styles: [".media-list-item{cursor:pointer;position:relative;padding:2px}.inner-media{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:4px;border:1px solid grey;position:relative;cursor:pointer;overflow:hidden}mat-form-field{width:160px}\n"], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: i2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i4.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i8.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "pipe", type: OptionsFormatPipe, name: "options" }, { kind: "ngmodule", type: MatTableModule }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "directive", type: DecimalDirective, selector: "[rolatechDecimal]" }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "ngmodule", type: MatSelectModule }], animations: [
95
- trigger('detailExpand', [
96
- state('collapsed', style({ height: '0px' })),
97
- state('expanded', style({ height: '*' })),
98
- transition('expanded <=> collapsed', animate('220ms cubic-bezier(0.25, 0.1, 0.25, 1)')),
99
- ]),
100
- ] }); }
101
- }
102
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProductManageVariantComponent, decorators: [{
103
- type: Component,
104
- args: [{ selector: 'rolatech-product-manage-variant', standalone: true, imports: [
105
- AngularCommonModule,
106
- AngularComponentsModule,
107
- OptionsFormatPipe,
108
- ProductManageContentComponent,
109
- ToolbarComponent,
110
- MatTableModule,
111
- MatIcon,
112
- MatFormFieldModule,
113
- ThumbnailComponent,
114
- ImageComponent,
115
- DecimalDirective,
116
- MatProgressBarModule,
117
- MatSelectModule,
118
- DecimalPipe,
119
- ], animations: [
120
- trigger('detailExpand', [
121
- state('collapsed', style({ height: '0px' })),
122
- state('expanded', style({ height: '*' })),
123
- transition('expanded <=> collapsed', animate('220ms cubic-bezier(0.25, 0.1, 0.25, 1)')),
124
- ]),
125
- ], template: "<div class=\"flex items-center h-[72px] cursor-pointer px-2\" (click)=\"expanded = !expanded; $event.stopPropagation()\">\n <div>{{ variant().options | options }}</div>\n <div class=\"flex-1\"></div>\n <div class=\"px-3 dense-2\" (click)=\"$event.stopPropagation()\">\n <mat-form-field subscriptSizing=\"dynamic\" class=\"h-12\">\n <span matTextPrefix> \u00A5 &nbsp;</span>\n <input matInput type=\"text\" [value]=\"price()\" (change)=\"onPriceChange($event)\" rolatechDecimal />\n </mat-form-field>\n </div>\n <div class=\"px-3\">\n <mat-form-field class=\"dense-2\" (click)=\"$event.stopPropagation()\" subscriptSizing=\"dynamic\">\n <mat-select\n name=\"type\"\n [compareWith]=\"statusCompareFn\"\n (selectionChange)=\"onStatusChange($event)\"\n [(ngModel)]=\"variant().status\"\n >\n @for (key of enumKeys; track key) {\n <mat-option [value]=\"variantStatus[key]\">\n {{ variantStatus[key] }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"block w-20 text-right\">\n <button mat-icon-button aria-label=\"expand row\" (click)=\"expanded = !expanded; $event.stopPropagation()\">\n @if (expanded) {\n <mat-icon>keyboard_arrow_up</mat-icon>\n } @else {\n <mat-icon>keyboard_arrow_down</mat-icon>\n }\n </button>\n </div>\n</div>\n<div>\n <div class=\"flex flex-col gap-3 w-full overflow-hidden\" [@detailExpand]=\"expanded ? 'expanded' : 'collapsed'\">\n <div class=\"flex flex-col my-3 md:w-1/2\">\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\" class=\"h-12\">\n <span matTextPrefix> \u00A5 &nbsp;</span>\n <input matInput type=\"number\" [value]=\"price()\" rolatechDecimal />\n </mat-form-field>\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>\u5E93\u5B58</mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"variant().price\" />\n </mat-form-field>\n </div>\n <div class=\"flex flex-col items-start my-3 md:w-1/2\">\n <div class=\"flex flex-wrap\">\n @for (media of variant().media; track $index) {\n <div class=\"media-list-item\">\n <div class=\"inner-media\">\n @defer (on viewport()) {\n <img (click)=\"onMediaClick($index)\" [src]=\"media.url\" [alt]=\"media.alt\" />\n } @placeholder {\n <div class=\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\"></div>\n }\n @if (media.uploading) {\n <div class=\"absolute flex items-center justify-center p-4 w-full h-full bg-[--rt-20-percent-layer]\">\n <mat-spinner></mat-spinner>\n <!--\n <svg\n viewBox=\"0 0 24 24\"\n preserveAspectRatio=\"xMidYMid meet\"\n focusable=\"false\"\n class=\"style-scope tp-yt-iron-icon\"\n style=\"pointer-events: none; display: block; width: 100%; height: 100%\"\n >\n <g class=\"style-scope tp-yt-iron-icon\">\n <path\n d=\"M17,18v1H6V18ZM6.49,9l.71.71L11,5.91V16h1V5.91l3.8,3.81L16.51,9l-5-5Z\"\n class=\"style-scope tp-yt-iron-icon\"\n ></path>\n </g>\n </svg>\n <span>Uploading\u2026</span> -->\n </div>\n }\n </div>\n </div>\n }\n <div class=\"media-list-item\">\n <div class=\"inner-media\" (click)=\"fileInput.click()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"48px\" viewBox=\"0 -960 960 960\" width=\"48px\" fill=\"#5f6368\">\n <path d=\"M444-444H240v-72h204v-204h72v204h204v72H516v204h-72v-204Z\" />\n </svg>\n </div>\n </div>\n <input style=\"display: none\" type=\"file\" accept=\"image/*\" (change)=\"onUpload($event)\" #fileInput />\n </div>\n </div>\n </div>\n</div>\n<mat-divider></mat-divider>\n", styles: [".media-list-item{cursor:pointer;position:relative;padding:2px}.inner-media{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:4px;border:1px solid grey;position:relative;cursor:pointer;overflow:hidden}mat-form-field{width:160px}\n"] }]
126
- }] });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1tYW5hZ2UtdmFyaWFudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItcHJvZHVjdC9zcmMvbGliL2NvbXBvbmVudHMvcHJvZHVjdC1tYW5hZ2UtdmFyaWFudC9wcm9kdWN0LW1hbmFnZS12YXJpYW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1wcm9kdWN0L3NyYy9saWIvY29tcG9uZW50cy9wcm9kdWN0LW1hbmFnZS12YXJpYW50L3Byb2R1Y3QtbWFuYWdlLXZhcmlhbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQVUsTUFBTSxFQUFTLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRixPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsY0FBYyxFQUNkLDJCQUEyQixHQUM1QixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG9GQUFvRixDQUFDO0FBQ25JLE9BQU8sRUFBRSxzQkFBc0IsRUFBa0IsTUFBTSxrQkFBa0IsQ0FBQztB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IGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgbW9kZWwsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IEFuZ3VsYXJDb21tb25Nb2R1bGUsIERlY2ltYWxEaXJlY3RpdmUgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21tb24nO1xuaW1wb3J0IHtcbiAgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUsXG4gIFRvb2xiYXJDb21wb25lbnQsXG4gIFRodW1ibmFpbENvbXBvbmVudCxcbiAgSW1hZ2VDb21wb25lbnQsXG4gIEltYWdlUHJldmlld0RpYWxvZ0NvbXBvbmVudCxcbn0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBPcHRpb25zRm9ybWF0UGlwZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQgeyBQcm9kdWN0TWFuYWdlQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4uLy4uL3BhZ2VzL3Byb2R1Y3QtbWFuYWdlL3Byb2R1Y3QtbWFuYWdlLWNvbnRlbnQvcHJvZHVjdC1tYW5hZ2UtY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZHVjdEludmVudG9yeVN0YXR1cywgUHJvZHVjdFZhcmlhbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IHRyaWdnZXIsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgYW5pbWF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdFNlbGVjdENoYW5nZSwgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IERlY2ltYWxQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvZHVjdC1tYW5hZ2UtdmFyaWFudCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBBbmd1bGFyQ29tbW9uTW9kdWxlLFxuICAgIEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlLFxuICAgIE9wdGlvbnNGb3JtYXRQaXBlLFxuICAgIFByb2R1Y3RNYW5hZ2VDb250ZW50Q29tcG9uZW50LFxuICAgIFRvb2xiYXJDb21wb25lbnQsXG4gICAgTWF0VGFibGVNb2R1bGUsXG4gICAgTWF0SWNvbixcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgVGh1bWJuYWlsQ29tcG9uZW50LFxuICAgIEltYWdlQ29tcG9uZW50LFxuICAgIERlY2ltYWxEaXJlY3RpdmUsXG4gICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIERlY2ltYWxQaXBlLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZHVjdC1tYW5hZ2UtdmFyaWFudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9kdWN0LW1hbmFnZS12YXJpYW50LmNvbXBvbmVudC5zY3NzJyxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ2RldGFpbEV4cGFuZCcsIFtcbiAgICAgIHN0YXRlKCdjb2xsYXBzZWQnLCBzdHlsZSh7IGhlaWdodDogJzBweCcgfSkpLFxuICAgICAgc3RhdGUoJ2V4cGFuZGVkJywgc3R5bGUoeyBoZWlnaHQ6ICcqJyB9KSksXG4gICAgICB0cmFuc2l0aW9uKCdleHBhbmRlZCA8PT4gY29sbGFwc2VkJywgYW5pbWF0ZSgnMjIwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuMSwgMC4yNSwgMSknKSksXG4gICAgXSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFByb2R1Y3RNYW5hZ2VWYXJpYW50Q29tcG9uZW50IHtcbiAgZGlhbG9nID0gaW5qZWN0KE1hdERpYWxvZyk7XG4gIHZhcmlhbnQgPSBtb2RlbC5yZXF1aXJlZDxQcm9kdWN0VmFyaWFudD4oKTtcbiAgcHJpY2UgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuICh0aGlzLnZhcmlhbnQoKS5wcmljZSAvIDEwMCkudG9GaXhlZCgyKTtcbiAgfSk7XG5cbiAgZXhwYW5kZWQgPSBmYWxzZTtcbiAgdXBsb2FkID0gb3V0cHV0PEZvcm1EYXRhPigpO1xuICB2YXJpYW50U3RhdHVzID0gUHJvZHVjdEludmVudG9yeVN0YXR1cztcbiAgZW51bUtleXMgPSBPYmplY3Qua2V5cyh0aGlzLnZhcmlhbnRTdGF0dXMpLmZpbHRlcigoa2V5KSA9PiBpc05hTihOdW1iZXIoa2V5KSkpO1xuXG4gIG9uVXBsb2FkKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBmaWxlID0gZXZlbnQudGFyZ2V0LmZpbGVzWzBdO1xuICAgIGlmIChmaWxlKSB7XG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUpO1xuICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xuICAgICAgICBjb25zdCBpbWc6IGFueSA9IG5ldyBJbWFnZSgpO1xuICAgICAgICBpbWcub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgIHRoaXMudmFyaWFudC51cGRhdGUoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGl0ZW0ubWVkaWEgPSBpdGVtLm1lZGlhID8gaXRlbS5tZWRpYSA6IFtdO1xuICAgICAgICAgICAgaXRlbS5tZWRpYS5wdXNoKHtcbiAgICAgICAgICAgICAgdXJsOiBpbWcuc3JjLFxuICAgICAgICAgICAgICBhbHQ6ICd1cGxvYWQgaW1hZ2UnLFxuICAgICAgICAgICAgICB1cGxvYWRpbmc6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICBpbWcuc3JjID0gcmVhZGVyLnJlc3VsdDtcbiAgICAgICAgdGhpcy51cGxvYWQuZW1pdChmb3JtRGF0YSk7XG4gICAgICB9O1xuICAgICAgcmVhZGVyLm9uZXJyb3IgPSAoZXJyb3IpID0+IHt9O1xuICAgIH1cbiAgfVxuICBvbk1lZGlhQ2xpY2soaTogbnVtYmVyKSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihJbWFnZVByZXZpZXdEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIG1heFdpZHRoOiAnODB2dycsXG4gICAgICBtYXhIZWlnaHQ6ICc4MHZoJyxcbiAgICAgIGhlaWdodDogJzgwJScsXG4gICAgICB3aWR0aDogJzgwJScsXG4gICAgICBwYW5lbENsYXNzOiAnZnVsbC1zY3JlZW4tbW9kYWwnLFxuICAgICAgZGF0YToge1xuICAgICAgICBtZWRpYTogdGhpcy52YXJpYW50KCkubWVkaWEsXG4gICAgICAgIHNlbGVjdGVkOiBpLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge30pO1xuICB9XG4gIHN0YXR1c0NvbXBhcmVGbih0MTogYW55LCB0MjogYW55KSB7XG4gICAgcmV0dXJuIHQxID09PSBQcm9kdWN0SW52ZW50b3J5U3RhdHVzW3QyXTtcbiAgfVxuICBvblN0YXR1c0NoYW5nZShldmVudDogTWF0U2VsZWN0Q2hhbmdlKSB7XG4gICAgdGhpcy52YXJpYW50LnVwZGF0ZSgoaXRlbSkgPT4ge1xuICAgICAgaXRlbS5zdGF0dXMgPSBPYmplY3Qua2V5cyh0aGlzLnZhcmlhbnRTdGF0dXMpLmZpbmQoKGtleSkgPT4gdGhpcy52YXJpYW50U3RhdHVzW2tleV0gPT09IGV2ZW50LnZhbHVlKSE7XG4gICAgICByZXR1cm4gaXRlbTtcbiAgICB9KTtcbiAgfVxuICBvblByaWNlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICB0aGlzLnZhcmlhbnQudXBkYXRlKChjdXJyZW50VmFyaWFudCkgPT4ge1xuICAgICAgY3VycmVudFZhcmlhbnQucHJpY2UgPSB2YWx1ZSAqIDEwMDtcbiAgICAgIHJldHVybiB7IC4uLmN1cnJlbnRWYXJpYW50IH07XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBoLVs3MnB4XSBjdXJzb3ItcG9pbnRlciBweC0yXCIgKGNsaWNrKT1cImV4cGFuZGVkID0gIWV4cGFuZGVkOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgPGRpdj57eyB2YXJpYW50KCkub3B0aW9ucyB8IG9wdGlvbnMgfX08L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZsZXgtMVwiPjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicHgtMyBkZW5zZS0yXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgIDxtYXQtZm9ybS1maWVsZCBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCIgY2xhc3M9XCJoLTEyXCI+XG4gICAgICA8c3BhbiBtYXRUZXh0UHJlZml4PiDCpSAmbmJzcDs8L3NwYW4+XG4gICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbdmFsdWVdPVwicHJpY2UoKVwiIChjaGFuZ2UpPVwib25QcmljZUNoYW5nZSgkZXZlbnQpXCIgcm9sYXRlY2hEZWNpbWFsIC8+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJweC0zXCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZGVuc2UtMlwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgICA8bWF0LXNlbGVjdFxuICAgICAgICBuYW1lPVwidHlwZVwiXG4gICAgICAgIFtjb21wYXJlV2l0aF09XCJzdGF0dXNDb21wYXJlRm5cIlxuICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU3RhdHVzQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cInZhcmlhbnQoKS5zdGF0dXNcIlxuICAgICAgPlxuICAgICAgICBAZm9yIChrZXkgb2YgZW51bUtleXM7IHRyYWNrIGtleSkge1xuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJ2YXJpYW50U3RhdHVzW2tleV1cIj5cbiAgICAgICAgICAgIHt7IHZhcmlhbnRTdGF0dXNba2V5XSB9fVxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgfVxuICAgICAgPC9tYXQtc2VsZWN0PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiYmxvY2sgdy0yMCB0ZXh0LXJpZ2h0XCI+XG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cImV4cGFuZCByb3dcIiAoY2xpY2spPVwiZXhwYW5kZWQgPSAhZXhwYW5kZWQ7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgQGlmIChleHBhbmRlZCkge1xuICAgICAgICA8bWF0LWljb24+a2V5Ym9hcmRfYXJyb3dfdXA8L21hdC1pY29uPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxtYXQtaWNvbj5rZXlib2FyZF9hcnJvd19kb3duPC9tYXQtaWNvbj5cbiAgICAgIH1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zIHctZnVsbCBvdmVyZmxvdy1oaWRkZW5cIiBbQGRldGFpbEV4cGFuZF09XCJleHBhbmRlZCA/ICdleHBhbmRlZCcgOiAnY29sbGFwc2VkJ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG15LTMgbWQ6dy0xLzJcIj5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIiBjbGFzcz1cImgtMTJcIj5cbiAgICAgICAgPHNwYW4gbWF0VGV4dFByZWZpeD4gwqUgJm5ic3A7PC9zcGFuPlxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cIm51bWJlclwiIFt2YWx1ZV09XCJwcmljZSgpXCIgcm9sYXRlY2hEZWNpbWFsIC8+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxuICAgICAgICA8bWF0LWxhYmVsPuW6k+WtmDwvbWF0LWxhYmVsPlxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInZhcmlhbnQoKS5wcmljZVwiIC8+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLXN0YXJ0IG15LTMgbWQ6dy0xLzJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcFwiPlxuICAgICAgICBAZm9yIChtZWRpYSBvZiB2YXJpYW50KCkubWVkaWE7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZWRpYS1saXN0LWl0ZW1cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbm5lci1tZWRpYVwiPlxuICAgICAgICAgICAgICBAZGVmZXIgKG9uIHZpZXdwb3J0KCkpIHtcbiAgICAgICAgICAgICAgICA8aW1nIChjbGljayk9XCJvbk1lZGlhQ2xpY2soJGluZGV4KVwiIFtzcmNdPVwibWVkaWEudXJsXCIgW2FsdF09XCJtZWRpYS5hbHRcIiAvPlxuICAgICAgICAgICAgICB9IEBwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJnLVstLXJ0LXJhaXNlZC1iYWNrZ3JvdW5kXSBoLWZ1bGwgdy1mdWxsIG9iamVjdC1jb3ZlciBhc3BlY3QtdmlkZW8gcm91bmRlZC1sZ1wiPjwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIEBpZiAobWVkaWEudXBsb2FkaW5nKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFic29sdXRlIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHAtNCB3LWZ1bGwgaC1mdWxsIGJnLVstLXJ0LTIwLXBlcmNlbnQtbGF5ZXJdXCI+XG4gICAgICAgICAgICAgICAgICA8bWF0LXNwaW5uZXI+PC9tYXQtc3Bpbm5lcj5cbiAgICAgICAgICAgICAgICAgIDwhLS1cbiAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW89XCJ4TWlkWU1pZCBtZWV0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN0eWxlLXNjb3BlIHRwLXl0LWlyb24taWNvblwiXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwicG9pbnRlci1ldmVudHM6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGcgY2xhc3M9XCJzdHlsZS1zY29wZSB0cC15dC1pcm9uLWljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNywxOHYxSDZWMThaTTYuNDksOWwuNzEuNzFMMTEsNS45MVYxNmgxVjUuOTFsMy44LDMuODFMMTYuNTEsOWwtNS01WlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN0eWxlLXNjb3BlIHRwLXl0LWlyb24taWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvcGF0aD5cbiAgICAgICAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj5VcGxvYWRpbmfigKY8L3NwYW4+IC0tPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVkaWEtbGlzdC1pdGVtXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlubmVyLW1lZGlhXCIgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCI+XG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBoZWlnaHQ9XCI0OHB4XCIgdmlld0JveD1cIjAgLTk2MCA5NjAgOTYwXCIgd2lkdGg9XCI0OHB4XCIgZmlsbD1cIiM1ZjYzNjhcIj5cbiAgICAgICAgICAgICAgPHBhdGggZD1cIk00NDQtNDQ0SDI0MHYtNzJoMjA0di0yMDRoNzJ2MjA0aDIwNHY3Mkg1MTZ2MjA0aC03MnYtMjA0WlwiIC8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxpbnB1dCBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIiB0eXBlPVwiZmlsZVwiIGFjY2VwdD1cImltYWdlLypcIiAoY2hhbmdlKT1cIm9uVXBsb2FkKCRldmVudClcIiAjZmlsZUlucHV0IC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuIl19
@@ -1,22 +0,0 @@
1
- import { Component, output } from '@angular/core';
2
- import { MatButtonModule } from '@angular/material/button';
3
- import * as i0 from "@angular/core";
4
- export class ProductManageOptionActionComponent {
5
- constructor() {
6
- this.delete = output();
7
- this.save = output();
8
- }
9
- onDelete(option) {
10
- this.delete.emit(option);
11
- }
12
- onSave(option) {
13
- this.save.emit(option);
14
- }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProductManageOptionActionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: ProductManageOptionActionComponent, isStandalone: true, selector: "rolatech-product-manage-option-action", outputs: { delete: "delete", save: "save" }, ngImport: i0, template: "<div>\n <!-- <button mat-button color=\"primary\" (click)=\"onDelete(item)\">\u5220\u9664</button>\n <button mat-button color=\"primary\" (click)=\"onSave(item)\">\u4FDD\u5B58</button> -->\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatButtonModule }] }); }
17
- }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProductManageOptionActionComponent, decorators: [{
19
- type: Component,
20
- args: [{ selector: 'rolatech-product-manage-option-action', standalone: true, imports: [MatButtonModule], template: "<div>\n <!-- <button mat-button color=\"primary\" (click)=\"onDelete(item)\">\u5220\u9664</button>\n <button mat-button color=\"primary\" (click)=\"onSave(item)\">\u4FDD\u5B58</button> -->\n</div>\n" }]
21
- }] });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1tYW5hZ2Utb3B0aW9uLWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItcHJvZHVjdC9zcmMvbGliL2NvbXBvbmVudHMvcHJvZHVjdC1tYW5nZS1vcHRpb24tYWN0aW9uL3Byb2R1Y3QtbWFuYWdlLW9wdGlvbi1hY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXByb2R1Y3Qvc3JjL2xpYi9jb21wb25lbnRzL3Byb2R1Y3QtbWFuZ2Utb3B0aW9uLWFjdGlvbi9wcm9kdWN0LW1hbmFnZS1vcHRpb24tYWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFVM0QsTUFBTSxPQUFPLGtDQUFrQztJQVAvQztRQVFFLFdBQU0sR0FBRyxNQUFNLEVBQWlCLENBQUM7UUFDakMsU0FBSSxHQUFHLE1BQU0sRUFBaUIsQ0FBQztLQVFoQztJQU5DLFFBQVEsQ0FBQyxNQUFxQjtRQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBQ0QsTUFBTSxDQUFDLE1BQXFCO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pCLENBQUM7OEdBVFUsa0NBQWtDO2tHQUFsQyxrQ0FBa0MsOElDWC9DLDBNQUlBLHlEREdZLGVBQWU7OzJGQUlkLGtDQUFrQztrQkFQOUMsU0FBUzsrQkFDRSx1Q0FBdUMsY0FDckMsSUFBSSxXQUNQLENBQUMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBQcm9kdWN0T3B0aW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb2R1Y3QtbWFuYWdlLW9wdGlvbi1hY3Rpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTWF0QnV0dG9uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2R1Y3QtbWFuYWdlLW9wdGlvbi1hY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvZHVjdC1tYW5hZ2Utb3B0aW9uLWFjdGlvbi5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFByb2R1Y3RNYW5hZ2VPcHRpb25BY3Rpb25Db21wb25lbnQge1xuICBkZWxldGUgPSBvdXRwdXQ8UHJvZHVjdE9wdGlvbj4oKTtcbiAgc2F2ZSA9IG91dHB1dDxQcm9kdWN0T3B0aW9uPigpO1xuXG4gIG9uRGVsZXRlKG9wdGlvbjogUHJvZHVjdE9wdGlvbikge1xuICAgIHRoaXMuZGVsZXRlLmVtaXQob3B0aW9uKTtcbiAgfVxuICBvblNhdmUob3B0aW9uOiBQcm9kdWN0T3B0aW9uKSB7XG4gICAgdGhpcy5zYXZlLmVtaXQob3B0aW9uKTtcbiAgfVxufVxuIiwiPGRpdj5cbiAgPCEtLSA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cIm9uRGVsZXRlKGl0ZW0pXCI+5Yig6ZmkPC9idXR0b24+XG4gIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwib25TYXZlKGl0ZW0pXCI+5L+d5a2YPC9idXR0b24+IC0tPlxuPC9kaXY+XG4iXX0=