novo-elements 8.3.0 → 8.4.0-next.1

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 (205) hide show
  1. package/addons/ace-editor/AceEditor.d.ts +4 -2
  2. package/addons/code-editor/CodeEditor.d.ts +31 -0
  3. package/addons/code-editor/CodeEditor.module.d.ts +9 -0
  4. package/addons/code-editor/CodeEditor.scss +5 -0
  5. package/addons/code-editor/index.d.ts +2 -0
  6. package/addons/code-editor/novo-elements-addons-code-editor.d.ts +5 -0
  7. package/addons/code-editor/package.json +10 -0
  8. package/addons/index.d.ts +1 -0
  9. package/elements/aside/aside.component.scss +1 -1
  10. package/elements/calendar/Calendar.module.d.ts +2 -3
  11. package/elements/checkbox/CheckList.scss +1 -1
  12. package/elements/checkbox/Checkbox.scss +1 -1
  13. package/elements/common/overlay/Overlay.d.ts +1 -0
  14. package/elements/date-picker/DatePicker.module.d.ts +2 -2
  15. package/elements/date-picker/DatePickerInput.d.ts +8 -5
  16. package/elements/date-picker/MultiDateInput.d.ts +0 -1
  17. package/elements/date-time-picker/DateTimePicker.module.d.ts +2 -3
  18. package/elements/drag-drop/drag-drop-box.d.ts +45 -0
  19. package/elements/drag-drop/drag-drop.module.d.ts +7 -0
  20. package/elements/drag-drop/index.d.ts +2 -0
  21. package/elements/drag-drop/novo-elements-elements-drag-drop.d.ts +5 -0
  22. package/elements/drag-drop/package.json +10 -0
  23. package/elements/dropdown/Dropdown.d.ts +7 -1
  24. package/elements/field/formats/date-time-format.d.ts +2 -2
  25. package/elements/form/Control.d.ts +9 -6
  26. package/elements/form/ControlTemplates.d.ts +1 -1
  27. package/elements/form/Form.module.d.ts +6 -6
  28. package/elements/form/controls/code-editor/CodeEditorControl.d.ts +5 -0
  29. package/elements/form/controls/code-editor/index.d.ts +1 -0
  30. package/elements/form/controls/index.d.ts +2 -1
  31. package/elements/form/extras/FormExtras.module.d.ts +4 -4
  32. package/elements/form/extras/file/FileInput.d.ts +15 -16
  33. package/elements/form/extras/file/FileInput.scss +58 -30
  34. package/elements/index.d.ts +1 -0
  35. package/elements/query-builder/condition-builder/condition-builder.component.scss +1 -1
  36. package/elements/query-builder/condition-definitions/address-condition.definition.d.ts +1 -1
  37. package/elements/select-search/select-search.component.scss +1 -1
  38. package/elements/table/Table.module.d.ts +5 -6
  39. package/elements/time-picker/TimePicker.d.ts +2 -3
  40. package/elements/time-picker/TimePicker.module.d.ts +3 -4
  41. package/elements/time-picker/TimePickerInput.d.ts +0 -1
  42. package/esm2020/addons/ace-editor/AceEditor.mjs +8 -4
  43. package/esm2020/addons/ckeditor/CKEditor.mjs +8 -1
  44. package/esm2020/addons/code-editor/CodeEditor.mjs +129 -0
  45. package/esm2020/addons/code-editor/CodeEditor.module.mjs +19 -0
  46. package/esm2020/addons/code-editor/index.mjs +3 -0
  47. package/esm2020/addons/code-editor/novo-elements-addons-code-editor.mjs +5 -0
  48. package/esm2020/addons/index.mjs +2 -1
  49. package/esm2020/elements/breadcrumbs/breadcrumb-item/BreadcrumbItem.mjs +1 -1
  50. package/esm2020/elements/calendar/Calendar.module.mjs +5 -7
  51. package/esm2020/elements/calendar/calendar.component.mjs +3 -3
  52. package/esm2020/elements/calendar/month-select/month-select.component.mjs +3 -3
  53. package/esm2020/elements/calendar/month-view/month-view.component.mjs +3 -3
  54. package/esm2020/elements/calendar/year-select/year-select.component.mjs +3 -3
  55. package/esm2020/elements/common/overlay/Overlay.mjs +11 -5
  56. package/esm2020/elements/data-table/cell-headers/data-table-header-cell.component.mjs +1 -1
  57. package/esm2020/elements/data-table/data-table-clear-button.component.mjs +1 -1
  58. package/esm2020/elements/data-table/data-table.component.mjs +2 -2
  59. package/esm2020/elements/date-picker/DatePicker.module.mjs +6 -6
  60. package/esm2020/elements/date-picker/DatePickerInput.mjs +50 -29
  61. package/esm2020/elements/date-picker/DateRangeInput.mjs +10 -16
  62. package/esm2020/elements/date-picker/MultiDateInput.mjs +1 -17
  63. package/esm2020/elements/date-time-picker/DateTimePicker.module.mjs +4 -5
  64. package/esm2020/elements/drag-drop/drag-drop-box.mjs +224 -0
  65. package/esm2020/elements/drag-drop/drag-drop.module.mjs +16 -0
  66. package/esm2020/elements/drag-drop/index.mjs +3 -0
  67. package/esm2020/elements/drag-drop/novo-elements-elements-drag-drop.mjs +5 -0
  68. package/esm2020/elements/dropdown/Dropdown.mjs +29 -4
  69. package/esm2020/elements/field/formats/date-format.mjs +5 -5
  70. package/esm2020/elements/field/formats/date-range-format.mjs +5 -5
  71. package/esm2020/elements/field/formats/date-time-format.mjs +12 -12
  72. package/esm2020/elements/field/formats/time-format.mjs +6 -6
  73. package/esm2020/elements/form/Control.mjs +20 -8
  74. package/esm2020/elements/form/ControlTemplates.mjs +54 -27
  75. package/esm2020/elements/form/Form.module.mjs +12 -13
  76. package/esm2020/elements/form/NovoFormControl.mjs +1 -2
  77. package/esm2020/elements/form/controls/code-editor/CodeEditorControl.mjs +9 -0
  78. package/esm2020/elements/form/controls/code-editor/index.mjs +2 -0
  79. package/esm2020/elements/form/controls/index.mjs +3 -2
  80. package/esm2020/elements/form/controls/timezone/TimezoneControl.mjs +2 -2
  81. package/esm2020/elements/form/extras/FormExtras.module.mjs +8 -9
  82. package/esm2020/elements/form/extras/file/FileInput.mjs +38 -261
  83. package/esm2020/elements/index.mjs +2 -1
  84. package/esm2020/elements/query-builder/condition-definitions/address-condition.definition.mjs +2 -2
  85. package/esm2020/elements/query-builder/condition-group/condition-group.component.mjs +1 -1
  86. package/esm2020/elements/simple-table/cell-header.mjs +2 -2
  87. package/esm2020/elements/simple-table/cell.mjs +1 -1
  88. package/esm2020/elements/tabbed-group-picker/TabbedGroupPicker.mjs +1 -1
  89. package/esm2020/elements/table/Table.mjs +1 -1
  90. package/esm2020/elements/table/Table.module.mjs +1 -6
  91. package/esm2020/elements/table/extras/dropdown-cell/DropdownCell.mjs +1 -1
  92. package/esm2020/elements/time-picker/TimePicker.mjs +5 -6
  93. package/esm2020/elements/time-picker/TimePicker.module.mjs +4 -5
  94. package/esm2020/elements/time-picker/TimePickerInput.mjs +3 -65
  95. package/esm2020/index.mjs +1 -1
  96. package/esm2020/novo-elements.module.mjs +9 -3
  97. package/esm2020/novo-elements.providers.mjs +2 -2
  98. package/esm2020/services/date-format/DateFormat.mjs +153 -47
  99. package/esm2020/services/global/global.service.mjs +7 -1
  100. package/esm2020/utils/date/Date.mjs +1 -1
  101. package/esm2020/utils/date/index.mjs +3 -2
  102. package/esm2020/utils/date/timezone-support.mjs +87 -0
  103. package/fesm2015/novo-elements-addons-ace-editor.mjs +7 -3
  104. package/fesm2015/novo-elements-addons-ace-editor.mjs.map +1 -1
  105. package/fesm2015/novo-elements-addons-ckeditor.mjs +7 -0
  106. package/fesm2015/novo-elements-addons-ckeditor.mjs.map +1 -1
  107. package/fesm2015/novo-elements-addons-code-editor.mjs +150 -0
  108. package/fesm2015/novo-elements-addons-code-editor.mjs.map +1 -0
  109. package/fesm2015/novo-elements-addons.mjs +155 -5
  110. package/fesm2015/novo-elements-addons.mjs.map +1 -1
  111. package/fesm2015/novo-elements-elements-breadcrumbs.mjs +1 -1
  112. package/fesm2015/novo-elements-elements-breadcrumbs.mjs.map +1 -1
  113. package/fesm2015/novo-elements-elements-calendar.mjs +12 -13
  114. package/fesm2015/novo-elements-elements-calendar.mjs.map +1 -1
  115. package/fesm2015/novo-elements-elements-common.mjs +10 -2
  116. package/fesm2015/novo-elements-elements-common.mjs.map +1 -1
  117. package/fesm2015/novo-elements-elements-data-table.mjs +3 -3
  118. package/fesm2015/novo-elements-elements-data-table.mjs.map +1 -1
  119. package/fesm2015/novo-elements-elements-date-picker.mjs +64 -62
  120. package/fesm2015/novo-elements-elements-date-picker.mjs.map +1 -1
  121. package/fesm2015/novo-elements-elements-date-time-picker.mjs +3 -4
  122. package/fesm2015/novo-elements-elements-date-time-picker.mjs.map +1 -1
  123. package/fesm2015/novo-elements-elements-drag-drop.mjs +245 -0
  124. package/fesm2015/novo-elements-elements-drag-drop.mjs.map +1 -0
  125. package/fesm2015/novo-elements-elements-dropdown.mjs +28 -3
  126. package/fesm2015/novo-elements-elements-dropdown.mjs.map +1 -1
  127. package/fesm2015/novo-elements-elements-field.mjs +19 -19
  128. package/fesm2015/novo-elements-elements-field.mjs.map +1 -1
  129. package/fesm2015/novo-elements-elements-form.mjs +124 -300
  130. package/fesm2015/novo-elements-elements-form.mjs.map +1 -1
  131. package/fesm2015/novo-elements-elements-query-builder.mjs +1 -1
  132. package/fesm2015/novo-elements-elements-query-builder.mjs.map +1 -1
  133. package/fesm2015/novo-elements-elements-simple-table.mjs +2 -2
  134. package/fesm2015/novo-elements-elements-simple-table.mjs.map +1 -1
  135. package/fesm2015/novo-elements-elements-tabbed-group-picker.mjs +1 -1
  136. package/fesm2015/novo-elements-elements-tabbed-group-picker.mjs.map +1 -1
  137. package/fesm2015/novo-elements-elements-table.mjs +2 -6
  138. package/fesm2015/novo-elements-elements-table.mjs.map +1 -1
  139. package/fesm2015/novo-elements-elements-time-picker.mjs +7 -71
  140. package/fesm2015/novo-elements-elements-time-picker.mjs.map +1 -1
  141. package/fesm2015/novo-elements-elements.mjs +1 -0
  142. package/fesm2015/novo-elements-elements.mjs.map +1 -1
  143. package/fesm2015/novo-elements-services.mjs +158 -46
  144. package/fesm2015/novo-elements-services.mjs.map +1 -1
  145. package/fesm2015/novo-elements-utils.mjs +88 -1
  146. package/fesm2015/novo-elements-utils.mjs.map +1 -1
  147. package/fesm2015/novo-elements.mjs +8 -2
  148. package/fesm2015/novo-elements.mjs.map +1 -1
  149. package/fesm2020/novo-elements-addons-ace-editor.mjs +7 -3
  150. package/fesm2020/novo-elements-addons-ace-editor.mjs.map +1 -1
  151. package/fesm2020/novo-elements-addons-ckeditor.mjs +7 -0
  152. package/fesm2020/novo-elements-addons-ckeditor.mjs.map +1 -1
  153. package/fesm2020/novo-elements-addons-code-editor.mjs +150 -0
  154. package/fesm2020/novo-elements-addons-code-editor.mjs.map +1 -0
  155. package/fesm2020/novo-elements-addons.mjs +155 -5
  156. package/fesm2020/novo-elements-addons.mjs.map +1 -1
  157. package/fesm2020/novo-elements-elements-breadcrumbs.mjs +1 -1
  158. package/fesm2020/novo-elements-elements-breadcrumbs.mjs.map +1 -1
  159. package/fesm2020/novo-elements-elements-calendar.mjs +12 -13
  160. package/fesm2020/novo-elements-elements-calendar.mjs.map +1 -1
  161. package/fesm2020/novo-elements-elements-common.mjs +8 -2
  162. package/fesm2020/novo-elements-elements-common.mjs.map +1 -1
  163. package/fesm2020/novo-elements-elements-data-table.mjs +3 -3
  164. package/fesm2020/novo-elements-elements-data-table.mjs.map +1 -1
  165. package/fesm2020/novo-elements-elements-date-picker.mjs +62 -62
  166. package/fesm2020/novo-elements-elements-date-picker.mjs.map +1 -1
  167. package/fesm2020/novo-elements-elements-date-time-picker.mjs +3 -4
  168. package/fesm2020/novo-elements-elements-date-time-picker.mjs.map +1 -1
  169. package/fesm2020/novo-elements-elements-drag-drop.mjs +244 -0
  170. package/fesm2020/novo-elements-elements-drag-drop.mjs.map +1 -0
  171. package/fesm2020/novo-elements-elements-dropdown.mjs +28 -3
  172. package/fesm2020/novo-elements-elements-dropdown.mjs.map +1 -1
  173. package/fesm2020/novo-elements-elements-field.mjs +19 -19
  174. package/fesm2020/novo-elements-elements-field.mjs.map +1 -1
  175. package/fesm2020/novo-elements-elements-form.mjs +125 -302
  176. package/fesm2020/novo-elements-elements-form.mjs.map +1 -1
  177. package/fesm2020/novo-elements-elements-query-builder.mjs +1 -1
  178. package/fesm2020/novo-elements-elements-query-builder.mjs.map +1 -1
  179. package/fesm2020/novo-elements-elements-simple-table.mjs +2 -2
  180. package/fesm2020/novo-elements-elements-simple-table.mjs.map +1 -1
  181. package/fesm2020/novo-elements-elements-tabbed-group-picker.mjs +1 -1
  182. package/fesm2020/novo-elements-elements-tabbed-group-picker.mjs.map +1 -1
  183. package/fesm2020/novo-elements-elements-table.mjs +2 -6
  184. package/fesm2020/novo-elements-elements-table.mjs.map +1 -1
  185. package/fesm2020/novo-elements-elements-time-picker.mjs +7 -71
  186. package/fesm2020/novo-elements-elements-time-picker.mjs.map +1 -1
  187. package/fesm2020/novo-elements-elements.mjs +1 -0
  188. package/fesm2020/novo-elements-elements.mjs.map +1 -1
  189. package/fesm2020/novo-elements-services.mjs +158 -46
  190. package/fesm2020/novo-elements-services.mjs.map +1 -1
  191. package/fesm2020/novo-elements-utils.mjs +88 -1
  192. package/fesm2020/novo-elements-utils.mjs.map +1 -1
  193. package/fesm2020/novo-elements.mjs +8 -2
  194. package/fesm2020/novo-elements.mjs.map +1 -1
  195. package/novo-elements.module.d.ts +1 -1
  196. package/novo-elements.scss +1 -1
  197. package/package.json +23 -4
  198. package/services/date-format/DateFormat.d.ts +62 -3
  199. package/services/global/global.service.d.ts +3 -0
  200. package/styles/content/root.scss +1 -1
  201. package/styles/themes/light-test.scss +1 -1
  202. package/styles/themes/light.scss +1 -1
  203. package/styles/variables.scss +1 -1
  204. package/utils/date/index.d.ts +2 -1
  205. package/utils/date/timezone-support.d.ts +5 -0
