@acorex/platform 18.0.2 → 18.0.5

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 (258) hide show
  1. package/common/lib/app/application.types.d.ts +43 -26
  2. package/common/lib/common.module.d.ts +6 -5
  3. package/common/lib/data/data-provider.types.d.ts +1 -1
  4. package/common/lib/data/dexie-storage.service.d.ts +14 -0
  5. package/common/lib/data/entity-data-provider.d.ts +14 -0
  6. package/common/lib/data/index.d.ts +3 -0
  7. package/common/lib/data/storage-service.d.ts +22 -0
  8. package/common/lib/layout/grid-layout/grid-layout.types.d.ts +1 -2
  9. package/common/lib/schema/entity/entity.class.d.ts +3 -0
  10. package/common/lib/schema/widgets/lookup/lookup-widget-filter.component.d.ts +1 -1
  11. package/common/lib/schema/widgets/lookup/lookup-widget-view.component.d.ts +2 -1
  12. package/common/lib/utils/data-generator.d.ts +15 -1
  13. package/common/lib/utils/index.d.ts +1 -0
  14. package/common/lib/utils/pdf.service.d.ts +25 -0
  15. package/esm2022/common/lib/app/application.types.mjs +1 -1
  16. package/esm2022/common/lib/common.module.mjs +19 -2
  17. package/esm2022/common/lib/data/data-provider.types.mjs +1 -1
  18. package/esm2022/common/lib/data/dexie-storage.service.mjs +34 -0
  19. package/esm2022/common/lib/data/entity-data-provider.mjs +26 -0
  20. package/esm2022/common/lib/data/index.mjs +4 -1
  21. package/esm2022/common/lib/data/storage-service.mjs +5 -0
  22. package/esm2022/common/lib/layout/grid-layout/grid-layout.directive.mjs +5 -5
  23. package/esm2022/common/lib/layout/grid-layout/grid-layout.types.mjs +1 -1
  24. package/esm2022/common/lib/schema/entity/entity-registery.service.mjs +2 -2
  25. package/esm2022/common/lib/schema/entity/entity.class.mjs +1 -1
  26. package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-edit.component.mjs +20 -3
  27. package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-filter.component.mjs +20 -3
  28. package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-view.component.mjs +5 -5
  29. package/esm2022/common/lib/utils/data-generator.mjs +88 -2
  30. package/esm2022/common/lib/utils/index.mjs +2 -1
  31. package/esm2022/common/lib/utils/pdf.service.mjs +85 -0
  32. package/esm2022/common/lib/workflows/common.workflow.mjs +3 -3
  33. package/esm2022/layout/builder/lib/builder/builder.service.mjs +7 -2
  34. package/esm2022/layout/builder/lib/builder/widget.types.mjs +5 -1
  35. package/esm2022/layout/entity/lib/entity-detail-list.viewmodel.mjs +9 -8
  36. package/esm2022/layout/entity/lib/entity-master-create.viewmodel.mjs +44 -27
  37. package/esm2022/layout/entity/lib/entity-master-list.viewmodel.mjs +42 -15
  38. package/esm2022/layout/entity/lib/entity-master-single.viewmodel.mjs +64 -62
  39. package/esm2022/layout/entity/lib/entity-master-update.viewmodel.mjs +9 -7
  40. package/esm2022/layout/entity/lib/entity-registery.service.mjs +2 -2
  41. package/esm2022/layout/entity/lib/entity.module.mjs +13 -4
  42. package/esm2022/layout/entity/lib/entity.viewmodel.mjs +7 -6
  43. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.mjs +142 -39
  44. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.component.mjs +82 -37
  45. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.mjs +45 -22
  46. package/esm2022/layout/entity/lib/workflows/create-entity.workflow.mjs +17 -21
  47. package/esm2022/layout/entity/lib/workflows/delete-entity.workflow.mjs +14 -15
  48. package/esm2022/layout/entity/lib/workflows/modify-section.workflow.mjs +11 -23
  49. package/esm2022/layout/entity/lib/workflows/show-details.workflow.mjs +3 -3
  50. package/esm2022/layout/entity/lib/workflows/show-list.workflow.mjs +35 -0
  51. package/esm2022/layouts/lib/admin/entity-layout/entity-create-view/entity-create-view.component.mjs +3 -3
  52. package/esm2022/layouts/lib/admin/entity-layout/workflows/delete-entity.workflow.mjs +2 -2
  53. package/esm2022/layouts/lib/layout.module.mjs +3 -3
  54. package/esm2022/themes/default/lib/default.module.mjs +3 -3
  55. package/esm2022/themes/default/lib/entity-reuse.strategy.mjs +2 -2
  56. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.mjs +2 -2
  57. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/{entity-list-view.component.mjs → entity-master-list-view.component.mjs} +11 -2
  58. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-sorting/list-view-option-sorting.component.mjs +2 -1
  59. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.mjs +6 -3
  60. package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-column.component.mjs +2 -2
  61. package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-edit.component.mjs +21 -12
  62. package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-view.component.mjs +2 -2
  63. package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-column.component.mjs +2 -2
  64. package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-view.component.mjs +2 -2
  65. package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-edit.component.mjs +3 -3
  66. package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-view.component.mjs +14 -8
  67. package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-view.component.mjs +3 -2
  68. package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-edit.component.mjs +3 -2
  69. package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-view.component.mjs +3 -2
  70. package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-edit.component.mjs +3 -2
  71. package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-view.component.mjs +3 -2
  72. package/esm2022/workflow/lib/actions/start-workflow.action.mjs +32 -0
  73. package/esm2022/workflow/lib/workflow.module.mjs +7 -2
  74. package/esm2022/workflow/lib/workflow.service.mjs +54 -7
  75. package/esm2022/workflow/lib/workflow.types.mjs +17 -10
  76. package/fesm2022/{acorex-platform-common-avatar-widget-edit.component-DAmNXjDm.mjs → acorex-platform-common-avatar-widget-edit.component-B-of5ssU.mjs} +3 -2
  77. package/fesm2022/{acorex-platform-common-avatar-widget-edit.component-DAmNXjDm.mjs.map → acorex-platform-common-avatar-widget-edit.component-B-of5ssU.mjs.map} +1 -1
  78. package/fesm2022/{acorex-platform-common-avatar-widget-view.component-BlA_cFkP.mjs → acorex-platform-common-avatar-widget-view.component-CJvrSkTv.mjs} +4 -3
  79. package/fesm2022/acorex-platform-common-avatar-widget-view.component-CJvrSkTv.mjs.map +1 -0
  80. package/fesm2022/{acorex-platform-common-boolean-widget-filter.component-CEqibiML.mjs → acorex-platform-common-boolean-widget-filter.component-BTcOjuUm.mjs} +4 -3
  81. package/fesm2022/acorex-platform-common-boolean-widget-filter.component-BTcOjuUm.mjs.map +1 -0
  82. package/fesm2022/{acorex-platform-common-checkbox-widget-column.component-BiUHPDqV.mjs → acorex-platform-common-checkbox-widget-column.component-X9d1iY_F.mjs} +4 -3
  83. package/fesm2022/{acorex-platform-common-checkbox-widget-column.component-BiUHPDqV.mjs.map → acorex-platform-common-checkbox-widget-column.component-X9d1iY_F.mjs.map} +1 -1
  84. package/fesm2022/{acorex-platform-common-checkbox-widget-edit.component-BVG9_XXh.mjs → acorex-platform-common-checkbox-widget-edit.component-_jtT03Vn.mjs} +4 -3
  85. package/fesm2022/acorex-platform-common-checkbox-widget-edit.component-_jtT03Vn.mjs.map +1 -0
  86. package/fesm2022/{acorex-platform-common-checkbox-widget-view.component-CfGkMcDi.mjs → acorex-platform-common-checkbox-widget-view.component-nYmtb8bK.mjs} +4 -3
  87. package/fesm2022/{acorex-platform-common-checkbox-widget-view.component-CfGkMcDi.mjs.map → acorex-platform-common-checkbox-widget-view.component-nYmtb8bK.mjs.map} +1 -1
  88. package/fesm2022/{acorex-platform-common-dateTime-widget-column.component-BlXTU887.mjs → acorex-platform-common-dateTime-widget-column.component-5ljYmtHI.mjs} +4 -3
  89. package/fesm2022/acorex-platform-common-dateTime-widget-column.component-5ljYmtHI.mjs.map +1 -0
  90. package/fesm2022/{acorex-platform-common-dateTime-widget-edit.component-B0s6FN-g.mjs → acorex-platform-common-dateTime-widget-edit.component-D8FSiqAo.mjs} +4 -3
  91. package/fesm2022/{acorex-platform-common-dateTime-widget-edit.component-B0s6FN-g.mjs.map → acorex-platform-common-dateTime-widget-edit.component-D8FSiqAo.mjs.map} +1 -1
  92. package/fesm2022/{acorex-platform-common-dateTime-widget-filter.component-B7KBCsUt.mjs → acorex-platform-common-dateTime-widget-filter.component-Df0DuDtw.mjs} +4 -3
  93. package/fesm2022/{acorex-platform-common-dateTime-widget-filter.component-B7KBCsUt.mjs.map → acorex-platform-common-dateTime-widget-filter.component-Df0DuDtw.mjs.map} +1 -1
  94. package/fesm2022/{acorex-platform-common-dateTime-widget-view.component-Dy7pAkGG.mjs → acorex-platform-common-dateTime-widget-view.component-CjVjQkPh.mjs} +4 -3
  95. package/fesm2022/{acorex-platform-common-dateTime-widget-view.component-Dy7pAkGG.mjs.map → acorex-platform-common-dateTime-widget-view.component-CjVjQkPh.mjs.map} +1 -1
  96. package/fesm2022/{acorex-platform-common-email-widget-column.component-D_UNn2dW.mjs → acorex-platform-common-email-widget-column.component-BgNdL62k.mjs} +4 -3
  97. package/fesm2022/acorex-platform-common-email-widget-column.component-BgNdL62k.mjs.map +1 -0
  98. package/fesm2022/{acorex-platform-common-email-widget-edit.component-DWT24mCM.mjs → acorex-platform-common-email-widget-edit.component-CgHPGccx.mjs} +4 -3
  99. package/fesm2022/{acorex-platform-common-email-widget-edit.component-DWT24mCM.mjs.map → acorex-platform-common-email-widget-edit.component-CgHPGccx.mjs.map} +1 -1
  100. package/fesm2022/{acorex-platform-common-email-widget-view.component-B6puyycL.mjs → acorex-platform-common-email-widget-view.component-C2aQ14k-.mjs} +4 -3
  101. package/fesm2022/{acorex-platform-common-email-widget-view.component-B6puyycL.mjs.map → acorex-platform-common-email-widget-view.component-C2aQ14k-.mjs.map} +1 -1
  102. package/fesm2022/{acorex-platform-common-file-widget-column.component-C1faGR4K.mjs → acorex-platform-common-file-widget-column.component-CwFzLLHt.mjs} +4 -3
  103. package/fesm2022/acorex-platform-common-file-widget-column.component-CwFzLLHt.mjs.map +1 -0
  104. package/fesm2022/{acorex-platform-common-file-widget-edit.component-CTvS9ls8.mjs → acorex-platform-common-file-widget-edit.component-DxoQR4CU.mjs} +4 -3
  105. package/fesm2022/{acorex-platform-common-file-widget-edit.component-CTvS9ls8.mjs.map → acorex-platform-common-file-widget-edit.component-DxoQR4CU.mjs.map} +1 -1
  106. package/fesm2022/{acorex-platform-common-file-widget-filter.component-D4AMg5M0.mjs → acorex-platform-common-file-widget-filter.component-BvG0iaKU.mjs} +4 -3
  107. package/fesm2022/acorex-platform-common-file-widget-filter.component-BvG0iaKU.mjs.map +1 -0
  108. package/fesm2022/{acorex-platform-common-file-widget-view.component-CHI4VCvt.mjs → acorex-platform-common-file-widget-view.component-BC9l3YrO.mjs} +4 -3
  109. package/fesm2022/{acorex-platform-common-file-widget-view.component-CHI4VCvt.mjs.map → acorex-platform-common-file-widget-view.component-BC9l3YrO.mjs.map} +1 -1
  110. package/fesm2022/{acorex-platform-common-gallery-widget-edit.component-CAOctYzV.mjs → acorex-platform-common-gallery-widget-edit.component-BihOIJ9T.mjs} +4 -3
  111. package/fesm2022/{acorex-platform-common-gallery-widget-edit.component-CAOctYzV.mjs.map → acorex-platform-common-gallery-widget-edit.component-BihOIJ9T.mjs.map} +1 -1
  112. package/fesm2022/{acorex-platform-common-gallery-widget-filter.component-lgaYDZeD.mjs → acorex-platform-common-gallery-widget-filter.component-DS1PCIJp.mjs} +4 -3
  113. package/fesm2022/acorex-platform-common-gallery-widget-filter.component-DS1PCIJp.mjs.map +1 -0
  114. package/fesm2022/{acorex-platform-common-gallery-widget-view.component-Ci50jeO5.mjs → acorex-platform-common-gallery-widget-view.component-CnQONVdg.mjs} +4 -3
  115. package/fesm2022/{acorex-platform-common-gallery-widget-view.component-Ci50jeO5.mjs.map → acorex-platform-common-gallery-widget-view.component-CnQONVdg.mjs.map} +1 -1
  116. package/fesm2022/{acorex-platform-common-largetext-widget-edit.component-DFKG-kum.mjs → acorex-platform-common-largetext-widget-edit.component-BCtGkz1a.mjs} +4 -3
  117. package/fesm2022/acorex-platform-common-largetext-widget-edit.component-BCtGkz1a.mjs.map +1 -0
  118. package/fesm2022/{acorex-platform-common-lookup-widget-column.component-CFzCGcqA.mjs → acorex-platform-common-lookup-widget-column.component-Cl-vO5XW.mjs} +4 -3
  119. package/fesm2022/acorex-platform-common-lookup-widget-column.component-Cl-vO5XW.mjs.map +1 -0
  120. package/fesm2022/{acorex-platform-common-lookup-widget-edit.component-CYTSeEOq.mjs → acorex-platform-common-lookup-widget-edit.component-Do_yV2hi.mjs} +22 -4
  121. package/fesm2022/acorex-platform-common-lookup-widget-edit.component-Do_yV2hi.mjs.map +1 -0
  122. package/fesm2022/{acorex-platform-common-lookup-widget-filter.component-BkxT9_Hh.mjs → acorex-platform-common-lookup-widget-filter.component-AKqbYe-l.mjs} +22 -4
  123. package/fesm2022/acorex-platform-common-lookup-widget-filter.component-AKqbYe-l.mjs.map +1 -0
  124. package/fesm2022/{acorex-platform-common-lookup-widget-view.component-5YeixMp7.mjs → acorex-platform-common-lookup-widget-view.component-BHqYDEuU.mjs} +8 -7
  125. package/fesm2022/acorex-platform-common-lookup-widget-view.component-BHqYDEuU.mjs.map +1 -0
  126. package/fesm2022/{acorex-platform-common-map-widget-edit.component-CE3QQBmX.mjs → acorex-platform-common-map-widget-edit.component-SSrR3xxv.mjs} +4 -3
  127. package/fesm2022/acorex-platform-common-map-widget-edit.component-SSrR3xxv.mjs.map +1 -0
  128. package/fesm2022/{acorex-platform-common-map-widget-view.component-Cv4OCTxz.mjs → acorex-platform-common-map-widget-view.component-DrGG3gzg.mjs} +4 -3
  129. package/fesm2022/acorex-platform-common-map-widget-view.component-DrGG3gzg.mjs.map +1 -0
  130. package/fesm2022/{acorex-platform-common-messenger-widget-column.component-CJdh6TKb.mjs → acorex-platform-common-messenger-widget-column.component-BJ_XzNKc.mjs} +4 -3
  131. package/fesm2022/acorex-platform-common-messenger-widget-column.component-BJ_XzNKc.mjs.map +1 -0
  132. package/fesm2022/{acorex-platform-common-messenger-widget-edit.component-kiEHxJia.mjs → acorex-platform-common-messenger-widget-edit.component-B_FG_n0O.mjs} +4 -3
  133. package/fesm2022/{acorex-platform-common-messenger-widget-edit.component-kiEHxJia.mjs.map → acorex-platform-common-messenger-widget-edit.component-B_FG_n0O.mjs.map} +1 -1
  134. package/fesm2022/{acorex-platform-common-messenger-widget-view.component-DzbjgZA7.mjs → acorex-platform-common-messenger-widget-view.component-EBiPO9ds.mjs} +4 -3
  135. package/fesm2022/{acorex-platform-common-messenger-widget-view.component-DzbjgZA7.mjs.map → acorex-platform-common-messenger-widget-view.component-EBiPO9ds.mjs.map} +1 -1
  136. package/fesm2022/{acorex-platform-common-number-widget-edit.component-BRuIP96Y.mjs → acorex-platform-common-number-widget-edit.component-B1XXga-9.mjs} +4 -3
  137. package/fesm2022/acorex-platform-common-number-widget-edit.component-B1XXga-9.mjs.map +1 -0
  138. package/fesm2022/{acorex-platform-common-number-widget-filter.component-jQ4DaFQH.mjs → acorex-platform-common-number-widget-filter.component-B2JCpDjU.mjs} +4 -3
  139. package/fesm2022/{acorex-platform-common-number-widget-filter.component-jQ4DaFQH.mjs.map → acorex-platform-common-number-widget-filter.component-B2JCpDjU.mjs.map} +1 -1
  140. package/fesm2022/{acorex-platform-common-number-widget-view.component-BzUWjT8m.mjs → acorex-platform-common-number-widget-view.component-DD0tkoc4.mjs} +4 -3
  141. package/fesm2022/acorex-platform-common-number-widget-view.component-DD0tkoc4.mjs.map +1 -0
  142. package/fesm2022/{acorex-platform-common-password-widget-column.component-BRzyuK5c.mjs → acorex-platform-common-password-widget-column.component-eyqgQlAt.mjs} +4 -3
  143. package/fesm2022/{acorex-platform-common-password-widget-column.component-BRzyuK5c.mjs.map → acorex-platform-common-password-widget-column.component-eyqgQlAt.mjs.map} +1 -1
  144. package/fesm2022/{acorex-platform-common-password-widget-edit.component-q6R2dw5k.mjs → acorex-platform-common-password-widget-edit.component-C2yNb9Pl.mjs} +4 -3
  145. package/fesm2022/acorex-platform-common-password-widget-edit.component-C2yNb9Pl.mjs.map +1 -0
  146. package/fesm2022/{acorex-platform-common-password-widget-view.component-CKaQItON.mjs → acorex-platform-common-password-widget-view.component-o9S7pwJW.mjs} +4 -3
  147. package/fesm2022/{acorex-platform-common-password-widget-view.component-CKaQItON.mjs.map → acorex-platform-common-password-widget-view.component-o9S7pwJW.mjs.map} +1 -1
  148. package/fesm2022/{acorex-platform-common-phone-widget-column.component-BD7BScjW.mjs → acorex-platform-common-phone-widget-column.component-BL9Xl2XH.mjs} +4 -3
  149. package/fesm2022/{acorex-platform-common-phone-widget-column.component-BD7BScjW.mjs.map → acorex-platform-common-phone-widget-column.component-BL9Xl2XH.mjs.map} +1 -1
  150. package/fesm2022/{acorex-platform-common-phone-widget-edit.component-D8tGKfNj.mjs → acorex-platform-common-phone-widget-edit.component-DSh9zoZj.mjs} +4 -3
  151. package/fesm2022/{acorex-platform-common-phone-widget-edit.component-D8tGKfNj.mjs.map → acorex-platform-common-phone-widget-edit.component-DSh9zoZj.mjs.map} +1 -1
  152. package/fesm2022/{acorex-platform-common-phone-widget-view.component-CFiMsGOB.mjs → acorex-platform-common-phone-widget-view.component-Br3xbaDd.mjs} +4 -3
  153. package/fesm2022/{acorex-platform-common-phone-widget-view.component-CFiMsGOB.mjs.map → acorex-platform-common-phone-widget-view.component-Br3xbaDd.mjs.map} +1 -1
  154. package/fesm2022/{acorex-platform-common-rich-text-widget-column.component-BPzwY_8L.mjs → acorex-platform-common-rich-text-widget-column.component-DDT58tca.mjs} +4 -3
  155. package/fesm2022/{acorex-platform-common-rich-text-widget-column.component-BPzwY_8L.mjs.map → acorex-platform-common-rich-text-widget-column.component-DDT58tca.mjs.map} +1 -1
  156. package/fesm2022/{acorex-platform-common-rich-text-widget-edit.component-CA2xRfVg.mjs → acorex-platform-common-rich-text-widget-edit.component-Dz1toc21.mjs} +4 -3
  157. package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-Dz1toc21.mjs.map +1 -0
  158. package/fesm2022/{acorex-platform-common-rich-text-widget-view.component-DYfTZ64H.mjs → acorex-platform-common-rich-text-widget-view.component-CxTPcEIQ.mjs} +4 -3
  159. package/fesm2022/acorex-platform-common-rich-text-widget-view.component-CxTPcEIQ.mjs.map +1 -0
  160. package/fesm2022/{acorex-platform-common-selection-list-widget-column.component-_MglaOmo.mjs → acorex-platform-common-selection-list-widget-column.component-BCCmg8MI.mjs} +4 -3
  161. package/fesm2022/{acorex-platform-common-selection-list-widget-column.component-_MglaOmo.mjs.map → acorex-platform-common-selection-list-widget-column.component-BCCmg8MI.mjs.map} +1 -1
  162. package/fesm2022/{acorex-platform-common-selection-list-widget-edit.component-QKw_tyOd.mjs → acorex-platform-common-selection-list-widget-edit.component-B5eUdN2R.mjs} +4 -3
  163. package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-B5eUdN2R.mjs.map +1 -0
  164. package/fesm2022/{acorex-platform-common-selection-list-widget-filter.component-DRToTnHQ.mjs → acorex-platform-common-selection-list-widget-filter.component-DPpZq1TB.mjs} +4 -3
  165. package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-DPpZq1TB.mjs.map +1 -0
  166. package/fesm2022/{acorex-platform-common-selection-list-widget-view.component-CjDiuUdj.mjs → acorex-platform-common-selection-list-widget-view.component-Bxvd_AKZ.mjs} +4 -3
  167. package/fesm2022/acorex-platform-common-selection-list-widget-view.component-Bxvd_AKZ.mjs.map +1 -0
  168. package/fesm2022/{acorex-platform-common-signature-pad-widget-edit.component-DF29uWl2.mjs → acorex-platform-common-signature-pad-widget-edit.component-CNjYCEi6.mjs} +4 -3
  169. package/fesm2022/{acorex-platform-common-signature-pad-widget-edit.component-DF29uWl2.mjs.map → acorex-platform-common-signature-pad-widget-edit.component-CNjYCEi6.mjs.map} +1 -1
  170. package/fesm2022/{acorex-platform-common-signature-pad-widget-view.component-BWzoR4HM.mjs → acorex-platform-common-signature-pad-widget-view.component-CsiBv_7i.mjs} +4 -3
  171. package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-CsiBv_7i.mjs.map +1 -0
  172. package/fesm2022/{acorex-platform-common-string-widget-filter.component-Di_GFHme.mjs → acorex-platform-common-string-widget-filter.component-CrGt6Bov.mjs} +4 -3
  173. package/fesm2022/acorex-platform-common-string-widget-filter.component-CrGt6Bov.mjs.map +1 -0
  174. package/fesm2022/{acorex-platform-common-text-widget-column.component-BSYd1CbC.mjs → acorex-platform-common-text-widget-column.component-qXusAevm.mjs} +4 -3
  175. package/fesm2022/{acorex-platform-common-text-widget-column.component-BSYd1CbC.mjs.map → acorex-platform-common-text-widget-column.component-qXusAevm.mjs.map} +1 -1
  176. package/fesm2022/{acorex-platform-common-text-widget-edit.component-K9z9N1qw.mjs → acorex-platform-common-text-widget-edit.component-ed0MUYnD.mjs} +4 -3
  177. package/fesm2022/{acorex-platform-common-text-widget-edit.component-K9z9N1qw.mjs.map → acorex-platform-common-text-widget-edit.component-ed0MUYnD.mjs.map} +1 -1
  178. package/fesm2022/{acorex-platform-common-text-widget-view.component-WbZtm_bf.mjs → acorex-platform-common-text-widget-view.component-BpxTaeQW.mjs} +4 -3
  179. package/fesm2022/{acorex-platform-common-text-widget-view.component-WbZtm_bf.mjs.map → acorex-platform-common-text-widget-view.component-BpxTaeQW.mjs.map} +1 -1
  180. package/fesm2022/{acorex-platform-common-toggle-widget-column.component-ZCBSYMuz.mjs → acorex-platform-common-toggle-widget-column.component-BqiUQrmV.mjs} +4 -3
  181. package/fesm2022/{acorex-platform-common-toggle-widget-column.component-ZCBSYMuz.mjs.map → acorex-platform-common-toggle-widget-column.component-BqiUQrmV.mjs.map} +1 -1
  182. package/fesm2022/{acorex-platform-common-toggle-widget-edit.component-rkDfLA-J.mjs → acorex-platform-common-toggle-widget-edit.component-CDG62BJN.mjs} +4 -3
  183. package/fesm2022/acorex-platform-common-toggle-widget-edit.component-CDG62BJN.mjs.map +1 -0
  184. package/fesm2022/{acorex-platform-common-toggle-widget-view.component-DLDIrci1.mjs → acorex-platform-common-toggle-widget-view.component-DWYcIPTd.mjs} +4 -3
  185. package/fesm2022/{acorex-platform-common-toggle-widget-view.component-DLDIrci1.mjs.map → acorex-platform-common-toggle-widget-view.component-DWYcIPTd.mjs.map} +1 -1
  186. package/fesm2022/acorex-platform-common.mjs +389 -140
  187. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  188. package/fesm2022/acorex-platform-layout-builder.mjs +10 -1
  189. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  190. package/fesm2022/acorex-platform-layout-entity.mjs +514 -280
  191. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  192. package/fesm2022/{acorex-platform-layouts-entity-create-view.component-BmSMt95H.mjs → acorex-platform-layouts-entity-create-view.component-fkKPKxlb.mjs} +3 -3
  193. package/fesm2022/acorex-platform-layouts-entity-create-view.component-fkKPKxlb.mjs.map +1 -0
  194. package/fesm2022/acorex-platform-layouts.mjs +4 -4
  195. package/fesm2022/acorex-platform-layouts.mjs.map +1 -1
  196. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-Buanq4is.mjs → acorex-platform-themes-default-entity-master-create-view.component-BxYT9KhH.mjs} +2 -2
  197. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-BxYT9KhH.mjs.map +1 -0
  198. package/fesm2022/acorex-platform-themes-default.mjs +21 -8
  199. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  200. package/fesm2022/acorex-platform-widgets.mjs +73 -56
  201. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  202. package/fesm2022/acorex-platform-workflow.mjs +194 -109
  203. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  204. package/layout/builder/lib/builder/widget.types.d.ts +3 -0
  205. package/layout/entity/lib/entity-master-create.viewmodel.d.ts +6 -5
  206. package/layout/entity/lib/entity-master-list.viewmodel.d.ts +11 -5
  207. package/layout/entity/lib/entity-master-single.viewmodel.d.ts +17 -10
  208. package/layout/entity/lib/entity-master-update.viewmodel.d.ts +0 -1
  209. package/layout/entity/lib/entity.viewmodel.d.ts +3 -3
  210. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +20 -3
  211. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.component.d.ts +8 -1
  212. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.d.ts +10 -3
  213. package/layout/entity/lib/workflows/create-entity.workflow.d.ts +0 -2
  214. package/layout/entity/lib/workflows/delete-entity.workflow.d.ts +2 -4
  215. package/layout/entity/lib/workflows/modify-section.workflow.d.ts +2 -5
  216. package/layout/entity/lib/workflows/show-list.workflow.d.ts +10 -0
  217. package/package.json +1 -1
  218. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/{entity-list-view.component.d.ts → entity-master-list-view.component.d.ts} +1 -0
  219. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.d.ts +1 -0
  220. package/widgets/lib/editors/date-time-box-widget/date-time-box-widget-edit.component.d.ts +4 -0
  221. package/widgets/lib/editors/rich-text-widget/rich-text-widget-edit.component.d.ts +1 -1
  222. package/widgets/lib/editors/rich-text-widget/rich-text-widget-view.component.d.ts +3 -2
  223. package/widgets/lib/editors/signature-pad-widget/signature-pad-widget-edit.component.d.ts +1 -1
  224. package/widgets/lib/editors/signature-pad-widget/signature-pad-widget-view.component.d.ts +1 -1
  225. package/widgets/lib/editors/text-box-widget/text-box-widget-edit.component.d.ts +1 -1
  226. package/widgets/lib/editors/text-box-widget/text-box-widget-view.component.d.ts +1 -1
  227. package/workflow/lib/actions/start-workflow.action.d.ts +10 -0
  228. package/workflow/lib/workflow.service.d.ts +4 -2
  229. package/workflow/lib/workflow.types.d.ts +6 -3
  230. package/fesm2022/acorex-platform-common-avatar-widget-view.component-BlA_cFkP.mjs.map +0 -1
  231. package/fesm2022/acorex-platform-common-boolean-widget-filter.component-CEqibiML.mjs.map +0 -1
  232. package/fesm2022/acorex-platform-common-checkbox-widget-edit.component-BVG9_XXh.mjs.map +0 -1
  233. package/fesm2022/acorex-platform-common-dateTime-widget-column.component-BlXTU887.mjs.map +0 -1
  234. package/fesm2022/acorex-platform-common-email-widget-column.component-D_UNn2dW.mjs.map +0 -1
  235. package/fesm2022/acorex-platform-common-file-widget-column.component-C1faGR4K.mjs.map +0 -1
  236. package/fesm2022/acorex-platform-common-file-widget-filter.component-D4AMg5M0.mjs.map +0 -1
  237. package/fesm2022/acorex-platform-common-gallery-widget-filter.component-lgaYDZeD.mjs.map +0 -1
  238. package/fesm2022/acorex-platform-common-largetext-widget-edit.component-DFKG-kum.mjs.map +0 -1
  239. package/fesm2022/acorex-platform-common-lookup-widget-column.component-CFzCGcqA.mjs.map +0 -1
  240. package/fesm2022/acorex-platform-common-lookup-widget-edit.component-CYTSeEOq.mjs.map +0 -1
  241. package/fesm2022/acorex-platform-common-lookup-widget-filter.component-BkxT9_Hh.mjs.map +0 -1
  242. package/fesm2022/acorex-platform-common-lookup-widget-view.component-5YeixMp7.mjs.map +0 -1
  243. package/fesm2022/acorex-platform-common-map-widget-edit.component-CE3QQBmX.mjs.map +0 -1
  244. package/fesm2022/acorex-platform-common-map-widget-view.component-Cv4OCTxz.mjs.map +0 -1
  245. package/fesm2022/acorex-platform-common-messenger-widget-column.component-CJdh6TKb.mjs.map +0 -1
  246. package/fesm2022/acorex-platform-common-number-widget-edit.component-BRuIP96Y.mjs.map +0 -1
  247. package/fesm2022/acorex-platform-common-number-widget-view.component-BzUWjT8m.mjs.map +0 -1
  248. package/fesm2022/acorex-platform-common-password-widget-edit.component-q6R2dw5k.mjs.map +0 -1
  249. package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-CA2xRfVg.mjs.map +0 -1
  250. package/fesm2022/acorex-platform-common-rich-text-widget-view.component-DYfTZ64H.mjs.map +0 -1
  251. package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-QKw_tyOd.mjs.map +0 -1
  252. package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-DRToTnHQ.mjs.map +0 -1
  253. package/fesm2022/acorex-platform-common-selection-list-widget-view.component-CjDiuUdj.mjs.map +0 -1
  254. package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-BWzoR4HM.mjs.map +0 -1
  255. package/fesm2022/acorex-platform-common-string-widget-filter.component-Di_GFHme.mjs.map +0 -1
  256. package/fesm2022/acorex-platform-common-toggle-widget-edit.component-rkDfLA-J.mjs.map +0 -1
  257. package/fesm2022/acorex-platform-layouts-entity-create-view.component-BmSMt95H.mjs.map +0 -1
  258. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Buanq4is.mjs.map +0 -1
