novo-elements 9.0.0-next.1 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (315) hide show
  1. package/addons/ace-editor/AceEditor.d.ts +4 -2
  2. package/addons/ace-editor/AceEditor.scss +1 -1
  3. package/addons/ckeditor/CKEditor.scss +8 -5
  4. package/addons/code-editor/CodeEditor.d.ts +31 -0
  5. package/addons/code-editor/CodeEditor.module.d.ts +9 -0
  6. package/addons/code-editor/CodeEditor.scss +5 -0
  7. package/addons/code-editor/index.d.ts +2 -0
  8. package/addons/code-editor/novo-elements-addons-code-editor.d.ts +5 -0
  9. package/addons/code-editor/package.json +10 -0
  10. package/addons/index.d.ts +1 -0
  11. package/elements/aside/aside.component.scss +1 -1
  12. package/elements/calendar/Calendar.module.d.ts +2 -3
  13. package/elements/category-dropdown/CategoryDropdown.scss +3 -1
  14. package/elements/checkbox/CheckList.scss +1 -1
  15. package/elements/checkbox/Checkbox.scss +1 -1
  16. package/elements/chips/Chip.scss +0 -21
  17. package/elements/chips/Chips.d.ts +2 -1
  18. package/elements/chips/Chips.scss +14 -98
  19. package/elements/chips/RowChips.scss +70 -0
  20. package/elements/common/overlay/Overlay.d.ts +1 -0
  21. package/elements/data-table/data-table.component.scss +3 -121
  22. package/elements/data-table/pagination/data-table-pagination.component.scss +124 -0
  23. package/elements/date-picker/DatePicker.module.d.ts +2 -2
  24. package/elements/date-picker/DatePickerInput.d.ts +8 -5
  25. package/elements/date-picker/MultiDateInput.d.ts +0 -1
  26. package/elements/date-picker/MultiDateInput.scss +0 -3
  27. package/elements/date-time-picker/DateTimePicker.module.d.ts +2 -3
  28. package/elements/drag-drop/drag-drop-box.d.ts +45 -0
  29. package/elements/drag-drop/drag-drop.module.d.ts +7 -0
  30. package/elements/drag-drop/index.d.ts +2 -0
  31. package/elements/drag-drop/novo-elements-elements-drag-drop.d.ts +5 -0
  32. package/elements/drag-drop/package.json +10 -0
  33. package/elements/dropdown/Dropdown.d.ts +7 -1
  34. package/elements/dropdown/Dropdown.scss +27 -2
  35. package/elements/field/formats/date-time-format.d.ts +2 -2
  36. package/elements/form/Control.d.ts +9 -6
  37. package/elements/form/ControlGroup.scss +2 -0
  38. package/elements/form/ControlTemplates.d.ts +1 -1
  39. package/elements/form/Form.module.d.ts +6 -6
  40. package/elements/form/Form.scss +25 -43
  41. package/elements/form/controls/code-editor/CodeEditorControl.d.ts +5 -0
  42. package/elements/form/controls/code-editor/index.d.ts +1 -0
  43. package/elements/form/controls/index.d.ts +2 -1
  44. package/elements/form/extras/FormExtras.module.d.ts +4 -4
  45. package/elements/form/extras/address/Address.scss +15 -13
  46. package/elements/form/extras/file/FileInput.d.ts +15 -16
  47. package/elements/form/extras/file/FileInput.scss +60 -30
  48. package/elements/form/fieldset-header.scss +17 -0
  49. package/elements/header/Header.scss +10 -1
  50. package/elements/index.d.ts +1 -0
  51. package/elements/list/list-item-content.scss +3 -3
  52. package/elements/list/list-item-header-avatar.scss +1 -1
  53. package/elements/list/list-item-header-title.scss +2 -1
  54. package/elements/modal/modal.component.scss +1 -1
  55. package/elements/multi-picker/_MultiPicker.scss +3 -3
  56. package/elements/picker/Picker.d.ts +2 -1
  57. package/elements/picker/Picker.scss +10 -351
  58. package/elements/picker/extras/base-picker-results/BasePickerResults.d.ts +1 -0
  59. package/elements/picker/extras/grouped-multi-picker-results/GroupedMultiPickerResults.scss +6 -6
  60. package/elements/picker/extras/mixed-multi-picker-results/MixedMultiPickerResults.scss +3 -3
  61. package/elements/picker/extras/picker-results/PickerResult.scss +12 -0
  62. package/elements/picker/extras/picker-results/PickerResults.scss +302 -0
  63. package/elements/picker/extras/skills-picker-results/SkillsSpecialtyPickerResults.scss +3 -1
  64. package/elements/popover/PopOver.scss +1 -1
  65. package/elements/query-builder/condition-builder/condition-builder.component.scss +1 -1
  66. package/elements/query-builder/condition-definitions/address-condition.definition.d.ts +1 -1
  67. package/elements/radio/Radio.scss +1 -1
  68. package/elements/select-search/select-search.component.scss +1 -1
  69. package/elements/simple-table/table.scss +3 -0
  70. package/elements/table/Table.module.d.ts +5 -6
  71. package/elements/table/Table.scss +7 -5
  72. package/elements/table/extras/pagination/Pagination.scss +3 -1
  73. package/elements/tabs/tab-content.scss +1 -1
  74. package/elements/tabs/tab-outlet.scss +1 -1
  75. package/elements/time-picker/TimePicker.d.ts +2 -3
  76. package/elements/time-picker/TimePicker.module.d.ts +3 -4
  77. package/elements/time-picker/TimePicker.scss +2 -2
  78. package/elements/time-picker/TimePickerInput.d.ts +5 -4
  79. package/elements/tip-well/TipWell.scss +0 -1
  80. package/esm2020/addons/ace-editor/AceEditor.mjs +10 -10
  81. package/esm2020/addons/ckeditor/CKEditor.mjs +10 -7
  82. package/esm2020/addons/code-editor/CodeEditor.mjs +129 -0
  83. package/esm2020/addons/code-editor/CodeEditor.module.mjs +19 -0
  84. package/esm2020/addons/code-editor/index.mjs +3 -0
  85. package/esm2020/addons/code-editor/novo-elements-addons-code-editor.mjs +5 -0
  86. package/esm2020/addons/index.mjs +2 -1
  87. package/esm2020/elements/breadcrumbs/breadcrumb-item/BreadcrumbItem.mjs +1 -1
  88. package/esm2020/elements/calendar/Calendar.module.mjs +5 -7
  89. package/esm2020/elements/calendar/calendar.component.mjs +3 -3
  90. package/esm2020/elements/calendar/month-select/month-select.component.mjs +3 -3
  91. package/esm2020/elements/calendar/month-view/month-view.component.mjs +3 -3
  92. package/esm2020/elements/calendar/year-select/year-select.component.mjs +3 -3
  93. package/esm2020/elements/category-dropdown/CategoryDropdown.mjs +5 -9
  94. package/esm2020/elements/chips/Chip.mjs +2 -2
  95. package/esm2020/elements/chips/ChipList.mjs +5 -14
  96. package/esm2020/elements/chips/Chips.mjs +11 -12
  97. package/esm2020/elements/chips/RowChips.mjs +5 -10
  98. package/esm2020/elements/common/overlay/Overlay.mjs +11 -5
  99. package/esm2020/elements/data-table/cell-headers/data-table-header-cell.component.mjs +1 -1
  100. package/esm2020/elements/data-table/data-table-clear-button.component.mjs +1 -1
  101. package/esm2020/elements/data-table/data-table.component.mjs +7 -13
  102. package/esm2020/elements/data-table/pagination/data-table-pagination.component.mjs +6 -8
  103. package/esm2020/elements/date-picker/DatePicker.module.mjs +6 -6
  104. package/esm2020/elements/date-picker/DatePickerInput.mjs +50 -29
  105. package/esm2020/elements/date-picker/DateRangeInput.mjs +10 -16
  106. package/esm2020/elements/date-picker/MultiDateInput.mjs +3 -19
  107. package/esm2020/elements/date-time-picker/DateTimePicker.module.mjs +4 -5
  108. package/esm2020/elements/date-time-picker/DateTimePickerInput.mjs +1 -1
  109. package/esm2020/elements/drag-drop/drag-drop-box.mjs +224 -0
  110. package/esm2020/elements/drag-drop/drag-drop.module.mjs +16 -0
  111. package/esm2020/elements/drag-drop/index.mjs +3 -0
  112. package/esm2020/elements/drag-drop/novo-elements-elements-drag-drop.mjs +5 -0
  113. package/esm2020/elements/dropdown/Dropdown.mjs +31 -6
  114. package/esm2020/elements/field/formats/date-format.mjs +5 -5
  115. package/esm2020/elements/field/formats/date-range-format.mjs +5 -5
  116. package/esm2020/elements/field/formats/date-time-format.mjs +12 -12
  117. package/esm2020/elements/field/formats/time-format.mjs +6 -6
  118. package/esm2020/elements/form/Control.mjs +20 -8
  119. package/esm2020/elements/form/ControlGroup.mjs +5 -5
  120. package/esm2020/elements/form/ControlTemplates.mjs +58 -27
  121. package/esm2020/elements/form/DynamicForm.mjs +9 -17
  122. package/esm2020/elements/form/Form.mjs +5 -9
  123. package/esm2020/elements/form/Form.module.mjs +12 -13
  124. package/esm2020/elements/form/NovoFormControl.mjs +1 -2
  125. package/esm2020/elements/form/controls/code-editor/CodeEditorControl.mjs +9 -0
  126. package/esm2020/elements/form/controls/code-editor/index.mjs +2 -0
  127. package/esm2020/elements/form/controls/index.mjs +3 -2
  128. package/esm2020/elements/form/controls/timezone/TimezoneControl.mjs +2 -2
  129. package/esm2020/elements/form/extras/FormExtras.module.mjs +8 -9
  130. package/esm2020/elements/form/extras/address/Address.mjs +4 -8
  131. package/esm2020/elements/form/extras/file/FileInput.mjs +38 -265
  132. package/esm2020/elements/header/Header.mjs +2 -2
  133. package/esm2020/elements/index.mjs +2 -1
  134. package/esm2020/elements/list/List.mjs +6 -6
  135. package/esm2020/elements/modal/modal.component.mjs +2 -2
  136. package/esm2020/elements/multi-picker/MultiPicker.mjs +5 -10
  137. package/esm2020/elements/picker/Picker.mjs +18 -10
  138. package/esm2020/elements/picker/extras/base-picker-results/BasePickerResults.mjs +4 -3
  139. package/esm2020/elements/picker/extras/entity-picker-results/EntityPickerResults.mjs +9 -16
  140. package/esm2020/elements/picker/extras/grouped-multi-picker-results/GroupedMultiPickerResults.mjs +4 -7
  141. package/esm2020/elements/picker/extras/mixed-multi-picker-results/MixedMultiPickerResults.mjs +4 -7
  142. package/esm2020/elements/picker/extras/picker-results/PickerResults.mjs +6 -10
  143. package/esm2020/elements/picker/extras/skills-picker-results/SkillsSpecialtyPickerResults.mjs +4 -7
  144. package/esm2020/elements/popover/PopOverContent.mjs +4 -7
  145. package/esm2020/elements/query-builder/condition-definitions/address-condition.definition.mjs +2 -2
  146. package/esm2020/elements/query-builder/condition-group/condition-group.component.mjs +3 -3
  147. package/esm2020/elements/radio/Radio.mjs +2 -2
  148. package/esm2020/elements/simple-table/cell-header.mjs +2 -2
  149. package/esm2020/elements/simple-table/cell.mjs +1 -1
  150. package/esm2020/elements/simple-table/table.mjs +7 -17
  151. package/esm2020/elements/tabbed-group-picker/TabbedGroupPicker.mjs +1 -1
  152. package/esm2020/elements/table/Table.mjs +6 -11
  153. package/esm2020/elements/table/Table.module.mjs +1 -6
  154. package/esm2020/elements/table/extras/dropdown-cell/DropdownCell.mjs +5 -8
  155. package/esm2020/elements/table/extras/pagination/Pagination.mjs +7 -8
  156. package/esm2020/elements/tabs/Tabs.mjs +6 -6
  157. package/esm2020/elements/time-picker/TimePicker.mjs +5 -6
  158. package/esm2020/elements/time-picker/TimePicker.module.mjs +4 -5
  159. package/esm2020/elements/time-picker/TimePickerInput.mjs +32 -75
  160. package/esm2020/elements/tip-well/TipWell.mjs +5 -5
  161. package/esm2020/index.mjs +1 -1
  162. package/esm2020/novo-elements.module.mjs +9 -3
  163. package/esm2020/novo-elements.providers.mjs +2 -2
  164. package/esm2020/services/date-format/DateFormat.mjs +153 -47
  165. package/esm2020/services/global/global.service.mjs +7 -1
  166. package/esm2020/utils/date/Date.mjs +1 -1
  167. package/esm2020/utils/date/index.mjs +3 -2
  168. package/esm2020/utils/date/timezone-support.mjs +87 -0
  169. package/fesm2015/novo-elements-addons-ace-editor.mjs +9 -9
  170. package/fesm2015/novo-elements-addons-ace-editor.mjs.map +1 -1
  171. package/fesm2015/novo-elements-addons-ckeditor.mjs +9 -6
  172. package/fesm2015/novo-elements-addons-ckeditor.mjs.map +1 -1
  173. package/fesm2015/novo-elements-addons-code-editor.mjs +150 -0
  174. package/fesm2015/novo-elements-addons-code-editor.mjs.map +1 -0
  175. package/fesm2015/novo-elements-addons.mjs +159 -17
  176. package/fesm2015/novo-elements-addons.mjs.map +1 -1
  177. package/fesm2015/novo-elements-elements-breadcrumbs.mjs +1 -1
  178. package/fesm2015/novo-elements-elements-breadcrumbs.mjs.map +1 -1
  179. package/fesm2015/novo-elements-elements-calendar.mjs +12 -13
  180. package/fesm2015/novo-elements-elements-calendar.mjs.map +1 -1
  181. package/fesm2015/novo-elements-elements-category-dropdown.mjs +4 -8
  182. package/fesm2015/novo-elements-elements-category-dropdown.mjs.map +1 -1
  183. package/fesm2015/novo-elements-elements-chips.mjs +20 -35
  184. package/fesm2015/novo-elements-elements-chips.mjs.map +1 -1
  185. package/fesm2015/novo-elements-elements-common.mjs +10 -2
  186. package/fesm2015/novo-elements-elements-common.mjs.map +1 -1
  187. package/fesm2015/novo-elements-elements-data-table.mjs +13 -21
  188. package/fesm2015/novo-elements-elements-data-table.mjs.map +1 -1
  189. package/fesm2015/novo-elements-elements-date-picker.mjs +66 -64
  190. package/fesm2015/novo-elements-elements-date-picker.mjs.map +1 -1
  191. package/fesm2015/novo-elements-elements-date-time-picker.mjs +4 -5
  192. package/fesm2015/novo-elements-elements-date-time-picker.mjs.map +1 -1
  193. package/fesm2015/novo-elements-elements-drag-drop.mjs +245 -0
  194. package/fesm2015/novo-elements-elements-drag-drop.mjs.map +1 -0
  195. package/fesm2015/novo-elements-elements-dropdown.mjs +30 -5
  196. package/fesm2015/novo-elements-elements-dropdown.mjs.map +1 -1
  197. package/fesm2015/novo-elements-elements-field.mjs +19 -19
  198. package/fesm2015/novo-elements-elements-field.mjs.map +1 -1
  199. package/fesm2015/novo-elements-elements-form.mjs +141 -333
  200. package/fesm2015/novo-elements-elements-form.mjs.map +1 -1
  201. package/fesm2015/novo-elements-elements-header.mjs +2 -2
  202. package/fesm2015/novo-elements-elements-header.mjs.map +1 -1
  203. package/fesm2015/novo-elements-elements-list.mjs +6 -6
  204. package/fesm2015/novo-elements-elements-list.mjs.map +1 -1
  205. package/fesm2015/novo-elements-elements-modal.mjs +2 -2
  206. package/fesm2015/novo-elements-elements-modal.mjs.map +1 -1
  207. package/fesm2015/novo-elements-elements-multi-picker.mjs +4 -9
  208. package/fesm2015/novo-elements-elements-multi-picker.mjs.map +1 -1
  209. package/fesm2015/novo-elements-elements-picker.mjs +40 -51
  210. package/fesm2015/novo-elements-elements-picker.mjs.map +1 -1
  211. package/fesm2015/novo-elements-elements-popover.mjs +3 -6
  212. package/fesm2015/novo-elements-elements-popover.mjs.map +1 -1
  213. package/fesm2015/novo-elements-elements-query-builder.mjs +2 -2
  214. package/fesm2015/novo-elements-elements-query-builder.mjs.map +1 -1
  215. package/fesm2015/novo-elements-elements-radio.mjs +2 -2
  216. package/fesm2015/novo-elements-elements-radio.mjs.map +1 -1
  217. package/fesm2015/novo-elements-elements-simple-table.mjs +8 -18
  218. package/fesm2015/novo-elements-elements-simple-table.mjs.map +1 -1
  219. package/fesm2015/novo-elements-elements-tabbed-group-picker.mjs +1 -1
  220. package/fesm2015/novo-elements-elements-tabbed-group-picker.mjs.map +1 -1
  221. package/fesm2015/novo-elements-elements-table.mjs +13 -26
  222. package/fesm2015/novo-elements-elements-table.mjs.map +1 -1
  223. package/fesm2015/novo-elements-elements-tabs.mjs +5 -5
  224. package/fesm2015/novo-elements-elements-tabs.mjs.map +1 -1
  225. package/fesm2015/novo-elements-elements-time-picker.mjs +37 -81
  226. package/fesm2015/novo-elements-elements-time-picker.mjs.map +1 -1
  227. package/fesm2015/novo-elements-elements-tip-well.mjs +4 -4
  228. package/fesm2015/novo-elements-elements-tip-well.mjs.map +1 -1
  229. package/fesm2015/novo-elements-elements.mjs +1 -0
  230. package/fesm2015/novo-elements-elements.mjs.map +1 -1
  231. package/fesm2015/novo-elements-services.mjs +158 -46
  232. package/fesm2015/novo-elements-services.mjs.map +1 -1
  233. package/fesm2015/novo-elements-utils.mjs +88 -1
  234. package/fesm2015/novo-elements-utils.mjs.map +1 -1
  235. package/fesm2015/novo-elements.mjs +8 -2
  236. package/fesm2015/novo-elements.mjs.map +1 -1
  237. package/fesm2020/novo-elements-addons-ace-editor.mjs +9 -9
  238. package/fesm2020/novo-elements-addons-ace-editor.mjs.map +1 -1
  239. package/fesm2020/novo-elements-addons-ckeditor.mjs +9 -6
  240. package/fesm2020/novo-elements-addons-ckeditor.mjs.map +1 -1
  241. package/fesm2020/novo-elements-addons-code-editor.mjs +150 -0
  242. package/fesm2020/novo-elements-addons-code-editor.mjs.map +1 -0
  243. package/fesm2020/novo-elements-addons.mjs +159 -17
  244. package/fesm2020/novo-elements-addons.mjs.map +1 -1
  245. package/fesm2020/novo-elements-elements-breadcrumbs.mjs +1 -1
  246. package/fesm2020/novo-elements-elements-breadcrumbs.mjs.map +1 -1
  247. package/fesm2020/novo-elements-elements-calendar.mjs +12 -13
  248. package/fesm2020/novo-elements-elements-calendar.mjs.map +1 -1
  249. package/fesm2020/novo-elements-elements-category-dropdown.mjs +4 -8
  250. package/fesm2020/novo-elements-elements-category-dropdown.mjs.map +1 -1
  251. package/fesm2020/novo-elements-elements-chips.mjs +20 -35
  252. package/fesm2020/novo-elements-elements-chips.mjs.map +1 -1
  253. package/fesm2020/novo-elements-elements-common.mjs +8 -2
  254. package/fesm2020/novo-elements-elements-common.mjs.map +1 -1
  255. package/fesm2020/novo-elements-elements-data-table.mjs +13 -21
  256. package/fesm2020/novo-elements-elements-data-table.mjs.map +1 -1
  257. package/fesm2020/novo-elements-elements-date-picker.mjs +64 -64
  258. package/fesm2020/novo-elements-elements-date-picker.mjs.map +1 -1
  259. package/fesm2020/novo-elements-elements-date-time-picker.mjs +4 -5
  260. package/fesm2020/novo-elements-elements-date-time-picker.mjs.map +1 -1
  261. package/fesm2020/novo-elements-elements-drag-drop.mjs +244 -0
  262. package/fesm2020/novo-elements-elements-drag-drop.mjs.map +1 -0
  263. package/fesm2020/novo-elements-elements-dropdown.mjs +30 -5
  264. package/fesm2020/novo-elements-elements-dropdown.mjs.map +1 -1
  265. package/fesm2020/novo-elements-elements-field.mjs +19 -19
  266. package/fesm2020/novo-elements-elements-field.mjs.map +1 -1
  267. package/fesm2020/novo-elements-elements-form.mjs +142 -335
  268. package/fesm2020/novo-elements-elements-form.mjs.map +1 -1
  269. package/fesm2020/novo-elements-elements-header.mjs +2 -2
  270. package/fesm2020/novo-elements-elements-header.mjs.map +1 -1
  271. package/fesm2020/novo-elements-elements-list.mjs +6 -6
  272. package/fesm2020/novo-elements-elements-list.mjs.map +1 -1
  273. package/fesm2020/novo-elements-elements-modal.mjs +2 -2
  274. package/fesm2020/novo-elements-elements-modal.mjs.map +1 -1
  275. package/fesm2020/novo-elements-elements-multi-picker.mjs +4 -9
  276. package/fesm2020/novo-elements-elements-multi-picker.mjs.map +1 -1
  277. package/fesm2020/novo-elements-elements-picker.mjs +40 -51
  278. package/fesm2020/novo-elements-elements-picker.mjs.map +1 -1
  279. package/fesm2020/novo-elements-elements-popover.mjs +3 -6
  280. package/fesm2020/novo-elements-elements-popover.mjs.map +1 -1
  281. package/fesm2020/novo-elements-elements-query-builder.mjs +2 -2
  282. package/fesm2020/novo-elements-elements-query-builder.mjs.map +1 -1
  283. package/fesm2020/novo-elements-elements-radio.mjs +2 -2
  284. package/fesm2020/novo-elements-elements-radio.mjs.map +1 -1
  285. package/fesm2020/novo-elements-elements-simple-table.mjs +8 -18
  286. package/fesm2020/novo-elements-elements-simple-table.mjs.map +1 -1
  287. package/fesm2020/novo-elements-elements-tabbed-group-picker.mjs +1 -1
  288. package/fesm2020/novo-elements-elements-tabbed-group-picker.mjs.map +1 -1
  289. package/fesm2020/novo-elements-elements-table.mjs +13 -26
  290. package/fesm2020/novo-elements-elements-table.mjs.map +1 -1
  291. package/fesm2020/novo-elements-elements-tabs.mjs +5 -5
  292. package/fesm2020/novo-elements-elements-tabs.mjs.map +1 -1
  293. package/fesm2020/novo-elements-elements-time-picker.mjs +36 -81
  294. package/fesm2020/novo-elements-elements-time-picker.mjs.map +1 -1
  295. package/fesm2020/novo-elements-elements-tip-well.mjs +4 -4
  296. package/fesm2020/novo-elements-elements-tip-well.mjs.map +1 -1
  297. package/fesm2020/novo-elements-elements.mjs +1 -0
  298. package/fesm2020/novo-elements-elements.mjs.map +1 -1
  299. package/fesm2020/novo-elements-services.mjs +158 -46
  300. package/fesm2020/novo-elements-services.mjs.map +1 -1
  301. package/fesm2020/novo-elements-utils.mjs +88 -1
  302. package/fesm2020/novo-elements-utils.mjs.map +1 -1
  303. package/fesm2020/novo-elements.mjs +8 -2
  304. package/fesm2020/novo-elements.mjs.map +1 -1
  305. package/novo-elements.module.d.ts +1 -1
  306. package/novo-elements.scss +3 -22
  307. package/package.json +23 -4
  308. package/services/date-format/DateFormat.d.ts +62 -3
  309. package/services/global/global.service.d.ts +3 -0
  310. package/styles/content/root.scss +1 -1
  311. package/styles/themes/light-test.scss +1 -1
  312. package/styles/themes/light.scss +1 -1
  313. package/styles/variables.scss +1 -1
  314. package/utils/date/index.d.ts +2 -1
  315. package/utils/date/timezone-support.d.ts +5 -0
