@acorex/platform 18.0.10 → 18.0.12

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 (443) hide show
  1. package/auth/lib/session.service.d.ts +2 -2
  2. package/core/index.d.ts +2 -0
  3. package/core/lib/types.d.ts +1 -0
  4. package/core/utils/countdown-timer.d.ts +14 -0
  5. package/core/utils/html-utils.d.ts +9 -0
  6. package/esm2022/auth/lib/session.service.mjs +23 -38
  7. package/esm2022/common/lib/schema/widgets/common-widget-filter/number-widget-filter.component.mjs +2 -2
  8. package/esm2022/common/lib/schema/widgets/number/number-widget-edit.component.mjs +2 -2
  9. package/esm2022/core/index.mjs +3 -1
  10. package/esm2022/core/lib/types.mjs +13 -2
  11. package/esm2022/core/utils/countdown-timer.mjs +49 -0
  12. package/esm2022/core/utils/html-utils.mjs +27 -0
  13. package/esm2022/layout/builder/lib/builder/widget-column-renderer.mjs +3 -3
  14. package/esm2022/layout/builder/lib/builder/widget-container.component.mjs +12 -18
  15. package/esm2022/layout/builder/lib/builder/widget-registery.service.mjs +4 -1
  16. package/esm2022/layout/builder/lib/builder/widget-renderer.component.mjs +19 -12
  17. package/esm2022/layout/builder/lib/builder/widget.types.mjs +57 -58
  18. package/esm2022/layout/designer/index.mjs +7 -2
  19. package/esm2022/layout/designer/lib/board/board.component.mjs +127 -0
  20. package/esm2022/layout/designer/lib/breadcrumbs/breadcrumbs.component.mjs +64 -0
  21. package/esm2022/layout/designer/lib/buttons/add-widget-button/add-widget-button.component.mjs +37 -0
  22. package/esm2022/layout/designer/lib/designer/designer.component.mjs +54 -0
  23. package/esm2022/layout/designer/lib/designer.module.mjs +6 -26
  24. package/esm2022/layout/designer/lib/designer.service.mjs +356 -0
  25. package/esm2022/layout/designer/lib/header-menu/header-menu.component.mjs +24 -0
  26. package/esm2022/layout/designer/lib/history/history.component.mjs +21 -0
  27. package/esm2022/layout/designer/lib/history-manager.service.mjs +117 -0
  28. package/esm2022/layout/designer/lib/outline/outline.component.mjs +55 -0
  29. package/esm2022/layout/designer/lib/property-viewer/widget-property-viewer.component.mjs +103 -0
  30. package/esm2022/layout/designer/lib/widget-designer-renderer.component.mjs +243 -0
  31. package/esm2022/layout/designer/lib/widget-picker/widget-picker.component.mjs +23 -0
  32. package/esm2022/layout/entity/lib/widgets/lookup-widget/index.mjs +1 -2
  33. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-column.component.mjs +3 -3
  34. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.mjs +17 -16
  35. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-filter.component.mjs +3 -3
  36. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-print.component.mjs +3 -3
  37. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-view.component.mjs +4 -4
  38. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget.config.mjs +39 -4
  39. package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/entity-details-view.component.mjs +3 -3
  40. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.mjs +3 -3
  41. package/esm2022/layouts/lib/admin/entity-layout/entity-modify-view/entity-modify-view.component.mjs +7 -6
  42. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.mjs +5 -4
  43. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-modify-view/entity-master-modify-view.component.mjs +4 -4
  44. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.mjs +4 -4
  45. package/esm2022/widgets/lib/properties/editors.props.mjs +390 -31
  46. package/esm2022/widgets/lib/properties/table-column.props.mjs +8 -7
  47. package/esm2022/widgets/lib/widgets/actions/button-widget/button-widget-view.component.mjs +27 -8
  48. package/esm2022/widgets/lib/widgets/actions/button-widget/button-widget.config.mjs +20 -4
  49. package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget-column.component.mjs +9 -3
  50. package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget-edit.component.mjs +10 -7
  51. package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget-view.component.mjs +20 -19
  52. package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget.config.mjs +21 -1
  53. package/esm2022/widgets/lib/widgets/editors/color-box-widget/color-box-widget-column.component.mjs +19 -0
  54. package/esm2022/widgets/lib/widgets/editors/color-box-widget/color-box-widget-edit.component.mjs +48 -0
  55. package/esm2022/widgets/lib/widgets/editors/color-box-widget/color-box-widget-filter.component.mjs +20 -0
  56. package/esm2022/widgets/lib/widgets/editors/color-box-widget/color-box-widget-print.component.mjs +19 -0
  57. package/esm2022/widgets/lib/widgets/editors/color-box-widget/color-box-widget-view.component.mjs +19 -0
  58. package/esm2022/widgets/lib/widgets/editors/color-box-widget/color-box-widget.config.mjs +34 -0
  59. package/esm2022/widgets/lib/widgets/editors/color-box-widget/index.mjs +7 -0
  60. package/esm2022/widgets/lib/widgets/editors/contact-widget/contact-widget-column.component.mjs +23 -6
  61. package/esm2022/widgets/lib/widgets/editors/contact-widget/contact-widget-edit.component.mjs +76 -46
  62. package/esm2022/widgets/lib/widgets/editors/contact-widget/contact-widget-filter.component.mjs +3 -3
  63. package/esm2022/widgets/lib/widgets/editors/contact-widget/contact-widget-print.component.mjs +3 -3
  64. package/esm2022/widgets/lib/widgets/editors/contact-widget/contact-widget-view.component.mjs +110 -8
  65. package/esm2022/widgets/lib/widgets/editors/contact-widget/contact-widget.config.mjs +58 -4
  66. package/esm2022/widgets/lib/widgets/editors/contact-widget/contact.type.mjs +2 -0
  67. package/esm2022/widgets/lib/widgets/editors/contact-widget/index.mjs +1 -2
  68. package/esm2022/widgets/lib/widgets/editors/contact-widget/popup-component.mjs +3 -3
  69. package/esm2022/widgets/lib/widgets/editors/date-time-box-widget/date-time-box-widget-column.component.mjs +3 -3
  70. package/esm2022/widgets/lib/widgets/editors/date-time-box-widget/date-time-box-widget-edit.component.mjs +48 -37
  71. package/esm2022/widgets/lib/widgets/editors/date-time-box-widget/date-time-box-widget-filter.component.mjs +3 -3
  72. package/esm2022/widgets/lib/widgets/editors/date-time-box-widget/date-time-box-widget-print.component.mjs +5 -5
  73. package/esm2022/widgets/lib/widgets/editors/date-time-box-widget/date-time-box-widget-view.component.mjs +22 -13
  74. package/esm2022/widgets/lib/widgets/editors/date-time-box-widget/date-time-box-widget.config.mjs +16 -2
  75. package/esm2022/widgets/lib/widgets/editors/date-time-box-widget/index.mjs +1 -2
  76. package/esm2022/widgets/lib/widgets/editors/email-box-widget/email-box-widget-column.component.mjs +3 -3
  77. package/esm2022/widgets/lib/widgets/editors/email-box-widget/email-box-widget-edit.component.mjs +147 -126
  78. package/esm2022/widgets/lib/widgets/editors/email-box-widget/email-box-widget-filter.component.mjs +3 -3
  79. package/esm2022/widgets/lib/widgets/editors/email-box-widget/email-box-widget-print.component.mjs +3 -3
  80. package/esm2022/widgets/lib/widgets/editors/email-box-widget/email-box-widget-view.component.mjs +30 -26
  81. package/esm2022/widgets/lib/widgets/editors/email-box-widget/email-box-widget.config.mjs +14 -2
  82. package/esm2022/widgets/lib/widgets/editors/email-box-widget/index.mjs +1 -2
  83. package/esm2022/widgets/lib/widgets/editors/file-box-widget/file-box-widget-column.component.mjs +3 -3
  84. package/esm2022/widgets/lib/widgets/editors/file-box-widget/file-box-widget-edit.component.mjs +14 -10
  85. package/esm2022/widgets/lib/widgets/editors/file-box-widget/file-box-widget-filter.component.mjs +3 -3
  86. package/esm2022/widgets/lib/widgets/editors/file-box-widget/file-box-widget-print.component.mjs +3 -3
  87. package/esm2022/widgets/lib/widgets/editors/file-box-widget/file-box-widget-view.component.mjs +9 -7
  88. package/esm2022/widgets/lib/widgets/editors/file-box-widget/file-box-widget.config.mjs +28 -4
  89. package/esm2022/widgets/lib/widgets/editors/file-box-widget/file-box-widget.service.mjs +1 -1
  90. package/esm2022/widgets/lib/widgets/editors/file-box-widget/index.mjs +1 -2
  91. package/esm2022/widgets/lib/widgets/editors/gallery-widget/gallery-widget-column.component.mjs +3 -3
  92. package/esm2022/widgets/lib/widgets/editors/gallery-widget/gallery-widget-edit.component.mjs +4 -3
  93. package/esm2022/widgets/lib/widgets/editors/gallery-widget/gallery-widget-filter.component.mjs +3 -3
  94. package/esm2022/widgets/lib/widgets/editors/gallery-widget/gallery-widget-print.component.mjs +3 -3
  95. package/esm2022/widgets/lib/widgets/editors/gallery-widget/gallery-widget-view.component.mjs +4 -3
  96. package/esm2022/widgets/lib/widgets/editors/gallery-widget/gallery-widget.config.mjs +4 -2
  97. package/esm2022/widgets/lib/widgets/editors/gallery-widget/index.mjs +1 -2
  98. package/esm2022/widgets/lib/widgets/editors/large-text-widget/index.mjs +1 -2
  99. package/esm2022/widgets/lib/widgets/editors/large-text-widget/large-text-widget-column.component.mjs +3 -3
  100. package/esm2022/widgets/lib/widgets/editors/large-text-widget/large-text-widget-edit.component.mjs +22 -17
  101. package/esm2022/widgets/lib/widgets/editors/large-text-widget/large-text-widget-filter.component.mjs +3 -3
  102. package/esm2022/widgets/lib/widgets/editors/large-text-widget/large-text-widget-print.component.mjs +3 -3
  103. package/esm2022/widgets/lib/widgets/editors/large-text-widget/large-text-widget-view.component.mjs +3 -3
  104. package/esm2022/widgets/lib/widgets/editors/large-text-widget/large-text-widget.config.mjs +13 -9
  105. package/esm2022/widgets/lib/widgets/editors/link-widget/index.mjs +1 -2
  106. package/esm2022/widgets/lib/widgets/editors/link-widget/link-widget-column.component.mjs +3 -3
  107. package/esm2022/widgets/lib/widgets/editors/link-widget/link-widget-edit.component.mjs +35 -34
  108. package/esm2022/widgets/lib/widgets/editors/link-widget/link-widget-filter.component.mjs +3 -3
  109. package/esm2022/widgets/lib/widgets/editors/link-widget/link-widget-print.component.mjs +3 -3
  110. package/esm2022/widgets/lib/widgets/editors/link-widget/link-widget-view.component.mjs +3 -3
  111. package/esm2022/widgets/lib/widgets/editors/link-widget/link-widget.config.mjs +4 -2
  112. package/esm2022/widgets/lib/widgets/editors/map-box-widget/index.mjs +1 -2
  113. package/esm2022/widgets/lib/widgets/editors/map-box-widget/map-box-widget-column.component.mjs +3 -3
  114. package/esm2022/widgets/lib/widgets/editors/map-box-widget/map-box-widget-edit.component.mjs +9 -5
  115. package/esm2022/widgets/lib/widgets/editors/map-box-widget/map-box-widget-filter.component.mjs +3 -3
  116. package/esm2022/widgets/lib/widgets/editors/map-box-widget/map-box-widget-print.component.mjs +3 -3
  117. package/esm2022/widgets/lib/widgets/editors/map-box-widget/map-box-widget-view.component.mjs +3 -3
  118. package/esm2022/widgets/lib/widgets/editors/map-box-widget/map-box-widget.config.mjs +8 -4
  119. package/esm2022/widgets/lib/widgets/editors/number-box-widget/index.mjs +1 -2
  120. package/esm2022/widgets/lib/widgets/editors/number-box-widget/number-box-widget-column.component.mjs +5 -5
  121. package/esm2022/widgets/lib/widgets/editors/number-box-widget/number-box-widget-edit.component.mjs +68 -55
  122. package/esm2022/widgets/lib/widgets/editors/number-box-widget/number-box-widget-filter.component.mjs +3 -3
  123. package/esm2022/widgets/lib/widgets/editors/number-box-widget/number-box-widget-print.component.mjs +3 -3
  124. package/esm2022/widgets/lib/widgets/editors/number-box-widget/number-box-widget-view.component.mjs +20 -17
  125. package/esm2022/widgets/lib/widgets/editors/number-box-widget/number-box-widget.config.mjs +15 -9
  126. package/esm2022/widgets/lib/widgets/editors/password-box-widget/index.mjs +1 -2
  127. package/esm2022/widgets/lib/widgets/editors/password-box-widget/password-box-widget-column.component.mjs +3 -3
  128. package/esm2022/widgets/lib/widgets/editors/password-box-widget/password-box-widget-edit.component.mjs +24 -11
  129. package/esm2022/widgets/lib/widgets/editors/password-box-widget/password-box-widget-filter.component.mjs +3 -3
  130. package/esm2022/widgets/lib/widgets/editors/password-box-widget/password-box-widget-print.component.mjs +3 -3
  131. package/esm2022/widgets/lib/widgets/editors/password-box-widget/password-box-widget-view.component.mjs +17 -14
  132. package/esm2022/widgets/lib/widgets/editors/password-box-widget/password-box-widget.config.mjs +15 -4
  133. package/esm2022/widgets/lib/widgets/editors/phone-box-widget/index.mjs +1 -2
  134. package/esm2022/widgets/lib/widgets/editors/phone-box-widget/phone-box-widget-column.component.mjs +3 -3
  135. package/esm2022/widgets/lib/widgets/editors/phone-box-widget/phone-box-widget-edit.component.mjs +27 -26
  136. package/esm2022/widgets/lib/widgets/editors/phone-box-widget/phone-box-widget-filter.component.mjs +3 -3
  137. package/esm2022/widgets/lib/widgets/editors/phone-box-widget/phone-box-widget-print.component.mjs +3 -3
  138. package/esm2022/widgets/lib/widgets/editors/phone-box-widget/phone-box-widget-view.component.mjs +11 -9
  139. package/esm2022/widgets/lib/widgets/editors/phone-box-widget/phone-box-widget.config.mjs +9 -17
  140. package/esm2022/widgets/lib/widgets/editors/rich-text-widget/index.mjs +1 -2
  141. package/esm2022/widgets/lib/widgets/editors/rich-text-widget/rich-text-popup.component.mjs +38 -0
  142. package/esm2022/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget-column.component.mjs +35 -12
  143. package/esm2022/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget-edit.component.mjs +56 -52
  144. package/esm2022/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget-filter.component.mjs +3 -3
  145. package/esm2022/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget-print.component.mjs +3 -3
  146. package/esm2022/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget-view.component.mjs +26 -20
  147. package/esm2022/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget.config.mjs +15 -2
  148. package/esm2022/widgets/lib/widgets/editors/select-box-widget/index.mjs +1 -2
  149. package/esm2022/widgets/lib/widgets/editors/select-box-widget/select-box-widget-column.component.mjs +3 -3
  150. package/esm2022/widgets/lib/widgets/editors/select-box-widget/select-box-widget-edit.component.mjs +38 -33
  151. package/esm2022/widgets/lib/widgets/editors/select-box-widget/select-box-widget-filter.component.mjs +3 -3
  152. package/esm2022/widgets/lib/widgets/editors/select-box-widget/select-box-widget-print.component.mjs +3 -3
  153. package/esm2022/widgets/lib/widgets/editors/select-box-widget/select-box-widget-view.component.mjs +10 -10
  154. package/esm2022/widgets/lib/widgets/editors/select-box-widget/select-box-widget.config.mjs +15 -4
  155. package/esm2022/widgets/lib/widgets/editors/selection-list-widget/index.mjs +1 -2
  156. package/esm2022/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget-column.component.mjs +3 -3
  157. package/esm2022/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget-edit.component.mjs +37 -23
  158. package/esm2022/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget-filter.component.mjs +3 -3
  159. package/esm2022/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget-print.component.mjs +3 -3
  160. package/esm2022/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget-view.component.mjs +11 -8
  161. package/esm2022/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget.config.mjs +4 -2
  162. package/esm2022/widgets/lib/widgets/editors/signature-pad-widget/index.mjs +1 -2
  163. package/esm2022/widgets/lib/widgets/editors/signature-pad-widget/signature-pad-widget-column.component.mjs +3 -3
  164. package/esm2022/widgets/lib/widgets/editors/signature-pad-widget/signature-pad-widget-edit.component.mjs +17 -15
  165. package/esm2022/widgets/lib/widgets/editors/signature-pad-widget/signature-pad-widget-filter.component.mjs +3 -3
  166. package/esm2022/widgets/lib/widgets/editors/signature-pad-widget/signature-pad-widget-print.component.mjs +3 -3
  167. package/esm2022/widgets/lib/widgets/editors/signature-pad-widget/signature-pad-widget-view.component.mjs +6 -5
  168. package/esm2022/widgets/lib/widgets/editors/signature-pad-widget/signature-pad-widget.config.mjs +12 -2
  169. package/esm2022/widgets/lib/widgets/editors/text-box-widget/index.mjs +1 -2
  170. package/esm2022/widgets/lib/widgets/editors/text-box-widget/text-box-widget-column.component.mjs +3 -3
  171. package/esm2022/widgets/lib/widgets/editors/text-box-widget/text-box-widget-edit.component.mjs +21 -23
  172. package/esm2022/widgets/lib/widgets/editors/text-box-widget/text-box-widget-filter.component.mjs +3 -3
  173. package/esm2022/widgets/lib/widgets/editors/text-box-widget/text-box-widget-print.component.mjs +3 -3
  174. package/esm2022/widgets/lib/widgets/editors/text-box-widget/text-box-widget-view.component.mjs +18 -11
  175. package/esm2022/widgets/lib/widgets/editors/text-box-widget/text-box-widget.config.mjs +15 -13
  176. package/esm2022/widgets/lib/widgets/editors/toggle-widget/index.mjs +1 -2
  177. package/esm2022/widgets/lib/widgets/editors/toggle-widget/toggle-widget-column.component.mjs +9 -3
  178. package/esm2022/widgets/lib/widgets/editors/toggle-widget/toggle-widget-edit.component.mjs +11 -6
  179. package/esm2022/widgets/lib/widgets/editors/toggle-widget/toggle-widget-filter.component.mjs +3 -3
  180. package/esm2022/widgets/lib/widgets/editors/toggle-widget/toggle-widget-print.component.mjs +3 -3
  181. package/esm2022/widgets/lib/widgets/editors/toggle-widget/toggle-widget-view.component.mjs +22 -16
  182. package/esm2022/widgets/lib/widgets/editors/toggle-widget/toggle-widget.config.mjs +17 -4
  183. package/esm2022/widgets/lib/widgets/index.mjs +2 -1
  184. package/esm2022/widgets/lib/widgets/layout/block-widget/block-widget-designer.component.mjs +65 -0
  185. package/esm2022/widgets/lib/widgets/layout/block-widget/block-widget-view.component.mjs +48 -0
  186. package/esm2022/widgets/lib/widgets/layout/block-widget/block-widget.config.mjs +21 -3
  187. package/esm2022/widgets/lib/widgets/layout/block-widget/index.mjs +3 -2
  188. package/esm2022/widgets/lib/widgets/layout/page-widget/index.mjs +3 -0
  189. package/esm2022/widgets/lib/widgets/layout/page-widget/page-widget-designer.component.mjs +65 -0
  190. package/esm2022/widgets/lib/widgets/layout/page-widget/page-widget-view.component.mjs +42 -0
  191. package/esm2022/widgets/lib/widgets/layout/page-widget/page-widget.config.mjs +28 -0
  192. package/esm2022/widgets/lib/widgets/layout/repeater-widget/index.mjs +1 -3
  193. package/esm2022/widgets/lib/widgets/layout/repeater-widget/repeater-widget-designer.component.mjs +39 -8
  194. package/esm2022/widgets/lib/widgets/layout/repeater-widget/repeater-widget-edit.component.mjs +3 -3
  195. package/esm2022/widgets/lib/widgets/layout/repeater-widget/repeater-widget-print.component.mjs +3 -3
  196. package/esm2022/widgets/lib/widgets/layout/repeater-widget/repeater-widget-view.component.mjs +6 -6
  197. package/esm2022/widgets/lib/widgets/layout/repeater-widget/repeater-widget.config.mjs +5 -8
  198. package/esm2022/widgets/lib/widgets/layout/text-block-widget/index.mjs +3 -0
  199. package/esm2022/widgets/lib/widgets/layout/text-block-widget/text-block-widget-view.component.mjs +29 -0
  200. package/esm2022/widgets/lib/widgets/layout/text-block-widget/text-block-widget.config.mjs +39 -0
  201. package/esm2022/widgets/lib/widgets.module.mjs +18 -6
  202. package/fesm2022/acorex-platform-auth.mjs +22 -37
  203. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  204. package/fesm2022/{acorex-platform-common-number-widget-edit.component-bTHacO49.mjs → acorex-platform-common-number-widget-edit.component-XSWI6466.mjs} +2 -2
  205. package/fesm2022/{acorex-platform-common-number-widget-edit.component-bTHacO49.mjs.map → acorex-platform-common-number-widget-edit.component-XSWI6466.mjs.map} +1 -1
  206. package/fesm2022/{acorex-platform-common-number-widget-filter.component-CFqNphMw.mjs → acorex-platform-common-number-widget-filter.component-BOT9wPJ5.mjs} +2 -2
  207. package/fesm2022/{acorex-platform-common-number-widget-filter.component-CFqNphMw.mjs.map → acorex-platform-common-number-widget-filter.component-BOT9wPJ5.mjs.map} +1 -1
  208. package/fesm2022/acorex-platform-common.mjs +2 -2
  209. package/fesm2022/acorex-platform-core.mjs +90 -0
  210. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  211. package/fesm2022/acorex-platform-layout-builder.mjs +89 -86
  212. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  213. package/fesm2022/acorex-platform-layout-designer-widget-picker.component-DkZGbnkz.mjs +26 -0
  214. package/fesm2022/acorex-platform-layout-designer-widget-picker.component-DkZGbnkz.mjs.map +1 -0
  215. package/fesm2022/acorex-platform-layout-designer.mjs +1081 -59
  216. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  217. package/fesm2022/acorex-platform-layout-entity.mjs +59 -43
  218. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  219. package/fesm2022/{acorex-platform-layouts-entity-modify-view.component-CjofXJku.mjs → acorex-platform-layouts-entity-modify-view.component-C9L8cyBm.mjs} +7 -5
  220. package/fesm2022/acorex-platform-layouts-entity-modify-view.component-C9L8cyBm.mjs.map +1 -0
  221. package/fesm2022/acorex-platform-layouts.mjs +6 -6
  222. package/fesm2022/acorex-platform-layouts.mjs.map +1 -1
  223. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-D1vzPrng.mjs → acorex-platform-themes-default-entity-master-create-view.component-Cv0mt0pU.mjs} +5 -4
  224. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cv0mt0pU.mjs.map +1 -0
  225. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-DCE6c3Is.mjs → acorex-platform-themes-default-entity-master-modify-view.component-BDk03AnX.mjs} +4 -4
  226. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BDk03AnX.mjs.map +1 -0
  227. package/fesm2022/acorex-platform-themes-default.mjs +7 -7
  228. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  229. package/fesm2022/{acorex-platform-widgets-checkbox-widget-column.component-CJUV6lFi.mjs → acorex-platform-widgets-checkbox-widget-column.component-BzNhzB9y.mjs} +9 -3
  230. package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-BzNhzB9y.mjs.map +1 -0
  231. package/fesm2022/{acorex-platform-widgets-checkbox-widget-view.component-T-tXqoMd.mjs → acorex-platform-widgets-checkbox-widget-view.component-BCsej7C6.mjs} +20 -19
  232. package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-BCsej7C6.mjs.map +1 -0
  233. package/fesm2022/acorex-platform-widgets-page-widget-designer.component-DlfG4EP1.mjs +68 -0
  234. package/fesm2022/acorex-platform-widgets-page-widget-designer.component-DlfG4EP1.mjs.map +1 -0
  235. package/fesm2022/acorex-platform-widgets-rich-text-popup.component-RCdFIz45.mjs +41 -0
  236. package/fesm2022/acorex-platform-widgets-rich-text-popup.component-RCdFIz45.mjs.map +1 -0
  237. package/fesm2022/acorex-platform-widgets.mjs +2397 -1474
  238. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  239. package/layout/builder/lib/builder/widget-container.component.d.ts +5 -5
  240. package/layout/builder/lib/builder/widget-registery.service.d.ts +1 -0
  241. package/layout/builder/lib/builder/widget-renderer.component.d.ts +6 -3
  242. package/layout/builder/lib/builder/widget.types.d.ts +54 -33
  243. package/layout/designer/index.d.ts +6 -1
  244. package/layout/designer/lib/board/board.component.d.ts +16 -0
  245. package/layout/designer/lib/breadcrumbs/breadcrumbs.component.d.ts +11 -0
  246. package/layout/designer/lib/buttons/add-widget-button/add-widget-button.component.d.ts +9 -0
  247. package/layout/designer/lib/designer/designer.component.d.ts +9 -0
  248. package/layout/designer/lib/designer.module.d.ts +1 -7
  249. package/layout/designer/lib/designer.service.d.ts +107 -0
  250. package/layout/designer/lib/header-menu/header-menu.component.d.ts +7 -0
  251. package/layout/designer/lib/history/history.component.d.ts +7 -0
  252. package/layout/designer/lib/history-manager.service.d.ts +31 -0
  253. package/layout/designer/lib/outline/outline.component.d.ts +17 -0
  254. package/layout/designer/lib/{components → property-viewer}/widget-property-viewer.component.d.ts +12 -12
  255. package/layout/designer/lib/widget-designer-renderer.component.d.ts +38 -0
  256. package/layout/designer/lib/widget-picker/widget-picker.component.d.ts +9 -0
  257. package/layout/entity/lib/widgets/lookup-widget/index.d.ts +0 -1
  258. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-column.component.d.ts +2 -2
  259. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +9 -9
  260. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-filter.component.d.ts +2 -2
  261. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-print.component.d.ts +2 -2
  262. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-view.component.d.ts +5 -5
  263. package/package.json +7 -7
  264. package/widgets/lib/properties/editors.props.d.ts +22 -1
  265. package/widgets/lib/widgets/actions/button-widget/button-widget-view.component.d.ts +8 -3
  266. package/widgets/lib/widgets/editors/checkbox/checkbox-widget-column.component.d.ts +4 -4
  267. package/widgets/lib/widgets/editors/checkbox/checkbox-widget-edit.component.d.ts +6 -4
  268. package/widgets/lib/widgets/editors/checkbox/checkbox-widget-view.component.d.ts +5 -5
  269. package/widgets/lib/widgets/editors/color-box-widget/color-box-widget-column.component.d.ts +6 -0
  270. package/widgets/lib/widgets/editors/color-box-widget/color-box-widget-edit.component.d.ts +10 -0
  271. package/widgets/lib/widgets/editors/color-box-widget/color-box-widget-filter.component.d.ts +6 -0
  272. package/widgets/lib/widgets/editors/color-box-widget/color-box-widget-print.component.d.ts +6 -0
  273. package/widgets/lib/widgets/editors/color-box-widget/color-box-widget-view.component.d.ts +6 -0
  274. package/widgets/lib/widgets/editors/color-box-widget/color-box-widget.config.d.ts +2 -0
  275. package/widgets/lib/widgets/editors/color-box-widget/index.d.ts +6 -0
  276. package/widgets/lib/widgets/editors/contact-widget/contact-widget-column.component.d.ts +4 -2
  277. package/widgets/lib/widgets/editors/contact-widget/contact-widget-edit.component.d.ts +11 -15
  278. package/widgets/lib/widgets/editors/contact-widget/contact-widget-filter.component.d.ts +2 -2
  279. package/widgets/lib/widgets/editors/contact-widget/contact-widget-print.component.d.ts +2 -2
  280. package/widgets/lib/widgets/editors/contact-widget/contact-widget-view.component.d.ts +15 -2
  281. package/widgets/lib/widgets/editors/contact-widget/contact.type.d.ts +5 -0
  282. package/widgets/lib/widgets/editors/contact-widget/index.d.ts +0 -1
  283. package/widgets/lib/widgets/editors/date-time-box-widget/date-time-box-widget-column.component.d.ts +2 -2
  284. package/widgets/lib/widgets/editors/date-time-box-widget/date-time-box-widget-edit.component.d.ts +7 -7
  285. package/widgets/lib/widgets/editors/date-time-box-widget/date-time-box-widget-filter.component.d.ts +2 -2
  286. package/widgets/lib/widgets/editors/date-time-box-widget/date-time-box-widget-print.component.d.ts +2 -2
  287. package/widgets/lib/widgets/editors/date-time-box-widget/date-time-box-widget-view.component.d.ts +4 -4
  288. package/widgets/lib/widgets/editors/date-time-box-widget/index.d.ts +0 -1
  289. package/widgets/lib/widgets/editors/email-box-widget/email-box-widget-column.component.d.ts +2 -2
  290. package/widgets/lib/widgets/editors/email-box-widget/email-box-widget-edit.component.d.ts +8 -7
  291. package/widgets/lib/widgets/editors/email-box-widget/email-box-widget-filter.component.d.ts +2 -2
  292. package/widgets/lib/widgets/editors/email-box-widget/email-box-widget-print.component.d.ts +2 -2
  293. package/widgets/lib/widgets/editors/email-box-widget/email-box-widget-view.component.d.ts +4 -4
  294. package/widgets/lib/widgets/editors/email-box-widget/index.d.ts +0 -1
  295. package/widgets/lib/widgets/editors/file-box-widget/file-box-widget-column.component.d.ts +2 -2
  296. package/widgets/lib/widgets/editors/file-box-widget/file-box-widget-edit.component.d.ts +6 -5
  297. package/widgets/lib/widgets/editors/file-box-widget/file-box-widget-filter.component.d.ts +2 -2
  298. package/widgets/lib/widgets/editors/file-box-widget/file-box-widget-print.component.d.ts +2 -2
  299. package/widgets/lib/widgets/editors/file-box-widget/file-box-widget-view.component.d.ts +4 -4
  300. package/widgets/lib/widgets/editors/file-box-widget/file-box-widget.service.d.ts +1 -1
  301. package/widgets/lib/widgets/editors/file-box-widget/index.d.ts +0 -1
  302. package/widgets/lib/widgets/editors/gallery-widget/gallery-widget-column.component.d.ts +2 -2
  303. package/widgets/lib/widgets/editors/gallery-widget/gallery-widget-edit.component.d.ts +3 -3
  304. package/widgets/lib/widgets/editors/gallery-widget/gallery-widget-filter.component.d.ts +2 -2
  305. package/widgets/lib/widgets/editors/gallery-widget/gallery-widget-print.component.d.ts +2 -2
  306. package/widgets/lib/widgets/editors/gallery-widget/gallery-widget-view.component.d.ts +3 -3
  307. package/widgets/lib/widgets/editors/gallery-widget/index.d.ts +0 -1
  308. package/widgets/lib/widgets/editors/large-text-widget/index.d.ts +0 -1
  309. package/widgets/lib/widgets/editors/large-text-widget/large-text-widget-column.component.d.ts +2 -2
  310. package/widgets/lib/widgets/editors/large-text-widget/large-text-widget-edit.component.d.ts +7 -5
  311. package/widgets/lib/widgets/editors/large-text-widget/large-text-widget-filter.component.d.ts +2 -2
  312. package/widgets/lib/widgets/editors/large-text-widget/large-text-widget-print.component.d.ts +2 -2
  313. package/widgets/lib/widgets/editors/large-text-widget/large-text-widget-view.component.d.ts +2 -2
  314. package/widgets/lib/widgets/editors/link-widget/index.d.ts +0 -1
  315. package/widgets/lib/widgets/editors/link-widget/link-widget-column.component.d.ts +2 -2
  316. package/widgets/lib/widgets/editors/link-widget/link-widget-edit.component.d.ts +9 -9
  317. package/widgets/lib/widgets/editors/link-widget/link-widget-filter.component.d.ts +2 -2
  318. package/widgets/lib/widgets/editors/link-widget/link-widget-print.component.d.ts +2 -2
  319. package/widgets/lib/widgets/editors/link-widget/link-widget-view.component.d.ts +2 -2
  320. package/widgets/lib/widgets/editors/map-box-widget/index.d.ts +0 -1
  321. package/widgets/lib/widgets/editors/map-box-widget/map-box-widget-column.component.d.ts +2 -2
  322. package/widgets/lib/widgets/editors/map-box-widget/map-box-widget-edit.component.d.ts +5 -5
  323. package/widgets/lib/widgets/editors/map-box-widget/map-box-widget-filter.component.d.ts +2 -2
  324. package/widgets/lib/widgets/editors/map-box-widget/map-box-widget-print.component.d.ts +2 -2
  325. package/widgets/lib/widgets/editors/map-box-widget/map-box-widget-view.component.d.ts +6 -6
  326. package/widgets/lib/widgets/editors/number-box-widget/index.d.ts +0 -1
  327. package/widgets/lib/widgets/editors/number-box-widget/number-box-widget-column.component.d.ts +2 -2
  328. package/widgets/lib/widgets/editors/number-box-widget/number-box-widget-edit.component.d.ts +8 -11
  329. package/widgets/lib/widgets/editors/number-box-widget/number-box-widget-filter.component.d.ts +2 -2
  330. package/widgets/lib/widgets/editors/number-box-widget/number-box-widget-print.component.d.ts +2 -2
  331. package/widgets/lib/widgets/editors/number-box-widget/number-box-widget-view.component.d.ts +5 -7
  332. package/widgets/lib/widgets/editors/password-box-widget/index.d.ts +0 -1
  333. package/widgets/lib/widgets/editors/password-box-widget/password-box-widget-column.component.d.ts +2 -2
  334. package/widgets/lib/widgets/editors/password-box-widget/password-box-widget-edit.component.d.ts +4 -2
  335. package/widgets/lib/widgets/editors/password-box-widget/password-box-widget-filter.component.d.ts +2 -2
  336. package/widgets/lib/widgets/editors/password-box-widget/password-box-widget-print.component.d.ts +2 -2
  337. package/widgets/lib/widgets/editors/password-box-widget/password-box-widget-view.component.d.ts +6 -5
  338. package/widgets/lib/widgets/editors/phone-box-widget/index.d.ts +0 -1
  339. package/widgets/lib/widgets/editors/phone-box-widget/phone-box-widget-column.component.d.ts +2 -2
  340. package/widgets/lib/widgets/editors/phone-box-widget/phone-box-widget-edit.component.d.ts +7 -8
  341. package/widgets/lib/widgets/editors/phone-box-widget/phone-box-widget-filter.component.d.ts +2 -2
  342. package/widgets/lib/widgets/editors/phone-box-widget/phone-box-widget-print.component.d.ts +2 -2
  343. package/widgets/lib/widgets/editors/phone-box-widget/phone-box-widget-view.component.d.ts +4 -4
  344. package/widgets/lib/widgets/editors/rich-text-widget/index.d.ts +0 -1
  345. package/widgets/lib/widgets/editors/rich-text-widget/rich-text-popup.component.d.ts +9 -0
  346. package/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget-column.component.d.ts +11 -3
  347. package/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget-edit.component.d.ts +7 -29
  348. package/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget-filter.component.d.ts +2 -2
  349. package/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget-print.component.d.ts +2 -2
  350. package/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget-view.component.d.ts +10 -6
  351. package/widgets/lib/widgets/editors/select-box-widget/index.d.ts +0 -1
  352. package/widgets/lib/widgets/editors/select-box-widget/select-box-widget-column.component.d.ts +2 -2
  353. package/widgets/lib/widgets/editors/select-box-widget/select-box-widget-edit.component.d.ts +10 -7
  354. package/widgets/lib/widgets/editors/select-box-widget/select-box-widget-filter.component.d.ts +2 -2
  355. package/widgets/lib/widgets/editors/select-box-widget/select-box-widget-print.component.d.ts +2 -2
  356. package/widgets/lib/widgets/editors/select-box-widget/select-box-widget-view.component.d.ts +5 -5
  357. package/widgets/lib/widgets/editors/selection-list-widget/index.d.ts +0 -1
  358. package/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget-column.component.d.ts +2 -2
  359. package/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget-edit.component.d.ts +10 -7
  360. package/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget-filter.component.d.ts +2 -2
  361. package/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget-print.component.d.ts +2 -2
  362. package/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget-view.component.d.ts +5 -5
  363. package/widgets/lib/widgets/editors/signature-pad-widget/index.d.ts +0 -1
  364. package/widgets/lib/widgets/editors/signature-pad-widget/signature-pad-widget-column.component.d.ts +2 -2
  365. package/widgets/lib/widgets/editors/signature-pad-widget/signature-pad-widget-edit.component.d.ts +4 -2
  366. package/widgets/lib/widgets/editors/signature-pad-widget/signature-pad-widget-filter.component.d.ts +2 -2
  367. package/widgets/lib/widgets/editors/signature-pad-widget/signature-pad-widget-print.component.d.ts +2 -2
  368. package/widgets/lib/widgets/editors/signature-pad-widget/signature-pad-widget-view.component.d.ts +3 -2
  369. package/widgets/lib/widgets/editors/text-box-widget/index.d.ts +0 -1
  370. package/widgets/lib/widgets/editors/text-box-widget/text-box-widget-column.component.d.ts +2 -2
  371. package/widgets/lib/widgets/editors/text-box-widget/text-box-widget-edit.component.d.ts +7 -8
  372. package/widgets/lib/widgets/editors/text-box-widget/text-box-widget-filter.component.d.ts +2 -2
  373. package/widgets/lib/widgets/editors/text-box-widget/text-box-widget-print.component.d.ts +2 -2
  374. package/widgets/lib/widgets/editors/text-box-widget/text-box-widget-view.component.d.ts +3 -3
  375. package/widgets/lib/widgets/editors/toggle-widget/index.d.ts +0 -1
  376. package/widgets/lib/widgets/editors/toggle-widget/toggle-widget-column.component.d.ts +3 -3
  377. package/widgets/lib/widgets/editors/toggle-widget/toggle-widget-edit.component.d.ts +5 -2
  378. package/widgets/lib/widgets/editors/toggle-widget/toggle-widget-filter.component.d.ts +2 -2
  379. package/widgets/lib/widgets/editors/toggle-widget/toggle-widget-print.component.d.ts +2 -2
  380. package/widgets/lib/widgets/editors/toggle-widget/toggle-widget-view.component.d.ts +5 -5
  381. package/widgets/lib/widgets/index.d.ts +1 -0
  382. package/widgets/lib/widgets/layout/block-widget/block-widget-designer.component.d.ts +11 -0
  383. package/widgets/lib/widgets/layout/block-widget/{block-widget.component.d.ts → block-widget-view.component.d.ts} +5 -3
  384. package/widgets/lib/widgets/layout/block-widget/index.d.ts +2 -1
  385. package/widgets/lib/widgets/layout/page-widget/index.d.ts +2 -0
  386. package/widgets/lib/widgets/layout/page-widget/page-widget-designer.component.d.ts +10 -0
  387. package/widgets/lib/widgets/layout/page-widget/page-widget-view.component.d.ts +8 -0
  388. package/widgets/lib/widgets/layout/page-widget/page-widget.config.d.ts +2 -0
  389. package/widgets/lib/widgets/layout/repeater-widget/index.d.ts +0 -2
  390. package/widgets/lib/widgets/layout/repeater-widget/repeater-widget-designer.component.d.ts +4 -2
  391. package/widgets/lib/widgets/layout/repeater-widget/repeater-widget-edit.component.d.ts +2 -2
  392. package/widgets/lib/widgets/layout/repeater-widget/repeater-widget-print.component.d.ts +2 -2
  393. package/widgets/lib/widgets/layout/repeater-widget/repeater-widget-view.component.d.ts +2 -2
  394. package/widgets/lib/widgets/layout/text-block-widget/index.d.ts +2 -0
  395. package/widgets/lib/widgets/layout/text-block-widget/text-block-widget-view.component.d.ts +10 -0
  396. package/widgets/lib/widgets/layout/text-block-widget/text-block-widget.config.d.ts +2 -0
  397. package/esm2022/layout/designer/lib/components/widget-property-viewer.component.mjs +0 -86
  398. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-designer.component.mjs +0 -19
  399. package/esm2022/widgets/lib/widgets/editors/contact-widget/contact-widget-designer.component.mjs +0 -19
  400. package/esm2022/widgets/lib/widgets/editors/date-time-box-widget/date-time-box-widget-designer.component.mjs +0 -19
  401. package/esm2022/widgets/lib/widgets/editors/email-box-widget/email-box-widget-designer.component.mjs +0 -19
  402. package/esm2022/widgets/lib/widgets/editors/file-box-widget/file-box-widget-designer.component.mjs +0 -19
  403. package/esm2022/widgets/lib/widgets/editors/gallery-widget/gallery-widget-designer.component.mjs +0 -19
  404. package/esm2022/widgets/lib/widgets/editors/large-text-widget/large-text-widget-designer.component.mjs +0 -19
  405. package/esm2022/widgets/lib/widgets/editors/link-widget/link-widget-designer.component.mjs +0 -19
  406. package/esm2022/widgets/lib/widgets/editors/map-box-widget/map-box-widget-designer.component.mjs +0 -19
  407. package/esm2022/widgets/lib/widgets/editors/number-box-widget/number-box-widget-designer.component.mjs +0 -19
  408. package/esm2022/widgets/lib/widgets/editors/password-box-widget/password-box-widget-designer.component.mjs +0 -19
  409. package/esm2022/widgets/lib/widgets/editors/phone-box-widget/phone-box-widget-designer.component.mjs +0 -19
  410. package/esm2022/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget-designer.component.mjs +0 -19
  411. package/esm2022/widgets/lib/widgets/editors/select-box-widget/select-box-widget-designer.component.mjs +0 -19
  412. package/esm2022/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget-designer.component.mjs +0 -19
  413. package/esm2022/widgets/lib/widgets/editors/signature-pad-widget/signature-pad-widget-designer.component.mjs +0 -19
  414. package/esm2022/widgets/lib/widgets/editors/text-box-widget/text-box-widget-designer.component.mjs +0 -19
  415. package/esm2022/widgets/lib/widgets/editors/toggle-widget/toggle-widget-designer.component.mjs +0 -19
  416. package/esm2022/widgets/lib/widgets/layout/block-widget/block-widget.component.mjs +0 -34
  417. package/esm2022/widgets/lib/widgets/layout/repeater-widget/repeater-widget-column.component.mjs +0 -19
  418. package/esm2022/widgets/lib/widgets/layout/repeater-widget/repeater-widget-filter.component.mjs +0 -20
  419. package/fesm2022/acorex-platform-layouts-entity-modify-view.component-CjofXJku.mjs.map +0 -1
  420. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-D1vzPrng.mjs.map +0 -1
  421. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DCE6c3Is.mjs.map +0 -1
  422. package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-CJUV6lFi.mjs.map +0 -1
  423. package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-T-tXqoMd.mjs.map +0 -1
  424. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-designer.component.d.ts +0 -6
  425. package/widgets/lib/widgets/editors/contact-widget/contact-widget-designer.component.d.ts +0 -6
  426. package/widgets/lib/widgets/editors/date-time-box-widget/date-time-box-widget-designer.component.d.ts +0 -6
  427. package/widgets/lib/widgets/editors/email-box-widget/email-box-widget-designer.component.d.ts +0 -6
  428. package/widgets/lib/widgets/editors/file-box-widget/file-box-widget-designer.component.d.ts +0 -6
  429. package/widgets/lib/widgets/editors/gallery-widget/gallery-widget-designer.component.d.ts +0 -6
  430. package/widgets/lib/widgets/editors/large-text-widget/large-text-widget-designer.component.d.ts +0 -6
  431. package/widgets/lib/widgets/editors/link-widget/link-widget-designer.component.d.ts +0 -6
  432. package/widgets/lib/widgets/editors/map-box-widget/map-box-widget-designer.component.d.ts +0 -6
  433. package/widgets/lib/widgets/editors/number-box-widget/number-box-widget-designer.component.d.ts +0 -6
  434. package/widgets/lib/widgets/editors/password-box-widget/password-box-widget-designer.component.d.ts +0 -6
  435. package/widgets/lib/widgets/editors/phone-box-widget/phone-box-widget-designer.component.d.ts +0 -6
  436. package/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget-designer.component.d.ts +0 -6
  437. package/widgets/lib/widgets/editors/select-box-widget/select-box-widget-designer.component.d.ts +0 -6
  438. package/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget-designer.component.d.ts +0 -6
  439. package/widgets/lib/widgets/editors/signature-pad-widget/signature-pad-widget-designer.component.d.ts +0 -6
  440. package/widgets/lib/widgets/editors/text-box-widget/text-box-widget-designer.component.d.ts +0 -6
  441. package/widgets/lib/widgets/editors/toggle-widget/toggle-widget-designer.component.d.ts +0 -6
  442. package/widgets/lib/widgets/layout/repeater-widget/repeater-widget-column.component.d.ts +0 -6
  443. package/widgets/lib/widgets/layout/repeater-widget/repeater-widget-filter.component.d.ts +0 -6