@@ -3,6 +3,7 @@ import { AXPWorkflowError } from './errors.types';
3
3
  import { AXPWorkflowEventService } from './workflow-event-dispatcher.service';
4
4
  import { AXPWorkflowRegistryService } from './workflow-registery.service';
5
5
  import { AXPWorkflowContext, } from './workflow.types';
6
+ import { cloneDeep, set } from 'lodash-es';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "./workflow-registery.service";
8
9
  export class AXPWorkflowService {
@@ -14,13 +15,12 @@ export class AXPWorkflowService {
14
15
  this.injector = injector;
15
16
  this.eventService = inject(AXPWorkflowEventService);
16
17
  }
17
- async execute(workflow, initialContext = {}) {
18
+ async execute(workflow, initialContext = null) {
18
19
  // Instantiate or retrieve the workflow
19
20
  const wk = typeof workflow === 'string' ? this.getWorkflowInstance(workflow) : workflow;
20
21
  let currentStepId = wk.startStepId;
21
- const context = new AXPWorkflowContext();
22
+ const context = initialContext instanceof AXPWorkflowContext ? initialContext : new AXPWorkflowContext(initialContext ?? {});
22
23
  // Initialize context with initial variables
23
- Object.entries(initialContext).forEach(e => context.setVariable(e[0], e[1]));
24
24
  while (currentStepId) {
25
25
  const currentStep = wk.steps[currentStepId];
26
26
  if (!currentStep) {
@@ -29,12 +29,18 @@ export class AXPWorkflowService {
29
29
  // Instantiate or retrieve the action
30
30
  const action = typeof currentStep.action === 'string' ? this.getActionInstance(currentStep.action) : currentStep.action;
31
31
  if (currentStep.input) {
32
- Object.assign(action, currentStep.input);
32
+ let inputs = {};
33
+ await this.processInputs(cloneDeep(currentStep.input), inputs, '', context);
34
+ Object.assign(action, inputs);
33
35
  }
34
36
  try {
35
- await action.execute(context);
37
+ await new Promise((resolve) => setTimeout(async () => {
38
+ await action.execute(context);
39
+ resolve(0);
40
+ }, 0));
36
41
  }
37
42
  catch (error) {
43
+ console.error(error);
38
44
  throw new AXPWorkflowError('Workflow Error', error);
39
45
  }
40
46
  // Determine the next step based on the conditions
@@ -46,6 +52,15 @@ export class AXPWorkflowService {
46
52
  break; // Exit the loop if no next step is determined
47
53
  }
48
54
  }
55
+ return context;
56
+ }
57
+ //TODO : replace with AXDataGenerator
58
+ uuid() {
59
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (char) => {
60
+ const random = (Math.random() * 16) | 0;
61
+ const value = char === 'x' ? random : (random & 0x3) | 0x8;
62
+ return value.toString(16);
63
+ });
49
64
  }
50
65
  getActionInstance(actionName) {
51
66
  const actionType = this.registryService.getAction(actionName);
@@ -101,8 +116,19 @@ export class AXPWorkflowService {
101
116
  throw new AXPWorkflowError(`Unsupported condition type: ${condition.type}`);
102
117
  }
103
118
  }
104
- async evaluateExpression(expression, context) {
119
+ async evaluateExpression(templateExpression, context) {
105
120
  try {
121
+ let expression = '';
122
+ if (typeof templateExpression === 'string' && templateExpression.trim().includes('{{')) {
123
+ const expressionMatch = templateExpression.match(/\{\{\s*(.*?)\s*\}\}/);
124
+ if (!expressionMatch) {
125
+ throw Error(`No valid expression found in "${templateExpression}"`);
126
+ }
127
+ expression = expressionMatch[1];
128
+ }
129
+ else {
130
+ expression = templateExpression;
131
+ }
106
132
  // Create a scope that includes context and registered functions
107
133
  const scope = { context, ...this.createFunctionScope() };
108
134
  // Evaluating the expression within the created scope
@@ -115,6 +141,27 @@ export class AXPWorkflowService {
115
141
  return false;
116
142
  }
117
143
  }
144
+ async processInputs(obj, inputs, pathPrefix = '', context = {}) {
145
+ if (!obj)
146
+ return;
147
+ for await (const i of Object.entries(obj)) {
148
+ const key = i[0];
149
+ const value = i[1];
150
+ const currentPath = pathPrefix ? `${pathPrefix}.${key}` : key;
151
+ if (typeof value === 'string' && value.trim().includes('{{')) {
152
+ const expValue = await this.evaluateExpression(value, context);
153
+ set(inputs, currentPath, expValue);
154
+ }
155
+ else if (typeof value === 'object' && value !== null && (value.constructor === Object || Array.isArray(value))) {
156
+ // Recursively handle nested objects
157
+ this.processInputs(value, inputs, currentPath, context);
158
+ }
159
+ else {
160
+ // Apply static values directly
161
+ set(inputs, currentPath, value);
162
+ }
163
+ }
164
+ }
118
165
  createFunctionScope() {
119
166
  const scope = {};
120
167
  this.registryService.getFunctionNames().forEach((name) => {
@@ -138,4 +185,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
138
185
  providedIn: 'root',
139
186
  }]
140
187
  }], ctorParameters: () => [{ type: i1.AXPWorkflowRegistryService }, { type: i0.Injector }] });
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3cuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vd29ya2Zsb3cvc3JjL2xpYi93b3JrZmxvdy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRSxPQUFPLEVBSUwsa0JBQWtCLEdBS25CLE1BQU0sa0JBQWtCLENBQUM7OztBQUsxQixNQUFNLE9BQU8sa0JBQWtCO0lBRzdCLElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7SUFDbkMsQ0FBQztJQUVELFlBQW9CLGVBQTJDLEVBQVUsUUFBa0I7UUFBdkUsb0JBQWUsR0FBZixlQUFlLENBQTRCO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQU5uRixpQkFBWSxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBTXdDLENBQUM7SUFFaEcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUE4QixFQUFFLGlCQUFzQixFQUFFO1FBQ3BFLHVDQUF1QztRQUN2QyxNQUFNLEVBQUUsR0FBRyxPQUFPLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBRXhGLElBQUksYUFBYSxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7UUFDbkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3pDLDRD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bUJBQW1CO1FBQ3pCLE1BQU0sS0FBSyxHQUFRLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDdkQsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDdkQsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxZQUFvQjtRQUM5QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDbEIsTUFBTSxJQUFJLGdCQUFnQixDQUFDLGtCQUFrQixZQUFZLDhCQUE4QixDQUFDLENBQUM7UUFDM0YsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDekMsQ0FBQzs4R0FqSlUsa0JBQWtCO2tIQUFsQixrQkFBa0IsY0FGakIsTUFBTTs7MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBWFBXb3JrZmxvd0Vycm9yIH0gZnJvbSAnLi9lcnJvcnMudHlwZXMnO1xyXG5pbXBvcnQgeyBBWFBXb3JrZmxvd0V2ZW50U2VydmljZSB9IGZyb20gJy4vd29ya2Zsb3ctZXZlbnQtZGlzcGF0Y2hlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQVhQV29ya2Zsb3dSZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuL3dvcmtmbG93LXJlZ2lzdGVyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBBWFBXb3JrZmxvdyxcclxuICBBWFBXb3JrZmxvd0FjdGlvbixcclxuICBBWFBXb3JrZmxvd0NvbmRpdGlvbixcclxuICBBWFBXb3JrZmxvd0NvbnRleHQsXHJcbiAgQVhQV29ya2Zsb3dFdmVudCxcclxuICBBWFBXb3JrZmxvd0Z1bmN0aW9uLFxyXG4gIEFYUFdvcmtmbG93TmV4dFN0ZXAsXHJcbiAgQVhQV29ya2Zsb3dTdGVwLFxyXG59IGZyb20gJy4vd29ya2Zsb3cudHlwZXMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYUFdvcmtmbG93U2VydmljZSB7XHJcbiAgcHJpdmF0ZSBldmVudFNlcnZpY2UgPSBpbmplY3QoQVhQV29ya2Zsb3dFdmVudFNlcnZpY2UpO1xyXG5cclxuICBnZXQgZXZlbnRzJCgpOiBPYnNlcnZhYmxlPEFYUFdvcmtmbG93RXZlbnQ+IHtcclxuICAgIHJldHVybiB0aGlzLmV2ZW50U2VydmljZS5ldmVudHMkO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWdpc3RyeVNlcnZpY2U6IEFYUFdvcmtmbG93UmVnaXN0cnlTZXJ2aWNlLCBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcikgeyB9XHJcblxyXG4gIGFzeW5jIGV4ZWN1dGUod29ya2Zsb3c6IEFYUFdvcmtmbG93IHwgc3RyaW5nLCBpbml0aWFsQ29udGV4dDogYW55ID0ge30pOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIC8vIEluc3RhbnRpYXRlIG9yIHJldHJpZXZlIHRoZSB3b3JrZmxvd1xyXG4gICAgY29uc3Qgd2sgPSB0eXBlb2Ygd29ya2Zsb3cgPT09ICdzdHJpbmcnID8gdGhpcy5nZXRXb3JrZmxvd0luc3RhbmNlKHdvcmtmbG93KSA6IHdvcmtmbG93O1xyXG5cclxuICAgIGxldCBjdXJyZW50U3RlcElkID0gd2suc3RhcnRTdGVwSWQ7XHJcbiAgICBjb25zdCBjb250ZXh0ID0gbmV3IEFYUFdvcmtmbG93Q29udGV4dCgpO1xyXG4gICAgLy8gSW5pdGlhbGl6ZSBjb250ZXh0IHdpdGggaW5pdGlhbCB2YXJpYWJsZXNcclxuICAgIE9iamVjdC5lbnRyaWVzKGluaXRpYWxDb250ZXh0KS5mb3JFYWNoKGUgPT4gY29udGV4dC5zZXRWYXJpYWJsZShlWzBdLCBlWzFdKSk7XHJcblxyXG4gICAgd2hpbGUgKGN1cnJlbnRTdGVwSWQpIHtcclxuICAgICAgY29uc3QgY3VycmVudFN0ZXAgPSB3ay5zdGVwc1tjdXJyZW50U3RlcElkXTtcclxuICAgICAgaWYgKCFjdXJyZW50U3RlcCkge1xyXG4gICAgICAgIHRocm93IG5ldyBBWFBXb3JrZmxvd0Vycm9yKGBTdGVwICcke2N1cnJlbnRTdGVwSWR9JyBub3QgZm91bmQgaW4gdGhlIHdvcmtmbG93IHN0ZXBzLmApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBJbnN0YW50aWF0ZSBvciByZXRyaWV2ZSB0aGUgYWN0aW9uXHJcbiAgICAgIGNvbnN0IGFjdGlvbiA9XHJcbiAgICAgICAgdHlwZW9mIGN1cnJlbnRTdGVwLmFjdGlvbiA9PT0gJ3N0cmluZycgPyB0aGlzLmdldEFjdGlvbkluc3RhbmNlKGN1cnJlbnRTdGVwLmFjdGlvbikgOiBjdXJyZW50U3RlcC5hY3Rpb247XHJcbiAgICAgIGlmIChjdXJyZW50U3RlcC5pbnB1dCkge1xyXG4gICAgICAgIE9iamVjdC5hc3NpZ24oYWN0aW9uLCBjdXJyZW50U3RlcC5pbnB1dCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgYXdhaXQgYWN0aW9uLmV4ZWN1dGUoY29udGV4dCk7XHJcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEFYUFdvcmtmbG93RXJyb3IoJ1dvcmtmbG93IEVycm9yJywgZXJyb3IgYXMgRXJyb3IpO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIERldGVybWluZSB0aGUgbmV4dCBzdGVwIGJhc2VkIG9uIHRoZSBjb25kaXRpb25zXHJcbiAgICAgIGNvbnN0IG5leHRTdGVwSW5mbyA9IGF3YWl0IHRoaXMuZGV0ZXJtaW5lTmV4dFN0ZXAoY3VycmVudFN0ZXAsIGNvbnRleHQpO1xyXG4gICAgICBpZiAobmV4dFN0ZXBJbmZvKSB7XHJcbiAgICAgICAgY3VycmVudFN0ZXBJZCA9IG5leHRTdGVwSW5mby5uZXh0U3RlcElkO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGJyZWFrOyAvLyBFeGl0IHRoZSBsb29wIGlmIG5vIG5leHQgc3RlcCBpcyBkZXRlcm1pbmVkXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QWN0aW9uSW5zdGFuY2UoYWN0aW9uTmFtZTogc3RyaW5nKTogQVhQV29ya2Zsb3dBY3Rpb24ge1xyXG4gICAgY29uc3QgYWN0aW9uVHlwZSA9IHRoaXMucmVnaXN0cnlTZXJ2aWNlLmdldEFjdGlvbihhY3Rpb25OYW1lKTtcclxuICAgIGlmICghYWN0aW9uVHlwZSkge1xyXG4gICAgICB0aHJvdyBuZXcgQVhQV29ya2Zsb3dFcnJvcihgQWN0aW9uIHR5cGUgJyR7YWN0aW9uTmFtZX0nIG5vdCBmb3VuZCBpbiB0aGUgcmVnaXN0cnkuYCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5pbmplY3Rvci5nZXQoYWN0aW9uVHlwZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFdvcmtmbG93SW5zdGFuY2Uod29ya2Zsb3dOYW1lOiBzdHJpbmcpOiBBWFBXb3JrZmxvdyB7XHJcbiAgICBjb25zdCB3b3JrZmxvd1R5cGUgPSB0aGlzLnJlZ2lzdHJ5U2VydmljZS5nZXRXb3JrZmxvdyh3b3JrZmxvd05hbWUpO1xyXG4gICAgaWYgKCF3b3JrZmxvd1R5cGUpIHtcclxuICAgICAgdGhyb3cgbmV3IEFYUFdvcmtmbG93RXJyb3IoYFdvcmtmbG93IHR5cGUgJyR7d29ya2Zsb3dOYW1lfScgbm90IGZvdW5kIGluIHRoZSByZWdpc3RyeS5gKTtcclxuICAgIH1cclxuICAgIHJldHVybiB3b3JrZmxvd1R5cGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGRldGVybWluZU5leHRTdGVwKFxyXG4gICAgY3VycmVudFN0ZXA6IEFYUFdvcmtmbG93U3RlcCxcclxuICAgIGNvbnRleHQ6IEFYUFdvcmtmbG93Q29udGV4dFxyXG4gICk6IFByb21pc2U8QVhQV29ya2Zsb3dOZXh0U3RlcCB8IG51bGw+IHtcclxuICAgIGlmICghY3VycmVudFN0ZXAubmV4dFN0ZXBzKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgZm9yIChjb25zdCBuZXh0U3RlcCBvZiBjdXJyZW50U3RlcC5uZXh0U3RlcHMpIHtcclxuICAgICAgaWYgKGF3YWl0IHRoaXMuZXZhbHVhdGVDb25kaXRpb24obmV4dFN0ZXAuY29uZGl0aW9ucywgY29udGV4dCkpIHtcclxuICAgICAgICByZXR1cm4gbmV4dFN0ZXA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBldmFsdWF0ZUNvbmRpdGlvbihjb25kaXRpb25zOiBBWFBXb3JrZmxvd0NvbmRpdGlvbltdLCBjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGlmICghY29uZGl0aW9ucyB8fCBjb25kaXRpb25zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTsgLy8gSWYgbm8gY29uZGl0aW9ucywgdGhlIHN0ZXAgcHJvY2VlZHNcclxuICAgIH1cclxuXHJcbiAgICAvLyBNYXAgZWFjaCBjb25kaXRpb24gdG8gYSBwcm9taXNlIHVzaW5nIGV2YWx1YXRlU2luZ2xlQ29uZGl0aW9uXHJcbiAgICBjb25zdCBjb25kaXRpb25Qcm9taXNlcyA9IGNvbmRpdGlvbnMubWFwKChjb25kaXRpb24pID0+IHRoaXMuZXZhbHVhdGVTaW5nbGVDb25kaXRpb24oY29uZGl0aW9uLCBjb250ZXh0KSk7XHJcblxyXG4gICAgLy8gV2FpdCBmb3IgYWxsIHByb21pc2VzIHRvIHJlc29sdmVcclxuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChjb25kaXRpb25Qcm9taXNlcyk7XHJcblxyXG4gICAgLy8gQ2hlY2sgaWYgZXZlcnkgY29uZGl0aW9uIGlzIHRydWVcclxuICAgIHJldHVybiByZXN1bHRzLmV2ZXJ5KChyZXN1bHQpID0+IHJlc3VsdCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGV2YWx1YXRlU2luZ2xlQ29uZGl0aW9uKFxyXG4gICAgY29uZGl0aW9uOiBBWFBXb3JrZmxvd0NvbmRpdGlvbixcclxuICAgIGNvbnRleHQ6IEFYUFdvcmtmbG93Q29udGV4dFxyXG4gICk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgc3dpdGNoIChjb25kaXRpb24udHlwZSkge1xyXG4gICAgICBjYXNlICdTSU5HTEUnOlxyXG4gICAgICAgIHJldHVybiAoIWNvbmRpdGlvbi5leHByZXNzaW9uID8gdHJ1ZSA6IGF3YWl0IHRoaXMuZXZhbHVhdGVFeHByZXNzaW9uKGNvbmRpdGlvbi5leHByZXNzaW9uLCBjb250ZXh0KSkgYXMgYm9vbGVhbjtcclxuICAgICAgY2FzZSAnQU5EJzpcclxuICAgICAgICAvLyBFdmFsdWF0ZSBhbGwgY29uZGl0aW9ucyB3aXRoICdBTkQnIGxvZ2ljXHJcbiAgICAgICAgY29uc3QgYW5kQ29uZGl0aW9ucyA9IGNvbmRpdGlvbi5jb25kaXRpb25zID8/IFtdO1xyXG4gICAgICAgIGNvbnN0IGFuZFJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChhbmRDb25kaXRpb25zLm1hcCgoY29uZCkgPT4gdGhpcy5ldmFsdWF0ZVNpbmdsZUNvbmRpdGlvbihjb25kLCBjb250ZXh0KSkpO1xyXG4gICAgICAgIHJldHVybiBhbmRSZXN1bHRzLmV2ZXJ5KChyZXN1bHQpID0+IHJlc3VsdCk7XHJcblxyXG4gICAgICBjYXNlICdPUic6XHJcbiAgICAgICAgLy8gRXZhbHVhdGUgYWxsIGNvbmRpdGlvbnMgd2l0aCAnT1InIGxvZ2ljXHJcbiAgICAgICAgY29uc3Qgb3JDb25kaXRpb25zID0gY29uZGl0aW9uLmNvbmRpdGlvbnMgPz8gW107XHJcbiAgICAgICAgY29uc3Qgb3JSZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwob3JDb25kaXRpb25zLm1hcCgoY29uZCkgPT4gdGhpcy5ldmFsdWF0ZVNpbmdsZUNvbmRpdGlvbihjb25kLCBjb250ZXh0KSkpO1xyXG4gICAgICAgIHJldHVybiBvclJlc3VsdHMuc29tZSgocmVzdWx0KSA9PiByZXN1bHQpO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aHJvdyBuZXcgQVhQV29ya2Zsb3dFcnJvcihgVW5zdXBwb3J0ZWQgY29uZGl0aW9uIHR5cGU6ICR7Y29uZGl0aW9uLnR5cGV9YCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGV2YWx1YXRlRXhwcmVzc2lvbihleHByZXNzaW9uOiBzdHJpbmcsIGNvbnRleHQ6IEFYUFdvcmtmbG93Q29udGV4dCk6IFByb21pc2U8Qm9vbGVhbj4ge1xyXG4gICAgdHJ5IHtcclxuICAgICAgLy8gQ3JlYXRlIGEgc2NvcGUgdGhhdCBpbmNsdWRlcyBjb250ZXh0IGFuZCByZWdpc3RlcmVkIGZ1bmN0aW9uc1xyXG4gICAgICBjb25zdCBzY29wZSA9IHsgY29udGV4dCwgLi4udGhpcy5jcmVhdGVGdW5jdGlvblNjb3BlKCkgfTtcclxuXHJcbiAgICAgIC8vIEV2YWx1YXRpbmcgdGhlIGV4cHJlc3Npb24gd2l0aGluIHRoZSBjcmVhdGVkIHNjb3BlXHJcbiAgICAgIGNvbnN0IHNhbmRib3ggPSBuZXcgRnVuY3Rpb24oJ3Njb3BlJywgYHJldHVybiAoYXN5bmMgZnVuY3Rpb24oKSB7IHdpdGggKHNjb3BlKSB7IHJldHVybiAke2V4cHJlc3Npb259OyB9IH0pKCk7YCk7XHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHNhbmRib3goc2NvcGUpO1xyXG4gICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZXZhbHVhdGluZyBleHByZXNzaW9uOicsIGVycm9yKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVGdW5jdGlvblNjb3BlKCk6IGFueSB7XHJcbiAgICBjb25zdCBzY29wZTogYW55ID0ge307XHJcbiAgICB0aGlzLnJlZ2lzdHJ5U2VydmljZS5nZXRGdW5jdGlvbk5hbWVzKCkuZm9yRWFjaCgobmFtZSkgPT4ge1xyXG4gICAgICBzY29wZVtuYW1lXSA9IHRoaXMuZ2V0RnVuY3Rpb25JbnN0YW5jZShuYW1lKS5leGVjdXRlO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gc2NvcGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEZ1bmN0aW9uSW5zdGFuY2UoZnVuY3Rpb25OYW1lOiBzdHJpbmcpOiBBWFBXb3JrZmxvd0Z1bmN0aW9uIHtcclxuICAgIGNvbnN0IGZ1bmN0aW9uVHlwZSA9IHRoaXMucmVnaXN0cnlTZXJ2aWNlLmdldEZ1bmN0aW9uKGZ1bmN0aW9uTmFtZSk7XHJcbiAgICBpZiAoIWZ1bmN0aW9uVHlwZSkge1xyXG4gICAgICB0aHJvdyBuZXcgQVhQV29ya2Zsb3dFcnJvcihgRnVuY3Rpb24gdHlwZSAnJHtmdW5jdGlvbk5hbWV9JyBub3QgZm91bmQgaW4gdGhlIHJlZ2lzdHJ5LmApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaW5qZWN0b3IuZ2V0KGZ1bmN0aW9uVHlwZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3cuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vd29ya2Zsb3cvc3JjL2xpYi93b3JrZmxvdy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRSxPQUFPLEVBSUwsa0JBQWtCLEdBS25CLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQUszQyxNQUFNLE9BQU8sa0JBQWtCO0lBSTdCLElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7SUFDbkMsQ0FBQztJQUVELFlBQW9CLGVBQTJDLEVBQVUsUUFBa0I7UUFBdkUsb0JBQWUsR0FBZixlQUFlLENBQTRCO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVBuRixpQkFBWSxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBT3dDLENBQUM7SUFFaEcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUE4QixFQUFFLGlCQUFrRCxJQUFJO1FBQ2xHLHVDQUF1QztRQUN2QyxNQUFNLEVBQUUsR0FBRyxPQUFPLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBRXhGLElBQUksYUFBYSxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7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LEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUMxRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sK0JBQStCO2dCQUMvQixHQUFHLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNsQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyxtQkFBbUI7UUFDekIsTUFBTSxLQUFLLEdBQVEsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN2RCxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUN2RCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLG1CQUFtQixDQUFDLFlBQW9CO1FBQzlDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQixNQUFNLElBQUksZ0JBQWdCLENBQUMsa0JBQWtCLFlBQVksOEJBQThCLENBQUMsQ0FBQztRQUMzRixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN6QyxDQUFDOzhHQS9MVSxrQkFBa0I7a0hBQWxCLGtCQUFrQixjQUZqQixNQUFNOzsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFYUFdvcmtmbG93RXJyb3IgfSBmcm9tICcuL2Vycm9ycy50eXBlcyc7XHJcbmltcG9ydCB7IEFYUFdvcmtmbG93RXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi93b3JrZmxvdy1ldmVudC1kaXNwYXRjaGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBWFBXb3JrZmxvd1JlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4vd29ya2Zsb3ctcmVnaXN0ZXJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIEFYUFdvcmtmbG93LFxyXG4gIEFYUFdvcmtmbG93QWN0aW9uLFxyXG4gIEFYUFdvcmtmbG93Q29uZGl0aW9uLFxyXG4gIEFYUFdvcmtmbG93Q29udGV4dCxcclxuICBBWFBXb3JrZmxvd0V2ZW50LFxyXG4gIEFYUFdvcmtmbG93RnVuY3Rpb24sXHJcbiAgQVhQV29ya2Zsb3dOZXh0U3RlcCxcclxuICBBWFBXb3JrZmxvd1N0ZXAsXHJcbn0gZnJvbSAnLi93b3JrZmxvdy50eXBlcyc7XHJcbmltcG9ydCB7IGNsb25lRGVlcCwgc2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFBXb3JrZmxvd1NlcnZpY2Uge1xyXG4gIHByaXZhdGUgZXZlbnRTZXJ2aWNlID0gaW5qZWN0KEFYUFdvcmtmbG93RXZlbnRTZXJ2aWNlKTtcclxuXHJcblxyXG4gIGdldCBldmVudHMkKCk6IE9ic2VydmFibGU8QVhQV29ya2Zsb3dFdmVudD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZXZlbnRTZXJ2aWNlLmV2ZW50cyQ7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZ2lzdHJ5U2VydmljZTogQVhQV29ya2Zsb3dSZWdpc3RyeVNlcnZpY2UsIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7IH1cclxuXHJcbiAgYXN5bmMgZXhlY3V0ZSh3b3JrZmxvdzogQVhQV29ya2Zsb3cgfCBzdHJpbmcsIGluaXRpYWxDb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQgfCBhbnkgfCBudWxsID0gbnVsbCk6IFByb21pc2U8QVhQV29ya2Zsb3dDb250ZXh0PiB7XHJcbiAgICAvLyBJbnN0YW50aWF0ZSBvciByZXRyaWV2ZSB0aGUgd29ya2Zsb3dcclxuICAgIGNvbnN0IHdrID0gdHlwZW9mIHdvcmtmbG93ID09PSAnc3RyaW5nJyA/IHRoaXMuZ2V0V29ya2Zsb3dJbnN0YW5jZSh3b3JrZmxvdykgOiB3b3JrZmxvdztcclxuXHJcbiAgICBsZXQgY3VycmVudFN0ZXBJZCA9IHdrLnN0YXJ0U3RlcElkO1xyXG4gICAgY29uc3QgY29udGV4dCA9IGluaXRpYWxDb250ZXh0IGluc3RhbmNlb2YgQVhQV29ya2Zsb3dDb250ZXh0ID8gaW5pdGlhbENvbnRleHQgOiBuZXcgQVhQV29ya2Zsb3dDb250ZXh0KGluaXRpYWxDb250ZXh0ID8/IHt9KTtcclxuICAgIC8vIEluaXRpYWxpemUgY29udGV4dCB3aXRoIGluaXRpYWwgdmFyaWFibGVzXHJcblxyXG4gICAgd2hpbGUgKGN1cnJlbnRTdGVwSWQpIHtcclxuICAgICAgY29uc3QgY3VycmVudFN0ZXAgPSB3ay5zdGVwc1tjdXJyZW50U3RlcElkXTtcclxuICAgICAgaWYgKCFjdXJyZW50U3RlcCkge1xyXG4gICAgICAgIHRocm93IG5ldyBBWFBXb3JrZmxvd0Vycm9yKGBTdGVwICcke2N1cnJlbnRTdGVwSWR9JyBub3QgZm91bmQgaW4gdGhlIHdvcmtmbG93IHN0ZXBzLmApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBJbnN0YW50aWF0ZSBvciByZXRyaWV2ZSB0aGUgYWN0aW9uXHJcbiAgICAgIGNvbnN0IGFjdGlvbiA9IHR5cGVvZiBjdXJyZW50U3RlcC5hY3Rpb24gPT09ICdzdHJpbmcnID8gdGhpcy5nZXRBY3Rpb25JbnN0YW5jZShjdXJyZW50U3RlcC5hY3Rpb24pIDogY3VycmVudFN0ZXAuYWN0aW9uO1xyXG4gICAgICBpZiAoY3VycmVudFN0ZXAuaW5wdXQpIHtcclxuICAgICAgICBsZXQgaW5wdXRzOiBhbnkgPSB7fTtcclxuICAgICAgICBhd2FpdCB0aGlzLnByb2Nlc3NJbnB1dHMoY2xvbmVEZWVwKGN1cnJlbnRTdGVwLmlucHV0KSwgaW5wdXRzLCAnJywgY29udGV4dCk7XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbihhY3Rpb24sIGlucHV0cyk7XHJcbiAgICAgIH1cclxuICAgICAgdHJ5IHtcclxuICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICBhd2FpdCBhY3Rpb24uZXhlY3V0ZShjb250ZXh0KTtcclxuICAgICAgICAgIHJlc29sdmUoMCk7XHJcbiAgICAgICAgfSwgMCkpO1xyXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gICAgICAgIHRocm93IG5ldyBBWFBXb3JrZmxvd0Vycm9yKCdXb3JrZmxvdyBFcnJvcicsIGVycm9yIGFzIEVycm9yKTtcclxuICAgICAgfVxyXG4gICAgICAvLyBEZXRlcm1pbmUgdGhlIG5leHQgc3RlcCBiYXNlZCBvbiB0aGUgY29uZGl0aW9uc1xyXG4gICAgICBjb25zdCBuZXh0U3RlcEluZm8gPSBhd2FpdCB0aGlzLmRldGVybWluZU5leHRTdGVwKGN1cnJlbnRTdGVwLCBjb250ZXh0KTtcclxuICAgICAgaWYgKG5leHRTdGVwSW5mbykge1xyXG4gICAgICAgIGN1cnJlbnRTdGVwSWQgPSBuZXh0U3RlcEluZm8ubmV4dFN0ZXBJZDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBicmVhazsgLy8gRXhpdCB0aGUgbG9vcCBpZiBubyBuZXh0IHN0ZXAgaXMgZGV0ZXJtaW5lZFxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29udGV4dDtcclxuICB9XHJcblxyXG4gIC8vVE9ETyA6IHJlcGxhY2Ugd2l0aCBBWERhdGFHZW5lcmF0b3JcclxuICBwcml2YXRlIHV1aWQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAneHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4Jy5yZXBsYWNlKC9beHldL2csIChjaGFyKSA9PiB7XHJcbiAgICAgIGNvbnN0IHJhbmRvbSA9IChNYXRoLnJhbmRvbSgpICogMTYpIHwgMDtcclxuICAgICAgY29uc3QgdmFsdWUgPSBjaGFyID09PSAneCcgPyByYW5kb20gOiAocmFuZG9tICYgMHgzKSB8IDB4ODtcclxuICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKDE2KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRBY3Rpb25JbnN0YW5jZShhY3Rpb25OYW1lOiBzdHJpbmcpOiBBWFBXb3JrZmxvd0FjdGlvbiB7XHJcbiAgICBjb25zdCBhY3Rpb25UeXBlID0gdGhpcy5yZWdpc3RyeVNlcnZpY2UuZ2V0QWN0aW9uKGFjdGlvbk5hbWUpO1xyXG4gICAgaWYgKCFhY3Rpb25UeXBlKSB7XHJcbiAgICAgIHRocm93IG5ldyBBWFBXb3JrZmxvd0Vycm9yKGBBY3Rpb24gdHlwZSAnJHthY3Rpb25OYW1lfScgbm90IGZvdW5kIGluIHRoZSByZWdpc3RyeS5gKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmluamVjdG9yLmdldChhY3Rpb25UeXBlLCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFdvcmtmbG93SW5zdGFuY2Uod29ya2Zsb3dOYW1lOiBzdHJpbmcpOiBBWFBXb3JrZmxvdyB7XHJcbiAgICBjb25zdCB3b3JrZmxvd1R5cGUgPSB0aGlzLnJlZ2lzdHJ5U2VydmljZS5nZXRXb3JrZmxvdyh3b3JrZmxvd05hbWUpO1xyXG4gICAgaWYgKCF3b3JrZmxvd1R5cGUpIHtcclxuICAgICAgdGhyb3cgbmV3IEFYUFdvcmtmbG93RXJyb3IoYFdvcmtmbG93IHR5cGUgJyR7d29ya2Zsb3dOYW1lfScgbm90IGZvdW5kIGluIHRoZSByZWdpc3RyeS5gKTtcclxuICAgIH1cclxuICAgIHJldHVybiB3b3JrZmxvd1R5cGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGRldGVybWluZU5leHRTdGVwKFxyXG4gICAgY3VycmVudFN0ZXA6IEFYUFdvcmtmbG93U3RlcCxcclxuICAgIGNvbnRleHQ6IEFYUFdvcmtmbG93Q29udGV4dFxyXG4gICk6IFByb21pc2U8QVhQV29ya2Zsb3dOZXh0U3RlcCB8IG51bGw+IHtcclxuICAgIGlmICghY3VycmVudFN0ZXAubmV4dFN0ZXBzKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgZm9yIChjb25zdCBuZXh0U3RlcCBvZiBjdXJyZW50U3RlcC5uZXh0U3RlcHMpIHtcclxuICAgICAgaWYgKGF3YWl0IHRoaXMuZXZhbHVhdGVDb25kaXRpb24obmV4dFN0ZXAuY29uZGl0aW9ucywgY29udGV4dCkpIHtcclxuICAgICAgICByZXR1cm4gbmV4dFN0ZXA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBldmFsdWF0ZUNvbmRpdGlvbihjb25kaXRpb25zOiBBWFBXb3JrZmxvd0NvbmRpdGlvbltdLCBjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGlmICghY29uZGl0aW9ucyB8fCBjb25kaXRpb25zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTsgLy8gSWYgbm8gY29uZGl0aW9ucywgdGhlIHN0ZXAgcHJvY2VlZHNcclxuICAgIH1cclxuXHJcbiAgICAvLyBNYXAgZWFjaCBjb25kaXRpb24gdG8gYSBwcm9taXNlIHVzaW5nIGV2YWx1YXRlU2luZ2xlQ29uZGl0aW9uXHJcbiAgICBjb25zdCBjb25kaXRpb25Qcm9taXNlcyA9IGNvbmRpdGlvbnMubWFwKChjb25kaXRpb24pID0+IHRoaXMuZXZhbHVhdGVTaW5nbGVDb25kaXRpb24oY29uZGl0aW9uLCBjb250ZXh0KSk7XHJcblxyXG4gICAgLy8gV2FpdCBmb3IgYWxsIHByb21pc2VzIHRvIHJlc29sdmVcclxuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChjb25kaXRpb25Qcm9taXNlcyk7XHJcblxyXG4gICAgLy8gQ2hlY2sgaWYgZXZlcnkgY29uZGl0aW9uIGlzIHRydWVcclxuICAgIHJldHVybiByZXN1bHRzLmV2ZXJ5KChyZXN1bHQpID0+IHJlc3VsdCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGV2YWx1YXRlU2luZ2xlQ29uZGl0aW9uKFxyXG4gICAgY29uZGl0aW9uOiBBWFBXb3JrZmxvd0NvbmRpdGlvbixcclxuICAgIGNvbnRleHQ6IEFYUFdvcmtmbG93Q29udGV4dFxyXG4gICk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgc3dpdGNoIChjb25kaXRpb24udHlwZSkge1xyXG4gICAgICBjYXNlICdTSU5HTEUnOlxyXG4gICAgICAgIHJldHVybiAoIWNvbmRpdGlvbi5leHByZXNzaW9uID8gdHJ1ZSA6IGF3YWl0IHRoaXMuZXZhbHVhdGVFeHByZXNzaW9uKGNvbmRpdGlvbi5leHByZXNzaW9uLCBjb250ZXh0KSkgYXMgYm9vbGVhbjtcclxuICAgICAgY2FzZSAnQU5EJzpcclxuICAgICAgICAvLyBFdmFsdWF0ZSBhbGwgY29uZGl0aW9ucyB3aXRoICdBTkQnIGxvZ2ljXHJcbiAgICAgICAgY29uc3QgYW5kQ29uZGl0aW9ucyA9IGNvbmRpdGlvbi5jb25kaXRpb25zID8/IFtdO1xyXG4gICAgICAgIGNvbnN0IGFuZFJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChhbmRDb25kaXRpb25zLm1hcCgoY29uZCkgPT4gdGhpcy5ldmFsdWF0ZVNpbmdsZUNvbmRpdGlvbihjb25kLCBjb250ZXh0KSkpO1xyXG4gICAgICAgIHJldHVybiBhbmRSZXN1bHRzLmV2ZXJ5KChyZXN1bHQpID0+IHJlc3VsdCk7XHJcblxyXG4gICAgICBjYXNlICdPUic6XHJcbiAgICAgICAgLy8gRXZhbHVhdGUgYWxsIGNvbmRpdGlvbnMgd2l0aCAnT1InIGxvZ2ljXHJcbiAgICAgICAgY29uc3Qgb3JDb25kaXRpb25zID0gY29uZGl0aW9uLmNvbmRpdGlvbnMgPz8gW107XHJcbiAgICAgICAgY29uc3Qgb3JSZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwob3JDb25kaXRpb25zLm1hcCgoY29uZCkgPT4gdGhpcy5ldmFsdWF0ZVNpbmdsZUNvbmRpdGlvbihjb25kLCBjb250ZXh0KSkpO1xyXG4gICAgICAgIHJldHVybiBvclJlc3VsdHMuc29tZSgocmVzdWx0KSA9PiByZXN1bHQpO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aHJvdyBuZXcgQVhQV29ya2Zsb3dFcnJvcihgVW5zdXBwb3J0ZWQgY29uZGl0aW9uIHR5cGU6ICR7Y29uZGl0aW9uLnR5cGV9YCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGV2YWx1YXRlRXhwcmVzc2lvbih0ZW1wbGF0ZUV4cHJlc3Npb246IHN0cmluZywgY29udGV4dDogQVhQV29ya2Zsb3dDb250ZXh0KTogUHJvbWlzZTxCb29sZWFuPiB7XHJcbiAgICB0cnkge1xyXG4gICAgICBsZXQgZXhwcmVzc2lvbiA9ICcnO1xyXG4gICAgICBpZiAodHlwZW9mIHRlbXBsYXRlRXhwcmVzc2lvbiA9PT0gJ3N0cmluZycgJiYgdGVtcGxhdGVFeHByZXNzaW9uLnRyaW0oKS5pbmNsdWRlcygne3snKSkge1xyXG4gICAgICAgIGNvbnN0IGV4cHJlc3Npb25NYXRjaCA9IHRlbXBsYXRlRXhwcmVzc2lvbi5tYXRjaCgvXFx7XFx7XFxzKiguKj8pXFxzKlxcfVxcfS8pO1xyXG4gICAgICAgIGlmICghZXhwcmVzc2lvbk1hdGNoKSB7XHJcbiAgICAgICAgICB0aHJvdyBFcnJvcihgTm8gdmFsaWQgZXhwcmVzc2lvbiBmb3VuZCBpbiBcIiR7dGVtcGxhdGVFeHByZXNzaW9ufVwiYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGV4cHJlc3Npb24gPSBleHByZXNzaW9uTWF0Y2hbMV07XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgZXhwcmVzc2lvbiA9IHRlbXBsYXRlRXhwcmVzc2lvbjtcclxuICAgICAgfVxyXG4gICAgICAvLyBDcmVhdGUgYSBzY29wZSB0aGF0IGluY2x1ZGVzIGNvbnRleHQgYW5kIHJlZ2lzdGVyZWQgZnVuY3Rpb25zXHJcbiAgICAgIGNvbnN0IHNjb3BlID0geyBjb250ZXh0LCAuLi50aGlzLmNyZWF0ZUZ1bmN0aW9uU2NvcGUoKSB9O1xyXG4gICAgICAvLyBFdmFsdWF0aW5nIHRoZSBleHByZXNzaW9uIHdpdGhpbiB0aGUgY3JlYXRlZCBzY29wZVxyXG4gICAgICBjb25zdCBzYW5kYm94ID0gbmV3IEZ1bmN0aW9uKCdzY29wZScsIGByZXR1cm4gKGFzeW5jIGZ1bmN0aW9uKCkgeyB3aXRoIChzY29wZSkgeyByZXR1cm4gJHtleHByZXNzaW9ufTsgfSB9KSgpO2ApO1xyXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBzYW5kYm94KHNjb3BlKTtcclxuICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGV2YWx1YXRpbmcgZXhwcmVzc2lvbjonLCBlcnJvcik7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIHByb2Nlc3NJbnB1dHMob2JqOiBhbnksIGlucHV0czogYW55LCBwYXRoUHJlZml4OiBzdHJpbmcgPSAnJywgY29udGV4dDogYW55ID0ge30pOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICghb2JqKVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgZm9yIGF3YWl0IChjb25zdCBpIG9mIE9iamVjdC5lbnRyaWVzKG9iaikpIHtcclxuICAgICAgY29uc3Qga2V5ID0gaVswXTtcclxuICAgICAgY29uc3QgdmFsdWUgPSBpWzFdO1xyXG4gICAgICBjb25zdCBjdXJyZW50UGF0aCA9IHBhdGhQcmVmaXggPyBgJHtwYXRoUHJlZml4fS4ke2tleX1gIDoga2V5O1xyXG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS50cmltKCkuaW5jbHVkZXMoJ3t7JykpIHtcclxuICAgICAgICBjb25zdCBleHBWYWx1ZSA9IGF3YWl0IHRoaXMuZXZhbHVhdGVFeHByZXNzaW9uKHZhbHVlLCBjb250ZXh0KTtcclxuICAgICAgICBzZXQoaW5wdXRzLCBjdXJyZW50UGF0aCwgZXhwVmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwgJiYgKHZhbHVlLmNvbnN0cnVjdG9yID09PSBPYmplY3QgfHwgQXJyYXkuaXNBcnJheSh2YWx1ZSkpKSB7XHJcbiAgICAgICAgLy8gUmVjdXJzaXZlbHkgaGFuZGxlIG5lc3RlZCBvYmplY3RzXHJcbiAgICAgICAgdGhpcy5wcm9jZXNzSW5wdXRzKHZhbHVlLCBpbnB1dHMsIGN1cnJlbnRQYXRoLCBjb250ZXh0KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBBcHBseSBzdGF0aWMgdmFsdWVzIGRpcmVjdGx5XHJcbiAgICAgICAgc2V0KGlucHV0cywgY3VycmVudFBhdGgsIHZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVGdW5jdGlvblNjb3BlKCk6IGFueSB7XHJcbiAgICBjb25zdCBzY29wZTogYW55ID0ge307XHJcbiAgICB0aGlzLnJlZ2lzdHJ5U2VydmljZS5nZXRGdW5jdGlvbk5hbWVzKCkuZm9yRWFjaCgobmFtZSkgPT4ge1xyXG4gICAgICBzY29wZVtuYW1lXSA9IHRoaXMuZ2V0RnVuY3Rpb25JbnN0YW5jZShuYW1lKS5leGVjdXRlO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gc2NvcGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEZ1bmN0aW9uSW5zdGFuY2UoZnVuY3Rpb25OYW1lOiBzdHJpbmcpOiBBWFBXb3JrZmxvd0Z1bmN0aW9uIHtcclxuICAgIGNvbnN0IGZ1bmN0aW9uVHlwZSA9IHRoaXMucmVnaXN0cnlTZXJ2aWNlLmdldEZ1bmN0aW9uKGZ1bmN0aW9uTmFtZSk7XHJcbiAgICBpZiAoIWZ1bmN0aW9uVHlwZSkge1xyXG4gICAgICB0aHJvdyBuZXcgQVhQV29ya2Zsb3dFcnJvcihgRnVuY3Rpb24gdHlwZSAnJHtmdW5jdGlvbk5hbWV9JyBub3QgZm91bmQgaW4gdGhlIHJlZ2lzdHJ5LmApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaW5qZWN0b3IuZ2V0KGZ1bmN0aW9uVHlwZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,24 +1,31 @@
1
1
  import { Injectable, inject } from '@angular/core';
2
2
  import { filter } from 'rxjs';
3
3
  import { AXPWorkflowEventService } from './workflow-event-dispatcher.service';
4
+ import { cloneDeep, get, set } from 'lodash-es';
4
5
  import * as i0 from "@angular/core";
5
6
  export class AXPWorkflowContext {
6
- constructor() {
7
- this.variables = new Map();
7
+ constructor(initialData = {}) {
8
+ this.variables = {};
8
9
  this.stepOutputs = new Map();
9
- // You can add more helper methods as needed
10
+ this.variables = cloneDeep(initialData);
10
11
  }
11
12
  setVariable(key, value) {
12
- this.variables.set(key, value);
13
+ set(this.variables, key, value);
14
+ }
15
+ setVariables(context = {}) {
16
+ this.variables = { ...this.variables, ...context };
13
17
  }
14
18
  getVariable(key) {
15
- return this.variables.get(key);
19
+ return get(this.variables, key);
20
+ }
21
+ setOutput(key, output) {
22
+ this.stepOutputs.set(key, output);
16
23
  }
17
- setOutput(stepId, output) {
18
- this.stepOutputs.set(stepId, output);
24
+ setOutputs(values) {
25
+ this.stepOutputs = new Map([...this.stepOutputs, ...values]);
19
26
  }
20
- getOutput(stepId) {
21
- return this.stepOutputs.get(stepId);
27
+ getOutput(key) {
28
+ return this.stepOutputs.get(key);
22
29
  }
23
30
  }
24
31
  export class AXPWorkflowAction {
@@ -49,4 +56,4 @@ export function createWorkFlowEvent(type) {
49
56
  export function ofType(...allowedTypes) {
50
57
  return filter((event) => allowedTypes.some((type) => event.type === type.type));
51
58
  }
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3cudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvd29ya2Zsb3cudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFROUUsTUFBTSxPQUFPLGtCQUFrQjtJQUEvQjtRQUNVLGNBQVMsR0FBcUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN4QyxnQkFBVyxHQUFxQixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBa0JsRCw0Q0FBNEM7SUFDOUMsQ0FBQztJQWpCQyxXQUFXLENBQUMsR0FBVyxFQUFFLEtBQVU7UUFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxXQUFXLENBQVUsR0FBVztRQUM5QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBYyxFQUFFLE1BQVc7UUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxTQUFTLENBQVUsTUFBYztRQUMvQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7Q0FHRjtBQXlCRCxNQUFNLE9BQWdCLGlCQUFpQjtJQUR2QztRQUVVLGlCQUFZLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7S0FPeEQ7SUFMVyxRQUFRLENBQUMsS0FBdUI7UUFDeEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQzs4R0FMbUIsaUJBQWlCO2tIQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBRHRDLFVBQVU7O0FBWVgsTUFBTSxPQUFnQixtQkFBbUI7OEdBQW5CLG1CQUFtQjtrSEFBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUR4QyxVQUFVOztBQVlYLE1BQU0sVUFBVSxtQkFBbUIsQ0FBSSxJQUFZO0lBQ2pELE1BQU0sWUFBWSxHQUFHLENBQUMsT0FBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDekQsWUFBWSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDekIsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQztBQUVELE1BQU0sVUFBVSxNQUFNLENBQTZCLEdBQUcsWUFBcUM7SUFDekYsT0FBTyxNQUFNLENBQUMsQ0FBQyxLQUFRLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDckYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQVhQV29ya2Zsb3dFdmVudFNlcnZpY2UgfSBmcm9tICcuL3dvcmtmbG93LWV2ZW50LWRpc3BhdGNoZXIuc2VydmljZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdvcmtmbG93IHtcclxuICBzdGVwczogeyBbc3RlcE5hbWU6IHN0cmluZ106IEFYUFdvcmtmbG93U3RlcCB9O1xyXG4gIHN0YXJ0U3RlcElkOiBzdHJpbmc7XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgQVhQV29ya2Zsb3dDb250ZXh0IHtcclxuICBwcml2YXRlIHZhcmlhYmxlczogTWFwPHN0cmluZywgYW55PiA9IG5ldyBNYXAoKTtcclxuICBwcml2YXRlIHN0ZXBPdXRwdXRzOiBNYXA8c3RyaW5nLCBhbnk+ID0gbmV3IE1hcCgpO1xyXG5cclxuICBzZXRWYXJpYWJsZShrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy52YXJpYWJsZXMuc2V0KGtleSwgdmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmFyaWFibGU8VCA9IGFueT4oa2V5OiBzdHJpbmcpOiBUIHtcclxuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlcy5nZXQoa2V5KTtcclxuICB9XHJcblxyXG4gIHNldE91dHB1dChzdGVwSWQ6IHN0cmluZywgb3V0cHV0OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RlcE91dHB1dHMuc2V0KHN0ZXBJZCwgb3V0cHV0KTtcclxuICB9XHJcblxyXG4gIGdldE91dHB1dDxUID0gYW55PihzdGVwSWQ6IHN0cmluZyk6IFQge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RlcE91dHB1dHMuZ2V0KHN0ZXBJZCk7XHJcbiAgfVxyXG5cclxuICAvLyBZb3UgY2FuIGFkZCBtb3JlIGhlbHBlciBtZXRob2RzIGFzIG5lZWRlZFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBBWFBXb3JrZmxvd0FjdGlvbklucHV0ID0gYW55O1xyXG5cclxuZXhwb3J0IHR5cGUgQVhQV29ya2Zsb3dDb25kaXRpb25UeXBlID0gJ0FORCcgfCAnT1InIHwgJ1NJTkdMRSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdvcmtmbG93Q29uZGl0aW9uIHtcclxuICB0eXBlOiBBWFBXb3JrZmxvd0NvbmRpdGlvblR5cGU7XHJcbiAgY29uZGl0aW9ucz86IEFYUFdvcmtmbG93Q29uZGl0aW9uW107IC8vIE5lc3RlZCBjb25kaXRpb25zXHJcbiAgZXhwcmVzc2lvbj86IHN0cmluZzsgLy8gVXNlZCBpZiB0eXBlIGlzICdTSU5HTEUnXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVhQV29ya2Zsb3dOZXh0U3RlcCB7XHJcbiAgY29uZGl0aW9uczogQVhQV29ya2Zsb3dDb25kaXRpb25bXTtcclxuICBuZXh0U3RlcElkOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVhQV29ya2Zsb3dTdGVwIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIGFjdGlvbjogQVhQV29ya2Zsb3dBY3Rpb24gfCBzdHJpbmc7XHJcbiAgaW5wdXQ/OiBBWFBXb3JrZmxvd0FjdGlvbklucHV0O1xyXG4gIG5leHRTdGVwcz86IEFYUFdvcmtmbG93TmV4dFN0ZXBbXTtcclxuICBjb25kaXRpb25zPzogQVhQV29ya2Zsb3dDb25kaXRpb25bXTtcclxufVxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBXb3JrZmxvd0FjdGlvbiB7XHJcbiAgcHJpdmF0ZSBldmVudFNlcnZpY2UgPSBpbmplY3QoQVhQV29ya2Zsb3dFdmVudFNlcnZpY2UpO1xyXG5cclxuICBwcm90ZWN0ZWQgZGlzcGF0Y2goZXZlbnQ6IEFYUFdvcmtmbG93RXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlLmRpc3BhdGNoKGV2ZW50KTtcclxuICB9XHJcblxyXG4gIGFic3RyYWN0IGV4ZWN1dGUoY29udGV4dDogQVhQV29ya2Zsb3dDb250ZXh0KTogUHJvbWlzZTx2b2lkPjtcclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQV29ya2Zsb3dGdW5jdGlvbiB7XHJcbiAgYWJzdHJhY3QgZXhlY3V0ZSguLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8YW55PiB8IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBWFBXb3JrZmxvd0V2ZW50PFQgPSBhbnk+IHtcclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgcGF5bG9hZD86IFQ7XHJcbn1cclxuXHJcblxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVdvcmtGbG93RXZlbnQ8VD4odHlwZTogc3RyaW5nKSB7XHJcbiAgY29uc3QgZXZlbnRDcmVhdG9yID0gKHBheWxvYWQ6IFQpID0+ICh7IHR5cGUsIHBheWxvYWQgfSk7XHJcbiAgZXZlbnRDcmVhdG9yLnR5cGUgPSB0eXBlO1xyXG4gIHJldHVybiBldmVudENyZWF0b3I7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBvZlR5cGU8VCBleHRlbmRzIHsgdHlwZTogc3RyaW5nIH0+KC4uLmFsbG93ZWRUeXBlczogQXJyYXk8eyB0eXBlOiBzdHJpbmcgfT4pIHtcclxuICByZXR1cm4gZmlsdGVyKChldmVudDogVCkgPT4gYWxsb3dlZFR5cGVzLnNvbWUoKHR5cGUpID0+IGV2ZW50LnR5cGUgPT09IHR5cGUudHlwZSkpO1xyXG59XHJcbiJdfQ==
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3cudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvd29ya2Zsb3cudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBUWhELE1BQU0sT0FBTyxrQkFBa0I7SUFFN0IsWUFBWSxjQUFtQixFQUFFO1FBSXpCLGNBQVMsR0FBUSxFQUFFLENBQUM7UUFDcEIsZ0JBQVcsR0FBcUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUpoRCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBS0QsV0FBVyxDQUFDLEdBQVcsRUFBRSxLQUFVO1FBQ2pDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBR0QsWUFBWSxDQUFDLFVBQWUsRUFBRTtRQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVELFdBQVcsQ0FBVSxHQUFXO1FBQzlCLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFXLEVBQUUsTUFBVztRQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUF3QjtRQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQTtJQUM5RCxDQUFDO0lBRUQsU0FBUyxDQUFVLEdBQVc7UUFDNUIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDO0NBQ0Y7QUF5QkQsTUFBTSxPQUFnQixpQkFBaUI7SUFEdkM7UUFFVSxpQkFBWSxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0tBT3hEO0lBTFcsUUFBUSxDQUFDLEtBQXVCO1FBQ3hDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7OEdBTG1CLGlCQUFpQjtrSEFBakIsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUR0QyxVQUFVOztBQVlYLE1BQU0sT0FBZ0IsbUJBQW1COzhHQUFuQixtQkFBbUI7a0hBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFEeEMsVUFBVTs7QUFZWCxNQUFNLFVBQVUsbUJBQW1CLENBQUksSUFBWTtJQUNqRCxNQUFNLFlBQVksR0FBRyxDQUFDLE9BQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELFlBQVksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUM7QUFFRCxNQUFNLFVBQVUsTUFBTSxDQUE2QixHQUFHLFlBQXFDO0lBQ3pGLE9BQU8sTUFBTSxDQUFDLENBQUMsS0FBUSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3JGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFYUFdvcmtmbG93RXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi93b3JrZmxvdy1ldmVudC1kaXNwYXRjaGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBjbG9uZURlZXAsIGdldCwgc2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVhQV29ya2Zsb3cge1xyXG4gIHN0ZXBzOiB7IFtzdGVwTmFtZTogc3RyaW5nXTogQVhQV29ya2Zsb3dTdGVwIH07XHJcbiAgc3RhcnRTdGVwSWQ6IHN0cmluZztcclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBBWFBXb3JrZmxvd0NvbnRleHQge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihpbml0aWFsRGF0YTogYW55ID0ge30pIHtcclxuICAgIHRoaXMudmFyaWFibGVzID0gY2xvbmVEZWVwKGluaXRpYWxEYXRhKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdmFyaWFibGVzOiBhbnkgPSB7fTtcclxuICBwcml2YXRlIHN0ZXBPdXRwdXRzOiBNYXA8c3RyaW5nLCBhbnk+ID0gbmV3IE1hcCgpO1xyXG5cclxuICBzZXRWYXJpYWJsZShrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgc2V0KHRoaXMudmFyaWFibGVzLCBrZXksIHZhbHVlKTtcclxuICB9XHJcblxyXG5cclxuICBzZXRWYXJpYWJsZXMoY29udGV4dDogYW55ID0ge30pIHtcclxuICAgIHRoaXMudmFyaWFibGVzID0geyAuLi50aGlzLnZhcmlhYmxlcywgLi4uY29udGV4dCB9O1xyXG4gIH1cclxuXHJcbiAgZ2V0VmFyaWFibGU8VCA9IGFueT4oa2V5OiBzdHJpbmcpOiBUIHtcclxuICAgIHJldHVybiBnZXQodGhpcy52YXJpYWJsZXMsIGtleSk7XHJcbiAgfVxyXG5cclxuICBzZXRPdXRwdXQoa2V5OiBzdHJpbmcsIG91dHB1dDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnN0ZXBPdXRwdXRzLnNldChrZXksIG91dHB1dCk7XHJcbiAgfVxyXG5cclxuICBzZXRPdXRwdXRzKHZhbHVlczogTWFwPHN0cmluZywgYW55Pik6IHZvaWQge1xyXG4gICAgdGhpcy5zdGVwT3V0cHV0cyA9IG5ldyBNYXAoWy4uLnRoaXMuc3RlcE91dHB1dHMsIC4uLnZhbHVlc10pXHJcbiAgfVxyXG5cclxuICBnZXRPdXRwdXQ8VCA9IGFueT4oa2V5OiBzdHJpbmcpOiBUIHtcclxuICAgIHJldHVybiB0aGlzLnN0ZXBPdXRwdXRzLmdldChrZXkpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQVhQV29ya2Zsb3dBY3Rpb25JbnB1dCA9IGFueTtcclxuXHJcbmV4cG9ydCB0eXBlIEFYUFdvcmtmbG93Q29uZGl0aW9uVHlwZSA9ICdBTkQnIHwgJ09SJyB8ICdTSU5HTEUnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBWFBXb3JrZmxvd0NvbmRpdGlvbiB7XHJcbiAgdHlwZTogQVhQV29ya2Zsb3dDb25kaXRpb25UeXBlO1xyXG4gIGNvbmRpdGlvbnM/OiBBWFBXb3JrZmxvd0NvbmRpdGlvbltdOyAvLyBOZXN0ZWQgY29uZGl0aW9uc1xyXG4gIGV4cHJlc3Npb24/OiBzdHJpbmc7IC8vIFVzZWQgaWYgdHlwZSBpcyAnU0lOR0xFJ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdvcmtmbG93TmV4dFN0ZXAge1xyXG4gIGNvbmRpdGlvbnM6IEFYUFdvcmtmbG93Q29uZGl0aW9uW107XHJcbiAgbmV4dFN0ZXBJZDogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdvcmtmbG93U3RlcCB7XHJcbiAgaWQ/OiBzdHJpbmc7XHJcbiAgYWN0aW9uOiBBWFBXb3JrZmxvd0FjdGlvbiB8IHN0cmluZztcclxuICBpbnB1dD86IEFYUFdvcmtmbG93QWN0aW9uSW5wdXQ7XHJcbiAgbmV4dFN0ZXBzPzogQVhQV29ya2Zsb3dOZXh0U3RlcFtdO1xyXG4gIGNvbmRpdGlvbnM/OiBBWFBXb3JrZmxvd0NvbmRpdGlvbltdO1xyXG59XHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUFdvcmtmbG93QWN0aW9uIHtcclxuICBwcml2YXRlIGV2ZW50U2VydmljZSA9IGluamVjdChBWFBXb3JrZmxvd0V2ZW50U2VydmljZSk7XHJcblxyXG4gIHByb3RlY3RlZCBkaXNwYXRjaChldmVudDogQVhQV29ya2Zsb3dFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5ldmVudFNlcnZpY2UuZGlzcGF0Y2goZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgYWJzdHJhY3QgZXhlY3V0ZShjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPHZvaWQ+O1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBXb3JrZmxvd0Z1bmN0aW9uIHtcclxuICBhYnN0cmFjdCBleGVjdXRlKC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxhbnk+IHwgYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdvcmtmbG93RXZlbnQ8VCA9IGFueT4ge1xyXG4gIHR5cGU6IHN0cmluZztcclxuICBwYXlsb2FkPzogVDtcclxufVxyXG5cclxuXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlV29ya0Zsb3dFdmVudDxUPih0eXBlOiBzdHJpbmcpIHtcclxuICBjb25zdCBldmVudENyZWF0b3IgPSAocGF5bG9hZDogVCkgPT4gKHsgdHlwZSwgcGF5bG9hZCB9KTtcclxuICBldmVudENyZWF0b3IudHlwZSA9IHR5cGU7XHJcbiAgcmV0dXJuIGV2ZW50Q3JlYXRvcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG9mVHlwZTxUIGV4dGVuZHMgeyB0eXBlOiBzdHJpbmcgfT4oLi4uYWxsb3dlZFR5cGVzOiBBcnJheTx7IHR5cGU6IHN0cmluZyB9Pikge1xyXG4gIHJldHVybiBmaWx0ZXIoKGV2ZW50OiBUKSA9PiBhbGxvd2VkVHlwZXMuc29tZSgodHlwZSkgPT4gZXZlbnQudHlwZSA9PT0gdHlwZS50eXBlKSk7XHJcbn1cclxuIl19
@@ -20,14 +20,15 @@ import 'rxjs';
20
20
  import '@angular/common';
21
21
  import '@acorex/core/platform';
22
22
  import '@acorex/components/toast';
23
+ import '@acorex/platform/workflow';
23
24
  import 'lodash-es';
25
+ import 'dexie';
24
26
  import '@acorex/components/skeleton';
25
27
  import '@angular/cdk/portal';
26
28
  import '@acorex/components/data-table';
27
29
  import '@acorex/core/utils';
28
30
  import '@acorex/core/format';
29
31
  import 'rxjs/operators';
30
- import '@acorex/platform/workflow';
31
32
 
32
33
  class AXPAvatarWidgetEditComponent extends AXPWidgetEditBase {
33
34
  constructor() {
@@ -175,4 +176,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
175
176
  }] });
176
177
 
177
178
  export { AXPAvatarWidgetEditComponent };
178
- //# sourceMappingURL=acorex-platform-common-avatar-widget-edit.component-DAmNXjDm.mjs.map
179
+ //# sourceMappingURL=acorex-platform-common-avatar-widget-edit.component-B-of5ssU.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-common-avatar-widget-edit.component-DAmNXjDm.mjs","sources":["../../../../libs/platform/common/src/lib/schema/widgets/avatar/avatar-widget-edit.component.ts"],"sourcesContent":["import { AXAvatarModule } from '@acorex/components/avatar';\r\nimport { AXButtonModule } from '@acorex/components/button';\r\nimport { AXDecoratorModule } from '@acorex/components/decorators';\r\nimport { AXDialogService } from '@acorex/components/dialog';\r\nimport { AXImageModule } from '@acorex/components/image';\r\nimport { AXLoadingModule } from '@acorex/components/loading';\r\n// import { FakePersonService } from '@acorex/platform/mocks';\r\nimport { ChangeDetectionStrategy, Component, OnInit, inject } from '@angular/core';\r\nimport { AXPDataProvider } from '../../../data';\r\nimport { AXPWidgetEditBase } from '../../widget';\r\n\r\n@Component({\r\n selector: 'axp-number-widget-edit',\r\n template: `\r\n <div class=\"ax-w-fit ax-flex flex-row ax-border ax-rounded-lg ax-shadow-md ax-overflow-hidden\">\r\n @if(src){\r\n <ax-avatar color=\"secondary\" [size]=\"120\" look=\"sharp\">\r\n <ax-image [src]=\"src\">\r\n <ax-loading></ax-loading>\r\n </ax-image>\r\n </ax-avatar>\r\n } @else {\r\n <ax-avatar color=\"secondary\" [size]=\"120\" look=\"sharp\">\r\n <ax-loading></ax-loading>\r\n </ax-avatar>\r\n }\r\n <div class=\"ax-flex ax-w-14 ax-flex-col ax-items-center ax-justify-around ax-cursor-pointer ax-border-l-2\">\r\n <div\r\n (click)=\"handleAddItem()\"\r\n class=\"ax-h-[50%] ax-flex ax-items-center ax-justify-center ax-w-full ax-border-b-2 hover:ax-bg-gray-100 hover:ax-text-blue-700 ax-cursor-pointer\"\r\n >\r\n <ax-icon>\r\n <i class=\"fa-solid fa-camera\"></i>\r\n </ax-icon>\r\n </div>\r\n\r\n <div\r\n (click)=\"handleRemoveItem(src)\"\r\n class=\"ax-h-[50%] ax-flex ax-items-center ax-justify-center ax-w-full ax-cursor-pointer hover:ax-bg-gray-100\"\r\n >\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-trash ax-text-danger\"></i>\r\n </ax-prefix>\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [AXAvatarModule, AXImageModule, AXLoadingModule, AXButtonModule, AXDecoratorModule],\r\n})\r\nexport class AXPAvatarWidgetEditComponent extends AXPWidgetEditBase implements OnInit {\r\n dataService = inject(AXPDataProvider);\r\n private dialogService = inject(AXDialogService);\r\n protected src!: string | null;\r\n\r\n ngOnInit() {\r\n this.render();\r\n }\r\n override render() {\r\n const rawValue = this.rawValue;\r\n if (rawValue == null) return;\r\n this.loadImageById(rawValue);\r\n }\r\n\r\n protected handleRemoveItem(item: any) {\r\n this.src = null;\r\n this.value = null;\r\n }\r\n\r\n protected async handleAddItem() {\r\n const input = document.createElement('input');\r\n input.type = 'file';\r\n input.accept = 'image/*';\r\n input.click();\r\n input.addEventListener(\r\n 'change',\r\n async () => {\r\n const file = input.files?.[0];\r\n if (file) {\r\n const maxSize = 1 * 1024 * 1024; // Example size limit: 1MB\r\n const maxResolution = { width: 1920, height: 1080 }; // Example resolution limit\r\n\r\n if (file.size > maxSize) {\r\n this.dialogService.alert('File too large!', `The selected file exceeds the maximum size of ${maxSize / (1024 * 1024)}MB.`, 'warning');\r\n return;\r\n }\r\n\r\n const image = new Image();\r\n image.src = URL.createObjectURL(file);\r\n image.onload = async () => {\r\n const { width, height } = image;\r\n\r\n if (width > maxResolution.width || height > maxResolution.height) {\r\n this.dialogService.alert(\r\n 'Resolution too high!',\r\n `The selected file exceeds the maximum resolution of ${maxResolution.width}x${maxResolution.height}.`,\r\n 'warning'\r\n );\r\n return;\r\n }\r\n\r\n // If file size and resolution are within limits, proceed with upload\r\n try {\r\n const resolved = await this.dataService.uploadFile(file, file.name);\r\n console.log('resolved', resolved);\r\n this.src = URL.createObjectURL(file); // Show the image temporarily\r\n this.value = resolved; // Store the file ID\r\n } catch (error) {\r\n this.dialogService.alert('Something went wrong!', `${error}`, 'warning');\r\n }\r\n };\r\n }\r\n },\r\n { once: true }\r\n );\r\n }\r\n\r\n private async loadImageById(fileId: string) {\r\n try {\r\n const blob = await this.dataService.viewFile(fileId, '');\r\n this.src = URL.createObjectURL(blob);\r\n this.cdr.markForCheck(); // Explicitly mark for check since OnPush is used\r\n } catch (error) {\r\n console.error('Failed to load image by ID:', error);\r\n }\r\n }\r\n}\r\n"],"names":["i4"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-common-avatar-widget-edit.component-B-of5ssU.mjs","sources":["../../../../libs/platform/common/src/lib/schema/widgets/avatar/avatar-widget-edit.component.ts"],"sourcesContent":["import { AXAvatarModule } from '@acorex/components/avatar';\r\nimport { AXButtonModule } from '@acorex/components/button';\r\nimport { AXDecoratorModule } from '@acorex/components/decorators';\r\nimport { AXDialogService } from '@acorex/components/dialog';\r\nimport { AXImageModule } from '@acorex/components/image';\r\nimport { AXLoadingModule } from '@acorex/components/loading';\r\n// import { FakePersonService } from '@acorex/platform/mocks';\r\nimport { ChangeDetectionStrategy, Component, OnInit, inject } from '@angular/core';\r\nimport { AXPDataProvider } from '../../../data';\r\nimport { AXPWidgetEditBase } from '../../widget';\r\n\r\n@Component({\r\n selector: 'axp-number-widget-edit',\r\n template: `\r\n <div class=\"ax-w-fit ax-flex flex-row ax-border ax-rounded-lg ax-shadow-md ax-overflow-hidden\">\r\n @if(src){\r\n <ax-avatar color=\"secondary\" [size]=\"120\" look=\"sharp\">\r\n <ax-image [src]=\"src\">\r\n <ax-loading></ax-loading>\r\n </ax-image>\r\n </ax-avatar>\r\n } @else {\r\n <ax-avatar color=\"secondary\" [size]=\"120\" look=\"sharp\">\r\n <ax-loading></ax-loading>\r\n </ax-avatar>\r\n }\r\n <div class=\"ax-flex ax-w-14 ax-flex-col ax-items-center ax-justify-around ax-cursor-pointer ax-border-l-2\">\r\n <div\r\n (click)=\"handleAddItem()\"\r\n class=\"ax-h-[50%] ax-flex ax-items-center ax-justify-center ax-w-full ax-border-b-2 hover:ax-bg-gray-100 hover:ax-text-blue-700 ax-cursor-pointer\"\r\n >\r\n <ax-icon>\r\n <i class=\"fa-solid fa-camera\"></i>\r\n </ax-icon>\r\n </div>\r\n\r\n <div\r\n (click)=\"handleRemoveItem(src)\"\r\n class=\"ax-h-[50%] ax-flex ax-items-center ax-justify-center ax-w-full ax-cursor-pointer hover:ax-bg-gray-100\"\r\n >\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-trash ax-text-danger\"></i>\r\n </ax-prefix>\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [AXAvatarModule, AXImageModule, AXLoadingModule, AXButtonModule, AXDecoratorModule],\r\n})\r\nexport class AXPAvatarWidgetEditComponent extends AXPWidgetEditBase implements OnInit {\r\n dataService = inject(AXPDataProvider);\r\n private dialogService = inject(AXDialogService);\r\n protected src!: string | null;\r\n\r\n ngOnInit() {\r\n this.render();\r\n }\r\n override render() {\r\n const rawValue = this.rawValue;\r\n if (rawValue == null) return;\r\n this.loadImageById(rawValue);\r\n }\r\n\r\n protected handleRemoveItem(item: any) {\r\n this.src = null;\r\n this.value = null;\r\n }\r\n\r\n protected async handleAddItem() {\r\n const input = document.createElement('input');\r\n input.type = 'file';\r\n input.accept = 'image/*';\r\n input.click();\r\n input.addEventListener(\r\n 'change',\r\n async () => {\r\n const file = input.files?.[0];\r\n if (file) {\r\n const maxSize = 1 * 1024 * 1024; // Example size limit: 1MB\r\n const maxResolution = { width: 1920, height: 1080 }; // Example resolution limit\r\n\r\n if (file.size > maxSize) {\r\n this.dialogService.alert('File too large!', `The selected file exceeds the maximum size of ${maxSize / (1024 * 1024)}MB.`, 'warning');\r\n return;\r\n }\r\n\r\n const image = new Image();\r\n image.src = URL.createObjectURL(file);\r\n image.onload = async () => {\r\n const { width, height } = image;\r\n\r\n if (width > maxResolution.width || height > maxResolution.height) {\r\n this.dialogService.alert(\r\n 'Resolution too high!',\r\n `The selected file exceeds the maximum resolution of ${maxResolution.width}x${maxResolution.height}.`,\r\n 'warning'\r\n );\r\n return;\r\n }\r\n\r\n // If file size and resolution are within limits, proceed with upload\r\n try {\r\n const resolved = await this.dataService.uploadFile(file, file.name);\r\n console.log('resolved', resolved);\r\n this.src = URL.createObjectURL(file); // Show the image temporarily\r\n this.value = resolved; // Store the file ID\r\n } catch (error) {\r\n this.dialogService.alert('Something went wrong!', `${error}`, 'warning');\r\n }\r\n };\r\n }\r\n },\r\n { once: true }\r\n );\r\n }\r\n\r\n private async loadImageById(fileId: string) {\r\n try {\r\n const blob = await this.dataService.viewFile(fileId, '');\r\n this.src = URL.createObjectURL(blob);\r\n this.cdr.markForCheck(); // Explicitly mark for check since OnPush is used\r\n } catch (error) {\r\n console.error('Failed to load image by ID:', error);\r\n }\r\n }\r\n}\r\n"],"names":["i4"],"mappings":"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"}
@@ -18,15 +18,16 @@ import '@angular/common';
18
18
  import '@acorex/components/button';
19
19
  import '@acorex/core/platform';
20
20
  import '@acorex/components/toast';
21
+ import '@acorex/platform/workflow';
22
+ import '@acorex/components/dialog';
21
23
  import 'lodash-es';
24
+ import 'dexie';
22
25
  import '@acorex/components/skeleton';
23
26
  import '@angular/cdk/portal';
24
27
  import '@acorex/components/data-table';
25
28
  import '@acorex/core/utils';
26
29
  import '@acorex/core/format';
27
30
  import 'rxjs/operators';
28
- import '@acorex/components/dialog';
29
- import '@acorex/platform/workflow';
30
31
 
31
32
  class AXPAvatarWidgetViewComponent extends AXPWidgetBase {
32
33
  constructor() {
@@ -82,4 +83,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
82
83
  }] });
83
84
 
84
85
  export { AXPAvatarWidgetViewComponent };
85
- //# sourceMappingURL=acorex-platform-common-avatar-widget-view.component-BlA_cFkP.mjs.map
86
+ //# sourceMappingURL=acorex-platform-common-avatar-widget-view.component-CJvrSkTv.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-common-avatar-widget-view.component-CJvrSkTv.mjs","sources":["../../../../libs/platform/common/src/lib/schema/widgets/avatar/avatar-widget-view.component.ts"],"sourcesContent":["import { AXAvatarModule } from '@acorex/components/avatar';\r\nimport { AXImageModule } from '@acorex/components/image';\r\nimport { AXLoadingModule } from '@acorex/components/loading';\r\nimport { ChangeDetectionStrategy, Component, OnInit, inject } from '@angular/core';\r\nimport { AXPDataProvider } from '../../../data';\r\nimport { AXPWidgetBase } from '../../widget/widget-base';\r\n@Component({\r\n selector: 'ax-Avatar-widget-view',\r\n template: ` @if(src){<ax-avatar class=\"ax-shadow-\" color=\"secondary\" [size]=\"120\" look=\"soft\">\r\n <ax-image [src]=\"src\"> <ax-loading></ax-loading></ax-image>\r\n </ax-avatar>\r\n } @else {\r\n <ax-avatar color=\"secondary\" [size]=\"120\" look=\"sharp\">\r\n <ax-loading></ax-loading>\r\n </ax-avatar>\r\n }`,\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [AXAvatarModule, AXImageModule, AXLoadingModule],\r\n inputs: ['context', 'value'],\r\n})\r\nexport class AXPAvatarWidgetViewComponent extends AXPWidgetBase implements OnInit {\r\n protected src!: string;\r\n dataService = inject(AXPDataProvider);\r\n\r\n ngOnInit() {\r\n this.render();\r\n }\r\n override render() {\r\n const rawValue = this.rawValue;\r\n if (rawValue == null) return;\r\n this.loadImageById(rawValue);\r\n }\r\n\r\n private async loadImageById(fileId: string) {\r\n try {\r\n const blob = await this.dataService.viewFile(fileId, '');\r\n this.src = URL.createObjectURL(blob);\r\n this.cdr.markForCheck(); // Explicitly mark for check since OnPush is used\r\n } catch (error) {\r\n console.error('Failed to load image by ID:', error);\r\n }\r\n }\r\n}\r\n"],"names":[],"mappings":"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"}
@@ -25,15 +25,16 @@ import '@acorex/components/image';
25
25
  import '@angular/common';
26
26
  import '@acorex/core/platform';
27
27
  import '@acorex/components/toast';
28
+ import '@acorex/platform/workflow';
29
+ import '@acorex/components/dialog';
28
30
  import 'lodash-es';
31
+ import 'dexie';
29
32
  import '@acorex/components/skeleton';
30
33
  import '@angular/cdk/portal';
31
34
  import '@acorex/components/data-table';
32
35
  import '@acorex/core/utils';
33
36
  import '@acorex/core/format';
34
37
  import 'rxjs/operators';
35
- import '@acorex/components/dialog';
36
- import '@acorex/platform/workflow';
37
38
 
38
39
  class AXPBooleanWidgetFilterComponent extends AXPWidgetFilterBase {
39
40
  constructor() {
@@ -166,4 +167,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
166
167
  }] });
167
168
 
168
169
  export { AXPBooleanWidgetFilterComponent };
169
- //# sourceMappingURL=acorex-platform-common-boolean-widget-filter.component-CEqibiML.mjs.map
170
+ //# sourceMappingURL=acorex-platform-common-boolean-widget-filter.component-BTcOjuUm.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-common-boolean-widget-filter.component-BTcOjuUm.mjs","sources":["../../../../libs/platform/common/src/lib/schema/widgets/common-widget-filter/boolean-widget-filter.component.ts"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\r\nimport { AXDataSource } from '@acorex/components/common';\r\nimport { AXDecoratorModule } from '@acorex/components/decorators';\r\nimport { AXNumberBoxModule } from '@acorex/components/number-box';\r\nimport { AXPopoverModule } from '@acorex/components/popover';\r\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\r\nimport { AXSelectionListModule } from '@acorex/components/selection-list';\r\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXPWidgetFilterBase } from '../../widget/widget-base';\r\nimport { AXPFilterOperator } from '../../../app';\r\n\r\n@Component({\r\n selector: 'axp-boolean-widget-filter',\r\n template: `\r\n <div class=\"ax-flex ax-items-center\">\r\n <ax-select-box\r\n [disabled]=\"!this.getOperatorHasValue()\"\r\n textField=\"text\"\r\n valueField=\"value\"\r\n placeholder=\"Select ...\"\r\n [dataSource]=\"dataSource\"\r\n [(ngModel)]=\"value\"\r\n ></ax-select-box>\r\n @if(operations.length){\r\n <ax-button #changeOperator look=\"blank\" color=\"default\" class=\"ax-sm\">\r\n <ax-icon class=\"fa-solid fa-ellipsis-vertical\"></ax-icon>\r\n </ax-button>\r\n <ax-popover\r\n #operatorsPopover\r\n [target]=\"changeOperator\"\r\n [openOn]=\"'toggle'\"\r\n [closeOn]=\"'clickOut'\"\r\n [adaptivityEnabled]=\"true\"\r\n >\r\n <div\r\n class=\"ax-bg-surface ax-py-5 ax-px-3 ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-[250px]\"\r\n >\r\n <ax-selection-list\r\n [valueField]=\"'name'\"\r\n [textField]=\"'title'\"\r\n [(ngModel)]=\"operator\"\r\n (ngModelChange)=\"operatorsPopover.close()\"\r\n [direction]=\"'vertical'\"\r\n [items]=\"operations\"\r\n [multiple]=\"false\"\r\n ></ax-selection-list>\r\n </div>\r\n </ax-popover>\r\n }\r\n </div>\r\n `,\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n AXNumberBoxModule,\r\n FormsModule,\r\n AXDecoratorModule,\r\n AXPopoverModule,\r\n AXSelectionListModule,\r\n AXButtonModule,\r\n AXSelectBoxModule,\r\n ],\r\n inputs: ['trulyText', 'falsyText'],\r\n})\r\nexport class AXPBooleanWidgetFilterComponent extends AXPWidgetFilterBase<number> {\r\n protected falsyText!: string;\r\n protected trulyText!: string;\r\n protected operations: AXPFilterOperator[] = [];\r\n protected items: { text: string; value: boolean }[] = [];\r\n protected dataSource: any = new AXDataSource({\r\n load: () => {\r\n return Promise.resolve({\r\n items: this.items,\r\n total: this.items.length,\r\n });\r\n },\r\n byKey: (id: unknown) => {\r\n const item = this.items.find((c) => c.value.toString() == id);\r\n return Promise.resolve(item);\r\n },\r\n pageSize: 10,\r\n key: 'value',\r\n });\r\n\r\n protected getOperatorHasValue(): boolean {\r\n const operator = this.operations.find((op) => op.name == this.operator);\r\n return !operator || operator.hasValue ? true : false;\r\n }\r\n\r\n override render(): void {\r\n this.operations = this.schema.filterOptions.operators;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.items = [\r\n { text: this.trulyText || 'Yes', value: true },\r\n { text: this.falsyText || 'No', value: false },\r\n ];\r\n }\r\n}\r\n"],"names":["i1","i2","i3","i5"],"mappings":"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"}
@@ -14,15 +14,16 @@ import '@angular/common';
14
14
  import '@acorex/components/button';
15
15
  import '@acorex/core/platform';
16
16
  import '@acorex/components/toast';
17
+ import '@acorex/platform/workflow';
18
+ import '@acorex/components/dialog';
17
19
  import 'lodash-es';
20
+ import 'dexie';
18
21
  import '@acorex/components/skeleton';
19
22
  import '@angular/cdk/portal';
20
23
  import '@acorex/components/data-table';
21
24
  import '@acorex/core/utils';
22
25
  import '@acorex/core/format';
23
26
  import 'rxjs/operators';
24
- import '@acorex/components/dialog';
25
- import '@acorex/platform/workflow';
26
27
 
27
28
  class AXPCheckboxWidgetColumnComponent extends AXPWidgetBase {
28
29
  render() {
@@ -73,4 +74,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
73
74
  }] });
