@mj-biz-apps/orders-ng 0.0.1 → 5.2.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 (597) hide show
  1. package/LICENSE +183 -0
  2. package/README.md +34 -2
  3. package/dist/checkout-element/main.js +38080 -0
  4. package/dist/lib/checkout-widget/checkout-draft-line.d.ts +25 -0
  5. package/dist/lib/checkout-widget/checkout-draft-line.d.ts.map +1 -0
  6. package/dist/lib/checkout-widget/checkout-draft-line.js +46 -0
  7. package/dist/lib/checkout-widget/checkout-draft-line.js.map +1 -0
  8. package/dist/lib/checkout-widget/checkout-public-host.component.d.ts +80 -0
  9. package/dist/lib/checkout-widget/checkout-public-host.component.d.ts.map +1 -0
  10. package/dist/lib/checkout-widget/checkout-public-host.component.js +360 -0
  11. package/dist/lib/checkout-widget/checkout-public-host.component.js.map +1 -0
  12. package/dist/lib/checkout-widget/checkout-widget.component.d.ts +143 -0
  13. package/dist/lib/checkout-widget/checkout-widget.component.d.ts.map +1 -0
  14. package/dist/lib/checkout-widget/checkout-widget.component.js +873 -0
  15. package/dist/lib/checkout-widget/checkout-widget.component.js.map +1 -0
  16. package/dist/lib/custom/OrderHeader/line-extension-cache.d.ts +22 -0
  17. package/dist/lib/custom/OrderHeader/line-extension-cache.d.ts.map +1 -0
  18. package/dist/lib/custom/OrderHeader/line-extension-cache.js +46 -0
  19. package/dist/lib/custom/OrderHeader/line-extension-cache.js.map +1 -0
  20. package/dist/lib/custom/OrderHeader/line-extension-fields.d.ts +58 -0
  21. package/dist/lib/custom/OrderHeader/line-extension-fields.d.ts.map +1 -0
  22. package/dist/lib/custom/OrderHeader/line-extension-fields.js +137 -0
  23. package/dist/lib/custom/OrderHeader/line-extension-fields.js.map +1 -0
  24. package/dist/lib/custom/OrderHeader/order-header-form.component.d.ts +127 -0
  25. package/dist/lib/custom/OrderHeader/order-header-form.component.d.ts.map +1 -0
  26. package/dist/lib/custom/OrderHeader/order-header-form.component.js +1429 -0
  27. package/dist/lib/custom/OrderHeader/order-header-form.component.js.map +1 -0
  28. package/dist/lib/custom/OrderHeader/order-header-prefs.d.ts +18 -0
  29. package/dist/lib/custom/OrderHeader/order-header-prefs.d.ts.map +1 -0
  30. package/dist/lib/custom/OrderHeader/order-header-prefs.js +20 -0
  31. package/dist/lib/custom/OrderHeader/order-header-prefs.js.map +1 -0
  32. package/dist/lib/custom/OrderHeader/order-lines-editor.component.d.ts +72 -0
  33. package/dist/lib/custom/OrderHeader/order-lines-editor.component.d.ts.map +1 -0
  34. package/dist/lib/custom/OrderHeader/order-lines-editor.component.js +621 -0
  35. package/dist/lib/custom/OrderHeader/order-lines-editor.component.js.map +1 -0
  36. package/dist/lib/custom/PaymentHeader/payment-header-form.component.d.ts +135 -0
  37. package/dist/lib/custom/PaymentHeader/payment-header-form.component.d.ts.map +1 -0
  38. package/dist/lib/custom/PaymentHeader/payment-header-form.component.js +2169 -0
  39. package/dist/lib/custom/PaymentHeader/payment-header-form.component.js.map +1 -0
  40. package/dist/lib/custom/PriceList/price-list-form.component.d.ts +46 -0
  41. package/dist/lib/custom/PriceList/price-list-form.component.d.ts.map +1 -0
  42. package/dist/lib/custom/PriceList/price-list-form.component.js +363 -0
  43. package/dist/lib/custom/PriceList/price-list-form.component.js.map +1 -0
  44. package/dist/lib/custom/Product/product-form.component.d.ts +81 -0
  45. package/dist/lib/custom/Product/product-form.component.d.ts.map +1 -0
  46. package/dist/lib/custom/Product/product-form.component.js +665 -0
  47. package/dist/lib/custom/Product/product-form.component.js.map +1 -0
  48. package/dist/lib/custom/Product/widgets/product-accounting-widget.component.d.ts +16 -0
  49. package/dist/lib/custom/Product/widgets/product-accounting-widget.component.d.ts.map +1 -0
  50. package/dist/lib/custom/Product/widgets/product-accounting-widget.component.js +55 -0
  51. package/dist/lib/custom/Product/widgets/product-accounting-widget.component.js.map +1 -0
  52. package/dist/lib/custom/Product/widgets/product-fulfillment-widget.component.d.ts +16 -0
  53. package/dist/lib/custom/Product/widgets/product-fulfillment-widget.component.d.ts.map +1 -0
  54. package/dist/lib/custom/Product/widgets/product-fulfillment-widget.component.js +65 -0
  55. package/dist/lib/custom/Product/widgets/product-fulfillment-widget.component.js.map +1 -0
  56. package/dist/lib/custom/Product/widgets/product-pricing-widget.component.d.ts +103 -0
  57. package/dist/lib/custom/Product/widgets/product-pricing-widget.component.d.ts.map +1 -0
  58. package/dist/lib/custom/Product/widgets/product-pricing-widget.component.js +950 -0
  59. package/dist/lib/custom/Product/widgets/product-pricing-widget.component.js.map +1 -0
  60. package/dist/lib/custom/Product/widgets/product-promotions-widget.component.d.ts +21 -0
  61. package/dist/lib/custom/Product/widgets/product-promotions-widget.component.d.ts.map +1 -0
  62. package/dist/lib/custom/Product/widgets/product-promotions-widget.component.js +67 -0
  63. package/dist/lib/custom/Product/widgets/product-promotions-widget.component.js.map +1 -0
  64. package/dist/lib/custom/Product/widgets/product-subscription-widget.component.d.ts +18 -0
  65. package/dist/lib/custom/Product/widgets/product-subscription-widget.component.d.ts.map +1 -0
  66. package/dist/lib/custom/Product/widgets/product-subscription-widget.component.js +55 -0
  67. package/dist/lib/custom/Product/widgets/product-subscription-widget.component.js.map +1 -0
  68. package/dist/lib/custom/Promotion/promotion-form.component.d.ts +33 -0
  69. package/dist/lib/custom/Promotion/promotion-form.component.d.ts.map +1 -0
  70. package/dist/lib/custom/Promotion/promotion-form.component.js +350 -0
  71. package/dist/lib/custom/Promotion/promotion-form.component.js.map +1 -0
  72. package/dist/lib/custom/Subscription/subscription-form.component.d.ts +96 -0
  73. package/dist/lib/custom/Subscription/subscription-form.component.d.ts.map +1 -0
  74. package/dist/lib/custom/Subscription/subscription-form.component.js +885 -0
  75. package/dist/lib/custom/Subscription/subscription-form.component.js.map +1 -0
  76. package/dist/lib/custom/SubscriptionTerm/subscription-term-form.component.d.ts +60 -0
  77. package/dist/lib/custom/SubscriptionTerm/subscription-term-form.component.d.ts.map +1 -0
  78. package/dist/lib/custom/SubscriptionTerm/subscription-term-form.component.js +567 -0
  79. package/dist/lib/custom/SubscriptionTerm/subscription-term-form.component.js.map +1 -0
  80. package/dist/lib/custom/custom-forms.module.d.ts +29 -0
  81. package/dist/lib/custom/custom-forms.module.d.ts.map +1 -0
  82. package/dist/lib/custom/custom-forms.module.js +127 -0
  83. package/dist/lib/custom/custom-forms.module.js.map +1 -0
  84. package/dist/lib/custom/form-navigation-helper.d.ts +10 -0
  85. package/dist/lib/custom/form-navigation-helper.d.ts.map +1 -0
  86. package/dist/lib/custom/form-navigation-helper.js +51 -0
  87. package/dist/lib/custom/form-navigation-helper.js.map +1 -0
  88. package/dist/lib/data/entity-names.d.ts +84 -0
  89. package/dist/lib/data/entity-names.d.ts.map +1 -0
  90. package/dist/lib/data/entity-names.js +85 -0
  91. package/dist/lib/data/entity-names.js.map +1 -0
  92. package/dist/lib/data/orders-queries.d.ts +394 -0
  93. package/dist/lib/data/orders-queries.d.ts.map +1 -0
  94. package/dist/lib/data/orders-queries.js +897 -0
  95. package/dist/lib/data/orders-queries.js.map +1 -0
  96. package/dist/lib/form-panels/catalog-overviews.panels.d.ts +36 -0
  97. package/dist/lib/form-panels/catalog-overviews.panels.d.ts.map +1 -0
  98. package/dist/lib/form-panels/catalog-overviews.panels.js +443 -0
  99. package/dist/lib/form-panels/catalog-overviews.panels.js.map +1 -0
  100. package/dist/lib/form-panels/commercial-overviews.panels.d.ts +30 -0
  101. package/dist/lib/form-panels/commercial-overviews.panels.d.ts.map +1 -0
  102. package/dist/lib/form-panels/commercial-overviews.panels.js +315 -0
  103. package/dist/lib/form-panels/commercial-overviews.panels.js.map +1 -0
  104. package/dist/lib/form-panels/document-form.helpers.d.ts +38 -0
  105. package/dist/lib/form-panels/document-form.helpers.d.ts.map +1 -0
  106. package/dist/lib/form-panels/document-form.helpers.js +183 -0
  107. package/dist/lib/form-panels/document-form.helpers.js.map +1 -0
  108. package/dist/lib/form-panels/document-forms.module.d.ts +34 -0
  109. package/dist/lib/form-panels/document-forms.module.d.ts.map +1 -0
  110. package/dist/lib/form-panels/document-forms.module.js +183 -0
  111. package/dist/lib/form-panels/document-forms.module.js.map +1 -0
  112. package/dist/lib/form-panels/document-hero.component.d.ts +28 -0
  113. package/dist/lib/form-panels/document-hero.component.d.ts.map +1 -0
  114. package/dist/lib/form-panels/document-hero.component.js +167 -0
  115. package/dist/lib/form-panels/document-hero.component.js.map +1 -0
  116. package/dist/lib/form-panels/document-overviews.panels.d.ts +42 -0
  117. package/dist/lib/form-panels/document-overviews.panels.d.ts.map +1 -0
  118. package/dist/lib/form-panels/document-overviews.panels.js +457 -0
  119. package/dist/lib/form-panels/document-overviews.panels.js.map +1 -0
  120. package/dist/lib/form-panels/lookup-headers.panels.d.ts +68 -0
  121. package/dist/lib/form-panels/lookup-headers.panels.d.ts.map +1 -0
  122. package/dist/lib/form-panels/lookup-headers.panels.js +399 -0
  123. package/dist/lib/form-panels/lookup-headers.panels.js.map +1 -0
  124. package/dist/lib/form-panels/organization-header.panel.d.ts +15 -0
  125. package/dist/lib/form-panels/organization-header.panel.d.ts.map +1 -0
  126. package/dist/lib/form-panels/organization-header.panel.js +77 -0
  127. package/dist/lib/form-panels/organization-header.panel.js.map +1 -0
  128. package/dist/lib/form-panels/organization-orders-overview.panel.d.ts +13 -0
  129. package/dist/lib/form-panels/organization-orders-overview.panel.d.ts.map +1 -0
  130. package/dist/lib/form-panels/organization-orders-overview.panel.js +77 -0
  131. package/dist/lib/form-panels/organization-orders-overview.panel.js.map +1 -0
  132. package/dist/lib/form-panels/organization-orders.panel.d.ts +16 -0
  133. package/dist/lib/form-panels/organization-orders.panel.d.ts.map +1 -0
  134. package/dist/lib/form-panels/organization-orders.panel.js +88 -0
  135. package/dist/lib/form-panels/organization-orders.panel.js.map +1 -0
  136. package/dist/lib/form-panels/overview-cards.component.d.ts +30 -0
  137. package/dist/lib/form-panels/overview-cards.component.d.ts.map +1 -0
  138. package/dist/lib/form-panels/overview-cards.component.js +250 -0
  139. package/dist/lib/form-panels/overview-cards.component.js.map +1 -0
  140. package/dist/lib/form-panels/overview-load.d.ts +7 -0
  141. package/dist/lib/form-panels/overview-load.d.ts.map +1 -0
  142. package/dist/lib/form-panels/overview-load.js +31 -0
  143. package/dist/lib/form-panels/overview-load.js.map +1 -0
  144. package/dist/lib/form-panels/party-headers.module.d.ts +18 -0
  145. package/dist/lib/form-panels/party-headers.module.d.ts.map +1 -0
  146. package/dist/lib/form-panels/party-headers.module.js +63 -0
  147. package/dist/lib/form-panels/party-headers.module.js.map +1 -0
  148. package/dist/lib/form-panels/party-order-stats.d.ts +26 -0
  149. package/dist/lib/form-panels/party-order-stats.d.ts.map +1 -0
  150. package/dist/lib/form-panels/party-order-stats.js +149 -0
  151. package/dist/lib/form-panels/party-order-stats.js.map +1 -0
  152. package/dist/lib/form-panels/payment-header.panel.d.ts +21 -0
  153. package/dist/lib/form-panels/payment-header.panel.d.ts.map +1 -0
  154. package/dist/lib/form-panels/payment-header.panel.js +111 -0
  155. package/dist/lib/form-panels/payment-header.panel.js.map +1 -0
  156. package/dist/lib/form-panels/payment-journals.panel.d.ts +32 -0
  157. package/dist/lib/form-panels/payment-journals.panel.d.ts.map +1 -0
  158. package/dist/lib/form-panels/payment-journals.panel.js +332 -0
  159. package/dist/lib/form-panels/payment-journals.panel.js.map +1 -0
  160. package/dist/lib/form-panels/person-header.panel.d.ts +15 -0
  161. package/dist/lib/form-panels/person-header.panel.d.ts.map +1 -0
  162. package/dist/lib/form-panels/person-header.panel.js +77 -0
  163. package/dist/lib/form-panels/person-header.panel.js.map +1 -0
  164. package/dist/lib/form-panels/person-orders-overview.panel.d.ts +13 -0
  165. package/dist/lib/form-panels/person-orders-overview.panel.d.ts.map +1 -0
  166. package/dist/lib/form-panels/person-orders-overview.panel.js +77 -0
  167. package/dist/lib/form-panels/person-orders-overview.panel.js.map +1 -0
  168. package/dist/lib/form-panels/person-orders.panel.d.ts +17 -0
  169. package/dist/lib/form-panels/person-orders.panel.d.ts.map +1 -0
  170. package/dist/lib/form-panels/person-orders.panel.js +89 -0
  171. package/dist/lib/form-panels/person-orders.panel.js.map +1 -0
  172. package/dist/lib/form-panels/price-list-header.panel.d.ts +11 -0
  173. package/dist/lib/form-panels/price-list-header.panel.d.ts.map +1 -0
  174. package/dist/lib/form-panels/price-list-header.panel.js +76 -0
  175. package/dist/lib/form-panels/price-list-header.panel.js.map +1 -0
  176. package/dist/lib/form-panels/price-list-simulator.panel.d.ts +19 -0
  177. package/dist/lib/form-panels/price-list-simulator.panel.d.ts.map +1 -0
  178. package/dist/lib/form-panels/price-list-simulator.panel.js +125 -0
  179. package/dist/lib/form-panels/price-list-simulator.panel.js.map +1 -0
  180. package/dist/lib/form-panels/product-category-hierarchy.panel.d.ts +23 -0
  181. package/dist/lib/form-panels/product-category-hierarchy.panel.d.ts.map +1 -0
  182. package/dist/lib/form-panels/product-category-hierarchy.panel.js +118 -0
  183. package/dist/lib/form-panels/product-category-hierarchy.panel.js.map +1 -0
  184. package/dist/lib/form-panels/product-header.panel.d.ts +14 -0
  185. package/dist/lib/form-panels/product-header.panel.d.ts.map +1 -0
  186. package/dist/lib/form-panels/product-header.panel.js +105 -0
  187. package/dist/lib/form-panels/product-header.panel.js.map +1 -0
  188. package/dist/lib/form-panels/product-widget.panels.d.ts +24 -0
  189. package/dist/lib/form-panels/product-widget.panels.d.ts.map +1 -0
  190. package/dist/lib/form-panels/product-widget.panels.js +253 -0
  191. package/dist/lib/form-panels/product-widget.panels.js.map +1 -0
  192. package/dist/lib/form-panels/promotion-header.panel.d.ts +14 -0
  193. package/dist/lib/form-panels/promotion-header.panel.d.ts.map +1 -0
  194. package/dist/lib/form-panels/promotion-header.panel.js +112 -0
  195. package/dist/lib/form-panels/promotion-header.panel.js.map +1 -0
  196. package/dist/lib/form-panels/subscription-header.panel.d.ts +17 -0
  197. package/dist/lib/form-panels/subscription-header.panel.d.ts.map +1 -0
  198. package/dist/lib/form-panels/subscription-header.panel.js +127 -0
  199. package/dist/lib/form-panels/subscription-header.panel.js.map +1 -0
  200. package/dist/lib/form-panels/subscription-revrec.panel.d.ts +32 -0
  201. package/dist/lib/form-panels/subscription-revrec.panel.d.ts.map +1 -0
  202. package/dist/lib/form-panels/subscription-revrec.panel.js +184 -0
  203. package/dist/lib/form-panels/subscription-revrec.panel.js.map +1 -0
  204. package/dist/lib/form-panels/subscription-term-header.panel.d.ts +13 -0
  205. package/dist/lib/form-panels/subscription-term-header.panel.d.ts.map +1 -0
  206. package/dist/lib/form-panels/subscription-term-header.panel.js +113 -0
  207. package/dist/lib/form-panels/subscription-term-header.panel.js.map +1 -0
  208. package/dist/lib/form-panels/subscription-term-revrec.panel.d.ts +23 -0
  209. package/dist/lib/form-panels/subscription-term-revrec.panel.d.ts.map +1 -0
  210. package/dist/lib/form-panels/subscription-term-revrec.panel.js +144 -0
  211. package/dist/lib/form-panels/subscription-term-revrec.panel.js.map +1 -0
  212. package/dist/lib/form-panels/subscription-terms.panel.d.ts +25 -0
  213. package/dist/lib/form-panels/subscription-terms.panel.d.ts.map +1 -0
  214. package/dist/lib/form-panels/subscription-terms.panel.js +173 -0
  215. package/dist/lib/form-panels/subscription-terms.panel.js.map +1 -0
  216. package/dist/lib/generated/Entities/mjBizAppsOrdersChargeType/mjbizappsorderschargetype.form.component.d.ts +10 -0
  217. package/dist/lib/generated/Entities/mjBizAppsOrdersChargeType/mjbizappsorderschargetype.form.component.d.ts.map +1 -0
  218. package/dist/lib/generated/Entities/mjBizAppsOrdersChargeType/mjbizappsorderschargetype.form.component.js +102 -0
  219. package/dist/lib/generated/Entities/mjBizAppsOrdersChargeType/mjbizappsorderschargetype.form.component.js.map +1 -0
  220. package/dist/lib/generated/Entities/mjBizAppsOrdersCheckoutSession/mjbizappsorderscheckoutsession.form.component.d.ts +10 -0
  221. package/dist/lib/generated/Entities/mjBizAppsOrdersCheckoutSession/mjbizappsorderscheckoutsession.form.component.d.ts.map +1 -0
  222. package/dist/lib/generated/Entities/mjBizAppsOrdersCheckoutSession/mjbizappsorderscheckoutsession.form.component.js +103 -0
  223. package/dist/lib/generated/Entities/mjBizAppsOrdersCheckoutSession/mjbizappsorderscheckoutsession.form.component.js.map +1 -0
  224. package/dist/lib/generated/Entities/mjBizAppsOrdersCheckoutWidget/mjbizappsorderscheckoutwidget.form.component.d.ts +10 -0
  225. package/dist/lib/generated/Entities/mjBizAppsOrdersCheckoutWidget/mjbizappsorderscheckoutwidget.form.component.d.ts.map +1 -0
  226. package/dist/lib/generated/Entities/mjBizAppsOrdersCheckoutWidget/mjbizappsorderscheckoutwidget.form.component.js +136 -0
  227. package/dist/lib/generated/Entities/mjBizAppsOrdersCheckoutWidget/mjbizappsorderscheckoutwidget.form.component.js.map +1 -0
  228. package/dist/lib/generated/Entities/mjBizAppsOrdersCheckoutWidgetDistribution/mjbizappsorderscheckoutwidgetdistribution.form.component.d.ts +10 -0
  229. package/dist/lib/generated/Entities/mjBizAppsOrdersCheckoutWidgetDistribution/mjbizappsorderscheckoutwidgetdistribution.form.component.d.ts.map +1 -0
  230. package/dist/lib/generated/Entities/mjBizAppsOrdersCheckoutWidgetDistribution/mjbizappsorderscheckoutwidgetdistribution.form.component.js +106 -0
  231. package/dist/lib/generated/Entities/mjBizAppsOrdersCheckoutWidgetDistribution/mjbizappsorderscheckoutwidgetdistribution.form.component.js.map +1 -0
  232. package/dist/lib/generated/Entities/mjBizAppsOrdersCustomerPaymentMethod/mjbizappsorderscustomerpaymentmethod.form.component.d.ts +10 -0
  233. package/dist/lib/generated/Entities/mjBizAppsOrdersCustomerPaymentMethod/mjbizappsorderscustomerpaymentmethod.form.component.d.ts.map +1 -0
  234. package/dist/lib/generated/Entities/mjBizAppsOrdersCustomerPaymentMethod/mjbizappsorderscustomerpaymentmethod.form.component.js +98 -0
  235. package/dist/lib/generated/Entities/mjBizAppsOrdersCustomerPaymentMethod/mjbizappsorderscustomerpaymentmethod.form.component.js.map +1 -0
  236. package/dist/lib/generated/Entities/mjBizAppsOrdersCustomerPaymentTerms/mjbizappsorderscustomerpaymentterms.form.component.d.ts +10 -0
  237. package/dist/lib/generated/Entities/mjBizAppsOrdersCustomerPaymentTerms/mjbizappsorderscustomerpaymentterms.form.component.d.ts.map +1 -0
  238. package/dist/lib/generated/Entities/mjBizAppsOrdersCustomerPaymentTerms/mjbizappsorderscustomerpaymentterms.form.component.js +89 -0
  239. package/dist/lib/generated/Entities/mjBizAppsOrdersCustomerPaymentTerms/mjbizappsorderscustomerpaymentterms.form.component.js.map +1 -0
  240. package/dist/lib/generated/Entities/mjBizAppsOrdersCustomerTaxExemption/mjbizappsorderscustomertaxexemption.form.component.d.ts +10 -0
  241. package/dist/lib/generated/Entities/mjBizAppsOrdersCustomerTaxExemption/mjbizappsorderscustomertaxexemption.form.component.d.ts.map +1 -0
  242. package/dist/lib/generated/Entities/mjBizAppsOrdersCustomerTaxExemption/mjbizappsorderscustomertaxexemption.form.component.js +103 -0
  243. package/dist/lib/generated/Entities/mjBizAppsOrdersCustomerTaxExemption/mjbizappsorderscustomertaxexemption.form.component.js.map +1 -0
  244. package/dist/lib/generated/Entities/mjBizAppsOrdersEntitlementGrant/mjbizappsordersentitlementgrant.form.component.d.ts +10 -0
  245. package/dist/lib/generated/Entities/mjBizAppsOrdersEntitlementGrant/mjbizappsordersentitlementgrant.form.component.d.ts.map +1 -0
  246. package/dist/lib/generated/Entities/mjBizAppsOrdersEntitlementGrant/mjbizappsordersentitlementgrant.form.component.js +107 -0
  247. package/dist/lib/generated/Entities/mjBizAppsOrdersEntitlementGrant/mjbizappsordersentitlementgrant.form.component.js.map +1 -0
  248. package/dist/lib/generated/Entities/mjBizAppsOrdersEventOrderLine/mjbizappsorderseventorderline.form.component.d.ts +10 -0
  249. package/dist/lib/generated/Entities/mjBizAppsOrdersEventOrderLine/mjbizappsorderseventorderline.form.component.d.ts.map +1 -0
  250. package/dist/lib/generated/Entities/mjBizAppsOrdersEventOrderLine/mjbizappsorderseventorderline.form.component.js +139 -0
  251. package/dist/lib/generated/Entities/mjBizAppsOrdersEventOrderLine/mjbizappsorderseventorderline.form.component.js.map +1 -0
  252. package/dist/lib/generated/Entities/mjBizAppsOrdersEventProduct/mjbizappsorderseventproduct.form.component.d.ts +10 -0
  253. package/dist/lib/generated/Entities/mjBizAppsOrdersEventProduct/mjbizappsorderseventproduct.form.component.d.ts.map +1 -0
  254. package/dist/lib/generated/Entities/mjBizAppsOrdersEventProduct/mjbizappsorderseventproduct.form.component.js +129 -0
  255. package/dist/lib/generated/Entities/mjBizAppsOrdersEventProduct/mjbizappsorderseventproduct.form.component.js.map +1 -0
  256. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderAdjustment/mjbizappsordersorderadjustment.form.component.d.ts +10 -0
  257. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderAdjustment/mjbizappsordersorderadjustment.form.component.d.ts.map +1 -0
  258. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderAdjustment/mjbizappsordersorderadjustment.form.component.js +122 -0
  259. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderAdjustment/mjbizappsordersorderadjustment.form.component.js.map +1 -0
  260. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderAdjustmentAllocation/mjbizappsordersorderadjustmentallocation.form.component.d.ts +10 -0
  261. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderAdjustmentAllocation/mjbizappsordersorderadjustmentallocation.form.component.d.ts.map +1 -0
  262. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderAdjustmentAllocation/mjbizappsordersorderadjustmentallocation.form.component.js +67 -0
  263. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderAdjustmentAllocation/mjbizappsordersorderadjustmentallocation.form.component.js.map +1 -0
  264. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderCharge/mjbizappsordersordercharge.form.component.d.ts +10 -0
  265. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderCharge/mjbizappsordersordercharge.form.component.d.ts.map +1 -0
  266. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderCharge/mjbizappsordersordercharge.form.component.js +132 -0
  267. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderCharge/mjbizappsordersordercharge.form.component.js.map +1 -0
  268. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderChargeAllocation/mjbizappsordersorderchargeallocation.form.component.d.ts +10 -0
  269. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderChargeAllocation/mjbizappsordersorderchargeallocation.form.component.d.ts.map +1 -0
  270. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderChargeAllocation/mjbizappsordersorderchargeallocation.form.component.js +67 -0
  271. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderChargeAllocation/mjbizappsordersorderchargeallocation.form.component.js.map +1 -0
  272. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderCompanyPolicy/mjbizappsordersordercompanypolicy.form.component.d.ts +10 -0
  273. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderCompanyPolicy/mjbizappsordersordercompanypolicy.form.component.d.ts.map +1 -0
  274. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderCompanyPolicy/mjbizappsordersordercompanypolicy.form.component.js +85 -0
  275. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderCompanyPolicy/mjbizappsordersordercompanypolicy.form.component.js.map +1 -0
  276. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderHeader/mjbizappsordersorderheader.form.component.d.ts +10 -0
  277. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderHeader/mjbizappsordersorderheader.form.component.d.ts.map +1 -0
  278. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderHeader/mjbizappsordersorderheader.form.component.js +342 -0
  279. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderHeader/mjbizappsordersorderheader.form.component.js.map +1 -0
  280. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderLine/mjbizappsordersorderline.form.component.d.ts +10 -0
  281. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderLine/mjbizappsordersorderline.form.component.d.ts.map +1 -0
  282. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderLine/mjbizappsordersorderline.form.component.js +378 -0
  283. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderLine/mjbizappsordersorderline.form.component.js.map +1 -0
  284. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderLineDimension/mjbizappsordersorderlinedimension.form.component.d.ts +10 -0
  285. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderLineDimension/mjbizappsordersorderlinedimension.form.component.d.ts.map +1 -0
  286. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderLineDimension/mjbizappsordersorderlinedimension.form.component.js +71 -0
  287. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderLineDimension/mjbizappsordersorderlinedimension.form.component.js.map +1 -0
  288. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderLinePriceComponent/mjbizappsordersorderlinepricecomponent.form.component.d.ts +10 -0
  289. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderLinePriceComponent/mjbizappsordersorderlinepricecomponent.form.component.d.ts.map +1 -0
  290. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderLinePriceComponent/mjbizappsordersorderlinepricecomponent.form.component.js +89 -0
  291. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderLinePriceComponent/mjbizappsordersorderlinepricecomponent.form.component.js.map +1 -0
  292. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderSequence/mjbizappsordersordersequence.form.component.d.ts +10 -0
  293. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderSequence/mjbizappsordersordersequence.form.component.d.ts.map +1 -0
  294. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderSequence/mjbizappsordersordersequence.form.component.js +63 -0
  295. package/dist/lib/generated/Entities/mjBizAppsOrdersOrderSequence/mjbizappsordersordersequence.form.component.js.map +1 -0
  296. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentDetail/mjbizappsorderspaymentdetail.form.component.d.ts +10 -0
  297. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentDetail/mjbizappsorderspaymentdetail.form.component.d.ts.map +1 -0
  298. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentDetail/mjbizappsorderspaymentdetail.form.component.js +180 -0
  299. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentDetail/mjbizappsorderspaymentdetail.form.component.js.map +1 -0
  300. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentHeader/mjbizappsorderspaymentheader.form.component.d.ts +10 -0
  301. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentHeader/mjbizappsorderspaymentheader.form.component.d.ts.map +1 -0
  302. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentHeader/mjbizappsorderspaymentheader.form.component.js +206 -0
  303. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentHeader/mjbizappsorderspaymentheader.form.component.js.map +1 -0
  304. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentIntent/mjbizappsorderspaymentintent.form.component.d.ts +10 -0
  305. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentIntent/mjbizappsorderspaymentintent.form.component.d.ts.map +1 -0
  306. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentIntent/mjbizappsorderspaymentintent.form.component.js +128 -0
  307. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentIntent/mjbizappsorderspaymentintent.form.component.js.map +1 -0
  308. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentLine/mjbizappsorderspaymentline.form.component.d.ts +10 -0
  309. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentLine/mjbizappsorderspaymentline.form.component.d.ts.map +1 -0
  310. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentLine/mjbizappsorderspaymentline.form.component.js +87 -0
  311. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentLine/mjbizappsorderspaymentline.form.component.js.map +1 -0
  312. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentProvider/mjbizappsorderspaymentprovider.form.component.d.ts +10 -0
  313. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentProvider/mjbizappsorderspaymentprovider.form.component.d.ts.map +1 -0
  314. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentProvider/mjbizappsorderspaymentprovider.form.component.js +158 -0
  315. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentProvider/mjbizappsorderspaymentprovider.form.component.js.map +1 -0
  316. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentProviderType/mjbizappsorderspaymentprovidertype.form.component.d.ts +10 -0
  317. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentProviderType/mjbizappsorderspaymentprovidertype.form.component.d.ts.map +1 -0
  318. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentProviderType/mjbizappsorderspaymentprovidertype.form.component.js +110 -0
  319. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentProviderType/mjbizappsorderspaymentprovidertype.form.component.js.map +1 -0
  320. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentSequence/mjbizappsorderspaymentsequence.form.component.d.ts +10 -0
  321. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentSequence/mjbizappsorderspaymentsequence.form.component.d.ts.map +1 -0
  322. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentSequence/mjbizappsorderspaymentsequence.form.component.js +63 -0
  323. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentSequence/mjbizappsorderspaymentsequence.form.component.js.map +1 -0
  324. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentTermsType/mjbizappsorderspaymenttermstype.form.component.d.ts +10 -0
  325. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentTermsType/mjbizappsorderspaymenttermstype.form.component.d.ts.map +1 -0
  326. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentTermsType/mjbizappsorderspaymenttermstype.form.component.js +108 -0
  327. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentTermsType/mjbizappsorderspaymenttermstype.form.component.js.map +1 -0
  328. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentType/mjbizappsorderspaymenttype.form.component.d.ts +10 -0
  329. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentType/mjbizappsorderspaymenttype.form.component.d.ts.map +1 -0
  330. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentType/mjbizappsorderspaymenttype.form.component.js +144 -0
  331. package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentType/mjbizappsorderspaymenttype.form.component.js.map +1 -0
  332. package/dist/lib/generated/Entities/mjBizAppsOrdersPriceList/mjbizappsorderspricelist.form.component.d.ts +10 -0
  333. package/dist/lib/generated/Entities/mjBizAppsOrdersPriceList/mjbizappsorderspricelist.form.component.d.ts.map +1 -0
  334. package/dist/lib/generated/Entities/mjBizAppsOrdersPriceList/mjbizappsorderspricelist.form.component.js +134 -0
  335. package/dist/lib/generated/Entities/mjBizAppsOrdersPriceList/mjbizappsorderspricelist.form.component.js.map +1 -0
  336. package/dist/lib/generated/Entities/mjBizAppsOrdersPriceListAssignment/mjbizappsorderspricelistassignment.form.component.d.ts +10 -0
  337. package/dist/lib/generated/Entities/mjBizAppsOrdersPriceListAssignment/mjbizappsorderspricelistassignment.form.component.d.ts.map +1 -0
  338. package/dist/lib/generated/Entities/mjBizAppsOrdersPriceListAssignment/mjbizappsorderspricelistassignment.form.component.js +89 -0
  339. package/dist/lib/generated/Entities/mjBizAppsOrdersPriceListAssignment/mjbizappsorderspricelistassignment.form.component.js.map +1 -0
  340. package/dist/lib/generated/Entities/mjBizAppsOrdersPriceTier/mjbizappsorderspricetier.form.component.d.ts +10 -0
  341. package/dist/lib/generated/Entities/mjBizAppsOrdersPriceTier/mjbizappsorderspricetier.form.component.d.ts.map +1 -0
  342. package/dist/lib/generated/Entities/mjBizAppsOrdersPriceTier/mjbizappsorderspricetier.form.component.js +71 -0
  343. package/dist/lib/generated/Entities/mjBizAppsOrdersPriceTier/mjbizappsorderspricetier.form.component.js.map +1 -0
  344. package/dist/lib/generated/Entities/mjBizAppsOrdersProduct/mjbizappsordersproduct.form.component.d.ts +10 -0
  345. package/dist/lib/generated/Entities/mjBizAppsOrdersProduct/mjbizappsordersproduct.form.component.d.ts.map +1 -0
  346. package/dist/lib/generated/Entities/mjBizAppsOrdersProduct/mjbizappsordersproduct.form.component.js +294 -0
  347. package/dist/lib/generated/Entities/mjBizAppsOrdersProduct/mjbizappsordersproduct.form.component.js.map +1 -0
  348. package/dist/lib/generated/Entities/mjBizAppsOrdersProductBundleItem/mjbizappsordersproductbundleitem.form.component.d.ts +10 -0
  349. package/dist/lib/generated/Entities/mjBizAppsOrdersProductBundleItem/mjbizappsordersproductbundleitem.form.component.d.ts.map +1 -0
  350. package/dist/lib/generated/Entities/mjBizAppsOrdersProductBundleItem/mjbizappsordersproductbundleitem.form.component.js +83 -0
  351. package/dist/lib/generated/Entities/mjBizAppsOrdersProductBundleItem/mjbizappsordersproductbundleitem.form.component.js.map +1 -0
  352. package/dist/lib/generated/Entities/mjBizAppsOrdersProductCategory/mjbizappsordersproductcategory.form.component.d.ts +10 -0
  353. package/dist/lib/generated/Entities/mjBizAppsOrdersProductCategory/mjbizappsordersproductcategory.form.component.d.ts.map +1 -0
  354. package/dist/lib/generated/Entities/mjBizAppsOrdersProductCategory/mjbizappsordersproductcategory.form.component.js +168 -0
  355. package/dist/lib/generated/Entities/mjBizAppsOrdersProductCategory/mjbizappsordersproductcategory.form.component.js.map +1 -0
  356. package/dist/lib/generated/Entities/mjBizAppsOrdersProductEntitlement/mjbizappsordersproductentitlement.form.component.d.ts +10 -0
  357. package/dist/lib/generated/Entities/mjBizAppsOrdersProductEntitlement/mjbizappsordersproductentitlement.form.component.d.ts.map +1 -0
  358. package/dist/lib/generated/Entities/mjBizAppsOrdersProductEntitlement/mjbizappsordersproductentitlement.form.component.js +114 -0
  359. package/dist/lib/generated/Entities/mjBizAppsOrdersProductEntitlement/mjbizappsordersproductentitlement.form.component.js.map +1 -0
  360. package/dist/lib/generated/Entities/mjBizAppsOrdersProductPrice/mjbizappsordersproductprice.form.component.d.ts +10 -0
  361. package/dist/lib/generated/Entities/mjBizAppsOrdersProductPrice/mjbizappsordersproductprice.form.component.d.ts.map +1 -0
  362. package/dist/lib/generated/Entities/mjBizAppsOrdersProductPrice/mjbizappsordersproductprice.form.component.js +162 -0
  363. package/dist/lib/generated/Entities/mjBizAppsOrdersProductPrice/mjbizappsordersproductprice.form.component.js.map +1 -0
  364. package/dist/lib/generated/Entities/mjBizAppsOrdersProductType/mjbizappsordersproducttype.form.component.d.ts +10 -0
  365. package/dist/lib/generated/Entities/mjBizAppsOrdersProductType/mjbizappsordersproducttype.form.component.d.ts.map +1 -0
  366. package/dist/lib/generated/Entities/mjBizAppsOrdersProductType/mjbizappsordersproducttype.form.component.js +136 -0
  367. package/dist/lib/generated/Entities/mjBizAppsOrdersProductType/mjbizappsordersproducttype.form.component.js.map +1 -0
  368. package/dist/lib/generated/Entities/mjBizAppsOrdersPromotion/mjbizappsorderspromotion.form.component.d.ts +10 -0
  369. package/dist/lib/generated/Entities/mjBizAppsOrdersPromotion/mjbizappsorderspromotion.form.component.d.ts.map +1 -0
  370. package/dist/lib/generated/Entities/mjBizAppsOrdersPromotion/mjbizappsorderspromotion.form.component.js +182 -0
  371. package/dist/lib/generated/Entities/mjBizAppsOrdersPromotion/mjbizappsorderspromotion.form.component.js.map +1 -0
  372. package/dist/lib/generated/Entities/mjBizAppsOrdersPromotionCode/mjbizappsorderspromotioncode.form.component.d.ts +10 -0
  373. package/dist/lib/generated/Entities/mjBizAppsOrdersPromotionCode/mjbizappsorderspromotioncode.form.component.d.ts.map +1 -0
  374. package/dist/lib/generated/Entities/mjBizAppsOrdersPromotionCode/mjbizappsorderspromotioncode.form.component.js +108 -0
  375. package/dist/lib/generated/Entities/mjBizAppsOrdersPromotionCode/mjbizappsorderspromotioncode.form.component.js.map +1 -0
  376. package/dist/lib/generated/Entities/mjBizAppsOrdersPromotionTarget/mjbizappsorderspromotiontarget.form.component.d.ts +10 -0
  377. package/dist/lib/generated/Entities/mjBizAppsOrdersPromotionTarget/mjbizappsorderspromotiontarget.form.component.d.ts.map +1 -0
  378. package/dist/lib/generated/Entities/mjBizAppsOrdersPromotionTarget/mjbizappsorderspromotiontarget.form.component.js +75 -0
  379. package/dist/lib/generated/Entities/mjBizAppsOrdersPromotionTarget/mjbizappsorderspromotiontarget.form.component.js.map +1 -0
  380. package/dist/lib/generated/Entities/mjBizAppsOrdersPromotionType/mjbizappsorderspromotiontype.form.component.d.ts +10 -0
  381. package/dist/lib/generated/Entities/mjBizAppsOrdersPromotionType/mjbizappsorderspromotiontype.form.component.d.ts.map +1 -0
  382. package/dist/lib/generated/Entities/mjBizAppsOrdersPromotionType/mjbizappsorderspromotiontype.form.component.js +90 -0
  383. package/dist/lib/generated/Entities/mjBizAppsOrdersPromotionType/mjbizappsorderspromotiontype.form.component.js.map +1 -0
  384. package/dist/lib/generated/Entities/mjBizAppsOrdersRevenueRecognitionType/mjbizappsordersrevenuerecognitiontype.form.component.d.ts +10 -0
  385. package/dist/lib/generated/Entities/mjBizAppsOrdersRevenueRecognitionType/mjbizappsordersrevenuerecognitiontype.form.component.d.ts.map +1 -0
  386. package/dist/lib/generated/Entities/mjBizAppsOrdersRevenueRecognitionType/mjbizappsordersrevenuerecognitiontype.form.component.js +138 -0
  387. package/dist/lib/generated/Entities/mjBizAppsOrdersRevenueRecognitionType/mjbizappsordersrevenuerecognitiontype.form.component.js.map +1 -0
  388. package/dist/lib/generated/Entities/mjBizAppsOrdersSalesAuthority/mjbizappsorderssalesauthority.form.component.d.ts +10 -0
  389. package/dist/lib/generated/Entities/mjBizAppsOrdersSalesAuthority/mjbizappsorderssalesauthority.form.component.d.ts.map +1 -0
  390. package/dist/lib/generated/Entities/mjBizAppsOrdersSalesAuthority/mjbizappsorderssalesauthority.form.component.js +98 -0
  391. package/dist/lib/generated/Entities/mjBizAppsOrdersSalesAuthority/mjbizappsorderssalesauthority.form.component.js.map +1 -0
  392. package/dist/lib/generated/Entities/mjBizAppsOrdersSalesRule/mjbizappsorderssalesrule.form.component.d.ts +10 -0
  393. package/dist/lib/generated/Entities/mjBizAppsOrdersSalesRule/mjbizappsorderssalesrule.form.component.d.ts.map +1 -0
  394. package/dist/lib/generated/Entities/mjBizAppsOrdersSalesRule/mjbizappsorderssalesrule.form.component.js +87 -0
  395. package/dist/lib/generated/Entities/mjBizAppsOrdersSalesRule/mjbizappsorderssalesrule.form.component.js.map +1 -0
  396. package/dist/lib/generated/Entities/mjBizAppsOrdersStoredValueAccount/mjbizappsordersstoredvalueaccount.form.component.d.ts +10 -0
  397. package/dist/lib/generated/Entities/mjBizAppsOrdersStoredValueAccount/mjbizappsordersstoredvalueaccount.form.component.d.ts.map +1 -0
  398. package/dist/lib/generated/Entities/mjBizAppsOrdersStoredValueAccount/mjbizappsordersstoredvalueaccount.form.component.js +134 -0
  399. package/dist/lib/generated/Entities/mjBizAppsOrdersStoredValueAccount/mjbizappsordersstoredvalueaccount.form.component.js.map +1 -0
  400. package/dist/lib/generated/Entities/mjBizAppsOrdersStoredValueTransaction/mjbizappsordersstoredvaluetransaction.form.component.d.ts +10 -0
  401. package/dist/lib/generated/Entities/mjBizAppsOrdersStoredValueTransaction/mjbizappsordersstoredvaluetransaction.form.component.d.ts.map +1 -0
  402. package/dist/lib/generated/Entities/mjBizAppsOrdersStoredValueTransaction/mjbizappsordersstoredvaluetransaction.form.component.js +87 -0
  403. package/dist/lib/generated/Entities/mjBizAppsOrdersStoredValueTransaction/mjbizappsordersstoredvaluetransaction.form.component.js.map +1 -0
  404. package/dist/lib/generated/Entities/mjBizAppsOrdersSubscription/mjbizappsorderssubscription.form.component.d.ts +10 -0
  405. package/dist/lib/generated/Entities/mjBizAppsOrdersSubscription/mjbizappsorderssubscription.form.component.d.ts.map +1 -0
  406. package/dist/lib/generated/Entities/mjBizAppsOrdersSubscription/mjbizappsorderssubscription.form.component.js +234 -0
  407. package/dist/lib/generated/Entities/mjBizAppsOrdersSubscription/mjbizappsorderssubscription.form.component.js.map +1 -0
  408. package/dist/lib/generated/Entities/mjBizAppsOrdersSubscriptionEvent/mjbizappsorderssubscriptionevent.form.component.d.ts +10 -0
  409. package/dist/lib/generated/Entities/mjBizAppsOrdersSubscriptionEvent/mjbizappsorderssubscriptionevent.form.component.d.ts.map +1 -0
  410. package/dist/lib/generated/Entities/mjBizAppsOrdersSubscriptionEvent/mjbizappsorderssubscriptionevent.form.component.js +87 -0
  411. package/dist/lib/generated/Entities/mjBizAppsOrdersSubscriptionEvent/mjbizappsorderssubscriptionevent.form.component.js.map +1 -0
  412. package/dist/lib/generated/Entities/mjBizAppsOrdersSubscriptionSequence/mjbizappsorderssubscriptionsequence.form.component.d.ts +10 -0
  413. package/dist/lib/generated/Entities/mjBizAppsOrdersSubscriptionSequence/mjbizappsorderssubscriptionsequence.form.component.d.ts.map +1 -0
  414. package/dist/lib/generated/Entities/mjBizAppsOrdersSubscriptionSequence/mjbizappsorderssubscriptionsequence.form.component.js +63 -0
  415. package/dist/lib/generated/Entities/mjBizAppsOrdersSubscriptionSequence/mjbizappsorderssubscriptionsequence.form.component.js.map +1 -0
  416. package/dist/lib/generated/Entities/mjBizAppsOrdersSubscriptionTerm/mjbizappsorderssubscriptionterm.form.component.d.ts +10 -0
  417. package/dist/lib/generated/Entities/mjBizAppsOrdersSubscriptionTerm/mjbizappsorderssubscriptionterm.form.component.d.ts.map +1 -0
  418. package/dist/lib/generated/Entities/mjBizAppsOrdersSubscriptionTerm/mjbizappsorderssubscriptionterm.form.component.js +122 -0
  419. package/dist/lib/generated/Entities/mjBizAppsOrdersSubscriptionTerm/mjbizappsorderssubscriptionterm.form.component.js.map +1 -0
  420. package/dist/lib/generated/Entities/mjBizAppsOrdersSubscriptionType/mjbizappsorderssubscriptiontype.form.component.d.ts +10 -0
  421. package/dist/lib/generated/Entities/mjBizAppsOrdersSubscriptionType/mjbizappsorderssubscriptiontype.form.component.d.ts.map +1 -0
  422. package/dist/lib/generated/Entities/mjBizAppsOrdersSubscriptionType/mjbizappsorderssubscriptiontype.form.component.js +188 -0
  423. package/dist/lib/generated/Entities/mjBizAppsOrdersSubscriptionType/mjbizappsorderssubscriptiontype.form.component.js.map +1 -0
  424. package/dist/lib/generated/class-registrations-manifest.d.ts +7 -0
  425. package/dist/lib/generated/class-registrations-manifest.d.ts.map +1 -0
  426. package/dist/lib/generated/class-registrations-manifest.js +7 -0
  427. package/dist/lib/generated/class-registrations-manifest.js.map +1 -0
  428. package/dist/lib/generated/generated-forms.module.d.ts +79 -0
  429. package/dist/lib/generated/generated-forms.module.d.ts.map +1 -0
  430. package/dist/lib/generated/generated-forms.module.js +276 -0
  431. package/dist/lib/generated/generated-forms.module.js.map +1 -0
  432. package/dist/lib/pages/catalog/pricing.page.d.ts +81 -0
  433. package/dist/lib/pages/catalog/pricing.page.d.ts.map +1 -0
  434. package/dist/lib/pages/catalog/pricing.page.js +555 -0
  435. package/dist/lib/pages/catalog/pricing.page.js.map +1 -0
  436. package/dist/lib/pages/catalog/products.page.d.ts +98 -0
  437. package/dist/lib/pages/catalog/products.page.d.ts.map +1 -0
  438. package/dist/lib/pages/catalog/products.page.js +877 -0
  439. package/dist/lib/pages/catalog/products.page.js.map +1 -0
  440. package/dist/lib/pages/orders/fulfillment.page.d.ts +54 -0
  441. package/dist/lib/pages/orders/fulfillment.page.d.ts.map +1 -0
  442. package/dist/lib/pages/orders/fulfillment.page.js +279 -0
  443. package/dist/lib/pages/orders/fulfillment.page.js.map +1 -0
  444. package/dist/lib/pages/orders/order-document.page.d.ts +71 -0
  445. package/dist/lib/pages/orders/order-document.page.d.ts.map +1 -0
  446. package/dist/lib/pages/orders/order-document.page.js +573 -0
  447. package/dist/lib/pages/orders/order-document.page.js.map +1 -0
  448. package/dist/lib/pages/orders/orders-dashboard.page.d.ts +79 -0
  449. package/dist/lib/pages/orders/orders-dashboard.page.d.ts.map +1 -0
  450. package/dist/lib/pages/orders/orders-dashboard.page.js +819 -0
  451. package/dist/lib/pages/orders/orders-dashboard.page.js.map +1 -0
  452. package/dist/lib/pages/orders/orders-list.page.d.ts +21 -0
  453. package/dist/lib/pages/orders/orders-list.page.d.ts.map +1 -0
  454. package/dist/lib/pages/orders/orders-list.page.js +74 -0
  455. package/dist/lib/pages/orders/orders-list.page.js.map +1 -0
  456. package/dist/lib/pages/orders/return.page.d.ts +96 -0
  457. package/dist/lib/pages/orders/return.page.d.ts.map +1 -0
  458. package/dist/lib/pages/orders/return.page.js +549 -0
  459. package/dist/lib/pages/orders/return.page.js.map +1 -0
  460. package/dist/lib/pages/payments/account-credit.page.d.ts +96 -0
  461. package/dist/lib/pages/payments/account-credit.page.d.ts.map +1 -0
  462. package/dist/lib/pages/payments/account-credit.page.js +463 -0
  463. package/dist/lib/pages/payments/account-credit.page.js.map +1 -0
  464. package/dist/lib/pages/payments/payments-dashboard.page.d.ts +61 -0
  465. package/dist/lib/pages/payments/payments-dashboard.page.d.ts.map +1 -0
  466. package/dist/lib/pages/payments/payments-dashboard.page.js +359 -0
  467. package/dist/lib/pages/payments/payments-dashboard.page.js.map +1 -0
  468. package/dist/lib/pages/payments/payments-list.page.d.ts +18 -0
  469. package/dist/lib/pages/payments/payments-list.page.d.ts.map +1 -0
  470. package/dist/lib/pages/payments/payments-list.page.js +71 -0
  471. package/dist/lib/pages/payments/payments-list.page.js.map +1 -0
  472. package/dist/lib/pages/payments/refund.page.d.ts +74 -0
  473. package/dist/lib/pages/payments/refund.page.d.ts.map +1 -0
  474. package/dist/lib/pages/payments/refund.page.js +477 -0
  475. package/dist/lib/pages/payments/refund.page.js.map +1 -0
  476. package/dist/lib/pages/receivables/customer-ar.page.d.ts +102 -0
  477. package/dist/lib/pages/receivables/customer-ar.page.d.ts.map +1 -0
  478. package/dist/lib/pages/receivables/customer-ar.page.js +782 -0
  479. package/dist/lib/pages/receivables/customer-ar.page.js.map +1 -0
  480. package/dist/lib/pages/receivables/overdue.page.d.ts +71 -0
  481. package/dist/lib/pages/receivables/overdue.page.d.ts.map +1 -0
  482. package/dist/lib/pages/receivables/overdue.page.js +338 -0
  483. package/dist/lib/pages/receivables/overdue.page.js.map +1 -0
  484. package/dist/lib/pages/receivables/subscriptions.page.d.ts +115 -0
  485. package/dist/lib/pages/receivables/subscriptions.page.d.ts.map +1 -0
  486. package/dist/lib/pages/receivables/subscriptions.page.js +632 -0
  487. package/dist/lib/pages/receivables/subscriptions.page.js.map +1 -0
  488. package/dist/lib/panels/aging-bar.component.d.ts +59 -0
  489. package/dist/lib/panels/aging-bar.component.d.ts.map +1 -0
  490. package/dist/lib/panels/aging-bar.component.js +180 -0
  491. package/dist/lib/panels/aging-bar.component.js.map +1 -0
  492. package/dist/lib/panels/allocation-grid.component.d.ts +90 -0
  493. package/dist/lib/panels/allocation-grid.component.d.ts.map +1 -0
  494. package/dist/lib/panels/allocation-grid.component.js +425 -0
  495. package/dist/lib/panels/allocation-grid.component.js.map +1 -0
  496. package/dist/lib/panels/allocation-math.d.ts +59 -0
  497. package/dist/lib/panels/allocation-math.d.ts.map +1 -0
  498. package/dist/lib/panels/allocation-math.js +99 -0
  499. package/dist/lib/panels/allocation-math.js.map +1 -0
  500. package/dist/lib/panels/chips.component.d.ts +104 -0
  501. package/dist/lib/panels/chips.component.d.ts.map +1 -0
  502. package/dist/lib/panels/chips.component.js +274 -0
  503. package/dist/lib/panels/chips.component.js.map +1 -0
  504. package/dist/lib/panels/day-bars.component.d.ts +64 -0
  505. package/dist/lib/panels/day-bars.component.d.ts.map +1 -0
  506. package/dist/lib/panels/day-bars.component.js +143 -0
  507. package/dist/lib/panels/day-bars.component.js.map +1 -0
  508. package/dist/lib/panels/decomposition-ladder.component.d.ts +68 -0
  509. package/dist/lib/panels/decomposition-ladder.component.d.ts.map +1 -0
  510. package/dist/lib/panels/decomposition-ladder.component.js +217 -0
  511. package/dist/lib/panels/decomposition-ladder.component.js.map +1 -0
  512. package/dist/lib/panels/index.d.ts +46 -0
  513. package/dist/lib/panels/index.d.ts.map +1 -0
  514. package/dist/lib/panels/index.js +58 -0
  515. package/dist/lib/panels/index.js.map +1 -0
  516. package/dist/lib/panels/journal-entry-preview.component.d.ts +71 -0
  517. package/dist/lib/panels/journal-entry-preview.component.d.ts.map +1 -0
  518. package/dist/lib/panels/journal-entry-preview.component.js +281 -0
  519. package/dist/lib/panels/journal-entry-preview.component.js.map +1 -0
  520. package/dist/lib/panels/money-format.d.ts +182 -0
  521. package/dist/lib/panels/money-format.d.ts.map +1 -0
  522. package/dist/lib/panels/money-format.js +297 -0
  523. package/dist/lib/panels/money-format.js.map +1 -0
  524. package/dist/lib/panels/money-strip.component.d.ts +69 -0
  525. package/dist/lib/panels/money-strip.component.d.ts.map +1 -0
  526. package/dist/lib/panels/money-strip.component.js +233 -0
  527. package/dist/lib/panels/money-strip.component.js.map +1 -0
  528. package/dist/lib/panels/order-stages.d.ts +75 -0
  529. package/dist/lib/panels/order-stages.d.ts.map +1 -0
  530. package/dist/lib/panels/order-stages.js +100 -0
  531. package/dist/lib/panels/order-stages.js.map +1 -0
  532. package/dist/lib/panels/party-orders-overview.component.d.ts +79 -0
  533. package/dist/lib/panels/party-orders-overview.component.d.ts.map +1 -0
  534. package/dist/lib/panels/party-orders-overview.component.js +906 -0
  535. package/dist/lib/panels/party-orders-overview.component.js.map +1 -0
  536. package/dist/lib/panels/stat-tile.component.d.ts +75 -0
  537. package/dist/lib/panels/stat-tile.component.d.ts.map +1 -0
  538. package/dist/lib/panels/stat-tile.component.js +214 -0
  539. package/dist/lib/panels/stat-tile.component.js.map +1 -0
  540. package/dist/lib/panels/status-stepper.component.d.ts +60 -0
  541. package/dist/lib/panels/status-stepper.component.d.ts.map +1 -0
  542. package/dist/lib/panels/status-stepper.component.js +160 -0
  543. package/dist/lib/panels/status-stepper.component.js.map +1 -0
  544. package/dist/lib/panels/summary-strip.component.d.ts +48 -0
  545. package/dist/lib/panels/summary-strip.component.d.ts.map +1 -0
  546. package/dist/lib/panels/summary-strip.component.js +100 -0
  547. package/dist/lib/panels/summary-strip.component.js.map +1 -0
  548. package/dist/lib/panels/worklist-table.component.d.ts +127 -0
  549. package/dist/lib/panels/worklist-table.component.d.ts.map +1 -0
  550. package/dist/lib/panels/worklist-table.component.js +444 -0
  551. package/dist/lib/panels/worklist-table.component.js.map +1 -0
  552. package/dist/lib/sections/orders-sections.component.d.ts +282 -0
  553. package/dist/lib/sections/orders-sections.component.d.ts.map +1 -0
  554. package/dist/lib/sections/orders-sections.component.js +1117 -0
  555. package/dist/lib/sections/orders-sections.component.js.map +1 -0
  556. package/dist/lib/sections/section-nav.model.d.ts +74 -0
  557. package/dist/lib/sections/section-nav.model.d.ts.map +1 -0
  558. package/dist/lib/sections/section-nav.model.js +114 -0
  559. package/dist/lib/sections/section-nav.model.js.map +1 -0
  560. package/dist/lib/sections/section-shell.component.d.ts +70 -0
  561. package/dist/lib/sections/section-shell.component.d.ts.map +1 -0
  562. package/dist/lib/sections/section-shell.component.js +193 -0
  563. package/dist/lib/sections/section-shell.component.js.map +1 -0
  564. package/dist/lib/services/pricing-scheduler.service.d.ts +181 -0
  565. package/dist/lib/services/pricing-scheduler.service.d.ts.map +1 -0
  566. package/dist/lib/services/pricing-scheduler.service.js +292 -0
  567. package/dist/lib/services/pricing-scheduler.service.js.map +1 -0
  568. package/dist/lib/services/save-error.d.ts +24 -0
  569. package/dist/lib/services/save-error.d.ts.map +1 -0
  570. package/dist/lib/services/save-error.js +47 -0
  571. package/dist/lib/services/save-error.js.map +1 -0
  572. package/dist/lib/styles/orders-kit.css +841 -0
  573. package/dist/lib/transfer-pending/workspace-tabs/workspace-card.component.d.ts +55 -0
  574. package/dist/lib/transfer-pending/workspace-tabs/workspace-card.component.d.ts.map +1 -0
  575. package/dist/lib/transfer-pending/workspace-tabs/workspace-card.component.js +243 -0
  576. package/dist/lib/transfer-pending/workspace-tabs/workspace-card.component.js.map +1 -0
  577. package/dist/lib/transfer-pending/workspace-tabs/workspace-tab-store.d.ts +47 -0
  578. package/dist/lib/transfer-pending/workspace-tabs/workspace-tab-store.d.ts.map +1 -0
  579. package/dist/lib/transfer-pending/workspace-tabs/workspace-tab-store.js +112 -0
  580. package/dist/lib/transfer-pending/workspace-tabs/workspace-tab-store.js.map +1 -0
  581. package/dist/lib/transfer-pending/workspace-tabs/workspace-tab-strip.component.d.ts +36 -0
  582. package/dist/lib/transfer-pending/workspace-tabs/workspace-tab-strip.component.d.ts.map +1 -0
  583. package/dist/lib/transfer-pending/workspace-tabs/workspace-tab-strip.component.js +179 -0
  584. package/dist/lib/transfer-pending/workspace-tabs/workspace-tab-strip.component.js.map +1 -0
  585. package/dist/lib/transfer-pending/workspace-tabs/workspace-tabs.types.d.ts +36 -0
  586. package/dist/lib/transfer-pending/workspace-tabs/workspace-tabs.types.d.ts.map +1 -0
  587. package/dist/lib/transfer-pending/workspace-tabs/workspace-tabs.types.js +9 -0
  588. package/dist/lib/transfer-pending/workspace-tabs/workspace-tabs.types.js.map +1 -0
  589. package/dist/lib/transfer-pending/workspace-tabs/workspace-tip.directive.d.ts +35 -0
  590. package/dist/lib/transfer-pending/workspace-tabs/workspace-tip.directive.d.ts.map +1 -0
  591. package/dist/lib/transfer-pending/workspace-tabs/workspace-tip.directive.js +124 -0
  592. package/dist/lib/transfer-pending/workspace-tabs/workspace-tip.directive.js.map +1 -0
  593. package/dist/public-api.d.ts +80 -0
  594. package/dist/public-api.d.ts.map +1 -0
  595. package/dist/public-api.js +98 -0
  596. package/dist/public-api.js.map +1 -0
  597. package/package.json +78 -5