@@ -1 +1 @@
1
- {"version":3,"file":"novo-elements-services.mjs","sources":["../../../projects/novo-elements/src/services/component-utils/ComponentUtils.ts","../../../projects/novo-elements/src/services/data-provider/CollectionEvent.ts","../../../projects/novo-elements/src/services/data-provider/ArrayCollection.ts","../../../projects/novo-elements/src/services/data-provider/PagedArrayCollection.ts","../../../projects/novo-elements/src/services/novo-label-service.ts","../../../projects/novo-elements/src/services/date-format/DateFormat.ts","../../../projects/novo-elements/src/services/global/global.service.ts","../../../projects/novo-elements/src/services/options/OptionsService.ts","../../../projects/novo-elements/src/services/security/Security.ts","../../../projects/novo-elements/src/services/storage/storage.service.ts","../../../projects/novo-elements/src/services/template/NovoTemplateService.ts","../../../projects/novo-elements/src/services/novo-elements-services.ts"],"sourcesContent":["// NG2\nimport { ComponentFactoryResolver, ComponentRef, Injectable, Injector, StaticProvider, Type, ViewContainerRef } from '@angular/core';\n\n@Injectable()\nexport class ComponentUtils<T = any> {\n constructor(public componentFactoryResolver: ComponentFactoryResolver) {}\n\n append<T>(ComponentClass: Type<T>, location: ViewContainerRef, providers?: StaticProvider[], onTop?: boolean): ComponentRef<T> {\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(ComponentClass);\n const parent = location.injector;\n const index = onTop ? 0 : location.length;\n return location.createComponent(componentFactory, index, Injector.create({ providers, parent }));\n }\n}\n","export class CollectionEvent {\n static REFRESH: string = 'Collection.REFRESH';\n static ADD: string = 'Collection.ADD';\n static REMOVE: string = 'Collection.REMOVE';\n static REMOVE_ALL: string = 'Collection.REMOVE_ALL';\n static REPLACE: string = 'Collection.REPLACE';\n static INVALIDATE_ALL: string = 'Collection.INVALIDATE_ALL';\n static SORT: string = 'Collection.SORT';\n static FILTER: string = 'Collection.FILTER';\n static CHANGE: string = 'Collection.CHANGE';\n static CURRENTPAGE_CHANGE: string = 'Collection.CURRENTPAGE_CHANGE';\n static PAGESIZE_CHANGE: string = 'Collection.PAGESIZE_CHANGE';\n static NUMBEROFPAGES_CHANGE: string = 'Collection.NUMBEROFPAGES_CHANGE';\n\n type: string = '';\n data: Array<any> = [];\n\n constructor(type = 'Collection.REFRESH', data = []) {\n this.type = type;\n this.data = data;\n }\n}\n","// Ng\nimport { EventEmitter } from '@angular/core';\nimport { Helpers } from 'novo-elements/utils';\n// App\nimport { Collection } from './Collection';\nimport { CollectionEvent } from './CollectionEvent';\n\n/**\n * Base Class for all Collection based data providers\n *\n * @example\n * var dp:DataProvider = new DataProvider();\n * dp.addItem({label:\"Item 1\"});\n * dp.addItem({label:\"Item 2\"});\n * dp.addItem({label:\"Item 3\"});\n * dp.addItem({label:\"Item 4\"});\n\n * var myList:List = new List();\n * myList.dataProvider = dp;\n */\nexport class ArrayCollection<T> implements Collection<T> {\n dataChange: EventEmitter<CollectionEvent> = new EventEmitter<CollectionEvent>();\n source: Array<T> = [];\n editData: Array<T> = [];\n isEditing: boolean = false;\n filterData: Array<T> = [];\n _filter: any = {};\n _sort: Array<any> = [];\n\n constructor(source: Array<T> = []) {\n this.source = source;\n this.editData = this.copy(this.source);\n this.filterData = this.source.slice();\n }\n\n get length() {\n return this.filterData.length;\n }\n\n get total(): number {\n return this.filterData.length;\n }\n\n get list(): Array<T> {\n return this.filterData;\n }\n\n isEmpty(): boolean {\n return this.length <= 0 && !this.isLoading() && !this.hasErrors();\n }\n\n hasErrors(): boolean {\n return false;\n }\n\n isLoading(): boolean {\n return false;\n }\n\n isFiltered(): boolean {\n return Object.keys(this._filter).length > 0;\n }\n\n /**\n * Method to switch the isEditingflag for the data source\n */\n edit() {\n this.isEditing = true;\n this.editData = this.copy(this.source);\n }\n\n /**\n * Method to leave edit mode and reset source\n */\n undo() {\n this.isEditing = false;\n this.source = this.copy(this.editData);\n this.refresh();\n }\n\n /**\n * Method to leave edit mode and save editData\n */\n commit() {\n this.isEditing = false;\n this.source = this.filterData.slice();\n this.refresh();\n }\n\n /**\n * Appends an item to the end of the data provider.\n *\n *\n * @memberOf ArrayCollection\n */\n addItem(item: T): void {\n this.isEditing ? this.editData.push(item) : this.source.push(item);\n this.onDataChange(new CollectionEvent(CollectionEvent.ADD, [item]));\n this.refresh();\n }\n\n /**\n * Adds a new item to the data provider at the specified index.\n *\n *\n * @memberOf ArrayCollection\n */\n addItemAt(item: T, index: number): void {\n this.isEditing ? this.editData.splice(index, 0, item) : this.source.splice(index, 0, item);\n this.onDataChange(new CollectionEvent(CollectionEvent.ADD, [item]));\n this.refresh();\n }\n\n /**\n * Appends multiple items to the end of the DataProvider and dispatches a CollectionEvent.ADD event.\n *\n * @memberOf ArrayCollection\n */\n addItems(items: Array<T>): void {\n this.isEditing ? this.editData.push(...items) : this.source.push(...items);\n this.onDataChange(new CollectionEvent(CollectionEvent.ADD, items));\n this.refresh();\n }\n\n /**\n * Adds several items to the data provider at the specified index and dispatches a CollectionEvent.ADD event.\n *\n * @memberOf ArrayCollection\n */\n addItemsAt(items: Array<T>, index: number): void {\n this.isEditing ? this.editData.splice(index, 0, ...items) : this.source.splice(index, 0, ...items);\n }\n\n /**\n * Creates a copy of the current ArrayCollection any.\n *\n * @memberOf ArrayCollection\n */\n clone(): ArrayCollection<T> {\n return new ArrayCollection(this.isEditing ? this.copy(this.editData) : this.copy(this.source));\n }\n\n /**\n * Creates a copy of the current ArrayCollection any.\n *\n * @memberOf ArrayCollection\n */\n copy(array: any[]) {\n return Helpers.deepClone(array);\n }\n\n /**\n * Concatenates the specified items to the end of the current data provider.\n *\n * @memberOf ArrayCollection\n */\n concat(items: Array<T>): void {\n this.addItems(items);\n }\n\n /**\n * Returns the item at the specified index.\n *\n * @memberOf ArrayCollection\n */\n getItemAt(index: number): any {\n return this.isEditing ? this.editData[index] : this.source[index];\n }\n\n /**\n * Returns the index of the specified item.\n *\n * @memberOf ArrayCollection\n */\n getItemIndex(item: T): number {\n return this.isEditing ? this.editData.indexOf(item) : this.source.indexOf(item);\n }\n\n /**\n * Invalidates all the data items that the DataProvider contains and dispatches a CollectionEvent.INVALIDATE_ALL event.\n *\n * @memberOf ArrayCollection\n */\n invalidate(): void {\n this.onDataChange(new CollectionEvent(CollectionEvent.INVALIDATE_ALL));\n }\n\n /**\n * Invalidates the specified item.\n *\n * @memberOf ArrayCollection\n */\n // invalidateItem(item:any):void {}\n\n /**\n * Invalidates the item at the specified index.\n *\n * @memberOf ArrayCollection\n */\n // invalidateItemAt(index:number):void {}\n\n /**\n * Appends the specified data into the data that the data provider contains and removes any duplicate items.\n *\n * @memberOf ArrayCollection\n */\n merge(newData: Array<T>): void {\n for (const obj of newData) {\n const existing = ~this.getItemIndex(obj);\n if (existing) {\n this.replaceItem(obj, existing);\n } else {\n this.addItem(obj);\n }\n }\n }\n\n /**\n * Removes all items from the data provider and dispatches a CollectionEvent.REMOVE_ALL event.\n *\n * @memberOf ArrayCollection\n */\n removeAll(): void {\n this.source = [];\n this.editData = [];\n this.filterData = [];\n this.onDataChange(new CollectionEvent(CollectionEvent.REMOVE_ALL, []));\n this.refresh();\n }\n\n /**\n * Removes the specified item from the data provider and dispatches a CollectionEvent.REMOVE event.\n *\n * @memberOf ArrayCollection\n */\n removeItem(item: T): boolean {\n const index = this.getItemIndex(item);\n return this.removeItemAt(index);\n }\n\n /**\n * Removes the item at the specified index and dispatches a CollectionEvent.REMOVE event.\n *\n * @memberOf ArrayCollection\n */\n removeItemAt(index: number): boolean {\n const success = !!this.source.splice(index, 1);\n this.refresh();\n return success;\n }\n\n /**\n * Replaces an existing item with a new item and dispatches a CollectionEvent.REPLACE event.\n *\n * @memberOf ArrayCollection\n */\n replaceItem(newItem: any, oldItem: any): any {\n const index = this.getItemIndex(oldItem);\n if (index >= 0) {\n this.replaceItemAt(newItem, index);\n }\n }\n\n /**\n * Replaces the item at the specified index and dispatches a CollectionEvent.REPLACE event.\n *\n * @memberOf ArrayCollection\n */\n replaceItemAt(newItem: any, index: number): any {\n this.filterData.splice(index, 1, newItem);\n }\n\n /**\n * Sorts the items that the data provider contains and dispatches a CollectionEvent.SORT event.\n *\n * @memberOf ArrayCollection\n */\n get sort(): Array<any> {\n return this._sort;\n }\n\n set sort(value: Array<any>) {\n this._sort = value;\n this.refresh();\n }\n\n /**\n * Sorts the items that the data provider contains by the specified field and dispatches a CollectionEvent.SORT event.\n *\n * @memberOf ArrayCollection\n */\n sortOn(fieldName: any, reverse = false): Array<T> {\n this.filterData = this.filterData.sort(Helpers.sortByField(fieldName, reverse));\n this.onDataChange(new CollectionEvent(CollectionEvent.SORT));\n return this.filterData;\n }\n\n get filter(): any {\n return this._filter;\n }\n\n set filter(value: any) {\n this._filter = value;\n this.refresh();\n }\n\n filterOn(fieldName: any, value: any = null): Array<T> {\n this.filterData = this.filterData.filter(Helpers.filterByField(fieldName, value));\n return this.filterData;\n }\n\n onDataChange(event: CollectionEvent): void {\n this.dataChange.emit(event);\n }\n\n refresh(): void {\n this.filterData = this.isEditing ? this.editData.slice() : this.source.slice();\n for (const item of this._sort.reverse()) {\n this.sortOn(item.field, item.reverse);\n }\n for (const key in this._filter) {\n if (key) {\n this.filterOn(key, this._filter[key]);\n }\n }\n this.onDataChange(new CollectionEvent(CollectionEvent.CHANGE, this.filterData));\n }\n\n /**\n * Creates an Array any representation of the data that the data provider contains.\n *\n * @memberOf ArrayCollection\n */\n toArray(): Array<T> {\n return this.isEditing ? this.editData : this.source;\n }\n\n toJSON() {\n return this.isEditing ? this.editData : this.source;\n }\n}\n","import { ArrayCollection } from './ArrayCollection';\nimport { CollectionEvent } from './CollectionEvent';\nimport { PagedCollection } from './PagedCollection';\n\nexport class PagedArrayCollection<T> extends ArrayCollection<T> implements PagedCollection<T> {\n _page: number = 1;\n _numberOfPages: number = 1;\n _pageSize: number = 10;\n\n constructor(source: Array<T> = []) {\n super(source);\n }\n\n get numberOfPages(): number {\n let result: number = this.source.length / this.pageSize;\n result = Math.ceil(result);\n return result;\n }\n\n get page(): number {\n return this._page;\n }\n\n set page(value: number) {\n this._page = value;\n this.refresh();\n }\n\n get pageSize(): number {\n return this._pageSize;\n }\n\n set pageSize(value: number) {\n this._pageSize = value;\n this.refresh();\n }\n\n next(): number {\n if (this.page === this.numberOfPages) {\n return this.page;\n }\n this.page++;\n return this.page;\n }\n\n prev(): number {\n if (this._page === 1) {\n return this.page;\n }\n this.page--;\n return this.page;\n }\n\n first(): number {\n if (this.page === 1) {\n return this.page;\n }\n this.page = 1;\n return this.page;\n }\n\n last(): number {\n if (this.page === this.numberOfPages) {\n return this.page;\n }\n this.page = this.numberOfPages;\n return this.page;\n }\n\n refresh(): void {\n this.filterData = this.isEditing ? this.editData.slice() : this.source.slice();\n for (const item of this._sort.reverse()) {\n this.sortOn(item.field, item.reverse);\n }\n for (const key in this._filter) {\n if (key) {\n this.filterOn(key, this._filter[key]);\n }\n }\n if (this.page >= 0) {\n const start = (this.page - 1) * this.pageSize;\n const end = start + this.pageSize;\n const result = this.filterData.slice(start, end);\n this.onDataChange(new CollectionEvent(CollectionEvent.CHANGE, result));\n } else {\n this.onDataChange(new CollectionEvent(CollectionEvent.CHANGE, this.filterData));\n }\n }\n}\n","// NG2\nimport { Inject, Injectable, LOCALE_ID, Optional } from '@angular/core';\nimport { Day } from 'date-fns';\n\ninterface TimeFormatParts {\n hour: string;\n minute: string;\n dayPeriod?: string;\n}\n\nexport interface BigDecimalFormatOptions extends Intl.NumberFormatOptions {\n useAccountingFormat?: boolean; // Render negative numbers using parens. True: \"(3.14)\", False: \"-3.14\"\n}\n\n@Injectable()\nexport class NovoLabelService {\n and = 'and';\n not = 'not';\n filters = 'Filter';\n clear = 'Clear';\n sort = 'Sort';\n distributionListOwner = 'Owner';\n dateAdded = 'Date Added';\n emptyTableMessage = 'No Records to display...';\n noMatchingRecordsMessage = 'No Matching Records';\n noMoreRecordsMessage = 'No More Records';\n erroredTableMessage = 'Oops! An error occurred.';\n pickerError = 'Oops! An error occurred.';\n pickerTextFieldEmpty = 'Begin typing to see results.';\n pickerEmpty = 'No results to display...';\n tabbedGroupPickerEmpty = 'No results found';\n quickNoteError = 'Oops! An error occurred.';\n quickNoteEmpty = 'No results to display...';\n required = 'Required';\n numberTooLarge = 'Number is too large';\n save = 'Save';\n cancel = 'Cancel';\n next = 'Next';\n itemsPerPage = 'Items per page:';\n chooseAField = 'Choose a field...';\n operator = 'Operator...';\n select = 'Select...';\n value = 'Value...';\n selectDateRange = 'Select Date Range...'\n typeToAddChips = 'Type to add chips...'\n selected = 'Selected';\n selectAllOnPage = 'Select all on page';\n deselectAll = 'Deselect all';\n refresh = 'Refresh';\n close = 'Close';\n move = 'Move';\n startDate = 'Start Date';\n endDate = 'End Date';\n rate = 'Rate';\n more = 'more';\n clearAll = 'CLEAR ALL';\n clearAllNormalCase = 'Clear All';\n clearSort = 'Clear Sort';\n clearFilter = 'Clear Filter';\n clearSearch = 'Clear Search';\n clearSelected = 'Clear Selected';\n today = 'Today';\n now = 'Now';\n isRequired = 'is required';\n notValidYear = 'is not a valid year';\n isTooLarge = 'is too large';\n invalidAddress = 'requires at least one field filled out';\n invalidEmail = 'requires a valid email (ex. abc@123.com)';\n minLength = 'is required to be a minimum length of';\n past1Day = 'Past 1 Day';\n past7Days = 'Past 7 Days';\n past30Days = 'Past 30 Days';\n past90Days = 'Past 90 Days';\n past1Year = 'Past 1 Year';\n next1Day = 'Next 1 Day';\n next7Days = 'Next 7 Days';\n next30Days = 'Next 30 Days';\n next90Days = 'Next 90 Days';\n next1Year = 'Next 1 Year';\n customDateRange = 'Custom Date Range';\n backToPresetFilters = 'Back to Preset Filters';\n okGotIt = 'Ok, Got it';\n address = 'Address';\n address1 = 'Address';\n apt = 'Apt'; // TODO delete\n address2 = 'Apt';\n city = 'City / Locality';\n state = 'State / Region';\n zip = 'Postal Code';\n zipCode = 'Postal Code'; // TODO delete\n country = 'Country';\n or = 'or';\n clickToBrowse = 'click to browse';\n chooseAFile = 'Choose a file';\n no = 'No';\n yes = 'Yes';\n search = 'SEARCH';\n noItems = 'There are no items';\n dateFormat = 'MM/dd/yyyy';\n dateFormatPlaceholder = 'MM/DD/YYYY';\n localDatePlaceholder = 'mm/dd/yyyy';\n timeFormatPlaceholderAM = 'hh:mm AM';\n timeFormatPlaceholder24Hour = 'HH:mm';\n timeFormatAM = 'AM';\n timeFormatPM = 'PM';\n confirmChangesModalMessage = 'Are you sure you want to change this field?';\n promptModalMessage = 'Do you want to perform the following changes?';\n asyncFailure = 'Async validation was not called within the 10s threshold, you might want to reload the page to try again';\n previous = 'Previous';\n actions = 'Actions';\n all = 'All';\n groupedMultiPickerEmpty = 'No items to display';\n groupedMultiPickerSelectCategory = 'Select a category from the left to get started';\n add = 'Add';\n encryptedFieldTooltip = 'This data has been stored at the highest level of security';\n noStatesForCountry = 'No states available for the selected country';\n selectCountryFirst = 'Please select a country before selecting a state';\n invalidIntegerInput = 'Special characters are not allowed for';\n maxRecordsReached = 'Sorry, you have reached the maximum number of records allowed for this field';\n selectFilterOptions = 'Please select one or more filter options below.';\n addCondition = 'Add Condition';\n includeAny = 'Include Any';\n includeAll = 'Include All';\n exclude = 'Exclude';\n radius = 'Radius';\n equals = 'Equals';\n equalTo = 'Equal To';\n greaterThan = 'Greater Than';\n lessThan = 'Less Than';\n doesNotEqual = 'Does Not Equal';\n true = 'True';\n false = 'False';\n before = 'Before';\n after = 'After';\n between = 'Between';\n within = 'Within';\n isEmpty = 'Is Empty?';\n refreshPagination = 'Refresh Pagination';\n location = 'Location';\n\n constructor(\n @Optional()\n @Inject(LOCALE_ID)\n public userLocale = 'en-US',\n ) {}\n\n maxlengthMetWithField(field: string, maxlength: number): string {\n return `Sorry, you have reached the maximum character count of ${maxlength} for ${field}.`;\n }\n\n maxlengthMet(maxlength: number): string {\n return `Sorry, you have reached the maximum character count of ${maxlength} for this field.`;\n }\n\n invalidMaxlengthWithField(field: string, maxlength: number): string {\n return `Sorry, you have exceeded the maximum character count of ${maxlength} for ${field}.`;\n }\n\n invalidMaxlength(maxlength: number): string {\n return `Sorry, you have exceeded the maximum character count of ${maxlength} for this field.`;\n }\n\n getToManyPlusMore(toMany: { quantity: number }): string {\n return `+${toMany.quantity} more`;\n }\n\n selectedRecords(selected: number) {\n return `${selected} records are selected.`;\n }\n\n showingXofXResults(shown: number, total: number) {\n return `Showing ${shown} of ${total} Results.`;\n }\n\n totalRecords(total: number, select = false) {\n return select ? `Select all ${total} records.` : `De-select remaining ${total} records.`;\n }\n\n dateFormatString(): string {\n return this.dateFormat;\n }\n\n localizedDatePlaceholder(): string {\n return this.localDatePlaceholder;\n }\n\n tabbedGroupClearSuggestion(tabLabelPlural: string): string {\n return `Clear your search to see all ${tabLabelPlural}.`;\n }\n\n formatDateWithFormat(value: any, format: Intl.DateTimeFormatOptions) {\n const date = value instanceof Date ? value : new Date(value);\n if (date.getTime() !== date.getTime()) {\n return value;\n }\n return new Intl.DateTimeFormat(this.userLocale, format).format(date);\n }\n\n formatToTimeOnly(param) {}\n\n formatToDateOnly(param) {}\n\n formatTimeWithFormat(value: any, format: Intl.DateTimeFormatOptions): string {\n const date = value instanceof Date ? value : new Date(value);\n if (date.getTime() !== date.getTime()) {\n return value;\n }\n const timeParts: { [type: string]: string } = Intl.DateTimeFormat(this.userLocale, format)\n .formatToParts(date)\n .reduce((obj, part) => {\n obj[part.type] = part.value;\n return obj;\n }, {});\n const dayPeriod = timeParts.dayPeriod ? timeParts.dayPeriod : '';\n const res = `${timeParts.hour}:${timeParts.minute} ${dayPeriod}`;\n return res;\n }\n\n getWeekdays(weekStartsOn: Day = 0): string[] {\n function getDay(dayOfWeek) {\n const dt = new Date();\n return dt.setDate(dt.getDate() - dt.getDay() + dayOfWeek);\n }\n\n let weekdays = [getDay(0), getDay(1), getDay(2), getDay(3), getDay(4), getDay(5), getDay(6)].reduce((weekdays, dt) => {\n weekdays.push(new Intl.DateTimeFormat(this.userLocale, { weekday: 'long' }).format(dt));\n return weekdays;\n }, []);\n\n if (weekStartsOn > 0 && weekStartsOn <= 6) {\n const newStart = weekdays.splice(weekStartsOn);\n weekdays = [...newStart, ...weekdays];\n }\n return weekdays;\n }\n\n getMonths(): string[] {\n function getMonth(month) {\n const dt = new Date();\n return dt.setMonth(month, 1);\n }\n\n return [\n getMonth(0),\n getMonth(1),\n getMonth(2),\n getMonth(3),\n getMonth(4),\n getMonth(5),\n getMonth(6),\n getMonth(7),\n getMonth(8),\n getMonth(9),\n getMonth(10),\n getMonth(11),\n ].reduce((months, dt) => {\n months.push(new Intl.DateTimeFormat(this.userLocale, { month: 'long' }).format(dt));\n return months;\n }, []);\n }\n\n getProperty(value: string) {\n return this[value];\n }\n\n getRangeText(page: number, pageSize: number, length: number, short: boolean): string {\n if (length === 0 || pageSize === 0) {\n return `Displaying 0 of ${length}`;\n }\n\n length = Math.max(length, 0);\n\n const startIndex = page * pageSize;\n\n // If the start index exceeds the list length, do not try and fix the end index to the end.\n const endIndex = startIndex < length ? Math.min(startIndex + pageSize, length) : startIndex + pageSize;\n\n return short ? `${startIndex + 1} - ${endIndex}/${length}` : `Displaying ${startIndex + 1} - ${endIndex} of ${length}`;\n }\n\n formatCurrency(value: number): string {\n const options = { style: 'currency', currency: 'USD' };\n return new Intl.NumberFormat(this.userLocale, options).format(value);\n }\n\n /**\n * Extends the Intl.numberFormat capability with two extra features:\n * - Does NOT round values, but instead truncates to maximumFractionDigits\n * - By default uses accounting format for negative numbers: (3.14) instead of -3.14.\n *\n * @param value The number value to convert to string\n * @param overrideOptions Allows for overriding options used and passed to Intl.NumberFormat()\n */\n formatBigDecimal(value: number, overrideOptions?: BigDecimalFormatOptions): string {\n const defaultOptions: BigDecimalFormatOptions = {\n style: 'decimal',\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n useAccountingFormat: true,\n };\n const options: BigDecimalFormatOptions = Object.assign(defaultOptions, overrideOptions);\n const truncatedValue = this.truncateToPrecision(value, options.maximumFractionDigits);\n let _value = new Intl.NumberFormat(this.userLocale, options).format(truncatedValue);\n if (value < 0) {\n _value = options.useAccountingFormat ? `(${_value.slice(1)})` : `-${_value.slice(1)}`;\n }\n return _value;\n }\n\n /**\n * Performs a string-based truncating of a number with no rounding\n */\n truncateToPrecision(value: number, precision: number) {\n let valueAsString = value ? value.toString() : '0';\n const decimalIndex = valueAsString.indexOf('.');\n if (decimalIndex > -1 && decimalIndex + precision + 1 < valueAsString.length) {\n valueAsString = valueAsString.substring(0, valueAsString.indexOf('.') + precision + 1);\n }\n return Number(valueAsString);\n }\n\n formatNumber(value, options?: Intl.NumberFormatOptions) {\n return new Intl.NumberFormat(this.userLocale, options).format(value);\n }\n\n formatDateShort(value: string | number | Date) {\n const options: Intl.DateTimeFormatOptions = {\n // DD/MM/YYYY, HH:MM A - 02/14/2017, 1:17 PM\n month: '2-digit',\n day: '2-digit',\n year: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n };\n const _value = value === null || value === undefined || value === '' ? new Date() : new Date(value);\n return new Intl.DateTimeFormat(this.userLocale, options).format(_value);\n }\n\n formatTime(value: string | number | Date) {\n const options: Intl.DateTimeFormatOptions = {\n // HH:MM A - 1:17 PM\n hour: 'numeric',\n minute: '2-digit',\n };\n const _value = value === null || value === undefined || value === '' ? new Date() : new Date(value);\n return new Intl.DateTimeFormat(this.userLocale, options).format(_value);\n }\n\n formatDate(value: string | number | Date) {\n const options: Intl.DateTimeFormatOptions = {\n // DD/MM/YYYY - 02/14/2017\n month: '2-digit',\n day: '2-digit',\n year: 'numeric',\n };\n const _value = value === null || value === undefined || value === '' ? new Date() : new Date(value);\n return new Intl.DateTimeFormat(this.userLocale, options).format(_value);\n }\n}\n\nexport const NOVO_ELEMENTS_LABELS_PROVIDERS = [{ provide: NovoLabelService, useClass: NovoLabelService }];\n","// NG2\nimport { Injectable } from '@angular/core';\nimport { NovoLabelService } from '../novo-label-service';\n// APP\nimport { Helpers } from 'novo-elements/utils';\n\n@Injectable()\nexport class DateFormatService {\n constructor(private labels: NovoLabelService) {}\n\n getTimeMask(militaryTime: boolean): Array<RegExp> {\n let mask: Array<RegExp> = [/\\d/, /\\d/, /:/, /\\d/, /\\d/];\n let timeFormatArray: Array<string> = [];\n const timeFormat: string = this.labels.timeFormatPlaceholderAM.toLowerCase();\n if (militaryTime) {\n return mask;\n } else {\n timeFormatArray = timeFormat.split('hh:mm');\n if (timeFormatArray && timeFormatArray.length) {\n mask = [];\n for (const timeFormatPart of timeFormatArray) {\n if (timeFormatPart === '') {\n mask = mask.concat([/\\d/, /\\d|:/, /:|\\d/, /\\d|\\w|\\s/, /\\d|\\s|\\w/]);\n } else if (timeFormatPart.length) {\n for (let i = 0; i < timeFormatPart.length; i++) {\n mask.push(/\\s|\\w|\\d|\\./);\n }\n }\n }\n }\n }\n return mask;\n }\n\n getDateMask(): Array<RegExp> {\n return [/\\d/, /\\d|\\/|\\.|\\-/, /\\/|\\.|\\-|\\d/, /\\d|\\/|\\.|\\-/, /\\d|\\/|\\.|\\-/, /\\d|\\/|\\.|\\-/, /\\d|\\/|\\.|\\-/, /\\d|\\/|\\.|\\-/, /\\d/, /\\d/];\n }\n\n getDateTimeMask(militaryTime: boolean = false): Array<RegExp> {\n return [...this.getDateMask(), /\\,?/, /\\s/, ...this.getTimeMask(militaryTime)];\n }\n\n getTimePlaceHolder(militaryTime: boolean): string {\n if (militaryTime) {\n return this.labels.timeFormatPlaceholder24Hour;\n }\n return this.labels.timeFormatPlaceholderAM;\n }\n\n parseDateString(dateString: string): [Date, string, boolean] {\n let dateFormat: string = this.labels.dateFormatString();\n const dateFormatRegex = /(\\w+)[\\/|\\.|\\-](\\w+)[\\/|\\.|\\-](\\w+)/gi;\n const dateValueRegex = /(\\d+)[\\/|\\.|\\-](\\d+)[\\/|\\.|\\-](\\d+)/gi;\n let dateFormatTokens: Array<string>;\n let dateValueTokens: Array<string>;\n let year: number;\n let month: number;\n let day: number;\n let date: Date = new Date();\n let isInvalidDate = true;\n if (Helpers.isEmpty(dateFormat)) {\n // Default to MM/dd/yyyy\n dateFormat = 'mm/dd/yyyy';\n } else {\n dateFormat = dateFormat.toLowerCase();\n }\n dateFormatTokens = dateFormatRegex.exec(dateFormat);\n dateValueTokens = dateValueRegex.exec(dateString);\n if (dateFormatTokens && dateFormatTokens.length === 4 && dateValueTokens && dateValueTokens.length === 4) {\n for (let i = 1; i < 4; i++) {\n if (dateFormatTokens[i].includes('m')) {\n month = parseInt(dateValueTokens[i], 10) - 1;\n } else if (dateFormatTokens[i].includes('d')) {\n day = parseInt(dateValueTokens[i], 10);\n } else {\n year = parseInt(dateValueTokens[i], 10);\n }\n }\n if (month >= 0 && month <= 11 && year > 1900 && day > 0 && day <= 31) {\n date = new Date(year, month, day);\n isInvalidDate = false;\n }\n } else if (dateFormatTokens && dateFormatTokens.length === 4 && dateString.length >= 1) {\n const twoTokens = /\\d{1,4}(\\/|\\.|\\-)(\\d{1,2})/.exec(dateString);\n const oneToken = /^(\\d{1,4})$/.exec(dateString);\n const delimiter = /\\w+(\\/|\\.|\\-)\\w+[\\/|\\.|\\-]\\w+/gi.exec(dateFormat);\n const dateStringWithDelimiter = dateString[dateString.length - 1].match(/\\/|\\.|\\-/);\n if (twoTokens && twoTokens.length === 3 && this.isValidDatePart(twoTokens[2], dateFormatTokens[2]) && !dateStringWithDelimiter) {\n dateString = `${dateString}${delimiter[1]}`;\n } else if (oneToken && oneToken.length === 2 && this.isValidDatePart(oneToken[1], dateFormatTokens[1]) && !dateStringWithDelimiter) {\n dateString = `${dateString}${delimiter[1]}`;\n }\n }\n return [date, dateString, isInvalidDate];\n }\n\n parseTimeString(timeString: string, militaryTime: boolean): [Date, string] {\n const value: Date = new Date();\n let timeStringParts: Array<string>;\n let amFormat = this.labels.timeFormatAM;\n let pmFormat = this.labels.timeFormatPM;\n if (!(timeString && timeString.includes(':'))) {\n return [value, timeString];\n }\n if (!militaryTime && amFormat && pmFormat) {\n let splits: Array<string> = [];\n let pm: boolean = false;\n amFormat = this.labels.timeFormatAM.toLowerCase();\n pmFormat = this.labels.timeFormatPM.toLowerCase();\n timeString = timeString.toLowerCase();\n if (timeString.includes(amFormat)) {\n splits = timeString.split(amFormat);\n } else if (timeString.includes(pmFormat)) {\n splits = timeString.split(pmFormat);\n pm = true;\n }\n if (splits && splits.length) {\n for (const item of splits) {\n if (item && item.trim().includes(':')) {\n timeStringParts = item.trim().split(':');\n }\n }\n }\n if (timeStringParts && timeStringParts.length && timeStringParts.length === 2) {\n let hours: number = parseInt(timeStringParts[0], 10);\n if (hours === 12 && pm) {\n hours = 12;\n } else if (pm) {\n hours = hours + 12;\n } else if (hours === 12) {\n hours = 0;\n }\n value.setHours(hours);\n value.setMinutes(parseInt(timeStringParts[1], 10));\n value.setSeconds(0);\n }\n } else {\n timeStringParts = /(\\d{1,2}):(\\d{2})/.exec(timeString);\n if (timeStringParts && timeStringParts.length && timeStringParts.length === 3) {\n value.setHours(parseInt(timeStringParts[1], 10));\n value.setMinutes(parseInt(timeStringParts[2], 10));\n value.setSeconds(0);\n }\n }\n return [value, timeString];\n }\n\n parseString(dateTimeString: string, militaryTime: boolean, type: string): [Date, string, boolean?] {\n switch (type) {\n case 'datetime':\n const str = dateTimeString.replace(/-/g, '/');\n const parts = str.split(' ');\n const [dt, dts] = this.parseDateString(parts[0]);\n if (parts.length > 1) {\n const [tm, tms] = this.parseTimeString(parts[1], militaryTime);\n return [new Date(dt.setHours(tm.getHours(), tm.getMinutes())), `${dts} ${tms}`];\n }\n return [dt, dts];\n case 'date':\n return this.parseDateString(dateTimeString);\n case 'time':\n return this.parseTimeString(dateTimeString, militaryTime);\n default:\n return;\n }\n }\n\n isValidDatePart(value: string, format: string): boolean {\n const datePart = parseInt(value, 10);\n if (format.includes('m') && (datePart >= 2 || value.length === 2)) {\n return true;\n } else if (format.includes('d') && (datePart >= 4 || value.length === 2)) {\n return true;\n } else if (format.includes('y') && datePart >= 1000) {\n return true;\n }\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\n\nexport interface Global {}\n\nexport abstract class GlobalRef {\n abstract get nativeGlobal(): Global;\n}\n\n@Injectable()\nexport class BrowserGlobalRef extends GlobalRef {\n get nativeGlobal(): Global {\n return window as Global;\n }\n}\nexport class NodeGlobalRef extends GlobalRef {\n get nativeGlobal(): Global {\n throw new Error(`global doesn't compile for some reason`);\n // return global as Global;\n }\n}\n","// NG2\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n// App\n\n@Injectable()\nexport class OptionsService {\n constructor() {}\n\n getOptionsConfig(http: HttpClient, field: any, config: { token?: string; restUrl?: string; military?: boolean }): any {\n return {\n field: 'value',\n format: '$label',\n options: (query) => {\n return new Promise((resolve, reject) => {\n if (query && query.length) {\n const exp = new RegExp('^(?:[a-z]+:)?//', 'i');\n let endpoint;\n if (exp.test(field.optionsUrl)) {\n const url = new URL(field.optionsUrl);\n url.searchParams.set('filter', query || '');\n endpoint = url.toString();\n } else {\n // Construct relative url (host will not be used but is required for construction)\n const url = new URL(`http://placeholder.com/${field.optionsUrl}`);\n url.searchParams.set('filter', query || '');\n endpoint = `${url.pathname}${url.search}`;\n }\n http.get(endpoint).subscribe(resolve, reject);\n } else {\n resolve([]);\n }\n });\n },\n };\n }\n}\n","// NG2\nimport { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class Security {\n credentials: string[] = [];\n change: EventEmitter<any> = new EventEmitter();\n\n grant(data: any[] | Object): void {\n const parsed = [];\n if (data instanceof Array) {\n for (const permission of data) {\n parsed.push(permission.replace(/\\s/gi, ''));\n }\n } else if (typeof data === 'object') {\n for (const key in data) {\n if (data[key] instanceof Array) {\n for (const permission of data[key]) {\n parsed.push(`${key}.${permission}`);\n }\n }\n }\n }\n this.credentials = [].concat(this.credentials, parsed);\n this.change.emit(this.credentials);\n }\n\n has(value: any): boolean {\n return this.credentials.indexOf(value) > -1;\n }\n\n revoke(value: any): void {\n const i: number = this.credentials.indexOf(value);\n this.credentials.splice(i, 1);\n this.change.emit(this.credentials);\n }\n\n clear(): void {\n this.credentials = [];\n this.change.emit(this.credentials);\n }\n\n subscribe(fn: any): void {\n this.change.subscribe(fn);\n }\n\n checkRoutes(\n routes: { entities?: any[]; permissions?: any[] | Function; path?: string; label?: string; canDisable?: Boolean }[],\n options: { entityType?: string },\n ): any {\n const filtered = [];\n for (const route of routes) {\n if (route.entities && ~route.entities.indexOf(options.entityType)) {\n if (route.permissions instanceof Function) {\n if (route.permissions(options, this)) {\n filtered.push(route);\n }\n } else if (route.permissions && route.permissions.length) {\n if (route.permissions.every((perm) => this.has(perm))) {\n filtered.push(route);\n }\n } else {\n filtered.push(route);\n }\n }\n }\n\n return filtered;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class LocalStorageService {\n setItem(key: any, value: any): any {\n localStorage.setItem(key, value);\n }\n\n getItem(key: any): any {\n return localStorage.getItem(key);\n }\n\n removeItem(key: any): any {\n localStorage.removeItem(key);\n }\n}\n","// NG2\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class NovoTemplateService {\n templates: any = {\n default: {},\n custom: {},\n };\n constructor() {}\n\n getAll(): any {\n const templates: any = {};\n const customTemplateTypes: string[] = Object.keys(this.templates.custom);\n const defaultTemplateTypes: string[] = Object.keys(this.templates.default);\n defaultTemplateTypes.forEach((type: string) => {\n templates[type] = this.templates.default[type];\n });\n customTemplateTypes.forEach((type: string) => {\n templates[type] = this.templates.custom[type];\n });\n return templates;\n }\n\n addDefault(key: string, template: any): void {\n this.templates.default[key] = template;\n }\n\n addCustom(key: string, template: any): void {\n this.templates.custom[key] = template;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.NovoLabelService"],"mappings":"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"}
1
+ {"version":3,"file":"novo-elements-services.mjs","sources":["../../../projects/novo-elements/src/services/component-utils/ComponentUtils.ts","../../../projects/novo-elements/src/services/data-provider/CollectionEvent.ts","../../../projects/novo-elements/src/services/data-provider/ArrayCollection.ts","../../../projects/novo-elements/src/services/data-provider/PagedArrayCollection.ts","../../../projects/novo-elements/src/services/novo-label-service.ts","../../../projects/novo-elements/src/services/date-format/DateFormat.ts","../../../projects/novo-elements/src/services/global/global.service.ts","../../../projects/novo-elements/src/services/options/OptionsService.ts","../../../projects/novo-elements/src/services/security/Security.ts","../../../projects/novo-elements/src/services/storage/storage.service.ts","../../../projects/novo-elements/src/services/template/NovoTemplateService.ts","../../../projects/novo-elements/src/services/novo-elements-services.ts"],"sourcesContent":["// NG2\nimport { ComponentFactoryResolver, ComponentRef, Injectable, Injector, StaticProvider, Type, ViewContainerRef } from '@angular/core';\n\n@Injectable()\nexport class ComponentUtils<T = any> {\n constructor(public componentFactoryResolver: ComponentFactoryResolver) {}\n\n append<T>(ComponentClass: Type<T>, location: ViewContainerRef, providers?: StaticProvider[], onTop?: boolean): ComponentRef<T> {\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(ComponentClass);\n const parent = location.injector;\n const index = onTop ? 0 : location.length;\n return location.createComponent(componentFactory, index, Injector.create({ providers, parent }));\n }\n}\n","export class CollectionEvent {\n static REFRESH: string = 'Collection.REFRESH';\n static ADD: string = 'Collection.ADD';\n static REMOVE: string = 'Collection.REMOVE';\n static REMOVE_ALL: string = 'Collection.REMOVE_ALL';\n static REPLACE: string = 'Collection.REPLACE';\n static INVALIDATE_ALL: string = 'Collection.INVALIDATE_ALL';\n static SORT: string = 'Collection.SORT';\n static FILTER: string = 'Collection.FILTER';\n static CHANGE: string = 'Collection.CHANGE';\n static CURRENTPAGE_CHANGE: string = 'Collection.CURRENTPAGE_CHANGE';\n static PAGESIZE_CHANGE: string = 'Collection.PAGESIZE_CHANGE';\n static NUMBEROFPAGES_CHANGE: string = 'Collection.NUMBEROFPAGES_CHANGE';\n\n type: string = '';\n data: Array<any> = [];\n\n constructor(type = 'Collection.REFRESH', data = []) {\n this.type = type;\n this.data = data;\n }\n}\n","// Ng\nimport { EventEmitter } from '@angular/core';\nimport { Helpers } from 'novo-elements/utils';\n// App\nimport { Collection } from './Collection';\nimport { CollectionEvent } from './CollectionEvent';\n\n/**\n * Base Class for all Collection based data providers\n *\n * @example\n * var dp:DataProvider = new DataProvider();\n * dp.addItem({label:\"Item 1\"});\n * dp.addItem({label:\"Item 2\"});\n * dp.addItem({label:\"Item 3\"});\n * dp.addItem({label:\"Item 4\"});\n\n * var myList:List = new List();\n * myList.dataProvider = dp;\n */\nexport class ArrayCollection<T> implements Collection<T> {\n dataChange: EventEmitter<CollectionEvent> = new EventEmitter<CollectionEvent>();\n source: Array<T> = [];\n editData: Array<T> = [];\n isEditing: boolean = false;\n filterData: Array<T> = [];\n _filter: any = {};\n _sort: Array<any> = [];\n\n constructor(source: Array<T> = []) {\n this.source = source;\n this.editData = this.copy(this.source);\n this.filterData = this.source.slice();\n }\n\n get length() {\n return this.filterData.length;\n }\n\n get total(): number {\n return this.filterData.length;\n }\n\n get list(): Array<T> {\n return this.filterData;\n }\n\n isEmpty(): boolean {\n return this.length <= 0 && !this.isLoading() && !this.hasErrors();\n }\n\n hasErrors(): boolean {\n return false;\n }\n\n isLoading(): boolean {\n return false;\n }\n\n isFiltered(): boolean {\n return Object.keys(this._filter).length > 0;\n }\n\n /**\n * Method to switch the isEditingflag for the data source\n */\n edit() {\n this.isEditing = true;\n this.editData = this.copy(this.source);\n }\n\n /**\n * Method to leave edit mode and reset source\n */\n undo() {\n this.isEditing = false;\n this.source = this.copy(this.editData);\n this.refresh();\n }\n\n /**\n * Method to leave edit mode and save editData\n */\n commit() {\n this.isEditing = false;\n this.source = this.filterData.slice();\n this.refresh();\n }\n\n /**\n * Appends an item to the end of the data provider.\n *\n *\n * @memberOf ArrayCollection\n */\n addItem(item: T): void {\n this.isEditing ? this.editData.push(item) : this.source.push(item);\n this.onDataChange(new CollectionEvent(CollectionEvent.ADD, [item]));\n this.refresh();\n }\n\n /**\n * Adds a new item to the data provider at the specified index.\n *\n *\n * @memberOf ArrayCollection\n */\n addItemAt(item: T, index: number): void {\n this.isEditing ? this.editData.splice(index, 0, item) : this.source.splice(index, 0, item);\n this.onDataChange(new CollectionEvent(CollectionEvent.ADD, [item]));\n this.refresh();\n }\n\n /**\n * Appends multiple items to the end of the DataProvider and dispatches a CollectionEvent.ADD event.\n *\n * @memberOf ArrayCollection\n */\n addItems(items: Array<T>): void {\n this.isEditing ? this.editData.push(...items) : this.source.push(...items);\n this.onDataChange(new CollectionEvent(CollectionEvent.ADD, items));\n this.refresh();\n }\n\n /**\n * Adds several items to the data provider at the specified index and dispatches a CollectionEvent.ADD event.\n *\n * @memberOf ArrayCollection\n */\n addItemsAt(items: Array<T>, index: number): void {\n this.isEditing ? this.editData.splice(index, 0, ...items) : this.source.splice(index, 0, ...items);\n }\n\n /**\n * Creates a copy of the current ArrayCollection any.\n *\n * @memberOf ArrayCollection\n */\n clone(): ArrayCollection<T> {\n return new ArrayCollection(this.isEditing ? this.copy(this.editData) : this.copy(this.source));\n }\n\n /**\n * Creates a copy of the current ArrayCollection any.\n *\n * @memberOf ArrayCollection\n */\n copy(array: any[]) {\n return Helpers.deepClone(array);\n }\n\n /**\n * Concatenates the specified items to the end of the current data provider.\n *\n * @memberOf ArrayCollection\n */\n concat(items: Array<T>): void {\n this.addItems(items);\n }\n\n /**\n * Returns the item at the specified index.\n *\n * @memberOf ArrayCollection\n */\n getItemAt(index: number): any {\n return this.isEditing ? this.editData[index] : this.source[index];\n }\n\n /**\n * Returns the index of the specified item.\n *\n * @memberOf ArrayCollection\n */\n getItemIndex(item: T): number {\n return this.isEditing ? this.editData.indexOf(item) : this.source.indexOf(item);\n }\n\n /**\n * Invalidates all the data items that the DataProvider contains and dispatches a CollectionEvent.INVALIDATE_ALL event.\n *\n * @memberOf ArrayCollection\n */\n invalidate(): void {\n this.onDataChange(new CollectionEvent(CollectionEvent.INVALIDATE_ALL));\n }\n\n /**\n * Invalidates the specified item.\n *\n * @memberOf ArrayCollection\n */\n // invalidateItem(item:any):void {}\n\n /**\n * Invalidates the item at the specified index.\n *\n * @memberOf ArrayCollection\n */\n // invalidateItemAt(index:number):void {}\n\n /**\n * Appends the specified data into the data that the data provider contains and removes any duplicate items.\n *\n * @memberOf ArrayCollection\n */\n merge(newData: Array<T>): void {\n for (const obj of newData) {\n const existing = ~this.getItemIndex(obj);\n if (existing) {\n this.replaceItem(obj, existing);\n } else {\n this.addItem(obj);\n }\n }\n }\n\n /**\n * Removes all items from the data provider and dispatches a CollectionEvent.REMOVE_ALL event.\n *\n * @memberOf ArrayCollection\n */\n removeAll(): void {\n this.source = [];\n this.editData = [];\n this.filterData = [];\n this.onDataChange(new CollectionEvent(CollectionEvent.REMOVE_ALL, []));\n this.refresh();\n }\n\n /**\n * Removes the specified item from the data provider and dispatches a CollectionEvent.REMOVE event.\n *\n * @memberOf ArrayCollection\n */\n removeItem(item: T): boolean {\n const index = this.getItemIndex(item);\n return this.removeItemAt(index);\n }\n\n /**\n * Removes the item at the specified index and dispatches a CollectionEvent.REMOVE event.\n *\n * @memberOf ArrayCollection\n */\n removeItemAt(index: number): boolean {\n const success = !!this.source.splice(index, 1);\n this.refresh();\n return success;\n }\n\n /**\n * Replaces an existing item with a new item and dispatches a CollectionEvent.REPLACE event.\n *\n * @memberOf ArrayCollection\n */\n replaceItem(newItem: any, oldItem: any): any {\n const index = this.getItemIndex(oldItem);\n if (index >= 0) {\n this.replaceItemAt(newItem, index);\n }\n }\n\n /**\n * Replaces the item at the specified index and dispatches a CollectionEvent.REPLACE event.\n *\n * @memberOf ArrayCollection\n */\n replaceItemAt(newItem: any, index: number): any {\n this.filterData.splice(index, 1, newItem);\n }\n\n /**\n * Sorts the items that the data provider contains and dispatches a CollectionEvent.SORT event.\n *\n * @memberOf ArrayCollection\n */\n get sort(): Array<any> {\n return this._sort;\n }\n\n set sort(value: Array<any>) {\n this._sort = value;\n this.refresh();\n }\n\n /**\n * Sorts the items that the data provider contains by the specified field and dispatches a CollectionEvent.SORT event.\n *\n * @memberOf ArrayCollection\n */\n sortOn(fieldName: any, reverse = false): Array<T> {\n this.filterData = this.filterData.sort(Helpers.sortByField(fieldName, reverse));\n this.onDataChange(new CollectionEvent(CollectionEvent.SORT));\n return this.filterData;\n }\n\n get filter(): any {\n return this._filter;\n }\n\n set filter(value: any) {\n this._filter = value;\n this.refresh();\n }\n\n filterOn(fieldName: any, value: any = null): Array<T> {\n this.filterData = this.filterData.filter(Helpers.filterByField(fieldName, value));\n return this.filterData;\n }\n\n onDataChange(event: CollectionEvent): void {\n this.dataChange.emit(event);\n }\n\n refresh(): void {\n this.filterData = this.isEditing ? this.editData.slice() : this.source.slice();\n for (const item of this._sort.reverse()) {\n this.sortOn(item.field, item.reverse);\n }\n for (const key in this._filter) {\n if (key) {\n this.filterOn(key, this._filter[key]);\n }\n }\n this.onDataChange(new CollectionEvent(CollectionEvent.CHANGE, this.filterData));\n }\n\n /**\n * Creates an Array any representation of the data that the data provider contains.\n *\n * @memberOf ArrayCollection\n */\n toArray(): Array<T> {\n return this.isEditing ? this.editData : this.source;\n }\n\n toJSON() {\n return this.isEditing ? this.editData : this.source;\n }\n}\n","import { ArrayCollection } from './ArrayCollection';\nimport { CollectionEvent } from './CollectionEvent';\nimport { PagedCollection } from './PagedCollection';\n\nexport class PagedArrayCollection<T> extends ArrayCollection<T> implements PagedCollection<T> {\n _page: number = 1;\n _numberOfPages: number = 1;\n _pageSize: number = 10;\n\n constructor(source: Array<T> = []) {\n super(source);\n }\n\n get numberOfPages(): number {\n let result: number = this.source.length / this.pageSize;\n result = Math.ceil(result);\n return result;\n }\n\n get page(): number {\n return this._page;\n }\n\n set page(value: number) {\n this._page = value;\n this.refresh();\n }\n\n get pageSize(): number {\n return this._pageSize;\n }\n\n set pageSize(value: number) {\n this._pageSize = value;\n this.refresh();\n }\n\n next(): number {\n if (this.page === this.numberOfPages) {\n return this.page;\n }\n this.page++;\n return this.page;\n }\n\n prev(): number {\n if (this._page === 1) {\n return this.page;\n }\n this.page--;\n return this.page;\n }\n\n first(): number {\n if (this.page === 1) {\n return this.page;\n }\n this.page = 1;\n return this.page;\n }\n\n last(): number {\n if (this.page === this.numberOfPages) {\n return this.page;\n }\n this.page = this.numberOfPages;\n return this.page;\n }\n\n refresh(): void {\n this.filterData = this.isEditing ? this.editData.slice() : this.source.slice();\n for (const item of this._sort.reverse()) {\n this.sortOn(item.field, item.reverse);\n }\n for (const key in this._filter) {\n if (key) {\n this.filterOn(key, this._filter[key]);\n }\n }\n if (this.page >= 0) {\n const start = (this.page - 1) * this.pageSize;\n const end = start + this.pageSize;\n const result = this.filterData.slice(start, end);\n this.onDataChange(new CollectionEvent(CollectionEvent.CHANGE, result));\n } else {\n this.onDataChange(new CollectionEvent(CollectionEvent.CHANGE, this.filterData));\n }\n }\n}\n","// NG2\nimport { Inject, Injectable, LOCALE_ID, Optional } from '@angular/core';\nimport { Day } from 'date-fns';\n\ninterface TimeFormatParts {\n hour: string;\n minute: string;\n dayPeriod?: string;\n}\n\nexport interface BigDecimalFormatOptions extends Intl.NumberFormatOptions {\n useAccountingFormat?: boolean; // Render negative numbers using parens. True: \"(3.14)\", False: \"-3.14\"\n}\n\n@Injectable()\nexport class NovoLabelService {\n and = 'and';\n not = 'not';\n filters = 'Filter';\n clear = 'Clear';\n sort = 'Sort';\n distributionListOwner = 'Owner';\n dateAdded = 'Date Added';\n emptyTableMessage = 'No Records to display...';\n noMatchingRecordsMessage = 'No Matching Records';\n noMoreRecordsMessage = 'No More Records';\n erroredTableMessage = 'Oops! An error occurred.';\n pickerError = 'Oops! An error occurred.';\n pickerTextFieldEmpty = 'Begin typing to see results.';\n pickerEmpty = 'No results to display...';\n tabbedGroupPickerEmpty = 'No results found';\n quickNoteError = 'Oops! An error occurred.';\n quickNoteEmpty = 'No results to display...';\n required = 'Required';\n numberTooLarge = 'Number is too large';\n save = 'Save';\n cancel = 'Cancel';\n next = 'Next';\n itemsPerPage = 'Items per page:';\n chooseAField = 'Choose a field...';\n operator = 'Operator...';\n select = 'Select...';\n value = 'Value...';\n selectDateRange = 'Select Date Range...'\n typeToAddChips = 'Type to add chips...'\n selected = 'Selected';\n selectAllOnPage = 'Select all on page';\n deselectAll = 'Deselect all';\n refresh = 'Refresh';\n close = 'Close';\n move = 'Move';\n startDate = 'Start Date';\n endDate = 'End Date';\n rate = 'Rate';\n more = 'more';\n clearAll = 'CLEAR ALL';\n clearAllNormalCase = 'Clear All';\n clearSort = 'Clear Sort';\n clearFilter = 'Clear Filter';\n clearSearch = 'Clear Search';\n clearSelected = 'Clear Selected';\n today = 'Today';\n now = 'Now';\n isRequired = 'is required';\n notValidYear = 'is not a valid year';\n isTooLarge = 'is too large';\n invalidAddress = 'requires at least one field filled out';\n invalidEmail = 'requires a valid email (ex. abc@123.com)';\n minLength = 'is required to be a minimum length of';\n past1Day = 'Past 1 Day';\n past7Days = 'Past 7 Days';\n past30Days = 'Past 30 Days';\n past90Days = 'Past 90 Days';\n past1Year = 'Past 1 Year';\n next1Day = 'Next 1 Day';\n next7Days = 'Next 7 Days';\n next30Days = 'Next 30 Days';\n next90Days = 'Next 90 Days';\n next1Year = 'Next 1 Year';\n customDateRange = 'Custom Date Range';\n backToPresetFilters = 'Back to Preset Filters';\n okGotIt = 'Ok, Got it';\n address = 'Address';\n address1 = 'Address';\n apt = 'Apt'; // TODO delete\n address2 = 'Apt';\n city = 'City / Locality';\n state = 'State / Region';\n zip = 'Postal Code';\n zipCode = 'Postal Code'; // TODO delete\n country = 'Country';\n or = 'or';\n clickToBrowse = 'click to browse';\n chooseAFile = 'Choose a file';\n no = 'No';\n yes = 'Yes';\n search = 'SEARCH';\n noItems = 'There are no items';\n dateFormat = 'MM/dd/yyyy';\n dateFormatPlaceholder = 'MM/DD/YYYY';\n localDatePlaceholder = 'mm/dd/yyyy';\n timeFormatPlaceholderAM = 'hh:mm AM';\n timeFormatPlaceholder24Hour = 'HH:mm';\n timeFormatAM = 'AM';\n timeFormatPM = 'PM';\n confirmChangesModalMessage = 'Are you sure you want to change this field?';\n promptModalMessage = 'Do you want to perform the following changes?';\n asyncFailure = 'Async validation was not called within the 10s threshold, you might want to reload the page to try again';\n previous = 'Previous';\n actions = 'Actions';\n all = 'All';\n groupedMultiPickerEmpty = 'No items to display';\n groupedMultiPickerSelectCategory = 'Select a category from the left to get started';\n add = 'Add';\n encryptedFieldTooltip = 'This data has been stored at the highest level of security';\n noStatesForCountry = 'No states available for the selected country';\n selectCountryFirst = 'Please select a country before selecting a state';\n invalidIntegerInput = 'Special characters are not allowed for';\n maxRecordsReached = 'Sorry, you have reached the maximum number of records allowed for this field';\n selectFilterOptions = 'Please select one or more filter options below.';\n addCondition = 'Add Condition';\n includeAny = 'Include Any';\n includeAll = 'Include All';\n exclude = 'Exclude';\n radius = 'Radius';\n equals = 'Equals';\n equalTo = 'Equal To';\n greaterThan = 'Greater Than';\n lessThan = 'Less Than';\n doesNotEqual = 'Does Not Equal';\n true = 'True';\n false = 'False';\n before = 'Before';\n after = 'After';\n between = 'Between';\n within = 'Within';\n isEmpty = 'Is Empty?';\n refreshPagination = 'Refresh Pagination';\n location = 'Location';\n\n constructor(\n @Optional()\n @Inject(LOCALE_ID)\n public userLocale = 'en-US',\n ) {}\n\n maxlengthMetWithField(field: string, maxlength: number): string {\n return `Sorry, you have reached the maximum character count of ${maxlength} for ${field}.`;\n }\n\n maxlengthMet(maxlength: number): string {\n return `Sorry, you have reached the maximum character count of ${maxlength} for this field.`;\n }\n\n invalidMaxlengthWithField(field: string, maxlength: number): string {\n return `Sorry, you have exceeded the maximum character count of ${maxlength} for ${field}.`;\n }\n\n invalidMaxlength(maxlength: number): string {\n return `Sorry, you have exceeded the maximum character count of ${maxlength} for this field.`;\n }\n\n getToManyPlusMore(toMany: { quantity: number }): string {\n return `+${toMany.quantity} more`;\n }\n\n selectedRecords(selected: number) {\n return `${selected} records are selected.`;\n }\n\n showingXofXResults(shown: number, total: number) {\n return `Showing ${shown} of ${total} Results.`;\n }\n\n totalRecords(total: number, select = false) {\n return select ? `Select all ${total} records.` : `De-select remaining ${total} records.`;\n }\n\n dateFormatString(): string {\n return this.dateFormat;\n }\n\n localizedDatePlaceholder(): string {\n return this.localDatePlaceholder;\n }\n\n tabbedGroupClearSuggestion(tabLabelPlural: string): string {\n return `Clear your search to see all ${tabLabelPlural}.`;\n }\n\n formatDateWithFormat(value: any, format: Intl.DateTimeFormatOptions) {\n const date = value instanceof Date ? value : new Date(value);\n if (date.getTime() !== date.getTime()) {\n return value;\n }\n return new Intl.DateTimeFormat(this.userLocale, format).format(date);\n }\n\n formatToTimeOnly(param) {}\n\n formatToDateOnly(param) {}\n\n formatTimeWithFormat(value: any, format: Intl.DateTimeFormatOptions): string {\n const date = value instanceof Date ? value : new Date(value);\n if (date.getTime() !== date.getTime()) {\n return value;\n }\n const timeParts: { [type: string]: string } = Intl.DateTimeFormat(this.userLocale, format)\n .formatToParts(date)\n .reduce((obj, part) => {\n obj[part.type] = part.value;\n return obj;\n }, {});\n const dayPeriod = timeParts.dayPeriod ? timeParts.dayPeriod : '';\n const res = `${timeParts.hour}:${timeParts.minute} ${dayPeriod}`;\n return res;\n }\n\n getWeekdays(weekStartsOn: Day = 0): string[] {\n function getDay(dayOfWeek) {\n const dt = new Date();\n return dt.setDate(dt.getDate() - dt.getDay() + dayOfWeek);\n }\n\n let weekdays = [getDay(0), getDay(1), getDay(2), getDay(3), getDay(4), getDay(5), getDay(6)].reduce((weekdays, dt) => {\n weekdays.push(new Intl.DateTimeFormat(this.userLocale, { weekday: 'long' }).format(dt));\n return weekdays;\n }, []);\n\n if (weekStartsOn > 0 && weekStartsOn <= 6) {\n const newStart = weekdays.splice(weekStartsOn);\n weekdays = [...newStart, ...weekdays];\n }\n return weekdays;\n }\n\n getMonths(): string[] {\n function getMonth(month) {\n const dt = new Date();\n return dt.setMonth(month, 1);\n }\n\n return [\n getMonth(0),\n getMonth(1),\n getMonth(2),\n getMonth(3),\n getMonth(4),\n getMonth(5),\n getMonth(6),\n getMonth(7),\n getMonth(8),\n getMonth(9),\n getMonth(10),\n getMonth(11),\n ].reduce((months, dt) => {\n months.push(new Intl.DateTimeFormat(this.userLocale, { month: 'long' }).format(dt));\n return months;\n }, []);\n }\n\n getProperty(value: string) {\n return this[value];\n }\n\n getRangeText(page: number, pageSize: number, length: number, short: boolean): string {\n if (length === 0 || pageSize === 0) {\n return `Displaying 0 of ${length}`;\n }\n\n length = Math.max(length, 0);\n\n const startIndex = page * pageSize;\n\n // If the start index exceeds the list length, do not try and fix the end index to the end.\n const endIndex = startIndex < length ? Math.min(startIndex + pageSize, length) : startIndex + pageSize;\n\n return short ? `${startIndex + 1} - ${endIndex}/${length}` : `Displaying ${startIndex + 1} - ${endIndex} of ${length}`;\n }\n\n formatCurrency(value: number): string {\n const options = { style: 'currency', currency: 'USD' };\n return new Intl.NumberFormat(this.userLocale, options).format(value);\n }\n\n /**\n * Extends the Intl.numberFormat capability with two extra features:\n * - Does NOT round values, but instead truncates to maximumFractionDigits\n * - By default uses accounting format for negative numbers: (3.14) instead of -3.14.\n *\n * @param value The number value to convert to string\n * @param overrideOptions Allows for overriding options used and passed to Intl.NumberFormat()\n */\n formatBigDecimal(value: number, overrideOptions?: BigDecimalFormatOptions): string {\n const defaultOptions: BigDecimalFormatOptions = {\n style: 'decimal',\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n useAccountingFormat: true,\n };\n const options: BigDecimalFormatOptions = Object.assign(defaultOptions, overrideOptions);\n const truncatedValue = this.truncateToPrecision(value, options.maximumFractionDigits);\n let _value = new Intl.NumberFormat(this.userLocale, options).format(truncatedValue);\n if (value < 0) {\n _value = options.useAccountingFormat ? `(${_value.slice(1)})` : `-${_value.slice(1)}`;\n }\n return _value;\n }\n\n /**\n * Performs a string-based truncating of a number with no rounding\n */\n truncateToPrecision(value: number, precision: number) {\n let valueAsString = value ? value.toString() : '0';\n const decimalIndex = valueAsString.indexOf('.');\n if (decimalIndex > -1 && decimalIndex + precision + 1 < valueAsString.length) {\n valueAsString = valueAsString.substring(0, valueAsString.indexOf('.') + precision + 1);\n }\n return Number(valueAsString);\n }\n\n formatNumber(value, options?: Intl.NumberFormatOptions) {\n return new Intl.NumberFormat(this.userLocale, options).format(value);\n }\n\n formatDateShort(value: string | number | Date) {\n const options: Intl.DateTimeFormatOptions = {\n // DD/MM/YYYY, HH:MM A - 02/14/2017, 1:17 PM\n month: '2-digit',\n day: '2-digit',\n year: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n };\n const _value = value === null || value === undefined || value === '' ? new Date() : new Date(value);\n return new Intl.DateTimeFormat(this.userLocale, options).format(_value);\n }\n\n formatTime(value: string | number | Date) {\n const options: Intl.DateTimeFormatOptions = {\n // HH:MM A - 1:17 PM\n hour: 'numeric',\n minute: '2-digit',\n };\n const _value = value === null || value === undefined || value === '' ? new Date() : new Date(value);\n return new Intl.DateTimeFormat(this.userLocale, options).format(_value);\n }\n\n formatDate(value: string | number | Date) {\n const options: Intl.DateTimeFormatOptions = {\n // DD/MM/YYYY - 02/14/2017\n month: '2-digit',\n day: '2-digit',\n year: 'numeric',\n };\n const _value = value === null || value === undefined || value === '' ? new Date() : new Date(value);\n return new Intl.DateTimeFormat(this.userLocale, options).format(_value);\n }\n}\n\nexport const NOVO_ELEMENTS_LABELS_PROVIDERS = [{ provide: NovoLabelService, useClass: NovoLabelService }];\n","// NG2\nimport { Injectable } from '@angular/core';\nimport { NovoLabelService } from '../novo-label-service';\n// APP\nimport { format, parse } from 'date-fns';\nimport { MaskedEnum, MaskedRange } from 'imask';\nimport { DateUtil, Helpers, convertTokens } from 'novo-elements/utils';\n\n@Injectable()\nexport class DateFormatService {\n constructor(private labels: NovoLabelService) {}\n\n getTimeMask(militaryTime: boolean) {\n const amFormat = this.labels.timeFormatAM.toUpperCase();\n const pmFormat = this.labels.timeFormatPM.toUpperCase();\n const mask = {\n mask: Date,\n pattern: militaryTime ? 'HH:mm' : 'hh:mm aa',\n overwrite: true,\n autofix: true,\n lazy: false,\n min: new Date(1970, 0, 1),\n max: new Date(2030, 0, 1),\n prepare(str) {\n return str.toUpperCase();\n },\n format(date) {\n return DateUtil.format(date, militaryTime ? 'HH:mm' : 'hh:mm A');\n },\n parse: (str) => {\n const time = militaryTime ? str : this.convertTime12to24(str);\n return DateUtil.parse(`${DateUtil.format(Date.now(), 'YYYY-MM-DD')}T${time}`);\n },\n blocks: {\n HH: {\n mask: MaskedRange,\n placeholderChar: 'H',\n maxLength: 2,\n from: 0,\n to: 23,\n },\n hh: {\n mask: MaskedRange,\n placeholderChar: 'h',\n maxLength: 2,\n from: 1,\n to: 12,\n },\n mm: {\n mask: MaskedRange,\n placeholderChar: 'm',\n maxLength: 2,\n from: 0,\n to: 59,\n },\n aa: {\n mask: MaskedEnum,\n placeholderChar: 'x',\n enum: ['AM', 'PM', 'am', 'pm', amFormat, pmFormat],\n },\n },\n };\n return mask;\n }\n\n getDateMask(format?: string) {\n const mask = {\n mask: Date,\n pattern: 'm/`d/`Y',\n overwrite: true,\n autofix: 'pad',\n min: new Date(1970, 0, 1),\n max: new Date(2030, 0, 1),\n prepare(str) {\n return str.toUpperCase();\n },\n format(date) {\n return DateUtil.format(date, format || 'MM/DD/YYYY');\n },\n parse: (str) => {\n return DateUtil.parse(str);\n },\n }\n return mask;\n }\n\n getDateTimeMask(militaryTime: boolean = false): Array<any> {\n return [this.getDateMask(), /\\,?/, /\\s/, this.getTimeMask(militaryTime)];\n }\n\n getTimePlaceHolder(militaryTime: boolean): string {\n if (militaryTime) {\n return this.labels.timeFormatPlaceholder24Hour;\n }\n return this.labels.timeFormatPlaceholderAM;\n }\n\n parseCustomDateString(dateString: string, customFormat?: string): [Date, string, boolean] {\n let isInvalidDate = true;\n let date: Date = null;\n if (!customFormat) {\n customFormat = this.labels.dateFormatString();\n }\n customFormat = convertTokens(customFormat);\n const [cleanDateString, cleanFormat] = this.removeNonstandardFormatCharacters(dateString, customFormat);\n try {\n date = parse(cleanDateString, cleanFormat, new Date(), {\n useAdditionalWeekYearTokens: false\n });\n if (isNaN(date.getTime())) {\n date = null;\n } else if (cleanDateString !== dateString) {\n // Verify that this parse matches the original dateString through this format. If not, then something may have mismatched -\n // in which case we consider the date to be invalid.\n // For instance, if we parsed \"Fri Oct 18, 2023\" as \" Oct 18 2023\" (removing the duplicative day-of-week) then it\n // would re-format as \"Wed Oct 18 2023\" and is an invalid date.\n const reformattedDate = format(date, customFormat);\n if (reformattedDate !== dateString) {\n date = null;\n } else {\n isInvalidDate = false;\n }\n } else {\n isInvalidDate = false;\n }\n } catch(err) {\n // ignore error - keep isInvalidDate true and date null\n }\n return [date, dateString, isInvalidDate];\n }\n\n /**\n * Certain date format characters are considered nonstandard. We can still use them, but remove them for date parsing to avoid errors\n * @param dateString \n * @param format \n * @returns date string and format in array, both having had their \n */\n private removeNonstandardFormatCharacters(dateString: string, format: string): [string, string] {\n const bannedChars = /[iIRoPp]+/;\n // remove quotes\n format = format.replace(/['\"]/g, '');\n let match: RegExpExecArray = null;\n while ((match = bannedChars.exec(format)) != null) {\n format = format.substring(0, match.index) + format.substring(match.index + match[0].length);\n dateString = dateString.substring(0, match.index) + dateString.substring(match.index + match[0].length);\n }\n return [dateString, format];\n }\n\n parseDateString(dateString: string): [Date, string, boolean] {\n let dateFormat: string = this.labels.dateFormatString();\n const dateFormatRegex = /(\\w+)[\\/|\\.|\\-](\\w+)[\\/|\\.|\\-](\\w+)/gi;\n const dateValueRegex = /(\\d+)[\\/|\\.|\\-](\\d+)[\\/|\\.|\\-](\\d+)/gi;\n let dateFormatTokens: Array<string>;\n let dateValueTokens: Array<string>;\n let year: number;\n let month: number;\n let day: number;\n let date: Date = null;\n let isInvalidDate = true;\n if (Helpers.isEmpty(dateFormat)) {\n // Default to MM/dd/yyyy\n dateFormat = 'mm/dd/yyyy';\n } else {\n dateFormat = dateFormat.toLowerCase();\n }\n dateFormatTokens = dateFormatRegex.exec(dateFormat);\n dateValueTokens = dateValueRegex.exec(dateString);\n if (dateFormatTokens && dateFormatTokens.length === 4 && dateValueTokens && dateValueTokens.length === 4) {\n for (let i = 1; i < 4; i++) {\n if (dateFormatTokens[i].includes('m')) {\n month = parseInt(dateValueTokens[i], 10) - 1;\n } else if (dateFormatTokens[i].includes('d')) {\n day = parseInt(dateValueTokens[i], 10);\n } else {\n year = parseInt(dateValueTokens[i], 10);\n }\n }\n if (month >= 0 && month <= 11 && year > 1900 && day > 0 && day <= 31) {\n date = new Date(year, month, day);\n isInvalidDate = false;\n }\n } else if (dateFormatTokens && dateFormatTokens.length === 4 && dateString.length >= 1) {\n const twoTokens = /\\d{1,4}(\\/|\\.|\\-)(\\d{1,2})/.exec(dateString);\n const oneToken = /^(\\d{1,4})$/.exec(dateString);\n const delimiter = /\\w+(\\/|\\.|\\-)\\w+[\\/|\\.|\\-]\\w+/gi.exec(dateFormat);\n const dateStringWithDelimiter = dateString[dateString.length - 1].match(/\\/|\\.|\\-/);\n if ((twoTokens && twoTokens.length === 3 && this.isValidDatePart(twoTokens[2], dateFormatTokens[2]) && !dateStringWithDelimiter) ||\n (oneToken && oneToken.length === 2 && this.isValidDatePart(oneToken[1], dateFormatTokens[1]) && !dateStringWithDelimiter)) {\n dateString = `${dateString}${delimiter[1]}`;\n }\n }\n return [date, dateString, isInvalidDate];\n }\n\n parseTimeString(timeString: string, militaryTime: boolean): [Date, string] {\n const value: Date = new Date();\n let timeStringParts: Array<string>;\n let amFormat = this.labels.timeFormatAM;\n let pmFormat = this.labels.timeFormatPM;\n if (!(timeString?.includes(':'))) {\n return [value, timeString];\n }\n if (!militaryTime && amFormat && pmFormat) {\n let splits: Array<string> = [];\n let pm: boolean = false;\n amFormat = this.labels.timeFormatAM.toLowerCase();\n pmFormat = this.labels.timeFormatPM.toLowerCase();\n timeString = timeString.toLowerCase();\n if (timeString.includes(amFormat)) {\n splits = timeString.split(amFormat);\n } else if (timeString.includes(pmFormat)) {\n splits = timeString.split(pmFormat);\n pm = true;\n }\n if (splits?.length) {\n for (const item of splits) {\n if (item?.trim().includes(':')) {\n timeStringParts = item.trim().split(':');\n }\n }\n }\n if (timeStringParts?.length && timeStringParts.length === 2) {\n let hours: number = parseInt(timeStringParts[0], 10);\n if (hours === 12 && pm) {\n hours = 12;\n } else if (pm) {\n hours = hours + 12;\n } else if (hours === 12) {\n hours = 0;\n }\n value.setHours(hours);\n value.setMinutes(parseInt(timeStringParts[1], 10));\n value.setSeconds(0);\n }\n } else {\n timeStringParts = /(\\d{1,2}):(\\d{2})/.exec(timeString);\n if (timeStringParts?.length && timeStringParts.length === 3) {\n value.setHours(parseInt(timeStringParts[1], 10));\n value.setMinutes(parseInt(timeStringParts[2], 10));\n value.setSeconds(0);\n }\n }\n return [value, timeString];\n }\n\n parseString(dateTimeString: string, militaryTime: boolean, type: string): [Date, string, boolean?] {\n if (!(dateTimeString?.length)) {\n return null;\n }\n switch (type) {\n case 'datetime':\n const str = dateTimeString.replace(/-/g, '/');\n const parts = str.split(' ');\n const [dt, dts] = this.parseDateString(parts[0]);\n if (parts.length > 1) {\n const [tm, tms] = this.parseTimeString(parts[1], militaryTime);\n return [new Date(dt.setHours(tm.getHours(), tm.getMinutes())), `${dts} ${tms}`];\n }\n return [dt, dts];\n case 'date':\n return this.parseDateString(dateTimeString);\n case 'time':\n return this.parseTimeString(dateTimeString, militaryTime);\n default:\n return;\n }\n }\n\n convertTime12to24(time12h: string) {\n const pmFormat = this.labels.timeFormatPM.toUpperCase();\n\n const [time, modifier] = time12h.split(' ');\n let [hours, minutes] = time.split(':');\n if (hours === '12') {\n hours = '00';\n }\n if (['PM', pmFormat].includes(modifier)) {\n hours = `${parseInt(hours, 10) + 12}`.padStart(2, '0');\n }\n return `${hours}:${minutes}`;\n }\n\n isValidDatePart(value: string, format: string): boolean {\n const datePart = parseInt(value, 10);\n return ((format.includes('m') && (datePart >= 2 || value.length === 2)) ||\n (format.includes('d') && (datePart >= 4 || value.length === 2)) ||\n (format.includes('y') && datePart >= 1000));\n }\n}\n","import { Injectable } from '@angular/core';\n\nexport interface Global {}\n\nexport abstract class GlobalRef {\n abstract get nativeGlobal(): Global;\n abstract get nativeWindow(): Window;\n}\n\n@Injectable()\nexport class BrowserGlobalRef extends GlobalRef {\n get nativeGlobal(): Global {\n return window as Global;\n }\n get nativeWindow(): Window {\n return window;\n }\n}\nexport class NodeGlobalRef extends GlobalRef {\n get nativeGlobal(): Global {\n throw new Error(`global doesn't compile for some reason`);\n // return global as Global;\n }\n get nativeWindow(): Window {\n throw new Error('Node does not have a window object');\n }\n}\n","// NG2\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n// App\n\n@Injectable()\nexport class OptionsService {\n constructor() {}\n\n getOptionsConfig(http: HttpClient, field: any, config: { token?: string; restUrl?: string; military?: boolean }): any {\n return {\n field: 'value',\n format: '$label',\n options: (query) => {\n return new Promise((resolve, reject) => {\n if (query && query.length) {\n const exp = new RegExp('^(?:[a-z]+:)?//', 'i');\n let endpoint;\n if (exp.test(field.optionsUrl)) {\n const url = new URL(field.optionsUrl);\n url.searchParams.set('filter', query || '');\n endpoint = url.toString();\n } else {\n // Construct relative url (host will not be used but is required for construction)\n const url = new URL(`http://placeholder.com/${field.optionsUrl}`);\n url.searchParams.set('filter', query || '');\n endpoint = `${url.pathname}${url.search}`;\n }\n http.get(endpoint).subscribe(resolve, reject);\n } else {\n resolve([]);\n }\n });\n },\n };\n }\n}\n","// NG2\nimport { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class Security {\n credentials: string[] = [];\n change: EventEmitter<any> = new EventEmitter();\n\n grant(data: any[] | Object): void {\n const parsed = [];\n if (data instanceof Array) {\n for (const permission of data) {\n parsed.push(permission.replace(/\\s/gi, ''));\n }\n } else if (typeof data === 'object') {\n for (const key in data) {\n if (data[key] instanceof Array) {\n for (const permission of data[key]) {\n parsed.push(`${key}.${permission}`);\n }\n }\n }\n }\n this.credentials = [].concat(this.credentials, parsed);\n this.change.emit(this.credentials);\n }\n\n has(value: any): boolean {\n return this.credentials.indexOf(value) > -1;\n }\n\n revoke(value: any): void {\n const i: number = this.credentials.indexOf(value);\n this.credentials.splice(i, 1);\n this.change.emit(this.credentials);\n }\n\n clear(): void {\n this.credentials = [];\n this.change.emit(this.credentials);\n }\n\n subscribe(fn: any): void {\n this.change.subscribe(fn);\n }\n\n checkRoutes(\n routes: { entities?: any[]; permissions?: any[] | Function; path?: string; label?: string; canDisable?: Boolean }[],\n options: { entityType?: string },\n ): any {\n const filtered = [];\n for (const route of routes) {\n if (route.entities && ~route.entities.indexOf(options.entityType)) {\n if (route.permissions instanceof Function) {\n if (route.permissions(options, this)) {\n filtered.push(route);\n }\n } else if (route.permissions && route.permissions.length) {\n if (route.permissions.every((perm) => this.has(perm))) {\n filtered.push(route);\n }\n } else {\n filtered.push(route);\n }\n }\n }\n\n return filtered;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class LocalStorageService {\n setItem(key: any, value: any): any {\n localStorage.setItem(key, value);\n }\n\n getItem(key: any): any {\n return localStorage.getItem(key);\n }\n\n removeItem(key: any): any {\n localStorage.removeItem(key);\n }\n}\n","// NG2\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class NovoTemplateService {\n templates: any = {\n default: {},\n custom: {},\n };\n constructor() {}\n\n getAll(): any {\n const templates: any = {};\n const customTemplateTypes: string[] = Object.keys(this.templates.custom);\n const defaultTemplateTypes: string[] = Object.keys(this.templates.default);\n defaultTemplateTypes.forEach((type: string) => {\n templates[type] = this.templates.default[type];\n });\n customTemplateTypes.forEach((type: string) => {\n templates[type] = this.templates.custom[type];\n });\n return templates;\n }\n\n addDefault(key: string, template: any): void {\n this.templates.default[key] = template;\n }\n\n addCustom(key: string, template: any): void {\n this.templates.custom[key] = template;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.NovoLabelService"],"mappings":"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"}
@@ -1272,6 +1272,93 @@ class DateRange {
1272
1272
  }