74
75
 
75
76
  export { AXPCheckboxWidgetColumnComponent };
76
- //# sourceMappingURL=acorex-platform-common-checkbox-widget-column.component-BiUHPDqV.mjs.map
77
+ //# sourceMappingURL=acorex-platform-common-checkbox-widget-column.component-X9d1iY_F.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-common-checkbox-widget-column.component-BiUHPDqV.mjs","sources":["../../../../libs/platform/common/src/lib/schema/widgets/checkbox/checkbox-widget-column.component.ts"],"sourcesContent":["import { AXDecoratorModule } from '@acorex/components/decorators';\r\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { AXPWidgetBase } from '../../widget/widget-base';\r\n@Component({\r\n template: `<div>\r\n @if(value){ @if(trulyText){\r\n <span [class]=\"negative ? 'ax-text-danger' : 'ax-text-success'\">{{ trulyText }}</span>\r\n }@else { @if(negative){\r\n <ax-icon class=\"fa-solid fa-check ax-text-danger\"> </ax-icon>\r\n }@else{\r\n <ax-icon class=\"fa-solid fa-check ax-text-success\"> </ax-icon>\r\n\r\n } } }@else { @if(falsyText){\r\n <span [class]=\"negative ? 'ax-text-success' : 'ax-text-danger'\">{{ falsyText }}</span>\r\n }@else { @if(negative){\r\n <ax-icon class=\"fa-solid fa-xmark ax-text-success\"> </ax-icon>\r\n }@else{\r\n <ax-icon class=\"fa-solid fa-xmark ax-text-danger\"> </ax-icon>\r\n } } }\r\n </div>`,\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [AXDecoratorModule],\r\n inputs: ['context', 'trulyText', 'falsyText', 'negative', 'width', 'allowResizing'],\r\n})\r\nexport class AXPCheckboxWidgetColumnComponent extends AXPWidgetBase {\r\n protected value!: boolean;\r\n protected negative!: boolean;\r\n protected trulyText!: boolean;\r\n protected falsyText!: boolean;\r\n\r\n protected override render(): void {\r\n this.value = !!this.rawValue;\r\n }\r\n}\r\n"],"names":["i1"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAyBM,MAAO,gCAAiC,SAAQ,aAAa,CAAA;IAM9C,MAAM,GAAA;QACvB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;KAC9B;8GARU,gCAAgC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,EArBjC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;AAeH,QAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAGG,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAGhB,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAtB5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;AAeH,QAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;oBAChB,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC5B,oBAAA,MAAM,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,CAAC;AACpF,iBAAA,CAAA;;;;;"}
1
+ {"version":3,"file":"acorex-platform-common-checkbox-widget-column.component-X9d1iY_F.mjs","sources":["../../../../libs/platform/common/src/lib/schema/widgets/checkbox/checkbox-widget-column.component.ts"],"sourcesContent":["import { AXDecoratorModule } from '@acorex/components/decorators';\r\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { AXPWidgetBase } from '../../widget/widget-base';\r\n@Component({\r\n template: `<div>\r\n @if(value){ @if(trulyText){\r\n <span [class]=\"negative ? 'ax-text-danger' : 'ax-text-success'\">{{ trulyText }}</span>\r\n }@else { @if(negative){\r\n <ax-icon class=\"fa-solid fa-check ax-text-danger\"> </ax-icon>\r\n }@else{\r\n <ax-icon class=\"fa-solid fa-check ax-text-success\"> </ax-icon>\r\n\r\n } } }@else { @if(falsyText){\r\n <span [class]=\"negative ? 'ax-text-success' : 'ax-text-danger'\">{{ falsyText }}</span>\r\n }@else { @if(negative){\r\n <ax-icon class=\"fa-solid fa-xmark ax-text-success\"> </ax-icon>\r\n }@else{\r\n <ax-icon class=\"fa-solid fa-xmark ax-text-danger\"> </ax-icon>\r\n } } }\r\n </div>`,\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [AXDecoratorModule],\r\n inputs: ['context', 'trulyText', 'falsyText', 'negative', 'width', 'allowResizing'],\r\n})\r\nexport class AXPCheckboxWidgetColumnComponent extends AXPWidgetBase {\r\n protected value!: boolean;\r\n protected negative!: boolean;\r\n protected trulyText!: boolean;\r\n protected falsyText!: boolean;\r\n\r\n protected override render(): void {\r\n this.value = !!this.rawValue;\r\n }\r\n}\r\n"],"names":["i1"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBM,MAAO,gCAAiC,SAAQ,aAAa,CAAA;IAM9C,MAAM,GAAA;QACvB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;KAC9B;8GARU,gCAAgC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,EArBjC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;AAeH,QAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAGG,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAGhB,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAtB5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;AAeH,QAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;oBAChB,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC5B,oBAAA,MAAM,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,CAAC;AACpF,iBAAA,CAAA;;;;;"}
@@ -17,15 +17,16 @@ import '@angular/common';
17
17
  import '@acorex/components/button';
18
18
  import '@acorex/core/platform';
19
19
  import '@acorex/components/toast';
20
+ import '@acorex/platform/workflow';
21
+ import '@acorex/components/dialog';
20
22
  import 'lodash-es';
23
+ import 'dexie';
21
24
  import '@acorex/components/skeleton';
22
25
  import '@angular/cdk/portal';
23
26
  import '@acorex/components/data-table';
24
27
  import '@acorex/core/utils';
25
28
  import '@acorex/core/format';
26
29
  import 'rxjs/operators';
27
- import '@acorex/components/dialog';
28
- import '@acorex/platform/workflow';
29
30
 
30
31
  class AXPCheckboxWidgetEditComponent extends AXPWidgetEditBase {
31
32
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPCheckboxWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
@@ -43,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
43
44
  }] });