@@ -1,12 +1,17 @@
1
1
  import * as i0 from '@angular/core';
2
- import { forwardRef, EventEmitter, Component, Input, Output, NgModule, ViewChild, Injectable, Directive } from '@angular/core';
2
+ import { forwardRef, EventEmitter, Component, Input, Output, NgModule, ViewChild, HostBinding, HostListener, Injectable, Directive } from '@angular/core';
3
3
  import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
4
- import 'brace/index';
4
+ import * as ace from 'brace';
5
+ import 'brace/ext/language_tools.js';
5
6
  import 'brace/mode/javascript';
6
7
  import 'brace/theme/chrome';
7
- import 'brace/ext/language_tools.js';
8
- import { Helpers, notify } from 'novo-elements/utils';
8
+ import { notify, Helpers } from 'novo-elements/utils';
9
9
  import { CommonModule } from '@angular/common';
10
+ import { defaultKeymap } from '@codemirror/commands';
11
+ import { javascript } from '@codemirror/lang-javascript';
12
+ import { Annotation, EditorState } from '@codemirror/state';
13
+ import { keymap, EditorView } from '@codemirror/view';
14
+ import { basicSetup } from 'codemirror';
10
15
  import dragula from '@bullhorn/dragula';
11
16
 
12
17
  // NG2
