@colijnit/corecomponents_v12 12.0.18 → 12.0.21
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.
- package/bundles/colijnit-corecomponents_v12.umd.js +283 -81
- package/bundles/colijnit-corecomponents_v12.umd.js.map +1 -1
- package/colijnit-corecomponents_v12.d.ts +14 -16
- package/colijnit-corecomponents_v12.metadata.json +1 -1
- package/esm2015/colijnit-corecomponents_v12.js +15 -17
- package/esm2015/lib/components/base/base-input.component.js +181 -36
- package/esm2015/lib/components/carousel-3d/carousel-3d.component.js +12 -6
- package/esm2015/lib/components/co-dialog/co-dialog.module.js +1 -3
- package/esm2015/lib/components/collapsible/collapsible.component.js +10 -2
- package/esm2015/lib/components/drop-down-list/drop-down-list.component.js +1 -1
- package/esm2015/lib/components/drop-down-list/drop-down.module.js +6 -6
- package/esm2015/lib/components/form/form.component.js +18 -18
- package/esm2015/lib/components/input-checkbox/input-checkbox.component.js +1 -1
- package/esm2015/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.component.js +1 -1
- package/esm2015/lib/components/input-date-picker/input-date-picker.component.js +1 -1
- package/esm2015/lib/components/input-radio-button/input-radio-button.component.js +1 -1
- package/esm2015/lib/components/input-text/input-text.component.js +15 -4
- package/esm2015/lib/components/input-text/input-text.module.js +1 -1
- package/esm2015/lib/components/input-textarea/input-textarea.component.js +8 -8
- package/esm2015/lib/components/multi-select-list/multi-select-list.module.js +6 -6
- package/esm2015/lib/components/validation-error/validation-error.component.js +13 -1
- package/esm2015/lib/components/validation-error/validation-error.module.js +4 -2
- package/esm2015/public-api.js +3 -1
- package/fesm2015/colijnit-corecomponents_v12.js +246 -69
- package/fesm2015/colijnit-corecomponents_v12.js.map +1 -1
- package/lib/components/base/base-input.component.d.ts +23 -5
- package/lib/components/co-kanban/style/_layout.scss +4 -0
- package/lib/components/co-kanban/style/_material-definition.scss +2 -0
- package/lib/components/drop-down-list/style/_layout.scss +2 -1
- package/lib/components/drop-down-list/style/_material-definition.scss +2 -0
- package/lib/components/form/form.component.d.ts +2 -3
- package/lib/components/input-checkbox/style/_material-definition.scss +1 -2
- package/lib/components/input-checkbox/style/material.scss +2 -0
- package/lib/components/input-checkbox-multi-select/style/_layout.scss +5 -1
- package/lib/components/input-checkbox-multi-select/style/_material-definition.scss +2 -0
- package/lib/components/input-combo-box/style/_layout.scss +4 -2
- package/lib/components/input-combo-box/style/_material-definition.scss +2 -0
- package/lib/components/input-date-picker/style/_layout.scss +2 -1
- package/lib/components/input-date-picker/style/_material-definition.scss +4 -0
- package/lib/components/input-listbox/style/_layout.scss +0 -1
- package/lib/components/input-listbox/style/_material-definition.scss +2 -2
- package/lib/components/input-text/style/_layout.scss +32 -0
- package/lib/components/input-text/style/_material-definition.scss +3 -0
- package/lib/components/input-text/style/_theme.scss +21 -1
- package/lib/components/input-textarea/style/_theme.scss +1 -0
- package/lib/components/multi-select-list/style/_layout.scss +2 -1
- package/lib/components/multi-select-list/style/_material-definition.scss +2 -0
- package/lib/components/multi-select-list/style/_theme.scss +5 -1
- package/lib/components/validation-error/style/_layout.scss +10 -2
- package/lib/components/validation-error/validation-error.component.d.ts +6 -0
- package/lib/style/_input.mixins.scss +4 -3
- package/lib/style/_variables.scss +41 -1
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colijnit-corecomponents_v12.umd.js","sources":["../../../projects/corecomponents/src/lib/core/function/is-nill.function.ts","../../../projects/corecomponents/src/lib/core/function/not-nill.function.ts","../../../projects/corecomponents/src/lib/core/utils/object-utils.ts","../../../projects/corecomponents/src/lib/core/function/none-nill.function.ts","../../../projects/corecomponents/src/lib/core/function/any-nill.function.ts","../../../projects/corecomponents/src/lib/core/utils/number-utils.ts","../../../projects/corecomponents/src/lib/core/utils/array-utils.ts","../../../projects/corecomponents/src/lib/core/utils/string-utils.ts","../../../projects/corecomponents/src/lib/core/model/core-components-icon-svg.ts","../../../projects/corecomponents/src/lib/components/icon/icon-cache.service.ts","../../../projects/corecomponents/src/lib/components/icon/icon.component.ts","../../../projects/corecomponents/src/lib/components/icon/icon.module.ts","../../../projects/corecomponents/src/lib/directives/ripple/scroll-dispatcher.service.ts","../../../projects/corecomponents/src/lib/directives/ripple/viewport-ruler.service.ts","../../../projects/corecomponents/src/lib/directives/ripple/ripple-ref.ts","../../../projects/corecomponents/src/lib/directives/ripple/ripple-renderer.ts","../../../projects/corecomponents/src/lib/directives/ripple/ripple.directive.ts","../../../projects/corecomponents/src/lib/directives/ripple/scrollable.directive.ts","../../../projects/corecomponents/src/lib/directives/ripple/ripple.module.ts","../../../projects/corecomponents/src/lib/core/utils/event-utils.ts","../../../projects/corecomponents/src/lib/components/button/button.component.ts","../../../projects/corecomponents/src/lib/components/button/button.module.ts","../../../projects/corecomponents/src/lib/components/image/image.component.ts","../../../projects/corecomponents/src/lib/components/image/image.module.ts","../../../projects/corecomponents/src/lib/directives/stopclick/stop-click.directive.ts","../../../projects/corecomponents/src/lib/directives/stopclick/stop-click.module.ts","../../../projects/corecomponents/src/lib/components/level-indicator/level-indicator.component.ts","../../../projects/corecomponents/src/lib/components/level-indicator/level-indicator.module.ts","../../../projects/corecomponents/src/lib/pipes/price-display.pipe.ts","../../../projects/corecomponents/src/lib/pipes/price-display-pipe.module.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/corecomponents/src/lib/core/enum/core-components-icon.enum.ts","../../../projects/corecomponents/src/lib/core/decorator/input-boolean.decorator.ts","../../../projects/corecomponents/src/lib/components/tile/tile.component.ts","../../../projects/corecomponents/src/lib/components/tile/tile.module.ts","../../../projects/corecomponents/src/lib/components/article-tile/article-tile.component.ts","../../../projects/corecomponents/src/lib/components/article-tile/article-tile.module.ts","../../../projects/corecomponents/src/lib/components/button-drop-down/button-drop-down.component.ts","../../../projects/corecomponents/src/lib/components/button-drop-down/button-drop-down.module.ts","../../../projects/corecomponents/src/lib/components/co-dialog/co-dialog.component.ts","../../../projects/corecomponents/src/lib/components/co-dialog/co-dialog.module.ts","../../../projects/corecomponents/src/lib/components/co-dialog-prompt/co-dialog-prompt.component.ts","../../../projects/corecomponents/src/lib/components/co-dialog-prompt/co-dialog-prompt.module.ts","../../../projects/corecomponents/src/lib/components/co-kanban/co-kanban.component.ts","../../../projects/corecomponents/src/lib/components/co-kanban/co-kanban.module.ts","../../../projects/corecomponents/src/lib/components/co-schedule/co-schedule.component.ts","../../../projects/corecomponents/src/lib/components/co-schedule/co-schedule.module.ts","../../../projects/corecomponents/src/lib/components/co-sidebar/co-sidebar.component.ts","../../../projects/corecomponents/src/lib/components/co-sidebar/co-sidebar.module.ts","../../../projects/corecomponents/src/lib/components/co-toggle/co-toggle.component.ts","../../../projects/corecomponents/src/lib/components/co-toggle/co-toggle.module.ts","../../../projects/corecomponents/src/lib/components/collapsible/collapsible.component.ts","../../../projects/corecomponents/src/lib/components/collapsible/collapsible.module.ts","../../../projects/corecomponents/src/lib/core/service/form-input-user-change-listener.service.ts","../../../projects/corecomponents/src/lib/core/service/ng-zone-wrapper.service.ts","../../../projects/corecomponents/src/lib/components/base/base.module.ts","../../../projects/corecomponents/src/lib/components/base/component-interface-name.ts","../../../projects/corecomponents/src/lib/core/validator/required.validator.ts","../../../projects/corecomponents/src/lib/core/validator/precision-scale.validator.ts","../../../projects/corecomponents/src/lib/core/validator/max-string-length.validator.ts","../../../projects/corecomponents/src/lib/components/validation-error/validation-error.component.ts","../../../projects/corecomponents/src/lib/components/base/base-input.component.ts","../../../projects/corecomponents/src/lib/core/model/element-position.ts","../../../projects/corecomponents/src/lib/core/service/form-master.service.ts","../../../projects/corecomponents/src/lib/components/form/form.component.ts","../../../projects/corecomponents/src/lib/components/drop-down-list/drop-down-list.component.ts","../../../projects/corecomponents/src/lib/components/drop-down-list/drop-down.module.ts","../../../projects/corecomponents/src/lib/components/form/form.module.ts","../../../projects/corecomponents/src/lib/components/grid/enum/grid-lines.enum.ts","../../../projects/corecomponents/src/lib/components/grid/base/base-grid.component.ts","../../../projects/corecomponents/src/lib/components/grid/base/base-toolbar-grid.component.ts","../../../projects/corecomponents/src/lib/components/grid/base/base-inline-edit-grid.component.ts","../../../projects/corecomponents/src/lib/components/grid/base/base-selection-grid.component.ts","../../../projects/corecomponents/src/lib/components/grid/co-grid.component.ts","../../../projects/corecomponents/src/lib/components/grid/co-grid.module.ts","../../../projects/corecomponents/src/lib/components/input-checkbox/input-checkbox.component.ts","../../../projects/corecomponents/src/lib/components/input-checkbox/input-checkbox.module.ts","../../../projects/corecomponents/src/lib/pipes/append.pipe.ts","../../../projects/corecomponents/src/lib/pipes/append.pipe.module.ts","../../../projects/corecomponents/src/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.component.ts","../../../projects/corecomponents/src/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.module.ts","../../../projects/corecomponents/src/lib/components/input-combo-box/input-combo-box.component.ts","../../../projects/corecomponents/src/lib/components/input-combo-box/input-combo-box.module.ts","../../../projects/corecomponents/src/lib/components/input-date-picker/input-date-picker.component.ts","../../../projects/corecomponents/src/lib/components/input-date-picker/input-date-picker.module.ts","../../../projects/corecomponents/src/lib/core/constant/java-max-int.ts","../../../projects/corecomponents/src/lib/core/constant/default-upper-bound-for-range-components.ts","../../../projects/corecomponents/src/lib/core/model/bounds-constrained-number-value.ts","../../../projects/corecomponents/src/lib/core/enum/keyboard-code.enum.ts","../../../projects/corecomponents/src/lib/core/constant/number-inputs-key-down-white-list.ts","../../../projects/corecomponents/src/lib/components/input-text/input-text.component.ts","../../../projects/corecomponents/src/lib/core/enum/input-number-picker-show-mode.enum.ts","../../../projects/corecomponents/src/lib/components/input-number-picker/input-number-picker.component.ts","../../../projects/corecomponents/src/lib/components/validation-error/validation-error.module.ts","../../../projects/corecomponents/src/lib/components/input-text/input-text.module.ts","../../../projects/corecomponents/src/lib/components/input-number-picker/input-number-picker.module.ts","../../../projects/corecomponents/src/lib/components/input-radio-button/input-radio-button.component.ts","../../../projects/corecomponents/src/lib/components/input-radio-button/input-radio-button.module.ts","../../../projects/corecomponents/src/lib/components/input-textarea/input-textarea.component.ts","../../../projects/corecomponents/src/lib/components/input-textarea/input-textarea.module.ts","../../../projects/corecomponents/src/lib/components/multi-select-list/multi-select-list.component.ts","../../../projects/corecomponents/src/lib/components/multi-select-list/multi-select-list.module.ts","../../../projects/corecomponents/src/lib/components/pivot/co-pivot.component.ts","../../../projects/corecomponents/src/lib/components/pivot/co-pivot.module.ts","../../../projects/corecomponents/src/lib/components/popup/text-input-popup.component.ts","../../../projects/corecomponents/src/lib/core/enum/file-type-internal.enum.ts","../../../projects/corecomponents/src/lib/core/enum/file-type.enum.ts","../../../projects/corecomponents/src/lib/core/enum/co-document-image-display-kind.enum.ts","../../../projects/corecomponents/src/lib/core/enum/object-right-type.enum.ts","../../../projects/corecomponents/src/lib/core/model/co-document.bo.ts","../../../projects/corecomponents/src/lib/core/enum/co-document-type.enum.ts","../../../projects/corecomponents/src/lib/core/utils/file-utils.ts","../../../projects/corecomponents/src/lib/core/utils/browser-utils.ts","../../../projects/corecomponents/src/lib/components/popup/popup-message-display.component.ts","../../../projects/corecomponents/src/lib/core/enum/popup-button-type.enum.ts","../../../projects/corecomponents/src/lib/components/popup/interface/popup-button.ts","../../../projects/corecomponents/src/lib/components/popup/model/popup-button-globals.ts","../../../projects/corecomponents/src/lib/components/popup/popup-buttons.component.ts","../../../projects/corecomponents/src/lib/core/enum/popup-type.enum.ts","../../../projects/corecomponents/src/lib/components/popup/popup-window-shell.component.ts","../../../projects/corecomponents/src/lib/components/popup/model/popup-window.ts","../../../projects/corecomponents/src/lib/components/popup/const/popup-window-token.ts","../../../projects/corecomponents/src/lib/components/popup/service/popup-shower.service.ts","../../../projects/corecomponents/src/lib/core/model/event/string-prompt-result-event.ts","../../../projects/corecomponents/src/lib/components/popup/interface/popup-settings.ts","../../../projects/corecomponents/src/lib/components/popup/service/prompt.service.ts","../../../projects/corecomponents/src/lib/components/popup/popup.module.ts","../../../projects/corecomponents/src/lib/components/co-rich-text-editor/co-rich-text-editor.component.ts","../../../projects/corecomponents/src/lib/components/co-rich-text-editor/co-rich-text-editor.module.ts","../../../projects/corecomponents/src/lib/components/input-listbox/input-listbox.component.ts","../../../projects/corecomponents/src/lib/components/input-listbox/input-listbox.module.ts","../../../projects/corecomponents/src/lib/components/simple-grid/simple-grid-column.directive.ts","../../../projects/corecomponents/src/lib/components/simple-grid/simple-grid.component.ts","../../../projects/corecomponents/src/lib/components/simple-grid/simple-grid.module.ts","../../../projects/corecomponents/src/lib/components/carousel-3d/carouselItem.ts","../../../projects/corecomponents/src/lib/components/carousel-3d/carousel-3d.component.ts","../../../projects/corecomponents/src/lib/components/carousel-3d/carousel-3d.module.ts","../../../projects/corecomponents/src/public-api.ts","../../../projects/corecomponents/src/colijnit-corecomponents_v12.ts"],"sourcesContent":["// @returns true iff given value equals null or equals undefined\r\nexport function isNill(value: any): boolean {\r\n return value === null || value === undefined;\r\n}","// @returns true iff given value does not equals null and does not equal undefined\r\nexport function notNill(value: any): boolean {\r\n return value !== null && value !== undefined;\r\n}","import {isNill} from \"../function/is-nill.function\";\r\nimport {notNill} from \"../function/not-nill.function\";\r\n\r\n// Static utility function holder related to objects.\r\nexport class ObjectUtils {\r\n\r\n /**\r\n * Returns whether all given values exist: for all values it holds that they are not null nor undefined. Short-circuit check.\r\n * @param values Rest parameters with all objects to check existence for.\r\n * @returns True if ALL given values are not null nor undefined, otherwise false (if at least one value was null or undefined)\r\n */\r\n public static AllExist(...values: any[]): boolean {\r\n let allExist: boolean = true;\r\n for (let i: number = 0, len: number = values.length; i < len; i++) {\r\n if (isNill(values[i])) {\r\n allExist = false;\r\n break;\r\n }\r\n }\r\n return allExist;\r\n }\r\n\r\n // Returns a shallow clone of the given original object. The clone is a SIMPLE OBJECT with the same properties as the original.\r\n public static GetShallowClone(originalObject: any, objectClass?: any): any {\r\n let clonedObject: any = undefined;\r\n\r\n if (objectClass) {\r\n clonedObject = new objectClass();\r\n } else {\r\n clonedObject = {};\r\n }\r\n\r\n ObjectUtils.ForOwnProperty(originalObject, (value: any, key: string) => {\r\n clonedObject[key] = value;\r\n });\r\n\r\n return clonedObject;\r\n }\r\n\r\n /**\r\n * Copies all properties from object 'from' to object 'to'. Overwrites properties on object 'to' if property already exists.\r\n * Does not copy functions, only properties.\r\n * @param from The source object from which to copy all properties of to the 'to' object.\r\n * @param to The object to which the properties of the 'from' object will be copied.\r\n * @param [allowUndefined = true] wether the 'to' object may be assigned null or undefined values to any of its properties.\r\n */\r\n public static CopyPropertiesFrom<T>(from: Object, to: T, allowUndefined: boolean = true): T {\r\n if (!to) {\r\n to = {} as T;\r\n }\r\n if (!from) {\r\n return to;\r\n }\r\n ObjectUtils.ForOwnProperty(from, (value: any, key: string) => {\r\n if (allowUndefined || notNill(value)) {\r\n to[key] = value;\r\n }\r\n });\r\n return to;\r\n }\r\n\r\n /**\r\n * Returns the display value of the given property on the given object, as a string (== the string representation of the property value).\r\n * Does not return null or undefined, but returns the given defaultValue instead.\r\n */\r\n public static GetDisplayValueOfPropertyOn(object: Object, property: string, defaultValue: string = \"\"): string {\r\n if (!object || !property) {\r\n return defaultValue;\r\n }\r\n\r\n let returnValue: string = defaultValue;\r\n let propertyValue: any = object[property];\r\n if (propertyValue) {\r\n returnValue = propertyValue.toString();\r\n }\r\n\r\n return returnValue;\r\n }\r\n\r\n // Performs given callback function for each own property of given plain object. Also works on string enums.\r\n public static ForOwnProperty(plainObject: any, callback: (propVal: any, key: string) => any): void {\r\n if (ObjectUtils.IsPlainObject(plainObject)) {\r\n for (let key in plainObject) {\r\n if (plainObject.hasOwnProperty(key) && typeof plainObject[key] !== 'function') {\r\n let response: boolean = callback(plainObject[key], key);\r\n if (response === false) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Returns whether given object is an existing, plain object. That is, it defined, its type if 'object' and it is NOT an array or func.\r\n public static IsPlainObject(object: any): boolean {\r\n return object !== null && !Array.isArray(object) && typeof object !== 'function' && typeof object === 'object';\r\n }\r\n\r\n public static DeepEquals(actual: any, expected: any): boolean {\r\n if (actual === expected) {\r\n return true;\r\n } else if (actual instanceof Date && expected instanceof Date) {\r\n return actual.getTime() === expected.getTime();\r\n } else if (!actual || !expected || typeof actual !== 'object' && typeof expected !== 'object') {\r\n return actual === expected;\r\n } else {\r\n return this._objEquiv(actual, expected);\r\n }\r\n }\r\n\r\n private static _objEquiv(a: any, b: any): boolean {\r\n let i: number, key: string;\r\n if (isNill(a) || isNill(b)) {\r\n return false;\r\n }\r\n\r\n if (a.prototype !== b.prototype) {\r\n return false;\r\n }\r\n\r\n if (this._isArguments(a)) {\r\n if (!this._isArguments(b)) {\r\n return false;\r\n }\r\n a = Array.prototype.slice.call(a);\r\n b = Array.prototype.slice.call(b);\r\n return this.DeepEquals(a, b);\r\n }\r\n if (this._isBuffer(a)) {\r\n if (!this._isBuffer(b)) {\r\n return false;\r\n }\r\n if (a.length !== b.length) {\r\n return false;\r\n }\r\n for (i = 0; i < a.length; i++) {\r\n if (a[i] !== b[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n let ka: string[];\r\n let kb: string[];\r\n try {\r\n ka = Object.keys(a);\r\n kb = Object.keys(b);\r\n } catch (e) {\r\n return false;\r\n }\r\n\r\n if (ka.length !== kb.length) {\r\n return false;\r\n }\r\n\r\n ka.sort();\r\n kb.sort();\r\n\r\n for (i = ka.length - 1; i >= 0; i--) {\r\n if (ka[i] !== kb[i]) {\r\n return false;\r\n }\r\n }\r\n\r\n for (i = ka.length - 1; i >= 0; i--) {\r\n key = ka[i];\r\n if (!this.DeepEquals(a[key], b[key])) {\r\n return false;\r\n }\r\n }\r\n return typeof a === typeof b;\r\n }\r\n\r\n private static _isBuffer(x: any): boolean {\r\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') {\r\n return false;\r\n }\r\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\r\n return false;\r\n }\r\n return !(x.length > 0 && typeof x[0] !== 'number');\r\n }\r\n\r\n private static _isArguments(x: any): boolean {\r\n let supportsArgsClass: boolean = this._supportsArgumentsClass();\r\n return supportsArgsClass ? this._isArgumentsWhenArgsClassSupported(x) : this._isArgumentsWhenArgsClassNotSupported(x);\r\n }\r\n\r\n private static _isArgumentsWhenArgsClassNotSupported(object: any): boolean {\r\n return object &&\r\n typeof object === 'object' &&\r\n typeof object.length === 'number' &&\r\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\r\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\r\n false;\r\n }\r\n\r\n private static _isArgumentsWhenArgsClassSupported(object: any): boolean {\r\n return Object.prototype.toString.call(object) === '[object Arguments]';\r\n }\r\n\r\n private static _supportsArgumentsClass(): boolean {\r\n return Object.prototype.toString.call(arguments) === '[object Arguments]';\r\n }\r\n}\r\n","import {isNill} from \"./is-nill.function\";\r\n\r\n// @returns true iff for all items it holds that they do not equal null and not equal undefined. If at least one is null or undefined, this\r\n// function returns false.\r\nexport function noneNill(...values: any[]): boolean {\r\n if (values) {\r\n for (let i: number = 0, len: number = values.length; i < len; i++) {\r\n if (isNill(values[i])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}","import {noneNill} from \"./none-nill.function\";\r\n\r\n// @returns true iff at least one of given values equals null or undefined.\r\nexport function anyNill(...values: any[]): boolean {\r\n return !noneNill(values);\r\n}","import {anyNill} from \"../function/any-nill.function\";\r\nimport {ArrayUtils} from \"./array-utils\";\r\nimport {CheckWithinSteppedBoundsResult} from \"../model/check-within-stepped-bounds-result\";\r\nimport {isNill} from \"../function/is-nill.function\";\r\nimport { ObjectUtils } from './object-utils';\r\nimport { CheckPrecisionAndScaleResult } from '../model/check-precision-and-scale-result';\r\n\r\n// @dynamic\r\nexport class NumberUtils {\r\n // @returns The inclusive max value\r\n public static PrecisionScaleToMaxValue(precision: number, scale: number): number {\r\n const oneStep: number = this.DecimalsToStepIncrement(scale);\r\n const maxExclusive: number = Math.pow(10, precision - scale);\r\n return maxExclusive - oneStep;\r\n }\r\n\r\n // Parses given argument to an integer, using a native parseInt() function with a radix of 10. Returns NaN if parsing was not possible.\r\n public static ParseInt(arg: any): number {\r\n if (isNill(arg) || Array.isArray(arg)) {\r\n return undefined;\r\n }\r\n\r\n return parseInt(arg, 10);\r\n }\r\n\r\n public static DecimalsToStepIncrement(numberOfDecimals: number): number {\r\n return Math.pow(10, -1 * numberOfDecimals);\r\n }\r\n\r\n // Returns the given argument as a number. Returns given defaultValue if conversion of argument was impossible.\r\n public static ParseNumberOrDefault(arg: any, defaultValue: number = 0): number {\r\n if (Array.isArray(arg)) {\r\n return defaultValue;\r\n }\r\n\r\n if (!NumberUtils.IsNumber(arg)) {\r\n arg = parseFloat(arg);\r\n arg = isNaN(arg) ? defaultValue : arg;\r\n }\r\n return arg;\r\n }\r\n\r\n // Parses given numberInput to a number, or returns given defaultValue if parse not possible. Allows ',' char as decimal delimiter.\r\n public static ParseNumberInputOrDefault(numberInput: any, defaultValue: number = 0): number {\r\n return NumberUtils.ParseNumberOrDefault(NumberUtils._NumberInputToNumberStr(numberInput), defaultValue);\r\n }\r\n\r\n public static IsParsableNumberInput(numberInput: any): boolean {\r\n return NumberUtils.IsParsableNumber(NumberUtils._NumberInputToNumberStr(numberInput));\r\n }\r\n\r\n // Returns whether the type of given argument is 'number'.\r\n public static IsNumber(arg: any): boolean {\r\n return typeof arg === 'number';\r\n }\r\n\r\n // Returns whether the value is parasable as a number.\r\n public static IsParsableNumber(arg: any): boolean {\r\n if (Array.isArray(arg)) {\r\n return false;\r\n }\r\n\r\n return !isNaN(parseFloat(arg));\r\n }\r\n\r\n /**\r\n * Returns given arg as a float number with given decimal precision, if possible. Returns NaN if parse conversion failed.\r\n *\r\n * @param The argument to parse to a float\r\n * @param The number of decimals, or the precision, the parsed return float should have\r\n * @returns NaN if not possible, else the parsed float value\r\n */\r\n public static ParseFloat(arg: any, decimalPrecision: number = 2): number {\r\n if (anyNill(arg, decimalPrecision) || Array.isArray(arg)) {\r\n return NaN;\r\n }\r\n\r\n if (!NumberUtils.IsInteger(decimalPrecision) || decimalPrecision < 0) {\r\n decimalPrecision = 2;\r\n // toFixed() can only handle up until 20\r\n } else if (decimalPrecision > 20) {\r\n decimalPrecision = 20;\r\n }\r\n\r\n return parseFloat(parseFloat(arg).toFixed(decimalPrecision));\r\n }\r\n\r\n /**\r\n * Returns given arg as a float number with given decimal precision, if possible. Returns NaN if parse conversion failed.\r\n *\r\n * @param The argument to parse to a float\r\n * @returns The argument as a float with its original decimal precision intact\r\n */\r\n public static ParseFloatKeepPrecision(arg: any): number {\r\n let decimalPrecision: number = this.GetDecimalPlaces(arg);\r\n return this.ParseFloat(arg, decimalPrecision);\r\n }\r\n\r\n public static ParseFloatNumberInputKeepPrecision(arg: any): number {\r\n let correctedInputStr: string = NumberUtils._NumberInputToNumberStr(arg);\r\n let decimalPrecision: number = this.GetDecimalPlaces(correctedInputStr);\r\n return NumberUtils.ParseFloat(correctedInputStr, decimalPrecision);\r\n }\r\n\r\n /**\r\n * Finds the number closest to the originalNumber, that adheres to the given bounds. That is, for which it holds that\r\n * nr = min + N * step with N integer or 0.\r\n * @param originalNr Find closest answer to this number\r\n * @param min Inclusive\r\n * @param max Inclusive\r\n * @param stepSize\r\n * @returns The closest OK number for bounds.\r\n */\r\n public static GetNearestNumberWithinSteppedBounds(originalNr: number, min: number, max: number, stepSize: number = 1): number {\r\n if (originalNr < min) {\r\n return min;\r\n } else if (originalNr > max) {\r\n return NumberUtils.GetTrueSteppedBoundsMax(min, max, stepSize);\r\n }\r\n\r\n let boundsCheck: CheckWithinSteppedBoundsResult = NumberUtils.CheckWithinSteppedBounds(originalNr, min, max, stepSize);\r\n if (boundsCheck.isOk) {\r\n return originalNr;\r\n }\r\n\r\n let answer: number = undefined;\r\n\r\n let remainder: number = boundsCheck.remainder;\r\n if (remainder) {\r\n // round up or down?\r\n if ((remainder / stepSize) < 0.5) {\r\n // round down, but not below min\r\n answer = (originalNr - remainder >= min ? originalNr - remainder : min);\r\n } else {\r\n // round up, but not above max\r\n answer = (originalNr + stepSize - remainder <= max ? originalNr + stepSize - remainder :\r\n NumberUtils.GetTrueSteppedBoundsMax(min, max, stepSize));\r\n }\r\n } else {\r\n // is this real life, why wasn't our stepped bounds check OK?\r\n answer = originalNr;\r\n }\r\n\r\n // 'correct' float errors\r\n answer = NumberUtils.ParseFloat(answer, NumberUtils._GetLargestDecimalPrecisionOf(originalNr, min, max, stepSize));\r\n return answer;\r\n }\r\n\r\n // Returns the number of decimal places of the given number. Returns 0 if no decimals whatsoever could be found on given arg.\r\n public static GetDecimalPlaces(arg: any, maxAnswer: number = 1000): number {\r\n let match: RegExpMatchArray = ('' + arg).match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);\r\n if (!match) {\r\n return 0;\r\n }\r\n\r\n let answer: number = Math.max(0,\r\n // number of digits right of decimal point.\r\n (match[1] ? match[1].length : 0)\r\n // adjust for scientific notation\r\n - (match[2] ? +match[2] : 0));\r\n\r\n if (answer > maxAnswer) {\r\n answer = maxAnswer;\r\n }\r\n\r\n return answer;\r\n }\r\n\r\n // Returns true iff given argument is an integer number. Returns false on non-numbers or numbers with significant decimals.\r\n public static IsInteger(arg: any): boolean {\r\n if (isNaN(arg) || Array.isArray(arg)) {\r\n return false;\r\n }\r\n let argAsFloat: number = parseFloat(arg);\r\n return ((argAsFloat | 0) === argAsFloat); // returns whether 'arg converted to an integer equals arg'\r\n }\r\n\r\n /**\r\n * Returns whether given arg is parseable as a number, and whether the lengts of its number parse result is equal to its original length.\r\n * I.e. this function returns FALSE with given number-parsable strings, but that have non-numeric appendices, eg '2233ff'. That arg\r\n * IS number-parseable, but not a strict 'string number', the latter being what this method actually checks for.\r\n */\r\n public static IsStringNumber(arg: string): boolean {\r\n if (!NumberUtils.IsParsableNumber(arg)) {\r\n return false;\r\n } else {\r\n return arg.toString().length === parseFloat(arg).toString().length;\r\n }\r\n }\r\n\r\n /**\r\n * Returns a random integer in range [lowerBound .. upperBound], an inclusive range. Returns NaN if not possible.\r\n * Given bounds are truncated first, before serving as the true lower- and upper bounds for the random int.\r\n */\r\n public static RandomInt(lowerBoundInt: number, upperBoundInt: number): number {\r\n if (!NumberUtils.IsNumber(lowerBoundInt) || !NumberUtils.IsNumber(upperBoundInt) || lowerBoundInt > upperBoundInt) {\r\n return NaN;\r\n }\r\n\r\n lowerBoundInt = Math.trunc(lowerBoundInt);\r\n upperBoundInt = Math.trunc(upperBoundInt);\r\n\r\n if (lowerBoundInt === upperBoundInt) {\r\n return lowerBoundInt;\r\n }\r\n\r\n const delta: number = upperBoundInt - lowerBoundInt;\r\n return (Math.round(Math.random() * delta) + lowerBoundInt);\r\n }\r\n\r\n /**\r\n * Returns the true maximum allowed value for the given \"stepped bounds\": min, stepSize and max, for which it holds that each allowed\r\n * value Y = min + stepSize * N, for any INTEGER or 0 N where it also holds, of course, that Y <= max.\r\n * @param min\r\n * @param max\r\n * @param stepSize\r\n */\r\n public static GetTrueSteppedBoundsMax(min: number, max: number, stepSize: number = 1): number {\r\n // solve max integer X in formula min + X * step <= max, and return min + X * stepSize for that X\r\n let maxSteps: number = Math.floor((max - min) / stepSize);\r\n // 'correct' float errors\r\n return NumberUtils.ParseFloat(min + maxSteps * stepSize, NumberUtils._GetLargestDecimalPrecisionOf(min, min, max));\r\n }\r\n\r\n // Returns the string representation of given number. If it's not a number, returns the empty string.\r\n public static ToString(nr: number): string {\r\n if (!NumberUtils.IsNaN(nr)) {\r\n return \"\" + nr;\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n // Returns whether given arg is indeed not a number (it's NaN or it has another type than 'number').\r\n public static IsNaN(arg: any): boolean {\r\n return isNaN(arg) || !NumberUtils.IsNumber(arg);\r\n }\r\n\r\n /**\r\n * Returns whether given x is OK within the given min, max and step boundaries, where it should hold that nrToCheck = min + N * step,\r\n * with N integer or 0.\r\n * @param nrToCheck Number to check whether it's within the given bounds\r\n * @param min Inclusive\r\n * @param max Inclusive\r\n * @param stepSize\r\n * @returns Returns remainder of undefined when nrToCheck was OUTSIDE [min, max], else full result object.\r\n */\r\n public static CheckWithinSteppedBounds(\r\n nrToCheck: number,\r\n min: number,\r\n max: number,\r\n stepSize: number = 1\r\n ): CheckWithinSteppedBoundsResult {\r\n if (nrToCheck < min || nrToCheck > max) {\r\n return {isOk: false, remainder: undefined};\r\n }\r\n\r\n // we're in [min, max], but still check if nrToCheck = min + N * step holds (for N integer or 0)\r\n let remainder: number = (nrToCheck - min) % stepSize;\r\n // correct float for largest precision amongst input numbers\r\n remainder = NumberUtils.ParseFloat(remainder, NumberUtils._GetLargestDecimalPrecisionOf(nrToCheck, min, stepSize));\r\n return {isOk: (remainder === 0), remainder: remainder};\r\n }\r\n\r\n // Adds thousands comma's to given value, E.g. '1000' to '1,000'. Returns empty string if value was undefined.\r\n public static AddThousandsCommasTo(value: any): string {\r\n if (isNill(value)) {\r\n return \"\";\r\n }\r\n\r\n return value.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n\r\n // Returns the nearest number, relative to the given originalNr, that is within the given [min, max] inclusive bounds.\r\n public static GetNearestNumberWithinBounds(originalNr: number, min: number, max: number): number {\r\n let answer: number = originalNr;\r\n\r\n if (originalNr < min) {\r\n answer = min;\r\n } else if (originalNr > max) {\r\n answer = max;\r\n }\r\n\r\n return answer;\r\n }\r\n\r\n /**\r\n * Returns whether given nrToCheck is within the given precision and scale limits. Precision and scale, here, are Oracle DB terms.\r\n * This function can thus be used to check whether the given number is safe to send to the 'database' beforehand, if we know the\r\n * precision and scale of the number in the db declaration.\r\n *\r\n * I.e. A number declared in the Oracle DB as number(5, 2) has a precision of 5 and a scale of 2.\r\n *\r\n * @param nrToCheck\r\n * @param precision The number of significant digits, including possibly negative scale. E.g. 3 in '123' and 5 in '51.123'\r\n * @param [scale = 0] The number of significant digits AFTER the decimal point. E.g. 1 in 5432.1 and 3 in 54000.003\r\n * @returns Whether given nrToCheck is ok for given precision and scale, and if not, the\r\n * nearest number that IS ok for those constraints.\r\n */\r\n public static CheckPrecisionAndScale(nrToCheck: number, precision: number, scale: number = 0): CheckPrecisionAndScaleResult {\r\n // let's say any undefined number is checked OK, and all numbers are checked OK for an undefined precision\r\n if (!ObjectUtils.AllExist(nrToCheck, precision, scale)) {\r\n return {isOk: true, nearestOkNr: NaN};\r\n }\r\n // no number can have 0 or less than 0 significant digits, in our universe\r\n if (precision < 1 || precision - scale < 1) {\r\n return {isOk: false, nearestOkNr: NaN};\r\n }\r\n // begin check\r\n const isNegative: boolean = (nrToCheck < 0);\r\n const nrParts: string[] = nrToCheck.toString().split(\".\");\r\n // remove minus sign if negative\r\n if (isNegative) {\r\n nrParts[0] = nrParts[0].slice(1);\r\n }\r\n const numCountBeforeDot: number = nrParts[0].length;\r\n const allowedNumCountBeforeDot: number = precision - scale;\r\n if (numCountBeforeDot <= allowedNumCountBeforeDot) {\r\n return {isOk: true, nearestOkNr: nrToCheck};\r\n } else {\r\n // cut a part from the \"before decimal number\" so that the number is not too big anymore\r\n const numCountToRemove: number = numCountBeforeDot - allowedNumCountBeforeDot;\r\n // remove the right-most numbers before the decimal dot\r\n nrParts[0] = nrParts[0].slice(0, -1 * numCountToRemove);\r\n // add minus sign again if it was negative\r\n if (isNegative) {\r\n nrParts[0] = \"-\" + nrParts[0];\r\n }\r\n // build and return composite number again\r\n let nearestOkNr: number;\r\n if (nrParts[1]) {\r\n nearestOkNr = Number(nrParts[0] + \".\" + nrParts[1]);\r\n } else {\r\n nearestOkNr = Number(nrParts[0]);\r\n }\r\n return {isOk: false, nearestOkNr: nearestOkNr};\r\n }\r\n }\r\n\r\n private static _GetLargestDecimalPrecisionOf(...args: number[]): number {\r\n return ArrayUtils.GetMaxCalculatedValue(args, (arg: number) => {\r\n return NumberUtils.GetDecimalPlaces(arg);\r\n });\r\n }\r\n\r\n // Returns given number input as a number that's useable by Javascript. Allows for incoming ',' decimal delimiter.\r\n private static _NumberInputToNumberStr(numberInput: string): string {\r\n return (numberInput + '').replace(',', '.');\r\n }\r\n}\r\n","import {isNill} from \"../function/is-nill.function\";\r\nimport {notNill} from \"../function/not-nill.function\";\r\nimport {StringUtils} from \"./string-utils\";\r\nimport {NumberUtils} from \"./number-utils\";\r\nimport {ObjectUtils} from \"./object-utils\";\r\n\r\nexport class ArrayUtils {\r\n /**\r\n * Inserts given element into given array, on given index number.\r\n *\r\n * @param index The index position for the element to insert, use negatives to count from the arrays end\r\n * @param element The element to insert\r\n * @param array The array to insert the element into\r\n * @returns True if and only if given element is succesfully inserted into given array.\r\n */\r\n public static InsertElement<T>(index: number, element: T, array: T[]): boolean {\r\n if (!Array.isArray(array) || Math.abs(index) > array.length || isNill(index)) {\r\n // cannot insert something into nothing, and cannot insert an element into a non-array (via this contract that is), and\r\n // we will not insert anything beyond the arrays limits (but we can append to the start or end)\r\n return false;\r\n }\r\n\r\n const lenBefore: number = array.length;\r\n array.splice(index, 0, element);\r\n return (array.length === lenBefore + 1);\r\n }\r\n\r\n /**\r\n * Removes given element from given array. Doesn't just set it to null like JavaScripts standard 'delete' keyword, but truly removes the\r\n * element using splice(). Also works on associative arrays.\r\n *\r\n * @param element The element to remove.\r\n * @param array The array to remove the element from.\r\n * @returns True iff given element was truly successfully removed from given array.\r\n */\r\n public static RemoveElement<T>(element: T, array: T[]): boolean {\r\n if (!Array.isArray(array)) {\r\n return false;\r\n }\r\n\r\n let index: number = array.indexOf(element);\r\n return ArrayUtils.RemoveElementAtIndex(index, array);\r\n }\r\n\r\n /**\r\n * Returns a true shallow clone of given array plus all its items. Its first-level members are object-shallow-cloned (optionally with a\r\n * strongly typed constructor),\r\n * or just as plain object (see param arrayItemsClass).\r\n * @param arrayGiven\r\n * @param arrayItemsClass If provided, the cloned array's first-level items will be strongly typed to / constructed as this class. Otherwise\r\n * it'll be a plain object.\r\n * @returns a true shallow clone of given array plus all its items\r\n */\r\n public static ShallowCloneArrayAndItsItem<T>(arrayGiven: T[], arrayItemsClass?: any): T[] {\r\n let arrayClone: T[] = [];\r\n\r\n if (arrayGiven) {\r\n for (let i: number = 0, len: number = arrayGiven.length; i < len; i++) {\r\n arrayClone.push(ObjectUtils.GetShallowClone(arrayGiven[i], arrayItemsClass));\r\n }\r\n } else {\r\n return [];\r\n }\r\n\r\n return arrayClone;\r\n }\r\n\r\n /**\r\n * Moves given element to given toIndex in given array. Returns whether the element was really moved, thus changing the given array.\r\n */\r\n public static MoveElement<T>(element: T, toIndex: number, array: T[]): boolean {\r\n if (!Array.isArray(array) || isNill(toIndex)) {\r\n return false;\r\n }\r\n\r\n let fromIndex: number = array.indexOf(element);\r\n let toIndexCorrected: number = NumberUtils.GetNearestNumberWithinBounds(toIndex, 0, array.length - 1);\r\n if (fromIndex === -1 || array[toIndexCorrected] === element) {\r\n // element did not exist in given array, or already existed on given toIndex\r\n return false;\r\n }\r\n array.splice(toIndexCorrected, 0, array.splice(fromIndex, 1)[0]);\r\n return true;\r\n }\r\n\r\n /**\r\n * Returns max value from all resulting values from applying given itemValueFunction to all items of given array.\r\n * @param array\r\n * @param itemValueFunction The function aplied to each array item that gives it a numerical value. The max num val found is returned.\r\n */\r\n public static GetMaxCalculatedValue<T>(array: T[], itemValueFunction: (item: T) => number): number {\r\n if (!array || !itemValueFunction) {\r\n return NaN;\r\n }\r\n\r\n let max: number = undefined;\r\n\r\n let len: number = array.length;\r\n for (let i: number = 0; i < len; i++) {\r\n let valueCur: number = itemValueFunction.call(this);\r\n if (valueCur > max) {\r\n max = valueCur;\r\n }\r\n }\r\n\r\n return max;\r\n }\r\n\r\n // Checks if given array is defined, and is an array, and has length > 0, and, optionally checks that the first element is of type given clazz.\r\n public static IsArrayWithElements<T>(arrayToCheck: T[], clazz?: any): boolean {\r\n if (isNill(arrayToCheck)) {\r\n return false;\r\n }\r\n\r\n if (Array.isArray(arrayToCheck) && arrayToCheck.length > 0) {\r\n if (clazz) {\r\n return arrayToCheck[0] instanceof clazz;\r\n }\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n // Removes all elements from given array for which given filter function holds true. Returns true if at least one removed, else false.\r\n public static RemoveElementsByFilter(array: any[], filterFunction: (item: any) => boolean): boolean {\r\n if (!ArrayUtils.IsArrayWithElements(array) || !filterFunction) {\r\n return false;\r\n }\r\n\r\n let atLeastOneRemoved: boolean = false;\r\n\r\n let len: number = array.length;\r\n for (let i: number = len - 1; i >= 0; i--) {\r\n let item: any = array[i];\r\n if (filterFunction.call(this, item) === true) {\r\n array.splice(i, 1);\r\n atLeastOneRemoved = true;\r\n }\r\n }\r\n\r\n return atLeastOneRemoved;\r\n }\r\n\r\n // Replaces the elementOut with given elementIn.\r\n public static ReplaceElement<T>(elementIn: T, elementOut: T, array: T[]): void {\r\n if (!array || !Array.isArray(array)) {\r\n return;\r\n }\r\n\r\n const indexOut: number = array.indexOf(elementOut);\r\n if (indexOut > -1) {\r\n ArrayUtils.InsertElement(indexOut, elementIn, array);\r\n ArrayUtils.RemoveElement(elementOut, array);\r\n }\r\n }\r\n\r\n // Swaps the elements in given array with each other. Returns whether a real swap was made. From and To elements have to exist in array.\r\n public static SwapElements<T>(elementOne: T, elementTwo: T, array: T[]): boolean {\r\n if (!Array.isArray(array)) {\r\n return false;\r\n }\r\n\r\n const elOneIdx: number = array.indexOf(elementTwo);\r\n const elTwoIdx: number = array.indexOf(elementOne);\r\n if (elOneIdx === -1 || elTwoIdx === -1) {\r\n return false;\r\n }\r\n\r\n array[elOneIdx] = array.splice(elTwoIdx, 1, array[elOneIdx])[0];\r\n return true;\r\n }\r\n\r\n // Inserts or removes given toggle element into given elements array; inserts if not yet exists, and removes if already exists.\r\n public static ToggleElement<T>(toggle: T, elements: T[]): void {\r\n elements.indexOf(toggle) > -1 ? ArrayUtils.RemoveElement(toggle, elements) : elements.push(toggle);\r\n }\r\n\r\n // Returns the number of elements from given array for which given whereFunction holds true.\r\n public static CountWhere<T>(array: T[], whereFunction: (item: T) => boolean): number {\r\n if (!ArrayUtils.IsArrayWithElements(array) || !whereFunction) {\r\n return 0;\r\n }\r\n\r\n let count: number = 0;\r\n\r\n const len: number = array.length;\r\n for (let i: number = 0; i < len; i++) {\r\n if (whereFunction.call(this, array[i])) {\r\n count++;\r\n }\r\n }\r\n\r\n return count;\r\n }\r\n\r\n /**\r\n * Returns whether at least one element in given array could be found by given finder function.\r\n *\r\n * @param array\r\n * @param finder A finder function that takes an element of the array and returns a boolean that represents\r\n * the 'found status' for that element; whether it should have been found or not.\r\n */\r\n public static ContainsAnElementFoundBy<T>(array: T[], finder: (element: T) => boolean): boolean {\r\n if (!array || !finder) {\r\n return false;\r\n }\r\n\r\n return notNill(ArrayUtils.Find<T>(array, finder));\r\n }\r\n\r\n /**\r\n * Cross-browser Array.find() function. Returns the first item in given array for which the foundBy function returns true. Returns\r\n * undefined when none was found.\r\n *\r\n * Example usage:\r\n * let foundItem: BusinessObject = ArrayUtils.Find<BusinessObject>(modelArray, (modelItem: BusinessObject) => <br>\r\n * (return modelItem.getId() === '1')\r\n * * });\r\n *\r\n * @param array The array with items to search in.\r\n * @param foundBy The finder function applied on each items of the array, when that returns true, the item is considered found.\r\n */\r\n public static Find<T>(array: T[], foundBy: (item: T) => boolean): T {\r\n if (!array || !foundBy) {\r\n return undefined;\r\n }\r\n\r\n for (let i: number = 0, len: number = array.length; i < len; i++) {\r\n let itemCur: T = array[i];\r\n if (foundBy(itemCur)) {\r\n return itemCur;\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Sorts all items in the given array alphabetically (A-to-Z) according to the values of their given property.\r\n * @param theArray\r\n * @param propertyName = undefined] When not defined, assumes an array of STRINGS is given, instead of array of OBJECTS.\r\n * @param [reverseOrder = false] Set to true to sort from Z-to-A instead\r\n */\r\n public static SortAlphabetically<T>(theArray: T[], propertyName: string = undefined, reverseOrder: boolean = false): void {\r\n if (!theArray || !Array.isArray(theArray)) {\r\n return;\r\n }\r\n\r\n let switcher: number = reverseOrder ? -1 : 1;\r\n let stringSort: boolean = StringUtils.IsStringWithLength(propertyName);\r\n theArray.sort((itemOne: T, itemTwo: T) => {\r\n let valOne: any = stringSort ? itemOne[propertyName] : itemOne;\r\n let valTwo: any = stringSort ? itemTwo[propertyName] : itemTwo;\r\n return (valOne > valTwo ? 1 : (valOne < valTwo ? -1 : 0)) * switcher;\r\n });\r\n }\r\n\r\n public static PushIfNotExist(item: any, array: any[]): boolean {\r\n if (!array) {\r\n return false;\r\n }\r\n\r\n if (array.indexOf(item) === -1) {\r\n array.push(item);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Removes element at given index from given array. Doesn't just set it to null like JavaScripts standard 'delete' does, but really\r\n * removes the element using splice().\r\n *\r\n * @param index\r\n * @param array\r\n * @returns True if and only if the element on given index is succesfully removed from given array.\r\n */\r\n public static RemoveElementAtIndex(index: number, array: any[]): boolean {\r\n if (NumberUtils.IsNaN(index) || index < 0 || !Array.isArray(array) || array.length === 0) {\r\n return false;\r\n }\r\n\r\n if (index in array) {\r\n array.splice(index, 1);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n // Returns true if and only if given array includes given item. Checked by ===.\r\n public static Includes(array: any[], item: any): boolean {\r\n if (Array.isArray(array)) {\r\n for (let i: number = 0, len: number = array.length; i < len; i++) {\r\n if (array[i] === item) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n }\r\n}\r\n","import {notNill} from \"../function/not-nill.function\";\r\nimport { ArrayUtils } from './array-utils';\r\n\r\n// @dynamic\r\nexport class StringUtils {\r\n // Returns the given argument as a string. Returns given defaultValue if conversion of argument to string was impossible.\r\n public static ParseString(arg: any, defaultValue: string = ''): string {\r\n if (!StringUtils.IsString(arg)) {\r\n if (arg && typeof arg.toString === 'function') {\r\n arg = arg.toString();\r\n } else {\r\n arg = defaultValue;\r\n }\r\n }\r\n return arg;\r\n }\r\n\r\n public static AsLowerCaseIfString(str: any): any {\r\n if (StringUtils.IsString(str)) {\r\n return str.toLowerCase();\r\n } else {\r\n return str;\r\n }\r\n }\r\n\r\n /**\r\n * Example usage:\r\n * str = 'File is to large to upload. Maximum file size is {0} Mb'\r\n * format = [FileUtils.MaxUploadSizeInMb]\r\n * output = File is to large to upload. Maximum file size is 3 Mb\r\n *\r\n * str = '{0} is way better than {1}'\r\n * format = ['Angular2','Angular1']\r\n * output = Angular2 is way better than Angular1\r\n *\r\n * @param str The string that contains {0} and {1} etc, for replacement by given format data\r\n * @param format The format replacement data\r\n */\r\n public static Format(str: string, format: any[]): string {\r\n let args: any = Array.prototype.slice.call(format);\r\n return str.replace(/{(\\d+)}/g, function (match: any, number: any): string {\r\n return typeof args[number] !== 'undefined' ? (args[number] !== null ? args[number] : \"\") : \"\";\r\n });\r\n }\r\n\r\n public static IsString(str: any): boolean {\r\n return typeof str === 'string';\r\n }\r\n\r\n // Returns whether given str is a string and has a length > 0.\r\n public static IsStringWithLength(str: any): boolean {\r\n return notNill(str) && StringUtils.IsString(str) && str.length > 0;\r\n }\r\n\r\n // Returns a new string string with N amount of characters removed from the end of it.\r\n public static RemoveLastChars(str: string, amount: number): string {\r\n if (str) {\r\n return str.slice(0, -1 * amount);\r\n } else {\r\n return str;\r\n }\r\n }\r\n\r\n public static StringToStringArray(str: string): string[] {\r\n if (!str) {\r\n return [];\r\n }\r\n\r\n const strArray: string[] = str.split(\" \");\r\n ArrayUtils.RemoveElementsByFilter(strArray, (txt: string) => {\r\n return !txt || txt === \"\";\r\n });\r\n return strArray;\r\n }\r\n\r\n public static CloneStringArray(strArray: string[]): string[] {\r\n const clone: string[] = [];\r\n if (strArray) {\r\n for (let i: number = 0, len: number = strArray.length; i < len; i++) {\r\n clone.push(strArray[i]);\r\n }\r\n }\r\n return clone;\r\n }\r\n\r\n public static ToStringOrDefault(arg: any, defaultReturnVal: string = \"\"): string {\r\n if (notNill(arg) && arg.toString) {\r\n return arg.toString();\r\n } else {\r\n return defaultReturnVal;\r\n }\r\n }\r\n\r\n public static CreateGuid(): string {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c: string) => {\r\n const r: number = Math.random() * 16 | 0;\r\n return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);\r\n });\r\n }\r\n}\r\n","/** AUTO GENERATED FILE. DO NOT CHANGE.. **/\n\nexport const CoreComponentsIconSvg: {[iconName: string]: string} = {\n \"add_to_cart_drop\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M16.58,34.84a1.8,1.8,0,1,0,1.8,1.8A1.79,1.79,0,0,0,16.58,34.84Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M31.49,34.84a1.8,1.8,0,1,0,1.8,1.8A1.79,1.79,0,0,0,31.49,34.84Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M35.6,17.9l-1.51.18L31.88,20.3l1.31-.17a.88.88,0,0,1,1,1.08L32.35,29.5a1.52,1.52,0,0,1-1.44,1.2H16.51a1.75,1.75,0,0,1-1.57-1.17l-2.31-5.6a1,1,0,0,1,.85-1.29l4.43-.56-1.86-1.86-5.13.61a1,1,0,0,0-.87,1.28l3.34,9.44A1.73,1.73,0,0,0,15,32.72H32.64a1.51,1.51,0,0,0,1.43-1.2L36.6,19A.89.89,0,0,0,35.6,17.9Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M39,17a1.87,1.87,0,0,0-1.36,1.46l-.42,2.89c-.1.67.31,1,.9.7a2.75,2.75,0,0,0,1.33-1.7L40,18A.73.73,0,0,0,39,17Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"24 25.35 32.04 17.3 27.04 17.3 27.04 10 20.95 10 20.95 17.3 15.96 17.3 24 25.35\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"arrow_down\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"27.06 31.14 27.06 12.5 22.94 12.5 22.94 31.14 22.94 31.14 18.64 31.14 25 37.5 31.36 31.14 27.06 31.14\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"arrow_left\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"23.63 33.63 15 25 23.63 16.37 24.6 17.34 16.95 25 24.6 32.66 23.63 33.63\\\" fill=\\\"#484f60\\\" opacity=\\\"0.98\\\"/><rect x=\\\"23.49\\\" y=\\\"24.31\\\" width=\\\"11.51\\\" height=\\\"1.38\\\" fill=\\\"#484f60\\\" opacity=\\\"0.98\\\"/></svg>\",\n \"arrow_point_down\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"-280 371 51 51\\\" enable-background=\\\"new -280 371 51 51\\\" ><path fill=\\\"#29363E\\\" d=\\\"M-248.3,392.2c0.3,0,0.6,0.1,0.8,0.3c0.5,0.5,0.5,1.2,0,1.6l-6.2,6.2c-0.2,0.2-0.5,0.3-0.8,0.3c-0.3,0-0.6-0.1-0.8-0.3l-6.2-6.2c-0.2-0.2-0.3-0.5-0.3-0.8c0-0.3,0.1-0.6,0.3-0.8c0.2-0.2,0.5-0.3,0.8-0.3c0.3,0,0.6,0.1,0.8,0.3l5.4,5.4l5.4-5.4C-248.9,392.4-248.6,392.2-248.3,392.2z\\\"/></svg>\",\n \"arrow_point_left\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 51 51\\\" enable-background=\\\"new 0 0 51 51\\\" ><path fill=\\\"#484F5F\\\" d=\\\"M31.9,36.7l-14.7-9.6C17.1,27,17,26.9,17,26.7v-2.4c0-0.2,0.1-0.3,0.2-0.4l14.7-9.6c0.2-0.2,0.5-0.1,0.7,0.1l1.4,2.1c0.2,0.2,0.1,0.5-0.1,0.7l-12,7.8c-0.3,0.2-0.3,0.6,0,0.8l12,7.8c0.2,0.2,0.3,0.5,0.1,0.7l-1.4,2.1C32.4,36.8,32.1,36.8,31.9,36.7z\\\"/></svg>\",\n \"arrow_point_right\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 51 51\\\" enable-background=\\\"new 0 0 51 51\\\" ><path fill=\\\"#484F5F\\\" d=\\\"M19.1,14.3l14.7,9.6c0.1,0.1,0.2,0.2,0.2,0.4v2.4c0,0.2-0.1,0.3-0.2,0.4l-14.7,9.6c-0.2,0.2-0.5,0.1-0.7-0.1l-1.4-2.1c-0.2-0.2-0.1-0.5,0.1-0.7l12-7.8c0.3-0.2,0.3-0.6,0-0.8l-12-7.8c-0.2-0.2-0.3-0.5-0.1-0.7l1.4-2.1C18.6,14.2,18.9,14.2,19.1,14.3z\\\"/></svg>\",\n \"arrow_up\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><polygon points=\\\"27.5 19.4 27.5 38 23.4 38 23.4 19.4 23.4 19.4 19.1 19.4 25.4 13 31.8 19.4 27.5 19.4\\\" fill=\\\"#2a363b\\\"/></svg>\",\n \"calendar\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M36.94,12h-4v2a2,2,0,1,1-4.08,0V12H21.17v2a2,2,0,1,1-4.08,0V12h-4a1.2,1.2,0,0,0-1.19,1.2V18H38.14V13.16A1.2,1.2,0,0,0,36.94,12Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M37.14,20.5v16L34.65,39H13.05a.2.2,0,0,1-.19-.2V20.5H37.14m1-1H11.86V38.8A1.2,1.2,0,0,0,13.05,40h22l3.08-3.08V19.5Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"18.24\\\" y=\\\"10\\\" width=\\\"1.79\\\" height=\\\"4.87\\\" rx=\\\"0.9\\\" ry=\\\"0.9\\\" fill=\\\"#484f60\\\"/><rect x=\\\"29.97\\\" y=\\\"10\\\" width=\\\"1.79\\\" height=\\\"4.87\\\" rx=\\\"0.9\\\" ry=\\\"0.9\\\" fill=\\\"#484f60\\\"/><rect x=\\\"11.86\\\" y=\\\"24.37\\\" width=\\\"26.28\\\" height=\\\"0.5\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"11.86\\\" y=\\\"29.5\\\" width=\\\"26.28\\\" height=\\\"0.5\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"11.86\\\" y=\\\"34.62\\\" width=\\\"26.28\\\" height=\\\"0.5\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"18.18\\\" y=\\\"19.5\\\" width=\\\"0.5\\\" height=\\\"20.5\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"24.75\\\" y=\\\"19.5\\\" width=\\\"0.5\\\" height=\\\"20.5\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"31.32\\\" y=\\\"19.5\\\" width=\\\"0.5\\\" height=\\\"20.5\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/></svg>\",\n \"calendar_empty\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M695.94,372h-4v2a2,2,0,0,1-4.09,0v-2h-7.65v2a2,2,0,0,1-4.09,0v-2h-4a1.19,1.19,0,0,0-1.19,1.2V378h26.28v-4.82A1.19,1.19,0,0,0,695.94,372Z\\\" transform=\\\"translate(-658.5 -359.5)\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M696.14,380.5v16l-2.49,2.5H672.05a.19.19,0,0,1-.19-.2V380.5h24.28m1-1H670.86V398.8a1.19,1.19,0,0,0,1.19,1.2h22l3.08-3.08V379.5Z\\\" transform=\\\"translate(-658.5 -359.5)\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M678.13,374.87h0a.9.9,0,0,1-.9-.9V370.9a.9.9,0,0,1,.9-.9h0a.9.9,0,0,1,.9.9V374A.9.9,0,0,1,678.13,374.87Z\\\" transform=\\\"translate(-658.5 -359.5)\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M689.87,374.87h0a.9.9,0,0,1-.9-.9V370.9a.9.9,0,0,1,.9-.9h0a.9.9,0,0,1,.9.9V374A.9.9,0,0,1,689.87,374.87Z\\\" transform=\\\"translate(-658.5 -359.5)\\\" fill=\\\"#4d5050\\\"/><rect x=\\\"12.36\\\" y=\\\"24.87\\\" width=\\\"26.28\\\" height=\\\"0.5\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><rect x=\\\"12.36\\\" y=\\\"30\\\" width=\\\"26.28\\\" height=\\\"0.5\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><rect x=\\\"12.36\\\" y=\\\"35.12\\\" width=\\\"26.28\\\" height=\\\"0.5\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><rect x=\\\"18.68\\\" y=\\\"20\\\" width=\\\"0.5\\\" height=\\\"20.5\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><rect x=\\\"25.25\\\" y=\\\"20\\\" width=\\\"0.5\\\" height=\\\"20.5\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><rect x=\\\"31.82\\\" y=\\\"20\\\" width=\\\"0.5\\\" height=\\\"20.5\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/></svg>\",\n \"calendar_round_open\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M692.76,375.44h-3v1.47a1.5,1.5,0,1,1-3,0v-1.47h-5.61v1.47a1.5,1.5,0,1,1-3,0v-1.47h-3a.88.88,0,0,0-.87.88v3.54h19.27v-3.54A.88.88,0,0,0,692.76,375.44Z\\\" transform=\\\"translate(-658.5 -359.5)\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M692.9,381.7v11.74l-1.83,1.83H675.24a.14.14,0,0,1-.14-.14V381.7h17.8m.73-.73H674.37v14.16a.88.88,0,0,0,.87.88h16.14l2.26-2.26V381Z\\\" transform=\\\"translate(-658.5 -359.5)\\\" fill=\\\"#4d5050\\\"/><rect x=\\\"20.54\\\" y=\\\"14.5\\\" width=\\\"1.31\\\" height=\\\"3.57\\\" rx=\\\"0.66\\\" ry=\\\"0.66\\\" fill=\\\"#4d5050\\\"/><rect x=\\\"29.15\\\" y=\\\"14.5\\\" width=\\\"1.31\\\" height=\\\"3.57\\\" rx=\\\"0.66\\\" ry=\\\"0.66\\\" fill=\\\"#4d5050\\\"/><rect x=\\\"15.87\\\" y=\\\"25.04\\\" width=\\\"19.27\\\" height=\\\"0.37\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><rect x=\\\"15.87\\\" y=\\\"28.8\\\" width=\\\"19.27\\\" height=\\\"0.37\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><rect x=\\\"15.87\\\" y=\\\"32.56\\\" width=\\\"19.27\\\" height=\\\"0.37\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><rect x=\\\"20.5\\\" y=\\\"21.46\\\" width=\\\"0.37\\\" height=\\\"15.04\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><rect x=\\\"25.32\\\" y=\\\"21.46\\\" width=\\\"0.37\\\" height=\\\"15.04\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><rect x=\\\"30.13\\\" y=\\\"21.46\\\" width=\\\"0.37\\\" height=\\\"15.04\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><path d=\\\"M684,366.33A18.67,18.67,0,1,1,665.33,385,18.69,18.69,0,0,1,684,366.33m0-1.33a20,20,0,1,0,20,20,20,20,0,0,0-20-20Z\\\" transform=\\\"translate(-658.5 -359.5)\\\" fill=\\\"#4d5050\\\"/></svg>\",\n \"camera\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M35,18l-3-4H22l-3,4H16V36H40V18ZM24,16h6v2H24Zm2.5,18A6.5,6.5,0,1,1,33,27.5,6.51,6.51,0,0,1,26.5,34ZM38,22H36V20h2Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"18\\\" width=\\\"5\\\" height=\\\"18\\\" fill=\\\"#484f60\\\"/><rect x=\\\"11\\\" y=\\\"15\\\" width=\\\"3\\\" height=\\\"2\\\" fill=\\\"#484f60\\\"/><path d=\\\"M26.5,32A4.5,4.5,0,1,1,31,27.5,4.51,4.51,0,0,1,26.5,32Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"cancel\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"36 35.16 30.45 35.16 14 14.84 19.55 14.84 36 35.16\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"14 35.16 19.55 35.16 36 14.84 30.45 14.84 14 35.16\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"cancel_round_filled\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,10A15,15,0,1,0,40,25,15,15,0,0,0,25,10Zm9.38,23.32h-5.3L25,28.27l-4.08,5.05H15.63L22.35,25l-6.72-8.32h5.29L25,21.73l4.08-5.05h5.3L27.64,25Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"cancel_round_open\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,40.17a15,15,0,1,1,15-15A15,15,0,0,1,25,40.17Zm0-29a14,14,0,1,0,14,14A14,14,0,0,0,25,11.13Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"29.41 32.25 25 26.79 20.59 32.25 17.96 32.25 23.68 25.17 17.96 18.09 20.59 18.09 25 23.54 29.41 18.09 32.04 18.09 26.32 25.17 32.04 32.25 29.41 32.25\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"check\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 50 50\\\" enable-background=\\\"new 0 0 50 50\\\" ><polygon fill=\\\"#29363E\\\" points=\\\"15,22.4 19.7,29.5 31.2,10 38.9,10 19.7,40 11.1,27.4 \\\"/></svg>\",\n \"check_round\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,10A15,15,0,1,0,40,25,15,15,0,0,0,25,10ZM23,34l-6.24-9.09,2.81-3.59L23,26.45,27.66,16h5.58Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"check_simple\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon fill=\\\"#2A363B\\\" points=\\\"19.9,24 22.5,28 29,17.1 33.3,17.1 22.5,33.9 17.7,26.8 \\\"/></svg>\",\n \"column_options\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"-280 372 50 50\\\" enable-background=\\\"new -280 372 50 50\\\" ><g><rect x=\\\"-269\\\" y=\\\"389\\\" opacity=\\\"0.5\\\" fill=\\\"#29363E\\\" width=\\\"4\\\" height=\\\"22\\\"/><rect x=\\\"-263\\\" y=\\\"389\\\" fill=\\\"#29363E\\\" width=\\\"4\\\" height=\\\"22\\\"/><polygon opacity=\\\"0.5\\\" fill=\\\"#29363E\\\" points=\\\"-255.3,389 -257,389 -257,411 -253,411 -253,393.3 -254.3,393.3 \\\"/><polygon opacity=\\\"0.5\\\" fill=\\\"#29363E\\\" points=\\\"-251,411 -247,411 -247,397.3 -251,396.4 \\\"/><g><path fill=\\\"#29363E\\\" d=\\\"M-241.3,386.7l-1.9-0.1c-0.2-0.3-0.4-0.5-0.6-0.8c-0.2-0.2-0.5-0.4-0.8-0.6l-0.1-1.9l-1.4-0.3l-0.8,1.5c-0.8,0-1.6,0.2-2.3,0.6l-1.7-1l-1,1l1,1.7c-0.4,0.7-0.6,1.5-0.6,2.3l-1.5,0.8l0.3,1.4l1.9,0.1c0.2,0.3,0.4,0.5,0.6,0.8c0.2,0.2,0.5,0.4,0.8,0.6l0.1,1.9l1.4,0.3l0.8-1.5c0.8,0,1.6-0.2,2.3-0.6l1.7,1l1-1l-1-1.7c0.4-0.7,0.6-1.5,0.6-2.3l1.5-0.8L-241.3,386.7z M-245.6,390.4c-0.8,0.8-2,0.8-2.8,0c-0.8-0.8-0.8-2,0-2.8c0.8-0.8,2-0.8,2.8,0C-244.9,388.4-244.9,389.6-245.6,390.4z\\\"/></g></g></svg>\",\n \"CrossSkinny\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"35.35 15.52 34.65 14.81 25 24.46 15.35 14.81 14.65 15.52 24.29 25.17 14.65 34.81 15.35 35.52 25 25.87 34.65 35.52 35.35 34.81 25.71 25.17 35.35 15.52\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"detail_view\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"34.55 26.18 34.55 37.49 12.44 37.49 12.44 15.38 24.68 15.38 25.59 14.48 24.05 12.94 10 12.94 10 39.94 36.99 39.94 36.99 25.88 35.92 24.81 34.55 26.18\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"40 10.4 27.92 10.4 32 14.48 22.24 26.23 24.16 28.15 35.92 18.4 40 22.48 40 10.4\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"download\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M31,38.87H19a9,9,0,0,1-9-9h4a5,5,0,0,0,5,5H31a5,5,0,0,0,5-5h4A9,9,0,0,1,31,38.87Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"16.22 21.1 21.94 21.1 21.94 11.46 28.06 11.46 28.06 21.1 33.78 21.1 25 29.87 16.22 21.1\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"delivery_truck\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"15.35\\\" y=\\\"16.56\\\" width=\\\"15.14\\\" height=\\\"10.94\\\" transform=\\\"translate(-1.83 2.08) rotate(-5)\\\" fill=\\\"#484f60\\\"/><path d=\\\"M38.5,18.1l-6.9.61L32.41,28l-7.63.67a3.76,3.76,0,0,1,1.43,2.25l7.25-.63A3.83,3.83,0,0,1,41,29.6l1-.1-.52-6Zm.29,5.84-3.91.34a.51.51,0,0,1-.55-.46L34,20.1a.49.49,0,0,1,.45-.54l2.27-.2a.5.5,0,0,1,.48.25l2,3.59A.5.5,0,0,1,38.79,23.94Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M19.66,29.09a3.8,3.8,0,0,0-1,2.46l-.74.07-1.82-.94L16,29.41Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M34.56,30.62a2.74,2.74,0,1,0,2.49-3A2.73,2.73,0,0,0,34.56,30.62Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M19.74,31.91a2.74,2.74,0,1,0,2.49-3A2.74,2.74,0,0,0,19.74,31.91Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"7.96\\\" y=\\\"17.63\\\" width=\\\"5\\\" height=\\\"1\\\" transform=\\\"translate(-1.54 0.98) rotate(-5)\\\" fill=\\\"#484f60\\\"/><rect x=\\\"11.02\\\" y=\\\"29.71\\\" width=\\\"3\\\" height=\\\"1\\\" transform=\\\"translate(-2.59 1.21) rotate(-5)\\\" fill=\\\"#484f60\\\"/><rect x=\\\"9.48\\\" y=\\\"23.53\\\" width=\\\"4\\\" height=\\\"1\\\" transform=\\\"matrix(1, -0.09, 0.09, 1, -2.05, 1.09)\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"documents\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><g opacity=\\\"0.5\\\"><path d=\\\"M36.4,16.79V32.4a.4.4,0,0,1-.3.38V34a1.59,1.59,0,0,0,1.5-1.59V16.79Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M20,11.2H31V10H20a1.59,1.59,0,0,0-1.59,1.5h1.21A.4.4,0,0,1,20,11.2Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"37.6 16.79 30.98 10 30.98 13.93 33.77 16.79 37.6 16.79\\\" fill=\\\"#484f60\\\"/></g><rect x=\\\"16\\\" y=\\\"21.2\\\" width=\\\"7.2\\\" height=\\\"0.8\\\" fill=\\\"#484f60\\\"/><rect x=\\\"16\\\" y=\\\"24.4\\\" width=\\\"12\\\" height=\\\"0.8\\\" fill=\\\"#484f60\\\"/><rect x=\\\"16\\\" y=\\\"27.6\\\" width=\\\"12\\\" height=\\\"0.8\\\" fill=\\\"#484f60\\\"/><rect x=\\\"16\\\" y=\\\"30.8\\\" width=\\\"12\\\" height=\\\"0.8\\\" fill=\\\"#484f60\\\"/><rect x=\\\"16\\\" y=\\\"34\\\" width=\\\"12\\\" height=\\\"0.8\\\" fill=\\\"#484f60\\\"/><path d=\\\"M30.4,22.79V38.4a.4.4,0,0,1-.4.4H14a.4.4,0,0,1-.4-.4V17.6a.4.4,0,0,1,.4-.4H25V16H14a1.6,1.6,0,0,0-1.6,1.6V38.4A1.6,1.6,0,0,0,14,40H30a1.6,1.6,0,0,0,1.6-1.6V22.79Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M25,16v5.15c0,1.42.21,1.64,1.63,1.64h5Z\\\" fill=\\\"#484f60\\\"/><g opacity=\\\"0.75\\\"><path d=\\\"M33.4,19.79V35.4a.4.4,0,0,1-.3.38V37a1.59,1.59,0,0,0,1.5-1.59V19.79Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M17,14.2H28V13H17a1.59,1.59,0,0,0-1.59,1.5h1.21A.4.4,0,0,1,17,14.2Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"34.6 19.79 27.98 13 27.98 16.93 30.77 19.79 34.6 19.79\\\" fill=\\\"#484f60\\\"/></g></svg>\",\n \"edit_pencil\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"12.54 38.16 12 37.62 14.85 29.64 20.52 35.31 12.54 38.16\\\" fill=\\\"#484f60\\\"/><rect x=\\\"16.33\\\" y=\\\"20.52\\\" width=\\\"17.99\\\" height=\\\"8.64\\\" transform=\\\"translate(-10.15 25.18) rotate(-45)\\\" fill=\\\"#484f60\\\"/><path d=\\\"M37.54,18.73,36,20.32l-6.11-6.1,1.59-1.59a1.55,1.55,0,0,1,2.2,0l3.91,3.9A1.55,1.55,0,0,1,37.54,18.73Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"email\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M31.79,38.45A17.82,17.82,0,0,1,23.86,40,13.09,13.09,0,0,1,10.41,26.42C10.41,17.63,16.83,10,26.53,10c7.63,0,13.06,5.21,13.06,12.46,0,6.33-3.53,10.3-8.19,10.3a3.42,3.42,0,0,1-3.71-3.32h-.08A6.5,6.5,0,0,1,22,32.76c-2.75,0-4.82-2.11-4.82-5.65a9.85,9.85,0,0,1,10.13-10,12.89,12.89,0,0,1,5.13,1l-1.3,8c-.43,2.54-.13,3.71,1.08,3.75,1.85.09,4.18-2.28,4.18-7.28,0-5.65-3.62-10-10.3-10S13.73,17.76,13.73,26c0,7.25,4.57,11.3,11,11.3A14.81,14.81,0,0,0,31,36ZM28,20.65a5.34,5.34,0,0,0-1.33-.18c-2.85,0-5.09,2.81-5.09,6.12,0,1.64.73,2.68,2.16,2.68,1.59,0,3.27-2,3.66-4.53Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"gear_double\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"-280 372 50 50\\\" enable-background=\\\"new -280 372 50 50\\\" ><g><g><path fill=\\\"#29363E\\\" d=\\\"M-249.4,403.5V401l-3.2-0.9c-0.2-0.6-0.4-1.2-0.7-1.8l1.6-2.8l-1.8-1.8l-2.7,1.6c-0.5-0.3-1.1-0.6-1.7-0.7l-0.9-3.2h-2.5l-0.9,3.2c-0.6,0.2-1.3,0.4-1.8,0.8l-2.7-1.6l-1.8,1.8l1.6,2.7c-0.3,0.6-0.6,1.2-0.7,1.8l-3.2,0.9v2.5l3.3,0.9c0.2,0.6,0.4,1.2,0.7,1.7l-1.6,2.7l1.8,1.8l2.8-1.6c0.6,0.3,1.2,0.6,1.8,0.7l0.9,3.2h2.5l0.9-3.2c0.6-0.2,1.2-0.4,1.7-0.7l2.8,1.6l1.8-1.8l-1.6-2.8c0.3-0.5,0.5-1.1,0.7-1.7L-249.4,403.5z M-260.2,405.3c-1.7,0-3.1-1.4-3.1-3.1c0-1.7,1.4-3.1,3.1-3.1c1.7,0,3.1,1.4,3.1,3.1C-257.1,403.9-258.5,405.3-260.2,405.3z\\\"/></g><g><path fill=\\\"#29363E\\\" d=\\\"M-239.4,385.5l-2.3-0.1c-0.2-0.3-0.5-0.7-0.8-0.9c-0.3-0.3-0.6-0.5-0.9-0.8l-0.1-2.3l-1.7-0.4l-1,1.9c-1,0-1.9,0.2-2.8,0.7l-2.1-1.2l-1.2,1.2l1.2,2c-0.5,0.9-0.8,1.9-0.7,2.9l-1.9,1l0.4,1.7l2.3,0.1c0.2,0.3,0.5,0.7,0.7,0.9c0.3,0.3,0.6,0.5,0.9,0.7l0.1,2.3l1.7,0.4l1-1.9c1,0,2-0.2,2.9-0.7l2,1.2l1.2-1.2l-1.2-2.1c0.5-0.9,0.7-1.8,0.7-2.8l1.9-1L-239.4,385.5z M-244.7,390.1c-0.9,0.9-2.5,0.9-3.4,0c-0.9-0.9-0.9-2.5,0-3.4c0.9-0.9,2.5-0.9,3.4,0C-243.7,387.6-243.7,389.1-244.7,390.1z\\\"/></g></g></svg>\",\n \"groupby\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"10\\\" y=\\\"11.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"26.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\"/><rect x=\\\"22\\\" y=\\\"11.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"22\\\" y=\\\"16.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"22\\\" y=\\\"21.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"22\\\" y=\\\"26.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"22\\\" y=\\\"31.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"32\\\" y=\\\"11.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"32\\\" y=\\\"16.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"32\\\" y=\\\"21.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"32\\\" y=\\\"26.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"32\\\" y=\\\"31.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"22\\\" y=\\\"36.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"32\\\" y=\\\"36.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"19.5\\\" y=\\\"11.17\\\" width=\\\"1\\\" height=\\\"28\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"pin\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M297.3,432.6a13.7,13.7,0,0,1-6-1.5c-4.9-2.4-7.7-7-6.1-10.1s3-2.8,5.7-2.8h0.2l-2,3.4V422a4.8,4.8,0,0,0,1.5,3.5,10.2,10.2,0,0,0,6.7,2.9,3.9,3.9,0,0,0,3.5-1.6v-0.2l1-2.9c1.5,2.1,2,4.3,1.1,6s-3,2.8-5.7,2.8h0Z\\\" transform=\\\"translate(-271.5 -396)\\\" fill=\\\"#fff\\\"/><path d=\\\"M297.3,426.3a7.9,7.9,0,0,1-5.1-2.3,2.9,2.9,0,0,1-.9-1.8l4.5-7.8a10.2,10.2,0,0,0,6.1,2.8l-3,8.4a2,2,0,0,1-1.6.6h0Z\\\" transform=\\\"translate(-271.5 -396)\\\" fill=\\\"#fff\\\"/><path d=\\\"M304.3,415.6a11.2,11.2,0,0,1-4.9-1.2c-4-2-6.2-5.6-5-8.2s2.4-2.2,4.6-2.2a11.3,11.3,0,0,1,4.9,1.2,10.7,10.7,0,0,1,4.5,4,4.4,4.4,0,0,1,.5,4.2c-0.7,1.4-2.4,2.2-4.6,2.2h0Z\\\" transform=\\\"translate(-271.5 -396)\\\" fill=\\\"#fff\\\"/><path d=\\\"M290,432.2l-1.7,3.7-0.2,3,2-2.3,1.6-3.7-1.1-.5Z\\\" transform=\\\"translate(-271.5 -396)\\\" fill=\\\"#fff\\\"/></svg>\",\n \"pin_round_open\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M683.16,390.18a7.07,7.07,0,0,1-3.09-.77c-2.53-1.25-3.94-3.58-3.14-5.19a3.07,3.07,0,0,1,2.94-1.43h.1l-1,1.74v.2a2.48,2.48,0,0,0,.78,1.82,5.23,5.23,0,0,0,3.44,1.51,2,2,0,0,0,1.8-.84l.06-.09.52-1.48a3,3,0,0,1,.57,3.09,3.07,3.07,0,0,1-2.94,1.43Z\\\" transform=\\\"translate(-657.5 -358.97)\\\" fill=\\\"#4d5065\\\"/><path d=\\\"M683.15,386.94a4.06,4.06,0,0,1-2.62-1.16,1.5,1.5,0,0,1-.47-.92l2.32-4a5.24,5.24,0,0,0,3.13,1.45L684,386.63a1,1,0,0,1-.84.31Z\\\" transform=\\\"translate(-657.5 -358.97)\\\" fill=\\\"#4d5065\\\"/><path d=\\\"M686.75,381.45a5.78,5.78,0,0,1-2.52-.63c-2.06-1-3.21-2.9-2.57-4.21a2.48,2.48,0,0,1,2.37-1.15,5.78,5.78,0,0,1,2.53.63,5.5,5.5,0,0,1,2.32,2.05,2.26,2.26,0,0,1,.24,2.15,2.48,2.48,0,0,1-2.37,1.15Z\\\" transform=\\\"translate(-657.5 -358.97)\\\" fill=\\\"#4d5065\\\"/><path d=\\\"M679.42,390l-.89,1.92-.13,1.55,1-1.16.81-1.92-.54-.24Z\\\" transform=\\\"translate(-657.5 -358.97)\\\" fill=\\\"#4d5065\\\"/><path d=\\\"M683,399.47a15,15,0,1,1,15-15A15,15,0,0,1,683,399.47Zm0-29a14,14,0,1,0,14,14A14,14,0,0,0,683,370.44Z\\\" transform=\\\"translate(-657.5 -358.97)\\\" fill=\\\"#4d5065\\\"/></svg>\",\n \"information\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 50 50\\\" enable-background=\\\"new 0 0 50 50\\\" ><g><path fill=\\\"#29363E\\\" d=\\\"M19.2,23.8v-1.5c3.1-0.5,5.8-1.5,8.1-2.9l1,0.6c-0.2,1.7-0.3,3.1-0.4,4.5c-0.1,1.9-0.1,5-0.1,9.2c0,1.8,0.1,2.9,0.2,3.4c0.1,0.3,0.2,0.6,0.5,0.7c0.2,0.2,1.1,0.4,2.5,0.8V40c-1.9-0.2-3.7-0.2-5.2-0.2c-1.5,0-3.7,0.1-6.6,0.2v-1.4l0.5-0.1c1.2-0.3,1.9-0.5,2.1-0.7c0.2-0.2,0.4-0.6,0.4-1.1c0.1-1.3,0.2-4,0.2-8.1c0-2.4-0.1-3.7-0.2-4.1C22,24,21.6,23.7,21,23.7C20.5,23.7,19.9,23.8,19.2,23.8z M25.2,10c0.9,0,1.7,0.3,2.4,1c0.7,0.7,1,1.4,1,2.4c0,0.9-0.3,1.7-1,2.4c-0.7,0.7-1.4,1-2.4,1c-0.9,0-1.7-0.3-2.4-1c-0.7-0.7-1-1.4-1-2.4c0-0.9,0.3-1.7,1-2.4C23.5,10.3,24.2,10,25.2,10z\\\"/></g></svg>\",\n \"information_round_open\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M298,407.5a14,14,0,1,1-14,14,14,14,0,0,1,14-14m0-1a15,15,0,1,0,15,15,15,15,0,0,0-15-15h0Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#fff\\\"/><path d=\\\"M298.1,413a2,2,0,1,1-1.4.6A1.9,1.9,0,0,1,298.1,413Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#fff\\\"/><rect x=\\\"23.4\\\" y=\\\"24\\\" width=\\\"4\\\" height=\\\"10\\\" fill=\\\"#fff\\\"/></svg>\",\n \"lock\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M32.65,21.67H17.35c-2.81,0-3.06,2.29-3.06,5.12v8.09c0,2.83.25,5.12,3.06,5.12h15.3c2.81,0,3.06-2.29,3.06-5.12V26.79C35.71,24,35.46,21.67,32.65,21.67ZM20.22,37.49l2.61-6.32a3.82,3.82,0,1,1,4.35,0l2.6,6.32Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M29.51,16.64c0-3.6-2-4.07-4.51-4.07h0c-2.49,0-4.51.47-4.51,4.07v3h-2.7v-3C17.79,11.62,21,10,25,10h0c4,0,7.21,1.62,7.21,6.64v3h-2.7Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"magic_wand\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><g style=\\\"isolation:isolate\\\"><path d=\\\"M20.45,10.71a.28.28,0,0,1,.49-.19l1.4,1.25a.93.93,0,0,0,.83.23L25,11.62a.29.29,0,0,1,.34.41l-.76,1.71a.93.93,0,0,0,0,.86l.93,1.62c.12.26,0,.45-.29.45l-1.86-.2a1,1,0,0,0-.81.32l-1.26,1.38a.28.28,0,0,1-.5-.14l-.39-1.83a1,1,0,0,0-.55-.67l-1.71-.77a.28.28,0,0,1,0-.52l1.62-.94a1,1,0,0,0,.48-.73Z\\\" fill=\\\"#484f60\\\"/><g style=\\\"mix-blend-mode:lighten\\\"><path d=\\\"M23.3,16.21a1,1,0,0,0-.8.31l-1,1.13a.29.29,0,0,1-.51-.14L20.66,16a1,1,0,0,0-.55-.68l-1.39-.62a.28.28,0,0,1,0-.52L20,13.45a1,1,0,0,0,.48-.73l.16-1.5a.29.29,0,0,1,.49-.2l1.13,1a.93.93,0,0,0,.83.23L24.58,12a.29.29,0,0,1,.34.41l-.62,1.38a.91.91,0,0,0,.05.86l.75,1.32a.29.29,0,0,1-.29.44Z\\\" fill=\\\"#484f60\\\"/></g><path d=\\\"M33.57,36.76a.53.53,0,0,1,0,.72l-2.37,2.18a.48.48,0,0,1-.7,0L18,25.34a.51.51,0,0,1,0-.71l2.36-2.19a.49.49,0,0,1,.7,0Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M18.6,19.94a.51.51,0,0,1,0,.71L16.2,22.84a.48.48,0,0,1-.7,0l-2.76-3.13a.51.51,0,0,1,0-.71l2.37-2.19a.48.48,0,0,1,.7,0Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M30.67,10.55a.29.29,0,0,1,.47.24v1.12a1,1,0,0,0,.4.77l.9.66a.29.29,0,0,1-.08.52l-1.07.35a1,1,0,0,0-.61.61l-.35,1.06a.28.28,0,0,1-.51.09l-.67-.91a1,1,0,0,0-.77-.4H27.27a.29.29,0,0,1-.25-.47l.66-.9a.93.93,0,0,0,.14-.85l-.35-1.07a.29.29,0,0,1,.38-.38l1.07.35a1,1,0,0,0,.85-.13Z\\\" fill=\\\"#484f60\\\"/><g style=\\\"mix-blend-mode:lighten\\\"><path d=\\\"M29.25,14.88a1,1,0,0,0-.77-.4h-.86a.29.29,0,0,1-.24-.47l.5-.69a.93.93,0,0,0,.14-.85l-.26-.82c-.07-.27.1-.44.37-.37l.82.26a1,1,0,0,0,.85-.13l.69-.51a.29.29,0,0,1,.47.25V12a.94.94,0,0,0,.39.76l.7.51a.29.29,0,0,1-.09.52l-.81.26a1,1,0,0,0-.62.61l-.26.82a.29.29,0,0,1-.52.08Z\\\" fill=\\\"#484f60\\\"/></g><path d=\\\"M37,15.81a.29.29,0,0,1,.32.43l-.13.26a.91.91,0,0,0,0,.85l.15.26A.29.29,0,0,1,37,18l-.29,0a.93.93,0,0,0-.81.27l-.2.21a.28.28,0,0,1-.5-.16l0-.29a1,1,0,0,0-.52-.69l-.27-.13a.28.28,0,0,1,0-.52l.26-.13a.93.93,0,0,0,.5-.71l0-.29a.29.29,0,0,1,.5-.17l.21.21a.92.92,0,0,0,.82.26Z\\\" fill=\\\"#484f60\\\"/><g style=\\\"mix-blend-mode:lighten\\\"><path d=\\\"M35.25,18a1,1,0,0,0-.52-.7l-.12-.05a.28.28,0,0,1,0-.52l.12-.06a1,1,0,0,0,.51-.7V15.8a.29.29,0,0,1,.5-.18l.09.1a.92.92,0,0,0,.82.26l.13,0a.29.29,0,0,1,.32.42L37,16.5a.91.91,0,0,0,0,.85l.07.12a.29.29,0,0,1-.31.43l-.13,0a1,1,0,0,0-.82.28l-.09.1a.28.28,0,0,1-.5-.16Z\\\" fill=\\\"#484f60\\\"/></g></g></svg>\",\n \"magnifier\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 50 50\\\" enable-background=\\\"new 0 0 50 50\\\" ><g><path fill=\\\"#29363E\\\" d=\\\"M27.8,15.5c-3.4-3.4-8.9-3.4-12.3,0c-3.4,3.4-3.4,8.9,0,12.3c3.4,3.4,8.9,3.4,12.3,0C31.2,24.4,31.2,18.9,27.8,15.5z M26.4,26.4c-2.6,2.6-6.8,2.6-9.4,0c-2.6-2.6-2.6-6.8,0-9.4c2.6-2.6,6.8-2.6,9.4,0C29,19.6,29,23.8,26.4,26.4z\\\"/><path fill=\\\"#29363E\\\" d=\\\"M36.4,32.8l-4.3-4.3c-0.8-0.8-2.1-0.8-2.9,0l-0.7,0.7c-0.8,0.8-0.8,2.1,0,2.9l4.3,4.3c0.8,0.8,2.1,0.8,2.9,0l0.7-0.7C37.2,34.9,37.2,33.6,36.4,32.8z\\\"/></g></svg>\",\n \"MagnifierPlus\": \"<svg preserveAspectRatio=\\\"none\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 50 50\\\" x=\\\"0px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" y=\\\"0px\\\"><g transform=\\\" translate(11 11)\\\"><path d=\\\"M 17.258 2.962 C 13.313 -0.987 6.91 -0.987 2.961 2.962 C -0.987 6.911 -0.987 13.311 2.961 17.26 C 6.91 21.211 13.313 21.211 17.258 17.259 C 21.207 13.311 21.207 6.911 17.258 2.962 Z M 15.595 15.594 C 12.572 18.618 7.653 18.618 4.632 15.594 C 1.608 12.569 1.608 7.65 4.632 4.626 C 7.653 1.606 12.572 1.606 15.595 4.626 C 18.617 7.652 18.617 12.569 15.595 15.594 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(0 0.469)\\\" /><path d=\\\"M 9.904 5.736 L 4.862 0.688 C 3.94 -0.229 2.446 -0.229 1.526 0.688 L 0.691 1.525 C -0.23 2.446 -0.23 3.939 0.691 4.861 L 5.737 9.904 C 6.659 10.825 8.151 10.825 9.075 9.904 L 9.904 9.069 C 10.827 8.15 10.827 6.657 9.904 5.736 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(17.403 17.872)\\\" /><path d=\\\"M 11.001 4.5 L 7.5 4.5 L 7.5 1 C 7.5 0.448 7.052 0 6.501 0 L 5.502 0 C 4.948 0 4.5 0.448 4.5 1 L 4.5 4.5 L 1.002 4.5 C 0.448 4.5 0 4.949 0 5.499 L 0 6.501 C 0 7.052 0.448 7.5 1.002 7.5 L 4.5 7.5 L 4.5 11.001 C 4.5 11.552 4.948 12 5.502 12 L 6.501 12 C 7.052 12 7.5 11.552 7.5 11.001 L 7.5 7.5 L 11.001 7.5 C 11.552 7.5 12 7.052 12 6.501 L 12 5.499 C 12 4.949 11.552 4.5 11.001 4.5 Z\\\" fill=\\\"#1E2930\\\" opacity=\\\"0.95\\\" transform=\\\" translate(4.109 4.58)\\\" /></g></svg>\",\n \"minus_simple\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M297.5,419.4h-5.8A1.7,1.7,0,0,0,290,421v0.9a1.7,1.7,0,0,0,1.7,1.7h12.7a1.7,1.7,0,0,0,1.7-1.7V421a1.7,1.7,0,0,0-1.7-1.7h-6.8Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#fff\\\" opacity=\\\"0.95\\\"/></svg>\",\n \"order\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"17.5\\\" y=\\\"17.5\\\" width=\\\"6\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17.5\\\" y=\\\"21.5\\\" width=\\\"10\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17.5\\\" y=\\\"25.5\\\" width=\\\"10\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17.5\\\" y=\\\"29.5\\\" width=\\\"10\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><path d=\\\"M35.5,18.49V38a.5.5,0,0,1-.5.5H15a.5.5,0,0,1-.5-.5V12a.5.5,0,0,1,.5-.5H28.73V10H15a2,2,0,0,0-2,2V38a2,2,0,0,0,2,2H35a2,2,0,0,0,2-2V18.49Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M28.73,10v6.44c0,1.78.27,2,2.05,2H37Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17.5\\\" y=\\\"14.5\\\" width=\\\"6\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"29.5\\\" y=\\\"21.5\\\" width=\\\"3\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"29.5\\\" y=\\\"25.5\\\" width=\\\"3\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"29.5\\\" y=\\\"29.5\\\" width=\\\"3\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><path d=\\\"M28.73,35.78h-.1a.48.48,0,0,1-.36-.3l-.79-1.93-1.75.9a.49.49,0,0,1-.67-.21.48.48,0,0,1,.21-.67L27.5,32.4a.56.56,0,0,1,.4,0,.49.49,0,0,1,.29.29l.72,1.73.73-.74a.51.51,0,0,1,.5-.13l1.4.4.56-.72a.5.5,0,1,1,.8.6l-.77,1a.49.49,0,0,1-.54.18l-1.44-.42-1.06,1.07A.51.51,0,0,1,28.73,35.78Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"plus_simple\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M306,422.1a1.3,1.3,0,0,1-1.3,1.3H300v4.7a1.3,1.3,0,0,1-1.3,1.3h-1.3a1.3,1.3,0,0,1-1.3-1.3v-4.7h-4.7a1.3,1.3,0,0,1-1.3-1.3v-1.3a1.3,1.3,0,0,1,1.3-1.3H296v-4.7a1.3,1.3,0,0,1,1.3-1.3h1.3a1.3,1.3,0,0,1,1.3,1.3v4.7h4.7a1.3,1.3,0,0,1,1.3,1.3v1.3Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#fff\\\"/></svg>\",\n \"positioning\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"23\\\" y=\\\"17.17\\\" width=\\\"4\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"23\\\" y=\\\"23.17\\\" width=\\\"4\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"23\\\" y=\\\"29.17\\\" width=\\\"4\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"resize_down\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"29.5 28.25 25 32.75 20.5 28.25 29.5 28.25\\\" fill=\\\"#484f60\\\"/><rect x=\\\"23\\\" y=\\\"21.25\\\" width=\\\"4\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17\\\" y=\\\"21.25\\\" width=\\\"4\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"29\\\" y=\\\"21.25\\\" width=\\\"4\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"resize_up\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"20.5 22.75 25 18.25 29.5 22.75 20.5 22.75\\\" fill=\\\"#484f60\\\"/><rect x=\\\"23\\\" y=\\\"25.75\\\" width=\\\"4\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"29\\\" y=\\\"25.75\\\" width=\\\"4\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17\\\" y=\\\"25.75\\\" width=\\\"4\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"save_disk\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"-288 379 35 35\\\" enable-background=\\\"new -288 379 35 35\\\" ><g opacity=\\\"0.95\\\"><path fill=\\\"#29363E\\\" d=\\\"M-259.5,384.4h-2.1v6.8c0,0.4-0.3,0.7-0.7,0.7h-16.6c-0.4,0-0.7-0.3-0.7-0.7v-6.8h-2c-0.6,0-1.1,0.5-1.1,1.1v22.4c0,0.6,0.5,1.1,1.1,1.1h2v-14c0-0.4,0.3-0.7,0.7-0.7h16.7c0.4,0,0.7,0.3,0.7,0.7v14h2c0.6,0,1.1-0.5,1.1-1.1v-22.4C-258.4,384.9-258.9,384.4-259.5,384.4z M-280.1,406.6h-1.7V405h1.7V406.6z M-259.2,406.6h-1.7V405h1.7V406.6z\\\"/><rect x=\\\"-278.4\\\" y=\\\"395.4\\\" fill=\\\"#29363E\\\" width=\\\"15.8\\\" height=\\\"13.5\\\"/><path fill=\\\"#29363E\\\" d=\\\"M-263.4,384h-12c-0.1,0-0.3,0.1-0.3,0.3v6.5c0,0.1,0.1,0.3,0.3,0.3h12c0.1,0,0.2-0.1,0.2-0.3v-6.5C-263.1,384.1-263.2,384-263.4,384z M-265.6,390c0,0.1-0.1,0.3-0.3,0.3h-2.4c-0.1,0-0.2-0.1-0.2-0.3v-4.8c0-0.1,0.1-0.3,0.2-0.3h2.4c0.1,0,0.3,0.1,0.3,0.3V390z\\\"/></g></svg>\",\n \"select_all_round\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M298,406.5a15,15,0,1,0,15,15A15,15,0,0,0,298,406.5Zm-3,24-6.2-9.1,2.8-3.6,3.4,5.1,4.7-10.4h5.6Zm9.3,0-0.5-1.5h-2.7l-0.5,1.5h-1.9l2.7-7.3h2.2l2.7,7.3h-1.9Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#fff\\\"/><polygon points=\\\"30.8 31.7 30 29.1 29.1 31.7 30.8 31.7\\\" fill=\\\"#fff\\\"/></svg>\",\n \"shopping_cart_nr\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M16.58,34.84a1.8,1.8,0,1,0,1.8,1.8A1.79,1.79,0,0,0,16.58,34.84Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M31.49,34.84a1.8,1.8,0,1,0,1.8,1.8A1.79,1.79,0,0,0,31.49,34.84Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M35.6,17.9l-2.87.34a8.92,8.92,0,0,1,.08,1.16c0,.26,0,.52,0,.78l.42-.05a.88.88,0,0,1,1,1.08L32.35,29.5a1.52,1.52,0,0,1-1.44,1.2H16.51a1.75,1.75,0,0,1-1.57-1.17l-2.31-5.6a1,1,0,0,1,.85-1.29l.87-.11a9.27,9.27,0,0,1-.47-2.05l-3,.35a1,1,0,0,0-.87,1.28l3.34,9.44A1.73,1.73,0,0,0,15,32.72H32.64a1.51,1.51,0,0,0,1.43-1.2L36.6,19A.89.89,0,0,0,35.6,17.9Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M39,17a1.87,1.87,0,0,0-1.36,1.46l-.42,2.89c-.1.67.31,1,.9.7a2.75,2.75,0,0,0,1.33-1.7L40,18A.73.73,0,0,0,39,17Z\\\" fill=\\\"#484f60\\\"/><circle cx=\\\"23.31\\\" cy=\\\"19.4\\\" r=\\\"7.5\\\" fill=\\\"#484f60\\\"/><text transform=\\\"translate(20.46 22.82)\\\" font-size=\\\"10\\\" fill=\\\"#484f60\\\" font-family=\\\"Quicksand-Regular, Quicksand\\\">3</text></svg>\",\n \"sort_asc\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"21.99 31.3 21.99 12.67 17.86 12.67 17.86 31.3 17.86 31.3 13.56 31.3 19.93 37.67 26.29 31.3 21.99 31.3\\\" fill=\\\"#484f60\\\"/><path d=\\\"M31.29,15.17a7.34,7.34,0,0,0,1.28-.65,5.12,5.12,0,0,0,1.14-1h.77v8H33.4V15a2.71,2.71,0,0,1-.34.26c-.13.09-.28.18-.44.27l-.49.24-.51.2Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M36.18,30.88a2,2,0,0,1-.17.79,3.74,3.74,0,0,1-.43.74,6.66,6.66,0,0,1-.61.72l-.68.7c-.13.12-.27.27-.44.45a6.17,6.17,0,0,0-.48.54,4.94,4.94,0,0,0-.38.54.92.92,0,0,0-.15.45h3.6v.89H31.7a.57.57,0,0,1,0-.13v-.13a2.62,2.62,0,0,1,.17-1,4,4,0,0,1,.46-.87,6.51,6.51,0,0,1,.63-.76c.23-.24.46-.48.69-.7s.37-.36.53-.54.32-.35.46-.53a2.75,2.75,0,0,0,.31-.55,1.45,1.45,0,0,0,.12-.59,1.43,1.43,0,0,0-.11-.58,1.15,1.15,0,0,0-.28-.4,1.37,1.37,0,0,0-.43-.23,1.7,1.7,0,0,0-.51-.07,1.89,1.89,0,0,0-.6.09,2.67,2.67,0,0,0-.48.21,1.83,1.83,0,0,0-.37.25l-.22.2-.52-.75a2.92,2.92,0,0,1,.3-.28,3.18,3.18,0,0,1,.49-.31,3.59,3.59,0,0,1,.63-.24,3.07,3.07,0,0,1,2.6.46A2.09,2.09,0,0,1,36.18,30.88Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"sort_desc\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"26.29 19.03 19.93 12.67 13.56 19.03 17.86 19.03 17.86 37.67 21.99 37.67 21.99 19.03 21.99 19.03 26.29 19.03\\\" fill=\\\"#484f60\\\"/><path d=\\\"M36.18,15.75a2,2,0,0,1-.17.79,3.74,3.74,0,0,1-.43.74A6.66,6.66,0,0,1,35,18l-.68.7c-.13.12-.27.27-.44.45a6.17,6.17,0,0,0-.48.54,4.94,4.94,0,0,0-.38.54.92.92,0,0,0-.15.45h3.6v.89H31.7a.57.57,0,0,1,0-.13v-.13a2.62,2.62,0,0,1,.17-1,4,4,0,0,1,.46-.87A6.51,6.51,0,0,1,33,18.7c.23-.24.46-.48.69-.7s.37-.36.53-.54.32-.35.46-.53a2.75,2.75,0,0,0,.31-.55,1.46,1.46,0,0,0,.12-.6,1.41,1.41,0,0,0-.11-.57,1.15,1.15,0,0,0-.28-.4,1.37,1.37,0,0,0-.43-.23,1.7,1.7,0,0,0-.51-.07,1.89,1.89,0,0,0-.6.09,2.67,2.67,0,0,0-.48.21,1.83,1.83,0,0,0-.37.25l-.22.19-.52-.74a2.92,2.92,0,0,1,.3-.28,3.18,3.18,0,0,1,.49-.31,3.59,3.59,0,0,1,.63-.24,3.07,3.07,0,0,1,2.6.46A2.09,2.09,0,0,1,36.18,15.75Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M31.29,30.41a7.34,7.34,0,0,0,1.28-.65,5.12,5.12,0,0,0,1.14-1h.77v8H33.4V30.25a4.61,4.61,0,0,1-.78.53c-.15.08-.32.17-.49.24l-.51.2Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"stock\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"26.19 27.13 31.78 23.88 37.39 27.11 31.79 30.35 26.19 27.13\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"32.39 31.38 37.99 28.14 38 34.61 32.41 37.85 32.39 31.38\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><polygon points=\\\"25.6 34.63 25.59 28.16 31.2 31.39 31.21 37.85 25.6 34.63\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><polygon points=\\\"12.6 27.15 18.19 23.91 23.8 27.13 18.2 30.37 12.6 27.15\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"18.8 31.41 24.39 28.16 24.41 34.63 18.81 37.88 18.8 31.41\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><polygon points=\\\"12.01 34.65 12 28.19 17.61 31.41 17.62 37.88 12.01 34.65\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><polygon points=\\\"19.37 15.37 24.96 12.12 30.57 15.35 24.98 18.59 19.37 15.37\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"25.58 19.62 31.17 16.38 31.18 22.85 25.59 26.09 25.58 19.62\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><polygon points=\\\"18.79 22.87 18.77 16.4 24.38 19.63 24.39 26.09 18.79 22.87\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/></svg>\", \"thick_lines\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"10\\\" y=\\\"12.67\\\" width=\\\"30\\\" height=\\\"7\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"21.67\\\" width=\\\"30\\\" height=\\\"7\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"30.67\\\" width=\\\"30\\\" height=\\\"7\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"thin_lines\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"10\\\" y=\\\"14.17\\\" width=\\\"30\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"20.17\\\" width=\\\"30\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"26.17\\\" width=\\\"30\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"32.17\\\" width=\\\"30\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"three_d\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M16.08,30.77a4.85,4.85,0,0,1-3-.8,4,4,0,0,0-2.49-.15,6.21,6.21,0,0,0,2.53,1.09,12.84,12.84,0,0,0,2.93-.14\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M14.27,19.68A4.71,4.71,0,0,0,11,20.78l2,.14c.31,0,1.2-.69,1.55-.81a3.88,3.88,0,0,1,1.65-.24l-1.94-.19\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M21.64,28.79a4.13,4.13,0,0,0-3.1-4c.89-.7,1.77-1.09,2.26-2.21a5.12,5.12,0,0,0,.35-1.9c-.13-3.24-2.64-3.73-5.29-4.15a4,4,0,0,1,3.44,3.7,4.61,4.61,0,0,1-.83,3.12,9.7,9.7,0,0,1-1.82,1.43,4.3,4.3,0,0,1,3.17,4.34,4.9,4.9,0,0,1-4.21,5c2.09-.34,4.37-.64,5.46-2.69a5,5,0,0,0,.57-2.58\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M28.44,18.88l.38-.07.48-.06.57,0h.75l.36,0,.35.05c-.2,0-.42-.08-1.57-.25l-.36-.05-.37,0h-.77l-.59,0-.49.07a3.08,3.08,0,0,0-.39.07l-.3.07V31.38H27l.13,0h1.63l.21,0h.2l.2,0h.05l1.55-.24h0l-.34.05-.33,0H29.12l-.36,0-.33,0a1.15,1.15,0,0,1-.28-.06V19Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M40,24.34a9,9,0,0,0-3-7.1,11.06,11.06,0,0,0-4.47-1.86c4.38,1.13,6.23,5.31,6.13,9.54-.12,4.5-2.27,8.55-6.86,9.66,2.59-.63,5-1.41,6.52-3.78A12,12,0,0,0,40,24.34\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M35.38,16.71A7.32,7.32,0,0,1,36.74,18a7.82,7.82,0,0,1,1,1.73,10.32,10.32,0,0,1,.68,2.16,13.86,13.86,0,0,1,.23,2.59,15,15,0,0,1-.25,2.78,11.39,11.39,0,0,1-.68,2.31,9.34,9.34,0,0,1-1,1.85,8.23,8.23,0,0,1-1.28,1.4,7.76,7.76,0,0,1-1.7,1.07,9.07,9.07,0,0,1-2,.69,13.36,13.36,0,0,1-2.26.33,18.25,18.25,0,0,1-2.45,0c-.5,0-1-.08-1.39-.12l-1.17-.14c-.36,0-.68-.11-1-.16l-.77-.15V15.86c.34-.09.71-.18,1.09-.26s.81-.15,1.24-.21.88-.12,1.34-.17.95-.1,1.44-.13a20.57,20.57,0,0,1,2.33,0,12,12,0,0,1,2,.24,8.24,8.24,0,0,1,1.72.55A7.1,7.1,0,0,1,35.38,16.71ZM27.92,31.53a6.53,6.53,0,0,0,2.46-.32A4.81,4.81,0,0,0,32.32,30a5.82,5.82,0,0,0,1.27-2.18A10.11,10.11,0,0,0,34,24.67a8.65,8.65,0,0,0-.42-2.85,4.94,4.94,0,0,0-1.18-2,4.45,4.45,0,0,0-1.83-1.11,6.55,6.55,0,0,0-2.35-.28l-.59,0-.49.07a3.08,3.08,0,0,0-.39.07l-.3.07V31.38a2.11,2.11,0,0,0,.29.06l.34,0,.37,0,.36,0h.07\\\" fill=\\\"#484f60\\\"/><path d=\\\"M14.57,16.47a5.49,5.49,0,0,1,2,.22,3.89,3.89,0,0,1,1.49.84A3.66,3.66,0,0,1,19,18.89a4.29,4.29,0,0,1,.33,1.7,5.29,5.29,0,0,1-.17,1.34,4.29,4.29,0,0,1-.5,1.16,4.17,4.17,0,0,1-.84.94,4.88,4.88,0,0,1-1.16.69v.05a3.7,3.7,0,0,1,1.22.5,4,4,0,0,1,1,.92,4.61,4.61,0,0,1,.69,1.3,5.24,5.24,0,0,1,.25,1.62,5.36,5.36,0,0,1-.42,2.15,4.44,4.44,0,0,1-1.2,1.64,4.84,4.84,0,0,1-1.86,1,6.78,6.78,0,0,1-2.39.23,7.69,7.69,0,0,1-2.36-.52,6.89,6.89,0,0,1-.9-.42,4.36,4.36,0,0,1-.69-.47l.62-2.9a4.12,4.12,0,0,0,.53.34,6.21,6.21,0,0,0,.73.36,5.69,5.69,0,0,0,.88.31,5.19,5.19,0,0,0,1,.15,3.11,3.11,0,0,0,1.1-.13,2,2,0,0,0,.8-.45,1.93,1.93,0,0,0,.49-.71,2.35,2.35,0,0,0,.17-.89A2.48,2.48,0,0,0,16,27.67a2.23,2.23,0,0,0-.63-.79,2.9,2.9,0,0,0-.89-.46,3.5,3.5,0,0,0-1-.15H12.2V23.44l1.23,0a3.44,3.44,0,0,0,.83-.11,2.83,2.83,0,0,0,.79-.36,2,2,0,0,0,.6-.62,2,2,0,0,0,.23-.94,1.8,1.8,0,0,0-.13-.71,1.36,1.36,0,0,0-.38-.56,1.58,1.58,0,0,0-.64-.35,2.79,2.79,0,0,0-.9-.1,4.07,4.07,0,0,0-.84.13c-.27.08-.53.18-.78.28a6.56,6.56,0,0,0-1.17.7L10.42,18a5,5,0,0,1,.72-.51,7.82,7.82,0,0,1,2.12-.82A8,8,0,0,1,14.57,16.47Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"TrashBin\": \"<svg preserveAspectRatio=\\\"none\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 50 50\\\" x=\\\"0px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" y=\\\"0px\\\"><g transform=\\\" translate(14 10)\\\"><path d=\\\"M 0 0 L 0 18.215 C 0 19.99 1.439 21.429 3.215 21.429 L 15 21.429 C 16.775 21.429 18.215 19.99 18.215 18.215 L 18.215 0 L 0 0 Z M 4.287 19.286 L 2.143 19.286 L 2.143 2.143 L 4.287 2.143 L 4.287 19.286 Z M 10.18 19.286 L 8.037 19.286 L 8.037 2.143 L 10.18 2.143 L 10.18 19.286 Z M 16.072 19.286 L 13.93 19.286 L 13.93 2.143 L 16.072 2.143 L 16.072 19.286 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(1.891 8.571)\\\"/><path d=\\\"M 18.213 2.143 L 10.713 2.143 C 11.305 2.143 11.785 1.664 11.785 1.071 C 11.785 0.479 11.305 0 10.713 0 L 9.643 0 C 9.051 0 8.57 0.479 8.57 1.071 C 8.57 1.664 9.051 2.143 9.643 2.143 L 2.143 2.143 C 0.959 2.143 0 3.103 0 4.286 L 0 5.357 C 0 6.541 0.959 6.429 2.143 6.429 L 18.213 6.429 C 19.397 6.429 20.357 6.541 20.357 5.357 L 20.357 4.286 C 20.357 3.103 19.397 2.143 18.213 2.143 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(0.821 0)\\\"/></g></svg>\",\n \"triangle_up\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 25\\\"><polygon points=\\\"16.8 24.8 0 25 25 0 50 24.8 33 24.8 16.8 24.8\\\" fill=\\\"#4d5065\\\"/></svg>\",\n \"wrench\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M696.41,378.36a5.36,5.36,0,0,0-.58.61q-2.09,2.11-4.2,4.21a2.22,2.22,0,0,1-3.38.24,22.16,22.16,0,0,1-2.06-2,10.79,10.79,0,0,1-1.31-1.51,2.1,2.1,0,0,1,.29-3c.54-.55,1.08-1.09,1.63-1.63L690.2,372c-.33-.11-.51-.18-.7-.23a9.89,9.89,0,0,0-12,12,.86.86,0,0,1-.27.95c-2.08,2.06-4.15,4.14-6.23,6.2a13.7,13.7,0,0,0,6.53,6.48q3.1-3.1,6.2-6.2a.86.86,0,0,1,.95-.27,9.89,9.89,0,0,0,12.19-8A8.55,8.55,0,0,0,696.41,378.36Z\\\" transform=\\\"translate(-658.5 -358.97)\\\" fill=\\\"#4c5050\\\"/></svg>\",\n};\n","import { Injectable } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\nimport { ObjectUtils } from '../../core/utils/object-utils';\r\nimport { StringUtils } from '../../core/utils/string-utils';\r\nimport { CoreComponentsIcon } from '../../core/enum/core-components-icon.enum';\r\nimport { CoreComponentsIconSvg } from '../../core/model/core-components-icon-svg';\r\n\r\n@Injectable()\r\nexport class IconCacheService {\r\n /**\r\n * All the icons as a large JSON object, from the all-icons.json file.\r\n * The object has property keys that are the icon names, and property values with the data string of the actual svg icon.\r\n */\r\n public get iconCache(): { [iconName: string]: SafeHtml } {\r\n return this._iconCache;\r\n }\r\n\r\n private _iconCache: { [iconName: string]: SafeHtml } = {};\r\n\r\n private _allIcons: any;\r\n\r\n constructor(private _sanitizer: DomSanitizer) {\r\n this._allIcons = CoreComponentsIconSvg;\r\n this.setIconCache();\r\n }\r\n\r\n public getIcon(iconName: CoreComponentsIcon): SafeHtml {\r\n if (StringUtils.IsStringWithLength(iconName)) {\r\n return this._iconCache[iconName.toLowerCase()];\r\n }\r\n }\r\n\r\n public getRawIcon(iconName: CoreComponentsIcon): string {\r\n if (StringUtils.IsStringWithLength(iconName)) {\r\n return this._allIcons[iconName.toLowerCase()];\r\n }\r\n }\r\n\r\n public getIconAsBase64(iconName: CoreComponentsIcon): SafeHtml {\r\n const icon: string = this._allIcons[iconName];\r\n const base64Data: string = window.btoa(icon);\r\n return this._sanitizer.bypassSecurityTrustUrl(`data:image/svg+xml;base64,${base64Data}`);\r\n }\r\n\r\n public getIconRawBase64(iconName: CoreComponentsIcon): string {\r\n const icon: string = this._allIcons[iconName];\r\n const base64Data: string = window.btoa(icon);\r\n return \"data:image/svg+xml;base64,\" + base64Data;\r\n }\r\n\r\n public setIconCache(): void {\r\n ObjectUtils.ForOwnProperty(this._allIcons, (svgData: string, iconName: CoreComponentsIcon) => {\r\n this._iconCache[iconName.toLowerCase()] = this._sanitizer.bypassSecurityTrustHtml(this._allIcons[iconName]);\r\n });\r\n }\r\n}\r\n","import { Component, HostBinding, Input } from '@angular/core';\r\nimport { SafeHtml } from '@angular/platform-browser';\r\nimport { CoreComponentsIcon } from '../../core/enum/core-components-icon.enum';\r\nimport { IconCacheService } from './icon-cache.service';\r\n\r\n@Component({\r\n selector: \"co-icon\",\r\n template: '',\r\n styleUrls: [\r\n \"icon.scss\"\r\n ]\r\n})\r\nexport class IconComponent {\r\n\r\n @Input()\r\n public set icon(value: CoreComponentsIcon) {\r\n this._setIconFromEnum(value);\r\n }\r\n\r\n @Input()\r\n @HostBinding(\"innerHtml\")\r\n public iconData: SafeHtml | undefined;\r\n\r\n constructor(private _iconCache: IconCacheService) {\r\n }\r\n\r\n private _setIconFromEnum(icon: CoreComponentsIcon): void {\r\n this.iconData = this._iconCache.getIcon(icon);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\n\r\nimport { IconComponent } from './icon.component';\r\nimport { IconCacheService } from './icon-cache.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HttpClientModule\r\n ],\r\n declarations: [\r\n IconComponent\r\n ],\r\n providers: [\r\n IconCacheService\r\n ],\r\n exports: [\r\n IconComponent\r\n ]\r\n})\r\nexport class IconModule {\r\n}\r\n","// NOTE: Copied and adapted to iOneJS from https://github.com/angular/material2/blob/master/src/lib/core on 14-march-2017.\r\nimport { ElementRef, Injectable, Optional, SkipSelf } from '@angular/core';\r\nimport { fromEvent, merge, Observable, Subject, Subscription } from 'rxjs';\r\n\r\nimport { CoScrollableDirective } from './scrollable.directive';\r\nimport { auditTime } from 'rxjs/operators';\r\n\r\n/** Time in ms to throttle the scrolling events by default. */\r\nexport const DEFAULT_SCROLL_TIME = 20;\r\n\r\n/**\r\n * Service contained all registered Scrollable references and emits an event when any one of the\r\n * Scrollable references emit a scrolled event.\r\n */\r\n@Injectable()\r\nexport class CoScrollDispatcherService {\r\n /** Subject for notifying that a registered scrollable reference element has been scrolled. */\r\n _scrolled: Subject<void> = new Subject<void>();\r\n\r\n /** Keeps track of the global `scroll` and `resize` subscriptions. */\r\n _globalSubscription: Subscription = null;\r\n\r\n /** Keeps track of the amount of subscriptions to `scrolled`. Used for cleaning up afterwards. */\r\n private _scrolledCount = 0;\r\n\r\n /**\r\n * Map of all the scrollable references that are registered with the service and their\r\n * scroll event subscriptions.\r\n */\r\n scrollableReferences: Map<CoScrollableDirective, Subscription> = new Map();\r\n\r\n /**\r\n * Registers a Scrollable with the service and listens for its scrolled events. When the\r\n * scrollable is scrolled, the service emits the event in its scrolled observable.\r\n * @param scrollable Scrollable instance to be registered.\r\n */\r\n register(scrollable: CoScrollableDirective): void {\r\n const scrollSubscription = scrollable.elementScrolled().subscribe(() => this._notify());\r\n\r\n this.scrollableReferences.set(scrollable, scrollSubscription);\r\n }\r\n\r\n /**\r\n * Deregisters a Scrollable reference and unsubscribes from its scroll event observable.\r\n * @param scrollable Scrollable instance to be deregistered.\r\n */\r\n deregister(scrollable: CoScrollableDirective): void {\r\n if (this.scrollableReferences.has(scrollable)) {\r\n this.scrollableReferences.get(scrollable).unsubscribe();\r\n this.scrollableReferences.delete(scrollable);\r\n }\r\n }\r\n\r\n /**\r\n * Subscribes to an observable that emits an event whenever any of the registered Scrollable\r\n * references (or window, document, or body) fire a scrolled event. Can provide a time in ms\r\n * to override the default \"throttle\" time.\r\n */\r\n scrolled(auditTimeInMs: number = DEFAULT_SCROLL_TIME, callback: () => any): Subscription {\r\n // In the case of a 0ms delay, use an observable without auditTime\r\n // since it does add a perceptible delay in processing overhead.\r\n let observable: any = auditTimeInMs > 0 ?\r\n auditTime(auditTimeInMs) :\r\n this._scrolled.asObservable();\r\n\r\n this._scrolledCount++;\r\n\r\n if (!this._globalSubscription) {\r\n this._globalSubscription = merge(\r\n fromEvent(window.document, 'scroll'),\r\n fromEvent(window, 'resize')\r\n ).subscribe(() => this._notify());\r\n }\r\n\r\n // Note that we need to do the subscribing from here, in order to be able to remove\r\n // the global event listeners once there are no more subscriptions.\r\n return observable.subscribe(callback).add(() => {\r\n this._scrolledCount--;\r\n\r\n if (this._globalSubscription && !this.scrollableReferences.size && !this._scrolledCount) {\r\n this._globalSubscription.unsubscribe();\r\n this._globalSubscription = null;\r\n }\r\n });\r\n }\r\n\r\n /** Returns all registered Scrollables that contain the provided element. */\r\n getScrollContainers(elementRef: ElementRef): CoScrollableDirective[] {\r\n const scrollingContainers: CoScrollableDirective[] = [];\r\n\r\n this.scrollableReferences.forEach((subscription: Subscription, scrollable: CoScrollableDirective) => {\r\n if (this.scrollableContainsElement(scrollable, elementRef)) {\r\n scrollingContainers.push(scrollable);\r\n }\r\n });\r\n\r\n return scrollingContainers;\r\n }\r\n\r\n /** Returns true if the element is contained within the provided Scrollable. */\r\n scrollableContainsElement(scrollable: CoScrollableDirective, elementRef: ElementRef): boolean {\r\n let element = elementRef.nativeElement;\r\n let scrollableElement = scrollable.getElementRef().nativeElement;\r\n\r\n // Traverse through the element parents until we reach null, checking if any of the elements\r\n // are the scrollable's element.\r\n do {\r\n if (element == scrollableElement) {\r\n return true;\r\n }\r\n } while (element = element.parentElement);\r\n }\r\n\r\n /** Sends a notification that a scroll event has been fired. */\r\n _notify() {\r\n this._scrolled.next();\r\n }\r\n}\r\n\r\nexport function SCROLL_DISPATCHER_PROVIDER_FACTORY(parentDispatcher: CoScrollDispatcherService) {\r\n return parentDispatcher || new CoScrollDispatcherService();\r\n}\r\n\r\nexport const SCROLL_DISPATCHER_PROVIDER = {\r\n // If there is already a ScrollDispatcher available, use that. Otherwise, provide a new one.\r\n provide: CoScrollDispatcherService,\r\n deps: [[new Optional(), new SkipSelf(), CoScrollDispatcherService]],\r\n useFactory: SCROLL_DISPATCHER_PROVIDER_FACTORY\r\n};\r\n","// NOTE: Copied and adapted to TwoDSelector from iOneJS on 9-may-2018.\r\nimport {Injectable, Optional, SkipSelf} from '@angular/core';\r\n\r\nimport {CoScrollDispatcherService} from \"./scroll-dispatcher.service\";\r\n\r\n/**\r\n * Simple utility for getting the bounds of the browser viewport.\r\n * @docs-private\r\n */\r\n@Injectable()\r\nexport class CoViewportRulerService {\r\n\r\n /** Cached document client rectangle. */\r\n private _documentRect?: ClientRect;\r\n\r\n constructor(scrollDispatcher: CoScrollDispatcherService) {\r\n // Initially cache the document rectangle.\r\n this._cacheViewportGeometry();\r\n\r\n // Subscribe to scroll and resize events and update the document rectangle on changes.\r\n scrollDispatcher.scrolled(null, () => this._cacheViewportGeometry());\r\n }\r\n\r\n /** Gets a ClientRect for the viewport's bounds. */\r\n getViewportRect(documentRect = this._documentRect): ClientRect {\r\n // Use the document element's bounding rect rather than the window scroll properties\r\n // (e.g. pageYOffset, scrollY) due to in issue in Chrome and IE where window scroll\r\n // properties and client coordinates (boundingClientRect, clientX/Y, etc.) are in different\r\n // conceptual viewports. Under most circumstances these viewports are equivalent, but they\r\n // can disagree when the page is pinch-zoomed (on devices that support touch).\r\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=489206#c4\r\n // We use the documentElement instead of the body because, by default (without a css reset)\r\n // browsers typically give the document body an 8px margin, which is not included in\r\n // getBoundingClientRect().\r\n const scrollPosition = this.getViewportScrollPosition(documentRect);\r\n const height = window.innerHeight;\r\n const width = window.innerWidth;\r\n\r\n return {\r\n top: scrollPosition.top,\r\n left: scrollPosition.left,\r\n bottom: scrollPosition.top + height,\r\n right: scrollPosition.left + width,\r\n height,\r\n width,\r\n };\r\n }\r\n\r\n\r\n /**\r\n * Gets the (top, left) scroll position of the viewport.\r\n * @param documentRect\r\n */\r\n getViewportScrollPosition(documentRect = this._documentRect) {\r\n // The top-left-corner of the viewport is determined by the scroll position of the document\r\n // body, normally just (scrollLeft, scrollTop). However, Chrome and Firefox disagree about\r\n // whether `document.body` or `document.documentElement` is the scrolled element, so reading\r\n // `scrollTop` and `scrollLeft` is inconsistent. However, using the bounding rect of\r\n // `document.documentElement` works consistently, where the `top` and `left` values will\r\n // equal negative the scroll position.\r\n const top = -documentRect.top || document.body.scrollTop || window.scrollY || 0;\r\n const left = -documentRect.left || document.body.scrollLeft || window.scrollX || 0;\r\n\r\n return {top, left};\r\n }\r\n\r\n /** Caches the latest client rectangle of the document element. */\r\n _cacheViewportGeometry() {\r\n this._documentRect = document.documentElement.getBoundingClientRect();\r\n }\r\n\r\n}\r\n\r\nexport function VIEWPORT_RULER_PROVIDER_FACTORY(parentRuler: CoViewportRulerService,\r\n scrollDispatcher: CoScrollDispatcherService) {\r\n return parentRuler || new CoViewportRulerService(scrollDispatcher);\r\n}\r\n\r\nexport const VIEWPORT_RULER_PROVIDER = {\r\n // If there is already a ViewportRuler available, use that. Otherwise, provide a new one.\r\n provide: CoViewportRulerService,\r\n deps: [[new Optional(), new SkipSelf(), CoViewportRulerService], CoScrollDispatcherService],\r\n useFactory: VIEWPORT_RULER_PROVIDER_FACTORY\r\n};","// NOTE: Copied and adapted to CoreComponents from iOneJS on 9-may-2018.\r\n\r\nimport {CoRippleConfig, CoRippleRenderer} from \"./ripple-renderer\";\r\n\r\n/** Possible states for a ripple element. */\r\nexport enum CoRippleState {\r\n FADING_IN, VISIBLE, FADING_OUT, HIDDEN\r\n}\r\n\r\n/**\r\n * Reference to a previously launched ripple element.\r\n */\r\nexport class CoRippleRef {\r\n\r\n /** Current state of the ripple reference. */\r\n state: CoRippleState = CoRippleState.HIDDEN;\r\n\r\n constructor(\r\n private _renderer: CoRippleRenderer,\r\n public element: HTMLElement,\r\n public config: CoRippleConfig) {\r\n }\r\n\r\n /** Fades out the ripple element. */\r\n fadeOut() {\r\n this._renderer.fadeOutRipple(this);\r\n }\r\n}","// NOTE: Copied and adapted to CoreComponents from iOneJS on 9-may-2018.\r\n\r\nimport {ElementRef, NgZone} from '@angular/core';\r\n\r\nimport {CoRippleRef, CoRippleState} from \"./ripple-ref\";\r\nimport {CoViewportRulerService} from \"./viewport-ruler.service\";\r\n\r\n/** Fade-in duration for the ripples. Can be modified with the speedFactor option. */\r\nexport const RIPPLE_FADE_IN_DURATION = 450;\r\n\r\n/** Fade-out duration for the ripples in milliseconds. This can't be modified by the speedFactor. */\r\nexport const RIPPLE_FADE_OUT_DURATION = 400;\r\n\r\nexport type CoRippleConfig = {\r\n color?: string;\r\n centered?: boolean;\r\n radius?: number;\r\n speedFactor?: number;\r\n persistent?: boolean;\r\n};\r\n\r\n/**\r\n * Helper service that performs DOM manipulations. Not intended to be used outside this module.\r\n * The constructor takes a reference to the ripple directive's host element and a map of DOM\r\n * event handlers to be installed on the element that triggers ripple animations.\r\n * This will eventually become a custom renderer once Angular support exists.\r\n * @docs-private\r\n */\r\nexport class CoRippleRenderer {\r\n\r\n /** Element where the ripples are being added to. */\r\n private _containerElement: HTMLElement;\r\n\r\n /** Element which triggers the ripple elements on mouse events. */\r\n private _triggerElement: HTMLElement;\r\n\r\n /** Whether the mouse is currently down or not. */\r\n private _isMousedown: boolean = false;\r\n\r\n /** Events to be registered on the trigger element. */\r\n private _triggerEvents = new Map<string, any>();\r\n\r\n /** Set of currently active ripple references. */\r\n private _activeRipples = new Set<CoRippleRef>();\r\n\r\n /** Ripple config for all ripples created by events. */\r\n rippleConfig: CoRippleConfig = {};\r\n\r\n /** Whether mouse ripples should be created or not. */\r\n rippleDisabled: boolean = false;\r\n\r\n constructor(_elementRef: ElementRef, private _ngZone: NgZone, private _ruler: CoViewportRulerService) {\r\n this._containerElement = _elementRef.nativeElement;\r\n\r\n // Specify events which need to be registered on the trigger.\r\n this._triggerEvents.set('mousedown', this.onMousedown.bind(this));\r\n this._triggerEvents.set('mouseup', this.onMouseup.bind(this));\r\n this._triggerEvents.set('mouseleave', this.onMouseLeave.bind(this));\r\n\r\n // By default use the host element as trigger element.\r\n this.setTriggerElement(this._containerElement);\r\n }\r\n\r\n /** Fades in a ripple at the given coordinates. */\r\n fadeInRipple(pageX: number, pageY: number, config: CoRippleConfig = {}): CoRippleRef {\r\n let containerRect = this._containerElement.getBoundingClientRect();\r\n\r\n if (config.centered) {\r\n pageX = containerRect.left + containerRect.width / 2;\r\n pageY = containerRect.top + containerRect.height / 2;\r\n } else {\r\n // Subtract scroll values from the coordinates because calculations below\r\n // are always relative to the viewport rectangle.\r\n let scrollPosition = this._ruler.getViewportScrollPosition();\r\n pageX -= scrollPosition.left;\r\n pageY -= scrollPosition.top;\r\n }\r\n\r\n let radius = config.radius || distanceToFurthestCorner(pageX, pageY, containerRect);\r\n let duration = RIPPLE_FADE_IN_DURATION * (1 / (config.speedFactor || 1));\r\n let offsetX = pageX - containerRect.left;\r\n let offsetY = pageY - containerRect.top;\r\n\r\n let ripple = document.createElement('div');\r\n ripple.classList.add('mat-ripple-element');\r\n\r\n ripple.style.left = `${offsetX - radius}px`;\r\n ripple.style.top = `${offsetY - radius}px`;\r\n ripple.style.height = `${radius * 2}px`;\r\n ripple.style.width = `${radius * 2}px`;\r\n\r\n // If the color is not set, the default CSS color will be used.\r\n ripple.style.backgroundColor = config.color;\r\n ripple.style.transitionDuration = `${duration}ms`;\r\n\r\n this._containerElement.appendChild(ripple);\r\n\r\n // By default the browser does not recalculate the styles of dynamically created\r\n // ripple elements. This is critical because then the `scale` would not animate properly.\r\n enforceStyleRecalculation(ripple);\r\n\r\n ripple.style.transform = 'scale(1)';\r\n\r\n // Exposed reference to the ripple that will be returned.\r\n let rippleRef = new CoRippleRef(this, ripple, config);\r\n\r\n rippleRef.state = CoRippleState.FADING_IN;\r\n\r\n // Add the ripple reference to the list of all active ripples.\r\n this._activeRipples.add(rippleRef);\r\n\r\n // Wait for the ripple element to be completely faded in.\r\n // Once it's faded in, the ripple can be hidden immediately if the mouse is released.\r\n this.runTimeoutOutsideZone(() => {\r\n rippleRef.state = CoRippleState.VISIBLE;\r\n\r\n if (!config.persistent && !this._isMousedown) {\r\n rippleRef.fadeOut();\r\n }\r\n }, duration);\r\n\r\n return rippleRef;\r\n }\r\n\r\n /** Fades out a ripple reference. */\r\n fadeOutRipple(rippleRef: CoRippleRef) {\r\n // For ripples that are not active anymore, don't re-un the fade-out animation.\r\n if (!this._activeRipples.delete(rippleRef)) {\r\n return;\r\n }\r\n\r\n let rippleEl = rippleRef.element;\r\n\r\n rippleEl.style.transitionDuration = `${RIPPLE_FADE_OUT_DURATION}ms`;\r\n rippleEl.style.opacity = '0';\r\n\r\n rippleRef.state = CoRippleState.FADING_OUT;\r\n\r\n // Once the ripple faded out, the ripple can be safely removed from the DOM.\r\n this.runTimeoutOutsideZone(() => {\r\n rippleRef.state = CoRippleState.HIDDEN;\r\n rippleEl.parentNode.removeChild(rippleEl);\r\n }, RIPPLE_FADE_OUT_DURATION);\r\n }\r\n\r\n /** Fades out all currently active ripples. */\r\n fadeOutAll() {\r\n this._activeRipples.forEach(ripple => ripple.fadeOut());\r\n }\r\n\r\n /** Sets the trigger element and registers the mouse events. */\r\n setTriggerElement(element: HTMLElement) {\r\n // Remove all previously register event listeners from the trigger element.\r\n if (this._triggerElement) {\r\n this._triggerEvents.forEach((fn, type) => this._triggerElement.removeEventListener(type, fn));\r\n }\r\n\r\n if (element) {\r\n // If the element is not null, register all event listeners on the trigger element.\r\n this._ngZone.runOutsideAngular(() => {\r\n this._triggerEvents.forEach((fn, type) => element.addEventListener(type, fn));\r\n });\r\n }\r\n\r\n this._triggerElement = element;\r\n }\r\n\r\n /** Listener being called on mousedown event. */\r\n private onMousedown(event: MouseEvent) {\r\n if (!this.rippleDisabled) {\r\n this._isMousedown = true;\r\n this.fadeInRipple(event.pageX, event.pageY, this.rippleConfig);\r\n }\r\n }\r\n\r\n /** Listener being called on mouseup event. */\r\n private onMouseup() {\r\n this._isMousedown = false;\r\n\r\n // Fade-out all ripples that are completely visible and not persistent.\r\n this._activeRipples.forEach(ripple => {\r\n if (!ripple.config.persistent && ripple.state === CoRippleState.VISIBLE) {\r\n ripple.fadeOut();\r\n }\r\n });\r\n }\r\n\r\n /** Listener being called on mouseleave event. */\r\n private onMouseLeave() {\r\n if (this._isMousedown) {\r\n this.onMouseup();\r\n }\r\n }\r\n\r\n /** Runs a timeout outside of the Angular zone to avoid triggering the change detection. */\r\n private runTimeoutOutsideZone(fn: Function, delay: number = 0): void {\r\n this._ngZone.runOutsideAngular(() => setTimeout(fn, delay));\r\n }\r\n\r\n}\r\n\r\n/** Enforces a style recalculation of a DOM element by computing its styles. */\r\nfunction enforceStyleRecalculation(element: HTMLElement) {\r\n // Enforce a style recalculation by calling `getComputedStyle` and accessing any property.\r\n // Calling `getPropertyValue` is important to let optimizers know that this is not a noop.\r\n // See: https://gist.github.com/paulirish/5d52fb081b3570c81e3a\r\n window.getComputedStyle(element).getPropertyValue('opacity');\r\n}\r\n\r\n/**\r\n * Returns the distance from the point (x, y) to the furthest corner of a rectangle.\r\n */\r\nfunction distanceToFurthestCorner(x: number, y: number, rect: ClientRect) {\r\n const distX = Math.max(Math.abs(x - rect.left), Math.abs(x - rect.right));\r\n const distY = Math.max(Math.abs(y - rect.top), Math.abs(y - rect.bottom));\r\n return Math.sqrt(distX * distX + distY * distY);\r\n}","// NOTE: Copied from iOneJS and adapted to CoreComponents on 9-may-2018.\r\n\r\nimport {Directive, ElementRef, Inject, InjectionToken, Input, NgZone, OnChanges, OnDestroy, Optional, SimpleChanges} from '@angular/core';\r\nimport {CoRippleConfig, CoRippleRenderer} from \"./ripple-renderer\";\r\nimport {CoRippleRef} from \"./ripple-ref\";\r\nimport {CoViewportRulerService} from \"./viewport-ruler.service\";\r\n\r\n/** OpaqueToken that can be used to specify the global ripple options. */\r\nexport const MD_RIPPLE_GLOBAL_OPTIONS: InjectionToken<CoRippleGlobalOptions> = new InjectionToken('CoRippleGlobalOptions');\r\n\r\nexport type CoRippleGlobalOptions = {\r\n disabled?: boolean;\r\n baseSpeedFactor?: number;\r\n};\r\n\r\n@Directive({\r\n selector: '[md-ripple], [mat-ripple], [mdRipple], [matRipple]',\r\n exportAs: 'mdRipple',\r\n host: {\r\n '[class.mat-ripple]': 'true',\r\n '[class.mat-ripple-unbounded]': 'unbounded'\r\n }\r\n})\r\nexport class CoRippleDirective implements OnChanges, OnDestroy {\r\n\r\n /**\r\n * The element that triggers the ripple when click events are received. Defaults to the\r\n * directive's host element.\r\n */\r\n // Prevent TS metadata emit from referencing HTMLElement in ripple.js\r\n // Otherwise running this code in a Node environment (e.g Universal) will not work.\r\n @Input('mdRippleTrigger') trigger: HTMLElement | HTMLElement;\r\n\r\n /**\r\n * Whether the ripple always originates from the center of the host element's bounds, rather\r\n * than originating from the location of the click event.\r\n */\r\n @Input('mdRippleCentered') centered: boolean;\r\n\r\n /**\r\n * Whether click events will not trigger the ripple. It can still be triggered by manually\r\n * calling createRipple()\r\n */\r\n @Input('mdRippleDisabled') disabled: boolean;\r\n\r\n /**\r\n * If set, the radius in pixels of foreground ripples when fully expanded. If unset, the radius\r\n * will be the distance from the center of the ripple to the furthest corner of the host element's\r\n * bounding rectangle.\r\n */\r\n @Input('mdRippleRadius') radius: number = 0;\r\n\r\n /**\r\n * If set, the normal duration of ripple animations is divided by this value. For example,\r\n * setting it to 0.5 will cause the animations to take twice as long.\r\n * A changed speedFactor will not modify the fade-out duration of the ripples.\r\n */\r\n @Input('mdRippleSpeedFactor') speedFactor: number = 1;\r\n\r\n /** Custom color for ripples. */\r\n @Input('mdRippleColor') color: string;\r\n\r\n /** Whether foreground ripples should be visible outside the component's bounds. */\r\n @Input('mdRippleUnbounded') unbounded: boolean;\r\n\r\n /** Renderer for the ripple DOM manipulations. */\r\n private _rippleRenderer: CoRippleRenderer;\r\n\r\n /** Options that are set globally for all ripples. */\r\n private _globalOptions: CoRippleGlobalOptions;\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n ngZone: NgZone,\r\n ruler: CoViewportRulerService,\r\n // Type needs to be `any` because of https://github.com/angular/angular/issues/12631\r\n @Optional() @Inject(MD_RIPPLE_GLOBAL_OPTIONS) globalOptions: any\r\n ) {\r\n this._rippleRenderer = new CoRippleRenderer(elementRef, ngZone, ruler);\r\n this._globalOptions = globalOptions ? globalOptions : {};\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['trigger'] && this.trigger) {\r\n this._rippleRenderer.setTriggerElement(this.trigger);\r\n }\r\n\r\n this._rippleRenderer.rippleDisabled = this._globalOptions.disabled || this.disabled;\r\n this._rippleRenderer.rippleConfig = this.rippleConfig;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n // Set the trigger element to null to cleanup all listeners.\r\n this._rippleRenderer.setTriggerElement(null);\r\n }\r\n\r\n /** Launches a manual ripple at the specified position. */\r\n launch(pageX: number, pageY: number, config: CoRippleConfig = this.rippleConfig): CoRippleRef {\r\n return this._rippleRenderer.fadeInRipple(pageX, pageY, config);\r\n }\r\n\r\n /** Fades out all currently showing ripple elements. */\r\n fadeOutAll(): void {\r\n this._rippleRenderer.fadeOutAll();\r\n }\r\n\r\n /** Ripple configuration from the directive's input values. */\r\n get rippleConfig(): CoRippleConfig {\r\n return {\r\n centered: this.centered,\r\n speedFactor: this.speedFactor * (this._globalOptions.baseSpeedFactor || 1),\r\n radius: this.radius,\r\n color: this.color\r\n };\r\n }\r\n}","// NOTE: Copied and adapted to TwoDSelector from iOneJS on 9-may-2018.\r\nimport { Directive, ElementRef, OnDestroy, OnInit } from '@angular/core';\r\n\r\nimport { CoScrollDispatcherService } from './scroll-dispatcher.service';\r\nimport { fromEvent, Observable } from 'rxjs';\r\n\r\n/**\r\n * Sends an event when the directive's element is scrolled. Registers itself with the\r\n * ScrollDispatcher service to include itself as part of its collection of scrolling events that it\r\n * can be listened to through the service.\r\n */\r\n@Directive({\r\n selector: '[cdk-scrollable]'\r\n})\r\nexport class CoScrollableDirective implements OnInit, OnDestroy {\r\n constructor(private _elementRef: ElementRef, private _scroll: CoScrollDispatcherService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this._scroll.register(this);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._scroll.deregister(this);\r\n }\r\n\r\n /**\r\n * Returns observable that emits when a scroll event is fired on the host element.\r\n */\r\n elementScrolled(): Observable<any> {\r\n return fromEvent(this._elementRef.nativeElement, 'scroll');\r\n }\r\n\r\n getElementRef(): ElementRef {\r\n return this._elementRef;\r\n }\r\n}\r\n","// NOTE: Copied from iOneJS and adapted to CoreComponents on 9-may-2018.\r\n\r\nimport {NgModule} from \"@angular/core\";\r\n\r\nimport {CoViewportRulerService} from \"./viewport-ruler.service\";\r\nimport {CoRippleDirective} from \"./ripple.directive\";\r\nimport {CoScrollableDirective} from \"./scrollable.directive\";\r\nimport {CoScrollDispatcherService} from \"./scroll-dispatcher.service\";\r\n\r\n@NgModule({\r\n declarations: [\r\n CoRippleDirective,\r\n CoScrollableDirective\r\n ],\r\n providers: [\r\n CoScrollDispatcherService,\r\n CoViewportRulerService\r\n ],\r\n exports: [\r\n CoRippleDirective\r\n ]\r\n})\r\nexport class RippleModule {\r\n}","import {isNill} from \"../function/is-nill.function\";\r\n\r\n// @dynamic\r\nexport class EventUtils {\r\n public static get passiveSupported(): boolean {\r\n if (isNill(EventUtils._passiveSupported)) {\r\n EventUtils._CheckPassiveSupported();\r\n }\r\n return EventUtils._passiveSupported;\r\n }\r\n\r\n public static get passiveBubble(): boolean {\r\n if (isNill(EventUtils._passiveBubble)) {\r\n EventUtils._passiveBubble = EventUtils.passiveSupported ? {passive: true, capture: false} : false;\r\n }\r\n return EventUtils._passiveBubble;\r\n }\r\n\r\n public static get passiveCapture(): boolean {\r\n if (isNill(EventUtils._passiveCapture)) {\r\n EventUtils._passiveCapture = EventUtils.passiveSupported ? {passive: true, capture: true} : true;\r\n }\r\n return EventUtils._passiveCapture;\r\n }\r\n\r\n private static _passiveSupported: boolean = undefined;\r\n\r\n private static _passiveCapture: any = undefined;\r\n\r\n private static _passiveBubble: any = undefined;\r\n\r\n public static KillEvent(event: Event): void {\r\n if (event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n event.stopImmediatePropagation();\r\n }\r\n }\r\n\r\n public static StopEvent(event: Event): void {\r\n this.KillEvent(event);\r\n }\r\n\r\n public static GetMouseEventOrTouch(originalEvent: MouseEvent | TouchEvent): MouseEvent | Touch {\r\n return originalEvent instanceof MouseEvent ? originalEvent : originalEvent.touches[0];\r\n }\r\n\r\n private static _CheckPassiveSupported(): void {\r\n let passiveSupported: boolean = false;\r\n try {\r\n const options: any = Object.defineProperty({}, \"passive\", {\r\n get: function (): void {\r\n passiveSupported = true;\r\n }\r\n });\r\n window.addEventListener(\"test\", null, options);\r\n } catch (e) {\r\n }\r\n this._passiveSupported = passiveSupported;\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {SafeHtml} from \"@angular/platform-browser\";\r\nimport {EventUtils} from \"../../core/utils/event-utils\";\r\n\r\n@Component({\r\n selector: \"co-button\",\r\n template: `\r\n <co-icon *ngIf=\"!!iconData\" [iconData]=\"iconData\"></co-icon>\r\n <span *ngIf=\"!!label\" class=\"label\">{{ label }}</span>\r\n <div class=\"rippler\" md-ripple [mdRippleDisabled]=\"disabled\"></div>\r\n `,\r\n host: {\r\n tabindex: \"0\"\r\n },\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ButtonComponent implements OnDestroy {\r\n @Input()\r\n public label: string;\r\n\r\n @Input()\r\n public iconData: SafeHtml | undefined;\r\n\r\n @Input()\r\n public isToggleButton: boolean;\r\n\r\n @Input()\r\n @HostBinding(\"class.toggled\")\r\n public isToggled: boolean;\r\n\r\n @Input()\r\n @HostBinding(\"class.co-hidden\")\r\n public hidden: boolean = false;\r\n\r\n @Input()\r\n @HostBinding(\"class.disabled\")\r\n public disabled: boolean = false;\r\n\r\n @HostBinding(\"class.co-button\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n @Output()\r\n public readonly onClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @Output()\r\n public readonly clickedWhileDisabled: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @Output()\r\n public readonly isToggledChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n @HostBinding(\"class.has-icon\")\r\n public get hasIcon(): boolean {\r\n return !!this.iconData;\r\n }\r\n\r\n @HostListener(\"click\", [\"$event\"])\r\n public onHostClick(event: MouseEvent): void {\r\n if (this.disabled) {\r\n this.clickedWhileDisabled.emit(event);\r\n EventUtils.KillEvent(event);\r\n } else {\r\n this.onClick.emit(event);\r\n if (this.isToggleButton) {\r\n this.isToggled = !this.isToggled;\r\n this.isToggledChange.emit(this.isToggled);\r\n }\r\n }\r\n }\r\n\r\n constructor(private _elementRef: ElementRef) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._elementRef = undefined;\r\n }\r\n\r\n public focus(): void {\r\n this._elementRef.nativeElement.focus();\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\n\r\nimport {IconModule} from \"../icon/icon.module\";\r\nimport {RippleModule} from \"../../directives/ripple/ripple.module\";\r\nimport {ButtonComponent} from \"./button.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IconModule,\r\n RippleModule\r\n ],\r\n declarations: [ButtonComponent],\r\n exports: [ButtonComponent]\r\n})\r\nexport class ButtonModule {\r\n}","import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: \"co-image\",\r\n template: `\r\n <img *ngIf=\"!!source\" [src]=\"source\">\r\n `,\r\n styleUrls: [\r\n \"image.css\"\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ImageComponent {\r\n // Can be an URL or a base64 data string\r\n @Input()\r\n public source: string;\r\n\r\n constructor() {\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {ImageComponent} from \"./image.component\";\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [ImageComponent],\r\n exports: [ImageComponent]\r\n})\r\nexport class ImageModule {\r\n}","import {Directive, ElementRef, Input, NgZone, OnDestroy, OnInit} from \"@angular/core\";\r\n\r\nimport {EventUtils} from \"../../core/utils/event-utils\";\r\n\r\n@Directive({\r\n selector: '[stopClick]'\r\n})\r\nexport class StopClickDirective implements OnInit, OnDestroy {\r\n\r\n @Input()\r\n public stopClick: boolean;\r\n\r\n constructor(private _elementRef: ElementRef, private _ngZone: NgZone) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n this._elementRef.nativeElement.addEventListener('click', this._killEventHandler);\r\n this._elementRef.nativeElement.addEventListener('dblclick', this._killEventHandler);\r\n this._elementRef.nativeElement.addEventListener('mousedown', this._killEventHandler);\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._elementRef.nativeElement.removeEventListener('click', this._killEventHandler);\r\n this._elementRef.nativeElement.removeEventListener('dblclick', this._killEventHandler);\r\n this._elementRef.nativeElement.removeEventListener('mousedown', this._killEventHandler);\r\n }\r\n\r\n private _killEventHandler: EventListener = (event: MouseEvent): void => {\r\n if (this.stopClick) {\r\n EventUtils.KillEvent(event);\r\n }\r\n };\r\n}","import {NgModule} from \"@angular/core\";\r\n\r\nimport {StopClickDirective} from \"./stop-click.directive\";\r\n\r\n@NgModule({\r\n declarations: [\r\n StopClickDirective\r\n ],\r\n exports: [\r\n StopClickDirective\r\n ]\r\n})\r\nexport class StopClickModule {\r\n}","import {ChangeDetectionStrategy, Component, Input} from \"@angular/core\";\r\n\r\nimport {LevelIndicatorLevel} from \"./level-indicator-level.enum\";\r\n\r\n@Component({\r\n selector: \"co-level-indicator\",\r\n template: `\r\n <div [ngClass]=\"modelAsString\">\r\n <div class=\"square-1\"></div>\r\n <div class=\"square-2\"></div>\r\n <div class=\"square-3\"></div>\r\n </div>\r\n `,\r\n styleUrls: [\r\n \"level-indicator.scss\"\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LevelIndicatorComponent {\r\n @Input()\r\n set model(value: LevelIndicatorLevel) {\r\n this._model = value;\r\n this._modelAsString = \"\" + value;\r\n }\r\n\r\n get model(): LevelIndicatorLevel {\r\n return this._model;\r\n }\r\n\r\n get modelAsString(): string {\r\n return this._modelAsString;\r\n }\r\n\r\n private _model: LevelIndicatorLevel;\r\n\r\n // to prevent hard crashes on [ngClass] when this component was given a non-string model @Input\r\n private _modelAsString: string;\r\n\r\n constructor() {\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {LevelIndicatorComponent} from \"./level-indicator.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [LevelIndicatorComponent],\r\n exports: [LevelIndicatorComponent]\r\n})\r\nexport class LevelIndicatorModule {\r\n}","import {Pipe, PipeTransform} from \"@angular/core\";\r\nimport {NumberUtils} from \"../core/utils/number-utils\";\r\nimport {notNill} from \"../core/function/not-nill.function\";\r\n\r\n@Pipe({name: \"priceDisplay\"})\r\nexport class PriceDisplayPipe implements PipeTransform {\r\n transform(value: number | string): string {\r\n let priceStr: string = \"\";\r\n\r\n if (notNill(value) && value !== 0 && value !== \"\") {\r\n value = NumberUtils.ParseFloat(value, 2);\r\n priceStr = \"€ \" + NumberUtils.AddThousandsCommasTo(value);\r\n if (NumberUtils.GetDecimalPlaces(priceStr) === 0) {\r\n priceStr += \",-\";\r\n }\r\n }\r\n\r\n return priceStr;\r\n }\r\n}","import {NgModule} from \"@angular/core\";\r\n\r\nimport {PriceDisplayPipe} from \"./price-display.pipe\";\r\n\r\n@NgModule({\r\n declarations: [\r\n PriceDisplayPipe\r\n ],\r\n exports: [\r\n PriceDisplayPipe\r\n ]\r\n})\r\nexport class PriceDisplayPipeModule {\r\n}","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","/** AUTO GENERATED FILE. DO NOT CHANGE.. **/\n\nexport enum CoreComponentsIcon {\n AddToCartDrop = \"add_to_cart_drop\",\n ArrowDown = \"arrow_down\",\n ArrowLeft = \"arrow_left\",\n ArrowPointDown = \"arrow_point_down\",\n ArrowPointLeft = \"arrow_point_left\",\n ArrowPointRight = \"arrow_point_right\",\n ArrowUp = \"arrow_up\",\n Calendar = \"calendar\",\n CalendarEmpty = \"calendar_empty\",\n CalendarRoundOpen = \"calendar_round_open\",\n Camera = \"camera\",\n Cancel = \"cancel\",\n CancelRoundFilled = \"cancel_round_filled\",\n CancelRoundOpen = \"cancel_round_open\",\n Check = \"check\",\n CheckRound = \"check_round\",\n CheckSimple = \"check_simple\",\n ColumnOptions = \"column_options\",\n CrossSkinny = \"CrossSkinny\",\n DetailView = \"detail_view\",\n DeliveryTruck = \"delivery truck\",\n Documents = \"documents\",\n Download = \"download\",\n EditPencil = \"edit_pencil\",\n Email = \"email\",\n GearDouble = \"gear_double\",\n Groupby = \"groupby\",\n Information = \"information\",\n InformationRoundOpen = \"information_round_open\",\n Lock = \"lock\",\n MagicWand = \"magic_wand\",\n Magnifier = \"magnifier\",\n MagnifierPlus = \"MagnifierPlus\",\n MinusSimple = \"minus_simple\",\n Order = \"order\",\n Pin = \"pin\",\n PinRoundOpen = \"pin_round_open\",\n PlusSimple = \"plus_simple\",\n Positioning = \"positioning\",\n ResizeDown = \"resize_down\",\n ResizeUp = \"resize_up\",\n SaveDisk = \"save_disk\",\n SelectAllRound = \"select_all_round\",\n ShoppingCartNr = \"shopping_cart_nr\",\n SortAsc = \"sort_asc\",\n SortDesc = \"sort_desc\",\n Stock=\"stock\",\n ThickLines = \"thick_lines\",\n ThinLines = \"thin_lines\",\n ThreeD = \"three_d\",\n TrashBin = \"TrashBin\",\n TriangleUp = \"triangle_up\",\n Wrench = \"wrench\",\n}\n","import { Input } from '@angular/core';\r\nimport { StringUtils } from '../utils/string-utils';\r\n\r\n/**\r\n * Property decorator which enables template syntax like \"someBoolInput\" instead of \"[someBoolInput]='true'\". Makes use of the fact that\r\n * Angular assigns an empty string to the input property in the naked \"someBoolInput\" template case.\r\n */\r\nexport function InputBoolean(bindingPropertyName?: string): PropertyDecorator {\r\n const inputDecorator: PropertyDecorator = Input(bindingPropertyName);\r\n return (target: Object, key: string) => {\r\n inputDecorator(target, key);\r\n const descriptor: PropertyDescriptor = Object.getOwnPropertyDescriptor(target, key) || {};\r\n Object.defineProperty(target, key, {\r\n get: descriptor.get || function (): boolean {\r\n return this[\"__\" + key];\r\n },\r\n set: function(newValue: any): void {\r\n const val: boolean = InputBooleanDecorator.InputValueToBoolean(newValue);\r\n descriptor.set ? descriptor.set(val) : this[\"__\" + key] = val;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n };\r\n}\r\n\r\n// Utility function holder of the InputBooleanDecorator decorator.\r\nexport class InputBooleanDecorator {\r\n public static InputValueToBoolean(value: any): boolean {\r\n if (StringUtils.IsString(value) && !StringUtils.IsStringWithLength(value)) {\r\n return true;\r\n }\r\n return !!value;\r\n }\r\n}\r\n","import { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\r\nimport { IconCacheService } from '../icon/icon-cache.service';\r\nimport { CoreComponentsIcon } from '../../core/enum/core-components-icon.enum';\r\nimport { SafeHtml } from '@angular/platform-browser';\r\nimport { InputBoolean } from '../../core/decorator/input-boolean.decorator';\r\n\r\n@Component({\r\n selector: 'co-tile',\r\n template: `\r\n <div class=\"tile-wrapper\">\r\n <div class=\"tile-top\">\r\n <ng-content select=\"[tile-top-content]\"></ng-content>\r\n </div>\r\n <div class=\"image\" (click)=\"onImageClick.emit()\">\r\n <co-image *ngIf=\"image\" [source]=\"image\"></co-image>\r\n <div class=\"no-image-wrapper\" *ngIf=\"!image && !noImagePlaceholder\">\r\n <co-icon class=\"no-image\" [iconData]=\"imagePlaceHolder\"></co-icon>\r\n <span [textContent]=\"'Geen afbeelding'\"></span>\r\n </div>\r\n <ng-content select=\"[tile-over-image]\"></ng-content>\r\n </div>\r\n <div class=\"tile-bottom\">\r\n <ng-content select=\"[tile-bottom-content]\"></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"tile-extra-bottom\">\r\n <div class=\"main\">\r\n <ng-content select=\"[tile-extra-bottom-content]\"></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"tile-extended-shadow-wrapper\" *ngIf=\"mouseOverExtended\">\r\n <div class=\"shodow-masque\"></div>\r\n <div class=\"extended\">\r\n <ng-content select=\"[tile-extended-content]\"></ng-content>\r\n </div>\r\n </div>\r\n `,\r\n styleUrls: [\r\n \"./tile.component.scss\"\r\n ]\r\n})\r\nexport class TileComponent {\r\n\r\n public readonly icon: typeof CoreComponentsIcon = CoreComponentsIcon;\r\n\r\n @Input()\r\n public image: string;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public mouseOverExtended: boolean = false;\r\n\r\n @HostBinding('class.small')\r\n @Input()\r\n @InputBoolean()\r\n public small: boolean = false;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public noImagePlaceholder: boolean = false;\r\n\r\n @Output()\r\n public onImageClick: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n public imagePlaceHolder: null | SafeHtml;\r\n\r\n constructor (private _iconCache: IconCacheService) {\r\n this.imagePlaceHolder = this._iconCache.getIcon(this.icon.Camera);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TileComponent } from './tile.component';\r\nimport { IconModule } from '../icon/icon.module';\r\nimport { IconCacheService } from '../icon/icon-cache.service';\r\nimport { ImageModule } from '../image/image.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IconModule,\r\n ImageModule\r\n ],\r\n declarations: [TileComponent],\r\n providers: [\r\n IconCacheService\r\n ],\r\n exports: [TileComponent]\r\n})\r\nexport class TileModule {\r\n}\r\n","import {ChangeDetectionStrategy, Component, EventEmitter, HostBinding, HostListener, Input, Output} from \"@angular/core\";\r\n\r\nimport {IconCacheService} from \"../icon/icon-cache.service\";\r\nimport {CoreComponentsIcon} from \"../../core/enum/core-components-icon.enum\";\r\nimport {LevelIndicatorLevel} from \"../level-indicator/level-indicator-level.enum\";\r\n\r\n@Component({\r\n selector: \"co-article-tile\",\r\n template: `\r\n <co-tile [image]=\"imageData\" [small]=\"isSmallModus\">\r\n <ng-container tile-top-content>\r\n <ng-content select=\"[tile-top-content]\"></ng-content>\r\n </ng-container>\r\n <ng-container tile-over-image>\r\n <ng-content select=\"[over-image]\"></ng-content>\r\n </ng-container>\r\n <ng-container tile-bottom-content>\r\n <div class=\"bottom-content-wrapper\">\r\n <div class=\"left-buttons\">\r\n <co-button class=\"card-button square white\" *ngIf=\"hasConfigureButton\" [iconData]=\"icons.getIcon(Icons.MagicWand)\"\r\n [stopClick]=\"true\" [class.mini]=\"isSmallModus\"\r\n (click)=\"configureButtonClick.emit($event)\"></co-button>\r\n <co-button class=\"card-button square white\" *ngIf=\"hasThreeDButton\" [iconData]=\"icons.getIcon(Icons.ThreeD)\"\r\n [stopClick]=\"true\" [class.mini]=\"isSmallModus\"\r\n (click)=\"threeDButtonClick.emit($event)\"></co-button>\r\n </div>\r\n <co-level-indicator *ngIf=\"!!level\" [model]=\"level\" [class.small]=\"isSmallModus\"></co-level-indicator>\r\n <co-button class=\"card-button\" *ngIf=\"hasCartButton\" [iconData]=\"icons.getIcon(Icons.AddToCartDrop)\"\r\n [stopClick]=\"true\" [class.mini]=\"isSmallModus\"\r\n (click)=\"cartButtonClick.emit($event)\"></co-button>\r\n </div>\r\n </ng-container>\r\n <ng-container tile-extra-bottom-content>\r\n <span *ngIf=\"!!description\" class=\"description\" [innerText]=\"description\"></span>\r\n <span *ngIf=\"!!price\" class=\"price\" [innerText]=\"price | priceDisplay\"></span>\r\n <ng-content select=\"[card-extra-content]\"></ng-content>\r\n </ng-container>\r\n </co-tile>\r\n `,\r\n styleUrls: [\r\n \"article-tile.component.scss\"\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ArticleTileComponent {\r\n @Input()\r\n public imageData: string;\r\n\r\n @Input()\r\n public description: string;\r\n\r\n @Input()\r\n public price: number | string;\r\n\r\n @Input()\r\n public level: LevelIndicatorLevel;\r\n\r\n @Input()\r\n public isSelected: boolean = false;\r\n\r\n @Input() @HostBinding(\"class.small-modus\")\r\n public isSmallModus: boolean = false;\r\n\r\n @Input()\r\n public hasConfigureButton: boolean = false;\r\n\r\n @Input()\r\n public hasThreeDButton: boolean = false;\r\n\r\n @Input()\r\n public hasCartButton: boolean = false;\r\n\r\n // does not emit when you click one of the predefined buttons, but emits on a click on any of our other content\r\n @Output()\r\n public readonly contentClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @Output()\r\n public readonly configureButtonClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @Output()\r\n public readonly threeDButtonClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @Output()\r\n public readonly cartButtonClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n public readonly Icons: any = CoreComponentsIcon;\r\n\r\n constructor(public icons: IconCacheService) {\r\n }\r\n\r\n @HostListener(\"click\", [\"$event\"])\r\n public onHostClick(event: MouseEvent): void {\r\n this.contentClick.emit(event);\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {HttpClientModule} from \"@angular/common/http\";\r\n\r\nimport {IconModule} from \"../icon/icon.module\";\r\nimport {ButtonModule} from \"../button/button.module\";\r\nimport {ImageModule} from \"../image/image.module\";\r\nimport {StopClickModule} from \"../../directives/stopclick/stop-click.module\";\r\nimport {LevelIndicatorModule} from \"../level-indicator/level-indicator.module\";\r\nimport {PriceDisplayPipeModule} from \"../../pipes/price-display-pipe.module\";\r\nimport { TileModule } from '../tile/tile.module';\r\nimport { ArticleTileComponent } from './article-tile.component';\r\nimport { IconCacheService } from '../icon/icon-cache.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n IconModule,\r\n ButtonModule,\r\n ImageModule,\r\n StopClickModule,\r\n LevelIndicatorModule,\r\n PriceDisplayPipeModule,\r\n TileModule\r\n ],\r\n declarations: [ArticleTileComponent],\r\n providers: [\r\n IconCacheService\r\n ],\r\n exports: [ArticleTileComponent]\r\n})\r\nexport class ArticleTileModule {\r\n}\r\n","import {Component, EventEmitter, HostBinding, Input, OnInit, Output, ViewEncapsulation} from \"@angular/core\";\nimport {ItemModel} from \"@syncfusion/ej2-angular-splitbuttons\";\nimport {SplitButtonIconPosition} from \"@syncfusion/ej2-splitbuttons/src/common/common\";\n\n@Component({\n selector: \"co-button-drop-down\",\n template: `\n <button ejs-dropdownbutton\n [content]=\"content\"\n [items]=\"items\"\n [iconCss]=\"iconCss\"\n [iconPosition]=\"iconPosition\"\n [cssClass]=\"cssClass\"\n [ngClass]=\"{\n '.e-dropdown-popup': isTransparent,\n '.e-btn.e-active, .e-btn:hover': isTransparent\n }\"\n (select)=\"select.emit($event)\"></button>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class ButtonDropDownComponent implements OnInit {\n\n @Input()\n public content: string;\n\n @Input()\n public items: ItemModel[];\n\n @Input()\n public iconCss: string;\n\n @Input()\n public iconPosition: SplitButtonIconPosition = \"Left\";\n\n @Input()\n public cssClass: string;\n\n @Input()\n public transparent: boolean = false;\n\n @Output()\n public readonly select: EventEmitter<any> = new EventEmitter<any>();\n\n @HostBinding(\"class.co-button-drop-down\")\n public showClass() {\n return true;\n }\n\n public get isTransparent(): boolean {\n return this.transparent;\n }\n\n constructor() {\n }\n\n ngOnInit(): void {\n }\n}\n","import {NgModule} from \"@angular/core\";\nimport {CommonModule} from \"@angular/common\";\nimport {ButtonDropDownComponent} from \"./button-drop-down.component\";\nimport {DropDownButtonModule} from \"@syncfusion/ej2-angular-splitbuttons\";\n\n@NgModule({\n declarations: [\n ButtonDropDownComponent],\n imports: [\n CommonModule,\n DropDownButtonModule\n ],\n exports: [\n ButtonDropDownComponent\n ]\n})\nexport class ButtonDropDownModule { }\n","import {Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation} from \"@angular/core\";\nimport {CoreComponentsIcon} from \"../../core/enum/core-components-icon.enum\";\nimport {animate, state, style, transition, trigger} from \"@angular/animations\";\n\n@Component({\n selector: 'co-dialog',\n template: `\n <div class=\"co-dialog-overlay\" (click)=\"handleOverlayClick($event)\" [@showHideOverlay]=\"animation\"></div>\n <div class=\"co-dialog-wrapper\" [@showHideDialog]=\"animation\">\n <div class=\"dialog-header\">\n <ng-content select=\"[header]\"></ng-content>\n <div class=\"dialog-close-button\" *ngIf=\"showCloseIcon\" (click)=\"closeClick.emit($event)\">\n <co-icon [icon]=\"icons.Cancel\"></co-icon>\n </div>\n </div>\n <div class=\"dialog-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"dialog-footer\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n </div>\n `,\n animations: [\n trigger('showHideOverlay', [\n state('*', style({opacity: 1})),\n state('void', style({opacity: 0})),\n transition('void => *', animate(200)),\n transition('* => void', animate('200ms 200ms'))\n ]),\n trigger('showHideDialog', [\n state('*', style({opacity: 1})),\n state('void', style({opacity: 0})),\n transition('void => *', animate('200ms 200ms')),\n transition('* => void', animate(200))\n ])\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class CoDialogComponent {\n public readonly icons: typeof CoreComponentsIcon = CoreComponentsIcon;\n\n @Input()\n public showCloseIcon: boolean = true;\n\n @Input()\n public modal: boolean = false;\n\n @Input()\n public animation: boolean = true;\n\n @Output()\n public readonly closeClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n @Output()\n public readonly overlayClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n @HostBinding(\"class.co-dialog\")\n public showClass(): boolean {\n return true;\n }\n\n public handleOverlayClick(event: MouseEvent): void {\n if (!this.modal) {\n this.overlayClick.next(event);\n }\n }\n}\n","import {NgModule} from \"@angular/core\";\r\nimport {CoDialogComponent} from \"./co-dialog.component\";\r\nimport {IconModule} from \"../icon/icon.module\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {BrowserAnimationsModule} from \"@angular/platform-browser/animations\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n BrowserAnimationsModule,\r\n IconModule\r\n ],\r\n declarations: [CoDialogComponent],\r\n exports: [CoDialogComponent]\r\n})\r\nexport class CoDialogModule {\r\n}\r\n","import {Component, EventEmitter, Input, Output, ViewChild} from \"@angular/core\";\nimport {DialogComponent} from \"@syncfusion/ej2-angular-popups\";\nimport {EmitType} from \"@syncfusion/ej2-base\";\n\n@Component({\n selector: 'co-dialog-prompt',\n template: `\n <div #coDialogPromptRootContainer class='co-dialog-prompt-root-container'></div>\n <ejs-dialog #coDialogPrompt\n [buttons]=\"buttons\"\n [header]=\"header\"\n [content]=\"content\"\n [showCloseIcon]=\"showCloseIcon\"\n [target]=\"target\"\n [visible]=\"visible\"\n [width]=\"width\"\n (close)=\"onCloseClick()\"\n >\n </ejs-dialog>\n `,\n styleUrls: ['./co-dialog-prompt.component.scss']\n})\nexport class CoDialogPromptComponent {\n @ViewChild('coDialogPrompt')\n public coDialogPrompt: DialogComponent;\n\n @Input()\n public header: string = \"header\";\n\n @Input()\n public content: string = \"content\";\n\n @Input()\n public visible: boolean = false;\n\n @Input()\n public width: string = \"50%\";\n\n @Input()\n public showCloseIcon: boolean = true;\n\n @Output()\n public readonly closeClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n public target: string = '.co-dialog-prompt-root-container';\n public buttons: Object[] = [\n { click: this.buttonClick.bind(this), buttonModel: { content: 'Ja', isPrimary: 'true' } },\n { click: this.buttonClick.bind(this), buttonModel: { content: 'Nee' } }\n ];\n\n constructor() {}\n\n public open(): void {\n this.coDialogPrompt.show();\n }\n\n public close(): void {\n this.coDialogPrompt.hide();\n }\n\n public buttonClick(): void {\n this.close();\n }\n\n public onCloseClick: EmitType<object> = () => {\n this.close();\n this.closeClick.emit();\n }\n\n}\n","import {NgModule} from \"@angular/core\";\r\nimport {CoDialogPromptComponent} from \"./co-dialog-prompt.component\";\r\nimport {DialogModule} from \"@syncfusion/ej2-angular-popups\";\r\n\r\n@NgModule({\r\n imports: [\r\n DialogModule\r\n ],\r\n declarations: [CoDialogPromptComponent],\r\n providers: [\r\n ],\r\n exports: [CoDialogPromptComponent]\r\n})\r\nexport class CoDialogPromptModule {\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter, HostBinding,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {\r\n CardClickEventArgs,\r\n CardSettingsModel, DialogEventArgs, DragEventArgs,\r\n KanbanComponent,\r\n SwimlaneSettingsModel\r\n} from \"@syncfusion/ej2-angular-kanban\";\r\nimport {InputBoolean} from \"../../core/decorator/input-boolean.decorator\";\r\n\r\n@Component({\r\n selector: 'co-kanban',\r\n template: `\r\n <ejs-kanban\r\n #kanban\r\n id=\"kanban\"\r\n [allowDragAndDrop]=\"allowDragAndDrop\"\r\n [allowKeyboard]=\"allowKeyboard\"\r\n [cardSettings]=\"cardSettings\"\r\n [enablePersistence]=\"enablePersistence\"\r\n [enableTooltip]=\"enableTooltip\"\r\n [keyField]=\"keyField\"\r\n [showEmptyColumn]=\"showEmptyColumn\"\r\n [swimlaneSettings]=\"swimlaneSettings\"\r\n [dataSource]=\"data\"\r\n (cardClick)=\"handleCardClick($event)\"\r\n (cardDoubleClick)=\"handleCardDoubleClick($event)\"\r\n (dialogOpen)=\"dialogOpen($event)\"\r\n (dragStart)=\"handleDragStart($event)\"\r\n (dragStop)=\"handleDragStop($event)\"\r\n >\r\n </ejs-kanban>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CoKanbanComponent implements OnInit, AfterViewInit {\r\n @ViewChild('kanban', {static: false})\r\n public kanban: KanbanComponent;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public allowDragAndDrop: boolean = true;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public allowKeyboard: boolean = true;\r\n\r\n @Input()\r\n public cardSettings: CardSettingsModel;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public enablePersistence: boolean = false;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public enableTooltip: boolean = false;\r\n\r\n @Input()\r\n public keyField: string = \"\";\r\n\r\n @Input()\r\n @InputBoolean()\r\n public showEmptyColumn: boolean = false;\r\n\r\n @Input()\r\n public swimlaneSettings: SwimlaneSettingsModel;\r\n\r\n @Input()\r\n public columns: {}[];\r\n\r\n @Input()\r\n public data: any[];\r\n\r\n @Output()\r\n public cardClickEvent: EventEmitter<CardClickEventArgs> = new EventEmitter<CardClickEventArgs>();\r\n\r\n @Output()\r\n public cardDoubleClickEvent: EventEmitter<CardClickEventArgs> = new EventEmitter<CardClickEventArgs>();\r\n\r\n @Output()\r\n public dragStartEvent: EventEmitter<DragEventArgs> = new EventEmitter<DragEventArgs>();\r\n\r\n @Output()\r\n public dragStopEvent: EventEmitter<DragEventArgs> = new EventEmitter<DragEventArgs>();\r\n\r\n @HostBinding(\"class.co-kanban\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.columns) {\r\n this.kanban.columns = this.columns;\r\n }\r\n }\r\n\r\n public dialogOpen(args: DialogEventArgs): void {\r\n args.cancel = true;\r\n }\r\n\r\n public handleCardClick(args: CardClickEventArgs): void {\r\n this.cardClickEvent.next(args);\r\n }\r\n\r\n public handleCardDoubleClick(args: CardClickEventArgs): void {\r\n this.cardDoubleClickEvent.next(args);\r\n }\r\n\r\n public handleDragStart(args: DragEventArgs): void {\r\n this.dragStartEvent.next(args);\r\n }\r\n\r\n public handleDragStop(args: DragEventArgs): void {\r\n this.dragStopEvent.next(args);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { KanbanModule } from '@syncfusion/ej2-angular-kanban';\r\nimport {CoKanbanComponent} from \"./co-kanban.component\";\r\n\r\n@NgModule({\r\n declarations: [\r\n CoKanbanComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n KanbanModule\r\n ],\r\n exports: [\r\n CoKanbanComponent\r\n ]\r\n})\r\nexport class CoKanbanModule { }\r\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n ActionEventArgs,\n AgendaService,\n DayService,\n EventSettingsModel, MonthAgendaService,\n MonthService, ScheduleComponent, TimelineMonthService, TimelineViewsService,\n WeekService,\n WorkWeekService\n} from \"@syncfusion/ej2-angular-schedule\";\nimport {ScheduleView} from \"../../core/enum/schedule-view.enum\";\nimport {COMPONENT_INTERFACE_NAME} from \"../base/component-interface-name\";\n\n@Component({\n selector: 'co-schedule',\n template: `\n <ejs-schedule\n #ejsSchedule\n [selectedDate]=\"selectedDate\"\n [currentView]=\"currentView\"\n [eventSettings]=\"eventSettings\"\n [enablePersistence]=\"enablePersistence\"\n (actionBegin)=\"onActionBegin($event)\"\n (actionComplete)=\"onActionComplete($event)\"\n (actionFailure)=\"onActionFailure($event)\"\n ><ng-content></ng-content>\n </ejs-schedule>\n `,\n styleUrls: [\n './co-schedule.component.scss'\n ],\n providers: [\n DayService,\n WeekService,\n WorkWeekService,\n MonthService,\n AgendaService,\n MonthAgendaService,\n TimelineViewsService,\n TimelineMonthService\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CoScheduleComponent implements OnInit {\n @ViewChild('ejsSchedule', { static: true })\n public scheduleObj: ScheduleComponent;\n\n @Input()\n public selectedDate: Date;\n\n @Input()\n public currentView: ScheduleView.Month;\n\n @Input()\n public eventSettings: EventSettingsModel;\n\n @Input()\n public enablePersistence: boolean = false;\n\n @Output()\n public readonly actionBegin: EventEmitter<ActionEventArgs> = new EventEmitter<ActionEventArgs>();\n\n @Output()\n public readonly actionComplete: EventEmitter<ActionEventArgs> = new EventEmitter<ActionEventArgs>();\n\n @Output()\n public readonly actionFailure: EventEmitter<ActionEventArgs> = new EventEmitter<ActionEventArgs>();\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n public onActionBegin(args: ActionEventArgs): void {\n this.actionBegin.emit(args);\n }\n\n public onActionComplete(args: ActionEventArgs): void {\n this.actionComplete.emit(args);\n }\n\n public onActionFailure(args: ActionEventArgs): void {\n this.actionFailure.emit(args);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {CoScheduleComponent} from \"./co-schedule.component\";\nimport {ScheduleModule} from \"@syncfusion/ej2-angular-schedule\";\n\n\n@NgModule({\n declarations: [\n CoScheduleComponent\n ],\n imports: [\n CommonModule,\n ScheduleModule\n ],\n exports: [\n CoScheduleComponent\n ]\n})\nexport class CoScheduleModule { }\n","import {Component, Input, ViewChild} from '@angular/core';\nimport {SidebarComponent} from \"@syncfusion/ej2-angular-navigations\";\n\n@Component({\n selector: 'co-sidebar',\n template: `\n <ejs-sidebar #sidebarInstance \n closeOnDocumentClick=\"true\"\n type=\"Over\"\n [position]=\"position\"\n [isOpen]=\"isOpen\"\n >\n <ng-content></ng-content>\n </ejs-sidebar>\n `,\n styleUrls: ['./co-sidebar.component.scss']\n})\nexport class CoSidebarComponent {\n @ViewChild('sidebarInstance')\n public sidebarInstance: SidebarComponent;\n\n @Input()\n public position: string = \"Right\";\n\n @Input()\n public isOpen: boolean = false;\n\n constructor() { }\n\n public toggle(): void {\n this.sidebarInstance.toggle();\n }\n\n public hide(): void {\n this.sidebarInstance.hide();\n }\n\n public show(): void {\n this.sidebarInstance.show();\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport {SidebarModule} from \"@syncfusion/ej2-angular-navigations\";\nimport {CoSidebarComponent} from \"./co-sidebar.component\";\n\n@NgModule({\n declarations: [CoSidebarComponent],\n imports: [\n SidebarModule\n ],\n exports: [CoSidebarComponent]\n\n})\nexport class CoSidebarModule { }\n","import {\n ChangeDetectionStrategy,\n Component, EventEmitter,\n forwardRef,\n HostBinding, HostListener,\n Input,\n OnInit, Output,\n ViewEncapsulation\n} from '@angular/core';\nimport {COMPONENT_INTERFACE_NAME} from \"../base/component-interface-name\";\n\n@Component({\n selector: 'co-toggle',\n template: `\n <ejs-switch \n [checked]=\"checked\"\n [disabled]=\"readonly\"\n ></ejs-switch>\n `,\n styleUrls: ['./co-toggle.component.scss']\n})\nexport class CoToggleComponent implements OnInit {\n @Input()\n public checked: boolean;\n\n @Input()\n public readonly: boolean = false;\n\n @Output()\n public readonly activeChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n constructor() {\n }\n\n ngOnInit(): void {\n }\n\n @HostListener(\"click\")\n public onHostClick(): void {\n if (!this.readonly) {\n this.checked = !this.checked;\n this.activeChange.emit(this.checked);\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {CoToggleComponent} from \"./co-toggle.component\";\nimport {SwitchModule} from \"@syncfusion/ej2-angular-buttons\";\n\n@NgModule({\n declarations: [\n CoToggleComponent\n ],\n imports: [\n CommonModule,\n SwitchModule\n ],\n exports: [\n CoToggleComponent\n ]\n})\nexport class CoToggleModule { }\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {SafeHtml} from \"@angular/platform-browser\";\r\n\r\n@Component({\r\n selector: \"co-collapsible\",\r\n template: `\r\n <div class=\"collapsible-header\" [class.end]=\"expandButtonLast\" (click)=\"changeExpanded()\">\r\n <div class=\"expand-icon-wrapper\" [class.expanded]=\"expanded\" *ngIf=\"!expandButtonLast\">\r\n <co-icon class=\"expand-icon\" [iconData]=\"iconData\"></co-icon>\r\n </div>\r\n <div class=\"collapsible-title\" [textContent]=\"headerTitle\"></div>\r\n <div class=\"expand-icon-wrapper\" [class.expanded]=\"expanded\" *ngIf=\"expandButtonLast\">\r\n <co-icon class=\"expand-icon\" [iconData]=\"iconData\"></co-icon>\r\n </div>\r\n </div>\r\n <div class=\"collapsible-content\" *ngIf=\"expanded\">\r\n <ng-content></ng-content>\r\n </div>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CollapsibleComponent implements OnDestroy {\r\n\r\n @Input()\r\n public headerTitle: string;\r\n\r\n @Input()\r\n public iconData: SafeHtml | undefined;\r\n\r\n @Input()\r\n public expandButtonLast: boolean = false;\r\n\r\n @Input()\r\n public expanded: boolean = false;\r\n\r\n @Output()\r\n public expandedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n @HostBinding(\"class.co-collapsible\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n @HostListener(\"click\", [\"$event\"])\r\n public onHostClick(event: MouseEvent): void {\r\n\r\n }\r\n\r\n constructor(private _elementRef: ElementRef) {}\r\n\r\n public ngOnDestroy(): void {\r\n this._elementRef = undefined;\r\n }\r\n\r\n public focus(): void {\r\n this._elementRef.nativeElement.focus();\r\n }\r\n\r\n public changeExpanded(): void {\r\n this.expanded = !this.expanded;\r\n this.expandedChange.next(this.expanded);\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\n\r\nimport {IconModule} from \"../icon/icon.module\";\r\nimport {CollapsibleComponent} from \"./collapsible.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IconModule\r\n ],\r\n declarations: [CollapsibleComponent],\r\n exports: [CollapsibleComponent]\r\n})\r\nexport class CollapsibleModule {\r\n}\r\n","import {Injectable, OnDestroy} from \"@angular/core\";\r\nimport {Subject} from \"rxjs\";\r\nimport {Subscription} from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class FormInputUserModelChangeListenerService implements OnDestroy {\r\n // Signal from input-field to change-listener user. Emits (or: should be emitted) each time the end-user has changed the state of a form input's model. Emits model as value.\r\n public readonly userModelChange: Subject<any> = new Subject<any>();\r\n\r\n // Signal from user of this change-listener to all its child input-fields. Resets their user touched marks.\r\n public readonly clearAllMarkedAsUserTouched: Subject<void> = new Subject<void>();\r\n\r\n public hasUserModelChanges: boolean = false;\r\n\r\n private _subs: Subscription[] = [];\r\n\r\n constructor() {\r\n this._subs.push(\r\n this.userModelChange.subscribe(() => {\r\n this.hasUserModelChanges = true;\r\n }),\r\n this.clearAllMarkedAsUserTouched.subscribe(() => {\r\n this.hasUserModelChanges = false;\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subs.forEach(sub => sub.unsubscribe());\r\n }\r\n}\r\n","import {Injectable, NgZone} from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class NgZoneWrapperService {\r\n constructor(private _ngZone: NgZone) {\r\n }\r\n\r\n public setTimeoutOutsideAngular(fn: Function, millis: number = 0): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n setTimeout(() => {\r\n fn();\r\n }, millis);\r\n });\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { FormInputUserModelChangeListenerService } from '../../core/service/form-input-user-change-listener.service';\r\nimport { NgZoneWrapperService } from '../../core/service/ng-zone-wrapper.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule\r\n ],\r\n declarations: [\r\n\r\n ],\r\n exports: [],\r\n providers: [\r\n FormInputUserModelChangeListenerService,\r\n NgZoneWrapperService\r\n ]\r\n})\r\nexport class BaseModule {\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { ConfigurationAdapterComponent } from './configuration-adapter-component.interface';\r\n\r\n// Enables \"DI for interfaces\" (see ConfigNameDirective injected .hostComponent).\r\nexport const COMPONENT_INTERFACE_NAME: InjectionToken<ConfigurationAdapterComponent> =\r\n new InjectionToken<ConfigurationAdapterComponent>(\"ConfigurationAdapterComponent\");\r\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\r\n\r\nexport function requiredValidator(control: AbstractControl): ValidationErrors | null {\r\n\r\n const isValid: boolean = !(control.value === null || control.value === undefined || control.value === \"\");\r\n\r\n return isValid ? null : {'required': 'MESSAGE_FIELD_REQUIRED'};\r\n\r\n}\r\n","import { FormControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\nimport { NumberUtils } from '../utils/number-utils';\r\n\r\nexport function precisionScaleValidator(precision: number, scale: number): ValidatorFn {\r\n return function (control: FormControl): ValidationErrors | null {\r\n let isValid: boolean = true;\r\n\r\n if (control) {\r\n isValid = NumberUtils.CheckPrecisionAndScale(control.value, precision, scale).isOk;\r\n }\r\n\r\n return isValid ? null : {'precision-scale': \"MESSAGE_FIELD_PRECISION_OVERRIDDEN||\" + precision};\r\n };\r\n}\r\n","import { FormControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\n\r\nexport function maxStringLengthValidator(length: number): ValidatorFn {\r\n return function (control: FormControl): ValidationErrors | null {\r\n let isValid: boolean = true;\r\n if (control.value && typeof control.value === 'string') {\r\n isValid = control.value.length <= length;\r\n }\r\n return isValid ? null : {\"max-length\": {message: \"MESSAGE_FIELD_TOO_LONG\", placeholder: \"\" + length}};\r\n };\r\n}\r\n","import {Component, HostBinding, Input, ViewEncapsulation} from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"co-validation-error\",\r\n template: `\r\n <div class=\"validation-error-content\">\r\n <div class=\"validation-error-message\" [textContent]=\"error\"></div>\r\n </div>\r\n `,\r\n animations: [\r\n\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class ValidationErrorComponent {\r\n\r\n @Input()\r\n public error: string;\r\n\r\n @HostBinding('class.co-validation-error')\r\n public showClass(): boolean {\r\n return true;\r\n }\r\n\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef, ComponentFactory, ComponentFactoryResolver, ComponentRef,\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener,\r\n Injectable,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n Output,\r\n ViewChild, ViewContainerRef\r\n} from \"@angular/core\";\r\nimport {AsyncValidatorFn, FormControl, NgModel, ValidatorFn} from \"@angular/forms\";\r\nimport {ConfigurationAdapterComponent} from \"./configuration-adapter-component.interface\";\r\nimport {isNill} from \"../../core/function/is-nill.function\";\r\nimport {notNill} from \"../../core/function/not-nill.function\";\r\nimport {InputBoolean, InputBooleanDecorator} from \"../../core/decorator/input-boolean.decorator\";\r\nimport {requiredValidator} from \"../../core/validator/required.validator\";\r\nimport {precisionScaleValidator} from \"../../core/validator/precision-scale.validator\";\r\nimport {maxStringLengthValidator} from \"../../core/validator/max-string-length.validator\";\r\nimport {StringUtils} from \"../../core/utils/string-utils\";\r\nimport {Subscription} from \"rxjs\";\r\nimport {FormInputUserModelChangeListenerService} from \"../../core/service/form-input-user-change-listener.service\";\r\nimport {NumberUtils} from \"../../core/utils/number-utils\";\r\nimport {NgZoneWrapperService} from \"../../core/service/ng-zone-wrapper.service\";\r\nimport {CoreComponentsIcon} from \"../../core/enum/core-components-icon.enum\";\r\nimport {FormComponent} from \"../form/form.component\";\r\nimport {ValidationErrorComponent} from \"../validation-error/validation-error.component\";\r\nimport {ValidationErrorModule} from \"../validation-error/validation-error.module\";\r\n\r\n/**\r\n * Abstract base class for all concrete form input components that contain a native <input> element. Provides common data and functionality, such as\r\n * adding self as a control to the parent form.\r\n */\r\n@Directive()\r\n@Injectable()\r\nexport abstract class BaseInputComponent<T> implements OnInit, OnDestroy, AfterViewInit, ConfigurationAdapterComponent {\r\n @ViewChild(\"validationError\", {read: ViewContainerRef})\r\n public validationErrorContainer: ViewContainerRef;\r\n\r\n public get ngModel(): NgModel {\r\n if (this._myFormInputInstance) {\r\n return this._myFormInputInstance.ngModel;\r\n } else {\r\n return this._ngModel;\r\n }\r\n }\r\n\r\n public static BaseFormInputComponentIndex: number = 0;\r\n public static HiddenClass: string = \"hidden\";\r\n\r\n @Input()\r\n public set model(value: T) {\r\n this._model = value;\r\n this._clearErrorComponent();\r\n }\r\n\r\n public get model(): T {\r\n return this._model;\r\n }\r\n\r\n @Input()\r\n public label: string;\r\n\r\n @Input() @InputBoolean()\r\n public noValidation: boolean = false;\r\n\r\n @Input() @InputBoolean()\r\n public initFocus: boolean;\r\n\r\n @Input() @InputBoolean()\r\n public noClickFocus: boolean;\r\n\r\n // used to link field to business object for deep-validation\r\n @Input()\r\n public businessObjectId: any;\r\n\r\n // @Input()\r\n // public errorMessage: ValidationMessage;\r\n\r\n public name: string;\r\n\r\n @Input()\r\n public set disabled(disabled: boolean) {\r\n if (disabled === this._disabled) {\r\n return;\r\n }\r\n this._disabled = InputBooleanDecorator.InputValueToBoolean(disabled);\r\n this._updateControlValidatorsAndOwnFlags();\r\n }\r\n\r\n public get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n\r\n @Input()\r\n public set maxLength(maxLength: number) {\r\n this.setMaxLength(maxLength);\r\n }\r\n\r\n public get maxLength(): number {\r\n return notNill(this.forcedMaxLength) ? this.forcedMaxLength : this._maxLength;\r\n }\r\n\r\n @Input()\r\n public forcedMaxLength: number;\r\n\r\n @Input()\r\n public set readonly(readonly: boolean) {\r\n if (this._forceReadonly !== undefined || readonly === this._readonly) {\r\n return;\r\n }\r\n this._readonly = InputBooleanDecorator.InputValueToBoolean(readonly);\r\n this._updateControlValidatorsAndOwnFlags();\r\n if (this._hasOnPushCdStrategy) {\r\n this.detectChanges();\r\n }\r\n }\r\n\r\n public get readonly(): boolean {\r\n return this.forceReadonly || this._readonly;\r\n }\r\n\r\n @Input()\r\n public set forceReadonly(forceReadonly: boolean) {\r\n if (forceReadonly === this._forceReadonly) {\r\n return;\r\n }\r\n this._forceReadonly = InputBooleanDecorator.InputValueToBoolean(forceReadonly);\r\n this._updateControlValidatorsAndOwnFlags();\r\n }\r\n\r\n public get forceReadonly(): boolean {\r\n return this._forceReadonly;\r\n }\r\n\r\n @Input()\r\n public set required(required: boolean) {\r\n if (required === this._required) {\r\n return;\r\n }\r\n this._required = InputBooleanDecorator.InputValueToBoolean(required);\r\n this._updateControlValidatorsAndOwnFlags();\r\n }\r\n\r\n public get required(): boolean {\r\n return this.forceRequired || this._required;\r\n }\r\n\r\n @Input() @InputBoolean()\r\n public forceRequired: boolean = false; // a force outside of [cfgName]'s influence\r\n\r\n @Input()\r\n public set validators(validators: ValidatorFn[]) {\r\n if (validators === this._validators) {\r\n return;\r\n }\r\n this._validators = validators;\r\n this._updateControlValidatorsAndOwnFlags();\r\n }\r\n\r\n public get validators(): ValidatorFn[] {\r\n return this._validators;\r\n }\r\n\r\n @Input()\r\n public set asyncValidators(validators: AsyncValidatorFn[]) {\r\n this._asyncValidators = validators;\r\n this._updateControlValidatorsAndOwnFlags();\r\n }\r\n\r\n public get asyncValidators(): AsyncValidatorFn[] {\r\n return this._asyncValidators;\r\n }\r\n\r\n @Input() @HostBinding(\"class.\" + BaseInputComponent.HiddenClass)\r\n public set hidden(hidden: boolean) {\r\n if (hidden === this._hidden) {\r\n return;\r\n }\r\n\r\n this._hidden = hidden;\r\n\r\n this._addOrRemoveSelfFromForm();\r\n\r\n if (!this._destroyed) {\r\n if (hidden) {\r\n this.changeDetector.detach();\r\n } else {\r\n this.changeDetector.reattach();\r\n if (this._hasOnPushCdStrategy) {\r\n this.detectChangesAfterAngular();\r\n }\r\n }\r\n }\r\n\r\n this.hiddenChange.emit(hidden);\r\n }\r\n\r\n public get hidden(): boolean {\r\n return this._hidden;\r\n }\r\n\r\n // no custom setter logic as with the other 'screen config props', because concrete form input components handle this themselves.\r\n @Input()\r\n public set decimals(value: number) {\r\n this._decimals = value;\r\n }\r\n\r\n public get decimals(): number {\r\n return this._decimals;\r\n }\r\n\r\n @Input()\r\n public icon: CoreComponentsIcon;\r\n\r\n // Goal: ability to emulate the red background of input fields (form-submitted invalid state)\r\n @Input() @HostBinding(\"class.cc-red-error-background\")\r\n public redErrorBackground: boolean = false;\r\n\r\n @Input()\r\n set myFormInputInstance(value: BaseInputComponent<T>) {\r\n if (value === this._myFormInputInstance) {\r\n return;\r\n }\r\n this._myFormInputInstance = value;\r\n this._updateControlValidatorsAndOwnFlags();\r\n }\r\n\r\n get myFormInputInstance(): BaseInputComponent<T> {\r\n return this._myFormInputInstance;\r\n }\r\n\r\n private _myFormInputInstance: BaseInputComponent<T>;\r\n\r\n @Output()\r\n public readonly nativeBlur: EventEmitter<any> = new EventEmitter();\r\n\r\n @Output()\r\n public readonly blur: EventEmitter<any> = new EventEmitter();\r\n\r\n // emits when the enter button on keyboard was pressed while this form input had focussed\r\n @Output()\r\n public readonly enter: EventEmitter<any> = new EventEmitter();\r\n\r\n @Output()\r\n public readonly focus: EventEmitter<any> = new EventEmitter();\r\n\r\n @Output()\r\n public readonly keyDown: EventEmitter<any> = new EventEmitter();\r\n\r\n @Output()\r\n public readonly keyUp: EventEmitter<any> = new EventEmitter();\r\n\r\n @Output()\r\n public readonly modelChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n public readonly userModelChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n public readonly hiddenChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n @ViewChild(NgModel, {static: true})\r\n public _ngModel: NgModel;\r\n\r\n @HostBinding(\"class.cc-input-focused\")\r\n public focused: boolean = false;\r\n\r\n public formComponent: FormComponent;\r\n\r\n @HostBinding(\"class.form-input\")\r\n public formInput: boolean = true;\r\n\r\n @Input() @InputBoolean() @HostBinding(\"class.custom-width\")\r\n public customWidth: boolean = false;\r\n\r\n @Input() @InputBoolean()\r\n public noTriangleGraphic: boolean = false;\r\n\r\n @Input() @InputBoolean() @HostBinding(\"class.half-width\")\r\n public halfWidth: boolean = false;\r\n\r\n @Input() @InputBoolean() @HostBinding(\"class.full-width-important\")\r\n public fullWidth: boolean = false;\r\n\r\n @Input() @InputBoolean()\r\n public excludeUserModelChange: boolean = false;\r\n\r\n @Input() @InputBoolean()\r\n public noFormGroupControl: boolean = false;\r\n\r\n @HostBinding(\"class.form-submitted\")\r\n public get formSubmitted(): boolean {\r\n return this.formComponent && this.formComponent.submitted;\r\n }\r\n\r\n @HostBinding(\"class.hasnolabel\")\r\n public get hasNoLabel(): boolean {\r\n return isNill(this.label);\r\n }\r\n\r\n @HostBinding(\"class.hasvalue\")\r\n public get hasValue(): boolean {\r\n return !!this.model || StringUtils.IsStringWithLength(this.model) || NumberUtils.IsNumber(this.model);\r\n }\r\n\r\n @HostBinding(\"class.invalid\")\r\n public get invalid(): boolean {\r\n return this._checkState() && !this.control.valid;\r\n }\r\n\r\n @HostBinding(\"class.disabled\")\r\n public get isDisabled(): boolean {\r\n return this._disabled;\r\n }\r\n\r\n @HostBinding(\"class.read-only\")\r\n public get isReadonly(): boolean {\r\n return this.readonly;\r\n }\r\n\r\n @HostBinding(\"class.required\")\r\n public get isRequired(): boolean {\r\n return this.required;\r\n }\r\n\r\n @HostBinding(\"class.cc-touched-invalid\")\r\n public get touchedInvalid(): boolean {\r\n return this._controlExists() && this.control.touched && !this.control.valid;\r\n }\r\n\r\n @HostBinding(\"class.valid\")\r\n public get valid(): boolean {\r\n return this._checkState() && this.control.valid;\r\n }\r\n\r\n @HostBinding(\"class.no-validation\")\r\n public get validationDisabled(): boolean {\r\n return this.readonly || this.disabled || this.noValidation;\r\n }\r\n\r\n public get canChange(): boolean {\r\n return !this.readonly && !this.disabled;\r\n }\r\n\r\n public get control(): FormControl {\r\n return this._myFormInputInstance ? this._myFormInputInstance.control : this.ngModel && this.ngModel.control;\r\n }\r\n\r\n public get formInputInstance(): BaseInputComponent<T> {\r\n return this._myFormInputInstance || this;\r\n }\r\n\r\n public get isDestroyed(): boolean {\r\n return this._destroyed;\r\n }\r\n\r\n public showValidationError(error: string): void {\r\n if (this.validationErrorContainer) {\r\n if (this._errorValidationComponent) {\r\n this._clearErrorComponent();\r\n }\r\n const componentFactory: ComponentFactory<ValidationErrorComponent> = this.componentFactoryResolver.resolveComponentFactory(ValidationErrorComponent);\r\n this._errorValidationComponent = this.validationErrorContainer.createComponent(componentFactory);\r\n this._errorValidationComponent.instance.error = error;\r\n }\r\n }\r\n\r\n public input: HTMLInputElement | HTMLTextAreaElement;\r\n\r\n // @implements ConfigurationAdapterComponent\r\n public objectConfigName: string;\r\n protected _markedAsUserTouched: boolean = false;\r\n\r\n\r\n protected _destroyed: boolean = false;\r\n protected _hasOnPushCdStrategy: boolean = false;\r\n protected _model: T;\r\n\r\n private _errorValidationComponent: ComponentRef<ValidationErrorComponent>;\r\n private _decimals: number;\r\n private _hidden: boolean;\r\n private _disabled: boolean;\r\n private _maxLength: number;\r\n private _readonly: boolean;\r\n private _required: boolean;\r\n\r\n private _forceReadonly: boolean = undefined;\r\n\r\n private _validators: ValidatorFn[] = [];\r\n private _asyncValidators: AsyncValidatorFn[] = [];\r\n\r\n private _speechSub: Subscription;\r\n private _modelChangeSub: Subscription;\r\n private _formAnySubmitSub: Subscription;\r\n private _formReadonlyChangeSub: Subscription;\r\n private _clearMarkedAsUserTouchedSub: Subscription;\r\n\r\n constructor(\r\n protected changeDetector: ChangeDetectorRef,\r\n protected componentFactoryResolver: ComponentFactoryResolver,\r\n @Optional() protected formUserChangeListener?: FormInputUserModelChangeListenerService,\r\n @Optional() protected ngZoneWrapper?: NgZoneWrapperService,\r\n @Optional() public elementRef?: ElementRef,\r\n ) {\r\n BaseInputComponent.BaseFormInputComponentIndex++;\r\n this.name = BaseInputComponent.BaseFormInputComponentIndex.toString();\r\n\r\n if (this.formUserChangeListener) {\r\n this._clearMarkedAsUserTouchedSub = this.formUserChangeListener.clearAllMarkedAsUserTouched.subscribe(() => {\r\n this._markedAsUserTouched = false;\r\n });\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this._modelChangeSub = this.modelChange.subscribe((val: any) => {\r\n this.model = val;\r\n });\r\n // if (this.speechInput) {\r\n // this._subscribeToSpeechInput();\r\n // }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this._updateControlValidatorsAndOwnFlags();\r\n\r\n this._addOrRemoveSelfFromForm();\r\n\r\n if (this.formComponent) {\r\n this.readonly = this.readonly || this.formComponent.readonly;\r\n this._formReadonlyChangeSub = this.formComponent.readonlyChange.subscribe((isFormReadonly: boolean) => {\r\n this.readonly = isFormReadonly;\r\n });\r\n }\r\n\r\n if (this.initFocus) {\r\n setTimeout(this.requestFocus.bind(this));\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._destroyed = true;\r\n this._clearErrorComponent();\r\n\r\n // if (this.tooltipManager && this.elementRef) {\r\n // this.tooltipManager.destroyErrorTooltipOfElement(this.elementRef.nativeElement);\r\n // }\r\n\r\n if (this._modelChangeSub) {\r\n this._modelChangeSub.unsubscribe();\r\n }\r\n if (this._speechSub) {\r\n this._speechSub.unsubscribe();\r\n }\r\n if (this._formAnySubmitSub) {\r\n this._formAnySubmitSub.unsubscribe();\r\n }\r\n if (this._formReadonlyChangeSub) {\r\n this._formReadonlyChangeSub.unsubscribe();\r\n }\r\n if (this._clearMarkedAsUserTouchedSub) {\r\n this._clearMarkedAsUserTouchedSub.unsubscribe();\r\n }\r\n // this._removeSelfFromForm();\r\n this.elementRef = undefined;\r\n this.changeDetector = undefined;\r\n // this.input = undefined;\r\n }\r\n\r\n /**\r\n * Emits a modelChange event with given value, indicating that the model of this form input\r\n * has changed and its new value is given value. Also emits userModelChange if markedAsUserTouched.\r\n */\r\n public setModel(value: any): void {\r\n this.model = value;\r\n this.modelChange.emit(value);\r\n\r\n if (this._markedAsUserTouched && this.formUserChangeListener) {\r\n this.formUserChangeListener.userModelChange.next(value);\r\n this.userModelChange.next(value);\r\n }\r\n\r\n if (this._hasOnPushCdStrategy) {\r\n this.detectChanges();\r\n }\r\n }\r\n\r\n @HostListener(\"click\", [\"$event\"])\r\n onClick(event: MouseEvent): void {\r\n if (this.canChange && !this.noClickFocus) {\r\n this.requestFocus();\r\n if (!this.excludeUserModelChange) {\r\n this.markAsUserTouched();\r\n }\r\n }\r\n }\r\n\r\n @HostListener(\"focusin\")\r\n onFocusIn(): void {\r\n if (!this.excludeUserModelChange) {\r\n this.markAsUserTouched();\r\n }\r\n }\r\n\r\n public requestFocus(): void {\r\n if (this.canChange && this.input) {\r\n this.input.focus();\r\n this.focused = true;\r\n }\r\n }\r\n\r\n public doBlur(): void {\r\n this.input.blur();\r\n this.focused = false;\r\n }\r\n\r\n public detectChanges(): void {\r\n if (!this._destroyed) {\r\n this.changeDetector.detectChanges();\r\n }\r\n }\r\n\r\n public markForCheck(): void {\r\n if (!this._destroyed) {\r\n this.changeDetector.markForCheck();\r\n }\r\n }\r\n\r\n public detectChangesAfterAngular(): void {\r\n if (!!this.ngZoneWrapper) {\r\n this.ngZoneWrapper.setTimeoutOutsideAngular(() => {\r\n if (!this._destroyed) {\r\n if (this._hasOnPushCdStrategy) {\r\n this.changeDetector.markForCheck();\r\n }\r\n this.changeDetector.detectChanges();\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Links the given formComp.submit event to the firing of detectChanges() of given change detector. This is a 'utility-like' method,\r\n * but we manage the actual subscription (with UNSUBSCRIBE()!) on this base class.\r\n * @param formComp The form whose submit we want to link with the call of .detectChanges() on given change detector ref.\r\n * @param changeDetectorRef This should be given as param. I choose not to make this part of our (BaseFormInputComponent) constructor,\r\n * because we already have 21 extenders.\r\n */\r\n // public linkFormAnySubmitWithDetectChanges(formComp: FormComponent, changeDetectorRef: ChangeDetectorRef): void {\r\n // if (formComp && changeDetectorRef) {\r\n // this._formAnySubmitSub = formComp.anySubmit.subscribe((() => {\r\n // if (!this._destroyed) {\r\n // changeDetectorRef.detectChanges();\r\n // }\r\n // }));\r\n // }\r\n // }\r\n\r\n public markAsUserTouched(): void {\r\n this._markedAsUserTouched = true;\r\n this.redErrorBackground = false; // not sure if this is the right place to do that\r\n }\r\n\r\n public clearMarkedAsUserTouched(): void {\r\n this._markedAsUserTouched = false;\r\n }\r\n\r\n //used for descendents, because descendents can't set super properties, see InputNumberComponent\r\n protected setMaxLength(maxLength: number): void {\r\n if (notNill(this.forcedMaxLength) || maxLength === this._maxLength) {\r\n return;\r\n }\r\n\r\n if (maxLength > 0) { // not maxLength is 0\r\n this._maxLength = maxLength;\r\n this._updateControlValidatorsAndOwnFlags();\r\n }\r\n }\r\n\r\n protected _markAsOnPush(): void {\r\n this._hasOnPushCdStrategy = true;\r\n }\r\n\r\n protected _checkState(): boolean {\r\n if (this.ngModel) {\r\n return this.formSubmitted || (this._controlExists() && this.control.touched);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n // Place validators onto our Angular's FormControl.\r\n protected _updateControlValidatorsAndOwnFlags(): void {\r\n const er: ElementRef = this.myFormInputInstance ? this.myFormInputInstance.elementRef : this.elementRef;\r\n // if (this.tooltipManager && er) {\r\n // this.tooltipManager.destroyErrorTooltipOfElement(er.nativeElement);\r\n // }\r\n this._setNativeRequired(this.required);\r\n this._setNativeMaxLength(this.maxLength);\r\n this._setNativeDisabled(this.disabled);\r\n this._setNativeReadOnly(this.readonly || this.forceReadonly);\r\n\r\n this.redErrorBackground = false;\r\n if (this._controlExists()) {\r\n const validators: ValidatorFn[] = [];\r\n\r\n // add required\r\n if (this.required) {\r\n validators.push(requiredValidator);\r\n }\r\n\r\n // add maxlength\r\n if (notNill(this._maxLength)) {\r\n if (this.decimals) {\r\n validators.push(precisionScaleValidator(this._maxLength, this.decimals));\r\n } else {\r\n validators.push(maxStringLengthValidator(this._maxLength));\r\n }\r\n }\r\n\r\n // add @Input()-ed validators\r\n validators.push(...this._validators);\r\n\r\n if (this._validators) {\r\n this._validators.forEach(validator => {\r\n if (validator === requiredValidator) {\r\n this._required = true;\r\n this._setNativeRequired(true);\r\n }\r\n });\r\n }\r\n\r\n this.control.setValidators(validators);\r\n this.control.setAsyncValidators(this._asyncValidators);\r\n this.control.updateValueAndValidity();\r\n }\r\n }\r\n\r\n private _clearErrorComponent(): void {\r\n if (this.validationErrorContainer) {\r\n this.validationErrorContainer.clear();\r\n if (this._errorValidationComponent) {\r\n this._errorValidationComponent.destroy();\r\n this._errorValidationComponent = undefined;\r\n }\r\n }\r\n }\r\n\r\n\r\n // whether this.ngModel.control has safe access\r\n private _controlExists(): boolean {\r\n return this.ngModel && !!this.control;\r\n }\r\n\r\n private _controlIsValid(): boolean {\r\n return this._controlExists() && this.control.valid;\r\n }\r\n\r\n private _setNativeDisabled(disabled: boolean): void {\r\n if (this.input) {\r\n this.input.disabled = disabled;\r\n }\r\n }\r\n\r\n private _setNativeMaxLength(maxlength: number): void {\r\n if (this.input) {\r\n this.input.maxLength = maxlength;\r\n }\r\n }\r\n\r\n protected _setNativeReadOnly(readonly: boolean): void {\r\n if (this.input) {\r\n this.input.readOnly = readonly;\r\n }\r\n }\r\n\r\n private _setNativeRequired(required: boolean): void {\r\n if (this.input) {\r\n this.input.required = required;\r\n }\r\n }\r\n\r\n private _subscribeToSpeechInput(): void {\r\n // this._speechSub = this.speechInput.speechInput.subscribe((data) => {\r\n // if (this.focused && this._controlExists()) {\r\n // const val: string = this.control.value;\r\n // this.setModel((StringUtils.IsString(val) ? val : '') + data);\r\n // }\r\n // });\r\n }\r\n\r\n private _addOrRemoveSelfFromForm(): void {\r\n if (this.hidden) {\r\n this._removeSelfFromForm();\r\n } else {\r\n this._addSelfToForm();\r\n }\r\n }\r\n\r\n private _updateSelfInForm(): void {\r\n if (this.formComponent) {\r\n this.formComponent.updateFormInput(this);\r\n }\r\n }\r\n\r\n private _removeSelfFromForm(): void {\r\n if (this.formComponent && this.ngModel) {\r\n this.formComponent.removeFormInput(this);\r\n }\r\n }\r\n\r\n private _addSelfToForm(): void {\r\n if (this.formComponent && this.ngModel && !this.noFormGroupControl) {\r\n this.formComponent.removeFormInput(this); // preventing there are two controls in formgroup when myFormInputInstance is (being) set\r\n this.formComponent.addFormInput(this.myFormInputInstance ? this.myFormInputInstance : this);\r\n }\r\n }\r\n}\r\n","// Represents a positional model\r\nexport class ElementPosition {\r\n public top: number;\r\n public right: number;\r\n public bottom: number;\r\n public left: number;\r\n\r\n constructor (top?: number, right?: number, bottom?: number, left?: number) {\r\n this.top = top;\r\n this.right = right;\r\n this.bottom = bottom;\r\n this.left = left;\r\n }\r\n}\r\n","import {Injectable, OnDestroy} from \"@angular/core\";\r\nimport {Subject, Subscription} from \"rxjs\";\r\nimport { FormComponent } from '../../components/form/form.component';\r\nimport { ArrayUtils } from '../utils/array-utils';\r\nimport { ElementPosition } from '../model/element-position';\r\n\r\n/**\r\n * Service to use inside [providers] of some leaf component that contains multiple <co-form>'s inside, possibly nested. Gives the master\r\n * full control over submits etc. of all its inner co-forms with just one service.\r\n */\r\n@Injectable()\r\nexport class FormMasterService implements OnDestroy {\r\n // emits when ALL slaves valid-submitted\r\n public readonly validSlavesSubmit: Subject<void> = new Subject<void>();\r\n\r\n private _slaveForms: FormComponent[] = [];\r\n\r\n private _subs: Subscription[] = [];\r\n\r\n private _slaveHoldingFirstInvalidField: FormComponent;\r\n private _keyOfFirstInvalidFieldInDom: string;\r\n private _positionOfFirstInvalidFieldInDom: ElementPosition = new ElementPosition(9999, 9999, 9999, 9999);\r\n\r\n private _firstErrorTooltipSpawned: boolean = false;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._slaveForms.length = 0;\r\n this._subs.forEach(s => s.unsubscribe());\r\n }\r\n\r\n public addSlave(coFormComp: FormComponent): void {\r\n this._slaveForms.push(coFormComp);\r\n this._subs.push(coFormComp.invalidSubmit.subscribe(() => {\r\n this._handleFormCompInvalidity();\r\n }));\r\n this._subs.push(coFormComp.anySubmit.subscribe(() => {\r\n this._resetFirstInvalidFieldProps();\r\n }));\r\n }\r\n\r\n public removeSlave(coFormComp: FormComponent): void {\r\n ArrayUtils.RemoveElement(coFormComp, this._slaveForms);\r\n this._firstErrorTooltipSpawned = false;\r\n }\r\n\r\n // Returns true if ALL submits were succesful, false if at least one submit failed. Returns undefined if we had no slaves.\r\n public submitSlaves(): boolean {\r\n this._resetFirstInvalidFieldProps();\r\n let success: boolean = true;\r\n if (this._slaveForms) {\r\n for (let i: number = 0, len: number = this._slaveForms.length; i < len; i++) {\r\n if (!this._slaveForms[i].submit(true)) {\r\n success = false;\r\n }\r\n }\r\n }\r\n\r\n if (success) {\r\n this.validSlavesSubmit.next();\r\n } else {\r\n this._handleFormCompInvalidity();\r\n }\r\n return success;\r\n }\r\n\r\n public resetSlaves(): void {\r\n if (this._slaveForms) {\r\n for (let i: number = 0, len: number = this._slaveForms.length; i < len; i++) {\r\n this._slaveForms[i].reset();\r\n }\r\n }\r\n }\r\n\r\n public setFirstInvalidField(form: FormComponent, key: string, element: HTMLElement): void {\r\n if (!element) {\r\n return;\r\n }\r\n const clientRect: ClientRect = element.getBoundingClientRect(),\r\n scrollLeft: number = window.pageXOffset || document.documentElement.scrollLeft,\r\n scrollTop: number = window.pageYOffset || document.documentElement.scrollTop,\r\n top: number = clientRect.top + scrollTop,\r\n left: number = clientRect.left + scrollLeft;\r\n if (this._positionOfFirstInvalidFieldInDom.top >= top && this._positionOfFirstInvalidFieldInDom.left >= left) {\r\n this._slaveHoldingFirstInvalidField = form;\r\n this._keyOfFirstInvalidFieldInDom = key;\r\n this._positionOfFirstInvalidFieldInDom = new ElementPosition(top, clientRect.right, clientRect.bottom, left);\r\n }\r\n }\r\n\r\n public allSlavesValid(): boolean {\r\n if (this._slaveForms) {\r\n for (let i: number = 0, len: number = this._slaveForms.length; i < len; i++) {\r\n if (!this._slaveForms[i].isValid()) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n private _resetFirstInvalidFieldProps(): void {\r\n this._positionOfFirstInvalidFieldInDom = new ElementPosition(9999, 9999, 9999, 9999);\r\n this._keyOfFirstInvalidFieldInDom = \"\";\r\n this._slaveHoldingFirstInvalidField = undefined;\r\n this._firstErrorTooltipSpawned = false;\r\n }\r\n\r\n private _handleFormCompInvalidity(): void {\r\n if (this._slaveHoldingFirstInvalidField && !this._firstErrorTooltipSpawned) {\r\n this._slaveHoldingFirstInvalidField.showErrorTooltipOnFormGroupControl(this._keyOfFirstInvalidFieldInDom);\r\n this._firstErrorTooltipSpawned = true;\r\n }\r\n }\r\n}\r\n","import {AfterViewInit, Component, EventEmitter, HostBinding, HostListener, Input, OnDestroy, OnInit, Output} from \"@angular/core\";\r\nimport {FormControl, FormGroup} from \"@angular/forms\";\r\nimport {Subject, Subscription} from \"rxjs\";\r\nimport { BaseInputComponent } from '../base/base-input.component';\r\nimport { FormMasterService } from '../../core/service/form-master.service';\r\nimport { StringUtils } from '../../core/utils/string-utils';\r\n\r\nconst FormGroupStatus: any = {\r\n VALID: \"VALID\",\r\n INVALID: \"INVALID\",\r\n PENDING: \"PENDING\",\r\n DISABLED: \"DISABLED\"\r\n};\r\n\r\n@Component({\r\n selector: \"co-form\",\r\n template: `<ng-content></ng-content>`,\r\n})\r\n// The iOneJS version of the form tag, representing a form with controls.\r\nexport class FormComponent implements AfterViewInit, OnDestroy, OnInit {\r\n @Input()\r\n set readonly(value: boolean) {\r\n this._readonly = value;\r\n this.readonlyChange.emit(value);\r\n }\r\n\r\n get readonly(): boolean {\r\n return this._readonly;\r\n }\r\n\r\n @Input()\r\n public keepInView: Element;\r\n\r\n @Output()\r\n public onChange: EventEmitter<FormControl> = new EventEmitter<FormControl>();\r\n\r\n @HostBinding(\"class.submitted\")\r\n public submitted: boolean = false;\r\n\r\n // Emits true after every valid submit.\r\n @Output()\r\n public readonly validSubmit: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n // Emits void after every 'submit' (either valid or invalid, eg a submit attempt)\r\n @Output()\r\n public readonly anySubmit: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n // note: a disabled control is considered valid\r\n @Output()\r\n public readonly validityChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n @Output()\r\n public readonly readonlyChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n // The Angular in-memory representation of the form controls on this form. Performs actual logic, emits 'input field' (Control) state change events, etc.\r\n public formGroup: FormGroup = new FormGroup({});\r\n\r\n @Output()\r\n public invalidSubmit: Subject<void> = new Subject<void>();\r\n\r\n private _readonly: boolean = false;\r\n private _valueChangeSub: Subscription;\r\n private _statusChangeSub: Subscription;\r\n\r\n private _init: boolean;\r\n\r\n // key: name of form inputs, values: the component for that name\r\n private _componentMap: Map<string, BaseInputComponent<any>> = new Map<string, BaseInputComponent<any>>([]);\r\n\r\n constructor(\r\n private _formMaster: FormMasterService\r\n ) {\r\n this._formMaster.addSlave(this);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this._init = true;\r\n }\r\n\r\n ngOnInit(): void {\r\n this._valueChangeSub = this.formGroup.valueChanges.subscribe((e) => {\r\n this.onChange.emit(e);\r\n });\r\n this._statusChangeSub = this.formGroup.statusChanges.subscribe((e) => {\r\n if (e === FormGroupStatus.VALID || e === FormGroupStatus.DISABLED) {\r\n this.validityChange.emit(true);\r\n } else if (e === FormGroupStatus.INVALID) {\r\n this.validityChange.emit(false);\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this._valueChangeSub) {\r\n this._valueChangeSub.unsubscribe();\r\n }\r\n if (this._statusChangeSub) {\r\n this._statusChangeSub.unsubscribe();\r\n }\r\n this._componentMap.clear();\r\n this._componentMap = undefined;\r\n this._formMaster.removeSlave(this);\r\n this.keepInView = undefined;\r\n }\r\n\r\n public addFormInput(formInput: BaseInputComponent<any>): void {\r\n this.formGroup.addControl(formInput.name, formInput.control);\r\n if (formInput.elementRef) {\r\n this._componentMap.set(formInput.name, formInput);\r\n }\r\n }\r\n\r\n public removeFormInput(formInput: BaseInputComponent<any>): void {\r\n this.formGroup.removeControl(formInput.name);\r\n this._componentMap.delete(formInput.name);\r\n }\r\n\r\n public updateFormInput(formInput: BaseInputComponent<any>): void {\r\n this.formGroup.setControl(formInput.name, formInput.control);\r\n }\r\n\r\n // Marks form as touched, checks validity and returns true if indeed valid, else false. Visuals of form inputs can change after calling this.\r\n public checkUpdateValidity(): boolean {\r\n this.formGroup.markAsTouched();\r\n this.formGroup.updateValueAndValidity();\r\n if (!this.isValid()) {\r\n this._setFirstInvalidElementOnMaster();\r\n }\r\n return this.isValid();\r\n }\r\n\r\n public isTouched(): boolean {\r\n return this.formGroup.touched;\r\n }\r\n\r\n public isValid(): boolean {\r\n return this._init && this.formGroup.valid;\r\n }\r\n\r\n @HostListener('keyup.enter', ['$event'])\r\n onEnterKey(event: KeyboardEvent): void {\r\n const target: HTMLElement = <HTMLElement>event.target;\r\n if (['TEXTAREA', 'SELECT'].indexOf(target.tagName) !== -1) {\r\n return;\r\n }\r\n if (target.isContentEditable) {\r\n return;\r\n }\r\n if (target.tagName === 'BUTTON-COLIJN' && target.getAttribute('type') === 'submit') {\r\n return;\r\n }\r\n this.submit();\r\n }\r\n\r\n public reset(): void {\r\n this.submitted = false;\r\n this.formGroup.markAsUntouched();\r\n }\r\n\r\n // returns validity\r\n public submit(throughFormMaster: boolean = false): boolean {\r\n this.submitted = true;\r\n if (!throughFormMaster) {\r\n this.anySubmit.emit();\r\n }\r\n if (this.checkUpdateValidity()) {\r\n this.validSubmit.emit();\r\n } else {\r\n if (!throughFormMaster) {\r\n this.invalidSubmit.next();\r\n }\r\n }\r\n return this.isValid();\r\n }\r\n\r\n public showErrorTooltipOnFormGroupControl(key: string): void {\r\n for (const controlKey in this.formGroup.controls) {\r\n if (this.formGroup.controls.hasOwnProperty(controlKey)) {\r\n if (this._componentMap.has(controlKey)) {\r\n const comp: BaseInputComponent<any> = this._componentMap.get(controlKey);\r\n for (const errorKey in this.formGroup.controls[controlKey].errors) {\r\n if (this.formGroup.controls[controlKey].errors.hasOwnProperty(errorKey)) {\r\n const error: any = this.formGroup.controls[controlKey].errors[errorKey];\r\n if (controlKey === key) {\r\n comp.showValidationError(error);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _setFirstInvalidElementOnMaster(): void {\r\n const elements: any = Array.from(this._componentMap);\r\n const len: number = elements.length;\r\n for (let i: number = 0; i < len; i++) {\r\n const key: string = elements[i][0];\r\n const value: BaseInputComponent<any> = elements[i][1];\r\n if (this.formGroup.controls.hasOwnProperty(key) && this.formGroup.controls[key].status.toLowerCase() === \"invalid\") {\r\n this._formMaster.setFirstInvalidField(this, key, value.elementRef ? value.elementRef.nativeElement : undefined);\r\n return;\r\n }\r\n }\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component, ComponentFactoryResolver, ElementRef,\r\n forwardRef,\r\n HostBinding,\r\n Input, Optional,\r\n TemplateRef,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {COMPONENT_INTERFACE_NAME} from \"../base/component-interface-name\";\r\nimport {BaseInputComponent} from \"../base/base-input.component\";\r\nimport {CheckBoxSelectionService} from \"@syncfusion/ej2-angular-dropdowns\";\r\nimport {IconCacheService} from \"../icon/icon-cache.service\";\r\nimport {FormInputUserModelChangeListenerService} from \"../../core/service/form-input-user-change-listener.service\";\r\nimport {NgZoneWrapperService} from \"../../core/service/ng-zone-wrapper.service\";\r\nimport {FormComponent} from \"../form/form.component\";\r\n\r\n@Component({\r\n selector: \"co-drop-down-list\",\r\n template: `\r\n <ejs-dropdownlist\r\n [dataSource]=\"collection\"\r\n [value]=\"model\"\r\n [fields]=\"fields\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [itemTemplate]=\"itemTemplate\"\r\n [headerTemplate]=\"headerTemplate\"\r\n [valueTemplate]=\"valueTemplate\"\r\n [ngModel]=\"model\"\r\n (ngModelChange)=\"modelChange.emit($event)\"\r\n (valueChange)=\"handleValueChanged($event)\"\r\n showClearButton=\"true\"\r\n floatLabelType=\"Auto\"\r\n >\r\n </ejs-dropdownlist>\r\n <div class=\"required-indicator\"></div>\r\n <ng-template #validationError></ng-template>\r\n `,\r\n providers: [\r\n CheckBoxSelectionService,\r\n {\r\n provide: COMPONENT_INTERFACE_NAME,\r\n useExisting: forwardRef(() => DropDownListComponent)\r\n }\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class DropDownListComponent extends BaseInputComponent<any> {\r\n\r\n @Input()\r\n public collection: any[];\r\n\r\n /**\r\n * In the form { text: 'name', value: 'id' }\r\n * Where 'text' is showing in the dropdown and 'id' used for the model binding\r\n */\r\n @Input()\r\n public fields: Object = {};\r\n\r\n @Input()\r\n public placeholder: string;\r\n\r\n @Input()\r\n public itemTemplate: TemplateRef<any>;\r\n\r\n @Input()\r\n public headerTemplate: TemplateRef<any>;\r\n\r\n @Input()\r\n public valueTemplate: TemplateRef<any>;\r\n\r\n @HostBinding(\"class.co-drop-down-list\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n constructor(\r\n @Optional() public formComponent: FormComponent,\r\n protected changeDetector: ChangeDetectorRef,\r\n protected componentFactoryResolver: ComponentFactoryResolver,\r\n protected formUserChangeListener?: FormInputUserModelChangeListenerService,\r\n protected ngZoneWrapper?: NgZoneWrapperService,\r\n public elementRef?: ElementRef,\r\n ) {\r\n super(changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef);\r\n super._markAsOnPush();\r\n }\r\n\r\n public handleValueChanged(value: any): void {\r\n if (value !== this.model) {\r\n this.modelChange.next(value);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BaseModule } from '../base/base.module';\r\nimport { DropDownListComponent } from './drop-down-list.component';\r\nimport { DropDownListModule, MultiSelectModule } from '@syncfusion/ej2-angular-dropdowns';\r\nimport {FormsModule} from \"@angular/forms\";\r\n\r\n@NgModule({\r\n imports: [\r\n BaseModule,\r\n CommonModule,\r\n DropDownListModule,\r\n MultiSelectModule,\r\n FormsModule\r\n ],\r\n declarations: [DropDownListComponent],\r\n exports: [DropDownListComponent]\r\n})\r\nexport class DropDownModule {\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\n\r\nimport {FormComponent} from \"./form.component\";\r\nimport {FormMasterService} from \"../../core/service/form-master.service\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n FormComponent\r\n ],\r\n providers: [\r\n FormMasterService\r\n ],\r\n exports: [\r\n FormComponent\r\n ]\r\n})\r\nexport class FormModule {\r\n}\r\n","export enum GridLines {\r\n None = \"None\",\r\n Horizontal = \"Horizontal\",\r\n Vertical = \"Vertical\",\r\n Both = \"Both\",\r\n Default = \"Default\",\r\n}\r\n","import {Directive, Input, ViewChild} from \"@angular/core\";\r\nimport {ContextMenuItemModel, GridComponent, PageSettingsModel, RowDropSettingsModel} from \"@syncfusion/ej2-angular-grids\";\r\nimport {InputBoolean} from \"../../../core/decorator/input-boolean.decorator\";\r\nimport {GridLines} from \"../enum/grid-lines.enum\";\r\n\r\n@Directive()\r\nexport class BaseGridComponent<T> {\r\n @ViewChild('grid', {static: false})\r\n public grid: GridComponent;\r\n\r\n @Input()\r\n public data: T[];\r\n\r\n @Input()\r\n public gridLines: GridLines = GridLines.None;\r\n\r\n @Input()\r\n public contextMenuItems: ContextMenuItemModel[] = [];\r\n\r\n @Input()\r\n public frozenColumns: number;\r\n\r\n @Input()\r\n public frozenRows: number;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public sortingEnabled: boolean = false;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public filteringEnabled: boolean = false;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public pagingEnabled: boolean = false;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public groupingEnabled: boolean = false;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public reorderingEnabled: boolean = false;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public rowDragAndDropEnabled: boolean = false;\r\n\r\n @Input()\r\n public rowDropSettings: RowDropSettingsModel;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public resizingEnabled: boolean = false;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public showColumnMenu: boolean = false;\r\n\r\n @Input()\r\n public set maxNumberOfRows(value: number) {\r\n if (value) {\r\n this.pageSettings.pageSize = value;\r\n }\r\n }\r\n\r\n @Input()\r\n public set columns(value: {}[]) {\r\n this._columns = value;\r\n }\r\n\r\n public get columns(): {}[] {\r\n return this._columns;\r\n }\r\n\r\n public pageSettings: PageSettingsModel = {};\r\n\r\n private _columns: {}[];\r\n}\r\n","import {Directive, Input} from \"@angular/core\";\r\nimport {ToolbarItems} from \"@syncfusion/ej2-angular-grids\";\r\nimport {ClickEventArgs} from \"@syncfusion/ej2-angular-navigations\";\r\nimport {InputBoolean} from \"../../../core/decorator/input-boolean.decorator\";\r\nimport {BaseGridComponent} from \"./base-grid.component\";\r\nimport {ArrayUtils} from \"../../../core/utils/array-utils\";\r\n\r\n@Directive()\r\nexport class BaseToolbarGridComponent<T> extends BaseGridComponent<T> {\r\n\r\n @Input()\r\n @InputBoolean()\r\n public set showColumnChooser(value: boolean) {\r\n this._showColumnChooser = value;\r\n this.updateToolbar(\"ColumnChooser\", this._showColumnChooser);\r\n }\r\n\r\n public get showColumnChooser(): boolean {\r\n return this._showColumnChooser;\r\n }\r\n\r\n @Input()\r\n @InputBoolean()\r\n public set exportExcelEnabled(value: boolean) {\r\n this._exportExcelEnabled = value;\r\n this.updateToolbar(\"ExcelExport\", this._exportExcelEnabled);\r\n }\r\n\r\n public get exportExcelEnabled(): boolean {\r\n return this._exportExcelEnabled;\r\n }\r\n\r\n @Input()\r\n @InputBoolean()\r\n public set exportPdfEnabled(value: boolean) {\r\n this._exportPdfEnabled = value;\r\n this.updateToolbar(\"PdfExport\", this._exportPdfEnabled);\r\n }\r\n\r\n public get exportPdfEnabled(): boolean {\r\n return this._exportPdfEnabled;\r\n }\r\n\r\n public toolbarOptions: ToolbarItems[];\r\n\r\n private _exportExcelEnabled: boolean = false;\r\n private _exportPdfEnabled: boolean = false;\r\n private _showColumnChooser: boolean = false;\r\n\r\n public toolbarClick(args: ClickEventArgs): void {\r\n if (this.grid) {\r\n if (args.item.id === 'grid_excelexport') {\r\n this.grid.excelExport();\r\n } else if (args.item.id === 'grid_pdfexport') {\r\n this.grid.pdfExport();\r\n }\r\n }\r\n }\r\n\r\n protected updateToolbar(option: ToolbarItems, add: boolean): void {\r\n if (add) {\r\n if (!this.toolbarOptions) {\r\n this.toolbarOptions = [];\r\n }\r\n this.toolbarOptions.push(option);\r\n } else {\r\n ArrayUtils.RemoveElement(option, this.toolbarOptions);\r\n }\r\n if (this.toolbarOptions && this.toolbarOptions.length > 0) {\r\n this.toolbarOptions = this.toolbarOptions.slice();\r\n } else {\r\n this.toolbarOptions = undefined;\r\n }\r\n }\r\n}\r\n","import {Directive, EventEmitter, Input, Output} from \"@angular/core\";\r\nimport {EditSettingsModel} from \"@syncfusion/ej2-angular-grids\";\r\nimport {InputBoolean} from \"../../../core/decorator/input-boolean.decorator\";\r\nimport {BaseToolbarGridComponent} from \"./base-toolbar-grid.component\";\r\n\r\n@Directive()\r\nexport class BaseInlineEditGridComponent<T> extends BaseToolbarGridComponent<T> {\r\n\r\n @Input()\r\n @InputBoolean()\r\n public set inlineEdit(value: boolean) {\r\n if (value) {\r\n this.editSettings = { allowEditing: true, allowAdding: true, allowDeleting: true };\r\n } else {\r\n this.editSettings = {};\r\n }\r\n this.updateToolbar(\"Add\", value);\r\n this.updateToolbar(\"Edit\", value);\r\n this.updateToolbar(\"Delete\", value);\r\n this.updateToolbar(\"Update\", value);\r\n this.updateToolbar(\"Cancel\", value);\r\n }\r\n\r\n @Output()\r\n public rowSaved: EventEmitter<T> = new EventEmitter<T>();\r\n\r\n public editSettings: EditSettingsModel;\r\n\r\n public handleActionComplete(action: any): void {\r\n if (action) {\r\n if (action.requestType === \"save\") {\r\n this.rowSaved.next(action.data);\r\n }\r\n }\r\n }\r\n}\r\n","import {Directive, EventEmitter, HostBinding, Input, OnInit, Output, TemplateRef} from \"@angular/core\";\r\nimport {RowDragEventArgs, RowDropEventArgs, SelectionSettingsModel} from \"@syncfusion/ej2-angular-grids\";\r\nimport {BaseInlineEditGridComponent} from \"./base-inline-edit-grid.component\";\r\nimport {InputBoolean} from \"../../../core/decorator/input-boolean.decorator\";\r\nimport {MenuEventArgs} from \"@syncfusion/ej2-navigations\";\r\nimport {GridRowDragEventArgs} from \"../interface/grid-row-drag-event-args\";\r\nimport {GridRowDropEventArgs} from \"../interface/grid-row-drop-event-args\";\r\nimport {GridMenuEventArgs} from \"../interface/grid-menu-event-args\";\r\n\r\nconst defaultColumn: string = `<div class=\"detail-wrapper\"><svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><polygon points=\"34.55 26.18 34.55 37.49 12.44 37.49 12.44 15.38 24.68 15.38 25.59 14.48 24.05 12.94 10 12.94 10 39.94 36.99 39.94 36.99 25.88 35.92 24.81 34.55 26.18\" fill=\"#484f60\"/><polygon points=\"40 10.4 27.92 10.4 32 14.48 22.24 26.23 24.16 28.15 35.92 18.4 40 22.48 40 10.4\" fill=\"#484f60\"/></svg></div>`;\r\n\r\n@Directive()\r\nexport class BaseSelectionGridComponent<T> extends BaseInlineEditGridComponent<T> implements OnInit {\r\n\r\n @Input()\r\n @InputBoolean()\r\n public set multipleSelect(value: boolean) {\r\n this.selectionOptions = { type: value ? \"Multiple\" : \"Single\" };\r\n }\r\n\r\n @HostBinding(\"class.detail-column\")\r\n @Input()\r\n @InputBoolean()\r\n public includeDetailColumn: boolean = false;\r\n\r\n @Input()\r\n public detailColumnTemplate: TemplateRef<any>;\r\n\r\n @Output()\r\n public rowsSelected: EventEmitter<T[]> = new EventEmitter<T[]>();\r\n\r\n @Output()\r\n public rowDoubleClick: EventEmitter<T> = new EventEmitter<T>();\r\n\r\n @Output()\r\n public detailColumnClick: EventEmitter<T> = new EventEmitter<T>();\r\n\r\n @Output()\r\n public contextMenuItemClick: EventEmitter<GridMenuEventArgs> = new EventEmitter<GridMenuEventArgs>();\r\n\r\n @Output()\r\n public rowDragStartEvent: EventEmitter<GridRowDragEventArgs> = new EventEmitter<GridRowDragEventArgs>();\r\n\r\n @Output()\r\n public rowDropEvent: EventEmitter<GridRowDropEventArgs> = new EventEmitter<GridRowDropEventArgs>();\r\n\r\n public selectionOptions: SelectionSettingsModel = { type: \"Single\" };\r\n\r\n ngOnInit(): void {\r\n if (this.includeDetailColumn) {\r\n this.columns.unshift({\r\n field: \"\", headerText: \"\", lockColumn: true, maxWidth: 30, width: 30,\r\n allowFiltering: false, allowResizing: false, allowReordering: false, allowEditing: false, allowSearching: false,\r\n showColumnMenu: false, showInColumnChooser: false,\r\n template: this.detailColumnTemplate ? this.detailColumnTemplate : defaultColumn,\r\n headerTemplate: this.detailColumnTemplate ? this.detailColumnTemplate : defaultColumn});\r\n }\r\n }\r\n\r\n public handleRowSelected(rowData: any): void {\r\n if (this.grid) {\r\n const rows: T[] = <T[]>this.grid.getSelectedRecords();\r\n this.rowsSelected.next(rows);\r\n }\r\n }\r\n\r\n public handleDoubleClick(clickData: any): void {\r\n this.rowDoubleClick.next(<T>clickData.rowData);\r\n }\r\n\r\n public handleRecordClick(clickData: any): void {\r\n if (clickData && this.includeDetailColumn && clickData.cellIndex === 0) {\r\n this.detailColumnClick.next(clickData.rowData);\r\n }\r\n }\r\n\r\n public selectRow(index: number): void {\r\n if (this.grid) {\r\n const rowIndexes: number[] = [];\r\n rowIndexes.push(index);\r\n this.grid.selectionModule.selectRows(rowIndexes);\r\n }\r\n }\r\n\r\n public contextMenuClick(args: MenuEventArgs): void {\r\n this.contextMenuItemClick.next(args);\r\n }\r\n\r\n public rowDragStartClick(args: RowDragEventArgs): void {\r\n this.rowDragStartEvent.next(args);\r\n }\r\n\r\n public rowDropClick(args: RowDropEventArgs): void {\r\n this.rowDropEvent.next(args);\r\n }\r\n}\r\n","import {Component, HostBinding, OnInit, ViewEncapsulation} from \"@angular/core\";\r\nimport {BaseSelectionGridComponent} from \"./base/base-selection-grid.component\";\r\nimport {RowDDService} from \"@syncfusion/ej2-angular-grids\";\r\n\r\n@Component({\r\n selector: 'co-grid',\r\n template: `\r\n <ejs-grid #grid id=\"grid\"\r\n [dataSource]=\"data\"\r\n [columns]=\"columns\"\r\n [contextMenuItems]=\"contextMenuItems\"\r\n [pageSettings]=\"pageSettings\"\r\n [toolbar]=\"toolbarOptions\"\r\n [gridLines]=\"gridLines\"\r\n [frozenColumns]=\"frozenColumns\"\r\n [frozenRows]=\"frozenRows\"\r\n [selectionSettings]=\"selectionOptions\"\r\n [editSettings]=\"editSettings\"\r\n [allowPaging]=\"pagingEnabled\"\r\n [allowSorting]=\"sortingEnabled\"\r\n [allowFiltering]=\"filteringEnabled\"\r\n [allowGrouping]=\"groupingEnabled\"\r\n [allowReordering]=\"reorderingEnabled\"\r\n [allowResizing]=\"resizingEnabled\"\r\n [allowRowDragAndDrop]=\"rowDragAndDropEnabled\"\r\n [showColumnMenu]=\"showColumnMenu\"\r\n [showColumnChooser]=\"showColumnChooser\"\r\n [allowExcelExport]=\"exportExcelEnabled\"\r\n [allowPdfExport]=\"exportPdfEnabled\"\r\n (toolbarClick)=\"toolbarClick($event)\"\r\n (rowSelected)=\"handleRowSelected($event)\"\r\n (recordDoubleClick)=\"handleDoubleClick($event)\"\r\n (recordClick)=\"handleRecordClick($event)\"\r\n (actionComplete)=\"handleActionComplete($event)\"\r\n (contextMenuClick)=\"contextMenuClick($event)\"\r\n (rowDragStart)=\"rowDragStartClick($event)\"\r\n (rowDrop)=\"rowDropClick($event)\">\r\n </ejs-grid>\r\n `,\r\n providers: [\r\n RowDDService\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CoGridComponent<T> extends BaseSelectionGridComponent<T> implements OnInit {\r\n\r\n @HostBinding('class.co-grid')\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport {\r\n ColumnChooserService,\r\n ColumnMenuService,\r\n ContextMenuService,\r\n EditService,\r\n ExcelExportService,\r\n FilterService,\r\n GridModule,\r\n GroupService,\r\n PageService,\r\n PdfExportService,\r\n ReorderService,\r\n ResizeService,\r\n SortService,\r\n ToolbarService\r\n} from '@syncfusion/ej2-angular-grids';\r\nimport { CoGridComponent } from './co-grid.component';\r\nimport { IconCacheService } from '../icon/icon-cache.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n GridModule\r\n ],\r\n declarations: [CoGridComponent],\r\n exports: [CoGridComponent],\r\n providers: [\r\n IconCacheService,\r\n PageService,\r\n SortService,\r\n FilterService,\r\n GroupService,\r\n ReorderService,\r\n ResizeService,\r\n ExcelExportService,\r\n PdfExportService,\r\n EditService,\r\n ToolbarService,\r\n ColumnChooserService,\r\n ColumnMenuService,\r\n ContextMenuService\r\n ]\r\n})\r\nexport class CoGridModule {\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component, ComponentFactoryResolver, ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n HostBinding,\r\n Input,\r\n Optional,\r\n Output,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {BaseInputComponent} from \"../base/base-input.component\";\r\nimport {FormComponent} from \"../form/form.component\";\r\nimport {FormInputUserModelChangeListenerService} from \"../../core/service/form-input-user-change-listener.service\";\r\nimport {NgZoneWrapperService} from \"../../core/service/ng-zone-wrapper.service\";\r\nimport {COMPONENT_INTERFACE_NAME} from \"../base/component-interface-name\";\r\nimport {IconCacheService} from \"../icon/icon-cache.service\";\r\n\r\n@Component({\r\n selector: \"co-input-checkbox\",\r\n template: `\r\n <ejs-checkbox [label]=\"label\"\r\n [name]=\"name\"\r\n [cssClass]=\"cssClass\"\r\n [ngModel]=\"model\"\r\n (ngModelChange)=\"handleModelChange($event)\"\r\n ></ejs-checkbox>\r\n `,\r\n providers: [{\r\n provide: COMPONENT_INTERFACE_NAME,\r\n useExisting: forwardRef(() => InputCheckboxComponent)\r\n }],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class InputCheckboxComponent extends BaseInputComponent<boolean> {\r\n @Input()\r\n public name: string;\r\n\r\n @Input()\r\n public label: string;\r\n\r\n @Input()\r\n public cssClass: string;\r\n\r\n @Output()\r\n public modelChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n @HostBinding(\"class.co-input-checkbox\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n constructor(\r\n @Optional() public formComponent: FormComponent,\r\n public iconCacheService: IconCacheService,\r\n protected changeDetector: ChangeDetectorRef,\r\n protected componentFactoryResolver: ComponentFactoryResolver,\r\n protected formUserChangeListener?: FormInputUserModelChangeListenerService,\r\n protected ngZoneWrapper?: NgZoneWrapperService,\r\n public elementRef?: ElementRef,\r\n ) {\r\n super(changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef);\r\n }\r\n\r\n public setModel(value: boolean): void {\r\n this.model = value;\r\n this.modelChange.next(this.model);\r\n }\r\n\r\n public handleModelChange(value: boolean): void {\r\n if (!this.readonly && !this.disabled) {\r\n this.setModel(value);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { BaseModule } from '../base/base.module';\r\nimport { InputCheckboxComponent } from './input-checkbox.component';\r\nimport { CheckBoxModule } from '@syncfusion/ej2-angular-buttons';\r\nimport { enableRipple } from '@syncfusion/ej2-base';\r\n\r\nenableRipple(true);\r\n\r\n@NgModule({\r\n imports: [\r\n BaseModule,\r\n CommonModule,\r\n FormsModule,\r\n CheckBoxModule,\r\n ],\r\n declarations: [InputCheckboxComponent],\r\n exports: [InputCheckboxComponent]\r\n})\r\nexport class InputCheckboxModule {\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\n\r\n// A pipe for appending strings to other strings in view templates.\r\n@Pipe({name: \"append\"})\r\nexport class AppendPipe implements PipeTransform {\r\n transform(value: string, append?: string): string {\r\n if (!value) {\r\n return \"\";\r\n }\r\n\r\n if (!append) {\r\n return value;\r\n }\r\n\r\n return value + append;\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { AppendPipe } from './append.pipe';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppendPipe\r\n ],\r\n exports: [\r\n AppendPipe\r\n ]\r\n})\r\nexport class AppendPipeModule {\r\n}\r\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, ComponentFactoryResolver,\n ElementRef,\n forwardRef,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n ViewEncapsulation\n} from \"@angular/core\";\nimport {BaseInputComponent} from \"../base/base-input.component\";\nimport {COMPONENT_INTERFACE_NAME} from \"../base/component-interface-name\";\nimport {FormInputUserModelChangeListenerService} from \"../../core/service/form-input-user-change-listener.service\";\nimport {NgZoneWrapperService} from \"../../core/service/ng-zone-wrapper.service\";\nimport {FormComponent} from \"../form/form.component\";\nimport {IconCacheService} from \"../icon/icon-cache.service\";\n\n@Component({\n selector: \"co-input-checkbox-multi-select\",\n template: `\n <ejs-multiselect\n [placeholder]=\"placeholder\"\n [dataSource]=\"source\"\n [fields]=\"fields\"\n mode=\"CheckBox\"\n showDropDownIcon=\"true\"\n [showSelectAll]=\"false\"\n [filterBarPlaceholder]=\"filterPlaceholder\"\n ></ejs-multiselect>\n `,\n providers: [{\n provide: COMPONENT_INTERFACE_NAME,\n useExisting: forwardRef(() => InputCheckboxMultiSelectComponent)\n }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n\n})\nexport class InputCheckboxMultiSelectComponent extends BaseInputComponent<any> {\n\n @Input()\n public source: Object[] | string[] | number[] | boolean[]\n\n @Input()\n public fields: Object\n\n @Input()\n public selected: number | string | boolean;\n\n @Input()\n public placeholder: string;\n\n @Input()\n public filterPlaceholder: string;\n\n @HostBinding(\"class.co-input-checkbox-multi-select\")\n public showClass() {\n return true;\n }\n\n constructor(\n @Optional() public formComponent: FormComponent,\n protected changeDetector: ChangeDetectorRef,\n protected componentFactoryResolver: ComponentFactoryResolver,\n protected formUserChangeListener?: FormInputUserModelChangeListenerService,\n protected ngZoneWrapper?: NgZoneWrapperService,\n public elementRef?: ElementRef,\n ) {\n super(changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef);\n super._markAsOnPush();\n }\n\n}\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { IconModule } from '../icon/icon.module';\r\nimport { BaseModule } from '../base/base.module';\r\nimport { AppendPipeModule } from '../../pipes/append.pipe.module';\r\nimport {MultiSelectAllModule} from \"@syncfusion/ej2-angular-dropdowns\";\r\nimport {InputCheckboxMultiSelectComponent} from \"./input-checkbox-multi-select.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n BaseModule,\r\n CommonModule,\r\n FormsModule,\r\n IconModule,\r\n AppendPipeModule,\r\n MultiSelectAllModule\r\n ],\r\n declarations: [InputCheckboxMultiSelectComponent],\r\n exports: [InputCheckboxMultiSelectComponent]\r\n})\r\nexport class InputCheckboxMultiSelectModule {\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ComponentFactoryResolver,\r\n ElementRef,\r\n forwardRef,\r\n HostBinding,\r\n Input,\r\n Optional,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {BaseInputComponent} from \"../base/base-input.component\";\r\nimport {FormInputUserModelChangeListenerService} from \"../../core/service/form-input-user-change-listener.service\";\r\nimport {NgZoneWrapperService} from \"../../core/service/ng-zone-wrapper.service\";\r\nimport {FormComponent} from \"../form/form.component\";\r\nimport {COMPONENT_INTERFACE_NAME} from \"../base/component-interface-name\";\r\nimport {ComboBoxComponent} from \"@syncfusion/ej2-angular-dropdowns\";\r\n\r\n@Component({\r\n selector: \"co-input-combo-box\",\r\n template: `\r\n <ejs-combobox #combo [dataSource]=\"collection\"\r\n [fields]=\"fields\"\r\n [placeholder]=\"placeholder\"\r\n [autofill]=\"true\"\r\n [ngModel]=\"model\"\r\n (ngModelChange)=\"modelChange.emit($event)\"\r\n (focus)=\"onFocus()\"\r\n showClearButton=\"true\"\r\n floatLabelType=\"Auto\"\r\n >\r\n </ejs-combobox>\r\n <div class=\"required-indicator\"></div>\r\n <ng-template #validationError></ng-template>\r\n `,\r\n providers: [{\r\n provide: COMPONENT_INTERFACE_NAME,\r\n useExisting: forwardRef(() => InputComboBoxComponent)\r\n }],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class InputComboBoxComponent extends BaseInputComponent<any> {\r\n @ViewChild(\"combo\")\r\n public combo: ComboBoxComponent;\r\n\r\n @Input()\r\n public collection: Object[] | string[] | number[] | boolean[];\r\n\r\n @Input()\r\n public fields: Object;\r\n\r\n @Input()\r\n public selected: number | string | boolean;\r\n\r\n @Input()\r\n public placeholder: string;\r\n\r\n @Input()\r\n public shopPopup: boolean = true;\r\n\r\n @HostBinding(\"class.co-input-combo-box\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n @HostBinding(\"class.custom-height\")\r\n public customHeight: boolean = true;\r\n\r\n constructor(\r\n @Optional() public formComponent: FormComponent,\r\n protected changeDetector: ChangeDetectorRef,\r\n protected componentFactoryResolver: ComponentFactoryResolver,\r\n protected formUserChangeListener?: FormInputUserModelChangeListenerService,\r\n protected ngZoneWrapper?: NgZoneWrapperService,\r\n public elementRef?: ElementRef,\r\n ) {\r\n super(changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef);\r\n super._markAsOnPush();\r\n }\r\n\r\n public onFocus(): void {\r\n if (this.shopPopup && this.model === undefined) {\r\n this.combo.showPopup();\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { InputComboBoxComponent } from './input-combo-box.component';\r\nimport { IconModule } from '../icon/icon.module';\r\nimport { BaseModule } from '../base/base.module';\r\nimport { AppendPipeModule } from '../../pipes/append.pipe.module';\r\nimport {ComboBoxAllModule} from \"@syncfusion/ej2-angular-dropdowns\";\r\n\r\n@NgModule({\r\n imports: [\r\n BaseModule,\r\n CommonModule,\r\n FormsModule,\r\n IconModule,\r\n AppendPipeModule,\r\n ComboBoxAllModule\r\n ],\r\n declarations: [InputComboBoxComponent],\r\n exports: [InputComboBoxComponent]\r\n})\r\nexport class InputComboBoxModule {\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component, ComponentFactoryResolver,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n HostBinding,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n Output,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {BaseInputComponent} from \"../base/base-input.component\";\r\nimport {COMPONENT_INTERFACE_NAME} from \"../base/component-interface-name\";\r\nimport {CoreComponentsIcon} from \"../../core/enum/core-components-icon.enum\";\r\nimport {FormInputUserModelChangeListenerService} from \"../../core/service/form-input-user-change-listener.service\";\r\nimport {NgZoneWrapperService} from \"../../core/service/ng-zone-wrapper.service\";\r\nimport {FormComponent} from \"../form/form.component\";\r\nimport {DatePickerComponent} from \"@syncfusion/ej2-angular-calendars\";\r\nimport {IconCacheService} from \"../icon/icon-cache.service\";\r\n\r\n@Component({\r\n selector: \"co-input-date\",\r\n template: `\r\n <ejs-datepicker #ejsDatePicker\r\n floatLabelType=\"Auto\"\r\n [format]=\"dateFormat\"\r\n [placeholder]=\"placeholder\"\r\n [ngModel]=\"model\"\r\n (ngModelChange)=\"modelChange.emit($event)\"\r\n ></ejs-datepicker>\r\n <div class=\"required-indicator\"></div>\r\n <ng-template #validationError></ng-template>\r\n `,\r\n providers: [{\r\n provide: COMPONENT_INTERFACE_NAME, useExisting: forwardRef(() => InputDatePickerComponent)\r\n }],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class InputDatePickerComponent extends BaseInputComponent<Date> implements OnInit, AfterViewInit, OnDestroy {\r\n public readonly icons: any = CoreComponentsIcon;\r\n\r\n // note: assigning empty string '' to this value will not visually reflect in an empty/clear native inner <input> text content\r\n @ViewChild(\"ejsDatePicker\")\r\n ejsDatePicker: DatePickerComponent;\r\n\r\n @Input()\r\n public dateFormat: string = \"dd-MM-yyyy\";\r\n\r\n @Input()\r\n public calendarIconName: CoreComponentsIcon = this.icons.CalendarEmpty;\r\n\r\n @Input()\r\n public iconHeight: string = \"24px\";\r\n\r\n @Input()\r\n public placeholder: string = \"\";\r\n\r\n @Input()\r\n public width: string | number;\r\n\r\n @Output()\r\n public readonly blur: EventEmitter<Event> = new EventEmitter<Event>();\r\n\r\n @HostBinding(\"class.co-input-date\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n constructor(\r\n @Optional() public formComponent: FormComponent,\r\n public iconCacheService: IconCacheService,\r\n protected changeDetector: ChangeDetectorRef,\r\n protected componentFactoryResolver: ComponentFactoryResolver,\r\n protected formUserChangeListener?: FormInputUserModelChangeListenerService,\r\n protected ngZoneWrapper?: NgZoneWrapperService,\r\n public elementRef?: ElementRef,\r\n ) {\r\n super(changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef);\r\n super._markAsOnPush();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.elementRef = undefined;\r\n super.ngOnDestroy();\r\n }\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.ejsDatePicker) {\r\n const calendarIcon: string = this.iconCacheService.getIconRawBase64(this.calendarIconName);\r\n const imgElement: HTMLElement = document.createElement(\"img\");\r\n imgElement.setAttribute(\r\n \"src\",\r\n calendarIcon\r\n );\r\n imgElement.setAttribute(\r\n \"height\",\r\n this.iconHeight\r\n );\r\n imgElement.setAttribute(\"class\", \"customImage\");\r\n //remove the font-icon class\r\n this.ejsDatePicker.element.parentElement\r\n .querySelector(\".e-icons\")\r\n .classList.remove(\"e-date-icon\");\r\n this.ejsDatePicker.element.parentElement\r\n .querySelector(\".e-icons\")\r\n .append(imgElement);\r\n this.changeDetector.detectChanges();\r\n }\r\n super.ngAfterViewInit();\r\n }\r\n\r\n public change(): void {\r\n this.model = this.ejsDatePicker.value;\r\n }\r\n}\r\n","import {NgModule, NO_ERRORS_SCHEMA} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { InputDatePickerComponent } from './input-date-picker.component';\r\nimport { IconModule } from '../icon/icon.module';\r\nimport { BaseModule } from '../base/base.module';\r\nimport { AppendPipeModule } from '../../pipes/append.pipe.module';\r\nimport {DatePickerModule} from \"@syncfusion/ej2-angular-calendars\";\r\n\r\n@NgModule({\r\n imports: [\r\n BaseModule,\r\n CommonModule,\r\n FormsModule,\r\n IconModule,\r\n AppendPipeModule,\r\n DatePickerModule\r\n ],\r\n schemas: [\r\n NO_ERRORS_SCHEMA\r\n ],\r\n declarations: [InputDatePickerComponent],\r\n exports: [InputDatePickerComponent]\r\n})\r\nexport class InputDatePickerModule {\r\n}\r\n","export const JAVA_MAX_INT: number = 2147483647;","import {JAVA_MAX_INT} from \"./java-max-int\";\r\n\r\nexport const DEFAULT_UPPER_BOUND_FOR_RANGE_COMPONENTS: number = JAVA_MAX_INT;","import {Subject} from \"rxjs\";\r\n\r\nimport {isNill} from \"../function/is-nill.function\";\r\nimport {DEFAULT_UPPER_BOUND_FOR_RANGE_COMPONENTS} from \"../constant/default-upper-bound-for-range-components\";\r\nimport {NumberUtils} from \"../utils/number-utils\";\r\n\r\n\r\n// A data type class that represents a stepped-bounds numerical value, with min max and step size. Value is always within these bounds and is auto corrected for incoming manipulation requests.\r\nexport class BoundsConstrainedNumberValue {\r\n public set value(value: number) {\r\n this.setValue(value, true);\r\n }\r\n\r\n public get value(): number {\r\n return this._value;\r\n }\r\n\r\n // Returns a display string of our .value number (NaN and undefined become the empty string).\r\n public get valueAsSting(): string {\r\n return this._valueAsString;\r\n }\r\n\r\n public set min(min: number) {\r\n if (isNill(min)) {\r\n return;\r\n }\r\n\r\n let shouldUpdateTrueMax: boolean = (this._min !== min);\r\n\r\n this._min = min;\r\n\r\n if (shouldUpdateTrueMax) {\r\n this._updateTrueMax();\r\n }\r\n }\r\n\r\n public get min(): number {\r\n return this._min;\r\n }\r\n\r\n public set max(max: number) {\r\n if (isNill(max)) {\r\n return;\r\n }\r\n\r\n let shouldUpdateTrueMax: boolean = (this._max !== max);\r\n\r\n this._max = max;\r\n\r\n if (shouldUpdateTrueMax) {\r\n this._updateTrueMax();\r\n }\r\n }\r\n\r\n public get max(): number {\r\n return this._max;\r\n }\r\n\r\n public get trueMax(): number {\r\n return this._trueMax;\r\n }\r\n\r\n // The step interval size for allowed numbers Y = min + N * step, where N is integer or 0.\r\n public set step(step: number) {\r\n if (isNill(step)) {\r\n return;\r\n }\r\n\r\n let shouldUpdateTrueMaxAndStepDecimals: boolean = (this._step !== step);\r\n\r\n this._step = step;\r\n\r\n if (shouldUpdateTrueMaxAndStepDecimals) {\r\n this._updateTrueMax();\r\n this._updateStepDecimals();\r\n }\r\n }\r\n\r\n public set decimals(decimals: number) {\r\n if (decimals > 0) {\r\n this._decimals = decimals;\r\n }\r\n }\r\n public get step(): number {\r\n return this._step;\r\n }\r\n\r\n public get stepDecimals(): number {\r\n return this._stepDecimals;\r\n }\r\n\r\n public get constraintsEnabled(): boolean {\r\n return this._constraintsEnabled;\r\n }\r\n\r\n // emits when the value changed (e.g. after it was corrected for bounds)\r\n public valueChange: Subject<number> = new Subject<number>();\r\n\r\n // the actual numeric current value, which we ensure always complies to our current min, max and step\r\n protected _value: number = 0;\r\n protected _decimals: number; // number of decimals of the value.\r\n protected _valueAsString: string = \"0\";\r\n protected _min: number = 0;\r\n protected _max: number = DEFAULT_UPPER_BOUND_FOR_RANGE_COMPONENTS;\r\n protected _step: number = 1; // stepsize before the decimal.\r\n protected _stepDecimals: number = 0; // derived from step\r\n protected _trueMax: number = DEFAULT_UPPER_BOUND_FOR_RANGE_COMPONENTS; // derived from min, max and step\r\n\r\n private _constraintsEnabled: boolean = true;\r\n\r\n private _precision?: number;\r\n private _scale?: number;\r\n\r\n constructor() {\r\n }\r\n\r\n public roundedDecimals(value: number): number {\r\n if (value >= 0) {\r\n return 1 / Math.pow(10, value);\r\n }\r\n return 0;\r\n }\r\n\r\n public putPrecision(precision: number): void {\r\n this._precision = precision;\r\n this.max = NumberUtils.PrecisionScaleToMaxValue(this._precision, this._scale);\r\n }\r\n\r\n public putScale(scale: number): void {\r\n this._scale = scale;\r\n this.step = NumberUtils.DecimalsToStepIncrement(this._scale);\r\n this.max = NumberUtils.PrecisionScaleToMaxValue(this._precision, this._scale);\r\n }\r\n\r\n // possibly corrects value for bounds\r\n public init(silent: boolean = false): void {\r\n this.setValue(this._value, silent);\r\n }\r\n\r\n // returns whether value really changed\r\n public setValueByUserInputText(text: string, silent: boolean = false): boolean {\r\n const prevVal: any = this.value;\r\n\r\n if (NumberUtils.IsParsableNumberInput(text)) {\r\n this.setValue(NumberUtils.ParseNumberInputOrDefault(text), silent);\r\n } else {\r\n this.setValue(undefined);\r\n }\r\n\r\n return prevVal !== this.value;\r\n }\r\n\r\n /**\r\n * Makes sure current value adheres to our stepped bounds. Returns true if inner value really changed (after sanitizing), false if not.\r\n * Returns whether value really changed.\r\n */\r\n public setValue(newValue: number, silent: boolean = false): boolean {\r\n const oldValue: number = this._value;\r\n\r\n if (!this._constraintsEnabled) {\r\n this._setValue(newValue);\r\n } else {\r\n // cut off given newValue float excesses for cases such as \"13.1000000000000000000001\"\r\n //newValue = NumberUtils.ParseFloat(newValue, NumberUtils.GetDecimalPlaces(this._step));\r\n\r\n if (this._decimals === undefined) {\r\n this._decimals = NumberUtils.GetDecimalPlaces(newValue);\r\n }\r\n\r\n newValue = NumberUtils.ParseFloat(newValue, this._decimals);\r\n // dont perform bounds check if no min or max set.\r\n if (isNaN(this._min) || isNaN(this._max)) {\r\n this._setValue(newValue);\r\n } else if (newValue >= this._min && newValue <= this._max) {\r\n this._setValue(NumberUtils.GetNearestNumberWithinSteppedBounds(newValue, this._min, this._max, this.roundedDecimals(this._decimals)));\r\n }\r\n }\r\n\r\n if (isNaN(this._value)) {\r\n this._setValue(undefined);\r\n }\r\n\r\n if (!silent) {\r\n this.valueChange.next(this._value);\r\n }\r\n\r\n return oldValue !== this._value;\r\n }\r\n\r\n public increment(steps: number = 1): void {\r\n this.setValue(this._value + this._step * steps);\r\n }\r\n\r\n public decrement(steps: number = 1): void {\r\n this.setValue(this._value - this._step * steps);\r\n }\r\n\r\n // afterwards, you may set any value, it won't be checked against our bounds anymore\r\n public disableConstraints(): void {\r\n this._constraintsEnabled = false;\r\n }\r\n\r\n public enableConstraints(): void {\r\n this._constraintsEnabled = true;\r\n }\r\n\r\n private _updateTrueMax(): void {\r\n this._trueMax = NumberUtils.GetTrueSteppedBoundsMax(this._min, this._max, this._step);\r\n }\r\n\r\n private _updateStepDecimals(): void {\r\n this._stepDecimals = NumberUtils.GetDecimalPlaces(this._step);\r\n }\r\n\r\n private _setValue(value: number): void {\r\n this._value = value;\r\n this._valueAsString = NumberUtils.ToString(this._value);\r\n }\r\n}\r\n","// human-readable JS keyboard codes, as found in KeyboardEvent.which numeric values\r\nexport enum KeyboardCode {\r\n Backspace = 8,\r\n Tab = 9,\r\n Enter = 13,\r\n Shift = 16,\r\n Escape = 27,\r\n SpaceBar = 32,\r\n End = 35,\r\n Home = 36,\r\n Left = 37,\r\n Up = 38,\r\n Right = 39,\r\n Down = 40,\r\n Insert = 45,\r\n Delete = 46,\r\n Zero = 48,\r\n One = 49,\r\n Two = 50,\r\n Three = 51,\r\n Four = 52,\r\n Five = 53,\r\n Six = 54,\r\n Seven = 55,\r\n Eight = 56,\r\n Nine = 57,\r\n A = 65,\r\n B = 66,\r\n C = 67,\r\n D = 68,\r\n e =\t69,\r\n F =\t70,\r\n G =\t71,\r\n H =\t72,\r\n I =\t73,\r\n J =\t74,\r\n K =\t75,\r\n L =\t76,\r\n M =\t77,\r\n N =\t78,\r\n O =\t79,\r\n P =\t80,\r\n Q =\t81,\r\n R =\t82,\r\n S =\t83,\r\n T =\t84,\r\n U =\t85,\r\n V =\t86,\r\n W =\t87,\r\n X =\t88,\r\n Y =\t89,\r\n Z =\t90,\r\n NumpadZero = 96,\r\n NumpadOne = 97,\r\n NumpadTwo = 98,\r\n NumpadThree = 99,\r\n NumpadFour = 100,\r\n NumpadFive = 101,\r\n NumpadSix = 102,\r\n NumpadSeven = 103,\r\n NumpadEight = 104,\r\n NumpadNine = 105,\r\n Substract = 109,\r\n DecimalPoint = 110,\r\n Add = 107,\r\n MinusFireFox = 173,\r\n Equal = 187,\r\n Comma = 188,\r\n Minus = 189,\r\n Period = 190,\r\n Tilde = 192\r\n}\r\n","import {KeyboardCode} from \"../enum/keyboard-code.enum\";\r\n\r\nexport const NUMBER_INPUTS_KEY_DOWN_WHITE_LIST: KeyboardCode[] = [\r\n /* navigation and functional utility buttons */\r\n KeyboardCode.Left,\r\n KeyboardCode.Up,\r\n KeyboardCode.Right,\r\n KeyboardCode.Down,\r\n KeyboardCode.Up,\r\n KeyboardCode.Tab,\r\n KeyboardCode.Home,\r\n KeyboardCode.End,\r\n KeyboardCode.Delete,\r\n KeyboardCode.Insert,\r\n KeyboardCode.Shift,\r\n KeyboardCode.Backspace,\r\n\r\n /* actual number input part */\r\n KeyboardCode.Comma,\r\n KeyboardCode.Period,\r\n KeyboardCode.DecimalPoint,\r\n KeyboardCode.Zero,\r\n KeyboardCode.One,\r\n KeyboardCode.Two,\r\n KeyboardCode.Three,\r\n KeyboardCode.Four,\r\n KeyboardCode.Five,\r\n KeyboardCode.Six,\r\n KeyboardCode.Seven,\r\n KeyboardCode.Eight,\r\n KeyboardCode.Nine,\r\n KeyboardCode.Minus,\r\n KeyboardCode.MinusFireFox,\r\n KeyboardCode.Substract,\r\n KeyboardCode.NumpadZero,\r\n KeyboardCode.NumpadOne,\r\n KeyboardCode.NumpadTwo,\r\n KeyboardCode.NumpadThree,\r\n KeyboardCode.NumpadFour,\r\n KeyboardCode.NumpadFive,\r\n KeyboardCode.NumpadSix,\r\n KeyboardCode.NumpadSeven,\r\n KeyboardCode.NumpadEight,\r\n KeyboardCode.NumpadNine\r\n];","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n ComponentFactoryResolver,\r\n ElementRef,\r\n forwardRef,\r\n HostBinding,\r\n Input,\r\n Optional,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {BaseInputComponent} from \"../base/base-input.component\";\r\nimport {COMPONENT_INTERFACE_NAME} from \"../base/component-interface-name\";\r\nimport {CoreComponentsIcon} from \"../../core/enum/core-components-icon.enum\";\r\nimport {KeyboardCode} from \"../../core/enum/keyboard-code.enum\";\r\nimport {FormInputUserModelChangeListenerService} from \"../../core/service/form-input-user-change-listener.service\";\r\nimport {NgZoneWrapperService} from \"../../core/service/ng-zone-wrapper.service\";\r\nimport {FormComponent} from \"../form/form.component\";\r\n\r\n@Component({\r\n selector: \"co-input-text\",\r\n template: `\r\n <label [textContent]=\"placeholder\"></label>\r\n <input [type]=\"type\"\r\n [ngModel]=\"model\"\r\n [readonly]=\"readonly\"\r\n [required]=\"required\"\r\n (ngModelChange)=\"modelChange.emit($event)\"\r\n (focus)=\"focused = true\"\r\n (blur)=\"focused = false\"\r\n >\r\n <div class=\"required-indicator\"></div>\r\n <ng-template #validationError></ng-template>\r\n `,\r\n providers: [{\r\n provide: COMPONENT_INTERFACE_NAME,\r\n useExisting: forwardRef(() => InputTextComponent)\r\n }],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class InputTextComponent extends BaseInputComponent<any> implements AfterViewInit {\r\n public readonly Icons: typeof CoreComponentsIcon = CoreComponentsIcon;\r\n\r\n @Input()\r\n public placeholder: string = \"\";\r\n\r\n @Input()\r\n public type: string = \"text\";\r\n\r\n @Input()\r\n public showClearButton: boolean = undefined;\r\n\r\n @Input()\r\n public keyDownWhiteList: KeyboardCode[];\r\n\r\n @HostBinding(\"class.co-input-text\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n @HostBinding(\"class.has-own-label\")\r\n public hasOwnLabel: boolean = true;\r\n\r\n constructor(\r\n @Optional() public formComponent: FormComponent,\r\n protected changeDetector: ChangeDetectorRef,\r\n protected componentFactoryResolver: ComponentFactoryResolver,\r\n protected formUserChangeListener?: FormInputUserModelChangeListenerService,\r\n protected ngZoneWrapper?: NgZoneWrapperService,\r\n public elementRef?: ElementRef,\r\n ) {\r\n super(changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef);\r\n super._markAsOnPush();\r\n }\r\n}\r\n","// Input values for 'buttonShowMode' of NumberPickerComponent.\r\nexport enum InputNumberPickerButtonShowMode {\r\n Always = \"always\",\r\n OnFocusOnly = \"onFocusOnly\",\r\n Never = \"never\"\r\n}\r\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n EventEmitter,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n ViewChild,\n ViewEncapsulation\n} from \"@angular/core\";\nimport {BaseInputComponent} from \"../base/base-input.component\";\nimport {InputBoolean} from \"../../core/decorator/input-boolean.decorator\";\nimport {Subscription} from \"rxjs\";\nimport {BoundsConstrainedNumberValue} from \"../../core/model/bounds-constrained-number-value\";\nimport {NUMBER_INPUTS_KEY_DOWN_WHITE_LIST} from \"../../core/constant/number-inputs-key-down-white-list\";\nimport {KeyboardCode} from \"../../core/enum/keyboard-code.enum\";\nimport {InputTextComponent} from \"../input-text/input-text.component\";\nimport {FormInputUserModelChangeListenerService} from \"../../core/service/form-input-user-change-listener.service\";\nimport {InputNumberPickerButtonShowMode} from \"../../core/enum/input-number-picker-show-mode.enum\";\nimport {IconCacheService} from \"../icon/icon-cache.service\";\nimport {CoreComponentsIcon} from \"../../core/enum/core-components-icon.enum\";\nimport {COMPONENT_INTERFACE_NAME} from \"../base/component-interface-name\";\nimport {FormComponent} from \"../form/form.component\";\n\n@Component({\n selector: 'co-input-number-picker',\n template: `\n <div class=\"button-wrapper\">\n <co-button *ngIf=\"showButtons\" class=\"minus-operator circle\" [class.select]=\"minSelected\"\n [disabled]=\"readonly\"\n [iconData]=\"iconCacheService.getIcon(minusIcon)\"\n (mousedown)=\"onMinusMouseDown($event)\"\n (mouseup)=\"stopAutoCounting()\" (mouseleave)=\"stopAutoCounting()\"></co-button>\n </div>\n <input type=\"text\"\n [ngModel]=\"numberLogic.valueAsSting\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n (keydown)=\"handleKeyDown($event)\"/>\n <div class=\"button-wrapper\">\n <co-button *ngIf=\"showButtons\" class=\"plus-operator circle\" [class.select]=\"plusSelected\"\n [disabled]=\"readonly\"\n [iconData]=\"iconCacheService.getIcon(plusIcon)\"\n (mousedown)=\"onPlusMouseDown($event)\"\n (mouseup)=\"stopAutoCounting()\" (mouseleave)=\"stopAutoCounting()\"></co-button>\n </div>\n `,\n providers: [{\n provide: COMPONENT_INTERFACE_NAME, useExisting: forwardRef(() => InputNumberPickerComponent)\n }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\n// A component that lets users pick a number by increasing and decreasing it with buttons, or by typing.\nexport class InputNumberPickerComponent extends BaseInputComponent<number> implements OnInit, OnDestroy {\n\n // @override\n @Input()\n public set model(model: number) {\n this.numberLogic.value = model;\n }\n\n public get model(): number {\n return this.numberLogic.value;\n }\n\n @Input()\n public set min(min: number) {\n this.numberLogic.min = min;\n }\n\n @Input()\n public set step(step: number) {\n this.numberLogic.step = step;\n }\n\n @Input()\n public set max(max: number) {\n this.numberLogic.max = max;\n }\n\n @Input()\n public ngModelOptions: any;\n\n @Input()\n public minusIcon: CoreComponentsIcon = CoreComponentsIcon.MinusSimple;\n\n @Input()\n public plusIcon: CoreComponentsIcon = CoreComponentsIcon.PlusSimple;\n\n // Whether to show buttons 'always', 'onFocusOnly', or 'never'\n @Input()\n public buttonShowMode: InputNumberPickerButtonShowMode = InputNumberPickerButtonShowMode.Always;\n\n // @override Default true for us.\n @Input() @InputBoolean()\n public noValidation: boolean = true;\n\n @Input()\n public set decimals(decimals: number) {\n this.numberLogic.decimals = decimals;\n }\n\n // @override\n @Output()\n public readonly modelChange: EventEmitter<number> = new EventEmitter<number>();\n\n @ViewChild(InputTextComponent, { static: true })\n public inputTextComp: InputTextComponent;\n\n @HostBinding(\"class.show-buttons-on-focus-only\")\n public get showButtonsOnFocusOnly(): boolean {\n return this.buttonShowMode === InputNumberPickerButtonShowMode.OnFocusOnly;\n }\n\n @HostBinding(\"class.has-label\")\n public get hasLabel(): boolean {\n return !!this.label;\n }\n\n @HostBinding('class.co-input-number-picker')\n public showClass(): boolean {\n return true;\n }\n\n public showButtons: boolean;\n\n public readonly myKeyDownWhiteList: KeyboardCode[] = NUMBER_INPUTS_KEY_DOWN_WHITE_LIST;\n\n public readonly numberLogic: BoundsConstrainedNumberValue = new BoundsConstrainedNumberValue();\n\n public minSelected: boolean = false;\n public plusSelected: boolean = false;\n\n private _numberInputHasFocus: boolean = false;\n\n private _numberLogicValueChangeSub: Subscription;\n private readonly _delayBeforeStartAutoCountMs: number = 666;\n // the 'speed gears' for auto counting\n private readonly _stepFactors: number[] = [1, 10, 20];\n // increase step size timing\n private readonly _msChangeStepFactor: number = 1000;\n // step speed\n private readonly _msDoStep: number = 5;\n // hold the mouse down and this increases for a faster auto increment\n private _stepFactor: number = this._stepFactors[0];\n private _mayAutoCount: boolean = false;\n\n private _autoCountTimeout: number;\n private _stepIncrementTimeout: number;\n private _startAutocountTimeout: number;\n\n constructor(\n @Optional() public formComponent: FormComponent,\n @Inject(IconCacheService) public iconCacheService: IconCacheService,\n private _ngZone: NgZone,\n protected componentFactoryResolver: ComponentFactoryResolver,\n changeDetector: ChangeDetectorRef,\n formUserChangeListener: FormInputUserModelChangeListenerService\n ) {\n super(changeDetector, componentFactoryResolver, formUserChangeListener);\n\n this._numberLogicValueChangeSub = this.numberLogic.valueChange.subscribe((value: number) => {\n this.inputTextComp.model = \"\" + value; // faster than this.detectChanges() just for that input\n\n if (!this._mayAutoCount) {\n this.modelChange.emit(value);\n // custom form user chagne listener .next because we don't user super.updateModel() which normally does that for us\n if (this._markedAsUserTouched) {\n this.formUserChangeListener.userModelChange.next(value);\n this.userModelChange.next(value);\n }\n }\n });\n }\n\n ngOnInit(): void {\n this.numberLogic.init(true);\n this._updateButtonsShowState();\n }\n\n ngOnDestroy(): void {\n this._numberLogicValueChangeSub.unsubscribe();\n clearTimeout(this._autoCountTimeout);\n clearTimeout(this._stepIncrementTimeout);\n clearTimeout(this._startAutocountTimeout);\n }\n\n // Note: recursive through setTimeout().\n public doIncrementAuto(): void {\n this._mayAutoCount = true;\n\n this.increment(this._stepFactor);\n\n this._ngZone.runOutsideAngular(() => {\n this._autoCountTimeout = window.setTimeout(() => {\n if (this._mayAutoCount) {\n this.doIncrementAuto();\n this.changeDetector.detectChanges();\n }\n }, this._msDoStep);\n });\n }\n\n public handleKeyDown(event: KeyboardEvent): boolean {\n // event.preventDefault();\n if (this.myKeyDownWhiteList.find((k) => k === event.keyCode) === undefined) {\n return false;\n }\n }\n\n // Note: recursive through setTimeout().\n public doDecrementAuto(): void {\n this._mayAutoCount = true;\n\n this.decrement(this._stepFactor);\n\n this._ngZone.runOutsideAngular(() => {\n this._autoCountTimeout = window.setTimeout(() => {\n if (this._mayAutoCount) {\n this.doDecrementAuto();\n this.changeDetector.detectChanges();\n }\n }, this._msDoStep);\n });\n }\n\n public stopAutoCounting(): void {\n this.minSelected = false;\n this.plusSelected = false;\n this._mayAutoCount = false;\n this._stepFactor = this._stepFactors[0];\n }\n\n // Sets the current number value with given newValue, optionally silent (no valueChange event fired).\n public setValue(newValue: number, silent: boolean = false): void {\n this.numberLogic.setValue(newValue, silent);\n }\n\n public increment(steps: number = 1): void {\n this.numberLogic.increment(steps);\n }\n\n public decrement(steps: number = 1): void {\n this.numberLogic.decrement(steps);\n }\n\n public onPlusMouseDown(event: Event): void {\n if (this.readonly) {\n event.preventDefault();\n return;\n }\n this.plusSelected = true;\n this._markedAsUserTouched = true;\n\n // keeps focus on input text instead of button\n event.preventDefault();\n\n this.increment();\n this._mayAutoCount = true;\n\n clearTimeout(this._startAutocountTimeout);\n this._startAutocountTimeout = window.setTimeout(() => {\n if (this._mayAutoCount) {\n this.doIncrementAuto();\n this._doIncreaseStepFactor();\n }\n }, this._delayBeforeStartAutoCountMs);\n }\n\n public onMinusMouseDown(event: Event): void {\n if (this.readonly) {\n event.preventDefault();\n return;\n }\n this.minSelected = true;\n this._markedAsUserTouched = true;\n // keeps focus on input text instead of button\n event.preventDefault();\n\n this.decrement();\n this._mayAutoCount = true;\n\n clearTimeout(this._startAutocountTimeout);\n this._startAutocountTimeout = window.setTimeout(() => {\n if (this._mayAutoCount) {\n this.doDecrementAuto();\n this._doIncreaseStepFactor();\n }\n }, this._delayBeforeStartAutoCountMs);\n }\n\n // Possibly show buttons.\n public onNumberInputFocus(): void {\n this._numberInputHasFocus = true;\n this._updateButtonsShowState();\n }\n\n // Value correction point.\n public onNumberInputBlur(): void {\n this._numberInputHasFocus = false;\n this.numberLogic.setValueByUserInputText(this.inputTextComp.model);\n this._updateButtonsShowState();\n }\n\n // Note: recursive.\n private _doIncreaseStepFactor(): void {\n this._stepIncrementTimeout = window.setTimeout(() => {\n if (this._mayAutoCount) {\n this._stepFactor = this._getNextStepFactorMouseDown();\n this._doIncreaseStepFactor();\n }\n }, this._msChangeStepFactor);\n }\n\n private _getNextStepFactorMouseDown(): number {\n const curIdx: number = this._stepFactors.indexOf(this._stepFactor);\n if (curIdx < this._stepFactors.length - 1) {\n return this._stepFactors[curIdx + 1];\n }\n return this._stepFactor;\n }\n\n // Show or hide + and - buttons. Might hide buttons if number input lost focus and button show mode is on focus only.\n private _updateButtonsShowState(): void {\n switch (this.buttonShowMode) {\n case InputNumberPickerButtonShowMode.Always:\n default:\n this.showButtons = true;\n break;\n case InputNumberPickerButtonShowMode.OnFocusOnly:\n this.showButtons = this._numberInputHasFocus;\n break;\n case InputNumberPickerButtonShowMode.Never:\n this.showButtons = false;\n break;\n }\n }\n}\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {ValidationErrorComponent} from \"./validation-error.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n ValidationErrorComponent\r\n ],\r\n exports: [\r\n ValidationErrorComponent\r\n ]\r\n})\r\nexport class ValidationErrorModule {\r\n\r\n}\r\n","import {NgModule, NO_ERRORS_SCHEMA} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {FormsModule} from \"@angular/forms\";\r\nimport {InputTextComponent} from \"./input-text.component\";\r\nimport {IconModule} from \"../icon/icon.module\";\r\nimport {BaseModule} from \"../base/base.module\";\r\nimport {AppendPipeModule} from \"../../pipes/append.pipe.module\";\r\nimport {NumericTextBoxModule, TextBoxAllModule} from \"@syncfusion/ej2-angular-inputs\";\r\nimport {ValidationErrorModule} from \"../validation-error/validation-error.module\";\r\n\r\n@NgModule({\r\n imports: [\r\n BaseModule,\r\n CommonModule,\r\n FormsModule,\r\n IconModule,\r\n AppendPipeModule,\r\n TextBoxAllModule,\r\n NumericTextBoxModule,\r\n ValidationErrorModule\r\n ],\r\n declarations: [\r\n InputTextComponent\r\n ],\r\n exports: [\r\n InputTextComponent\r\n ]\r\n})\r\nexport class InputTextModule {\r\n}\r\n","import {NgModule} from \"@angular/core\";\nimport {CommonModule} from \"@angular/common\";\nimport {InputNumberPickerComponent} from \"./input-number-picker.component\";\nimport {ButtonModule} from \"../button/button.module\";\nimport {InputTextModule} from \"../input-text/input-text.module\";\nimport {FormsModule} from \"@angular/forms\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ButtonModule,\n InputTextModule\n ],\n declarations: [InputNumberPickerComponent],\n exports: [InputNumberPickerComponent]\n})\nexport class InputNumberPickerModule { }\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component, ComponentFactoryResolver, ElementRef,\r\n forwardRef,\r\n HostBinding,\r\n Input,\r\n Optional,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {BaseInputComponent} from \"../base/base-input.component\";\r\nimport {FormComponent} from \"../form/form.component\";\r\nimport {FormInputUserModelChangeListenerService} from \"../../core/service/form-input-user-change-listener.service\";\r\nimport {NgZoneWrapperService} from \"../../core/service/ng-zone-wrapper.service\";\r\nimport {COMPONENT_INTERFACE_NAME} from \"../base/component-interface-name\";\r\nimport {IconCacheService} from \"../icon/icon-cache.service\";\r\n\r\n@Component({\r\n selector: \"co-input-radio-button\",\r\n template: `\r\n <ejs-radiobutton\r\n [label]=\"label\"\r\n [name]=\"name\"\r\n [value]=\"value\"\r\n [checked]=\"checked\"\r\n (change)=\"handleModelChange($event)\"\r\n ></ejs-radiobutton>\r\n `,\r\n providers: [{\r\n provide: COMPONENT_INTERFACE_NAME, useExisting: forwardRef(() => InputRadioButtonComponent)\r\n }],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class InputRadioButtonComponent extends BaseInputComponent<any> {\r\n @Input()\r\n public value: any;\r\n\r\n @Input()\r\n public label: string;\r\n\r\n @Input()\r\n public name: string;\r\n\r\n @HostBinding('class.checked')\r\n @Input()\r\n public checked: boolean;\r\n\r\n @HostBinding(\"class.co-radio-button\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n constructor(\r\n @Optional() public formComponent: FormComponent,\r\n protected changeDetector: ChangeDetectorRef,\r\n protected componentFactoryResolver: ComponentFactoryResolver,\r\n protected formUserChangeListener?: FormInputUserModelChangeListenerService,\r\n protected ngZoneWrapper?: NgZoneWrapperService,\r\n public elementRef?: ElementRef,\r\n ) {\r\n super(changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef);\r\n super._markAsOnPush();\r\n }\r\n\r\n public handleModelChange(change: any): void {\r\n this.model = change.value;\r\n this.modelChange.next(this.model);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { BaseModule } from '../base/base.module';\r\nimport { InputRadioButtonComponent } from './input-radio-button.component';\r\nimport {CheckBoxModule, RadioButtonModule} from \"@syncfusion/ej2-angular-buttons\";\r\n\r\n@NgModule({\r\n imports: [\r\n BaseModule,\r\n CommonModule,\r\n FormsModule,\r\n CheckBoxModule,\r\n RadioButtonModule,\r\n ],\r\n declarations: [InputRadioButtonComponent],\r\n exports: [InputRadioButtonComponent]\r\n})\r\nexport class InputRadioButtonModule {\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n ComponentFactoryResolver,\r\n ElementRef,\r\n forwardRef,\r\n HostBinding,\r\n Input,\r\n Optional,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {BaseInputComponent} from \"../base/base-input.component\";\r\nimport {COMPONENT_INTERFACE_NAME} from \"../base/component-interface-name\";\r\nimport {FormInputUserModelChangeListenerService} from \"../../core/service/form-input-user-change-listener.service\";\r\nimport {NgZoneWrapperService} from \"../../core/service/ng-zone-wrapper.service\";\r\nimport {FormComponent} from \"../form/form.component\";\r\n\r\n@Component({\r\n selector: \"co-input-textarea\",\r\n template: `\r\n <label [textContent]=\"placeholder\"></label>\r\n <textarea type=\"textarea\"\r\n [ngModel]=\"model\"\r\n [readonly]=\"readonly\"\r\n [required]=\"required\"\r\n (ngModelChange)=\"modelChange.emit($event)\"\r\n (focus)=\"focused = true\"\r\n (blur)=\"focused = false\"\r\n ></textarea>\r\n <div class=\"required-indicator\"></div>\r\n <ng-template #validationError></ng-template>\r\n `,\r\n providers: [{\r\n provide: COMPONENT_INTERFACE_NAME,\r\n useExisting: forwardRef(() => InputTextareaComponent)\r\n }],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class InputTextareaComponent extends BaseInputComponent<any> implements AfterViewInit {\r\n @Input()\r\n public placeholder: string = \"\";\r\n\r\n @HostBinding(\"class.co-input-textarea\")\r\n public showClass(): boolean {\r\n return true;\r\n }\r\n\r\n @HostBinding(\"class.has-own-label\")\r\n public hasOwnLabel: boolean = true;\r\n\r\n @HostBinding('class.custom-height')\r\n public customHeight: boolean = true;\r\n\r\n constructor(\r\n @Optional() public formComponent: FormComponent,\r\n protected changeDetector: ChangeDetectorRef,\r\n protected componentFactoryResolver: ComponentFactoryResolver,\r\n protected formUserChangeListener?: FormInputUserModelChangeListenerService,\r\n protected ngZoneWrapper?: NgZoneWrapperService,\r\n public elementRef?: ElementRef,\r\n ) {\r\n super(changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef);\r\n super._markAsOnPush();\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {FormsModule} from \"@angular/forms\";\r\nimport {ValidationErrorModule} from \"../validation-error/validation-error.module\";\r\nimport {InputTextareaComponent} from \"./input-textarea.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ValidationErrorModule\r\n ],\r\n declarations: [\r\n InputTextareaComponent\r\n ],\r\n exports: [\r\n InputTextareaComponent\r\n ]\r\n})\r\nexport class InputTextareaModule {\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ComponentFactoryResolver,\r\n ElementRef,\r\n forwardRef,\r\n HostBinding,\r\n Input,\r\n Optional,\r\n TemplateRef,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {COMPONENT_INTERFACE_NAME} from \"../base/component-interface-name\";\r\nimport {BaseInputComponent} from \"../base/base-input.component\";\r\nimport {CheckBoxSelectionService} from \"@syncfusion/ej2-angular-dropdowns\";\r\nimport {FormInputUserModelChangeListenerService} from \"../../core/service/form-input-user-change-listener.service\";\r\nimport {NgZoneWrapperService} from \"../../core/service/ng-zone-wrapper.service\";\r\nimport {FormComponent} from \"../form/form.component\";\r\n\r\n@Component({\r\n selector: \"co-multi-select-list\",\r\n template: `\r\n <ejs-multiselect\r\n [dataSource]=\"collection\"\r\n [placeholder]=\"placeholder\"\r\n [value]=\"model\"\r\n [mode]=\"mode\"\r\n [fields]=\"fields\"\r\n [readonly]=\"readonly\"\r\n [itemTemplate]=\"itemTemplate\"\r\n [headerTemplate]=\"headerTemplate\"\r\n [valueTemplate]=\"valueTemplate\"\r\n [footerTemplate]=\"footerTemplate\"\r\n [selectAllText]=\"'Select All'\"\r\n [showSelectAll]=showSelectAll\r\n [ngModel]=\"model\"\r\n (ngModelChange)=\"handleModelChange($event)\"\r\n (valueChange)=\"handleModelChange($event)\"\r\n ></ejs-multiselect>\r\n <div class=\"required-indicator\"></div>\r\n <ng-template #validationError></ng-template>\r\n `,\r\n providers: [\r\n CheckBoxSelectionService,\r\n {\r\n provide: COMPONENT_INTERFACE_NAME,\r\n useExisting: forwardRef(() => MultiSelectListComponent)\r\n }\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MultiSelectListComponent extends BaseInputComponent<any[]> {\r\n\r\n @Input()\r\n public collection: any[];\r\n\r\n /**\r\n * In the form { text: 'name', value: 'id' }\r\n * Where 'text' is showing in the dropdown and 'id' used for the model binding\r\n */\r\n @Input()\r\n public fields: Object = {};\r\n\r\n @Input()\r\n public placeholder: string;\r\n\r\n @Input()\r\n public itemTemplate: TemplateRef<any>;\r\n\r\n @Input()\r\n public headerTemplate: TemplateRef<any>;\r\n\r\n @Input()\r\n public valueTemplate: TemplateRef<any>;\r\n\r\n @Input()\r\n public footerTemplate: TemplateRef<any>;\r\n\r\n @Input()\r\n public showSelectAll: boolean = true;\r\n\r\n @Input()\r\n public set showCheckbox(value: boolean) {\r\n if (value) {\r\n this.mode = \"CheckBox\";\r\n }\r\n }\r\n\r\n @HostBinding(\"class.co-multi-select-list\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n constructor(\r\n @Optional() public formComponent: FormComponent,\r\n protected changeDetector: ChangeDetectorRef,\r\n protected componentFactoryResolver: ComponentFactoryResolver,\r\n protected formUserChangeListener?: FormInputUserModelChangeListenerService,\r\n protected ngZoneWrapper?: NgZoneWrapperService,\r\n public elementRef?: ElementRef,\r\n ) {\r\n super(changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef);\r\n super._markAsOnPush();\r\n }\r\n\r\n public mode: any = \"Default\";\r\n\r\n public handleModelChange(val: any): void {\r\n if (Array.isArray(val)) {\r\n if (val.length < 1) {\r\n val = undefined;\r\n }\r\n }\r\n this.modelChange.next(val);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BaseModule } from '../base/base.module';\r\nimport { MultiSelectModule } from '@syncfusion/ej2-angular-dropdowns';\r\nimport { MultiSelectListComponent } from './multi-select-list.component';\r\nimport {FormsModule} from \"@angular/forms\";\r\n\r\n@NgModule({\r\n imports: [\r\n BaseModule,\r\n CommonModule,\r\n MultiSelectModule,\r\n FormsModule\r\n ],\r\n declarations: [MultiSelectListComponent],\r\n exports: [MultiSelectListComponent]\r\n})\r\nexport class MultiSelectListModule {\r\n}\r\n","import {AfterViewInit, Component, EventEmitter, HostBinding, Input, OnInit, Output, ViewChild, ViewEncapsulation} from \"@angular/core\";\nimport {\n ConditionalFormattingService,\n FetchReportArgs,\n FieldListService,\n GroupingBarService,\n GroupingService,\n IDataOptions,\n LoadReportArgs,\n NumberFormattingService,\n PivotViewComponent,\n RemoveReportArgs,\n RenameReportArgs,\n SaveReportArgs,\n ToolbarArgs,\n ToolbarItems,\n ToolbarService\n} from \"@syncfusion/ej2-angular-pivotview\";\nimport {GridSettings} from \"@syncfusion/ej2-pivotview/src/pivotview/model/gridsettings\";\nimport {InputBoolean} from \"../../core/decorator/input-boolean.decorator\";\n\n@Component({\n selector: 'co-pivot',\n template: `\n <ejs-pivotview\n #pivot\n id=\"Pivot\"\n [dataSourceSettings]=\"dataSourceSettings\"\n [gridSettings]=\"gridSettings\"\n [showGroupingBar]=\"showGroupingBar\"\n [allowGrouping]=\"allowGrouping\"\n [enablePersistence]=\"enablePersistence\"\n [showFieldList]=\"showFieldList\"\n [showToolbar]=\"showToolbar\"\n [toolbar]=\"toolbarOptions\"\n [allowExcelExport]=\"allowExcelExport\"\n [allowConditionalFormatting]=\"allowConditionalFormatting\"\n [allowNumberFormatting]=\"allowNumberFormatting\"\n [allowPdfExport]=\"allowPdfExport\"\n [allowCalculatedField]=\"allowCalculatedField\"\n [height]=\"height\"\n (saveReport)=\"saveReport($event)\"\n (loadReport)=\"loadReport($event)\"\n (fetchReport)=\"fetchReport($event)\"\n (renameReport)=\"renameReport($event)\"\n (removeReport)=\"removeReport($event)\"\n (newReport)=\"newReport()\"\n (toolbarRender)=\"beforeToolbarRender($event)\"\n (enginePopulated)=\"hanldeEnginePopulated($event)\"\n >\n </ejs-pivotview>\n `,\n providers: [GroupingBarService, GroupingService, ToolbarService, ConditionalFormattingService, FieldListService, NumberFormattingService],\n encapsulation: ViewEncapsulation.None\n})\nexport class CoPivotComponent implements OnInit, AfterViewInit {\n @ViewChild('pivot', {static: false})\n public pivot: PivotViewComponent;\n\n @Input()\n public dataSourceSettings: IDataOptions;\n\n @Input()\n public gridSettings: GridSettings;\n\n @Input()\n public toolbarOptions: ToolbarItems[];\n\n @Input()\n @InputBoolean()\n public showGroupingBar: boolean = false;\n\n @Input()\n @InputBoolean()\n public allowGrouping: boolean = false;\n\n @Input()\n @InputBoolean()\n public enablePersistence: boolean = false;\n\n @Input()\n @InputBoolean()\n public showFieldList: boolean = false;\n\n @Input()\n @InputBoolean()\n public showToolbar: boolean = false;\n\n @Input()\n @InputBoolean()\n public allowExcelExport: boolean = false;\n\n @Input()\n @InputBoolean()\n public allowPdfExport: boolean = false;\n\n @Input()\n @InputBoolean()\n public allowConditionalFormatting: boolean = true;\n\n @Input()\n @InputBoolean()\n public allowNumberFormatting: boolean = true;\n\n @Input()\n @InputBoolean()\n public allowCalculatedField: boolean = false;\n\n @Input()\n public height: string = \"100%\";\n\n @Output()\n public saveReportClick: EventEmitter<SaveReportArgs> = new EventEmitter<SaveReportArgs>();\n\n @Output()\n public loadReportClick: EventEmitter<LoadReportArgs> = new EventEmitter<LoadReportArgs>();\n\n @Output()\n public fetchReportClick: EventEmitter<FetchReportArgs> = new EventEmitter<FetchReportArgs>();\n\n @Output()\n public renameReportClick: EventEmitter<RenameReportArgs> = new EventEmitter<RenameReportArgs>();\n\n @Output()\n public removeReportClick: EventEmitter<RemoveReportArgs> = new EventEmitter<RemoveReportArgs>();\n\n @Output()\n public newReportClick: EventEmitter<void> = new EventEmitter<void>();\n\n @Output()\n public beforeToolbarRenderClick: EventEmitter<ToolbarArgs> = new EventEmitter<ToolbarArgs>();\n\n @Output()\n public enginePopulated: EventEmitter<any> = new EventEmitter<any>();\n\n @HostBinding(\"class.co-pivot\")\n public showClass() {\n return true;\n }\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.pivot.refresh();\n this.pivot.refreshData();\n this.pivot.layoutRefresh();\n }, 3000);\n }\n\n public saveReport(args: SaveReportArgs): void {\n if (args) {\n this.saveReportClick.next(args);\n }\n }\n\n public loadReport(args: LoadReportArgs): void {\n if (args) {\n this.loadReportClick.next(args);\n }\n }\n\n public fetchReport(args: FetchReportArgs): void {\n if (args) {\n this.fetchReportClick.next(args);\n }\n }\n\n public renameReport(args: RenameReportArgs): void {\n if (args) {\n this.renameReportClick.next(args);\n }\n }\n\n public removeReport(args: RemoveReportArgs): void {\n if (args) {\n this.removeReportClick.next(args);\n }\n }\n\n public newReport(): void {\n this.newReportClick.next();\n }\n\n public beforeToolbarRender(args: ToolbarArgs): void {\n if (args) {\n this.beforeToolbarRenderClick.next(args);\n }\n }\n\n public hanldeEnginePopulated(args: any): void {\n if (args) {\n this.enginePopulated.next(args);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CoPivotComponent } from './co-pivot.component';\nimport {PivotViewModule} from \"@syncfusion/ej2-angular-pivotview\";\n\n@NgModule({\n declarations: [CoPivotComponent],\n exports: [\n CoPivotComponent\n ],\n imports: [\n CommonModule,\n PivotViewModule\n ]\n})\nexport class CoPivotModule { }\n","import {AfterViewInit, ChangeDetectorRef, Component, Input, OnDestroy} from '@angular/core';\r\nimport { PopupButtonType } from '../../core/enum/popup-button-type.enum';\r\nimport { Popup } from './interface/popup';\r\n\r\n@Component({\r\n selector: \"co-text-input-popup\",\r\n template: `\r\n <co-input-text [(model)]=\"text\" [label]=\"label\" [noValidation]=\"true\" [initFocus]=\"true\"></co-input-text>\r\n `\r\n})\r\n// A popup component that lets the user type and submit a text string.\r\nexport class TextInputPopupComponent implements Popup<string>, AfterViewInit, OnDestroy {\r\n // The user-changeable text content of the input text.\r\n @Input()\r\n public text: string;\r\n\r\n // The label text for the input text. Localized.\r\n @Input()\r\n public label: string;\r\n\r\n constructor(private _changeDetector: ChangeDetectorRef) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._changeDetector = undefined;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this._changeDetector.detectChanges(); // fixes some changed-after-checked bug (popup service could have manipulated our text and label @Input's ..)\r\n }\r\n\r\n // @implements AppPopup\r\n async onClose(eventType: PopupButtonType): Promise<string> {\r\n return this.text;\r\n }\r\n}\r\n","/**\r\n * Represents the enumeration of file types of files that the application can recognize. Used, for instance, in\r\n * document view components to show an Excel, Pdf or Word icon for the documents file type.\r\n */\r\nexport enum FileTypeInternal {\r\n Test,\r\n Image,\r\n Swf,\r\n ExcelSheet,\r\n WordDocument,\r\n Pdf,\r\n TextFile,\r\n Executable,\r\n Undefined\r\n}\r\n","// DOM_BESTANDSSOORT\r\nexport enum FileType {\r\n // DOC: Document\r\n Document = \"DOC\",\r\n // IMG: Afbeelding\r\n Image = \"IMG\",\r\n // SDWEB: Digitale handtekening\r\n DigitalSignature = \"SDWEB\",\r\n}\r\n","export enum CoDocumentImageDisplayKind {\r\n NormalImage = \"N\",\r\n LayeredImage = \"L\",\r\n Avatar = \"A\"\r\n}\r\n","export enum ObjectRightType {\r\n NoAccess = 0,\r\n ReadOnly = 1,\r\n ReadWrite = 2\r\n}\r\n","import { TableName } from '../enum/table-name.enum';\r\nimport { CoDocumentType } from '../enum/co-document-type.enum';\r\nimport { FileType } from '../enum/file-type.enum';\r\nimport { FileTypeInternal } from '../enum/file-type-internal.enum';\r\nimport { FileUtils } from '../utils/file-utils';\r\nimport { CoDocumentImageDisplayKind } from '../enum/co-document-image-display-kind.enum';\r\nimport { ObjectRightType } from '../enum/object-right-type.enum';\r\nimport { Subject } from 'rxjs';\r\nimport { CoDocumentRight } from './co-document-right.bo';\r\n// See DocumentDTO.\r\nexport class CoDocument {\r\n public set documentId(value: number) {\r\n this._documentId = value;\r\n // this._idObject.docId = value;\r\n }\r\n\r\n public get documentId(): number {\r\n return this._documentId;\r\n }\r\n\r\n // @DateField()\r\n public creationDate: Date;\r\n // @DateField()\r\n public modifiedDate: Date;\r\n // public creationUser: string;\r\n // public modifiedUser: string;\r\n public description: string;\r\n public thumbnailBody: string;\r\n public table: TableName;\r\n public key: string;\r\n public filePath: string;\r\n public documentType: CoDocumentType;\r\n /**\r\n * The database-fetched mimetype of this document. Note: is barely set to a value, and when it's set, it's usually garbage data.\r\n * Use .mimeTypeInternal if you want the best educated guess of the true mime type of this document.\r\n */\r\n public mimeType: string;\r\n public publication: number;\r\n public fileSize: string;\r\n public fileType: FileType;\r\n public isLoaded: boolean;\r\n public index: number;\r\n public imageDimensions: string;\r\n public title: string;\r\n // @BooleanText(\"T\")\r\n // public downloadable: boolean;\r\n // @BooleanText(\"T\")\r\n // public attachToNotification: boolean;\r\n // @BooleanText(\"T\")\r\n // @DefaultSendValue(\"F\")\r\n // public pathIsUrl: boolean = false;\r\n // public imageType: string;\r\n public imageDisplayKind: CoDocumentImageDisplayKind;\r\n // @ComplexArray(Tag)\r\n // public tags: Tag[] = [];\r\n public rightLevel: ObjectRightType;\r\n // @ComplexArray(CoDocumentRight)\r\n public rights: CoDocumentRight[] = [];\r\n\r\n public set documentBody(documentBody: string) {\r\n const prev: string = this._documentBody;\r\n\r\n this._documentBody = documentBody;\r\n\r\n if (prev !== this._documentBody) {\r\n this.documentBodyChange.next(this._documentBody);\r\n }\r\n }\r\n\r\n public get documentBody(): string {\r\n return this._documentBody;\r\n }\r\n\r\n // @DefaultSendValue([])\r\n // @ComplexArray(ArticleSeoValue)\r\n // public seoTitles: ArticleSeoValue[] = [];\r\n public fileName: string;\r\n public retailFormulas: string[] = [];\r\n\r\n // @NoDbField()\r\n // public idForLink: number;\r\n\r\n // The internal file type of this document (the MimeType iOneJS uses internally)\r\n public get fileTypeInternal(): FileTypeInternal {\r\n if (!this._fileTypeInternal) {\r\n const fileType: FileTypeInternal = FileUtils.FileNameToFileTypeInternal(this.fileName);\r\n if (fileType) {\r\n this._fileTypeInternal = fileType;\r\n }\r\n }\r\n return this._fileTypeInternal;\r\n }\r\n\r\n /**\r\n * The mimetype of this document: uses database-fetched this.mimeType, or calculates / guesses the mime type of the document\r\n * if that was not set.\r\n */\r\n public get mimeTypeInternal(): string {\r\n if (this._mimeTypeInternal) {\r\n return this._mimeTypeInternal;\r\n } else {\r\n this._initMimetypeInternal();\r\n return this._mimeTypeInternal;\r\n }\r\n }\r\n\r\n public set mimeTypeInternal(value: string) {\r\n this._mimeTypeInternal = value;\r\n }\r\n\r\n // Gives either the document-(prio) or the thumbnail body. Or undefined if not exist.\r\n public get bodyAsDataUri(): string {\r\n if (this._documentBody) {\r\n return this.documentBodyAsDataUri;\r\n } else if (this.thumbnailBody) {\r\n return this.thumbnailBodyAsDataUri;\r\n }\r\n }\r\n\r\n // The body of this document as a data uri. The data uri also contains the mimetype in its string, and the fact that it's base64.\r\n public get documentBodyAsDataUri(): string {\r\n try {\r\n return FileUtils.DocumentBodyToDataUri(this.documentBody, this.mimeTypeInternal);\r\n } catch (error) {\r\n return \"\";\r\n }\r\n }\r\n\r\n // The Thumbnailbody of this document as a data uri. The data uri also contains the mimetype in its string, and the fact that it's base64.\r\n public get thumbnailBodyAsDataUri(): string {\r\n try {\r\n return FileUtils.DocumentBodyToDataUri(this.thumbnailBody, this.mimeTypeInternal);\r\n } catch (error) {\r\n return \"\";\r\n }\r\n }\r\n\r\n public get isAvatar(): boolean {\r\n return this.imageDisplayKind === CoDocumentImageDisplayKind.Avatar;\r\n }\r\n\r\n // @DbFieldAlias(\"documentBody\")\r\n private _documentBody: string;\r\n //\r\n // @DbFieldAlias(\"documentId\")\r\n private _documentId: number;\r\n //\r\n // @NoDbField()\r\n // @ComplexField(Subject)\r\n public readonly documentBodyChange: Subject<string> = new Subject<string>();\r\n\r\n // The internal representation of the MimeType, see enum MimeType (actual mimeType field is not filled in db often)\r\n // @NoDbField()\r\n private _fileTypeInternal: FileTypeInternal;\r\n // eg \"image/jpeg\"\r\n // @NoDbField()\r\n private _mimeTypeInternal: string;\r\n //\r\n // @NoDbField()\r\n // private _idObject: any = {};\r\n\r\n public get readonly(): boolean {\r\n return this.rightLevel === ObjectRightType.ReadOnly;\r\n }\r\n\r\n constructor() {\r\n }\r\n\r\n public getId(): any {\r\n return this.documentId;\r\n }\r\n\r\n // Returns whether this is an image document or not.\r\n public isImageDocument(): boolean {\r\n return (this.fileTypeInternal === FileTypeInternal.Image);\r\n }\r\n\r\n // @BoSerializerStep()\r\n public preventOverridingThumbnailToEmpty(): void {\r\n if (!this.thumbnailBody) {\r\n this.thumbnailBody = this._documentBody;\r\n }\r\n }\r\n\r\n // POSTCONDITION: this._mimeTypeInternal contains, to our best abilities, the true mimeType of this document, a-la \"image/jpg\"\r\n private _initMimetypeInternal(): void {\r\n // if no fileType, default to FileType.Image for internal mimetype initialization\r\n if ((this.fileType === FileType.Image || !this.fileType) && this.fileName) {\r\n const fileExtension: string = this.fileName.substr(this.fileName.lastIndexOf(\".\") + 1);\r\n this._mimeTypeInternal = \"image/\" + fileExtension;\r\n }\r\n }\r\n}\r\n","// for refcode CV_DOCUMENTATIE.DOC_TYPE\r\nexport enum CoDocumentType {\r\n // BN: Document opslaan als bestand, locatie niet van toepassing\r\n SaveAsDocument = \"BN\",\r\n // LS: Document opslaan als link op willekeurige locatie\r\n SaveAsLinkOnRandomLocation = \"LS\",\r\n // LW: Document opslaan als link op standaardloactie\r\n SaveAsLinkOnDefaultLocation = \"LW\",\r\n}\r\n","import { FileTypeInternal } from '../enum/file-type-internal.enum';\r\nimport { CoDocument } from '../model/co-document.bo';\r\nimport { CoDocumentType } from '../enum/co-document-type.enum';\r\nimport { FileType } from '../enum/file-type.enum';\r\nimport { StringUtils } from './string-utils';\r\nimport { NumberUtils } from './number-utils';\r\n\r\nconst MaxUploadSize: number = 3145728; // 3Mb\r\n\r\n// @dynamic\r\nexport class FileUtils {\r\n\r\n // Returns MaxUploadSize in Megabytes.\r\n public static get MaxUploadSizeInMb(): number {\r\n return MaxUploadSize / 1024 / 1024;\r\n }\r\n\r\n public static DocumentBodyToDataUri(documentBody: string, mimeType: string): string {\r\n return StringUtils.IsStringWithLength(documentBody) ? \"data:\" + mimeType + \";base64,\" + documentBody : \"\";\r\n }\r\n\r\n // Returns the file type of the given file, by looking at its extension. Returns FileType.Undefined if not recognised.\r\n public static FileNameToFileTypeInternal(fileName: string): FileTypeInternal {\r\n if (!fileName) {\r\n return FileTypeInternal.Undefined;\r\n }\r\n const stringParts: string[] = fileName.split(\".\");\r\n const extension: string = stringParts[stringParts.length - 1];\r\n switch (extension.toLowerCase()) {\r\n case \"pdn\":\r\n case \"bmp\":\r\n case \"gif\":\r\n case \"jpg\":\r\n case \"jpeg\":\r\n case \"jpe\":\r\n case \"jfif\":\r\n case \"png\":\r\n case \"tif\":\r\n case \"tiff\":\r\n case \"tga\":\r\n case \"dds\":\r\n return FileTypeInternal.Image;\r\n case \"swf\":\r\n return FileTypeInternal.Swf;\r\n case \"xls\":\r\n case \"xlsx\":\r\n return FileTypeInternal.ExcelSheet;\r\n case \"doc\":\r\n case \"docx\":\r\n return FileTypeInternal.WordDocument;\r\n case \"pdf\":\r\n return FileTypeInternal.Pdf;\r\n case \"txt\":\r\n return FileTypeInternal.TextFile;\r\n case \"exe\":\r\n return FileTypeInternal.Executable;\r\n default:\r\n return FileTypeInternal.Undefined;\r\n }\r\n }\r\n\r\n // Checks if filetype of given file is of type image. Possible filetypes: image/png, image/bmp, image/jpeg, etc.\r\n public static IsImageFile(file: File | CoDocument): boolean {\r\n if (!file) {\r\n return false;\r\n }\r\n let fileName: string;\r\n let mimeType: string;\r\n if (file instanceof CoDocument) {\r\n fileName = file.fileName;\r\n mimeType = file.mimeTypeInternal;\r\n } else {\r\n fileName = file.name;\r\n mimeType = file.type;\r\n }\r\n if (mimeType !== \"\") {\r\n return mimeType.startsWith('image/');\r\n } else {\r\n return (FileUtils.FileNameToFileTypeInternal(fileName) === FileTypeInternal.Image);\r\n }\r\n }\r\n\r\n // Try to determine the file type of given document. First attempt is by filetype, second by file name.\r\n public static GetGlobalFileType(document: CoDocument): FileTypeInternal {\r\n if (!document) {\r\n return FileTypeInternal.Undefined;\r\n }\r\n if (document.mimeType !== \"\") {\r\n switch (document.mimeType) {\r\n case \"application/pdf\":\r\n return FileTypeInternal.Pdf;\r\n case \"application/msword\":\r\n return FileTypeInternal.WordDocument;\r\n case \"application/excel\":\r\n case \"application/vnd.ms-excel\":\r\n case \"application/x-excel\":\r\n case \"application/x-msexcel\":\r\n return FileTypeInternal.ExcelSheet;\r\n case \"text/plain\":\r\n case \"application/plain\":\r\n return FileTypeInternal.TextFile;\r\n default:\r\n return FileTypeInternal.Undefined;\r\n }\r\n } else {\r\n return FileUtils.FileNameToFileTypeInternal(document.fileName);\r\n }\r\n }\r\n\r\n // Checks filesize of given file and returns false if size exceeds maximum upload size.\r\n public static CheckMaxUploadSize(file: CoDocument | File): boolean {\r\n let fileSize: number = 0;\r\n if (file instanceof CoDocument) {\r\n fileSize = NumberUtils.ParseInt(file.fileSize);\r\n } else {\r\n fileSize = file.size;\r\n }\r\n return (fileSize <= MaxUploadSize);\r\n }\r\n\r\n public static async ConvertFileToDataUri(file: File): Promise<string> {\r\n if (file) {\r\n return new Promise<string>((resolve) => {\r\n const fileReader: FileReader = new FileReader();\r\n fileReader.onload = () => {\r\n resolve(<string> fileReader.result);\r\n };\r\n fileReader.readAsDataURL(file);\r\n });\r\n }\r\n }\r\n\r\n // Returns the given dataUri string stripped of the mimetype part.\r\n public static StripMimeStringFromDataUri(dataUri: string): string {\r\n if (!dataUri) {\r\n return \"\";\r\n }\r\n\r\n const mimeString: string = this.GetMimeStringFromDataUri(dataUri);\r\n return dataUri.substr(mimeString.length + 1);\r\n }\r\n\r\n public static GetMimeStringFromDataUri(dataUri: string): string {\r\n if (!dataUri) {\r\n return \"\";\r\n }\r\n\r\n return dataUri.split(',')[0];\r\n }\r\n\r\n // Converts given string data to an ArrayBuffer.\r\n public static ConvertStringToArrayBuffer(stringData: string): Uint8Array {\r\n if (!stringData) {\r\n return undefined;\r\n }\r\n const arrayBuffer: ArrayBuffer = new ArrayBuffer(stringData.length);\r\n const bufView: Uint8Array = new Uint8Array(arrayBuffer);\r\n for (let i: number = 0, len: number = stringData.length; i < len; i++) {\r\n bufView[i] = stringData.charCodeAt(i);\r\n }\r\n return bufView;\r\n }\r\n\r\n public static ConvertByteArrayToString(byteArray: number[]): string {\r\n let str: string = \"\";\r\n if (byteArray) {\r\n for (let i: number = 0, len: number = byteArray.length; i < len; i++) {\r\n str += String.fromCharCode(byteArray[i]);\r\n }\r\n }\r\n return str;\r\n }\r\n\r\n // Returns true if given string contains a data-uri/base64.\r\n public static StringContainsDataUri(str: string): boolean {\r\n if (!str) {\r\n return false;\r\n }\r\n const mimeString: string = str.split(',')[0];\r\n return mimeString.indexOf('base64') > -1;\r\n }\r\n\r\n /**\r\n * There is some discrepancy regarding locations of h3d objects\r\n * Therefor we need to (temporarily?!) fix the content url\r\n * Also we need to change some additionals\r\n */\r\n public static FixAssetUrl(assetUrl: string): string {\r\n if (!assetUrl) {\r\n return \"\";\r\n }\r\n let fixedUrl: string;\r\n if (assetUrl.indexOf('_webplayer') === -1) {\r\n fixedUrl = assetUrl.replace('.unity3d', '_webplayer.ione3d');\r\n } else {\r\n fixedUrl = assetUrl.replace('_webplayer.unity3d', '_webplayer.ione3d');\r\n }\r\n fixedUrl = fixedUrl.replace('content/', 'content43/');\r\n if (!fixedUrl.endsWith('.gz')) {\r\n fixedUrl = fixedUrl.concat('.gz');\r\n }\r\n return fixedUrl;\r\n }\r\n\r\n // Return the mimetype of the given filename.\r\n public static MimeTypeFromFilename(fileName: string): string {\r\n const regEx: RegExp = /(?:\\.([^.]+))?$/; // regex to find extension\r\n const extension: any = regEx.exec(fileName)[1];\r\n switch (extension) {\r\n case \"jpg\":\r\n case \"jpeg\":\r\n return \"image/jpeg\";\r\n case \"png\":\r\n return \"image/png\";\r\n case \"bmp\":\r\n return \"image/bmp\";\r\n }\r\n }\r\n\r\n public static DownloadFile(\r\n fileName: string,\r\n content: string,\r\n mimeType: string = \"text/plain\"\r\n ): void {\r\n const element: HTMLAnchorElement = document.createElement('a');\r\n element.setAttribute(\"href\", \"data:\" + mimeType + \";charset=utf-8,\" + encodeURIComponent(content));\r\n element.setAttribute(\"download\", fileName);\r\n\r\n element.style.display = \"none\";\r\n document.body.appendChild(element);\r\n\r\n element.click();\r\n\r\n document.body.removeChild(element);\r\n }\r\n\r\n // Returns the contents of given file as a text string.\r\n public static ReadAsText(file: File): Promise<string> {\r\n return new Promise<string>((resolve: Function) => {\r\n const reader: FileReader = new FileReader();\r\n reader.readAsText(file);\r\n reader.onloadend = (event: any) => {\r\n if (event.target.readyState === 2) {\r\n resolve(event.target.result);\r\n }\r\n };\r\n });\r\n }\r\n\r\n public static ReadFileAsNewCoDocument(file: File): Promise<CoDocument> {\r\n return new Promise<CoDocument>((resolve: Function) => {\r\n const reader: FileReader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onloadend = (event: any) => {\r\n if (event.target.readyState === 2) {\r\n const coDocument: CoDocument = new CoDocument();\r\n\r\n coDocument.fileSize = file.size.toString();\r\n coDocument.mimeTypeInternal = file.type;\r\n coDocument.mimeType = file.type;\r\n coDocument.fileName = file.name;\r\n coDocument.documentType = CoDocumentType.SaveAsDocument;\r\n coDocument.fileType = FileUtils.IsImageFile(file) ? FileType.Image : FileType.Document;\r\n coDocument.description = file.name;\r\n coDocument.documentBody = FileUtils.StripMimeStringFromDataUri(event.target.result);\r\n\r\n resolve(coDocument);\r\n }\r\n };\r\n });\r\n }\r\n\r\n public static GetExtensionFromDataUri(dataUri: string): string {\r\n const data: string = dataUri;\r\n return data.replace(/(data:image\\/)(.*?)(;base64.*)/gi, '$2');\r\n }\r\n\r\n public static CreateDownloadFileNameFromBase64(dataUri: string): string {\r\n const ext: string = this.GetExtensionFromDataUri(dataUri);\r\n return 'preview.' + ext;\r\n }\r\n\r\n public static DownloadFromDataUri(dataUri: string, fileName: string): void {\r\n const link: any = document.createElement(\"a\");\r\n link.download = fileName;\r\n link.href = dataUri;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n}\r\n","import { ElementRef } from '@angular/core';\r\nimport { ElementPosition } from '../model/element-position';\r\n\r\nexport class BrowserUtils {\r\n public static ScrollToTop(nativeElement: any, milliSeconds: number = 200): void {\r\n return BrowserUtils._ScrollTo(\"scrollTop\", nativeElement, milliSeconds, 0);\r\n }\r\n\r\n public static DownloadFile(encodedUri: string, fileType: string): void {\r\n const link: HTMLAnchorElement = document.createElement(\"a\");\r\n const date: string = new Date().toDateString();\r\n\r\n link.href = encodedUri;\r\n link.target = '_blank';\r\n link.download = \"export_\" + date + fileType;\r\n\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n\r\n public static CopyToClipboard(data: string): void {\r\n\r\n const textArea: any = document.createElement(\"TEXTAREA\");\r\n const textNode: any = document.createTextNode(data);\r\n\r\n textArea.appendChild(textNode);\r\n document.body.appendChild(textArea); // Required for FF\r\n textArea.select();\r\n document.execCommand(\"copy\");\r\n document.body.removeChild(textArea);\r\n }\r\n\r\n public static TabFocusNextElement(): void {\r\n const nextTabStop: any = BrowserUtils._FindNextTabStop(document.activeElement);\r\n if (nextTabStop) {\r\n nextTabStop.focus();\r\n }\r\n }\r\n\r\n public static AreDimensionsInView(dimensions: ElementPosition, view?: ElementRef): boolean {\r\n const vp: ElementPosition = BrowserUtils.GetDimensions(view);\r\n\r\n return dimensions.top >= vp.top && dimensions.left >= vp.left && dimensions.bottom <= vp.bottom && dimensions.right <= vp.right;\r\n }\r\n\r\n public static HorizontalFitInView(dimensions: ElementPosition, view?: ElementRef): boolean {\r\n const vp: ElementPosition = BrowserUtils.GetDimensions(view);\r\n\r\n return dimensions.left >= vp.left && dimensions.right <= vp.right;\r\n }\r\n\r\n public static VerticalFitInView(dimensions: ElementPosition, view?: ElementRef): boolean {\r\n const vp: ElementPosition = BrowserUtils.GetDimensions(view);\r\n\r\n return dimensions.top >= vp.top && dimensions.bottom <= vp.bottom;\r\n }\r\n\r\n public static GetViewport(): ElementPosition {\r\n\r\n let viewPortWidth: number;\r\n let viewPortHeight: number;\r\n\r\n // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight\r\n if (typeof window.innerWidth !== 'undefined') {\r\n viewPortWidth = window.innerWidth;\r\n viewPortHeight = window.innerHeight;\r\n } else if (typeof document.documentElement !== 'undefined' &&\r\n typeof document.documentElement.clientWidth !== 'undefined' &&\r\n document.documentElement.clientWidth !== 0) {\r\n viewPortWidth = document.documentElement.clientWidth;\r\n viewPortHeight = document.documentElement.clientHeight;\r\n } else {\r\n viewPortWidth = document.getElementsByTagName('body')[0].clientWidth;\r\n viewPortHeight = document.getElementsByTagName('body')[0].clientHeight;\r\n }\r\n\r\n return {left: 0, top: 0, right: viewPortWidth, bottom: viewPortHeight};\r\n }\r\n\r\n public static GetDimensions(view?: ElementRef): ElementPosition {\r\n if (!view) {\r\n return this.GetViewport();\r\n } else {\r\n const elem: HTMLElement = view instanceof HTMLElement ? view : view.nativeElement;\r\n const cr: ClientRect = elem.getBoundingClientRect();\r\n return {left: cr.left, top: cr.top, right: cr.right, bottom: cr.bottom};\r\n }\r\n }\r\n\r\n // Recursive.\r\n private static _ScrollTo(elementScrollProp: string, element: any, milliSeconds: number, toScrollEnd: number): void {\r\n if (!element || milliSeconds <= 0) {\r\n return;\r\n }\r\n\r\n const difference: number = toScrollEnd - element[elementScrollProp];\r\n const scrollPerTick: number = difference / milliSeconds * 10;\r\n\r\n setTimeout(() => {\r\n element[elementScrollProp] = element[elementScrollProp] + scrollPerTick;\r\n if (element[elementScrollProp] === toScrollEnd) {\r\n return;\r\n }\r\n BrowserUtils._ScrollTo(elementScrollProp, element, milliSeconds - 10, toScrollEnd);\r\n }, 10);\r\n }\r\n\r\n private static _FindNextTabStop(element: Element): Element {\r\n const tabStopElements: NodeListOf<Element> = document.querySelectorAll(\r\n 'a[href], area[href], input:not(.hidden):not(.disabled):not(.readonly):not(.read-only), select:not(.hidden):not(.disabled):not(.readonly):not(.read-only), textarea:not(.hidden):not(.disabled):not(.readonly):not(.read-only), button:not(.hidden):not(.disabled):not(.readonly):not(.read-only), iframe, object, embed, *[tabindex]:not(.hidden):not(.disabled):not(.readonly):not(.read-only), *[contenteditable]:not(.hidden):not(.disabled):not(.readonly):not(.read-only)'\r\n );\r\n const actualStopEls: Element[] = [];\r\n for (let i: number = 0, len: number = tabStopElements.length; i < len; i++) {\r\n const tabEl: any = tabStopElements[i];\r\n if (tabEl.tabIndex >= 0) {\r\n actualStopEls.push(tabEl);\r\n }\r\n }\r\n const elIdx: number = actualStopEls.indexOf(element);\r\n return actualStopEls[elIdx + 1] || undefined;\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { PopupButtonType } from '../../core/enum/popup-button-type.enum';\r\nimport { FileUtils } from '../../core/utils/file-utils';\r\nimport { BrowserUtils } from '../../core/utils/browser-utils';\r\nimport { Popup } from './interface/popup';\r\n\r\n@Component({\r\n selector: \"co-popup-message-display\",\r\n template: `\r\n <span *ngIf=\"!image\" class=\"message\" [textContent]=\"message\"></span>\r\n <img *ngIf=\"image\" [src]=\"message\"/>\r\n <ng-container *ngIf=\"details\" label=\"DETAILS\">\r\n <div class=\"overflow-y-auto overflow-x-hidden details\">\r\n <span class=\"message wrap\" [textContent]=\"details\" style=\"overflow-wrap: break-word;\"></span>\r\n </div>\r\n <span class=\"details-link\" [textContent]=\"'COPY_MESSAGE_TO_CLIPBOARD'\" (click)=\"handleCopyClick()\"></span>\r\n </ng-container>\r\n `\r\n})\r\nexport class PopupMessageDisplayComponent implements Popup<PopupButtonType> {\r\n @Input()\r\n public set message(value: string) {\r\n this._message = value;\r\n this.image = FileUtils.StringContainsDataUri(value);\r\n }\r\n\r\n public get message(): string {\r\n return this._message;\r\n }\r\n\r\n @Input()\r\n public details: string;\r\n\r\n public image: boolean = false;\r\n\r\n private _message: string = \"\";\r\n\r\n constructor() {\r\n }\r\n\r\n // @implements AppPopup\r\n async onClose(eventType: PopupButtonType): Promise<PopupButtonType> {\r\n return eventType;\r\n }\r\n\r\n public handleCopyClick(): void {\r\n BrowserUtils.CopyToClipboard(this.details);\r\n }\r\n}\r\n","// the different types of buttons for the app window component\r\nexport enum PopupButtonType {\r\n Ok,\r\n Open,\r\n Save,\r\n Cancel,\r\n Yes,\r\n No,\r\n NoButton\r\n}\r\n","import { PopupButtonType } from '../../../core/enum/popup-button-type.enum';\r\n\r\nexport class PopupButton {\r\n public label: string;\r\n public cssClass: string;\r\n public closeType: PopupButtonType;\r\n public disabled: boolean;\r\n\r\n constructor(label: string, cssClass: string, closeType: PopupButtonType) {\r\n this.label = label;\r\n this.cssClass = cssClass;\r\n this.closeType = closeType;\r\n }\r\n}\r\n","import { PopupButtonType } from '../../../core/enum/popup-button-type.enum';\r\nimport { PopupButton } from '../interface/popup-button';\r\n\r\nexport class PopupButtonGlobals {\r\n public static readonly Ok: PopupButton = new PopupButton('OK', 'ok-button', PopupButtonType.Ok);\r\n public static readonly Open: PopupButton = new PopupButton('OPEN', 'open-button', PopupButtonType.Open);\r\n public static readonly Save: PopupButton = new PopupButton('SAVE', 'save-button', PopupButtonType.Save);\r\n public static readonly Cancel: PopupButton = new PopupButton('CANCEL', 'cancel-button', PopupButtonType.Cancel);\r\n public static readonly Yes: PopupButton = new PopupButton('JA', 'ok-button', PopupButtonType.Yes);\r\n public static readonly No: PopupButton = new PopupButton('NEE', 'cancel-button', PopupButtonType.No);\r\n}\r\n","import {Component, EventEmitter, Input, OnInit, Output, ViewChild} from \"@angular/core\";\r\nimport {ButtonComponent} from \"../button/button.component\";\r\nimport {PopupButtonGlobals} from \"./model/popup-button-globals\";\r\nimport {PopupButton} from \"./interface/popup-button\";\r\n\r\n@Component({\r\n selector: 'co-popup-buttons',\r\n template: `\r\n <div class=\"popup-buttons\">\r\n <co-button\r\n *ngFor=\"let button of buttons\"\r\n [label]=\"button.label\"\r\n [class]=\"button.cssClass\"\r\n [disabled]=\"button.disabled\"\r\n (click)=\"handleClick($event, button)\"\r\n ></co-button>\r\n </div>\r\n `,\r\n styleUrls: [\r\n './popup-buttons.component.scss'\r\n ]\r\n})\r\n// Component that is part of the WindowComponent, and represents the panel with buttons on the bottom of app popups.\r\nexport class PopupButtonsComponent implements OnInit {\r\n\r\n @Input()\r\n public popupWindow: any;\r\n\r\n @Output()\r\n public readonly buttonClick: EventEmitter<PopupButton> = new EventEmitter<PopupButton>();\r\n\r\n @ViewChild(ButtonComponent)\r\n public firstButton: ButtonComponent;\r\n\r\n public buttons: PopupButton[] = [PopupButtonGlobals.Ok, PopupButtonGlobals.Cancel];\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.popupWindow || !this.popupWindow.settings) {\r\n return;\r\n }\r\n if (this.popupWindow.settings.buttons) {\r\n this.buttons = this.popupWindow.settings.buttons;\r\n }\r\n }\r\n\r\n public handleClick(event: MouseEvent, button: PopupButton): void {\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n event.stopPropagation();\r\n this.buttonClick.emit(button);\r\n }\r\n\r\n public focusFirstButton(): void {\r\n if (this.firstButton) {\r\n this.firstButton.focus();\r\n }\r\n }\r\n}\r\n","export enum PopupType {\r\n Notification,\r\n Warning,\r\n Error,\r\n Question,\r\n Blank,\r\n FullScreen,\r\n Confirmation\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ComponentRef,\r\n HostBinding,\r\n Inject,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n ViewContainerRef\r\n} from \"@angular/core\";\r\nimport {PopupButtonsComponent} from \"./popup-buttons.component\";\r\nimport {Subscription} from \"rxjs\";\r\nimport {PopupButtonType} from \"../../core/enum/popup-button-type.enum\";\r\nimport {FileUtils} from \"../../core/utils/file-utils\";\r\nimport {ObjectUtils} from \"../../core/utils/object-utils\";\r\nimport {PopupType} from \"../../core/enum/popup-type.enum\";\r\nimport {PopupMessageDisplayComponent} from \"./popup-message-display.component\";\r\nimport {PopupWindowModel} from \"./model/popup-window\";\r\nimport {Popup} from \"./interface/popup\";\r\nimport {PopupButton} from \"./interface/popup-button\";\r\nimport {POPUP_WINDOW_DATA} from \"./const/popup-window-token\";\r\nimport {CoreComponentsIcon} from \"../../core/enum/core-components-icon.enum\";\r\nimport {IconCacheService} from \"../icon/icon-cache.service\";\r\nimport {SafeHtml} from \"@angular/platform-browser\";\r\n\r\n@Component({\r\n selector: \"co-popup-window-shell\",\r\n template: `\r\n <ng-container *ngIf=\"!isBlank\">\r\n <co-button *ngIf=\"popupWindow?.settings.downloadable\" class=\"circle shadowed popup-downloadable\" [iconData]=\"downloadIcon\"\r\n iconClass=\"light\"\r\n (click)=\"onDownloadClick()\"></co-button>\r\n <co-button *ngIf=\"!popupWindow?.settings.hideCloseIcon\" class=\"circle shadowed popup-close\" [iconData]=\"closeIcon\"\r\n iconClass=\"light\"\r\n (click)=\"onCloseClick()\"></co-button>\r\n <div class=\"popup-wrapper\" *ngIf=\"!isBlank\">\r\n <div class=\"popup-title\"><h2 [textContent]=\"popupWindow?.settings.title\"></h2></div>\r\n <div class=\"popup-content\" (mousedown)=\"$event.stopImmediatePropagation()\">\r\n <ng-template #popupContent></ng-template>\r\n </div>\r\n <co-popup-buttons [popupWindow]=\"popupWindow\" (buttonClick)=\"onButtonClick($event)\"></co-popup-buttons>\r\n </div>\r\n </ng-container>\r\n <ng-template #popupContent *ngIf=\"isBlank\"></ng-template>\r\n `,\r\n styleUrls: [\r\n \"popup-window-shell.component.scss\"\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n// The main component for app popups. Visually represents the outer edges of the components.\r\nexport class PopupWindowShellComponent implements AfterViewInit, OnDestroy, OnInit {\r\n\r\n public readonly icons: typeof CoreComponentsIcon = CoreComponentsIcon;\r\n\r\n @Input()\r\n public popupWindow: PopupWindowModel;\r\n\r\n @Input()\r\n @HostBinding(\"class.mobile-sizings\")\r\n public hasMobileSizings: boolean;\r\n\r\n @ViewChild(\"popupContent\", {read: ViewContainerRef})\r\n protected _viewContainer: ViewContainerRef;\r\n\r\n @ViewChild(PopupButtonsComponent)\r\n protected _appPopupButtons: PopupButtonsComponent;\r\n\r\n @HostBinding(\"class.popup-error\")\r\n public isError: boolean;\r\n\r\n @HostBinding(\"class.popup-warning\")\r\n public isWarning: boolean;\r\n\r\n @HostBinding(\"class.popup-notification\")\r\n public isNotification: boolean;\r\n\r\n @HostBinding(\"class.popup-question\")\r\n public isQuestion: boolean;\r\n\r\n @HostBinding(\"class.movable\")\r\n public isMovable: boolean;\r\n\r\n public isBlank: boolean;\r\n\r\n public closeIcon: SafeHtml;\r\n public downloadIcon: SafeHtml;\r\n\r\n // @HostBinding('style.top.px')\r\n // public top: number = -1000; //start off-screen\r\n //\r\n // @HostBinding('style.left.px')\r\n // public left: number = -1000; //start off-screen\r\n\r\n private _popupCompRef: ComponentRef<Popup>;\r\n\r\n private _filterClickSub: Subscription;\r\n\r\n private _popupCloseRequestSub: Subscription;\r\n\r\n constructor(\r\n private _iconCache: IconCacheService,\r\n private _changeDetector: ChangeDetectorRef,\r\n public viewContainerRef: ViewContainerRef\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.closeIcon = this._iconCache.getIcon(this.icons.CrossSkinny);\r\n this.downloadIcon = this._iconCache.getIcon(this.icons.Download);\r\n this._setHostBindings();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.popupWindow.popupWindowComponent = this;\r\n this._createPopupComponent();\r\n this._initOnClickAutoClose();\r\n this._initAppPopupCloseRequestHandler();\r\n\r\n if (!this.popupWindow.settings.noButtonFocus && this._appPopupButtons) {\r\n setTimeout(() => {\r\n this._appPopupButtons.focusFirstButton();\r\n });\r\n }\r\n\r\n this._changeDetector.detectChanges();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._close();\r\n this._viewContainer.clear();\r\n this._popupCompRef = undefined;\r\n this._viewContainer = undefined;\r\n this._changeDetector = undefined;\r\n }\r\n\r\n public async close(eventType: PopupButtonType): Promise<void> {\r\n if (this._popupCompRef && this._popupCompRef.instance && this._popupCompRef.instance.onClose) {\r\n const onCloseOutput: any = await this._popupCompRef.instance.onClose(eventType);\r\n this.popupWindow.onClose(eventType, onCloseOutput);\r\n } else {\r\n this.popupWindow.onClose(eventType);\r\n }\r\n }\r\n\r\n public onButtonClick(button: PopupButton): void {\r\n if (!button.disabled) {\r\n this.close(button.closeType);\r\n }\r\n }\r\n\r\n public onDownloadClick(): void {\r\n try {\r\n const dataUri: string = (this._popupCompRef.instance as PopupMessageDisplayComponent).message;\r\n FileUtils.DownloadFromDataUri(dataUri, FileUtils.CreateDownloadFileNameFromBase64(dataUri));\r\n } catch (e) {\r\n\r\n }\r\n }\r\n\r\n public onCloseClick(): void {\r\n this.close(PopupButtonType.Cancel);\r\n }\r\n\r\n private _close = (): void => {\r\n this.onCloseClick();\r\n };\r\n\r\n private _createPopupComponent(): void {\r\n this._popupCompRef = this._viewContainer.createComponent(this.popupWindow.factory);\r\n ObjectUtils.ForOwnProperty(this.popupWindow.inputs, (value: any, key: string) => {\r\n this._popupCompRef.instance[key] = value;\r\n });\r\n // give the concrete popup component access to its underlying model (with settings etc, e.g. for dynamic disabling/enabling of popup buttons on bottom)\r\n this._popupCompRef.instance.popupModel = this.popupWindow;\r\n if (this._popupCompRef.instance.onOpen) {\r\n this._popupCompRef.instance.onOpen();\r\n }\r\n }\r\n\r\n private _initOnClickAutoClose(): void {\r\n if (this.popupWindow && this.popupWindow.settings && this.popupWindow.settings.autoClose) {\r\n if (this._filterClickSub) {\r\n this._filterClickSub.unsubscribe();\r\n }\r\n // this._filterClickSub = this._filterService.onClick.subscribe(() => {\r\n // this.onCloseClick();\r\n // });\r\n }\r\n }\r\n\r\n private _initAppPopupCloseRequestHandler(): void {\r\n if (!this._popupCompRef || !this._popupCompRef.instance || !this._popupCompRef.instance.closeRequest) {\r\n return;\r\n }\r\n\r\n if (this._popupCloseRequestSub) {\r\n this._popupCloseRequestSub.unsubscribe();\r\n }\r\n this._popupCloseRequestSub = this._popupCompRef.instance.closeRequest.subscribe((closeButton: PopupButtonType) => {\r\n if (!closeButton) {\r\n closeButton = PopupButtonType.NoButton;\r\n }\r\n this.close(closeButton);\r\n });\r\n }\r\n\r\n private _setHostBindings(): void {\r\n if (this.popupWindow) {\r\n this.isError = this.popupWindow.type === PopupType.Error;\r\n this.isWarning = this.popupWindow.type === PopupType.Warning;\r\n this.isNotification = this.popupWindow.type === PopupType.Notification;\r\n this.isQuestion = this.popupWindow.type === PopupType.Question;\r\n this.isBlank = this.popupWindow.type === PopupType.Blank;\r\n this.isMovable = !this.popupWindow.settings.fixed;\r\n }\r\n }\r\n}\r\n","import {ComponentFactory} from \"@angular/core\";\r\nimport { PopupType } from '../../../core/enum/popup-type.enum';\r\nimport { StringUtils } from '../../../core/utils/string-utils';\r\nimport { PopupWindowShellComponent } from '../popup-window-shell.component';\r\nimport { PopupButtonType } from '../../../core/enum/popup-button-type.enum';\r\nimport { Popup } from '../interface/popup';\r\nimport { PopupSettings } from '../interface/popup-settings';\r\n\r\n// Represent the base for app popup windows, with common fields and methods that each popup window has.\r\nexport class PopupWindowModel {\r\n public static readonly closeDefaultOutputStr: string = \"PopupWindowModel.closeDefault()\";\r\n\r\n public get type(): PopupType {\r\n return this.settings ? this.settings.type : undefined;\r\n }\r\n\r\n public uuid: string = StringUtils.CreateGuid();\r\n\r\n // Reference to the actual popup window component.\r\n public popupWindowComponent?: PopupWindowShellComponent;\r\n\r\n constructor(public factory: ComponentFactory<Popup>, public settings: PopupSettings, public inputs: any) {\r\n }\r\n\r\n public closeDefault(): void {\r\n this.onClose(PopupButtonType.NoButton, PopupWindowModel.closeDefaultOutputStr);\r\n }\r\n\r\n public enableOpenButton(): void {\r\n if (this.settings) {\r\n this.settings.enableOpenButton();\r\n }\r\n }\r\n\r\n public disableOpenButton(): void {\r\n if (this.settings) {\r\n this.settings.disableOpenButton();\r\n }\r\n }\r\n\r\n public getTitle(): string {\r\n if (this.settings) {\r\n return this.settings.title;\r\n }\r\n }\r\n\r\n //noinspection JSUnusedLocalSymbols\r\n onClose(eventType: PopupButtonType, output?: any): void {\r\n return;\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { PopupWindowModel } from '../model/popup-window';\r\n\r\nexport const POPUP_WINDOW_DATA: InjectionToken<PopupWindowModel> = new InjectionToken<PopupWindowModel>('POPUP_WINDOW_DATA');\r\n","import {\r\n ApplicationRef,\r\n ComponentFactory,\r\n ComponentFactoryResolver,\r\n ComponentRef,\r\n EmbeddedViewRef,\r\n Injectable,\r\n Injector\r\n} from \"@angular/core\";\r\nimport { PopupSettings } from '../interface/popup-settings';\r\nimport { PopupCloseEvent } from '../interface/popup-close-event';\r\nimport { Popup } from '../interface/popup';\r\nimport { PopupWindowModel } from '../model/popup-window';\r\nimport { PopupWindowShellComponent } from '../popup-window-shell.component';\r\nimport { GlobalPositionStrategy, Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { POPUP_WINDOW_DATA } from '../const/popup-window-token';\r\nimport { PopupButtonType } from '../../../core/enum/popup-button-type.enum';\r\n\r\n// Class responsible for showing popups throughout the application and returning results from user interaction with those popups.\r\n@Injectable()\r\nexport class PopupShowerService {\r\n\r\n constructor(\r\n private _compFactoryResolver: ComponentFactoryResolver,\r\n private _appRef: ApplicationRef,\r\n private _overlay: Overlay,\r\n private _injector: Injector) {\r\n }\r\n\r\n public async showPopup<T = any>(popupCompClazz: any, popupSettings: PopupSettings, inputs: any = {}): Promise<PopupCloseEvent<T>> {\r\n const popupShellRef: ComponentRef<PopupWindowShellComponent> = this._createWindowShell();\r\n const popupShell: PopupWindowShellComponent = popupShellRef.instance;\r\n const config: OverlayConfig = this._getConfig();\r\n const popupCompFactory: ComponentFactory<Popup<T>> = this._compFactoryResolver.resolveComponentFactory(popupCompClazz);\r\n\r\n return new Promise<PopupCloseEvent>((resolve: Function) => {\r\n\r\n const popupWindow: PopupWindowModel = new PopupWindowModel(popupCompFactory, popupSettings, inputs);\r\n // the generic onClose handler: remove the closed popup and resolve our original createPopup call with its output data\r\n popupWindow.onClose = (eventType: PopupButtonType, output: any) => {\r\n this._appRef.detachView(popupShellRef.hostView);\r\n popupShellRef.destroy();\r\n resolve({\r\n eventType: eventType,\r\n output: output\r\n });\r\n };\r\n popupShell.popupWindow = popupWindow;\r\n });\r\n }\r\n\r\n private _createWindowShell(): ComponentRef<PopupWindowShellComponent> {\r\n const componentRef = this._compFactoryResolver\r\n .resolveComponentFactory(PopupWindowShellComponent)\r\n .create(this._injector);\r\n this._appRef.attachView(componentRef.hostView);\r\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n document.body.appendChild(domElem);\r\n return componentRef;\r\n }\r\n\r\n private _createOverlay(config: OverlayConfig): OverlayRef {\r\n return this._overlay.create(config);\r\n }\r\n\r\n private _getConfig(): OverlayConfig {\r\n const positionStrategy: GlobalPositionStrategy = this._overlay.position()\r\n .global()\r\n .centerHorizontally()\r\n .centerVertically();\r\n\r\n return new OverlayConfig({\r\n hasBackdrop: true,\r\n backdropClass: 'message-overlay-backdrop',\r\n panelClass: 'message-overlay',\r\n scrollStrategy: this._overlay.scrollStrategies.block(),\r\n positionStrategy\r\n });\r\n }\r\n\r\n private _attachDialogContainer(overlayRef: OverlayRef, popupWindow: PopupWindowModel /*, dialogRef: FilePreviewOverlayRef*/): PopupWindowShellComponent {\r\n const injector: Injector = this._createInjector(popupWindow);\r\n const containerPortal: ComponentPortal<PopupWindowShellComponent> = new ComponentPortal(PopupWindowShellComponent, null, injector);\r\n const containerRef: ComponentRef<PopupWindowShellComponent> = overlayRef.attach(containerPortal);\r\n return containerRef.instance;\r\n }\r\n\r\n private _createInjector(popupWindow: PopupWindowModel): Injector {\r\n const injectionTokens: any = new WeakMap();\r\n injectionTokens.set(POPUP_WINDOW_DATA, popupWindow);\r\n const options = {\r\n parent: this._injector,\r\n providers: injectionTokens\r\n };\r\n return Injector.create(options);\r\n }\r\n}\r\n","import { PopupButtonType } from '../../enum/popup-button-type.enum';\r\n\r\n// for PromptService.promptString\r\nexport class StringPromptResultEvent {\r\n constructor(\r\n public eventType: PopupButtonType,\r\n public output: string\r\n ) {\r\n }\r\n}\r\n","import { PopupButton } from './popup-button';\r\nimport { PopupType } from '../../../core/enum/popup-type.enum';\r\nimport { PopupButtonType } from '../../../core/enum/popup-button-type.enum';\r\n\r\nexport class PopupSettings {\r\n // Title text for the header of a popup window. Will be localized.\r\n public title: string;\r\n // Whether to close the popup automatically when the user clicks outside of it.\r\n public autoClose: boolean;\r\n // Kind of popup to adjust styling.\r\n public type: PopupType;\r\n // Defines which buttons are shown.\r\n public buttons?: PopupButton[];\r\n // Set to true to hide the 'X' close icon in the top-right corner of the popup.\r\n public hideCloseIcon?: boolean;\r\n // Do not focus on first button when popping up (default behavior is to focus on the first button)\r\n public noButtonFocus?: boolean;\r\n // Whether the popup can be moved around\r\n public fixed?: boolean;\r\n // Whether content of the popup can be downloaded\r\n public downloadable?: boolean;\r\n\r\n constructor() {\r\n }\r\n\r\n public enableButtonByType(buttonType: PopupButtonType): void {\r\n const button: PopupButton = this._getButtonByType(buttonType);\r\n if (button) {\r\n button.disabled = false;\r\n }\r\n }\r\n\r\n public disableButtonByType(buttonType: PopupButtonType): void {\r\n const button: PopupButton = this._getButtonByType(buttonType);\r\n if (button) {\r\n button.disabled = true;\r\n }\r\n }\r\n\r\n public enableSaveButton(): void {\r\n this.enableButtonByType(PopupButtonType.Save);\r\n }\r\n\r\n public disableSaveButton(): void {\r\n this.disableButtonByType(PopupButtonType.Save);\r\n }\r\n\r\n public enableOpenButton(): void {\r\n this.enableButtonByType(PopupButtonType.Open);\r\n }\r\n\r\n public disableOpenButton(): void {\r\n this.disableButtonByType(PopupButtonType.Open);\r\n }\r\n\r\n private _getButtonByType(buttonType: PopupButtonType): PopupButton {\r\n let button: PopupButton = undefined;\r\n\r\n if (this.buttons) {\r\n for (let i: number = 0, len: number = this.buttons.length; i < len; i++) {\r\n if (this.buttons[i].closeType === buttonType) {\r\n button = this.buttons[i];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return button;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { PopupShowerService } from './popup-shower.service';\r\nimport { PopupType } from '../../../core/enum/popup-type.enum';\r\nimport { StringUtils } from '../../../core/utils/string-utils';\r\nimport { PopupMessageDisplayComponent } from '../popup-message-display.component';\r\nimport { PopupButtonType } from '../../../core/enum/popup-button-type.enum';\r\nimport { StringPromptResultEvent } from '../../../core/model/event/string-prompt-result-event';\r\nimport { TextInputPopupComponent } from '../text-input-popup.component';\r\nimport { PopupButtonGlobals } from '../model/popup-button-globals';\r\nimport { PopupSettings } from '../interface/popup-settings';\r\nimport { PopupCloseEvent } from '../interface/popup-close-event';\r\n\r\n// Service responsible for delivering small popup windows (string input promps, alerts, etc.) to the user.\r\n@Injectable()\r\nexport class PromptService {\r\n\r\n constructor(private _popupShower: PopupShowerService) {\r\n }\r\n\r\n // Spawns a text input popup with given title and initial text, and resolves the returned promise with the user-entered text as output.\r\n public async promptString(title: string, label?: string, initialText?: string): Promise<StringPromptResultEvent> {\r\n const popupSettings: PopupSettings = new PopupSettings();\r\n popupSettings.title = title;\r\n const popupResult: PopupCloseEvent<string> = await this._popupShower.showPopup(TextInputPopupComponent, popupSettings, {\r\n text: initialText,\r\n label: label\r\n });\r\n return new StringPromptResultEvent(popupResult.eventType, popupResult.output);\r\n }\r\n\r\n // Shows given error text in an error popup to the user. Can also show an image instead of a text by supplying a data uri string.\r\n public showError(textOrImageDataUri: string, title?: string, details?: string): Promise<PopupCloseEvent<void>> {\r\n const popupSettings: PopupSettings = new PopupSettings();\r\n popupSettings.title = title || \"ERROR\";\r\n popupSettings.type = PopupType.Error;\r\n popupSettings.buttons = [PopupButtonGlobals.Ok];\r\n return this._popupShower.showPopup(PopupMessageDisplayComponent, popupSettings, {\r\n message: StringUtils.ToStringOrDefault(textOrImageDataUri),\r\n details: details\r\n });\r\n }\r\n\r\n // Shows given warning text in a warning popup to the user. Can also show an image instead of a text by supplying a data uri string.\r\n public showWarning(textOrImageDataUri: string, title?: string): Promise<PopupCloseEvent<void>> {\r\n const popupSettings: PopupSettings = new PopupSettings();\r\n popupSettings.title = title || \"WARNING\";\r\n popupSettings.type = PopupType.Warning;\r\n popupSettings.buttons = [PopupButtonGlobals.Ok];\r\n return this._popupShower.showPopup(PopupMessageDisplayComponent, popupSettings, {\r\n message: StringUtils.ToStringOrDefault(textOrImageDataUri)\r\n });\r\n }\r\n\r\n public async showNotification(\r\n textOrImageDataUri: string,\r\n title?: string,\r\n showOk: boolean = true,\r\n autoClose: boolean = false,\r\n hideCloseIcon: boolean = false,\r\n downloadable: boolean = false\r\n ): Promise<boolean> {\r\n const popupSettings: PopupSettings = new PopupSettings();\r\n popupSettings.title = title || \"NOTIFICATION\";\r\n popupSettings.type = PopupType.Notification;\r\n popupSettings.buttons = (showOk ? [PopupButtonGlobals.Ok] : []);\r\n popupSettings.downloadable = downloadable;\r\n if (autoClose) {\r\n popupSettings.autoClose = true;\r\n }\r\n if (hideCloseIcon) {\r\n popupSettings.hideCloseIcon = true;\r\n }\r\n const popupResult: PopupCloseEvent<void> = await this._popupShower.showPopup(PopupMessageDisplayComponent, popupSettings,\r\n {message: StringUtils.ToStringOrDefault(textOrImageDataUri)});\r\n return popupResult.eventType === PopupButtonType.Ok;\r\n }\r\n\r\n public showImage(imageDataUri: string, title?: string): Promise<any> {\r\n return this.showNotification(imageDataUri, title, false, true, false, true);\r\n }\r\n\r\n public async showYesNo(textOrImageDataUri: string, title?: string): Promise<boolean> {\r\n const popupSettings: PopupSettings = new PopupSettings();\r\n popupSettings.title = title || \"QUESTION\";\r\n popupSettings.type = PopupType.Question;\r\n popupSettings.buttons = [PopupButtonGlobals.Yes, PopupButtonGlobals.No];\r\n const popupResult: any = await this._popupShower.showPopup(PopupMessageDisplayComponent, popupSettings, {\r\n message: StringUtils.ToStringOrDefault(textOrImageDataUri)\r\n });\r\n return popupResult.eventType === PopupButtonType.Yes;\r\n }\r\n\r\n // Spawns a modal 'yes, no or cancel' question prompt. Returns the chosen exit button through AppPopupCloseEvent.eventType.\r\n public async showModalYesNoCancel(textOrImageDataUri: string, title?: string): Promise<PopupCloseEvent<void>> {\r\n const popupSettings: PopupSettings = new PopupSettings();\r\n popupSettings.title = title || \"QUESTION\";\r\n popupSettings.type = PopupType.Question;\r\n popupSettings.buttons = [PopupButtonGlobals.Yes, PopupButtonGlobals.No, PopupButtonGlobals.Cancel];\r\n popupSettings.autoClose = false;\r\n popupSettings.hideCloseIcon = true;\r\n return this._popupShower.showPopup(PopupMessageDisplayComponent, popupSettings, {\r\n message: StringUtils.ToStringOrDefault(textOrImageDataUri)\r\n });\r\n }\r\n\r\n // Used by AS-copied code. We call it showNotification.\r\n public showOk(text: string, title?: string): Promise<boolean> {\r\n return this.showNotification(text, title);\r\n }\r\n\r\n public async showOkCancel(text: string, title?: string): Promise<boolean> {\r\n const popupSettings: PopupSettings = new PopupSettings();\r\n popupSettings.title = title || \"QUESTION\";\r\n popupSettings.type = PopupType.Question;\r\n popupSettings.buttons = [PopupButtonGlobals.Ok, PopupButtonGlobals.Cancel];\r\n popupSettings.autoClose = false;\r\n popupSettings.hideCloseIcon = true;\r\n const closeEvent: PopupCloseEvent = await this._popupShower.showPopup(PopupMessageDisplayComponent, popupSettings, {\r\n message: StringUtils.ToStringOrDefault(text)\r\n });\r\n return (closeEvent.eventType === PopupButtonType.Ok);\r\n }\r\n\r\n public showOkModal(text: string, title?: string): Promise<boolean> {\r\n return this.showNotification(text, title, true, false, true);\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { InputTextModule } from '../input-text/input-text.module';\r\nimport { TextInputPopupComponent } from './text-input-popup.component';\r\nimport { PopupMessageDisplayComponent } from './popup-message-display.component';\r\nimport { PopupWindowShellComponent } from './popup-window-shell.component';\r\nimport { PopupButtonsComponent } from './popup-buttons.component';\r\nimport { ButtonModule } from '../button/button.module';\r\nimport { PromptService } from './service/prompt.service';\r\nimport { PopupShowerService } from './service/popup-shower.service';\r\nimport { Overlay } from '@angular/cdk/overlay';\r\nimport { IconCacheService } from '../icon/icon-cache.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n InputTextModule,\r\n ButtonModule\r\n ],\r\n declarations: [\r\n TextInputPopupComponent,\r\n PopupMessageDisplayComponent,\r\n PopupWindowShellComponent,\r\n PopupButtonsComponent\r\n ],\r\n entryComponents: [\r\n PopupMessageDisplayComponent,\r\n PopupWindowShellComponent\r\n ],\r\n exports: [\r\n TextInputPopupComponent,\r\n PopupWindowShellComponent\r\n ]\r\n})\r\nexport class PopupModule {\r\n static forRoot(): ModuleWithProviders<PopupModule> {\r\n return {\r\n ngModule: PopupModule,\r\n providers: [\r\n PromptService,\r\n PopupShowerService,\r\n Overlay,\r\n IconCacheService\r\n ]\r\n };\r\n }\r\n}\r\n","import {AfterViewInit, Component, EventEmitter, HostBinding, Input, OnInit, Output, ViewChild, ViewEncapsulation} from \"@angular/core\";\r\nimport {\r\n ChangeEventArgs,\r\n HtmlEditorService,\r\n ImageService,\r\n LinkService,\r\n RichTextEditorComponent,\r\n ToolbarService\r\n} from \"@syncfusion/ej2-angular-richtexteditor\";\r\n\r\n@Component({\r\n selector: 'co-rich-text-editor',\r\n template: `\r\n <ejs-richtexteditor\r\n #rte\r\n id=\"Rte\"\r\n [ngModel]=\"model\"\r\n (change)=\"onChange($event)\"\r\n >\r\n <ng-template></ng-template>\r\n </ejs-richtexteditor>\r\n `,\r\n providers: [ToolbarService, LinkService, ImageService, HtmlEditorService],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CoRichTextEditorComponent implements OnInit, AfterViewInit {\r\n @ViewChild('rte', {static: false})\r\n public editor: RichTextEditorComponent;\r\n\r\n @Output()\r\n public onChangeEvent: EventEmitter<ChangeEventArgs> = new EventEmitter<ChangeEventArgs>();\r\n\r\n @Input()\r\n public model: any;\r\n\r\n @HostBinding(\"class.co-rich-text-editor\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public getContent(): Element {\r\n if (this.editor) {\r\n return this.editor.getContent();\r\n }\r\n }\r\n\r\n public getText(): string {\r\n if (this.editor) {\r\n return this.editor.getText();\r\n }\r\n }\r\n\r\n public onChange(args: ChangeEventArgs): void {\r\n if (args) {\r\n this.onChangeEvent.next(args);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport {CoRichTextEditorComponent} from \"./co-rich-text-editor.component\";\r\nimport {RichTextEditorModule} from \"@syncfusion/ej2-angular-richtexteditor\";\r\nimport {FormsModule} from \"@angular/forms\";\r\n\r\n@NgModule({\r\n declarations: [CoRichTextEditorComponent],\r\n exports: [\r\n CoRichTextEditorComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n RichTextEditorModule,\r\n FormsModule\r\n ]\r\n})\r\nexport class CoRichTextEditorModule { }\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ComponentFactoryResolver,\r\n ElementRef,\r\n forwardRef,\r\n HostBinding,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {BaseInputComponent} from \"../base/base-input.component\";\r\nimport {COMPONENT_INTERFACE_NAME} from \"../base/component-interface-name\";\r\nimport {CheckBoxSelection, ListBoxComponent, SelectionSettingsModel} from \"@syncfusion/ej2-angular-dropdowns\";\r\nimport {FormInputUserModelChangeListenerService} from \"../../core/service/form-input-user-change-listener.service\";\r\nimport {NgZoneWrapperService} from \"../../core/service/ng-zone-wrapper.service\";\r\nimport {FormComponent} from \"../form/form.component\";\r\n\r\nListBoxComponent.Inject(CheckBoxSelection);\r\n\r\n@Component({\r\n selector: 'co-input-listbox',\r\n template: `\r\n <div class=\"co-input-listbox-header\" [textContent]=\"placeholder\"></div>\r\n <div class=\"co-input-listbox-content\">\r\n <ejs-listbox\r\n [ngModel]=\"value\"\r\n [dataSource]=\"collection\"\r\n [fields]=\"fields\"\r\n [selectionSettings]=\"selectionSettings\"\r\n (ngModelChange)=\"modelChange.emit($event)\"\r\n ></ejs-listbox>\r\n </div>\r\n <div class=\"required-indicator\"></div>\r\n <ng-template #validationError></ng-template>\r\n `,\r\n providers: [{\r\n provide: COMPONENT_INTERFACE_NAME, useExisting: forwardRef(() => InputListboxComponent)\r\n }],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class InputListboxComponent extends BaseInputComponent<any> implements OnInit, OnDestroy {\r\n\r\n @Input()\r\n public placeholder: string;\r\n\r\n @Input()\r\n public value: string[] | number[];\r\n // public set model(value: string[] | number[]) {\r\n // this._model = value;\r\n // }\r\n\r\n @Input()\r\n public collection: {}[] = [];\r\n\r\n @Input()\r\n public fields: {};\r\n\r\n @Input()\r\n public set singleSelect(value: boolean) {\r\n if (value) {\r\n this.selectionSettings.mode = 'Single';\r\n }\r\n }\r\n\r\n @Input()\r\n public set showCheckbox(value: boolean) {\r\n if (value) {\r\n this.selectionSettings.showCheckbox = true;\r\n }\r\n }\r\n\r\n @Input()\r\n public set showSelectAll(value: boolean) {\r\n if (value) {\r\n this.selectionSettings.showSelectAll = true;\r\n }\r\n }\r\n\r\n @HostBinding('class.co-input-listbox')\r\n public showClass(): boolean {\r\n return true;\r\n }\r\n\r\n @HostBinding('class.custom-height')\r\n public customHeight: boolean = true;\r\n\r\n public selectionSettings: SelectionSettingsModel = {mode: 'Multiple'};\r\n\r\n constructor(\r\n @Optional() public formComponent: FormComponent,\r\n protected changeDetector: ChangeDetectorRef,\r\n protected componentFactoryResolver: ComponentFactoryResolver,\r\n protected formUserChangeListener?: FormInputUserModelChangeListenerService,\r\n protected ngZoneWrapper?: NgZoneWrapperService,\r\n public elementRef?: ElementRef,\r\n ) {\r\n super(changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef);\r\n super._markAsOnPush();\r\n }\r\n\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {InputListboxComponent} from \"./input-listbox.component\";\r\nimport {ListBoxModule} from \"@syncfusion/ej2-angular-dropdowns\";\r\nimport {enableRipple} from \"@syncfusion/ej2-base\";\r\nimport {FormsModule} from \"@angular/forms\";\r\n\r\nenableRipple(true);\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ListBoxModule\r\n ],\r\n declarations: [\r\n InputListboxComponent\r\n ],\r\n exports: [\r\n InputListboxComponent\r\n ]\r\n})\r\nexport class InputListboxModule { }\r\n","import {ContentChild, Directive, Input, TemplateRef} from \"@angular/core\";\r\n\r\nexport enum ColumnAlign {\r\n Left = \"left-align\",\r\n Center = \"center-align\",\r\n Right = \"right-align\"\r\n}\r\n\r\n@Directive({\r\n selector: \"co-simple-grid-column\"\r\n})\r\nexport class SimpleGridColumnDirective {\r\n private static _MinManualResizeWidthPx: number = 50;\r\n\r\n @ContentChild(TemplateRef)\r\n public set template(template: TemplateRef<any>) {\r\n if (template) {\r\n this._template = template;\r\n }\r\n }\r\n\r\n public get template(): TemplateRef<any> {\r\n return this._template;\r\n }\r\n\r\n @Input()\r\n public headerText: string;\r\n\r\n @Input()\r\n public field: string;\r\n\r\n @Input()\r\n public textAlign: ColumnAlign;\r\n\r\n @Input()\r\n public format: string;\r\n\r\n @Input()\r\n public resizable: boolean = true;\r\n\r\n @Input()\r\n public width: number;\r\n\r\n private _template: TemplateRef<any>;\r\n\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChildren,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener,\r\n Input,\r\n Output,\r\n QueryList,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {CdkDrag, CdkDragDrop, CdkDropList, moveItemInArray} from \"@angular/cdk/drag-drop\";\r\nimport {ColumnAlign, SimpleGridColumnDirective} from \"./simple-grid-column.directive\";\r\n\r\n@Component({\r\n selector: \"co-simple-grid\",\r\n template: `\r\n <div class=\"simple-grid-column-header-wrapper\">\r\n <div class=\"simple-grid-column-header\" *ngFor=\"let column of columns; let index = index\"\r\n [style.min-width.px]=\"column.width\" [style.max-width.px]=\"column.width\">\r\n <div class=\"simple-grid-column-header-label\" [ngClass]=\"column.textAlign ? column.textAlign : defaultTextAlign\"\r\n [textContent]=\"column.headerText\"\r\n ></div>\r\n <div *ngIf=\"column.resizable\" class=\"simple-grid-column-sizer\"\r\n (mousedown)=\"handleSizerMouseDown($event, column)\"\r\n ></div>\r\n </div>\r\n </div>\r\n <div cdkDropListGroup class=\"drop-list-group\">\r\n <div #dropList cdkDropList cdkDropListOrientation=\"vertical\"\r\n class=\"simple-grid-drag-drop-list\"\r\n [cdkDropListDisabled]=\"!dragDropEnabled\"\r\n [cdkDropListData]=\"data\"\r\n [cdkDropListEnterPredicate]=\"handleCanDragDrop\"\r\n (cdkDropListDropped)=\"handleDrop($event)\"\r\n >\r\n <div class=\"simple-grid-row\" *ngFor=\"let row of data\" cdkDrag>\r\n <div class=\"simple-grid-column-cell\" *ngFor=\"let column of columns\"\r\n [style.min-width.px]=\"column.width\" [style.max-width.px]=\"column.width\">\r\n <div class=\"simple-grid-column-cell-value\" [ngClass]=\"column.textAlign ? column.textAlign : defaultTextAlign\">\r\n <ng-container *ngIf=\"column.template\">\r\n <ng-container [ngTemplateOutlet]=\"column.template\" [ngTemplateOutletContext]=\"{value: row[column.field], row: row}\"></ng-container>\r\n </ng-container>\r\n <div *ngIf=\"!column.template\" [textContent]=\"row[column.field]\"></div>\r\n </div>\r\n <div *ngIf=\"column.resizable\" class=\"simple-grid-column-sizer-placeholder\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class SimpleGridComponent {\r\n public readonly defaultTextAlign: ColumnAlign = ColumnAlign.Left;\r\n\r\n @ContentChildren(SimpleGridColumnDirective) set content(columnComponents: QueryList<SimpleGridColumnDirective>) {\r\n this.columns = columnComponents.toArray();\r\n }\r\n\r\n @Input()\r\n public data: Object[] = [];\r\n\r\n @Input()\r\n public dragDropEnabled: boolean = false;\r\n\r\n /**\r\n * Should component emit drag and drop actions instead of handle\r\n * (update collection) by itself\r\n */\r\n @Input()\r\n public emitDragDrop: boolean = false;\r\n\r\n @Output()\r\n public onDrop: EventEmitter<{from: number, to: number}> = new EventEmitter<{from: number; to: number}>();\r\n\r\n @HostBinding(\"class.co-simple-grid\")\r\n public showClass(): boolean {\r\n return true;\r\n }\r\n\r\n @HostListener('document:mousemove', ['$event'])\r\n public handleMouseMove(event: MouseEvent): void {\r\n if (event.buttons === 1 && this._columnForResize) {\r\n if (!this._columnForResize.width) {\r\n const rect: ClientRect = (event.target as any).parentElement.getBoundingClientRect();\r\n this._columnForResize.width = rect.width;\r\n }\r\n this._columnForResize.width += event.movementX;\r\n }\r\n }\r\n\r\n @HostListener('document:mouseup', ['$event'])\r\n public handleMouseUp(event: MouseEvent): void {\r\n this._columnForResize = undefined;\r\n }\r\n\r\n public columns: SimpleGridColumnDirective[] = [];\r\n\r\n private _columnForResize: SimpleGridColumnDirective;\r\n\r\n public handleSizerMouseDown(event: MouseEvent, column: SimpleGridColumnDirective): void {\r\n this._columnForResize = column;\r\n }\r\n\r\n public handleCanDragDrop(drag: CdkDrag, drop: CdkDropList): boolean {\r\n return true;\r\n }\r\n\r\n public handleDrop(event: CdkDragDrop<Object[]>): void {\r\n try {\r\n const from: number = event.previousIndex;\r\n const to: number = event.currentIndex;\r\n if (from === to) {\r\n return;\r\n }\r\n if (this.emitDragDrop) {\r\n this.onDrop.next({from: from, to: to});\r\n } else {\r\n moveItemInArray(this.data, from, to);\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {SimpleGridComponent} from \"./simple-grid.component\";\r\nimport {DragDropModule} from \"@angular/cdk/drag-drop\";\r\nimport {SimpleGridColumnDirective} from \"./simple-grid-column.directive\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n DragDropModule\r\n ],\r\n declarations: [\r\n SimpleGridComponent,\r\n SimpleGridColumnDirective\r\n ],\r\n exports: [\r\n SimpleGridComponent,\r\n SimpleGridColumnDirective\r\n ]\r\n})\r\nexport class SimpleGridModule { }\r\n","import {CSS3DObject} from \"three/examples/jsm/renderers/CSS3DRenderer\";\r\nimport {Mesh, PlaneBufferGeometry, Vector2, Vector3} from \"three\";\r\n\r\nexport class CarouselItem {\r\n\r\n public object: CSS3DObject;\r\n public mesh: Mesh;\r\n public index: number;\r\n\r\n private _options: {\r\n tileSize: Vector2,\r\n tileBackgroundColor: any,\r\n textSelectable: boolean,\r\n tileBorderColor: any\r\n };\r\n private _element: HTMLDivElement;\r\n\r\n constructor(options, index, onClick) {\r\n this._options = options || {};\r\n this.index = index;\r\n\r\n const width = this._options.tileSize?.x || 0;\r\n const height = this._options.tileSize?.y || 0;\r\n\r\n this._element = document.createElement('div');\r\n // this._element.style.backgroundColor = this._options.tileBackgroundColor;\r\n this._element.style.width = width + \"px\";\r\n this._element.style.height = height + \"px\";\r\n\r\n this._element.addEventListener(\"click\", () => {\r\n if (onClick) {\r\n onClick(this.index);\r\n }\r\n }, false);\r\n\r\n this.object = new CSS3DObject(this._element);\r\n\r\n const geometry = new PlaneBufferGeometry(width, height);\r\n this.mesh = new Mesh(geometry, options.tileMaterial);\r\n this.mesh.castShadow = true;\r\n }\r\n\r\n public setPosition(position: Vector3): void {\r\n if (this.mesh) {\r\n this.mesh.position.copy(position);\r\n }\r\n if (this.object) {\r\n this.object.position.copy(position);\r\n }\r\n }\r\n\r\n public setContent(content): void {\r\n if (this._element) {\r\n\r\n // remove any exising tile content before setting new content\r\n while (this._element.lastElementChild) {\r\n this._element.removeChild(this._element.lastElementChild);\r\n }\r\n\r\n try {\r\n this._element.appendChild(content);\r\n }\r\n catch (err) {\r\n }\r\n }\r\n }\r\n\r\n public setVisible(visible: boolean): void {\r\n if (this.mesh) {\r\n this.mesh.visible = visible;\r\n }\r\n\r\n if (this.object) {\r\n this.object.visible = visible;\r\n }\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ContentChildren,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {\r\n AmbientLight,\r\n Box3,\r\n Color,\r\n Fog,\r\n Mesh,\r\n MeshPhongMaterial,\r\n PerspectiveCamera,\r\n PlaneGeometry,\r\n Scene,\r\n SpotLight,\r\n Vector2,\r\n Vector3,\r\n WebGLRenderer\r\n} from \"three\";\r\nimport {CarouselItem} from \"./carouselItem\";\r\nimport {CSS3DObject, CSS3DRenderer} from \"three/examples/jsm/renderers/CSS3DRenderer\";\r\nimport * as TWEEN from \"@tweenjs/tween.js\";\r\n\r\n@Component({\r\n selector: \"co-carousel-3d\",\r\n template: `\r\n <div class=\"carousel-3d-canvas-wrapper\" #canvasContainer>\r\n <div class=\"carousel-wrapper\" #carouselWrapper>\r\n <div class=\"carousel-navigate-button left\">\r\n <div class=\"carousel-navigate-button-wrapper\" *ngIf=\"canNavigateLeft\" (click)=\"handleButtonLeftClick()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\">\r\n <path\r\n d=\"M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z\"></path>\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"carousel-navigate-button right\">\r\n <div class=\"carousel-navigate-button-wrapper\" *ngIf=\"canNavigateRight\" (click)=\"handleButtonRightClick()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\">\r\n <path\r\n d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"></path>\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class Carousel3dComponent implements AfterViewInit, OnDestroy {\r\n @ViewChild(\"canvasContainer\", {read: ElementRef})\r\n public canvasContainer: ElementRef;\r\n\r\n @ViewChild(\"carouselWrapper\", {read: ElementRef})\r\n public carouselWrapper: ElementRef;\r\n\r\n @ContentChildren(\"carouselItem\", {read: ElementRef, descendants: true}) set children(children) {\r\n this._elementsCreated = false;\r\n this._tileElements = children.toArray();\r\n this._buildCarousel();\r\n }\r\n\r\n @Input()\r\n public tileWidth: number;\r\n\r\n @Input()\r\n public tileHeight: number;\r\n\r\n @Input()\r\n public cameraHeight: number = 50;\r\n\r\n @Input()\r\n public shadow: boolean = false;\r\n\r\n @Input()\r\n public selectedIndex: number = 0;\r\n\r\n @Output()\r\n public indexSelected: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n @HostBinding(\"class.co-carousel-3d\")\r\n public showClass(): boolean {\r\n return true;\r\n }\r\n\r\n private _camera: PerspectiveCamera;\r\n private _cameraZoom: number = 0;\r\n private _backgroundColor = 0xffffff;\r\n private _sceneCss: Scene;\r\n private _scene: Scene;\r\n private _rendererCss: CSS3DRenderer;\r\n private _renderer: WebGLRenderer;\r\n private _ambientLight: boolean = true;\r\n private _tileSize: Vector2 = new Vector2();\r\n private _tileMargin: number = 20;\r\n private _targetPositions = [];\r\n private _tileElements: ElementRef[] = [];\r\n private _tileOffset = 0;\r\n private _tiles3D: CarouselItem[] = [];\r\n private _planeColor = 0xffffff;\r\n private _planeHeight = -46;\r\n private _spotLightPosition: Vector3 = new Vector3(0, 250, -200);\r\n private _fullCircle: boolean = false;\r\n private _initialized: boolean = false;\r\n private _elementsCreated: boolean = false;\r\n\r\n public canNavigateLeft: boolean = false;\r\n public canNavigateRight: boolean = false;\r\n\r\n ngAfterViewInit(): void {\r\n this._buildCarousel();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.canvasContainer = undefined;\r\n this.carouselWrapper = undefined;\r\n this._clearScenes();\r\n }\r\n\r\n public handleButtonLeftClick(): void {\r\n this._tileOffset -= 1;\r\n this._rotate(400);\r\n }\r\n\r\n public handleButtonRightClick(): void {\r\n this._tileOffset += 1;\r\n this._rotate(400);\r\n }\r\n\r\n private _buildCarousel(): void {\r\n if (!this._initialized) {\r\n this._init();\r\n }\r\n if (this._initialized && !this._elementsCreated) {\r\n this._createTiles();\r\n }\r\n this._checkNavigationButtons();\r\n }\r\n\r\n private _init(): void {\r\n if (!this.canvasContainer || !this.canvasContainer.nativeElement) {\r\n return;\r\n }\r\n\r\n this._initCamera();\r\n this._initScene();\r\n this._initRenderer();\r\n\r\n if (this.shadow) {\r\n const geometry = new PlaneGeometry(10000, 10000);\r\n const material = new MeshPhongMaterial({color: this._planeColor, shininess: 100});\r\n const plane = new Mesh(geometry, material);\r\n plane.receiveShadow = true;\r\n plane.rotation.x = -Math.PI / 2;\r\n plane.position.y = this._planeHeight;\r\n this._scene.add(plane);\r\n\r\n const spotLight = new SpotLight(0xffffff, 0.5);\r\n spotLight.position.copy(this._spotLightPosition);\r\n spotLight.castShadow = true;\r\n spotLight.shadow.mapSize.width = 512;\r\n spotLight.shadow.mapSize.height = 512;\r\n spotLight.shadow.camera.near = 50;\r\n spotLight.shadow.camera.far = 1200;\r\n spotLight.shadow.camera.fov = 30;\r\n spotLight.penumbra = 1;\r\n this._scene.add(spotLight);\r\n }\r\n\r\n this.carouselWrapper.nativeElement.appendChild(this._rendererCss.domElement);\r\n this.canvasContainer.nativeElement.appendChild(this.carouselWrapper.nativeElement);\r\n this.canvasContainer.nativeElement.appendChild(this._renderer.domElement);\r\n\r\n this._render();\r\n this._animate();\r\n\r\n window.addEventListener(\"resize\", () => {\r\n this._resizeCanvasToDisplaySize();\r\n }, false);\r\n\r\n this._initialized = true;\r\n }\r\n\r\n private _initCamera(): void {\r\n this._camera = new PerspectiveCamera(50, this.canvasContainer.nativeElement.clientWidth / this.canvasContainer.nativeElement.clientHeight, 1, 10000);\r\n this._camera.position.z = 600 - this._cameraZoom;\r\n this._camera.position.y = this.cameraHeight;\r\n this._camera.lookAt(new Vector3());\r\n }\r\n\r\n private _initScene(): void {\r\n this._sceneCss = new Scene();\r\n this._scene = new Scene();\r\n this._scene.background = new Color(this._backgroundColor);\r\n\r\n if (this._ambientLight) {\r\n const light = new AmbientLight(0xaaaaaa); // soft white light\r\n this._scene.add(light);\r\n\r\n this._scene.fog = new Fog(this._backgroundColor, 70, 2500);\r\n }\r\n }\r\n\r\n private _initRenderer(): void {\r\n this._rendererCss = new CSS3DRenderer();\r\n this._rendererCss.setSize(this.canvasContainer.nativeElement.clientWidth, this.canvasContainer.nativeElement.clientHeight);\r\n this._rendererCss.domElement.style.position = \"absolute\";\r\n\r\n this._renderer = new WebGLRenderer({antialias: true});\r\n this._renderer.setPixelRatio(window.devicePixelRatio);\r\n this._renderer.setSize(this.canvasContainer.nativeElement.clientWidth, this.canvasContainer.nativeElement.clientHeight);\r\n this._renderer.shadowMap.enabled = true;\r\n }\r\n\r\n private _disposeObject(obj: Mesh | CSS3DObject): void {\r\n if (obj instanceof Mesh) {\r\n if (obj.geometry) {\r\n obj.geometry.dispose();\r\n }\r\n if (obj.material) {\r\n Array.isArray(obj.material)? obj.material.map(m => m.dispose()) : obj.material.dispose();\r\n }\r\n obj = undefined;\r\n } else {\r\n obj.element = undefined;\r\n obj = undefined;\r\n }\r\n }\r\n\r\n private _clearScenes(): void {\r\n const meshes: Mesh[] = this._tiles3D.map(t => t.mesh);\r\n const cssObjs: CSS3DObject[] = this._tiles3D.map(t => t.object);\r\n this._scene.remove(...meshes);\r\n meshes.map(m => this._disposeObject(m));\r\n meshes.length = 0;\r\n this._sceneCss.remove(...cssObjs);\r\n cssObjs.map(o => this._disposeObject(o));\r\n cssObjs.length = 0;\r\n this._tiles3D.length = 0;\r\n this._targetPositions.length = 0;\r\n }\r\n\r\n private _createTiles(): void {\r\n this._clearScenes();\r\n this._tileSize.x = this.tileWidth;\r\n this._tileSize.y = this.tileHeight;\r\n const tileWidth = this._tileSize.x + this._tileMargin;\r\n const numItems: number = Math.max(this._tileElements.length, 20);\r\n this._fullCircle = this._tileElements.length >= 20;\r\n let angleTileDeg: number = 360 / numItems;\r\n const circumference: number = numItems * tileWidth;\r\n const radius: number = circumference / (Math.PI * 2);\r\n const y = this.shadow ? 75 : 45;\r\n\r\n const len: number = numItems;\r\n let angleDeg: number = 90;\r\n const position: Vector3 = new Vector3();\r\n for (var i = 0; i < len; i++) {\r\n const angle = angleDeg * ( Math.PI / 180 ); // Radians\r\n const x = radius * Math.cos(angle);\r\n const z = -radius + radius * Math.sin(angle);\r\n position.set(x, y, z);\r\n this._targetPositions.push(position.clone());\r\n if (i < this._tileElements.length) {\r\n const tile: CarouselItem = new CarouselItem({tileSize: this._tileSize}, i, (idx: number) => this._rotateTo(idx));\r\n tile.setPosition(position);\r\n tile.setContent(this._tileElements[i].nativeElement);\r\n this._scene.add(tile.mesh);\r\n this._sceneCss.add(tile.object);\r\n this._tiles3D.push(tile);\r\n }\r\n angleDeg = angleDeg - angleTileDeg; // CW instead of CCW\r\n }\r\n this._adjustCameraZoom();\r\n this._tileOffset = this.selectedIndex;\r\n this._rotate(0);\r\n this._render();\r\n }\r\n\r\n private _adjustCameraZoom(): void {\r\n if (this._tiles3D.length === 0) {\r\n return;\r\n }\r\n const object = this._tiles3D[0].mesh;\r\n // offset = offset || 1.15;\r\n\r\n // get bounding box of object - this will be used to setup controls and camera\r\n const boundingBox = new Box3();\r\n boundingBox.setFromObject(object);\r\n const center: Vector3 = new Vector3();\r\n boundingBox.getCenter(center);\r\n const size: Vector3 = new Vector3();\r\n boundingBox.getSize(size);\r\n\r\n // get the max side of the bounding box (fits to width OR height as needed )\r\n const maxDim = Math.max(size.x, size.y, size.z);\r\n\r\n const fov: number = this._camera.fov * (Math.PI / 180);\r\n // let cameraZ = Math.abs(maxDim / 4 * Math.tan(fov * 200));\r\n let cameraZ = Math.abs((maxDim / 2) / Math.tan(fov / 2));\r\n // cameraZ *= offset; // zoom out a little so that objects don't fill the screen\r\n this._camera.position.z = cameraZ;\r\n this._camera.lookAt(center);\r\n }\r\n\r\n private _checkNavigationButtons(): void {\r\n const currentIdx: number = this._getSelectedIndex();\r\n this.canNavigateLeft = (currentIdx > 0) || this._fullCircle;\r\n this.canNavigateRight = (currentIdx < this._tileElements.length - 1) || this._fullCircle;\r\n }\r\n\r\n private _animate() {\r\n TWEEN.update();\r\n setTimeout(() => {\r\n this._renderer.setAnimationLoop(() => this._animate());\r\n }, 200);\r\n }\r\n\r\n private _getSelectedIndex() {\r\n return Math.max(0, Math.min(this.selectedIndex, this._tileElements.length - 1));\r\n }\r\n\r\n private _rotate(duration) {\r\n TWEEN.removeAll();\r\n\r\n for (let i: number = 0; i < this._tiles3D.length; i++) {\r\n const tile = this._tiles3D[i];\r\n\r\n if (Math.abs(this._tileOffset) > this._targetPositions.length) { // full circle\r\n this._tileOffset = this._tileOffset > 0 ? 1 : -1;\r\n }\r\n\r\n let positionIdx: number = i - this._tileOffset;\r\n if (positionIdx > this._targetPositions.length - 1) {\r\n positionIdx = positionIdx - this._targetPositions.length;\r\n } else if (positionIdx < 0) {\r\n positionIdx = this._targetPositions.length + positionIdx;\r\n }\r\n const target = this._targetPositions[positionIdx];\r\n\r\n new TWEEN.Tween(tile.object.position)\r\n .to(target, duration)\r\n .easing(TWEEN.Easing.Quartic.Out)\r\n .start();\r\n new TWEEN.Tween(tile.mesh.position)\r\n .to(target, duration)\r\n .easing(TWEEN.Easing.Quartic.Out)\r\n .start();\r\n }\r\n\r\n new TWEEN.Tween()\r\n .to({}, duration * 2)\r\n .onUpdate(() => {\r\n this._render();\r\n })\r\n .start();\r\n\r\n this.selectedIndex = this._tileOffset;\r\n this._checkNavigationButtons();\r\n this.indexSelected.next(this._getSelectedIndex());\r\n }\r\n\r\n private _rotateTo(index: number) {\r\n const current = this._getSelectedIndex();\r\n this._tileOffset += index - current;\r\n this._rotate(800);\r\n }\r\n\r\n private _resizeCanvasToDisplaySize() {\r\n this._camera.aspect = this.canvasContainer.nativeElement.clientWidth / this.canvasContainer.nativeElement.clientHeight;\r\n this._camera.updateProjectionMatrix();\r\n\r\n this._rendererCss.setSize(this.canvasContainer.nativeElement.clientWidth, this.canvasContainer.nativeElement.clientHeight);\r\n this._renderer.setSize(this.canvasContainer.nativeElement.clientWidth, this.canvasContainer.nativeElement.clientHeight);\r\n this._render();\r\n }\r\n\r\n private _render() {\r\n this._rendererCss.render(this._sceneCss, this._camera);\r\n this._renderer.render(this._scene, this._camera);\r\n }\r\n\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {Carousel3dComponent} from \"./carousel-3d.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n Carousel3dComponent\r\n ],\r\n exports: [\r\n Carousel3dComponent\r\n ]\r\n})\r\nexport class Carousel3dModule {\r\n}\r\n","/*\n * Public API Surface of corecomponents\n */\n\nexport * from './lib/components/article-tile/article-tile.module';\nexport * from './lib/components/article-tile/article-tile.component';\nexport * from './lib/components/button/button.module';\nexport * from './lib/components/button/button.component';\nexport * from './lib/components/button-drop-down/button-drop-down.module';\nexport * from './lib/components/button-drop-down/button-drop-down.component';\nexport * from './lib/components/co-dialog/co-dialog.module';\nexport * from './lib/components/co-dialog/co-dialog.component';\nexport * from './lib/components/co-dialog-prompt/co-dialog-prompt.module';\nexport * from './lib/components/co-dialog-prompt/co-dialog-prompt.component';\nexport * from './lib/components/co-kanban/co-kanban.module';\nexport * from './lib/components/co-kanban/co-kanban.component';\nexport * from './lib/components/co-schedule/co-schedule.module';\nexport * from './lib/components/co-schedule/co-schedule.component';\nexport * from './lib/components/co-sidebar/co-sidebar.module';\nexport * from './lib/components/co-sidebar/co-sidebar.component';\nexport * from './lib/components/co-toggle/co-toggle.module';\nexport * from './lib/components/co-toggle/co-toggle.component';\nexport * from './lib/components/collapsible/collapsible.module';\nexport * from './lib/components/collapsible/collapsible.component';\nexport * from './lib/components/drop-down-list/drop-down.module';\nexport * from './lib/components/drop-down-list/drop-down-list.component';\nexport * from './lib/components/form/form.module';\nexport * from './lib/components/form/form.component';\nexport * from './lib/core/service/form-master.service';\nexport * from './lib/components/grid/co-grid.module';\nexport * from './lib/components/grid/co-grid.component';\nexport * from './lib/components/icon/icon.module';\nexport * from './lib/components/icon/icon.component';\nexport * from './lib/components/image/image.module';\nexport * from './lib/components/image/image.component';\nexport * from './lib/components/input-checkbox/input-checkbox.module';\nexport * from './lib/components/input-checkbox/input-checkbox.component';\nexport * from './lib/components/input-checkbox-multi-select/input-checkbox-multi-select.module';\nexport * from './lib/components/input-checkbox-multi-select/input-checkbox-multi-select.component';\nexport * from './lib/components/input-combo-box/input-combo-box.module';\nexport * from './lib/components/input-combo-box/input-combo-box.component';\nexport * from './lib/components/input-date-picker/input-date-picker.module';\nexport * from './lib/components/input-date-picker/input-date-picker.component';\nexport * from './lib/components/input-number-picker/input-number-picker.module';\nexport * from './lib/components/input-number-picker/input-number-picker.component';\nexport * from './lib/components/input-radio-button/input-radio-button.module';\nexport * from './lib/components/input-radio-button/input-radio-button.component';\nexport * from './lib/components/input-text/input-text.module';\nexport * from './lib/components/input-text/input-text.component';\nexport * from './lib/components/input-textarea/input-textarea.module';\nexport * from './lib/components/input-textarea/input-textarea.component';\nexport * from './lib/components/level-indicator/level-indicator.module';\nexport * from './lib/components/level-indicator/level-indicator.component';\nexport * from './lib/components/multi-select-list/multi-select-list.module';\nexport * from './lib/components/multi-select-list/multi-select-list.component';\nexport * from './lib/components/pivot/co-pivot.module';\nexport * from './lib/components/pivot/co-pivot.component';\nexport * from './lib/components/popup/popup.module';\nexport * from './lib/components/popup/text-input-popup.component';\nexport * from './lib/components/popup/popup-window-shell.component';\nexport * from './lib/components/popup/popup-message-display.component';\nexport * from './lib/components/popup/popup-buttons.component';\nexport * from './lib/components/tile/tile.module';\nexport * from './lib/components/tile/tile.component';\nexport * from './lib/core/enum/core-components-icon.enum';\nexport * from './lib/components/popup/service/prompt.service';\nexport * from './lib/components/icon/icon-cache.service';\nexport * from './lib/components/base/component-interface-name';\nexport * from './lib/components/co-rich-text-editor/co-rich-text-editor.module';\nexport * from './lib/components/co-rich-text-editor/co-rich-text-editor.component';\nexport * from './lib/components/input-listbox/input-listbox.module';\nexport * from './lib/components/input-listbox/input-listbox.component';\nexport * from './lib/components/simple-grid/simple-grid-column.directive';\nexport * from './lib/components/simple-grid/simple-grid.component';\nexport * from './lib/components/simple-grid/simple-grid.module';\nexport * from './lib/components/carousel-3d/carousel-3d.component';\nexport * from './lib/components/carousel-3d/carousel-3d.module';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {BaseInputComponent as ɵo} from './lib/components/base/base-input.component';\nexport {BaseModule as ɵl} from './lib/components/base/base.module';\nexport {BaseGridComponent as ɵs} from './lib/components/grid/base/base-grid.component';\nexport {BaseInlineEditGridComponent as ɵq} from './lib/components/grid/base/base-inline-edit-grid.component';\nexport {BaseSelectionGridComponent as ɵp} from './lib/components/grid/base/base-selection-grid.component';\nexport {BaseToolbarGridComponent as ɵr} from './lib/components/grid/base/base-toolbar-grid.component';\nexport {PopupShowerService as ɵx} from './lib/components/popup/service/popup-shower.service';\nexport {ValidationErrorComponent as ɵw} from './lib/components/validation-error/validation-error.component';\nexport {ValidationErrorModule as ɵv} from './lib/components/validation-error/validation-error.module';\nexport {InputBoolean as ɵk} from './lib/core/decorator/input-boolean.decorator';\nexport {FormInputUserModelChangeListenerService as ɵm} from './lib/core/service/form-input-user-change-listener.service';\nexport {NgZoneWrapperService as ɵn} from './lib/core/service/ng-zone-wrapper.service';\nexport {CoRippleDirective as ɵc,MD_RIPPLE_GLOBAL_OPTIONS as ɵb} from './lib/directives/ripple/ripple.directive';\nexport {RippleModule as ɵa} from './lib/directives/ripple/ripple.module';\nexport {CoScrollDispatcherService as ɵe} from './lib/directives/ripple/scroll-dispatcher.service';\nexport {CoScrollableDirective as ɵf} from './lib/directives/ripple/scrollable.directive';\nexport {CoViewportRulerService as ɵd} from './lib/directives/ripple/viewport-ruler.service';\nexport {StopClickDirective as ɵh} from './lib/directives/stopclick/stop-click.directive';\nexport {StopClickModule as ɵg} from './lib/directives/stopclick/stop-click.module';\nexport {AppendPipe as ɵu} from './lib/pipes/append.pipe';\nexport {AppendPipeModule as ɵt} from './lib/pipes/append.pipe.module';\nexport {PriceDisplayPipeModule as ɵi} from './lib/pipes/price-display-pipe.module';\nexport {PriceDisplayPipe as ɵj} from './lib/pipes/price-display.pipe';"],"names":["Injectable","DomSanitizer","Component","Input","HostBinding","NgModule","CommonModule","HttpClientModule","Subject","auditTime","merge","fromEvent","Optional","SkipSelf","InjectionToken","Directive","ElementRef","NgZone","Inject","EventEmitter","ChangeDetectionStrategy","ViewEncapsulation","Output","HostListener","Pipe","CoreComponentsIcon","DropDownButtonModule","trigger","state","style","transition","animate","BrowserAnimationsModule","ViewChild","DialogModule","KanbanModule","DayService","WeekService","WorkWeekService","MonthService","AgendaService","MonthAgendaService","TimelineViewsService","TimelineMonthService","ScheduleModule","SidebarModule","SwitchModule","FormsModule","ChangeDetectorRef","ComponentFactoryResolver","ViewContainerRef","NgModel","FormGroup","CheckBoxSelectionService","forwardRef","DropDownListModule","MultiSelectModule","RowDDService","GridModule","PageService","SortService","FilterService","GroupService","ReorderService","ResizeService","ExcelExportService","PdfExportService","EditService","ToolbarService","ColumnChooserService","ColumnMenuService","ContextMenuService","enableRipple","CheckBoxModule","MultiSelectAllModule","ComboBoxAllModule","DatePickerModule","NO_ERRORS_SCHEMA","TextBoxAllModule","NumericTextBoxModule","RadioButtonModule","GroupingBarService","GroupingService","ConditionalFormattingService","FieldListService","NumberFormattingService","PivotViewModule","OverlayConfig","ComponentPortal","Injector","ApplicationRef","Overlay","LinkService","ImageService","HtmlEditorService","RichTextEditorModule","ListBoxComponent","CheckBoxSelection","ListBoxModule","ColumnAlign","ContentChild","TemplateRef","moveItemInArray","ContentChildren","DragDropModule","CSS3DObject","PlaneBufferGeometry","Mesh","Vector2","Vector3","PlaneGeometry","MeshPhongMaterial","SpotLight","PerspectiveCamera","Scene","Color","AmbientLight","Fog","CSS3DRenderer","WebGLRenderer","Box3","TWEEN"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"colijnit-corecomponents_v12.umd.js","sources":["../../../projects/corecomponents/src/lib/core/function/is-nill.function.ts","../../../projects/corecomponents/src/lib/core/function/not-nill.function.ts","../../../projects/corecomponents/src/lib/core/utils/object-utils.ts","../../../projects/corecomponents/src/lib/core/function/none-nill.function.ts","../../../projects/corecomponents/src/lib/core/function/any-nill.function.ts","../../../projects/corecomponents/src/lib/core/utils/number-utils.ts","../../../projects/corecomponents/src/lib/core/utils/array-utils.ts","../../../projects/corecomponents/src/lib/core/utils/string-utils.ts","../../../projects/corecomponents/src/lib/core/model/core-components-icon-svg.ts","../../../projects/corecomponents/src/lib/components/icon/icon-cache.service.ts","../../../projects/corecomponents/src/lib/components/icon/icon.component.ts","../../../projects/corecomponents/src/lib/components/icon/icon.module.ts","../../../projects/corecomponents/src/lib/directives/ripple/scroll-dispatcher.service.ts","../../../projects/corecomponents/src/lib/directives/ripple/viewport-ruler.service.ts","../../../projects/corecomponents/src/lib/directives/ripple/ripple-ref.ts","../../../projects/corecomponents/src/lib/directives/ripple/ripple-renderer.ts","../../../projects/corecomponents/src/lib/directives/ripple/ripple.directive.ts","../../../projects/corecomponents/src/lib/directives/ripple/scrollable.directive.ts","../../../projects/corecomponents/src/lib/directives/ripple/ripple.module.ts","../../../projects/corecomponents/src/lib/core/utils/event-utils.ts","../../../projects/corecomponents/src/lib/components/button/button.component.ts","../../../projects/corecomponents/src/lib/components/button/button.module.ts","../../../projects/corecomponents/src/lib/components/image/image.component.ts","../../../projects/corecomponents/src/lib/components/image/image.module.ts","../../../projects/corecomponents/src/lib/directives/stopclick/stop-click.directive.ts","../../../projects/corecomponents/src/lib/directives/stopclick/stop-click.module.ts","../../../projects/corecomponents/src/lib/components/level-indicator/level-indicator.component.ts","../../../projects/corecomponents/src/lib/components/level-indicator/level-indicator.module.ts","../../../projects/corecomponents/src/lib/pipes/price-display.pipe.ts","../../../projects/corecomponents/src/lib/pipes/price-display-pipe.module.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/corecomponents/src/lib/core/enum/core-components-icon.enum.ts","../../../projects/corecomponents/src/lib/core/decorator/input-boolean.decorator.ts","../../../projects/corecomponents/src/lib/components/tile/tile.component.ts","../../../projects/corecomponents/src/lib/components/tile/tile.module.ts","../../../projects/corecomponents/src/lib/components/article-tile/article-tile.component.ts","../../../projects/corecomponents/src/lib/components/article-tile/article-tile.module.ts","../../../projects/corecomponents/src/lib/components/button-drop-down/button-drop-down.component.ts","../../../projects/corecomponents/src/lib/components/button-drop-down/button-drop-down.module.ts","../../../projects/corecomponents/src/lib/components/co-dialog/co-dialog.component.ts","../../../projects/corecomponents/src/lib/components/co-dialog/co-dialog.module.ts","../../../projects/corecomponents/src/lib/components/co-dialog-prompt/co-dialog-prompt.component.ts","../../../projects/corecomponents/src/lib/components/co-dialog-prompt/co-dialog-prompt.module.ts","../../../projects/corecomponents/src/lib/components/co-kanban/co-kanban.component.ts","../../../projects/corecomponents/src/lib/components/co-kanban/co-kanban.module.ts","../../../projects/corecomponents/src/lib/components/co-schedule/co-schedule.component.ts","../../../projects/corecomponents/src/lib/components/co-schedule/co-schedule.module.ts","../../../projects/corecomponents/src/lib/components/co-sidebar/co-sidebar.component.ts","../../../projects/corecomponents/src/lib/components/co-sidebar/co-sidebar.module.ts","../../../projects/corecomponents/src/lib/components/co-toggle/co-toggle.component.ts","../../../projects/corecomponents/src/lib/components/co-toggle/co-toggle.module.ts","../../../projects/corecomponents/src/lib/components/collapsible/collapsible.component.ts","../../../projects/corecomponents/src/lib/components/collapsible/collapsible.module.ts","../../../projects/corecomponents/src/lib/core/service/form-input-user-change-listener.service.ts","../../../projects/corecomponents/src/lib/core/service/ng-zone-wrapper.service.ts","../../../projects/corecomponents/src/lib/components/base/base.module.ts","../../../projects/corecomponents/src/lib/components/base/component-interface-name.ts","../../../projects/corecomponents/src/lib/core/validator/required.validator.ts","../../../projects/corecomponents/src/lib/core/validator/precision-scale.validator.ts","../../../projects/corecomponents/src/lib/core/validator/max-string-length.validator.ts","../../../projects/corecomponents/src/lib/components/validation-error/validation-error.component.ts","../../../projects/corecomponents/src/lib/components/base/base-input.component.ts","../../../projects/corecomponents/src/lib/core/model/element-position.ts","../../../projects/corecomponents/src/lib/core/service/form-master.service.ts","../../../projects/corecomponents/src/lib/components/form/form.component.ts","../../../projects/corecomponents/src/lib/components/drop-down-list/drop-down-list.component.ts","../../../projects/corecomponents/src/lib/components/drop-down-list/drop-down.module.ts","../../../projects/corecomponents/src/lib/components/form/form.module.ts","../../../projects/corecomponents/src/lib/components/grid/enum/grid-lines.enum.ts","../../../projects/corecomponents/src/lib/components/grid/base/base-grid.component.ts","../../../projects/corecomponents/src/lib/components/grid/base/base-toolbar-grid.component.ts","../../../projects/corecomponents/src/lib/components/grid/base/base-inline-edit-grid.component.ts","../../../projects/corecomponents/src/lib/components/grid/base/base-selection-grid.component.ts","../../../projects/corecomponents/src/lib/components/grid/co-grid.component.ts","../../../projects/corecomponents/src/lib/components/grid/co-grid.module.ts","../../../projects/corecomponents/src/lib/components/input-checkbox/input-checkbox.component.ts","../../../projects/corecomponents/src/lib/components/input-checkbox/input-checkbox.module.ts","../../../projects/corecomponents/src/lib/pipes/append.pipe.ts","../../../projects/corecomponents/src/lib/pipes/append.pipe.module.ts","../../../projects/corecomponents/src/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.component.ts","../../../projects/corecomponents/src/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.module.ts","../../../projects/corecomponents/src/lib/components/input-combo-box/input-combo-box.component.ts","../../../projects/corecomponents/src/lib/components/input-combo-box/input-combo-box.module.ts","../../../projects/corecomponents/src/lib/components/input-date-picker/input-date-picker.component.ts","../../../projects/corecomponents/src/lib/components/input-date-picker/input-date-picker.module.ts","../../../projects/corecomponents/src/lib/core/constant/java-max-int.ts","../../../projects/corecomponents/src/lib/core/constant/default-upper-bound-for-range-components.ts","../../../projects/corecomponents/src/lib/core/model/bounds-constrained-number-value.ts","../../../projects/corecomponents/src/lib/core/enum/keyboard-code.enum.ts","../../../projects/corecomponents/src/lib/core/constant/number-inputs-key-down-white-list.ts","../../../projects/corecomponents/src/lib/components/input-text/input-text.component.ts","../../../projects/corecomponents/src/lib/core/enum/input-number-picker-show-mode.enum.ts","../../../projects/corecomponents/src/lib/components/input-number-picker/input-number-picker.component.ts","../../../projects/corecomponents/src/lib/components/validation-error/validation-error.module.ts","../../../projects/corecomponents/src/lib/components/input-text/input-text.module.ts","../../../projects/corecomponents/src/lib/components/input-number-picker/input-number-picker.module.ts","../../../projects/corecomponents/src/lib/components/input-radio-button/input-radio-button.component.ts","../../../projects/corecomponents/src/lib/components/input-radio-button/input-radio-button.module.ts","../../../projects/corecomponents/src/lib/components/input-textarea/input-textarea.component.ts","../../../projects/corecomponents/src/lib/components/input-textarea/input-textarea.module.ts","../../../projects/corecomponents/src/lib/components/multi-select-list/multi-select-list.component.ts","../../../projects/corecomponents/src/lib/components/multi-select-list/multi-select-list.module.ts","../../../projects/corecomponents/src/lib/components/pivot/co-pivot.component.ts","../../../projects/corecomponents/src/lib/components/pivot/co-pivot.module.ts","../../../projects/corecomponents/src/lib/components/popup/text-input-popup.component.ts","../../../projects/corecomponents/src/lib/core/enum/file-type-internal.enum.ts","../../../projects/corecomponents/src/lib/core/enum/file-type.enum.ts","../../../projects/corecomponents/src/lib/core/enum/co-document-image-display-kind.enum.ts","../../../projects/corecomponents/src/lib/core/enum/object-right-type.enum.ts","../../../projects/corecomponents/src/lib/core/model/co-document.bo.ts","../../../projects/corecomponents/src/lib/core/enum/co-document-type.enum.ts","../../../projects/corecomponents/src/lib/core/utils/file-utils.ts","../../../projects/corecomponents/src/lib/core/utils/browser-utils.ts","../../../projects/corecomponents/src/lib/components/popup/popup-message-display.component.ts","../../../projects/corecomponents/src/lib/core/enum/popup-button-type.enum.ts","../../../projects/corecomponents/src/lib/components/popup/interface/popup-button.ts","../../../projects/corecomponents/src/lib/components/popup/model/popup-button-globals.ts","../../../projects/corecomponents/src/lib/components/popup/popup-buttons.component.ts","../../../projects/corecomponents/src/lib/core/enum/popup-type.enum.ts","../../../projects/corecomponents/src/lib/components/popup/popup-window-shell.component.ts","../../../projects/corecomponents/src/lib/components/popup/model/popup-window.ts","../../../projects/corecomponents/src/lib/components/popup/const/popup-window-token.ts","../../../projects/corecomponents/src/lib/components/popup/service/popup-shower.service.ts","../../../projects/corecomponents/src/lib/core/model/event/string-prompt-result-event.ts","../../../projects/corecomponents/src/lib/components/popup/interface/popup-settings.ts","../../../projects/corecomponents/src/lib/components/popup/service/prompt.service.ts","../../../projects/corecomponents/src/lib/components/popup/popup.module.ts","../../../projects/corecomponents/src/lib/components/co-rich-text-editor/co-rich-text-editor.component.ts","../../../projects/corecomponents/src/lib/components/co-rich-text-editor/co-rich-text-editor.module.ts","../../../projects/corecomponents/src/lib/components/input-listbox/input-listbox.component.ts","../../../projects/corecomponents/src/lib/components/input-listbox/input-listbox.module.ts","../../../projects/corecomponents/src/lib/components/simple-grid/simple-grid-column.directive.ts","../../../projects/corecomponents/src/lib/components/simple-grid/simple-grid.component.ts","../../../projects/corecomponents/src/lib/components/simple-grid/simple-grid.module.ts","../../../projects/corecomponents/src/lib/components/carousel-3d/carouselItem.ts","../../../projects/corecomponents/src/lib/components/carousel-3d/carousel-3d.component.ts","../../../projects/corecomponents/src/lib/components/carousel-3d/carousel-3d.module.ts","../../../projects/corecomponents/src/public-api.ts","../../../projects/corecomponents/src/colijnit-corecomponents_v12.ts"],"sourcesContent":["// @returns true iff given value equals null or equals undefined\r\nexport function isNill(value: any): boolean {\r\n return value === null || value === undefined;\r\n}","// @returns true iff given value does not equals null and does not equal undefined\r\nexport function notNill(value: any): boolean {\r\n return value !== null && value !== undefined;\r\n}","import {isNill} from \"../function/is-nill.function\";\r\nimport {notNill} from \"../function/not-nill.function\";\r\n\r\n// Static utility function holder related to objects.\r\nexport class ObjectUtils {\r\n\r\n /**\r\n * Returns whether all given values exist: for all values it holds that they are not null nor undefined. Short-circuit check.\r\n * @param values Rest parameters with all objects to check existence for.\r\n * @returns True if ALL given values are not null nor undefined, otherwise false (if at least one value was null or undefined)\r\n */\r\n public static AllExist(...values: any[]): boolean {\r\n let allExist: boolean = true;\r\n for (let i: number = 0, len: number = values.length; i < len; i++) {\r\n if (isNill(values[i])) {\r\n allExist = false;\r\n break;\r\n }\r\n }\r\n return allExist;\r\n }\r\n\r\n // Returns a shallow clone of the given original object. The clone is a SIMPLE OBJECT with the same properties as the original.\r\n public static GetShallowClone(originalObject: any, objectClass?: any): any {\r\n let clonedObject: any = undefined;\r\n\r\n if (objectClass) {\r\n clonedObject = new objectClass();\r\n } else {\r\n clonedObject = {};\r\n }\r\n\r\n ObjectUtils.ForOwnProperty(originalObject, (value: any, key: string) => {\r\n clonedObject[key] = value;\r\n });\r\n\r\n return clonedObject;\r\n }\r\n\r\n /**\r\n * Copies all properties from object 'from' to object 'to'. Overwrites properties on object 'to' if property already exists.\r\n * Does not copy functions, only properties.\r\n * @param from The source object from which to copy all properties of to the 'to' object.\r\n * @param to The object to which the properties of the 'from' object will be copied.\r\n * @param [allowUndefined = true] wether the 'to' object may be assigned null or undefined values to any of its properties.\r\n */\r\n public static CopyPropertiesFrom<T>(from: Object, to: T, allowUndefined: boolean = true): T {\r\n if (!to) {\r\n to = {} as T;\r\n }\r\n if (!from) {\r\n return to;\r\n }\r\n ObjectUtils.ForOwnProperty(from, (value: any, key: string) => {\r\n if (allowUndefined || notNill(value)) {\r\n to[key] = value;\r\n }\r\n });\r\n return to;\r\n }\r\n\r\n /**\r\n * Returns the display value of the given property on the given object, as a string (== the string representation of the property value).\r\n * Does not return null or undefined, but returns the given defaultValue instead.\r\n */\r\n public static GetDisplayValueOfPropertyOn(object: Object, property: string, defaultValue: string = \"\"): string {\r\n if (!object || !property) {\r\n return defaultValue;\r\n }\r\n\r\n let returnValue: string = defaultValue;\r\n let propertyValue: any = object[property];\r\n if (propertyValue) {\r\n returnValue = propertyValue.toString();\r\n }\r\n\r\n return returnValue;\r\n }\r\n\r\n // Performs given callback function for each own property of given plain object. Also works on string enums.\r\n public static ForOwnProperty(plainObject: any, callback: (propVal: any, key: string) => any): void {\r\n if (ObjectUtils.IsPlainObject(plainObject)) {\r\n for (let key in plainObject) {\r\n if (plainObject.hasOwnProperty(key) && typeof plainObject[key] !== 'function') {\r\n let response: boolean = callback(plainObject[key], key);\r\n if (response === false) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Returns whether given object is an existing, plain object. That is, it defined, its type if 'object' and it is NOT an array or func.\r\n public static IsPlainObject(object: any): boolean {\r\n return object !== null && !Array.isArray(object) && typeof object !== 'function' && typeof object === 'object';\r\n }\r\n\r\n public static DeepEquals(actual: any, expected: any): boolean {\r\n if (actual === expected) {\r\n return true;\r\n } else if (actual instanceof Date && expected instanceof Date) {\r\n return actual.getTime() === expected.getTime();\r\n } else if (!actual || !expected || typeof actual !== 'object' && typeof expected !== 'object') {\r\n return actual === expected;\r\n } else {\r\n return this._objEquiv(actual, expected);\r\n }\r\n }\r\n\r\n private static _objEquiv(a: any, b: any): boolean {\r\n let i: number, key: string;\r\n if (isNill(a) || isNill(b)) {\r\n return false;\r\n }\r\n\r\n if (a.prototype !== b.prototype) {\r\n return false;\r\n }\r\n\r\n if (this._isArguments(a)) {\r\n if (!this._isArguments(b)) {\r\n return false;\r\n }\r\n a = Array.prototype.slice.call(a);\r\n b = Array.prototype.slice.call(b);\r\n return this.DeepEquals(a, b);\r\n }\r\n if (this._isBuffer(a)) {\r\n if (!this._isBuffer(b)) {\r\n return false;\r\n }\r\n if (a.length !== b.length) {\r\n return false;\r\n }\r\n for (i = 0; i < a.length; i++) {\r\n if (a[i] !== b[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n let ka: string[];\r\n let kb: string[];\r\n try {\r\n ka = Object.keys(a);\r\n kb = Object.keys(b);\r\n } catch (e) {\r\n return false;\r\n }\r\n\r\n if (ka.length !== kb.length) {\r\n return false;\r\n }\r\n\r\n ka.sort();\r\n kb.sort();\r\n\r\n for (i = ka.length - 1; i >= 0; i--) {\r\n if (ka[i] !== kb[i]) {\r\n return false;\r\n }\r\n }\r\n\r\n for (i = ka.length - 1; i >= 0; i--) {\r\n key = ka[i];\r\n if (!this.DeepEquals(a[key], b[key])) {\r\n return false;\r\n }\r\n }\r\n return typeof a === typeof b;\r\n }\r\n\r\n private static _isBuffer(x: any): boolean {\r\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') {\r\n return false;\r\n }\r\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\r\n return false;\r\n }\r\n return !(x.length > 0 && typeof x[0] !== 'number');\r\n }\r\n\r\n private static _isArguments(x: any): boolean {\r\n let supportsArgsClass: boolean = this._supportsArgumentsClass();\r\n return supportsArgsClass ? this._isArgumentsWhenArgsClassSupported(x) : this._isArgumentsWhenArgsClassNotSupported(x);\r\n }\r\n\r\n private static _isArgumentsWhenArgsClassNotSupported(object: any): boolean {\r\n return object &&\r\n typeof object === 'object' &&\r\n typeof object.length === 'number' &&\r\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\r\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\r\n false;\r\n }\r\n\r\n private static _isArgumentsWhenArgsClassSupported(object: any): boolean {\r\n return Object.prototype.toString.call(object) === '[object Arguments]';\r\n }\r\n\r\n private static _supportsArgumentsClass(): boolean {\r\n return Object.prototype.toString.call(arguments) === '[object Arguments]';\r\n }\r\n}\r\n","import {isNill} from \"./is-nill.function\";\r\n\r\n// @returns true iff for all items it holds that they do not equal null and not equal undefined. If at least one is null or undefined, this\r\n// function returns false.\r\nexport function noneNill(...values: any[]): boolean {\r\n if (values) {\r\n for (let i: number = 0, len: number = values.length; i < len; i++) {\r\n if (isNill(values[i])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}","import {noneNill} from \"./none-nill.function\";\r\n\r\n// @returns true iff at least one of given values equals null or undefined.\r\nexport function anyNill(...values: any[]): boolean {\r\n return !noneNill(values);\r\n}","import {anyNill} from \"../function/any-nill.function\";\r\nimport {ArrayUtils} from \"./array-utils\";\r\nimport {CheckWithinSteppedBoundsResult} from \"../model/check-within-stepped-bounds-result\";\r\nimport {isNill} from \"../function/is-nill.function\";\r\nimport { ObjectUtils } from './object-utils';\r\nimport { CheckPrecisionAndScaleResult } from '../model/check-precision-and-scale-result';\r\n\r\n// @dynamic\r\nexport class NumberUtils {\r\n // @returns The inclusive max value\r\n public static PrecisionScaleToMaxValue(precision: number, scale: number): number {\r\n const oneStep: number = this.DecimalsToStepIncrement(scale);\r\n const maxExclusive: number = Math.pow(10, precision - scale);\r\n return maxExclusive - oneStep;\r\n }\r\n\r\n // Parses given argument to an integer, using a native parseInt() function with a radix of 10. Returns NaN if parsing was not possible.\r\n public static ParseInt(arg: any): number {\r\n if (isNill(arg) || Array.isArray(arg)) {\r\n return undefined;\r\n }\r\n\r\n return parseInt(arg, 10);\r\n }\r\n\r\n public static DecimalsToStepIncrement(numberOfDecimals: number): number {\r\n return Math.pow(10, -1 * numberOfDecimals);\r\n }\r\n\r\n // Returns the given argument as a number. Returns given defaultValue if conversion of argument was impossible.\r\n public static ParseNumberOrDefault(arg: any, defaultValue: number = 0): number {\r\n if (Array.isArray(arg)) {\r\n return defaultValue;\r\n }\r\n\r\n if (!NumberUtils.IsNumber(arg)) {\r\n arg = parseFloat(arg);\r\n arg = isNaN(arg) ? defaultValue : arg;\r\n }\r\n return arg;\r\n }\r\n\r\n // Parses given numberInput to a number, or returns given defaultValue if parse not possible. Allows ',' char as decimal delimiter.\r\n public static ParseNumberInputOrDefault(numberInput: any, defaultValue: number = 0): number {\r\n return NumberUtils.ParseNumberOrDefault(NumberUtils._NumberInputToNumberStr(numberInput), defaultValue);\r\n }\r\n\r\n public static IsParsableNumberInput(numberInput: any): boolean {\r\n return NumberUtils.IsParsableNumber(NumberUtils._NumberInputToNumberStr(numberInput));\r\n }\r\n\r\n // Returns whether the type of given argument is 'number'.\r\n public static IsNumber(arg: any): boolean {\r\n return typeof arg === 'number';\r\n }\r\n\r\n // Returns whether the value is parasable as a number.\r\n public static IsParsableNumber(arg: any): boolean {\r\n if (Array.isArray(arg)) {\r\n return false;\r\n }\r\n\r\n return !isNaN(parseFloat(arg));\r\n }\r\n\r\n /**\r\n * Returns given arg as a float number with given decimal precision, if possible. Returns NaN if parse conversion failed.\r\n *\r\n * @param The argument to parse to a float\r\n * @param The number of decimals, or the precision, the parsed return float should have\r\n * @returns NaN if not possible, else the parsed float value\r\n */\r\n public static ParseFloat(arg: any, decimalPrecision: number = 2): number {\r\n if (anyNill(arg, decimalPrecision) || Array.isArray(arg)) {\r\n return NaN;\r\n }\r\n\r\n if (!NumberUtils.IsInteger(decimalPrecision) || decimalPrecision < 0) {\r\n decimalPrecision = 2;\r\n // toFixed() can only handle up until 20\r\n } else if (decimalPrecision > 20) {\r\n decimalPrecision = 20;\r\n }\r\n\r\n return parseFloat(parseFloat(arg).toFixed(decimalPrecision));\r\n }\r\n\r\n /**\r\n * Returns given arg as a float number with given decimal precision, if possible. Returns NaN if parse conversion failed.\r\n *\r\n * @param The argument to parse to a float\r\n * @returns The argument as a float with its original decimal precision intact\r\n */\r\n public static ParseFloatKeepPrecision(arg: any): number {\r\n let decimalPrecision: number = this.GetDecimalPlaces(arg);\r\n return this.ParseFloat(arg, decimalPrecision);\r\n }\r\n\r\n public static ParseFloatNumberInputKeepPrecision(arg: any): number {\r\n let correctedInputStr: string = NumberUtils._NumberInputToNumberStr(arg);\r\n let decimalPrecision: number = this.GetDecimalPlaces(correctedInputStr);\r\n return NumberUtils.ParseFloat(correctedInputStr, decimalPrecision);\r\n }\r\n\r\n /**\r\n * Finds the number closest to the originalNumber, that adheres to the given bounds. That is, for which it holds that\r\n * nr = min + N * step with N integer or 0.\r\n * @param originalNr Find closest answer to this number\r\n * @param min Inclusive\r\n * @param max Inclusive\r\n * @param stepSize\r\n * @returns The closest OK number for bounds.\r\n */\r\n public static GetNearestNumberWithinSteppedBounds(originalNr: number, min: number, max: number, stepSize: number = 1): number {\r\n if (originalNr < min) {\r\n return min;\r\n } else if (originalNr > max) {\r\n return NumberUtils.GetTrueSteppedBoundsMax(min, max, stepSize);\r\n }\r\n\r\n let boundsCheck: CheckWithinSteppedBoundsResult = NumberUtils.CheckWithinSteppedBounds(originalNr, min, max, stepSize);\r\n if (boundsCheck.isOk) {\r\n return originalNr;\r\n }\r\n\r\n let answer: number = undefined;\r\n\r\n let remainder: number = boundsCheck.remainder;\r\n if (remainder) {\r\n // round up or down?\r\n if ((remainder / stepSize) < 0.5) {\r\n // round down, but not below min\r\n answer = (originalNr - remainder >= min ? originalNr - remainder : min);\r\n } else {\r\n // round up, but not above max\r\n answer = (originalNr + stepSize - remainder <= max ? originalNr + stepSize - remainder :\r\n NumberUtils.GetTrueSteppedBoundsMax(min, max, stepSize));\r\n }\r\n } else {\r\n // is this real life, why wasn't our stepped bounds check OK?\r\n answer = originalNr;\r\n }\r\n\r\n // 'correct' float errors\r\n answer = NumberUtils.ParseFloat(answer, NumberUtils._GetLargestDecimalPrecisionOf(originalNr, min, max, stepSize));\r\n return answer;\r\n }\r\n\r\n // Returns the number of decimal places of the given number. Returns 0 if no decimals whatsoever could be found on given arg.\r\n public static GetDecimalPlaces(arg: any, maxAnswer: number = 1000): number {\r\n let match: RegExpMatchArray = ('' + arg).match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);\r\n if (!match) {\r\n return 0;\r\n }\r\n\r\n let answer: number = Math.max(0,\r\n // number of digits right of decimal point.\r\n (match[1] ? match[1].length : 0)\r\n // adjust for scientific notation\r\n - (match[2] ? +match[2] : 0));\r\n\r\n if (answer > maxAnswer) {\r\n answer = maxAnswer;\r\n }\r\n\r\n return answer;\r\n }\r\n\r\n // Returns true iff given argument is an integer number. Returns false on non-numbers or numbers with significant decimals.\r\n public static IsInteger(arg: any): boolean {\r\n if (isNaN(arg) || Array.isArray(arg)) {\r\n return false;\r\n }\r\n let argAsFloat: number = parseFloat(arg);\r\n return ((argAsFloat | 0) === argAsFloat); // returns whether 'arg converted to an integer equals arg'\r\n }\r\n\r\n /**\r\n * Returns whether given arg is parseable as a number, and whether the lengts of its number parse result is equal to its original length.\r\n * I.e. this function returns FALSE with given number-parsable strings, but that have non-numeric appendices, eg '2233ff'. That arg\r\n * IS number-parseable, but not a strict 'string number', the latter being what this method actually checks for.\r\n */\r\n public static IsStringNumber(arg: string): boolean {\r\n if (!NumberUtils.IsParsableNumber(arg)) {\r\n return false;\r\n } else {\r\n return arg.toString().length === parseFloat(arg).toString().length;\r\n }\r\n }\r\n\r\n /**\r\n * Returns a random integer in range [lowerBound .. upperBound], an inclusive range. Returns NaN if not possible.\r\n * Given bounds are truncated first, before serving as the true lower- and upper bounds for the random int.\r\n */\r\n public static RandomInt(lowerBoundInt: number, upperBoundInt: number): number {\r\n if (!NumberUtils.IsNumber(lowerBoundInt) || !NumberUtils.IsNumber(upperBoundInt) || lowerBoundInt > upperBoundInt) {\r\n return NaN;\r\n }\r\n\r\n lowerBoundInt = Math.trunc(lowerBoundInt);\r\n upperBoundInt = Math.trunc(upperBoundInt);\r\n\r\n if (lowerBoundInt === upperBoundInt) {\r\n return lowerBoundInt;\r\n }\r\n\r\n const delta: number = upperBoundInt - lowerBoundInt;\r\n return (Math.round(Math.random() * delta) + lowerBoundInt);\r\n }\r\n\r\n /**\r\n * Returns the true maximum allowed value for the given \"stepped bounds\": min, stepSize and max, for which it holds that each allowed\r\n * value Y = min + stepSize * N, for any INTEGER or 0 N where it also holds, of course, that Y <= max.\r\n * @param min\r\n * @param max\r\n * @param stepSize\r\n */\r\n public static GetTrueSteppedBoundsMax(min: number, max: number, stepSize: number = 1): number {\r\n // solve max integer X in formula min + X * step <= max, and return min + X * stepSize for that X\r\n let maxSteps: number = Math.floor((max - min) / stepSize);\r\n // 'correct' float errors\r\n return NumberUtils.ParseFloat(min + maxSteps * stepSize, NumberUtils._GetLargestDecimalPrecisionOf(min, min, max));\r\n }\r\n\r\n // Returns the string representation of given number. If it's not a number, returns the empty string.\r\n public static ToString(nr: number): string {\r\n if (!NumberUtils.IsNaN(nr)) {\r\n return \"\" + nr;\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n // Returns whether given arg is indeed not a number (it's NaN or it has another type than 'number').\r\n public static IsNaN(arg: any): boolean {\r\n return isNaN(arg) || !NumberUtils.IsNumber(arg);\r\n }\r\n\r\n /**\r\n * Returns whether given x is OK within the given min, max and step boundaries, where it should hold that nrToCheck = min + N * step,\r\n * with N integer or 0.\r\n * @param nrToCheck Number to check whether it's within the given bounds\r\n * @param min Inclusive\r\n * @param max Inclusive\r\n * @param stepSize\r\n * @returns Returns remainder of undefined when nrToCheck was OUTSIDE [min, max], else full result object.\r\n */\r\n public static CheckWithinSteppedBounds(\r\n nrToCheck: number,\r\n min: number,\r\n max: number,\r\n stepSize: number = 1\r\n ): CheckWithinSteppedBoundsResult {\r\n if (nrToCheck < min || nrToCheck > max) {\r\n return {isOk: false, remainder: undefined};\r\n }\r\n\r\n // we're in [min, max], but still check if nrToCheck = min + N * step holds (for N integer or 0)\r\n let remainder: number = (nrToCheck - min) % stepSize;\r\n // correct float for largest precision amongst input numbers\r\n remainder = NumberUtils.ParseFloat(remainder, NumberUtils._GetLargestDecimalPrecisionOf(nrToCheck, min, stepSize));\r\n return {isOk: (remainder === 0), remainder: remainder};\r\n }\r\n\r\n // Adds thousands comma's to given value, E.g. '1000' to '1,000'. Returns empty string if value was undefined.\r\n public static AddThousandsCommasTo(value: any): string {\r\n if (isNill(value)) {\r\n return \"\";\r\n }\r\n\r\n return value.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n\r\n // Returns the nearest number, relative to the given originalNr, that is within the given [min, max] inclusive bounds.\r\n public static GetNearestNumberWithinBounds(originalNr: number, min: number, max: number): number {\r\n let answer: number = originalNr;\r\n\r\n if (originalNr < min) {\r\n answer = min;\r\n } else if (originalNr > max) {\r\n answer = max;\r\n }\r\n\r\n return answer;\r\n }\r\n\r\n /**\r\n * Returns whether given nrToCheck is within the given precision and scale limits. Precision and scale, here, are Oracle DB terms.\r\n * This function can thus be used to check whether the given number is safe to send to the 'database' beforehand, if we know the\r\n * precision and scale of the number in the db declaration.\r\n *\r\n * I.e. A number declared in the Oracle DB as number(5, 2) has a precision of 5 and a scale of 2.\r\n *\r\n * @param nrToCheck\r\n * @param precision The number of significant digits, including possibly negative scale. E.g. 3 in '123' and 5 in '51.123'\r\n * @param [scale = 0] The number of significant digits AFTER the decimal point. E.g. 1 in 5432.1 and 3 in 54000.003\r\n * @returns Whether given nrToCheck is ok for given precision and scale, and if not, the\r\n * nearest number that IS ok for those constraints.\r\n */\r\n public static CheckPrecisionAndScale(nrToCheck: number, precision: number, scale: number = 0): CheckPrecisionAndScaleResult {\r\n // let's say any undefined number is checked OK, and all numbers are checked OK for an undefined precision\r\n if (!ObjectUtils.AllExist(nrToCheck, precision, scale)) {\r\n return {isOk: true, nearestOkNr: NaN};\r\n }\r\n // no number can have 0 or less than 0 significant digits, in our universe\r\n if (precision < 1 || precision - scale < 1) {\r\n return {isOk: false, nearestOkNr: NaN};\r\n }\r\n // begin check\r\n const isNegative: boolean = (nrToCheck < 0);\r\n const nrParts: string[] = nrToCheck.toString().split(\".\");\r\n // remove minus sign if negative\r\n if (isNegative) {\r\n nrParts[0] = nrParts[0].slice(1);\r\n }\r\n const numCountBeforeDot: number = nrParts[0].length;\r\n const allowedNumCountBeforeDot: number = precision - scale;\r\n if (numCountBeforeDot <= allowedNumCountBeforeDot) {\r\n return {isOk: true, nearestOkNr: nrToCheck};\r\n } else {\r\n // cut a part from the \"before decimal number\" so that the number is not too big anymore\r\n const numCountToRemove: number = numCountBeforeDot - allowedNumCountBeforeDot;\r\n // remove the right-most numbers before the decimal dot\r\n nrParts[0] = nrParts[0].slice(0, -1 * numCountToRemove);\r\n // add minus sign again if it was negative\r\n if (isNegative) {\r\n nrParts[0] = \"-\" + nrParts[0];\r\n }\r\n // build and return composite number again\r\n let nearestOkNr: number;\r\n if (nrParts[1]) {\r\n nearestOkNr = Number(nrParts[0] + \".\" + nrParts[1]);\r\n } else {\r\n nearestOkNr = Number(nrParts[0]);\r\n }\r\n return {isOk: false, nearestOkNr: nearestOkNr};\r\n }\r\n }\r\n\r\n private static _GetLargestDecimalPrecisionOf(...args: number[]): number {\r\n return ArrayUtils.GetMaxCalculatedValue(args, (arg: number) => {\r\n return NumberUtils.GetDecimalPlaces(arg);\r\n });\r\n }\r\n\r\n // Returns given number input as a number that's useable by Javascript. Allows for incoming ',' decimal delimiter.\r\n private static _NumberInputToNumberStr(numberInput: string): string {\r\n return (numberInput + '').replace(',', '.');\r\n }\r\n}\r\n","import {isNill} from \"../function/is-nill.function\";\r\nimport {notNill} from \"../function/not-nill.function\";\r\nimport {StringUtils} from \"./string-utils\";\r\nimport {NumberUtils} from \"./number-utils\";\r\nimport {ObjectUtils} from \"./object-utils\";\r\n\r\nexport class ArrayUtils {\r\n /**\r\n * Inserts given element into given array, on given index number.\r\n *\r\n * @param index The index position for the element to insert, use negatives to count from the arrays end\r\n * @param element The element to insert\r\n * @param array The array to insert the element into\r\n * @returns True if and only if given element is succesfully inserted into given array.\r\n */\r\n public static InsertElement<T>(index: number, element: T, array: T[]): boolean {\r\n if (!Array.isArray(array) || Math.abs(index) > array.length || isNill(index)) {\r\n // cannot insert something into nothing, and cannot insert an element into a non-array (via this contract that is), and\r\n // we will not insert anything beyond the arrays limits (but we can append to the start or end)\r\n return false;\r\n }\r\n\r\n const lenBefore: number = array.length;\r\n array.splice(index, 0, element);\r\n return (array.length === lenBefore + 1);\r\n }\r\n\r\n /**\r\n * Removes given element from given array. Doesn't just set it to null like JavaScripts standard 'delete' keyword, but truly removes the\r\n * element using splice(). Also works on associative arrays.\r\n *\r\n * @param element The element to remove.\r\n * @param array The array to remove the element from.\r\n * @returns True iff given element was truly successfully removed from given array.\r\n */\r\n public static RemoveElement<T>(element: T, array: T[]): boolean {\r\n if (!Array.isArray(array)) {\r\n return false;\r\n }\r\n\r\n let index: number = array.indexOf(element);\r\n return ArrayUtils.RemoveElementAtIndex(index, array);\r\n }\r\n\r\n /**\r\n * Returns a true shallow clone of given array plus all its items. Its first-level members are object-shallow-cloned (optionally with a\r\n * strongly typed constructor),\r\n * or just as plain object (see param arrayItemsClass).\r\n * @param arrayGiven\r\n * @param arrayItemsClass If provided, the cloned array's first-level items will be strongly typed to / constructed as this class. Otherwise\r\n * it'll be a plain object.\r\n * @returns a true shallow clone of given array plus all its items\r\n */\r\n public static ShallowCloneArrayAndItsItem<T>(arrayGiven: T[], arrayItemsClass?: any): T[] {\r\n let arrayClone: T[] = [];\r\n\r\n if (arrayGiven) {\r\n for (let i: number = 0, len: number = arrayGiven.length; i < len; i++) {\r\n arrayClone.push(ObjectUtils.GetShallowClone(arrayGiven[i], arrayItemsClass));\r\n }\r\n } else {\r\n return [];\r\n }\r\n\r\n return arrayClone;\r\n }\r\n\r\n /**\r\n * Moves given element to given toIndex in given array. Returns whether the element was really moved, thus changing the given array.\r\n */\r\n public static MoveElement<T>(element: T, toIndex: number, array: T[]): boolean {\r\n if (!Array.isArray(array) || isNill(toIndex)) {\r\n return false;\r\n }\r\n\r\n let fromIndex: number = array.indexOf(element);\r\n let toIndexCorrected: number = NumberUtils.GetNearestNumberWithinBounds(toIndex, 0, array.length - 1);\r\n if (fromIndex === -1 || array[toIndexCorrected] === element) {\r\n // element did not exist in given array, or already existed on given toIndex\r\n return false;\r\n }\r\n array.splice(toIndexCorrected, 0, array.splice(fromIndex, 1)[0]);\r\n return true;\r\n }\r\n\r\n /**\r\n * Returns max value from all resulting values from applying given itemValueFunction to all items of given array.\r\n * @param array\r\n * @param itemValueFunction The function aplied to each array item that gives it a numerical value. The max num val found is returned.\r\n */\r\n public static GetMaxCalculatedValue<T>(array: T[], itemValueFunction: (item: T) => number): number {\r\n if (!array || !itemValueFunction) {\r\n return NaN;\r\n }\r\n\r\n let max: number = undefined;\r\n\r\n let len: number = array.length;\r\n for (let i: number = 0; i < len; i++) {\r\n let valueCur: number = itemValueFunction.call(this);\r\n if (valueCur > max) {\r\n max = valueCur;\r\n }\r\n }\r\n\r\n return max;\r\n }\r\n\r\n // Checks if given array is defined, and is an array, and has length > 0, and, optionally checks that the first element is of type given clazz.\r\n public static IsArrayWithElements<T>(arrayToCheck: T[], clazz?: any): boolean {\r\n if (isNill(arrayToCheck)) {\r\n return false;\r\n }\r\n\r\n if (Array.isArray(arrayToCheck) && arrayToCheck.length > 0) {\r\n if (clazz) {\r\n return arrayToCheck[0] instanceof clazz;\r\n }\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n // Removes all elements from given array for which given filter function holds true. Returns true if at least one removed, else false.\r\n public static RemoveElementsByFilter(array: any[], filterFunction: (item: any) => boolean): boolean {\r\n if (!ArrayUtils.IsArrayWithElements(array) || !filterFunction) {\r\n return false;\r\n }\r\n\r\n let atLeastOneRemoved: boolean = false;\r\n\r\n let len: number = array.length;\r\n for (let i: number = len - 1; i >= 0; i--) {\r\n let item: any = array[i];\r\n if (filterFunction.call(this, item) === true) {\r\n array.splice(i, 1);\r\n atLeastOneRemoved = true;\r\n }\r\n }\r\n\r\n return atLeastOneRemoved;\r\n }\r\n\r\n // Replaces the elementOut with given elementIn.\r\n public static ReplaceElement<T>(elementIn: T, elementOut: T, array: T[]): void {\r\n if (!array || !Array.isArray(array)) {\r\n return;\r\n }\r\n\r\n const indexOut: number = array.indexOf(elementOut);\r\n if (indexOut > -1) {\r\n ArrayUtils.InsertElement(indexOut, elementIn, array);\r\n ArrayUtils.RemoveElement(elementOut, array);\r\n }\r\n }\r\n\r\n // Swaps the elements in given array with each other. Returns whether a real swap was made. From and To elements have to exist in array.\r\n public static SwapElements<T>(elementOne: T, elementTwo: T, array: T[]): boolean {\r\n if (!Array.isArray(array)) {\r\n return false;\r\n }\r\n\r\n const elOneIdx: number = array.indexOf(elementTwo);\r\n const elTwoIdx: number = array.indexOf(elementOne);\r\n if (elOneIdx === -1 || elTwoIdx === -1) {\r\n return false;\r\n }\r\n\r\n array[elOneIdx] = array.splice(elTwoIdx, 1, array[elOneIdx])[0];\r\n return true;\r\n }\r\n\r\n // Inserts or removes given toggle element into given elements array; inserts if not yet exists, and removes if already exists.\r\n public static ToggleElement<T>(toggle: T, elements: T[]): void {\r\n elements.indexOf(toggle) > -1 ? ArrayUtils.RemoveElement(toggle, elements) : elements.push(toggle);\r\n }\r\n\r\n // Returns the number of elements from given array for which given whereFunction holds true.\r\n public static CountWhere<T>(array: T[], whereFunction: (item: T) => boolean): number {\r\n if (!ArrayUtils.IsArrayWithElements(array) || !whereFunction) {\r\n return 0;\r\n }\r\n\r\n let count: number = 0;\r\n\r\n const len: number = array.length;\r\n for (let i: number = 0; i < len; i++) {\r\n if (whereFunction.call(this, array[i])) {\r\n count++;\r\n }\r\n }\r\n\r\n return count;\r\n }\r\n\r\n /**\r\n * Returns whether at least one element in given array could be found by given finder function.\r\n *\r\n * @param array\r\n * @param finder A finder function that takes an element of the array and returns a boolean that represents\r\n * the 'found status' for that element; whether it should have been found or not.\r\n */\r\n public static ContainsAnElementFoundBy<T>(array: T[], finder: (element: T) => boolean): boolean {\r\n if (!array || !finder) {\r\n return false;\r\n }\r\n\r\n return notNill(ArrayUtils.Find<T>(array, finder));\r\n }\r\n\r\n /**\r\n * Cross-browser Array.find() function. Returns the first item in given array for which the foundBy function returns true. Returns\r\n * undefined when none was found.\r\n *\r\n * Example usage:\r\n * let foundItem: BusinessObject = ArrayUtils.Find<BusinessObject>(modelArray, (modelItem: BusinessObject) => <br>\r\n * (return modelItem.getId() === '1')\r\n * * });\r\n *\r\n * @param array The array with items to search in.\r\n * @param foundBy The finder function applied on each items of the array, when that returns true, the item is considered found.\r\n */\r\n public static Find<T>(array: T[], foundBy: (item: T) => boolean): T {\r\n if (!array || !foundBy) {\r\n return undefined;\r\n }\r\n\r\n for (let i: number = 0, len: number = array.length; i < len; i++) {\r\n let itemCur: T = array[i];\r\n if (foundBy(itemCur)) {\r\n return itemCur;\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Sorts all items in the given array alphabetically (A-to-Z) according to the values of their given property.\r\n * @param theArray\r\n * @param propertyName = undefined] When not defined, assumes an array of STRINGS is given, instead of array of OBJECTS.\r\n * @param [reverseOrder = false] Set to true to sort from Z-to-A instead\r\n */\r\n public static SortAlphabetically<T>(theArray: T[], propertyName: string = undefined, reverseOrder: boolean = false): void {\r\n if (!theArray || !Array.isArray(theArray)) {\r\n return;\r\n }\r\n\r\n let switcher: number = reverseOrder ? -1 : 1;\r\n let stringSort: boolean = StringUtils.IsStringWithLength(propertyName);\r\n theArray.sort((itemOne: T, itemTwo: T) => {\r\n let valOne: any = stringSort ? itemOne[propertyName] : itemOne;\r\n let valTwo: any = stringSort ? itemTwo[propertyName] : itemTwo;\r\n return (valOne > valTwo ? 1 : (valOne < valTwo ? -1 : 0)) * switcher;\r\n });\r\n }\r\n\r\n public static PushIfNotExist(item: any, array: any[]): boolean {\r\n if (!array) {\r\n return false;\r\n }\r\n\r\n if (array.indexOf(item) === -1) {\r\n array.push(item);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Removes element at given index from given array. Doesn't just set it to null like JavaScripts standard 'delete' does, but really\r\n * removes the element using splice().\r\n *\r\n * @param index\r\n * @param array\r\n * @returns True if and only if the element on given index is succesfully removed from given array.\r\n */\r\n public static RemoveElementAtIndex(index: number, array: any[]): boolean {\r\n if (NumberUtils.IsNaN(index) || index < 0 || !Array.isArray(array) || array.length === 0) {\r\n return false;\r\n }\r\n\r\n if (index in array) {\r\n array.splice(index, 1);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n // Returns true if and only if given array includes given item. Checked by ===.\r\n public static Includes(array: any[], item: any): boolean {\r\n if (Array.isArray(array)) {\r\n for (let i: number = 0, len: number = array.length; i < len; i++) {\r\n if (array[i] === item) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n }\r\n}\r\n","import {notNill} from \"../function/not-nill.function\";\r\nimport { ArrayUtils } from './array-utils';\r\n\r\n// @dynamic\r\nexport class StringUtils {\r\n // Returns the given argument as a string. Returns given defaultValue if conversion of argument to string was impossible.\r\n public static ParseString(arg: any, defaultValue: string = ''): string {\r\n if (!StringUtils.IsString(arg)) {\r\n if (arg && typeof arg.toString === 'function') {\r\n arg = arg.toString();\r\n } else {\r\n arg = defaultValue;\r\n }\r\n }\r\n return arg;\r\n }\r\n\r\n public static AsLowerCaseIfString(str: any): any {\r\n if (StringUtils.IsString(str)) {\r\n return str.toLowerCase();\r\n } else {\r\n return str;\r\n }\r\n }\r\n\r\n /**\r\n * Example usage:\r\n * str = 'File is to large to upload. Maximum file size is {0} Mb'\r\n * format = [FileUtils.MaxUploadSizeInMb]\r\n * output = File is to large to upload. Maximum file size is 3 Mb\r\n *\r\n * str = '{0} is way better than {1}'\r\n * format = ['Angular2','Angular1']\r\n * output = Angular2 is way better than Angular1\r\n *\r\n * @param str The string that contains {0} and {1} etc, for replacement by given format data\r\n * @param format The format replacement data\r\n */\r\n public static Format(str: string, format: any[]): string {\r\n let args: any = Array.prototype.slice.call(format);\r\n return str.replace(/{(\\d+)}/g, function (match: any, number: any): string {\r\n return typeof args[number] !== 'undefined' ? (args[number] !== null ? args[number] : \"\") : \"\";\r\n });\r\n }\r\n\r\n public static IsString(str: any): boolean {\r\n return typeof str === 'string';\r\n }\r\n\r\n // Returns whether given str is a string and has a length > 0.\r\n public static IsStringWithLength(str: any): boolean {\r\n return notNill(str) && StringUtils.IsString(str) && str.length > 0;\r\n }\r\n\r\n // Returns a new string string with N amount of characters removed from the end of it.\r\n public static RemoveLastChars(str: string, amount: number): string {\r\n if (str) {\r\n return str.slice(0, -1 * amount);\r\n } else {\r\n return str;\r\n }\r\n }\r\n\r\n public static StringToStringArray(str: string): string[] {\r\n if (!str) {\r\n return [];\r\n }\r\n\r\n const strArray: string[] = str.split(\" \");\r\n ArrayUtils.RemoveElementsByFilter(strArray, (txt: string) => {\r\n return !txt || txt === \"\";\r\n });\r\n return strArray;\r\n }\r\n\r\n public static CloneStringArray(strArray: string[]): string[] {\r\n const clone: string[] = [];\r\n if (strArray) {\r\n for (let i: number = 0, len: number = strArray.length; i < len; i++) {\r\n clone.push(strArray[i]);\r\n }\r\n }\r\n return clone;\r\n }\r\n\r\n public static ToStringOrDefault(arg: any, defaultReturnVal: string = \"\"): string {\r\n if (notNill(arg) && arg.toString) {\r\n return arg.toString();\r\n } else {\r\n return defaultReturnVal;\r\n }\r\n }\r\n\r\n public static CreateGuid(): string {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c: string) => {\r\n const r: number = Math.random() * 16 | 0;\r\n return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);\r\n });\r\n }\r\n}\r\n","/** AUTO GENERATED FILE. DO NOT CHANGE.. **/\n\nexport const CoreComponentsIconSvg: {[iconName: string]: string} = {\n \"add_to_cart_drop\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M16.58,34.84a1.8,1.8,0,1,0,1.8,1.8A1.79,1.79,0,0,0,16.58,34.84Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M31.49,34.84a1.8,1.8,0,1,0,1.8,1.8A1.79,1.79,0,0,0,31.49,34.84Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M35.6,17.9l-1.51.18L31.88,20.3l1.31-.17a.88.88,0,0,1,1,1.08L32.35,29.5a1.52,1.52,0,0,1-1.44,1.2H16.51a1.75,1.75,0,0,1-1.57-1.17l-2.31-5.6a1,1,0,0,1,.85-1.29l4.43-.56-1.86-1.86-5.13.61a1,1,0,0,0-.87,1.28l3.34,9.44A1.73,1.73,0,0,0,15,32.72H32.64a1.51,1.51,0,0,0,1.43-1.2L36.6,19A.89.89,0,0,0,35.6,17.9Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M39,17a1.87,1.87,0,0,0-1.36,1.46l-.42,2.89c-.1.67.31,1,.9.7a2.75,2.75,0,0,0,1.33-1.7L40,18A.73.73,0,0,0,39,17Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"24 25.35 32.04 17.3 27.04 17.3 27.04 10 20.95 10 20.95 17.3 15.96 17.3 24 25.35\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"arrow_down\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"27.06 31.14 27.06 12.5 22.94 12.5 22.94 31.14 22.94 31.14 18.64 31.14 25 37.5 31.36 31.14 27.06 31.14\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"arrow_left\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"23.63 33.63 15 25 23.63 16.37 24.6 17.34 16.95 25 24.6 32.66 23.63 33.63\\\" fill=\\\"#484f60\\\" opacity=\\\"0.98\\\"/><rect x=\\\"23.49\\\" y=\\\"24.31\\\" width=\\\"11.51\\\" height=\\\"1.38\\\" fill=\\\"#484f60\\\" opacity=\\\"0.98\\\"/></svg>\",\n \"arrow_point_down\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"-280 371 51 51\\\" enable-background=\\\"new -280 371 51 51\\\" ><path fill=\\\"#29363E\\\" d=\\\"M-248.3,392.2c0.3,0,0.6,0.1,0.8,0.3c0.5,0.5,0.5,1.2,0,1.6l-6.2,6.2c-0.2,0.2-0.5,0.3-0.8,0.3c-0.3,0-0.6-0.1-0.8-0.3l-6.2-6.2c-0.2-0.2-0.3-0.5-0.3-0.8c0-0.3,0.1-0.6,0.3-0.8c0.2-0.2,0.5-0.3,0.8-0.3c0.3,0,0.6,0.1,0.8,0.3l5.4,5.4l5.4-5.4C-248.9,392.4-248.6,392.2-248.3,392.2z\\\"/></svg>\",\n \"arrow_point_left\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 51 51\\\" enable-background=\\\"new 0 0 51 51\\\" ><path fill=\\\"#484F5F\\\" d=\\\"M31.9,36.7l-14.7-9.6C17.1,27,17,26.9,17,26.7v-2.4c0-0.2,0.1-0.3,0.2-0.4l14.7-9.6c0.2-0.2,0.5-0.1,0.7,0.1l1.4,2.1c0.2,0.2,0.1,0.5-0.1,0.7l-12,7.8c-0.3,0.2-0.3,0.6,0,0.8l12,7.8c0.2,0.2,0.3,0.5,0.1,0.7l-1.4,2.1C32.4,36.8,32.1,36.8,31.9,36.7z\\\"/></svg>\",\n \"arrow_point_right\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 51 51\\\" enable-background=\\\"new 0 0 51 51\\\" ><path fill=\\\"#484F5F\\\" d=\\\"M19.1,14.3l14.7,9.6c0.1,0.1,0.2,0.2,0.2,0.4v2.4c0,0.2-0.1,0.3-0.2,0.4l-14.7,9.6c-0.2,0.2-0.5,0.1-0.7-0.1l-1.4-2.1c-0.2-0.2-0.1-0.5,0.1-0.7l12-7.8c0.3-0.2,0.3-0.6,0-0.8l-12-7.8c-0.2-0.2-0.3-0.5-0.1-0.7l1.4-2.1C18.6,14.2,18.9,14.2,19.1,14.3z\\\"/></svg>\",\n \"arrow_up\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><polygon points=\\\"27.5 19.4 27.5 38 23.4 38 23.4 19.4 23.4 19.4 19.1 19.4 25.4 13 31.8 19.4 27.5 19.4\\\" fill=\\\"#2a363b\\\"/></svg>\",\n \"calendar\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M36.94,12h-4v2a2,2,0,1,1-4.08,0V12H21.17v2a2,2,0,1,1-4.08,0V12h-4a1.2,1.2,0,0,0-1.19,1.2V18H38.14V13.16A1.2,1.2,0,0,0,36.94,12Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M37.14,20.5v16L34.65,39H13.05a.2.2,0,0,1-.19-.2V20.5H37.14m1-1H11.86V38.8A1.2,1.2,0,0,0,13.05,40h22l3.08-3.08V19.5Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"18.24\\\" y=\\\"10\\\" width=\\\"1.79\\\" height=\\\"4.87\\\" rx=\\\"0.9\\\" ry=\\\"0.9\\\" fill=\\\"#484f60\\\"/><rect x=\\\"29.97\\\" y=\\\"10\\\" width=\\\"1.79\\\" height=\\\"4.87\\\" rx=\\\"0.9\\\" ry=\\\"0.9\\\" fill=\\\"#484f60\\\"/><rect x=\\\"11.86\\\" y=\\\"24.37\\\" width=\\\"26.28\\\" height=\\\"0.5\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"11.86\\\" y=\\\"29.5\\\" width=\\\"26.28\\\" height=\\\"0.5\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"11.86\\\" y=\\\"34.62\\\" width=\\\"26.28\\\" height=\\\"0.5\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"18.18\\\" y=\\\"19.5\\\" width=\\\"0.5\\\" height=\\\"20.5\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"24.75\\\" y=\\\"19.5\\\" width=\\\"0.5\\\" height=\\\"20.5\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"31.32\\\" y=\\\"19.5\\\" width=\\\"0.5\\\" height=\\\"20.5\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/></svg>\",\n \"calendar_empty\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M695.94,372h-4v2a2,2,0,0,1-4.09,0v-2h-7.65v2a2,2,0,0,1-4.09,0v-2h-4a1.19,1.19,0,0,0-1.19,1.2V378h26.28v-4.82A1.19,1.19,0,0,0,695.94,372Z\\\" transform=\\\"translate(-658.5 -359.5)\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M696.14,380.5v16l-2.49,2.5H672.05a.19.19,0,0,1-.19-.2V380.5h24.28m1-1H670.86V398.8a1.19,1.19,0,0,0,1.19,1.2h22l3.08-3.08V379.5Z\\\" transform=\\\"translate(-658.5 -359.5)\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M678.13,374.87h0a.9.9,0,0,1-.9-.9V370.9a.9.9,0,0,1,.9-.9h0a.9.9,0,0,1,.9.9V374A.9.9,0,0,1,678.13,374.87Z\\\" transform=\\\"translate(-658.5 -359.5)\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M689.87,374.87h0a.9.9,0,0,1-.9-.9V370.9a.9.9,0,0,1,.9-.9h0a.9.9,0,0,1,.9.9V374A.9.9,0,0,1,689.87,374.87Z\\\" transform=\\\"translate(-658.5 -359.5)\\\" fill=\\\"#4d5050\\\"/><rect x=\\\"12.36\\\" y=\\\"24.87\\\" width=\\\"26.28\\\" height=\\\"0.5\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><rect x=\\\"12.36\\\" y=\\\"30\\\" width=\\\"26.28\\\" height=\\\"0.5\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><rect x=\\\"12.36\\\" y=\\\"35.12\\\" width=\\\"26.28\\\" height=\\\"0.5\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><rect x=\\\"18.68\\\" y=\\\"20\\\" width=\\\"0.5\\\" height=\\\"20.5\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><rect x=\\\"25.25\\\" y=\\\"20\\\" width=\\\"0.5\\\" height=\\\"20.5\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><rect x=\\\"31.82\\\" y=\\\"20\\\" width=\\\"0.5\\\" height=\\\"20.5\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/></svg>\",\n \"calendar_round_open\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M692.76,375.44h-3v1.47a1.5,1.5,0,1,1-3,0v-1.47h-5.61v1.47a1.5,1.5,0,1,1-3,0v-1.47h-3a.88.88,0,0,0-.87.88v3.54h19.27v-3.54A.88.88,0,0,0,692.76,375.44Z\\\" transform=\\\"translate(-658.5 -359.5)\\\" fill=\\\"#4d5050\\\"/><path d=\\\"M692.9,381.7v11.74l-1.83,1.83H675.24a.14.14,0,0,1-.14-.14V381.7h17.8m.73-.73H674.37v14.16a.88.88,0,0,0,.87.88h16.14l2.26-2.26V381Z\\\" transform=\\\"translate(-658.5 -359.5)\\\" fill=\\\"#4d5050\\\"/><rect x=\\\"20.54\\\" y=\\\"14.5\\\" width=\\\"1.31\\\" height=\\\"3.57\\\" rx=\\\"0.66\\\" ry=\\\"0.66\\\" fill=\\\"#4d5050\\\"/><rect x=\\\"29.15\\\" y=\\\"14.5\\\" width=\\\"1.31\\\" height=\\\"3.57\\\" rx=\\\"0.66\\\" ry=\\\"0.66\\\" fill=\\\"#4d5050\\\"/><rect x=\\\"15.87\\\" y=\\\"25.04\\\" width=\\\"19.27\\\" height=\\\"0.37\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><rect x=\\\"15.87\\\" y=\\\"28.8\\\" width=\\\"19.27\\\" height=\\\"0.37\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><rect x=\\\"15.87\\\" y=\\\"32.56\\\" width=\\\"19.27\\\" height=\\\"0.37\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><rect x=\\\"20.5\\\" y=\\\"21.46\\\" width=\\\"0.37\\\" height=\\\"15.04\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><rect x=\\\"25.32\\\" y=\\\"21.46\\\" width=\\\"0.37\\\" height=\\\"15.04\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><rect x=\\\"30.13\\\" y=\\\"21.46\\\" width=\\\"0.37\\\" height=\\\"15.04\\\" fill=\\\"#4d5050\\\" opacity=\\\"0.25\\\"/><path d=\\\"M684,366.33A18.67,18.67,0,1,1,665.33,385,18.69,18.69,0,0,1,684,366.33m0-1.33a20,20,0,1,0,20,20,20,20,0,0,0-20-20Z\\\" transform=\\\"translate(-658.5 -359.5)\\\" fill=\\\"#4d5050\\\"/></svg>\",\n \"camera\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M35,18l-3-4H22l-3,4H16V36H40V18ZM24,16h6v2H24Zm2.5,18A6.5,6.5,0,1,1,33,27.5,6.51,6.51,0,0,1,26.5,34ZM38,22H36V20h2Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"18\\\" width=\\\"5\\\" height=\\\"18\\\" fill=\\\"#484f60\\\"/><rect x=\\\"11\\\" y=\\\"15\\\" width=\\\"3\\\" height=\\\"2\\\" fill=\\\"#484f60\\\"/><path d=\\\"M26.5,32A4.5,4.5,0,1,1,31,27.5,4.51,4.51,0,0,1,26.5,32Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"cancel\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"36 35.16 30.45 35.16 14 14.84 19.55 14.84 36 35.16\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"14 35.16 19.55 35.16 36 14.84 30.45 14.84 14 35.16\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"cancel_round_filled\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,10A15,15,0,1,0,40,25,15,15,0,0,0,25,10Zm9.38,23.32h-5.3L25,28.27l-4.08,5.05H15.63L22.35,25l-6.72-8.32h5.29L25,21.73l4.08-5.05h5.3L27.64,25Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"cancel_round_open\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,40.17a15,15,0,1,1,15-15A15,15,0,0,1,25,40.17Zm0-29a14,14,0,1,0,14,14A14,14,0,0,0,25,11.13Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"29.41 32.25 25 26.79 20.59 32.25 17.96 32.25 23.68 25.17 17.96 18.09 20.59 18.09 25 23.54 29.41 18.09 32.04 18.09 26.32 25.17 32.04 32.25 29.41 32.25\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"check\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 50 50\\\" enable-background=\\\"new 0 0 50 50\\\" ><polygon fill=\\\"#29363E\\\" points=\\\"15,22.4 19.7,29.5 31.2,10 38.9,10 19.7,40 11.1,27.4 \\\"/></svg>\",\n \"check_round\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,10A15,15,0,1,0,40,25,15,15,0,0,0,25,10ZM23,34l-6.24-9.09,2.81-3.59L23,26.45,27.66,16h5.58Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"check_simple\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon fill=\\\"#2A363B\\\" points=\\\"19.9,24 22.5,28 29,17.1 33.3,17.1 22.5,33.9 17.7,26.8 \\\"/></svg>\",\n \"column_options\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"-280 372 50 50\\\" enable-background=\\\"new -280 372 50 50\\\" ><g><rect x=\\\"-269\\\" y=\\\"389\\\" opacity=\\\"0.5\\\" fill=\\\"#29363E\\\" width=\\\"4\\\" height=\\\"22\\\"/><rect x=\\\"-263\\\" y=\\\"389\\\" fill=\\\"#29363E\\\" width=\\\"4\\\" height=\\\"22\\\"/><polygon opacity=\\\"0.5\\\" fill=\\\"#29363E\\\" points=\\\"-255.3,389 -257,389 -257,411 -253,411 -253,393.3 -254.3,393.3 \\\"/><polygon opacity=\\\"0.5\\\" fill=\\\"#29363E\\\" points=\\\"-251,411 -247,411 -247,397.3 -251,396.4 \\\"/><g><path fill=\\\"#29363E\\\" d=\\\"M-241.3,386.7l-1.9-0.1c-0.2-0.3-0.4-0.5-0.6-0.8c-0.2-0.2-0.5-0.4-0.8-0.6l-0.1-1.9l-1.4-0.3l-0.8,1.5c-0.8,0-1.6,0.2-2.3,0.6l-1.7-1l-1,1l1,1.7c-0.4,0.7-0.6,1.5-0.6,2.3l-1.5,0.8l0.3,1.4l1.9,0.1c0.2,0.3,0.4,0.5,0.6,0.8c0.2,0.2,0.5,0.4,0.8,0.6l0.1,1.9l1.4,0.3l0.8-1.5c0.8,0,1.6-0.2,2.3-0.6l1.7,1l1-1l-1-1.7c0.4-0.7,0.6-1.5,0.6-2.3l1.5-0.8L-241.3,386.7z M-245.6,390.4c-0.8,0.8-2,0.8-2.8,0c-0.8-0.8-0.8-2,0-2.8c0.8-0.8,2-0.8,2.8,0C-244.9,388.4-244.9,389.6-245.6,390.4z\\\"/></g></g></svg>\",\n \"CrossSkinny\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"35.35 15.52 34.65 14.81 25 24.46 15.35 14.81 14.65 15.52 24.29 25.17 14.65 34.81 15.35 35.52 25 25.87 34.65 35.52 35.35 34.81 25.71 25.17 35.35 15.52\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"detail_view\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"34.55 26.18 34.55 37.49 12.44 37.49 12.44 15.38 24.68 15.38 25.59 14.48 24.05 12.94 10 12.94 10 39.94 36.99 39.94 36.99 25.88 35.92 24.81 34.55 26.18\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"40 10.4 27.92 10.4 32 14.48 22.24 26.23 24.16 28.15 35.92 18.4 40 22.48 40 10.4\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"download\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M31,38.87H19a9,9,0,0,1-9-9h4a5,5,0,0,0,5,5H31a5,5,0,0,0,5-5h4A9,9,0,0,1,31,38.87Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"16.22 21.1 21.94 21.1 21.94 11.46 28.06 11.46 28.06 21.1 33.78 21.1 25 29.87 16.22 21.1\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"delivery_truck\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"15.35\\\" y=\\\"16.56\\\" width=\\\"15.14\\\" height=\\\"10.94\\\" transform=\\\"translate(-1.83 2.08) rotate(-5)\\\" fill=\\\"#484f60\\\"/><path d=\\\"M38.5,18.1l-6.9.61L32.41,28l-7.63.67a3.76,3.76,0,0,1,1.43,2.25l7.25-.63A3.83,3.83,0,0,1,41,29.6l1-.1-.52-6Zm.29,5.84-3.91.34a.51.51,0,0,1-.55-.46L34,20.1a.49.49,0,0,1,.45-.54l2.27-.2a.5.5,0,0,1,.48.25l2,3.59A.5.5,0,0,1,38.79,23.94Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M19.66,29.09a3.8,3.8,0,0,0-1,2.46l-.74.07-1.82-.94L16,29.41Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M34.56,30.62a2.74,2.74,0,1,0,2.49-3A2.73,2.73,0,0,0,34.56,30.62Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M19.74,31.91a2.74,2.74,0,1,0,2.49-3A2.74,2.74,0,0,0,19.74,31.91Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"7.96\\\" y=\\\"17.63\\\" width=\\\"5\\\" height=\\\"1\\\" transform=\\\"translate(-1.54 0.98) rotate(-5)\\\" fill=\\\"#484f60\\\"/><rect x=\\\"11.02\\\" y=\\\"29.71\\\" width=\\\"3\\\" height=\\\"1\\\" transform=\\\"translate(-2.59 1.21) rotate(-5)\\\" fill=\\\"#484f60\\\"/><rect x=\\\"9.48\\\" y=\\\"23.53\\\" width=\\\"4\\\" height=\\\"1\\\" transform=\\\"matrix(1, -0.09, 0.09, 1, -2.05, 1.09)\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"documents\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><g opacity=\\\"0.5\\\"><path d=\\\"M36.4,16.79V32.4a.4.4,0,0,1-.3.38V34a1.59,1.59,0,0,0,1.5-1.59V16.79Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M20,11.2H31V10H20a1.59,1.59,0,0,0-1.59,1.5h1.21A.4.4,0,0,1,20,11.2Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"37.6 16.79 30.98 10 30.98 13.93 33.77 16.79 37.6 16.79\\\" fill=\\\"#484f60\\\"/></g><rect x=\\\"16\\\" y=\\\"21.2\\\" width=\\\"7.2\\\" height=\\\"0.8\\\" fill=\\\"#484f60\\\"/><rect x=\\\"16\\\" y=\\\"24.4\\\" width=\\\"12\\\" height=\\\"0.8\\\" fill=\\\"#484f60\\\"/><rect x=\\\"16\\\" y=\\\"27.6\\\" width=\\\"12\\\" height=\\\"0.8\\\" fill=\\\"#484f60\\\"/><rect x=\\\"16\\\" y=\\\"30.8\\\" width=\\\"12\\\" height=\\\"0.8\\\" fill=\\\"#484f60\\\"/><rect x=\\\"16\\\" y=\\\"34\\\" width=\\\"12\\\" height=\\\"0.8\\\" fill=\\\"#484f60\\\"/><path d=\\\"M30.4,22.79V38.4a.4.4,0,0,1-.4.4H14a.4.4,0,0,1-.4-.4V17.6a.4.4,0,0,1,.4-.4H25V16H14a1.6,1.6,0,0,0-1.6,1.6V38.4A1.6,1.6,0,0,0,14,40H30a1.6,1.6,0,0,0,1.6-1.6V22.79Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M25,16v5.15c0,1.42.21,1.64,1.63,1.64h5Z\\\" fill=\\\"#484f60\\\"/><g opacity=\\\"0.75\\\"><path d=\\\"M33.4,19.79V35.4a.4.4,0,0,1-.3.38V37a1.59,1.59,0,0,0,1.5-1.59V19.79Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M17,14.2H28V13H17a1.59,1.59,0,0,0-1.59,1.5h1.21A.4.4,0,0,1,17,14.2Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"34.6 19.79 27.98 13 27.98 16.93 30.77 19.79 34.6 19.79\\\" fill=\\\"#484f60\\\"/></g></svg>\",\n \"edit_pencil\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"12.54 38.16 12 37.62 14.85 29.64 20.52 35.31 12.54 38.16\\\" fill=\\\"#484f60\\\"/><rect x=\\\"16.33\\\" y=\\\"20.52\\\" width=\\\"17.99\\\" height=\\\"8.64\\\" transform=\\\"translate(-10.15 25.18) rotate(-45)\\\" fill=\\\"#484f60\\\"/><path d=\\\"M37.54,18.73,36,20.32l-6.11-6.1,1.59-1.59a1.55,1.55,0,0,1,2.2,0l3.91,3.9A1.55,1.55,0,0,1,37.54,18.73Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"email\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M31.79,38.45A17.82,17.82,0,0,1,23.86,40,13.09,13.09,0,0,1,10.41,26.42C10.41,17.63,16.83,10,26.53,10c7.63,0,13.06,5.21,13.06,12.46,0,6.33-3.53,10.3-8.19,10.3a3.42,3.42,0,0,1-3.71-3.32h-.08A6.5,6.5,0,0,1,22,32.76c-2.75,0-4.82-2.11-4.82-5.65a9.85,9.85,0,0,1,10.13-10,12.89,12.89,0,0,1,5.13,1l-1.3,8c-.43,2.54-.13,3.71,1.08,3.75,1.85.09,4.18-2.28,4.18-7.28,0-5.65-3.62-10-10.3-10S13.73,17.76,13.73,26c0,7.25,4.57,11.3,11,11.3A14.81,14.81,0,0,0,31,36ZM28,20.65a5.34,5.34,0,0,0-1.33-.18c-2.85,0-5.09,2.81-5.09,6.12,0,1.64.73,2.68,2.16,2.68,1.59,0,3.27-2,3.66-4.53Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"gear_double\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"-280 372 50 50\\\" enable-background=\\\"new -280 372 50 50\\\" ><g><g><path fill=\\\"#29363E\\\" d=\\\"M-249.4,403.5V401l-3.2-0.9c-0.2-0.6-0.4-1.2-0.7-1.8l1.6-2.8l-1.8-1.8l-2.7,1.6c-0.5-0.3-1.1-0.6-1.7-0.7l-0.9-3.2h-2.5l-0.9,3.2c-0.6,0.2-1.3,0.4-1.8,0.8l-2.7-1.6l-1.8,1.8l1.6,2.7c-0.3,0.6-0.6,1.2-0.7,1.8l-3.2,0.9v2.5l3.3,0.9c0.2,0.6,0.4,1.2,0.7,1.7l-1.6,2.7l1.8,1.8l2.8-1.6c0.6,0.3,1.2,0.6,1.8,0.7l0.9,3.2h2.5l0.9-3.2c0.6-0.2,1.2-0.4,1.7-0.7l2.8,1.6l1.8-1.8l-1.6-2.8c0.3-0.5,0.5-1.1,0.7-1.7L-249.4,403.5z M-260.2,405.3c-1.7,0-3.1-1.4-3.1-3.1c0-1.7,1.4-3.1,3.1-3.1c1.7,0,3.1,1.4,3.1,3.1C-257.1,403.9-258.5,405.3-260.2,405.3z\\\"/></g><g><path fill=\\\"#29363E\\\" d=\\\"M-239.4,385.5l-2.3-0.1c-0.2-0.3-0.5-0.7-0.8-0.9c-0.3-0.3-0.6-0.5-0.9-0.8l-0.1-2.3l-1.7-0.4l-1,1.9c-1,0-1.9,0.2-2.8,0.7l-2.1-1.2l-1.2,1.2l1.2,2c-0.5,0.9-0.8,1.9-0.7,2.9l-1.9,1l0.4,1.7l2.3,0.1c0.2,0.3,0.5,0.7,0.7,0.9c0.3,0.3,0.6,0.5,0.9,0.7l0.1,2.3l1.7,0.4l1-1.9c1,0,2-0.2,2.9-0.7l2,1.2l1.2-1.2l-1.2-2.1c0.5-0.9,0.7-1.8,0.7-2.8l1.9-1L-239.4,385.5z M-244.7,390.1c-0.9,0.9-2.5,0.9-3.4,0c-0.9-0.9-0.9-2.5,0-3.4c0.9-0.9,2.5-0.9,3.4,0C-243.7,387.6-243.7,389.1-244.7,390.1z\\\"/></g></g></svg>\",\n \"groupby\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"10\\\" y=\\\"11.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"26.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\"/><rect x=\\\"22\\\" y=\\\"11.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"22\\\" y=\\\"16.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"22\\\" y=\\\"21.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"22\\\" y=\\\"26.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"22\\\" y=\\\"31.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"32\\\" y=\\\"11.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"32\\\" y=\\\"16.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"32\\\" y=\\\"21.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"32\\\" y=\\\"26.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"32\\\" y=\\\"31.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"22\\\" y=\\\"36.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"32\\\" y=\\\"36.17\\\" width=\\\"8\\\" height=\\\"3\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><rect x=\\\"19.5\\\" y=\\\"11.17\\\" width=\\\"1\\\" height=\\\"28\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"pin\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M297.3,432.6a13.7,13.7,0,0,1-6-1.5c-4.9-2.4-7.7-7-6.1-10.1s3-2.8,5.7-2.8h0.2l-2,3.4V422a4.8,4.8,0,0,0,1.5,3.5,10.2,10.2,0,0,0,6.7,2.9,3.9,3.9,0,0,0,3.5-1.6v-0.2l1-2.9c1.5,2.1,2,4.3,1.1,6s-3,2.8-5.7,2.8h0Z\\\" transform=\\\"translate(-271.5 -396)\\\" fill=\\\"#fff\\\"/><path d=\\\"M297.3,426.3a7.9,7.9,0,0,1-5.1-2.3,2.9,2.9,0,0,1-.9-1.8l4.5-7.8a10.2,10.2,0,0,0,6.1,2.8l-3,8.4a2,2,0,0,1-1.6.6h0Z\\\" transform=\\\"translate(-271.5 -396)\\\" fill=\\\"#fff\\\"/><path d=\\\"M304.3,415.6a11.2,11.2,0,0,1-4.9-1.2c-4-2-6.2-5.6-5-8.2s2.4-2.2,4.6-2.2a11.3,11.3,0,0,1,4.9,1.2,10.7,10.7,0,0,1,4.5,4,4.4,4.4,0,0,1,.5,4.2c-0.7,1.4-2.4,2.2-4.6,2.2h0Z\\\" transform=\\\"translate(-271.5 -396)\\\" fill=\\\"#fff\\\"/><path d=\\\"M290,432.2l-1.7,3.7-0.2,3,2-2.3,1.6-3.7-1.1-.5Z\\\" transform=\\\"translate(-271.5 -396)\\\" fill=\\\"#fff\\\"/></svg>\",\n \"pin_round_open\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M683.16,390.18a7.07,7.07,0,0,1-3.09-.77c-2.53-1.25-3.94-3.58-3.14-5.19a3.07,3.07,0,0,1,2.94-1.43h.1l-1,1.74v.2a2.48,2.48,0,0,0,.78,1.82,5.23,5.23,0,0,0,3.44,1.51,2,2,0,0,0,1.8-.84l.06-.09.52-1.48a3,3,0,0,1,.57,3.09,3.07,3.07,0,0,1-2.94,1.43Z\\\" transform=\\\"translate(-657.5 -358.97)\\\" fill=\\\"#4d5065\\\"/><path d=\\\"M683.15,386.94a4.06,4.06,0,0,1-2.62-1.16,1.5,1.5,0,0,1-.47-.92l2.32-4a5.24,5.24,0,0,0,3.13,1.45L684,386.63a1,1,0,0,1-.84.31Z\\\" transform=\\\"translate(-657.5 -358.97)\\\" fill=\\\"#4d5065\\\"/><path d=\\\"M686.75,381.45a5.78,5.78,0,0,1-2.52-.63c-2.06-1-3.21-2.9-2.57-4.21a2.48,2.48,0,0,1,2.37-1.15,5.78,5.78,0,0,1,2.53.63,5.5,5.5,0,0,1,2.32,2.05,2.26,2.26,0,0,1,.24,2.15,2.48,2.48,0,0,1-2.37,1.15Z\\\" transform=\\\"translate(-657.5 -358.97)\\\" fill=\\\"#4d5065\\\"/><path d=\\\"M679.42,390l-.89,1.92-.13,1.55,1-1.16.81-1.92-.54-.24Z\\\" transform=\\\"translate(-657.5 -358.97)\\\" fill=\\\"#4d5065\\\"/><path d=\\\"M683,399.47a15,15,0,1,1,15-15A15,15,0,0,1,683,399.47Zm0-29a14,14,0,1,0,14,14A14,14,0,0,0,683,370.44Z\\\" transform=\\\"translate(-657.5 -358.97)\\\" fill=\\\"#4d5065\\\"/></svg>\",\n \"information\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 50 50\\\" enable-background=\\\"new 0 0 50 50\\\" ><g><path fill=\\\"#29363E\\\" d=\\\"M19.2,23.8v-1.5c3.1-0.5,5.8-1.5,8.1-2.9l1,0.6c-0.2,1.7-0.3,3.1-0.4,4.5c-0.1,1.9-0.1,5-0.1,9.2c0,1.8,0.1,2.9,0.2,3.4c0.1,0.3,0.2,0.6,0.5,0.7c0.2,0.2,1.1,0.4,2.5,0.8V40c-1.9-0.2-3.7-0.2-5.2-0.2c-1.5,0-3.7,0.1-6.6,0.2v-1.4l0.5-0.1c1.2-0.3,1.9-0.5,2.1-0.7c0.2-0.2,0.4-0.6,0.4-1.1c0.1-1.3,0.2-4,0.2-8.1c0-2.4-0.1-3.7-0.2-4.1C22,24,21.6,23.7,21,23.7C20.5,23.7,19.9,23.8,19.2,23.8z M25.2,10c0.9,0,1.7,0.3,2.4,1c0.7,0.7,1,1.4,1,2.4c0,0.9-0.3,1.7-1,2.4c-0.7,0.7-1.4,1-2.4,1c-0.9,0-1.7-0.3-2.4-1c-0.7-0.7-1-1.4-1-2.4c0-0.9,0.3-1.7,1-2.4C23.5,10.3,24.2,10,25.2,10z\\\"/></g></svg>\",\n \"information_round_open\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M298,407.5a14,14,0,1,1-14,14,14,14,0,0,1,14-14m0-1a15,15,0,1,0,15,15,15,15,0,0,0-15-15h0Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#fff\\\"/><path d=\\\"M298.1,413a2,2,0,1,1-1.4.6A1.9,1.9,0,0,1,298.1,413Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#fff\\\"/><rect x=\\\"23.4\\\" y=\\\"24\\\" width=\\\"4\\\" height=\\\"10\\\" fill=\\\"#fff\\\"/></svg>\",\n \"lock\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M32.65,21.67H17.35c-2.81,0-3.06,2.29-3.06,5.12v8.09c0,2.83.25,5.12,3.06,5.12h15.3c2.81,0,3.06-2.29,3.06-5.12V26.79C35.71,24,35.46,21.67,32.65,21.67ZM20.22,37.49l2.61-6.32a3.82,3.82,0,1,1,4.35,0l2.6,6.32Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M29.51,16.64c0-3.6-2-4.07-4.51-4.07h0c-2.49,0-4.51.47-4.51,4.07v3h-2.7v-3C17.79,11.62,21,10,25,10h0c4,0,7.21,1.62,7.21,6.64v3h-2.7Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"magic_wand\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><g style=\\\"isolation:isolate\\\"><path d=\\\"M20.45,10.71a.28.28,0,0,1,.49-.19l1.4,1.25a.93.93,0,0,0,.83.23L25,11.62a.29.29,0,0,1,.34.41l-.76,1.71a.93.93,0,0,0,0,.86l.93,1.62c.12.26,0,.45-.29.45l-1.86-.2a1,1,0,0,0-.81.32l-1.26,1.38a.28.28,0,0,1-.5-.14l-.39-1.83a1,1,0,0,0-.55-.67l-1.71-.77a.28.28,0,0,1,0-.52l1.62-.94a1,1,0,0,0,.48-.73Z\\\" fill=\\\"#484f60\\\"/><g style=\\\"mix-blend-mode:lighten\\\"><path d=\\\"M23.3,16.21a1,1,0,0,0-.8.31l-1,1.13a.29.29,0,0,1-.51-.14L20.66,16a1,1,0,0,0-.55-.68l-1.39-.62a.28.28,0,0,1,0-.52L20,13.45a1,1,0,0,0,.48-.73l.16-1.5a.29.29,0,0,1,.49-.2l1.13,1a.93.93,0,0,0,.83.23L24.58,12a.29.29,0,0,1,.34.41l-.62,1.38a.91.91,0,0,0,.05.86l.75,1.32a.29.29,0,0,1-.29.44Z\\\" fill=\\\"#484f60\\\"/></g><path d=\\\"M33.57,36.76a.53.53,0,0,1,0,.72l-2.37,2.18a.48.48,0,0,1-.7,0L18,25.34a.51.51,0,0,1,0-.71l2.36-2.19a.49.49,0,0,1,.7,0Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M18.6,19.94a.51.51,0,0,1,0,.71L16.2,22.84a.48.48,0,0,1-.7,0l-2.76-3.13a.51.51,0,0,1,0-.71l2.37-2.19a.48.48,0,0,1,.7,0Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M30.67,10.55a.29.29,0,0,1,.47.24v1.12a1,1,0,0,0,.4.77l.9.66a.29.29,0,0,1-.08.52l-1.07.35a1,1,0,0,0-.61.61l-.35,1.06a.28.28,0,0,1-.51.09l-.67-.91a1,1,0,0,0-.77-.4H27.27a.29.29,0,0,1-.25-.47l.66-.9a.93.93,0,0,0,.14-.85l-.35-1.07a.29.29,0,0,1,.38-.38l1.07.35a1,1,0,0,0,.85-.13Z\\\" fill=\\\"#484f60\\\"/><g style=\\\"mix-blend-mode:lighten\\\"><path d=\\\"M29.25,14.88a1,1,0,0,0-.77-.4h-.86a.29.29,0,0,1-.24-.47l.5-.69a.93.93,0,0,0,.14-.85l-.26-.82c-.07-.27.1-.44.37-.37l.82.26a1,1,0,0,0,.85-.13l.69-.51a.29.29,0,0,1,.47.25V12a.94.94,0,0,0,.39.76l.7.51a.29.29,0,0,1-.09.52l-.81.26a1,1,0,0,0-.62.61l-.26.82a.29.29,0,0,1-.52.08Z\\\" fill=\\\"#484f60\\\"/></g><path d=\\\"M37,15.81a.29.29,0,0,1,.32.43l-.13.26a.91.91,0,0,0,0,.85l.15.26A.29.29,0,0,1,37,18l-.29,0a.93.93,0,0,0-.81.27l-.2.21a.28.28,0,0,1-.5-.16l0-.29a1,1,0,0,0-.52-.69l-.27-.13a.28.28,0,0,1,0-.52l.26-.13a.93.93,0,0,0,.5-.71l0-.29a.29.29,0,0,1,.5-.17l.21.21a.92.92,0,0,0,.82.26Z\\\" fill=\\\"#484f60\\\"/><g style=\\\"mix-blend-mode:lighten\\\"><path d=\\\"M35.25,18a1,1,0,0,0-.52-.7l-.12-.05a.28.28,0,0,1,0-.52l.12-.06a1,1,0,0,0,.51-.7V15.8a.29.29,0,0,1,.5-.18l.09.1a.92.92,0,0,0,.82.26l.13,0a.29.29,0,0,1,.32.42L37,16.5a.91.91,0,0,0,0,.85l.07.12a.29.29,0,0,1-.31.43l-.13,0a1,1,0,0,0-.82.28l-.09.1a.28.28,0,0,1-.5-.16Z\\\" fill=\\\"#484f60\\\"/></g></g></svg>\",\n \"magnifier\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 50 50\\\" enable-background=\\\"new 0 0 50 50\\\" ><g><path fill=\\\"#29363E\\\" d=\\\"M27.8,15.5c-3.4-3.4-8.9-3.4-12.3,0c-3.4,3.4-3.4,8.9,0,12.3c3.4,3.4,8.9,3.4,12.3,0C31.2,24.4,31.2,18.9,27.8,15.5z M26.4,26.4c-2.6,2.6-6.8,2.6-9.4,0c-2.6-2.6-2.6-6.8,0-9.4c2.6-2.6,6.8-2.6,9.4,0C29,19.6,29,23.8,26.4,26.4z\\\"/><path fill=\\\"#29363E\\\" d=\\\"M36.4,32.8l-4.3-4.3c-0.8-0.8-2.1-0.8-2.9,0l-0.7,0.7c-0.8,0.8-0.8,2.1,0,2.9l4.3,4.3c0.8,0.8,2.1,0.8,2.9,0l0.7-0.7C37.2,34.9,37.2,33.6,36.4,32.8z\\\"/></g></svg>\",\n \"MagnifierPlus\": \"<svg preserveAspectRatio=\\\"none\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 50 50\\\" x=\\\"0px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" y=\\\"0px\\\"><g transform=\\\" translate(11 11)\\\"><path d=\\\"M 17.258 2.962 C 13.313 -0.987 6.91 -0.987 2.961 2.962 C -0.987 6.911 -0.987 13.311 2.961 17.26 C 6.91 21.211 13.313 21.211 17.258 17.259 C 21.207 13.311 21.207 6.911 17.258 2.962 Z M 15.595 15.594 C 12.572 18.618 7.653 18.618 4.632 15.594 C 1.608 12.569 1.608 7.65 4.632 4.626 C 7.653 1.606 12.572 1.606 15.595 4.626 C 18.617 7.652 18.617 12.569 15.595 15.594 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(0 0.469)\\\" /><path d=\\\"M 9.904 5.736 L 4.862 0.688 C 3.94 -0.229 2.446 -0.229 1.526 0.688 L 0.691 1.525 C -0.23 2.446 -0.23 3.939 0.691 4.861 L 5.737 9.904 C 6.659 10.825 8.151 10.825 9.075 9.904 L 9.904 9.069 C 10.827 8.15 10.827 6.657 9.904 5.736 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(17.403 17.872)\\\" /><path d=\\\"M 11.001 4.5 L 7.5 4.5 L 7.5 1 C 7.5 0.448 7.052 0 6.501 0 L 5.502 0 C 4.948 0 4.5 0.448 4.5 1 L 4.5 4.5 L 1.002 4.5 C 0.448 4.5 0 4.949 0 5.499 L 0 6.501 C 0 7.052 0.448 7.5 1.002 7.5 L 4.5 7.5 L 4.5 11.001 C 4.5 11.552 4.948 12 5.502 12 L 6.501 12 C 7.052 12 7.5 11.552 7.5 11.001 L 7.5 7.5 L 11.001 7.5 C 11.552 7.5 12 7.052 12 6.501 L 12 5.499 C 12 4.949 11.552 4.5 11.001 4.5 Z\\\" fill=\\\"#1E2930\\\" opacity=\\\"0.95\\\" transform=\\\" translate(4.109 4.58)\\\" /></g></svg>\",\n \"minus_simple\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M297.5,419.4h-5.8A1.7,1.7,0,0,0,290,421v0.9a1.7,1.7,0,0,0,1.7,1.7h12.7a1.7,1.7,0,0,0,1.7-1.7V421a1.7,1.7,0,0,0-1.7-1.7h-6.8Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#fff\\\" opacity=\\\"0.95\\\"/></svg>\",\n \"order\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"17.5\\\" y=\\\"17.5\\\" width=\\\"6\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17.5\\\" y=\\\"21.5\\\" width=\\\"10\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17.5\\\" y=\\\"25.5\\\" width=\\\"10\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17.5\\\" y=\\\"29.5\\\" width=\\\"10\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><path d=\\\"M35.5,18.49V38a.5.5,0,0,1-.5.5H15a.5.5,0,0,1-.5-.5V12a.5.5,0,0,1,.5-.5H28.73V10H15a2,2,0,0,0-2,2V38a2,2,0,0,0,2,2H35a2,2,0,0,0,2-2V18.49Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M28.73,10v6.44c0,1.78.27,2,2.05,2H37Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17.5\\\" y=\\\"14.5\\\" width=\\\"6\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"29.5\\\" y=\\\"21.5\\\" width=\\\"3\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"29.5\\\" y=\\\"25.5\\\" width=\\\"3\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"29.5\\\" y=\\\"29.5\\\" width=\\\"3\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><path d=\\\"M28.73,35.78h-.1a.48.48,0,0,1-.36-.3l-.79-1.93-1.75.9a.49.49,0,0,1-.67-.21.48.48,0,0,1,.21-.67L27.5,32.4a.56.56,0,0,1,.4,0,.49.49,0,0,1,.29.29l.72,1.73.73-.74a.51.51,0,0,1,.5-.13l1.4.4.56-.72a.5.5,0,1,1,.8.6l-.77,1a.49.49,0,0,1-.54.18l-1.44-.42-1.06,1.07A.51.51,0,0,1,28.73,35.78Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"plus_simple\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M306,422.1a1.3,1.3,0,0,1-1.3,1.3H300v4.7a1.3,1.3,0,0,1-1.3,1.3h-1.3a1.3,1.3,0,0,1-1.3-1.3v-4.7h-4.7a1.3,1.3,0,0,1-1.3-1.3v-1.3a1.3,1.3,0,0,1,1.3-1.3H296v-4.7a1.3,1.3,0,0,1,1.3-1.3h1.3a1.3,1.3,0,0,1,1.3,1.3v4.7h4.7a1.3,1.3,0,0,1,1.3,1.3v1.3Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#fff\\\"/></svg>\",\n \"positioning\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"23\\\" y=\\\"17.17\\\" width=\\\"4\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"23\\\" y=\\\"23.17\\\" width=\\\"4\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"23\\\" y=\\\"29.17\\\" width=\\\"4\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"resize_down\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"29.5 28.25 25 32.75 20.5 28.25 29.5 28.25\\\" fill=\\\"#484f60\\\"/><rect x=\\\"23\\\" y=\\\"21.25\\\" width=\\\"4\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17\\\" y=\\\"21.25\\\" width=\\\"4\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"29\\\" y=\\\"21.25\\\" width=\\\"4\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"resize_up\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"20.5 22.75 25 18.25 29.5 22.75 20.5 22.75\\\" fill=\\\"#484f60\\\"/><rect x=\\\"23\\\" y=\\\"25.75\\\" width=\\\"4\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"29\\\" y=\\\"25.75\\\" width=\\\"4\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17\\\" y=\\\"25.75\\\" width=\\\"4\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"save_disk\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"-288 379 35 35\\\" enable-background=\\\"new -288 379 35 35\\\" ><g opacity=\\\"0.95\\\"><path fill=\\\"#29363E\\\" d=\\\"M-259.5,384.4h-2.1v6.8c0,0.4-0.3,0.7-0.7,0.7h-16.6c-0.4,0-0.7-0.3-0.7-0.7v-6.8h-2c-0.6,0-1.1,0.5-1.1,1.1v22.4c0,0.6,0.5,1.1,1.1,1.1h2v-14c0-0.4,0.3-0.7,0.7-0.7h16.7c0.4,0,0.7,0.3,0.7,0.7v14h2c0.6,0,1.1-0.5,1.1-1.1v-22.4C-258.4,384.9-258.9,384.4-259.5,384.4z M-280.1,406.6h-1.7V405h1.7V406.6z M-259.2,406.6h-1.7V405h1.7V406.6z\\\"/><rect x=\\\"-278.4\\\" y=\\\"395.4\\\" fill=\\\"#29363E\\\" width=\\\"15.8\\\" height=\\\"13.5\\\"/><path fill=\\\"#29363E\\\" d=\\\"M-263.4,384h-12c-0.1,0-0.3,0.1-0.3,0.3v6.5c0,0.1,0.1,0.3,0.3,0.3h12c0.1,0,0.2-0.1,0.2-0.3v-6.5C-263.1,384.1-263.2,384-263.4,384z M-265.6,390c0,0.1-0.1,0.3-0.3,0.3h-2.4c-0.1,0-0.2-0.1-0.2-0.3v-4.8c0-0.1,0.1-0.3,0.2-0.3h2.4c0.1,0,0.3,0.1,0.3,0.3V390z\\\"/></g></svg>\",\n \"select_all_round\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M298,406.5a15,15,0,1,0,15,15A15,15,0,0,0,298,406.5Zm-3,24-6.2-9.1,2.8-3.6,3.4,5.1,4.7-10.4h5.6Zm9.3,0-0.5-1.5h-2.7l-0.5,1.5h-1.9l2.7-7.3h2.2l2.7,7.3h-1.9Z\\\" transform=\\\"translate(-272.5 -396)\\\" fill=\\\"#fff\\\"/><polygon points=\\\"30.8 31.7 30 29.1 29.1 31.7 30.8 31.7\\\" fill=\\\"#fff\\\"/></svg>\",\n \"shopping_cart_nr\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M16.58,34.84a1.8,1.8,0,1,0,1.8,1.8A1.79,1.79,0,0,0,16.58,34.84Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M31.49,34.84a1.8,1.8,0,1,0,1.8,1.8A1.79,1.79,0,0,0,31.49,34.84Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M35.6,17.9l-2.87.34a8.92,8.92,0,0,1,.08,1.16c0,.26,0,.52,0,.78l.42-.05a.88.88,0,0,1,1,1.08L32.35,29.5a1.52,1.52,0,0,1-1.44,1.2H16.51a1.75,1.75,0,0,1-1.57-1.17l-2.31-5.6a1,1,0,0,1,.85-1.29l.87-.11a9.27,9.27,0,0,1-.47-2.05l-3,.35a1,1,0,0,0-.87,1.28l3.34,9.44A1.73,1.73,0,0,0,15,32.72H32.64a1.51,1.51,0,0,0,1.43-1.2L36.6,19A.89.89,0,0,0,35.6,17.9Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M39,17a1.87,1.87,0,0,0-1.36,1.46l-.42,2.89c-.1.67.31,1,.9.7a2.75,2.75,0,0,0,1.33-1.7L40,18A.73.73,0,0,0,39,17Z\\\" fill=\\\"#484f60\\\"/><circle cx=\\\"23.31\\\" cy=\\\"19.4\\\" r=\\\"7.5\\\" fill=\\\"#484f60\\\"/><text transform=\\\"translate(20.46 22.82)\\\" font-size=\\\"10\\\" fill=\\\"#484f60\\\" font-family=\\\"Quicksand-Regular, Quicksand\\\">3</text></svg>\",\n \"sort_asc\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"21.99 31.3 21.99 12.67 17.86 12.67 17.86 31.3 17.86 31.3 13.56 31.3 19.93 37.67 26.29 31.3 21.99 31.3\\\" fill=\\\"#484f60\\\"/><path d=\\\"M31.29,15.17a7.34,7.34,0,0,0,1.28-.65,5.12,5.12,0,0,0,1.14-1h.77v8H33.4V15a2.71,2.71,0,0,1-.34.26c-.13.09-.28.18-.44.27l-.49.24-.51.2Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M36.18,30.88a2,2,0,0,1-.17.79,3.74,3.74,0,0,1-.43.74,6.66,6.66,0,0,1-.61.72l-.68.7c-.13.12-.27.27-.44.45a6.17,6.17,0,0,0-.48.54,4.94,4.94,0,0,0-.38.54.92.92,0,0,0-.15.45h3.6v.89H31.7a.57.57,0,0,1,0-.13v-.13a2.62,2.62,0,0,1,.17-1,4,4,0,0,1,.46-.87,6.51,6.51,0,0,1,.63-.76c.23-.24.46-.48.69-.7s.37-.36.53-.54.32-.35.46-.53a2.75,2.75,0,0,0,.31-.55,1.45,1.45,0,0,0,.12-.59,1.43,1.43,0,0,0-.11-.58,1.15,1.15,0,0,0-.28-.4,1.37,1.37,0,0,0-.43-.23,1.7,1.7,0,0,0-.51-.07,1.89,1.89,0,0,0-.6.09,2.67,2.67,0,0,0-.48.21,1.83,1.83,0,0,0-.37.25l-.22.2-.52-.75a2.92,2.92,0,0,1,.3-.28,3.18,3.18,0,0,1,.49-.31,3.59,3.59,0,0,1,.63-.24,3.07,3.07,0,0,1,2.6.46A2.09,2.09,0,0,1,36.18,30.88Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"sort_desc\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"26.29 19.03 19.93 12.67 13.56 19.03 17.86 19.03 17.86 37.67 21.99 37.67 21.99 19.03 21.99 19.03 26.29 19.03\\\" fill=\\\"#484f60\\\"/><path d=\\\"M36.18,15.75a2,2,0,0,1-.17.79,3.74,3.74,0,0,1-.43.74A6.66,6.66,0,0,1,35,18l-.68.7c-.13.12-.27.27-.44.45a6.17,6.17,0,0,0-.48.54,4.94,4.94,0,0,0-.38.54.92.92,0,0,0-.15.45h3.6v.89H31.7a.57.57,0,0,1,0-.13v-.13a2.62,2.62,0,0,1,.17-1,4,4,0,0,1,.46-.87A6.51,6.51,0,0,1,33,18.7c.23-.24.46-.48.69-.7s.37-.36.53-.54.32-.35.46-.53a2.75,2.75,0,0,0,.31-.55,1.46,1.46,0,0,0,.12-.6,1.41,1.41,0,0,0-.11-.57,1.15,1.15,0,0,0-.28-.4,1.37,1.37,0,0,0-.43-.23,1.7,1.7,0,0,0-.51-.07,1.89,1.89,0,0,0-.6.09,2.67,2.67,0,0,0-.48.21,1.83,1.83,0,0,0-.37.25l-.22.19-.52-.74a2.92,2.92,0,0,1,.3-.28,3.18,3.18,0,0,1,.49-.31,3.59,3.59,0,0,1,.63-.24,3.07,3.07,0,0,1,2.6.46A2.09,2.09,0,0,1,36.18,15.75Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M31.29,30.41a7.34,7.34,0,0,0,1.28-.65,5.12,5.12,0,0,0,1.14-1h.77v8H33.4V30.25a4.61,4.61,0,0,1-.78.53c-.15.08-.32.17-.49.24l-.51.2Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"stock\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"26.19 27.13 31.78 23.88 37.39 27.11 31.79 30.35 26.19 27.13\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"32.39 31.38 37.99 28.14 38 34.61 32.41 37.85 32.39 31.38\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><polygon points=\\\"25.6 34.63 25.59 28.16 31.2 31.39 31.21 37.85 25.6 34.63\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><polygon points=\\\"12.6 27.15 18.19 23.91 23.8 27.13 18.2 30.37 12.6 27.15\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"18.8 31.41 24.39 28.16 24.41 34.63 18.81 37.88 18.8 31.41\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><polygon points=\\\"12.01 34.65 12 28.19 17.61 31.41 17.62 37.88 12.01 34.65\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/><polygon points=\\\"19.37 15.37 24.96 12.12 30.57 15.35 24.98 18.59 19.37 15.37\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"25.58 19.62 31.17 16.38 31.18 22.85 25.59 26.09 25.58 19.62\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><polygon points=\\\"18.79 22.87 18.77 16.4 24.38 19.63 24.39 26.09 18.79 22.87\\\" fill=\\\"#484f60\\\" opacity=\\\"0.25\\\"/></svg>\", \"thick_lines\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"10\\\" y=\\\"12.67\\\" width=\\\"30\\\" height=\\\"7\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"21.67\\\" width=\\\"30\\\" height=\\\"7\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"30.67\\\" width=\\\"30\\\" height=\\\"7\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"thin_lines\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"10\\\" y=\\\"14.17\\\" width=\\\"30\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"20.17\\\" width=\\\"30\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"26.17\\\" width=\\\"30\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"10\\\" y=\\\"32.17\\\" width=\\\"30\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"three_d\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M16.08,30.77a4.85,4.85,0,0,1-3-.8,4,4,0,0,0-2.49-.15,6.21,6.21,0,0,0,2.53,1.09,12.84,12.84,0,0,0,2.93-.14\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M14.27,19.68A4.71,4.71,0,0,0,11,20.78l2,.14c.31,0,1.2-.69,1.55-.81a3.88,3.88,0,0,1,1.65-.24l-1.94-.19\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M21.64,28.79a4.13,4.13,0,0,0-3.1-4c.89-.7,1.77-1.09,2.26-2.21a5.12,5.12,0,0,0,.35-1.9c-.13-3.24-2.64-3.73-5.29-4.15a4,4,0,0,1,3.44,3.7,4.61,4.61,0,0,1-.83,3.12,9.7,9.7,0,0,1-1.82,1.43,4.3,4.3,0,0,1,3.17,4.34,4.9,4.9,0,0,1-4.21,5c2.09-.34,4.37-.64,5.46-2.69a5,5,0,0,0,.57-2.58\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M28.44,18.88l.38-.07.48-.06.57,0h.75l.36,0,.35.05c-.2,0-.42-.08-1.57-.25l-.36-.05-.37,0h-.77l-.59,0-.49.07a3.08,3.08,0,0,0-.39.07l-.3.07V31.38H27l.13,0h1.63l.21,0h.2l.2,0h.05l1.55-.24h0l-.34.05-.33,0H29.12l-.36,0-.33,0a1.15,1.15,0,0,1-.28-.06V19Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M40,24.34a9,9,0,0,0-3-7.1,11.06,11.06,0,0,0-4.47-1.86c4.38,1.13,6.23,5.31,6.13,9.54-.12,4.5-2.27,8.55-6.86,9.66,2.59-.63,5-1.41,6.52-3.78A12,12,0,0,0,40,24.34\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M35.38,16.71A7.32,7.32,0,0,1,36.74,18a7.82,7.82,0,0,1,1,1.73,10.32,10.32,0,0,1,.68,2.16,13.86,13.86,0,0,1,.23,2.59,15,15,0,0,1-.25,2.78,11.39,11.39,0,0,1-.68,2.31,9.34,9.34,0,0,1-1,1.85,8.23,8.23,0,0,1-1.28,1.4,7.76,7.76,0,0,1-1.7,1.07,9.07,9.07,0,0,1-2,.69,13.36,13.36,0,0,1-2.26.33,18.25,18.25,0,0,1-2.45,0c-.5,0-1-.08-1.39-.12l-1.17-.14c-.36,0-.68-.11-1-.16l-.77-.15V15.86c.34-.09.71-.18,1.09-.26s.81-.15,1.24-.21.88-.12,1.34-.17.95-.1,1.44-.13a20.57,20.57,0,0,1,2.33,0,12,12,0,0,1,2,.24,8.24,8.24,0,0,1,1.72.55A7.1,7.1,0,0,1,35.38,16.71ZM27.92,31.53a6.53,6.53,0,0,0,2.46-.32A4.81,4.81,0,0,0,32.32,30a5.82,5.82,0,0,0,1.27-2.18A10.11,10.11,0,0,0,34,24.67a8.65,8.65,0,0,0-.42-2.85,4.94,4.94,0,0,0-1.18-2,4.45,4.45,0,0,0-1.83-1.11,6.55,6.55,0,0,0-2.35-.28l-.59,0-.49.07a3.08,3.08,0,0,0-.39.07l-.3.07V31.38a2.11,2.11,0,0,0,.29.06l.34,0,.37,0,.36,0h.07\\\" fill=\\\"#484f60\\\"/><path d=\\\"M14.57,16.47a5.49,5.49,0,0,1,2,.22,3.89,3.89,0,0,1,1.49.84A3.66,3.66,0,0,1,19,18.89a4.29,4.29,0,0,1,.33,1.7,5.29,5.29,0,0,1-.17,1.34,4.29,4.29,0,0,1-.5,1.16,4.17,4.17,0,0,1-.84.94,4.88,4.88,0,0,1-1.16.69v.05a3.7,3.7,0,0,1,1.22.5,4,4,0,0,1,1,.92,4.61,4.61,0,0,1,.69,1.3,5.24,5.24,0,0,1,.25,1.62,5.36,5.36,0,0,1-.42,2.15,4.44,4.44,0,0,1-1.2,1.64,4.84,4.84,0,0,1-1.86,1,6.78,6.78,0,0,1-2.39.23,7.69,7.69,0,0,1-2.36-.52,6.89,6.89,0,0,1-.9-.42,4.36,4.36,0,0,1-.69-.47l.62-2.9a4.12,4.12,0,0,0,.53.34,6.21,6.21,0,0,0,.73.36,5.69,5.69,0,0,0,.88.31,5.19,5.19,0,0,0,1,.15,3.11,3.11,0,0,0,1.1-.13,2,2,0,0,0,.8-.45,1.93,1.93,0,0,0,.49-.71,2.35,2.35,0,0,0,.17-.89A2.48,2.48,0,0,0,16,27.67a2.23,2.23,0,0,0-.63-.79,2.9,2.9,0,0,0-.89-.46,3.5,3.5,0,0,0-1-.15H12.2V23.44l1.23,0a3.44,3.44,0,0,0,.83-.11,2.83,2.83,0,0,0,.79-.36,2,2,0,0,0,.6-.62,2,2,0,0,0,.23-.94,1.8,1.8,0,0,0-.13-.71,1.36,1.36,0,0,0-.38-.56,1.58,1.58,0,0,0-.64-.35,2.79,2.79,0,0,0-.9-.1,4.07,4.07,0,0,0-.84.13c-.27.08-.53.18-.78.28a6.56,6.56,0,0,0-1.17.7L10.42,18a5,5,0,0,1,.72-.51,7.82,7.82,0,0,1,2.12-.82A8,8,0,0,1,14.57,16.47Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"TrashBin\": \"<svg preserveAspectRatio=\\\"none\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 50 50\\\" x=\\\"0px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" y=\\\"0px\\\"><g transform=\\\" translate(14 10)\\\"><path d=\\\"M 0 0 L 0 18.215 C 0 19.99 1.439 21.429 3.215 21.429 L 15 21.429 C 16.775 21.429 18.215 19.99 18.215 18.215 L 18.215 0 L 0 0 Z M 4.287 19.286 L 2.143 19.286 L 2.143 2.143 L 4.287 2.143 L 4.287 19.286 Z M 10.18 19.286 L 8.037 19.286 L 8.037 2.143 L 10.18 2.143 L 10.18 19.286 Z M 16.072 19.286 L 13.93 19.286 L 13.93 2.143 L 16.072 2.143 L 16.072 19.286 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(1.891 8.571)\\\"/><path d=\\\"M 18.213 2.143 L 10.713 2.143 C 11.305 2.143 11.785 1.664 11.785 1.071 C 11.785 0.479 11.305 0 10.713 0 L 9.643 0 C 9.051 0 8.57 0.479 8.57 1.071 C 8.57 1.664 9.051 2.143 9.643 2.143 L 2.143 2.143 C 0.959 2.143 0 3.103 0 4.286 L 0 5.357 C 0 6.541 0.959 6.429 2.143 6.429 L 18.213 6.429 C 19.397 6.429 20.357 6.541 20.357 5.357 L 20.357 4.286 C 20.357 3.103 19.397 2.143 18.213 2.143 Z\\\" fill=\\\"#1E2930\\\" transform=\\\" translate(0.821 0)\\\"/></g></svg>\",\n \"triangle_up\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 25\\\"><polygon points=\\\"16.8 24.8 0 25 25 0 50 24.8 33 24.8 16.8 24.8\\\" fill=\\\"#4d5065\\\"/></svg>\",\n \"wrench\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><path d=\\\"M696.41,378.36a5.36,5.36,0,0,0-.58.61q-2.09,2.11-4.2,4.21a2.22,2.22,0,0,1-3.38.24,22.16,22.16,0,0,1-2.06-2,10.79,10.79,0,0,1-1.31-1.51,2.1,2.1,0,0,1,.29-3c.54-.55,1.08-1.09,1.63-1.63L690.2,372c-.33-.11-.51-.18-.7-.23a9.89,9.89,0,0,0-12,12,.86.86,0,0,1-.27.95c-2.08,2.06-4.15,4.14-6.23,6.2a13.7,13.7,0,0,0,6.53,6.48q3.1-3.1,6.2-6.2a.86.86,0,0,1,.95-.27,9.89,9.89,0,0,0,12.19-8A8.55,8.55,0,0,0,696.41,378.36Z\\\" transform=\\\"translate(-658.5 -358.97)\\\" fill=\\\"#4c5050\\\"/></svg>\",\n};\n","import { Injectable } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\nimport { ObjectUtils } from '../../core/utils/object-utils';\r\nimport { StringUtils } from '../../core/utils/string-utils';\r\nimport { CoreComponentsIcon } from '../../core/enum/core-components-icon.enum';\r\nimport { CoreComponentsIconSvg } from '../../core/model/core-components-icon-svg';\r\n\r\n@Injectable()\r\nexport class IconCacheService {\r\n /**\r\n * All the icons as a large JSON object, from the all-icons.json file.\r\n * The object has property keys that are the icon names, and property values with the data string of the actual svg icon.\r\n */\r\n public get iconCache(): { [iconName: string]: SafeHtml } {\r\n return this._iconCache;\r\n }\r\n\r\n private _iconCache: { [iconName: string]: SafeHtml } = {};\r\n\r\n private _allIcons: any;\r\n\r\n constructor(private _sanitizer: DomSanitizer) {\r\n this._allIcons = CoreComponentsIconSvg;\r\n this.setIconCache();\r\n }\r\n\r\n public getIcon(iconName: CoreComponentsIcon): SafeHtml {\r\n if (StringUtils.IsStringWithLength(iconName)) {\r\n return this._iconCache[iconName.toLowerCase()];\r\n }\r\n }\r\n\r\n public getRawIcon(iconName: CoreComponentsIcon): string {\r\n if (StringUtils.IsStringWithLength(iconName)) {\r\n return this._allIcons[iconName.toLowerCase()];\r\n }\r\n }\r\n\r\n public getIconAsBase64(iconName: CoreComponentsIcon): SafeHtml {\r\n const icon: string = this._allIcons[iconName];\r\n const base64Data: string = window.btoa(icon);\r\n return this._sanitizer.bypassSecurityTrustUrl(`data:image/svg+xml;base64,${base64Data}`);\r\n }\r\n\r\n public getIconRawBase64(iconName: CoreComponentsIcon): string {\r\n const icon: string = this._allIcons[iconName];\r\n const base64Data: string = window.btoa(icon);\r\n return \"data:image/svg+xml;base64,\" + base64Data;\r\n }\r\n\r\n public setIconCache(): void {\r\n ObjectUtils.ForOwnProperty(this._allIcons, (svgData: string, iconName: CoreComponentsIcon) => {\r\n this._iconCache[iconName.toLowerCase()] = this._sanitizer.bypassSecurityTrustHtml(this._allIcons[iconName]);\r\n });\r\n }\r\n}\r\n","import { Component, HostBinding, Input } from '@angular/core';\r\nimport { SafeHtml } from '@angular/platform-browser';\r\nimport { CoreComponentsIcon } from '../../core/enum/core-components-icon.enum';\r\nimport { IconCacheService } from './icon-cache.service';\r\n\r\n@Component({\r\n selector: \"co-icon\",\r\n template: '',\r\n styleUrls: [\r\n \"icon.scss\"\r\n ]\r\n})\r\nexport class IconComponent {\r\n\r\n @Input()\r\n public set icon(value: CoreComponentsIcon) {\r\n this._setIconFromEnum(value);\r\n }\r\n\r\n @Input()\r\n @HostBinding(\"innerHtml\")\r\n public iconData: SafeHtml | undefined;\r\n\r\n constructor(private _iconCache: IconCacheService) {\r\n }\r\n\r\n private _setIconFromEnum(icon: CoreComponentsIcon): void {\r\n this.iconData = this._iconCache.getIcon(icon);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\n\r\nimport { IconComponent } from './icon.component';\r\nimport { IconCacheService } from './icon-cache.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HttpClientModule\r\n ],\r\n declarations: [\r\n IconComponent\r\n ],\r\n providers: [\r\n IconCacheService\r\n ],\r\n exports: [\r\n IconComponent\r\n ]\r\n})\r\nexport class IconModule {\r\n}\r\n","// NOTE: Copied and adapted to iOneJS from https://github.com/angular/material2/blob/master/src/lib/core on 14-march-2017.\r\nimport { ElementRef, Injectable, Optional, SkipSelf } from '@angular/core';\r\nimport { fromEvent, merge, Observable, Subject, Subscription } from 'rxjs';\r\n\r\nimport { CoScrollableDirective } from './scrollable.directive';\r\nimport { auditTime } from 'rxjs/operators';\r\n\r\n/** Time in ms to throttle the scrolling events by default. */\r\nexport const DEFAULT_SCROLL_TIME = 20;\r\n\r\n/**\r\n * Service contained all registered Scrollable references and emits an event when any one of the\r\n * Scrollable references emit a scrolled event.\r\n */\r\n@Injectable()\r\nexport class CoScrollDispatcherService {\r\n /** Subject for notifying that a registered scrollable reference element has been scrolled. */\r\n _scrolled: Subject<void> = new Subject<void>();\r\n\r\n /** Keeps track of the global `scroll` and `resize` subscriptions. */\r\n _globalSubscription: Subscription = null;\r\n\r\n /** Keeps track of the amount of subscriptions to `scrolled`. Used for cleaning up afterwards. */\r\n private _scrolledCount = 0;\r\n\r\n /**\r\n * Map of all the scrollable references that are registered with the service and their\r\n * scroll event subscriptions.\r\n */\r\n scrollableReferences: Map<CoScrollableDirective, Subscription> = new Map();\r\n\r\n /**\r\n * Registers a Scrollable with the service and listens for its scrolled events. When the\r\n * scrollable is scrolled, the service emits the event in its scrolled observable.\r\n * @param scrollable Scrollable instance to be registered.\r\n */\r\n register(scrollable: CoScrollableDirective): void {\r\n const scrollSubscription = scrollable.elementScrolled().subscribe(() => this._notify());\r\n\r\n this.scrollableReferences.set(scrollable, scrollSubscription);\r\n }\r\n\r\n /**\r\n * Deregisters a Scrollable reference and unsubscribes from its scroll event observable.\r\n * @param scrollable Scrollable instance to be deregistered.\r\n */\r\n deregister(scrollable: CoScrollableDirective): void {\r\n if (this.scrollableReferences.has(scrollable)) {\r\n this.scrollableReferences.get(scrollable).unsubscribe();\r\n this.scrollableReferences.delete(scrollable);\r\n }\r\n }\r\n\r\n /**\r\n * Subscribes to an observable that emits an event whenever any of the registered Scrollable\r\n * references (or window, document, or body) fire a scrolled event. Can provide a time in ms\r\n * to override the default \"throttle\" time.\r\n */\r\n scrolled(auditTimeInMs: number = DEFAULT_SCROLL_TIME, callback: () => any): Subscription {\r\n // In the case of a 0ms delay, use an observable without auditTime\r\n // since it does add a perceptible delay in processing overhead.\r\n let observable: any = auditTimeInMs > 0 ?\r\n auditTime(auditTimeInMs) :\r\n this._scrolled.asObservable();\r\n\r\n this._scrolledCount++;\r\n\r\n if (!this._globalSubscription) {\r\n this._globalSubscription = merge(\r\n fromEvent(window.document, 'scroll'),\r\n fromEvent(window, 'resize')\r\n ).subscribe(() => this._notify());\r\n }\r\n\r\n // Note that we need to do the subscribing from here, in order to be able to remove\r\n // the global event listeners once there are no more subscriptions.\r\n return observable.subscribe(callback).add(() => {\r\n this._scrolledCount--;\r\n\r\n if (this._globalSubscription && !this.scrollableReferences.size && !this._scrolledCount) {\r\n this._globalSubscription.unsubscribe();\r\n this._globalSubscription = null;\r\n }\r\n });\r\n }\r\n\r\n /** Returns all registered Scrollables that contain the provided element. */\r\n getScrollContainers(elementRef: ElementRef): CoScrollableDirective[] {\r\n const scrollingContainers: CoScrollableDirective[] = [];\r\n\r\n this.scrollableReferences.forEach((subscription: Subscription, scrollable: CoScrollableDirective) => {\r\n if (this.scrollableContainsElement(scrollable, elementRef)) {\r\n scrollingContainers.push(scrollable);\r\n }\r\n });\r\n\r\n return scrollingContainers;\r\n }\r\n\r\n /** Returns true if the element is contained within the provided Scrollable. */\r\n scrollableContainsElement(scrollable: CoScrollableDirective, elementRef: ElementRef): boolean {\r\n let element = elementRef.nativeElement;\r\n let scrollableElement = scrollable.getElementRef().nativeElement;\r\n\r\n // Traverse through the element parents until we reach null, checking if any of the elements\r\n // are the scrollable's element.\r\n do {\r\n if (element == scrollableElement) {\r\n return true;\r\n }\r\n } while (element = element.parentElement);\r\n }\r\n\r\n /** Sends a notification that a scroll event has been fired. */\r\n _notify() {\r\n this._scrolled.next();\r\n }\r\n}\r\n\r\nexport function SCROLL_DISPATCHER_PROVIDER_FACTORY(parentDispatcher: CoScrollDispatcherService) {\r\n return parentDispatcher || new CoScrollDispatcherService();\r\n}\r\n\r\nexport const SCROLL_DISPATCHER_PROVIDER = {\r\n // If there is already a ScrollDispatcher available, use that. Otherwise, provide a new one.\r\n provide: CoScrollDispatcherService,\r\n deps: [[new Optional(), new SkipSelf(), CoScrollDispatcherService]],\r\n useFactory: SCROLL_DISPATCHER_PROVIDER_FACTORY\r\n};\r\n","// NOTE: Copied and adapted to TwoDSelector from iOneJS on 9-may-2018.\r\nimport {Injectable, Optional, SkipSelf} from '@angular/core';\r\n\r\nimport {CoScrollDispatcherService} from \"./scroll-dispatcher.service\";\r\n\r\n/**\r\n * Simple utility for getting the bounds of the browser viewport.\r\n * @docs-private\r\n */\r\n@Injectable()\r\nexport class CoViewportRulerService {\r\n\r\n /** Cached document client rectangle. */\r\n private _documentRect?: ClientRect;\r\n\r\n constructor(scrollDispatcher: CoScrollDispatcherService) {\r\n // Initially cache the document rectangle.\r\n this._cacheViewportGeometry();\r\n\r\n // Subscribe to scroll and resize events and update the document rectangle on changes.\r\n scrollDispatcher.scrolled(null, () => this._cacheViewportGeometry());\r\n }\r\n\r\n /** Gets a ClientRect for the viewport's bounds. */\r\n getViewportRect(documentRect = this._documentRect): ClientRect {\r\n // Use the document element's bounding rect rather than the window scroll properties\r\n // (e.g. pageYOffset, scrollY) due to in issue in Chrome and IE where window scroll\r\n // properties and client coordinates (boundingClientRect, clientX/Y, etc.) are in different\r\n // conceptual viewports. Under most circumstances these viewports are equivalent, but they\r\n // can disagree when the page is pinch-zoomed (on devices that support touch).\r\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=489206#c4\r\n // We use the documentElement instead of the body because, by default (without a css reset)\r\n // browsers typically give the document body an 8px margin, which is not included in\r\n // getBoundingClientRect().\r\n const scrollPosition = this.getViewportScrollPosition(documentRect);\r\n const height = window.innerHeight;\r\n const width = window.innerWidth;\r\n\r\n return {\r\n top: scrollPosition.top,\r\n left: scrollPosition.left,\r\n bottom: scrollPosition.top + height,\r\n right: scrollPosition.left + width,\r\n height,\r\n width,\r\n };\r\n }\r\n\r\n\r\n /**\r\n * Gets the (top, left) scroll position of the viewport.\r\n * @param documentRect\r\n */\r\n getViewportScrollPosition(documentRect = this._documentRect) {\r\n // The top-left-corner of the viewport is determined by the scroll position of the document\r\n // body, normally just (scrollLeft, scrollTop). However, Chrome and Firefox disagree about\r\n // whether `document.body` or `document.documentElement` is the scrolled element, so reading\r\n // `scrollTop` and `scrollLeft` is inconsistent. However, using the bounding rect of\r\n // `document.documentElement` works consistently, where the `top` and `left` values will\r\n // equal negative the scroll position.\r\n const top = -documentRect.top || document.body.scrollTop || window.scrollY || 0;\r\n const left = -documentRect.left || document.body.scrollLeft || window.scrollX || 0;\r\n\r\n return {top, left};\r\n }\r\n\r\n /** Caches the latest client rectangle of the document element. */\r\n _cacheViewportGeometry() {\r\n this._documentRect = document.documentElement.getBoundingClientRect();\r\n }\r\n\r\n}\r\n\r\nexport function VIEWPORT_RULER_PROVIDER_FACTORY(parentRuler: CoViewportRulerService,\r\n scrollDispatcher: CoScrollDispatcherService) {\r\n return parentRuler || new CoViewportRulerService(scrollDispatcher);\r\n}\r\n\r\nexport const VIEWPORT_RULER_PROVIDER = {\r\n // If there is already a ViewportRuler available, use that. Otherwise, provide a new one.\r\n provide: CoViewportRulerService,\r\n deps: [[new Optional(), new SkipSelf(), CoViewportRulerService], CoScrollDispatcherService],\r\n useFactory: VIEWPORT_RULER_PROVIDER_FACTORY\r\n};","// NOTE: Copied and adapted to CoreComponents from iOneJS on 9-may-2018.\r\n\r\nimport {CoRippleConfig, CoRippleRenderer} from \"./ripple-renderer\";\r\n\r\n/** Possible states for a ripple element. */\r\nexport enum CoRippleState {\r\n FADING_IN, VISIBLE, FADING_OUT, HIDDEN\r\n}\r\n\r\n/**\r\n * Reference to a previously launched ripple element.\r\n */\r\nexport class CoRippleRef {\r\n\r\n /** Current state of the ripple reference. */\r\n state: CoRippleState = CoRippleState.HIDDEN;\r\n\r\n constructor(\r\n private _renderer: CoRippleRenderer,\r\n public element: HTMLElement,\r\n public config: CoRippleConfig) {\r\n }\r\n\r\n /** Fades out the ripple element. */\r\n fadeOut() {\r\n this._renderer.fadeOutRipple(this);\r\n }\r\n}","// NOTE: Copied and adapted to CoreComponents from iOneJS on 9-may-2018.\r\n\r\nimport {ElementRef, NgZone} from '@angular/core';\r\n\r\nimport {CoRippleRef, CoRippleState} from \"./ripple-ref\";\r\nimport {CoViewportRulerService} from \"./viewport-ruler.service\";\r\n\r\n/** Fade-in duration for the ripples. Can be modified with the speedFactor option. */\r\nexport const RIPPLE_FADE_IN_DURATION = 450;\r\n\r\n/** Fade-out duration for the ripples in milliseconds. This can't be modified by the speedFactor. */\r\nexport const RIPPLE_FADE_OUT_DURATION = 400;\r\n\r\nexport type CoRippleConfig = {\r\n color?: string;\r\n centered?: boolean;\r\n radius?: number;\r\n speedFactor?: number;\r\n persistent?: boolean;\r\n};\r\n\r\n/**\r\n * Helper service that performs DOM manipulations. Not intended to be used outside this module.\r\n * The constructor takes a reference to the ripple directive's host element and a map of DOM\r\n * event handlers to be installed on the element that triggers ripple animations.\r\n * This will eventually become a custom renderer once Angular support exists.\r\n * @docs-private\r\n */\r\nexport class CoRippleRenderer {\r\n\r\n /** Element where the ripples are being added to. */\r\n private _containerElement: HTMLElement;\r\n\r\n /** Element which triggers the ripple elements on mouse events. */\r\n private _triggerElement: HTMLElement;\r\n\r\n /** Whether the mouse is currently down or not. */\r\n private _isMousedown: boolean = false;\r\n\r\n /** Events to be registered on the trigger element. */\r\n private _triggerEvents = new Map<string, any>();\r\n\r\n /** Set of currently active ripple references. */\r\n private _activeRipples = new Set<CoRippleRef>();\r\n\r\n /** Ripple config for all ripples created by events. */\r\n rippleConfig: CoRippleConfig = {};\r\n\r\n /** Whether mouse ripples should be created or not. */\r\n rippleDisabled: boolean = false;\r\n\r\n constructor(_elementRef: ElementRef, private _ngZone: NgZone, private _ruler: CoViewportRulerService) {\r\n this._containerElement = _elementRef.nativeElement;\r\n\r\n // Specify events which need to be registered on the trigger.\r\n this._triggerEvents.set('mousedown', this.onMousedown.bind(this));\r\n this._triggerEvents.set('mouseup', this.onMouseup.bind(this));\r\n this._triggerEvents.set('mouseleave', this.onMouseLeave.bind(this));\r\n\r\n // By default use the host element as trigger element.\r\n this.setTriggerElement(this._containerElement);\r\n }\r\n\r\n /** Fades in a ripple at the given coordinates. */\r\n fadeInRipple(pageX: number, pageY: number, config: CoRippleConfig = {}): CoRippleRef {\r\n let containerRect = this._containerElement.getBoundingClientRect();\r\n\r\n if (config.centered) {\r\n pageX = containerRect.left + containerRect.width / 2;\r\n pageY = containerRect.top + containerRect.height / 2;\r\n } else {\r\n // Subtract scroll values from the coordinates because calculations below\r\n // are always relative to the viewport rectangle.\r\n let scrollPosition = this._ruler.getViewportScrollPosition();\r\n pageX -= scrollPosition.left;\r\n pageY -= scrollPosition.top;\r\n }\r\n\r\n let radius = config.radius || distanceToFurthestCorner(pageX, pageY, containerRect);\r\n let duration = RIPPLE_FADE_IN_DURATION * (1 / (config.speedFactor || 1));\r\n let offsetX = pageX - containerRect.left;\r\n let offsetY = pageY - containerRect.top;\r\n\r\n let ripple = document.createElement('div');\r\n ripple.classList.add('mat-ripple-element');\r\n\r\n ripple.style.left = `${offsetX - radius}px`;\r\n ripple.style.top = `${offsetY - radius}px`;\r\n ripple.style.height = `${radius * 2}px`;\r\n ripple.style.width = `${radius * 2}px`;\r\n\r\n // If the color is not set, the default CSS color will be used.\r\n ripple.style.backgroundColor = config.color;\r\n ripple.style.transitionDuration = `${duration}ms`;\r\n\r\n this._containerElement.appendChild(ripple);\r\n\r\n // By default the browser does not recalculate the styles of dynamically created\r\n // ripple elements. This is critical because then the `scale` would not animate properly.\r\n enforceStyleRecalculation(ripple);\r\n\r\n ripple.style.transform = 'scale(1)';\r\n\r\n // Exposed reference to the ripple that will be returned.\r\n let rippleRef = new CoRippleRef(this, ripple, config);\r\n\r\n rippleRef.state = CoRippleState.FADING_IN;\r\n\r\n // Add the ripple reference to the list of all active ripples.\r\n this._activeRipples.add(rippleRef);\r\n\r\n // Wait for the ripple element to be completely faded in.\r\n // Once it's faded in, the ripple can be hidden immediately if the mouse is released.\r\n this.runTimeoutOutsideZone(() => {\r\n rippleRef.state = CoRippleState.VISIBLE;\r\n\r\n if (!config.persistent && !this._isMousedown) {\r\n rippleRef.fadeOut();\r\n }\r\n }, duration);\r\n\r\n return rippleRef;\r\n }\r\n\r\n /** Fades out a ripple reference. */\r\n fadeOutRipple(rippleRef: CoRippleRef) {\r\n // For ripples that are not active anymore, don't re-un the fade-out animation.\r\n if (!this._activeRipples.delete(rippleRef)) {\r\n return;\r\n }\r\n\r\n let rippleEl = rippleRef.element;\r\n\r\n rippleEl.style.transitionDuration = `${RIPPLE_FADE_OUT_DURATION}ms`;\r\n rippleEl.style.opacity = '0';\r\n\r\n rippleRef.state = CoRippleState.FADING_OUT;\r\n\r\n // Once the ripple faded out, the ripple can be safely removed from the DOM.\r\n this.runTimeoutOutsideZone(() => {\r\n rippleRef.state = CoRippleState.HIDDEN;\r\n rippleEl.parentNode.removeChild(rippleEl);\r\n }, RIPPLE_FADE_OUT_DURATION);\r\n }\r\n\r\n /** Fades out all currently active ripples. */\r\n fadeOutAll() {\r\n this._activeRipples.forEach(ripple => ripple.fadeOut());\r\n }\r\n\r\n /** Sets the trigger element and registers the mouse events. */\r\n setTriggerElement(element: HTMLElement) {\r\n // Remove all previously register event listeners from the trigger element.\r\n if (this._triggerElement) {\r\n this._triggerEvents.forEach((fn, type) => this._triggerElement.removeEventListener(type, fn));\r\n }\r\n\r\n if (element) {\r\n // If the element is not null, register all event listeners on the trigger element.\r\n this._ngZone.runOutsideAngular(() => {\r\n this._triggerEvents.forEach((fn, type) => element.addEventListener(type, fn));\r\n });\r\n }\r\n\r\n this._triggerElement = element;\r\n }\r\n\r\n /** Listener being called on mousedown event. */\r\n private onMousedown(event: MouseEvent) {\r\n if (!this.rippleDisabled) {\r\n this._isMousedown = true;\r\n this.fadeInRipple(event.pageX, event.pageY, this.rippleConfig);\r\n }\r\n }\r\n\r\n /** Listener being called on mouseup event. */\r\n private onMouseup() {\r\n this._isMousedown = false;\r\n\r\n // Fade-out all ripples that are completely visible and not persistent.\r\n this._activeRipples.forEach(ripple => {\r\n if (!ripple.config.persistent && ripple.state === CoRippleState.VISIBLE) {\r\n ripple.fadeOut();\r\n }\r\n });\r\n }\r\n\r\n /** Listener being called on mouseleave event. */\r\n private onMouseLeave() {\r\n if (this._isMousedown) {\r\n this.onMouseup();\r\n }\r\n }\r\n\r\n /** Runs a timeout outside of the Angular zone to avoid triggering the change detection. */\r\n private runTimeoutOutsideZone(fn: Function, delay: number = 0): void {\r\n this._ngZone.runOutsideAngular(() => setTimeout(fn, delay));\r\n }\r\n\r\n}\r\n\r\n/** Enforces a style recalculation of a DOM element by computing its styles. */\r\nfunction enforceStyleRecalculation(element: HTMLElement) {\r\n // Enforce a style recalculation by calling `getComputedStyle` and accessing any property.\r\n // Calling `getPropertyValue` is important to let optimizers know that this is not a noop.\r\n // See: https://gist.github.com/paulirish/5d52fb081b3570c81e3a\r\n window.getComputedStyle(element).getPropertyValue('opacity');\r\n}\r\n\r\n/**\r\n * Returns the distance from the point (x, y) to the furthest corner of a rectangle.\r\n */\r\nfunction distanceToFurthestCorner(x: number, y: number, rect: ClientRect) {\r\n const distX = Math.max(Math.abs(x - rect.left), Math.abs(x - rect.right));\r\n const distY = Math.max(Math.abs(y - rect.top), Math.abs(y - rect.bottom));\r\n return Math.sqrt(distX * distX + distY * distY);\r\n}","// NOTE: Copied from iOneJS and adapted to CoreComponents on 9-may-2018.\r\n\r\nimport {Directive, ElementRef, Inject, InjectionToken, Input, NgZone, OnChanges, OnDestroy, Optional, SimpleChanges} from '@angular/core';\r\nimport {CoRippleConfig, CoRippleRenderer} from \"./ripple-renderer\";\r\nimport {CoRippleRef} from \"./ripple-ref\";\r\nimport {CoViewportRulerService} from \"./viewport-ruler.service\";\r\n\r\n/** OpaqueToken that can be used to specify the global ripple options. */\r\nexport const MD_RIPPLE_GLOBAL_OPTIONS: InjectionToken<CoRippleGlobalOptions> = new InjectionToken('CoRippleGlobalOptions');\r\n\r\nexport type CoRippleGlobalOptions = {\r\n disabled?: boolean;\r\n baseSpeedFactor?: number;\r\n};\r\n\r\n@Directive({\r\n selector: '[md-ripple], [mat-ripple], [mdRipple], [matRipple]',\r\n exportAs: 'mdRipple',\r\n host: {\r\n '[class.mat-ripple]': 'true',\r\n '[class.mat-ripple-unbounded]': 'unbounded'\r\n }\r\n})\r\nexport class CoRippleDirective implements OnChanges, OnDestroy {\r\n\r\n /**\r\n * The element that triggers the ripple when click events are received. Defaults to the\r\n * directive's host element.\r\n */\r\n // Prevent TS metadata emit from referencing HTMLElement in ripple.js\r\n // Otherwise running this code in a Node environment (e.g Universal) will not work.\r\n @Input('mdRippleTrigger') trigger: HTMLElement | HTMLElement;\r\n\r\n /**\r\n * Whether the ripple always originates from the center of the host element's bounds, rather\r\n * than originating from the location of the click event.\r\n */\r\n @Input('mdRippleCentered') centered: boolean;\r\n\r\n /**\r\n * Whether click events will not trigger the ripple. It can still be triggered by manually\r\n * calling createRipple()\r\n */\r\n @Input('mdRippleDisabled') disabled: boolean;\r\n\r\n /**\r\n * If set, the radius in pixels of foreground ripples when fully expanded. If unset, the radius\r\n * will be the distance from the center of the ripple to the furthest corner of the host element's\r\n * bounding rectangle.\r\n */\r\n @Input('mdRippleRadius') radius: number = 0;\r\n\r\n /**\r\n * If set, the normal duration of ripple animations is divided by this value. For example,\r\n * setting it to 0.5 will cause the animations to take twice as long.\r\n * A changed speedFactor will not modify the fade-out duration of the ripples.\r\n */\r\n @Input('mdRippleSpeedFactor') speedFactor: number = 1;\r\n\r\n /** Custom color for ripples. */\r\n @Input('mdRippleColor') color: string;\r\n\r\n /** Whether foreground ripples should be visible outside the component's bounds. */\r\n @Input('mdRippleUnbounded') unbounded: boolean;\r\n\r\n /** Renderer for the ripple DOM manipulations. */\r\n private _rippleRenderer: CoRippleRenderer;\r\n\r\n /** Options that are set globally for all ripples. */\r\n private _globalOptions: CoRippleGlobalOptions;\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n ngZone: NgZone,\r\n ruler: CoViewportRulerService,\r\n // Type needs to be `any` because of https://github.com/angular/angular/issues/12631\r\n @Optional() @Inject(MD_RIPPLE_GLOBAL_OPTIONS) globalOptions: any\r\n ) {\r\n this._rippleRenderer = new CoRippleRenderer(elementRef, ngZone, ruler);\r\n this._globalOptions = globalOptions ? globalOptions : {};\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['trigger'] && this.trigger) {\r\n this._rippleRenderer.setTriggerElement(this.trigger);\r\n }\r\n\r\n this._rippleRenderer.rippleDisabled = this._globalOptions.disabled || this.disabled;\r\n this._rippleRenderer.rippleConfig = this.rippleConfig;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n // Set the trigger element to null to cleanup all listeners.\r\n this._rippleRenderer.setTriggerElement(null);\r\n }\r\n\r\n /** Launches a manual ripple at the specified position. */\r\n launch(pageX: number, pageY: number, config: CoRippleConfig = this.rippleConfig): CoRippleRef {\r\n return this._rippleRenderer.fadeInRipple(pageX, pageY, config);\r\n }\r\n\r\n /** Fades out all currently showing ripple elements. */\r\n fadeOutAll(): void {\r\n this._rippleRenderer.fadeOutAll();\r\n }\r\n\r\n /** Ripple configuration from the directive's input values. */\r\n get rippleConfig(): CoRippleConfig {\r\n return {\r\n centered: this.centered,\r\n speedFactor: this.speedFactor * (this._globalOptions.baseSpeedFactor || 1),\r\n radius: this.radius,\r\n color: this.color\r\n };\r\n }\r\n}","// NOTE: Copied and adapted to TwoDSelector from iOneJS on 9-may-2018.\r\nimport { Directive, ElementRef, OnDestroy, OnInit } from '@angular/core';\r\n\r\nimport { CoScrollDispatcherService } from './scroll-dispatcher.service';\r\nimport { fromEvent, Observable } from 'rxjs';\r\n\r\n/**\r\n * Sends an event when the directive's element is scrolled. Registers itself with the\r\n * ScrollDispatcher service to include itself as part of its collection of scrolling events that it\r\n * can be listened to through the service.\r\n */\r\n@Directive({\r\n selector: '[cdk-scrollable]'\r\n})\r\nexport class CoScrollableDirective implements OnInit, OnDestroy {\r\n constructor(private _elementRef: ElementRef, private _scroll: CoScrollDispatcherService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this._scroll.register(this);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._scroll.deregister(this);\r\n }\r\n\r\n /**\r\n * Returns observable that emits when a scroll event is fired on the host element.\r\n */\r\n elementScrolled(): Observable<any> {\r\n return fromEvent(this._elementRef.nativeElement, 'scroll');\r\n }\r\n\r\n getElementRef(): ElementRef {\r\n return this._elementRef;\r\n }\r\n}\r\n","// NOTE: Copied from iOneJS and adapted to CoreComponents on 9-may-2018.\r\n\r\nimport {NgModule} from \"@angular/core\";\r\n\r\nimport {CoViewportRulerService} from \"./viewport-ruler.service\";\r\nimport {CoRippleDirective} from \"./ripple.directive\";\r\nimport {CoScrollableDirective} from \"./scrollable.directive\";\r\nimport {CoScrollDispatcherService} from \"./scroll-dispatcher.service\";\r\n\r\n@NgModule({\r\n declarations: [\r\n CoRippleDirective,\r\n CoScrollableDirective\r\n ],\r\n providers: [\r\n CoScrollDispatcherService,\r\n CoViewportRulerService\r\n ],\r\n exports: [\r\n CoRippleDirective\r\n ]\r\n})\r\nexport class RippleModule {\r\n}","import {isNill} from \"../function/is-nill.function\";\r\n\r\n// @dynamic\r\nexport class EventUtils {\r\n public static get passiveSupported(): boolean {\r\n if (isNill(EventUtils._passiveSupported)) {\r\n EventUtils._CheckPassiveSupported();\r\n }\r\n return EventUtils._passiveSupported;\r\n }\r\n\r\n public static get passiveBubble(): boolean {\r\n if (isNill(EventUtils._passiveBubble)) {\r\n EventUtils._passiveBubble = EventUtils.passiveSupported ? {passive: true, capture: false} : false;\r\n }\r\n return EventUtils._passiveBubble;\r\n }\r\n\r\n public static get passiveCapture(): boolean {\r\n if (isNill(EventUtils._passiveCapture)) {\r\n EventUtils._passiveCapture = EventUtils.passiveSupported ? {passive: true, capture: true} : true;\r\n }\r\n return EventUtils._passiveCapture;\r\n }\r\n\r\n private static _passiveSupported: boolean = undefined;\r\n\r\n private static _passiveCapture: any = undefined;\r\n\r\n private static _passiveBubble: any = undefined;\r\n\r\n public static KillEvent(event: Event): void {\r\n if (event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n event.stopImmediatePropagation();\r\n }\r\n }\r\n\r\n public static StopEvent(event: Event): void {\r\n this.KillEvent(event);\r\n }\r\n\r\n public static GetMouseEventOrTouch(originalEvent: MouseEvent | TouchEvent): MouseEvent | Touch {\r\n return originalEvent instanceof MouseEvent ? originalEvent : originalEvent.touches[0];\r\n }\r\n\r\n private static _CheckPassiveSupported(): void {\r\n let passiveSupported: boolean = false;\r\n try {\r\n const options: any = Object.defineProperty({}, \"passive\", {\r\n get: function (): void {\r\n passiveSupported = true;\r\n }\r\n });\r\n window.addEventListener(\"test\", null, options);\r\n } catch (e) {\r\n }\r\n this._passiveSupported = passiveSupported;\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {SafeHtml} from \"@angular/platform-browser\";\r\nimport {EventUtils} from \"../../core/utils/event-utils\";\r\n\r\n@Component({\r\n selector: \"co-button\",\r\n template: `\r\n <co-icon *ngIf=\"!!iconData\" [iconData]=\"iconData\"></co-icon>\r\n <span *ngIf=\"!!label\" class=\"label\">{{ label }}</span>\r\n <div class=\"rippler\" md-ripple [mdRippleDisabled]=\"disabled\"></div>\r\n `,\r\n host: {\r\n tabindex: \"0\"\r\n },\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ButtonComponent implements OnDestroy {\r\n @Input()\r\n public label: string;\r\n\r\n @Input()\r\n public iconData: SafeHtml | undefined;\r\n\r\n @Input()\r\n public isToggleButton: boolean;\r\n\r\n @Input()\r\n @HostBinding(\"class.toggled\")\r\n public isToggled: boolean;\r\n\r\n @Input()\r\n @HostBinding(\"class.co-hidden\")\r\n public hidden: boolean = false;\r\n\r\n @Input()\r\n @HostBinding(\"class.disabled\")\r\n public disabled: boolean = false;\r\n\r\n @HostBinding(\"class.co-button\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n @Output()\r\n public readonly onClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @Output()\r\n public readonly clickedWhileDisabled: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @Output()\r\n public readonly isToggledChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n @HostBinding(\"class.has-icon\")\r\n public get hasIcon(): boolean {\r\n return !!this.iconData;\r\n }\r\n\r\n @HostListener(\"click\", [\"$event\"])\r\n public onHostClick(event: MouseEvent): void {\r\n if (this.disabled) {\r\n this.clickedWhileDisabled.emit(event);\r\n EventUtils.KillEvent(event);\r\n } else {\r\n this.onClick.emit(event);\r\n if (this.isToggleButton) {\r\n this.isToggled = !this.isToggled;\r\n this.isToggledChange.emit(this.isToggled);\r\n }\r\n }\r\n }\r\n\r\n constructor(private _elementRef: ElementRef) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._elementRef = undefined;\r\n }\r\n\r\n public focus(): void {\r\n this._elementRef.nativeElement.focus();\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\n\r\nimport {IconModule} from \"../icon/icon.module\";\r\nimport {RippleModule} from \"../../directives/ripple/ripple.module\";\r\nimport {ButtonComponent} from \"./button.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IconModule,\r\n RippleModule\r\n ],\r\n declarations: [ButtonComponent],\r\n exports: [ButtonComponent]\r\n})\r\nexport class ButtonModule {\r\n}","import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: \"co-image\",\r\n template: `\r\n <img *ngIf=\"!!source\" [src]=\"source\">\r\n `,\r\n styleUrls: [\r\n \"image.css\"\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ImageComponent {\r\n // Can be an URL or a base64 data string\r\n @Input()\r\n public source: string;\r\n\r\n constructor() {\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {ImageComponent} from \"./image.component\";\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [ImageComponent],\r\n exports: [ImageComponent]\r\n})\r\nexport class ImageModule {\r\n}","import {Directive, ElementRef, Input, NgZone, OnDestroy, OnInit} from \"@angular/core\";\r\n\r\nimport {EventUtils} from \"../../core/utils/event-utils\";\r\n\r\n@Directive({\r\n selector: '[stopClick]'\r\n})\r\nexport class StopClickDirective implements OnInit, OnDestroy {\r\n\r\n @Input()\r\n public stopClick: boolean;\r\n\r\n constructor(private _elementRef: ElementRef, private _ngZone: NgZone) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n this._elementRef.nativeElement.addEventListener('click', this._killEventHandler);\r\n this._elementRef.nativeElement.addEventListener('dblclick', this._killEventHandler);\r\n this._elementRef.nativeElement.addEventListener('mousedown', this._killEventHandler);\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._elementRef.nativeElement.removeEventListener('click', this._killEventHandler);\r\n this._elementRef.nativeElement.removeEventListener('dblclick', this._killEventHandler);\r\n this._elementRef.nativeElement.removeEventListener('mousedown', this._killEventHandler);\r\n }\r\n\r\n private _killEventHandler: EventListener = (event: MouseEvent): void => {\r\n if (this.stopClick) {\r\n EventUtils.KillEvent(event);\r\n }\r\n };\r\n}","import {NgModule} from \"@angular/core\";\r\n\r\nimport {StopClickDirective} from \"./stop-click.directive\";\r\n\r\n@NgModule({\r\n declarations: [\r\n StopClickDirective\r\n ],\r\n exports: [\r\n StopClickDirective\r\n ]\r\n})\r\nexport class StopClickModule {\r\n}","import {ChangeDetectionStrategy, Component, Input} from \"@angular/core\";\r\n\r\nimport {LevelIndicatorLevel} from \"./level-indicator-level.enum\";\r\n\r\n@Component({\r\n selector: \"co-level-indicator\",\r\n template: `\r\n <div [ngClass]=\"modelAsString\">\r\n <div class=\"square-1\"></div>\r\n <div class=\"square-2\"></div>\r\n <div class=\"square-3\"></div>\r\n </div>\r\n `,\r\n styleUrls: [\r\n \"level-indicator.scss\"\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LevelIndicatorComponent {\r\n @Input()\r\n set model(value: LevelIndicatorLevel) {\r\n this._model = value;\r\n this._modelAsString = \"\" + value;\r\n }\r\n\r\n get model(): LevelIndicatorLevel {\r\n return this._model;\r\n }\r\n\r\n get modelAsString(): string {\r\n return this._modelAsString;\r\n }\r\n\r\n private _model: LevelIndicatorLevel;\r\n\r\n // to prevent hard crashes on [ngClass] when this component was given a non-string model @Input\r\n private _modelAsString: string;\r\n\r\n constructor() {\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {LevelIndicatorComponent} from \"./level-indicator.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [LevelIndicatorComponent],\r\n exports: [LevelIndicatorComponent]\r\n})\r\nexport class LevelIndicatorModule {\r\n}","import {Pipe, PipeTransform} from \"@angular/core\";\r\nimport {NumberUtils} from \"../core/utils/number-utils\";\r\nimport {notNill} from \"../core/function/not-nill.function\";\r\n\r\n@Pipe({name: \"priceDisplay\"})\r\nexport class PriceDisplayPipe implements PipeTransform {\r\n transform(value: number | string): string {\r\n let priceStr: string = \"\";\r\n\r\n if (notNill(value) && value !== 0 && value !== \"\") {\r\n value = NumberUtils.ParseFloat(value, 2);\r\n priceStr = \"€ \" + NumberUtils.AddThousandsCommasTo(value);\r\n if (NumberUtils.GetDecimalPlaces(priceStr) === 0) {\r\n priceStr += \",-\";\r\n }\r\n }\r\n\r\n return priceStr;\r\n }\r\n}","import {NgModule} from \"@angular/core\";\r\n\r\nimport {PriceDisplayPipe} from \"./price-display.pipe\";\r\n\r\n@NgModule({\r\n declarations: [\r\n PriceDisplayPipe\r\n ],\r\n exports: [\r\n PriceDisplayPipe\r\n ]\r\n})\r\nexport class PriceDisplayPipeModule {\r\n}","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","/** AUTO GENERATED FILE. DO NOT CHANGE.. **/\n\nexport enum CoreComponentsIcon {\n AddToCartDrop = \"add_to_cart_drop\",\n ArrowDown = \"arrow_down\",\n ArrowLeft = \"arrow_left\",\n ArrowPointDown = \"arrow_point_down\",\n ArrowPointLeft = \"arrow_point_left\",\n ArrowPointRight = \"arrow_point_right\",\n ArrowUp = \"arrow_up\",\n Calendar = \"calendar\",\n CalendarEmpty = \"calendar_empty\",\n CalendarRoundOpen = \"calendar_round_open\",\n Camera = \"camera\",\n Cancel = \"cancel\",\n CancelRoundFilled = \"cancel_round_filled\",\n CancelRoundOpen = \"cancel_round_open\",\n Check = \"check\",\n CheckRound = \"check_round\",\n CheckSimple = \"check_simple\",\n ColumnOptions = \"column_options\",\n CrossSkinny = \"CrossSkinny\",\n DetailView = \"detail_view\",\n DeliveryTruck = \"delivery truck\",\n Documents = \"documents\",\n Download = \"download\",\n EditPencil = \"edit_pencil\",\n Email = \"email\",\n GearDouble = \"gear_double\",\n Groupby = \"groupby\",\n Information = \"information\",\n InformationRoundOpen = \"information_round_open\",\n Lock = \"lock\",\n MagicWand = \"magic_wand\",\n Magnifier = \"magnifier\",\n MagnifierPlus = \"MagnifierPlus\",\n MinusSimple = \"minus_simple\",\n Order = \"order\",\n Pin = \"pin\",\n PinRoundOpen = \"pin_round_open\",\n PlusSimple = \"plus_simple\",\n Positioning = \"positioning\",\n ResizeDown = \"resize_down\",\n ResizeUp = \"resize_up\",\n SaveDisk = \"save_disk\",\n SelectAllRound = \"select_all_round\",\n ShoppingCartNr = \"shopping_cart_nr\",\n SortAsc = \"sort_asc\",\n SortDesc = \"sort_desc\",\n Stock=\"stock\",\n ThickLines = \"thick_lines\",\n ThinLines = \"thin_lines\",\n ThreeD = \"three_d\",\n TrashBin = \"TrashBin\",\n TriangleUp = \"triangle_up\",\n Wrench = \"wrench\",\n}\n","import { Input } from '@angular/core';\r\nimport { StringUtils } from '../utils/string-utils';\r\n\r\n/**\r\n * Property decorator which enables template syntax like \"someBoolInput\" instead of \"[someBoolInput]='true'\". Makes use of the fact that\r\n * Angular assigns an empty string to the input property in the naked \"someBoolInput\" template case.\r\n */\r\nexport function InputBoolean(bindingPropertyName?: string): PropertyDecorator {\r\n const inputDecorator: PropertyDecorator = Input(bindingPropertyName);\r\n return (target: Object, key: string) => {\r\n inputDecorator(target, key);\r\n const descriptor: PropertyDescriptor = Object.getOwnPropertyDescriptor(target, key) || {};\r\n Object.defineProperty(target, key, {\r\n get: descriptor.get || function (): boolean {\r\n return this[\"__\" + key];\r\n },\r\n set: function(newValue: any): void {\r\n const val: boolean = InputBooleanDecorator.InputValueToBoolean(newValue);\r\n descriptor.set ? descriptor.set(val) : this[\"__\" + key] = val;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n };\r\n}\r\n\r\n// Utility function holder of the InputBooleanDecorator decorator.\r\nexport class InputBooleanDecorator {\r\n public static InputValueToBoolean(value: any): boolean {\r\n if (StringUtils.IsString(value) && !StringUtils.IsStringWithLength(value)) {\r\n return true;\r\n }\r\n return !!value;\r\n }\r\n}\r\n","import { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\r\nimport { IconCacheService } from '../icon/icon-cache.service';\r\nimport { CoreComponentsIcon } from '../../core/enum/core-components-icon.enum';\r\nimport { SafeHtml } from '@angular/platform-browser';\r\nimport { InputBoolean } from '../../core/decorator/input-boolean.decorator';\r\n\r\n@Component({\r\n selector: 'co-tile',\r\n template: `\r\n <div class=\"tile-wrapper\">\r\n <div class=\"tile-top\">\r\n <ng-content select=\"[tile-top-content]\"></ng-content>\r\n </div>\r\n <div class=\"image\" (click)=\"onImageClick.emit()\">\r\n <co-image *ngIf=\"image\" [source]=\"image\"></co-image>\r\n <div class=\"no-image-wrapper\" *ngIf=\"!image && !noImagePlaceholder\">\r\n <co-icon class=\"no-image\" [iconData]=\"imagePlaceHolder\"></co-icon>\r\n <span [textContent]=\"'Geen afbeelding'\"></span>\r\n </div>\r\n <ng-content select=\"[tile-over-image]\"></ng-content>\r\n </div>\r\n <div class=\"tile-bottom\">\r\n <ng-content select=\"[tile-bottom-content]\"></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"tile-extra-bottom\">\r\n <div class=\"main\">\r\n <ng-content select=\"[tile-extra-bottom-content]\"></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"tile-extended-shadow-wrapper\" *ngIf=\"mouseOverExtended\">\r\n <div class=\"shodow-masque\"></div>\r\n <div class=\"extended\">\r\n <ng-content select=\"[tile-extended-content]\"></ng-content>\r\n </div>\r\n </div>\r\n `,\r\n styleUrls: [\r\n \"./tile.component.scss\"\r\n ]\r\n})\r\nexport class TileComponent {\r\n\r\n public readonly icon: typeof CoreComponentsIcon = CoreComponentsIcon;\r\n\r\n @Input()\r\n public image: string;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public mouseOverExtended: boolean = false;\r\n\r\n @HostBinding('class.small')\r\n @Input()\r\n @InputBoolean()\r\n public small: boolean = false;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public noImagePlaceholder: boolean = false;\r\n\r\n @Output()\r\n public onImageClick: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n public imagePlaceHolder: null | SafeHtml;\r\n\r\n constructor (private _iconCache: IconCacheService) {\r\n this.imagePlaceHolder = this._iconCache.getIcon(this.icon.Camera);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TileComponent } from './tile.component';\r\nimport { IconModule } from '../icon/icon.module';\r\nimport { IconCacheService } from '../icon/icon-cache.service';\r\nimport { ImageModule } from '../image/image.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IconModule,\r\n ImageModule\r\n ],\r\n declarations: [TileComponent],\r\n providers: [\r\n IconCacheService\r\n ],\r\n exports: [TileComponent]\r\n})\r\nexport class TileModule {\r\n}\r\n","import {ChangeDetectionStrategy, Component, EventEmitter, HostBinding, HostListener, Input, Output} from \"@angular/core\";\r\n\r\nimport {IconCacheService} from \"../icon/icon-cache.service\";\r\nimport {CoreComponentsIcon} from \"../../core/enum/core-components-icon.enum\";\r\nimport {LevelIndicatorLevel} from \"../level-indicator/level-indicator-level.enum\";\r\n\r\n@Component({\r\n selector: \"co-article-tile\",\r\n template: `\r\n <co-tile [image]=\"imageData\" [small]=\"isSmallModus\">\r\n <ng-container tile-top-content>\r\n <ng-content select=\"[tile-top-content]\"></ng-content>\r\n </ng-container>\r\n <ng-container tile-over-image>\r\n <ng-content select=\"[over-image]\"></ng-content>\r\n </ng-container>\r\n <ng-container tile-bottom-content>\r\n <div class=\"bottom-content-wrapper\">\r\n <div class=\"left-buttons\">\r\n <co-button class=\"card-button square white\" *ngIf=\"hasConfigureButton\" [iconData]=\"icons.getIcon(Icons.MagicWand)\"\r\n [stopClick]=\"true\" [class.mini]=\"isSmallModus\"\r\n (click)=\"configureButtonClick.emit($event)\"></co-button>\r\n <co-button class=\"card-button square white\" *ngIf=\"hasThreeDButton\" [iconData]=\"icons.getIcon(Icons.ThreeD)\"\r\n [stopClick]=\"true\" [class.mini]=\"isSmallModus\"\r\n (click)=\"threeDButtonClick.emit($event)\"></co-button>\r\n </div>\r\n <co-level-indicator *ngIf=\"!!level\" [model]=\"level\" [class.small]=\"isSmallModus\"></co-level-indicator>\r\n <co-button class=\"card-button\" *ngIf=\"hasCartButton\" [iconData]=\"icons.getIcon(Icons.AddToCartDrop)\"\r\n [stopClick]=\"true\" [class.mini]=\"isSmallModus\"\r\n (click)=\"cartButtonClick.emit($event)\"></co-button>\r\n </div>\r\n </ng-container>\r\n <ng-container tile-extra-bottom-content>\r\n <span *ngIf=\"!!description\" class=\"description\" [innerText]=\"description\"></span>\r\n <span *ngIf=\"!!price\" class=\"price\" [innerText]=\"price | priceDisplay\"></span>\r\n <ng-content select=\"[card-extra-content]\"></ng-content>\r\n </ng-container>\r\n </co-tile>\r\n `,\r\n styleUrls: [\r\n \"article-tile.component.scss\"\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ArticleTileComponent {\r\n @Input()\r\n public imageData: string;\r\n\r\n @Input()\r\n public description: string;\r\n\r\n @Input()\r\n public price: number | string;\r\n\r\n @Input()\r\n public level: LevelIndicatorLevel;\r\n\r\n @Input()\r\n public isSelected: boolean = false;\r\n\r\n @Input() @HostBinding(\"class.small-modus\")\r\n public isSmallModus: boolean = false;\r\n\r\n @Input()\r\n public hasConfigureButton: boolean = false;\r\n\r\n @Input()\r\n public hasThreeDButton: boolean = false;\r\n\r\n @Input()\r\n public hasCartButton: boolean = false;\r\n\r\n // does not emit when you click one of the predefined buttons, but emits on a click on any of our other content\r\n @Output()\r\n public readonly contentClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @Output()\r\n public readonly configureButtonClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @Output()\r\n public readonly threeDButtonClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @Output()\r\n public readonly cartButtonClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n public readonly Icons: any = CoreComponentsIcon;\r\n\r\n constructor(public icons: IconCacheService) {\r\n }\r\n\r\n @HostListener(\"click\", [\"$event\"])\r\n public onHostClick(event: MouseEvent): void {\r\n this.contentClick.emit(event);\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {HttpClientModule} from \"@angular/common/http\";\r\n\r\nimport {IconModule} from \"../icon/icon.module\";\r\nimport {ButtonModule} from \"../button/button.module\";\r\nimport {ImageModule} from \"../image/image.module\";\r\nimport {StopClickModule} from \"../../directives/stopclick/stop-click.module\";\r\nimport {LevelIndicatorModule} from \"../level-indicator/level-indicator.module\";\r\nimport {PriceDisplayPipeModule} from \"../../pipes/price-display-pipe.module\";\r\nimport { TileModule } from '../tile/tile.module';\r\nimport { ArticleTileComponent } from './article-tile.component';\r\nimport { IconCacheService } from '../icon/icon-cache.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n IconModule,\r\n ButtonModule,\r\n ImageModule,\r\n StopClickModule,\r\n LevelIndicatorModule,\r\n PriceDisplayPipeModule,\r\n TileModule\r\n ],\r\n declarations: [ArticleTileComponent],\r\n providers: [\r\n IconCacheService\r\n ],\r\n exports: [ArticleTileComponent]\r\n})\r\nexport class ArticleTileModule {\r\n}\r\n","import {Component, EventEmitter, HostBinding, Input, OnInit, Output, ViewEncapsulation} from \"@angular/core\";\nimport {ItemModel} from \"@syncfusion/ej2-angular-splitbuttons\";\nimport {SplitButtonIconPosition} from \"@syncfusion/ej2-splitbuttons/src/common/common\";\n\n@Component({\n selector: \"co-button-drop-down\",\n template: `\n <button ejs-dropdownbutton\n [content]=\"content\"\n [items]=\"items\"\n [iconCss]=\"iconCss\"\n [iconPosition]=\"iconPosition\"\n [cssClass]=\"cssClass\"\n [ngClass]=\"{\n '.e-dropdown-popup': isTransparent,\n '.e-btn.e-active, .e-btn:hover': isTransparent\n }\"\n (select)=\"select.emit($event)\"></button>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class ButtonDropDownComponent implements OnInit {\n\n @Input()\n public content: string;\n\n @Input()\n public items: ItemModel[];\n\n @Input()\n public iconCss: string;\n\n @Input()\n public iconPosition: SplitButtonIconPosition = \"Left\";\n\n @Input()\n public cssClass: string;\n\n @Input()\n public transparent: boolean = false;\n\n @Output()\n public readonly select: EventEmitter<any> = new EventEmitter<any>();\n\n @HostBinding(\"class.co-button-drop-down\")\n public showClass() {\n return true;\n }\n\n public get isTransparent(): boolean {\n return this.transparent;\n }\n\n constructor() {\n }\n\n ngOnInit(): void {\n }\n}\n","import {NgModule} from \"@angular/core\";\nimport {CommonModule} from \"@angular/common\";\nimport {ButtonDropDownComponent} from \"./button-drop-down.component\";\nimport {DropDownButtonModule} from \"@syncfusion/ej2-angular-splitbuttons\";\n\n@NgModule({\n declarations: [\n ButtonDropDownComponent],\n imports: [\n CommonModule,\n DropDownButtonModule\n ],\n exports: [\n ButtonDropDownComponent\n ]\n})\nexport class ButtonDropDownModule { }\n","import {Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation} from \"@angular/core\";\nimport {CoreComponentsIcon} from \"../../core/enum/core-components-icon.enum\";\nimport {animate, state, style, transition, trigger} from \"@angular/animations\";\n\n@Component({\n selector: 'co-dialog',\n template: `\n <div class=\"co-dialog-overlay\" (click)=\"handleOverlayClick($event)\" [@showHideOverlay]=\"animation\"></div>\n <div class=\"co-dialog-wrapper\" [@showHideDialog]=\"animation\">\n <div class=\"dialog-header\">\n <ng-content select=\"[header]\"></ng-content>\n <div class=\"dialog-close-button\" *ngIf=\"showCloseIcon\" (click)=\"closeClick.emit($event)\">\n <co-icon [icon]=\"icons.Cancel\"></co-icon>\n </div>\n </div>\n <div class=\"dialog-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"dialog-footer\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n </div>\n `,\n animations: [\n trigger('showHideOverlay', [\n state('*', style({opacity: 1})),\n state('void', style({opacity: 0})),\n transition('void => *', animate(200)),\n transition('* => void', animate('200ms 200ms'))\n ]),\n trigger('showHideDialog', [\n state('*', style({opacity: 1})),\n state('void', style({opacity: 0})),\n transition('void => *', animate('200ms 200ms')),\n transition('* => void', animate(200))\n ])\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class CoDialogComponent {\n public readonly icons: typeof CoreComponentsIcon = CoreComponentsIcon;\n\n @Input()\n public showCloseIcon: boolean = true;\n\n @Input()\n public modal: boolean = false;\n\n @Input()\n public animation: boolean = true;\n\n @Output()\n public readonly closeClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n @Output()\n public readonly overlayClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n @HostBinding(\"class.co-dialog\")\n public showClass(): boolean {\n return true;\n }\n\n public handleOverlayClick(event: MouseEvent): void {\n if (!this.modal) {\n this.overlayClick.next(event);\n }\n }\n}\n","import {NgModule} from \"@angular/core\";\r\nimport {CoDialogComponent} from \"./co-dialog.component\";\r\nimport {IconModule} from \"../icon/icon.module\";\r\nimport {CommonModule} from \"@angular/common\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IconModule\r\n ],\r\n declarations: [CoDialogComponent],\r\n exports: [CoDialogComponent]\r\n})\r\nexport class CoDialogModule {\r\n}\r\n","import {Component, EventEmitter, Input, Output, ViewChild} from \"@angular/core\";\nimport {DialogComponent} from \"@syncfusion/ej2-angular-popups\";\nimport {EmitType} from \"@syncfusion/ej2-base\";\n\n@Component({\n selector: 'co-dialog-prompt',\n template: `\n <div #coDialogPromptRootContainer class='co-dialog-prompt-root-container'></div>\n <ejs-dialog #coDialogPrompt\n [buttons]=\"buttons\"\n [header]=\"header\"\n [content]=\"content\"\n [showCloseIcon]=\"showCloseIcon\"\n [target]=\"target\"\n [visible]=\"visible\"\n [width]=\"width\"\n (close)=\"onCloseClick()\"\n >\n </ejs-dialog>\n `,\n styleUrls: ['./co-dialog-prompt.component.scss']\n})\nexport class CoDialogPromptComponent {\n @ViewChild('coDialogPrompt')\n public coDialogPrompt: DialogComponent;\n\n @Input()\n public header: string = \"header\";\n\n @Input()\n public content: string = \"content\";\n\n @Input()\n public visible: boolean = false;\n\n @Input()\n public width: string = \"50%\";\n\n @Input()\n public showCloseIcon: boolean = true;\n\n @Output()\n public readonly closeClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n public target: string = '.co-dialog-prompt-root-container';\n public buttons: Object[] = [\n { click: this.buttonClick.bind(this), buttonModel: { content: 'Ja', isPrimary: 'true' } },\n { click: this.buttonClick.bind(this), buttonModel: { content: 'Nee' } }\n ];\n\n constructor() {}\n\n public open(): void {\n this.coDialogPrompt.show();\n }\n\n public close(): void {\n this.coDialogPrompt.hide();\n }\n\n public buttonClick(): void {\n this.close();\n }\n\n public onCloseClick: EmitType<object> = () => {\n this.close();\n this.closeClick.emit();\n }\n\n}\n","import {NgModule} from \"@angular/core\";\r\nimport {CoDialogPromptComponent} from \"./co-dialog-prompt.component\";\r\nimport {DialogModule} from \"@syncfusion/ej2-angular-popups\";\r\n\r\n@NgModule({\r\n imports: [\r\n DialogModule\r\n ],\r\n declarations: [CoDialogPromptComponent],\r\n providers: [\r\n ],\r\n exports: [CoDialogPromptComponent]\r\n})\r\nexport class CoDialogPromptModule {\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter, HostBinding,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {\r\n CardClickEventArgs,\r\n CardSettingsModel, DialogEventArgs, DragEventArgs,\r\n KanbanComponent,\r\n SwimlaneSettingsModel\r\n} from \"@syncfusion/ej2-angular-kanban\";\r\nimport {InputBoolean} from \"../../core/decorator/input-boolean.decorator\";\r\n\r\n@Component({\r\n selector: 'co-kanban',\r\n template: `\r\n <ejs-kanban\r\n #kanban\r\n id=\"kanban\"\r\n [allowDragAndDrop]=\"allowDragAndDrop\"\r\n [allowKeyboard]=\"allowKeyboard\"\r\n [cardSettings]=\"cardSettings\"\r\n [enablePersistence]=\"enablePersistence\"\r\n [enableTooltip]=\"enableTooltip\"\r\n [keyField]=\"keyField\"\r\n [showEmptyColumn]=\"showEmptyColumn\"\r\n [swimlaneSettings]=\"swimlaneSettings\"\r\n [dataSource]=\"data\"\r\n (cardClick)=\"handleCardClick($event)\"\r\n (cardDoubleClick)=\"handleCardDoubleClick($event)\"\r\n (dialogOpen)=\"dialogOpen($event)\"\r\n (dragStart)=\"handleDragStart($event)\"\r\n (dragStop)=\"handleDragStop($event)\"\r\n >\r\n </ejs-kanban>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CoKanbanComponent implements OnInit, AfterViewInit {\r\n @ViewChild('kanban', {static: false})\r\n public kanban: KanbanComponent;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public allowDragAndDrop: boolean = true;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public allowKeyboard: boolean = true;\r\n\r\n @Input()\r\n public cardSettings: CardSettingsModel;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public enablePersistence: boolean = false;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public enableTooltip: boolean = false;\r\n\r\n @Input()\r\n public keyField: string = \"\";\r\n\r\n @Input()\r\n @InputBoolean()\r\n public showEmptyColumn: boolean = false;\r\n\r\n @Input()\r\n public swimlaneSettings: SwimlaneSettingsModel;\r\n\r\n @Input()\r\n public columns: {}[];\r\n\r\n @Input()\r\n public data: any[];\r\n\r\n @Output()\r\n public cardClickEvent: EventEmitter<CardClickEventArgs> = new EventEmitter<CardClickEventArgs>();\r\n\r\n @Output()\r\n public cardDoubleClickEvent: EventEmitter<CardClickEventArgs> = new EventEmitter<CardClickEventArgs>();\r\n\r\n @Output()\r\n public dragStartEvent: EventEmitter<DragEventArgs> = new EventEmitter<DragEventArgs>();\r\n\r\n @Output()\r\n public dragStopEvent: EventEmitter<DragEventArgs> = new EventEmitter<DragEventArgs>();\r\n\r\n @HostBinding(\"class.co-kanban\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.columns) {\r\n this.kanban.columns = this.columns;\r\n }\r\n }\r\n\r\n public dialogOpen(args: DialogEventArgs): void {\r\n args.cancel = true;\r\n }\r\n\r\n public handleCardClick(args: CardClickEventArgs): void {\r\n this.cardClickEvent.next(args);\r\n }\r\n\r\n public handleCardDoubleClick(args: CardClickEventArgs): void {\r\n this.cardDoubleClickEvent.next(args);\r\n }\r\n\r\n public handleDragStart(args: DragEventArgs): void {\r\n this.dragStartEvent.next(args);\r\n }\r\n\r\n public handleDragStop(args: DragEventArgs): void {\r\n this.dragStopEvent.next(args);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { KanbanModule } from '@syncfusion/ej2-angular-kanban';\r\nimport {CoKanbanComponent} from \"./co-kanban.component\";\r\n\r\n@NgModule({\r\n declarations: [\r\n CoKanbanComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n KanbanModule\r\n ],\r\n exports: [\r\n CoKanbanComponent\r\n ]\r\n})\r\nexport class CoKanbanModule { }\r\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n ActionEventArgs,\n AgendaService,\n DayService,\n EventSettingsModel, MonthAgendaService,\n MonthService, ScheduleComponent, TimelineMonthService, TimelineViewsService,\n WeekService,\n WorkWeekService\n} from \"@syncfusion/ej2-angular-schedule\";\nimport {ScheduleView} from \"../../core/enum/schedule-view.enum\";\nimport {COMPONENT_INTERFACE_NAME} from \"../base/component-interface-name\";\n\n@Component({\n selector: 'co-schedule',\n template: `\n <ejs-schedule\n #ejsSchedule\n [selectedDate]=\"selectedDate\"\n [currentView]=\"currentView\"\n [eventSettings]=\"eventSettings\"\n [enablePersistence]=\"enablePersistence\"\n (actionBegin)=\"onActionBegin($event)\"\n (actionComplete)=\"onActionComplete($event)\"\n (actionFailure)=\"onActionFailure($event)\"\n ><ng-content></ng-content>\n </ejs-schedule>\n `,\n styleUrls: [\n './co-schedule.component.scss'\n ],\n providers: [\n DayService,\n WeekService,\n WorkWeekService,\n MonthService,\n AgendaService,\n MonthAgendaService,\n TimelineViewsService,\n TimelineMonthService\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CoScheduleComponent implements OnInit {\n @ViewChild('ejsSchedule', { static: true })\n public scheduleObj: ScheduleComponent;\n\n @Input()\n public selectedDate: Date;\n\n @Input()\n public currentView: ScheduleView.Month;\n\n @Input()\n public eventSettings: EventSettingsModel;\n\n @Input()\n public enablePersistence: boolean = false;\n\n @Output()\n public readonly actionBegin: EventEmitter<ActionEventArgs> = new EventEmitter<ActionEventArgs>();\n\n @Output()\n public readonly actionComplete: EventEmitter<ActionEventArgs> = new EventEmitter<ActionEventArgs>();\n\n @Output()\n public readonly actionFailure: EventEmitter<ActionEventArgs> = new EventEmitter<ActionEventArgs>();\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n public onActionBegin(args: ActionEventArgs): void {\n this.actionBegin.emit(args);\n }\n\n public onActionComplete(args: ActionEventArgs): void {\n this.actionComplete.emit(args);\n }\n\n public onActionFailure(args: ActionEventArgs): void {\n this.actionFailure.emit(args);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {CoScheduleComponent} from \"./co-schedule.component\";\nimport {ScheduleModule} from \"@syncfusion/ej2-angular-schedule\";\n\n\n@NgModule({\n declarations: [\n CoScheduleComponent\n ],\n imports: [\n CommonModule,\n ScheduleModule\n ],\n exports: [\n CoScheduleComponent\n ]\n})\nexport class CoScheduleModule { }\n","import {Component, Input, ViewChild} from '@angular/core';\nimport {SidebarComponent} from \"@syncfusion/ej2-angular-navigations\";\n\n@Component({\n selector: 'co-sidebar',\n template: `\n <ejs-sidebar #sidebarInstance \n closeOnDocumentClick=\"true\"\n type=\"Over\"\n [position]=\"position\"\n [isOpen]=\"isOpen\"\n >\n <ng-content></ng-content>\n </ejs-sidebar>\n `,\n styleUrls: ['./co-sidebar.component.scss']\n})\nexport class CoSidebarComponent {\n @ViewChild('sidebarInstance')\n public sidebarInstance: SidebarComponent;\n\n @Input()\n public position: string = \"Right\";\n\n @Input()\n public isOpen: boolean = false;\n\n constructor() { }\n\n public toggle(): void {\n this.sidebarInstance.toggle();\n }\n\n public hide(): void {\n this.sidebarInstance.hide();\n }\n\n public show(): void {\n this.sidebarInstance.show();\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport {SidebarModule} from \"@syncfusion/ej2-angular-navigations\";\nimport {CoSidebarComponent} from \"./co-sidebar.component\";\n\n@NgModule({\n declarations: [CoSidebarComponent],\n imports: [\n SidebarModule\n ],\n exports: [CoSidebarComponent]\n\n})\nexport class CoSidebarModule { }\n","import {\n ChangeDetectionStrategy,\n Component, EventEmitter,\n forwardRef,\n HostBinding, HostListener,\n Input,\n OnInit, Output,\n ViewEncapsulation\n} from '@angular/core';\nimport {COMPONENT_INTERFACE_NAME} from \"../base/component-interface-name\";\n\n@Component({\n selector: 'co-toggle',\n template: `\n <ejs-switch \n [checked]=\"checked\"\n [disabled]=\"readonly\"\n ></ejs-switch>\n `,\n styleUrls: ['./co-toggle.component.scss']\n})\nexport class CoToggleComponent implements OnInit {\n @Input()\n public checked: boolean;\n\n @Input()\n public readonly: boolean = false;\n\n @Output()\n public readonly activeChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n constructor() {\n }\n\n ngOnInit(): void {\n }\n\n @HostListener(\"click\")\n public onHostClick(): void {\n if (!this.readonly) {\n this.checked = !this.checked;\n this.activeChange.emit(this.checked);\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {CoToggleComponent} from \"./co-toggle.component\";\nimport {SwitchModule} from \"@syncfusion/ej2-angular-buttons\";\n\n@NgModule({\n declarations: [\n CoToggleComponent\n ],\n imports: [\n CommonModule,\n SwitchModule\n ],\n exports: [\n CoToggleComponent\n ]\n})\nexport class CoToggleModule { }\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {SafeHtml} from \"@angular/platform-browser\";\r\nimport {animate, state, style, transition, trigger} from \"@angular/animations\";\r\n\r\n@Component({\r\n selector: \"co-collapsible\",\r\n template: `\r\n <div class=\"collapsible-header\" [class.end]=\"expandButtonLast\" (click)=\"changeExpanded()\">\r\n <div class=\"expand-icon-wrapper\" [class.expanded]=\"expanded\" *ngIf=\"!expandButtonLast\">\r\n <co-icon class=\"expand-icon\" [iconData]=\"iconData\"></co-icon>\r\n </div>\r\n <div class=\"collapsible-title\" [textContent]=\"headerTitle\"></div>\r\n <div class=\"expand-icon-wrapper\" [class.expanded]=\"expanded\" *ngIf=\"expandButtonLast\">\r\n <co-icon class=\"expand-icon\" [iconData]=\"iconData\"></co-icon>\r\n </div>\r\n </div>\r\n <div class=\"collapsible-content\" *ngIf=\"expanded\" @showHideContent>\r\n <ng-content></ng-content>\r\n </div>\r\n `,\r\n animations: [\r\n trigger('showHideContent', [\r\n state('*', style({height: '*'})),\r\n state('void', style({height: 0})),\r\n transition('void <=> *', animate(200))\r\n ]),\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CollapsibleComponent implements OnDestroy {\r\n\r\n @Input()\r\n public headerTitle: string;\r\n\r\n @Input()\r\n public iconData: SafeHtml | undefined;\r\n\r\n @Input()\r\n public expandButtonLast: boolean = false;\r\n\r\n @Input()\r\n public expanded: boolean = false;\r\n\r\n @Output()\r\n public expandedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n @HostBinding(\"class.co-collapsible\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n @HostListener(\"click\", [\"$event\"])\r\n public onHostClick(event: MouseEvent): void {\r\n\r\n }\r\n\r\n constructor(private _elementRef: ElementRef) {}\r\n\r\n public ngOnDestroy(): void {\r\n this._elementRef = undefined;\r\n }\r\n\r\n public focus(): void {\r\n this._elementRef.nativeElement.focus();\r\n }\r\n\r\n public changeExpanded(): void {\r\n this.expanded = !this.expanded;\r\n this.expandedChange.next(this.expanded);\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\n\r\nimport {IconModule} from \"../icon/icon.module\";\r\nimport {CollapsibleComponent} from \"./collapsible.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IconModule\r\n ],\r\n declarations: [CollapsibleComponent],\r\n exports: [CollapsibleComponent]\r\n})\r\nexport class CollapsibleModule {\r\n}\r\n","import {Injectable, OnDestroy} from \"@angular/core\";\r\nimport {Subject} from \"rxjs\";\r\nimport {Subscription} from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class FormInputUserModelChangeListenerService implements OnDestroy {\r\n // Signal from input-field to change-listener user. Emits (or: should be emitted) each time the end-user has changed the state of a form input's model. Emits model as value.\r\n public readonly userModelChange: Subject<any> = new Subject<any>();\r\n\r\n // Signal from user of this change-listener to all its child input-fields. Resets their user touched marks.\r\n public readonly clearAllMarkedAsUserTouched: Subject<void> = new Subject<void>();\r\n\r\n public hasUserModelChanges: boolean = false;\r\n\r\n private _subs: Subscription[] = [];\r\n\r\n constructor() {\r\n this._subs.push(\r\n this.userModelChange.subscribe(() => {\r\n this.hasUserModelChanges = true;\r\n }),\r\n this.clearAllMarkedAsUserTouched.subscribe(() => {\r\n this.hasUserModelChanges = false;\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subs.forEach(sub => sub.unsubscribe());\r\n }\r\n}\r\n","import {Injectable, NgZone} from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class NgZoneWrapperService {\r\n constructor(private _ngZone: NgZone) {\r\n }\r\n\r\n public setTimeoutOutsideAngular(fn: Function, millis: number = 0): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n setTimeout(() => {\r\n fn();\r\n }, millis);\r\n });\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { FormInputUserModelChangeListenerService } from '../../core/service/form-input-user-change-listener.service';\r\nimport { NgZoneWrapperService } from '../../core/service/ng-zone-wrapper.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule\r\n ],\r\n declarations: [\r\n\r\n ],\r\n exports: [],\r\n providers: [\r\n FormInputUserModelChangeListenerService,\r\n NgZoneWrapperService\r\n ]\r\n})\r\nexport class BaseModule {\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { ConfigurationAdapterComponent } from './configuration-adapter-component.interface';\r\n\r\n// Enables \"DI for interfaces\" (see ConfigNameDirective injected .hostComponent).\r\nexport const COMPONENT_INTERFACE_NAME: InjectionToken<ConfigurationAdapterComponent> =\r\n new InjectionToken<ConfigurationAdapterComponent>(\"ConfigurationAdapterComponent\");\r\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\r\n\r\nexport function requiredValidator(control: AbstractControl): ValidationErrors | null {\r\n\r\n const isValid: boolean = !(control.value === null || control.value === undefined || control.value === \"\");\r\n\r\n return isValid ? null : {'required': 'MESSAGE_FIELD_REQUIRED'};\r\n\r\n}\r\n","import { FormControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\nimport { NumberUtils } from '../utils/number-utils';\r\n\r\nexport function precisionScaleValidator(precision: number, scale: number): ValidatorFn {\r\n return function (control: FormControl): ValidationErrors | null {\r\n let isValid: boolean = true;\r\n\r\n if (control) {\r\n isValid = NumberUtils.CheckPrecisionAndScale(control.value, precision, scale).isOk;\r\n }\r\n\r\n return isValid ? null : {'precision-scale': \"MESSAGE_FIELD_PRECISION_OVERRIDDEN||\" + precision};\r\n };\r\n}\r\n","import { FormControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\n\r\nexport function maxStringLengthValidator(length: number): ValidatorFn {\r\n return function (control: FormControl): ValidationErrors | null {\r\n let isValid: boolean = true;\r\n if (control.value && typeof control.value === 'string') {\r\n isValid = control.value.length <= length;\r\n }\r\n return isValid ? null : {\"max-length\": {message: \"MESSAGE_FIELD_TOO_LONG\", placeholder: \"\" + length}};\r\n };\r\n}\r\n","import {Component, HostBinding, Input, ViewEncapsulation} from \"@angular/core\";\r\nimport {CoreComponentsIcon} from \"../../core/enum/core-components-icon.enum\";\r\nimport {IconCacheService} from \"../icon/icon-cache.service\";\r\n\r\n@Component({\r\n selector: \"co-validation-error\",\r\n template: `\r\n <div class=\"validation-error-content\">\r\n <co-icon [iconData]=\"icons.getIcon(Icons.InformationRoundOpen)\"></co-icon>\r\n <div class=\"validation-error-message\" [textContent]=\"error\"></div>\r\n </div>\r\n `,\r\n animations: [\r\n\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class ValidationErrorComponent {\r\n public readonly Icons: any = CoreComponentsIcon;\r\n\r\n @Input()\r\n public error: string;\r\n\r\n @HostBinding('style.top.px')\r\n @Input()\r\n public top: number;\r\n\r\n @HostBinding('style.left.px')\r\n @Input()\r\n public left: number;\r\n\r\n @HostBinding('class.co-validation-error')\r\n public showClass(): boolean {\r\n return true;\r\n }\r\n\r\n constructor(public icons: IconCacheService) {\r\n }\r\n\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n ComponentFactory,\r\n ComponentFactoryResolver,\r\n ComponentRef, ContentChild,\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener,\r\n Injectable,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n Output,\r\n ViewChild,\r\n ViewContainerRef\r\n} from \"@angular/core\";\r\nimport {AsyncValidatorFn, FormControl, NgModel, ValidatorFn} from \"@angular/forms\";\r\nimport {ConfigurationAdapterComponent} from \"./configuration-adapter-component.interface\";\r\nimport {isNill} from \"../../core/function/is-nill.function\";\r\nimport {notNill} from \"../../core/function/not-nill.function\";\r\nimport {InputBoolean, InputBooleanDecorator} from \"../../core/decorator/input-boolean.decorator\";\r\nimport {requiredValidator} from \"../../core/validator/required.validator\";\r\nimport {precisionScaleValidator} from \"../../core/validator/precision-scale.validator\";\r\nimport {maxStringLengthValidator} from \"../../core/validator/max-string-length.validator\";\r\nimport {StringUtils} from \"../../core/utils/string-utils\";\r\nimport {Subscription} from \"rxjs\";\r\nimport {FormInputUserModelChangeListenerService} from \"../../core/service/form-input-user-change-listener.service\";\r\nimport {NumberUtils} from \"../../core/utils/number-utils\";\r\nimport {NgZoneWrapperService} from \"../../core/service/ng-zone-wrapper.service\";\r\nimport {CoreComponentsIcon} from \"../../core/enum/core-components-icon.enum\";\r\nimport {FormComponent} from \"../form/form.component\";\r\nimport {ValidationErrorComponent} from \"../validation-error/validation-error.component\";\r\n\r\n/**\r\n * Abstract base class for all concrete form input components that contain a native <input> element. Provides common data and functionality, such as\r\n * adding self as a control to the parent form.\r\n */\r\n@Directive()\r\n@Injectable()\r\nexport abstract class BaseInputComponent<T> implements OnInit, OnDestroy, AfterViewInit, ConfigurationAdapterComponent {\r\n @ViewChild(\"validationError\", {read: ViewContainerRef})\r\n public validationErrorContainer: ViewContainerRef;\r\n\r\n @ViewChild(NgModel, {static: true})\r\n public _ngModel: NgModel;\r\n\r\n public get ngModel(): NgModel {\r\n if (this._myFormInputInstance) {\r\n return this._myFormInputInstance.ngModel;\r\n } else {\r\n return this._ngModel;\r\n }\r\n }\r\n\r\n public static BaseFormInputComponentIndex: number = 0;\r\n public static HiddenClass: string = \"hidden\";\r\n\r\n @Input()\r\n public showSaveCancel: boolean = false;\r\n\r\n @Input()\r\n public set model(value: T) {\r\n if (!this._initialModelSet) {\r\n this._initialModel = this._model;\r\n this._initialModelSet = true;\r\n }\r\n this._model = value;\r\n this.canSaveOrCancel = this._model !== this._initialModel;\r\n this._clearErrorComponent();\r\n }\r\n\r\n public get model(): T {\r\n return this._model;\r\n }\r\n\r\n @Input()\r\n public label: string;\r\n\r\n @Input() @InputBoolean()\r\n public noValidation: boolean = false;\r\n\r\n @Input() @InputBoolean()\r\n public initFocus: boolean;\r\n\r\n @Input() @InputBoolean()\r\n public noClickFocus: boolean;\r\n\r\n // used to link field to business object for deep-validation\r\n @Input()\r\n public businessObjectId: any;\r\n\r\n // @Input()\r\n // public errorMessage: ValidationMessage;\r\n\r\n public name: string;\r\n\r\n @Input()\r\n public set disabled(disabled: boolean) {\r\n if (disabled === this._disabled) {\r\n return;\r\n }\r\n this._disabled = InputBooleanDecorator.InputValueToBoolean(disabled);\r\n this._updateControlValidatorsAndOwnFlags();\r\n }\r\n\r\n public get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n\r\n @Input()\r\n public set maxLength(maxLength: number) {\r\n this.setMaxLength(maxLength);\r\n }\r\n\r\n public get maxLength(): number {\r\n return notNill(this.forcedMaxLength) ? this.forcedMaxLength : this._maxLength;\r\n }\r\n\r\n @Input()\r\n public forcedMaxLength: number;\r\n\r\n @Input()\r\n public set readonly(readonly: boolean) {\r\n if (this._forceReadonly !== undefined || readonly === this._readonly) {\r\n return;\r\n }\r\n this._readonly = InputBooleanDecorator.InputValueToBoolean(readonly);\r\n this._updateControlValidatorsAndOwnFlags();\r\n if (this._hasOnPushCdStrategy) {\r\n this.detectChanges();\r\n }\r\n }\r\n\r\n public get readonly(): boolean {\r\n return this.forceReadonly || this._readonly;\r\n }\r\n\r\n @Input()\r\n public set forceReadonly(forceReadonly: boolean) {\r\n if (forceReadonly === this._forceReadonly) {\r\n return;\r\n }\r\n this._forceReadonly = InputBooleanDecorator.InputValueToBoolean(forceReadonly);\r\n this._updateControlValidatorsAndOwnFlags();\r\n }\r\n\r\n public get forceReadonly(): boolean {\r\n return this._forceReadonly;\r\n }\r\n\r\n @Input()\r\n public set required(required: boolean) {\r\n if (required === this._required) {\r\n return;\r\n }\r\n this._required = InputBooleanDecorator.InputValueToBoolean(required);\r\n this._updateControlValidatorsAndOwnFlags();\r\n }\r\n\r\n public get required(): boolean {\r\n return this.forceRequired || this._required;\r\n }\r\n\r\n @Input() @InputBoolean()\r\n public forceRequired: boolean = false; // a force outside of [cfgName]'s influence\r\n\r\n @Input()\r\n public set validators(validators: ValidatorFn[]) {\r\n if (validators === this._validators) {\r\n return;\r\n }\r\n this._validators = validators;\r\n this._updateControlValidatorsAndOwnFlags();\r\n }\r\n\r\n public get validators(): ValidatorFn[] {\r\n return this._validators;\r\n }\r\n\r\n @Input()\r\n public set asyncValidators(validators: AsyncValidatorFn[]) {\r\n this._asyncValidators = validators;\r\n this._updateControlValidatorsAndOwnFlags();\r\n }\r\n\r\n public get asyncValidators(): AsyncValidatorFn[] {\r\n return this._asyncValidators;\r\n }\r\n\r\n @Input() @HostBinding(\"class.\" + BaseInputComponent.HiddenClass)\r\n public set hidden(hidden: boolean) {\r\n if (hidden === this._hidden) {\r\n return;\r\n }\r\n\r\n this._hidden = hidden;\r\n\r\n this._addOrRemoveSelfFromForm();\r\n\r\n if (!this._destroyed) {\r\n if (hidden) {\r\n this.changeDetector.detach();\r\n } else {\r\n this.changeDetector.reattach();\r\n if (this._hasOnPushCdStrategy) {\r\n this.detectChangesAfterAngular();\r\n }\r\n }\r\n }\r\n\r\n this.hiddenChange.emit(hidden);\r\n }\r\n\r\n public get hidden(): boolean {\r\n return this._hidden;\r\n }\r\n\r\n // no custom setter logic as with the other 'screen config props', because concrete form input components handle this themselves.\r\n @Input()\r\n public set decimals(value: number) {\r\n this._decimals = value;\r\n }\r\n\r\n public get decimals(): number {\r\n return this._decimals;\r\n }\r\n\r\n @Input()\r\n public icon: CoreComponentsIcon;\r\n\r\n // Goal: ability to emulate the red background of input fields (form-submitted invalid state)\r\n @Input() @HostBinding(\"class.cc-red-error-background\")\r\n public redErrorBackground: boolean = false;\r\n\r\n @Input()\r\n set myFormInputInstance(value: BaseInputComponent<T>) {\r\n if (value === this._myFormInputInstance) {\r\n return;\r\n }\r\n this._myFormInputInstance = value;\r\n this._updateControlValidatorsAndOwnFlags();\r\n }\r\n\r\n get myFormInputInstance(): BaseInputComponent<T> {\r\n return this._myFormInputInstance;\r\n }\r\n\r\n private _myFormInputInstance: BaseInputComponent<T>;\r\n\r\n // @Output()\r\n // public commit: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n public readonly nativeBlur: EventEmitter<any> = new EventEmitter();\r\n\r\n @Output()\r\n public readonly blur: EventEmitter<any> = new EventEmitter();\r\n\r\n // emits when the enter button on keyboard was pressed while this form input had focussed\r\n @Output()\r\n public readonly enter: EventEmitter<any> = new EventEmitter();\r\n\r\n @Output()\r\n public readonly focus: EventEmitter<any> = new EventEmitter();\r\n\r\n @Output()\r\n public readonly keyDown: EventEmitter<any> = new EventEmitter();\r\n\r\n @Output()\r\n public readonly keyUp: EventEmitter<any> = new EventEmitter();\r\n\r\n @Output()\r\n public readonly modelChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n public readonly userModelChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n public readonly hiddenChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n @HostBinding(\"class.cc-input-focused\")\r\n public focused: boolean = false;\r\n\r\n public formComponent: FormComponent;\r\n\r\n @HostBinding(\"class.form-input\")\r\n public formInput: boolean = true;\r\n\r\n @Input() @InputBoolean() @HostBinding(\"class.custom-width\")\r\n public customWidth: boolean = false;\r\n\r\n @Input() @InputBoolean()\r\n public noTriangleGraphic: boolean = false;\r\n\r\n @Input() @InputBoolean() @HostBinding(\"class.half-width\")\r\n public halfWidth: boolean = false;\r\n\r\n @Input() @InputBoolean() @HostBinding(\"class.full-width-important\")\r\n public fullWidth: boolean = false;\r\n\r\n @Input() @InputBoolean()\r\n public excludeUserModelChange: boolean = false;\r\n\r\n @Input() @InputBoolean()\r\n public noFormGroupControl: boolean = false;\r\n\r\n @HostBinding(\"class.form-submitted\")\r\n public get formSubmitted(): boolean {\r\n return this.formComponent && this.formComponent.submitted;\r\n }\r\n\r\n @HostBinding(\"class.hasnolabel\")\r\n public get hasNoLabel(): boolean {\r\n return isNill(this.label);\r\n }\r\n\r\n @HostBinding(\"class.hasvalue\")\r\n public get hasValue(): boolean {\r\n return !!this.model || StringUtils.IsStringWithLength(this.model) || NumberUtils.IsNumber(this.model);\r\n }\r\n\r\n @HostBinding(\"class.invalid\")\r\n public get invalid(): boolean {\r\n return this._checkState() && !this.control.valid;\r\n }\r\n\r\n @HostBinding(\"class.disabled\")\r\n public get isDisabled(): boolean {\r\n return this._disabled;\r\n }\r\n\r\n @HostBinding(\"class.read-only\")\r\n public get isReadonly(): boolean {\r\n return this.readonly;\r\n }\r\n\r\n @HostBinding(\"class.required\")\r\n public get isRequired(): boolean {\r\n return this.required;\r\n }\r\n\r\n @HostBinding(\"class.cc-touched-invalid\")\r\n public get touchedInvalid(): boolean {\r\n return this._controlExists() && this.control.touched && !this.control.valid;\r\n }\r\n\r\n @HostBinding(\"class.valid\")\r\n public get valid(): boolean {\r\n return this._checkState() && this.control.valid;\r\n }\r\n\r\n @HostBinding(\"class.no-validation\")\r\n public get validationDisabled(): boolean {\r\n return this.readonly || this.disabled || this.noValidation;\r\n }\r\n\r\n @HostListener(\"click\", [\"$event\"])\r\n onClick(event: MouseEvent): void {\r\n if (this.canChange && !this.noClickFocus) {\r\n this.requestFocus();\r\n if (!this.excludeUserModelChange) {\r\n this.markAsUserTouched();\r\n }\r\n }\r\n }\r\n\r\n @HostListener(\"focusin\")\r\n onFocusIn(): void {\r\n if (!this.excludeUserModelChange) {\r\n this.markAsUserTouched();\r\n }\r\n }\r\n\r\n @HostListener(\"document:scroll\")\r\n public handleDocumentScroll(): void {\r\n this._positionValidationError();\r\n }\r\n\r\n @HostListener(\"window:resize\")\r\n public handleWindowResize(): void {\r\n this._positionValidationError();\r\n }\r\n\r\n @HostListener(\"keydown\", [\"$event\"])\r\n public handleKeyDown(event: KeyboardEvent): void {\r\n if (this.showSaveCancel && this.canSaveOrCancel) {\r\n this._handleKeyDown(event);\r\n }\r\n }\r\n\r\n public get canChange(): boolean {\r\n return !this.readonly && !this.disabled;\r\n }\r\n\r\n public get control(): FormControl {\r\n return this._myFormInputInstance ? this._myFormInputInstance.control : this.ngModel && this.ngModel.control;\r\n }\r\n\r\n public get formInputInstance(): BaseInputComponent<T> {\r\n return this._myFormInputInstance || this;\r\n }\r\n\r\n public get isDestroyed(): boolean {\r\n return this._destroyed;\r\n }\r\n\r\n public input: HTMLInputElement | HTMLTextAreaElement;\r\n\r\n public keepFocus: boolean = false;\r\n public canSaveOrCancel: boolean = false;\r\n\r\n // @implements ConfigurationAdapterComponent\r\n public objectConfigName: string;\r\n protected _markedAsUserTouched: boolean = false;\r\n\r\n\r\n protected _destroyed: boolean = false;\r\n protected _hasOnPushCdStrategy: boolean = false;\r\n protected _model: T;\r\n protected _initialModel: T;\r\n protected _initialModelSet: boolean = false;\r\n\r\n private _errorValidationComponent: ComponentRef<ValidationErrorComponent>;\r\n private _decimals: number;\r\n private _hidden: boolean;\r\n private _disabled: boolean;\r\n private _maxLength: number;\r\n private _readonly: boolean;\r\n private _required: boolean;\r\n\r\n private _forceReadonly: boolean = undefined;\r\n\r\n private _validators: ValidatorFn[] = [];\r\n private _asyncValidators: AsyncValidatorFn[] = [];\r\n\r\n private _speechSub: Subscription;\r\n private _modelChangeSub: Subscription;\r\n private _formAnySubmitSub: Subscription;\r\n private _formReadonlyChangeSub: Subscription;\r\n private _clearMarkedAsUserTouchedSub: Subscription;\r\n\r\n constructor(\r\n protected changeDetector: ChangeDetectorRef,\r\n protected componentFactoryResolver: ComponentFactoryResolver,\r\n @Optional() protected formUserChangeListener?: FormInputUserModelChangeListenerService,\r\n @Optional() protected ngZoneWrapper?: NgZoneWrapperService,\r\n @Optional() public elementRef?: ElementRef,\r\n ) {\r\n BaseInputComponent.BaseFormInputComponentIndex++;\r\n this.name = BaseInputComponent.BaseFormInputComponentIndex.toString();\r\n\r\n if (this.formUserChangeListener) {\r\n this._clearMarkedAsUserTouchedSub = this.formUserChangeListener.clearAllMarkedAsUserTouched.subscribe(() => {\r\n this._markedAsUserTouched = false;\r\n });\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this._modelChangeSub = this.modelChange.subscribe((val: any) => {\r\n this.model = val;\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this._prepareInput();\r\n\r\n this._updateControlValidatorsAndOwnFlags();\r\n\r\n this._addOrRemoveSelfFromForm();\r\n\r\n if (this.formComponent) {\r\n this.readonly = this.readonly || this.formComponent.readonly;\r\n this._formReadonlyChangeSub = this.formComponent.readonlyChange.subscribe((isFormReadonly: boolean) => {\r\n this.readonly = isFormReadonly;\r\n });\r\n }\r\n\r\n if (this.initFocus) {\r\n setTimeout(this.requestFocus.bind(this));\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.input) {\r\n this.input.removeEventListener('blur', (event) => this.doBlur(event));\r\n this.input.removeEventListener('focus', (event) => this.doFocus(event));\r\n }\r\n\r\n this._destroyed = true;\r\n this._clearErrorComponent();\r\n\r\n // if (this.tooltipManager && this.elementRef) {\r\n // this.tooltipManager.destroyErrorTooltipOfElement(this.elementRef.nativeElement);\r\n // }\r\n\r\n if (this._modelChangeSub) {\r\n this._modelChangeSub.unsubscribe();\r\n }\r\n if (this._speechSub) {\r\n this._speechSub.unsubscribe();\r\n }\r\n if (this._formAnySubmitSub) {\r\n this._formAnySubmitSub.unsubscribe();\r\n }\r\n if (this._formReadonlyChangeSub) {\r\n this._formReadonlyChangeSub.unsubscribe();\r\n }\r\n if (this._clearMarkedAsUserTouchedSub) {\r\n this._clearMarkedAsUserTouchedSub.unsubscribe();\r\n }\r\n // this._removeSelfFromForm();\r\n this.elementRef = undefined;\r\n this.changeDetector = undefined;\r\n this.input = undefined;\r\n }\r\n\r\n // descendents should override this\r\n public commit = async (model: any): Promise<boolean> => {\r\n return Promise.resolve(true);\r\n }\r\n\r\n public async commitClick(event?: MouseEvent): Promise<void> {\r\n this.keepFocus = true;\r\n await this.commit(this.model);\r\n this.keepFocus = false;\r\n this.doBlur(event);\r\n }\r\n\r\n public cancelClick(event?: MouseEvent): void {\r\n this.keepFocus = true;\r\n if (this._initialModelSet) {\r\n this.model = this._initialModel;\r\n }\r\n this.keepFocus = false;\r\n }\r\n\r\n public showValidationError(error: string): void {\r\n if (this.validationErrorContainer) {\r\n if (this._errorValidationComponent) {\r\n this._clearErrorComponent();\r\n }\r\n const componentFactory: ComponentFactory<ValidationErrorComponent> = this.componentFactoryResolver.resolveComponentFactory(ValidationErrorComponent);\r\n this._errorValidationComponent = this.validationErrorContainer.createComponent(componentFactory);\r\n this._errorValidationComponent.instance.error = error;\r\n this._positionValidationError();\r\n }\r\n }\r\n\r\n /**\r\n * Emits a modelChange event with given value, indicating that the model of this form input\r\n * has changed and its new value is given value. Also emits userModelChange if markedAsUserTouched.\r\n */\r\n public setModel(value: any): void {\r\n this.model = value;\r\n this.modelChange.emit(value);\r\n\r\n if (this._markedAsUserTouched && this.formUserChangeListener) {\r\n this.formUserChangeListener.userModelChange.next(value);\r\n this.userModelChange.next(value);\r\n }\r\n\r\n if (this._hasOnPushCdStrategy) {\r\n this.detectChanges();\r\n }\r\n }\r\n\r\n public requestFocus(): void {\r\n if (this.canChange && this.input) {\r\n this.input.focus();\r\n this.focused = true;\r\n }\r\n }\r\n\r\n public doFocus(event: any): any {\r\n if (this.disabled) {\r\n return;\r\n }\r\n this._initialModelSet = false;\r\n this.focused = true;\r\n this.canSaveOrCancel = false;\r\n this.focus.next();\r\n }\r\n\r\n public doBlur(event?: any): any {\r\n setTimeout(() => {\r\n if (this.keepFocus) {\r\n if (event) {\r\n event.preventDefault;\r\n }\r\n return false;\r\n }\r\n this.focused = false;\r\n this.input.blur();\r\n this.blur.next();\r\n }, 200);\r\n }\r\n\r\n public detectChanges(): void {\r\n if (!this._destroyed) {\r\n this.changeDetector.detectChanges();\r\n }\r\n }\r\n\r\n public markForCheck(): void {\r\n if (!this._destroyed) {\r\n this.changeDetector.markForCheck();\r\n }\r\n }\r\n\r\n public detectChangesAfterAngular(): void {\r\n if (!!this.ngZoneWrapper) {\r\n this.ngZoneWrapper.setTimeoutOutsideAngular(() => {\r\n if (!this._destroyed) {\r\n if (this._hasOnPushCdStrategy) {\r\n this.changeDetector.markForCheck();\r\n }\r\n this.changeDetector.detectChanges();\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Links the given formComp.submit event to the firing of detectChanges() of given change detector. This is a 'utility-like' method,\r\n * but we manage the actual subscription (with UNSUBSCRIBE()!) on this base class.\r\n * @param formComp The form whose submit we want to link with the call of .detectChanges() on given change detector ref.\r\n * @param changeDetectorRef This should be given as param. I choose not to make this part of our (BaseFormInputComponent) constructor,\r\n * because we already have 21 extenders.\r\n */\r\n // public linkFormAnySubmitWithDetectChanges(formComp: FormComponent, changeDetectorRef: ChangeDetectorRef): void {\r\n // if (formComp && changeDetectorRef) {\r\n // this._formAnySubmitSub = formComp.anySubmit.subscribe((() => {\r\n // if (!this._destroyed) {\r\n // changeDetectorRef.detectChanges();\r\n // }\r\n // }));\r\n // }\r\n // }\r\n\r\n public markAsUserTouched(): void {\r\n this._markedAsUserTouched = true;\r\n this.redErrorBackground = false; // not sure if this is the right place to do that\r\n }\r\n\r\n public clearMarkedAsUserTouched(): void {\r\n this._markedAsUserTouched = false;\r\n }\r\n\r\n //used for descendents, because descendents can't set super properties, see InputNumberComponent\r\n protected setMaxLength(maxLength: number): void {\r\n if (notNill(this.forcedMaxLength) || maxLength === this._maxLength) {\r\n return;\r\n }\r\n\r\n if (!isNaN(maxLength)) {\r\n this._maxLength = maxLength;\r\n this._updateControlValidatorsAndOwnFlags();\r\n }\r\n }\r\n\r\n protected _markAsOnPush(): void {\r\n this._hasOnPushCdStrategy = true;\r\n }\r\n\r\n protected _checkState(): boolean {\r\n if (this.ngModel) {\r\n return this.formSubmitted || (this._controlExists() && this.control.touched);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n // Place validators onto our Angular's FormControl.\r\n protected _updateControlValidatorsAndOwnFlags(): void {\r\n const er: ElementRef = this.myFormInputInstance ? this.myFormInputInstance.elementRef : this.elementRef;\r\n // if (this.tooltipManager && er) {\r\n // this.tooltipManager.destroyErrorTooltipOfElement(er.nativeElement);\r\n // }\r\n this._setNativeRequired(this.required);\r\n this._setNativeMaxLength(this.maxLength);\r\n this._setNativeDisabled(this.disabled);\r\n this._setNativeReadOnly(this.readonly || this.forceReadonly);\r\n\r\n this.redErrorBackground = false;\r\n if (this._controlExists()) {\r\n const validators: ValidatorFn[] = [];\r\n\r\n // add required\r\n if (this.required) {\r\n validators.push(requiredValidator);\r\n }\r\n\r\n // add maxlength\r\n if (notNill(this._maxLength)) {\r\n if (this.decimals) {\r\n validators.push(precisionScaleValidator(this._maxLength, this.decimals));\r\n } else {\r\n validators.push(maxStringLengthValidator(this._maxLength));\r\n }\r\n }\r\n\r\n // add @Input()-ed validators\r\n validators.push(...this._validators);\r\n\r\n if (this._validators) {\r\n this._validators.forEach(validator => {\r\n if (validator === requiredValidator) {\r\n this._required = true;\r\n this._setNativeRequired(true);\r\n }\r\n });\r\n }\r\n\r\n this.control.setValidators(validators);\r\n this.control.setAsyncValidators(this._asyncValidators);\r\n this.control.updateValueAndValidity();\r\n }\r\n }\r\n\r\n private _clearErrorComponent(): void {\r\n if (this.validationErrorContainer) {\r\n this.validationErrorContainer.clear();\r\n if (this._errorValidationComponent) {\r\n this._errorValidationComponent.destroy();\r\n this._errorValidationComponent = undefined;\r\n }\r\n }\r\n }\r\n\r\n\r\n // whether this.ngModel.control has safe access\r\n private _controlExists(): boolean {\r\n return this.ngModel && !!this.control;\r\n }\r\n\r\n private _controlIsValid(): boolean {\r\n return this._controlExists() && this.control.valid;\r\n }\r\n\r\n private _setNativeDisabled(disabled: boolean): void {\r\n if (this.input) {\r\n this.input.disabled = disabled;\r\n }\r\n }\r\n\r\n private _setNativeMaxLength(maxlength: number): void {\r\n if (this.input && !isNaN(maxlength)) {\r\n this.input.maxLength = maxlength;\r\n }\r\n }\r\n\r\n protected _setNativeReadOnly(readonly: boolean): void {\r\n if (this.input) {\r\n this.input.readOnly = readonly;\r\n }\r\n }\r\n\r\n private _setNativeRequired(required: boolean): void {\r\n if (this.input) {\r\n this.input.required = required;\r\n }\r\n }\r\n\r\n private _subscribeToSpeechInput(): void {\r\n // this._speechSub = this.speechInput.speechInput.subscribe((data) => {\r\n // if (this.focused && this._controlExists()) {\r\n // const val: string = this.control.value;\r\n // this.setModel((StringUtils.IsString(val) ? val : '') + data);\r\n // }\r\n // });\r\n }\r\n\r\n private _addOrRemoveSelfFromForm(): void {\r\n if (this.hidden) {\r\n this._removeSelfFromForm();\r\n } else {\r\n this._addSelfToForm();\r\n }\r\n }\r\n\r\n private _updateSelfInForm(): void {\r\n if (this.formComponent) {\r\n this.formComponent.updateFormInput(this);\r\n }\r\n }\r\n\r\n private _removeSelfFromForm(): void {\r\n if (this.formComponent && this.ngModel) {\r\n this.formComponent.removeFormInput(this);\r\n }\r\n }\r\n\r\n private _addSelfToForm(): void {\r\n if (this.formComponent && this.ngModel && !this.noFormGroupControl) {\r\n this.formComponent.removeFormInput(this); // preventing there are two controls in formgroup when myFormInputInstance is (being) set\r\n this.formComponent.addFormInput(this.myFormInputInstance ? this.myFormInputInstance : this);\r\n }\r\n }\r\n\r\n private _prepareInput(): void {\r\n if (this.elementRef && this.elementRef.nativeElement) {\r\n //try to find input element\r\n this.input = this._findInputNode(this.elementRef.nativeElement.children);\r\n if (this.input) {\r\n this.input.addEventListener('blur', (event) => this.doBlur(event));\r\n this.input.addEventListener('focus', (event) => this.doFocus(event));\r\n }\r\n }\r\n }\r\n\r\n private _findInputNode(nodes): any {\r\n for (let i = 0; i < nodes.length; i++) {\r\n const node = nodes[i];\r\n if (node instanceof HTMLInputElement || node instanceof HTMLTextAreaElement) {\r\n return node;\r\n } else if (node.children.length > 0) {\r\n return this._findInputNode(node.children);\r\n }\r\n }\r\n }\r\n\r\n private _positionValidationError(): void {\r\n if (this.elementRef && this.elementRef.nativeElement && this._errorValidationComponent) {\r\n const clientRect: ClientRect = this.elementRef.nativeElement.getBoundingClientRect();\r\n this._errorValidationComponent.instance.top = clientRect.bottom;\r\n this._errorValidationComponent.instance.left = clientRect.left;\r\n }\r\n }\r\n\r\n private async _handleKeyDown(event: KeyboardEvent): Promise<any> {\r\n switch (event.code) {\r\n case 'Enter':\r\n event.preventDefault();\r\n await this.commitClick();\r\n return false;\r\n case 'Tab':\r\n const nextSiblingToFocus = event.shiftKey ? (event.currentTarget as any).previousSibling : (event.currentTarget as any).nextSibling;\r\n event.preventDefault();\r\n await this.commitClick();\r\n if (nextSiblingToFocus) {\r\n try {\r\n this._setFocusOnNextPossibleInput(nextSiblingToFocus, event.shiftKey);\r\n } catch (e) {\r\n }\r\n }\r\n return false;\r\n case 'Escape':\r\n this.cancelClick();\r\n event.preventDefault();\r\n return false;\r\n }\r\n }\r\n\r\n private _createNewFocusEvent(element: any): Event {\r\n let eventType = \"onfocusin\" in element ? \"focusin\" : \"focus\",\r\n bubbles = \"onfocusin\" in element,\r\n focusEvent;\r\n\r\n if (\"createEvent\" in document) {\r\n focusEvent = document.createEvent(\"Event\");\r\n focusEvent.initEvent(eventType, bubbles, true);\r\n } else if (\"Event\" in window) {\r\n focusEvent = new Event(eventType, { bubbles: bubbles, cancelable: true });\r\n }\r\n return focusEvent;\r\n }\r\n\r\n private _setFocusOnNextPossibleInput(element: any, previous: boolean): void {\r\n const elementColl = element.getElementsByTagName('input');\r\n if (elementColl && elementColl.length > 0) {\r\n const inputElement = elementColl[0];\r\n if (inputElement.disabled || inputElement.readOnly) {\r\n this._setFocusOnNextPossibleInput(previous ? element.previousSibling : element.nextSibling, previous);\r\n } else {\r\n const focusEvent = this._createNewFocusEvent(element);\r\n inputElement.focus();\r\n inputElement.dispatchEvent(focusEvent);\r\n }\r\n }\r\n }\r\n}\r\n","// Represents a positional model\r\nexport class ElementPosition {\r\n public top: number;\r\n public right: number;\r\n public bottom: number;\r\n public left: number;\r\n\r\n constructor (top?: number, right?: number, bottom?: number, left?: number) {\r\n this.top = top;\r\n this.right = right;\r\n this.bottom = bottom;\r\n this.left = left;\r\n }\r\n}\r\n","import {Injectable, OnDestroy} from \"@angular/core\";\r\nimport {Subject, Subscription} from \"rxjs\";\r\nimport { FormComponent } from '../../components/form/form.component';\r\nimport { ArrayUtils } from '../utils/array-utils';\r\nimport { ElementPosition } from '../model/element-position';\r\n\r\n/**\r\n * Service to use inside [providers] of some leaf component that contains multiple <co-form>'s inside, possibly nested. Gives the master\r\n * full control over submits etc. of all its inner co-forms with just one service.\r\n */\r\n@Injectable()\r\nexport class FormMasterService implements OnDestroy {\r\n // emits when ALL slaves valid-submitted\r\n public readonly validSlavesSubmit: Subject<void> = new Subject<void>();\r\n\r\n private _slaveForms: FormComponent[] = [];\r\n\r\n private _subs: Subscription[] = [];\r\n\r\n private _slaveHoldingFirstInvalidField: FormComponent;\r\n private _keyOfFirstInvalidFieldInDom: string;\r\n private _positionOfFirstInvalidFieldInDom: ElementPosition = new ElementPosition(9999, 9999, 9999, 9999);\r\n\r\n private _firstErrorTooltipSpawned: boolean = false;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._slaveForms.length = 0;\r\n this._subs.forEach(s => s.unsubscribe());\r\n }\r\n\r\n public addSlave(coFormComp: FormComponent): void {\r\n this._slaveForms.push(coFormComp);\r\n this._subs.push(coFormComp.invalidSubmit.subscribe(() => {\r\n this._handleFormCompInvalidity();\r\n }));\r\n this._subs.push(coFormComp.anySubmit.subscribe(() => {\r\n this._resetFirstInvalidFieldProps();\r\n }));\r\n }\r\n\r\n public removeSlave(coFormComp: FormComponent): void {\r\n ArrayUtils.RemoveElement(coFormComp, this._slaveForms);\r\n this._firstErrorTooltipSpawned = false;\r\n }\r\n\r\n // Returns true if ALL submits were succesful, false if at least one submit failed. Returns undefined if we had no slaves.\r\n public submitSlaves(): boolean {\r\n this._resetFirstInvalidFieldProps();\r\n let success: boolean = true;\r\n if (this._slaveForms) {\r\n for (let i: number = 0, len: number = this._slaveForms.length; i < len; i++) {\r\n if (!this._slaveForms[i].submit(true)) {\r\n success = false;\r\n }\r\n }\r\n }\r\n\r\n if (success) {\r\n this.validSlavesSubmit.next();\r\n } else {\r\n this._handleFormCompInvalidity();\r\n }\r\n return success;\r\n }\r\n\r\n public resetSlaves(): void {\r\n if (this._slaveForms) {\r\n for (let i: number = 0, len: number = this._slaveForms.length; i < len; i++) {\r\n this._slaveForms[i].reset();\r\n }\r\n }\r\n }\r\n\r\n public setFirstInvalidField(form: FormComponent, key: string, element: HTMLElement): void {\r\n if (!element) {\r\n return;\r\n }\r\n const clientRect: ClientRect = element.getBoundingClientRect(),\r\n scrollLeft: number = window.pageXOffset || document.documentElement.scrollLeft,\r\n scrollTop: number = window.pageYOffset || document.documentElement.scrollTop,\r\n top: number = clientRect.top + scrollTop,\r\n left: number = clientRect.left + scrollLeft;\r\n if (this._positionOfFirstInvalidFieldInDom.top >= top && this._positionOfFirstInvalidFieldInDom.left >= left) {\r\n this._slaveHoldingFirstInvalidField = form;\r\n this._keyOfFirstInvalidFieldInDom = key;\r\n this._positionOfFirstInvalidFieldInDom = new ElementPosition(top, clientRect.right, clientRect.bottom, left);\r\n }\r\n }\r\n\r\n public allSlavesValid(): boolean {\r\n if (this._slaveForms) {\r\n for (let i: number = 0, len: number = this._slaveForms.length; i < len; i++) {\r\n if (!this._slaveForms[i].isValid()) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n private _resetFirstInvalidFieldProps(): void {\r\n this._positionOfFirstInvalidFieldInDom = new ElementPosition(9999, 9999, 9999, 9999);\r\n this._keyOfFirstInvalidFieldInDom = \"\";\r\n this._slaveHoldingFirstInvalidField = undefined;\r\n this._firstErrorTooltipSpawned = false;\r\n }\r\n\r\n private _handleFormCompInvalidity(): void {\r\n if (this._slaveHoldingFirstInvalidField && !this._firstErrorTooltipSpawned) {\r\n this._slaveHoldingFirstInvalidField.showErrorTooltipOnFormGroupControl(this._keyOfFirstInvalidFieldInDom);\r\n this._firstErrorTooltipSpawned = true;\r\n }\r\n }\r\n}\r\n","import {AfterViewInit, Component, EventEmitter, HostBinding, HostListener, Input, OnDestroy, OnInit, Output} from \"@angular/core\";\r\nimport {FormControl, FormGroup} from \"@angular/forms\";\r\nimport {Subject, Subscription} from \"rxjs\";\r\nimport {BaseInputComponent} from \"../base/base-input.component\";\r\nimport {FormMasterService} from \"../../core/service/form-master.service\";\r\n\r\nconst FormGroupStatus: any = {\r\n VALID: \"VALID\",\r\n INVALID: \"INVALID\",\r\n PENDING: \"PENDING\",\r\n DISABLED: \"DISABLED\"\r\n};\r\n\r\n@Component({\r\n selector: \"co-form\",\r\n template: `<ng-content></ng-content>`,\r\n})\r\n// The iOneJS version of the form tag, representing a form with controls.\r\nexport class FormComponent implements AfterViewInit, OnDestroy, OnInit {\r\n @Input()\r\n set readonly(value: boolean) {\r\n this._readonly = value;\r\n this.readonlyChange.emit(value);\r\n }\r\n\r\n get readonly(): boolean {\r\n return this._readonly;\r\n }\r\n\r\n @Input()\r\n public keepInView: Element;\r\n\r\n @Output()\r\n public onChange: EventEmitter<FormControl> = new EventEmitter<FormControl>();\r\n\r\n @HostBinding(\"class.submitted\")\r\n public submitted: boolean = false;\r\n\r\n // Emits true after every valid submit.\r\n @Output()\r\n public readonly validSubmit: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n // Emits void after every 'submit' (either valid or invalid, eg a submit attempt)\r\n @Output()\r\n public readonly anySubmit: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n // note: a disabled control is considered valid\r\n @Output()\r\n public readonly validityChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n @Output()\r\n public readonly readonlyChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n // The Angular in-memory representation of the form controls on this form. Performs actual logic, emits 'input field' (Control) state change events, etc.\r\n public formGroup: FormGroup = new FormGroup({});\r\n\r\n @Output()\r\n public invalidSubmit: Subject<void> = new Subject<void>();\r\n\r\n private _readonly: boolean = false;\r\n private _valueChangeSub: Subscription;\r\n private _statusChangeSub: Subscription;\r\n\r\n private _init: boolean;\r\n\r\n // key: name of form inputs, values: the component for that name\r\n private _componentMap: Map<string, BaseInputComponent<any>> = new Map<string, BaseInputComponent<any>>([]);\r\n\r\n constructor(\r\n private _formMaster: FormMasterService\r\n ) {\r\n this._formMaster.addSlave(this);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this._init = true;\r\n }\r\n\r\n ngOnInit(): void {\r\n this._valueChangeSub = this.formGroup.valueChanges.subscribe((e) => {\r\n this.onChange.emit(e);\r\n });\r\n this._statusChangeSub = this.formGroup.statusChanges.subscribe((e) => {\r\n if (e === FormGroupStatus.VALID || e === FormGroupStatus.DISABLED) {\r\n this.validityChange.emit(true);\r\n } else if (e === FormGroupStatus.INVALID) {\r\n this.validityChange.emit(false);\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this._valueChangeSub) {\r\n this._valueChangeSub.unsubscribe();\r\n }\r\n if (this._statusChangeSub) {\r\n this._statusChangeSub.unsubscribe();\r\n }\r\n this._componentMap.clear();\r\n this._componentMap = undefined;\r\n this._formMaster.removeSlave(this);\r\n this.keepInView = undefined;\r\n }\r\n\r\n public addFormInput(formInput: BaseInputComponent<any>): void {\r\n this.formGroup.addControl(formInput.name, formInput.control);\r\n if (formInput.elementRef) {\r\n this._componentMap.set(formInput.name, formInput);\r\n }\r\n }\r\n\r\n public removeFormInput(formInput: BaseInputComponent<any>): void {\r\n this.formGroup.removeControl(formInput.name);\r\n this._componentMap.delete(formInput.name);\r\n }\r\n\r\n public updateFormInput(formInput: BaseInputComponent<any>): void {\r\n this.formGroup.setControl(formInput.name, formInput.control);\r\n }\r\n\r\n // Marks form as touched, checks validity and returns true if indeed valid, else false. Visuals of form inputs can change after calling this.\r\n public checkUpdateValidity(): boolean {\r\n this.formGroup.markAsTouched();\r\n this.formGroup.updateValueAndValidity();\r\n if (!this.isValid()) {\r\n this._setFirstInvalidElementOnMaster();\r\n }\r\n return this.isValid();\r\n }\r\n\r\n public isTouched(): boolean {\r\n return this.formGroup.touched;\r\n }\r\n\r\n public isValid(): boolean {\r\n return this._init && this.formGroup.valid;\r\n }\r\n\r\n // @HostListener('keyup.enter', ['$event'])\r\n // onEnterKey(event: KeyboardEvent): void {\r\n // const target: HTMLElement = <HTMLElement>event.target;\r\n // if (['TEXTAREA', 'SELECT'].indexOf(target.tagName) !== -1) {\r\n // return;\r\n // }\r\n // if (target.isContentEditable) {\r\n // return;\r\n // }\r\n // if (target.tagName === 'BUTTON-COLIJN' && target.getAttribute('type') === 'submit') {\r\n // return;\r\n // }\r\n // this.submit();\r\n // }\r\n\r\n public reset(): void {\r\n this.submitted = false;\r\n this.formGroup.markAsUntouched();\r\n }\r\n\r\n // returns validity\r\n public submit(throughFormMaster: boolean = false): boolean {\r\n this.submitted = true;\r\n if (!throughFormMaster) {\r\n this.anySubmit.emit();\r\n }\r\n if (this.checkUpdateValidity()) {\r\n this.validSubmit.emit();\r\n } else {\r\n if (!throughFormMaster) {\r\n this.invalidSubmit.next();\r\n }\r\n }\r\n return this.isValid();\r\n }\r\n\r\n public showErrorTooltipOnFormGroupControl(key: string): void {\r\n for (const controlKey in this.formGroup.controls) {\r\n if (this.formGroup.controls.hasOwnProperty(controlKey)) {\r\n if (this._componentMap.has(controlKey)) {\r\n const comp: BaseInputComponent<any> = this._componentMap.get(controlKey);\r\n for (const errorKey in this.formGroup.controls[controlKey].errors) {\r\n if (this.formGroup.controls[controlKey].errors.hasOwnProperty(errorKey)) {\r\n const error: any = this.formGroup.controls[controlKey].errors[errorKey];\r\n if (controlKey === key) {\r\n comp.showValidationError(error);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _setFirstInvalidElementOnMaster(): void {\r\n const elements: any = Array.from(this._componentMap);\r\n const len: number = elements.length;\r\n for (let i: number = 0; i < len; i++) {\r\n const key: string = elements[i][0];\r\n const value: BaseInputComponent<any> = elements[i][1];\r\n if (this.formGroup.controls.hasOwnProperty(key) && this.formGroup.controls[key].status.toLowerCase() === \"invalid\") {\r\n this._formMaster.setFirstInvalidField(this, key, value.elementRef ? value.elementRef.nativeElement : undefined);\r\n return;\r\n }\r\n }\r\n }\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ComponentFactoryResolver,\r\n ElementRef,\r\n forwardRef,\r\n HostBinding,\r\n Input,\r\n Optional,\r\n TemplateRef,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {COMPONENT_INTERFACE_NAME} from \"../base/component-interface-name\";\r\nimport {BaseInputComponent} from \"../base/base-input.component\";\r\nimport {CheckBoxSelectionService} from \"@syncfusion/ej2-angular-dropdowns\";\r\nimport {FormInputUserModelChangeListenerService} from \"../../core/service/form-input-user-change-listener.service\";\r\nimport {NgZoneWrapperService} from \"../../core/service/ng-zone-wrapper.service\";\r\nimport {FormComponent} from \"../form/form.component\";\r\n\r\n@Component({\r\n selector: \"co-drop-down-list\",\r\n template: `\r\n <ejs-dropdownlist\r\n [dataSource]=\"collection\"\r\n [value]=\"model\"\r\n [fields]=\"fields\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [itemTemplate]=\"itemTemplate\"\r\n [headerTemplate]=\"headerTemplate\"\r\n [valueTemplate]=\"valueTemplate\"\r\n [ngModel]=\"model\"\r\n (ngModelChange)=\"modelChange.emit($event)\"\r\n (valueChange)=\"handleValueChanged($event)\"\r\n showClearButton=\"true\"\r\n floatLabelType=\"Auto\"\r\n >\r\n </ejs-dropdownlist>\r\n <div class=\"required-indicator\"></div>\r\n <ng-template #validationError></ng-template>\r\n `,\r\n providers: [\r\n CheckBoxSelectionService,\r\n {\r\n provide: COMPONENT_INTERFACE_NAME,\r\n useExisting: forwardRef(() => DropDownListComponent)\r\n }\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class DropDownListComponent extends BaseInputComponent<any> {\r\n\r\n @Input()\r\n public collection: any[];\r\n\r\n /**\r\n * In the form { text: 'name', value: 'id' }\r\n * Where 'text' is showing in the dropdown and 'id' used for the model binding\r\n */\r\n @Input()\r\n public fields: Object = {};\r\n\r\n @Input()\r\n public placeholder: string;\r\n\r\n @Input()\r\n public itemTemplate: TemplateRef<any>;\r\n\r\n @Input()\r\n public headerTemplate: TemplateRef<any>;\r\n\r\n @Input()\r\n public valueTemplate: TemplateRef<any>;\r\n\r\n @HostBinding(\"class.co-drop-down-list\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n constructor(\r\n @Optional() public formComponent: FormComponent,\r\n protected changeDetector: ChangeDetectorRef,\r\n protected componentFactoryResolver: ComponentFactoryResolver,\r\n protected formUserChangeListener?: FormInputUserModelChangeListenerService,\r\n protected ngZoneWrapper?: NgZoneWrapperService,\r\n public elementRef?: ElementRef,\r\n ) {\r\n super(changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef);\r\n super._markAsOnPush();\r\n }\r\n\r\n public handleValueChanged(value: any): void {\r\n if (value !== this.model) {\r\n this.modelChange.next(value);\r\n }\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {BaseModule} from \"../base/base.module\";\r\nimport {DropDownListComponent} from \"./drop-down-list.component\";\r\nimport {DropDownListModule, MultiSelectModule} from \"@syncfusion/ej2-angular-dropdowns\";\r\nimport {FormsModule} from \"@angular/forms\";\r\n\r\n@NgModule({\r\n imports: [\r\n BaseModule,\r\n CommonModule,\r\n DropDownListModule,\r\n MultiSelectModule,\r\n FormsModule\r\n ],\r\n declarations: [DropDownListComponent],\r\n exports: [DropDownListComponent]\r\n})\r\nexport class DropDownModule {\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\n\r\nimport {FormComponent} from \"./form.component\";\r\nimport {FormMasterService} from \"../../core/service/form-master.service\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n FormComponent\r\n ],\r\n providers: [\r\n FormMasterService\r\n ],\r\n exports: [\r\n FormComponent\r\n ]\r\n})\r\nexport class FormModule {\r\n}\r\n","export enum GridLines {\r\n None = \"None\",\r\n Horizontal = \"Horizontal\",\r\n Vertical = \"Vertical\",\r\n Both = \"Both\",\r\n Default = \"Default\",\r\n}\r\n","import {Directive, Input, ViewChild} from \"@angular/core\";\r\nimport {ContextMenuItemModel, GridComponent, PageSettingsModel, RowDropSettingsModel} from \"@syncfusion/ej2-angular-grids\";\r\nimport {InputBoolean} from \"../../../core/decorator/input-boolean.decorator\";\r\nimport {GridLines} from \"../enum/grid-lines.enum\";\r\n\r\n@Directive()\r\nexport class BaseGridComponent<T> {\r\n @ViewChild('grid', {static: false})\r\n public grid: GridComponent;\r\n\r\n @Input()\r\n public data: T[];\r\n\r\n @Input()\r\n public gridLines: GridLines = GridLines.None;\r\n\r\n @Input()\r\n public contextMenuItems: ContextMenuItemModel[] = [];\r\n\r\n @Input()\r\n public frozenColumns: number;\r\n\r\n @Input()\r\n public frozenRows: number;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public sortingEnabled: boolean = false;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public filteringEnabled: boolean = false;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public pagingEnabled: boolean = false;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public groupingEnabled: boolean = false;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public reorderingEnabled: boolean = false;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public rowDragAndDropEnabled: boolean = false;\r\n\r\n @Input()\r\n public rowDropSettings: RowDropSettingsModel;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public resizingEnabled: boolean = false;\r\n\r\n @Input()\r\n @InputBoolean()\r\n public showColumnMenu: boolean = false;\r\n\r\n @Input()\r\n public set maxNumberOfRows(value: number) {\r\n if (value) {\r\n this.pageSettings.pageSize = value;\r\n }\r\n }\r\n\r\n @Input()\r\n public set columns(value: {}[]) {\r\n this._columns = value;\r\n }\r\n\r\n public get columns(): {}[] {\r\n return this._columns;\r\n }\r\n\r\n public pageSettings: PageSettingsModel = {};\r\n\r\n private _columns: {}[];\r\n}\r\n","import {Directive, Input} from \"@angular/core\";\r\nimport {ToolbarItems} from \"@syncfusion/ej2-angular-grids\";\r\nimport {ClickEventArgs} from \"@syncfusion/ej2-angular-navigations\";\r\nimport {InputBoolean} from \"../../../core/decorator/input-boolean.decorator\";\r\nimport {BaseGridComponent} from \"./base-grid.component\";\r\nimport {ArrayUtils} from \"../../../core/utils/array-utils\";\r\n\r\n@Directive()\r\nexport class BaseToolbarGridComponent<T> extends BaseGridComponent<T> {\r\n\r\n @Input()\r\n @InputBoolean()\r\n public set showColumnChooser(value: boolean) {\r\n this._showColumnChooser = value;\r\n this.updateToolbar(\"ColumnChooser\", this._showColumnChooser);\r\n }\r\n\r\n public get showColumnChooser(): boolean {\r\n return this._showColumnChooser;\r\n }\r\n\r\n @Input()\r\n @InputBoolean()\r\n public set exportExcelEnabled(value: boolean) {\r\n this._exportExcelEnabled = value;\r\n this.updateToolbar(\"ExcelExport\", this._exportExcelEnabled);\r\n }\r\n\r\n public get exportExcelEnabled(): boolean {\r\n return this._exportExcelEnabled;\r\n }\r\n\r\n @Input()\r\n @InputBoolean()\r\n public set exportPdfEnabled(value: boolean) {\r\n this._exportPdfEnabled = value;\r\n this.updateToolbar(\"PdfExport\", this._exportPdfEnabled);\r\n }\r\n\r\n public get exportPdfEnabled(): boolean {\r\n return this._exportPdfEnabled;\r\n }\r\n\r\n public toolbarOptions: ToolbarItems[];\r\n\r\n private _exportExcelEnabled: boolean = false;\r\n private _exportPdfEnabled: boolean = false;\r\n private _showColumnChooser: boolean = false;\r\n\r\n public toolbarClick(args: ClickEventArgs): void {\r\n if (this.grid) {\r\n if (args.item.id === 'grid_excelexport') {\r\n this.grid.excelExport();\r\n } else if (args.item.id === 'grid_pdfexport') {\r\n this.grid.pdfExport();\r\n }\r\n }\r\n }\r\n\r\n protected updateToolbar(option: ToolbarItems, add: boolean): void {\r\n if (add) {\r\n if (!this.toolbarOptions) {\r\n this.toolbarOptions = [];\r\n }\r\n this.toolbarOptions.push(option);\r\n } else {\r\n ArrayUtils.RemoveElement(option, this.toolbarOptions);\r\n }\r\n if (this.toolbarOptions && this.toolbarOptions.length > 0) {\r\n this.toolbarOptions = this.toolbarOptions.slice();\r\n } else {\r\n this.toolbarOptions = undefined;\r\n }\r\n }\r\n}\r\n","import {Directive, EventEmitter, Input, Output} from \"@angular/core\";\r\nimport {EditSettingsModel} from \"@syncfusion/ej2-angular-grids\";\r\nimport {InputBoolean} from \"../../../core/decorator/input-boolean.decorator\";\r\nimport {BaseToolbarGridComponent} from \"./base-toolbar-grid.component\";\r\n\r\n@Directive()\r\nexport class BaseInlineEditGridComponent<T> extends BaseToolbarGridComponent<T> {\r\n\r\n @Input()\r\n @InputBoolean()\r\n public set inlineEdit(value: boolean) {\r\n if (value) {\r\n this.editSettings = { allowEditing: true, allowAdding: true, allowDeleting: true };\r\n } else {\r\n this.editSettings = {};\r\n }\r\n this.updateToolbar(\"Add\", value);\r\n this.updateToolbar(\"Edit\", value);\r\n this.updateToolbar(\"Delete\", value);\r\n this.updateToolbar(\"Update\", value);\r\n this.updateToolbar(\"Cancel\", value);\r\n }\r\n\r\n @Output()\r\n public rowSaved: EventEmitter<T> = new EventEmitter<T>();\r\n\r\n public editSettings: EditSettingsModel;\r\n\r\n public handleActionComplete(action: any): void {\r\n if (action) {\r\n if (action.requestType === \"save\") {\r\n this.rowSaved.next(action.data);\r\n }\r\n }\r\n }\r\n}\r\n","import {Directive, EventEmitter, HostBinding, Input, OnInit, Output, TemplateRef} from \"@angular/core\";\r\nimport {RowDragEventArgs, RowDropEventArgs, SelectionSettingsModel} from \"@syncfusion/ej2-angular-grids\";\r\nimport {BaseInlineEditGridComponent} from \"./base-inline-edit-grid.component\";\r\nimport {InputBoolean} from \"../../../core/decorator/input-boolean.decorator\";\r\nimport {MenuEventArgs} from \"@syncfusion/ej2-navigations\";\r\nimport {GridRowDragEventArgs} from \"../interface/grid-row-drag-event-args\";\r\nimport {GridRowDropEventArgs} from \"../interface/grid-row-drop-event-args\";\r\nimport {GridMenuEventArgs} from \"../interface/grid-menu-event-args\";\r\n\r\nconst defaultColumn: string = `<div class=\"detail-wrapper\"><svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><polygon points=\"34.55 26.18 34.55 37.49 12.44 37.49 12.44 15.38 24.68 15.38 25.59 14.48 24.05 12.94 10 12.94 10 39.94 36.99 39.94 36.99 25.88 35.92 24.81 34.55 26.18\" fill=\"#484f60\"/><polygon points=\"40 10.4 27.92 10.4 32 14.48 22.24 26.23 24.16 28.15 35.92 18.4 40 22.48 40 10.4\" fill=\"#484f60\"/></svg></div>`;\r\n\r\n@Directive()\r\nexport class BaseSelectionGridComponent<T> extends BaseInlineEditGridComponent<T> implements OnInit {\r\n\r\n @Input()\r\n @InputBoolean()\r\n public set multipleSelect(value: boolean) {\r\n this.selectionOptions = { type: value ? \"Multiple\" : \"Single\" };\r\n }\r\n\r\n @HostBinding(\"class.detail-column\")\r\n @Input()\r\n @InputBoolean()\r\n public includeDetailColumn: boolean = false;\r\n\r\n @Input()\r\n public detailColumnTemplate: TemplateRef<any>;\r\n\r\n @Output()\r\n public rowsSelected: EventEmitter<T[]> = new EventEmitter<T[]>();\r\n\r\n @Output()\r\n public rowDoubleClick: EventEmitter<T> = new EventEmitter<T>();\r\n\r\n @Output()\r\n public detailColumnClick: EventEmitter<T> = new EventEmitter<T>();\r\n\r\n @Output()\r\n public contextMenuItemClick: EventEmitter<GridMenuEventArgs> = new EventEmitter<GridMenuEventArgs>();\r\n\r\n @Output()\r\n public rowDragStartEvent: EventEmitter<GridRowDragEventArgs> = new EventEmitter<GridRowDragEventArgs>();\r\n\r\n @Output()\r\n public rowDropEvent: EventEmitter<GridRowDropEventArgs> = new EventEmitter<GridRowDropEventArgs>();\r\n\r\n public selectionOptions: SelectionSettingsModel = { type: \"Single\" };\r\n\r\n ngOnInit(): void {\r\n if (this.includeDetailColumn) {\r\n this.columns.unshift({\r\n field: \"\", headerText: \"\", lockColumn: true, maxWidth: 30, width: 30,\r\n allowFiltering: false, allowResizing: false, allowReordering: false, allowEditing: false, allowSearching: false,\r\n showColumnMenu: false, showInColumnChooser: false,\r\n template: this.detailColumnTemplate ? this.detailColumnTemplate : defaultColumn,\r\n headerTemplate: this.detailColumnTemplate ? this.detailColumnTemplate : defaultColumn});\r\n }\r\n }\r\n\r\n public handleRowSelected(rowData: any): void {\r\n if (this.grid) {\r\n const rows: T[] = <T[]>this.grid.getSelectedRecords();\r\n this.rowsSelected.next(rows);\r\n }\r\n }\r\n\r\n public handleDoubleClick(clickData: any): void {\r\n this.rowDoubleClick.next(<T>clickData.rowData);\r\n }\r\n\r\n public handleRecordClick(clickData: any): void {\r\n if (clickData && this.includeDetailColumn && clickData.cellIndex === 0) {\r\n this.detailColumnClick.next(clickData.rowData);\r\n }\r\n }\r\n\r\n public selectRow(index: number): void {\r\n if (this.grid) {\r\n const rowIndexes: number[] = [];\r\n rowIndexes.push(index);\r\n this.grid.selectionModule.selectRows(rowIndexes);\r\n }\r\n }\r\n\r\n public contextMenuClick(args: MenuEventArgs): void {\r\n this.contextMenuItemClick.next(args);\r\n }\r\n\r\n public rowDragStartClick(args: RowDragEventArgs): void {\r\n this.rowDragStartEvent.next(args);\r\n }\r\n\r\n public rowDropClick(args: RowDropEventArgs): void {\r\n this.rowDropEvent.next(args);\r\n }\r\n}\r\n","import {Component, HostBinding, OnInit, ViewEncapsulation} from \"@angular/core\";\r\nimport {BaseSelectionGridComponent} from \"./base/base-selection-grid.component\";\r\nimport {RowDDService} from \"@syncfusion/ej2-angular-grids\";\r\n\r\n@Component({\r\n selector: 'co-grid',\r\n template: `\r\n <ejs-grid #grid id=\"grid\"\r\n [dataSource]=\"data\"\r\n [columns]=\"columns\"\r\n [contextMenuItems]=\"contextMenuItems\"\r\n [pageSettings]=\"pageSettings\"\r\n [toolbar]=\"toolbarOptions\"\r\n [gridLines]=\"gridLines\"\r\n [frozenColumns]=\"frozenColumns\"\r\n [frozenRows]=\"frozenRows\"\r\n [selectionSettings]=\"selectionOptions\"\r\n [editSettings]=\"editSettings\"\r\n [allowPaging]=\"pagingEnabled\"\r\n [allowSorting]=\"sortingEnabled\"\r\n [allowFiltering]=\"filteringEnabled\"\r\n [allowGrouping]=\"groupingEnabled\"\r\n [allowReordering]=\"reorderingEnabled\"\r\n [allowResizing]=\"resizingEnabled\"\r\n [allowRowDragAndDrop]=\"rowDragAndDropEnabled\"\r\n [showColumnMenu]=\"showColumnMenu\"\r\n [showColumnChooser]=\"showColumnChooser\"\r\n [allowExcelExport]=\"exportExcelEnabled\"\r\n [allowPdfExport]=\"exportPdfEnabled\"\r\n (toolbarClick)=\"toolbarClick($event)\"\r\n (rowSelected)=\"handleRowSelected($event)\"\r\n (recordDoubleClick)=\"handleDoubleClick($event)\"\r\n (recordClick)=\"handleRecordClick($event)\"\r\n (actionComplete)=\"handleActionComplete($event)\"\r\n (contextMenuClick)=\"contextMenuClick($event)\"\r\n (rowDragStart)=\"rowDragStartClick($event)\"\r\n (rowDrop)=\"rowDropClick($event)\">\r\n </ejs-grid>\r\n `,\r\n providers: [\r\n RowDDService\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CoGridComponent<T> extends BaseSelectionGridComponent<T> implements OnInit {\r\n\r\n @HostBinding('class.co-grid')\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport {\r\n ColumnChooserService,\r\n ColumnMenuService,\r\n ContextMenuService,\r\n EditService,\r\n ExcelExportService,\r\n FilterService,\r\n GridModule,\r\n GroupService,\r\n PageService,\r\n PdfExportService,\r\n ReorderService,\r\n ResizeService,\r\n SortService,\r\n ToolbarService\r\n} from '@syncfusion/ej2-angular-grids';\r\nimport { CoGridComponent } from './co-grid.component';\r\nimport { IconCacheService } from '../icon/icon-cache.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n GridModule\r\n ],\r\n declarations: [CoGridComponent],\r\n exports: [CoGridComponent],\r\n providers: [\r\n IconCacheService,\r\n PageService,\r\n SortService,\r\n FilterService,\r\n GroupService,\r\n ReorderService,\r\n ResizeService,\r\n ExcelExportService,\r\n PdfExportService,\r\n EditService,\r\n ToolbarService,\r\n ColumnChooserService,\r\n ColumnMenuService,\r\n ContextMenuService\r\n ]\r\n})\r\nexport class CoGridModule {\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ComponentFactoryResolver,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n HostBinding,\r\n Input,\r\n Optional,\r\n Output,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {BaseInputComponent} from \"../base/base-input.component\";\r\nimport {FormComponent} from \"../form/form.component\";\r\nimport {FormInputUserModelChangeListenerService} from \"../../core/service/form-input-user-change-listener.service\";\r\nimport {NgZoneWrapperService} from \"../../core/service/ng-zone-wrapper.service\";\r\nimport {COMPONENT_INTERFACE_NAME} from \"../base/component-interface-name\";\r\nimport {IconCacheService} from \"../icon/icon-cache.service\";\r\n\r\n@Component({\r\n selector: \"co-input-checkbox\",\r\n template: `\r\n <ejs-checkbox [label]=\"label\"\r\n [name]=\"name\"\r\n [cssClass]=\"cssClass\"\r\n [ngModel]=\"model\"\r\n (ngModelChange)=\"handleModelChange($event)\"\r\n ></ejs-checkbox>\r\n `,\r\n providers: [{\r\n provide: COMPONENT_INTERFACE_NAME,\r\n useExisting: forwardRef(() => InputCheckboxComponent)\r\n }],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class InputCheckboxComponent extends BaseInputComponent<boolean> {\r\n @Input()\r\n public name: string;\r\n\r\n @Input()\r\n public label: string;\r\n\r\n @Input()\r\n public cssClass: string;\r\n\r\n @Output()\r\n public modelChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n @HostBinding(\"class.co-input-checkbox\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n constructor(\r\n @Optional() public formComponent: FormComponent,\r\n public iconCacheService: IconCacheService,\r\n protected changeDetector: ChangeDetectorRef,\r\n protected componentFactoryResolver: ComponentFactoryResolver,\r\n protected formUserChangeListener?: FormInputUserModelChangeListenerService,\r\n protected ngZoneWrapper?: NgZoneWrapperService,\r\n public elementRef?: ElementRef,\r\n ) {\r\n super(changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef);\r\n }\r\n\r\n public setModel(value: boolean): void {\r\n this.model = value;\r\n this.modelChange.next(this.model);\r\n }\r\n\r\n public handleModelChange(value: boolean): void {\r\n if (!this.readonly && !this.disabled) {\r\n this.setModel(value);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { BaseModule } from '../base/base.module';\r\nimport { InputCheckboxComponent } from './input-checkbox.component';\r\nimport { CheckBoxModule } from '@syncfusion/ej2-angular-buttons';\r\nimport { enableRipple } from '@syncfusion/ej2-base';\r\n\r\nenableRipple(true);\r\n\r\n@NgModule({\r\n imports: [\r\n BaseModule,\r\n CommonModule,\r\n FormsModule,\r\n CheckBoxModule,\r\n ],\r\n declarations: [InputCheckboxComponent],\r\n exports: [InputCheckboxComponent]\r\n})\r\nexport class InputCheckboxModule {\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\n\r\n// A pipe for appending strings to other strings in view templates.\r\n@Pipe({name: \"append\"})\r\nexport class AppendPipe implements PipeTransform {\r\n transform(value: string, append?: string): string {\r\n if (!value) {\r\n return \"\";\r\n }\r\n\r\n if (!append) {\r\n return value;\r\n }\r\n\r\n return value + append;\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { AppendPipe } from './append.pipe';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppendPipe\r\n ],\r\n exports: [\r\n AppendPipe\r\n ]\r\n})\r\nexport class AppendPipeModule {\r\n}\r\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ElementRef,\n forwardRef,\n HostBinding,\n Input,\n Optional,\n ViewEncapsulation\n} from \"@angular/core\";\nimport {BaseInputComponent} from \"../base/base-input.component\";\nimport {COMPONENT_INTERFACE_NAME} from \"../base/component-interface-name\";\nimport {FormInputUserModelChangeListenerService} from \"../../core/service/form-input-user-change-listener.service\";\nimport {NgZoneWrapperService} from \"../../core/service/ng-zone-wrapper.service\";\nimport {FormComponent} from \"../form/form.component\";\n\n@Component({\n selector: \"co-input-checkbox-multi-select\",\n template: `\n <ejs-multiselect\n [placeholder]=\"placeholder\"\n [dataSource]=\"source\"\n [fields]=\"fields\"\n mode=\"CheckBox\"\n showDropDownIcon=\"true\"\n [showSelectAll]=\"false\"\n [filterBarPlaceholder]=\"filterPlaceholder\"\n ></ejs-multiselect>\n `,\n providers: [{\n provide: COMPONENT_INTERFACE_NAME,\n useExisting: forwardRef(() => InputCheckboxMultiSelectComponent)\n }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n\n})\nexport class InputCheckboxMultiSelectComponent extends BaseInputComponent<any> {\n\n @Input()\n public source: Object[] | string[] | number[] | boolean[]\n\n @Input()\n public fields: Object\n\n @Input()\n public selected: number | string | boolean;\n\n @Input()\n public placeholder: string;\n\n @Input()\n public filterPlaceholder: string;\n\n @HostBinding(\"class.co-input-checkbox-multi-select\")\n public showClass() {\n return true;\n }\n\n constructor(\n @Optional() public formComponent: FormComponent,\n protected changeDetector: ChangeDetectorRef,\n protected componentFactoryResolver: ComponentFactoryResolver,\n protected formUserChangeListener?: FormInputUserModelChangeListenerService,\n protected ngZoneWrapper?: NgZoneWrapperService,\n public elementRef?: ElementRef,\n ) {\n super(changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef);\n super._markAsOnPush();\n }\n\n}\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { IconModule } from '../icon/icon.module';\r\nimport { BaseModule } from '../base/base.module';\r\nimport { AppendPipeModule } from '../../pipes/append.pipe.module';\r\nimport {MultiSelectAllModule} from \"@syncfusion/ej2-angular-dropdowns\";\r\nimport {InputCheckboxMultiSelectComponent} from \"./input-checkbox-multi-select.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n BaseModule,\r\n CommonModule,\r\n FormsModule,\r\n IconModule,\r\n AppendPipeModule,\r\n MultiSelectAllModule\r\n ],\r\n declarations: [InputCheckboxMultiSelectComponent],\r\n exports: [InputCheckboxMultiSelectComponent]\r\n})\r\nexport class InputCheckboxMultiSelectModule {\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ComponentFactoryResolver,\r\n ElementRef,\r\n forwardRef,\r\n HostBinding,\r\n Input,\r\n Optional,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {BaseInputComponent} from \"../base/base-input.component\";\r\nimport {FormInputUserModelChangeListenerService} from \"../../core/service/form-input-user-change-listener.service\";\r\nimport {NgZoneWrapperService} from \"../../core/service/ng-zone-wrapper.service\";\r\nimport {FormComponent} from \"../form/form.component\";\r\nimport {COMPONENT_INTERFACE_NAME} from \"../base/component-interface-name\";\r\nimport {ComboBoxComponent} from \"@syncfusion/ej2-angular-dropdowns\";\r\n\r\n@Component({\r\n selector: \"co-input-combo-box\",\r\n template: `\r\n <ejs-combobox #combo [dataSource]=\"collection\"\r\n [fields]=\"fields\"\r\n [placeholder]=\"placeholder\"\r\n [autofill]=\"true\"\r\n [ngModel]=\"model\"\r\n (ngModelChange)=\"modelChange.emit($event)\"\r\n (focus)=\"onFocus()\"\r\n showClearButton=\"true\"\r\n floatLabelType=\"Auto\"\r\n >\r\n </ejs-combobox>\r\n <div class=\"required-indicator\"></div>\r\n <ng-template #validationError></ng-template>\r\n `,\r\n providers: [{\r\n provide: COMPONENT_INTERFACE_NAME,\r\n useExisting: forwardRef(() => InputComboBoxComponent)\r\n }],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class InputComboBoxComponent extends BaseInputComponent<any> {\r\n @ViewChild(\"combo\")\r\n public combo: ComboBoxComponent;\r\n\r\n @Input()\r\n public collection: Object[] | string[] | number[] | boolean[];\r\n\r\n @Input()\r\n public fields: Object;\r\n\r\n @Input()\r\n public selected: number | string | boolean;\r\n\r\n @Input()\r\n public placeholder: string;\r\n\r\n @Input()\r\n public shopPopup: boolean = true;\r\n\r\n @HostBinding(\"class.co-input-combo-box\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n @HostBinding(\"class.custom-height\")\r\n public customHeight: boolean = true;\r\n\r\n constructor(\r\n @Optional() public formComponent: FormComponent,\r\n protected changeDetector: ChangeDetectorRef,\r\n protected componentFactoryResolver: ComponentFactoryResolver,\r\n protected formUserChangeListener?: FormInputUserModelChangeListenerService,\r\n protected ngZoneWrapper?: NgZoneWrapperService,\r\n public elementRef?: ElementRef,\r\n ) {\r\n super(changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef);\r\n super._markAsOnPush();\r\n }\r\n\r\n public onFocus(): void {\r\n if (this.shopPopup && this.model === undefined) {\r\n this.combo.showPopup();\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { InputComboBoxComponent } from './input-combo-box.component';\r\nimport { IconModule } from '../icon/icon.module';\r\nimport { BaseModule } from '../base/base.module';\r\nimport { AppendPipeModule } from '../../pipes/append.pipe.module';\r\nimport {ComboBoxAllModule} from \"@syncfusion/ej2-angular-dropdowns\";\r\n\r\n@NgModule({\r\n imports: [\r\n BaseModule,\r\n CommonModule,\r\n FormsModule,\r\n IconModule,\r\n AppendPipeModule,\r\n ComboBoxAllModule\r\n ],\r\n declarations: [InputComboBoxComponent],\r\n exports: [InputComboBoxComponent]\r\n})\r\nexport class InputComboBoxModule {\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n ComponentFactoryResolver,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n HostBinding,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n Output,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {BaseInputComponent} from \"../base/base-input.component\";\r\nimport {COMPONENT_INTERFACE_NAME} from \"../base/component-interface-name\";\r\nimport {CoreComponentsIcon} from \"../../core/enum/core-components-icon.enum\";\r\nimport {FormInputUserModelChangeListenerService} from \"../../core/service/form-input-user-change-listener.service\";\r\nimport {NgZoneWrapperService} from \"../../core/service/ng-zone-wrapper.service\";\r\nimport {FormComponent} from \"../form/form.component\";\r\nimport {DatePickerComponent} from \"@syncfusion/ej2-angular-calendars\";\r\nimport {IconCacheService} from \"../icon/icon-cache.service\";\r\n\r\n@Component({\r\n selector: \"co-input-date\",\r\n template: `\r\n <ejs-datepicker #ejsDatePicker\r\n floatLabelType=\"Auto\"\r\n [format]=\"dateFormat\"\r\n [placeholder]=\"placeholder\"\r\n [ngModel]=\"model\"\r\n (ngModelChange)=\"modelChange.emit($event)\"\r\n ></ejs-datepicker>\r\n <div class=\"required-indicator\"></div>\r\n <ng-template #validationError></ng-template>\r\n `,\r\n providers: [{\r\n provide: COMPONENT_INTERFACE_NAME, useExisting: forwardRef(() => InputDatePickerComponent)\r\n }],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class InputDatePickerComponent extends BaseInputComponent<Date> implements OnInit, AfterViewInit, OnDestroy {\r\n public readonly icons: any = CoreComponentsIcon;\r\n\r\n // note: assigning empty string '' to this value will not visually reflect in an empty/clear native inner <input> text content\r\n @ViewChild(\"ejsDatePicker\")\r\n ejsDatePicker: DatePickerComponent;\r\n\r\n @Input()\r\n public dateFormat: string = \"dd-MM-yyyy\";\r\n\r\n @Input()\r\n public calendarIconName: CoreComponentsIcon = this.icons.CalendarEmpty;\r\n\r\n @Input()\r\n public iconHeight: string = \"24px\";\r\n\r\n @Input()\r\n public placeholder: string = \"\";\r\n\r\n @Input()\r\n public width: string | number;\r\n\r\n @Output()\r\n public readonly blur: EventEmitter<Event> = new EventEmitter<Event>();\r\n\r\n @HostBinding(\"class.co-input-date\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n constructor(\r\n @Optional() public formComponent: FormComponent,\r\n public iconCacheService: IconCacheService,\r\n protected changeDetector: ChangeDetectorRef,\r\n protected componentFactoryResolver: ComponentFactoryResolver,\r\n protected formUserChangeListener?: FormInputUserModelChangeListenerService,\r\n protected ngZoneWrapper?: NgZoneWrapperService,\r\n public elementRef?: ElementRef,\r\n ) {\r\n super(changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef);\r\n super._markAsOnPush();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.elementRef = undefined;\r\n super.ngOnDestroy();\r\n }\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.ejsDatePicker) {\r\n const calendarIcon: string = this.iconCacheService.getIconRawBase64(this.calendarIconName);\r\n const imgElement: HTMLElement = document.createElement(\"img\");\r\n imgElement.setAttribute(\r\n \"src\",\r\n calendarIcon\r\n );\r\n imgElement.setAttribute(\r\n \"height\",\r\n this.iconHeight\r\n );\r\n imgElement.setAttribute(\"class\", \"customImage\");\r\n //remove the font-icon class\r\n this.ejsDatePicker.element.parentElement\r\n .querySelector(\".e-icons\")\r\n .classList.remove(\"e-date-icon\");\r\n this.ejsDatePicker.element.parentElement\r\n .querySelector(\".e-icons\")\r\n .append(imgElement);\r\n this.changeDetector.detectChanges();\r\n }\r\n super.ngAfterViewInit();\r\n }\r\n\r\n public change(): void {\r\n this.model = this.ejsDatePicker.value;\r\n }\r\n}\r\n","import {NgModule, NO_ERRORS_SCHEMA} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { InputDatePickerComponent } from './input-date-picker.component';\r\nimport { IconModule } from '../icon/icon.module';\r\nimport { BaseModule } from '../base/base.module';\r\nimport { AppendPipeModule } from '../../pipes/append.pipe.module';\r\nimport {DatePickerModule} from \"@syncfusion/ej2-angular-calendars\";\r\n\r\n@NgModule({\r\n imports: [\r\n BaseModule,\r\n CommonModule,\r\n FormsModule,\r\n IconModule,\r\n AppendPipeModule,\r\n DatePickerModule\r\n ],\r\n schemas: [\r\n NO_ERRORS_SCHEMA\r\n ],\r\n declarations: [InputDatePickerComponent],\r\n exports: [InputDatePickerComponent]\r\n})\r\nexport class InputDatePickerModule {\r\n}\r\n","export const JAVA_MAX_INT: number = 2147483647;","import {JAVA_MAX_INT} from \"./java-max-int\";\r\n\r\nexport const DEFAULT_UPPER_BOUND_FOR_RANGE_COMPONENTS: number = JAVA_MAX_INT;","import {Subject} from \"rxjs\";\r\n\r\nimport {isNill} from \"../function/is-nill.function\";\r\nimport {DEFAULT_UPPER_BOUND_FOR_RANGE_COMPONENTS} from \"../constant/default-upper-bound-for-range-components\";\r\nimport {NumberUtils} from \"../utils/number-utils\";\r\n\r\n\r\n// A data type class that represents a stepped-bounds numerical value, with min max and step size. Value is always within these bounds and is auto corrected for incoming manipulation requests.\r\nexport class BoundsConstrainedNumberValue {\r\n public set value(value: number) {\r\n this.setValue(value, true);\r\n }\r\n\r\n public get value(): number {\r\n return this._value;\r\n }\r\n\r\n // Returns a display string of our .value number (NaN and undefined become the empty string).\r\n public get valueAsSting(): string {\r\n return this._valueAsString;\r\n }\r\n\r\n public set min(min: number) {\r\n if (isNill(min)) {\r\n return;\r\n }\r\n\r\n let shouldUpdateTrueMax: boolean = (this._min !== min);\r\n\r\n this._min = min;\r\n\r\n if (shouldUpdateTrueMax) {\r\n this._updateTrueMax();\r\n }\r\n }\r\n\r\n public get min(): number {\r\n return this._min;\r\n }\r\n\r\n public set max(max: number) {\r\n if (isNill(max)) {\r\n return;\r\n }\r\n\r\n let shouldUpdateTrueMax: boolean = (this._max !== max);\r\n\r\n this._max = max;\r\n\r\n if (shouldUpdateTrueMax) {\r\n this._updateTrueMax();\r\n }\r\n }\r\n\r\n public get max(): number {\r\n return this._max;\r\n }\r\n\r\n public get trueMax(): number {\r\n return this._trueMax;\r\n }\r\n\r\n // The step interval size for allowed numbers Y = min + N * step, where N is integer or 0.\r\n public set step(step: number) {\r\n if (isNill(step)) {\r\n return;\r\n }\r\n\r\n let shouldUpdateTrueMaxAndStepDecimals: boolean = (this._step !== step);\r\n\r\n this._step = step;\r\n\r\n if (shouldUpdateTrueMaxAndStepDecimals) {\r\n this._updateTrueMax();\r\n this._updateStepDecimals();\r\n }\r\n }\r\n\r\n public set decimals(decimals: number) {\r\n if (decimals > 0) {\r\n this._decimals = decimals;\r\n }\r\n }\r\n public get step(): number {\r\n return this._step;\r\n }\r\n\r\n public get stepDecimals(): number {\r\n return this._stepDecimals;\r\n }\r\n\r\n public get constraintsEnabled(): boolean {\r\n return this._constraintsEnabled;\r\n }\r\n\r\n // emits when the value changed (e.g. after it was corrected for bounds)\r\n public valueChange: Subject<number> = new Subject<number>();\r\n\r\n // the actual numeric current value, which we ensure always complies to our current min, max and step\r\n protected _value: number = 0;\r\n protected _decimals: number; // number of decimals of the value.\r\n protected _valueAsString: string = \"0\";\r\n protected _min: number = 0;\r\n protected _max: number = DEFAULT_UPPER_BOUND_FOR_RANGE_COMPONENTS;\r\n protected _step: number = 1; // stepsize before the decimal.\r\n protected _stepDecimals: number = 0; // derived from step\r\n protected _trueMax: number = DEFAULT_UPPER_BOUND_FOR_RANGE_COMPONENTS; // derived from min, max and step\r\n\r\n private _constraintsEnabled: boolean = true;\r\n\r\n private _precision?: number;\r\n private _scale?: number;\r\n\r\n constructor() {\r\n }\r\n\r\n public roundedDecimals(value: number): number {\r\n if (value >= 0) {\r\n return 1 / Math.pow(10, value);\r\n }\r\n return 0;\r\n }\r\n\r\n public putPrecision(precision: number): void {\r\n this._precision = precision;\r\n this.max = NumberUtils.PrecisionScaleToMaxValue(this._precision, this._scale);\r\n }\r\n\r\n public putScale(scale: number): void {\r\n this._scale = scale;\r\n this.step = NumberUtils.DecimalsToStepIncrement(this._scale);\r\n this.max = NumberUtils.PrecisionScaleToMaxValue(this._precision, this._scale);\r\n }\r\n\r\n // possibly corrects value for bounds\r\n public init(silent: boolean = false): void {\r\n this.setValue(this._value, silent);\r\n }\r\n\r\n // returns whether value really changed\r\n public setValueByUserInputText(text: string, silent: boolean = false): boolean {\r\n const prevVal: any = this.value;\r\n\r\n if (NumberUtils.IsParsableNumberInput(text)) {\r\n this.setValue(NumberUtils.ParseNumberInputOrDefault(text), silent);\r\n } else {\r\n this.setValue(undefined);\r\n }\r\n\r\n return prevVal !== this.value;\r\n }\r\n\r\n /**\r\n * Makes sure current value adheres to our stepped bounds. Returns true if inner value really changed (after sanitizing), false if not.\r\n * Returns whether value really changed.\r\n */\r\n public setValue(newValue: number, silent: boolean = false): boolean {\r\n const oldValue: number = this._value;\r\n\r\n if (!this._constraintsEnabled) {\r\n this._setValue(newValue);\r\n } else {\r\n // cut off given newValue float excesses for cases such as \"13.1000000000000000000001\"\r\n //newValue = NumberUtils.ParseFloat(newValue, NumberUtils.GetDecimalPlaces(this._step));\r\n\r\n if (this._decimals === undefined) {\r\n this._decimals = NumberUtils.GetDecimalPlaces(newValue);\r\n }\r\n\r\n newValue = NumberUtils.ParseFloat(newValue, this._decimals);\r\n // dont perform bounds check if no min or max set.\r\n if (isNaN(this._min) || isNaN(this._max)) {\r\n this._setValue(newValue);\r\n } else if (newValue >= this._min && newValue <= this._max) {\r\n this._setValue(NumberUtils.GetNearestNumberWithinSteppedBounds(newValue, this._min, this._max, this.roundedDecimals(this._decimals)));\r\n }\r\n }\r\n\r\n if (isNaN(this._value)) {\r\n this._setValue(undefined);\r\n }\r\n\r\n if (!silent) {\r\n this.valueChange.next(this._value);\r\n }\r\n\r\n return oldValue !== this._value;\r\n }\r\n\r\n public increment(steps: number = 1): void {\r\n this.setValue(this._value + this._step * steps);\r\n }\r\n\r\n public decrement(steps: number = 1): void {\r\n this.setValue(this._value - this._step * steps);\r\n }\r\n\r\n // afterwards, you may set any value, it won't be checked against our bounds anymore\r\n public disableConstraints(): void {\r\n this._constraintsEnabled = false;\r\n }\r\n\r\n public enableConstraints(): void {\r\n this._constraintsEnabled = true;\r\n }\r\n\r\n private _updateTrueMax(): void {\r\n this._trueMax = NumberUtils.GetTrueSteppedBoundsMax(this._min, this._max, this._step);\r\n }\r\n\r\n private _updateStepDecimals(): void {\r\n this._stepDecimals = NumberUtils.GetDecimalPlaces(this._step);\r\n }\r\n\r\n private _setValue(value: number): void {\r\n this._value = value;\r\n this._valueAsString = NumberUtils.ToString(this._value);\r\n }\r\n}\r\n","// human-readable JS keyboard codes, as found in KeyboardEvent.which numeric values\r\nexport enum KeyboardCode {\r\n Backspace = 8,\r\n Tab = 9,\r\n Enter = 13,\r\n Shift = 16,\r\n Escape = 27,\r\n SpaceBar = 32,\r\n End = 35,\r\n Home = 36,\r\n Left = 37,\r\n Up = 38,\r\n Right = 39,\r\n Down = 40,\r\n Insert = 45,\r\n Delete = 46,\r\n Zero = 48,\r\n One = 49,\r\n Two = 50,\r\n Three = 51,\r\n Four = 52,\r\n Five = 53,\r\n Six = 54,\r\n Seven = 55,\r\n Eight = 56,\r\n Nine = 57,\r\n A = 65,\r\n B = 66,\r\n C = 67,\r\n D = 68,\r\n e =\t69,\r\n F =\t70,\r\n G =\t71,\r\n H =\t72,\r\n I =\t73,\r\n J =\t74,\r\n K =\t75,\r\n L =\t76,\r\n M =\t77,\r\n N =\t78,\r\n O =\t79,\r\n P =\t80,\r\n Q =\t81,\r\n R =\t82,\r\n S =\t83,\r\n T =\t84,\r\n U =\t85,\r\n V =\t86,\r\n W =\t87,\r\n X =\t88,\r\n Y =\t89,\r\n Z =\t90,\r\n NumpadZero = 96,\r\n NumpadOne = 97,\r\n NumpadTwo = 98,\r\n NumpadThree = 99,\r\n NumpadFour = 100,\r\n NumpadFive = 101,\r\n NumpadSix = 102,\r\n NumpadSeven = 103,\r\n NumpadEight = 104,\r\n NumpadNine = 105,\r\n Substract = 109,\r\n DecimalPoint = 110,\r\n Add = 107,\r\n MinusFireFox = 173,\r\n Equal = 187,\r\n Comma = 188,\r\n Minus = 189,\r\n Period = 190,\r\n Tilde = 192\r\n}\r\n","import {KeyboardCode} from \"../enum/keyboard-code.enum\";\r\n\r\nexport const NUMBER_INPUTS_KEY_DOWN_WHITE_LIST: KeyboardCode[] = [\r\n /* navigation and functional utility buttons */\r\n KeyboardCode.Left,\r\n KeyboardCode.Up,\r\n KeyboardCode.Right,\r\n KeyboardCode.Down,\r\n KeyboardCode.Up,\r\n KeyboardCode.Tab,\r\n KeyboardCode.Home,\r\n KeyboardCode.End,\r\n KeyboardCode.Delete,\r\n KeyboardCode.Insert,\r\n KeyboardCode.Shift,\r\n KeyboardCode.Backspace,\r\n\r\n /* actual number input part */\r\n KeyboardCode.Comma,\r\n KeyboardCode.Period,\r\n KeyboardCode.DecimalPoint,\r\n KeyboardCode.Zero,\r\n KeyboardCode.One,\r\n KeyboardCode.Two,\r\n KeyboardCode.Three,\r\n KeyboardCode.Four,\r\n KeyboardCode.Five,\r\n KeyboardCode.Six,\r\n KeyboardCode.Seven,\r\n KeyboardCode.Eight,\r\n KeyboardCode.Nine,\r\n KeyboardCode.Minus,\r\n KeyboardCode.MinusFireFox,\r\n KeyboardCode.Substract,\r\n KeyboardCode.NumpadZero,\r\n KeyboardCode.NumpadOne,\r\n KeyboardCode.NumpadTwo,\r\n KeyboardCode.NumpadThree,\r\n KeyboardCode.NumpadFour,\r\n KeyboardCode.NumpadFive,\r\n KeyboardCode.NumpadSix,\r\n KeyboardCode.NumpadSeven,\r\n KeyboardCode.NumpadEight,\r\n KeyboardCode.NumpadNine\r\n];","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n ComponentFactoryResolver,\r\n ElementRef,\r\n forwardRef,\r\n HostBinding,\r\n Input,\r\n Optional,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {BaseInputComponent} from \"../base/base-input.component\";\r\nimport {COMPONENT_INTERFACE_NAME} from \"../base/component-interface-name\";\r\nimport {CoreComponentsIcon} from \"../../core/enum/core-components-icon.enum\";\r\nimport {KeyboardCode} from \"../../core/enum/keyboard-code.enum\";\r\nimport {FormInputUserModelChangeListenerService} from \"../../core/service/form-input-user-change-listener.service\";\r\nimport {NgZoneWrapperService} from \"../../core/service/ng-zone-wrapper.service\";\r\nimport {FormComponent} from \"../form/form.component\";\r\nimport {animate, state, style, transition, trigger} from \"@angular/animations\";\r\n\r\n@Component({\r\n selector: \"co-input-text\",\r\n template: `\r\n <label [textContent]=\"placeholder\"></label>\r\n <input #input\r\n [type]=\"type\"\r\n [ngModel]=\"model\"\r\n [readonly]=\"readonly\"\r\n [required]=\"required\"\r\n (ngModelChange)=\"modelChange.emit($event)\"\r\n >\r\n <div *ngIf=\"showSaveCancel && focused && canSaveOrCancel\" class=\"input-save-cancel-button-wrapper\" @showHideSaveCancel>\r\n <div class=\"input-save-cancel-button save\" (click)=\"commitClick($event)\"></div>\r\n <div class=\"input-save-cancel-button cancel\" (click)=\"cancelClick($event)\"></div>\r\n </div>\r\n <div class=\"required-indicator\"></div>\r\n <ng-template #validationError></ng-template>\r\n `,\r\n providers: [{\r\n provide: COMPONENT_INTERFACE_NAME,\r\n useExisting: forwardRef(() => InputTextComponent)\r\n }],\r\n animations: [\r\n trigger('showHideSaveCancel', [\r\n state('*', style({transform: 'scaleY(1)', opacity: 1})),\r\n state('void', style({transform: 'scaleY(0)', opacity: 0})),\r\n transition('void <=> *', animate(200))\r\n ]),\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class InputTextComponent extends BaseInputComponent<any> implements AfterViewInit {\r\n public readonly Icons: typeof CoreComponentsIcon = CoreComponentsIcon;\r\n\r\n @Input()\r\n public placeholder: string = \"\";\r\n\r\n @Input()\r\n public type: string = \"text\";\r\n\r\n @Input()\r\n public showClearButton: boolean = undefined;\r\n\r\n @Input()\r\n public keyDownWhiteList: KeyboardCode[];\r\n\r\n @HostBinding(\"class.co-input-text\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n @HostBinding(\"class.has-own-label\")\r\n public hasOwnLabel: boolean = true;\r\n\r\n constructor(\r\n @Optional() public formComponent: FormComponent,\r\n protected changeDetector: ChangeDetectorRef,\r\n protected componentFactoryResolver: ComponentFactoryResolver,\r\n protected formUserChangeListener?: FormInputUserModelChangeListenerService,\r\n protected ngZoneWrapper?: NgZoneWrapperService,\r\n public elementRef?: ElementRef,\r\n ) {\r\n super(changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef);\r\n super._markAsOnPush();\r\n }\r\n}\r\n","// Input values for 'buttonShowMode' of NumberPickerComponent.\r\nexport enum InputNumberPickerButtonShowMode {\r\n Always = \"always\",\r\n OnFocusOnly = \"onFocusOnly\",\r\n Never = \"never\"\r\n}\r\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n EventEmitter,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n ViewChild,\n ViewEncapsulation\n} from \"@angular/core\";\nimport {BaseInputComponent} from \"../base/base-input.component\";\nimport {InputBoolean} from \"../../core/decorator/input-boolean.decorator\";\nimport {Subscription} from \"rxjs\";\nimport {BoundsConstrainedNumberValue} from \"../../core/model/bounds-constrained-number-value\";\nimport {NUMBER_INPUTS_KEY_DOWN_WHITE_LIST} from \"../../core/constant/number-inputs-key-down-white-list\";\nimport {KeyboardCode} from \"../../core/enum/keyboard-code.enum\";\nimport {InputTextComponent} from \"../input-text/input-text.component\";\nimport {FormInputUserModelChangeListenerService} from \"../../core/service/form-input-user-change-listener.service\";\nimport {InputNumberPickerButtonShowMode} from \"../../core/enum/input-number-picker-show-mode.enum\";\nimport {IconCacheService} from \"../icon/icon-cache.service\";\nimport {CoreComponentsIcon} from \"../../core/enum/core-components-icon.enum\";\nimport {COMPONENT_INTERFACE_NAME} from \"../base/component-interface-name\";\nimport {FormComponent} from \"../form/form.component\";\n\n@Component({\n selector: 'co-input-number-picker',\n template: `\n <div class=\"button-wrapper\">\n <co-button *ngIf=\"showButtons\" class=\"minus-operator circle\" [class.select]=\"minSelected\"\n [disabled]=\"readonly\"\n [iconData]=\"iconCacheService.getIcon(minusIcon)\"\n (mousedown)=\"onMinusMouseDown($event)\"\n (mouseup)=\"stopAutoCounting()\" (mouseleave)=\"stopAutoCounting()\"></co-button>\n </div>\n <input type=\"text\"\n [ngModel]=\"numberLogic.valueAsSting\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n (keydown)=\"handleKeyDown($event)\"/>\n <div class=\"button-wrapper\">\n <co-button *ngIf=\"showButtons\" class=\"plus-operator circle\" [class.select]=\"plusSelected\"\n [disabled]=\"readonly\"\n [iconData]=\"iconCacheService.getIcon(plusIcon)\"\n (mousedown)=\"onPlusMouseDown($event)\"\n (mouseup)=\"stopAutoCounting()\" (mouseleave)=\"stopAutoCounting()\"></co-button>\n </div>\n `,\n providers: [{\n provide: COMPONENT_INTERFACE_NAME, useExisting: forwardRef(() => InputNumberPickerComponent)\n }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\n// A component that lets users pick a number by increasing and decreasing it with buttons, or by typing.\nexport class InputNumberPickerComponent extends BaseInputComponent<number> implements OnInit, OnDestroy {\n\n // @override\n @Input()\n public set model(model: number) {\n this.numberLogic.value = model;\n }\n\n public get model(): number {\n return this.numberLogic.value;\n }\n\n @Input()\n public set min(min: number) {\n this.numberLogic.min = min;\n }\n\n @Input()\n public set step(step: number) {\n this.numberLogic.step = step;\n }\n\n @Input()\n public set max(max: number) {\n this.numberLogic.max = max;\n }\n\n @Input()\n public ngModelOptions: any;\n\n @Input()\n public minusIcon: CoreComponentsIcon = CoreComponentsIcon.MinusSimple;\n\n @Input()\n public plusIcon: CoreComponentsIcon = CoreComponentsIcon.PlusSimple;\n\n // Whether to show buttons 'always', 'onFocusOnly', or 'never'\n @Input()\n public buttonShowMode: InputNumberPickerButtonShowMode = InputNumberPickerButtonShowMode.Always;\n\n // @override Default true for us.\n @Input() @InputBoolean()\n public noValidation: boolean = true;\n\n @Input()\n public set decimals(decimals: number) {\n this.numberLogic.decimals = decimals;\n }\n\n // @override\n @Output()\n public readonly modelChange: EventEmitter<number> = new EventEmitter<number>();\n\n @ViewChild(InputTextComponent, { static: true })\n public inputTextComp: InputTextComponent;\n\n @HostBinding(\"class.show-buttons-on-focus-only\")\n public get showButtonsOnFocusOnly(): boolean {\n return this.buttonShowMode === InputNumberPickerButtonShowMode.OnFocusOnly;\n }\n\n @HostBinding(\"class.has-label\")\n public get hasLabel(): boolean {\n return !!this.label;\n }\n\n @HostBinding('class.co-input-number-picker')\n public showClass(): boolean {\n return true;\n }\n\n public showButtons: boolean;\n\n public readonly myKeyDownWhiteList: KeyboardCode[] = NUMBER_INPUTS_KEY_DOWN_WHITE_LIST;\n\n public readonly numberLogic: BoundsConstrainedNumberValue = new BoundsConstrainedNumberValue();\n\n public minSelected: boolean = false;\n public plusSelected: boolean = false;\n\n private _numberInputHasFocus: boolean = false;\n\n private _numberLogicValueChangeSub: Subscription;\n private readonly _delayBeforeStartAutoCountMs: number = 666;\n // the 'speed gears' for auto counting\n private readonly _stepFactors: number[] = [1, 10, 20];\n // increase step size timing\n private readonly _msChangeStepFactor: number = 1000;\n // step speed\n private readonly _msDoStep: number = 5;\n // hold the mouse down and this increases for a faster auto increment\n private _stepFactor: number = this._stepFactors[0];\n private _mayAutoCount: boolean = false;\n\n private _autoCountTimeout: number;\n private _stepIncrementTimeout: number;\n private _startAutocountTimeout: number;\n\n constructor(\n @Optional() public formComponent: FormComponent,\n @Inject(IconCacheService) public iconCacheService: IconCacheService,\n private _ngZone: NgZone,\n protected componentFactoryResolver: ComponentFactoryResolver,\n changeDetector: ChangeDetectorRef,\n formUserChangeListener: FormInputUserModelChangeListenerService\n ) {\n super(changeDetector, componentFactoryResolver, formUserChangeListener);\n\n this._numberLogicValueChangeSub = this.numberLogic.valueChange.subscribe((value: number) => {\n this.inputTextComp.model = \"\" + value; // faster than this.detectChanges() just for that input\n\n if (!this._mayAutoCount) {\n this.modelChange.emit(value);\n // custom form user chagne listener .next because we don't user super.updateModel() which normally does that for us\n if (this._markedAsUserTouched) {\n this.formUserChangeListener.userModelChange.next(value);\n this.userModelChange.next(value);\n }\n }\n });\n }\n\n ngOnInit(): void {\n this.numberLogic.init(true);\n this._updateButtonsShowState();\n }\n\n ngOnDestroy(): void {\n this._numberLogicValueChangeSub.unsubscribe();\n clearTimeout(this._autoCountTimeout);\n clearTimeout(this._stepIncrementTimeout);\n clearTimeout(this._startAutocountTimeout);\n }\n\n // Note: recursive through setTimeout().\n public doIncrementAuto(): void {\n this._mayAutoCount = true;\n\n this.increment(this._stepFactor);\n\n this._ngZone.runOutsideAngular(() => {\n this._autoCountTimeout = window.setTimeout(() => {\n if (this._mayAutoCount) {\n this.doIncrementAuto();\n this.changeDetector.detectChanges();\n }\n }, this._msDoStep);\n });\n }\n\n public handleKeyDown(event: KeyboardEvent): boolean {\n // event.preventDefault();\n if (this.myKeyDownWhiteList.find((k) => k === event.keyCode) === undefined) {\n return false;\n }\n }\n\n // Note: recursive through setTimeout().\n public doDecrementAuto(): void {\n this._mayAutoCount = true;\n\n this.decrement(this._stepFactor);\n\n this._ngZone.runOutsideAngular(() => {\n this._autoCountTimeout = window.setTimeout(() => {\n if (this._mayAutoCount) {\n this.doDecrementAuto();\n this.changeDetector.detectChanges();\n }\n }, this._msDoStep);\n });\n }\n\n public stopAutoCounting(): void {\n this.minSelected = false;\n this.plusSelected = false;\n this._mayAutoCount = false;\n this._stepFactor = this._stepFactors[0];\n }\n\n // Sets the current number value with given newValue, optionally silent (no valueChange event fired).\n public setValue(newValue: number, silent: boolean = false): void {\n this.numberLogic.setValue(newValue, silent);\n }\n\n public increment(steps: number = 1): void {\n this.numberLogic.increment(steps);\n }\n\n public decrement(steps: number = 1): void {\n this.numberLogic.decrement(steps);\n }\n\n public onPlusMouseDown(event: Event): void {\n if (this.readonly) {\n event.preventDefault();\n return;\n }\n this.plusSelected = true;\n this._markedAsUserTouched = true;\n\n // keeps focus on input text instead of button\n event.preventDefault();\n\n this.increment();\n this._mayAutoCount = true;\n\n clearTimeout(this._startAutocountTimeout);\n this._startAutocountTimeout = window.setTimeout(() => {\n if (this._mayAutoCount) {\n this.doIncrementAuto();\n this._doIncreaseStepFactor();\n }\n }, this._delayBeforeStartAutoCountMs);\n }\n\n public onMinusMouseDown(event: Event): void {\n if (this.readonly) {\n event.preventDefault();\n return;\n }\n this.minSelected = true;\n this._markedAsUserTouched = true;\n // keeps focus on input text instead of button\n event.preventDefault();\n\n this.decrement();\n this._mayAutoCount = true;\n\n clearTimeout(this._startAutocountTimeout);\n this._startAutocountTimeout = window.setTimeout(() => {\n if (this._mayAutoCount) {\n this.doDecrementAuto();\n this._doIncreaseStepFactor();\n }\n }, this._delayBeforeStartAutoCountMs);\n }\n\n // Possibly show buttons.\n public onNumberInputFocus(): void {\n this._numberInputHasFocus = true;\n this._updateButtonsShowState();\n }\n\n // Value correction point.\n public onNumberInputBlur(): void {\n this._numberInputHasFocus = false;\n this.numberLogic.setValueByUserInputText(this.inputTextComp.model);\n this._updateButtonsShowState();\n }\n\n // Note: recursive.\n private _doIncreaseStepFactor(): void {\n this._stepIncrementTimeout = window.setTimeout(() => {\n if (this._mayAutoCount) {\n this._stepFactor = this._getNextStepFactorMouseDown();\n this._doIncreaseStepFactor();\n }\n }, this._msChangeStepFactor);\n }\n\n private _getNextStepFactorMouseDown(): number {\n const curIdx: number = this._stepFactors.indexOf(this._stepFactor);\n if (curIdx < this._stepFactors.length - 1) {\n return this._stepFactors[curIdx + 1];\n }\n return this._stepFactor;\n }\n\n // Show or hide + and - buttons. Might hide buttons if number input lost focus and button show mode is on focus only.\n private _updateButtonsShowState(): void {\n switch (this.buttonShowMode) {\n case InputNumberPickerButtonShowMode.Always:\n default:\n this.showButtons = true;\n break;\n case InputNumberPickerButtonShowMode.OnFocusOnly:\n this.showButtons = this._numberInputHasFocus;\n break;\n case InputNumberPickerButtonShowMode.Never:\n this.showButtons = false;\n break;\n }\n }\n}\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {ValidationErrorComponent} from \"./validation-error.component\";\r\nimport {IconModule} from \"../icon/icon.module\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IconModule\r\n ],\r\n declarations: [\r\n ValidationErrorComponent\r\n ],\r\n exports: [\r\n ValidationErrorComponent\r\n ]\r\n})\r\nexport class ValidationErrorModule {\r\n\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {FormsModule} from \"@angular/forms\";\r\nimport {InputTextComponent} from \"./input-text.component\";\r\nimport {IconModule} from \"../icon/icon.module\";\r\nimport {BaseModule} from \"../base/base.module\";\r\nimport {AppendPipeModule} from \"../../pipes/append.pipe.module\";\r\nimport {NumericTextBoxModule, TextBoxAllModule} from \"@syncfusion/ej2-angular-inputs\";\r\nimport {ValidationErrorModule} from \"../validation-error/validation-error.module\";\r\n\r\n@NgModule({\r\n imports: [\r\n BaseModule,\r\n CommonModule,\r\n FormsModule,\r\n IconModule,\r\n AppendPipeModule,\r\n TextBoxAllModule,\r\n NumericTextBoxModule,\r\n ValidationErrorModule\r\n ],\r\n declarations: [\r\n InputTextComponent\r\n ],\r\n exports: [\r\n InputTextComponent\r\n ]\r\n})\r\nexport class InputTextModule {\r\n}\r\n","import {NgModule} from \"@angular/core\";\nimport {CommonModule} from \"@angular/common\";\nimport {InputNumberPickerComponent} from \"./input-number-picker.component\";\nimport {ButtonModule} from \"../button/button.module\";\nimport {InputTextModule} from \"../input-text/input-text.module\";\nimport {FormsModule} from \"@angular/forms\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ButtonModule,\n InputTextModule\n ],\n declarations: [InputNumberPickerComponent],\n exports: [InputNumberPickerComponent]\n})\nexport class InputNumberPickerModule { }\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ComponentFactoryResolver,\r\n ElementRef,\r\n forwardRef,\r\n HostBinding,\r\n Input,\r\n Optional,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {BaseInputComponent} from \"../base/base-input.component\";\r\nimport {FormComponent} from \"../form/form.component\";\r\nimport {FormInputUserModelChangeListenerService} from \"../../core/service/form-input-user-change-listener.service\";\r\nimport {NgZoneWrapperService} from \"../../core/service/ng-zone-wrapper.service\";\r\nimport {COMPONENT_INTERFACE_NAME} from \"../base/component-interface-name\";\r\n\r\n@Component({\r\n selector: \"co-input-radio-button\",\r\n template: `\r\n <ejs-radiobutton\r\n [label]=\"label\"\r\n [name]=\"name\"\r\n [value]=\"value\"\r\n [checked]=\"checked\"\r\n (change)=\"handleModelChange($event)\"\r\n ></ejs-radiobutton>\r\n `,\r\n providers: [{\r\n provide: COMPONENT_INTERFACE_NAME, useExisting: forwardRef(() => InputRadioButtonComponent)\r\n }],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class InputRadioButtonComponent extends BaseInputComponent<any> {\r\n @Input()\r\n public value: any;\r\n\r\n @Input()\r\n public label: string;\r\n\r\n @Input()\r\n public name: string;\r\n\r\n @HostBinding('class.checked')\r\n @Input()\r\n public checked: boolean;\r\n\r\n @HostBinding(\"class.co-radio-button\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n constructor(\r\n @Optional() public formComponent: FormComponent,\r\n protected changeDetector: ChangeDetectorRef,\r\n protected componentFactoryResolver: ComponentFactoryResolver,\r\n protected formUserChangeListener?: FormInputUserModelChangeListenerService,\r\n protected ngZoneWrapper?: NgZoneWrapperService,\r\n public elementRef?: ElementRef,\r\n ) {\r\n super(changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef);\r\n super._markAsOnPush();\r\n }\r\n\r\n public handleModelChange(change: any): void {\r\n this.model = change.value;\r\n this.modelChange.next(this.model);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { BaseModule } from '../base/base.module';\r\nimport { InputRadioButtonComponent } from './input-radio-button.component';\r\nimport {CheckBoxModule, RadioButtonModule} from \"@syncfusion/ej2-angular-buttons\";\r\n\r\n@NgModule({\r\n imports: [\r\n BaseModule,\r\n CommonModule,\r\n FormsModule,\r\n CheckBoxModule,\r\n RadioButtonModule,\r\n ],\r\n declarations: [InputRadioButtonComponent],\r\n exports: [InputRadioButtonComponent]\r\n})\r\nexport class InputRadioButtonModule {\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n ComponentFactoryResolver,\r\n ElementRef,\r\n forwardRef,\r\n HostBinding,\r\n Input,\r\n Optional,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {BaseInputComponent} from \"../base/base-input.component\";\r\nimport {COMPONENT_INTERFACE_NAME} from \"../base/component-interface-name\";\r\nimport {FormInputUserModelChangeListenerService} from \"../../core/service/form-input-user-change-listener.service\";\r\nimport {NgZoneWrapperService} from \"../../core/service/ng-zone-wrapper.service\";\r\nimport {FormComponent} from \"../form/form.component\";\r\n\r\n@Component({\r\n selector: \"co-input-textarea\",\r\n template: `\r\n <label [textContent]=\"placeholder\"></label>\r\n <textarea\r\n #input\r\n type=\"textarea\"\r\n [ngModel]=\"model\"\r\n [readonly]=\"readonly\"\r\n [required]=\"required\"\r\n (ngModelChange)=\"modelChange.emit($event)\"\r\n ></textarea>\r\n <div class=\"required-indicator\"></div>\r\n <ng-template #validationError></ng-template>\r\n `,\r\n providers: [{\r\n provide: COMPONENT_INTERFACE_NAME,\r\n useExisting: forwardRef(() => InputTextareaComponent)\r\n }],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class InputTextareaComponent extends BaseInputComponent<any> implements AfterViewInit {\r\n @Input()\r\n public placeholder: string = \"\";\r\n\r\n @HostBinding(\"class.co-input-textarea\")\r\n public showClass(): boolean {\r\n return true;\r\n }\r\n\r\n @HostBinding(\"class.has-own-label\")\r\n public hasOwnLabel: boolean = true;\r\n\r\n @HostBinding('class.custom-height')\r\n public customHeight: boolean = true;\r\n\r\n constructor(\r\n @Optional() public formComponent: FormComponent,\r\n protected changeDetector: ChangeDetectorRef,\r\n protected componentFactoryResolver: ComponentFactoryResolver,\r\n protected formUserChangeListener?: FormInputUserModelChangeListenerService,\r\n protected ngZoneWrapper?: NgZoneWrapperService,\r\n public elementRef?: ElementRef,\r\n ) {\r\n super(changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef);\r\n super._markAsOnPush();\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {FormsModule} from \"@angular/forms\";\r\nimport {ValidationErrorModule} from \"../validation-error/validation-error.module\";\r\nimport {InputTextareaComponent} from \"./input-textarea.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ValidationErrorModule\r\n ],\r\n declarations: [\r\n InputTextareaComponent\r\n ],\r\n exports: [\r\n InputTextareaComponent\r\n ]\r\n})\r\nexport class InputTextareaModule {\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ComponentFactoryResolver,\r\n ElementRef,\r\n forwardRef,\r\n HostBinding,\r\n Input,\r\n Optional,\r\n TemplateRef,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {COMPONENT_INTERFACE_NAME} from \"../base/component-interface-name\";\r\nimport {BaseInputComponent} from \"../base/base-input.component\";\r\nimport {CheckBoxSelectionService} from \"@syncfusion/ej2-angular-dropdowns\";\r\nimport {FormInputUserModelChangeListenerService} from \"../../core/service/form-input-user-change-listener.service\";\r\nimport {NgZoneWrapperService} from \"../../core/service/ng-zone-wrapper.service\";\r\nimport {FormComponent} from \"../form/form.component\";\r\n\r\n@Component({\r\n selector: \"co-multi-select-list\",\r\n template: `\r\n <ejs-multiselect\r\n [dataSource]=\"collection\"\r\n [placeholder]=\"placeholder\"\r\n [value]=\"model\"\r\n [mode]=\"mode\"\r\n [fields]=\"fields\"\r\n [readonly]=\"readonly\"\r\n [itemTemplate]=\"itemTemplate\"\r\n [headerTemplate]=\"headerTemplate\"\r\n [valueTemplate]=\"valueTemplate\"\r\n [footerTemplate]=\"footerTemplate\"\r\n [selectAllText]=\"'Select All'\"\r\n [showSelectAll]=showSelectAll\r\n [ngModel]=\"model\"\r\n (ngModelChange)=\"handleModelChange($event)\"\r\n (valueChange)=\"handleModelChange($event)\"\r\n ></ejs-multiselect>\r\n <div class=\"required-indicator\"></div>\r\n <ng-template #validationError></ng-template>\r\n `,\r\n providers: [\r\n CheckBoxSelectionService,\r\n {\r\n provide: COMPONENT_INTERFACE_NAME,\r\n useExisting: forwardRef(() => MultiSelectListComponent)\r\n }\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MultiSelectListComponent extends BaseInputComponent<any[]> {\r\n\r\n @Input()\r\n public collection: any[];\r\n\r\n /**\r\n * In the form { text: 'name', value: 'id' }\r\n * Where 'text' is showing in the dropdown and 'id' used for the model binding\r\n */\r\n @Input()\r\n public fields: Object = {};\r\n\r\n @Input()\r\n public placeholder: string;\r\n\r\n @Input()\r\n public itemTemplate: TemplateRef<any>;\r\n\r\n @Input()\r\n public headerTemplate: TemplateRef<any>;\r\n\r\n @Input()\r\n public valueTemplate: TemplateRef<any>;\r\n\r\n @Input()\r\n public footerTemplate: TemplateRef<any>;\r\n\r\n @Input()\r\n public showSelectAll: boolean = true;\r\n\r\n @Input()\r\n public set showCheckbox(value: boolean) {\r\n if (value) {\r\n this.mode = \"CheckBox\";\r\n }\r\n }\r\n\r\n @HostBinding(\"class.co-multi-select-list\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n constructor(\r\n @Optional() public formComponent: FormComponent,\r\n protected changeDetector: ChangeDetectorRef,\r\n protected componentFactoryResolver: ComponentFactoryResolver,\r\n protected formUserChangeListener?: FormInputUserModelChangeListenerService,\r\n protected ngZoneWrapper?: NgZoneWrapperService,\r\n public elementRef?: ElementRef,\r\n ) {\r\n super(changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef);\r\n super._markAsOnPush();\r\n }\r\n\r\n public mode: any = \"Default\";\r\n\r\n public handleModelChange(val: any): void {\r\n if (Array.isArray(val)) {\r\n if (val.length < 1) {\r\n val = undefined;\r\n }\r\n }\r\n this.modelChange.next(val);\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {BaseModule} from \"../base/base.module\";\r\nimport {MultiSelectModule} from \"@syncfusion/ej2-angular-dropdowns\";\r\nimport {MultiSelectListComponent} from \"./multi-select-list.component\";\r\nimport {FormsModule} from \"@angular/forms\";\r\n\r\n@NgModule({\r\n imports: [\r\n BaseModule,\r\n CommonModule,\r\n MultiSelectModule,\r\n FormsModule\r\n ],\r\n declarations: [MultiSelectListComponent],\r\n exports: [MultiSelectListComponent]\r\n})\r\nexport class MultiSelectListModule {\r\n}\r\n","import {AfterViewInit, Component, EventEmitter, HostBinding, Input, OnInit, Output, ViewChild, ViewEncapsulation} from \"@angular/core\";\nimport {\n ConditionalFormattingService,\n FetchReportArgs,\n FieldListService,\n GroupingBarService,\n GroupingService,\n IDataOptions,\n LoadReportArgs,\n NumberFormattingService,\n PivotViewComponent,\n RemoveReportArgs,\n RenameReportArgs,\n SaveReportArgs,\n ToolbarArgs,\n ToolbarItems,\n ToolbarService\n} from \"@syncfusion/ej2-angular-pivotview\";\nimport {GridSettings} from \"@syncfusion/ej2-pivotview/src/pivotview/model/gridsettings\";\nimport {InputBoolean} from \"../../core/decorator/input-boolean.decorator\";\n\n@Component({\n selector: 'co-pivot',\n template: `\n <ejs-pivotview\n #pivot\n id=\"Pivot\"\n [dataSourceSettings]=\"dataSourceSettings\"\n [gridSettings]=\"gridSettings\"\n [showGroupingBar]=\"showGroupingBar\"\n [allowGrouping]=\"allowGrouping\"\n [enablePersistence]=\"enablePersistence\"\n [showFieldList]=\"showFieldList\"\n [showToolbar]=\"showToolbar\"\n [toolbar]=\"toolbarOptions\"\n [allowExcelExport]=\"allowExcelExport\"\n [allowConditionalFormatting]=\"allowConditionalFormatting\"\n [allowNumberFormatting]=\"allowNumberFormatting\"\n [allowPdfExport]=\"allowPdfExport\"\n [allowCalculatedField]=\"allowCalculatedField\"\n [height]=\"height\"\n (saveReport)=\"saveReport($event)\"\n (loadReport)=\"loadReport($event)\"\n (fetchReport)=\"fetchReport($event)\"\n (renameReport)=\"renameReport($event)\"\n (removeReport)=\"removeReport($event)\"\n (newReport)=\"newReport()\"\n (toolbarRender)=\"beforeToolbarRender($event)\"\n (enginePopulated)=\"hanldeEnginePopulated($event)\"\n >\n </ejs-pivotview>\n `,\n providers: [GroupingBarService, GroupingService, ToolbarService, ConditionalFormattingService, FieldListService, NumberFormattingService],\n encapsulation: ViewEncapsulation.None\n})\nexport class CoPivotComponent implements OnInit, AfterViewInit {\n @ViewChild('pivot', {static: false})\n public pivot: PivotViewComponent;\n\n @Input()\n public dataSourceSettings: IDataOptions;\n\n @Input()\n public gridSettings: GridSettings;\n\n @Input()\n public toolbarOptions: ToolbarItems[];\n\n @Input()\n @InputBoolean()\n public showGroupingBar: boolean = false;\n\n @Input()\n @InputBoolean()\n public allowGrouping: boolean = false;\n\n @Input()\n @InputBoolean()\n public enablePersistence: boolean = false;\n\n @Input()\n @InputBoolean()\n public showFieldList: boolean = false;\n\n @Input()\n @InputBoolean()\n public showToolbar: boolean = false;\n\n @Input()\n @InputBoolean()\n public allowExcelExport: boolean = false;\n\n @Input()\n @InputBoolean()\n public allowPdfExport: boolean = false;\n\n @Input()\n @InputBoolean()\n public allowConditionalFormatting: boolean = true;\n\n @Input()\n @InputBoolean()\n public allowNumberFormatting: boolean = true;\n\n @Input()\n @InputBoolean()\n public allowCalculatedField: boolean = false;\n\n @Input()\n public height: string = \"100%\";\n\n @Output()\n public saveReportClick: EventEmitter<SaveReportArgs> = new EventEmitter<SaveReportArgs>();\n\n @Output()\n public loadReportClick: EventEmitter<LoadReportArgs> = new EventEmitter<LoadReportArgs>();\n\n @Output()\n public fetchReportClick: EventEmitter<FetchReportArgs> = new EventEmitter<FetchReportArgs>();\n\n @Output()\n public renameReportClick: EventEmitter<RenameReportArgs> = new EventEmitter<RenameReportArgs>();\n\n @Output()\n public removeReportClick: EventEmitter<RemoveReportArgs> = new EventEmitter<RemoveReportArgs>();\n\n @Output()\n public newReportClick: EventEmitter<void> = new EventEmitter<void>();\n\n @Output()\n public beforeToolbarRenderClick: EventEmitter<ToolbarArgs> = new EventEmitter<ToolbarArgs>();\n\n @Output()\n public enginePopulated: EventEmitter<any> = new EventEmitter<any>();\n\n @HostBinding(\"class.co-pivot\")\n public showClass() {\n return true;\n }\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.pivot.refresh();\n this.pivot.refreshData();\n this.pivot.layoutRefresh();\n }, 3000);\n }\n\n public saveReport(args: SaveReportArgs): void {\n if (args) {\n this.saveReportClick.next(args);\n }\n }\n\n public loadReport(args: LoadReportArgs): void {\n if (args) {\n this.loadReportClick.next(args);\n }\n }\n\n public fetchReport(args: FetchReportArgs): void {\n if (args) {\n this.fetchReportClick.next(args);\n }\n }\n\n public renameReport(args: RenameReportArgs): void {\n if (args) {\n this.renameReportClick.next(args);\n }\n }\n\n public removeReport(args: RemoveReportArgs): void {\n if (args) {\n this.removeReportClick.next(args);\n }\n }\n\n public newReport(): void {\n this.newReportClick.next();\n }\n\n public beforeToolbarRender(args: ToolbarArgs): void {\n if (args) {\n this.beforeToolbarRenderClick.next(args);\n }\n }\n\n public hanldeEnginePopulated(args: any): void {\n if (args) {\n this.enginePopulated.next(args);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CoPivotComponent } from './co-pivot.component';\nimport {PivotViewModule} from \"@syncfusion/ej2-angular-pivotview\";\n\n@NgModule({\n declarations: [CoPivotComponent],\n exports: [\n CoPivotComponent\n ],\n imports: [\n CommonModule,\n PivotViewModule\n ]\n})\nexport class CoPivotModule { }\n","import {AfterViewInit, ChangeDetectorRef, Component, Input, OnDestroy} from '@angular/core';\r\nimport { PopupButtonType } from '../../core/enum/popup-button-type.enum';\r\nimport { Popup } from './interface/popup';\r\n\r\n@Component({\r\n selector: \"co-text-input-popup\",\r\n template: `\r\n <co-input-text [(model)]=\"text\" [label]=\"label\" [noValidation]=\"true\" [initFocus]=\"true\"></co-input-text>\r\n `\r\n})\r\n// A popup component that lets the user type and submit a text string.\r\nexport class TextInputPopupComponent implements Popup<string>, AfterViewInit, OnDestroy {\r\n // The user-changeable text content of the input text.\r\n @Input()\r\n public text: string;\r\n\r\n // The label text for the input text. Localized.\r\n @Input()\r\n public label: string;\r\n\r\n constructor(private _changeDetector: ChangeDetectorRef) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._changeDetector = undefined;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this._changeDetector.detectChanges(); // fixes some changed-after-checked bug (popup service could have manipulated our text and label @Input's ..)\r\n }\r\n\r\n // @implements AppPopup\r\n async onClose(eventType: PopupButtonType): Promise<string> {\r\n return this.text;\r\n }\r\n}\r\n","/**\r\n * Represents the enumeration of file types of files that the application can recognize. Used, for instance, in\r\n * document view components to show an Excel, Pdf or Word icon for the documents file type.\r\n */\r\nexport enum FileTypeInternal {\r\n Test,\r\n Image,\r\n Swf,\r\n ExcelSheet,\r\n WordDocument,\r\n Pdf,\r\n TextFile,\r\n Executable,\r\n Undefined\r\n}\r\n","// DOM_BESTANDSSOORT\r\nexport enum FileType {\r\n // DOC: Document\r\n Document = \"DOC\",\r\n // IMG: Afbeelding\r\n Image = \"IMG\",\r\n // SDWEB: Digitale handtekening\r\n DigitalSignature = \"SDWEB\",\r\n}\r\n","export enum CoDocumentImageDisplayKind {\r\n NormalImage = \"N\",\r\n LayeredImage = \"L\",\r\n Avatar = \"A\"\r\n}\r\n","export enum ObjectRightType {\r\n NoAccess = 0,\r\n ReadOnly = 1,\r\n ReadWrite = 2\r\n}\r\n","import { TableName } from '../enum/table-name.enum';\r\nimport { CoDocumentType } from '../enum/co-document-type.enum';\r\nimport { FileType } from '../enum/file-type.enum';\r\nimport { FileTypeInternal } from '../enum/file-type-internal.enum';\r\nimport { FileUtils } from '../utils/file-utils';\r\nimport { CoDocumentImageDisplayKind } from '../enum/co-document-image-display-kind.enum';\r\nimport { ObjectRightType } from '../enum/object-right-type.enum';\r\nimport { Subject } from 'rxjs';\r\nimport { CoDocumentRight } from './co-document-right.bo';\r\n// See DocumentDTO.\r\nexport class CoDocument {\r\n public set documentId(value: number) {\r\n this._documentId = value;\r\n // this._idObject.docId = value;\r\n }\r\n\r\n public get documentId(): number {\r\n return this._documentId;\r\n }\r\n\r\n // @DateField()\r\n public creationDate: Date;\r\n // @DateField()\r\n public modifiedDate: Date;\r\n // public creationUser: string;\r\n // public modifiedUser: string;\r\n public description: string;\r\n public thumbnailBody: string;\r\n public table: TableName;\r\n public key: string;\r\n public filePath: string;\r\n public documentType: CoDocumentType;\r\n /**\r\n * The database-fetched mimetype of this document. Note: is barely set to a value, and when it's set, it's usually garbage data.\r\n * Use .mimeTypeInternal if you want the best educated guess of the true mime type of this document.\r\n */\r\n public mimeType: string;\r\n public publication: number;\r\n public fileSize: string;\r\n public fileType: FileType;\r\n public isLoaded: boolean;\r\n public index: number;\r\n public imageDimensions: string;\r\n public title: string;\r\n // @BooleanText(\"T\")\r\n // public downloadable: boolean;\r\n // @BooleanText(\"T\")\r\n // public attachToNotification: boolean;\r\n // @BooleanText(\"T\")\r\n // @DefaultSendValue(\"F\")\r\n // public pathIsUrl: boolean = false;\r\n // public imageType: string;\r\n public imageDisplayKind: CoDocumentImageDisplayKind;\r\n // @ComplexArray(Tag)\r\n // public tags: Tag[] = [];\r\n public rightLevel: ObjectRightType;\r\n // @ComplexArray(CoDocumentRight)\r\n public rights: CoDocumentRight[] = [];\r\n\r\n public set documentBody(documentBody: string) {\r\n const prev: string = this._documentBody;\r\n\r\n this._documentBody = documentBody;\r\n\r\n if (prev !== this._documentBody) {\r\n this.documentBodyChange.next(this._documentBody);\r\n }\r\n }\r\n\r\n public get documentBody(): string {\r\n return this._documentBody;\r\n }\r\n\r\n // @DefaultSendValue([])\r\n // @ComplexArray(ArticleSeoValue)\r\n // public seoTitles: ArticleSeoValue[] = [];\r\n public fileName: string;\r\n public retailFormulas: string[] = [];\r\n\r\n // @NoDbField()\r\n // public idForLink: number;\r\n\r\n // The internal file type of this document (the MimeType iOneJS uses internally)\r\n public get fileTypeInternal(): FileTypeInternal {\r\n if (!this._fileTypeInternal) {\r\n const fileType: FileTypeInternal = FileUtils.FileNameToFileTypeInternal(this.fileName);\r\n if (fileType) {\r\n this._fileTypeInternal = fileType;\r\n }\r\n }\r\n return this._fileTypeInternal;\r\n }\r\n\r\n /**\r\n * The mimetype of this document: uses database-fetched this.mimeType, or calculates / guesses the mime type of the document\r\n * if that was not set.\r\n */\r\n public get mimeTypeInternal(): string {\r\n if (this._mimeTypeInternal) {\r\n return this._mimeTypeInternal;\r\n } else {\r\n this._initMimetypeInternal();\r\n return this._mimeTypeInternal;\r\n }\r\n }\r\n\r\n public set mimeTypeInternal(value: string) {\r\n this._mimeTypeInternal = value;\r\n }\r\n\r\n // Gives either the document-(prio) or the thumbnail body. Or undefined if not exist.\r\n public get bodyAsDataUri(): string {\r\n if (this._documentBody) {\r\n return this.documentBodyAsDataUri;\r\n } else if (this.thumbnailBody) {\r\n return this.thumbnailBodyAsDataUri;\r\n }\r\n }\r\n\r\n // The body of this document as a data uri. The data uri also contains the mimetype in its string, and the fact that it's base64.\r\n public get documentBodyAsDataUri(): string {\r\n try {\r\n return FileUtils.DocumentBodyToDataUri(this.documentBody, this.mimeTypeInternal);\r\n } catch (error) {\r\n return \"\";\r\n }\r\n }\r\n\r\n // The Thumbnailbody of this document as a data uri. The data uri also contains the mimetype in its string, and the fact that it's base64.\r\n public get thumbnailBodyAsDataUri(): string {\r\n try {\r\n return FileUtils.DocumentBodyToDataUri(this.thumbnailBody, this.mimeTypeInternal);\r\n } catch (error) {\r\n return \"\";\r\n }\r\n }\r\n\r\n public get isAvatar(): boolean {\r\n return this.imageDisplayKind === CoDocumentImageDisplayKind.Avatar;\r\n }\r\n\r\n // @DbFieldAlias(\"documentBody\")\r\n private _documentBody: string;\r\n //\r\n // @DbFieldAlias(\"documentId\")\r\n private _documentId: number;\r\n //\r\n // @NoDbField()\r\n // @ComplexField(Subject)\r\n public readonly documentBodyChange: Subject<string> = new Subject<string>();\r\n\r\n // The internal representation of the MimeType, see enum MimeType (actual mimeType field is not filled in db often)\r\n // @NoDbField()\r\n private _fileTypeInternal: FileTypeInternal;\r\n // eg \"image/jpeg\"\r\n // @NoDbField()\r\n private _mimeTypeInternal: string;\r\n //\r\n // @NoDbField()\r\n // private _idObject: any = {};\r\n\r\n public get readonly(): boolean {\r\n return this.rightLevel === ObjectRightType.ReadOnly;\r\n }\r\n\r\n constructor() {\r\n }\r\n\r\n public getId(): any {\r\n return this.documentId;\r\n }\r\n\r\n // Returns whether this is an image document or not.\r\n public isImageDocument(): boolean {\r\n return (this.fileTypeInternal === FileTypeInternal.Image);\r\n }\r\n\r\n // @BoSerializerStep()\r\n public preventOverridingThumbnailToEmpty(): void {\r\n if (!this.thumbnailBody) {\r\n this.thumbnailBody = this._documentBody;\r\n }\r\n }\r\n\r\n // POSTCONDITION: this._mimeTypeInternal contains, to our best abilities, the true mimeType of this document, a-la \"image/jpg\"\r\n private _initMimetypeInternal(): void {\r\n // if no fileType, default to FileType.Image for internal mimetype initialization\r\n if ((this.fileType === FileType.Image || !this.fileType) && this.fileName) {\r\n const fileExtension: string = this.fileName.substr(this.fileName.lastIndexOf(\".\") + 1);\r\n this._mimeTypeInternal = \"image/\" + fileExtension;\r\n }\r\n }\r\n}\r\n","// for refcode CV_DOCUMENTATIE.DOC_TYPE\r\nexport enum CoDocumentType {\r\n // BN: Document opslaan als bestand, locatie niet van toepassing\r\n SaveAsDocument = \"BN\",\r\n // LS: Document opslaan als link op willekeurige locatie\r\n SaveAsLinkOnRandomLocation = \"LS\",\r\n // LW: Document opslaan als link op standaardloactie\r\n SaveAsLinkOnDefaultLocation = \"LW\",\r\n}\r\n","import { FileTypeInternal } from '../enum/file-type-internal.enum';\r\nimport { CoDocument } from '../model/co-document.bo';\r\nimport { CoDocumentType } from '../enum/co-document-type.enum';\r\nimport { FileType } from '../enum/file-type.enum';\r\nimport { StringUtils } from './string-utils';\r\nimport { NumberUtils } from './number-utils';\r\n\r\nconst MaxUploadSize: number = 3145728; // 3Mb\r\n\r\n// @dynamic\r\nexport class FileUtils {\r\n\r\n // Returns MaxUploadSize in Megabytes.\r\n public static get MaxUploadSizeInMb(): number {\r\n return MaxUploadSize / 1024 / 1024;\r\n }\r\n\r\n public static DocumentBodyToDataUri(documentBody: string, mimeType: string): string {\r\n return StringUtils.IsStringWithLength(documentBody) ? \"data:\" + mimeType + \";base64,\" + documentBody : \"\";\r\n }\r\n\r\n // Returns the file type of the given file, by looking at its extension. Returns FileType.Undefined if not recognised.\r\n public static FileNameToFileTypeInternal(fileName: string): FileTypeInternal {\r\n if (!fileName) {\r\n return FileTypeInternal.Undefined;\r\n }\r\n const stringParts: string[] = fileName.split(\".\");\r\n const extension: string = stringParts[stringParts.length - 1];\r\n switch (extension.toLowerCase()) {\r\n case \"pdn\":\r\n case \"bmp\":\r\n case \"gif\":\r\n case \"jpg\":\r\n case \"jpeg\":\r\n case \"jpe\":\r\n case \"jfif\":\r\n case \"png\":\r\n case \"tif\":\r\n case \"tiff\":\r\n case \"tga\":\r\n case \"dds\":\r\n return FileTypeInternal.Image;\r\n case \"swf\":\r\n return FileTypeInternal.Swf;\r\n case \"xls\":\r\n case \"xlsx\":\r\n return FileTypeInternal.ExcelSheet;\r\n case \"doc\":\r\n case \"docx\":\r\n return FileTypeInternal.WordDocument;\r\n case \"pdf\":\r\n return FileTypeInternal.Pdf;\r\n case \"txt\":\r\n return FileTypeInternal.TextFile;\r\n case \"exe\":\r\n return FileTypeInternal.Executable;\r\n default:\r\n return FileTypeInternal.Undefined;\r\n }\r\n }\r\n\r\n // Checks if filetype of given file is of type image. Possible filetypes: image/png, image/bmp, image/jpeg, etc.\r\n public static IsImageFile(file: File | CoDocument): boolean {\r\n if (!file) {\r\n return false;\r\n }\r\n let fileName: string;\r\n let mimeType: string;\r\n if (file instanceof CoDocument) {\r\n fileName = file.fileName;\r\n mimeType = file.mimeTypeInternal;\r\n } else {\r\n fileName = file.name;\r\n mimeType = file.type;\r\n }\r\n if (mimeType !== \"\") {\r\n return mimeType.startsWith('image/');\r\n } else {\r\n return (FileUtils.FileNameToFileTypeInternal(fileName) === FileTypeInternal.Image);\r\n }\r\n }\r\n\r\n // Try to determine the file type of given document. First attempt is by filetype, second by file name.\r\n public static GetGlobalFileType(document: CoDocument): FileTypeInternal {\r\n if (!document) {\r\n return FileTypeInternal.Undefined;\r\n }\r\n if (document.mimeType !== \"\") {\r\n switch (document.mimeType) {\r\n case \"application/pdf\":\r\n return FileTypeInternal.Pdf;\r\n case \"application/msword\":\r\n return FileTypeInternal.WordDocument;\r\n case \"application/excel\":\r\n case \"application/vnd.ms-excel\":\r\n case \"application/x-excel\":\r\n case \"application/x-msexcel\":\r\n return FileTypeInternal.ExcelSheet;\r\n case \"text/plain\":\r\n case \"application/plain\":\r\n return FileTypeInternal.TextFile;\r\n default:\r\n return FileTypeInternal.Undefined;\r\n }\r\n } else {\r\n return FileUtils.FileNameToFileTypeInternal(document.fileName);\r\n }\r\n }\r\n\r\n // Checks filesize of given file and returns false if size exceeds maximum upload size.\r\n public static CheckMaxUploadSize(file: CoDocument | File): boolean {\r\n let fileSize: number = 0;\r\n if (file instanceof CoDocument) {\r\n fileSize = NumberUtils.ParseInt(file.fileSize);\r\n } else {\r\n fileSize = file.size;\r\n }\r\n return (fileSize <= MaxUploadSize);\r\n }\r\n\r\n public static async ConvertFileToDataUri(file: File): Promise<string> {\r\n if (file) {\r\n return new Promise<string>((resolve) => {\r\n const fileReader: FileReader = new FileReader();\r\n fileReader.onload = () => {\r\n resolve(<string> fileReader.result);\r\n };\r\n fileReader.readAsDataURL(file);\r\n });\r\n }\r\n }\r\n\r\n // Returns the given dataUri string stripped of the mimetype part.\r\n public static StripMimeStringFromDataUri(dataUri: string): string {\r\n if (!dataUri) {\r\n return \"\";\r\n }\r\n\r\n const mimeString: string = this.GetMimeStringFromDataUri(dataUri);\r\n return dataUri.substr(mimeString.length + 1);\r\n }\r\n\r\n public static GetMimeStringFromDataUri(dataUri: string): string {\r\n if (!dataUri) {\r\n return \"\";\r\n }\r\n\r\n return dataUri.split(',')[0];\r\n }\r\n\r\n // Converts given string data to an ArrayBuffer.\r\n public static ConvertStringToArrayBuffer(stringData: string): Uint8Array {\r\n if (!stringData) {\r\n return undefined;\r\n }\r\n const arrayBuffer: ArrayBuffer = new ArrayBuffer(stringData.length);\r\n const bufView: Uint8Array = new Uint8Array(arrayBuffer);\r\n for (let i: number = 0, len: number = stringData.length; i < len; i++) {\r\n bufView[i] = stringData.charCodeAt(i);\r\n }\r\n return bufView;\r\n }\r\n\r\n public static ConvertByteArrayToString(byteArray: number[]): string {\r\n let str: string = \"\";\r\n if (byteArray) {\r\n for (let i: number = 0, len: number = byteArray.length; i < len; i++) {\r\n str += String.fromCharCode(byteArray[i]);\r\n }\r\n }\r\n return str;\r\n }\r\n\r\n // Returns true if given string contains a data-uri/base64.\r\n public static StringContainsDataUri(str: string): boolean {\r\n if (!str) {\r\n return false;\r\n }\r\n const mimeString: string = str.split(',')[0];\r\n return mimeString.indexOf('base64') > -1;\r\n }\r\n\r\n /**\r\n * There is some discrepancy regarding locations of h3d objects\r\n * Therefor we need to (temporarily?!) fix the content url\r\n * Also we need to change some additionals\r\n */\r\n public static FixAssetUrl(assetUrl: string): string {\r\n if (!assetUrl) {\r\n return \"\";\r\n }\r\n let fixedUrl: string;\r\n if (assetUrl.indexOf('_webplayer') === -1) {\r\n fixedUrl = assetUrl.replace('.unity3d', '_webplayer.ione3d');\r\n } else {\r\n fixedUrl = assetUrl.replace('_webplayer.unity3d', '_webplayer.ione3d');\r\n }\r\n fixedUrl = fixedUrl.replace('content/', 'content43/');\r\n if (!fixedUrl.endsWith('.gz')) {\r\n fixedUrl = fixedUrl.concat('.gz');\r\n }\r\n return fixedUrl;\r\n }\r\n\r\n // Return the mimetype of the given filename.\r\n public static MimeTypeFromFilename(fileName: string): string {\r\n const regEx: RegExp = /(?:\\.([^.]+))?$/; // regex to find extension\r\n const extension: any = regEx.exec(fileName)[1];\r\n switch (extension) {\r\n case \"jpg\":\r\n case \"jpeg\":\r\n return \"image/jpeg\";\r\n case \"png\":\r\n return \"image/png\";\r\n case \"bmp\":\r\n return \"image/bmp\";\r\n }\r\n }\r\n\r\n public static DownloadFile(\r\n fileName: string,\r\n content: string,\r\n mimeType: string = \"text/plain\"\r\n ): void {\r\n const element: HTMLAnchorElement = document.createElement('a');\r\n element.setAttribute(\"href\", \"data:\" + mimeType + \";charset=utf-8,\" + encodeURIComponent(content));\r\n element.setAttribute(\"download\", fileName);\r\n\r\n element.style.display = \"none\";\r\n document.body.appendChild(element);\r\n\r\n element.click();\r\n\r\n document.body.removeChild(element);\r\n }\r\n\r\n // Returns the contents of given file as a text string.\r\n public static ReadAsText(file: File): Promise<string> {\r\n return new Promise<string>((resolve: Function) => {\r\n const reader: FileReader = new FileReader();\r\n reader.readAsText(file);\r\n reader.onloadend = (event: any) => {\r\n if (event.target.readyState === 2) {\r\n resolve(event.target.result);\r\n }\r\n };\r\n });\r\n }\r\n\r\n public static ReadFileAsNewCoDocument(file: File): Promise<CoDocument> {\r\n return new Promise<CoDocument>((resolve: Function) => {\r\n const reader: FileReader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onloadend = (event: any) => {\r\n if (event.target.readyState === 2) {\r\n const coDocument: CoDocument = new CoDocument();\r\n\r\n coDocument.fileSize = file.size.toString();\r\n coDocument.mimeTypeInternal = file.type;\r\n coDocument.mimeType = file.type;\r\n coDocument.fileName = file.name;\r\n coDocument.documentType = CoDocumentType.SaveAsDocument;\r\n coDocument.fileType = FileUtils.IsImageFile(file) ? FileType.Image : FileType.Document;\r\n coDocument.description = file.name;\r\n coDocument.documentBody = FileUtils.StripMimeStringFromDataUri(event.target.result);\r\n\r\n resolve(coDocument);\r\n }\r\n };\r\n });\r\n }\r\n\r\n public static GetExtensionFromDataUri(dataUri: string): string {\r\n const data: string = dataUri;\r\n return data.replace(/(data:image\\/)(.*?)(;base64.*)/gi, '$2');\r\n }\r\n\r\n public static CreateDownloadFileNameFromBase64(dataUri: string): string {\r\n const ext: string = this.GetExtensionFromDataUri(dataUri);\r\n return 'preview.' + ext;\r\n }\r\n\r\n public static DownloadFromDataUri(dataUri: string, fileName: string): void {\r\n const link: any = document.createElement(\"a\");\r\n link.download = fileName;\r\n link.href = dataUri;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n}\r\n","import { ElementRef } from '@angular/core';\r\nimport { ElementPosition } from '../model/element-position';\r\n\r\nexport class BrowserUtils {\r\n public static ScrollToTop(nativeElement: any, milliSeconds: number = 200): void {\r\n return BrowserUtils._ScrollTo(\"scrollTop\", nativeElement, milliSeconds, 0);\r\n }\r\n\r\n public static DownloadFile(encodedUri: string, fileType: string): void {\r\n const link: HTMLAnchorElement = document.createElement(\"a\");\r\n const date: string = new Date().toDateString();\r\n\r\n link.href = encodedUri;\r\n link.target = '_blank';\r\n link.download = \"export_\" + date + fileType;\r\n\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n\r\n public static CopyToClipboard(data: string): void {\r\n\r\n const textArea: any = document.createElement(\"TEXTAREA\");\r\n const textNode: any = document.createTextNode(data);\r\n\r\n textArea.appendChild(textNode);\r\n document.body.appendChild(textArea); // Required for FF\r\n textArea.select();\r\n document.execCommand(\"copy\");\r\n document.body.removeChild(textArea);\r\n }\r\n\r\n public static TabFocusNextElement(): void {\r\n const nextTabStop: any = BrowserUtils._FindNextTabStop(document.activeElement);\r\n if (nextTabStop) {\r\n nextTabStop.focus();\r\n }\r\n }\r\n\r\n public static AreDimensionsInView(dimensions: ElementPosition, view?: ElementRef): boolean {\r\n const vp: ElementPosition = BrowserUtils.GetDimensions(view);\r\n\r\n return dimensions.top >= vp.top && dimensions.left >= vp.left && dimensions.bottom <= vp.bottom && dimensions.right <= vp.right;\r\n }\r\n\r\n public static HorizontalFitInView(dimensions: ElementPosition, view?: ElementRef): boolean {\r\n const vp: ElementPosition = BrowserUtils.GetDimensions(view);\r\n\r\n return dimensions.left >= vp.left && dimensions.right <= vp.right;\r\n }\r\n\r\n public static VerticalFitInView(dimensions: ElementPosition, view?: ElementRef): boolean {\r\n const vp: ElementPosition = BrowserUtils.GetDimensions(view);\r\n\r\n return dimensions.top >= vp.top && dimensions.bottom <= vp.bottom;\r\n }\r\n\r\n public static GetViewport(): ElementPosition {\r\n\r\n let viewPortWidth: number;\r\n let viewPortHeight: number;\r\n\r\n // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight\r\n if (typeof window.innerWidth !== 'undefined') {\r\n viewPortWidth = window.innerWidth;\r\n viewPortHeight = window.innerHeight;\r\n } else if (typeof document.documentElement !== 'undefined' &&\r\n typeof document.documentElement.clientWidth !== 'undefined' &&\r\n document.documentElement.clientWidth !== 0) {\r\n viewPortWidth = document.documentElement.clientWidth;\r\n viewPortHeight = document.documentElement.clientHeight;\r\n } else {\r\n viewPortWidth = document.getElementsByTagName('body')[0].clientWidth;\r\n viewPortHeight = document.getElementsByTagName('body')[0].clientHeight;\r\n }\r\n\r\n return {left: 0, top: 0, right: viewPortWidth, bottom: viewPortHeight};\r\n }\r\n\r\n public static GetDimensions(view?: ElementRef): ElementPosition {\r\n if (!view) {\r\n return this.GetViewport();\r\n } else {\r\n const elem: HTMLElement = view instanceof HTMLElement ? view : view.nativeElement;\r\n const cr: ClientRect = elem.getBoundingClientRect();\r\n return {left: cr.left, top: cr.top, right: cr.right, bottom: cr.bottom};\r\n }\r\n }\r\n\r\n // Recursive.\r\n private static _ScrollTo(elementScrollProp: string, element: any, milliSeconds: number, toScrollEnd: number): void {\r\n if (!element || milliSeconds <= 0) {\r\n return;\r\n }\r\n\r\n const difference: number = toScrollEnd - element[elementScrollProp];\r\n const scrollPerTick: number = difference / milliSeconds * 10;\r\n\r\n setTimeout(() => {\r\n element[elementScrollProp] = element[elementScrollProp] + scrollPerTick;\r\n if (element[elementScrollProp] === toScrollEnd) {\r\n return;\r\n }\r\n BrowserUtils._ScrollTo(elementScrollProp, element, milliSeconds - 10, toScrollEnd);\r\n }, 10);\r\n }\r\n\r\n private static _FindNextTabStop(element: Element): Element {\r\n const tabStopElements: NodeListOf<Element> = document.querySelectorAll(\r\n 'a[href], area[href], input:not(.hidden):not(.disabled):not(.readonly):not(.read-only), select:not(.hidden):not(.disabled):not(.readonly):not(.read-only), textarea:not(.hidden):not(.disabled):not(.readonly):not(.read-only), button:not(.hidden):not(.disabled):not(.readonly):not(.read-only), iframe, object, embed, *[tabindex]:not(.hidden):not(.disabled):not(.readonly):not(.read-only), *[contenteditable]:not(.hidden):not(.disabled):not(.readonly):not(.read-only)'\r\n );\r\n const actualStopEls: Element[] = [];\r\n for (let i: number = 0, len: number = tabStopElements.length; i < len; i++) {\r\n const tabEl: any = tabStopElements[i];\r\n if (tabEl.tabIndex >= 0) {\r\n actualStopEls.push(tabEl);\r\n }\r\n }\r\n const elIdx: number = actualStopEls.indexOf(element);\r\n return actualStopEls[elIdx + 1] || undefined;\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { PopupButtonType } from '../../core/enum/popup-button-type.enum';\r\nimport { FileUtils } from '../../core/utils/file-utils';\r\nimport { BrowserUtils } from '../../core/utils/browser-utils';\r\nimport { Popup } from './interface/popup';\r\n\r\n@Component({\r\n selector: \"co-popup-message-display\",\r\n template: `\r\n <span *ngIf=\"!image\" class=\"message\" [textContent]=\"message\"></span>\r\n <img *ngIf=\"image\" [src]=\"message\"/>\r\n <ng-container *ngIf=\"details\" label=\"DETAILS\">\r\n <div class=\"overflow-y-auto overflow-x-hidden details\">\r\n <span class=\"message wrap\" [textContent]=\"details\" style=\"overflow-wrap: break-word;\"></span>\r\n </div>\r\n <span class=\"details-link\" [textContent]=\"'COPY_MESSAGE_TO_CLIPBOARD'\" (click)=\"handleCopyClick()\"></span>\r\n </ng-container>\r\n `\r\n})\r\nexport class PopupMessageDisplayComponent implements Popup<PopupButtonType> {\r\n @Input()\r\n public set message(value: string) {\r\n this._message = value;\r\n this.image = FileUtils.StringContainsDataUri(value);\r\n }\r\n\r\n public get message(): string {\r\n return this._message;\r\n }\r\n\r\n @Input()\r\n public details: string;\r\n\r\n public image: boolean = false;\r\n\r\n private _message: string = \"\";\r\n\r\n constructor() {\r\n }\r\n\r\n // @implements AppPopup\r\n async onClose(eventType: PopupButtonType): Promise<PopupButtonType> {\r\n return eventType;\r\n }\r\n\r\n public handleCopyClick(): void {\r\n BrowserUtils.CopyToClipboard(this.details);\r\n }\r\n}\r\n","// the different types of buttons for the app window component\r\nexport enum PopupButtonType {\r\n Ok,\r\n Open,\r\n Save,\r\n Cancel,\r\n Yes,\r\n No,\r\n NoButton\r\n}\r\n","import { PopupButtonType } from '../../../core/enum/popup-button-type.enum';\r\n\r\nexport class PopupButton {\r\n public label: string;\r\n public cssClass: string;\r\n public closeType: PopupButtonType;\r\n public disabled: boolean;\r\n\r\n constructor(label: string, cssClass: string, closeType: PopupButtonType) {\r\n this.label = label;\r\n this.cssClass = cssClass;\r\n this.closeType = closeType;\r\n }\r\n}\r\n","import { PopupButtonType } from '../../../core/enum/popup-button-type.enum';\r\nimport { PopupButton } from '../interface/popup-button';\r\n\r\nexport class PopupButtonGlobals {\r\n public static readonly Ok: PopupButton = new PopupButton('OK', 'ok-button', PopupButtonType.Ok);\r\n public static readonly Open: PopupButton = new PopupButton('OPEN', 'open-button', PopupButtonType.Open);\r\n public static readonly Save: PopupButton = new PopupButton('SAVE', 'save-button', PopupButtonType.Save);\r\n public static readonly Cancel: PopupButton = new PopupButton('CANCEL', 'cancel-button', PopupButtonType.Cancel);\r\n public static readonly Yes: PopupButton = new PopupButton('JA', 'ok-button', PopupButtonType.Yes);\r\n public static readonly No: PopupButton = new PopupButton('NEE', 'cancel-button', PopupButtonType.No);\r\n}\r\n","import {Component, EventEmitter, Input, OnInit, Output, ViewChild} from \"@angular/core\";\r\nimport {ButtonComponent} from \"../button/button.component\";\r\nimport {PopupButtonGlobals} from \"./model/popup-button-globals\";\r\nimport {PopupButton} from \"./interface/popup-button\";\r\n\r\n@Component({\r\n selector: 'co-popup-buttons',\r\n template: `\r\n <div class=\"popup-buttons\">\r\n <co-button\r\n *ngFor=\"let button of buttons\"\r\n [label]=\"button.label\"\r\n [class]=\"button.cssClass\"\r\n [disabled]=\"button.disabled\"\r\n (click)=\"handleClick($event, button)\"\r\n ></co-button>\r\n </div>\r\n `,\r\n styleUrls: [\r\n './popup-buttons.component.scss'\r\n ]\r\n})\r\n// Component that is part of the WindowComponent, and represents the panel with buttons on the bottom of app popups.\r\nexport class PopupButtonsComponent implements OnInit {\r\n\r\n @Input()\r\n public popupWindow: any;\r\n\r\n @Output()\r\n public readonly buttonClick: EventEmitter<PopupButton> = new EventEmitter<PopupButton>();\r\n\r\n @ViewChild(ButtonComponent)\r\n public firstButton: ButtonComponent;\r\n\r\n public buttons: PopupButton[] = [PopupButtonGlobals.Ok, PopupButtonGlobals.Cancel];\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.popupWindow || !this.popupWindow.settings) {\r\n return;\r\n }\r\n if (this.popupWindow.settings.buttons) {\r\n this.buttons = this.popupWindow.settings.buttons;\r\n }\r\n }\r\n\r\n public handleClick(event: MouseEvent, button: PopupButton): void {\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n event.stopPropagation();\r\n this.buttonClick.emit(button);\r\n }\r\n\r\n public focusFirstButton(): void {\r\n if (this.firstButton) {\r\n this.firstButton.focus();\r\n }\r\n }\r\n}\r\n","export enum PopupType {\r\n Notification,\r\n Warning,\r\n Error,\r\n Question,\r\n Blank,\r\n FullScreen,\r\n Confirmation\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ComponentRef,\r\n HostBinding,\r\n Inject,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n ViewContainerRef\r\n} from \"@angular/core\";\r\nimport {PopupButtonsComponent} from \"./popup-buttons.component\";\r\nimport {Subscription} from \"rxjs\";\r\nimport {PopupButtonType} from \"../../core/enum/popup-button-type.enum\";\r\nimport {FileUtils} from \"../../core/utils/file-utils\";\r\nimport {ObjectUtils} from \"../../core/utils/object-utils\";\r\nimport {PopupType} from \"../../core/enum/popup-type.enum\";\r\nimport {PopupMessageDisplayComponent} from \"./popup-message-display.component\";\r\nimport {PopupWindowModel} from \"./model/popup-window\";\r\nimport {Popup} from \"./interface/popup\";\r\nimport {PopupButton} from \"./interface/popup-button\";\r\nimport {POPUP_WINDOW_DATA} from \"./const/popup-window-token\";\r\nimport {CoreComponentsIcon} from \"../../core/enum/core-components-icon.enum\";\r\nimport {IconCacheService} from \"../icon/icon-cache.service\";\r\nimport {SafeHtml} from \"@angular/platform-browser\";\r\n\r\n@Component({\r\n selector: \"co-popup-window-shell\",\r\n template: `\r\n <ng-container *ngIf=\"!isBlank\">\r\n <co-button *ngIf=\"popupWindow?.settings.downloadable\" class=\"circle shadowed popup-downloadable\" [iconData]=\"downloadIcon\"\r\n iconClass=\"light\"\r\n (click)=\"onDownloadClick()\"></co-button>\r\n <co-button *ngIf=\"!popupWindow?.settings.hideCloseIcon\" class=\"circle shadowed popup-close\" [iconData]=\"closeIcon\"\r\n iconClass=\"light\"\r\n (click)=\"onCloseClick()\"></co-button>\r\n <div class=\"popup-wrapper\" *ngIf=\"!isBlank\">\r\n <div class=\"popup-title\"><h2 [textContent]=\"popupWindow?.settings.title\"></h2></div>\r\n <div class=\"popup-content\" (mousedown)=\"$event.stopImmediatePropagation()\">\r\n <ng-template #popupContent></ng-template>\r\n </div>\r\n <co-popup-buttons [popupWindow]=\"popupWindow\" (buttonClick)=\"onButtonClick($event)\"></co-popup-buttons>\r\n </div>\r\n </ng-container>\r\n <ng-template #popupContent *ngIf=\"isBlank\"></ng-template>\r\n `,\r\n styleUrls: [\r\n \"popup-window-shell.component.scss\"\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n// The main component for app popups. Visually represents the outer edges of the components.\r\nexport class PopupWindowShellComponent implements AfterViewInit, OnDestroy, OnInit {\r\n\r\n public readonly icons: typeof CoreComponentsIcon = CoreComponentsIcon;\r\n\r\n @Input()\r\n public popupWindow: PopupWindowModel;\r\n\r\n @Input()\r\n @HostBinding(\"class.mobile-sizings\")\r\n public hasMobileSizings: boolean;\r\n\r\n @ViewChild(\"popupContent\", {read: ViewContainerRef})\r\n protected _viewContainer: ViewContainerRef;\r\n\r\n @ViewChild(PopupButtonsComponent)\r\n protected _appPopupButtons: PopupButtonsComponent;\r\n\r\n @HostBinding(\"class.popup-error\")\r\n public isError: boolean;\r\n\r\n @HostBinding(\"class.popup-warning\")\r\n public isWarning: boolean;\r\n\r\n @HostBinding(\"class.popup-notification\")\r\n public isNotification: boolean;\r\n\r\n @HostBinding(\"class.popup-question\")\r\n public isQuestion: boolean;\r\n\r\n @HostBinding(\"class.movable\")\r\n public isMovable: boolean;\r\n\r\n public isBlank: boolean;\r\n\r\n public closeIcon: SafeHtml;\r\n public downloadIcon: SafeHtml;\r\n\r\n // @HostBinding('style.top.px')\r\n // public top: number = -1000; //start off-screen\r\n //\r\n // @HostBinding('style.left.px')\r\n // public left: number = -1000; //start off-screen\r\n\r\n private _popupCompRef: ComponentRef<Popup>;\r\n\r\n private _filterClickSub: Subscription;\r\n\r\n private _popupCloseRequestSub: Subscription;\r\n\r\n constructor(\r\n private _iconCache: IconCacheService,\r\n private _changeDetector: ChangeDetectorRef,\r\n public viewContainerRef: ViewContainerRef\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.closeIcon = this._iconCache.getIcon(this.icons.CrossSkinny);\r\n this.downloadIcon = this._iconCache.getIcon(this.icons.Download);\r\n this._setHostBindings();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.popupWindow.popupWindowComponent = this;\r\n this._createPopupComponent();\r\n this._initOnClickAutoClose();\r\n this._initAppPopupCloseRequestHandler();\r\n\r\n if (!this.popupWindow.settings.noButtonFocus && this._appPopupButtons) {\r\n setTimeout(() => {\r\n this._appPopupButtons.focusFirstButton();\r\n });\r\n }\r\n\r\n this._changeDetector.detectChanges();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._close();\r\n this._viewContainer.clear();\r\n this._popupCompRef = undefined;\r\n this._viewContainer = undefined;\r\n this._changeDetector = undefined;\r\n }\r\n\r\n public async close(eventType: PopupButtonType): Promise<void> {\r\n if (this._popupCompRef && this._popupCompRef.instance && this._popupCompRef.instance.onClose) {\r\n const onCloseOutput: any = await this._popupCompRef.instance.onClose(eventType);\r\n this.popupWindow.onClose(eventType, onCloseOutput);\r\n } else {\r\n this.popupWindow.onClose(eventType);\r\n }\r\n }\r\n\r\n public onButtonClick(button: PopupButton): void {\r\n if (!button.disabled) {\r\n this.close(button.closeType);\r\n }\r\n }\r\n\r\n public onDownloadClick(): void {\r\n try {\r\n const dataUri: string = (this._popupCompRef.instance as PopupMessageDisplayComponent).message;\r\n FileUtils.DownloadFromDataUri(dataUri, FileUtils.CreateDownloadFileNameFromBase64(dataUri));\r\n } catch (e) {\r\n\r\n }\r\n }\r\n\r\n public onCloseClick(): void {\r\n this.close(PopupButtonType.Cancel);\r\n }\r\n\r\n private _close = (): void => {\r\n this.onCloseClick();\r\n };\r\n\r\n private _createPopupComponent(): void {\r\n this._popupCompRef = this._viewContainer.createComponent(this.popupWindow.factory);\r\n ObjectUtils.ForOwnProperty(this.popupWindow.inputs, (value: any, key: string) => {\r\n this._popupCompRef.instance[key] = value;\r\n });\r\n // give the concrete popup component access to its underlying model (with settings etc, e.g. for dynamic disabling/enabling of popup buttons on bottom)\r\n this._popupCompRef.instance.popupModel = this.popupWindow;\r\n if (this._popupCompRef.instance.onOpen) {\r\n this._popupCompRef.instance.onOpen();\r\n }\r\n }\r\n\r\n private _initOnClickAutoClose(): void {\r\n if (this.popupWindow && this.popupWindow.settings && this.popupWindow.settings.autoClose) {\r\n if (this._filterClickSub) {\r\n this._filterClickSub.unsubscribe();\r\n }\r\n // this._filterClickSub = this._filterService.onClick.subscribe(() => {\r\n // this.onCloseClick();\r\n // });\r\n }\r\n }\r\n\r\n private _initAppPopupCloseRequestHandler(): void {\r\n if (!this._popupCompRef || !this._popupCompRef.instance || !this._popupCompRef.instance.closeRequest) {\r\n return;\r\n }\r\n\r\n if (this._popupCloseRequestSub) {\r\n this._popupCloseRequestSub.unsubscribe();\r\n }\r\n this._popupCloseRequestSub = this._popupCompRef.instance.closeRequest.subscribe((closeButton: PopupButtonType) => {\r\n if (!closeButton) {\r\n closeButton = PopupButtonType.NoButton;\r\n }\r\n this.close(closeButton);\r\n });\r\n }\r\n\r\n private _setHostBindings(): void {\r\n if (this.popupWindow) {\r\n this.isError = this.popupWindow.type === PopupType.Error;\r\n this.isWarning = this.popupWindow.type === PopupType.Warning;\r\n this.isNotification = this.popupWindow.type === PopupType.Notification;\r\n this.isQuestion = this.popupWindow.type === PopupType.Question;\r\n this.isBlank = this.popupWindow.type === PopupType.Blank;\r\n this.isMovable = !this.popupWindow.settings.fixed;\r\n }\r\n }\r\n}\r\n","import {ComponentFactory} from \"@angular/core\";\r\nimport { PopupType } from '../../../core/enum/popup-type.enum';\r\nimport { StringUtils } from '../../../core/utils/string-utils';\r\nimport { PopupWindowShellComponent } from '../popup-window-shell.component';\r\nimport { PopupButtonType } from '../../../core/enum/popup-button-type.enum';\r\nimport { Popup } from '../interface/popup';\r\nimport { PopupSettings } from '../interface/popup-settings';\r\n\r\n// Represent the base for app popup windows, with common fields and methods that each popup window has.\r\nexport class PopupWindowModel {\r\n public static readonly closeDefaultOutputStr: string = \"PopupWindowModel.closeDefault()\";\r\n\r\n public get type(): PopupType {\r\n return this.settings ? this.settings.type : undefined;\r\n }\r\n\r\n public uuid: string = StringUtils.CreateGuid();\r\n\r\n // Reference to the actual popup window component.\r\n public popupWindowComponent?: PopupWindowShellComponent;\r\n\r\n constructor(public factory: ComponentFactory<Popup>, public settings: PopupSettings, public inputs: any) {\r\n }\r\n\r\n public closeDefault(): void {\r\n this.onClose(PopupButtonType.NoButton, PopupWindowModel.closeDefaultOutputStr);\r\n }\r\n\r\n public enableOpenButton(): void {\r\n if (this.settings) {\r\n this.settings.enableOpenButton();\r\n }\r\n }\r\n\r\n public disableOpenButton(): void {\r\n if (this.settings) {\r\n this.settings.disableOpenButton();\r\n }\r\n }\r\n\r\n public getTitle(): string {\r\n if (this.settings) {\r\n return this.settings.title;\r\n }\r\n }\r\n\r\n //noinspection JSUnusedLocalSymbols\r\n onClose(eventType: PopupButtonType, output?: any): void {\r\n return;\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { PopupWindowModel } from '../model/popup-window';\r\n\r\nexport const POPUP_WINDOW_DATA: InjectionToken<PopupWindowModel> = new InjectionToken<PopupWindowModel>('POPUP_WINDOW_DATA');\r\n","import {\r\n ApplicationRef,\r\n ComponentFactory,\r\n ComponentFactoryResolver,\r\n ComponentRef,\r\n EmbeddedViewRef,\r\n Injectable,\r\n Injector\r\n} from \"@angular/core\";\r\nimport { PopupSettings } from '../interface/popup-settings';\r\nimport { PopupCloseEvent } from '../interface/popup-close-event';\r\nimport { Popup } from '../interface/popup';\r\nimport { PopupWindowModel } from '../model/popup-window';\r\nimport { PopupWindowShellComponent } from '../popup-window-shell.component';\r\nimport { GlobalPositionStrategy, Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { POPUP_WINDOW_DATA } from '../const/popup-window-token';\r\nimport { PopupButtonType } from '../../../core/enum/popup-button-type.enum';\r\n\r\n// Class responsible for showing popups throughout the application and returning results from user interaction with those popups.\r\n@Injectable()\r\nexport class PopupShowerService {\r\n\r\n constructor(\r\n private _compFactoryResolver: ComponentFactoryResolver,\r\n private _appRef: ApplicationRef,\r\n private _overlay: Overlay,\r\n private _injector: Injector) {\r\n }\r\n\r\n public async showPopup<T = any>(popupCompClazz: any, popupSettings: PopupSettings, inputs: any = {}): Promise<PopupCloseEvent<T>> {\r\n const popupShellRef: ComponentRef<PopupWindowShellComponent> = this._createWindowShell();\r\n const popupShell: PopupWindowShellComponent = popupShellRef.instance;\r\n const config: OverlayConfig = this._getConfig();\r\n const popupCompFactory: ComponentFactory<Popup<T>> = this._compFactoryResolver.resolveComponentFactory(popupCompClazz);\r\n\r\n return new Promise<PopupCloseEvent>((resolve: Function) => {\r\n\r\n const popupWindow: PopupWindowModel = new PopupWindowModel(popupCompFactory, popupSettings, inputs);\r\n // the generic onClose handler: remove the closed popup and resolve our original createPopup call with its output data\r\n popupWindow.onClose = (eventType: PopupButtonType, output: any) => {\r\n this._appRef.detachView(popupShellRef.hostView);\r\n popupShellRef.destroy();\r\n resolve({\r\n eventType: eventType,\r\n output: output\r\n });\r\n };\r\n popupShell.popupWindow = popupWindow;\r\n });\r\n }\r\n\r\n private _createWindowShell(): ComponentRef<PopupWindowShellComponent> {\r\n const componentRef = this._compFactoryResolver\r\n .resolveComponentFactory(PopupWindowShellComponent)\r\n .create(this._injector);\r\n this._appRef.attachView(componentRef.hostView);\r\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n document.body.appendChild(domElem);\r\n return componentRef;\r\n }\r\n\r\n private _createOverlay(config: OverlayConfig): OverlayRef {\r\n return this._overlay.create(config);\r\n }\r\n\r\n private _getConfig(): OverlayConfig {\r\n const positionStrategy: GlobalPositionStrategy = this._overlay.position()\r\n .global()\r\n .centerHorizontally()\r\n .centerVertically();\r\n\r\n return new OverlayConfig({\r\n hasBackdrop: true,\r\n backdropClass: 'message-overlay-backdrop',\r\n panelClass: 'message-overlay',\r\n scrollStrategy: this._overlay.scrollStrategies.block(),\r\n positionStrategy\r\n });\r\n }\r\n\r\n private _attachDialogContainer(overlayRef: OverlayRef, popupWindow: PopupWindowModel /*, dialogRef: FilePreviewOverlayRef*/): PopupWindowShellComponent {\r\n const injector: Injector = this._createInjector(popupWindow);\r\n const containerPortal: ComponentPortal<PopupWindowShellComponent> = new ComponentPortal(PopupWindowShellComponent, null, injector);\r\n const containerRef: ComponentRef<PopupWindowShellComponent> = overlayRef.attach(containerPortal);\r\n return containerRef.instance;\r\n }\r\n\r\n private _createInjector(popupWindow: PopupWindowModel): Injector {\r\n const injectionTokens: any = new WeakMap();\r\n injectionTokens.set(POPUP_WINDOW_DATA, popupWindow);\r\n const options = {\r\n parent: this._injector,\r\n providers: injectionTokens\r\n };\r\n return Injector.create(options);\r\n }\r\n}\r\n","import { PopupButtonType } from '../../enum/popup-button-type.enum';\r\n\r\n// for PromptService.promptString\r\nexport class StringPromptResultEvent {\r\n constructor(\r\n public eventType: PopupButtonType,\r\n public output: string\r\n ) {\r\n }\r\n}\r\n","import { PopupButton } from './popup-button';\r\nimport { PopupType } from '../../../core/enum/popup-type.enum';\r\nimport { PopupButtonType } from '../../../core/enum/popup-button-type.enum';\r\n\r\nexport class PopupSettings {\r\n // Title text for the header of a popup window. Will be localized.\r\n public title: string;\r\n // Whether to close the popup automatically when the user clicks outside of it.\r\n public autoClose: boolean;\r\n // Kind of popup to adjust styling.\r\n public type: PopupType;\r\n // Defines which buttons are shown.\r\n public buttons?: PopupButton[];\r\n // Set to true to hide the 'X' close icon in the top-right corner of the popup.\r\n public hideCloseIcon?: boolean;\r\n // Do not focus on first button when popping up (default behavior is to focus on the first button)\r\n public noButtonFocus?: boolean;\r\n // Whether the popup can be moved around\r\n public fixed?: boolean;\r\n // Whether content of the popup can be downloaded\r\n public downloadable?: boolean;\r\n\r\n constructor() {\r\n }\r\n\r\n public enableButtonByType(buttonType: PopupButtonType): void {\r\n const button: PopupButton = this._getButtonByType(buttonType);\r\n if (button) {\r\n button.disabled = false;\r\n }\r\n }\r\n\r\n public disableButtonByType(buttonType: PopupButtonType): void {\r\n const button: PopupButton = this._getButtonByType(buttonType);\r\n if (button) {\r\n button.disabled = true;\r\n }\r\n }\r\n\r\n public enableSaveButton(): void {\r\n this.enableButtonByType(PopupButtonType.Save);\r\n }\r\n\r\n public disableSaveButton(): void {\r\n this.disableButtonByType(PopupButtonType.Save);\r\n }\r\n\r\n public enableOpenButton(): void {\r\n this.enableButtonByType(PopupButtonType.Open);\r\n }\r\n\r\n public disableOpenButton(): void {\r\n this.disableButtonByType(PopupButtonType.Open);\r\n }\r\n\r\n private _getButtonByType(buttonType: PopupButtonType): PopupButton {\r\n let button: PopupButton = undefined;\r\n\r\n if (this.buttons) {\r\n for (let i: number = 0, len: number = this.buttons.length; i < len; i++) {\r\n if (this.buttons[i].closeType === buttonType) {\r\n button = this.buttons[i];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return button;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { PopupShowerService } from './popup-shower.service';\r\nimport { PopupType } from '../../../core/enum/popup-type.enum';\r\nimport { StringUtils } from '../../../core/utils/string-utils';\r\nimport { PopupMessageDisplayComponent } from '../popup-message-display.component';\r\nimport { PopupButtonType } from '../../../core/enum/popup-button-type.enum';\r\nimport { StringPromptResultEvent } from '../../../core/model/event/string-prompt-result-event';\r\nimport { TextInputPopupComponent } from '../text-input-popup.component';\r\nimport { PopupButtonGlobals } from '../model/popup-button-globals';\r\nimport { PopupSettings } from '../interface/popup-settings';\r\nimport { PopupCloseEvent } from '../interface/popup-close-event';\r\n\r\n// Service responsible for delivering small popup windows (string input promps, alerts, etc.) to the user.\r\n@Injectable()\r\nexport class PromptService {\r\n\r\n constructor(private _popupShower: PopupShowerService) {\r\n }\r\n\r\n // Spawns a text input popup with given title and initial text, and resolves the returned promise with the user-entered text as output.\r\n public async promptString(title: string, label?: string, initialText?: string): Promise<StringPromptResultEvent> {\r\n const popupSettings: PopupSettings = new PopupSettings();\r\n popupSettings.title = title;\r\n const popupResult: PopupCloseEvent<string> = await this._popupShower.showPopup(TextInputPopupComponent, popupSettings, {\r\n text: initialText,\r\n label: label\r\n });\r\n return new StringPromptResultEvent(popupResult.eventType, popupResult.output);\r\n }\r\n\r\n // Shows given error text in an error popup to the user. Can also show an image instead of a text by supplying a data uri string.\r\n public showError(textOrImageDataUri: string, title?: string, details?: string): Promise<PopupCloseEvent<void>> {\r\n const popupSettings: PopupSettings = new PopupSettings();\r\n popupSettings.title = title || \"ERROR\";\r\n popupSettings.type = PopupType.Error;\r\n popupSettings.buttons = [PopupButtonGlobals.Ok];\r\n return this._popupShower.showPopup(PopupMessageDisplayComponent, popupSettings, {\r\n message: StringUtils.ToStringOrDefault(textOrImageDataUri),\r\n details: details\r\n });\r\n }\r\n\r\n // Shows given warning text in a warning popup to the user. Can also show an image instead of a text by supplying a data uri string.\r\n public showWarning(textOrImageDataUri: string, title?: string): Promise<PopupCloseEvent<void>> {\r\n const popupSettings: PopupSettings = new PopupSettings();\r\n popupSettings.title = title || \"WARNING\";\r\n popupSettings.type = PopupType.Warning;\r\n popupSettings.buttons = [PopupButtonGlobals.Ok];\r\n return this._popupShower.showPopup(PopupMessageDisplayComponent, popupSettings, {\r\n message: StringUtils.ToStringOrDefault(textOrImageDataUri)\r\n });\r\n }\r\n\r\n public async showNotification(\r\n textOrImageDataUri: string,\r\n title?: string,\r\n showOk: boolean = true,\r\n autoClose: boolean = false,\r\n hideCloseIcon: boolean = false,\r\n downloadable: boolean = false\r\n ): Promise<boolean> {\r\n const popupSettings: PopupSettings = new PopupSettings();\r\n popupSettings.title = title || \"NOTIFICATION\";\r\n popupSettings.type = PopupType.Notification;\r\n popupSettings.buttons = (showOk ? [PopupButtonGlobals.Ok] : []);\r\n popupSettings.downloadable = downloadable;\r\n if (autoClose) {\r\n popupSettings.autoClose = true;\r\n }\r\n if (hideCloseIcon) {\r\n popupSettings.hideCloseIcon = true;\r\n }\r\n const popupResult: PopupCloseEvent<void> = await this._popupShower.showPopup(PopupMessageDisplayComponent, popupSettings,\r\n {message: StringUtils.ToStringOrDefault(textOrImageDataUri)});\r\n return popupResult.eventType === PopupButtonType.Ok;\r\n }\r\n\r\n public showImage(imageDataUri: string, title?: string): Promise<any> {\r\n return this.showNotification(imageDataUri, title, false, true, false, true);\r\n }\r\n\r\n public async showYesNo(textOrImageDataUri: string, title?: string): Promise<boolean> {\r\n const popupSettings: PopupSettings = new PopupSettings();\r\n popupSettings.title = title || \"QUESTION\";\r\n popupSettings.type = PopupType.Question;\r\n popupSettings.buttons = [PopupButtonGlobals.Yes, PopupButtonGlobals.No];\r\n const popupResult: any = await this._popupShower.showPopup(PopupMessageDisplayComponent, popupSettings, {\r\n message: StringUtils.ToStringOrDefault(textOrImageDataUri)\r\n });\r\n return popupResult.eventType === PopupButtonType.Yes;\r\n }\r\n\r\n // Spawns a modal 'yes, no or cancel' question prompt. Returns the chosen exit button through AppPopupCloseEvent.eventType.\r\n public async showModalYesNoCancel(textOrImageDataUri: string, title?: string): Promise<PopupCloseEvent<void>> {\r\n const popupSettings: PopupSettings = new PopupSettings();\r\n popupSettings.title = title || \"QUESTION\";\r\n popupSettings.type = PopupType.Question;\r\n popupSettings.buttons = [PopupButtonGlobals.Yes, PopupButtonGlobals.No, PopupButtonGlobals.Cancel];\r\n popupSettings.autoClose = false;\r\n popupSettings.hideCloseIcon = true;\r\n return this._popupShower.showPopup(PopupMessageDisplayComponent, popupSettings, {\r\n message: StringUtils.ToStringOrDefault(textOrImageDataUri)\r\n });\r\n }\r\n\r\n // Used by AS-copied code. We call it showNotification.\r\n public showOk(text: string, title?: string): Promise<boolean> {\r\n return this.showNotification(text, title);\r\n }\r\n\r\n public async showOkCancel(text: string, title?: string): Promise<boolean> {\r\n const popupSettings: PopupSettings = new PopupSettings();\r\n popupSettings.title = title || \"QUESTION\";\r\n popupSettings.type = PopupType.Question;\r\n popupSettings.buttons = [PopupButtonGlobals.Ok, PopupButtonGlobals.Cancel];\r\n popupSettings.autoClose = false;\r\n popupSettings.hideCloseIcon = true;\r\n const closeEvent: PopupCloseEvent = await this._popupShower.showPopup(PopupMessageDisplayComponent, popupSettings, {\r\n message: StringUtils.ToStringOrDefault(text)\r\n });\r\n return (closeEvent.eventType === PopupButtonType.Ok);\r\n }\r\n\r\n public showOkModal(text: string, title?: string): Promise<boolean> {\r\n return this.showNotification(text, title, true, false, true);\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { InputTextModule } from '../input-text/input-text.module';\r\nimport { TextInputPopupComponent } from './text-input-popup.component';\r\nimport { PopupMessageDisplayComponent } from './popup-message-display.component';\r\nimport { PopupWindowShellComponent } from './popup-window-shell.component';\r\nimport { PopupButtonsComponent } from './popup-buttons.component';\r\nimport { ButtonModule } from '../button/button.module';\r\nimport { PromptService } from './service/prompt.service';\r\nimport { PopupShowerService } from './service/popup-shower.service';\r\nimport { Overlay } from '@angular/cdk/overlay';\r\nimport { IconCacheService } from '../icon/icon-cache.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n InputTextModule,\r\n ButtonModule\r\n ],\r\n declarations: [\r\n TextInputPopupComponent,\r\n PopupMessageDisplayComponent,\r\n PopupWindowShellComponent,\r\n PopupButtonsComponent\r\n ],\r\n entryComponents: [\r\n PopupMessageDisplayComponent,\r\n PopupWindowShellComponent\r\n ],\r\n exports: [\r\n TextInputPopupComponent,\r\n PopupWindowShellComponent\r\n ]\r\n})\r\nexport class PopupModule {\r\n static forRoot(): ModuleWithProviders<PopupModule> {\r\n return {\r\n ngModule: PopupModule,\r\n providers: [\r\n PromptService,\r\n PopupShowerService,\r\n Overlay,\r\n IconCacheService\r\n ]\r\n };\r\n }\r\n}\r\n","import {AfterViewInit, Component, EventEmitter, HostBinding, Input, OnInit, Output, ViewChild, ViewEncapsulation} from \"@angular/core\";\r\nimport {\r\n ChangeEventArgs,\r\n HtmlEditorService,\r\n ImageService,\r\n LinkService,\r\n RichTextEditorComponent,\r\n ToolbarService\r\n} from \"@syncfusion/ej2-angular-richtexteditor\";\r\n\r\n@Component({\r\n selector: 'co-rich-text-editor',\r\n template: `\r\n <ejs-richtexteditor\r\n #rte\r\n id=\"Rte\"\r\n [ngModel]=\"model\"\r\n (change)=\"onChange($event)\"\r\n >\r\n <ng-template></ng-template>\r\n </ejs-richtexteditor>\r\n `,\r\n providers: [ToolbarService, LinkService, ImageService, HtmlEditorService],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CoRichTextEditorComponent implements OnInit, AfterViewInit {\r\n @ViewChild('rte', {static: false})\r\n public editor: RichTextEditorComponent;\r\n\r\n @Output()\r\n public onChangeEvent: EventEmitter<ChangeEventArgs> = new EventEmitter<ChangeEventArgs>();\r\n\r\n @Input()\r\n public model: any;\r\n\r\n @HostBinding(\"class.co-rich-text-editor\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public getContent(): Element {\r\n if (this.editor) {\r\n return this.editor.getContent();\r\n }\r\n }\r\n\r\n public getText(): string {\r\n if (this.editor) {\r\n return this.editor.getText();\r\n }\r\n }\r\n\r\n public onChange(args: ChangeEventArgs): void {\r\n if (args) {\r\n this.onChangeEvent.next(args);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport {CoRichTextEditorComponent} from \"./co-rich-text-editor.component\";\r\nimport {RichTextEditorModule} from \"@syncfusion/ej2-angular-richtexteditor\";\r\nimport {FormsModule} from \"@angular/forms\";\r\n\r\n@NgModule({\r\n declarations: [CoRichTextEditorComponent],\r\n exports: [\r\n CoRichTextEditorComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n RichTextEditorModule,\r\n FormsModule\r\n ]\r\n})\r\nexport class CoRichTextEditorModule { }\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ComponentFactoryResolver,\r\n ElementRef,\r\n forwardRef,\r\n HostBinding,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {BaseInputComponent} from \"../base/base-input.component\";\r\nimport {COMPONENT_INTERFACE_NAME} from \"../base/component-interface-name\";\r\nimport {CheckBoxSelection, ListBoxComponent, SelectionSettingsModel} from \"@syncfusion/ej2-angular-dropdowns\";\r\nimport {FormInputUserModelChangeListenerService} from \"../../core/service/form-input-user-change-listener.service\";\r\nimport {NgZoneWrapperService} from \"../../core/service/ng-zone-wrapper.service\";\r\nimport {FormComponent} from \"../form/form.component\";\r\n\r\nListBoxComponent.Inject(CheckBoxSelection);\r\n\r\n@Component({\r\n selector: 'co-input-listbox',\r\n template: `\r\n <div class=\"co-input-listbox-header\" [textContent]=\"placeholder\"></div>\r\n <div class=\"co-input-listbox-content\">\r\n <ejs-listbox\r\n [ngModel]=\"value\"\r\n [dataSource]=\"collection\"\r\n [fields]=\"fields\"\r\n [selectionSettings]=\"selectionSettings\"\r\n (ngModelChange)=\"modelChange.emit($event)\"\r\n ></ejs-listbox>\r\n </div>\r\n <div class=\"required-indicator\"></div>\r\n <ng-template #validationError></ng-template>\r\n `,\r\n providers: [{\r\n provide: COMPONENT_INTERFACE_NAME, useExisting: forwardRef(() => InputListboxComponent)\r\n }],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class InputListboxComponent extends BaseInputComponent<any> implements OnInit, OnDestroy {\r\n\r\n @Input()\r\n public placeholder: string;\r\n\r\n @Input()\r\n public value: string[] | number[];\r\n // public set model(value: string[] | number[]) {\r\n // this._model = value;\r\n // }\r\n\r\n @Input()\r\n public collection: {}[] = [];\r\n\r\n @Input()\r\n public fields: {};\r\n\r\n @Input()\r\n public set singleSelect(value: boolean) {\r\n if (value) {\r\n this.selectionSettings.mode = 'Single';\r\n }\r\n }\r\n\r\n @Input()\r\n public set showCheckbox(value: boolean) {\r\n if (value) {\r\n this.selectionSettings.showCheckbox = true;\r\n }\r\n }\r\n\r\n @Input()\r\n public set showSelectAll(value: boolean) {\r\n if (value) {\r\n this.selectionSettings.showSelectAll = true;\r\n }\r\n }\r\n\r\n @HostBinding('class.co-input-listbox')\r\n public showClass(): boolean {\r\n return true;\r\n }\r\n\r\n @HostBinding('class.custom-height')\r\n public customHeight: boolean = true;\r\n\r\n public selectionSettings: SelectionSettingsModel = {mode: 'Multiple'};\r\n\r\n constructor(\r\n @Optional() public formComponent: FormComponent,\r\n protected changeDetector: ChangeDetectorRef,\r\n protected componentFactoryResolver: ComponentFactoryResolver,\r\n protected formUserChangeListener?: FormInputUserModelChangeListenerService,\r\n protected ngZoneWrapper?: NgZoneWrapperService,\r\n public elementRef?: ElementRef,\r\n ) {\r\n super(changeDetector, componentFactoryResolver, formUserChangeListener, ngZoneWrapper, elementRef);\r\n super._markAsOnPush();\r\n }\r\n\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {InputListboxComponent} from \"./input-listbox.component\";\r\nimport {ListBoxModule} from \"@syncfusion/ej2-angular-dropdowns\";\r\nimport {enableRipple} from \"@syncfusion/ej2-base\";\r\nimport {FormsModule} from \"@angular/forms\";\r\n\r\nenableRipple(true);\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ListBoxModule\r\n ],\r\n declarations: [\r\n InputListboxComponent\r\n ],\r\n exports: [\r\n InputListboxComponent\r\n ]\r\n})\r\nexport class InputListboxModule { }\r\n","import {ContentChild, Directive, Input, TemplateRef} from \"@angular/core\";\r\n\r\nexport enum ColumnAlign {\r\n Left = \"left-align\",\r\n Center = \"center-align\",\r\n Right = \"right-align\"\r\n}\r\n\r\n@Directive({\r\n selector: \"co-simple-grid-column\"\r\n})\r\nexport class SimpleGridColumnDirective {\r\n private static _MinManualResizeWidthPx: number = 50;\r\n\r\n @ContentChild(TemplateRef)\r\n public set template(template: TemplateRef<any>) {\r\n if (template) {\r\n this._template = template;\r\n }\r\n }\r\n\r\n public get template(): TemplateRef<any> {\r\n return this._template;\r\n }\r\n\r\n @Input()\r\n public headerText: string;\r\n\r\n @Input()\r\n public field: string;\r\n\r\n @Input()\r\n public textAlign: ColumnAlign;\r\n\r\n @Input()\r\n public format: string;\r\n\r\n @Input()\r\n public resizable: boolean = true;\r\n\r\n @Input()\r\n public width: number;\r\n\r\n private _template: TemplateRef<any>;\r\n\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChildren,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener,\r\n Input,\r\n Output,\r\n QueryList,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {CdkDrag, CdkDragDrop, CdkDropList, moveItemInArray} from \"@angular/cdk/drag-drop\";\r\nimport {ColumnAlign, SimpleGridColumnDirective} from \"./simple-grid-column.directive\";\r\n\r\n@Component({\r\n selector: \"co-simple-grid\",\r\n template: `\r\n <div class=\"simple-grid-column-header-wrapper\">\r\n <div class=\"simple-grid-column-header\" *ngFor=\"let column of columns; let index = index\"\r\n [style.min-width.px]=\"column.width\" [style.max-width.px]=\"column.width\">\r\n <div class=\"simple-grid-column-header-label\" [ngClass]=\"column.textAlign ? column.textAlign : defaultTextAlign\"\r\n [textContent]=\"column.headerText\"\r\n ></div>\r\n <div *ngIf=\"column.resizable\" class=\"simple-grid-column-sizer\"\r\n (mousedown)=\"handleSizerMouseDown($event, column)\"\r\n ></div>\r\n </div>\r\n </div>\r\n <div cdkDropListGroup class=\"drop-list-group\">\r\n <div #dropList cdkDropList cdkDropListOrientation=\"vertical\"\r\n class=\"simple-grid-drag-drop-list\"\r\n [cdkDropListDisabled]=\"!dragDropEnabled\"\r\n [cdkDropListData]=\"data\"\r\n [cdkDropListEnterPredicate]=\"handleCanDragDrop\"\r\n (cdkDropListDropped)=\"handleDrop($event)\"\r\n >\r\n <div class=\"simple-grid-row\" *ngFor=\"let row of data\" cdkDrag>\r\n <div class=\"simple-grid-column-cell\" *ngFor=\"let column of columns\"\r\n [style.min-width.px]=\"column.width\" [style.max-width.px]=\"column.width\">\r\n <div class=\"simple-grid-column-cell-value\" [ngClass]=\"column.textAlign ? column.textAlign : defaultTextAlign\">\r\n <ng-container *ngIf=\"column.template\">\r\n <ng-container [ngTemplateOutlet]=\"column.template\" [ngTemplateOutletContext]=\"{value: row[column.field], row: row}\"></ng-container>\r\n </ng-container>\r\n <div *ngIf=\"!column.template\" [textContent]=\"row[column.field]\"></div>\r\n </div>\r\n <div *ngIf=\"column.resizable\" class=\"simple-grid-column-sizer-placeholder\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class SimpleGridComponent {\r\n public readonly defaultTextAlign: ColumnAlign = ColumnAlign.Left;\r\n\r\n @ContentChildren(SimpleGridColumnDirective) set content(columnComponents: QueryList<SimpleGridColumnDirective>) {\r\n this.columns = columnComponents.toArray();\r\n }\r\n\r\n @Input()\r\n public data: Object[] = [];\r\n\r\n @Input()\r\n public dragDropEnabled: boolean = false;\r\n\r\n /**\r\n * Should component emit drag and drop actions instead of handle\r\n * (update collection) by itself\r\n */\r\n @Input()\r\n public emitDragDrop: boolean = false;\r\n\r\n @Output()\r\n public onDrop: EventEmitter<{from: number, to: number}> = new EventEmitter<{from: number; to: number}>();\r\n\r\n @HostBinding(\"class.co-simple-grid\")\r\n public showClass(): boolean {\r\n return true;\r\n }\r\n\r\n @HostListener('document:mousemove', ['$event'])\r\n public handleMouseMove(event: MouseEvent): void {\r\n if (event.buttons === 1 && this._columnForResize) {\r\n if (!this._columnForResize.width) {\r\n const rect: ClientRect = (event.target as any).parentElement.getBoundingClientRect();\r\n this._columnForResize.width = rect.width;\r\n }\r\n this._columnForResize.width += event.movementX;\r\n }\r\n }\r\n\r\n @HostListener('document:mouseup', ['$event'])\r\n public handleMouseUp(event: MouseEvent): void {\r\n this._columnForResize = undefined;\r\n }\r\n\r\n public columns: SimpleGridColumnDirective[] = [];\r\n\r\n private _columnForResize: SimpleGridColumnDirective;\r\n\r\n public handleSizerMouseDown(event: MouseEvent, column: SimpleGridColumnDirective): void {\r\n this._columnForResize = column;\r\n }\r\n\r\n public handleCanDragDrop(drag: CdkDrag, drop: CdkDropList): boolean {\r\n return true;\r\n }\r\n\r\n public handleDrop(event: CdkDragDrop<Object[]>): void {\r\n try {\r\n const from: number = event.previousIndex;\r\n const to: number = event.currentIndex;\r\n if (from === to) {\r\n return;\r\n }\r\n if (this.emitDragDrop) {\r\n this.onDrop.next({from: from, to: to});\r\n } else {\r\n moveItemInArray(this.data, from, to);\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {SimpleGridComponent} from \"./simple-grid.component\";\r\nimport {DragDropModule} from \"@angular/cdk/drag-drop\";\r\nimport {SimpleGridColumnDirective} from \"./simple-grid-column.directive\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n DragDropModule\r\n ],\r\n declarations: [\r\n SimpleGridComponent,\r\n SimpleGridColumnDirective\r\n ],\r\n exports: [\r\n SimpleGridComponent,\r\n SimpleGridColumnDirective\r\n ]\r\n})\r\nexport class SimpleGridModule { }\r\n","import {CSS3DObject} from \"three/examples/jsm/renderers/CSS3DRenderer\";\r\nimport {Mesh, PlaneBufferGeometry, Vector2, Vector3} from \"three\";\r\n\r\nexport class CarouselItem {\r\n\r\n public object: CSS3DObject;\r\n public mesh: Mesh;\r\n public index: number;\r\n\r\n private _options: {\r\n tileSize: Vector2,\r\n tileBackgroundColor: any,\r\n textSelectable: boolean,\r\n tileBorderColor: any\r\n };\r\n private _element: HTMLDivElement;\r\n\r\n constructor(options, index, onClick) {\r\n this._options = options || {};\r\n this.index = index;\r\n\r\n const width = this._options.tileSize?.x || 0;\r\n const height = this._options.tileSize?.y || 0;\r\n\r\n this._element = document.createElement('div');\r\n // this._element.style.backgroundColor = this._options.tileBackgroundColor;\r\n this._element.style.width = width + \"px\";\r\n this._element.style.height = height + \"px\";\r\n\r\n this._element.addEventListener(\"click\", () => {\r\n if (onClick) {\r\n onClick(this.index);\r\n }\r\n }, false);\r\n\r\n this.object = new CSS3DObject(this._element);\r\n\r\n const geometry = new PlaneBufferGeometry(width, height);\r\n this.mesh = new Mesh(geometry, options.tileMaterial);\r\n this.mesh.castShadow = true;\r\n }\r\n\r\n public setPosition(position: Vector3): void {\r\n if (this.mesh) {\r\n this.mesh.position.copy(position);\r\n }\r\n if (this.object) {\r\n this.object.position.copy(position);\r\n }\r\n }\r\n\r\n public setContent(content): void {\r\n if (this._element) {\r\n\r\n // remove any exising tile content before setting new content\r\n while (this._element.lastElementChild) {\r\n this._element.removeChild(this._element.lastElementChild);\r\n }\r\n\r\n try {\r\n this._element.appendChild(content);\r\n }\r\n catch (err) {\r\n }\r\n }\r\n }\r\n\r\n public setVisible(visible: boolean): void {\r\n if (this.mesh) {\r\n this.mesh.visible = visible;\r\n }\r\n\r\n if (this.object) {\r\n this.object.visible = visible;\r\n }\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ContentChildren,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {\r\n AmbientLight,\r\n Box3,\r\n Color,\r\n Fog,\r\n Mesh,\r\n MeshPhongMaterial,\r\n PerspectiveCamera,\r\n PlaneGeometry,\r\n Scene,\r\n SpotLight,\r\n Vector2,\r\n Vector3,\r\n WebGLRenderer\r\n} from \"three\";\r\nimport {CarouselItem} from \"./carouselItem\";\r\nimport {CSS3DObject, CSS3DRenderer} from \"three/examples/jsm/renderers/CSS3DRenderer\";\r\nimport * as TWEEN from \"@tweenjs/tween.js\";\r\n\r\n@Component({\r\n selector: \"co-carousel-3d\",\r\n template: `\r\n <div class=\"carousel-3d-canvas-wrapper\" #canvasContainer>\r\n <div class=\"carousel-wrapper\" #carouselWrapper>\r\n <div class=\"carousel-navigate-button left\">\r\n <div class=\"carousel-navigate-button-wrapper\" *ngIf=\"canNavigateLeft\" (click)=\"handleButtonLeftClick()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\">\r\n <path\r\n d=\"M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z\"></path>\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"carousel-navigate-button right\">\r\n <div class=\"carousel-navigate-button-wrapper\" *ngIf=\"canNavigateRight\" (click)=\"handleButtonRightClick()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\">\r\n <path\r\n d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"></path>\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class Carousel3dComponent implements AfterViewInit, OnDestroy {\r\n @ViewChild(\"canvasContainer\", {read: ElementRef})\r\n public canvasContainer: ElementRef;\r\n\r\n @ViewChild(\"carouselWrapper\", {read: ElementRef})\r\n public carouselWrapper: ElementRef;\r\n\r\n @ContentChildren(\"carouselItem\", {read: ElementRef, descendants: true}) set children(children) {\r\n this._elementsCreated = false;\r\n this._tileElements = children.toArray();\r\n this._buildCarousel();\r\n }\r\n\r\n @Input()\r\n public tileWidth: number;\r\n\r\n @Input()\r\n public tileHeight: number;\r\n\r\n @Input()\r\n public cameraHeight: number = 50;\r\n\r\n @Input()\r\n public shadow: boolean = false;\r\n\r\n @Input()\r\n public selectedIndex: number = 0;\r\n\r\n @Output()\r\n public indexSelected: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n @HostBinding(\"class.co-carousel-3d\")\r\n public showClass(): boolean {\r\n return true;\r\n }\r\n\r\n private _camera: PerspectiveCamera;\r\n private _cameraZoom: number = 0;\r\n private _backgroundColor = 0xffffff;\r\n private _sceneCss: Scene;\r\n private _scene: Scene;\r\n private _rendererCss: CSS3DRenderer;\r\n private _renderer: WebGLRenderer;\r\n private _ambientLight: boolean = true;\r\n private _tileSize: Vector2 = new Vector2();\r\n private _tileMargin: number = 20;\r\n private _targetPositions = [];\r\n private _tileElements: ElementRef[] = [];\r\n private _tileOffset = 0;\r\n private _tiles3D: CarouselItem[] = [];\r\n private _planeColor = 0xffffff;\r\n private _planeHeight = -46;\r\n private _spotLightPosition: Vector3 = new Vector3(0, 250, -200);\r\n private _fullCircle: boolean = false;\r\n private _initialized: boolean = false;\r\n private _elementsCreated: boolean = false;\r\n\r\n public canNavigateLeft: boolean = false;\r\n public canNavigateRight: boolean = false;\r\n\r\n ngAfterViewInit(): void {\r\n this._buildCarousel();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.canvasContainer = undefined;\r\n this.carouselWrapper = undefined;\r\n this._clearScenes();\r\n }\r\n\r\n public handleButtonLeftClick(): void {\r\n this._tileOffset -= 1;\r\n this._rotate(400);\r\n }\r\n\r\n public handleButtonRightClick(): void {\r\n this._tileOffset += 1;\r\n this._rotate(400);\r\n }\r\n\r\n private _buildCarousel(): void {\r\n if (!this._initialized) {\r\n this._init();\r\n }\r\n if (this._initialized && !this._elementsCreated) {\r\n this._createTiles();\r\n }\r\n this._checkNavigationButtons();\r\n this._resizeCanvasToDisplaySize();\r\n }\r\n\r\n private _init(): void {\r\n if (!this.canvasContainer || !this.canvasContainer.nativeElement) {\r\n return;\r\n }\r\n\r\n this._initCamera();\r\n this._initScene();\r\n this._initRenderer();\r\n\r\n if (this.shadow) {\r\n const geometry = new PlaneGeometry(10000, 10000);\r\n const material = new MeshPhongMaterial({color: this._planeColor, shininess: 100});\r\n const plane = new Mesh(geometry, material);\r\n plane.receiveShadow = true;\r\n plane.rotation.x = -Math.PI / 2;\r\n plane.position.y = this._planeHeight;\r\n this._scene.add(plane);\r\n\r\n const spotLight = new SpotLight(0xffffff, 0.5);\r\n spotLight.position.copy(this._spotLightPosition);\r\n spotLight.castShadow = true;\r\n spotLight.shadow.mapSize.width = 512;\r\n spotLight.shadow.mapSize.height = 512;\r\n spotLight.shadow.camera.near = 50;\r\n spotLight.shadow.camera.far = 1200;\r\n spotLight.shadow.camera.fov = 30;\r\n spotLight.penumbra = 1;\r\n this._scene.add(spotLight);\r\n }\r\n\r\n this.carouselWrapper.nativeElement.appendChild(this._rendererCss.domElement);\r\n this.canvasContainer.nativeElement.appendChild(this.carouselWrapper.nativeElement);\r\n this.canvasContainer.nativeElement.appendChild(this._renderer.domElement);\r\n\r\n this._render();\r\n this._animate();\r\n\r\n window.addEventListener(\"resize\", () => {\r\n this._resizeCanvasToDisplaySize();\r\n }, false);\r\n\r\n this._initialized = true;\r\n }\r\n\r\n private _initCamera(): void {\r\n this._camera = new PerspectiveCamera(50, this.canvasContainer.nativeElement.clientWidth / this.canvasContainer.nativeElement.clientHeight, 1, 10000);\r\n this._camera.position.z = 600 - this._cameraZoom;\r\n this._camera.position.y = this.cameraHeight;\r\n this._camera.lookAt(new Vector3());\r\n }\r\n\r\n private _initScene(): void {\r\n this._sceneCss = new Scene();\r\n this._scene = new Scene();\r\n this._scene.background = new Color(this._backgroundColor);\r\n\r\n if (this._ambientLight) {\r\n const light = new AmbientLight(0xaaaaaa); // soft white light\r\n this._scene.add(light);\r\n\r\n this._scene.fog = new Fog(this._backgroundColor, 70, 2500);\r\n }\r\n }\r\n\r\n private _initRenderer(): void {\r\n this._rendererCss = new CSS3DRenderer();\r\n this._rendererCss.setSize(this.canvasContainer.nativeElement.clientWidth, this.canvasContainer.nativeElement.clientHeight);\r\n this._rendererCss.domElement.style.position = \"absolute\";\r\n\r\n this._renderer = new WebGLRenderer({antialias: true});\r\n this._renderer.setPixelRatio(window.devicePixelRatio);\r\n this._renderer.setSize(this.canvasContainer.nativeElement.clientWidth, this.canvasContainer.nativeElement.clientHeight);\r\n this._renderer.shadowMap.enabled = true;\r\n }\r\n\r\n private _disposeObject(obj: Mesh | CSS3DObject): void {\r\n if (obj instanceof Mesh) {\r\n if (obj.geometry) {\r\n obj.geometry.dispose();\r\n }\r\n if (obj.material) {\r\n Array.isArray(obj.material)? obj.material.map(m => m.dispose()) : obj.material.dispose();\r\n }\r\n obj = undefined;\r\n } else {\r\n obj.element = undefined;\r\n obj = undefined;\r\n }\r\n }\r\n\r\n private _clearScenes(): void {\r\n const meshes: Mesh[] = this._tiles3D.map(t => t.mesh);\r\n const cssObjs: CSS3DObject[] = this._tiles3D.map(t => t.object);\r\n this._scene.remove(...meshes);\r\n meshes.map(m => this._disposeObject(m));\r\n meshes.length = 0;\r\n this._sceneCss.remove(...cssObjs);\r\n cssObjs.map(o => this._disposeObject(o));\r\n cssObjs.length = 0;\r\n this._tiles3D.length = 0;\r\n this._targetPositions.length = 0;\r\n }\r\n\r\n private _createTiles(): void {\r\n this._clearScenes();\r\n this._tileSize.x = this.tileWidth;\r\n this._tileSize.y = this.tileHeight;\r\n const tileWidth = this._tileSize.x + this._tileMargin;\r\n const numItems: number = Math.max(this._tileElements.length, 20);\r\n this._fullCircle = this._tileElements.length >= 20;\r\n let angleTileDeg: number = 360 / numItems;\r\n const circumference: number = numItems * tileWidth;\r\n const radius: number = circumference / (Math.PI * 2);\r\n const y = this.shadow ? 75 : 45;\r\n\r\n const len: number = numItems;\r\n let angleDeg: number = 90;\r\n const position: Vector3 = new Vector3();\r\n for (var i = 0; i < len; i++) {\r\n const angle = angleDeg * ( Math.PI / 180 ); // Radians\r\n const x = radius * Math.cos(angle);\r\n const z = -radius + radius * Math.sin(angle);\r\n position.set(x, y, z);\r\n this._targetPositions.push(position.clone());\r\n if (i < this._tileElements.length) {\r\n const tile: CarouselItem = new CarouselItem({tileSize: this._tileSize}, i, (idx: number) => this._rotateTo(idx));\r\n tile.setPosition(position);\r\n tile.setContent(this._tileElements[i].nativeElement);\r\n this._scene.add(tile.mesh);\r\n this._sceneCss.add(tile.object);\r\n this._tiles3D.push(tile);\r\n }\r\n angleDeg = angleDeg - angleTileDeg; // CW instead of CCW\r\n }\r\n this._adjustCameraZoom();\r\n this._tileOffset = this.selectedIndex;\r\n this._rotate(0);\r\n this._render();\r\n }\r\n\r\n private _adjustCameraZoom(): void {\r\n if (this._tiles3D.length === 0) {\r\n return;\r\n }\r\n const object = this._tiles3D[0].mesh;\r\n // offset = offset || 1.15;\r\n\r\n // get bounding box of object - this will be used to setup controls and camera\r\n const boundingBox = new Box3();\r\n boundingBox.setFromObject(object);\r\n const center: Vector3 = new Vector3();\r\n boundingBox.getCenter(center);\r\n const size: Vector3 = new Vector3();\r\n boundingBox.getSize(size);\r\n\r\n // get the max side of the bounding box (fits to width OR height as needed )\r\n const maxDim = Math.max(size.x, size.y, size.z);\r\n\r\n const fov: number = this._camera.fov * (Math.PI / 180);\r\n // let cameraZ = Math.abs(maxDim / 4 * Math.tan(fov * 200));\r\n let cameraZ = Math.abs((maxDim / 2) / Math.tan(fov / 2));\r\n // cameraZ *= offset; // zoom out a little so that objects don't fill the screen\r\n this._camera.position.z = cameraZ;\r\n this._camera.lookAt(center);\r\n }\r\n\r\n private _checkNavigationButtons(): void {\r\n const currentIdx: number = this._getSelectedIndex();\r\n this.canNavigateLeft = (currentIdx > 0) || this._fullCircle;\r\n this.canNavigateRight = (currentIdx < this._tileElements.length - 1) || this._fullCircle;\r\n }\r\n\r\n private _animate() {\r\n TWEEN.update();\r\n setTimeout(() => {\r\n this._renderer.setAnimationLoop(() => this._animate());\r\n }, 200);\r\n }\r\n\r\n private _getSelectedIndex() {\r\n return Math.max(0, Math.min(this.selectedIndex, this._tileElements.length - 1));\r\n }\r\n\r\n private _rotate(duration) {\r\n TWEEN.removeAll();\r\n\r\n for (let i: number = 0; i < this._tiles3D.length; i++) {\r\n const tile = this._tiles3D[i];\r\n\r\n if (Math.abs(this._tileOffset) > this._targetPositions.length) { // full circle\r\n this._tileOffset = this._tileOffset > 0 ? 1 : -1;\r\n }\r\n\r\n let positionIdx: number = i - this._tileOffset;\r\n if (positionIdx > this._targetPositions.length - 1) {\r\n positionIdx = positionIdx - this._targetPositions.length;\r\n } else if (positionIdx < 0) {\r\n positionIdx = this._targetPositions.length + positionIdx;\r\n }\r\n const target = this._targetPositions[positionIdx];\r\n\r\n new TWEEN.Tween(tile.object.position)\r\n .to(target, duration)\r\n .easing(TWEEN.Easing.Quartic.Out)\r\n .start();\r\n new TWEEN.Tween(tile.mesh.position)\r\n .to(target, duration)\r\n .easing(TWEEN.Easing.Quartic.Out)\r\n .start();\r\n }\r\n\r\n new TWEEN.Tween()\r\n .to({}, duration * 2)\r\n .onUpdate(() => {\r\n this._render();\r\n })\r\n .start();\r\n\r\n this.selectedIndex = this._tileOffset;\r\n this._checkNavigationButtons();\r\n this.indexSelected.next(this._getSelectedIndex());\r\n }\r\n\r\n private _rotateTo(index: number) {\r\n const current = this._getSelectedIndex();\r\n this._tileOffset += index - current;\r\n this._rotate(800);\r\n }\r\n\r\n private _resizeCanvasToDisplaySize() {\r\n setTimeout(() => {\r\n if (!this.canvasContainer || !this.canvasContainer.nativeElement) {\r\n return;\r\n }\r\n this._camera.aspect = this.canvasContainer.nativeElement.clientWidth / this.canvasContainer.nativeElement.clientHeight;\r\n this._camera.updateProjectionMatrix();\r\n this._rendererCss.setSize(this.canvasContainer.nativeElement.clientWidth, this.canvasContainer.nativeElement.clientHeight);\r\n this._renderer.setSize(this.canvasContainer.nativeElement.clientWidth, this.canvasContainer.nativeElement.clientHeight);\r\n this._render();\r\n });\r\n }\r\n\r\n private _render() {\r\n this._rendererCss.render(this._sceneCss, this._camera);\r\n this._renderer.render(this._scene, this._camera);\r\n }\r\n\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {Carousel3dComponent} from \"./carousel-3d.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n Carousel3dComponent\r\n ],\r\n exports: [\r\n Carousel3dComponent\r\n ]\r\n})\r\nexport class Carousel3dModule {\r\n}\r\n","/*\n * Public API Surface of corecomponents\n */\n\nexport * from './lib/components/article-tile/article-tile.module';\nexport * from './lib/components/article-tile/article-tile.component';\nexport * from './lib/components/button/button.module';\nexport * from './lib/components/button/button.component';\nexport * from './lib/components/button-drop-down/button-drop-down.module';\nexport * from './lib/components/button-drop-down/button-drop-down.component';\nexport * from './lib/components/co-dialog/co-dialog.module';\nexport * from './lib/components/co-dialog/co-dialog.component';\nexport * from './lib/components/co-dialog-prompt/co-dialog-prompt.module';\nexport * from './lib/components/co-dialog-prompt/co-dialog-prompt.component';\nexport * from './lib/components/co-kanban/co-kanban.module';\nexport * from './lib/components/co-kanban/co-kanban.component';\nexport * from './lib/components/co-schedule/co-schedule.module';\nexport * from './lib/components/co-schedule/co-schedule.component';\nexport * from './lib/components/co-sidebar/co-sidebar.module';\nexport * from './lib/components/co-sidebar/co-sidebar.component';\nexport * from './lib/components/co-toggle/co-toggle.module';\nexport * from './lib/components/co-toggle/co-toggle.component';\nexport * from './lib/components/collapsible/collapsible.module';\nexport * from './lib/components/collapsible/collapsible.component';\nexport * from './lib/components/drop-down-list/drop-down.module';\nexport * from './lib/components/drop-down-list/drop-down-list.component';\nexport * from './lib/components/form/form.module';\nexport * from './lib/components/form/form.component';\nexport * from './lib/core/service/form-master.service';\nexport * from './lib/components/grid/co-grid.module';\nexport * from './lib/components/grid/co-grid.component';\nexport * from './lib/components/icon/icon.module';\nexport * from './lib/components/icon/icon.component';\nexport * from './lib/components/image/image.module';\nexport * from './lib/components/image/image.component';\nexport * from './lib/components/input-checkbox/input-checkbox.module';\nexport * from './lib/components/input-checkbox/input-checkbox.component';\nexport * from './lib/components/input-checkbox-multi-select/input-checkbox-multi-select.module';\nexport * from './lib/components/input-checkbox-multi-select/input-checkbox-multi-select.component';\nexport * from './lib/components/input-combo-box/input-combo-box.module';\nexport * from './lib/components/input-combo-box/input-combo-box.component';\nexport * from './lib/components/input-date-picker/input-date-picker.module';\nexport * from './lib/components/input-date-picker/input-date-picker.component';\nexport * from './lib/components/input-number-picker/input-number-picker.module';\nexport * from './lib/components/input-number-picker/input-number-picker.component';\nexport * from './lib/components/input-radio-button/input-radio-button.module';\nexport * from './lib/components/input-radio-button/input-radio-button.component';\nexport * from './lib/components/input-text/input-text.module';\nexport * from './lib/components/input-text/input-text.component';\nexport * from './lib/components/input-textarea/input-textarea.module';\nexport * from './lib/components/input-textarea/input-textarea.component';\nexport * from './lib/components/level-indicator/level-indicator.module';\nexport * from './lib/components/level-indicator/level-indicator.component';\nexport * from './lib/components/multi-select-list/multi-select-list.module';\nexport * from './lib/components/multi-select-list/multi-select-list.component';\nexport * from './lib/components/pivot/co-pivot.module';\nexport * from './lib/components/pivot/co-pivot.component';\nexport * from './lib/components/popup/popup.module';\nexport * from './lib/components/popup/text-input-popup.component';\nexport * from './lib/components/popup/popup-window-shell.component';\nexport * from './lib/components/popup/popup-message-display.component';\nexport * from './lib/components/popup/popup-buttons.component';\nexport * from './lib/components/tile/tile.module';\nexport * from './lib/components/tile/tile.component';\nexport * from './lib/core/enum/core-components-icon.enum';\nexport * from './lib/components/popup/service/prompt.service';\nexport * from './lib/components/icon/icon-cache.service';\nexport * from './lib/components/base/component-interface-name';\nexport * from './lib/components/co-rich-text-editor/co-rich-text-editor.module';\nexport * from './lib/components/co-rich-text-editor/co-rich-text-editor.component';\nexport * from './lib/components/input-listbox/input-listbox.module';\nexport * from './lib/components/input-listbox/input-listbox.component';\nexport * from './lib/components/simple-grid/simple-grid-column.directive';\nexport * from './lib/components/simple-grid/simple-grid.component';\nexport * from './lib/components/simple-grid/simple-grid.module';\nexport * from './lib/components/carousel-3d/carousel-3d.component';\nexport * from './lib/components/carousel-3d/carousel-3d.module';\nexport * from './lib/pipes/price-display.pipe';\nexport * from './lib/pipes/price-display-pipe.module';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {BaseInputComponent as ɵm} from './lib/components/base/base-input.component';\nexport {BaseModule as ɵj} from './lib/components/base/base.module';\nexport {BaseGridComponent as ɵq} from './lib/components/grid/base/base-grid.component';\nexport {BaseInlineEditGridComponent as ɵo} from './lib/components/grid/base/base-inline-edit-grid.component';\nexport {BaseSelectionGridComponent as ɵn} from './lib/components/grid/base/base-selection-grid.component';\nexport {BaseToolbarGridComponent as ɵp} from './lib/components/grid/base/base-toolbar-grid.component';\nexport {PopupShowerService as ɵv} from './lib/components/popup/service/popup-shower.service';\nexport {ValidationErrorComponent as ɵu} from './lib/components/validation-error/validation-error.component';\nexport {ValidationErrorModule as ɵt} from './lib/components/validation-error/validation-error.module';\nexport {InputBoolean as ɵi} from './lib/core/decorator/input-boolean.decorator';\nexport {FormInputUserModelChangeListenerService as ɵk} from './lib/core/service/form-input-user-change-listener.service';\nexport {NgZoneWrapperService as ɵl} from './lib/core/service/ng-zone-wrapper.service';\nexport {CoRippleDirective as ɵc,MD_RIPPLE_GLOBAL_OPTIONS as ɵb} from './lib/directives/ripple/ripple.directive';\nexport {RippleModule as ɵa} from './lib/directives/ripple/ripple.module';\nexport {CoScrollDispatcherService as ɵe} from './lib/directives/ripple/scroll-dispatcher.service';\nexport {CoScrollableDirective as ɵf} from './lib/directives/ripple/scrollable.directive';\nexport {CoViewportRulerService as ɵd} from './lib/directives/ripple/viewport-ruler.service';\nexport {StopClickDirective as ɵh} from './lib/directives/stopclick/stop-click.directive';\nexport {StopClickModule as ɵg} from './lib/directives/stopclick/stop-click.module';\nexport {AppendPipe as ɵs} from './lib/pipes/append.pipe';\nexport {AppendPipeModule as ɵr} from './lib/pipes/append.pipe.module';"],"names":["Injectable","DomSanitizer","Component","Input","HostBinding","NgModule","CommonModule","HttpClientModule","Subject","auditTime","merge","fromEvent","Optional","SkipSelf","InjectionToken","Directive","ElementRef","NgZone","Inject","EventEmitter","ChangeDetectionStrategy","ViewEncapsulation","Output","HostListener","Pipe","CoreComponentsIcon","DropDownButtonModule","trigger","state","style","transition","animate","ViewChild","DialogModule","KanbanModule","DayService","WeekService","WorkWeekService","MonthService","AgendaService","MonthAgendaService","TimelineViewsService","TimelineMonthService","ScheduleModule","SidebarModule","SwitchModule","FormsModule","ChangeDetectorRef","ComponentFactoryResolver","ViewContainerRef","NgModel","FormGroup","CheckBoxSelectionService","forwardRef","DropDownListModule","MultiSelectModule","RowDDService","GridModule","PageService","SortService","FilterService","GroupService","ReorderService","ResizeService","ExcelExportService","PdfExportService","EditService","ToolbarService","ColumnChooserService","ColumnMenuService","ContextMenuService","enableRipple","CheckBoxModule","MultiSelectAllModule","ComboBoxAllModule","DatePickerModule","NO_ERRORS_SCHEMA","TextBoxAllModule","NumericTextBoxModule","RadioButtonModule","GroupingBarService","GroupingService","ConditionalFormattingService","FieldListService","NumberFormattingService","PivotViewModule","OverlayConfig","ComponentPortal","Injector","ApplicationRef","Overlay","LinkService","ImageService","HtmlEditorService","RichTextEditorModule","ListBoxComponent","CheckBoxSelection","ListBoxModule","ColumnAlign","ContentChild","TemplateRef","moveItemInArray","ContentChildren","DragDropModule","CSS3DObject","PlaneBufferGeometry","Mesh","Vector2","Vector3","PlaneGeometry","MeshPhongMaterial","SpotLight","PerspectiveCamera","Scene","Color","AmbientLight","Fog","CSS3DRenderer","WebGLRenderer","Box3","TWEEN"],"mappings":"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"}
|