44
45
 
45
46
  export { AXPCheckboxWidgetEditComponent };
46
- //# sourceMappingURL=acorex-platform-common-checkbox-widget-edit.component-BVG9_XXh.mjs.map
47
+ //# sourceMappingURL=acorex-platform-common-checkbox-widget-edit.component-_jtT03Vn.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-common-checkbox-widget-edit.component-_jtT03Vn.mjs","sources":["../../../../libs/platform/common/src/lib/schema/widgets/checkbox/checkbox-widget-edit.component.ts"],"sourcesContent":["import { AXCheckBoxModule } from '@acorex/components/check-box';\r\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXPWidgetEditBase } from '../../widget/widget-base';\r\n\r\n@Component({\r\n template: `<ax-check-box [(ngModel)]=\"value\"></ax-check-box>`,\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [AXCheckBoxModule, FormsModule],\r\n inputs: [],\r\n})\r\nexport class AXPCheckboxWidgetEditComponent extends AXPWidgetEditBase { }\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYM,MAAO,8BAA+B,SAAQ,iBAAiB,CAAA;8GAAxD,8BAA8B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,8BAA8B,EAN/B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,iDAAA,CAAmD,EAGnD,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,gBAAgB,+QAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAG5B,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAP1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,CAAmD,iDAAA,CAAA;AAC7D,oBAAA,UAAU,EAAE,IAAI;oBAChB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,OAAO,EAAE,CAAC,gBAAgB,EAAE,WAAW,CAAC;AACxC,oBAAA,MAAM,EAAE,EAAE;AACX,iBAAA,CAAA;;;;;"}
@@ -14,15 +14,16 @@ import '@angular/common';
14
14
  import '@acorex/components/button';