@@ -15,6 +20,9 @@ const ACE_VALUE_ACCESSOR = {
15
20
  useExisting: forwardRef(() => NovoAceEditor),
16
21
  multi: true,
17
22
  };
23
+ /**
24
+ * @deprecated Use NovoCodeEditor instead
25
+ */
18
26
  class NovoAceEditor {
19
27
  constructor(elementRef) {
20
28
  this.elementRef = elementRef;
@@ -29,6 +37,7 @@ class NovoAceEditor {
29
37
  this.text = '';
30
38
  this.onChange = (_) => { };
31
39
  this.onTouched = () => { };
40
+ notify('[Deprecated]: The ace editor component is deprecated. Please migrate to novo-code-editor!');
32
41
  }
33
42
  set theme(theme) {
34
43
  this.setTheme(theme);
@@ -108,14 +117,10 @@ class NovoAceEditor {
108
117
  }
109
118
  }
110
119
  NovoAceEditor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoAceEditor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
111
- NovoAceEditor.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: NovoAceEditor, selector: "novo-ace-editor", inputs: { theme: "theme", options: "options", mode: "mode", name: "name" }, outputs: { blur: "blur", focus: "focus" }, providers: [ACE_VALUE_ACCESSOR], ngImport: i0, template: '', isInline: true });
120
+ NovoAceEditor.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: NovoAceEditor, selector: "novo-ace-editor", inputs: { theme: "theme", options: "options", mode: "mode", name: "name" }, outputs: { blur: "blur", focus: "focus" }, providers: [ACE_VALUE_ACCESSOR], ngImport: i0, template: '', isInline: true, styles: [":host{display:block;width:100%;min-height:200px}\n"] });
112
121
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoAceEditor, decorators: [{
113
122
  type: Component,
114
- args: [{
115
- selector: 'novo-ace-editor',
116
- template: '',
117
- providers: [ACE_VALUE_ACCESSOR],
118
- }]
123
+ args: [{ selector: 'novo-ace-editor', template: '', providers: [ACE_VALUE_ACCESSOR], styles: [":host{display:block;width:100%;min-height:200px}\n"] }]
119
124
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { theme: [{
120
125
  type: Input
121
126
  }], options: [{
@@ -152,6 +157,13 @@ const CKEDITOR_CONTROL_VALUE_ACCESSOR = {
152
157
  useExisting: forwardRef(() => NovoCKEditorElement),
153
158
  multi: true,
154
159
  };
160
+ // Prevents CKEDITOR from querying the page for all [contenteditable] elements (fixes a conflict against Codemirror Editor)
161
+ try {
162
+ CKEDITOR.disableAutoInline = true;
163
+ }
164
+ catch (err) {
165
+ // may be running in a context without CKEDITOR - ignore
166
+ }
155
167
  /**
156
168
  * CKEditor component
157
169
  * Usage :
@@ -354,14 +366,10 @@ class NovoCKEditorElement {
354
366
  }
355
367
  }
356
368
  NovoCKEditorElement.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoCKEditorElement, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
357
- NovoCKEditorElement.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: NovoCKEditorElement, selector: "novo-editor", inputs: { config: "config", debounce: "debounce", name: "name", minimal: "minimal", startupFocus: "startupFocus", fileBrowserImageUploadUrl: "fileBrowserImageUploadUrl", disabled: "disabled", value: "value" }, outputs: { change: "change", ready: "ready", blur: "blur", focus: "focus", paste: "paste", loaded: "loaded" }, providers: [CKEDITOR_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "host", first: true, predicate: ["host"], descendants: true }], ngImport: i0, template: '<textarea [name]="name" [id]="name" #host></textarea>', isInline: true });
369
+ NovoCKEditorElement.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: NovoCKEditorElement, selector: "novo-editor", inputs: { config: "config", debounce: "debounce", name: "name", minimal: "minimal", startupFocus: "startupFocus", fileBrowserImageUploadUrl: "fileBrowserImageUploadUrl", disabled: "disabled", value: "value" }, outputs: { change: "change", ready: "ready", blur: "blur", focus: "focus", paste: "paste", loaded: "loaded" }, providers: [CKEDITOR_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "host", first: true, predicate: ["host"], descendants: true }], ngImport: i0, template: '<textarea [name]="name" [id]="name" #host></textarea>', isInline: true, styles: [":host ::ng-deep .cke{font:inherit!important;box-shadow:none;border-color:var(--background-muted)}:host ::ng-deep .cke .cke_top,:host ::ng-deep .cke .cke_bottom{background:var(--background-muted) none;box-shadow:none}:host ::ng-deep .cke .cke_bottom{border-top:none}.cke_dialog_background_cover{background-color:#000!important}.cke_dialog .cke_dialog_title{text-shadow:none;background:var(--background-muted) none;box-shadow:none;border-bottom:none}.cke_dialog .cke_dialog_footer{text-shadow:none;background:var(--background-muted) none;box-shadow:none;border-top:none}:host-context(.theme-dark) ::ng-deep .cke_button{filter:invert(1)}:host-context(.theme-dark) ::ng-deep .cke_combo a.cke_combo_button:hover,:host-context(.theme-dark) ::ng-deep .cke_combo a.cke_combo_button:active,:host-context(.theme-dark) ::ng-deep .cke_combo a.cke_combo_button:focus,:host-context(.theme-dark) ::ng-deep .cke_combo a.cke_combo_button.cke_combo_on{background:var(--background-main);border:1px solid var(--border)}:host-context(.theme-dark) ::ng-deep .cke_combo a.cke_combo_button .cke_combo_text{color:#fff}:host-context(.theme-dark) ::ng-deep .cke_combo a.cke_combo_button .cke_combo_arrow{border-top-color:#fff}\n"] });
358
370
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoCKEditorElement, decorators: [{
359
371
  type: Component,
360
- args: [{
361
- selector: 'novo-editor',
362
- providers: [CKEDITOR_CONTROL_VALUE_ACCESSOR],
363
- template: '<textarea [name]="name" [id]="name" #host></textarea>',
364
- }]
372
+ args: [{ selector: 'novo-editor', providers: [CKEDITOR_CONTROL_VALUE_ACCESSOR], template: '<textarea [name]="name" [id]="name" #host></textarea>', styles: [":host ::ng-deep .cke{font:inherit!important;box-shadow:none;border-color:var(--background-muted)}:host ::ng-deep .cke .cke_top,:host ::ng-deep .cke .cke_bottom{background:var(--background-muted) none;box-shadow:none}:host ::ng-deep .cke .cke_bottom{border-top:none}.cke_dialog_background_cover{background-color:#000!important}.cke_dialog .cke_dialog_title{text-shadow:none;background:var(--background-muted) none;box-shadow:none;border-bottom:none}.cke_dialog .cke_dialog_footer{text-shadow:none;background:var(--background-muted) none;box-shadow:none;border-top:none}:host-context(.theme-dark) ::ng-deep .cke_button{filter:invert(1)}:host-context(.theme-dark) ::ng-deep .cke_combo a.cke_combo_button:hover,:host-context(.theme-dark) ::ng-deep .cke_combo a.cke_combo_button:active,:host-context(.theme-dark) ::ng-deep .cke_combo a.cke_combo_button:focus,:host-context(.theme-dark) ::ng-deep .cke_combo a.cke_combo_button.cke_combo_on{background:var(--background-main);border:1px solid var(--border)}:host-context(.theme-dark) ::ng-deep .cke_combo a.cke_combo_button .cke_combo_text{color:#fff}:host-context(.theme-dark) ::ng-deep .cke_combo a.cke_combo_button .cke_combo_arrow{border-top-color:#fff}\n"] }]
365
373
  }], ctorParameters: function () { return [{ type: i0.NgZone }]; }, propDecorators: { config: [{
366
374
  type: Input
367
375
  }], debounce: [{
@@ -410,6 +418,140 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
410
418
  }]
411
419
  }] });
412
420
 
421
+ // NG2
422
+ // organize-imports-ignore
423
+ // APP
424
+ const CODE_EDITOR_VALUE_ACCESSOR = {
425
+ provide: NG_VALUE_ACCESSOR,
426
+ useExisting: forwardRef(() => NovoCodeEditor),
427
+ multi: true,
428
+ };
429
+ // CodeMirror transaction annotation to show changes that came in through writeValue (FormControl value) as opposed to UI editing
430
+ const FormControlCodeWriter = Annotation.define();
431
+ // (This is a replacement for the "novo-ace-editor". Notably, we are no longer naming it based on the underlying component. It is possible, in the future,
432
+ // we decide there is another code editing component that better fits our use case - in which situation we should replace the implementation here, but keep its name)
433
+ class NovoCodeEditor {
434
+ constructor(elementRef) {
435
+ this.elementRef = elementRef;
436
+ this.theme = 'default';
437
+ this.lineNumbers = true;
438
+ this.blur = new EventEmitter();
439
+ this.focus = new EventEmitter();
440
+ this.changed = new EventEmitter();
441
+ this.mode = 'javascript';
442
+ this.initialValue = '';
443
+ this.disabled = false;
444
+ }
445
+ ngOnInit() {
446
+ }
447
+ ngOnDestroy() {
448
+ }
449
+ ngAfterViewInit() {
450
+ this.createEditorView();
451
+ }
452
+ createEditorView() {
453
+ const extensions = [
454
+ basicSetup,
455
+ keymap.of(defaultKeymap)
456
+ ];
457
+ if (this.mode === 'javascript') {
458
+ extensions.push(javascript());
459
+ }
460
+ const initialEditorState = EditorState.create({
461
+ doc: this.initialValue,
462
+ extensions,
463
+ });
464
+ this.editorView = new EditorView({
465
+ state: initialEditorState,
466
+ parent: this.elementRef.nativeElement,
467
+ dispatch: (transaction, view) => {
468
+ // Prevent changes if the form is disabled - unless the change came from writeValue function
469
+ if (transaction.annotation(FormControlCodeWriter) || !(this.disabled && transaction.docChanged)) {
470
+ view.update([transaction]);
471
+ }
472
+ if (transaction.docChanged) {
473
+ this.changed.emit(view.state.doc.toString());
474
+ }
475
+ }
476
+ });
477
+ }
478
+ onFocus() {
479
+ this.focus.emit();
480
+ }
481
+ onBlur() {
482
+ this.blur.emit();
483
+ }
484
+ // ControlValueAccessor forward implementation
485
+ writeValue(value) {
486
+ if (this.editorView) {
487
+ this.editorView.dispatch({
488
+ changes: {
489
+ from: 0,
490
+ to: this.editorView.state.doc.length,
491
+ insert: value,
492
+ },
493
+ annotations: FormControlCodeWriter.of({}),
494
+ });
495
+ }
496
+ else if (value != null) {
497
+ this.initialValue = value;
498
+ }
499
+ }
500
+ registerOnChange(fn) {
501
+ this.changed.subscribe(fn);
502
+ }
503
+ registerOnTouched(fn) {
504
+ this.blur.subscribe(fn);
505
+ }
506
+ setDisabledState(isDisabled) {
507
+ this.disabled = isDisabled;
508
+ }
509
+ }
510
+ NovoCodeEditor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoCodeEditor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
511
+ NovoCodeEditor.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: NovoCodeEditor, selector: "novo-code-editor", inputs: { theme: "theme", lineNumbers: "lineNumbers", name: "name", mode: "mode" }, outputs: { blur: "blur", focus: "focus" }, host: { listeners: { "focus": "onFocus()", "blur": "onBlur()" }, properties: { "class.editor-disabled": "this.disabled" } }, providers: [CODE_EDITOR_VALUE_ACCESSOR], viewQueries: [{ propertyName: "editorRoot", first: true, predicate: ["editorRoot"], descendants: true }], ngImport: i0, template: '', isInline: true, styles: [":host{height:200px;display:block;overflow:auto}\n"] });
512
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoCodeEditor, decorators: [{
513
+ type: Component,
514
+ args: [{ selector: 'novo-code-editor', template: '', providers: [CODE_EDITOR_VALUE_ACCESSOR], styles: [":host{height:200px;display:block;overflow:auto}\n"] }]
515
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { theme: [{
516
+ type: Input
517
+ }], lineNumbers: [{
518
+ type: Input
519
+ }], name: [{
520
+ type: Input
521
+ }], blur: [{
522
+ type: Output
523
+ }], focus: [{
524
+ type: Output
525
+ }], mode: [{
526
+ type: Input
527
+ }], editorRoot: [{
528
+ type: ViewChild,
529
+ args: ['editorRoot']
530
+ }], disabled: [{
531
+ type: HostBinding,
532
+ args: ['class.editor-disabled']
533
+ }], onFocus: [{
534
+ type: HostListener,
535
+ args: ['focus']
536
+ }], onBlur: [{
537
+ type: HostListener,
538
+ args: ['blur']
539
+ }] } });
540
+
541
+ class NovoCodeEditorModule {
542
+ }
543
+ NovoCodeEditorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoCodeEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
544
+ NovoCodeEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoCodeEditorModule, declarations: [NovoCodeEditor], imports: [CommonModule, FormsModule], exports: [NovoCodeEditor] });
545
+ NovoCodeEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoCodeEditorModule, imports: [[CommonModule, FormsModule]] });
546
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoCodeEditorModule, decorators: [{
547
+ type: NgModule,
548
+ args: [{
549
+ imports: [CommonModule, FormsModule],
550
+ declarations: [NovoCodeEditor],
551
+ exports: [NovoCodeEditor]
552
+ }]
553
+ }] });
554
+
413
555
  // NG2
414
556
  /**
415
557
  * @deprecated since v8.0.0 - slated for deletion.
@@ -628,5 +770,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
628
770
  * Generated bundle index. Do not edit.
629
771
  */
630
772
 
631
- export { NovoAceEditor, NovoAceEditorModule, NovoCKEditorElement, NovoDragulaElement, NovoDragulaModule, NovoDragulaService, NovoNovoCKEditorModule };
773
+ export { NovoAceEditor, NovoAceEditorModule, NovoCKEditorElement, NovoCodeEditor, NovoCodeEditorModule, NovoDragulaElement, NovoDragulaModule, NovoDragulaService, NovoNovoCKEditorModule };
632
774
  //# sourceMappingURL=novo-elements-addons.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"novo-elements-addons.mjs","sources":["../../../projects/novo-elements/src/addons/ace-editor/AceEditor.ts","../../../projects/novo-elements/src/addons/ace-editor/AceEditor.module.ts","../../../projects/novo-elements/src/addons/ckeditor/CKEditor.ts","../../../projects/novo-elements/src/addons/ckeditor/CKEditor.module.ts","../../../projects/novo-elements/src/addons/dragula/DragulaService.ts","../../../projects/novo-elements/src/addons/dragula/Dragula.ts","../../../projects/novo-elements/src/addons/dragula/Dragula.module.ts","../../../projects/novo-elements/src/addons/novo-elements-addons.ts"],"sourcesContent":["// NG2\nimport { Component, ElementRef, EventEmitter, forwardRef, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n// Vendor\n// organize-imports-ignore\nimport 'brace/index';\nimport 'brace/mode/javascript';\nimport 'brace/theme/chrome';\nimport 'brace/ext/language_tools.js';\n// APP\nimport { Helpers } from 'novo-elements/utils';\n\ndeclare var ace: any;\n\nconst ACE_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoAceEditor),\n multi: true,\n};\n\n@Component({\n selector: 'novo-ace-editor',\n template: '',\n providers: [ACE_VALUE_ACCESSOR],\n})\nexport class NovoAceEditor implements ControlValueAccessor, OnInit, OnDestroy {\n @Input()\n set theme(theme: any) {\n this.setTheme(theme);\n }\n\n @Input()\n set options(options: any) {\n this.setOptions(options);\n }\n\n @Input()\n set mode(mode: any) {\n this.setMode(mode);\n }\n\n @Input()\n name: string;\n @Output()\n blur = new EventEmitter();\n @Output()\n focus = new EventEmitter();\n\n private _options: any = {\n showPrintMargin: false,\n displayIndentGuides: true,\n };\n private _theme: string = 'chrome';\n private _mode: string = 'javascript';\n\n private text: string = '';\n private oldText: string;\n private editor: any;\n\n private onChange = (_: any) => {};\n private onTouched = () => {};\n\n constructor(private elementRef: ElementRef) {}\n\n ngOnDestroy() {\n if (this.editor) {\n this.editor.destroy();\n }\n }\n\n ngOnInit() {\n this.initializeEditor();\n this.initializeOptions();\n this.initializeEvents();\n }\n\n private initializeEditor() {\n const el = this.elementRef.nativeElement;\n this.editor = ace.edit(el);\n this.editor.$blockScrolling = Infinity;\n }\n\n private initializeOptions() {\n this.setOptions(this._options || {});\n this.setTheme(this._theme);\n this.setMode(this._mode);\n }\n\n private initializeEvents() {\n this.editor.on('focus', (event) => this.focus.emit(event));\n this.editor.on('blur', (event) => this.focus.emit(event));\n this.editor.on('change', () => this.updateText());\n this.editor.on('paste', () => this.updateText());\n }\n\n private updateText() {\n const newVal = this.editor.getValue();\n\n if (newVal === this.oldText) {\n return;\n }\n\n this.text = newVal;\n this.onChange(newVal);\n this.oldText = newVal;\n }\n\n private setText(text: string) {\n if (Helpers.isBlank(text)) {\n text = '';\n }\n if (this.text !== text) {\n this.text = text;\n this.editor.setValue(text);\n this.onChange(text);\n this.editor.clearSelection();\n }\n }\n\n private setOptions(options: any) {\n this._options = options;\n this.editor.setOptions(options || {});\n }\n\n private setTheme(theme: string) {\n this._theme = theme;\n this.editor.setTheme(`ace/theme/${theme}`);\n }\n\n private setMode(mode: any) {\n this._mode = mode;\n this.editor.getSession().setMode(`ace/mode/${this._mode}`);\n }\n\n writeValue(value: any) {\n this.setText(value);\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n}\n","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n// APP\nimport { NovoAceEditor } from './AceEditor';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [NovoAceEditor],\n exports: [NovoAceEditor],\n})\nexport class NovoAceEditorModule {}\n","// NG2\nimport { AfterViewInit, Component, EventEmitter, forwardRef, Input, NgZone, OnDestroy, Output, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n// Value accessor for the component (supports ngModel)\nconst CKEDITOR_CONTROL_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoCKEditorElement),\n multi: true,\n};\n\ndeclare var CKEDITOR: any;\ndeclare global {\n interface Window {\n CKEDITOR: any;\n }\n}\n\n/**\n * CKEditor component\n * Usage :\n * <novo-editor [(ngModel)]=\"data\" [config]=\"{...}\" debounce=\"500\"></novo-editor>\n */\n@Component({\n selector: 'novo-editor',\n providers: [CKEDITOR_CONTROL_VALUE_ACCESSOR],\n template: '<textarea [name]=\"name\" [id]=\"name\" #host></textarea>',\n})\nexport class NovoCKEditorElement implements OnDestroy, AfterViewInit, ControlValueAccessor {\n @Input()\n config;\n @Input()\n debounce;\n @Input()\n name;\n @Input()\n minimal;\n @Input()\n startupFocus: boolean = false;\n @Input()\n fileBrowserImageUploadUrl: string = '';\n @Input()\n disabled: boolean = false;\n\n @Output()\n change = new EventEmitter();\n @Output()\n ready = new EventEmitter();\n @Output()\n blur = new EventEmitter();\n @Output()\n focus = new EventEmitter();\n @Output()\n paste = new EventEmitter();\n @Output()\n loaded = new EventEmitter();\n @ViewChild('host')\n host;\n\n _value: string = '';\n instance;\n debounceTimeout;\n\n constructor(private zone: NgZone) {}\n\n get value() {\n return this._value;\n }\n\n @Input()\n set value(v) {\n if (v !== this._value) {\n this._value = v;\n this.onChange(v);\n }\n }\n\n ngOnDestroy() {\n if (this.instance) {\n this.instance.focusManager.blur(true); // Remove focus from editor\n setTimeout(() => {\n this.instance.removeAllListeners();\n const aInstance = CKEDITOR.instances[this.instance.name];\n if (aInstance) {\n aInstance.destroy();\n }\n this.instance.destroy();\n this.instance = null;\n });\n }\n }\n\n ngAfterViewInit() {\n const config = Object.assign(this.getBaseConfig(), this.config);\n if (this.startupFocus) {\n config.startupFocus = true;\n }\n if (this.disabled) {\n config.readOnly = true;\n }\n this.ckeditorInit(config);\n }\n\n updateValue(value) {\n this.zone.run(() => {\n this.value = value;\n this.onChange(value);\n this.onTouched();\n this.change.emit(value);\n });\n }\n\n private ckeditorInit(config) {\n if (!CKEDITOR) {\n console.error('Make sure to include CKEditor sources in your dependencies!');\n return;\n }\n\n // CKEditor replace textarea\n this.instance = CKEDITOR.replace(this.host.nativeElement, config);\n\n // Set initial value\n this.instance.setData(this.value);\n\n // listen for instanceReady event\n this.instance.on('instanceReady', (evt) => {\n // send the evt to the EventEmitter\n this.ready.emit(evt);\n });\n\n // CKEditor change event\n this.instance.on('change', () => {\n this.onTouched();\n const value = this.instance.getData();\n\n // Debounce update\n if (this.debounce) {\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n }\n this.debounceTimeout = setTimeout(() => {\n this.updateValue(value);\n this.debounceTimeout = null;\n }, parseInt(this.debounce, 10));\n } else {\n this.updateValue(value);\n }\n });\n this.instance.on('blur', (event) => {\n this.blur.emit(event);\n });\n this.instance.on('focus', (event) => {\n this.focus.emit(event);\n });\n this.instance.on('paste', (event) => {\n this.paste.emit(event);\n });\n this.instance.on('loaded', (event) => {\n this.loaded.emit(event);\n });\n }\n\n getBaseConfig(): { [key: string]: any } {\n const baseConfig = {\n enterMode: CKEDITOR.ENTER_BR,\n entities: false,\n shiftEnterMode: CKEDITOR.ENTER_P,\n disableNativeSpellChecker: false,\n removePlugins: 'liststyle,tabletools,contextmenu,tableselection', // allows browser based spell checking\n extraAllowedContent: '*(*){*};table tbody tr td th[*];', // allows class names (*) and inline styles {*} for all and attributes [*] on tables\n font_names:\n 'Arial/Arial, Helvetica, sans-serif;' +\n 'Calibri/Calibri, Verdana, Geneva, sans-serif;' +\n 'Comic Sans MS/Comic Sans MS, cursive;' +\n 'Courier New/Courier New, Courier, monospace;' +\n 'Georgia/Georgia, serif;' +\n 'Lucida Sans Unicode/Lucida Sans Unicode, Lucida Grande, sans-serif;' +\n 'Tahoma/Tahoma, Geneva, sans-serif;' +\n 'Times New Roman/Times New Roman, Times, serif;' +\n 'Trebuchet MS/Trebuchet MS, Helvetica, sans-serif;' +\n 'Verdana/Verdana, Geneva, sans-serif',\n };\n\n const minimalConfig = {\n toolbar: [\n {\n name: 'basicstyles',\n items: [\n 'Styles',\n 'FontSize',\n 'Bold',\n 'Italic',\n 'Underline',\n 'TextColor',\n '-',\n 'NumberedList',\n 'BulletedList',\n 'Outdent',\n 'Indent',\n 'Link',\n ],\n },\n ],\n };\n\n const extendedConfig = {\n toolbar: [\n { name: 'clipboard', items: ['Paste', 'PasteText', 'PasteFromWord', 'Undo', 'Redo'] },\n {\n name: 'paragraph',\n items: [\n 'NumberedList',\n 'BulletedList',\n 'Outdent',\n 'Indent',\n 'Blockquote',\n 'JustifyLeft',\n 'JustifyCenter',\n 'JustifyRight',\n 'JustifyBlock',\n 'BidiLtr',\n 'BidiRtl',\n ],\n },\n { name: 'links', items: ['Link'] },\n { name: 'insert', items: ['Image', 'Table', 'HorizontalRule'] },\n { name: 'tools', items: ['Maximize', 'Source'] },\n '/', // line break\n { name: 'basicstyles', items: ['Bold', 'Italic', 'Underline', 'Strike', 'Subscript', 'Superscript'] },\n { name: 'styles', items: ['Styles', 'Format', 'Font', 'FontSize'] },\n { name: 'colors', items: ['TextColor', 'BGColor'] },\n ],\n filebrowserImageUploadUrl: this.fileBrowserImageUploadUrl,\n };\n\n return Object.assign(baseConfig, this.minimal ? minimalConfig : extendedConfig);\n }\n\n writeValue(value) {\n this._value = value;\n if (this.instance) {\n this.instance.setData(value);\n }\n }\n\n onChange(value?: any) {}\n\n onTouched(event?) {}\n\n registerOnChange(fn) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n if (this.instance) {\n CKEDITOR.instances[this.instance.name].setReadOnly(disabled);\n }\n }\n\n insertText(text) {\n const trimmedText = text.trim();\n this.instance.insertText(trimmedText);\n }\n}\n","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n// APP\nimport { NovoCKEditorElement } from './CKEditor';\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n declarations: [NovoCKEditorElement],\n exports: [NovoCKEditorElement],\n})\nexport class NovoNovoCKEditorModule {}\n","// NG2\nimport { EventEmitter, Injectable } from '@angular/core';\n// Vendor\nimport dragula from '@bullhorn/dragula';\n\n/**\n* @deprecated since v8.0.0 - slated for deletion.\n*\n* Moving away from all CommonJS dependencies to improve tree-shaking.\n*\n* Please look at built-in ng or third party drag-drop libraries like\n* angular-draggable-droppable, ngx-drag-drop, ngx-sortablejs, ng2-dragula.\n*/\n@Injectable()\nexport class NovoDragulaService {\n cancel: EventEmitter<any> = new EventEmitter();\n cloned: EventEmitter<any> = new EventEmitter();\n drag: EventEmitter<any> = new EventEmitter();\n dragend: EventEmitter<any> = new EventEmitter();\n drop: EventEmitter<any> = new EventEmitter();\n out: EventEmitter<any> = new EventEmitter();\n over: EventEmitter<any> = new EventEmitter();\n remove: EventEmitter<any> = new EventEmitter();\n shadow: EventEmitter<any> = new EventEmitter();\n dropModel: EventEmitter<any> = new EventEmitter();\n removeModel: EventEmitter<any> = new EventEmitter();\n events: Array<string> = ['cancel', 'cloned', 'drag', 'dragend', 'drop', 'out', 'over', 'remove', 'shadow', 'dropModel', 'removeModel'];\n bags: Array<any> = [];\n\n add(name, drake) {\n let bag = this.find(name);\n if (bag) {\n throw new Error(`Bag named: ${name} already exists.`);\n }\n bag = {\n name,\n drake,\n };\n this.bags.push(bag);\n if (drake.models) {\n // models to sync with (must have same structure as containers)\n this.handleModels(name, drake);\n }\n if (!bag.initEvents) {\n this.setupEvents(bag);\n }\n return bag;\n }\n\n find(name) {\n for (let i = 0; i < this.bags.length; i++) {\n if (this.bags[i].name === name) {\n return this.bags[i];\n }\n }\n return null;\n }\n\n destroy(name) {\n const bag = this.find(name);\n const i = this.bags.indexOf(bag);\n this.bags.splice(i, 1);\n bag.drake.destroy();\n }\n\n setOptions(name, options) {\n const bag = this.add(name, dragula(options));\n this.handleModels(name, bag.drake);\n }\n\n handleModels(name, drake) {\n let dragElm;\n let dragIndex;\n let dropIndex;\n let sourceModel;\n drake.on('remove', (el, source) => {\n if (!drake.models) {\n return;\n }\n sourceModel = drake.models[drake.containers.indexOf(source)];\n sourceModel.splice(dragIndex, 1);\n this.removeModel.emit([name, el, source]);\n });\n drake.on('drag', (el, source) => {\n dragElm = el;\n dragIndex = this.domIndexOf(el, source);\n });\n drake.on('drop', (dropElm, target, source) => {\n if (!drake.models) {\n return;\n }\n dropIndex = this.domIndexOf(dropElm, target);\n sourceModel = drake.models[drake.containers.indexOf(source)];\n if (target === source) {\n sourceModel.splice(dropIndex, 0, sourceModel.splice(dragIndex, 1)[0]);\n } else {\n const notCopy = dragElm === dropElm;\n const targetModel = drake.models[drake.containers.indexOf(target)];\n const dropElmModel = notCopy ? sourceModel[dragIndex] : JSON.parse(JSON.stringify(sourceModel[dragIndex]));\n\n if (notCopy) {\n sourceModel.splice(dragIndex, 1);\n }\n targetModel.splice(dropIndex, 0, dropElmModel);\n target.removeChild(dropElm); // element must be removed for ngFor to apply correctly\n }\n this.dropModel.emit([name, dropElm, target, source]);\n });\n }\n\n setupEvents(bag) {\n bag.initEvents = true;\n const that = this;\n const emitter = (type) => {\n function replicate() {\n const args = Array.prototype.slice.call(arguments);\n that[type].emit([bag.name].concat(args));\n }\n\n bag.drake.on(type, replicate);\n };\n this.events.forEach(emitter);\n }\n\n domIndexOf(child, parent) {\n return Array.prototype.indexOf.call(parent.children, child);\n }\n}\n","// NG2\nimport { Directive, ElementRef, Input, OnChanges, OnInit } from '@angular/core';\n// Vendor\nimport dragula from '@bullhorn/dragula';\n// APP\nimport { notify } from 'novo-elements/utils';\nimport { NovoDragulaService } from './DragulaService';\n\n/**\n* @deprecated since v8.0.0 - slated for deletion.\n*\n* Moving away from all CommonJS dependencies to improve tree-shaking.\n*\n* Please look at built-in ng or third party drag-drop libraries like\n* angular-draggable-droppable, ngx-drag-drop, ngx-sortablejs, ng2-dragula.\n*/\n@Directive({\n selector: '[dragula]',\n})\nexport class NovoDragulaElement implements OnInit, OnChanges {\n @Input('dragula')\n bag: any;\n @Input()\n dragulaModel: any;\n drake: any = null;\n container: any;\n\n constructor(element: ElementRef, private dragulaService: NovoDragulaService) {\n notify('[dragula] has been deprecated - please look at built-in ng or third party drag-drop libraries instead');\n this.container = element.nativeElement;\n }\n\n ngOnInit() {\n const bag = this.dragulaService.find(this.bag);\n\n if (bag) {\n this.drake = bag.drake;\n this.checkModel();\n this.drake.containers.push(this.container);\n } else {\n this.drake = dragula({\n containers: [this.container],\n });\n this.checkModel();\n this.dragulaService.add(this.bag, this.drake);\n }\n }\n\n checkModel() {\n if (this.dragulaModel) {\n if (this.drake.models) {\n this.drake.models.push(this.dragulaModel);\n } else {\n this.drake.models = [this.dragulaModel];\n }\n }\n }\n\n ngOnChanges(changes) {\n if (changes && changes.dragulaModel) {\n if (this.drake) {\n if (this.drake.models) {\n const modelIndex = this.drake.models.indexOf(changes.dragulaModel.previousValue);\n this.drake.models.splice(modelIndex, 1, changes.dragulaModel.currentValue);\n } else {\n this.drake.models = [changes.dragulaModel.currentValue];\n }\n }\n }\n }\n}\n","// NG2\nimport { NgModule } from '@angular/core';\n// APP\nimport { NovoDragulaElement } from './Dragula';\n\n/**\n* @deprecated since v8.0.0 - slated for deletion.\n*\n* Moving away from all CommonJS dependencies to improve tree-shaking.\n*\n* Please look at built-in ng or third party drag-drop libraries like\n* angular-draggable-droppable, ngx-drag-drop, ngx-sortablejs, ng2-dragula.\n*/\n@NgModule({\n declarations: [NovoDragulaElement],\n exports: [NovoDragulaElement],\n})\nexport class NovoDragulaModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.NovoDragulaService"],"mappings":"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"}
1
+ {"version":3,"file":"novo-elements-addons.mjs","sources":["../../../projects/novo-elements/src/addons/ace-editor/AceEditor.ts","../../../projects/novo-elements/src/addons/ace-editor/AceEditor.module.ts","../../../projects/novo-elements/src/addons/ckeditor/CKEditor.ts","../../../projects/novo-elements/src/addons/ckeditor/CKEditor.module.ts","../../../projects/novo-elements/src/addons/code-editor/CodeEditor.ts","../../../projects/novo-elements/src/addons/code-editor/CodeEditor.module.ts","../../../projects/novo-elements/src/addons/dragula/DragulaService.ts","../../../projects/novo-elements/src/addons/dragula/Dragula.ts","../../../projects/novo-elements/src/addons/dragula/Dragula.module.ts","../../../projects/novo-elements/src/addons/novo-elements-addons.ts"],"sourcesContent":["// NG2\nimport { Component, ElementRef, EventEmitter, forwardRef, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n// Vendor\n// organize-imports-ignore\nimport * as ace from 'brace';\nimport 'brace/ext/language_tools.js';\nimport 'brace/mode/javascript';\nimport 'brace/theme/chrome';\n// APP\nimport { Helpers, notify } from 'novo-elements/utils';\n\nconst ACE_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoAceEditor),\n multi: true,\n};\n\n/**\n * @deprecated Use NovoCodeEditor instead\n */\n@Component({\n selector: 'novo-ace-editor',\n template: '',\n styleUrls: ['./AceEditor.scss'],\n providers: [ACE_VALUE_ACCESSOR],\n})\nexport class NovoAceEditor implements ControlValueAccessor, OnInit, OnDestroy {\n @Input()\n set theme(theme: any) {\n this.setTheme(theme);\n }\n\n @Input()\n set options(options: any) {\n this.setOptions(options);\n }\n\n @Input()\n set mode(mode: any) {\n this.setMode(mode);\n }\n\n @Input()\n name: string;\n @Output()\n blur = new EventEmitter();\n @Output()\n focus = new EventEmitter();\n\n private _options: any = {\n showPrintMargin: false,\n displayIndentGuides: true,\n };\n private _theme: string = 'chrome';\n private _mode: string = 'javascript';\n\n private text: string = '';\n private oldText: string;\n private editor: any;\n\n private onChange = (_: any) => {};\n private onTouched = () => {};\n\n constructor(private elementRef: ElementRef) {\n notify('[Deprecated]: The ace editor component is deprecated. Please migrate to novo-code-editor!');\n }\n\n ngOnDestroy() {\n if (this.editor) {\n this.editor.destroy();\n }\n }\n\n ngOnInit() {\n this.initializeEditor();\n this.initializeOptions();\n this.initializeEvents();\n }\n\n private initializeEditor() {\n const el = this.elementRef.nativeElement;\n this.editor = ace.edit(el);\n this.editor.$blockScrolling = Infinity;\n }\n\n private initializeOptions() {\n this.setOptions(this._options || {});\n this.setTheme(this._theme);\n this.setMode(this._mode);\n }\n\n private initializeEvents() {\n this.editor.on('focus', (event) => this.focus.emit(event));\n this.editor.on('blur', (event) => this.focus.emit(event));\n this.editor.on('change', () => this.updateText());\n this.editor.on('paste', () => this.updateText());\n }\n\n private updateText() {\n const newVal = this.editor.getValue();\n\n if (newVal === this.oldText) {\n return;\n }\n\n this.text = newVal;\n this.onChange(newVal);\n this.oldText = newVal;\n }\n\n private setText(text: string) {\n if (Helpers.isBlank(text)) {\n text = '';\n }\n if (this.text !== text) {\n this.text = text;\n this.editor.setValue(text);\n this.onChange(text);\n this.editor.clearSelection();\n }\n }\n\n private setOptions(options: any) {\n this._options = options;\n this.editor.setOptions(options || {});\n }\n\n private setTheme(theme: string) {\n this._theme = theme;\n this.editor.setTheme(`ace/theme/${theme}`);\n }\n\n private setMode(mode: any) {\n this._mode = mode;\n this.editor.getSession().setMode(`ace/mode/${this._mode}`);\n }\n\n writeValue(value: any) {\n this.setText(value);\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n}\n","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n// APP\nimport { NovoAceEditor } from './AceEditor';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [NovoAceEditor],\n exports: [NovoAceEditor],\n})\nexport class NovoAceEditorModule {}\n","// NG2\nimport { AfterViewInit, Component, EventEmitter, forwardRef, Input, NgZone, OnDestroy, Output, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n// Value accessor for the component (supports ngModel)\nconst CKEDITOR_CONTROL_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoCKEditorElement),\n multi: true,\n};\n\ndeclare var CKEDITOR: any;\ndeclare global {\n interface Window {\n CKEDITOR: any;\n }\n}\n// Prevents CKEDITOR from querying the page for all [contenteditable] elements (fixes a conflict against Codemirror Editor)\ntry {\n CKEDITOR.disableAutoInline = true;\n} catch(err) {\n // may be running in a context without CKEDITOR - ignore\n}\n\n/**\n * CKEditor component\n * Usage :\n * <novo-editor [(ngModel)]=\"data\" [config]=\"{...}\" debounce=\"500\"></novo-editor>\n */\n@Component({\n selector: 'novo-editor',\n providers: [CKEDITOR_CONTROL_VALUE_ACCESSOR],\n template: '<textarea [name]=\"name\" [id]=\"name\" #host></textarea>',\n styleUrls: ['./CKEditor.scss'],\n})\nexport class NovoCKEditorElement implements OnDestroy, AfterViewInit, ControlValueAccessor {\n @Input()\n config;\n @Input()\n debounce;\n @Input()\n name;\n @Input()\n minimal;\n @Input()\n startupFocus: boolean = false;\n @Input()\n fileBrowserImageUploadUrl: string = '';\n @Input()\n disabled: boolean = false;\n\n @Output()\n change = new EventEmitter();\n @Output()\n ready = new EventEmitter();\n @Output()\n blur = new EventEmitter();\n @Output()\n focus = new EventEmitter();\n @Output()\n paste = new EventEmitter();\n @Output()\n loaded = new EventEmitter();\n @ViewChild('host')\n host;\n\n _value: string = '';\n instance;\n debounceTimeout;\n\n constructor(private zone: NgZone) {}\n\n get value() {\n return this._value;\n }\n\n @Input()\n set value(v) {\n if (v !== this._value) {\n this._value = v;\n this.onChange(v);\n }\n }\n\n ngOnDestroy() {\n if (this.instance) {\n this.instance.focusManager.blur(true); // Remove focus from editor\n setTimeout(() => {\n this.instance.removeAllListeners();\n const aInstance = CKEDITOR.instances[this.instance.name];\n if (aInstance) {\n aInstance.destroy();\n }\n this.instance.destroy();\n this.instance = null;\n });\n }\n }\n\n ngAfterViewInit() {\n const config = Object.assign(this.getBaseConfig(), this.config);\n if (this.startupFocus) {\n config.startupFocus = true;\n }\n if (this.disabled) {\n config.readOnly = true;\n }\n this.ckeditorInit(config);\n }\n\n updateValue(value) {\n this.zone.run(() => {\n this.value = value;\n this.onChange(value);\n this.onTouched();\n this.change.emit(value);\n });\n }\n\n private ckeditorInit(config) {\n if (!CKEDITOR) {\n console.error('Make sure to include CKEditor sources in your dependencies!');\n return;\n }\n\n // CKEditor replace textarea\n this.instance = CKEDITOR.replace(this.host.nativeElement, config);\n\n // Set initial value\n this.instance.setData(this.value);\n\n // listen for instanceReady event\n this.instance.on('instanceReady', (evt) => {\n // send the evt to the EventEmitter\n this.ready.emit(evt);\n });\n\n // CKEditor change event\n this.instance.on('change', () => {\n this.onTouched();\n const value = this.instance.getData();\n\n // Debounce update\n if (this.debounce) {\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n }\n this.debounceTimeout = setTimeout(() => {\n this.updateValue(value);\n this.debounceTimeout = null;\n }, parseInt(this.debounce, 10));\n } else {\n this.updateValue(value);\n }\n });\n this.instance.on('blur', (event) => {\n this.blur.emit(event);\n });\n this.instance.on('focus', (event) => {\n this.focus.emit(event);\n });\n this.instance.on('paste', (event) => {\n this.paste.emit(event);\n });\n this.instance.on('loaded', (event) => {\n this.loaded.emit(event);\n });\n }\n\n getBaseConfig(): { [key: string]: any } {\n const baseConfig = {\n enterMode: CKEDITOR.ENTER_BR,\n entities: false,\n shiftEnterMode: CKEDITOR.ENTER_P,\n disableNativeSpellChecker: false,\n removePlugins: 'liststyle,tabletools,contextmenu,tableselection', // allows browser based spell checking\n extraAllowedContent: '*(*){*};table tbody tr td th[*];', // allows class names (*) and inline styles {*} for all and attributes [*] on tables\n font_names:\n 'Arial/Arial, Helvetica, sans-serif;' +\n 'Calibri/Calibri, Verdana, Geneva, sans-serif;' +\n 'Comic Sans MS/Comic Sans MS, cursive;' +\n 'Courier New/Courier New, Courier, monospace;' +\n 'Georgia/Georgia, serif;' +\n 'Lucida Sans Unicode/Lucida Sans Unicode, Lucida Grande, sans-serif;' +\n 'Tahoma/Tahoma, Geneva, sans-serif;' +\n 'Times New Roman/Times New Roman, Times, serif;' +\n 'Trebuchet MS/Trebuchet MS, Helvetica, sans-serif;' +\n 'Verdana/Verdana, Geneva, sans-serif',\n };\n\n const minimalConfig = {\n toolbar: [\n {\n name: 'basicstyles',\n items: [\n 'Styles',\n 'FontSize',\n 'Bold',\n 'Italic',\n 'Underline',\n 'TextColor',\n '-',\n 'NumberedList',\n 'BulletedList',\n 'Outdent',\n 'Indent',\n 'Link',\n ],\n },\n ],\n };\n\n const extendedConfig = {\n toolbar: [\n { name: 'clipboard', items: ['Paste', 'PasteText', 'PasteFromWord', 'Undo', 'Redo'] },\n {\n name: 'paragraph',\n items: [\n 'NumberedList',\n 'BulletedList',\n 'Outdent',\n 'Indent',\n 'Blockquote',\n 'JustifyLeft',\n 'JustifyCenter',\n 'JustifyRight',\n 'JustifyBlock',\n 'BidiLtr',\n 'BidiRtl',\n ],\n },\n { name: 'links', items: ['Link'] },\n { name: 'insert', items: ['Image', 'Table', 'HorizontalRule'] },\n { name: 'tools', items: ['Maximize', 'Source'] },\n '/', // line break\n { name: 'basicstyles', items: ['Bold', 'Italic', 'Underline', 'Strike', 'Subscript', 'Superscript'] },\n { name: 'styles', items: ['Styles', 'Format', 'Font', 'FontSize'] },\n { name: 'colors', items: ['TextColor', 'BGColor'] },\n ],\n filebrowserImageUploadUrl: this.fileBrowserImageUploadUrl,\n };\n\n return Object.assign(baseConfig, this.minimal ? minimalConfig : extendedConfig);\n }\n\n writeValue(value) {\n this._value = value;\n if (this.instance) {\n this.instance.setData(value);\n }\n }\n\n onChange(value?: any) {}\n\n onTouched(event?) {}\n\n registerOnChange(fn) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n if (this.instance) {\n CKEDITOR.instances[this.instance.name].setReadOnly(disabled);\n }\n }\n\n insertText(text) {\n const trimmedText = text.trim();\n this.instance.insertText(trimmedText);\n }\n}\n","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n// APP\nimport { NovoCKEditorElement } from './CKEditor';\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n declarations: [NovoCKEditorElement],\n exports: [NovoCKEditorElement],\n})\nexport class NovoNovoCKEditorModule {}\n","// NG2\nimport { AfterViewInit, Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, OnDestroy, OnInit, Output, ViewChild, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n// Vendor\nimport { defaultKeymap } from '@codemirror/commands';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { Annotation, EditorState } from '@codemirror/state';\nimport { EditorView, keymap } from '@codemirror/view';\nimport { basicSetup } from 'codemirror';\n\n// organize-imports-ignore\n\n// APP\nconst CODE_EDITOR_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoCodeEditor),\n multi: true,\n};\n\n// CodeMirror transaction annotation to show changes that came in through writeValue (FormControl value) as opposed to UI editing\nconst FormControlCodeWriter = Annotation.define();\n\n// (This is a replacement for the \"novo-ace-editor\". Notably, we are no longer naming it based on the underlying component. It is possible, in the future,\n// we decide there is another code editing component that better fits our use case - in which situation we should replace the implementation here, but keep its name)\n@Component({\n selector: 'novo-code-editor',\n template: '',\n styleUrls: ['./CodeEditor.scss'],\n providers: [CODE_EDITOR_VALUE_ACCESSOR]\n})\nexport class NovoCodeEditor implements ControlValueAccessor, OnInit, OnDestroy, AfterViewInit {\n @Input()\n theme: string = 'default';\n\n @Input()\n lineNumbers = true;\n\n @Input()\n name: string;\n\n @Output()\n blur = new EventEmitter();\n @Output()\n focus = new EventEmitter();\n\n private changed = new EventEmitter<string>();\n\n @Input() mode: string = 'javascript';\n\n @ViewChild('editorRoot')\n editorRoot: ElementRef<HTMLElement>;\n\n editorView: EditorView;\n initialValue = '';\n\n @HostBinding('class.editor-disabled')\n private disabled = false;\n\n constructor(private elementRef: ElementRef) {}\n\n ngOnInit(): void {\n }\n\n ngOnDestroy(): void {\n \n }\n\n ngAfterViewInit(): void {\n this.createEditorView();\n }\n\n createEditorView(): void {\n const extensions = [\n basicSetup,\n keymap.of(defaultKeymap)\n ];\n if (this.mode === 'javascript') {\n extensions.push(javascript());\n }\n const initialEditorState = EditorState.create({\n doc: this.initialValue,\n extensions,\n });\n this.editorView = new EditorView({\n state: initialEditorState,\n parent: this.elementRef.nativeElement,\n dispatch: (transaction, view) => {\n // Prevent changes if the form is disabled - unless the change came from writeValue function\n if (transaction.annotation(FormControlCodeWriter) || !(this.disabled && transaction.docChanged)) {\n view.update([transaction]);\n }\n if (transaction.docChanged) {\n this.changed.emit(view.state.doc.toString());\n }\n }\n });\n }\n\n @HostListener('focus')\n onFocus() {\n this.focus.emit();\n }\n\n @HostListener('blur')\n onBlur() {\n this.blur.emit();\n }\n\n // ControlValueAccessor forward implementation\n writeValue(value: any) {\n if (this.editorView) {\n this.editorView.dispatch({\n changes: {\n from: 0,\n to: this.editorView.state.doc.length,\n insert: value,\n },\n annotations: FormControlCodeWriter.of({}),\n });\n } else if (value != null) {\n this.initialValue = value;\n }\n }\n\n registerOnChange(fn: any) {\n this.changed.subscribe(fn);\n }\n\n registerOnTouched(fn: any) {\n this.blur.subscribe(fn);\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { NovoCodeEditor } from \"./CodeEditor\";\n\n@NgModule({\n imports: [CommonModule, FormsModule ],\n declarations: [NovoCodeEditor],\n exports: [NovoCodeEditor]\n})\nexport class NovoCodeEditorModule {}","// NG2\nimport { EventEmitter, Injectable } from '@angular/core';\n// Vendor\nimport dragula from '@bullhorn/dragula';\n\n/**\n* @deprecated since v8.0.0 - slated for deletion.\n*\n* Moving away from all CommonJS dependencies to improve tree-shaking.\n*\n* Please look at built-in ng or third party drag-drop libraries like\n* angular-draggable-droppable, ngx-drag-drop, ngx-sortablejs, ng2-dragula.\n*/\n@Injectable()\nexport class NovoDragulaService {\n cancel: EventEmitter<any> = new EventEmitter();\n cloned: EventEmitter<any> = new EventEmitter();\n drag: EventEmitter<any> = new EventEmitter();\n dragend: EventEmitter<any> = new EventEmitter();\n drop: EventEmitter<any> = new EventEmitter();\n out: EventEmitter<any> = new EventEmitter();\n over: EventEmitter<any> = new EventEmitter();\n remove: EventEmitter<any> = new EventEmitter();\n shadow: EventEmitter<any> = new EventEmitter();\n dropModel: EventEmitter<any> = new EventEmitter();\n removeModel: EventEmitter<any> = new EventEmitter();\n events: Array<string> = ['cancel', 'cloned', 'drag', 'dragend', 'drop', 'out', 'over', 'remove', 'shadow', 'dropModel', 'removeModel'];\n bags: Array<any> = [];\n\n add(name, drake) {\n let bag = this.find(name);\n if (bag) {\n throw new Error(`Bag named: ${name} already exists.`);\n }\n bag = {\n name,\n drake,\n };\n this.bags.push(bag);\n if (drake.models) {\n // models to sync with (must have same structure as containers)\n this.handleModels(name, drake);\n }\n if (!bag.initEvents) {\n this.setupEvents(bag);\n }\n return bag;\n }\n\n find(name) {\n for (let i = 0; i < this.bags.length; i++) {\n if (this.bags[i].name === name) {\n return this.bags[i];\n }\n }\n return null;\n }\n\n destroy(name) {\n const bag = this.find(name);\n const i = this.bags.indexOf(bag);\n this.bags.splice(i, 1);\n bag.drake.destroy();\n }\n\n setOptions(name, options) {\n const bag = this.add(name, dragula(options));\n this.handleModels(name, bag.drake);\n }\n\n handleModels(name, drake) {\n let dragElm;\n let dragIndex;\n let dropIndex;\n let sourceModel;\n drake.on('remove', (el, source) => {\n if (!drake.models) {\n return;\n }\n sourceModel = drake.models[drake.containers.indexOf(source)];\n sourceModel.splice(dragIndex, 1);\n this.removeModel.emit([name, el, source]);\n });\n drake.on('drag', (el, source) => {\n dragElm = el;\n dragIndex = this.domIndexOf(el, source);\n });\n drake.on('drop', (dropElm, target, source) => {\n if (!drake.models) {\n return;\n }\n dropIndex = this.domIndexOf(dropElm, target);\n sourceModel = drake.models[drake.containers.indexOf(source)];\n if (target === source) {\n sourceModel.splice(dropIndex, 0, sourceModel.splice(dragIndex, 1)[0]);\n } else {\n const notCopy = dragElm === dropElm;\n const targetModel = drake.models[drake.containers.indexOf(target)];\n const dropElmModel = notCopy ? sourceModel[dragIndex] : JSON.parse(JSON.stringify(sourceModel[dragIndex]));\n\n if (notCopy) {\n sourceModel.splice(dragIndex, 1);\n }\n targetModel.splice(dropIndex, 0, dropElmModel);\n target.removeChild(dropElm); // element must be removed for ngFor to apply correctly\n }\n this.dropModel.emit([name, dropElm, target, source]);\n });\n }\n\n setupEvents(bag) {\n bag.initEvents = true;\n const that = this;\n const emitter = (type) => {\n function replicate() {\n const args = Array.prototype.slice.call(arguments);\n that[type].emit([bag.name].concat(args));\n }\n\n bag.drake.on(type, replicate);\n };\n this.events.forEach(emitter);\n }\n\n domIndexOf(child, parent) {\n return Array.prototype.indexOf.call(parent.children, child);\n }\n}\n","// NG2\nimport { Directive, ElementRef, Input, OnChanges, OnInit } from '@angular/core';\n// Vendor\nimport dragula from '@bullhorn/dragula';\n// APP\nimport { notify } from 'novo-elements/utils';\nimport { NovoDragulaService } from './DragulaService';\n\n/**\n* @deprecated since v8.0.0 - slated for deletion.\n*\n* Moving away from all CommonJS dependencies to improve tree-shaking.\n*\n* Please look at built-in ng or third party drag-drop libraries like\n* angular-draggable-droppable, ngx-drag-drop, ngx-sortablejs, ng2-dragula.\n*/\n@Directive({\n selector: '[dragula]',\n})\nexport class NovoDragulaElement implements OnInit, OnChanges {\n @Input('dragula')\n bag: any;\n @Input()\n dragulaModel: any;\n drake: any = null;\n container: any;\n\n constructor(element: ElementRef, private dragulaService: NovoDragulaService) {\n notify('[dragula] has been deprecated - please look at built-in ng or third party drag-drop libraries instead');\n this.container = element.nativeElement;\n }\n\n ngOnInit() {\n const bag = this.dragulaService.find(this.bag);\n\n if (bag) {\n this.drake = bag.drake;\n this.checkModel();\n this.drake.containers.push(this.container);\n } else {\n this.drake = dragula({\n containers: [this.container],\n });\n this.checkModel();\n this.dragulaService.add(this.bag, this.drake);\n }\n }\n\n checkModel() {\n if (this.dragulaModel) {\n if (this.drake.models) {\n this.drake.models.push(this.dragulaModel);\n } else {\n this.drake.models = [this.dragulaModel];\n }\n }\n }\n\n ngOnChanges(changes) {\n if (changes && changes.dragulaModel) {\n if (this.drake) {\n if (this.drake.models) {\n const modelIndex = this.drake.models.indexOf(changes.dragulaModel.previousValue);\n this.drake.models.splice(modelIndex, 1, changes.dragulaModel.currentValue);\n } else {\n this.drake.models = [changes.dragulaModel.currentValue];\n }\n }\n }\n }\n}\n","// NG2\nimport { NgModule } from '@angular/core';\n// APP\nimport { NovoDragulaElement } from './Dragula';\n\n/**\n* @deprecated since v8.0.0 - slated for deletion.\n*\n* Moving away from all CommonJS dependencies to improve tree-shaking.\n*\n* Please look at built-in ng or third party drag-drop libraries like\n* angular-draggable-droppable, ngx-drag-drop, ngx-sortablejs, ng2-dragula.\n*/\n@NgModule({\n declarations: [NovoDragulaElement],\n exports: [NovoDragulaElement],\n})\nexport class NovoDragulaModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.NovoDragulaService"],"mappings":"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"}