@@ -0,0 +1,950 @@
1
+ import { Component, EventEmitter, Input, Output, ChangeDetectorRef, inject } from '@angular/core';
2
+ import { Metadata, RunView, CompositeKey } from '@memberjunction/core';
3
+ import { GetGlobalObjectStore } from '@memberjunction/global';
4
+ import { NavigationService } from '@memberjunction/ng-shared';
5
+ import { FormatMoney } from '../../../panels/money-format.js';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/forms";
8
+ import * as i2 from "@memberjunction/ng-base-forms";
9
+ const _forTrack0 = ($index, $item) => $item.ID;
10
+ const _forTrack1 = ($index, $item) => $item.Label;
11
+ function BizAppsProductPricingWidgetComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
12
+ const _r1 = i0.ɵɵgetCurrentView();
13
+ i0.ɵɵelementStart(0, "div", 17)(1, "div", 18);
14
+ i0.ɵɵelement(2, "i");
15
+ i0.ɵɵelementStart(3, "span", 19);
16
+ i0.ɵɵtext(4);
17
+ i0.ɵɵelementEnd()();
18
+ i0.ɵɵelementStart(5, "button", 20);
19
+ i0.ɵɵlistener("click", function BizAppsProductPricingWidgetComponent_Conditional_1_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.DismissToast()); });
20
+ i0.ɵɵelement(6, "i", 21);
21
+ i0.ɵɵelementEnd()();
22
+ } if (rf & 2) {
23
+ const ctx_r1 = i0.ɵɵnextContext();
24
+ i0.ɵɵclassMap("mjo-toast--" + ctx_r1.ActiveToast.Type);
25
+ i0.ɵɵadvance(2);
26
+ i0.ɵɵclassMap(ctx_r1.ActiveToast.Icon);
27
+ i0.ɵɵadvance(2);
28
+ i0.ɵɵtextInterpolate(ctx_r1.ActiveToast.Message);
29
+ } }
30
+ function BizAppsProductPricingWidgetComponent_For_20_Template(rf, ctx) { if (rf & 1) {
31
+ const _r3 = i0.ɵɵgetCurrentView();
32
+ i0.ɵɵelementStart(0, "button", 22);
33
+ i0.ɵɵlistener("click", function BizAppsProductPricingWidgetComponent_For_20_Template_button_click_0_listener() { const ch_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.SelectChannel(ch_r4.ID)); });
34
+ i0.ɵɵelement(1, "i");
35
+ i0.ɵɵelementStart(2, "span");
36
+ i0.ɵɵtext(3);
37
+ i0.ɵɵelementEnd();
38
+ i0.ɵɵelementStart(4, "span", 23);
39
+ i0.ɵɵtext(5);
40
+ i0.ɵɵelementEnd()();
41
+ } if (rf & 2) {
42
+ const ch_r4 = ctx.$implicit;
43
+ const ctx_r1 = i0.ɵɵnextContext();
44
+ i0.ɵɵclassProp("active", ctx_r1.SelectedChannelID === ch_r4.ID);
45
+ i0.ɵɵadvance();
46
+ i0.ɵɵclassMap(ch_r4.Icon);
47
+ i0.ɵɵadvance(2);
48
+ i0.ɵɵtextInterpolate(ch_r4.Name);
49
+ i0.ɵɵadvance(2);
50
+ i0.ɵɵtextInterpolate2("", ch_r4.TierCount, " ", ch_r4.TierCount === 1 ? "Tier" : "Tiers");
51
+ } }
52
+ function BizAppsProductPricingWidgetComponent_Conditional_26_Template(rf, ctx) { if (rf & 1) {
53
+ const _r5 = i0.ɵɵgetCurrentView();
54
+ i0.ɵɵelementStart(0, "button", 15);
55
+ i0.ɵɵlistener("click", function BizAppsProductPricingWidgetComponent_Conditional_26_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OpenNewPriceDialog()); });
56
+ i0.ɵɵelement(1, "i", 24);
57
+ i0.ɵɵelementStart(2, "span");
58
+ i0.ɵɵtext(3, "Add Channel / Rule");
59
+ i0.ɵɵelementEnd()();
60
+ } }
61
+ function BizAppsProductPricingWidgetComponent_Conditional_27_Conditional_0_Template(rf, ctx) { if (rf & 1) {
62
+ const _r6 = i0.ɵɵgetCurrentView();
63
+ i0.ɵɵelementStart(0, "div", 25)(1, "mj-explorer-entity-data-grid", 26);
64
+ i0.ɵɵlistener("Navigate", function BizAppsProductPricingWidgetComponent_Conditional_27_Conditional_0_Template_mj_explorer_entity_data_grid_Navigate_1_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.Navigate.emit($event)); });
65
+ i0.ɵɵelementEnd()();
66
+ } if (rf & 2) {
67
+ const ctx_r1 = i0.ɵɵnextContext(2);
68
+ i0.ɵɵadvance();
69
+ i0.ɵɵproperty("Params", ctx_r1.ProductPricesViewParams)("NewRecordValues", ctx_r1.NewPriceRecordValues)("Height", 420)("AllowLoad", true)("ShowToolbar", true)("ShowNewButton", ctx_r1.EditMode)("ShowDeleteButton", ctx_r1.EditMode);
70
+ } }
71
+ function BizAppsProductPricingWidgetComponent_Conditional_27_Template(rf, ctx) { if (rf & 1) {
72
+ i0.ɵɵconditionalCreate(0, BizAppsProductPricingWidgetComponent_Conditional_27_Conditional_0_Template, 2, 7, "div", 25);
73
+ } if (rf & 2) {
74
+ const ctx_r1 = i0.ɵɵnextContext();
75
+ i0.ɵɵconditional(ctx_r1.ProductPricesViewParams ? 0 : -1);
76
+ } }
77
+ function BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_0_Template(rf, ctx) { if (rf & 1) {
78
+ i0.ɵɵelementStart(0, "div", 27);
79
+ i0.ɵɵelement(1, "i", 32);
80
+ i0.ɵɵelementStart(2, "span");
81
+ i0.ɵɵtext(3, "Loading price tiers\u2026");
82
+ i0.ɵɵelementEnd()();
83
+ } }
84
+ function BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_1_Conditional_7_Template(rf, ctx) { if (rf & 1) {
85
+ i0.ɵɵtext(0, " Use the Quick Bracket builder below to add volume-discounted pricing. ");
86
+ } }
87
+ function BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_1_Conditional_8_Template(rf, ctx) { if (rf & 1) {
88
+ i0.ɵɵtext(0, " Switch to Edit mode to configure pricing tiers and volume discounts. ");
89
+ } }
90
+ function BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_1_Template(rf, ctx) { if (rf & 1) {
91
+ i0.ɵɵelementStart(0, "div", 28)(1, "div", 33);
92
+ i0.ɵɵelement(2, "i", 34);
93
+ i0.ɵɵelementEnd();
94
+ i0.ɵɵelementStart(3, "div", 35)(4, "h4");
95
+ i0.ɵɵtext(5, "No Pricing Tiers Configured for this Channel");
96
+ i0.ɵɵelementEnd();
97
+ i0.ɵɵelementStart(6, "p");
98
+ i0.ɵɵconditionalCreate(7, BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_1_Conditional_7_Template, 1, 0)(8, BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_1_Conditional_8_Template, 1, 0);
99
+ i0.ɵɵelementEnd()()();
100
+ } if (rf & 2) {
101
+ const ctx_r1 = i0.ɵɵnextContext(2);
102
+ i0.ɵɵadvance(7);
103
+ i0.ɵɵconditional(ctx_r1.EditMode ? 7 : 8);
104
+ } }
105
+ function BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_2_For_22_Conditional_8_Template(rf, ctx) { if (rf & 1) {
106
+ const _r8 = i0.ɵɵgetCurrentView();
107
+ i0.ɵɵelementStart(0, "input", 54);
108
+ i0.ɵɵlistener("blur", function BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_2_For_22_Conditional_8_Template_input_blur_0_listener($event) { i0.ɵɵrestoreView(_r8); const tier_r9 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnPriceInputBlur(tier_r9, $event)); });
109
+ i0.ɵɵelementEnd();
110
+ } if (rf & 2) {
111
+ const tier_r9 = i0.ɵɵnextContext().$implicit;
112
+ const ctx_r1 = i0.ɵɵnextContext(3);
113
+ i0.ɵɵproperty("value", ctx_r1.FormatCurrency(tier_r9.Amount))("title", "Edit price for " + tier_r9.BracketLabel);
114
+ } }
115
+ function BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_2_For_22_Conditional_9_Template(rf, ctx) { if (rf & 1) {
116
+ i0.ɵɵelementStart(0, "strong", 43);
117
+ i0.ɵɵtext(1);
118
+ i0.ɵɵelementEnd();
119
+ } if (rf & 2) {
120
+ const tier_r9 = i0.ɵɵnextContext().$implicit;
121
+ const ctx_r1 = i0.ɵɵnextContext(3);
122
+ i0.ɵɵadvance();
123
+ i0.ɵɵtextInterpolate(ctx_r1.FormatCurrency(tier_r9.Amount));
124
+ } }
125
+ function BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_2_For_22_Conditional_11_Template(rf, ctx) { if (rf & 1) {
126
+ i0.ɵɵelementStart(0, "span", 44);
127
+ i0.ɵɵelement(1, "i", 55);
128
+ i0.ɵɵtext(2);
129
+ i0.ɵɵelementEnd();
130
+ } if (rf & 2) {
131
+ const tier_r9 = i0.ɵɵnextContext().$implicit;
132
+ i0.ɵɵadvance(2);
133
+ i0.ɵɵtextInterpolate1(" ", tier_r9.DiscountPercent, "% off ");
134
+ } }
135
+ function BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_2_For_22_Conditional_12_Template(rf, ctx) { if (rf & 1) {
136
+ i0.ɵɵelementStart(0, "span", 45);
137
+ i0.ɵɵtext(1, "Standard Base");
138
+ i0.ɵɵelementEnd();
139
+ } }
140
+ function BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_2_For_22_Conditional_14_Template(rf, ctx) { if (rf & 1) {
141
+ i0.ɵɵelementStart(0, "strong", 46);
142
+ i0.ɵɵtext(1);
143
+ i0.ɵɵelementEnd();
144
+ } if (rf & 2) {
145
+ const tier_r9 = i0.ɵɵnextContext().$implicit;
146
+ const ctx_r1 = i0.ɵɵnextContext(3);
147
+ i0.ɵɵadvance();
148
+ i0.ɵɵtextInterpolate1("", ctx_r1.FormatCurrency(tier_r9.UnitSavings), " / unit");
149
+ } }
150
+ function BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_2_For_22_Conditional_15_Template(rf, ctx) { if (rf & 1) {
151
+ i0.ɵɵelementStart(0, "span", 47);
152
+ i0.ɵɵtext(1, "$0.00");
153
+ i0.ɵɵelementEnd();
154
+ } }
155
+ function BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_2_For_22_Conditional_25_Template(rf, ctx) { if (rf & 1) {
156
+ const _r10 = i0.ɵɵgetCurrentView();
157
+ i0.ɵɵelementStart(0, "button", 56);
158
+ i0.ɵɵlistener("click", function BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_2_For_22_Conditional_25_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r10); const tier_r9 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.DeleteTier(tier_r9)); });
159
+ i0.ɵɵelement(1, "i", 57);
160
+ i0.ɵɵelementEnd();
161
+ } }
162
+ function BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_2_For_22_Template(rf, ctx) { if (rf & 1) {
163
+ const _r7 = i0.ɵɵgetCurrentView();
164
+ i0.ɵɵelementStart(0, "tr")(1, "td")(2, "strong", 39);
165
+ i0.ɵɵtext(3);
166
+ i0.ɵɵelementEnd()();
167
+ i0.ɵɵelementStart(4, "td")(5, "span", 40);
168
+ i0.ɵɵtext(6);
169
+ i0.ɵɵelementEnd()();
170
+ i0.ɵɵelementStart(7, "td", 41);
171
+ i0.ɵɵconditionalCreate(8, BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_2_For_22_Conditional_8_Template, 1, 2, "input", 42)(9, BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_2_For_22_Conditional_9_Template, 2, 1, "strong", 43);
172
+ i0.ɵɵelementEnd();
173
+ i0.ɵɵelementStart(10, "td");
174
+ i0.ɵɵconditionalCreate(11, BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_2_For_22_Conditional_11_Template, 3, 1, "span", 44)(12, BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_2_For_22_Conditional_12_Template, 2, 0, "span", 45);
175
+ i0.ɵɵelementEnd();
176
+ i0.ɵɵelementStart(13, "td");
177
+ i0.ɵɵconditionalCreate(14, BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_2_For_22_Conditional_14_Template, 2, 1, "strong", 46)(15, BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_2_For_22_Conditional_15_Template, 2, 0, "span", 47);
178
+ i0.ɵɵelementEnd();
179
+ i0.ɵɵelementStart(16, "td")(17, "span", 48);
180
+ i0.ɵɵtext(18);
181
+ i0.ɵɵelementEnd()();
182
+ i0.ɵɵelementStart(19, "td")(20, "span", 49);
183
+ i0.ɵɵtext(21);
184
+ i0.ɵɵelementEnd()();
185
+ i0.ɵɵelementStart(22, "td", 50)(23, "button", 51);
186
+ i0.ɵɵlistener("click", function BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_2_For_22_Template_button_click_23_listener() { const tier_r9 = i0.ɵɵrestoreView(_r7).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OpenTierRecord(tier_r9)); });
187
+ i0.ɵɵelement(24, "i", 52);
188
+ i0.ɵɵelementEnd();
189
+ i0.ɵɵconditionalCreate(25, BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_2_For_22_Conditional_25_Template, 2, 0, "button", 53);
190
+ i0.ɵɵelementEnd()();
191
+ } if (rf & 2) {
192
+ const tier_r9 = ctx.$implicit;
193
+ const ctx_r1 = i0.ɵɵnextContext(3);
194
+ i0.ɵɵadvance(3);
195
+ i0.ɵɵtextInterpolate(tier_r9.BracketLabel);
196
+ i0.ɵɵadvance(3);
197
+ i0.ɵɵtextInterpolate(tier_r9.UnitRangeText);
198
+ i0.ɵɵadvance(2);
199
+ i0.ɵɵconditional(ctx_r1.EditMode ? 8 : 9);
200
+ i0.ɵɵadvance(3);
201
+ i0.ɵɵconditional(tier_r9.DiscountPercent > 0 ? 11 : 12);
202
+ i0.ɵɵadvance(3);
203
+ i0.ɵɵconditional(tier_r9.UnitSavings > 0 ? 14 : 15);
204
+ i0.ɵɵadvance(4);
205
+ i0.ɵɵtextInterpolate(tier_r9.PricingModel);
206
+ i0.ɵɵadvance(3);
207
+ i0.ɵɵtextInterpolate(tier_r9.EffectiveDatesText);
208
+ i0.ɵɵadvance(4);
209
+ i0.ɵɵconditional(ctx_r1.EditMode && !tier_r9.IsBaseBracket ? 25 : -1);
210
+ } }
211
+ function BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_2_Template(rf, ctx) { if (rf & 1) {
212
+ i0.ɵɵelementStart(0, "div", 29)(1, "table", 36)(2, "thead")(3, "tr")(4, "th");
213
+ i0.ɵɵtext(5, "Tier Bracket");
214
+ i0.ɵɵelementEnd();
215
+ i0.ɵɵelementStart(6, "th");
216
+ i0.ɵɵtext(7, "Unit Range");
217
+ i0.ɵɵelementEnd();
218
+ i0.ɵɵelementStart(8, "th", 37);
219
+ i0.ɵɵtext(9, "Unit Price ($)");
220
+ i0.ɵɵelementEnd();
221
+ i0.ɵɵelementStart(10, "th");
222
+ i0.ɵɵtext(11, "Discount vs Base");
223
+ i0.ɵɵelementEnd();
224
+ i0.ɵɵelementStart(12, "th");
225
+ i0.ɵɵtext(13, "Unit Savings");
226
+ i0.ɵɵelementEnd();
227
+ i0.ɵɵelementStart(14, "th");
228
+ i0.ɵɵtext(15, "Model");
229
+ i0.ɵɵelementEnd();
230
+ i0.ɵɵelementStart(16, "th");
231
+ i0.ɵɵtext(17, "Status / Dates");
232
+ i0.ɵɵelementEnd();
233
+ i0.ɵɵelementStart(18, "th", 38);
234
+ i0.ɵɵtext(19, "Actions");
235
+ i0.ɵɵelementEnd()()();
236
+ i0.ɵɵelementStart(20, "tbody");
237
+ i0.ɵɵrepeaterCreate(21, BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_2_For_22_Template, 26, 8, "tr", null, _forTrack0);
238
+ i0.ɵɵelementEnd()()();
239
+ } if (rf & 2) {
240
+ const ctx_r1 = i0.ɵɵnextContext(2);
241
+ i0.ɵɵadvance(21);
242
+ i0.ɵɵrepeater(ctx_r1.LadderTiers);
243
+ } }
244
+ function BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_3_Conditional_30_Template(rf, ctx) { if (rf & 1) {
245
+ i0.ɵɵelement(0, "i", 32);
246
+ i0.ɵɵelementStart(1, "span");
247
+ i0.ɵɵtext(2, "Saving\u2026");
248
+ i0.ɵɵelementEnd();
249
+ } }
250
+ function BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_3_Conditional_31_Template(rf, ctx) { if (rf & 1) {
251
+ i0.ɵɵelement(0, "i", 24);
252
+ i0.ɵɵelementStart(1, "span");
253
+ i0.ɵɵtext(2, "Add Bracket");
254
+ i0.ɵɵelementEnd();
255
+ } }
256
+ function BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_3_Template(rf, ctx) { if (rf & 1) {
257
+ const _r11 = i0.ɵɵgetCurrentView();
258
+ i0.ɵɵelementStart(0, "div", 30)(1, "div", 58)(2, "span", 59);
259
+ i0.ɵɵelement(3, "i", 60);
260
+ i0.ɵɵtext(4, " Add Volume Tier: ");
261
+ i0.ɵɵelementEnd();
262
+ i0.ɵɵelementStart(5, "label", 61)(6, "span", 62);
263
+ i0.ɵɵtext(7, "Min:");
264
+ i0.ɵɵelementEnd();
265
+ i0.ɵɵelementStart(8, "input", 63);
266
+ i0.ɵɵtwoWayListener("ngModelChange", function BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_3_Template_input_ngModelChange_8_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.NewTierMin, $event) || (ctx_r1.NewTierMin = $event); return i0.ɵɵresetView($event); });
267
+ i0.ɵɵelementEnd()();
268
+ i0.ɵɵelementStart(9, "label", 61)(10, "span", 62);
269
+ i0.ɵɵtext(11, "Max:");
270
+ i0.ɵɵelementEnd();
271
+ i0.ɵɵelementStart(12, "input", 64);
272
+ i0.ɵɵtwoWayListener("ngModelChange", function BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_3_Template_input_ngModelChange_12_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.NewTierMax, $event) || (ctx_r1.NewTierMax = $event); return i0.ɵɵresetView($event); });
273
+ i0.ɵɵelementEnd()();
274
+ i0.ɵɵelementStart(13, "label", 61)(14, "span", 62);
275
+ i0.ɵɵtext(15, "Price ($):");
276
+ i0.ɵɵelementEnd();
277
+ i0.ɵɵelementStart(16, "input", 65);
278
+ i0.ɵɵtwoWayListener("ngModelChange", function BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_3_Template_input_ngModelChange_16_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.NewTierPrice, $event) || (ctx_r1.NewTierPrice = $event); return i0.ɵɵresetView($event); });
279
+ i0.ɵɵelementEnd()();
280
+ i0.ɵɵelementStart(17, "label", 61)(18, "span", 62);
281
+ i0.ɵɵtext(19, "Model:");
282
+ i0.ɵɵelementEnd();
283
+ i0.ɵɵelementStart(20, "select", 66);
284
+ i0.ɵɵtwoWayListener("ngModelChange", function BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_3_Template_select_ngModelChange_20_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.NewTierModel, $event) || (ctx_r1.NewTierModel = $event); return i0.ɵɵresetView($event); });
285
+ i0.ɵɵelementStart(21, "option", 67);
286
+ i0.ɵɵtext(22, "Volume");
287
+ i0.ɵɵelementEnd();
288
+ i0.ɵɵelementStart(23, "option", 68);
289
+ i0.ɵɵtext(24, "PerUnit");
290
+ i0.ɵɵelementEnd();
291
+ i0.ɵɵelementStart(25, "option", 69);
292
+ i0.ɵɵtext(26, "Tiered");
293
+ i0.ɵɵelementEnd();
294
+ i0.ɵɵelementStart(27, "option", 70);
295
+ i0.ɵɵtext(28, "Flat");
296
+ i0.ɵɵelementEnd()()();
297
+ i0.ɵɵelementStart(29, "button", 71);
298
+ i0.ɵɵlistener("click", function BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_3_Template_button_click_29_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.AddTierBracket()); });
299
+ i0.ɵɵconditionalCreate(30, BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_3_Conditional_30_Template, 3, 0)(31, BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_3_Conditional_31_Template, 3, 0);
300
+ i0.ɵɵelementEnd()();
301
+ i0.ɵɵelementStart(32, "div", 72);
302
+ i0.ɵɵelement(33, "i", 73);
303
+ i0.ɵɵelementStart(34, "span");
304
+ i0.ɵɵtext(35, "Gap & overlap protection active");
305
+ i0.ɵɵelementEnd()()();
306
+ } if (rf & 2) {
307
+ const ctx_r1 = i0.ɵɵnextContext(2);
308
+ i0.ɵɵadvance(8);
309
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.NewTierMin);
310
+ i0.ɵɵadvance(4);
311
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.NewTierMax);
312
+ i0.ɵɵadvance(4);
313
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.NewTierPrice);
314
+ i0.ɵɵadvance(4);
315
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.NewTierModel);
316
+ i0.ɵɵadvance(9);
317
+ i0.ɵɵproperty("disabled", ctx_r1.IsSaving);
318
+ i0.ɵɵadvance();
319
+ i0.ɵɵconditional(ctx_r1.IsSaving ? 30 : 31);
320
+ } }
321
+ function BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_4_For_7_Template(rf, ctx) { if (rf & 1) {
322
+ i0.ɵɵelementStart(0, "div", 77)(1, "span", 78);
323
+ i0.ɵɵtext(2);
324
+ i0.ɵɵelementEnd();
325
+ i0.ɵɵelementStart(3, "div", 79);
326
+ i0.ɵɵelement(4, "div", 80);
327
+ i0.ɵɵelementEnd();
328
+ i0.ɵɵelementStart(5, "span", 81);
329
+ i0.ɵɵtext(6);
330
+ i0.ɵɵelementEnd()();
331
+ } if (rf & 2) {
332
+ const bar_r12 = ctx.$implicit;
333
+ i0.ɵɵadvance(2);
334
+ i0.ɵɵtextInterpolate(bar_r12.FormattedAmount);
335
+ i0.ɵɵadvance(2);
336
+ i0.ɵɵstyleProp("height", bar_r12.Percentage, "%");
337
+ i0.ɵɵadvance(2);
338
+ i0.ɵɵtextInterpolate1("", bar_r12.Label, " units");
339
+ } }
340
+ function BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_4_Template(rf, ctx) { if (rf & 1) {
341
+ i0.ɵɵelementStart(0, "div", 31)(1, "div", 74);
342
+ i0.ɵɵelement(2, "i", 75);
343
+ i0.ɵɵelementStart(3, "span");
344
+ i0.ɵɵtext(4, "Live Volume Step Curve (Base vs Tiers)");
345
+ i0.ɵɵelementEnd()();
346
+ i0.ɵɵelementStart(5, "div", 76);
347
+ i0.ɵɵrepeaterCreate(6, BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_4_For_7_Template, 7, 4, "div", 77, _forTrack1);
348
+ i0.ɵɵelementEnd()();
349
+ } if (rf & 2) {
350
+ const ctx_r1 = i0.ɵɵnextContext(2);
351
+ i0.ɵɵadvance(6);
352
+ i0.ɵɵrepeater(ctx_r1.StepBars);
353
+ } }
354
+ function BizAppsProductPricingWidgetComponent_Conditional_28_Template(rf, ctx) { if (rf & 1) {
355
+ i0.ɵɵconditionalCreate(0, BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_0_Template, 4, 0, "div", 27)(1, BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_1_Template, 9, 1, "div", 28)(2, BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_2_Template, 23, 0, "div", 29);
356
+ i0.ɵɵconditionalCreate(3, BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_3_Template, 36, 6, "div", 30);
357
+ i0.ɵɵconditionalCreate(4, BizAppsProductPricingWidgetComponent_Conditional_28_Conditional_4_Template, 8, 0, "div", 31);
358
+ } if (rf & 2) {
359
+ const ctx_r1 = i0.ɵɵnextContext();
360
+ i0.ɵɵconditional(ctx_r1.IsLoading ? 0 : ctx_r1.LadderTiers.length === 0 ? 1 : 2);
361
+ i0.ɵɵadvance(3);
362
+ i0.ɵɵconditional(ctx_r1.EditMode ? 3 : -1);
363
+ i0.ɵɵadvance();
364
+ i0.ɵɵconditional(ctx_r1.StepBars.length > 0 ? 4 : -1);
365
+ } }
366
+ const PRODUCT_PRICES_ENTITY = 'MJ_BizApps_Orders: Product Prices';
367
+ const PRICE_LISTS_ENTITY = 'MJ_BizApps_Orders: Price Lists';
368
+ /**
369
+ * World-Class Product Pricing Matrix & Volume Ladder Widget (Option 1).
370
+ *
371
+ * Provides commercial channel segmentation (Base List, Wholesale, Partner),
372
+ * rapid 1-click volume tier ladder configuration with automatic gap/overlap protection,
373
+ * live discount & savings math, non-intrusive toast notifications, and an interactive step curve.
374
+ */
375
+ export class BizAppsProductPricingWidgetComponent {
376
+ Product;
377
+ EditMode = false;
378
+ FormContext;
379
+ Navigate = new EventEmitter();
380
+ PriceChanged = new EventEmitter();
381
+ TierAdded = new EventEmitter();
382
+ cdr;
383
+ navService;
384
+ constructor() {
385
+ try {
386
+ this.cdr = inject(ChangeDetectorRef, { optional: true }) ?? undefined;
387
+ }
388
+ catch {
389
+ this.cdr = undefined;
390
+ }
391
+ try {
392
+ this.navService = inject(NavigationService, { optional: true }) ?? undefined;
393
+ }
394
+ catch {
395
+ this.navService = undefined;
396
+ }
397
+ }
398
+ IsLoading = false;
399
+ IsSaving = false;
400
+ IsAdvancedGridView = false;
401
+ ActiveToast = null;
402
+ toastTimer;
403
+ Channels = [
404
+ { ID: null, Name: 'Base / Direct List', Icon: 'fa-solid fa-globe', TierCount: 0 }
405
+ ];
406
+ SelectedChannelID = null;
407
+ AllPriceRecords = [];
408
+ LadderTiers = [];
409
+ StepBars = [];
410
+ // Quick Add Tier Model
411
+ NewTierMin = 1;
412
+ NewTierMax = null;
413
+ NewTierPrice = 0;
414
+ NewTierModel = 'Volume';
415
+ // Pricing Simulation
416
+ SimQuantity = 1;
417
+ SimResult = {
418
+ DiscountPercent: 0,
419
+ UnitPrice: 0,
420
+ TotalAmount: 0,
421
+ TotalSavings: 0,
422
+ };
423
+ RecalculateSimulation() {
424
+ const base = this.Product?.StandaloneSellingPrice ?? 0;
425
+ let discount = 0;
426
+ if (this.SimQuantity >= 50) {
427
+ discount = 25;
428
+ }
429
+ else if (this.SimQuantity >= 25) {
430
+ discount = 15;
431
+ }
432
+ else if (this.SimQuantity >= 10) {
433
+ discount = 10;
434
+ }
435
+ const unit = base * (1 - discount / 100);
436
+ const total = unit * this.SimQuantity;
437
+ const savings = (base * this.SimQuantity) - total;
438
+ this.SimResult = {
439
+ DiscountPercent: discount,
440
+ UnitPrice: unit,
441
+ TotalAmount: total,
442
+ TotalSavings: savings,
443
+ };
444
+ }
445
+ ngOnInit() {
446
+ this.LoadPricingData();
447
+ }
448
+ ngOnChanges(changes) {
449
+ if (changes['Product'] && !changes['Product'].isFirstChange()) {
450
+ this.LoadPricingData();
451
+ }
452
+ }
453
+ get BaseListPrice() {
454
+ // Base list price is the single-unit price of the base list (or StandaloneSellingPrice if set)
455
+ if (this.Product?.StandaloneSellingPrice && Number(this.Product.StandaloneSellingPrice) > 0) {
456
+ return Number(this.Product.StandaloneSellingPrice);
457
+ }
458
+ const baseFirstTier = this.AllPriceRecords.find(p => !p.PriceListID && (Number(p.MinQuantity) === 1 || !p.MinQuantity));
459
+ if (baseFirstTier && Number(baseFirstTier.Amount) > 0) {
460
+ return Number(baseFirstTier.Amount);
461
+ }
462
+ return 0;
463
+ }
464
+ get FormattedBasePrice() {
465
+ return FormatMoney(this.BaseListPrice);
466
+ }
467
+ get ProductPricesViewParams() {
468
+ if (!this.Product?.ID)
469
+ return null;
470
+ return {
471
+ EntityName: PRODUCT_PRICES_ENTITY,
472
+ ExtraFilter: `ProductID = '${this.Product.ID}'`,
473
+ OrderBy: 'MinQuantity ASC, EffectiveFrom DESC',
474
+ ResultType: 'entity_object',
475
+ };
476
+ }
477
+ get NewPriceRecordValues() {
478
+ return {
479
+ ProductID: this.Product?.ID,
480
+ PriceListID: this.SelectedChannelID,
481
+ };
482
+ }
483
+ async LoadPricingData() {
484
+ if (!this.Product?.ID)
485
+ return;
486
+ this.IsLoading = true;
487
+ this.cdr?.markForCheck();
488
+ try {
489
+ if (this.Product.Prices) {
490
+ await this.Product.Prices.Load();
491
+ this.AllPriceRecords = [...this.Product.Prices.Items];
492
+ }
493
+ else {
494
+ const rv = new RunView();
495
+ const pricesResult = await rv.RunView({
496
+ EntityName: PRODUCT_PRICES_ENTITY,
497
+ ExtraFilter: `ProductID = '${this.Product.ID}'`,
498
+ OrderBy: 'MinQuantity ASC, __mj_CreatedAt ASC',
499
+ ResultType: 'entity_object',
500
+ MaxRows: 100,
501
+ });
502
+ if (pricesResult.Success && pricesResult.Results) {
503
+ this.AllPriceRecords = pricesResult.Results;
504
+ }
505
+ else {
506
+ console.warn('Could not retrieve product prices:', pricesResult.ErrorMessage);
507
+ }
508
+ }
509
+ const rv = new RunView();
510
+ const listsResult = await rv.RunView({
511
+ EntityName: PRICE_LISTS_ENTITY,
512
+ OrderBy: 'Name ASC',
513
+ ResultType: 'entity_object',
514
+ MaxRows: 50,
515
+ });
516
+ // Build Channels
517
+ const availableLists = listsResult.Success && listsResult.Results ? listsResult.Results : [];
518
+ this.buildChannelsList(availableLists);
519
+ // Build Ladder for currently selected channel
520
+ this.rebuildLadder();
521
+ }
522
+ catch (err) {
523
+ console.error('Failed to load product pricing records:', err);
524
+ }
525
+ finally {
526
+ this.IsLoading = false;
527
+ this.cdr?.markForCheck();
528
+ }
529
+ }
530
+ buildChannelsList(allPriceLists) {
531
+ const baseTiersCount = this.AllPriceRecords.filter(p => !p.PriceListID).length;
532
+ const channels = [
533
+ {
534
+ ID: null,
535
+ Name: 'Base / Direct List',
536
+ Icon: 'fa-solid fa-globe',
537
+ TierCount: baseTiersCount,
538
+ }
539
+ ];
540
+ for (const pl of allPriceLists) {
541
+ const tierCount = this.AllPriceRecords.filter(p => p.PriceListID === pl.ID).length;
542
+ let icon = 'fa-solid fa-tags';
543
+ const nameLower = (pl.Name || '').toLowerCase();
544
+ if (nameLower.includes('wholesale'))
545
+ icon = 'fa-solid fa-boxes-stacked';
546
+ else if (nameLower.includes('partner'))
547
+ icon = 'fa-solid fa-handshake';
548
+ else if (nameLower.includes('gov') || nameLower.includes('non-profit'))
549
+ icon = 'fa-solid fa-building-columns';
550
+ else if (nameLower.includes('vip') || nameLower.includes('enterprise'))
551
+ icon = 'fa-solid fa-crown';
552
+ channels.push({
553
+ ID: pl.ID,
554
+ Name: pl.Name || 'Custom Price List',
555
+ Icon: icon,
556
+ TierCount: tierCount,
557
+ DiscountDescription: pl.Description || undefined,
558
+ });
559
+ }
560
+ this.Channels = channels;
561
+ }
562
+ SelectChannel(channelId) {
563
+ this.SelectedChannelID = channelId;
564
+ this.rebuildLadder();
565
+ }
566
+ ToggleAdvancedView() {
567
+ this.IsAdvancedGridView = !this.IsAdvancedGridView;
568
+ this.cdr?.markForCheck();
569
+ }
570
+ rebuildLadder() {
571
+ const channelRecords = this.AllPriceRecords
572
+ .filter(p => (this.SelectedChannelID === null ? !p.PriceListID : p.PriceListID === this.SelectedChannelID))
573
+ .sort((a, b) => (Number(a.MinQuantity) || 0) - (Number(b.MinQuantity) || 0));
574
+ const base = this.BaseListPrice;
575
+ const tiers = channelRecords.map((rec, index) => {
576
+ const min = Number(rec.MinQuantity) || 1;
577
+ const max = rec.MaxQuantity != null && !isNaN(Number(rec.MaxQuantity)) ? Number(rec.MaxQuantity) : null;
578
+ const amount = Number(rec.Amount) || 0;
579
+ const savings = Math.max(0, base - amount);
580
+ const discountPct = base > 0 ? Math.max(0, Math.round((savings / base) * 1000) / 10) : 0;
581
+ let bracketLabel = `Tier ${index + 1}`;
582
+ if (index === 0 && min === 1)
583
+ bracketLabel = 'Tier 1 (Base)';
584
+ else if (max != null && max <= 49)
585
+ bracketLabel = `Tier ${index + 1} (Mid-Market)`;
586
+ else if (max != null && max <= 99)
587
+ bracketLabel = `Tier ${index + 1} (Volume)`;
588
+ else
589
+ bracketLabel = `Tier ${index + 1} (Enterprise)`;
590
+ const rangeText = max != null ? `${min} – ${max} units` : `${min}+ units`;
591
+ return {
592
+ Record: rec,
593
+ ID: rec.ID,
594
+ TierNumber: index + 1,
595
+ BracketLabel: bracketLabel,
596
+ MinQuantity: min,
597
+ MaxQuantity: max,
598
+ UnitRangeText: rangeText,
599
+ Amount: amount,
600
+ DiscountPercent: discountPct,
601
+ UnitSavings: savings,
602
+ PricingModel: rec.PricingModel || 'PerUnit',
603
+ FeeType: rec.FeeType || 'Standard',
604
+ EffectiveDatesText: rec.EffectiveTo ? `Until ${new Date(rec.EffectiveTo).toLocaleDateString()}` : 'Always Active',
605
+ IsBaseBracket: index === 0 && min === 1 && this.SelectedChannelID === null,
606
+ };
607
+ });
608
+ this.LadderTiers = tiers;
609
+ // Auto-configure quick-add fields for next tier
610
+ if (tiers.length === 0) {
611
+ this.NewTierMin = 1;
612
+ this.NewTierMax = 9;
613
+ this.NewTierPrice = base > 0 ? base : 100;
614
+ this.NewTierModel = 'PerUnit';
615
+ }
616
+ else {
617
+ const lastTier = tiers[tiers.length - 1];
618
+ if (lastTier.MaxQuantity != null && !isNaN(Number(lastTier.MaxQuantity))) {
619
+ this.NewTierMin = Number(lastTier.MaxQuantity) + 1;
620
+ this.NewTierMax = this.NewTierMin + 49;
621
+ this.NewTierPrice = Math.max(1, Math.round((Number(lastTier.Amount) || base || 100) * 0.85));
622
+ }
623
+ else {
624
+ this.NewTierMin = (Number(lastTier.MinQuantity) || 1) + 50;
625
+ this.NewTierMax = null;
626
+ this.NewTierPrice = Math.max(1, Math.round((Number(lastTier.Amount) || base || 100) * 0.85));
627
+ }
628
+ this.NewTierModel = 'Volume';
629
+ }
630
+ // Build Step Curve Bars
631
+ this.buildStepBars(tiers, base);
632
+ this.cdr?.markForCheck();
633
+ }
634
+ buildStepBars(tiers, basePrice) {
635
+ if (tiers.length === 0) {
636
+ this.StepBars = [];
637
+ return;
638
+ }
639
+ let maxPrice = basePrice;
640
+ for (const t of tiers) {
641
+ if (t.Amount > maxPrice)
642
+ maxPrice = t.Amount;
643
+ }
644
+ this.StepBars = tiers.map(t => {
645
+ const pct = maxPrice > 0 ? Math.max(12, Math.round((t.Amount / maxPrice) * 100)) : 100;
646
+ const shortLabel = t.MaxQuantity != null ? `${t.MinQuantity}–${t.MaxQuantity}` : `${t.MinQuantity}+`;
647
+ return {
648
+ Label: shortLabel,
649
+ Amount: t.Amount,
650
+ FormattedAmount: FormatMoney(t.Amount),
651
+ Percentage: pct,
652
+ };
653
+ });
654
+ }
655
+ async AddTierBracket() {
656
+ if (!this.Product?.ID) {
657
+ this.ShowToast('Cannot add pricing tier: Product must be saved first.', 'error');
658
+ return;
659
+ }
660
+ const minQty = Number(this.NewTierMin) || 1;
661
+ const maxQtyVal = this.NewTierMax != null && String(this.NewTierMax).trim() !== ''
662
+ ? Number(this.NewTierMax)
663
+ : null;
664
+ const maxQty = maxQtyVal !== null && !isNaN(maxQtyVal) && maxQtyVal >= minQty
665
+ ? maxQtyVal
666
+ : null;
667
+ const amount = Number(this.NewTierPrice);
668
+ this.IsSaving = true;
669
+ this.cdr?.markForCheck();
670
+ try {
671
+ // 1. Auto-adjust prior open-ended or overlapping sibling tiers in the same channel
672
+ const channelSiblings = this.AllPriceRecords.filter(p => (this.SelectedChannelID === null ? !p.PriceListID : p.PriceListID === this.SelectedChannelID) &&
673
+ p.Status === 'Active' &&
674
+ (p.FeeType || 'Standard') === 'Standard');
675
+ for (const sib of channelSiblings) {
676
+ const sibMin = Number(sib.MinQuantity) || 1;
677
+ const sibMax = sib.MaxQuantity != null ? Number(sib.MaxQuantity) : null;
678
+ // If sibling started before our new tier and has open end (null) or extends into our range
679
+ if (sibMin < minQty && (sibMax === null || sibMax >= minQty)) {
680
+ sib.MaxQuantity = minQty - 1;
681
+ const sibSaved = await sib.Save();
682
+ if (!sibSaved) {
683
+ console.warn('Could not adjust sibling tier upper bound:', sib.LatestResult);
684
+ }
685
+ }
686
+ }
687
+ // 2. Instantiate and save the new tier bracket
688
+ let newPrice;
689
+ if (this.Product.Prices) {
690
+ newPrice = await this.Product.Prices.Create();
691
+ }
692
+ else {
693
+ const md = new Metadata();
694
+ const obj = await md.GetEntityObject(PRODUCT_PRICES_ENTITY);
695
+ if (!obj)
696
+ throw new Error(`Failed to create entity object for ${PRODUCT_PRICES_ENTITY}`);
697
+ newPrice = obj;
698
+ }
699
+ newPrice.ProductID = this.Product.ID;
700
+ newPrice.PriceListID = this.SelectedChannelID;
701
+ newPrice.MinQuantity = minQty;
702
+ newPrice.MaxQuantity = maxQty;
703
+ newPrice.Amount = isNaN(amount) ? 0 : amount;
704
+ newPrice.PricingModel = this.NewTierModel || 'Volume';
705
+ newPrice.FeeType = 'Standard';
706
+ newPrice.Priority = 0;
707
+ newPrice.Status = 'Active';
708
+ newPrice.EffectiveFrom = new Date();
709
+ const saved = await newPrice.Save();
710
+ if (saved) {
711
+ await this.LoadPricingData();
712
+ this.PriceChanged.emit();
713
+ this.TierAdded.emit(newPrice);
714
+ const bracketDesc = maxQty != null ? `${minQty}–${maxQty} units` : `${minQty}+ units`;
715
+ this.ShowToast(`Added tier bracket (${bracketDesc}) for ${this.FormatCurrency(amount)}`, 'success');
716
+ }
717
+ else {
718
+ console.error('Failed to save product price record:', newPrice.LatestResult);
719
+ const errMsg = this.extractErrorMessage(newPrice.LatestResult);
720
+ this.ShowToast(`Could not save pricing bracket: ${errMsg}`, 'error', 6000);
721
+ }
722
+ }
723
+ catch (err) {
724
+ console.error('Failed to create tier bracket:', err);
725
+ const errMsg = err instanceof Error ? err.message : String(err);
726
+ this.ShowToast(`Error creating pricing bracket: ${errMsg}`, 'error', 6000);
727
+ }
728
+ finally {
729
+ this.IsSaving = false;
730
+ this.cdr?.markForCheck();
731
+ }
732
+ }
733
+ async OnPriceInputBlur(tier, event) {
734
+ const input = event.target;
735
+ const rawVal = parseFloat(input.value.replace(/[^0-9.]/g, ''));
736
+ if (isNaN(rawVal) || rawVal === tier.Amount) {
737
+ input.value = this.FormatCurrency(tier.Amount);
738
+ return;
739
+ }
740
+ tier.Record.Amount = rawVal;
741
+ this.IsSaving = true;
742
+ this.cdr?.markForCheck();
743
+ try {
744
+ const saved = await tier.Record.Save();
745
+ if (saved) {
746
+ await this.LoadPricingData();
747
+ this.PriceChanged.emit();
748
+ this.ShowToast(`Updated price for ${tier.BracketLabel} to ${this.FormatCurrency(rawVal)}`, 'success');
749
+ }
750
+ else {
751
+ console.error('Failed to update price:', tier.Record.LatestResult);
752
+ const errMsg = this.extractErrorMessage(tier.Record.LatestResult);
753
+ this.ShowToast(`Failed to update price: ${errMsg}`, 'error');
754
+ input.value = this.FormatCurrency(tier.Amount);
755
+ }
756
+ }
757
+ catch (err) {
758
+ console.error('Failed to update tier price:', err);
759
+ const errMsg = err instanceof Error ? err.message : String(err);
760
+ this.ShowToast(`Error updating price: ${errMsg}`, 'error');
761
+ input.value = this.FormatCurrency(tier.Amount);
762
+ }
763
+ finally {
764
+ this.IsSaving = false;
765
+ this.cdr?.markForCheck();
766
+ }
767
+ }
768
+ async DeleteTier(tier) {
769
+ this.IsSaving = true;
770
+ this.cdr?.markForCheck();
771
+ try {
772
+ if (this.Product.Prices && this.Product.Prices.Items.includes(tier.Record)) {
773
+ this.Product.Prices.Remove(tier.Record);
774
+ }
775
+ const deleted = await tier.Record.Delete();
776
+ if (deleted) {
777
+ await this.LoadPricingData();
778
+ this.PriceChanged.emit();
779
+ this.ShowToast(`Deleted ${tier.BracketLabel} (${tier.UnitRangeText})`, 'info');
780
+ }
781
+ else {
782
+ console.error('Failed to delete tier:', tier.Record.LatestResult);
783
+ const errMsg = this.extractErrorMessage(tier.Record.LatestResult);
784
+ this.ShowToast(`Failed to delete tier: ${errMsg}`, 'error');
785
+ }
786
+ }
787
+ catch (err) {
788
+ console.error('Failed to delete tier:', err);
789
+ const errMsg = err instanceof Error ? err.message : String(err);
790
+ this.ShowToast(`Error deleting tier: ${errMsg}`, 'error');
791
+ }
792
+ finally {
793
+ this.IsSaving = false;
794
+ this.cdr?.markForCheck();
795
+ }
796
+ }
797
+ OpenTierRecord(tier) {
798
+ this.Navigate.emit({
799
+ Kind: 'record',
800
+ EntityName: PRODUCT_PRICES_ENTITY,
801
+ PrimaryKey: CompositeKey.FromID(tier.ID),
802
+ });
803
+ if (this.navService) {
804
+ this.navService.OpenEntityRecord(PRODUCT_PRICES_ENTITY, CompositeKey.FromID(tier.ID));
805
+ }
806
+ }
807
+ OpenNewPriceDialog() {
808
+ this.Navigate.emit({
809
+ Kind: 'new-record',
810
+ EntityName: PRODUCT_PRICES_ENTITY,
811
+ DefaultValues: this.NewPriceRecordValues,
812
+ });
813
+ if (this.navService) {
814
+ this.navService.OpenNewEntityRecord(PRODUCT_PRICES_ENTITY, this.NewPriceRecordValues);
815
+ }
816
+ }
817
+ ShowToast(message, type = 'info', durationMs = 4000) {
818
+ let icon = 'fa-solid fa-circle-info';
819
+ if (type === 'success')
820
+ icon = 'fa-solid fa-circle-check';
821
+ if (type === 'error')
822
+ icon = 'fa-solid fa-triangle-exclamation';
823
+ this.ActiveToast = { Type: type, Message: message, Icon: icon };
824
+ this.cdr?.markForCheck();
825
+ try {
826
+ const store = GetGlobalObjectStore();
827
+ const notifService = store ? store['MJNotificationService'] : undefined;
828
+ if (notifService && typeof notifService.CreateSimpleNotification === 'function') {
829
+ notifService.CreateSimpleNotification(message, type, durationMs);
830
+ }
831
+ }
832
+ catch {
833
+ // Safe fallback
834
+ }
835
+ if (this.toastTimer) {
836
+ clearTimeout(this.toastTimer);
837
+ }
838
+ this.toastTimer = setTimeout(() => {
839
+ this.ActiveToast = null;
840
+ this.cdr?.markForCheck();
841
+ }, durationMs);
842
+ }
843
+ DismissToast() {
844
+ if (this.toastTimer) {
845
+ clearTimeout(this.toastTimer);
846
+ }
847
+ this.ActiveToast = null;
848
+ this.cdr?.markForCheck();
849
+ }
850
+ extractErrorMessage(result) {
851
+ if (!result)
852
+ return 'An unexpected error occurred.';
853
+ if (typeof result === 'string') {
854
+ try {
855
+ const parsed = JSON.parse(result);
856
+ return parsed.Message || parsed.message || result;
857
+ }
858
+ catch {
859
+ return result;
860
+ }
861
+ }
862
+ if (typeof result === 'object' && result !== null) {
863
+ const obj = result;
864
+ if (typeof obj['Message'] === 'string')
865
+ return this.extractErrorMessage(obj['Message']);
866
+ if (typeof obj['message'] === 'string')
867
+ return this.extractErrorMessage(obj['message']);
868
+ }
869
+ return 'Operation failed';
870
+ }
871
+ FormatCurrency(val) {
872
+ return FormatMoney(val);
873
+ }
874
+ static ɵfac = function BizAppsProductPricingWidgetComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || BizAppsProductPricingWidgetComponent)(); };
875
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: BizAppsProductPricingWidgetComponent, selectors: [["bizapps-product-pricing-widget"]], inputs: { Product: "Product", EditMode: "EditMode", FormContext: "FormContext" }, outputs: { Navigate: "Navigate", PriceChanged: "PriceChanged", TierAdded: "TierAdded" }, standalone: false, features: [i0.ɵɵNgOnChangesFeature], decls: 29, vars: 19, consts: [[1, "mjo-pricing-widget-wrap"], [1, "mjo-toast", 3, "class"], [1, "mjo-pricing-card"], [1, "mjo-card-header"], [1, "mjo-card-title"], [1, "fa-solid", "fa-calculator"], [1, "mjo-base-pill"], [1, "mjo-pricing-fields"], ["FieldName", "StandaloneSellingPrice", "Type", "numerictextbox", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "RevenueRecognitionTypeID", "Type", "textbox", "LinkType", "Record", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "IsTaxable", "Type", "checkbox", 3, "Navigate", "Record", "ShowLabel", "EditMode", "FormContext"], [1, "mjo-channel-bar"], [1, "mjo-channel-list"], ["type", "button", 1, "mjo-channel-tab", 3, "active"], [1, "mjo-channel-actions"], ["type", "button", 1, "mjo-btn-subtle", 3, "click"], ["type", "button", 1, "mjo-btn-subtle"], [1, "mjo-toast"], [1, "mjo-toast-left"], [1, "mjo-toast-msg"], ["type", "button", 1, "mjo-toast-close", 3, "click"], [1, "fa-solid", "fa-xmark"], ["type", "button", 1, "mjo-channel-tab", 3, "click"], [1, "mjo-channel-count"], [1, "fa-solid", "fa-plus"], [1, "mjo-grid-wrap"], [3, "Navigate", "Params", "NewRecordValues", "Height", "AllowLoad", "ShowToolbar", "ShowNewButton", "ShowDeleteButton"], [1, "mjo-loading-state"], [1, "mjo-empty-tiers"], [1, "mjo-ladder-table-wrap"], [1, "mjo-quick-add-bar"], [1, "mjo-step-curve-wrap"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "mjo-empty-icon"], [1, "fa-solid", "fa-tags"], [1, "mjo-empty-text"], [1, "mjo-ladder-table"], [1, "mjo-th-num"], [1, "mjo-th-actions"], [1, "mjo-tier-title"], [1, "mjo-range-pill"], [1, "mjo-td-num"], ["type", "text", 1, "mjo-price-input", 3, "value", "title"], [1, "mjo-price-val"], [1, "mjo-disc-tag"], [1, "mjo-standard-tag"], [1, "mjo-savings-val"], [2, "color", "var(--mj-text-muted, #94a3b8)"], [1, "mjo-model-tag"], [1, "mjo-date-tag"], [1, "mjo-td-actions"], ["type", "button", "title", "Open full price rule", 1, "mjo-action-btn", 3, "click"], [1, "fa-solid", "fa-arrow-up-right-from-square"], ["type", "button", "title", "Delete tier", 1, "mjo-action-btn", "mjo-action-btn--delete"], ["type", "text", 1, "mjo-price-input", 3, "blur", "value", "title"], [1, "fa-solid", "fa-arrow-down"], ["type", "button", "title", "Delete tier", 1, "mjo-action-btn", "mjo-action-btn--delete", 3, "click"], [1, "fa-solid", "fa-trash"], [1, "mjo-quick-add-inputs"], [1, "mjo-quick-add-label"], [1, "fa-solid", "fa-plus-circle"], [1, "mjo-field-group"], [1, "mjo-sub-label"], ["type", "number", "min", "1", 1, "mjo-input-num", 3, "ngModelChange", "ngModel"], ["type", "number", "placeholder", "\u221E", 1, "mjo-input-num", 3, "ngModelChange", "ngModel"], ["type", "number", "min", "0", "step", "0.01", 1, "mjo-input-price", 3, "ngModelChange", "ngModel"], [1, "mjo-input-select", 3, "ngModelChange", "ngModel"], ["value", "Volume"], ["value", "PerUnit"], ["value", "Tiered"], ["value", "Flat"], ["type", "button", 1, "mjo-btn-add", 3, "click", "disabled"], [1, "mjo-guard-badge"], [1, "fa-solid", "fa-shield-halved"], [1, "mjo-step-curve-title"], [1, "fa-solid", "fa-chart-simple"], [1, "mjo-step-curve-bars"], [1, "mjo-step-col"], [1, "mjo-step-val"], [1, "mjo-step-track"], [1, "mjo-step-fill"], [1, "mjo-step-label"]], template: function BizAppsProductPricingWidgetComponent_Template(rf, ctx) { if (rf & 1) {
876
+ i0.ɵɵelementStart(0, "div", 0);
877
+ i0.ɵɵconditionalCreate(1, BizAppsProductPricingWidgetComponent_Conditional_1_Template, 7, 5, "div", 1);
878
+ i0.ɵɵelementStart(2, "div", 2)(3, "div", 3)(4, "div", 4);
879
+ i0.ɵɵelement(5, "i", 5);
880
+ i0.ɵɵelementStart(6, "span");
881
+ i0.ɵɵtext(7, "Base Commercial Terms & ASC 606 Allocation");
882
+ i0.ɵɵelementEnd()();
883
+ i0.ɵɵelementStart(8, "div", 6);
884
+ i0.ɵɵtext(9, " Base List: ");
885
+ i0.ɵɵelementStart(10, "strong");
886
+ i0.ɵɵtext(11);
887
+ i0.ɵɵelementEnd()()();
888
+ i0.ɵɵelementStart(12, "div", 7)(13, "mj-form-field", 8);
889
+ i0.ɵɵlistener("Navigate", function BizAppsProductPricingWidgetComponent_Template_mj_form_field_Navigate_13_listener($event) { return ctx.Navigate.emit($event); });
890
+ i0.ɵɵelementEnd();
891
+ i0.ɵɵelementStart(14, "mj-form-field", 9);
892
+ i0.ɵɵlistener("Navigate", function BizAppsProductPricingWidgetComponent_Template_mj_form_field_Navigate_14_listener($event) { return ctx.Navigate.emit($event); });
893
+ i0.ɵɵelementEnd();
894
+ i0.ɵɵelementStart(15, "mj-form-field", 10);
895
+ i0.ɵɵlistener("Navigate", function BizAppsProductPricingWidgetComponent_Template_mj_form_field_Navigate_15_listener($event) { return ctx.Navigate.emit($event); });
896
+ i0.ɵɵelementEnd()()();
897
+ i0.ɵɵelementStart(16, "div", 2)(17, "div", 11)(18, "div", 12);
898
+ i0.ɵɵrepeaterCreate(19, BizAppsProductPricingWidgetComponent_For_20_Template, 6, 7, "button", 13, _forTrack0);
899
+ i0.ɵɵelementEnd();
900
+ i0.ɵɵelementStart(21, "div", 14)(22, "button", 15);
901
+ i0.ɵɵlistener("click", function BizAppsProductPricingWidgetComponent_Template_button_click_22_listener() { return ctx.ToggleAdvancedView(); });
902
+ i0.ɵɵelement(23, "i");
903
+ i0.ɵɵelementStart(24, "span");
904
+ i0.ɵɵtext(25);
905
+ i0.ɵɵelementEnd()();
906
+ i0.ɵɵconditionalCreate(26, BizAppsProductPricingWidgetComponent_Conditional_26_Template, 4, 0, "button", 16);
907
+ i0.ɵɵelementEnd()();
908
+ i0.ɵɵconditionalCreate(27, BizAppsProductPricingWidgetComponent_Conditional_27_Template, 1, 1)(28, BizAppsProductPricingWidgetComponent_Conditional_28_Template, 5, 3);
909
+ i0.ɵɵelementEnd()();
910
+ } if (rf & 2) {
911
+ i0.ɵɵadvance();
912
+ i0.ɵɵconditional(ctx.ActiveToast ? 1 : -1);
913
+ i0.ɵɵadvance(10);
914
+ i0.ɵɵtextInterpolate(ctx.FormattedBasePrice);
915
+ i0.ɵɵadvance(2);
916
+ i0.ɵɵproperty("Record", ctx.Product)("ShowLabel", true)("EditMode", ctx.EditMode)("FormContext", ctx.FormContext);
917
+ i0.ɵɵadvance();
918
+ i0.ɵɵproperty("Record", ctx.Product)("ShowLabel", true)("EditMode", ctx.EditMode)("FormContext", ctx.FormContext);
919
+ i0.ɵɵadvance();
920
+ i0.ɵɵproperty("Record", ctx.Product)("ShowLabel", true)("EditMode", ctx.EditMode)("FormContext", ctx.FormContext);
921
+ i0.ɵɵadvance(4);
922
+ i0.ɵɵrepeater(ctx.Channels);
923
+ i0.ɵɵadvance(4);
924
+ i0.ɵɵclassMap(ctx.IsAdvancedGridView ? "fa-solid fa-stairs" : "fa-solid fa-table-cells");
925
+ i0.ɵɵadvance(2);
926
+ i0.ɵɵtextInterpolate(ctx.IsAdvancedGridView ? "View Quick Ladder" : "Advanced Grid View");
927
+ i0.ɵɵadvance();
928
+ i0.ɵɵconditional(ctx.EditMode ? 26 : -1);
929
+ i0.ɵɵadvance();
930
+ i0.ɵɵconditional(ctx.IsAdvancedGridView ? 27 : 28);
931
+ } }, dependencies: [i1.NgSelectOption, i1.ɵNgSelectMultipleOption, i1.DefaultValueAccessor, i1.NumberValueAccessor, i1.SelectControlValueAccessor, i1.NgControlStatus, i1.MinValidator, i1.NgModel, i2.MjFormFieldComponent, i2.ExplorerEntityDataGridComponent], styles: [".mjo-pricing-widget-wrap[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n width: 100%;\n position: relative;\n}\n\n\n\n.mjo-toast[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 16px;\n border-radius: var(--mj-radius-md, 8px);\n font-size: 13px;\n font-weight: 500;\n animation: _ngcontent-%COMP%_mjo-toast-in 0.25s cubic-bezier(0.16, 1, 0.3, 1);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n border: 1px solid transparent;\n}\n\n@keyframes _ngcontent-%COMP%_mjo-toast-in {\n from { opacity: 0; transform: translateY(-6px); }\n to { opacity: 1; transform: translateY(0); }\n}\n\n.mjo-toast--success[_ngcontent-%COMP%] {\n background: rgba(22, 163, 74, 0.15);\n border-color: rgba(22, 163, 74, 0.3);\n color: #22c55e;\n}\n\n.mjo-toast--error[_ngcontent-%COMP%] {\n background: rgba(239, 68, 68, 0.15);\n border-color: rgba(239, 68, 68, 0.3);\n color: #f87171;\n}\n\n.mjo-toast--info[_ngcontent-%COMP%] {\n background: rgba(2, 132, 199, 0.15);\n border-color: rgba(2, 132, 199, 0.3);\n color: #38bdf8;\n}\n\n.mjo-toast-left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.mjo-toast-left[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n}\n\n.mjo-toast-msg[_ngcontent-%COMP%] {\n line-height: 1.4;\n}\n\n.mjo-toast-close[_ngcontent-%COMP%] {\n background: transparent;\n border: none;\n color: currentColor;\n opacity: 0.7;\n cursor: pointer;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 13px;\n}\n\n.mjo-toast-close[_ngcontent-%COMP%]:hover {\n opacity: 1;\n}\n\n.mjo-pricing-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card, rgba(255, 255, 255, 0.05));\n border: 1px solid var(--mj-border-default, rgba(255, 255, 255, 0.12));\n border-radius: var(--mj-radius-lg, 10px);\n overflow: hidden;\n}\n\n.mjo-card-header[_ngcontent-%COMP%] {\n padding: 12px 16px;\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.1));\n border-bottom: 1px solid var(--mj-border-default, rgba(255, 255, 255, 0.1));\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n}\n\n.mjo-card-title[_ngcontent-%COMP%] {\n font-size: 13.5px;\n font-weight: 700;\n color: var(--mj-text-primary, #0f172a);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.mjo-card-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary, #0284c7);\n}\n\n.mjo-base-pill[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted, #64748b);\n}\n\n.mjo-base-pill[_ngcontent-%COMP%] strong[_ngcontent-%COMP%] {\n font-family: var(--mj-font-mono, monospace);\n color: var(--mj-brand-primary, #0284c7);\n}\n\n.mjo-pricing-fields[_ngcontent-%COMP%] {\n padding: 16px;\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n gap: 16px;\n}\n\n\n\n.mjo-channel-bar[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.1));\n border-bottom: 1px solid var(--mj-border-default, rgba(255, 255, 255, 0.1));\n padding: 0 12px;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.mjo-channel-list[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n overflow-x: auto;\n}\n\n.mjo-channel-tab[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 12px 14px;\n background: transparent;\n border: none;\n border-bottom: 2px solid transparent;\n font-size: 12.5px;\n font-weight: 600;\n color: var(--mj-text-muted, #94a3b8);\n cursor: pointer;\n transition: all 0.15s ease;\n white-space: nowrap;\n}\n\n.mjo-channel-tab[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-channel-tab.active[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary, #0284c7);\n border-bottom-color: var(--mj-brand-primary, #0284c7);\n background: var(--mj-bg-surface-card, rgba(255, 255, 255, 0.05));\n}\n\n.mjo-channel-count[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 700;\n padding: 2px 6px;\n border-radius: 9999px;\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.15));\n color: var(--mj-text-secondary, #cbd5e1);\n}\n\n.mjo-channel-tab.active[_ngcontent-%COMP%] .mjo-channel-count[_ngcontent-%COMP%] {\n background: rgba(2, 132, 199, 0.18);\n color: var(--mj-brand-primary, #0284c7);\n}\n\n.mjo-channel-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.mjo-btn-subtle[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n border-radius: 6px;\n font-size: 11.5px;\n font-weight: 600;\n color: var(--mj-text-primary, #0f172a);\n background: var(--mj-bg-surface-card, rgba(255, 255, 255, 0.05));\n border: 1px solid var(--mj-border-default, rgba(255, 255, 255, 0.12));\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.mjo-btn-subtle[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary, #0284c7);\n color: var(--mj-brand-primary, #0284c7);\n}\n\n\n\n.mjo-ladder-table-wrap[_ngcontent-%COMP%] {\n overflow-x: auto;\n width: 100%;\n}\n\n.mjo-ladder-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n text-align: left;\n}\n\n.mjo-ladder-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n padding: 10px 14px;\n font-size: 11px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--mj-text-muted, #64748b);\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.05));\n border-bottom: 1px solid var(--mj-border-default, rgba(255, 255, 255, 0.1));\n}\n\n.mjo-ladder-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 11px 14px;\n border-bottom: 1px solid var(--mj-border-subtle, rgba(255, 255, 255, 0.06));\n color: var(--mj-text-primary, #0f172a);\n vertical-align: middle;\n}\n\n.mjo-ladder-table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover, rgba(255, 255, 255, 0.03));\n}\n\n.mjo-tier-title[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary, #0284c7);\n}\n\n.mjo-range-pill[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-family: var(--mj-font-mono, monospace);\n font-weight: 700;\n font-size: 12px;\n padding: 3px 8px;\n border-radius: 6px;\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.12));\n border: 1px solid var(--mj-border-default, rgba(255, 255, 255, 0.1));\n}\n\n.mjo-price-input[_ngcontent-%COMP%] {\n font-family: var(--mj-font-mono, monospace);\n font-size: 13.5px;\n font-weight: 700;\n color: var(--mj-text-primary, #0f172a);\n background: var(--mj-bg-surface, rgba(0, 0, 0, 0.2));\n border: 1px solid var(--mj-border-default, rgba(255, 255, 255, 0.15));\n border-radius: 6px;\n padding: 5px 8px;\n width: 100px;\n transition: all 0.15s ease;\n}\n\n.mjo-price-input[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-brand-primary, #0284c7);\n box-shadow: 0 0 0 2px rgba(2, 132, 199, 0.25);\n}\n\n.mjo-price-val[_ngcontent-%COMP%] {\n font-family: var(--mj-font-mono, monospace);\n font-size: 13px;\n font-weight: 700;\n color: var(--mj-text-primary, #0f172a);\n display: inline-block;\n padding: 4px 0;\n}\n\n.mjo-disc-tag[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: 11px;\n font-weight: 700;\n padding: 2px 7px;\n border-radius: 4px;\n background: rgba(22, 163, 74, 0.15);\n color: #22c55e;\n}\n\n.mjo-standard-tag[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted, #94a3b8);\n}\n\n.mjo-savings-val[_ngcontent-%COMP%] {\n color: #22c55e;\n font-family: var(--mj-font-mono, monospace);\n font-size: 12.5px;\n}\n\n.mjo-model-tag[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n padding: 2px 7px;\n border-radius: 4px;\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.1));\n color: var(--mj-text-secondary, #cbd5e1);\n}\n\n.mjo-date-tag[_ngcontent-%COMP%] {\n font-size: 11.5px;\n color: var(--mj-text-muted, #94a3b8);\n}\n\n.mjo-th-num[_ngcontent-%COMP%], .mjo-td-num[_ngcontent-%COMP%] { text-align: left; }\n.mjo-th-actions[_ngcontent-%COMP%], .mjo-td-actions[_ngcontent-%COMP%] { text-align: right; }\n\n.mjo-action-btn[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n border-radius: 6px;\n border: 1px solid var(--mj-border-default, rgba(255, 255, 255, 0.1));\n background: var(--mj-bg-surface, rgba(255, 255, 255, 0.05));\n color: var(--mj-text-muted, #94a3b8);\n cursor: pointer;\n font-size: 11px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n transition: all 0.15s ease;\n margin-left: 4px;\n}\n\n.mjo-action-btn[_ngcontent-%COMP%]:hover {\n color: var(--mj-brand-primary, #0284c7);\n border-color: var(--mj-brand-primary, #0284c7);\n}\n\n.mjo-action-btn--delete[_ngcontent-%COMP%]:hover {\n color: #ef4444;\n border-color: #ef4444;\n}\n\n\n\n.mjo-quick-add-bar[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.1));\n border-top: 1px solid var(--mj-border-default, rgba(255, 255, 255, 0.1));\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.mjo-quick-add-inputs[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.mjo-quick-add-label[_ngcontent-%COMP%] {\n font-size: 12.5px;\n font-weight: 700;\n color: var(--mj-brand-primary, #0284c7);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.mjo-field-group[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.mjo-sub-label[_ngcontent-%COMP%] {\n font-size: 11.5px;\n font-weight: 600;\n color: var(--mj-text-muted, #94a3b8);\n}\n\n.mjo-input-num[_ngcontent-%COMP%] {\n width: 65px;\n padding: 5px 8px;\n font-size: 12.5px;\n font-family: var(--mj-font-mono, monospace);\n font-weight: 700;\n text-align: center;\n border-radius: 6px;\n border: 1px solid var(--mj-border-default, rgba(255, 255, 255, 0.15));\n background: var(--mj-bg-surface, rgba(0, 0, 0, 0.2));\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-input-price[_ngcontent-%COMP%] {\n width: 85px;\n padding: 5px 8px;\n font-size: 12.5px;\n font-family: var(--mj-font-mono, monospace);\n font-weight: 700;\n border-radius: 6px;\n border: 1px solid var(--mj-border-default, rgba(255, 255, 255, 0.15));\n background: var(--mj-bg-surface, rgba(0, 0, 0, 0.2));\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-input-select[_ngcontent-%COMP%] {\n padding: 5px 8px;\n font-size: 12px;\n font-weight: 600;\n border-radius: 6px;\n border: 1px solid var(--mj-border-default, rgba(255, 255, 255, 0.15));\n background: var(--mj-bg-surface, rgba(0, 0, 0, 0.2));\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-btn-add[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n border-radius: 6px;\n font-size: 12px;\n font-weight: 700;\n color: #ffffff;\n background: #0284c7;\n border: none;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.mjo-btn-add[_ngcontent-%COMP%]:hover {\n background: #0369a1;\n}\n\n.mjo-btn-add[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.mjo-guard-badge[_ngcontent-%COMP%] {\n font-size: 11.5px;\n color: #22c55e;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n\n\n.mjo-step-curve-wrap[_ngcontent-%COMP%] {\n padding: 14px 18px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.mjo-step-curve-title[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--mj-text-muted, #94a3b8);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.mjo-step-curve-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary, #0284c7);\n}\n\n.mjo-step-curve-bars[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-end;\n gap: 12px;\n height: 80px;\n padding-top: 8px;\n}\n\n.mjo-step-col[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n height: 100%;\n justify-content: flex-end;\n}\n\n.mjo-step-track[_ngcontent-%COMP%] {\n width: 100%;\n max-width: 60px;\n height: 100%;\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.1));\n border-radius: 4px 4px 0 0;\n display: flex;\n align-items: flex-end;\n}\n\n.mjo-step-fill[_ngcontent-%COMP%] {\n width: 100%;\n border-radius: 4px 4px 0 0;\n background: linear-gradient(180deg, #0284c7 0%, #0369a1 100%);\n min-height: 8px;\n transition: height 0.3s ease;\n}\n\n.mjo-step-val[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 700;\n font-family: var(--mj-font-mono, monospace);\n color: var(--mj-brand-primary, #0284c7);\n}\n\n.mjo-step-label[_ngcontent-%COMP%] {\n font-size: 10px;\n font-family: var(--mj-font-mono, monospace);\n color: var(--mj-text-muted, #94a3b8);\n}\n\n.mjo-loading-state[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n padding: 30px;\n font-size: 13px;\n color: var(--mj-text-muted, #94a3b8);\n}\n\n.mjo-empty-tiers[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 24px;\n}\n\n.mjo-empty-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n background: rgba(2, 132, 199, 0.15);\n color: var(--mj-brand-primary, #0284c7);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 18px;\n}\n\n.mjo-empty-text[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 4px 0;\n font-size: 13.5px;\n font-weight: 700;\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-empty-text[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 12px;\n color: var(--mj-text-muted, #94a3b8);\n}\n\n.mjo-grid-wrap[_ngcontent-%COMP%] {\n padding: 0;\n min-height: 400px;\n height: 420px;\n}"] });
932
+ }
933
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BizAppsProductPricingWidgetComponent, [{
934
+ type: Component,
935
+ args: [{ standalone: false, selector: 'bizapps-product-pricing-widget', template: "<div class=\"mjo-pricing-widget-wrap\">\n <!-- Toast Notification Banner -->\n @if (ActiveToast) {\n <div class=\"mjo-toast\" [class]=\"'mjo-toast--' + ActiveToast.Type\">\n <div class=\"mjo-toast-left\">\n <i [class]=\"ActiveToast.Icon\"></i>\n <span class=\"mjo-toast-msg\">{{ ActiveToast.Message }}</span>\n </div>\n <button type=\"button\" class=\"mjo-toast-close\" (click)=\"DismissToast()\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n }\n\n <!-- 1. Top Commercial Parameters Card -->\n <div class=\"mjo-pricing-card\">\n <div class=\"mjo-card-header\">\n <div class=\"mjo-card-title\">\n <i class=\"fa-solid fa-calculator\"></i>\n <span>Base Commercial Terms &amp; ASC 606 Allocation</span>\n </div>\n <div class=\"mjo-base-pill\">\n Base List: <strong>{{ FormattedBasePrice }}</strong>\n </div>\n </div>\n <div class=\"mjo-pricing-fields\">\n <mj-form-field \n [Record]=\"Product\"\n [ShowLabel]=\"true\"\n FieldName=\"StandaloneSellingPrice\"\n Type=\"numerictextbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"FormContext\"\n (Navigate)=\"Navigate.emit($event)\">\n </mj-form-field>\n <mj-form-field \n [Record]=\"Product\"\n [ShowLabel]=\"true\"\n FieldName=\"RevenueRecognitionTypeID\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"FormContext\"\n LinkType=\"Record\"\n (Navigate)=\"Navigate.emit($event)\">\n </mj-form-field>\n <mj-form-field \n [Record]=\"Product\"\n [ShowLabel]=\"true\"\n FieldName=\"IsTaxable\"\n Type=\"checkbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"FormContext\"\n (Navigate)=\"Navigate.emit($event)\">\n </mj-form-field>\n </div>\n </div>\n\n <!-- 2. Channel Segments & Volume Ladder Card -->\n <div class=\"mjo-pricing-card\">\n <!-- Channel Segment Tabs Header -->\n <div class=\"mjo-channel-bar\">\n <div class=\"mjo-channel-list\">\n @for (ch of Channels; track ch.ID) {\n <button \n type=\"button\" \n class=\"mjo-channel-tab\" \n [class.active]=\"SelectedChannelID === ch.ID\"\n (click)=\"SelectChannel(ch.ID)\">\n <i [class]=\"ch.Icon\"></i>\n <span>{{ ch.Name }}</span>\n <span class=\"mjo-channel-count\">{{ ch.TierCount }} {{ ch.TierCount === 1 ? 'Tier' : 'Tiers' }}</span>\n </button>\n }\n </div>\n\n <div class=\"mjo-channel-actions\">\n <button type=\"button\" class=\"mjo-btn-subtle\" (click)=\"ToggleAdvancedView()\">\n <i [class]=\"IsAdvancedGridView ? 'fa-solid fa-stairs' : 'fa-solid fa-table-cells'\"></i>\n <span>{{ IsAdvancedGridView ? 'View Quick Ladder' : 'Advanced Grid View' }}</span>\n </button>\n @if (EditMode) {\n <button type=\"button\" class=\"mjo-btn-subtle\" (click)=\"OpenNewPriceDialog()\">\n <i class=\"fa-solid fa-plus\"></i>\n <span>Add Channel / Rule</span>\n </button>\n }\n </div>\n </div>\n\n @if (IsAdvancedGridView) {\n <!-- Full Advanced Entity Data Grid View -->\n @if (ProductPricesViewParams) {\n <div class=\"mjo-grid-wrap\">\n <mj-explorer-entity-data-grid\n [Params]=\"ProductPricesViewParams\"\n [NewRecordValues]=\"NewPriceRecordValues\"\n [Height]=\"420\"\n [AllowLoad]=\"true\"\n [ShowToolbar]=\"true\"\n [ShowNewButton]=\"EditMode\"\n [ShowDeleteButton]=\"EditMode\"\n (Navigate)=\"Navigate.emit($event)\">\n </mj-explorer-entity-data-grid>\n </div>\n }\n } @else {\n <!-- Option 1: Quick Tier Ladder View -->\n @if (IsLoading) {\n <div class=\"mjo-loading-state\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n <span>Loading price tiers\u2026</span>\n </div>\n } @else if (LadderTiers.length === 0) {\n <div class=\"mjo-empty-tiers\">\n <div class=\"mjo-empty-icon\"><i class=\"fa-solid fa-tags\"></i></div>\n <div class=\"mjo-empty-text\">\n <h4>No Pricing Tiers Configured for this Channel</h4>\n <p>\n @if (EditMode) {\n Use the Quick Bracket builder below to add volume-discounted pricing.\n } @else {\n Switch to Edit mode to configure pricing tiers and volume discounts.\n }\n </p>\n </div>\n </div>\n } @else {\n <div class=\"mjo-ladder-table-wrap\">\n <table class=\"mjo-ladder-table\">\n <thead>\n <tr>\n <th>Tier Bracket</th>\n <th>Unit Range</th>\n <th class=\"mjo-th-num\">Unit Price ($)</th>\n <th>Discount vs Base</th>\n <th>Unit Savings</th>\n <th>Model</th>\n <th>Status / Dates</th>\n <th class=\"mjo-th-actions\">Actions</th>\n </tr>\n </thead>\n <tbody>\n @for (tier of LadderTiers; track tier.ID) {\n <tr>\n <td>\n <strong class=\"mjo-tier-title\">{{ tier.BracketLabel }}</strong>\n </td>\n <td>\n <span class=\"mjo-range-pill\">{{ tier.UnitRangeText }}</span>\n </td>\n <td class=\"mjo-td-num\">\n @if (EditMode) {\n <input \n type=\"text\" \n class=\"mjo-price-input\" \n [value]=\"FormatCurrency(tier.Amount)\"\n (blur)=\"OnPriceInputBlur(tier, $event)\"\n [title]=\"'Edit price for ' + tier.BracketLabel\">\n } @else {\n <strong class=\"mjo-price-val\">{{ FormatCurrency(tier.Amount) }}</strong>\n }\n </td>\n <td>\n @if (tier.DiscountPercent > 0) {\n <span class=\"mjo-disc-tag\">\n <i class=\"fa-solid fa-arrow-down\"></i> {{ tier.DiscountPercent }}% off\n </span>\n } @else {\n <span class=\"mjo-standard-tag\">Standard Base</span>\n }\n </td>\n <td>\n @if (tier.UnitSavings > 0) {\n <strong class=\"mjo-savings-val\">{{ FormatCurrency(tier.UnitSavings) }} / unit</strong>\n } @else {\n <span style=\"color: var(--mj-text-muted, #94a3b8);\">$0.00</span>\n }\n </td>\n <td>\n <span class=\"mjo-model-tag\">{{ tier.PricingModel }}</span>\n </td>\n <td>\n <span class=\"mjo-date-tag\">{{ tier.EffectiveDatesText }}</span>\n </td>\n <td class=\"mjo-td-actions\">\n <button \n type=\"button\" \n class=\"mjo-action-btn\" \n title=\"Open full price rule\" \n (click)=\"OpenTierRecord(tier)\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\"></i>\n </button>\n @if (EditMode && !tier.IsBaseBracket) {\n <button \n type=\"button\" \n class=\"mjo-action-btn mjo-action-btn--delete\" \n title=\"Delete tier\" \n (click)=\"DeleteTier(tier)\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n }\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n\n <!-- Quick Add Tier Bracket Bar (Only active when EditMode is true) -->\n @if (EditMode) {\n <div class=\"mjo-quick-add-bar\">\n <div class=\"mjo-quick-add-inputs\">\n <span class=\"mjo-quick-add-label\">\n <i class=\"fa-solid fa-plus-circle\"></i> Add Volume Tier:\n </span>\n <label class=\"mjo-field-group\">\n <span class=\"mjo-sub-label\">Min:</span>\n <input \n type=\"number\" \n class=\"mjo-input-num\" \n [(ngModel)]=\"NewTierMin\" \n min=\"1\">\n </label>\n <label class=\"mjo-field-group\">\n <span class=\"mjo-sub-label\">Max:</span>\n <input \n type=\"number\" \n class=\"mjo-input-num\" \n [(ngModel)]=\"NewTierMax\" \n placeholder=\"\u221E\">\n </label>\n <label class=\"mjo-field-group\">\n <span class=\"mjo-sub-label\">Price ($):</span>\n <input \n type=\"number\" \n class=\"mjo-input-price\" \n [(ngModel)]=\"NewTierPrice\" \n min=\"0\" \n step=\"0.01\">\n </label>\n <label class=\"mjo-field-group\">\n <span class=\"mjo-sub-label\">Model:</span>\n <select class=\"mjo-input-select\" [(ngModel)]=\"NewTierModel\">\n <option value=\"Volume\">Volume</option>\n <option value=\"PerUnit\">PerUnit</option>\n <option value=\"Tiered\">Tiered</option>\n <option value=\"Flat\">Flat</option>\n </select>\n </label>\n <button \n type=\"button\" \n class=\"mjo-btn-add\" \n [disabled]=\"IsSaving\" \n (click)=\"AddTierBracket()\">\n @if (IsSaving) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n <span>Saving\u2026</span>\n } @else {\n <i class=\"fa-solid fa-plus\"></i>\n <span>Add Bracket</span>\n }\n </button>\n </div>\n\n <div class=\"mjo-guard-badge\">\n <i class=\"fa-solid fa-shield-halved\"></i>\n <span>Gap &amp; overlap protection active</span>\n </div>\n </div>\n }\n\n <!-- Volume Step Curve Diagram -->\n @if (StepBars.length > 0) {\n <div class=\"mjo-step-curve-wrap\">\n <div class=\"mjo-step-curve-title\">\n <i class=\"fa-solid fa-chart-simple\"></i>\n <span>Live Volume Step Curve (Base vs Tiers)</span>\n </div>\n <div class=\"mjo-step-curve-bars\">\n @for (bar of StepBars; track bar.Label) {\n <div class=\"mjo-step-col\">\n <span class=\"mjo-step-val\">{{ bar.FormattedAmount }}</span>\n <div class=\"mjo-step-track\">\n <div class=\"mjo-step-fill\" [style.height.%]=\"bar.Percentage\"></div>\n </div>\n <span class=\"mjo-step-label\">{{ bar.Label }} units</span>\n </div>\n }\n </div>\n </div>\n }\n }\n </div>\n</div>\n", styles: [".mjo-pricing-widget-wrap {\n display: flex;\n flex-direction: column;\n gap: 16px;\n width: 100%;\n position: relative;\n}\n\n/* In-Widget Toast Notification */\n.mjo-toast {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 16px;\n border-radius: var(--mj-radius-md, 8px);\n font-size: 13px;\n font-weight: 500;\n animation: mjo-toast-in 0.25s cubic-bezier(0.16, 1, 0.3, 1);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n border: 1px solid transparent;\n}\n\n@keyframes mjo-toast-in {\n from { opacity: 0; transform: translateY(-6px); }\n to { opacity: 1; transform: translateY(0); }\n}\n\n.mjo-toast--success {\n background: rgba(22, 163, 74, 0.15);\n border-color: rgba(22, 163, 74, 0.3);\n color: #22c55e;\n}\n\n.mjo-toast--error {\n background: rgba(239, 68, 68, 0.15);\n border-color: rgba(239, 68, 68, 0.3);\n color: #f87171;\n}\n\n.mjo-toast--info {\n background: rgba(2, 132, 199, 0.15);\n border-color: rgba(2, 132, 199, 0.3);\n color: #38bdf8;\n}\n\n.mjo-toast-left {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.mjo-toast-left i {\n font-size: 16px;\n}\n\n.mjo-toast-msg {\n line-height: 1.4;\n}\n\n.mjo-toast-close {\n background: transparent;\n border: none;\n color: currentColor;\n opacity: 0.7;\n cursor: pointer;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 13px;\n}\n\n.mjo-toast-close:hover {\n opacity: 1;\n}\n\n.mjo-pricing-card {\n background: var(--mj-bg-surface-card, rgba(255, 255, 255, 0.05));\n border: 1px solid var(--mj-border-default, rgba(255, 255, 255, 0.12));\n border-radius: var(--mj-radius-lg, 10px);\n overflow: hidden;\n}\n\n.mjo-card-header {\n padding: 12px 16px;\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.1));\n border-bottom: 1px solid var(--mj-border-default, rgba(255, 255, 255, 0.1));\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n}\n\n.mjo-card-title {\n font-size: 13.5px;\n font-weight: 700;\n color: var(--mj-text-primary, #0f172a);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.mjo-card-title i {\n color: var(--mj-brand-primary, #0284c7);\n}\n\n.mjo-base-pill {\n font-size: 12px;\n color: var(--mj-text-muted, #64748b);\n}\n\n.mjo-base-pill strong {\n font-family: var(--mj-font-mono, monospace);\n color: var(--mj-brand-primary, #0284c7);\n}\n\n.mjo-pricing-fields {\n padding: 16px;\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n gap: 16px;\n}\n\n/* Channel Tabs Header */\n.mjo-channel-bar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.1));\n border-bottom: 1px solid var(--mj-border-default, rgba(255, 255, 255, 0.1));\n padding: 0 12px;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.mjo-channel-list {\n display: flex;\n align-items: center;\n gap: 4px;\n overflow-x: auto;\n}\n\n.mjo-channel-tab {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 12px 14px;\n background: transparent;\n border: none;\n border-bottom: 2px solid transparent;\n font-size: 12.5px;\n font-weight: 600;\n color: var(--mj-text-muted, #94a3b8);\n cursor: pointer;\n transition: all 0.15s ease;\n white-space: nowrap;\n}\n\n.mjo-channel-tab:hover {\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-channel-tab.active {\n color: var(--mj-brand-primary, #0284c7);\n border-bottom-color: var(--mj-brand-primary, #0284c7);\n background: var(--mj-bg-surface-card, rgba(255, 255, 255, 0.05));\n}\n\n.mjo-channel-count {\n font-size: 10px;\n font-weight: 700;\n padding: 2px 6px;\n border-radius: 9999px;\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.15));\n color: var(--mj-text-secondary, #cbd5e1);\n}\n\n.mjo-channel-tab.active .mjo-channel-count {\n background: rgba(2, 132, 199, 0.18);\n color: var(--mj-brand-primary, #0284c7);\n}\n\n.mjo-channel-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.mjo-btn-subtle {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n border-radius: 6px;\n font-size: 11.5px;\n font-weight: 600;\n color: var(--mj-text-primary, #0f172a);\n background: var(--mj-bg-surface-card, rgba(255, 255, 255, 0.05));\n border: 1px solid var(--mj-border-default, rgba(255, 255, 255, 0.12));\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.mjo-btn-subtle:hover {\n border-color: var(--mj-brand-primary, #0284c7);\n color: var(--mj-brand-primary, #0284c7);\n}\n\n/* Tier Ladder Table */\n.mjo-ladder-table-wrap {\n overflow-x: auto;\n width: 100%;\n}\n\n.mjo-ladder-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n text-align: left;\n}\n\n.mjo-ladder-table th {\n padding: 10px 14px;\n font-size: 11px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--mj-text-muted, #64748b);\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.05));\n border-bottom: 1px solid var(--mj-border-default, rgba(255, 255, 255, 0.1));\n}\n\n.mjo-ladder-table td {\n padding: 11px 14px;\n border-bottom: 1px solid var(--mj-border-subtle, rgba(255, 255, 255, 0.06));\n color: var(--mj-text-primary, #0f172a);\n vertical-align: middle;\n}\n\n.mjo-ladder-table tr:hover {\n background: var(--mj-bg-surface-hover, rgba(255, 255, 255, 0.03));\n}\n\n.mjo-tier-title {\n color: var(--mj-brand-primary, #0284c7);\n}\n\n.mjo-range-pill {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-family: var(--mj-font-mono, monospace);\n font-weight: 700;\n font-size: 12px;\n padding: 3px 8px;\n border-radius: 6px;\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.12));\n border: 1px solid var(--mj-border-default, rgba(255, 255, 255, 0.1));\n}\n\n.mjo-price-input {\n font-family: var(--mj-font-mono, monospace);\n font-size: 13.5px;\n font-weight: 700;\n color: var(--mj-text-primary, #0f172a);\n background: var(--mj-bg-surface, rgba(0, 0, 0, 0.2));\n border: 1px solid var(--mj-border-default, rgba(255, 255, 255, 0.15));\n border-radius: 6px;\n padding: 5px 8px;\n width: 100px;\n transition: all 0.15s ease;\n}\n\n.mjo-price-input:focus {\n outline: none;\n border-color: var(--mj-brand-primary, #0284c7);\n box-shadow: 0 0 0 2px rgba(2, 132, 199, 0.25);\n}\n\n.mjo-price-val {\n font-family: var(--mj-font-mono, monospace);\n font-size: 13px;\n font-weight: 700;\n color: var(--mj-text-primary, #0f172a);\n display: inline-block;\n padding: 4px 0;\n}\n\n.mjo-disc-tag {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: 11px;\n font-weight: 700;\n padding: 2px 7px;\n border-radius: 4px;\n background: rgba(22, 163, 74, 0.15);\n color: #22c55e;\n}\n\n.mjo-standard-tag {\n font-size: 11px;\n color: var(--mj-text-muted, #94a3b8);\n}\n\n.mjo-savings-val {\n color: #22c55e;\n font-family: var(--mj-font-mono, monospace);\n font-size: 12.5px;\n}\n\n.mjo-model-tag {\n font-size: 11px;\n font-weight: 600;\n padding: 2px 7px;\n border-radius: 4px;\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.1));\n color: var(--mj-text-secondary, #cbd5e1);\n}\n\n.mjo-date-tag {\n font-size: 11.5px;\n color: var(--mj-text-muted, #94a3b8);\n}\n\n.mjo-th-num, .mjo-td-num { text-align: left; }\n.mjo-th-actions, .mjo-td-actions { text-align: right; }\n\n.mjo-action-btn {\n width: 28px;\n height: 28px;\n border-radius: 6px;\n border: 1px solid var(--mj-border-default, rgba(255, 255, 255, 0.1));\n background: var(--mj-bg-surface, rgba(255, 255, 255, 0.05));\n color: var(--mj-text-muted, #94a3b8);\n cursor: pointer;\n font-size: 11px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n transition: all 0.15s ease;\n margin-left: 4px;\n}\n\n.mjo-action-btn:hover {\n color: var(--mj-brand-primary, #0284c7);\n border-color: var(--mj-brand-primary, #0284c7);\n}\n\n.mjo-action-btn--delete:hover {\n color: #ef4444;\n border-color: #ef4444;\n}\n\n/* 1-Click Quick Add Bar */\n.mjo-quick-add-bar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.1));\n border-top: 1px solid var(--mj-border-default, rgba(255, 255, 255, 0.1));\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.mjo-quick-add-inputs {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.mjo-quick-add-label {\n font-size: 12.5px;\n font-weight: 700;\n color: var(--mj-brand-primary, #0284c7);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.mjo-field-group {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.mjo-sub-label {\n font-size: 11.5px;\n font-weight: 600;\n color: var(--mj-text-muted, #94a3b8);\n}\n\n.mjo-input-num {\n width: 65px;\n padding: 5px 8px;\n font-size: 12.5px;\n font-family: var(--mj-font-mono, monospace);\n font-weight: 700;\n text-align: center;\n border-radius: 6px;\n border: 1px solid var(--mj-border-default, rgba(255, 255, 255, 0.15));\n background: var(--mj-bg-surface, rgba(0, 0, 0, 0.2));\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-input-price {\n width: 85px;\n padding: 5px 8px;\n font-size: 12.5px;\n font-family: var(--mj-font-mono, monospace);\n font-weight: 700;\n border-radius: 6px;\n border: 1px solid var(--mj-border-default, rgba(255, 255, 255, 0.15));\n background: var(--mj-bg-surface, rgba(0, 0, 0, 0.2));\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-input-select {\n padding: 5px 8px;\n font-size: 12px;\n font-weight: 600;\n border-radius: 6px;\n border: 1px solid var(--mj-border-default, rgba(255, 255, 255, 0.15));\n background: var(--mj-bg-surface, rgba(0, 0, 0, 0.2));\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-btn-add {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n border-radius: 6px;\n font-size: 12px;\n font-weight: 700;\n color: #ffffff;\n background: #0284c7;\n border: none;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.mjo-btn-add:hover {\n background: #0369a1;\n}\n\n.mjo-btn-add:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.mjo-guard-badge {\n font-size: 11.5px;\n color: #22c55e;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n/* Volume Step Curve Diagram */\n.mjo-step-curve-wrap {\n padding: 14px 18px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.mjo-step-curve-title {\n font-size: 11px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--mj-text-muted, #94a3b8);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.mjo-step-curve-title i {\n color: var(--mj-brand-primary, #0284c7);\n}\n\n.mjo-step-curve-bars {\n display: flex;\n align-items: flex-end;\n gap: 12px;\n height: 80px;\n padding-top: 8px;\n}\n\n.mjo-step-col {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n height: 100%;\n justify-content: flex-end;\n}\n\n.mjo-step-track {\n width: 100%;\n max-width: 60px;\n height: 100%;\n background: var(--mj-bg-surface-sunken, rgba(0, 0, 0, 0.1));\n border-radius: 4px 4px 0 0;\n display: flex;\n align-items: flex-end;\n}\n\n.mjo-step-fill {\n width: 100%;\n border-radius: 4px 4px 0 0;\n background: linear-gradient(180deg, #0284c7 0%, #0369a1 100%);\n min-height: 8px;\n transition: height 0.3s ease;\n}\n\n.mjo-step-val {\n font-size: 11px;\n font-weight: 700;\n font-family: var(--mj-font-mono, monospace);\n color: var(--mj-brand-primary, #0284c7);\n}\n\n.mjo-step-label {\n font-size: 10px;\n font-family: var(--mj-font-mono, monospace);\n color: var(--mj-text-muted, #94a3b8);\n}\n\n.mjo-loading-state {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n padding: 30px;\n font-size: 13px;\n color: var(--mj-text-muted, #94a3b8);\n}\n\n.mjo-empty-tiers {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 24px;\n}\n\n.mjo-empty-icon {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n background: rgba(2, 132, 199, 0.15);\n color: var(--mj-brand-primary, #0284c7);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 18px;\n}\n\n.mjo-empty-text h4 {\n margin: 0 0 4px 0;\n font-size: 13.5px;\n font-weight: 700;\n color: var(--mj-text-primary, #0f172a);\n}\n\n.mjo-empty-text p {\n margin: 0;\n font-size: 12px;\n color: var(--mj-text-muted, #94a3b8);\n}\n\n.mjo-grid-wrap {\n padding: 0;\n min-height: 400px;\n height: 420px;\n}\n"] }]
936
+ }], () => [], { Product: [{
937
+ type: Input
938
+ }], EditMode: [{
939
+ type: Input
940
+ }], FormContext: [{
941
+ type: Input
942
+ }], Navigate: [{
943
+ type: Output
944
+ }], PriceChanged: [{
945
+ type: Output
946
+ }], TierAdded: [{
947
+ type: Output
948
+ }] }); })();
949
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BizAppsProductPricingWidgetComponent, { className: "BizAppsProductPricingWidgetComponent", filePath: "lib/custom/Product/widgets/product-pricing-widget.component.ts", lineNumber: 80 }); })();
950
+ //# sourceMappingURL=product-pricing-widget.component.js.map