15
15
  import '@acorex/core/platform';
16
16
  import '@acorex/components/toast';
17
+ import '@acorex/platform/workflow';
18
+ import '@acorex/components/dialog';
17
19
  import 'lodash-es';
20
+ import 'dexie';
18
21
  import '@acorex/components/skeleton';
19
22
  import '@angular/cdk/portal';
20
23
  import '@acorex/components/data-table';
21
24
  import '@acorex/core/utils';
22
25
  import '@acorex/core/format';
23
26
  import 'rxjs/operators';
24
- import '@acorex/components/dialog';
25
- import '@acorex/platform/workflow';
26
27
 
27
28
  class AXPCheckboxWidgetViewComponent extends AXPWidgetBase {
28
29
  render() {
@@ -67,4 +68,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
67
68
  }] });
68
69
 
69
70
  export { AXPCheckboxWidgetViewComponent };
70
- //# sourceMappingURL=acorex-platform-common-checkbox-widget-view.component-CfGkMcDi.mjs.map
71
+ //# sourceMappingURL=acorex-platform-common-checkbox-widget-view.component-nYmtb8bK.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-common-checkbox-widget-view.component-CfGkMcDi.mjs","sources":["../../../../libs/platform/common/src/lib/schema/widgets/checkbox/checkbox-widget-view.component.ts"],"sourcesContent":["import { AXDecoratorModule } from '@acorex/components/decorators';\r\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { AXPWidgetBase } from '../../widget/widget-base';\r\n@Component({\r\n template: ` <div>\r\n @if(value){ @if(trulyText){\r\n <span [class]=\"negative ? 'ax-text-danger' : 'ax-text-success'\">{{ trulyText }}</span>\r\n }@else {\r\n\r\n <ax-icon class=\"fa-solid fa-check ax-text-success\"> </ax-icon>\r\n } }@else { @if(falsyText){\r\n <span [class]=\"negative ? 'ax-text-success' : 'ax-text-danger'\">{{ falsyText }}</span>\r\n }@else {\r\n\r\n <ax-icon class=\"fa-solid fa-xmark ax-text-danger\"> </ax-icon>\r\n } }\r\n </div>`,\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [AXDecoratorModule],\r\n inputs: ['trulyText', 'falsyText', 'negative'],\r\n})\r\nexport class AXPCheckboxWidgetViewComponent extends AXPWidgetBase {\r\n protected value!: boolean;\r\n protected negative!: boolean;\r\n protected trulyText!: boolean;\r\n protected falsyText!: boolean;\r\n\r\n protected override render(): void {\r\n this.value = !!this.rawValue;\r\n }\r\n}\r\n"],"names":["i1"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAsBM,MAAO,8BAA+B,SAAQ,aAAa,CAAA;IAM5C,MAAM,GAAA;QACvB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;KAC9B;8GARU,8BAA8B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,8BAA8B,EAlB/B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;AAYH,QAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAGG,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAGhB,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAnB1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;AAYH,QAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;oBAChB,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC5B,oBAAA,MAAM,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,CAAC;AAC/C,iBAAA,CAAA;;;;;"}
1
+ {"version":3,"file":"acorex-platform-common-checkbox-widget-view.component-nYmtb8bK.mjs","sources":["../../../../libs/platform/common/src/lib/schema/widgets/checkbox/checkbox-widget-view.component.ts"],"sourcesContent":["import { AXDecoratorModule } from '@acorex/components/decorators';\r\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { AXPWidgetBase } from '../../widget/widget-base';\r\n@Component({\r\n template: ` <div>\r\n @if(value){ @if(trulyText){\r\n <span [class]=\"negative ? 'ax-text-danger' : 'ax-text-success'\">{{ trulyText }}</span>\r\n }@else {\r\n\r\n <ax-icon class=\"fa-solid fa-check ax-text-success\"> </ax-icon>\r\n } }@else { @if(falsyText){\r\n <span [class]=\"negative ? 'ax-text-success' : 'ax-text-danger'\">{{ falsyText }}</span>\r\n }@else {\r\n\r\n <ax-icon class=\"fa-solid fa-xmark ax-text-danger\"> </ax-icon>\r\n } }\r\n </div>`,\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [AXDecoratorModule],\r\n inputs: ['trulyText', 'falsyText', 'negative'],\r\n})\r\nexport class AXPCheckboxWidgetViewComponent extends AXPWidgetBase {\r\n protected value!: boolean;\r\n protected negative!: boolean;\r\n protected trulyText!: boolean;\r\n protected falsyText!: boolean;\r\n\r\n protected override render(): void {\r\n this.value = !!this.rawValue;\r\n }\r\n}\r\n"],"names":["i1"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBM,MAAO,8BAA+B,SAAQ,aAAa,CAAA;IAM5C,MAAM,GAAA;QACvB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;KAC9B;8GARU,8BAA8B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,8BAA8B,EAlB/B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;AAYH,QAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAGG,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAGhB,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAnB1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;AAYH,QAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;oBAChB,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC5B,oBAAA,MAAM,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,CAAC;AAC/C,iBAAA,CAAA;;;;;"}
@@ -14,14 +14,15 @@ import '@angular/common';
14
14
  import '@acorex/components/button';
15
15
  import '@acorex/core/platform';
16
16
  import '@acorex/components/toast';
17
+ import '@acorex/platform/workflow';
18
+ import '@acorex/components/dialog';
17
19
  import 'lodash-es';
20
+ import 'dexie';
18
21
  import '@acorex/components/skeleton';
19
22
  import '@angular/cdk/portal';
20
23
  import '@acorex/components/data-table';
21
24
  import '@acorex/core/utils';
22
25
  import 'rxjs/operators';
23
- import '@acorex/components/dialog';
24
- import '@acorex/platform/workflow';
25
26
 
26
27
  class AXPDateTimeWidgetColumnComponent extends AXPWidgetBase {
27
28
  render() {
@@ -63,4 +64,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
63
64
  }] });