1273
1273
  }
1274
1274
 
1275
+ /**
1276
+ * Copyright © 2018-2022 Ferdinand Prantl
1277
+ * https://www.npmjs.com/package/timezone-support
1278
+ **/
1279
+ const formattingToken = /(\[[^[]*\])|([-:/.()\s]+)|(A|a|YYYY|YY?|MM?|DD?|d|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g;
1280
+ const formatTokenFunctions = {};
1281
+ const formatters = {};
1282
+ function formatZonedTime(time, format) {
1283
+ let formatter = formatters[format];
1284
+ if (!formatter) {
1285
+ formatter = formatters[format] = makeFormatter(format);
1286
+ }
1287
+ return formatter(time);
1288
+ }
1289
+ function makeFormatter(format) {
1290
+ const array = format.match(formattingToken);
1291
+ const { length } = array;
1292
+ for (let i = 0; i < length; ++i) {
1293
+ const token = array[i];
1294
+ const formatter = formatTokenFunctions[token];
1295
+ if (formatter) {
1296
+ array[i] = formatter;
1297
+ }
1298
+ else {
1299
+ array[i] = token.replace(/^\[|\]$/g, '');
1300
+ }
1301
+ }
1302
+ return function (time) {
1303
+ let output = '';
1304
+ for (const token of array) {
1305
+ output += typeof token === 'function' ? token.call(time) : token;
1306
+ }
1307
+ return output;
1308
+ };
1309
+ }
1310
+ const addFormatToken = function (token, padded, property) {
1311
+ const callback = typeof property === 'string' ? function () {
1312
+ return this[property];
1313
+ } : property;
1314
+ if (token) {
1315
+ formatTokenFunctions[token] = callback;
1316
+ }
1317
+ if (padded) {
1318
+ formatTokenFunctions[padded[0]] = function () {
1319
+ return padWithZeros(callback.call(this), padded[1]);
1320
+ };
1321
+ }
1322
+ };
1323
+ addFormatToken('A', 0, function () { return this.hours < 12 ? 'AM' : 'PM'; });
1324
+ addFormatToken('a', 0, function () { return this.hours < 12 ? 'am' : 'pm'; });
1325
+ addFormatToken('S', 0, function () { return Math.floor(this.milliseconds / 100); });
1326
+ addFormatToken(0, ['SS', 2], function () { return Math.floor(this.milliseconds / 10); });
1327
+ addFormatToken(0, ['SSS', 3], 'milliseconds');
1328
+ addFormatToken('s', ['ss', 2], 'seconds');
1329
+ addFormatToken('m', ['mm', 2], 'minutes');
1330
+ addFormatToken('h', ['hh', 2], function () { return (this.hours % 12) || 12; });
1331
+ addFormatToken('H', ['HH', 2], 'hours');
1332
+ addFormatToken('d', 0, 'dayOfWeek');
1333
+ addFormatToken('D', ['DD', 2], 'day');
1334
+ addFormatToken('M', ['MM', 2], 'month');
1335
+ addFormatToken(0, ['YY', 2], function () { return this.year % 100; });
1336
+ addFormatToken('Y', ['YYYY', 4], 'year');
1337
+ addFormatToken('z', 0, function () { return this.zone.abbreviation; });
1338
+ function addTimeZoneFormatToken(token, separator) {
1339
+ addFormatToken(token, 0, function () {
1340
+ let offset = -this.zone.offset;
1341
+ const sign = offset < 0 ? '-' : '+';
1342
+ offset = Math.abs(offset);
1343
+ return sign + padWithZeros(Math.floor(offset / 60), 2) + separator + padWithZeros(offset % 60, 2);
1344
+ });
1345
+ }
1346
+ addTimeZoneFormatToken('Z', ':');
1347
+ addTimeZoneFormatToken('ZZ', '');
1348
+ const padToN = [undefined, undefined, padToTwo, padToThree, padToFour];
1349
+ function padWithZeros(number, length) {
1350
+ return padToN[length](number);
1351
+ }
1352
+ function padToTwo(number) {
1353
+ return number > 9 ? number : '0' + number;
1354
+ }
1355
+ function padToThree(number) {
1356
+ return number > 99 ? number : number > 9 ? '0' + number : '00' + number;
1357
+ }
1358
+ function padToFour(number) {
1359
+ return number > 999 ? number : number > 99 ? '0' + number : number > 9 ? '00' + number : '000' + number;
1360
+ }
1361
+
1275
1362
  const WEEKEND_DAY_NUMBERS = [0, 6];
1276
1363
  const DAYS_IN_WEEK = 7;
1277
1364
  const HOURS_IN_DAY = 24;
@@ -19993,5 +20080,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
19993
20080
  * Generated bundle index. Do not edit.
19994
20081
  */
19995
20082
 
19996
- export { AppBridge, AppBridgeHandler, AppBridgeService, BooleanInput, COUNTRIES, CalendarEventResponse, Can, Color, DateRange, DateUtil, Deferred, DevAppBridge, DevAppBridgeService, Helpers, KeyCodes, OutsideClick, binarySearch, can, convertTokens, findByCountryCode, findByCountryId, findByCountryName, getCountries, getDayView, getDayViewHourGrid, getMonthView, getStateObjects, getStates, getWeekView, getWeekViewEventOffset, getWeekViewHeader, isAlphaNumeric, legacyParse, notify };
20083
+ export { AppBridge, AppBridgeHandler, AppBridgeService, BooleanInput, COUNTRIES, CalendarEventResponse, Can, Color, DateRange, DateUtil, Deferred, DevAppBridge, DevAppBridgeService, Helpers, KeyCodes, OutsideClick, binarySearch, can, convertTokens, findByCountryCode, findByCountryId, findByCountryName, formatZonedTime, getCountries, getDayView, getDayViewHourGrid, getMonthView, getStateObjects, getStates, getWeekView, getWeekViewEventOffset, getWeekViewHeader, isAlphaNumeric, legacyParse, notify };
19997
20084
  //# sourceMappingURL=novo-elements-utils.mjs.map