@@ -7,9 +7,9 @@ import { AXSelectBoxModule } from '@acorex/components/select-box';
7
7
  import { AXTextBoxModule } from '@acorex/components/text-box';
8
8
  import { AXTranslationModule } from '@acorex/core/translation';
9
9
  import { AXValidationModule, AXValidationService } from '@acorex/core/validation';
10
- import { AXPWidgetBase } from '@acorex/platform/layout/builder';
10
+ import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
11
11
  import { CommonModule } from '@angular/common';
12
- import { ChangeDetectionStrategy, Component, computed, inject, signal } from '@angular/core';
12
+ import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';
13
13
  import { FormsModule } from '@angular/forms';
14
14
  import { popupComponent } from './popup-component';
15
15
  import * as i0 from "@angular/core";
@@ -20,21 +20,27 @@ import * as i4 from "@acorex/components/form";
20
20
  import * as i5 from "@acorex/components/button";
21
21
  import * as i6 from "@acorex/components/decorators";
22
22
  import * as i7 from "@acorex/components/text-box";
23
- export class AXPContactWidgetEditComponent extends AXPWidgetBase {
23
+ export class AXPContactWidgetEditComponent extends AXPWidgetComponent {
24
24
  constructor() {
25
25
  super(...arguments);
26
- this.lableList = signal(['primary', 'secondary', 'Add New']);
26
+ //properties
27
+ this.type = computed(() => this.options()['type']);
28
+ this.labelList = computed(() => this.options()['labelList'] || ['primary', 'secondary', 'new']);
29
+ this.hasLabel = computed(() => this.options()['hasLabel']);
30
+ this.multiple = computed(() => this.options()['multiple']);
31
+ this.hasIcon = computed(() => this.options()['hasIcon']);
32
+ this.disabled = computed(() => this.options()['disabled']);
27
33
  this.popup = inject(AXPopupService);
28
34
  this.dataSource = new AXDataSource({
29
- pageSize: this.lableList().length,
35
+ pageSize: this.labelList().length,
30
36
  load: (e) => {
31
37
  return Promise.resolve({
32
- items: this.lableList().slice(e.skip, (e.skip ?? 0) + (e.take ?? 0)),
33
- total: this.lableList().length,
38
+ items: this.labelList().slice(e.skip, (e.skip ?? 0) + (e.take ?? 0)),
39
+ total: this.labelList().length,
34
40
  });
35
41
  },
36
42
  byKey: (key) => {
37
- return Promise.resolve(this.lableList().find((i) => i === key));
43
+ return Promise.resolve(this.labelList().find((i) => i === key));
38
44
  },
39
45
  });
40
46
  this.internalValue = computed(() => this.valueToArray());
@@ -43,19 +49,19 @@ export class AXPContactWidgetEditComponent extends AXPWidgetBase {
43
49
  this.itemToArray = (item) => {
44
50
  if (typeof item === 'object')
45
51
  return {
46
- value: item.value ?? '',
47
- lable: this.hasLable ? item.lable || this.lableList()[0] : undefined,
48
- icon: this.hasIcon ? item.icon || this.chooseIcon() : undefined,
52
+ value: item?.value ?? '',
53
+ label: this.hasLabel() ? item?.label || this.labelList()[0] : undefined,
54
+ icon: this.hasIcon() ? item?.icon || this.chooseIcon() : undefined,
49
55
  };
50
56
  else
51
57
  return {
52
58
  value: item,
53
- lable: this.hasLable ? this.lableList()[0] : undefined,
54
- icon: this.hasIcon ? this.chooseIcon() : undefined,
59
+ label: this.hasLabel() ? this.labelList()[0] : undefined,
60
+ icon: this.hasIcon() ? this.chooseIcon() : undefined,
55
61
  };
56
62
  };
57
63
  this.chooseIcon = () => {
58
- switch (this.widgetType) {
64
+ switch (this.type()) {
59
65
  case 'email':
60
66
  return 'fa-link';
61
67
  case 'link':
@@ -78,10 +84,10 @@ export class AXPContactWidgetEditComponent extends AXPWidgetBase {
78
84
  async handleValueChange(e, selectedIndex) {
79
85
  let { name, value, isUserInteraction } = e;
80
86
  if (isUserInteraction) {
81
- if (e.name === 'lable') {
87
+ if (e.name === 'label') {
82
88
  if (e.value === 'Add New') {
83
89
  const options = {
84
- title: 'Enter Lable...',
90
+ title: 'Enter Label...',
85
91
  // header: false,
86
92
  // footer: true,
87
93
  size: 'sm',
@@ -92,26 +98,26 @@ export class AXPContactWidgetEditComponent extends AXPWidgetBase {
92
98
  };
93
99
  const newValue = await this.popup.open(popupComponent, { ...options }).then((e) => e.data);
94
100
  value = newValue.value;
95
- this.lableList().pop();
96
- this.lableList().push(value, 'Add New');
101
+ this.labelList().pop();
102
+ this.labelList().push(value, 'Add New');
97
103
  this.dataSource.refresh();
98
104
  }
99
105
  }
100
106
  }
101
107
  const newValues = this.internalValue().map((item, index) => (selectedIndex === index ? { ...item, [name]: value } : item));
102
- if (this.multiple)
108
+ if (this.multiple())
103
109
  this.setValue(newValues);
104
110
  else
105
111
  this.setValue(newValues[0]);
106
112
  }
107
113
  generateClasses(element) {
108
- if (this.multiple) {
109
- if (this.hasLable) {
114
+ if (this.multiple()) {
115
+ if (this.hasLabel()) {
110
116
  if (element === 'value') {
111
117
  return 'ax-col-start-1 ax-col-end-13 lg:ax-col-end-7';
112
118
  }
113
119
  else {
114
- return 'ax-col-start-1 ax-col-end-11 lg:ax-col-start-7 lg:ax-col-end-12';
120
+ return 'ax-col-start-1 ax-col-end-12 lg:ax-col-start-7 lg:ax-col-end-12';
115
121
  }
116
122
  }
117
123
  else {
@@ -121,7 +127,7 @@ export class AXPContactWidgetEditComponent extends AXPWidgetBase {
121
127
  }
122
128
  }
123
129
  else {
124
- if (this.hasLable) {
130
+ if (this.hasLabel()) {
125
131
  if (element === 'value') {
126
132
  return 'ax-col-start-1 ax-col-end-13 lg:ax-col-end-7';
127
133
  }
@@ -157,42 +163,54 @@ export class AXPContactWidgetEditComponent extends AXPWidgetBase {
157
163
  };
158
164
  }
159
165
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPContactWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
160
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPContactWidgetEditComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `<div class="ax-grid ax-grid-cols-12 ax-gap-4">
166
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPContactWidgetEditComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `<div class="lg:ax-grid lg:ax-grid-cols-12 lg:ax-gap-4">
161
167
  @for(item of internalValue();track $index) {
162
168
  <ax-text-box
163
169
  [ngModel]="item.value"
164
170
  (onValueChanged)="handleValueChange($event, $index)"
165
171
  type="text"
166
172
  name="value"
167
- placeholder="Enter {{ widgetType }} ..."
173
+ placeholder="Enter {{ type() }} ..."
168
174
  [ngClass]="generateClasses('value')"
175
+ [disabled]="disabled()"
169
176
  >
170
177
  @for (validation of validationRules; track $index) {
171
178
  <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
172
179
  }
173
180
  <ax-validation-rule message="field can't be empty" rule="required"> </ax-validation-rule>
174
181
  </ax-text-box>
175
- @if(hasLable){
182
+ @if(hasLabel()){
176
183
  <ax-select-box
177
184
  [dataSource]="dataSource"
178
- [ngModel]="item.lable"
185
+ [ngModel]="item.label"
186
+ [disabled]="disabled()"
179
187
  (onValueChanged)="handleValueChange($event, $index)"
180
- placeholder="Choose lable..."
181
- name="lable"
182
- [ngClass]="generateClasses('lable')"
188
+ placeholder="Choose label..."
189
+ name="label"
190
+ [ngClass]="generateClasses('label')"
183
191
  >
192
+ @if(type()==='email'){
193
+ <ax-validation-rule [rule]="'email'"></ax-validation-rule>
194
+ }
184
195
  </ax-select-box>
185
- } @if(multiple){
186
- <ax-button look="twotone" color="danger" (onClick)="deleteItem($index)" class="ax-col-start-12 ax-col-end-13 ax-justify-self-end">
196
+ } @if(multiple()){
197
+ <ax-button
198
+ [disabled]="disabled()"
199
+ look="twotone"
200
+ color="danger"
201
+ (onClick)="deleteItem($index)"
202
+ class="ax-col-start-12 ax-col-end-13 ax-justify-self-end"
203
+ >
187
204
  <ax-icon icon="fa-regular fa-xmark"></ax-icon>
188
205
  </ax-button>
189
- } } @if(multiple){
206
+ } } @if(multiple()){
190
207
 
191
208
  <ax-button
192
209
  [text]="internalValue().length == 0 ? 'Add New' : 'Add Another'"
210
+ [disabled]="disabled()"
193
211
  look="twotone"
194
212
  (onClick)="addItem()"
195
- class="ax-col-start-8 lg:ax-col-start-10 2xl:ax-col-start-10 ax-col-end-13"
213
+ class="sm:ax-col-start-8 lg:ax-col-start-7 xl:ax-col-start-11 sm:ax-col-end-13"
196
214
  >
197
215
  <ax-prefix>
198
216
  <ax-icon class="fa-solid fa-add"></ax-icon>
@@ -204,42 +222,54 @@ export class AXPContactWidgetEditComponent extends AXPWidgetBase {
204
222
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPContactWidgetEditComponent, decorators: [{
205
223
  type: Component,
206
224
  args: [{
207
- template: `<div class="ax-grid ax-grid-cols-12 ax-gap-4">
225
+ template: `<div class="lg:ax-grid lg:ax-grid-cols-12 lg:ax-gap-4">
208
226
  @for(item of internalValue();track $index) {
209
227
  <ax-text-box
210
228
  [ngModel]="item.value"
211
229
  (onValueChanged)="handleValueChange($event, $index)"
212
230
  type="text"
213
231
  name="value"
214
- placeholder="Enter {{ widgetType }} ..."
232
+ placeholder="Enter {{ type() }} ..."
215
233
  [ngClass]="generateClasses('value')"
234
+ [disabled]="disabled()"
216
235
  >
217
236
  @for (validation of validationRules; track $index) {
218
237
  <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
219
238
  }
220
239
  <ax-validation-rule message="field can't be empty" rule="required"> </ax-validation-rule>
221
240
  </ax-text-box>
222
- @if(hasLable){
241
+ @if(hasLabel()){
223
242
  <ax-select-box
224
243
  [dataSource]="dataSource"
225
- [ngModel]="item.lable"
244
+ [ngModel]="item.label"
245
+ [disabled]="disabled()"
226
246
  (onValueChanged)="handleValueChange($event, $index)"
227
- placeholder="Choose lable..."
228
- name="lable"
229
- [ngClass]="generateClasses('lable')"
247
+ placeholder="Choose label..."
248
+ name="label"
249
+ [ngClass]="generateClasses('label')"
230
250
  >
251
+ @if(type()==='email'){
252
+ <ax-validation-rule [rule]="'email'"></ax-validation-rule>
253
+ }
231
254
  </ax-select-box>
232
- } @if(multiple){
233
- <ax-button look="twotone" color="danger" (onClick)="deleteItem($index)" class="ax-col-start-12 ax-col-end-13 ax-justify-self-end">
255
+ } @if(multiple()){
256
+ <ax-button
257
+ [disabled]="disabled()"
258
+ look="twotone"
259
+ color="danger"
260
+ (onClick)="deleteItem($index)"
261
+ class="ax-col-start-12 ax-col-end-13 ax-justify-self-end"
262
+ >
234
263
  <ax-icon icon="fa-regular fa-xmark"></ax-icon>
235
264
  </ax-button>
236
- } } @if(multiple){
265
+ } } @if(multiple()){
237
266
 
238
267
  <ax-button
239
268
  [text]="internalValue().length == 0 ? 'Add New' : 'Add Another'"
269
+ [disabled]="disabled()"
240
270
  look="twotone"
241
271
  (onClick)="addItem()"
242
- class="ax-col-start-8 lg:ax-col-start-10 2xl:ax-col-start-10 ax-col-end-13"
272
+ class="sm:ax-col-start-8 lg:ax-col-start-7 xl:ax-col-start-11 sm:ax-col-end-13"
243
273
  >
244
274
  <ax-prefix>
245
275
  <ax-icon class="fa-solid fa-add"></ax-icon>
@@ -264,4 +294,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
264
294
  inputs: [],
265
295
  }]
266
296
  }] });
267
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC13aWRnZXQtZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dpZGdldHMvc3JjL2xpYi93aWRnZXRzL2VkaXRvcnMvY29udGFjdC13aWRnZXQvY29udGFjdC13aWRnZXQtZWRpdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQXVCLE1BQU0sMkJBQTJCLENBQUM7QUFDOUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBaUIsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7Ozs7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QUNULFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1VBMENGO29CQUNSLFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxpQkFBaUI7d0JBQ2pCLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLG1CQUFtQjtxQkFDcEI7b0JBQ0QsTUFBTSxFQUFFLEVBQUU7aUJBQ1giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEYXRhU291cmNlLCBBWFZhbHVlQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYRm9ybU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9mb3JtJztcbmltcG9ydCB7IEFYUG9wdXBDb25maWcsIEFYUG9wdXBTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcHVwJztcbmltcG9ydCB7IEFYU2VsZWN0Qm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlbGVjdC1ib3gnO1xuaW1wb3J0IHsgQVhUZXh0Qm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RleHQtYm94JztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhWYWxpZGF0aW9uTW9kdWxlLCBBWFZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHsgQVhQV2lkZ2V0QmFzZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFNpZ25hbCwgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi9wb3B1cC1jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQVmFsaWRhdGlvblJ1bGVzIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgPGRpdiBjbGFzcz1cImF4LWdyaWQgYXgtZ3JpZC1jb2xzLTEyIGF4LWdhcC00XCI+XG4gICAgQGZvcihpdGVtIG9mIGludGVybmFsVmFsdWUoKTt0cmFjayAkaW5kZXgpIHtcbiAgICA8YXgtdGV4dC1ib3hcbiAgICAgIFtuZ01vZGVsXT1cIml0ZW0udmFsdWVcIlxuICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cImhhbmRsZVZhbHVlQ2hhbmdlKCRldmVudCwgJGluZGV4KVwiXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBuYW1lPVwidmFsdWVcIlxuICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciB7eyB3aWRnZXRUeXBlIH19IC4uLlwiXG4gICAgICBbbmdDbGFzc109XCJnZW5lcmF0ZUNsYXNzZXMoJ3ZhbHVlJylcIlxuICAgID5cbiAgICAgIEBmb3IgKHZhbGlkYXRpb24gb2YgdmFsaWRhdGlvblJ1bGVzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDxheC12YWxpZGF0aW9uLXJ1bGUgW3J1bGVdPVwidmFsaWRhdGlvbi5ydWxlXCIgW21lc3NhZ2VdPVwidmFsaWRhdGlvbi5vcHRpb25zPy5tZXNzYWdlXCIgW29wdGlvbnNdPVwidmFsaWRhdGlvbi5vcHRpb25zXCI+PC9heC12YWxpZGF0aW9uLXJ1bGU+XG4gICAgICB9XG4gICAgICA8YXgtdmFsaWRhdGlvbi1ydWxlIG1lc3NhZ2U9XCJmaWVsZCBjYW4ndCBiZSBlbXB0eVwiIHJ1bGU9XCJyZXF1aXJlZFwiPiA8L2F4LXZhbGlkYXRpb24tcnVsZT5cbiAgICA8L2F4LXRleHQtYm94PlxuICAgIEBpZihoYXNMYWJsZSl7XG4gICAgPGF4LXNlbGVjdC1ib3hcbiAgICAgIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIlxuICAgICAgW25nTW9kZWxdPVwiaXRlbS5sYWJsZVwiXG4gICAgICAob25WYWx1ZUNoYW5nZWQpPVwiaGFuZGxlVmFsdWVDaGFuZ2UoJGV2ZW50LCAkaW5kZXgpXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwiQ2hvb3NlIGxhYmxlLi4uXCJcbiAgICAgIG5hbWU9XCJsYWJsZVwiXG4gICAgICBbbmdDbGFzc109XCJnZW5lcmF0ZUNsYXNzZXMoJ2xhYmxlJylcIlxuICAgID5cbiAgICA8L2F4LXNlbGVjdC1ib3g+XG4gICAgfSBAaWYobXVsdGlwbGUpe1xuICAgIDxheC1idXR0b24gbG9vaz1cInR3b3RvbmVcIiBjb2xvcj1cImRhbmdlclwiIChvbkNsaWNrKT1cImRlbGV0ZUl0ZW0oJGluZGV4KVwiIGNsYXNzPVwiYXgtY29sLXN0YXJ0LTEyIGF4LWNvbC1lbmQtMTMgYXgtanVzdGlmeS1zZWxmLWVuZFwiPlxuICAgICAgPGF4LWljb24gaWNvbj1cImZhLXJlZ3VsYXIgZmEteG1hcmtcIj48L2F4LWljb24+XG4gICAgPC9heC1idXR0b24+XG4gICAgfSB9IEBpZihtdWx0aXBsZSl7XG5cbiAgICA8YXgtYnV0dG9uXG4gICAgICBbdGV4dF09XCJpbnRlcm5hbFZhbHVlKCkubGVuZ3RoID09IDAgPyAnQWRkIE5ldycgOiAnQWRkIEFub3RoZXInXCJcbiAgICAgIGxvb2s9XCJ0d290b25lXCJcbiAgICAgIChvbkNsaWNrKT1cImFkZEl0ZW0oKVwiXG4gICAgICBjbGFzcz1cImF4LWNvbC1zdGFydC04IGxnOmF4LWNvbC1zdGFydC0xMCAyeGw6YXgtY29sLXN0YXJ0LTEwIGF4LWNvbC1lbmQtMTNcIlxuICAgID5cbiAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtYWRkXCI+PC9heC1pY29uPlxuICAgICAgPC9heC1wcmVmaXg+XG4gICAgPC9heC1idXR0b24+XG4gICAgfVxuICA8L2Rpdj4gYCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQVhTZWxlY3RCb3hNb2R1bGUsXG4gICAgQVhGb3JtTW9kdWxlLFxuICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIEFYU2VsZWN0Qm94TW9kdWxlLFxuICAgIEFYVGV4dEJveE1vZHVsZSxcbiAgICBBWFZhbGlkYXRpb25Nb2R1bGUsXG4gICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgXSxcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQQ29udGFjdFdpZGdldEVkaXRDb21wb25lbnQgZXh0ZW5kcyBBWFBXaWRnZXRCYXNlPGFueT4ge1xuICAvL3Byb3BlcnRpZXNcbiAgcHJvdGVjdGVkIHdpZGdldFR5cGUhOiAnbGluaycgfCAncGhvbmUnIHwgJ2VtYWlsJztcbiAgcHJvdGVjdGVkIGxhYmxlTGlzdCA9IHNpZ25hbChbJ3ByaW1hcnknLCAnc2Vjb25kYXJ5JywgJ0FkZCBOZXcnXSk7XG4gIHByb3RlY3RlZCBtdWx0aXBsZSE6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBoYXNMYWJsZSE6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBoYXNJY29uITogYm9vbGVhbjtcbiAgcHJpdmF0ZSBwb3B1cDogQVhQb3B1cFNlcnZpY2UgPSBpbmplY3QoQVhQb3B1cFNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgZGF0YVNvdXJjZSA9IG5ldyBBWERhdGFTb3VyY2Uoe1xuICAgIHBhZ2VTaXplOiB0aGlzLmxhYmxlTGlzdCgpLmxlbmd0aCxcbiAgICBsb2FkOiAoZSkgPT4ge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7XG4gICAgICAgIGl0ZW1zOiB0aGlzLmxhYmxlTGlzdCgpLnNsaWNlKGUuc2tpcCwgKGUuc2tpcCA/PyAwKSArIChlLnRha2UgPz8gMCkpLFxuICAgICAgICB0b3RhbDogdGhpcy5sYWJsZUxpc3QoKS5sZW5ndGgsXG4gICAgICB9KTtcbiAgICB9LFxuICAgIGJ5S2V5OiAoa2V5KSA9PiB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMubGFibGVMaXN0KCkuZmluZCgoaSkgPT4gaSA9PT0ga2V5KSk7XG4gICAgfSxcbiAgfSk7XG4gIHByb3RlY3RlZCBpbnRlcm5hbFZhbHVlOiBTaWduYWw8QVhQQ29udGFjdERhdGFUeXBlW10+ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy52YWx1ZVRvQXJyYXkoKSk7XG4gIHByb3RlY3RlZCBhZGRJdGVtKCkge1xuICAgIGNvbnN0IG5ld1ZhbHVlczogQVhQQ29udGFjdERhdGFUeXBlW10gPSBbLi4udGhpcy5pbnRlcm5hbFZhbHVlKCksIHRoaXMuZW1wdHlWYWx1ZSgpXTtcbiAgICB0aGlzLnNldFZhbHVlKG5ld1ZhbHVlcyk7XG4gIH1cbiAgcHJvdGVjdGVkIGRlbGV0ZUl0ZW0oZGVsZXRlZEluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBuZXdWYWx1ZXMgPSB0aGlzLmludGVybmFsVmFsdWUoKS5maWx0ZXIoKF8sIGluZGV4KSA9PiBpbmRleCAhPSBkZWxldGVkSW5kZXgpO1xuICAgIHRoaXMuc2V0VmFsdWUobmV3VmFsdWVzKTtcbiAgfVxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlVmFsdWVDaGFuZ2UoZTogQVhWYWx1ZUNoYW5nZWRFdmVudCwgc2VsZWN0ZWRJbmRleDogbnVtYmVyKSB7XG4gICAgbGV0IHsgbmFtZSwgdmFsdWUsIGlzVXNlckludGVyYWN0aW9uIH0gPSBlO1xuICAgIGlmIChpc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgaWYgKGUubmFtZSA9PT0gJ2xhYmxlJykge1xuICAgICAgICBpZiAoZS52YWx1ZSA9PT0gJ0FkZCBOZXcnKSB7XG4gICAgICAgICAgY29uc3Qgb3B0aW9uczogQVhQb3B1cENvbmZpZyA9IHtcbiAgICAgICAgICAgIHRpdGxlOiAnRW50ZXIgTGFibGUuLi4nLFxuICAgICAgICAgICAgLy8gaGVhZGVyOiBmYWxzZSxcbiAgICAgICAgICAgIC8vIGZvb3RlcjogdHJ1ZSxcbiAgICAgICAgICAgIHNpemU6ICdzbScsXG4gICAgICAgICAgICBkcmFnZ2FibGU6IHRydWUsXG4gICAgICAgICAgICAvLyBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgICAgIC8vIGNsb3NlQnV0dG9uOiB0cnVlLFxuICAgICAgICAgICAgLy8gY2xvc2VPbkJhY2tkcm9wQ2xpY2s6IHRydWUsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IGF3YWl0IHRoaXMucG9wdXAub3Blbihwb3B1cENvbXBvbmVudCwgeyAuLi5vcHRpb25zIH0pLnRoZW4oKGUpID0+IGUuZGF0YSk7XG4gICAgICAgICAgdmFsdWUgPSBuZXdWYWx1ZS52YWx1ZTtcbiAgICAgICAgICB0aGlzLmxhYmxlTGlzdCgpLnBvcCgpO1xuICAgICAgICAgIHRoaXMubGFibGVMaXN0KCkucHVzaCh2YWx1ZSwgJ0FkZCBOZXcnKTtcbiAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UucmVmcmVzaCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IG5ld1ZhbHVlcyA9IHRoaXMuaW50ZXJuYWxWYWx1ZSgpLm1hcCgoaXRlbSwgaW5kZXgpID0+IChzZWxlY3RlZEluZGV4ID09PSBpbmRleCA/IHsgLi4uaXRlbSwgW25hbWUgYXMgc3RyaW5nXTogdmFsdWUgfSA6IGl0ZW0pKTtcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkgdGhpcy5zZXRWYWx1ZShuZXdWYWx1ZXMpO1xuICAgIGVsc2UgdGhpcy5zZXRWYWx1ZShuZXdWYWx1ZXNbMF0pO1xuICB9XG4gIHByb3RlY3RlZCBnZW5lcmF0ZUNsYXNzZXMoZWxlbWVudDogJ3ZhbHVlJyB8ICdsYWJsZScpOiBzdHJpbmcgfCBhbnkge1xuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICBpZiAodGhpcy5oYXNMYWJsZSkge1xuICAgICAgICBpZiAoZWxlbWVudCA9PT0gJ3ZhbHVlJykge1xuICAgICAgICAgIHJldHVybiAnYXgtY29sLXN0YXJ0LTEgYXgtY29sLWVuZC0xMyBsZzpheC1jb2wtZW5kLTcnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiAnYXgtY29sLXN0YXJ0LTEgYXgtY29sLWVuZC0xMSBsZzpheC1jb2wtc3RhcnQtNyBsZzpheC1jb2wtZW5kLTEyJztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGVsZW1lbnQgPT09ICd2YWx1ZScpIHtcbiAgICAgICAgICByZXR1cm4gJ2F4LWNvbC1zdGFydC0xIGF4LWNvbC1lbmQtMTInO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmhhc0xhYmxlKSB7XG4gICAgICAgIGlmIChlbGVtZW50ID09PSAndmFsdWUnKSB7XG4gICAgICAgICAgcmV0dXJuICdheC1jb2wtc3RhcnQtMSBheC1jb2wtZW5kLTEzIGxnOmF4LWNvbC1lbmQtNyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuICdheC1jb2wtc3RhcnQtMSBheC1jb2wtZW5kLTEzIGxnOmF4LWNvbC1zdGFydC03IGxnOmF4LWNvbC1lbmQtMTMnO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZWxlbWVudCA9PT0gJ3ZhbHVlJykge1xuICAgICAgICAgIHJldHVybiAnYXgtY29sLXN0YXJ0LTEgYXgtY29sLWVuZC0xMyc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIHZhbGlkYXRpb25TZXJ2aWNlID0gaW5qZWN0KEFYVmFsaWRhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIF92YWxpZGF0aW9uUnVsZXM6IEFYUFZhbGlkYXRpb25SdWxlcyA9IFtdO1xuICBwdWJsaWMgZ2V0IHZhbGlkYXRpb25SdWxlcygpOiBBWFBWYWxpZGF0aW9uUnVsZXMge1xuICAgIHJldHVybiB0aGlzLl92YWxpZGF0aW9uUnVsZXM7XG4gIH1cbiAgcHVibGljIHNldCB2YWxpZGF0aW9uUnVsZXModjogQVhQVmFsaWRhdGlvblJ1bGVzKSB7XG4gICAgdGhpcy5fdmFsaWRhdGlvblJ1bGVzID0gdjtcbiAgfVxuICBwcml2YXRlIHZhbHVlVG9BcnJheSgpOiBBWFBDb250YWN0RGF0YVR5cGVbXSB7XG4gICAgY29uc3QgdmFsdWU6IEFYUENvbnRhY3REYXRhVHlwZSB8IHN0cmluZyA9IHRoaXMuZ2V0VmFsdWUoKTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5tYXAoKGl0ZW0pID0+IHRoaXMuaXRlbVRvQXJyYXkoaXRlbSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW3RoaXMuaXRlbVRvQXJyYXkodmFsdWUpXTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBpdGVtVG9BcnJheSA9IChpdGVtOiBBWFBDb250YWN0RGF0YVR5cGUgfCBzdHJpbmcpOiBBWFBDb250YWN0RGF0YVR5cGUgPT4ge1xuICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcpXG4gICAgICByZXR1cm4ge1xuICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSA/PyAnJyxcbiAgICAgICAgbGFibGU6IHRoaXMuaGFzTGFibGUgPyBpdGVtLmxhYmxlIHx8IHRoaXMubGFibGVMaXN0KClbMF0gOiB1bmRlZmluZWQsXG4gICAgICAgIGljb246IHRoaXMuaGFzSWNvbiA/IGl0ZW0uaWNvbiB8fCB0aGlzLmNob29zZUljb24oKSA6IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgZWxzZVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdmFsdWU6IGl0ZW0sXG4gICAgICAgIGxhYmxlOiB0aGlzLmhhc0xhYmxlID8gdGhpcy5sYWJsZUxpc3QoKVswXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgaWNvbjogdGhpcy5oYXNJY29uID8gdGhpcy5jaG9vc2VJY29uKCkgOiB1bmRlZmluZWQsXG4gICAgICB9O1xuICB9O1xuICBwcml2YXRlIGVtcHR5VmFsdWUoKTogQVhQQ29udGFjdERhdGFUeXBlIHtcbiAgICByZXR1cm4ge1xuICAgICAgdmFsdWU6ICcnLFxuICAgIH07XG4gIH1cbiAgcHJpdmF0ZSBjaG9vc2VJY29uID0gKCk6IHN0cmluZyA9PiB7XG4gICAgc3dpdGNoICh0aGlzLndpZGdldFR5cGUpIHtcbiAgICAgIGNhc2UgJ2VtYWlsJzpcbiAgICAgICAgcmV0dXJuICdmYS1saW5rJztcbiAgICAgIGNhc2UgJ2xpbmsnOlxuICAgICAgICByZXR1cm4gJ2ZhLWVudmVsb3BlJztcbiAgICAgIGNhc2UgJ3Bob25lJzpcbiAgICAgICAgcmV0dXJuICdmYS1waG9uZSc7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ2ZhLWluZm8nO1xuICAgIH1cbiAgfTtcbn1cbmludGVyZmFjZSBBWFBDb250YWN0RGF0YVR5cGUge1xuICB2YWx1ZTogc3RyaW5nO1xuICBsYWJsZT86IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbn1cbiJdfQ==
297
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC13aWRnZXQtZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dpZGdldHMvc3JjL2xpYi93aWRnZXRzL2VkaXRvcnMvY29udGFjdC13aWRnZXQvY29udGFjdC13aWRnZXQtZWRpdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQXVCLE1BQU0sMkJBQTJCLENBQUM7QUFDOUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBaUIsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWxGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7O0FBMEVuRCxN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ICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRGF0YVNvdXJjZSwgQVhWYWx1ZUNoYW5nZWRFdmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWEZvcm1Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZm9ybSc7XG5pbXBvcnQgeyBBWFBvcHVwQ29uZmlnLCBBWFBvcHVwU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3B1cCc7XG5pbXBvcnQgeyBBWFNlbGVjdEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWxlY3QtYm94JztcbmltcG9ydCB7IEFYVGV4dEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90ZXh0LWJveCc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYVmFsaWRhdGlvbk1vZHVsZSwgQVhWYWxpZGF0aW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS92YWxpZGF0aW9uJztcbmltcG9ydCB7IEFYUFZhbGlkYXRpb25SdWxlcyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBTaWduYWwsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQVhQQ29udGFjdERhdGFUeXBlIH0gZnJvbSAnLi9jb250YWN0LnR5cGUnO1xuaW1wb3J0IHsgcG9wdXBDb21wb25lbnQgfSBmcm9tICcuL3BvcHVwLWNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogYDxkaXYgY2xhc3M9XCJsZzpheC1ncmlkIGxnOmF4LWdyaWQtY29scy0xMiBsZzpheC1nYXAtNFwiPlxuICAgIEBmb3IoaXRlbSBvZiBpbnRlcm5hbFZhbHVlKCk7dHJhY2sgJGluZGV4KSB7XG4gICAgPGF4LXRleHQtYm94XG4gICAgICBbbmdNb2RlbF09XCJpdGVtLnZhbHVlXCJcbiAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJoYW5kbGVWYWx1ZUNoYW5nZSgkZXZlbnQsICRpbmRleClcIlxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgbmFtZT1cInZhbHVlXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwiRW50ZXIge3sgdHlwZSgpIH19IC4uLlwiXG4gICAgICBbbmdDbGFzc109XCJnZW5lcmF0ZUNsYXNzZXMoJ3ZhbHVlJylcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgID5cbiAgICAgIEBmb3IgKHZhbGlkYXRpb24gb2YgdmFsaWRhdGlvblJ1bGVzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDxheC12YWxpZGF0aW9uLXJ1bGUgW3J1bGVdPVwidmFsaWRhdGlvbi5ydWxlXCIgW21lc3NhZ2VdPVwidmFsaWRhdGlvbi5vcHRpb25zPy5tZXNzYWdlXCIgW29wdGlvbnNdPVwidmFsaWRhdGlvbi5vcHRpb25zXCI+PC9heC12YWxpZGF0aW9uLXJ1bGU+XG4gICAgICB9XG4gICAgICA8YXgtdmFsaWRhdGlvbi1ydWxlIG1lc3NhZ2U9XCJmaWVsZCBjYW4ndCBiZSBlbXB0eVwiIHJ1bGU9XCJyZXF1aXJlZFwiPiA8L2F4LXZhbGlkYXRpb24tcnVsZT5cbiAgICA8L2F4LXRleHQtYm94PlxuICAgIEBpZihoYXNMYWJlbCgpKXtcbiAgICA8YXgtc2VsZWN0LWJveFxuICAgICAgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiXG4gICAgICBbbmdNb2RlbF09XCJpdGVtLmxhYmVsXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJoYW5kbGVWYWx1ZUNoYW5nZSgkZXZlbnQsICRpbmRleClcIlxuICAgICAgcGxhY2Vob2xkZXI9XCJDaG9vc2UgbGFiZWwuLi5cIlxuICAgICAgbmFtZT1cImxhYmVsXCJcbiAgICAgIFtuZ0NsYXNzXT1cImdlbmVyYXRlQ2xhc3NlcygnbGFiZWwnKVwiXG4gICAgPlxuICAgICAgQGlmKHR5cGUoKT09PSdlbWFpbCcpe1xuICAgICAgPGF4LXZhbGlkYXRpb24tcnVsZSBbcnVsZV09XCInZW1haWwnXCI+PC9heC12YWxpZGF0aW9uLXJ1bGU+XG4gICAgICB9XG4gICAgPC9heC1zZWxlY3QtYm94PlxuICAgIH0gQGlmKG11bHRpcGxlKCkpe1xuICAgIDxheC1idXR0b25cbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICAgIGxvb2s9XCJ0d290b25lXCJcbiAgICAgIGNvbG9yPVwiZGFuZ2VyXCJcbiAgICAgIChvbkNsaWNrKT1cImRlbGV0ZUl0ZW0oJGluZGV4KVwiXG4gICAgICBjbGFzcz1cImF4LWNvbC1zdGFydC0xMiBheC1jb2wtZW5kLTEzIGF4LWp1c3RpZnktc2VsZi1lbmRcIlxuICAgID5cbiAgICAgIDxheC1pY29uIGljb249XCJmYS1yZWd1bGFyIGZhLXhtYXJrXCI+PC9heC1pY29uPlxuICAgIDwvYXgtYnV0dG9uPlxuICAgIH0gfSBAaWYobXVsdGlwbGUoKSl7XG5cbiAgICA8YXgtYnV0dG9uXG4gICAgICBbdGV4dF09XCJpbnRlcm5hbFZhbHVlKCkubGVuZ3RoID09IDAgPyAnQWRkIE5ldycgOiAnQWRkIEFub3RoZXInXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICAgIGxvb2s9XCJ0d290b25lXCJcbiAgICAgIChvbkNsaWNrKT1cImFkZEl0ZW0oKVwiXG4gICAgICBjbGFzcz1cInNtOmF4LWNvbC1zdGFydC04IGxnOmF4LWNvbC1zdGFydC03IHhsOmF4LWNvbC1zdGFydC0xMSAgIHNtOmF4LWNvbC1lbmQtMTNcIlxuICAgID5cbiAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtYWRkXCI+PC9heC1pY29uPlxuICAgICAgPC9heC1wcmVmaXg+XG4gICAgPC9heC1idXR0b24+XG4gICAgfVxuICA8L2Rpdj4gYCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQVhTZWxlY3RCb3hNb2R1bGUsXG4gICAgQVhGb3JtTW9kdWxlLFxuICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIEFYU2VsZWN0Qm94TW9kdWxlLFxuICAgIEFYVGV4dEJveE1vZHVsZSxcbiAgICBBWFZhbGlkYXRpb25Nb2R1bGUsXG4gICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgXSxcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQQ29udGFjdFdpZGdldEVkaXRDb21wb25lbnQgZXh0ZW5kcyBBWFBXaWRnZXRDb21wb25lbnQ8YW55PiB7XG4gIC8vcHJvcGVydGllc1xuICBwcm90ZWN0ZWQgdHlwZSA9IGNvbXB1dGVkPCdsaW5rJyB8ICdwaG9uZScgfCAnZW1haWwnPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsndHlwZSddIGFzICdsaW5rJyB8ICdwaG9uZScgfCAnZW1haWwnKTtcbiAgcHJvdGVjdGVkIGxhYmVsTGlzdCA9IGNvbXB1dGVkPHN0cmluZ1tdPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnbGFiZWxMaXN0J10gfHwgWydwcmltYXJ5JywgJ3NlY29uZGFyeScsICduZXcnXSk7XG4gIHByb3RlY3RlZCBoYXNMYWJlbCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHRoaXMub3B0aW9ucygpWydoYXNMYWJlbCddIGFzIGJvb2xlYW4pO1xuICBwcm90ZWN0ZWQgbXVsdGlwbGUgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnbXVsdGlwbGUnXSBhcyBib29sZWFuKTtcbiAgcHJvdGVjdGVkIGhhc0ljb24gPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnaGFzSWNvbiddIGFzIGJvb2xlYW4pO1xuICBwcm90ZWN0ZWQgZGlzYWJsZWQgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnZGlzYWJsZWQnXSBhcyBib29sZWFuKTtcblxuICBwcml2YXRlIHBvcHVwOiBBWFBvcHVwU2VydmljZSA9IGluamVjdChBWFBvcHVwU2VydmljZSk7XG4gIHByb3RlY3RlZCBkYXRhU291cmNlID0gbmV3IEFYRGF0YVNvdXJjZSh7XG4gICAgcGFnZVNpemU6IHRoaXMubGFiZWxMaXN0KCkubGVuZ3RoLFxuICAgIGxvYWQ6IChlKSA9PiB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgaXRlbXM6IHRoaXMubGFiZWxMaXN0KCkuc2xpY2UoZS5za2lwLCAoZS5za2lwID8/IDApICsgKGUudGFrZSA/PyAwKSksXG4gICAgICAgIHRvdGFsOiB0aGlzLmxhYmVsTGlzdCgpLmxlbmd0aCxcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgYnlLZXk6IChrZXkpID0+IHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5sYWJlbExpc3QoKS5maW5kKChpKSA9PiBpID09PSBrZXkpKTtcbiAgICB9LFxuICB9KTtcbiAgcHJvdGVjdGVkIGludGVybmFsVmFsdWU6IFNpZ25hbDxBWFBDb250YWN0RGF0YVR5cGVbXT4gPSBjb21wdXRlZCgoKSA9PiB0aGlzLnZhbHVlVG9BcnJheSgpKTtcbiAgcHJvdGVjdGVkIGFkZEl0ZW0oKSB7XG4gICAgY29uc3QgbmV3VmFsdWVzOiBBWFBDb250YWN0RGF0YVR5cGVbXSA9IFsuLi50aGlzLmludGVybmFsVmFsdWUoKSwgdGhpcy5lbXB0eVZhbHVlKCldO1xuICAgIHRoaXMuc2V0VmFsdWUobmV3VmFsdWVzKTtcbiAgfVxuICBwcm90ZWN0ZWQgZGVsZXRlSXRlbShkZWxldGVkSW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IG5ld1ZhbHVlcyA9IHRoaXMuaW50ZXJuYWxWYWx1ZSgpLmZpbHRlcigoXywgaW5kZXgpID0+IGluZGV4ICE9IGRlbGV0ZWRJbmRleCk7XG4gICAgdGhpcy5zZXRWYWx1ZShuZXdWYWx1ZXMpO1xuICB9XG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVWYWx1ZUNoYW5nZShlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50LCBzZWxlY3RlZEluZGV4OiBudW1iZXIpIHtcbiAgICBsZXQgeyBuYW1lLCB2YWx1ZSwgaXNVc2VySW50ZXJhY3Rpb24gfSA9IGU7XG4gICAgaWYgKGlzVXNlckludGVyYWN0aW9uKSB7XG4gICAgICBpZiAoZS5uYW1lID09PSAnbGFiZWwnKSB7XG4gICAgICAgIGlmIChlLnZhbHVlID09PSAnQWRkIE5ldycpIHtcbiAgICAgICAgICBjb25zdCBvcHRpb25zOiBBWFBvcHVwQ29uZmlnID0ge1xuICAgICAgICAgICAgdGl0bGU6ICdFbnRlciBMYWJlbC4uLicsXG4gICAgICAgICAgICAvLyBoZWFkZXI6IGZhbHNlLFxuICAgICAgICAgICAgLy8gZm9vdGVyOiB0cnVlLFxuICAgICAgICAgICAgc2l6ZTogJ3NtJyxcbiAgICAgICAgICAgIGRyYWdnYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIC8vIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICAgICAgLy8gY2xvc2VCdXR0b246IHRydWUsXG4gICAgICAgICAgICAvLyBjbG9zZU9uQmFja2Ryb3BDbGljazogdHJ1ZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gYXdhaXQgdGhpcy5wb3B1cC5vcGVuKHBvcHVwQ29tcG9uZW50LCB7IC4uLm9wdGlvbnMgfSkudGhlbigoZSkgPT4gZS5kYXRhKTtcbiAgICAgICAgICB2YWx1ZSA9IG5ld1ZhbHVlLnZhbHVlO1xuICAgICAgICAgIHRoaXMubGFiZWxMaXN0KCkucG9wKCk7XG4gICAgICAgICAgdGhpcy5sYWJlbExpc3QoKS5wdXNoKHZhbHVlLCAnQWRkIE5ldycpO1xuICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZS5yZWZyZXNoKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgbmV3VmFsdWVzID0gdGhpcy5pbnRlcm5hbFZhbHVlKCkubWFwKChpdGVtLCBpbmRleCkgPT4gKHNlbGVjdGVkSW5kZXggPT09IGluZGV4ID8geyAuLi5pdGVtLCBbbmFtZSBhcyBzdHJpbmddOiB2YWx1ZSB9IDogaXRlbSkpO1xuICAgIGlmICh0aGlzLm11bHRpcGxlKCkpIHRoaXMuc2V0VmFsdWUobmV3VmFsdWVzKTtcbiAgICBlbHNlIHRoaXMuc2V0VmFsdWUobmV3VmFsdWVzWzBdKTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2VuZXJhdGVDbGFzc2VzKGVsZW1lbnQ6ICd2YWx1ZScgfCAnbGFiZWwnKTogc3RyaW5nIHwgYW55IHtcbiAgICBpZiAodGhpcy5tdWx0aXBsZSgpKSB7XG4gICAgICBpZiAodGhpcy5oYXNMYWJlbCgpKSB7XG4gICAgICAgIGlmIChlbGVtZW50ID09PSAndmFsdWUnKSB7XG4gICAgICAgICAgcmV0dXJuICdheC1jb2wtc3RhcnQtMSBheC1jb2wtZW5kLTEzIGxnOmF4LWNvbC1lbmQtNyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuICdheC1jb2wtc3RhcnQtMSBheC1jb2wtZW5kLTEyIGxnOmF4LWNvbC1zdGFydC03IGxnOmF4LWNvbC1lbmQtMTInO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZWxlbWVudCA9PT0gJ3ZhbHVlJykge1xuICAgICAgICAgIHJldHVybiAnYXgtY29sLXN0YXJ0LTEgYXgtY29sLWVuZC0xMic7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuaGFzTGFiZWwoKSkge1xuICAgICAgICBpZiAoZWxlbWVudCA9PT0gJ3ZhbHVlJykge1xuICAgICAgICAgIHJldHVybiAnYXgtY29sLXN0YXJ0LTEgYXgtY29sLWVuZC0xMyBsZzpheC1jb2wtZW5kLTcnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiAnYXgtY29sLXN0YXJ0LTEgYXgtY29sLWVuZC0xMyBsZzpheC1jb2wtc3RhcnQtNyBsZzpheC1jb2wtZW5kLTEzJztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGVsZW1lbnQgPT09ICd2YWx1ZScpIHtcbiAgICAgICAgICByZXR1cm4gJ2F4LWNvbC1zdGFydC0xIGF4LWNvbC1lbmQtMTMnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCB2YWxpZGF0aW9uU2VydmljZSA9IGluamVjdChBWFZhbGlkYXRpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfdmFsaWRhdGlvblJ1bGVzOiBBWFBWYWxpZGF0aW9uUnVsZXMgPSBbXTtcbiAgcHVibGljIGdldCB2YWxpZGF0aW9uUnVsZXMoKTogQVhQVmFsaWRhdGlvblJ1bGVzIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsaWRhdGlvblJ1bGVzO1xuICB9XG4gIHB1YmxpYyBzZXQgdmFsaWRhdGlvblJ1bGVzKHY6IEFYUFZhbGlkYXRpb25SdWxlcykge1xuICAgIHRoaXMuX3ZhbGlkYXRpb25SdWxlcyA9IHY7XG4gIH1cbiAgcHJpdmF0ZSB2YWx1ZVRvQXJyYXkoKTogQVhQQ29udGFjdERhdGFUeXBlW10ge1xuICAgIGNvbnN0IHZhbHVlOiBBWFBDb250YWN0RGF0YVR5cGUgfCBzdHJpbmcgPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gdmFsdWUubWFwKChpdGVtKSA9PiB0aGlzLml0ZW1Ub0FycmF5KGl0ZW0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFt0aGlzLml0ZW1Ub0FycmF5KHZhbHVlKV07XG4gICAgfVxuICB9XG4gIHByaXZhdGUgaXRlbVRvQXJyYXkgPSAoaXRlbTogQVhQQ29udGFjdERhdGFUeXBlIHwgc3RyaW5nKTogQVhQQ29udGFjdERhdGFUeXBlID0+IHtcbiAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnKVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdmFsdWU6IGl0ZW0/LnZhbHVlID8/ICcnLFxuICAgICAgICBsYWJlbDogdGhpcy5oYXNMYWJlbCgpID8gaXRlbT8ubGFiZWwgfHwgdGhpcy5sYWJlbExpc3QoKVswXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgaWNvbjogdGhpcy5oYXNJY29uKCkgPyBpdGVtPy5pY29uIHx8IHRoaXMuY2hvb3NlSWNvbigpIDogdW5kZWZpbmVkLFxuICAgICAgfTtcbiAgICBlbHNlXG4gICAgICByZXR1cm4ge1xuICAgICAgICB2YWx1ZTogaXRlbSxcbiAgICAgICAgbGFiZWw6IHRoaXMuaGFzTGFiZWwoKSA/IHRoaXMubGFiZWxMaXN0KClbMF0gOiB1bmRlZmluZWQsXG4gICAgICAgIGljb246IHRoaXMuaGFzSWNvbigpID8gdGhpcy5jaG9vc2VJY29uKCkgOiB1bmRlZmluZWQsXG4gICAgICB9O1xuICB9O1xuICBwcml2YXRlIGVtcHR5VmFsdWUoKTogQVhQQ29udGFjdERhdGFUeXBlIHtcbiAgICByZXR1cm4ge1xuICAgICAgdmFsdWU6ICcnLFxuICAgIH07XG4gIH1cbiAgcHJpdmF0ZSBjaG9vc2VJY29uID0gKCk6IHN0cmluZyA9PiB7XG4gICAgc3dpdGNoICh0aGlzLnR5cGUoKSkge1xuICAgICAgY2FzZSAnZW1haWwnOlxuICAgICAgICByZXR1cm4gJ2ZhLWxpbmsnO1xuICAgICAgY2FzZSAnbGluayc6XG4gICAgICAgIHJldHVybiAnZmEtZW52ZWxvcGUnO1xuICAgICAgY2FzZSAncGhvbmUnOlxuICAgICAgICByZXR1cm4gJ2ZhLXBob25lJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnZmEtaW5mbyc7XG4gICAgfVxuICB9O1xufVxuIl19
@@ -1,9 +1,9 @@
1
- import { AXPWidgetBase } from '@acorex/platform/layout/builder';
1
+ import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { ChangeDetectionStrategy, Component } from '@angular/core';
4
4
  import { FormsModule } from '@angular/forms';
5
5
  import * as i0 from "@angular/core";
6
- export class AXPContactWidgetFilterComponent extends AXPWidgetBase {
6
+ export class AXPContactWidgetFilterComponent extends AXPWidgetComponent {
7
7
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPContactWidgetFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
8
8
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPContactWidgetFilterComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: ``, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9
9
  }
@@ -17,4 +17,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
17
17
  inputs: []
18
18
  }]
19
19
  }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC13aWRnZXQtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vd2lkZ2V0cy9zcmMvbGliL3dpZGdldHMvZWRpdG9ycy9jb250YWN0LXdpZGdldC9jb250YWN0LXdpZGdldC1maWx0ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBUzdDLE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxhQUFrQjs4R0FBMUQsK0JBQStCO2tHQUEvQiwrQkFBK0IsK0ZBTmhDLEVBQUUsMkRBR0YsWUFBWSw4QkFBRSxXQUFXOzsyRkFHeEIsK0JBQStCO2tCQVAzQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxFQUFFO29CQUNaLFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQztvQkFDcEMsTUFBTSxFQUFFLEVBQUU7aUJBQ1giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBXaWRnZXRCYXNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgYCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlXSxcbiAgaW5wdXRzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBBWFBDb250YWN0V2lkZ2V0RmlsdGVyQ29tcG9uZW50IGV4dGVuZHMgQVhQV2lkZ2V0QmFzZTxhbnk+IHt9Il19
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC13aWRnZXQtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vd2lkZ2V0cy9zcmMvbGliL3dpZGdldHMvZWRpdG9ycy9jb250YWN0LXdpZGdldC9jb250YWN0LXdpZGdldC1maWx0ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFTN0MsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLGtCQUF1Qjs4R0FBL0QsK0JBQStCO2tHQUEvQiwrQkFBK0IsK0ZBTmhDLEVBQUUsMkRBR0YsWUFBWSw4QkFBRSxXQUFXOzsyRkFHeEIsK0JBQStCO2tCQVAzQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxFQUFFO29CQUNaLFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQztvQkFDcEMsTUFBTSxFQUFFLEVBQUU7aUJBQ1giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBXaWRnZXRDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGBgLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGVdLFxuICBpbnB1dHM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIEFYUENvbnRhY3RXaWRnZXRGaWx0ZXJDb21wb25lbnQgZXh0ZW5kcyBBWFBXaWRnZXRDb21wb25lbnQ8YW55PiB7IH0iXX0=
@@ -1,8 +1,8 @@
1
- import { AXPWidgetBase } from '@acorex/platform/layout/builder';
1
+ import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { ChangeDetectionStrategy, Component } from '@angular/core';
4
4
  import * as i0 from "@angular/core";
5
- export class AXPContactWidgetPrintComponent extends AXPWidgetBase {
5
+ export class AXPContactWidgetPrintComponent extends AXPWidgetComponent {
6
6
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPContactWidgetPrintComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
7
7
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPContactWidgetPrintComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: ``, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8
8
  }
@@ -16,4 +16,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
16
16
  inputs: []
17
17
  }]
18
18
  }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC13aWRnZXQtcHJpbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aWRnZXRzL3NyYy9saWIvd2lkZ2V0cy9lZGl0b3JzL2NvbnRhY3Qtd2lkZ2V0L2NvbnRhY3Qtd2lkZ2V0LXByaW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBUTNFLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxhQUFrQjs4R0FBekQsOEJBQThCO2tHQUE5Qiw4QkFBOEIsK0ZBTi9CLEVBQUUsMkRBR0YsWUFBWTs7MkZBR1gsOEJBQThCO2tCQVAxQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxFQUFFO29CQUNaLFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixNQUFNLEVBQUUsRUFBRTtpQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFdpZGdldEJhc2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogYGAsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgaW5wdXRzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBBWFBDb250YWN0V2lkZ2V0UHJpbnRDb21wb25lbnQgZXh0ZW5kcyBBWFBXaWRnZXRCYXNlPGFueT4ge30iXX0=
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC13aWRnZXQtcHJpbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aWRnZXRzL3NyYy9saWIvd2lkZ2V0cy9lZGl0b3JzL2NvbnRhY3Qtd2lkZ2V0L2NvbnRhY3Qtd2lkZ2V0LXByaW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFRM0UsTUFBTSxPQUFPLDhCQUErQixTQUFRLGtCQUF1Qjs4R0FBOUQsOEJBQThCO2tHQUE5Qiw4QkFBOEIsK0ZBTi9CLEVBQUUsMkRBR0YsWUFBWTs7MkZBR1gsOEJBQThCO2tCQVAxQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxFQUFFO29CQUNaLFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixNQUFNLEVBQUUsRUFBRTtpQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgYCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBpbnB1dHM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIEFYUENvbnRhY3RXaWRnZXRQcmludENvbXBvbmVudCBleHRlbmRzIEFYUFdpZGdldENvbXBvbmVudDxhbnk+IHsgfSJdfQ==
@@ -1,20 +1,122 @@
1
- import { AXPWidgetBase } from '@acorex/platform/layout/builder';
1
+ import { AXBadgeModule } from '@acorex/components/badge';
2
+ import { AXDecoratorModule } from '@acorex/components/decorators';
3
+ import { AXPClipBoardService } from '@acorex/platform/common';
4
+ import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
2
5
  import { CommonModule } from '@angular/common';
3
- import { ChangeDetectionStrategy, Component } from '@angular/core';
6
+ import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';
4
7
  import { FormsModule } from '@angular/forms';
5
8
  import * as i0 from "@angular/core";
6
- export class AXPContactWidgetViewComponent extends AXPWidgetBase {
9
+ import * as i1 from "@acorex/components/badge";
10
+ import * as i2 from "@acorex/components/decorators";
11
+ export class AXPContactWidgetViewComponent extends AXPWidgetComponent {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.type = computed(() => this.options()['type']);
15
+ this.labelList = computed(() => this.options()['labelList'] || ['primary', 'secondary', 'Add New']);
16
+ this.hasLabel = computed(() => this.options()['hasLabel']);
17
+ this.multiple = computed(() => this.options()['multiple']);
18
+ this.hasIcon = computed(() => this.options()['hasIcon']);
19
+ this.internalValue = computed(() => this.valueToArray());
20
+ this.clipboard = inject(AXPClipBoardService);
21
+ this.chooseIcon = () => {
22
+ switch (this.type()) {
23
+ case 'email':
24
+ return 'fa-envelope';
25
+ case 'link':
26
+ return 'fa-link';
27
+ case 'phone':
28
+ return 'fa-phone';
29
+ default:
30
+ return 'fa-info';
31
+ }
32
+ };
33
+ this.itemToArray = (item) => {
34
+ if (typeof item === 'object')
35
+ return {
36
+ value: item?.value ?? '',
37
+ label: this.hasLabel() ? item?.label || this.labelList()[0] : undefined,
38
+ icon: this.hasIcon() ? item?.icon || this.chooseIcon() : undefined,
39
+ };
40
+ else
41
+ return {
42
+ value: item,
43
+ label: this.hasLabel() ? this.labelList()[0] : undefined,
44
+ icon: this.hasIcon() ? this.chooseIcon() : undefined,
45
+ };
46
+ };
47
+ }
48
+ valueToArray() {
49
+ const value = this.getValue();
50
+ if (Array.isArray(value)) {
51
+ return value.map((item) => this.itemToArray(item));
52
+ }
53
+ else {
54
+ return [this.itemToArray(value)];
55
+ }
56
+ }
7
57
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPContactWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
8
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPContactWidgetViewComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: ``, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
58
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPContactWidgetViewComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `<div class="ax-grid ax-grid-cols-12 ax-gap-1 ax-justify-center ax-items-center ax-group">
59
+ @for(item of internalValue();track $index){ @if(item){ @if(hasIcon()){
60
+ <ax-icon class="ax-col-start-1 ax-col-end-2 fa-solid ax-text-neutral-400" [class]="chooseIcon()"> </ax-icon>
61
+ } @let href = type() === 'link' ? item.value : type()==='phone'? 'tel:'+item.value : 'mailto:'+ item.value ;
62
+ <div class="ax-col-start-2 ax-col-end-9">
63
+ <a
64
+ [href]="href"
65
+ [target]="'_blank'"
66
+ class="ax-text-blue-700 group-hover:!ax-text-primary-500 group-hover:ax-underline group-hover:ax-decoration-blue-700"
67
+ >{{ item.value }}</a
68
+ >
69
+ <span
70
+ class="ax-text-neutral-400 ax-cursor-pointer ax-invisible group-hover:ax-visible hover:!ax-text-primary-500"
71
+ (click)="clipboard.copy('Email', item.value)"
72
+ >
73
+ <i class="fa-solid fa-copy "></i>
74
+ </span>
75
+ </div>
76
+ @if(hasLabel()){
77
+ <ax-badge
78
+ class="ax-col-start-10 ax-col-end-12 ax-flex ax-justify-center ax-items-center"
79
+ color="primary"
80
+ [look]="'twotone'"
81
+ [text]="item.label ?? ''"
82
+ ></ax-badge>
83
+ } }}
84
+ </div> `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i1.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9
85
  }
10
86
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPContactWidgetViewComponent, decorators: [{
11
87
  type: Component,
12
88
  args: [{
13
- template: ``,
89
+ template: `<div class="ax-grid ax-grid-cols-12 ax-gap-1 ax-justify-center ax-items-center ax-group">
90
+ @for(item of internalValue();track $index){ @if(item){ @if(hasIcon()){
91
+ <ax-icon class="ax-col-start-1 ax-col-end-2 fa-solid ax-text-neutral-400" [class]="chooseIcon()"> </ax-icon>
92
+ } @let href = type() === 'link' ? item.value : type()==='phone'? 'tel:'+item.value : 'mailto:'+ item.value ;
93
+ <div class="ax-col-start-2 ax-col-end-9">
94
+ <a
95
+ [href]="href"
96
+ [target]="'_blank'"
97
+ class="ax-text-blue-700 group-hover:!ax-text-primary-500 group-hover:ax-underline group-hover:ax-decoration-blue-700"
98
+ >{{ item.value }}</a
99
+ >
100
+ <span
101
+ class="ax-text-neutral-400 ax-cursor-pointer ax-invisible group-hover:ax-visible hover:!ax-text-primary-500"
102
+ (click)="clipboard.copy('Email', item.value)"
103
+ >
104
+ <i class="fa-solid fa-copy "></i>
105
+ </span>
106
+ </div>
107
+ @if(hasLabel()){
108
+ <ax-badge
109
+ class="ax-col-start-10 ax-col-end-12 ax-flex ax-justify-center ax-items-center"
110
+ color="primary"
111
+ [look]="'twotone'"
112
+ [text]="item.label ?? ''"
113
+ ></ax-badge>
114
+ } }}
115
+ </div> `,
14
116
  standalone: true,
15
117
  changeDetection: ChangeDetectionStrategy.OnPush,
16
- imports: [CommonModule, FormsModule],
17
- inputs: []
118
+ imports: [CommonModule, FormsModule, AXBadgeModule, AXDecoratorModule],
119
+ inputs: [],
18
120
  }]
19
121
  }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC13aWRnZXQtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dpZGdldHMvc3JjL2xpYi93aWRnZXRzL2VkaXRvcnMvY29udGFjdC13aWRnZXQvY29udGFjdC13aWRnZXQtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFTN0MsTUFBTSxPQUFPLDZCQUE4QixTQUFRLGFBQWtCOzhHQUF4RCw2QkFBNkI7a0dBQTdCLDZCQUE2QiwrRkFOOUIsRUFBRSwyREFHRixZQUFZLDhCQUFFLFdBQVc7OzJGQUd4Qiw2QkFBNkI7a0JBUHpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7b0JBQ1osVUFBVSxFQUFFLElBQUk7b0JBQ2hCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDO29CQUNwQyxNQUFNLEVBQUUsRUFBRTtpQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFdpZGdldEJhc2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGBgLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGVdLFxuICBpbnB1dHM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIEFYUENvbnRhY3RXaWRnZXRWaWV3Q29tcG9uZW50IGV4dGVuZHMgQVhQV2lkZ2V0QmFzZTxhbnk+IHt9Il19
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC13aWRnZXQtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dpZGdldHMvc3JjL2xpYi93aWRnZXRzL2VkaXRvcnMvY29udGFjdC13aWRnZXQvY29udGFjdC13aWRnZXQtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBb0M3QyxNQUFNLE9BQU8sNkJBQThCLFNBQVEsa0JBQXVCO0lBakMxRTs7UUFrQ1ksU0FBSSxHQUFHLFFBQVEsQ0FBNkIsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDMUUsY0FBUyxHQUFHLFFBQVEsQ0FBVyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDekcsYUFBUSxHQUFHLFFBQVEsQ0FBVSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFZ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RSxFQUFFO2lCQUNYIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCYWRnZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9iYWRnZSc7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYUENsaXBCb2FyZFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBXaWRnZXRDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQVhQQ29udGFjdERhdGFUeXBlIH0gZnJvbSAnLi9jb250YWN0LnR5cGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwiYXgtZ3JpZCBheC1ncmlkLWNvbHMtMTIgYXgtZ2FwLTEgYXgtanVzdGlmeS1jZW50ZXIgYXgtaXRlbXMtY2VudGVyIGF4LWdyb3VwXCI+XG4gICAgQGZvcihpdGVtIG9mIGludGVybmFsVmFsdWUoKTt0cmFjayAkaW5kZXgpeyBAaWYoaXRlbSl7IEBpZihoYXNJY29uKCkpe1xuICAgIDxheC1pY29uIGNsYXNzPVwiYXgtY29sLXN0YXJ0LTEgYXgtY29sLWVuZC0yIGZhLXNvbGlkIGF4LXRleHQtbmV1dHJhbC00MDBcIiBbY2xhc3NdPVwiY2hvb3NlSWNvbigpXCI+IDwvYXgtaWNvbj5cbiAgICB9IEBsZXQgaHJlZiA9IHR5cGUoKSA9PT0gJ2xpbmsnID8gaXRlbS52YWx1ZSA6IHR5cGUoKT09PSdwaG9uZSc/ICd0ZWw6JytpdGVtLnZhbHVlIDogJ21haWx0bzonKyBpdGVtLnZhbHVlIDtcbiAgICA8ZGl2IGNsYXNzPVwiYXgtY29sLXN0YXJ0LTIgYXgtY29sLWVuZC05XCI+XG4gICAgICA8YVxuICAgICAgICBbaHJlZl09XCJocmVmXCJcbiAgICAgICAgW3RhcmdldF09XCInX2JsYW5rJ1wiXG4gICAgICAgIGNsYXNzPVwiYXgtdGV4dC1ibHVlLTcwMCBncm91cC1ob3ZlcjohYXgtdGV4dC1wcmltYXJ5LTUwMCBncm91cC1ob3ZlcjpheC11bmRlcmxpbmUgZ3JvdXAtaG92ZXI6YXgtZGVjb3JhdGlvbi1ibHVlLTcwMFwiXG4gICAgICAgID57eyBpdGVtLnZhbHVlIH19PC9hXG4gICAgICA+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImF4LXRleHQtbmV1dHJhbC00MDAgIGF4LWN1cnNvci1wb2ludGVyIGF4LWludmlzaWJsZSBncm91cC1ob3ZlcjpheC12aXNpYmxlIGhvdmVyOiFheC10ZXh0LXByaW1hcnktNTAwXCJcbiAgICAgICAgKGNsaWNrKT1cImNsaXBib2FyZC5jb3B5KCdFbWFpbCcsIGl0ZW0udmFsdWUpXCJcbiAgICAgID5cbiAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1jb3B5IFwiPjwvaT5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICBAaWYoaGFzTGFiZWwoKSl7XG4gICAgPGF4LWJhZGdlXG4gICAgICBjbGFzcz1cImF4LWNvbC1zdGFydC0xMCBheC1jb2wtZW5kLTEyIGF4LWZsZXggYXgtanVzdGlmeS1jZW50ZXIgYXgtaXRlbXMtY2VudGVyXCJcbiAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICBbbG9va109XCIndHdvdG9uZSdcIlxuICAgICAgW3RleHRdPVwiaXRlbS5sYWJlbCA/PyAnJ1wiXG4gICAgPjwvYXgtYmFkZ2U+XG4gICAgfSB9fVxuICA8L2Rpdj4gYCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBBWEJhZGdlTW9kdWxlLCBBWERlY29yYXRvck1vZHVsZV0sXG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYUENvbnRhY3RXaWRnZXRWaWV3Q29tcG9uZW50IGV4dGVuZHMgQVhQV2lkZ2V0Q29tcG9uZW50PGFueT4ge1xuICBwcm90ZWN0ZWQgdHlwZSA9IGNvbXB1dGVkPCdsaW5rJyB8ICdwaG9uZScgfCAnZW1haWwnPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsndHlwZSddKTtcbiAgcHJvdGVjdGVkIGxhYmVsTGlzdCA9IGNvbXB1dGVkPHN0cmluZ1tdPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnbGFiZWxMaXN0J10gfHwgWydwcmltYXJ5JywgJ3NlY29uZGFyeScsICdBZGQgTmV3J10pO1xuICBwcm90ZWN0ZWQgaGFzTGFiZWwgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnaGFzTGFiZWwnXSBhcyBib29sZWFuKTtcbiAgcHJvdGVjdGVkIG11bHRpcGxlID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ211bHRpcGxlJ10gYXMgYm9vbGVhbik7XG4gIHByb3RlY3RlZCBoYXNJY29uID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ2hhc0ljb24nXSBhcyBib29sZWFuKTtcblxuICBwcm90ZWN0ZWQgaW50ZXJuYWxWYWx1ZTogU2lnbmFsPEFYUENvbnRhY3REYXRhVHlwZVtdPiA9IGNvbXB1dGVkKCgpID0+IHRoaXMudmFsdWVUb0FycmF5KCkpO1xuICBwcm90ZWN0ZWQgY2xpcGJvYXJkID0gaW5qZWN0KEFYUENsaXBCb2FyZFNlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCBjaG9vc2VJY29uID0gKCk6IHN0cmluZyA9PiB7XG4gICAgc3dpdGNoICh0aGlzLnR5cGUoKSkge1xuICAgICAgY2FzZSAnZW1haWwnOlxuICAgICAgICByZXR1cm4gJ2ZhLWVudmVsb3BlJztcbiAgICAgIGNhc2UgJ2xpbmsnOlxuICAgICAgICByZXR1cm4gJ2ZhLWxpbmsnO1xuICAgICAgY2FzZSAncGhvbmUnOlxuICAgICAgICByZXR1cm4gJ2ZhLXBob25lJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnZmEtaW5mbyc7XG4gICAgfVxuICB9O1xuICBwcml2YXRlIHZhbHVlVG9BcnJheSgpOiBBWFBDb250YWN0RGF0YVR5cGVbXSB7XG4gICAgY29uc3QgdmFsdWU6IEFYUENvbnRhY3REYXRhVHlwZSB8IHN0cmluZyA9IHRoaXMuZ2V0VmFsdWUoKTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5tYXAoKGl0ZW0pID0+IHRoaXMuaXRlbVRvQXJyYXkoaXRlbSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW3RoaXMuaXRlbVRvQXJyYXkodmFsdWUpXTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBpdGVtVG9BcnJheSA9IChpdGVtOiBBWFBDb250YWN0RGF0YVR5cGUgfCBzdHJpbmcpOiBBWFBDb250YWN0RGF0YVR5cGUgPT4ge1xuICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcpXG4gICAgICByZXR1cm4ge1xuICAgICAgICB2YWx1ZTogaXRlbT8udmFsdWUgPz8gJycsXG4gICAgICAgIGxhYmVsOiB0aGlzLmhhc0xhYmVsKCkgPyBpdGVtPy5sYWJlbCB8fCB0aGlzLmxhYmVsTGlzdCgpWzBdIDogdW5kZWZpbmVkLFxuICAgICAgICBpY29uOiB0aGlzLmhhc0ljb24oKSA/IGl0ZW0/Lmljb24gfHwgdGhpcy5jaG9vc2VJY29uKCkgOiB1bmRlZmluZWQsXG4gICAgICB9O1xuICAgIGVsc2VcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHZhbHVlOiBpdGVtLFxuICAgICAgICBsYWJlbDogdGhpcy5oYXNMYWJlbCgpID8gdGhpcy5sYWJlbExpc3QoKVswXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgaWNvbjogdGhpcy5oYXNJY29uKCkgPyB0aGlzLmNob29zZUljb24oKSA6IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gIH07XG59XG4iXX0=