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
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Copyright © 2018-2022 Ferdinand Prantl
3
+ * https://www.npmjs.com/package/timezone-support
4
+ **/
5
+ const formattingToken = /(\[[^[]*\])|([-:/.()\s]+)|(A|a|YYYY|YY?|MM?|DD?|d|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g;
6
+ const formatTokenFunctions = {};
7
+ const formatters = {};
8
+ export function formatZonedTime(time, format) {
9
+ let formatter = formatters[format];
10
+ if (!formatter) {
11
+ formatter = formatters[format] = makeFormatter(format);
12
+ }
13
+ return formatter(time);
14
+ }
15
+ function makeFormatter(format) {
16
+ const array = format.match(formattingToken);
17
+ const { length } = array;
18
+ for (let i = 0; i < length; ++i) {
19
+ const token = array[i];
20
+ const formatter = formatTokenFunctions[token];
21
+ if (formatter) {
22
+ array[i] = formatter;
23
+ }
24
+ else {
25
+ array[i] = token.replace(/^\[|\]$/g, '');
26
+ }
27
+ }
28
+ return function (time) {
29
+ let output = '';
30
+ for (const token of array) {
31
+ output += typeof token === 'function' ? token.call(time) : token;
32
+ }
33
+ return output;
34
+ };
35
+ }
36
+ const addFormatToken = function (token, padded, property) {
37
+ const callback = typeof property === 'string' ? function () {
38
+ return this[property];
39
+ } : property;
40
+ if (token) {
41
+ formatTokenFunctions[token] = callback;
42
+ }
43
+ if (padded) {
44
+ formatTokenFunctions[padded[0]] = function () {
45
+ return padWithZeros(callback.call(this), padded[1]);
46
+ };
47
+ }
48
+ };
49
+ addFormatToken('A', 0, function () { return this.hours < 12 ? 'AM' : 'PM'; });
50
+ addFormatToken('a', 0, function () { return this.hours < 12 ? 'am' : 'pm'; });
51
+ addFormatToken('S', 0, function () { return Math.floor(this.milliseconds / 100); });
52
+ addFormatToken(0, ['SS', 2], function () { return Math.floor(this.milliseconds / 10); });
53
+ addFormatToken(0, ['SSS', 3], 'milliseconds');
54
+ addFormatToken('s', ['ss', 2], 'seconds');
55
+ addFormatToken('m', ['mm', 2], 'minutes');
56
+ addFormatToken('h', ['hh', 2], function () { return (this.hours % 12) || 12; });
57
+ addFormatToken('H', ['HH', 2], 'hours');
58
+ addFormatToken('d', 0, 'dayOfWeek');
59
+ addFormatToken('D', ['DD', 2], 'day');
60
+ addFormatToken('M', ['MM', 2], 'month');
61
+ addFormatToken(0, ['YY', 2], function () { return this.year % 100; });
62
+ addFormatToken('Y', ['YYYY', 4], 'year');
63
+ addFormatToken('z', 0, function () { return this.zone.abbreviation; });
64
+ function addTimeZoneFormatToken(token, separator) {
65
+ addFormatToken(token, 0, function () {
66
+ let offset = -this.zone.offset;
67
+ const sign = offset < 0 ? '-' : '+';
68
+ offset = Math.abs(offset);
69
+ return sign + padWithZeros(Math.floor(offset / 60), 2) + separator + padWithZeros(offset % 60, 2);
70
+ });
71
+ }
72
+ addTimeZoneFormatToken('Z', ':');
73
+ addTimeZoneFormatToken('ZZ', '');
74
+ const padToN = [undefined, undefined, padToTwo, padToThree, padToFour];
75
+ function padWithZeros(number, length) {
76
+ return padToN[length](number);
77
+ }
78
+ function padToTwo(number) {
79
+ return number > 9 ? number : '0' + number;
80
+ }
81
+ function padToThree(number) {
82
+ return number > 99 ? number : number > 9 ? '0' + number : '00' + number;
83
+ }
84
+ function padToFour(number) {
85
+ return number > 999 ? number : number > 99 ? '0' + number : number > 9 ? '00' + number : '000' + number;
86
+ }
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXpvbmUtc3VwcG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25vdm8tZWxlbWVudHMvc3JjL3V0aWxzL2RhdGUvdGltZXpvbmUtc3VwcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0lBR0k7QUFFSixNQUFNLGVBQWUsR0FBRyxrRkFBa0YsQ0FBQztBQUMzRyxNQUFNLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztBQUNoQyxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFFdEIsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUFJLEVBQUUsTUFBTTtJQUMxQyxJQUFJLFNBQVMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkMsSUFBSSxDQUFDLFNBQVMsRUFBRTtRQUNkLFNBQVMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ3hEO0lBQ0QsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDekIsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFFLE1BQU07SUFDNUIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM1QyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUU7UUFDL0IsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLE1BQU0sU0FBUyxHQUFHLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLElBQUksU0FBUyxFQUFFO1lBQ2IsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztTQUN0QjthQUFNO1lBQ0wsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQzFDO0tBQ0Y7SUFDRCxPQUFPLFVBQVUsSUFBSTtRQUNuQixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsS0FBSyxNQUFNLEtBQUssSUFBSSxLQUFLLEVBQUU7WUFDekIsTUFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1NBQ2xFO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxDQUFBO0FBQ0gsQ0FBQztBQUVELE1BQU0sY0FBYyxHQUFHLFVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRO0lBQ3RELE1BQU0sUUFBUSxHQUFHLE9BQU8sUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDOUMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDYixJQUFJLEtBQUssRUFBRTtRQUNULG9CQUFvQixDQUFDLEtBQUssQ0FBQyxHQUFHLFFBQVEsQ0FBQztLQUN4QztJQUNELElBQUksTUFBTSxFQUFFO1FBQ1Ysb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUc7WUFDaEMsT0FBTyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUE7S0FDRjtBQUNILENBQUMsQ0FBQTtBQUVELGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLGNBQWMsT0FBTyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3RSxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxjQUFjLE9BQU8sSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN0UsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsY0FBYyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25GLGNBQWMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsY0FBYyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hGLGNBQWMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsY0FBYyxDQUFDLENBQUM7QUFDOUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUMxQyxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQzFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsY0FBYyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvRSxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3hDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ3BDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDdEMsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN4QyxjQUFjLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLGNBQWMsT0FBTyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JFLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDekMsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsY0FBYyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFdEUsU0FBUyxzQkFBc0IsQ0FBRSxLQUFLLEVBQUUsU0FBUztJQUMvQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUN2QixJQUFJLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQy9CLE1BQU0sSUFBSSxHQUFHLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ3BDLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFCLE9BQU8sSUFBSSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxTQUFTLEdBQUcsWUFBWSxDQUFDLE1BQU0sR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEcsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsc0JBQXNCLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ2pDLHNCQUFzQixDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztBQUVqQyxNQUFNLE1BQU0sR0FBRyxDQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUUsQ0FBQztBQUV6RSxTQUFTLFlBQVksQ0FBRSxNQUFNLEVBQUUsTUFBTTtJQUNuQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNoQyxDQUFDO0FBRUQsU0FBUyxRQUFRLENBQUUsTUFBTTtJQUN2QixPQUFPLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztBQUM1QyxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUUsTUFBTTtJQUN6QixPQUFPLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztBQUMxRSxDQUFDO0FBRUQsU0FBUyxTQUFTLENBQUUsTUFBTTtJQUN4QixPQUFPLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztBQUMxRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIFxuICogQ29weXJpZ2h0IMKpIDIwMTgtMjAyMiBGZXJkaW5hbmQgUHJhbnRsXG4gKiBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS90aW1lem9uZS1zdXBwb3J0XG4gKiovXG5cbmNvbnN0IGZvcm1hdHRpbmdUb2tlbiA9IC8oXFxbW15bXSpcXF0pfChbLTovLigpXFxzXSspfChBfGF8WVlZWXxZWT98TU0/fEREP3xkfGhoP3xISD98bW0/fHNzP3xTezEsM318enxaWj8pL2c7XG5jb25zdCBmb3JtYXRUb2tlbkZ1bmN0aW9ucyA9IHt9O1xuY29uc3QgZm9ybWF0dGVycyA9IHt9O1xuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0Wm9uZWRUaW1lKHRpbWUsIGZvcm1hdCkge1xuICBsZXQgZm9ybWF0dGVyID0gZm9ybWF0dGVyc1tmb3JtYXRdO1xuICBpZiAoIWZvcm1hdHRlcikge1xuICAgIGZvcm1hdHRlciA9IGZvcm1hdHRlcnNbZm9ybWF0XSA9IG1ha2VGb3JtYXR0ZXIoZm9ybWF0KTtcbiAgfVxuICByZXR1cm4gZm9ybWF0dGVyKHRpbWUpO1xufVxuXG5mdW5jdGlvbiBtYWtlRm9ybWF0dGVyIChmb3JtYXQpIHtcbiAgY29uc3QgYXJyYXkgPSBmb3JtYXQubWF0Y2goZm9ybWF0dGluZ1Rva2VuKTtcbiAgY29uc3QgeyBsZW5ndGggfSA9IGFycmF5O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7XG4gICAgY29uc3QgdG9rZW4gPSBhcnJheVtpXTtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBmb3JtYXRUb2tlbkZ1bmN0aW9uc1t0b2tlbl07XG4gICAgaWYgKGZvcm1hdHRlcikge1xuICAgICAgYXJyYXlbaV0gPSBmb3JtYXR0ZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFycmF5W2ldID0gdG9rZW4ucmVwbGFjZSgvXlxcW3xcXF0kL2csICcnKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZ1bmN0aW9uICh0aW1lKSB7XG4gICAgbGV0IG91dHB1dCA9ICcnO1xuICAgIGZvciAoY29uc3QgdG9rZW4gb2YgYXJyYXkpIHtcbiAgICAgIG91dHB1dCArPSB0eXBlb2YgdG9rZW4gPT09ICdmdW5jdGlvbicgPyB0b2tlbi5jYWxsKHRpbWUpIDogdG9rZW47XG4gICAgfVxuICAgIHJldHVybiBvdXRwdXQ7XG4gIH1cbn1cblxuY29uc3QgYWRkRm9ybWF0VG9rZW4gPSBmdW5jdGlvbiAodG9rZW4sIHBhZGRlZCwgcHJvcGVydHkpIHtcbiAgY29uc3QgY2FsbGJhY2sgPSB0eXBlb2YgcHJvcGVydHkgPT09ICdzdHJpbmcnID8gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzW3Byb3BlcnR5XTtcbiAgfSA6IHByb3BlcnR5O1xuICBpZiAodG9rZW4pIHtcbiAgICBmb3JtYXRUb2tlbkZ1bmN0aW9uc1t0b2tlbl0gPSBjYWxsYmFjaztcbiAgfVxuICBpZiAocGFkZGVkKSB7XG4gICAgZm9ybWF0VG9rZW5GdW5jdGlvbnNbcGFkZGVkWzBdXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBwYWRXaXRoWmVyb3MoY2FsbGJhY2suY2FsbCh0aGlzKSwgcGFkZGVkWzFdKTtcbiAgICB9XG4gIH1cbn1cblxuYWRkRm9ybWF0VG9rZW4oJ0EnLCAwLCBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLmhvdXJzIDwgMTIgPyAnQU0nIDogJ1BNJyB9KTtcbmFkZEZvcm1hdFRva2VuKCdhJywgMCwgZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5ob3VycyA8IDEyID8gJ2FtJyA6ICdwbScgfSk7XG5hZGRGb3JtYXRUb2tlbignUycsIDAsIGZ1bmN0aW9uICgpIHsgcmV0dXJuIE1hdGguZmxvb3IodGhpcy5taWxsaXNlY29uZHMgLyAxMDApIH0pO1xuYWRkRm9ybWF0VG9rZW4oMCwgWydTUycsIDJdLCBmdW5jdGlvbiAoKSB7IHJldHVybiBNYXRoLmZsb29yKHRoaXMubWlsbGlzZWNvbmRzIC8gMTApIH0pO1xuYWRkRm9ybWF0VG9rZW4oMCwgWydTU1MnLCAzXSwgJ21pbGxpc2Vjb25kcycpO1xuYWRkRm9ybWF0VG9rZW4oJ3MnLCBbJ3NzJywgMl0sICdzZWNvbmRzJyk7XG5hZGRGb3JtYXRUb2tlbignbScsIFsnbW0nLCAyXSwgJ21pbnV0ZXMnKTtcbmFkZEZvcm1hdFRva2VuKCdoJywgWydoaCcsIDJdLCBmdW5jdGlvbiAoKSB7IHJldHVybiAodGhpcy5ob3VycyAlIDEyKSB8fCAxMiB9KTtcbmFkZEZvcm1hdFRva2VuKCdIJywgWydISCcsIDJdLCAnaG91cnMnKTtcbmFkZEZvcm1hdFRva2VuKCdkJywgMCwgJ2RheU9mV2VlaycpO1xuYWRkRm9ybWF0VG9rZW4oJ0QnLCBbJ0REJywgMl0sICdkYXknKTtcbmFkZEZvcm1hdFRva2VuKCdNJywgWydNTScsIDJdLCAnbW9udGgnKTtcbmFkZEZvcm1hdFRva2VuKDAsIFsnWVknLCAyXSwgZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy55ZWFyICUgMTAwIH0pO1xuYWRkRm9ybWF0VG9rZW4oJ1knLCBbJ1lZWVknLCA0XSwgJ3llYXInKTtcbmFkZEZvcm1hdFRva2VuKCd6JywgMCwgZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy56b25lLmFiYnJldmlhdGlvbiB9KTtcblxuZnVuY3Rpb24gYWRkVGltZVpvbmVGb3JtYXRUb2tlbiAodG9rZW4sIHNlcGFyYXRvcikge1xuICBhZGRGb3JtYXRUb2tlbih0b2tlbiwgMCwgZnVuY3Rpb24gKCkge1xuICAgIGxldCBvZmZzZXQgPSAtdGhpcy56b25lLm9mZnNldDtcbiAgICBjb25zdCBzaWduID0gb2Zmc2V0IDwgMCA/ICctJyA6ICcrJztcbiAgICBvZmZzZXQgPSBNYXRoLmFicyhvZmZzZXQpO1xuICAgIHJldHVybiBzaWduICsgcGFkV2l0aFplcm9zKE1hdGguZmxvb3Iob2Zmc2V0IC8gNjApLCAyKSArIHNlcGFyYXRvciArIHBhZFdpdGhaZXJvcyhvZmZzZXQgJSA2MCwgMik7XG4gIH0pO1xufVxuXG5hZGRUaW1lWm9uZUZvcm1hdFRva2VuKCdaJywgJzonKTtcbmFkZFRpbWVab25lRm9ybWF0VG9rZW4oJ1paJywgJycpO1xuXG5jb25zdCBwYWRUb04gPSBbIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBwYWRUb1R3bywgcGFkVG9UaHJlZSwgcGFkVG9Gb3VyIF07XG5cbmZ1bmN0aW9uIHBhZFdpdGhaZXJvcyAobnVtYmVyLCBsZW5ndGgpIHtcbiAgcmV0dXJuIHBhZFRvTltsZW5ndGhdKG51bWJlcik7XG59XG5cbmZ1bmN0aW9uIHBhZFRvVHdvIChudW1iZXIpIHtcbiAgcmV0dXJuIG51bWJlciA+IDkgPyBudW1iZXIgOiAnMCcgKyBudW1iZXI7XG59XG5cbmZ1bmN0aW9uIHBhZFRvVGhyZWUgKG51bWJlcikge1xuICByZXR1cm4gbnVtYmVyID4gOTkgPyBudW1iZXIgOiBudW1iZXIgPiA5ID8gJzAnICsgbnVtYmVyIDogJzAwJyArIG51bWJlcjtcbn1cblxuZnVuY3Rpb24gcGFkVG9Gb3VyIChudW1iZXIpIHtcbiAgcmV0dXJuIG51bWJlciA+IDk5OSA/IG51bWJlciA6IG51bWJlciA+IDk5ID8gJzAnICsgbnVtYmVyIDogbnVtYmVyID4gOSA/ICcwMCcgKyBudW1iZXIgOiAnMDAwJyArIG51bWJlcjtcbn1cbiJdfQ==
@@ -1,11 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { forwardRef, EventEmitter, Component, Input, Output, NgModule } from '@angular/core';
3
3
  import { NG_VALUE_ACCESSOR } 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 } from 'novo-elements/utils';
8
+ import { notify, Helpers } from 'novo-elements/utils';
9
9
  import { CommonModule } from '@angular/common';
10
10
 
11
11
  // NG2
@@ -14,6 +14,9 @@ const ACE_VALUE_ACCESSOR = {
14
14
  useExisting: forwardRef(() => NovoAceEditor),
15
15
  multi: true,
16
16
  };
17
+ /**
18
+ * @deprecated Use NovoCodeEditor instead
19
+ */
17
20
  class NovoAceEditor {
18
21
  constructor(elementRef) {
19
22
  this.elementRef = elementRef;
@@ -28,6 +31,7 @@ class NovoAceEditor {
28
31
  this.text = '';
29
32
  this.onChange = (_) => { };
30
33
  this.onTouched = () => { };
34
+ notify('[Deprecated]: The ace editor component is deprecated. Please migrate to novo-code-editor!');
31
35
  }
32
36
  set theme(theme) {
33
37
  this.setTheme(theme);
@@ -107,14 +111,10 @@ class NovoAceEditor {
107
111
  }
108
112
  }
109
113
  NovoAceEditor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoAceEditor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
110
- 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 });
114
+ 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"] });
111
115
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoAceEditor, decorators: [{
112
116
  type: Component,
113
- args: [{
114
- selector: 'novo-ace-editor',
115
- template: '',
116
- providers: [ACE_VALUE_ACCESSOR],
117
- }]
117
+ args: [{ selector: 'novo-ace-editor', template: '', providers: [ACE_VALUE_ACCESSOR], styles: [":host{display:block;width:100%;min-height:200px}\n"] }]
118
118
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { theme: [{
119
119
  type: Input
120
120
  }], options: [{
@@ -1 +1 @@
1
- {"version":3,"file":"novo-elements-addons-ace-editor.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/ace-editor/novo-elements-addons-ace-editor.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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"novo-elements-addons-ace-editor.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/ace-editor/novo-elements-addons-ace-editor.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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -10,6 +10,13 @@ const CKEDITOR_CONTROL_VALUE_ACCESSOR = {
10
10
  useExisting: forwardRef(() => NovoCKEditorElement),
11
11
  multi: true,
12
12
  };
13
+ // Prevents CKEDITOR from querying the page for all [contenteditable] elements (fixes a conflict against Codemirror Editor)
14
+ try {
15
+ CKEDITOR.disableAutoInline = true;
16
+ }
17
+ catch (err) {
18
+ // may be running in a context without CKEDITOR - ignore
19
+ }
13
20
  /**
14
21
  * CKEditor component
15
22
  * Usage :
@@ -212,14 +219,10 @@ class NovoCKEditorElement {
212
219
  }
213
220
  }
214
221
  NovoCKEditorElement.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoCKEditorElement, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
215
- 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 });
222
+ 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"] });
216
223
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoCKEditorElement, decorators: [{
217
224
  type: Component,
218
- args: [{
219
- selector: 'novo-editor',
220
- providers: [CKEDITOR_CONTROL_VALUE_ACCESSOR],
221
- template: '<textarea [name]="name" [id]="name" #host></textarea>',
222
- }]
225
+ 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"] }]
223
226
  }], ctorParameters: function () { return [{ type: i0.NgZone }]; }, propDecorators: { config: [{
224
227
  type: Input
225
228
  }], debounce: [{
@@ -1 +1 @@
1
- {"version":3,"file":"novo-elements-addons-ckeditor.mjs","sources":["../../../projects/novo-elements/src/addons/ckeditor/CKEditor.ts","../../../projects/novo-elements/src/addons/ckeditor/CKEditor.module.ts","../../../projects/novo-elements/src/addons/ckeditor/novo-elements-addons-ckeditor.ts"],"sourcesContent":["// 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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"novo-elements-addons-ckeditor.mjs","sources":["../../../projects/novo-elements/src/addons/ckeditor/CKEditor.ts","../../../projects/novo-elements/src/addons/ckeditor/CKEditor.module.ts","../../../projects/novo-elements/src/addons/ckeditor/novo-elements-addons-ckeditor.ts"],"sourcesContent":["// 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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,150 @@
1
+ import * as i0 from '@angular/core';
2
+ import { forwardRef, EventEmitter, Component, Input, Output, ViewChild, HostBinding, HostListener, NgModule } from '@angular/core';
3
+ import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
4
+ import { defaultKeymap } from '@codemirror/commands';
5
+ import { javascript } from '@codemirror/lang-javascript';
6
+ import { Annotation, EditorState } from '@codemirror/state';
7
+ import { keymap, EditorView } from '@codemirror/view';
8
+ import { basicSetup } from 'codemirror';
9
+ import { CommonModule } from '@angular/common';
10
+
11
+ // NG2
12
+ // organize-imports-ignore
13
+ // APP
14
+ const CODE_EDITOR_VALUE_ACCESSOR = {
15
+ provide: NG_VALUE_ACCESSOR,
16
+ useExisting: forwardRef(() => NovoCodeEditor),
17
+ multi: true,
18
+ };
19
+ // CodeMirror transaction annotation to show changes that came in through writeValue (FormControl value) as opposed to UI editing
20
+ const FormControlCodeWriter = Annotation.define();
21
+ // (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,
22
+ // 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)
23
+ class NovoCodeEditor {
24
+ constructor(elementRef) {
25
+ this.elementRef = elementRef;
26
+ this.theme = 'default';
27
+ this.lineNumbers = true;
28
+ this.blur = new EventEmitter();
29
+ this.focus = new EventEmitter();
30
+ this.changed = new EventEmitter();
31
+ this.mode = 'javascript';
32
+ this.initialValue = '';
33
+ this.disabled = false;
34
+ }
35
+ ngOnInit() {
36
+ }
37
+ ngOnDestroy() {
38
+ }
39
+ ngAfterViewInit() {
40
+ this.createEditorView();
41
+ }
42
+ createEditorView() {
43
+ const extensions = [
44
+ basicSetup,
45
+ keymap.of(defaultKeymap)
46
+ ];
47
+ if (this.mode === 'javascript') {
48
+ extensions.push(javascript());
49
+ }
50
+ const initialEditorState = EditorState.create({
51
+ doc: this.initialValue,
52
+ extensions,
53
+ });
54
+ this.editorView = new EditorView({
55
+ state: initialEditorState,
56
+ parent: this.elementRef.nativeElement,
57
+ dispatch: (transaction, view) => {
58
+ // Prevent changes if the form is disabled - unless the change came from writeValue function
59
+ if (transaction.annotation(FormControlCodeWriter) || !(this.disabled && transaction.docChanged)) {
60
+ view.update([transaction]);
61
+ }
62
+ if (transaction.docChanged) {
63
+ this.changed.emit(view.state.doc.toString());
64
+ }
65
+ }
66
+ });
67
+ }
68
+ onFocus() {
69
+ this.focus.emit();
70
+ }
71
+ onBlur() {
72
+ this.blur.emit();
73
+ }
74
+ // ControlValueAccessor forward implementation
75
+ writeValue(value) {
76
+ if (this.editorView) {
77
+ this.editorView.dispatch({
78
+ changes: {
79
+ from: 0,
80
+ to: this.editorView.state.doc.length,
81
+ insert: value,
82
+ },
83
+ annotations: FormControlCodeWriter.of({}),
84
+ });
85
+ }
86
+ else if (value != null) {
87
+ this.initialValue = value;
88
+ }
89
+ }
90
+ registerOnChange(fn) {
91
+ this.changed.subscribe(fn);
92
+ }
93
+ registerOnTouched(fn) {
94
+ this.blur.subscribe(fn);
95
+ }
96
+ setDisabledState(isDisabled) {
97
+ this.disabled = isDisabled;
98
+ }
99
+ }
100
+ NovoCodeEditor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoCodeEditor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
101
+ 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"] });
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoCodeEditor, decorators: [{
103
+ type: Component,
104
+ args: [{ selector: 'novo-code-editor', template: '', providers: [CODE_EDITOR_VALUE_ACCESSOR], styles: [":host{height:200px;display:block;overflow:auto}\n"] }]
105
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { theme: [{
106
+ type: Input
107
+ }], lineNumbers: [{
108
+ type: Input
109
+ }], name: [{
110
+ type: Input
111
+ }], blur: [{
112
+ type: Output
113
+ }], focus: [{
114
+ type: Output
115
+ }], mode: [{
116
+ type: Input
117
+ }], editorRoot: [{
118
+ type: ViewChild,
119
+ args: ['editorRoot']
120
+ }], disabled: [{
121
+ type: HostBinding,
122
+ args: ['class.editor-disabled']
123
+ }], onFocus: [{
124
+ type: HostListener,
125
+ args: ['focus']
126
+ }], onBlur: [{
127
+ type: HostListener,
128
+ args: ['blur']
129
+ }] } });
130
+
131
+ class NovoCodeEditorModule {
132
+ }
133
+ NovoCodeEditorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoCodeEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
134
+ NovoCodeEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoCodeEditorModule, declarations: [NovoCodeEditor], imports: [CommonModule, FormsModule], exports: [NovoCodeEditor] });
135
+ NovoCodeEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoCodeEditorModule, imports: [[CommonModule, FormsModule]] });
136
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoCodeEditorModule, decorators: [{
137
+ type: NgModule,
138
+ args: [{
139
+ imports: [CommonModule, FormsModule],
140
+ declarations: [NovoCodeEditor],
141
+ exports: [NovoCodeEditor]
142
+ }]
143
+ }] });
144
+
145
+ /**
146
+ * Generated bundle index. Do not edit.
147
+ */
148
+
149
+ export { NovoCodeEditor, NovoCodeEditorModule };
150
+ //# sourceMappingURL=novo-elements-addons-code-editor.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"novo-elements-addons-code-editor.mjs","sources":["../../../projects/novo-elements/src/addons/code-editor/CodeEditor.ts","../../../projects/novo-elements/src/addons/code-editor/CodeEditor.module.ts","../../../projects/novo-elements/src/addons/code-editor/novo-elements-addons-code-editor.ts"],"sourcesContent":["// 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 {}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}