64
65
 
65
66
  export { AXPDateTimeWidgetColumnComponent };
66
- //# sourceMappingURL=acorex-platform-common-dateTime-widget-column.component-BlXTU887.mjs.map
67
+ //# sourceMappingURL=acorex-platform-common-dateTime-widget-column.component-5ljYmtHI.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-common-dateTime-widget-column.component-5ljYmtHI.mjs","sources":["../../../../libs/platform/common/src/lib/schema/widgets/dateTime/dateTime-widget-column.component.ts"],"sourcesContent":["import { AXDateTimeModule } from '@acorex/core/date-time';\r\nimport { AXFormatModule } from '@acorex/core/format';\r\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { AXPWidgetBase } from '../../widget/widget-base';\r\n\r\n@Component({\r\n template: ` <span [title]=\"convertedValue\">{{ convertedValue }}</span> `,\r\n standalone: true,\r\n imports: [AXFormatModule, AXDateTimeModule],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n inputs: ['context', 'value', 'multiple', 'width', 'format', 'allowResizing'],\r\n})\r\nexport class AXPDateTimeWidgetColumnComponent extends AXPWidgetBase {\r\n protected convertedValue!: string | null;\r\n protected multiple!: boolean;\r\n\r\n override render() {\r\n const rawValue = this.rawValue;\r\n if (rawValue == null) {\r\n this.convertedValue = null;\r\n return;\r\n }\r\n if (this.isArray(rawValue)) {\r\n this.convertedValue = rawValue.map((item: Date) => this.formatValue(new Date(item))).join(', ');\r\n } else {\r\n this.convertedValue = this.formatValue(new Date(rawValue));\r\n }\r\n }\r\n\r\n protected formatValue(value: Date) {\r\n if (this.formats?.default) {\r\n return this.formatService.format(value, 'datetime', { format: this.formats.default });\r\n } else {\r\n return value.toISOString();\r\n }\r\n }\r\n\r\n protected isArray(val: any) {\r\n return Array.isArray(val);\r\n }\r\n}\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAYM,MAAO,gCAAiC,SAAQ,aAAa,CAAA;IAIxD,MAAM,GAAA;AACb,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC/B,QAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;AACpB,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,OAAO;SACR;AACD,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AAC1B,YAAA,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAU,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACjG;aAAM;AACL,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;SAC5D;KACF;AAES,IAAA,WAAW,CAAC,KAAW,EAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE;YACzB,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;SACvF;aAAM;AACL,YAAA,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;SAC5B;KACF;AAES,IAAA,OAAO,CAAC,GAAQ,EAAA;AACxB,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;KAC3B;8GA3BU,gCAAgC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,EANjC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,4DAAA,CAA8D,EAE9D,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,cAAc,8BAAE,gBAAgB,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAI/B,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAP5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,CAA8D,4DAAA,CAAA;AACxE,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,cAAc,EAAE,gBAAgB,CAAC;oBAC3C,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,MAAM,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC;AAC7E,iBAAA,CAAA;;;;;"}
@@ -24,14 +24,15 @@ import 'rxjs';
24
24
  import '@acorex/components/image';
25
25
  import '@acorex/core/platform';
26
26
  import '@acorex/components/toast';
27
+ import '@acorex/platform/workflow';
28
+ import '@acorex/components/dialog';
27
29
  import 'lodash-es';
30
+ import 'dexie';
28
31
  import '@acorex/components/skeleton';
29
32
  import '@angular/cdk/portal';
30
33
  import '@acorex/components/data-table';
31
34
  import '@acorex/core/utils';
32
35
  import 'rxjs/operators';
33
- import '@acorex/components/dialog';
34
- import '@acorex/platform/workflow';
35
36
 
36
37
  class AXPDateTimeWidgetEditComponent extends AXPWidgetEditBase {
37
38
  constructor() {
@@ -195,4 +196,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
195
196
  }] });
196
197
 
197
198
  export { AXPDateTimeWidgetEditComponent };
198
- //# sourceMappingURL=acorex-platform-common-dateTime-widget-edit.component-B0s6FN-g.mjs.map
199
+ //# sourceMappingURL=acorex-platform-common-dateTime-widget-edit.component-D8FSiqAo.mjs.map