@acorex/components 1.3.87 → 1.3.88
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/acorex-components.metadata.json +1 -1
- package/bundles/acorex-components.umd.js +0 -4
- package/bundles/acorex-components.umd.js.map +1 -1
- package/bundles/acorex-components.umd.min.js.map +1 -1
- package/esm2015/lib/selectbox/selectbox.component.js +1 -5
- package/esm5/lib/selectbox/selectbox.component.js +1 -5
- package/fesm2015/acorex-components.js +0 -4
- package/fesm2015/acorex-components.js.map +1 -1
- package/fesm5/acorex-components.js +0 -4
- package/fesm5/acorex-components.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-components.js","sources":["ng://@acorex/components/lib/validation/validation-rule.widget.ts","ng://@acorex/components/lib/validation/validation.component.ts","ng://@acorex/components/lib/base/events.class.ts","ng://@acorex/components/lib/base/element.class.ts","ng://@acorex/components/lib/popover/custom-cdk-overlay.service.ts","ng://@acorex/components/lib/popover/overlay.service.ts","ng://@acorex/components/lib/loading/loading-indicator.component.ts","ng://@acorex/components/lib/loading/loading.service.ts","ng://@acorex/components/lib/page/page.component.ts","ng://@acorex/components/lib/base/base-page.class.ts","ng://@acorex/components/lib/button/button.component.ts","ng://@acorex/components/lib/button/button.module.ts","ng://@acorex/components/lib/calendar/calendar-box/calendar-box.component.ts","ng://@acorex/components/lib/popover/popover.component.ts","ng://@acorex/components/lib/popover/popover.module.ts","ng://@acorex/components/lib/calendar/calendar-box/calendar-box.module.ts","ng://@acorex/components/lib/calendar/scheduler/scheduler-views.property.ts","ng://@acorex/components/lib/calendar/scheduler/scheduler.class.ts","ng://@acorex/components/lib/toolbar/toolbar-item.ts","ng://@acorex/components/lib/menu/menu.component.ts","ng://@acorex/components/lib/toolbar/menu/toolbar-menu.component.ts","ng://@acorex/components/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.ts","ng://@acorex/components/lib/calendar/scheduler/views/scheduler-view.component.ts","ng://@acorex/components/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.ts","ng://@acorex/components/lib/calendar/scheduler/views/month/scheduler-month-view.component.ts","ng://@acorex/components/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.ts","ng://@acorex/components/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.ts","ng://@acorex/components/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.ts","ng://@acorex/components/lib/toolbar/search/toolbar-search.component.ts","ng://@acorex/components/lib/data-source/read-param.ts","ng://@acorex/components/lib/data-source/datasource.component.ts","ng://@acorex/components/lib/calendar/scheduler/scheduler.component.ts","ng://@acorex/components/lib/toolbar/toolbar.component.ts","ng://@acorex/components/lib/toolbar/title/toolbar-title.component.ts","ng://@acorex/components/lib/toolbar/group-button/toolbar-group-button.component.ts","ng://@acorex/components/lib/menu/menu2.component.ts","ng://@acorex/components/lib/menu/menu-item.component.ts","ng://@acorex/components/lib/menu/menu.module.ts","ng://@acorex/components/lib/toolbar/toolbar.module.ts","ng://@acorex/components/lib/calendar/scheduler/scheduler.module.ts","ng://@acorex/components/lib/checkbox/checkbox.component.ts","ng://@acorex/components/lib/checkbox/checkbox.module.ts","ng://@acorex/components/lib/context-menu/context-menu.component.ts","ng://@acorex/components/lib/context-menu/context-menu.directive.ts","ng://@acorex/components/lib/context-menu/context-menu.module.ts","ng://@acorex/components/lib/data-filter/filter.class.ts","ng://@acorex/components/lib/selection-list/selection-list.component.ts","ng://@acorex/components/lib/data-filter/columns/filter-column-date.component.ts","ng://@acorex/components/lib/data-filter/columns/filter-column-number.component.ts","ng://@acorex/components/lib/data-filter/columns/filter-column-selection.component.ts","ng://@acorex/components/lib/data-filter/columns/filter-column-string.component.ts","ng://@acorex/components/lib/textbox/textbox.component.ts","ng://@acorex/components/lib/toast/toast-wrapper/toast-wrapper.component.ts","ng://@acorex/components/lib/toast/toast-message/toast-message.component.ts","ng://@acorex/components/lib/toast/toast.service.ts","ng://@acorex/components/lib/data-filter/filter-panel/filter-panel.component.ts","ng://@acorex/components/lib/data-filter/toolbar/filter-toolbar.component.ts","ng://@acorex/components/lib/panel-box/panel-box.component.ts","ng://@acorex/components/lib/panel-box/panel-box.module.ts","ng://@acorex/components/lib/dropdown/dropdown.component.ts","ng://@acorex/components/lib/date-picker/date-picker.component.ts","ng://@acorex/components/lib/form-group/form-group.component.ts","ng://@acorex/components/lib/form-group/form-group.module.ts","ng://@acorex/components/lib/textbox/textbox.module.ts","ng://@acorex/components/lib/dropdown/dropdown.module.ts","ng://@acorex/components/lib/date-picker/date-picker.module.ts","ng://@acorex/components/lib/toast/toast.module.ts","ng://@acorex/components/lib/selection-list/selection-list.module.ts","ng://@acorex/components/lib/validation/validation-form.component.ts","ng://@acorex/components/lib/validation/validation.module.ts","ng://@acorex/components/lib/data-filter/filter.module.ts","ng://@acorex/components/lib/data-list/core/data-list.component.ts","ng://@acorex/components/lib/data-list/list/toolbar-list-view.component.ts","ng://@acorex/components/lib/data-list/list/list.component.ts","ng://@acorex/components/lib/data-source/datasource.module.ts","ng://@acorex/components/lib/data-list/list/list.module.ts","ng://@acorex/components/lib/dialog/dialog.component.ts","ng://@acorex/components/lib/dialog/dialog.module.ts","ng://@acorex/components/lib/popup/popup.component.ts","ng://@acorex/components/lib/popup/popup.service.ts","ng://@acorex/components/lib/dialog/dialog.service.ts","ng://@acorex/components/lib/drawer/drawer.component.ts","ng://@acorex/components/lib/drawer/drawer.module.ts","ng://@acorex/components/lib/fieldset/fieldset.component.ts","ng://@acorex/components/lib/fieldset/fieldset.module.ts","ng://@acorex/components/lib/label/label.component.ts","ng://@acorex/components/lib/label/label.module.ts","ng://@acorex/components/lib/loading/loading-panel.component.ts","ng://@acorex/components/lib/loading/loading.module.ts","ng://@acorex/components/lib/number-box/number-box.component.ts","ng://@acorex/components/lib/number-box/number-box.module.ts","ng://@acorex/components/lib/page/content.component.ts","ng://@acorex/components/lib/page/footer.component.ts","ng://@acorex/components/lib/page/page.module.ts","ng://@acorex/components/lib/password-box/password-box.component.ts","ng://@acorex/components/lib/password-box/password-box.module.ts","ng://@acorex/components/lib/popup/popup.module.ts","ng://@acorex/components/lib/progress-bar/progress-bar.component.ts","ng://@acorex/components/lib/progress-bar/progress-bar.module.ts","ng://@acorex/components/lib/query-builder/query-builder.class.ts","ng://@acorex/components/lib/searchbox/searchbox.component.ts","ng://@acorex/components/lib/selectbox/selectbox.component.ts","ng://@acorex/components/lib/query-builder/query-builder-rule.component.ts","ng://@acorex/components/lib/query-builder/query-builder-popup/query-builder-popup.component.ts","ng://@acorex/components/lib/query-builder/query-builder.service.ts","ng://@acorex/components/lib/query-builder/query-builder-group.component.ts","ng://@acorex/components/lib/query-builder/query-builder.component.ts","ng://@acorex/components/lib/searchbox/searchbox.module.ts","ng://@acorex/components/lib/selectbox/selectbox2.component.ts","ng://@acorex/components/lib/selectbox/selectbox.module.ts","ng://@acorex/components/lib/query-builder/query-builder.module.ts","ng://@acorex/components/lib/switch/switch.component.ts","ng://@acorex/components/lib/switch/switch.module.ts","ng://@acorex/components/lib/tab-page/tab-page.service.ts","ng://@acorex/components/lib/tab-page/tab-page-host.component.ts","ng://@acorex/components/lib/tab-page/tab-page-Renderer.component.ts","ng://@acorex/components/lib/tab-page/tab-page.module.ts","ng://@acorex/components/lib/tab-strip/tab-strip.component.ts","ng://@acorex/components/lib/tab-strip/tab-strip.module.ts","ng://@acorex/components/lib/tab-view/dynamic-tabs.directive.ts","ng://@acorex/components/lib/tab-view/tab.component.ts","ng://@acorex/components/lib/tab-view/tab-view.component.ts","ng://@acorex/components/lib/tab-view/tab-view.module.ts","ng://@acorex/components/lib/textarea/textarea.component.ts","ng://@acorex/components/lib/textarea/textarea.module.ts","ng://@acorex/components/lib/time-picker/time-picker.component.ts","ng://@acorex/components/lib/time-picker/time-picker.module.ts","ng://@acorex/components/lib/tooltip/tooltip.directive.ts","ng://@acorex/components/lib/tooltip/tooltip.module.ts","ng://@acorex/components/lib/tree-side-menu/tree-side-menu.component.ts","ng://@acorex/components/lib/tree-side-menu/tree-side-menu.module.ts","ng://@acorex/components/lib/tree-view/tree-view.component.ts","ng://@acorex/components/lib/tree-view/tree-view.module.ts","ng://@acorex/components/lib/upload-file/upload-file.component.ts","ng://@acorex/components/lib/upload-file/upload-file.module.ts","ng://@acorex/components/lib/accordion/accordion.component.ts","ng://@acorex/components/lib/accordion/accordion.module.ts","ng://@acorex/components/lib/property-editor/property-editor.class.ts","ng://@acorex/components/lib/property-editor/property-editor-renderer.directive.ts","ng://@acorex/components/lib/property-editor/editors/text-editor/text.editor.ts","ng://@acorex/components/lib/property-editor/editors/text-editor/text.module.ts","ng://@acorex/components/lib/property-editor/editors/number-editor/number.editor.ts","ng://@acorex/components/lib/property-editor/editors/number-editor/number.module.ts","ng://@acorex/components/lib/property-editor/editors/selectbox-editor/selectbox.editor.ts","ng://@acorex/components/lib/property-editor/editors/selectbox-editor/selectbox.module.ts","ng://@acorex/components/lib/property-editor/editors/range-editor/range.editor.ts","ng://@acorex/components/lib/color-picker/color-box/color-box.component.ts","ng://@acorex/components/lib/color-picker/color-picker.component.ts","ng://@acorex/components/lib/color-picker/color-picker.module.ts","ng://@acorex/components/lib/property-editor/editors/range-editor/range.module.ts","ng://@acorex/components/lib/property-editor/editors/color-editor/color.editor.ts","ng://@acorex/components/lib/property-editor/editors/color-editor/color.module.ts","ng://@acorex/components/lib/property-editor/editors/column-editor/column.editor.ts","ng://@acorex/components/lib/property-editor/editors/column-editor/column.module.ts","ng://@acorex/components/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.ts","ng://@acorex/components/lib/property-editor/editors/conditional-color-editor/conditional-color.module.ts","ng://@acorex/components/lib/property-editor/editors/switch-editor/number.editor.ts","ng://@acorex/components/lib/property-editor/editors/switch-editor/number.module.ts","ng://@acorex/components/lib/property-editor/editors/date-editor/date.editor.ts","ng://@acorex/components/lib/property-editor/editors/date-editor/date.module.ts","ng://@acorex/components/lib/property-editor/editors/time-editor/time.editor.ts","ng://@acorex/components/lib/property-editor/editors/time-editor/time.module.ts","ng://@acorex/components/lib/property-editor/property-editor.module.ts","ng://@acorex/components/public-api.ts","ng://@acorex/components/acorex-components.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\r\nimport { AXValidationRuleResult, AXValidationRule, AXValidationRuleTypes } from './validation.class';\r\nimport { AXTranslator } from '@acorex/core';\r\n\r\n\r\n// @dynamic\r\nexport class AXValidationRules {\r\n private static registredRules: { name: string, rule: AXValidationRule }[] = [];\r\n\r\n public static addRule(name: string, rule: AXValidationRule) {\r\n const exists = AXValidationRules.get(name);\r\n if (exists) {\r\n exists.rule = rule;\r\n }\r\n else {\r\n AXValidationRules.registredRules.push({\r\n name,\r\n rule\r\n });\r\n }\r\n }\r\n\r\n public static get(name: string) {\r\n return this.registredRules.find(c => c.name === name);\r\n }\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'ax-validation-rule',\r\n template: ''\r\n})\r\nexport class AXValidationRuleComponent implements AXValidationRule {\r\n @Input()\r\n type: AXValidationRuleTypes = 'required';\r\n @Input()\r\n message: string;\r\n @Input()\r\n value: any;\r\n\r\n @Input()\r\n enabled: boolean = true;\r\n\r\n validate(value: any): Promise<AXValidationRuleResult> {\r\n if (this.enabled === false) {\r\n return Promise.resolve({ result: true });\r\n }\r\n const regRule = AXValidationRules.get(this.type);\r\n if (regRule) {\r\n return this.internalValidate(regRule.rule.type, value, this.message || regRule.rule.message, regRule.rule.value);\r\n }\r\n else {\r\n return this.internalValidate(this.type, value, this.message, this.value);\r\n }\r\n }\r\n\r\n\r\n private internalValidate(type: string, value?: any, message?: string, ruleValue?: any): Promise<AXValidationRuleResult> {\r\n return new Promise<AXValidationRuleResult>(resolve => {\r\n switch (type) {\r\n case 'required':\r\n resolve({\r\n message: message || AXTranslator.get('validation.messages.required'),\r\n result: value != null && value != '' && (!Array.isArray(value) || (Array.isArray(value) && value.length > 0))\r\n });\r\n break;\r\n case 'regex':\r\n const ex = new RegExp(ruleValue);\r\n resolve({\r\n message: message || AXTranslator.get('validation.messages.regex'),\r\n result: ex.test(value)\r\n });\r\n break;\r\n case 'custom':\r\n case 'callback':\r\n if (typeof ruleValue === 'function') {\r\n const res: any = {};\r\n res.message = message;\r\n const val = ruleValue({ value, message });\r\n if (val instanceof Promise) {\r\n val.then(c => {\r\n res.result = c;\r\n }).catch(c => {\r\n res.result = false;\r\n }).finally(() => {\r\n resolve(res);\r\n });\r\n }\r\n else {\r\n res.result = val;\r\n resolve(res);\r\n }\r\n }\r\n else {\r\n resolve({ result: true });\r\n }\r\n break;\r\n default:\r\n resolve({ result: true });\r\n }\r\n });\r\n }\r\n}\r\n","import { Component, ContentChildren, QueryList, Input, Output, EventEmitter } from '@angular/core';\r\nimport { AXValidationRuleComponent } from './validation-rule.widget';\r\nimport { AXValidationRule, AXValidationRuleResult } from './validation.class';\r\n\r\n\r\n\r\nexport class AXValidation {\r\n\r\n rules: AXValidationRule[] = [];\r\n validateOn: 'blur' | 'change' | 'submit' = 'submit';\r\n showMessage: boolean;\r\n\r\n validate(value: any): Promise<AXValidationRuleResult> {\r\n if (!this.rules || this.rules.length === 0) {\r\n return Promise.resolve({ result: true });\r\n }\r\n return new Promise<AXValidationRuleResult>(resolve => {\r\n Promise.all(\r\n this.rules.map(c => {\r\n if (c instanceof AXValidationRuleComponent) {\r\n return c.validate(value);\r\n }\r\n else {\r\n const v = new AXValidationRuleComponent();\r\n Object.assign(v, c);\r\n return v.validate(value);\r\n }\r\n })\r\n ).then(d => {\r\n const error = d.find(c => c.result === false);\r\n if (error) {\r\n resolve(error);\r\n } else {\r\n resolve({ result: true });\r\n }\r\n });\r\n });\r\n }\r\n\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'ax-validation',\r\n template: '<ng-content></ng-content>',\r\n providers: [{ provide: AXValidation, useExisting: AXValidationComponent }]\r\n})\r\nexport class AXValidationComponent extends AXValidation {\r\n\r\n @ContentChildren(AXValidationRuleComponent)\r\n private contentItems: QueryList<AXValidationRuleComponent>;\r\n\r\n\r\n @Output()\r\n rulesChange: EventEmitter<AXValidationRule[]> = new EventEmitter<AXValidationRule[]>();\r\n\r\n @Output()\r\n showMessage: boolean = true;\r\n\r\n private _rules: AXValidationRule[];\r\n\r\n @Input()\r\n public get rules(): AXValidationRule[] {\r\n return this._rules;\r\n }\r\n public set rules(v: AXValidationRule[]) {\r\n this._rules = v;\r\n if (this.rulesChange) {\r\n this.rulesChange.emit(v);\r\n }\r\n }\r\n\r\n @Input()\r\n validateOn: 'blur' | 'change' | 'submit' = null;\r\n\r\n\r\n ngAfterContentInit() {\r\n if (this.rules && this.rules.length === 0) {\r\n this.rules.push(...this.contentItems.toArray());\r\n }\r\n }\r\n}\r\n","export class AXBaseEvent {\r\n component: any;\r\n htmlElement?: HTMLElement;\r\n}\r\n\r\nexport class AXHtmlEvent<E extends Event> extends AXBaseEvent {\r\n\r\n htmlEvent?: E;\r\n}\r\n\r\nexport class AXValueEvent<T> extends AXBaseEvent {\r\n value?: T;\r\n oldValue?: T;\r\n}\r\n\r\nexport class AXDataEvent<T> extends AXBaseEvent {\r\n data?: T;\r\n}\r\n\r\nexport class AXEvent<T, E extends Event>\r\n{\r\n\r\n}\r\nexport interface AXEvent<T, E extends Event> extends AXDataEvent<T>, AXHtmlEvent<E> {\r\n\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Input, Output, EventEmitter, ChangeDetectorRef, ViewChild, ElementRef, ContentChild } from '@angular/core';\r\nimport { AXValidationComponent, AXValidation } from '../validation/validation.component';\r\nimport { AXValidationRuleResult } from '../validation/validation.class';\r\nimport { AXHtmlUtil } from '@acorex/core';\r\nimport { AXEvent, AXHtmlEvent, AXValueEvent } from './events.class';\r\n\r\nexport type AXElementSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\r\n\r\nexport abstract class AXBaseComponent {\r\n uid: string = AXHtmlUtil.getUID();\r\n constructor() {\r\n }\r\n}\r\n\r\n\r\nexport class AXBaseInputChangeEvent extends AXValueEvent<any> {\r\n isUserChange?: boolean;\r\n}\r\n\r\nexport interface AXBaseSizableComponent {\r\n size: AXElementSize;\r\n}\r\n\r\nexport interface AXBaseInteractiveComponent {\r\n disabled: boolean;\r\n tabIndex: number;\r\n}\r\n\r\nexport interface AXBaseInputComponent extends AXBaseInteractiveComponent {\r\n readonly: boolean;\r\n focus(): void;\r\n}\r\n\r\n\r\nexport interface AXBaseValueComponent<T> extends AXBaseInputComponent {\r\n onValueChanged?: EventEmitter<AXValueEvent<T>>;\r\n valueChange?: EventEmitter<T>;\r\n value: T;\r\n}\r\n\r\nexport interface AXBaseClickableComponent extends AXBaseInteractiveComponent {\r\n click: EventEmitter<AXHtmlEvent<MouseEvent>>;\r\n}\r\n\r\nexport abstract class AXValidatableComponent extends AXBaseComponent {\r\n\r\n private __valueField: string = 'value';\r\n private __nativeElement: HTMLElement;\r\n private __validation: AXValidation;\r\n\r\n\r\n @Input()\r\n tabIndex: number = 0;\r\n\r\n protected initValidation(\r\n elementRef: ElementRef,\r\n valueField: string,\r\n validation: AXValidation\r\n ) {\r\n this.__nativeElement = elementRef.nativeElement;\r\n this.__valueField = valueField;\r\n this.__validation = validation;\r\n }\r\n\r\n get validation() {\r\n return this.__validation;\r\n }\r\n\r\n validate(): Promise<AXValidationRuleResult> {\r\n if (this.__validation !== undefined) {\r\n const result = this.__validation.validate(this[this.__valueField]);\r\n result.then(c => {\r\n if (c.result) {\r\n this.clearValidationStyle(this.__nativeElement);\r\n }\r\n else {\r\n this.applyValidationStyle(this.__nativeElement, c);\r\n }\r\n });\r\n return result;\r\n }\r\n else {\r\n return Promise.resolve({ result: true });\r\n }\r\n }\r\n\r\n\r\n protected clearValidationStyle(element: HTMLElement) {\r\n const formGroup = element.closest('.form-group');\r\n const formItem = formGroup?.querySelector('.form-item') || element.closest('.form-item') || element.querySelector('.form-item');;\r\n const label = formGroup?.querySelector('.form-group-label');\r\n const parent = formItem?.parentElement || element.parentElement;\r\n formItem?.classList.remove('error');\r\n label?.classList.remove('error-text');\r\n if (parent.querySelector('span.error-text')) {\r\n parent.removeChild(parent.querySelector('span.error-text'));\r\n }\r\n }\r\n\r\n protected applyValidationStyle(element: HTMLElement, v: AXValidationRuleResult): void {\r\n const formGroup = element.closest('.form-group');\r\n const formItem = formGroup?.querySelector('.form-item') || element.closest('.form-item') || element.querySelector('.form-item');\r\n const label = formGroup?.querySelector('.form-group-label');\r\n const parent = formItem?.parentElement || element.parentElement;\r\n formItem?.classList.add('error');\r\n if (parent.querySelector('span.error-text')) {\r\n parent.removeChild(parent.querySelector('span.error-text'));\r\n }\r\n if (this.__validation.showMessage) {\r\n const span = document.createElement('span');\r\n span.innerText = v.message;\r\n span.classList.add('ax', 'error-text');\r\n parent.appendChild(span);\r\n }\r\n label?.classList.add('error-text');\r\n }\r\n}\r\n\r\n\r\n\r\n\r\nexport abstract class AXBaseTextComponent extends AXValidatableComponent implements AXBaseSizableComponent, AXBaseValueComponent<string> {\r\n\r\n ngAfterViewInit() {\r\n if (this.input) {\r\n this.input.nativeElement.onkeyup = (e) => {\r\n this.userChange=true;\r\n this.value = (e.target as any).value;\r\n this.onkey.emit(e);\r\n };\r\n this.input.nativeElement.onkeydown = (e) => {\r\n this.userChange=true;\r\n\r\n this.value = (e.target as any).value;\r\n this.onkey.emit(e);\r\n };\r\n this.input.nativeElement.onkeypress = (e) => {\r\n this.userChange=true;\r\n\r\n this.value = (e.target as any).value;\r\n this.onkey.emit(e);\r\n };\r\n }\r\n }\r\n\r\n\r\n ngAfterContentInit(): void {\r\n this.initValidation(this.ref, 'value', this.validation);\r\n }\r\n\r\n\r\n @Input()\r\n tabIndex: number = 0;\r\n\r\n @ViewChild('input', { static: true })\r\n @ContentChild('input', { static: true })\r\n input: ElementRef<HTMLInputElement>;\r\n\r\n @ContentChild(AXValidation, { static: true })\r\n private _contentValidation: AXValidation;\r\n\r\n private _validation: AXValidation;\r\n\r\n @Input()\r\n public get validation(): AXValidation {\r\n return this._validation ? this._validation : this._contentValidation;\r\n }\r\n\r\n public set validation(v: AXValidation) {\r\n this._validation = v;\r\n this.initValidation(this.ref, 'value', v);\r\n }\r\n\r\n\r\n @Input()\r\n disabled: boolean = false;\r\n\r\n @Input()\r\n readonly: boolean = false;\r\n\r\n @Input()\r\n textAlign: 'right' | 'left' | null = null;\r\n\r\n @Input()\r\n size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'md';\r\n\r\n @Input()\r\n placeholder: string;\r\n\r\n userChange:boolean =false;\r\n\r\n constructor(protected cdr: ChangeDetectorRef, protected ref: ElementRef) {\r\n super();\r\n }\r\n\r\n @Output()\r\n public onkey: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\r\n\r\n @Output()\r\n public onBlur: EventEmitter<AXHtmlEvent<Event>> = new EventEmitter<AXHtmlEvent<Event>>();\r\n\r\n @Output()\r\n public onFocus: EventEmitter<AXHtmlEvent<Event>> = new EventEmitter<AXHtmlEvent<Event>>();\r\n\r\n @Output()\r\n public onValueChanged: EventEmitter<AXBaseInputChangeEvent> = new EventEmitter<AXBaseInputChangeEvent>();\r\n\r\n @Output()\r\n valueChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n\r\n @Input()\r\n icon: string = '';\r\n\r\n @Input()\r\n allowClear: boolean = false;\r\n\r\n private _value: string;\r\n @Input()\r\n public get value(): string {\r\n return this._value;\r\n }\r\n public set value(v: string) {\r\n if (v !== this._value) {\r\n const old = this._value;\r\n this._value = v;\r\n\r\n this.valueChange.emit(v);\r\n this.onValueChanged.emit({\r\n component: this,\r\n value: v,\r\n oldValue: old,\r\n isUserChange: this.userChange\r\n });\r\n this.userChange=false;\r\n this.clearValidationStyle(this.input.nativeElement);\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n focus() {\r\n this.input.nativeElement.focus();\r\n }\r\n\r\n clear() {\r\n this.userChange=true;\r\n\r\n this.value = null;\r\n this.input.nativeElement.value = null;\r\n }\r\n\r\n isFocused(): boolean {\r\n return this.input.nativeElement === document.activeElement;\r\n }\r\n\r\n setTextAlign() {\r\n if (this.textAlign === 'left') {\r\n return 'text-left';\r\n }\r\n if (this.textAlign === 'right') {\r\n return 'text-right';\r\n }\r\n }\r\n\r\n handleInputBlur(e: Event) {\r\n this.onBlur.emit({\r\n component: this,\r\n htmlElement: this.ref.nativeElement,\r\n htmlEvent: e\r\n });\r\n }\r\n\r\n handleInputFocus(e: Event) {\r\n this.onFocus.emit({\r\n component: this,\r\n htmlElement: this.ref.nativeElement,\r\n htmlEvent: e\r\n });\r\n }\r\n}\r\n\r\nexport abstract class AXBaseButtonComponent extends AXBaseComponent implements AXBaseClickableComponent, AXBaseSizableComponent {\r\n\r\n @Input()\r\n disabled: boolean;\r\n\r\n @Output()\r\n click: EventEmitter<AXHtmlEvent<MouseEvent>> = new EventEmitter<AXHtmlEvent<MouseEvent>>();\r\n\r\n @Input()\r\n size: AXElementSize;\r\n\r\n @Input()\r\n tabIndex: number = 0;\r\n\r\n}\r\n\r\nexport abstract class AXBaseDropdownComponent extends AXBaseComponent implements AXBaseInteractiveComponent, AXBaseSizableComponent {\r\n\r\n @Input()\r\n disabled: boolean;\r\n\r\n @Input()\r\n size: AXElementSize;\r\n\r\n @Input()\r\n fitParent: boolean = true;\r\n\r\n @Input()\r\n tabIndex: number = 0;\r\n\r\n @Input()\r\n showDropDownButton: boolean = true;\r\n\r\n abstract close();\r\n abstract open();\r\n}\r\n","import {\r\n Overlay,\r\n OverlayKeyboardDispatcher,\r\n OverlayPositionBuilder,\r\n ScrollStrategyOptions,\r\n OverlayContainer,\r\n OverlayRef,\r\n OverlayConfig\r\n} from '@angular/cdk/overlay';\r\nimport {\r\n ComponentFactoryResolver,\r\n Inject,\r\n Injector,\r\n NgZone,\r\n Renderer2,\r\n RendererFactory2,\r\n Injectable\r\n} from '@angular/core';\r\nimport { Directionality } from '@angular/cdk/bidi';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DynamicOverlayContainer extends OverlayContainer {\r\n public setContainerElement(containerElement: HTMLElement): void {\r\n this._containerElement = containerElement;\r\n }\r\n}\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DynamicOverlay extends Overlay {\r\n private readonly _dynamicOverlayContainer: DynamicOverlayContainer;\r\n private renderer: Renderer2;\r\n\r\n constructor(\r\n scrollStrategies: ScrollStrategyOptions,\r\n _overlayContainer: DynamicOverlayContainer,\r\n _componentFactoryResolver: ComponentFactoryResolver,\r\n _positionBuilder: OverlayPositionBuilder,\r\n _keyboardDispatcher: OverlayKeyboardDispatcher,\r\n _injector: Injector,\r\n _ngZone: NgZone,\r\n @Inject(DOCUMENT) _document: any,\r\n _directionality: Directionality,\r\n rendererFactory: RendererFactory2\r\n ) {\r\n super(\r\n scrollStrategies,\r\n _overlayContainer,\r\n _componentFactoryResolver,\r\n _positionBuilder,\r\n _keyboardDispatcher,\r\n _injector,\r\n _ngZone,\r\n _document,\r\n _directionality\r\n );\r\n this.renderer = rendererFactory.createRenderer(null, null);\r\n\r\n this._dynamicOverlayContainer = _overlayContainer;\r\n }\r\n\r\n private setContainerElement(containerElement: HTMLElement): void {\r\n this.renderer.setStyle(containerElement, 'transform', 'translateZ(0)');\r\n this._dynamicOverlayContainer.setContainerElement(containerElement);\r\n }\r\n\r\n public createOn(containerElement: HTMLElement, config?: OverlayConfig): OverlayRef {\r\n this.setContainerElement(containerElement);\r\n return super.create(config);\r\n }\r\n}","import { Injectable, ApplicationRef, ViewContainerRef, TemplateRef, EventEmitter } from '@angular/core';\r\nimport { Overlay, PositionStrategy, ScrollStrategy } from '@angular/cdk/overlay';\r\nimport { TemplatePortal, Portal, ComponentPortal } from '@angular/cdk/portal';\r\nimport { AXConnectedPosition } from '@acorex/core';\r\nimport { merge } from 'rxjs';\r\nimport { DynamicOverlay } from './custom-cdk-overlay.service';\r\n\r\nexport interface AXOverlayViewRef {\r\n instance: any;\r\n dispose: () => void;\r\n}\r\n\r\nexport interface AXOverlayConfigs {\r\n position?: AXConnectedPosition | AXConnectedPosition[];\r\n hasBackdrop?: boolean;\r\n transparentBackdrop?: boolean;\r\n closeOnClickOutside?: boolean;\r\n targetElement?: HTMLElement;\r\n containerElement?: HTMLElement;\r\n onBackdropClick?: () => void;\r\n panelClass?: string[] | string;\r\n backdropClass?: string[] | string;\r\n scroll?: 'auto' | 'block';\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXOverlayService {\r\n constructor(\r\n private overlayService: DynamicOverlay,\r\n private overlayService2: Overlay,\r\n private appRef: ApplicationRef) {\r\n\r\n }\r\n\r\n show(content: any, context?: any, configs?: AXOverlayConfigs): AXOverlayViewRef {\r\n configs = Object.assign({\r\n hasBackdrop: true,\r\n transparentBackdrop: true,\r\n closeOnClickOutside: true\r\n }, configs || {});\r\n // get root viewref\r\n const viewRef: ViewContainerRef = this.appRef.components[0].instance.viewRef;\r\n\r\n let portal: Portal<any>;\r\n // get component by route\r\n if (typeof content === 'string') {\r\n // TODO\r\n }\r\n // create portal from component\r\n else if (content instanceof TemplateRef) {\r\n portal = new TemplatePortal(content, viewRef, context);\r\n }\r\n else if (typeof content === 'function') {\r\n portal = new ComponentPortal(content, viewRef);\r\n }\r\n let positionStrategy: PositionStrategy;\r\n if (configs.position && configs.targetElement) {\r\n positionStrategy = this.overlayService.position()\r\n .flexibleConnectedTo(configs.targetElement)\r\n .withPositions(\r\n Array.isArray(configs.position) ? configs.position : [configs.position]\r\n )\r\n .withPush(true);\r\n }\r\n else {\r\n positionStrategy = this.overlayService.position().global().centerHorizontally().centerVertically();\r\n }\r\n let scrollStrategy: ScrollStrategy = this.overlayService.scrollStrategies.reposition({ autoClose: true });\r\n if (configs.scroll === 'block') {\r\n scrollStrategy = this.overlayService.scrollStrategies.block();\r\n }\r\n\r\n const config = {\r\n positionStrategy,\r\n scrollStrategy,\r\n hasBackdrop: configs.hasBackdrop,\r\n disposeOnNavigation: true,\r\n backdropClass: configs.backdropClass ? configs.backdropClass : (configs.transparentBackdrop ? 'cdk-overlay-transparent-backdrop' : undefined),\r\n panelClass: configs.panelClass ? configs.panelClass : ['animate__animated', 'animate__fadeIn']\r\n };\r\n // joon nanat dorost sho\r\n let overlayRef = configs.containerElement ? this.overlayService.createOn(configs.containerElement, config) : this.overlayService2.create(config);\r\n\r\n const host = overlayRef.attach(portal);\r\n if (host.instance) {\r\n Object.assign(host.instance, context);\r\n setTimeout(() => {\r\n host.changeDetectorRef.detectChanges();\r\n }, 0);\r\n }\r\n if (configs.closeOnClickOutside) {\r\n merge(\r\n overlayRef.backdropClick(),\r\n overlayRef.detachments(),\r\n ).subscribe(() => {\r\n overlayRef.dispose();\r\n overlayRef = undefined;\r\n if (configs.onBackdropClick) {\r\n configs.onBackdropClick();\r\n }\r\n });\r\n\r\n }\r\n return {\r\n instance: host.instance,\r\n dispose: overlayRef.dispose.bind(overlayRef)\r\n };\r\n }\r\n\r\n}","import { Component, OnInit, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-loading-indicator',\r\n templateUrl: './loading-indicator.component.html'\r\n})\r\nexport class AXLoadingIndicatorComponent implements OnInit {\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.size = 80;\r\n }\r\n\r\n @Input()\r\n size: number;\r\n}\r\n","import { Injectable, ComponentRef, EventEmitter } from '@angular/core';\r\nimport { AXRenderService } from '@acorex/core';\r\nimport { AXLoadingPanelComponent } from './loading-panel.component';\r\nimport { AXOverlayService, AXOverlayViewRef } from '../popover/overlay.service';\r\nimport { AXLoadingIndicatorComponent } from './loading-indicator.component';\r\n\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXLoadingService {\r\n\r\n private _stack: { id: number, component: AXOverlayViewRef }[] = [];\r\n\r\n\r\n constructor(private injection: AXRenderService, private overlayService: AXOverlayService) {\r\n\r\n }\r\n\r\n show(location?: Element): number {\r\n let host: Element;\r\n if (location) {\r\n host = location.closest('.ax-loading-host');\r\n }\r\n const containerElement = (host || location) as HTMLDivElement;\r\n const com = this.overlayService.show(AXLoadingIndicatorComponent, {},\r\n {\r\n closeOnClickOutside: false,\r\n containerElement,\r\n hasBackdrop: true,\r\n backdropClass: ['ax-loading-overlay'],\r\n scroll: 'block'\r\n });\r\n const id = new Date().getTime();\r\n this._stack.push({ id, component: com });\r\n return id;\r\n }\r\n\r\n hide(id): void {\r\n const f = this._stack.find(c => c.id === id);\r\n if (f) {\r\n f.component.dispose();\r\n this._stack = this._stack.filter(c => c.id !== id);\r\n }\r\n }\r\n}","import { Component, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { AXLoadingService } from '../loading/loading.service';\r\n\r\n@Component({\r\n selector: 'ax-page',\r\n template: `\r\n <div class=\"page-content-wrap\">\r\n <div class=\"ax-page-toolbar\">\r\n <ng-content select=\"ax-toolbar\"></ng-content>\r\n </div>\r\n <ng-content select=\"ax-page-content\"></ng-content>\r\n <ng-content select=\"ax-page-footer\"></ng-content>\r\n </div>\r\n`\r\n})\r\nexport class AXPageComponent {\r\n constructor(\r\n private el: ElementRef<HTMLElement>,\r\n private loadingService: AXLoadingService,\r\n private cdr: ChangeDetectorRef,\r\n ) { }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n }\r\n\r\n private _loadingId: number;\r\n\r\n private _isLoading: boolean = false;\r\n public get isLoading(): boolean {\r\n return this._isLoading;\r\n }\r\n public set isLoading(v: boolean) {\r\n this._isLoading = v;\r\n if (this._loadingId && !v) {\r\n this.loadingService.hide(this._loadingId);\r\n this._loadingId = null;\r\n }\r\n if (v) {\r\n this._loadingId = this.loadingService.show(this.el.nativeElement);\r\n }\r\n }\r\n}\r\n","import { EventEmitter, ViewChild } from '@angular/core';\r\nimport { AXDataEvent } from './events.class';\r\nimport { AXMenuItemClickEvent } from '../menu/menu.component';\r\nimport { AXButtonItem } from '@acorex/core';\r\nimport { AXPageComponent } from '../page/page.component';\r\nimport { Subject } from 'rxjs';\r\n\r\nexport const TAB_META_KEY = '__meta__';\r\n\r\nexport class AXPageCloseEvent extends AXDataEvent<any> {\r\n}\r\nexport class AXPageClosing {\r\n cancel: boolean = false;\r\n data?: any;\r\n}\r\n\r\nexport class AXPageResult {\r\n sender: any;\r\n data?: any;\r\n}\r\n\r\nexport class AXPageClosedPromise extends Promise<AXPageResult> {\r\n\r\n private closeMethod: () => void;\r\n constructor(\r\n executor: (resolve: (value?: AXPageResult | PromiseLike<AXPageResult>) => void,\r\n reject: (reason?: any) => void) => void\r\n ) {\r\n super(executor);\r\n }\r\n\r\n public close() {\r\n if (this.closeMethod) {\r\n this.closeMethod();\r\n }\r\n }\r\n}\r\n\r\nexport abstract class AXBasePageComponent {\r\n\r\n @ViewChild(AXPageComponent, { static: true })\r\n private pageContainer: AXPageComponent;\r\n\r\n private _isLoading: boolean = false;\r\n public get isLoading(): boolean {\r\n return this._isLoading;\r\n }\r\n public set isLoading(v: boolean) {\r\n this._isLoading = v;\r\n if (this.pageContainer) {\r\n this.pageContainer.isLoading = this.isLoading;\r\n }\r\n }\r\n\r\n\r\n onClosed: EventEmitter<AXPageCloseEvent> = new EventEmitter<AXPageCloseEvent>();\r\n\r\n close(data?: any) {\r\n this.onClosed.emit({\r\n component: this,\r\n data: data\r\n });\r\n }\r\n\r\n onClosing(e: AXPageClosing): void | Promise<void> {\r\n }\r\n\r\n ngOnDestroy() {\r\n this.onClosed.unsubscribe();\r\n }\r\n}\r\n\r\nexport abstract class AXBasePopupPageComponent extends AXBasePageComponent {\r\n\r\n\r\n\r\n\r\n\r\n\r\n constructor() {\r\n super();\r\n setTimeout(() => {\r\n this.configFooterButtons(this.getFooterButtons());\r\n });\r\n }\r\n\r\n\r\n private _footerButtons: AXButtonItem[] = [];\r\n onFooterButtonsChanged = new Subject<AXButtonItem[]>();\r\n\r\n protected get footerButtons(): AXButtonItem[] {\r\n return this._footerButtons || [];\r\n }\r\n\r\n protected configFooterButtons(buttons?: AXButtonItem[]) {\r\n if (buttons) {\r\n this._footerButtons = buttons;\r\n this.onFooterButtonsChanged.next(buttons);\r\n }\r\n else {\r\n this.onFooterButtonsChanged.next(this.footerButtons);\r\n }\r\n }\r\n\r\n onFooterButtonClick(e: AXMenuItemClickEvent) {\r\n }\r\n\r\n getFooterButtons(): AXButtonItem[] {\r\n return [];\r\n }\r\n}\r\n\r\n\r\n","import { Component, Input, ViewEncapsulation, ElementRef, ViewChild, HostListener } from '@angular/core';\r\nimport { AXBaseButtonComponent } from '../base/element.class';\r\n\r\n@Component({\r\n selector: 'ax-button',\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: './button.component.html'\r\n})\r\nexport class AXButtonComponent extends AXBaseButtonComponent {\r\n\r\n constructor(private el: ElementRef) {\r\n super();\r\n }\r\n\r\n @ViewChild('container', { static: true }) container: ElementRef<HTMLButtonElement>;\r\n\r\n @Input()\r\n type: string = 'primary';\r\n\r\n @Input()\r\n icon: string;\r\n\r\n @Input()\r\n submitBehavior: boolean = false;\r\n\r\n @Input()\r\n cancelBehavior: boolean = false;\r\n\r\n @Input()\r\n block: boolean = false;\r\n\r\n @Input()\r\n loading: boolean = false;\r\n\r\n @Input()\r\n selected: boolean = false;\r\n\r\n ngAfterViewInit(): void {\r\n if (this.submitBehavior) {\r\n setTimeout(() => {\r\n this.focusButton();\r\n }, 10);\r\n }\r\n }\r\n\r\n\r\n\r\n handleClick(e: MouseEvent) {\r\n if (this.disabled === true) {\r\n this.click.emit({\r\n component: this,\r\n htmlElement: this.el.nativeElement,\r\n htmlEvent: e,\r\n });\r\n e.stopPropagation();\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event'])\r\n onKeydownHandler(e: KeyboardEvent) {\r\n if (this.cancelBehavior) {\r\n this.handleClick(null);\r\n e.stopPropagation();\r\n e.preventDefault();\r\n return false;\r\n }\r\n }\r\n\r\n focusButton() {\r\n this.container.nativeElement.focus();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXButtonComponent } from './button.component';\r\n\r\nconst COMPONENT = [AXButtonComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXButtonModule { }\r\n","import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef, ViewEncapsulation, ElementRef } from '@angular/core';\r\nimport { AXDateTime, AXDateTimeRange, AXCalendarType, AXTranslator, } from '@acorex/core';\r\nimport { AXBaseSizableComponent, AXElementSize } from '../../base/element.class';\r\nimport { AXValueEvent } from '../../base/events.class';\r\nimport { AXConfig } from '@acorex/core';\r\n\r\nexport type AXCalendarViewType = 'year' | 'month' | 'day';\r\n\r\nexport type AXCalendarHolidays = AXCalendarHoliday[];\r\nexport type AXCalendarHolidaysFunc = (start: Date, end: Date, type: AXCalendarType) => AXCalendarHoliday[];\r\nexport interface AXCalendarHoliday {\r\n date: Date;\r\n title: string;\r\n description?: string;\r\n\r\n}\r\n\r\nexport type AXCalendarWeekends = AXCalendarWeekend[];\r\nexport type AXCalendarWeekendsFunc = (start: Date, end: Date, type: AXCalendarType) => AXCalendarWeekend[];\r\n\r\nexport interface AXCalendarWeekend {\r\n indexDay: number;\r\n}\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: 'ax-calendar-box',\r\n templateUrl: './calendar-box.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXCalendarBoxComponent implements AXBaseSizableComponent {\r\n weekdays: string[] = [];\r\n\r\n private d = {\r\n jalali: {\r\n locale: AXConfig.get('dateTime.jalali.locale') || 'fa',\r\n dir: 'rtl',\r\n number: 1\r\n },\r\n gregorian: {\r\n locale: AXConfig.get('dateTime.gregorian.locale') || 'en',\r\n dir: 'ltr',\r\n number: 0\r\n }\r\n }\r\n\r\n numRotate: number;\r\n\r\n @Input()\r\n size: AXElementSize = 'md';\r\n\r\n @Input()\r\n type: AXCalendarType;\r\n\r\n @Input()\r\n locale: string;\r\n\r\n @Input()\r\n dir: string;\r\n\r\n @Input()\r\n min: Date;\r\n\r\n @Input()\r\n max: Date;\r\n\r\n @Input()\r\n selectableHoliday: boolean = true;\r\n\r\n @Input()\r\n dayStyle = []\r\n\r\n\r\n\r\n\r\n private getHoliday: AXCalendarHolidays | AXCalendarHolidaysFunc;\r\n\r\n private getWeekend: AXCalendarWeekends | AXCalendarWeekendsFunc;\r\n\r\n @Input('showTodayButton')\r\n public showTodayButton: boolean = false;\r\n\r\n matrix: any[] = [];\r\n rotated: boolean = false;\r\n private _view: AXCalendarViewType = 'day';\r\n @Input()\r\n public get view(): AXCalendarViewType {\r\n return this._view;\r\n }\r\n public set view(v: AXCalendarViewType) {\r\n this._view = v;\r\n this.navigate(0);\r\n }\r\n\r\n private _depth: AXCalendarViewType = 'day';\r\n\r\n @Input()\r\n public get depth(): AXCalendarViewType {\r\n return this._depth;\r\n }\r\n public set depth(v: AXCalendarViewType) {\r\n this._depth = v;\r\n this.view = v;\r\n }\r\n\r\n viewRange: AXDateTimeRange;\r\n private holidays: AXCalendarHoliday[] = [];\r\n private weekends: AXCalendarWeekend[] = [];\r\n\r\n @Output()\r\n onValueChanged: EventEmitter<AXValueEvent<Date>> = new EventEmitter<AXValueEvent<Date>>();\r\n\r\n @Output()\r\n onClick: EventEmitter<AXValueEvent<Date>> = new EventEmitter<AXValueEvent<Date>>();\r\n\r\n @Output()\r\n valueChange: EventEmitter<Date> = new EventEmitter<Date>();\r\n\r\n private _value: AXDateTime;\r\n @Input()\r\n public get value(): Date {\r\n return this._value?.date;\r\n }\r\n public set value(v: Date) {\r\n let vv: AXDateTime;\r\n if (v) {\r\n vv = AXDateTime.convert(v);\r\n }\r\n let unValidDate = false;\r\n if (this.max || this.min) {\r\n unValidDate = this.isInMInMaxRange(vv);\r\n }\r\n if (!unValidDate) {\r\n if (vv && !vv.equal(this._value)) {\r\n this._value = vv;\r\n this._value.type = this.type;\r\n this.setFocus(this._value.clone());\r\n this.valueChange.emit(vv.date)\r\n this.onValueChanged.emit({\r\n component: this,\r\n value: this._value?.date,\r\n htmlElement: this.ref.nativeElement\r\n });\r\n }\r\n if(v == undefined){\r\n\r\n this._value = null;\r\n this.focusedValue = this.today;\r\n this.navigate(0);\r\n }\r\n this.onClick.emit({\r\n component: this,\r\n value: this._value?.date,\r\n htmlElement: this.ref.nativeElement\r\n });\r\n }\r\n }\r\n\r\n focusedValue: AXDateTime;\r\n today: AXDateTime;\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private ref: ElementRef) {\r\n\r\n // set defaults\r\n this.getHoliday = AXConfig.get('dateTime.holidays');\r\n this.getWeekend = AXConfig.get('dateTime.weekends');\r\n }\r\n findDay(date: AXDateTime) {\r\n if (this.dayStyle.find(c => c.date == date.toISOString().split('T')[0])) {\r\n return true\r\n } else {\r\n return false\r\n }\r\n }\r\n getStyle(date: AXDateTime) {\r\n if (this.dayStyle.find(c => c.date == date.toISOString().split('T')[0])) {\r\n return this.dayStyle.find(c => c.date == date.toISOString().split('T')[0]).style\r\n\r\n } else {\r\n return ''\r\n }\r\n }\r\n\r\n getTitle(date: AXDateTime) {\r\n if (this.dayStyle.find(c => c.date == date.toISOString().split('T')[0])) {\r\n return this.dayStyle.find(c => c.date == date.toISOString().split('T')[0]).text\r\n\r\n } else {\r\n return ''\r\n }\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.today = this.focusedValue = new AXDateTime(new Date(), this.type);\r\n //\r\n this.initLayout();\r\n //\r\n this.viewRange = this.today.month.range;\r\n this.setFocus(this.today);\r\n this.view = 'day';\r\n }\r\n\r\n getViewCompaire(view: AXCalendarViewType) {\r\n switch (view) {\r\n case 'day':\r\n return 'YMD';\r\n case 'month':\r\n return 'YM';\r\n case 'year':\r\n return 'Y';\r\n }\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n this.navigate(0);\r\n }\r\n\r\n private initLayout() {\r\n\r\n if (!this.type) {\r\n this.type = AXConfig.get('dateTime.type') || 'gregorian';\r\n }\r\n if (!this.locale) {\r\n this.locale = this.d[this.type]?.locale || this.locale;\r\n }\r\n if (!this.dir) {\r\n this.dir = this.d[this.type]?.dir || 'ltr';\r\n }\r\n this.numRotate = this.d[this.type]?.number || 0;\r\n const path = 'dateTime.weekdaysShort';\r\n this.weekdays = [\r\n AXTranslator.get(`${path}.sun`, this.locale),\r\n AXTranslator.get(`${path}.mon`, this.locale),\r\n AXTranslator.get(`${path}.tue`, this.locale),\r\n AXTranslator.get(`${path}.wed`, this.locale),\r\n AXTranslator.get(`${path}.thu`, this.locale),\r\n AXTranslator.get(`${path}.fri`, this.locale),\r\n AXTranslator.get(`${path}.sat`, this.locale)\r\n ]\r\n }\r\n\r\n getTodayName() {\r\n return AXTranslator.get('dateTime.today', this.locale);\r\n }\r\n\r\n prev() {\r\n this.navigate(-1);\r\n }\r\n\r\n next() {\r\n this.navigate(1);\r\n }\r\n\r\n rotate(array, n) {\r\n const len = array.length;\r\n return !(n % len) ? array\r\n : n > 0 ? array.map((e, i, a) => a[(i + n) % len])\r\n : array.map((e, i, a) => a[(len - (len - i - n) % len) % len]);\r\n }\r\n\r\n navigate(value: number | AXDateTime) {\r\n\r\n let start: AXDateTime;\r\n let end: AXDateTime;\r\n if (this.view === 'day') {\r\n let fd: AXDateTime;\r\n if (value instanceof AXDateTime) {\r\n fd = value.startOf('month');\r\n } else {\r\n fd = this.viewRange.startTime\r\n .add('day', 15)\r\n .add('month', value)\r\n .startOf('month');\r\n }\r\n\r\n start = fd.firstDayOfWeek;\r\n end = fd.endOf('month').endDayOfWeek;\r\n\r\n start = start.add('day', -this.numRotate);\r\n end = end.add('day', 7).add('day', -this.numRotate);\r\n\r\n // TODO: apply start of week\r\n if (!this.rotated && this.weekdays.length > 0) {\r\n if (this.type === 'jalali') {\r\n this.weekdays = this.rotate(this.weekdays, -this.numRotate);\r\n } else {\r\n this.weekdays = this.rotate(this.weekdays, this.numRotate);\r\n }\r\n\r\n this.rotated = true;\r\n\r\n }\r\n\r\n\r\n } else if (this.view === 'month') {\r\n let fd: AXDateTime;\r\n if (value instanceof AXDateTime) {\r\n fd = value.startOf('year');\r\n } else {\r\n fd = this.viewRange.startTime\r\n .add('day', 15)\r\n .add('year', value)\r\n .startOf('year');\r\n }\r\n start = fd;\r\n end = fd.endOf('year');\r\n } else if (this.view === 'year') {\r\n let fd: AXDateTime;\r\n if (value instanceof AXDateTime) {\r\n fd = value.startOf('year');\r\n } else {\r\n fd = this.viewRange.startTime\r\n .add('day', 15)\r\n .add('year', value * 10)\r\n .startOf('year');\r\n }\r\n start = fd.add('year', -4);\r\n end = start.add('year', 8).endOf('year');\r\n }\r\n this.viewRange = new AXDateTimeRange(start, end);\r\n //\r\n if (this.getHoliday && typeof (this.getHoliday) === 'function') {\r\n this.holidays = this.getHoliday(start.date, end.date, this.type);\r\n }\r\n\r\n if (this.getWeekend && typeof (this.getWeekend) === 'function') {\r\n this.weekends = this.getWeekend(start.date, end.date, this.type);\r\n }\r\n\r\n //\r\n if (this.view === 'day') {\r\n\r\n this.matrix = this.matrixify(this.applyStyle(this.viewRange.enumurate('day', this.type)), 7);\r\n if (this.matrix.length > 0 && this.matrix[0].find(c => c.nextMonth === false) === undefined) {\r\n this.matrix.splice(0, 1);\r\n }\r\n if (this.matrix[this.matrix.length - 1].find(c => c.nextMonth === false) === undefined) {\r\n this.matrix.splice(this.matrix.length - 1, 1);\r\n }\r\n\r\n } else if (this.view === 'month') {\r\n this.matrix = this.matrixify(this.applyStyle(this.viewRange.enumurate('month', this.type)), 3);\r\n } else if (this.view === 'year') {\r\n this.matrix = this.matrixify(this.applyStyle(this.viewRange.enumurate('year', this.type)), 3);\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private applyStyle(dates: AXDateTime[]): any[] {\r\n const items: any[] = [];\r\n dates.forEach((d, i, j) => {\r\n const item: any = {};\r\n item.date = d;\r\n\r\n item.selected = d.compaireNew(new AXDateTime(this.value, this.type), this.getViewCompaire(this.view), this.type) === 0;\r\n item.focused = d.compaireNew(this.focusedValue, this.getViewCompaire(this.view), this.type) === 0;\r\n item.today = this.today && d.compaireNew(this.today, this.getViewCompaire(this.view), this.type) === 0;\r\n if (this.view === 'day') {\r\n // item.nextMonth = d.compaireNew(this.viewRange.startTime.add('day', 10), 'YM') !== 0;\r\n item.nextMonth = d.compaireNew(this.viewRange.startTime.add('day', 10), 'YM', this.type) !== 0;\r\n\r\n item.unselect = this.isInMInMaxRange(d);\r\n this.holidays.forEach(h => {\r\n const comp = d.compaireNew(new AXDateTime(h.date, this.type), 'YMD', this.type);\r\n if (comp === 0) {\r\n item.holiday = true;\r\n if (this.selectableHoliday === false) {\r\n item.unselect = true;\r\n }\r\n }\r\n });\r\n\r\n const indexDay = i - Math.floor(i / 7) * 7;\r\n this.weekends.forEach(cc => {\r\n if (Number(cc) === indexDay) {\r\n item.holiday = true;\r\n if (this.selectableHoliday === false) {\r\n item.unselect = true;\r\n }\r\n }\r\n });\r\n }\r\n items.push(item);\r\n });\r\n return items;\r\n }\r\n\r\n changeView() {\r\n if (this.view === 'day') {\r\n this.view = 'month';\r\n } else if (this.view === 'month') {\r\n this.view = 'year';\r\n }\r\n }\r\n\r\n matrixify(arr: any[], cols) {\r\n\r\n const rows = Math.ceil(arr.length / cols);\r\n const matrix = [];\r\n if (rows * cols === arr.length) {\r\n for (let i = 0; i < arr.length; i += cols) {\r\n matrix.push(arr.slice(i, cols + i));\r\n }\r\n }\r\n return matrix;\r\n }\r\n\r\n setDayClick(event: MouseEvent, item) {\r\n if (item.unselect !== true) {\r\n this.value = item.date.date;\r\n }\r\n\r\n event.stopPropagation();\r\n }\r\n\r\n isInMInMaxRange(d) {\r\n let r = false;\r\n if (d !== undefined) {\r\n if (this.min && !this.max) {\r\n r = d.compaireNew(new AXDateTime(this.min, this.type), this.getViewCompaire(this.view), this.type) === -1;\r\n }\r\n if (this.max && !this.min) {\r\n r = d.compaireNew(new AXDateTime(this.max, this.type), this.getViewCompaire(this.view), this.type) === 1;\r\n }\r\n if (this.min && this.max) {\r\n r = (d.compaireNew(new AXDateTime(this.min, this.type), this.getViewCompaire(this.view), this.type) === -1 ||\r\n d.compaireNew(new AXDateTime(this.max, this.type), this.getViewCompaire(this.view), this.type) === 1);\r\n }\r\n }\r\n return r;\r\n }\r\n\r\n setMonthClick(event: MouseEvent, date: AXDateTime) {\r\n if (this.depth === 'month') {\r\n this.value = date.date;\r\n } else {\r\n this.view = 'day';\r\n this.setFocus(new AXDateTime(this.value, this.type).set('year', date.year).set('month', date.monthOfYear));\r\n }\r\n event.stopPropagation();\r\n }\r\n\r\n setYearClick(event: MouseEvent, date: AXDateTime) {\r\n if (this.depth === 'year') {\r\n this.value = date.date;\r\n } else {\r\n this.view = 'month';\r\n this.setFocus(new AXDateTime(this.value, this.type).set('year', date.year));\r\n }\r\n event.stopPropagation();\r\n }\r\n\r\n setFocus(date: AXDateTime) {\r\n this.focusedValue = date;\r\n this.navigate(this.focusedValue);\r\n }\r\n\r\n setToday() {\r\n this.value = this.today.date;\r\n this.view = 'day'\r\n }\r\n\r\n trackByFn(index, item: any) {\r\n return item.date.date.getTime();\r\n }\r\n}\r\n","import { Component, Input, NgZone, ChangeDetectorRef, ChangeDetectionStrategy, ViewEncapsulation, ViewChild, TemplateRef } from '@angular/core';\r\nimport { ElementRef } from '@angular/core';\r\nimport { AXOverlayService, AXOverlayViewRef } from './overlay.service';\r\nimport { AXConnectedPosition } from '@acorex/core';\r\n\r\n\r\n@Component({\r\n selector: 'ax-popover',\r\n templateUrl: './popover.component.html',\r\n styleUrls: ['./popover.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AXPopoverComponent {\r\n constructor(\r\n private overlayService: AXOverlayService,\r\n private zone: NgZone,\r\n private cdr: ChangeDetectorRef) {\r\n\r\n }\r\n //\r\n private targetEl: HTMLElement;\r\n private overlay: AXOverlayViewRef;\r\n @ViewChild('tpl')\r\n private template: TemplateRef<any>;\r\n //\r\n @Input('target') target: string | HTMLElement;\r\n //\r\n @Input('position') position: AXConnectedPosition;\r\n //\r\n @Input('openMode') openMode: 'manual' | 'click' | 'hover' = 'manual';\r\n //\r\n @Input('closeMode') closeMode: 'manual' | 'clickout' | 'mouseout' = 'clickout';\r\n //\r\n private _visible: boolean = false;\r\n @Input()\r\n public get visible(): boolean {\r\n return this._visible;\r\n }\r\n public set visible(v: boolean) {\r\n if (v !== this._visible) {\r\n if (v) {\r\n this.internalShow();\r\n } else {\r\n this.internalHide();\r\n }\r\n this._visible = v;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n //\r\n toggle() {\r\n this.visible = !this.visible;\r\n }\r\n\r\n close() {\r\n this.zone.run(() => {\r\n this.visible = false;\r\n });\r\n }\r\n\r\n open() {\r\n this.zone.run(() => {\r\n this.visible = true;\r\n });\r\n }\r\n\r\n private internalShow() {\r\n if (this.isOpen) {\r\n return;\r\n }\r\n this.overlay = this.overlayService.show(this.template, {}, {\r\n closeOnClickOutside: this.closeMode === 'clickout',\r\n targetElement: this.targetEl,\r\n hasBackdrop: this.closeMode === 'clickout',\r\n position: this.position,\r\n onBackdropClick: () => {\r\n this._visible = false;\r\n }\r\n });\r\n }\r\n\r\n private internalHide() {\r\n if (this.overlay) {\r\n this.overlay.dispose();\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this.targetEl = typeof this.target === 'string' ? document.querySelector<HTMLElement>(this.target) : this.target;\r\n //\r\n if (this.closeMode === 'mouseout') {\r\n this.targetEl.addEventListener('mouseout', this.close.bind(this));\r\n }\r\n if (this.openMode === 'hover' && this.targetEl) {\r\n this.targetEl.addEventListener('mouseover', this.open.bind(this));\r\n }\r\n //\r\n if (this.openMode === 'click' && this.targetEl) {\r\n this.targetEl.addEventListener('click', this.open.bind(this));\r\n }\r\n }, 100);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.openMode === 'click' && this.targetEl) {\r\n this.targetEl.removeEventListener('mouseover', this.open.bind(this));\r\n this.targetEl.removeEventListener('click', this.open.bind(this));\r\n this.targetEl.removeEventListener('mouseout', this.open.bind(this));\r\n }\r\n }\r\n\r\n get isOpen(): boolean {\r\n return this.visible;\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { AXPopoverComponent } from \"./popover.component\";\r\n\r\n@NgModule({\r\n declarations: [AXPopoverComponent],\r\n imports: [CommonModule],\r\n exports: [AXPopoverComponent],\r\n providers: []\r\n})\r\nexport class AXPopoverModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXCalendarBoxComponent } from './calendar-box.component';\r\nimport { AXCoreModule } from '@acorex/core';\r\nimport { AXPopoverModule } from '../../popover/popover.module';\r\nimport { AXButtonModule } from '../../button/button.module';\r\n\r\n\r\n@NgModule({\r\n declarations: [AXCalendarBoxComponent],\r\n imports: [CommonModule, AXButtonModule, AXPopoverModule, AXCoreModule],\r\n exports: [AXCalendarBoxComponent],\r\n providers: []\r\n})\r\nexport class AXCalendarBoxModule {\r\n}\r\n","import { Component, ContentChildren, QueryList, Input, Attribute } from '@angular/core';\r\nimport { AXSchedulerViewType } from './scheduler.class';\r\n\r\n@Component({\r\n selector: 'ax-scheduler-view',\r\n template: ``\r\n})\r\nexport class AXSchedulerViewProperty {\r\n\r\n constructor(\r\n @Attribute('type') public type: AXSchedulerViewType,\r\n @Attribute('caption') public caption: string,\r\n @Attribute('name') public name: string,\r\n ) {\r\n\r\n }\r\n\r\n @Input()\r\n public interval: number;\r\n\r\n\r\n ngOnInit(): void {\r\n if (!this.interval) {\r\n this.interval = 1;\r\n }\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'ax-scheduler-views',\r\n template: `\r\n <ng-content>\r\n </ng-content>`,\r\n})\r\nexport class AXSchedulerViewsProperty {\r\n @ContentChildren(AXSchedulerViewProperty) views: QueryList<AXSchedulerViewProperty>;\r\n constructor() { }\r\n}\r\n","import { AXDateTime, AXDateTimeRange } from '@acorex/core';\r\nimport { EventEmitter } from '@angular/core';\r\n\r\n\r\n\r\n\r\nexport type AXSchedulerViewType = 'day' | 'week' | 'month' | 'timeline' | 'agenda';\r\n\r\nexport interface AXSchedulerRequestDataArge {\r\n startTime: AXDateTime;\r\n endTime: AXDateTime;\r\n events: AXSchedulerEvent[];\r\n}\r\n\r\nexport abstract class AXAsyncEventArgs {\r\n onComplete: EventEmitter<any> = new EventEmitter<any>(true);\r\n complete(): void {\r\n if (this.onComplete) {\r\n this.onComplete.emit(this);\r\n }\r\n }\r\n}\r\n\r\nexport class AXSchedulerEventChangeArgs extends AXAsyncEventArgs {\r\n canceled: boolean = false;\r\n event: AXSchedulerEvent;\r\n oldSlot: AXSchedulerSlot;\r\n newSlot: AXSchedulerSlot;\r\n}\r\n\r\nexport interface AXSchedulerSlot {\r\n range: AXDateTimeRange;\r\n events?: AXSchedulerEvent[];\r\n uid?: string;\r\n}\r\n\r\nexport interface AXSchedulerEvent {\r\n range: AXDateTimeRange;\r\n title: string;\r\n description?: string;\r\n uid: string;\r\n color: string;\r\n}\r\n\r\nexport interface AXSchedulerOccasion {\r\n range: AXDateTimeRange;\r\n title: string;\r\n description?: string;\r\n blocked?: boolean;\r\n}\r\n","export abstract class AXToolbarItem\r\n{\r\n alignment:\"start\"|\"end\"|\"center\"=\"center\";\r\n}","import {\r\n Component,\r\n Input,\r\n EventEmitter,\r\n Output,\r\n ElementRef,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n NgZone,\r\n ChangeDetectorRef,\r\n TemplateRef,\r\n ContentChild\r\n} from '@angular/core';\r\nimport { AXPlacement, AXMenuItem } from '@acorex/core';\r\nimport { AXBaseSizableComponent, AXElementSize } from '../base/element.class';\r\nimport { AXEvent } from '../base/events.class';\r\n\r\nexport class AXMenuItemClickEvent extends AXEvent<AXMenuItem, MouseEvent> {\r\n name: string;\r\n}\r\n\r\n@Component({\r\n selector: 'ax-menu',\r\n templateUrl: './menu.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXMenuComponent implements AXBaseSizableComponent {\r\n\r\n constructor(private ref: ElementRef, private cdr: ChangeDetectorRef) {\r\n }\r\n\r\n @ContentChild(TemplateRef, { static: true })\r\n _contentMenuTemplate: TemplateRef<any>;\r\n\r\n private _menuTemplate: TemplateRef<any>;\r\n @Input()\r\n public get menuTemplate(): TemplateRef<any> {\r\n return this._menuTemplate ? this._menuTemplate : this._contentMenuTemplate;\r\n }\r\n public set menuTemplate(v: TemplateRef<any>) {\r\n this._menuTemplate = v;\r\n }\r\n\r\n resizeChangeObserver: any;\r\n\r\n @Input()\r\n rtl: boolean;\r\n\r\n @Output()\r\n onItemClick: EventEmitter<AXMenuItemClickEvent> = new EventEmitter<AXMenuItemClickEvent>();\r\n\r\n @Input()\r\n size: AXElementSize = 'md';\r\n\r\n @Input()\r\n public selection: 'none' | 'single' | 'multiple' = 'none';\r\n\r\n @Input()\r\n public mode: 'click' | 'context' | 'visible' | 'manual' = 'visible';\r\n\r\n @Input()\r\n public target: string;\r\n\r\n @Input()\r\n public floatAlignment: AXPlacement;\r\n\r\n @Input()\r\n public floatPlacemnet: AXPlacement;\r\n\r\n public currentTarget: HTMLElement;\r\n\r\n @Input()\r\n public direction: 'vertical' | 'horizontal' = 'horizontal';\r\n\r\n private _items: AXMenuItem[];\r\n @Input()\r\n public get items(): AXMenuItem[] {\r\n return this._items;\r\n }\r\n public set items(v: AXMenuItem[]) {\r\n this._items = v;\r\n }\r\n\r\n ngOnInit() {\r\n if (this.rtl == null) {\r\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\r\n }\r\n }\r\n\r\n\r\n handleItemClick(e: MouseEvent, item?: AXMenuItem) {\r\n e.stopPropagation();\r\n if (item && (!item.items || !item.items.filter((c) => c.visible !== false).length) && !item.disable) {\r\n const m = {\r\n component: this,\r\n htmlElement: this.ref.nativeElement,\r\n htmlEvent: e,\r\n data: item,\r\n name: item?.name\r\n };\r\n if (item.onClick) {\r\n item.onClick();\r\n }\r\n else {\r\n this.onItemClick.emit(m);\r\n }\r\n\r\n return;\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n EventEmitter,\r\n Output,\r\n ElementRef,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n NgZone,\r\n ViewChild,\r\n ChangeDetectorRef,\r\n ContentChild,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport { AXToolbarItem } from '../toolbar-item';\r\nimport { AXMenuComponent, AXMenuItemClickEvent } from '../../menu/menu.component';\r\nimport { AXMenuItem } from '@acorex/core';\r\n\r\n@Component({\r\n selector: 'ax-toolbar-menu',\r\n templateUrl: './toolbar-menu.component.html',\r\n providers: [{ provide: AXToolbarItem, useExisting: AXToolbarMenuComponent }],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXToolbarMenuComponent extends AXToolbarItem {\r\n \r\n constructor(\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n super();\r\n }\r\n\r\n @ViewChild('menu', { static: true }) menu: AXMenuComponent\r\n\r\n @Output()\r\n onItemClick: EventEmitter<AXMenuItemClickEvent> = new EventEmitter<AXMenuItemClickEvent>();\r\n\r\n @ContentChild(TemplateRef, { static: true })\r\n _contentMenuTemplate: TemplateRef<any>;\r\n\r\n\r\n private _menuTemplate: TemplateRef<any>;\r\n @Input()\r\n public get menuTemplate(): TemplateRef<any> {\r\n return this._menuTemplate ? this._menuTemplate : this._contentMenuTemplate;\r\n }\r\n public set menuTemplate(v: TemplateRef<any>) {\r\n this._menuTemplate = v;\r\n }\r\n\r\n\r\n @Input()\r\n public selection: 'none' | 'single' | 'multiple' = 'none';\r\n\r\n private _items: AXMenuItem[];\r\n @Input()\r\n public get items(): AXMenuItem[] {\r\n return this._items;\r\n }\r\n public set items(v: AXMenuItem[]) {\r\n this._items = v;\r\n this.update();\r\n }\r\n\r\n\r\n handleItemClick(item?: AXMenuItemClickEvent) {\r\n this.onItemClick.emit(item);\r\n }\r\n\r\n\r\n public close(): void {\r\n // this.menu.close();\r\n }\r\n\r\n update() {\r\n //this.menu.update();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n\r\n}\r\n","import { Component, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { AXMenuItem } from '@acorex/core';\r\nimport { AXToolbarItem } from '../../../toolbar/toolbar-item';\r\nimport { AXToolbarMenuComponent } from '../../../toolbar/menu/toolbar-menu.component';\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: 'ax-toolbar-scheduler-view',\r\n template: `\r\n <ax-toolbar-menu [items]=\"items\" selection=\"single\" (onItemClick)=\"onItemClick($event)\"></ax-toolbar-menu>\r\n `,\r\n providers: [{ provide: AXToolbarItem, useExisting: AXToolbarSchedulerViewsComponent }]\r\n})\r\nexport class AXToolbarSchedulerViewsComponent {\r\n constructor() { }\r\n\r\n @ViewChild(AXToolbarMenuComponent, { static: true }) menu: AXToolbarMenuComponent;\r\n items: AXMenuItem[] = [];\r\n\r\n update(): void {\r\n this.menu.update();\r\n }\r\n\r\n @Output()\r\n onViewChanged: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n onItemClick(e: AXMenuItem) {\r\n this.onViewChanged.emit(e.name);\r\n }\r\n\r\n}\r\n","import { Input, EventEmitter, OnDestroy } from '@angular/core';\r\nimport { AXDateTime, AXDateTimeRange, TimeUnit } from '@acorex/core';\r\nimport { Output, Directive } from '@angular/core';\r\nimport { AXSchedulerSlot, AXSchedulerEventChangeArgs, AXSchedulerEvent, AXSchedulerViewType } from '../scheduler.class';\r\n\r\n\r\n\r\n\r\n\r\n@Directive()\r\nexport abstract class AXSchedulerBaseViewComponent implements OnDestroy {\r\n\r\n type: AXSchedulerViewType;\r\n timeSlot: number = 1;\r\n\r\n interval: number = 1;\r\n\r\n abstract updateSize(): void;\r\n\r\n abstract next(): void;\r\n\r\n abstract prev(): void;\r\n\r\n abstract navigate(date: AXDateTime): void;\r\n\r\n get dateRange(): AXDateTimeRange {\r\n if (this.slots && this.slots.length) {\r\n return new AXDateTimeRange(this.slots[0].range.startTime, this.slots[this.slots.length - 1].range.startTime);\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n\r\n today: AXDateTime = new AXDateTime();\r\n\r\n\r\n\r\n @Output()\r\n onNavigatorDateChanged: EventEmitter<AXDateTime> = new EventEmitter<AXDateTime>();\r\n\r\n private _navigatorDate: AXDateTime;\r\n public get navigatorDate(): AXDateTime {\r\n return this._navigatorDate;\r\n }\r\n public set navigatorDate(v: AXDateTime) {\r\n this._navigatorDate = v;\r\n this.onNavigatorDateChanged.emit(v);\r\n }\r\n\r\n events: AXSchedulerEvent[] = [];\r\n\r\n slots: AXSchedulerSlot[] = [];\r\n\r\n getEvents(range: AXDateTimeRange, unit: TimeUnit) {\r\n return this.events.filter(c => c.range.startTime.equal(range.startTime, unit))\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n this.updateSize();\r\n }\r\n\r\n @Output()\r\n onEventChanged: EventEmitter<AXSchedulerEventChangeArgs> = new EventEmitter<AXSchedulerEventChangeArgs>(true);\r\n\r\n\r\n ngOnDestroy(): void {\r\n if (this.onEventChanged) {\r\n this.onEventChanged.unsubscribe();\r\n }\r\n if (this.onNavigatorDateChanged) {\r\n this.onEventChanged.unsubscribe();\r\n }\r\n if (this.slots) {\r\n this.slots = null;\r\n }\r\n if (this.events) {\r\n this.events = null;\r\n }\r\n }\r\n\r\n\r\n onDragDropOnDay(e, time?: number) {\r\n const el = e.item.element.nativeElement as HTMLElement;\r\n if (e.previousContainer !== e.container) {\r\n el.style.opacity = '0';\r\n const r: AXSchedulerEventChangeArgs = new AXSchedulerEventChangeArgs();\r\n r.event = e.item.data;\r\n r.oldSlot = e.previousContainer.data;\r\n r.newSlot = e.container.data;\r\n //\r\n r.onComplete.subscribe((er: AXSchedulerEventChangeArgs) => {\r\n el.style.opacity = '1';\r\n if (!er.canceled) {\r\n const slotTime = er.newSlot.range.startTime.startOf();\r\n const z = er.event.range.startTime.clone();\r\n const durDay = slotTime.duration(z.startOf(), 'days');\r\n const durTime = slotTime.duration(z, 'hours');\r\n const eventRange = er.event.range;\r\n //\r\n // if (time && slotTime.add('hour', time).hour + eventRange.duration('hours') > 24) {\r\n // return;\r\n // }\r\n if (time) {\r\n return;\r\n }\r\n er.event.range.startTime = er.event.range.startTime.add('day', durDay);\r\n er.event.range.endTime = er.event.range.endTime.add('day', durDay);\r\n er.oldSlot.events = er.oldSlot.events.filter(c => c.uid !== er.event.uid);\r\n if (time) {\r\n er.event.range.startTime = er.event.range.startTime.set('hour', time);\r\n let durTime = er.event.range.startTime.duration(z, 'hours') % 24;\r\n er.event.range.endTime = er.event.range.endTime.add('hour', durTime);\r\n }\r\n er.newSlot.events.push(er.event);\r\n\r\n }\r\n });\r\n this.onEventChanged.emit(r);\r\n }\r\n }\r\n\r\n}","import { Component, ElementRef, ChangeDetectorRef, ViewEncapsulation } from '@angular/core';\r\nimport { AXSchedulerBaseViewComponent } from '../scheduler-view.component';\r\nimport { AXSchedulerSlot, AXSchedulerEvent } from '../../scheduler.class';\r\nimport { AXDateTime, AXDateTimeRange } from '@acorex/core';\r\n\r\n@Component({\r\n templateUrl: './scheduler-daytime-view.component.html',\r\n styleUrls: ['./scheduler-daytime-view.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerDayTimeViewComponent }]\r\n})\r\nexport class AXSchedulerDayTimeViewComponent extends AXSchedulerBaseViewComponent {\r\n constructor(private elm: ElementRef<HTMLDivElement>, private cdr: ChangeDetectorRef) { super(); }\r\n times: any[] = [];\r\n private vScroll: HTMLElement;\r\n private container: HTMLElement;\r\n private view: HTMLElement;\r\n private header: HTMLElement;\r\n private body: HTMLElement;\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.vScroll = this.elm.nativeElement.querySelector<HTMLElement>('.v-scroll');\r\n this.header = this.elm.nativeElement.querySelector<HTMLElement>('.header');\r\n this.body = this.elm.nativeElement.querySelector<HTMLElement>('.body');\r\n this.view = this.elm.nativeElement.querySelector<HTMLElement>('.view');\r\n this.container = this.elm.nativeElement.closest('.view-container') as HTMLElement;\r\n }\r\n\r\n updateSize(): void {\r\n const firstTr = this.body.querySelector('tr');\r\n if (firstTr) {\r\n let index = 0;\r\n this.header.querySelectorAll('th').forEach(c => {\r\n const td = firstTr.children.item(index++) as HTMLElement;\r\n td.style.width = `${c.offsetWidth}px`;\r\n });\r\n this.vScroll.style.height = `calc(100% - ${this.header.clientHeight}px)`;\r\n if (this.container) {\r\n this.view.style.height = `${this.container.clientHeight}px`;\r\n }\r\n }\r\n this.arrangeEvents();\r\n }\r\n\r\n navigate(date: AXDateTime = new AXDateTime()) {\r\n this.times = [];\r\n this.slots = [];\r\n for (let i = 0; i < this.interval; i++) {\r\n const d = date.addDay(i);\r\n const range = new AXDateTimeRange(d, d);\r\n const slot: AXSchedulerSlot = {\r\n range,\r\n events: this.getEvents(range, 'day')\r\n };\r\n this.slots.push(slot);\r\n }\r\n for (let i = 0; i < 24; i++) {\r\n this.times.push({\r\n display: ('0' + i).slice(-2) + ':00',\r\n value: i\r\n });\r\n }\r\n this.navigatorDate = date;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n next(): void {\r\n this.navigate(this.navigatorDate.addDay(this.interval));\r\n }\r\n prev(): void {\r\n this.navigate(this.navigatorDate.addDay(-this.interval));\r\n }\r\n\r\n arrangeEvents() {\r\n const events = this.elm.nativeElement.querySelectorAll<HTMLElement>('.event');\r\n if (events.length) {\r\n const height = events[0].closest('td').offsetHeight;\r\n events.forEach(e => {\r\n const uid = e.attributes.getNamedItem('data-uid').value;\r\n const event = this.events.find(c => c.uid === uid);\r\n const dur = Math.ceil(Math.abs(event.range.duration('hours')));\r\n let total = dur + 1;\r\n if (event.range.startTime.hour + total > 23) {\r\n total = 24 - event.range.startTime.hour;\r\n }\r\n e.style.height = (total * height) + 'px';\r\n });\r\n }\r\n }\r\n\r\n findEventIndex(event: AXSchedulerEvent): number {\r\n const a = this.events.filter(c =>\r\n c.range.startTime.equal(event.range.startTime, 'day')\r\n ).sort((d1, d2) => {\r\n return d1.range.startTime.compaireNew(d2.range.startTime);\r\n });\r\n\r\n return a.indexOf(event);\r\n }\r\n}\r\n","import { Component, ElementRef, ChangeDetectorRef, ViewEncapsulation, HostListener, NgZone } from '@angular/core';\r\nimport { AXSchedulerBaseViewComponent } from '../scheduler-view.component';\r\nimport { AXSchedulerEvent, AXSchedulerEventChangeArgs } from '../../scheduler.class';\r\nimport { AXDateTime, AXDateTimeRange } from '@acorex/core';\r\n\r\n@Component({\r\n templateUrl: './scheduler-month-view.component.html',\r\n styleUrls: ['./scheduler-month-view.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerMonthViewComponent }]\r\n})\r\nexport class AXSchedulerMonthViewComponent extends AXSchedulerBaseViewComponent {\r\n\r\n\r\n constructor(\r\n private elm: ElementRef<HTMLDivElement>,\r\n private zone: NgZone,\r\n private cdr: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n @HostListener('wheel', ['$event'])\r\n onKeydownHandler(e: MouseWheelEvent) {\r\n if (e.deltaY > 0) {\r\n this.navigate(this.navigatorDate.addMonth(1))\r\n }\r\n else if (e.deltaY < 0) {\r\n this.navigate(this.navigatorDate.addMonth(-1))\r\n }\r\n }\r\n\r\n weekDays: any[] = [\r\n {\r\n index: 0, title: 'Sunday'\r\n },\r\n {\r\n index: 1, title: 'Moday'\r\n },\r\n {\r\n index: 2, title: 'Tuesday'\r\n },\r\n {\r\n index: 3, title: 'Wednesday'\r\n },\r\n {\r\n index: 4, title: 'Thursday'\r\n },\r\n {\r\n index: 5, title: 'Friday'\r\n },\r\n {\r\n index: 6, title: 'Saturday'\r\n }];\r\n startDayOfWeek = 'Moday';\r\n\r\n\r\n\r\n private container: HTMLElement;\r\n private view: HTMLElement;\r\n private header: HTMLElement;\r\n private body: HTMLElement;\r\n\r\n\r\n\r\n\r\n ngAfterViewInit(): void {\r\n this.header = this.elm.nativeElement.querySelector<HTMLElement>('.header');\r\n this.body = this.elm.nativeElement.querySelector<HTMLElement>('.body');\r\n this.view = this.elm.nativeElement.querySelector<HTMLElement>('.view');\r\n this.container = this.elm.nativeElement.closest('.view-container') as HTMLElement;\r\n\r\n }\r\n\r\n\r\n updateSize(): void {\r\n const firstTr = this.body.querySelector('tr');\r\n if (firstTr) {\r\n let index = 0;\r\n this.header.querySelectorAll('th').forEach(c => {\r\n const td = firstTr.children.item(index++) as HTMLElement;\r\n td.style.width = `${c.offsetWidth}px`;\r\n });\r\n this.body.style.height = `calc(100% - ${this.header.clientHeight}px)`;\r\n if (this.container) {\r\n this.view.style.height = `${this.container.clientHeight}px`;\r\n }\r\n }\r\n this.arrangeEvents();\r\n }\r\n\r\n matrixify(arr, rows, cols) {\r\n const matrix = [];\r\n if (rows * cols === arr.length) {\r\n for (let i = 0; i < arr.length; i += cols) {\r\n matrix.push(arr.slice(i, cols + i));\r\n }\r\n }\r\n return matrix;\r\n }\r\n\r\n matrixSlots: any;\r\n\r\n navigate(date: AXDateTime = new AXDateTime()) {\r\n\r\n const start = date.month.range.startTime.firstDayOfWeek;\r\n const end = date.month.range.startTime.endDayOfWeek;\r\n const dur = end.duration(start);\r\n this.slots = [];\r\n for (let i = 0; i < dur; i++) {\r\n const d = start.addDay(i);\r\n const range: AXDateTimeRange = new AXDateTimeRange(d, d);\r\n this.slots.push({\r\n range,\r\n events: this.getEvents(range, 'day'),\r\n uid: range.startTime.date.getTime().toString()\r\n });\r\n }\r\n const dayInWeek = 7;\r\n const rows = Math.floor(dur / dayInWeek);\r\n this.matrixSlots = this.matrixify(this.slots, rows, dayInWeek);\r\n this.navigatorDate = date;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n\r\n next(): void {\r\n this.navigate(this.navigatorDate.addMonth(this.interval));\r\n }\r\n prev(): void {\r\n this.navigate(this.navigatorDate.addMonth(-this.interval));\r\n }\r\n\r\n arrangeEvents() {\r\n this.slots.forEach(slot => {\r\n const slotTd = this.elm.nativeElement.querySelector<HTMLElement>(`[data-uid='` + slot.uid + `']`);\r\n const viewMoreDiv = slotTd.querySelector<HTMLElement>('.view-more');\r\n let viewMore = 0;\r\n viewMoreDiv.style.display = 'none';\r\n const width = slotTd.offsetWidth;\r\n slot.events.forEach(event => {\r\n const e = slotTd.querySelector<HTMLElement>(`[data-uid='` + event.uid + `']`);\r\n if (e) {\r\n const dur = Math.ceil(Math.abs(event.range.duration()));\r\n e.style.visibility = 'unset';\r\n e.style.width = (dur * width) + 'px';\r\n e.style.top = ((this.findEventIndex(event)) * 25) + 'px';\r\n if (e.getBoundingClientRect().bottom >= slotTd.getBoundingClientRect().bottom) {\r\n viewMore++;\r\n e.style.visibility = 'hidden';\r\n viewMoreDiv.style.display = 'unset';\r\n viewMoreDiv.innerHTML = `+${viewMore} more`;\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n findEventIndex(event: AXSchedulerEvent): number {\r\n const a = this.events.filter(c =>\r\n c.range.startTime.equal(event.range.startTime, 'days')\r\n ).sort((d1, d2) => {\r\n const v = d1.range.startTime.compaireNew(d2.range.startTime, 'YMDhm');\r\n return v;\r\n });\r\n return a.indexOf(event);\r\n }\r\n\r\n private dragEnterSlot: HTMLElement;\r\n private dragPreview: HTMLElement;\r\n private dragHour: number = null;\r\n onDragStarted(event) {\r\n this.zone.runOutsideAngular(() => {\r\n this.dragEnterSlot = event.source.dropContainer.element.nativeElement;\r\n this.elm.nativeElement.addEventListener('mousemove', this.drageMouseMove.bind(this));\r\n });\r\n }\r\n onDragEntered(event) {\r\n this.dragPreview = document.querySelector<HTMLElement>('.cdk-drag-preview');\r\n this.dragEnterSlot = event.container.element.nativeElement;\r\n }\r\n onDragEnded(event) {\r\n this.dragEnterSlot = null;\r\n this.dragPreview = null;\r\n this.zone.runOutsideAngular(() => {\r\n this.elm.nativeElement.removeEventListener('mousemove', this.drageMouseMove.bind(this));\r\n });\r\n }\r\n\r\n private drageMouseMove(e: MouseEvent) {\r\n this.zone.runOutsideAngular(() => {\r\n if (!this.dragPreview) {\r\n this.dragPreview = document.querySelector<HTMLElement>('.cdk-drag-preview');\r\n }\r\n if (this.dragEnterSlot && this.dragPreview) {\r\n const diff = this.dragPreview.getBoundingClientRect().top - this.dragEnterSlot.getBoundingClientRect().top;\r\n const hour = Math.round((diff / this.dragEnterSlot.getBoundingClientRect().height) * 24);\r\n this.dragPreview.querySelector('.ax-sch-str').innerHTML = `${hour > 0 ? hour : 0}:00`;\r\n this.dragHour = hour;\r\n }\r\n });\r\n }\r\n\r\n onDragDropOnDay(e) {\r\n const el = e.item.element.nativeElement as HTMLElement;\r\n if (e.previousContainer !== e.container) {\r\n el.style.opacity = '0';\r\n const r: AXSchedulerEventChangeArgs = new AXSchedulerEventChangeArgs();\r\n r.event = e.item.data;\r\n r.oldSlot = e.previousContainer.data;\r\n r.newSlot = e.container.data;\r\n //\r\n r.onComplete.subscribe((er: AXSchedulerEventChangeArgs) => {\r\n el.style.opacity = '1';\r\n if (!er.canceled) {\r\n const slotTime = er.newSlot.range.startTime.startOf();\r\n const z = er.event.range.startTime.clone();\r\n const durDay = slotTime.duration(z.startOf(), 'days');\r\n er.event.range.startTime = er.event.range.startTime.add('day', durDay);\r\n if (this.dragHour != null) {\r\n er.event.range.startTime = er.event.range.startTime.set('hour', this.dragHour);\r\n er.event.range.startTime = er.event.range.startTime.set('minute', 0);\r\n }\r\n er.event.range.endTime = er.event.range.endTime.add('day', durDay);\r\n er.oldSlot.events = er.oldSlot.events.filter(c => c.uid !== er.event.uid);\r\n er.newSlot.events.push(er.event);\r\n }\r\n });\r\n this.onEventChanged.emit(r);\r\n }\r\n\r\n }\r\n\r\n}\r\n","\r\nimport { Component, OnInit, Input, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild } from '@angular/core';\r\n\r\nimport { AXSchedulerViewType } from '../scheduler.class';\r\nimport { AXCalendarBoxComponent } from '../../calendar-box/calendar-box.component';\r\n\r\nimport { AXMenuItem, AXDateTime, AXDateTimeRange } from '@acorex/core';\r\nimport { AXToolbarItem } from '../../../toolbar/toolbar-item';\r\nimport { AXToolbarMenuComponent } from '../../../toolbar/menu/toolbar-menu.component';\r\nimport { AXPopoverComponent } from '../../../popover/popover.component';\r\nimport { AXValueEvent } from '../../../base/events.class';\r\n\r\n\r\n@Component({\r\n selector: 'ax-toolbar-scheduler-navigator',\r\n template: `\r\n <div id=\"nav\">\r\n <ax-toolbar-menu [items]=\"items\" (onItemClick)=\"onItemClick($event)\"></ax-toolbar-menu>\r\n <ax-popover target=\"#nav\" placement=\"bottom-end\" alignment=\"top-end\" #pop>\r\n <ax-calendar-box (onValueChanged)=\"onDateChange($event)\" [depth]=\"viewDepth\" #cal></ax-calendar-box>\r\n </ax-popover>\r\n</div>`,\r\n providers: [{ provide: AXToolbarItem, useExisting: AXToolbarSchedulerNavigatorComponent }],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXToolbarSchedulerNavigatorComponent {\r\n constructor(private cdr: ChangeDetectorRef) { }\r\n\r\n @ViewChild(AXToolbarMenuComponent, { static: true })\r\n toolbar: AXToolbarMenuComponent;\r\n\r\n @ViewChild('pop', { static: true })\r\n pop: AXPopoverComponent;\r\n\r\n @ViewChild('cal', { static: true })\r\n cal: AXCalendarBoxComponent;\r\n\r\n viewDepth: string = 'day';\r\n\r\n\r\n items: AXMenuItem[] = [];\r\n\r\n ngAfterViewInit(): void {\r\n this.items = [\r\n {\r\n name: 'prev',\r\n startIcon: 'fas fa-angle-left',\r\n tooltip: 'Prev'\r\n },\r\n {\r\n name: 'today',\r\n text: 'Today',\r\n tooltip: 'Today'\r\n },\r\n {\r\n name: 'next',\r\n startIcon: 'fas fa-angle-right',\r\n tooltip: 'Next'\r\n },\r\n {\r\n name: 'current',\r\n\r\n }];\r\n }\r\n\r\n\r\n @Output()\r\n onNavigate: EventEmitter<'next' | 'back' | AXDateTime> = new EventEmitter<'next' | 'back' | AXDateTime>();\r\n\r\n onItemClick(e: AXMenuItem) {\r\n if (e.name === 'current') {\r\n this.pop.toggle();\r\n }\r\n else if (e.name === 'today') {\r\n this.goto(new AXDateTime());\r\n }\r\n else {\r\n this.onNavigate.emit(e.name as any);\r\n this.pop.close();\r\n }\r\n }\r\n\r\n\r\n onDateChange(e: AXValueEvent<AXDateTime>) {\r\n this.goto(e.value);\r\n }\r\n\r\n goto(date: AXDateTime) {\r\n this.onNavigate.emit(date);\r\n this.pop.close();\r\n }\r\n\r\n\r\n set(range: AXDateTimeRange, type: AXSchedulerViewType) {\r\n if (range) {\r\n let text: string = '';\r\n const calDate: AXDateTime = range.startTime;\r\n const sameDay = range.startTime.compaireNew(range.endTime, 'YMD') === 0;\r\n const sameMonth = range.startTime.compaireNew(range.endTime, 'YM') === 0;\r\n const sameYear = range.startTime.compaireNew(range.endTime, 'Y') === 0;\r\n if (type !== 'month' && sameDay) {\r\n text = range.startTime.format('MMMM DD, YYYY');\r\n }\r\n //\r\n else if (type !== 'month' && sameMonth && sameYear) {\r\n text = `${range.startTime.format('MMMM DD')} - ${range.endTime.format('DD, YYYY')}`;\r\n }\r\n else if (type !== 'month' && sameYear) {\r\n text = `${range.startTime.format('MMM DD')} - ${range.endTime.format('MMM DD, YYYY')}`;\r\n }\r\n else if (type !== 'month') {\r\n text = `${range.startTime.format('MMM DD, YYYY')} - ${range.endTime.format('MMM DD, YYYY')}`;\r\n }\r\n else if (type === 'month') {\r\n text = range.startTime.add('day', 15).format('MMMM YYYY');\r\n }\r\n this.items[3].text = text;\r\n if (type === 'month') {\r\n this.viewDepth = 'month';\r\n }\r\n else {\r\n this.viewDepth = 'day';\r\n }\r\n //\r\n this.cal.focusedValue = calDate;\r\n this.cal.navigate(calDate);\r\n this.pop.close();\r\n //\r\n this.toolbar.update();\r\n }\r\n }\r\n\r\n}\r\n","import { Component, ElementRef, ChangeDetectorRef, ViewEncapsulation } from '@angular/core';\r\nimport { AXSchedulerBaseViewComponent } from '../scheduler-view.component';\r\nimport { AXSchedulerSlot } from '../../scheduler.class';\r\nimport { AXDateTime, AXDateTimeRange } from '@acorex/core';\r\n\r\n@Component({\r\n templateUrl: './scheduler-agenda-view.component.html',\r\n styleUrls: ['./scheduler-agenda-view.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerAgendaViewComponent }]\r\n})\r\nexport class AXSchedulerAgendaViewComponent extends AXSchedulerBaseViewComponent {\r\n constructor(\r\n private elm: ElementRef<HTMLDivElement>,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n super();\r\n }\r\n\r\n hideEmptyDays: boolean = true;\r\n\r\n updateSize() {\r\n }\r\n\r\n\r\n navigate(date: AXDateTime = new AXDateTime()) {\r\n this.slots = [];\r\n for (let i = 0; i < this.interval; i++) {\r\n let d = date.addDay(i);\r\n const range = new AXDateTimeRange(d, d);\r\n const slot: AXSchedulerSlot = {\r\n range,\r\n events: this.getEvents(range, 'day')\r\n }\r\n if (this.hideEmptyDays && slot.events.length === 0) {\r\n continue;\r\n }\r\n this.slots.push(slot);\r\n }\r\n this.navigatorDate = date;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n next(): void {\r\n this.navigate(this.navigatorDate.addDay(this.interval));\r\n }\r\n prev(): void {\r\n this.navigate(this.navigatorDate.addDay(-this.interval));\r\n }\r\n}\r\n","import { Component, OnInit, Input, ElementRef, ChangeDetectorRef, ViewEncapsulation } from '@angular/core';\r\nimport { AXSchedulerBaseViewComponent } from '../scheduler-view.component';\r\nimport { AXDateTime, AXDateTimeRange } from '@acorex/core';\r\nimport { AXSchedulerSlot } from '../../scheduler.class';\r\n\r\n@Component({\r\n templateUrl: './scheduler-timeline-view.component.html',\r\n styleUrls:['./scheduler-timeline-view.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerTimelineViewComponent }]\r\n})\r\nexport class AXSchedulerTimelineViewComponent extends AXSchedulerBaseViewComponent {\r\n constructor(private elm: ElementRef<HTMLDivElement>, private cdr: ChangeDetectorRef) { super(); }\r\n\r\n\r\n\r\n\r\n times: any[] = []\r\n\r\n //private hScroll: HTMLElement;\r\n private vScroll: HTMLElement;\r\n private container: HTMLElement;\r\n private view: HTMLElement;\r\n private header: HTMLElement;\r\n private body: HTMLElement;\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.vScroll = this.elm.nativeElement.querySelector<HTMLElement>(\".v-scroll\");\r\n //this.hScroll = this.elm.nativeElement.querySelector<HTMLElement>(\".h-scroll\");\r\n this.header = this.elm.nativeElement.querySelector<HTMLElement>(\".header\");\r\n this.body = this.elm.nativeElement.querySelector<HTMLElement>(\".body\");\r\n this.view = this.elm.nativeElement.querySelector<HTMLElement>(\".view\");\r\n\r\n this.container = this.elm.nativeElement.closest(\".view-container\") as HTMLElement;\r\n // this.hScroll.addEventListener(\"scroll\", () => {\r\n // this.updateSize();\r\n // });\r\n }\r\n\r\n\r\n updateSize(): void {\r\n // let firstTr = this.body.querySelector('tr');\r\n // if (firstTr) {\r\n // let index = 0;\r\n // this.header.querySelectorAll('th').forEach(c => {\r\n // let td = firstTr.children.item(index++) as HTMLElement;\r\n // td.style.width = `${c.offsetWidth}px`;\r\n // })\r\n // this.vScroll.style.height = `calc(100% - ${this.header.clientHeight}px)`;\r\n // //this.vScroll.style.width = `${this.hScroll.clientWidth + this.hScroll.scrollLeft}px`;\r\n // if (this.container)\r\n // this.view.style.height = `${this.container.clientHeight}px`;\r\n // }\r\n }\r\n\r\n navigate(date: AXDateTime = new AXDateTime()) {\r\n this.navigatorDate = date;\r\n this.times=[];\r\n this.slots = [];\r\n for (let i = 0; i < this.interval; i++) {\r\n let d = date.addDay(i);\r\n let range = new AXDateTimeRange(d, d);\r\n let slot: AXSchedulerSlot = {\r\n range: range,\r\n events: this.getEvents(range, \"day\")\r\n }\r\n this.slots.push(slot);\r\n }\r\n for (let i = 0; i < 24; i++) {\r\n this.times.push({\r\n display:('0' + i).slice(-2) + \":00\",\r\n value:i\r\n });\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n next(): void {\r\n this.navigate(this.navigatorDate.addDay(this.interval));\r\n }\r\n prev(): void {\r\n this.navigate(this.navigatorDate.addDay(-this.interval));\r\n }\r\n\r\n arrangeEvents()\r\n {\r\n \r\n }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectorRef, ElementRef, ViewChild } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\nimport { AXToolbarItem } from '../toolbar-item';\r\nimport { AXValueEvent } from '../../base/events.class';\r\nimport { AXBaseInputComponent } from '../../base/element.class';\r\n\r\n\r\n@Component({\r\n selector: 'ax-toolbar-search',\r\n templateUrl: './toolbar-search.component.html',\r\n styleUrls: ['./toolbar-search.component.scss'],\r\n providers: [{ provide: AXToolbarItem, useExisting: AXToolbarSearchComponent }]\r\n})\r\n\r\nexport class AXToolbarSearchComponent {\r\n constructor() { }\r\n\r\n private searchChangeObserver: any;\r\n\r\n @ViewChild('input', { static: true }) inputSearch: ElementRef;\r\n\r\n @Output()\r\n onValueChanged: EventEmitter<AXValueEvent<string>> = new EventEmitter<AXValueEvent<string>>();\r\n\r\n private _text: string;\r\n @Input()\r\n public get text(): string {\r\n return this._text;\r\n }\r\n public set text(v: string) {\r\n if (v !== this._text) {\r\n const old = this._text;\r\n this._text = v;\r\n this.onValueChanged.emit({\r\n component: this,\r\n value: v,\r\n oldValue: old\r\n });\r\n }\r\n }\r\n\r\n public focus() {\r\n this.inputSearch.nativeElement.focus();\r\n }\r\n\r\n onSearchChanged(text: string) {\r\n if (!this.searchChangeObserver) {\r\n Observable.create(observer => {\r\n\r\n this.searchChangeObserver = observer;\r\n })\r\n .pipe(debounceTime(500))\r\n .pipe(distinctUntilChanged())\r\n .subscribe(c => {\r\n this.text = c;\r\n });\r\n }\r\n this.searchChangeObserver.next(text);\r\n }\r\n}\r\n","import { EventEmitter } from '@angular/core';\r\n\r\n\r\n\r\nexport interface AXSortParams {\r\n field?: string;\r\n sort?: 'asc' | 'desc';\r\n}\r\nexport interface AXGroups {\r\n field?: string;\r\n}\r\n\r\nexport interface AXFilterParams {\r\n field?: string;\r\n filters?: AXFilterConditionParams[];\r\n}\r\n\r\nexport interface AXFilterConditionParams {\r\n dataType?: 'text' | 'number' | 'date';\r\n type?: 'contains' | 'equal' | 'notEqual';\r\n value?: any;\r\n}\r\n\r\nexport interface AXDataSourceReadParams {\r\n skip?: number;\r\n take?: number;\r\n sort?: AXSortParams;\r\n filter?: AXFilterParams[];\r\n searchText?: string;\r\n group?: AXDataSourceGroupParams;\r\n requestId?: any;\r\n extra?: any;\r\n}\r\n\r\nexport class AXDataSourceReceivedResult {\r\n result?: any;\r\n requestId?: any;\r\n}\r\n\r\nexport interface AXDataSourceGroupParams {\r\n parentData: any;\r\n keys: string[];\r\n fields: string[];\r\n}\r\n\r\n\r\nexport abstract class AXDataSourceRead {\r\n abstract fetch(params: AXDataSourceReadParams): void;\r\n abstract dataReceived: EventEmitter<any>;\r\n}","import { Component, ContentChild, EventEmitter, Input } from \"@angular/core\";\r\nimport { AXDataSourceReadParams, AXDataSourceRead, AXDataSourceReceivedResult } from './read-param';\r\nimport { AXBaseEvent, AXValueEvent } from '../base/events.class';\r\nimport { AXDataEvent } from '../base/events.class';\r\n\r\n\r\nexport class AXDataSourceReceivedEvent extends AXDataEvent<AXDataSourceReceivedResult>\r\n{\r\n\r\n}\r\n\r\n\r\n@Component({\r\n selector: \"ax-data-source\",\r\n template: \"<ng-content></ng-content>\"\r\n})\r\nexport class AXDataSourceComponent {\r\n\r\n onDataReceived: EventEmitter<AXDataSourceReceivedEvent> = new EventEmitter<AXDataSourceReceivedEvent>();\r\n onFetchStart: EventEmitter<AXBaseEvent> = new EventEmitter<AXBaseEvent>();\r\n\r\n @Input()\r\n provideData: (params: AXDataSourceReadParams) => Promise<any>;\r\n\r\n @Input()\r\n params: any;\r\n\r\n fetch(params: AXDataSourceReadParams) {\r\n this.onFetchStart.emit({ component: this });\r\n if (this.provideData) {\r\n if (params === null) {\r\n params = this.params === undefined ? null : this.params;\r\n } else {\r\n params.extra = this.params;\r\n }\r\n\r\n //\r\n this.provideData(params).then(_data => {\r\n const data: AXDataSourceReceivedResult = new AXDataSourceReceivedResult();\r\n data.result = _data;\r\n data.requestId = params == null ? null : params.requestId;\r\n this.onDataReceived.emit({\r\n component: this,\r\n data: data\r\n });\r\n });\r\n }\r\n }\r\n\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n ContentChild,\r\n Input,\r\n ViewEncapsulation,\r\n ElementRef,\r\n ViewChild,\r\n ComponentRef,\r\n Output,\r\n EventEmitter,\r\n ChangeDetectorRef,\r\n NgZone,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { AXSchedulerViewsProperty, AXSchedulerViewProperty } from './scheduler-views.property';\r\nimport { AXToolbarSchedulerViewsComponent } from './toolbars/scheduler-toolbar-views';\r\nimport { AXSchedulerDayTimeViewComponent } from './views/daytime/scheduler-daytime-view.component';\r\nimport { ComponentPortal, CdkPortalOutlet } from '@angular/cdk/portal';\r\nimport { AXSchedulerBaseViewComponent } from './views/scheduler-view.component';\r\nimport { AXSchedulerMonthViewComponent } from './views/month/scheduler-month-view.component';\r\nimport { AXToolbarSchedulerNavigatorComponent } from './toolbars/scheduler-toolbar-navigator';\r\nimport { AXSchedulerAgendaViewComponent } from './views/agenda/scheduler-agenda-view.component';\r\nimport { AXSchedulerTimelineViewComponent } from './views/timeline/scheduler-timeline-view.component';\r\nimport { AXSchedulerEventChangeArgs, AXSchedulerEvent } from './scheduler.class';\r\nimport { AXMenuItem, AXDateTime } from '@acorex/core';\r\nimport { AXToolbarSearchComponent } from '../../toolbar/search/toolbar-search.component';\r\nimport { AXDataSourceComponent } from '../../data-source/datasource.component';\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: 'ax-scheduler',\r\n templateUrl: './scheduler.component.html',\r\n styleUrls: ['./scheduler.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXSchedulerComponent {\r\n constructor(\r\n private elm: ElementRef<HTMLDivElement>,\r\n private zone: NgZone,\r\n private cdr: ChangeDetectorRef\r\n ) { }\r\n\r\n @ViewChild(CdkPortalOutlet, { static: true })\r\n private portalOutlet: CdkPortalOutlet\r\n\r\n\r\n @ViewChild('container', { static: true })\r\n private container: ElementRef<HTMLElement>;\r\n\r\n @ContentChild(AXSchedulerViewsProperty, { static: true })\r\n private viewManager: AXSchedulerViewsProperty;\r\n\r\n @ContentChild(AXToolbarSchedulerViewsComponent, { static: true })\r\n private toolbarView: AXToolbarSchedulerViewsComponent;\r\n @ContentChild(AXToolbarSchedulerNavigatorComponent, { static: true })\r\n private toolbarNavigator: AXToolbarSchedulerNavigatorComponent;\r\n\r\n @ContentChild(AXToolbarSearchComponent, { static: true })\r\n searchInput: AXToolbarSearchComponent;\r\n\r\n @ContentChild(AXDataSourceComponent, { static: true })\r\n private dataSource: AXDataSourceComponent;\r\n\r\n view: AXSchedulerBaseViewComponent;\r\n\r\n\r\n private _currentView: string;\r\n @Input()\r\n public get currentView(): string {\r\n return this._currentView;\r\n }\r\n public set currentView(v: string) {\r\n this.setView(v);\r\n }\r\n\r\n private viewItems: AXMenuItem[] = [];\r\n private today = new AXDateTime();\r\n private navigatorDate = new AXDateTime();\r\n searchText: string;\r\n\r\n @Input()\r\n events: AXSchedulerEvent[] = [];\r\n\r\n @Output()\r\n onEventChanged: EventEmitter<AXSchedulerEventChangeArgs> = new EventEmitter<AXSchedulerEventChangeArgs>();\r\n\r\n setView(name: string) {\r\n this._currentView = name;\r\n if (this.viewManager.views) {\r\n this.viewItems.forEach(c => {\r\n c.selected = false;\r\n });\r\n this.viewItems.find(c => c.name == name).selected = true;\r\n const selected = this.viewManager.views.find(c => c.name == name);\r\n this.createView(selected);\r\n }\r\n }\r\n\r\n\r\n private createView(selected: AXSchedulerViewProperty) {\r\n this.startAnim();\r\n if (this.view) {\r\n this.view.ngOnDestroy();\r\n }\r\n let portal: ComponentPortal<AXSchedulerBaseViewComponent>;\r\n this.portalOutlet.detach();\r\n let interval = selected.interval;\r\n if (selected.type === 'day') {\r\n portal = new ComponentPortal<AXSchedulerBaseViewComponent>(AXSchedulerDayTimeViewComponent);\r\n }\r\n if (selected.type === 'week') {\r\n portal = new ComponentPortal<AXSchedulerBaseViewComponent>(AXSchedulerDayTimeViewComponent);\r\n interval = selected.interval * 7;\r\n }\r\n if (selected.type === 'month') {\r\n portal = new ComponentPortal<AXSchedulerBaseViewComponent>(AXSchedulerMonthViewComponent);\r\n }\r\n if (selected.type === 'agenda') {\r\n portal = new ComponentPortal<AXSchedulerBaseViewComponent>(AXSchedulerAgendaViewComponent);\r\n }\r\n if (selected.type === 'timeline') {\r\n portal = new ComponentPortal<AXSchedulerBaseViewComponent>(AXSchedulerTimelineViewComponent);\r\n }\r\n const compRef: ComponentRef<AXSchedulerBaseViewComponent> = this.portalOutlet.attach(portal);\r\n this.view = compRef.instance;\r\n this.view.type = selected.type;\r\n this.view.interval = interval;\r\n //\r\n this.view.onEventChanged.subscribe(e => {\r\n this.onEventChanged.emit(e);\r\n });\r\n this.view.onNavigatorDateChanged.subscribe((e) => {\r\n this.navigatorDate = e;\r\n this.setNavigatorText();\r\n this.startAnim();\r\n });\r\n this.refresh();\r\n }\r\n\r\n private setNavigatorText() {\r\n if (this.toolbarNavigator) {\r\n this.toolbarNavigator.set(this.view.dateRange, this.view.type);\r\n }\r\n }\r\n\r\n private startAnim() {\r\n this.container.nativeElement.classList.remove('ax-anim-fade-in-fwd');\r\n this.container.nativeElement.style.opacity = '0';\r\n setTimeout(() => {\r\n this.container.nativeElement.classList.add('ax-anim-fade-in-fwd');\r\n }, 250);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(_ => {\r\n this.viewManager.views.forEach(v => {\r\n this.viewItems.push({\r\n groupName: 'view',\r\n name: v.name,\r\n text: v.caption\r\n });\r\n });\r\n //\r\n this.dataSource.onDataReceived.subscribe(e => {\r\n this.events = e;\r\n this.view.events = this.events;\r\n if (this.searchText && this.view.events && this.view.events.length) {\r\n this.navigatorDate = this.view.events[0].range.startTime;\r\n }\r\n if (this.navigatorDate) {\r\n this.view.navigate(this.navigatorDate);\r\n }\r\n else {\r\n this.view.navigate(this.today);\r\n }\r\n });\r\n //\r\n if (this.toolbarView) {\r\n this.toolbarView.onViewChanged.subscribe(c => {\r\n this.currentView = c;\r\n });\r\n this.toolbarView.items = this.viewItems;\r\n }\r\n //\r\n if (this.toolbarNavigator) {\r\n this.toolbarNavigator.onNavigate.subscribe(c => {\r\n if (c === 'next') {\r\n this.view.next();\r\n }\r\n else if (c === 'prev') {\r\n this.view.prev();\r\n }\r\n else {\r\n this.view.navigate(c);\r\n }\r\n });\r\n }\r\n if (this.searchInput) {\r\n this.searchInput.onValueChanged.subscribe(c => {\r\n this.searchText = c;\r\n if (c) {\r\n this.viewItems.forEach(c => { c.visible = false; });\r\n const x: AXSchedulerViewProperty = new AXSchedulerViewProperty('agenda', 'Search', 'VIEW_SEARCH');\r\n x.interval = 100;\r\n this.createView(x);\r\n this.refresh();\r\n }\r\n else {\r\n this.viewItems.forEach(c => { c.visible = true; });\r\n this.setView(this._currentView);\r\n }\r\n this.toolbarView.update();\r\n });\r\n }\r\n //\r\n this.setView(this.currentView);\r\n this.refresh();\r\n });\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n this.updateSize();\r\n }\r\n\r\n private updateSize() {\r\n this.zone.runOutsideAngular(() => {\r\n const toolbar = this.elm.nativeElement.querySelector<HTMLElement>(\r\n '.ax-scheduler-toolbar'\r\n );\r\n if (toolbar) {\r\n this.container.nativeElement.style.height = `calc(100% - ${toolbar.clientHeight}px)`;\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.portalOutlet.detach();\r\n }\r\n\r\n refresh() {\r\n this.dataSource.fetch({\r\n searchText: this.searchText,\r\n });\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'ax-toolbar',\r\n templateUrl: './toolbar.component.html',\r\n styleUrls: ['./toolbar.component.scss'],\r\n encapsulation:ViewEncapsulation.None\r\n})\r\nexport class AXToolbarComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void { }\r\n \r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { AXToolbarItem } from '../toolbar-item';\r\n\r\n@Component({\r\n selector: 'ax-toolbar-title',\r\n template: `\r\n <ng-container *ngIf=\"text; else elseTemplate\">\r\n <div class=\"title\">{{text}}</div>\r\n </ng-container>\r\n <ng-template #elseTemplate>\r\n <ng-content></ng-content>\r\n </ng-template>`,\r\n styles: [`\r\n .title{\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n }\r\n `],\r\n providers: [{ provide: AXToolbarItem, useExisting: AXToolbarTitleComponent }]\r\n})\r\nexport class AXToolbarTitleComponent {\r\n constructor() { }\r\n\r\n private _text: string;\r\n @Input()\r\n public get text(): string {\r\n return this._text;\r\n }\r\n public set text(v: string) {\r\n if (v !== this._text) {\r\n this._text = v;\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\r\nimport { AXToolbarItem } from \"../toolbar-item\";\r\nimport { AXBaseMenuItem } from '@acorex/core';\r\n\r\n@Component({\r\n selector: \"ax-toolbar-group-button\",\r\n template: `\r\n <div class=\"btn-group\" role=\"group\">\r\n <button\r\n type=\"button\"\r\n *ngFor=\"let item of items\"\r\n class=\"btn btn-sm {{ item.style }}\"\r\n [class.active]=\"item.selected\"\r\n (click)=\"onClick(item)\"\r\n [title]=\"item.tooltip\"\r\n >\r\n <i class=\"{{ item.icon }}\"></i>\r\n {{ item.text }}\r\n </button>\r\n </div>\r\n `,\r\n providers: [\r\n { provide: AXToolbarItem, useExisting: AXToolbarButtonGroupComponent }\r\n ]\r\n})\r\nexport class AXToolbarButtonGroupComponent {\r\n constructor() { }\r\n\r\n @Input()\r\n items: AXBaseMenuItem[] = [];\r\n\r\n @Output()\r\n itemClick: EventEmitter<AXBaseMenuItem> = new EventEmitter<AXBaseMenuItem>();\r\n\r\n @Input()\r\n mode: \"single\" | \"multiple\" = \"single\";\r\n\r\n onClick(item: AXBaseMenuItem) {\r\n if (this.mode == \"single\") {\r\n this.items.forEach(c => {\r\n c.selected = false;\r\n });\r\n item.selected = true;\r\n this.itemClick.emit(item);\r\n } else {\r\n if (item.selected) {\r\n item.selected = false;\r\n } else {\r\n item.selected = true;\r\n this.itemClick.emit(item);\r\n }\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n TemplateRef,\r\n ViewChild,\r\n ViewContainerRef,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { SubItemsEvent } from './menu-item.component';\r\nimport { Overlay, OverlayRef, ConnectedPosition } from '@angular/cdk/overlay';\r\nimport { TemplatePortal, ComponentPortal } from '@angular/cdk/portal';\r\nimport { AXMenuItem } from '@acorex/core';\r\n\r\n@Component({\r\n selector: 'ax-menu2',\r\n template: `\r\n <div class=\"ax ax-menu ax-menu-vertical\" [attr.data-level]=\"level\">\r\n <ax-menu-item\r\n *ngFor=\"let item of items\"\r\n [level]=\"level\"\r\n [item]=\"item\"\r\n (showSubMenu)=\"showSubmenu($event)\">\r\n </ax-menu-item>\r\n </div>\r\n `,\r\n styleUrls: ['./menu2.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXMenu2Component implements OnDestroy {\r\n subItemsOverlays = new Array<OverlayRef>();\r\n level: number = 0;\r\n\r\n @Input() items: AXMenuItem[];\r\n @Output() selected = new EventEmitter<AXMenuItem>();\r\n //@ViewChild(TemplateRef) template;\r\n\r\n constructor(\r\n private overlay: Overlay,\r\n private viewContainerRef: ViewContainerRef,\r\n private elementRef: ElementRef\r\n ) { }\r\n\r\n showSubmenu(event: SubItemsEvent) {\r\n const position: ConnectedPosition[] = [];\r\n if (event.level === 0) {\r\n position.push({\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n });\r\n } else {\r\n position.push({\r\n originX: 'end',\r\n originY: 'top',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n });\r\n }\r\n\r\n const positionStrategy = this.overlay\r\n .position()\r\n .flexibleConnectedTo(event.element)\r\n .withPositions(position);\r\n const overlayRef = this.overlay.create({\r\n positionStrategy,\r\n hasBackdrop: false,\r\n backdropClass: 'cdk-overlay-transparent-backdrop'\r\n });\r\n this.subItemsOverlays.push(overlayRef);\r\n const portal = new ComponentPortal(AXMenu2Component, this.viewContainerRef);\r\n\r\n const com = overlayRef.attach(portal);\r\n com.instance.level = event.level + 1;\r\n com.instance.items = event.item.items;\r\n }\r\n\r\n @HostListener('document:click', ['$event.target'])\r\n public onDocumentClick(target) {\r\n const clickedInside = this.elementRef.nativeElement.contains(target);\r\n if (!clickedInside) {\r\n this.hideOverlays();\r\n }\r\n }\r\n\r\n hideOverlays() {\r\n this.subItemsOverlays.forEach((o) => o.dispose());\r\n this.subItemsOverlays.length = 0;\r\n }\r\n ngOnDestroy() {\r\n this.hideOverlays();\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { AXMenuItem } from '@acorex/core';\r\n\r\n@Component({\r\n selector: 'ax-menu-item',\r\n template: `\r\n <div class=\"ax-menu-item {{item.style}}\" [attr.data-level]=\"level\" (click)=\"showSubItems($event)\" [ngClass]=\"{'disabled': item.disable}\" >\r\n <i *ngIf=\"item.startIcon\" class=\"icon {{item.startIcon}}\"></i>\r\n <span class=\"text\">{{ item.text }}</span>\r\n <i *ngIf=\"item.endIcon\" class=\"icon {{item.endIcon}}\"></i>\r\n <i class=\"far fa-angle-down icon drop-icon\" *ngIf=\"item?.items?.length && item.text\"></i>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXMenuItemComponent {\r\n @Input() item: AXMenuItem;\r\n @Input() level: number;\r\n @Output() showSubMenu = new EventEmitter<SubItemsEvent>();\r\n\r\n constructor(private element: ElementRef) { }\r\n\r\n showSubItems(event: Event) {\r\n event.stopPropagation();\r\n if (this.item?.items?.length) {\r\n this.showSubMenu.emit({ item: this.item, element: this.element, level: this.level });\r\n }\r\n }\r\n}\r\nexport interface SubItemsEvent {\r\n element: ElementRef;\r\n item: AXMenuItem;\r\n level: number;\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXMenuComponent } from './menu.component';\r\nimport { AXMenu2Component } from './menu2.component';\r\nimport { AXMenuItemComponent } from './menu-item.component';\r\n@NgModule({\r\n declarations: [AXMenuComponent, AXMenu2Component, AXMenuItemComponent],\r\n imports: [CommonModule],\r\n exports: [AXMenuComponent, AXMenu2Component, AXMenuItemComponent],\r\n providers: []\r\n})\r\nexport class AXMenuModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXToolbarComponent } from './toolbar.component';\r\nimport { AXToolbarMenuComponent } from './menu/toolbar-menu.component';\r\nimport { AXToolbarSearchComponent } from './search/toolbar-search.component';\r\nimport { AXToolbarTitleComponent } from './title/toolbar-title.component';\r\nimport { AXToolbarButtonGroupComponent } from './group-button/toolbar-group-button.component';\r\nimport { AXPopoverModule } from '../popover/popover.module';\r\nimport { AXMenuModule } from '../menu/menu.module';\r\n\r\nconst COMPONENTS = [\r\n AXToolbarComponent,\r\n AXToolbarMenuComponent,\r\n AXToolbarSearchComponent,\r\n AXToolbarTitleComponent,\r\n AXToolbarButtonGroupComponent\r\n]\r\n\r\n@NgModule({\r\n declarations: [COMPONENTS],\r\n imports: [CommonModule, AXPopoverModule, AXMenuModule],\r\n exports: [COMPONENTS],\r\n providers: [],\r\n})\r\nexport class AXToolbarModule { }","import { NgModule } from '@angular/core';\r\nimport { AXSchedulerComponent } from './scheduler.component';\r\nimport { AXSchedulerViewsProperty, AXSchedulerViewProperty } from './scheduler-views.property';\r\nimport { AXSchedulerDayTimeViewComponent } from './views/daytime/scheduler-daytime-view.component';\r\nimport { AXToolbarSchedulerViewsComponent } from './toolbars/scheduler-toolbar-views';\r\nimport { AXCoreModule } from '@acorex/core';\r\nimport { AXSchedulerMonthViewComponent } from './views/month/scheduler-month-view.component';\r\nimport { PortalModule } from '@angular/cdk/portal';\r\nimport { AXToolbarSchedulerNavigatorComponent } from './toolbars/scheduler-toolbar-navigator';\r\nimport { AXSchedulerAgendaViewComponent } from './views/agenda/scheduler-agenda-view.component';\r\nimport { AXSchedulerTimelineViewComponent } from './views/timeline/scheduler-timeline-view.component';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { AXCalendarBoxModule } from '../calendar-box/calendar-box.module';\r\n\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXToolbarModule } from '../../toolbar/toolbar.module';\r\nimport { AXPopoverModule } from '../../popover/popover.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n AXSchedulerComponent,\r\n AXSchedulerViewsProperty,\r\n AXSchedulerViewProperty,\r\n AXSchedulerDayTimeViewComponent,\r\n AXSchedulerMonthViewComponent,\r\n AXSchedulerAgendaViewComponent,\r\n AXSchedulerTimelineViewComponent,\r\n AXToolbarSchedulerViewsComponent,\r\n AXToolbarSchedulerNavigatorComponent\r\n ],\r\n imports: [CommonModule,AXCoreModule, AXCalendarBoxModule, AXToolbarModule, AXPopoverModule, PortalModule, DragDropModule],\r\n exports: [\r\n AXSchedulerComponent,\r\n AXSchedulerViewsProperty,\r\n AXSchedulerViewProperty,\r\n AXSchedulerDayTimeViewComponent,\r\n AXSchedulerMonthViewComponent,\r\n AXSchedulerAgendaViewComponent,\r\n AXSchedulerTimelineViewComponent,\r\n AXToolbarSchedulerViewsComponent,\r\n AXToolbarSchedulerNavigatorComponent\r\n ],\r\n entryComponents: [\r\n AXSchedulerMonthViewComponent,\r\n AXSchedulerDayTimeViewComponent,\r\n AXSchedulerAgendaViewComponent,\r\n AXSchedulerTimelineViewComponent\r\n ],\r\n providers: [],\r\n})\r\nexport class AXSchedulerModule { }","import {\r\n Component,\r\n ViewEncapsulation,\r\n Output,\r\n EventEmitter,\r\n Input,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n ViewChild,\r\n ElementRef\r\n} from '@angular/core';\r\nimport { AXBaseComponent, AXBaseSizableComponent, AXBaseValueComponent, AXElementSize } from '../base/element.class';\r\nimport { AXValueEvent, AXHtmlEvent } from '../base/events.class';\r\n\r\nexport class AXCheckBoxItemClick extends AXHtmlEvent<MouseEvent>\r\n{\r\n value?: boolean;\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'ax-check-box',\r\n templateUrl: './checkbox.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXCheckBoxComponent extends AXBaseComponent implements AXBaseSizableComponent, AXBaseValueComponent<boolean> {\r\n @ViewChild('input', { static: true }) input: ElementRef<HTMLInputElement>;\r\n\r\n @Input()\r\n readonly: boolean = false;\r\n\r\n @Input()\r\n disabled: boolean = false;\r\n\r\n @Input()\r\n size: AXElementSize = 'md';\r\n\r\n @Input()\r\n label: string = '';\r\n\r\n @Input()\r\n tabIndex: number = 0;\r\n\r\n @Input()\r\n indeterminate: boolean = false;\r\n\r\n focus(): void { }\r\n constructor(protected cdr: ChangeDetectorRef, private ref: ElementRef) {\r\n super();\r\n }\r\n // Value\r\n @Output()\r\n onValueChanged: EventEmitter<AXValueEvent<boolean>> = new EventEmitter<AXValueEvent<boolean>>();\r\n @Output()\r\n valueChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n //\r\n @Output()\r\n onClick: EventEmitter<AXCheckBoxItemClick> = new EventEmitter<AXCheckBoxItemClick>();\r\n\r\n private _value?: boolean = false;\r\n public get value(): boolean {\r\n return this._value;\r\n }\r\n\r\n @Input()\r\n public set value(v: boolean) {\r\n if (v != this._value) {\r\n const old = this._value;\r\n this._value = v;\r\n this.valueChange.emit(v);\r\n this.onValueChanged.emit({\r\n component: this,\r\n value: v,\r\n oldValue: old,\r\n htmlElement: this.ref.nativeElement\r\n });\r\n }\r\n }\r\n\r\n\r\n // handelChange(e) {\r\n // const val = e.target.checked;\r\n // this.value = val;\r\n // }\r\n\r\n ngOnInit(): void {\r\n if (!this.indeterminate && this.value == null) {\r\n this.value = false;\r\n }\r\n }\r\n\r\n handleClick(e: MouseEvent) {\r\n if (!this.disabled && !this.readonly) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n //TODO: check intermddiate;\r\n this.value = !this.value;\r\n this.onClick.emit({\r\n component: this,\r\n htmlElement: this.ref.nativeElement,\r\n htmlEvent: e,\r\n value: this.value\r\n });\r\n }\r\n\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 { AXCheckBoxComponent } from './checkbox.component';\r\n@NgModule({\r\n declarations: [AXCheckBoxComponent],\r\n imports: [CommonModule, FormsModule],\r\n exports: [AXCheckBoxComponent],\r\n providers: []\r\n})\r\nexport class AXCheckBoxModule { }\r\n","import { Component, Input, ElementRef, HostListener, ViewChild, Output, EventEmitter } from '@angular/core';\r\nimport { AXMenuItem } from '@acorex/core';\r\nimport { AXElementSize } from '../base/element.class';\r\nimport { AXBaseEvent } from '../base/events.class';\r\n\r\n@Component({\r\n selector: 'ax-context-menu',\r\n templateUrl: './context-menu.component.html',\r\n host: { class: 'ax context-menu-container' }\r\n})\r\nexport class AXContextMenuComponent {\r\n @Input()\r\n size: AXElementSize = 'md';\r\n\r\n @Input()\r\n width: number;\r\n\r\n @Input()\r\n items: AXMenuItem[] = [];\r\n\r\n @Output()\r\n onItemClick: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onClosed: EventEmitter<AXBaseEvent> = new EventEmitter<AXBaseEvent>();\r\n\r\n @ViewChild('contex')\r\n contex: ElementRef<HTMLUListElement>;\r\n\r\n\r\n\r\n show: boolean = false;\r\n\r\n constructor(private container: ElementRef) {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n }\r\n\r\n close() {\r\n this.show = false;\r\n this.onClosed.emit({\r\n component: this\r\n });\r\n }\r\n\r\n\r\n\r\n open(_left, _top, _rtl = false) {\r\n this.show = true;\r\n setTimeout(() => {\r\n const containRec = this.container.nativeElement.getBoundingClientRect();\r\n let left = _rtl === false ? _left : _left - containRec.width;\r\n let top = _top;\r\n if (_rtl === false && _left + containRec.width > window.innerWidth) {\r\n left = window.innerWidth - containRec.width;\r\n } else if (_rtl === true && _left - containRec.width < 0) {\r\n left = 0;\r\n }\r\n if (top + containRec.height > window.innerHeight) {\r\n top = _top - containRec.height;\r\n }\r\n this.container.nativeElement.style.left = left + 'px';\r\n this.container.nativeElement.style.top = top + 'px';\r\n\r\n }, 5);\r\n\r\n\r\n }\r\n\r\n\r\n\r\n handleClickItem(item: AXMenuItem) {\r\n if (!item.disable || item.disable === undefined) {\r\n this.onItemClick.emit(item);\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, Input, Output, EventEmitter, ComponentFactoryResolver, Injector, ViewContainerRef } from '@angular/core';\r\nimport { AXMenuItem } from '@acorex/core';\r\nimport { AXBaseEvent } from '../base/events.class';\r\nimport { AXContextMenuComponent } from './context-menu.component';\r\nimport { Subscription } from 'rxjs';\r\n\r\nexport type AXContextMenuPromiseFunction = (item: any) => Promise<AXMenuItem[]>;\r\nexport type AXContextMenuFunction = (item: any) => AXMenuItem[];\r\nexport class AXContextMenuItemClickEvent extends AXBaseEvent {\r\n dataItem?: any;\r\n menuItem: AXMenuItem;\r\n}\r\n\r\n@Directive({\r\n selector: '[axContextMenu]'\r\n})\r\nexport class AXContextMenuDirective {\r\n @Input()\r\n contextMenu: AXContextMenuComponent;\r\n\r\n @Input()\r\n contextDataItem: any;\r\n\r\n @Input()\r\n contextMenuItems: AXMenuItem[] | AXContextMenuPromiseFunction | AXContextMenuFunction;\r\n\r\n @Output()\r\n onContextMenuItemClick: EventEmitter<AXContextMenuItemClickEvent> = new EventEmitter<AXContextMenuItemClickEvent>();\r\n\r\n @Input()\r\n rtl: boolean = false;\r\n\r\n internalItems: AXMenuItem[] = [];\r\n\r\n private clickSubscribe: Subscription;\r\n private closeSubscribe: Subscription;\r\n\r\n @HostListener('contextmenu', ['$event'])\r\n onContextMenu(e: MouseEvent) {\r\n this.getMenuItems().then(items => {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n this.createContextMenu();\r\n this.contextMenu.items = items;\r\n\r\n\r\n this.contextMenu.open(e.x, e.y, this.rtl);\r\n\r\n\r\n });\r\n }\r\n\r\n\r\n\r\n constructor(\r\n private ref: ElementRef,\r\n private factoryResolver: ComponentFactoryResolver,\r\n private viewContainerRef: ViewContainerRef,\r\n private injector: Injector\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.rtl == null) {\r\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\r\n }\r\n }\r\n\r\n createContextMenu(): void {\r\n const wrapper = document.createElement('div');\r\n wrapper.classList.add('ax-overlay-wrapper');\r\n wrapper.addEventListener('click', this.wrapperClick.bind(this));\r\n wrapper.addEventListener('contextmenu', this.wrapperRClick.bind(this));\r\n //\r\n document.body.appendChild(wrapper);\r\n const factory = this.factoryResolver.resolveComponentFactory(AXContextMenuComponent);\r\n const componentRef = this.viewContainerRef.createComponent(factory);\r\n this.contextMenu = componentRef.instance;\r\n wrapper.appendChild(componentRef.location.nativeElement);\r\n //\r\n this.clearComponentSubscriptions();\r\n this.createComponentSubscriptions();\r\n }\r\n\r\n wrapperClick(e: MouseEvent) {\r\n this.remove();\r\n }\r\n\r\n wrapperRClick(e: MouseEvent) {\r\n if (document.elementsFromPoint(e.clientX, e.clientY).includes(this.ref.nativeElement)) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n this.contextMenu.open(e.x, e.y, this.rtl);\r\n }\r\n else {\r\n e.preventDefault();\r\n this.remove();\r\n }\r\n }\r\n\r\n\r\n\r\n private clearComponentSubscriptions() {\r\n if (this.clickSubscribe) {\r\n this.clickSubscribe.unsubscribe();\r\n this.clickSubscribe = undefined;\r\n }\r\n if (this.closeSubscribe) {\r\n this.closeSubscribe.unsubscribe();\r\n this.closeSubscribe = undefined;\r\n }\r\n }\r\n\r\n private createComponentSubscriptions() {\r\n this.clickSubscribe = this.contextMenu.onItemClick.subscribe(c => {\r\n this.remove();\r\n this.onContextMenuItemClick.emit({\r\n component: this,\r\n dataItem: this.contextDataItem,\r\n htmlElement: this.ref.nativeElement,\r\n menuItem: c\r\n });\r\n });\r\n this.closeSubscribe = this.contextMenu.onClosed.subscribe(c => {\r\n this.clearComponentSubscriptions();\r\n });\r\n }\r\n\r\n private remove() {\r\n this.viewContainerRef.clear();\r\n this.clearComponentSubscriptions();\r\n document.querySelector('.ax-overlay-wrapper')?.remove();\r\n }\r\n\r\n private getMenuItems(): Promise<AXMenuItem[]> {\r\n return new Promise<AXMenuItem[]>((resolve, reject) => {\r\n if (typeof (this.contextMenuItems) === 'function') {\r\n const val = this.contextMenuItems(this.contextDataItem);\r\n if (val instanceof Promise) {\r\n val.then(_data => {\r\n resolve(_data);\r\n });\r\n } else {\r\n resolve(val);\r\n }\r\n } else if (Array.isArray(this.contextMenuItems)) {\r\n resolve(this.contextMenuItems);\r\n }\r\n else {\r\n resolve([]);\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.clearComponentSubscriptions();\r\n }\r\n}\r\n","import { NgModule, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXContextMenuComponent } from './context-menu.component';\r\nimport { AXContextMenuDirective } from './context-menu.directive';\r\n\r\n\r\n@NgModule({\r\n declarations: [AXContextMenuComponent, AXContextMenuDirective],\r\n imports: [CommonModule],\r\n exports: [AXContextMenuComponent, AXContextMenuDirective],\r\n providers: [],\r\n})\r\nexport class AXContextMenuModule {\r\n\r\n}","import { Input, ChangeDetectorRef, EventEmitter, Output, Directive } from '@angular/core';\r\n\r\nexport interface AXFilterColumn {\r\n field: string;\r\n caption: string;\r\n type?: 'text' | 'selection' | 'date' | 'number';\r\n options?: any;\r\n}\r\n\r\nexport interface AXFilterColumnGroup {\r\n caption?: string;\r\n columns: AXFilterColumn[];\r\n}\r\n\r\nexport interface AXFilterCondition {\r\n field: string;\r\n condition: string;\r\n dataType: 'string' | 'date' | 'datetime' | 'time' | 'number';\r\n value: any;\r\n}\r\n\r\nexport interface AXFilterPredefined {\r\n name: string;\r\n title: string;\r\n value: AXFilterCondition[];\r\n}\r\n\r\n@Directive()\r\nexport abstract class AXFilterColumnComponent {\r\n\r\n constructor(protected cdr: ChangeDetectorRef) {\r\n\r\n }\r\n operator: string = 'equal';\r\n value: any = null;\r\n @Input()\r\n field: string = null;\r\n\r\n @Output()\r\n valueChange: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n\r\n @Output()\r\n activeChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n private _active: boolean;\r\n @Input()\r\n public get active(): boolean {\r\n return this._active;\r\n }\r\n public set active(v: boolean) {\r\n this._active = v;\r\n this.activeChange.emit(v);\r\n }\r\n\r\n\r\n abstract get condition(): AXFilterCondition;\r\n\r\n clear() {\r\n this.active = false;\r\n this.value = null;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setFilter(value: any, operator: string) {\r\n this.active = true;\r\n this.operator = operator;\r\n this.value = value;\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n\r\n\r\n","import { Component, Input, ChangeDetectionStrategy, ChangeDetectorRef, ViewEncapsulation, EventEmitter } from '@angular/core';\r\nimport { Output } from '@angular/core';\r\nimport { AXSelectionList } from '@acorex/core';\r\nimport { AXBaseComponent, AXBaseSizableComponent, AXBaseValueComponent, AXElementSize } from '../base/element.class';\r\n\r\n@Component({\r\n selector: 'ax-selection-list',\r\n templateUrl: './selection-list.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXSelectionListComponent extends AXBaseComponent\r\n implements AXBaseSizableComponent {\r\n private _selectedItems: any[] = [];\r\n\r\n @Input()\r\n readonly: boolean;\r\n\r\n @Input()\r\n value: boolean;\r\n\r\n @Input()\r\n disabled: boolean;\r\n\r\n @Input()\r\n size: AXElementSize = 'md';\r\n\r\n @Input()\r\n direction: string = 'horizontal';\r\n\r\n @Input()\r\n items: Array<AXSelectionList> = [];\r\n\r\n @Input()\r\n mode: string = 'single';\r\n\r\n @Input()\r\n textField: string = 'text';\r\n\r\n @Input()\r\n valueField: string = 'value';\r\n\r\n @Output()\r\n selectedItemsChange: EventEmitter<any[]> = new EventEmitter<any[]>();\r\n\r\n @Input()\r\n public get selectedItems(): any[] {\r\n return this._selectedItems || [];\r\n }\r\n public set selectedItems(v: any[]) {\r\n this._selectedItems = v;\r\n this.selectedItemsChange.emit(this.selectedItems);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n @Output()\r\n selectedValuesChange: EventEmitter<any[]> = new EventEmitter<any[]>();\r\n\r\n @Input()\r\n public get selectedValues(): any[] {\r\n return this._selectedItems.map(c => c[this.valueField]) || [];\r\n }\r\n public set selectedValues(v: any[]) {\r\n const old = this.selectedValues;\r\n if (v == null) {\r\n v = [];\r\n }\r\n if (JSON.stringify(old) != JSON.stringify(v)) {\r\n this.selectedItems = this.items.filter(c => v.includes(c[this.valueField]));\r\n this.selectedValuesChange.emit(this.selectedValues);\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n constructor(private cdr: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n onCheckValueChange(value: any, checked: boolean) {\r\n if(!this.disabled){\r\n if (this.mode === 'single') {\r\n this.selectedValues = [value];\r\n } else {\r\n if (checked) {\r\n if (!this.selectedValues.includes(value)) {\r\n this.selectedValues = [...this.selectedValues, ...[value]];\r\n }\r\n } else {\r\n this.selectedValues = this.selectedValues.filter(c => c !== value);\r\n }\r\n }\r\n }\r\n \r\n }\r\n focus(): void {\r\n }\r\n\r\n onvalueChanged(e) {\r\n if(!this.disabled){\r\n this.selectedItemsChange.emit([e]);\r\n\r\n }\r\n }\r\n}\r\n","import { Component, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild, EventEmitter, Output } from '@angular/core';\r\nimport { AXFilterCondition, AXFilterColumnComponent } from '../filter.class';\r\nimport { AXDateTime } from '@acorex/core';\r\nimport { AXSelectionListComponent } from '../../selection-list/selection-list.component';\r\n\r\n@Component({\r\n selector: 'ax-filter-column-date',\r\n template: `\r\n <div class=\"ax-filter-section\">\r\n <ax-selection-list [items]=\"items\" mode=\"single\" direction=\"vertical\" (selectedItemsChange)=\"onSelectedChanged($event)\">\r\n </ax-selection-list>\r\n </div>\r\n <div class=\"ax-filter-section-value\" [hidden]=\"!showCustom\">\r\n <ax-date-picker label=\"From\" [(value)]=\"fromDate\" (onValueChanged)=\"dateChange($event)\"></ax-date-picker>\r\n <ax-date-picker label=\"To\" [(value)]=\"toDate\" (onValueChanged)=\"dateChange($event)\"></ax-date-picker>\r\n </div>\r\n <div class=\"ax-filter-section-value\" [hidden]=\"!showSpecific\">\r\n <ax-date-picker label=\"Date\" [(value)]=\"fromDate\" (onValueChanged)=\"dateChange($event)\"></ax-date-picker> \r\n </div>\r\n `,\r\n providers: [\r\n { provide: AXFilterColumnComponent, useExisting: AXFilterColumnDateComponent }\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXFilterColumnDateComponent extends AXFilterColumnComponent {\r\n @ViewChild(AXSelectionListComponent, { static: true }) selection: AXSelectionListComponent;\r\n\r\n items: any = [\r\n {\r\n text: 'Today',\r\n value: 'today'\r\n },\r\n {\r\n text: 'This Week',\r\n value: 'this-week'\r\n },\r\n {\r\n text: 'This Month',\r\n value: 'this-month'\r\n },\r\n {\r\n text: 'This Year',\r\n value: 'this-year'\r\n },\r\n {\r\n text: 'Specific',\r\n value: 'specific'\r\n },\r\n {\r\n text: 'Range',\r\n value: 'range'\r\n }\r\n ];\r\n\r\n fromDate: AXDateTime = new AXDateTime();\r\n toDate: AXDateTime = new AXDateTime();\r\n\r\n selectedItem: any = null;\r\n\r\n showCustom: boolean = false;\r\n showSpecific: boolean = false;\r\n\r\n constructor(protected cdr: ChangeDetectorRef) {\r\n super(cdr);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.selection.selectedItems = [this.items[0]];\r\n }\r\n dateChange(e) {\r\n this.valueChange.emit();\r\n }\r\n onSelectedChanged(items: any[]) {\r\n\r\n this.selectedItem = items[0];\r\n this.showCustom = this.selectedItem && this.selectedItem.value == 'range';\r\n this.showSpecific = this.selectedItem && this.selectedItem.value == 'specific';\r\n this.cdr.detectChanges();\r\n this.valueChange.emit();\r\n }\r\n\r\n get condition(): AXFilterCondition {\r\n let today = new AXDateTime();\r\n switch (this.selectedItem.value) {\r\n case 'today':\r\n this.fromDate = this.toDate = today;\r\n\r\n return {\r\n condition: 'equal',\r\n field: this.field,\r\n dataType: 'date',\r\n value: this.fromDate.toISOString()\r\n }\r\n case 'specific':\r\n return {\r\n condition: 'equal',\r\n field: this.field,\r\n dataType: 'date',\r\n value: this.fromDate.toISOString()\r\n }\r\n case 'this-week':\r\n this.toDate = today.endOf('week');\r\n this.fromDate = today.startOf('week');\r\n break;\r\n case 'this-month':\r\n this.toDate = today.endOf('month')\r\n this.fromDate = today.startOf('month');\r\n break;\r\n case 'this-year':\r\n this.toDate = today.endOf('year')\r\n this.fromDate = today.startOf('year');\r\n break;\r\n }\r\n\r\n return {\r\n condition: 'between',\r\n field: this.field,\r\n dataType: 'date',\r\n value: [this.fromDate.toISOString(), this.toDate.toISOString()]\r\n }\r\n }\r\n}\r\n","import { Component, ChangeDetectorRef } from '@angular/core';\r\nimport { AXFilterCondition, AXFilterColumnComponent } from '../filter.class';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\n\r\nimport { Observable } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'ax-filter-column-number',\r\n template: `\r\n <div class=\"ax-filter-section\">\r\n <div>\r\n <select (ngModelChange)=\"onOperatorChange($event)\" class=\"form-control form-control-sm\" [(ngModel)]=\"operator\">\r\n <option *ngFor=\"let o of operators\" value=\"{{o.value}}\">\r\n {{o.title}}\r\n </option>\r\n </select>\r\n </div>\r\n <div>\r\n <ax-text-box placeholder=\"Type here\" (textChange)=\"onTextChange($event)\" [(value)]=\"value\" *ngIf=\"operator!='is-not-empty' && operator!='is-empty'\">\r\n </ax-text-box>\r\n </div>\r\n</div>\r\n `,\r\n providers: [\r\n { provide: AXFilterColumnComponent, useExisting: AXFilterColumnNumberComponent }\r\n ]\r\n})\r\nexport class AXFilterColumnNumberComponent extends AXFilterColumnComponent {\r\n\r\n operator: string = 'equal';\r\n\r\n operators: any[] = [\r\n {\r\n title: 'is',\r\n value: 'equal'\r\n },\r\n {\r\n title: `isn't`,\r\n value: 'not-equal'\r\n },\r\n {\r\n title: 'less than',\r\n value: 'less-than'\r\n },\r\n {\r\n title: 'less than or equal',\r\n value: 'less-than-equal'\r\n },\r\n {\r\n title: 'greater than',\r\n value: 'greater-than'\r\n },\r\n {\r\n title: 'greater than or equal',\r\n value: 'greater-than-equal'\r\n },\r\n {\r\n title: 'is empty',\r\n value: 'is-empty'\r\n },\r\n {\r\n title: `isn't empty`,\r\n value: 'is-not-empty'\r\n }\r\n ];\r\n constructor(protected cdr: ChangeDetectorRef) {\r\n super(cdr);\r\n }\r\n private searchChangeObserver: any;\r\n onOperatorChange(e) {\r\n\r\n this.valueChange.emit();\r\n\r\n }\r\n onTextChange(e) {\r\n // TODO: Check this method work correctly\r\n if (!this.searchChangeObserver) {\r\n return new Observable(observer => {\r\n this.searchChangeObserver = observer;\r\n })\r\n .pipe(debounceTime(500))\r\n .pipe(distinctUntilChanged())\r\n .subscribe(c => {\r\n this.valueChange.emit();\r\n });\r\n }\r\n this.searchChangeObserver.next(e);\r\n }\r\n\r\n get condition(): AXFilterCondition {\r\n return {\r\n condition: this.operator,\r\n field: this.field,\r\n dataType: 'number',\r\n value: this.value\r\n };\r\n }\r\n\r\n}\r\n","import { Component, Input, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';\r\nimport { AXFilterCondition, AXFilterColumnComponent } from '../filter.class';\r\nimport { AXCheckItem } from '@acorex/core';\r\n\r\n@Component({\r\n selector: 'ax-filter-column-selection',\r\n template: `\r\n <div class=\"ax-filter-section\">\r\n <ax-selection-list [items]=\"items\" (selectedItemsChange)=\"onSelectChange($event)\" [mode]=\"mode\" direction=\"vertical\" [(selectedItems)]=\"selectedItems\">\r\n </ax-selection-list>\r\n </div>\r\n `,\r\n providers: [\r\n { provide: AXFilterColumnComponent, useExisting: AXFilterColumnSelectionComponent }\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXFilterColumnSelectionComponent extends AXFilterColumnComponent {\r\n\r\n\r\n selectedItems: any[] = [];\r\n\r\n @Input()\r\n items: AXCheckItem[] = [];\r\n\r\n @Input()\r\n mode = 'single';\r\n\r\n @Input()\r\n dataType: any = 'number';\r\n\r\n\r\n\r\n constructor(protected cdr: ChangeDetectorRef) {\r\n super(cdr);\r\n }\r\n\r\n get condition(): AXFilterCondition {\r\n const values = this.selectedItems.map(c => c.value);\r\n if (values.length === 0) {\r\n return null;\r\n\r\n }\r\n return {\r\n condition: this.mode === 'single' ? 'equal' : 'contains',\r\n field: this.field,\r\n dataType: this.dataType,\r\n value: this.mode === 'single' ? values[0] : values\r\n }\r\n }\r\n clear() {\r\n this.selectedItems = [];\r\n super.clear();\r\n }\r\n onSelectChange(e) {\r\n this.valueChange.emit();\r\n\r\n }\r\n\r\n setFilter(value: any, operator: string) {\r\n if (value instanceof Array) {\r\n this.selectedItems = this.items.filter(c => value.some(z => z === c.value));\r\n }\r\n else {\r\n this.selectedItems = [this.items.find(c => c.value === value)];\r\n }\r\n super.setFilter(value, operator);\r\n }\r\n}\r\n","import { Component,ChangeDetectorRef } from '@angular/core';\r\nimport { AXFilterCondition, AXFilterColumnComponent } from '../filter.class';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\nimport { Observable } from 'rxjs';\r\n@Component({\r\n selector: 'ax-filter-column-string',\r\n template: `\r\n <div class=\"ax-filter-section\">\r\n <div>\r\n <select (ngModelChange)=\"onOperatorChange($event)\" class=\"form-control form-control-sm\" [(ngModel)]=\"operator\">\r\n <option *ngFor=\"let o of operators\" value=\"{{o.value}}\">\r\n {{o.title}}\r\n </option>\r\n </select>\r\n </div>\r\n <div>\r\n <ax-text-box placeholder=\"Type here\" (textChange)=\"onTextChange($event)\" [(value)]=\"value\" *ngIf=\"operator!='is-not-empty' && operator!='is-empty'\">\r\n </ax-text-box>\r\n </div>\r\n</div>\r\n `,\r\n providers: [\r\n { provide: AXFilterColumnComponent, useExisting: AXFilterColumnStringComponent }\r\n ]\r\n})\r\nexport class AXFilterColumnStringComponent extends AXFilterColumnComponent {\r\n\r\n\r\n operator: string = 'contains';\r\n operators: any[] = [\r\n {\r\n title: 'is',\r\n value: 'equal'\r\n },\r\n {\r\n title: `isn't`,\r\n value: 'not-equal'\r\n },\r\n {\r\n title: 'contains',\r\n value: 'contains'\r\n },\r\n {\r\n title: 'not contains',\r\n value: 'not-contains'\r\n },\r\n {\r\n title: 'start with',\r\n value: 'start-with'\r\n },\r\n {\r\n title: 'end with',\r\n value: 'end-with'\r\n },\r\n {\r\n title: 'is empty',\r\n value: 'is-empty'\r\n },\r\n {\r\n title: `isn't empty`,\r\n value: 'is-not-empty'\r\n }\r\n ];\r\n\r\n constructor(protected cdr: ChangeDetectorRef) {\r\n super(cdr);\r\n }\r\n\r\n private searchChangeObserver: any;\r\n\r\n onOperatorChange(e) {\r\n\r\n this.valueChange.emit();\r\n\r\n }\r\n\r\n // TODO: Check this method work correctly\r\n onTextChange(e) {\r\n if (!this.searchChangeObserver) {\r\n return new Observable(observer => {\r\n this.searchChangeObserver = observer;\r\n })\r\n .pipe(debounceTime(500))\r\n .pipe(distinctUntilChanged())\r\n .subscribe(c => {\r\n this.valueChange.emit();\r\n });\r\n }\r\n this.searchChangeObserver.next(e);\r\n }\r\n\r\n get condition(): AXFilterCondition {\r\n return {\r\n condition: this.operator,\r\n field: this.field,\r\n dataType: 'string',\r\n value: this.value\r\n }\r\n }\r\n}\r\n","import { Component, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, ViewChild, ElementRef, Input } from '@angular/core';\r\nimport { AXBaseTextComponent, AXValidatableComponent } from '../base/element.class';\r\n\r\n@Component({\r\n selector: 'ax-text-box',\r\n templateUrl: './textbox.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { style: 'display: contents;' },\r\n providers: [{ provide: AXValidatableComponent, useExisting: AXTextBoxComponent }]\r\n})\r\nexport class AXTextBoxComponent extends AXBaseTextComponent {\r\n\r\n @Input()\r\n mask: any;\r\n\r\n @Input()\r\n type: 'text' | 'number' | 'tel' | 'url' | 'password' | 'search' = 'text';\r\n\r\n @Input()\r\n showMask: boolean = true;\r\n\r\n @Input()\r\n maxLength: number;\r\n\r\n @Input()\r\n maskGuid: boolean = false;\r\n\r\n @Input()\r\n maskPlaceholder: string = '_';\r\n\r\n @Input()\r\n maskKeepCharPositions: boolean = false;\r\n\r\n constructor(protected cdr: ChangeDetectorRef, ref: ElementRef) {\r\n super(cdr, ref);\r\n }\r\n}\r\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-toast-wrapper',\r\n template: '',\r\n styleUrls: ['./toast-wrapper.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXToastWrapperComponent implements OnInit {\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","import { Component, OnInit, Input, ElementRef, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n templateUrl: './toast-message.component.html',\r\n styleUrls: ['./toast-message.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXToastMessageComponent implements OnInit {\r\n constructor(private elRef: ElementRef) { }\r\n\r\n @Input() title: string = '';\r\n @Input() message: string;\r\n @Input() timeOut: number = 6000;\r\n @Input() closeable: boolean = false;\r\n\r\n @Input() type: 'info' | 'success' | 'warning' | 'error' = 'info';\r\n\r\n style: string = 'info';\r\n icon: string = '';\r\n toastWidth: number = 100;\r\n\r\n ngOnInit(): void {\r\n if (this.timeOut) {\r\n const interval = setInterval(() => {\r\n --this.toastWidth;\r\n if (this.toastWidth === 0) {\r\n clearInterval(interval);\r\n this.close();\r\n }\r\n }, this.timeOut / 100);\r\n }\r\n switch (this.type) {\r\n case 'success':\r\n this.style = 'success';\r\n break;\r\n case 'warning':\r\n this.style = 'warning';\r\n break;\r\n case 'error':\r\n this.style = 'error';\r\n break;\r\n default:\r\n this.style = 'info';\r\n break;\r\n }\r\n switch (this.type) {\r\n case 'success':\r\n this.icon = 'fas fa-check-circle';\r\n break;\r\n case 'warning':\r\n this.icon = 'fas fa-exclamation-triangle';\r\n break;\r\n case 'error':\r\n this.icon = 'fas fa-exclamation-circle';\r\n break;\r\n default:\r\n this.icon = 'fas fa-info-circle';\r\n break;\r\n }\r\n }\r\n close() {\r\n this.elRef.nativeElement.parentElement.removeChild(this.elRef.nativeElement);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AXRenderService } from '@acorex/core';\r\nimport { AXToastWrapperComponent } from './toast-wrapper/toast-wrapper.component';\r\nimport { AXToastMessageComponent } from './toast-message/toast-message.component';\r\n\r\nexport interface IToastOptions {\r\n timeOut?: number;\r\n title?: string;\r\n closeable?: boolean;\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXToastService {\r\n\r\n constructor(private injectionService: AXRenderService) { }\r\n\r\n info(message: string, options?: IToastOptions) {\r\n this.show(message, 'info', options);\r\n }\r\n\r\n success(message: string, options?: IToastOptions) {\r\n this.show(message, 'success', options);\r\n }\r\n\r\n warning(message: string, options?: IToastOptions) {\r\n this.show(message, 'warning', options);\r\n }\r\n\r\n error(message: string, options?: IToastOptions) {\r\n this.show(message, 'error', options);\r\n }\r\n\r\n private show(\r\n message: string,\r\n type: 'success' | 'info' | 'error' | 'warning',\r\n options?: IToastOptions\r\n ) {\r\n const opt = Object.assign(\r\n {\r\n message,\r\n type\r\n },\r\n options\r\n );\r\n\r\n const wrapper = document.querySelector('ax-toast-wrapper');\r\n if (!wrapper) {\r\n const toastWrapper = this.injectionService.appendComponent(\r\n AXToastWrapperComponent\r\n );\r\n this.injectionService.appendComponent(\r\n AXToastMessageComponent,\r\n opt,\r\n toastWrapper.location.nativeElement\r\n );\r\n } else {\r\n this.injectionService.appendComponent(\r\n AXToastMessageComponent,\r\n opt,\r\n wrapper\r\n );\r\n }\r\n }\r\n}\r\n","import { Component, Input, ViewChild, ViewChildren, QueryList, ViewEncapsulation, ChangeDetectionStrategy, Output, EventEmitter, ChangeDetectorRef, ElementRef, ViewContainerRef } from '@angular/core';\r\nimport { AXFilterColumnGroup, AXFilterColumnComponent, AXFilterCondition, AXFilterPredefined } from '../filter.class';\r\nimport { AXMenuItem, AXHtmlUtil, AXKeyboardEvent } from '@acorex/core';\r\nimport { AXMenuComponent } from '../../menu/menu.component';\r\nimport { AXTextBoxComponent } from '../../textbox/textbox.component';\r\nimport { AXToastService } from '../../toast/toast.service';\r\nimport { AXValueEvent } from '../../base/events.class';\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: 'ax-filter-panel',\r\n templateUrl: './filter-panel.component.html',\r\n styleUrls: ['./filter-panel.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXFilterPanelComponent {\r\n\r\n @ViewChild('panel', { static: true }) panel: ElementRef<HTMLDivElement>;\r\n @ViewChild('footer', { static: true }) footer: ElementRef<HTMLDivElement>;\r\n @ViewChild('savedList', { static: true }) savedList: ElementRef<HTMLDivElement>;\r\n @ViewChild('body', { static: true }) body: ElementRef<HTMLDivElement>;\r\n @ViewChild('menu', { static: false }) menu: AXMenuComponent;\r\n @ViewChild('tbxName', { static: true }) tbxName: AXTextBoxComponent;\r\n\r\n @ViewChildren(AXFilterColumnComponent) filters: QueryList<AXFilterColumnComponent>;\r\n\r\n @Input()\r\n groups: AXFilterColumnGroup[] = [];\r\n\r\n @Input()\r\n predefinedFilters: AXFilterPredefined[] = [];\r\n\r\n @Input()\r\n mode: 'click' | 'immediate' = 'click';\r\n\r\n saveItems: AXMenuItem[] = [\r\n {\r\n name: 'saveAs',\r\n text: 'Save',\r\n startIcon: 'fas fa-save',\r\n items: [\r\n {\r\n name: 'save',\r\n text: 'Save current'\r\n },\r\n {\r\n name: 'saveAs',\r\n text: 'Save as New'\r\n }\r\n ]\r\n },\r\n\r\n ];\r\n\r\n @Output()\r\n filterChange: EventEmitter<AXFilterCondition[]> = new EventEmitter<AXFilterCondition[]>();\r\n\r\n constructor(private cdr: ChangeDetectorRef, private toast: AXToastService) { }\r\n\r\n apply() {\r\n this.filterChange.emit(this.value);\r\n this.updateMenu();\r\n }\r\n\r\n public clear() {\r\n this.filters.forEach(e => {\r\n e.clear();\r\n });\r\n this.predefinedFilters.forEach(c => {\r\n (c as any).selected = false;\r\n });\r\n this.filterChange.emit(this.value);\r\n this.updateMenu();\r\n }\r\n\r\n onValueChange(e) {\r\n if (this.mode === 'immediate') {\r\n setTimeout(() => {\r\n this.filterChange.emit(this.value);\r\n this.updateMenu();\r\n }, 50);\r\n\r\n }\r\n }\r\n\r\n onCheckValueChange(v, e: AXValueEvent<boolean>) {\r\n\r\n\r\n if (!e.value && this.mode === 'immediate') {\r\n this.filters.forEach(c => {\r\n if (c.field === v.field) {\r\n c.clear();\r\n }\r\n })\r\n setTimeout(() => {\r\n this.filterChange.emit(this.value.filter(c => c.field !== v.field));\r\n this.updateMenu();\r\n }, 50);\r\n\r\n }\r\n }\r\n\r\n get value(): AXFilterCondition[] {\r\n const con: AXFilterCondition[] = [];\r\n if (this.filters) {\r\n this.filters.forEach(e => {\r\n\r\n if (e.active && e.condition && ((e.condition.value != null) || (e.condition.value == null && (e.condition.condition === 'is-empty' || e.condition.condition === 'is-not-empty')))) {\r\n con.push(e.condition);\r\n }\r\n });\r\n }\r\n return con;\r\n }\r\n\r\n\r\n\r\n public load(filters: AXFilterCondition[]): void {\r\n this.filters.forEach(e => {\r\n e.clear();\r\n });\r\n this.cancelSaveFilter();\r\n filters.forEach(f => {\r\n const col = this.filters.find(c => c.field === f.field);\r\n if (col) {\r\n col.setFilter(f.value, f.condition);\r\n }\r\n\r\n });\r\n this.filterChange.emit(this.value);\r\n this.updateMenu();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const footer = this.panel.nativeElement.querySelector('.footer');\r\n if (!footer) {\r\n this.body.nativeElement.style.height = 'calc(100% - 110px)';\r\n }\r\n setTimeout(() => {\r\n if (this.predefinedFilters) {\r\n this.setFilterByIndex(0);\r\n }\r\n else {\r\n this.clear();\r\n }\r\n }, 100);\r\n this.applySize();\r\n }\r\n\r\n setFilterByIndex(index: number) {\r\n const f = this.predefinedFilters[index];\r\n if (f) {\r\n this.setFilterByName(f.name);\r\n }\r\n }\r\n\r\n setFilterByName(name: string) {\r\n const f = this.predefinedFilters.find(c => c.name === name);\r\n if (f) {\r\n this.load(f.value);\r\n this.predefinedFilters.forEach(c => {\r\n (c as any).selected = false;\r\n });\r\n (f as any).selected = true;\r\n }\r\n }\r\n\r\n\r\n\r\n removeFilter(f: AXFilterPredefined) {\r\n this.predefinedFilters = this.predefinedFilters.filter(c => c.name != f.name);\r\n this.updateMenu();\r\n }\r\n\r\n private get\r\n currentFilter(): AXFilterPredefined {\r\n return this.predefinedFilters.find(c => (c as any).selected);\r\n }\r\n\r\n\r\n private applySize() {\r\n let h = 0;\r\n h += this.footer.nativeElement.getBoundingClientRect().height;\r\n h += this.savedList.nativeElement.getBoundingClientRect().height;\r\n h += 10;\r\n this.body.nativeElement.style.height = `calc(100% - ${h}px)`;\r\n }\r\n\r\n // SAVE FILTERS\r\n\r\n private updateMenu(): void {\r\n setTimeout(() => {\r\n this.saveItems[0].items[0].visible = this.currentFilter != null;\r\n this.saveItems[0].items[1].visible = this.currentFilter != null;\r\n // this.menu.update();\r\n }, 100);\r\n }\r\n\r\n applySaveFilter() {\r\n const f = this.currentFilter;\r\n if (f) {\r\n // TODO\r\n // this.tbxName.validate().then(c => {\r\n // if (c.result) {\r\n // f.value = this.value;\r\n // (f as any).isInEdit = false;\r\n // (f as any).isNew = false;\r\n // f.title = this.tbxName.value;\r\n // this.toast.success('Filter saved successfully.');\r\n // this.updateMenu();\r\n // }\r\n // });\r\n }\r\n }\r\n\r\n cancelSaveFilter() {\r\n const f = this.currentFilter;\r\n if (f) {\r\n if ((f as any).isNew) {\r\n this.removeFilter(f);\r\n }\r\n else {\r\n (f as any).isInEdit = false;\r\n }\r\n }\r\n this.updateMenu();\r\n }\r\n\r\n onMenuItemClick(e: AXMenuItem) {\r\n if (e.name === 'save') {\r\n this.applySaveFilter();\r\n }\r\n if (e.name === 'saveAs') {\r\n const f = {\r\n name: AXHtmlUtil.getUID(),\r\n title: '',\r\n value: this.value\r\n };\r\n this.predefinedFilters.push(f);\r\n (f as any).isNew = true;\r\n this.setFilterByName(f.name);\r\n this.handleRenameClick(f)\r\n }\r\n }\r\n\r\n tbxNameOnKey(e: AXKeyboardEvent) {\r\n if (e.type === 'keyup' && e.key === 'Enter') {\r\n this.applySaveFilter();\r\n }\r\n if (e.type === 'keyup' && e.key === 'Escape') {\r\n this.cancelSaveFilter();\r\n }\r\n }\r\n\r\n handleRenameClick(f: AXFilterPredefined) {\r\n (f as any).isInEdit = true;\r\n this.cdr.detectChanges();\r\n setTimeout(() => {\r\n this.tbxName.value = f.title;\r\n this.tbxName.focus();\r\n }, 50);\r\n }\r\n}\r\n","import { Component, Input, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { AXHtmlUtil, AXMenuItem } from '@acorex/core';\r\nimport { AXFilterPanelComponent } from '../filter-panel/filter-panel.component';\r\nimport { AXToolbarItem } from '../../toolbar/toolbar-item';\r\nimport { AXToolbarMenuComponent } from '../../toolbar/menu/toolbar-menu.component';\r\nimport { AXMenuComponent } from '../../menu/menu.component';\r\n\r\n\r\n@Component({\r\n selector: 'ax-toolbar-filter-view',\r\n templateUrl: './filter-toolbar.component.html',\r\n styleUrls: ['./filter-toolbar.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [{ provide: AXToolbarItem, useExisting: AXToolbarFilterViewComponent }]\r\n})\r\nexport class AXToolbarFilterViewComponent {\r\n constructor() { }\r\n _uid: string = AXHtmlUtil.getUID();\r\n\r\n @ViewChild('menu', { static: true }) menu: AXToolbarMenuComponent;\r\n @ViewChild('contextMenu', { static: true }) contextMenu: AXMenuComponent;\r\n\r\n @Input()\r\n filterPanel: AXFilterPanelComponent;\r\n\r\n contextMenuItems: AXMenuItem[] = [\r\n // {\r\n // name: 'addFolder',\r\n // startIcon: 'fas fa-folder',\r\n // text: 'New Folder',\r\n // },\r\n {\r\n name: 'remove',\r\n startIcon: 'fas fa-trash',\r\n text: 'Delete',\r\n },\r\n ];\r\n\r\n\r\n\r\n menuItems: AXMenuItem[] = [\r\n {\r\n name: 'root',\r\n startIcon: 'fas fa-filter',\r\n text: 'Select All',\r\n items: [\r\n {\r\n name: 'selectAll',\r\n style: 'f',\r\n text: 'Select All',\r\n },\r\n // {\r\n // split: true,\r\n // name: 'addFolder',\r\n // startIcon: 'fas fa-folder',\r\n // text: 'New Folder',\r\n // },\r\n {\r\n divider: true,\r\n name: 'save',\r\n startIcon: 'fas fa-save',\r\n text: 'Save'\r\n },\r\n {\r\n divider: true,\r\n name: 'saveAs',\r\n startIcon: 'fas fa-save',\r\n text: 'Save As...'\r\n }\r\n ]\r\n }\r\n\r\n ];\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this.selectAll();\r\n this.addPredefinedList();\r\n }, 100);\r\n }\r\n\r\n addPredefinedList() {\r\n this.filterPanel.predefinedFilters.forEach(c => {\r\n const item = {\r\n name: c.name,\r\n text: c.title,\r\n type: 'f',\r\n startIcon: 'fas',\r\n data: c.value,\r\n style: this._uid,\r\n uid: AXHtmlUtil.getUID()\r\n };\r\n this.root.items.splice(1, 0, item);\r\n });\r\n this.update();\r\n }\r\n\r\n public selectAll(): void {\r\n this.setCurrent(this.root.items[0]);\r\n this.filterPanel.clear();\r\n this.update();\r\n this.menu.close();\r\n // this.contextMenu.close();\r\n }\r\n\r\n itemClick(e: AXMenuItem) {\r\n\r\n if (e.style === 'f') {\r\n if (e.name === 'selectAll') {\r\n this.selectAll();\r\n }\r\n else {\r\n this.setCurrent(e);\r\n this.filterPanel.load(e.data);\r\n }\r\n }\r\n else {\r\n if (e.name === 'saveAs') {\r\n const name = prompt('Please enter the name;');\r\n if (name) {\r\n const item = {\r\n text: name,\r\n type: 'f',\r\n style: this._uid,\r\n startIcon: 'fas',\r\n data: this.filterPanel.value,\r\n uid: AXHtmlUtil.getUID()\r\n };\r\n this.root.items.splice(1, 0, item);\r\n this.setCurrent(item);\r\n }\r\n\r\n }\r\n if (e.name === 'save') {\r\n const selected = this.findSelected();\r\n if (selected) {\r\n selected.data = this.filterPanel.value;\r\n }\r\n }\r\n }\r\n this.update();\r\n }\r\n\r\n private findSelected(): AXMenuItem {\r\n return this.root.items.find(c => c.selected);\r\n }\r\n\r\n private get root(): AXMenuItem {\r\n return this.menuItems[0];\r\n }\r\n\r\n public update(): void {\r\n this.menu.update();\r\n setTimeout(() => {\r\n // this.contextMenu.update();\r\n }, 100);\r\n\r\n }\r\n\r\n private setCurrent(e: AXMenuItem) {\r\n this.root.text = e.text;\r\n this.root.items.filter(c => c.style === 'f').forEach(c => {\r\n c.selected = false;\r\n c.startIcon = 'fas';\r\n });\r\n e.selected = true;\r\n e.startIcon = 'fas fa-check';\r\n this.root.items.find(c => c.name === 'save').visible = e.name !== 'selectAll';\r\n }\r\n\r\n onCtxClick(e: AXMenuItem) {\r\n const target = this.contextMenu.currentTarget as HTMLElement;\r\n const menuId = target.getAttribute('data-uid');\r\n if (e.name === 'remove' && menuId) {\r\n this.root.items = this.root.items.filter(c => c.uid !== menuId);\r\n this.selectAll();\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ContentChild,\r\n TemplateRef,\r\n} from \"@angular/core\";\r\nimport {\r\n trigger,\r\n state,\r\n style,\r\n animate,\r\n transition,\r\n} from \"@angular/animations\";\r\nimport { AXBaseSizableComponent, AXElementSize } from \"../base/element.class\";\r\n\r\n@Component({\r\n selector: \"ax-panel-box\",\r\n templateUrl: \"./panel-box.component.html\",\r\n styleUrls: [\"./panel-box.component.scss\"],\r\n animations: [\r\n trigger(\"visibilityChanged\", [\r\n state(\r\n \"shown\",\r\n style({\r\n height: \"*\",\r\n opacity: 1,\r\n })\r\n ),\r\n state(\r\n \"hidden\",\r\n style({\r\n height: \"0px\",\r\n opacity: 0,\r\n padding: 0,\r\n })\r\n ),\r\n transition(\"Void => *\", animate(\"0ms\")),\r\n transition(\"shown => hidden\", animate(\"200ms\")),\r\n transition(\"hidden => shown\", animate(\"200ms\")),\r\n ]),\r\n ],\r\n})\r\nexport class AXPanelBoxComponent implements AXBaseSizableComponent {\r\n @ContentChild(\"header\", { static: true })\r\n headerTemplate: TemplateRef<any>;\r\n\r\n @Input() size: AXElementSize = \"md\";\r\n\r\n @Input() type: string = \"\";\r\n\r\n // @Input()\r\n // caption: string = 'Caption';\r\n\r\n private _caption: string = \"caption\";\r\n @Input()\r\n get caption(): string {\r\n return this._caption;\r\n }\r\n set caption(val: string) {\r\n this._caption = val === \"\" ? \"caption\" : val;\r\n }\r\n\r\n @Output()\r\n collapsedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n private _collapsed: boolean = false;\r\n\r\n @Input()\r\n get collapsed(): boolean {\r\n return this._collapsed;\r\n }\r\n set collapsed(val: boolean) {\r\n if (val !== this._collapsed) {\r\n this._collapsed = val;\r\n this.collapsedChange.emit(this._collapsed);\r\n }\r\n }\r\n\r\n @Input() allowCollapse: boolean = true;\r\n\r\n toggle() {\r\n if (this.allowCollapse) {\r\n this.collapsed = !this.collapsed;\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXPanelBoxComponent } from './panel-box.component';\r\n@NgModule({\r\n declarations: [AXPanelBoxComponent],\r\n imports: [CommonModule],\r\n exports: [AXPanelBoxComponent],\r\n providers: []\r\n})\r\nexport class AXPanelBoxModule {}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ViewChild,\r\n Input,\r\n ElementRef,\r\n AfterViewInit,\r\n HostListener,\r\n Output,\r\n EventEmitter,\r\n ChangeDetectorRef, ViewContainerRef, TemplateRef, OnDestroy, DebugElement\r\n} from '@angular/core';\r\nimport { AXBaseDropdownComponent } from '../base/element.class';\r\nimport { AXHtmlEvent } from '../base/events.class';\r\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\r\nimport { TemplatePortal } from '@angular/cdk/portal';\r\nimport { AXConfig } from '@acorex/core';\r\n\r\n@Component({\r\n selector: 'ax-drop-down',\r\n templateUrl: './dropdown.component.html',\r\n styleUrls: ['./dropdown.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { style: 'display:contents;' }\r\n})\r\nexport class AXDropdownComponent extends AXBaseDropdownComponent implements AfterViewInit, OnDestroy {\r\n @ViewChild('baseTemplate') baseTemplate: TemplateRef<any>;\r\n @ViewChild('content', { static: false }) content: ElementRef<HTMLDivElement>;\r\n @ViewChild('endButtons', { static: false }) endButtons: ElementRef<HTMLDivElement>;\r\n @ViewChild('el', { static: true }) dropdownEL: ElementRef<HTMLDivElement>;\r\n\r\n @Input()\r\n rtl: boolean = AXConfig.get('layout.rtl');\r\n\r\n @Input()\r\n readonly: boolean = false;\r\n\r\n @Input()\r\n loading: boolean = false;\r\n\r\n @Output()\r\n dropdownToggle: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onButtonClick: EventEmitter<AXHtmlEvent<MouseEvent>> = new EventEmitter<AXHtmlEvent<MouseEvent>>();\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeydownHandler(e: KeyboardEvent) {\r\n if (!this.disabled && e.key === 'Enter' && e.type === 'keydown') {\r\n if (!this.readonly) {\r\n this.toggle();\r\n // this.dropdownToggle.emit({ mode: 'enter' });\r\n }\r\n }\r\n if (e.key === 'Escape') {\r\n if (this.isOpen) {\r\n this.close();\r\n e.stopPropagation();\r\n }\r\n }\r\n }\r\n\r\n\r\n dropdownWidth: number;\r\n\r\n private overlayRef: OverlayRef;\r\n private templatePortal: TemplatePortal;\r\n\r\n constructor(private cdr: ChangeDetectorRef,\r\n private ref: ElementRef<HTMLDivElement>,\r\n private overlay: Overlay,\r\n private viewContainerRef: ViewContainerRef\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.rtl == null) {\r\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\r\n }\r\n setTimeout(() => {\r\n this.ref.nativeElement.classList.add(this.rtl ? 'rtl' : 'ltr');\r\n this.dropdownEL.nativeElement.classList.add(this.rtl ? 'rtl' : 'ltr')\r\n }, 5);\r\n\r\n\r\n }\r\n ngAfterViewInit(): void {\r\n\r\n if (this.fitParent === true) {\r\n this.dropdownWidth = this.dropdownEL.nativeElement.offsetWidth;\r\n } else {\r\n this.dropdownWidth = null;\r\n }\r\n\r\n setTimeout(() => {\r\n if (this.endButtons && this.endButtons.nativeElement.childNodes.length !== 0) {\r\n this.content.nativeElement.style.paddingInlineEnd = this.endButtons.nativeElement.clientWidth + 'px';\r\n }\r\n }, 5);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.overlayRef?.detach();\r\n this.overlayRef?.dispose();\r\n }\r\n\r\n handleArrowClick(e: AXHtmlEvent<MouseEvent>) {\r\n setTimeout(() => {\r\n this.toggle();\r\n }, 0);\r\n }\r\n\r\n toggle() {\r\n if (this.disabled !== true) {\r\n this.isOpen ? this.close() : this.open();\r\n }\r\n }\r\n\r\n close() {\r\n if (!this.isOpen) {\r\n return;\r\n }\r\n this.overlayRef?.detach();\r\n this.dropdownToggle.emit({ mode: 'close' });\r\n }\r\n\r\n open() {\r\n if (this.isOpen) {\r\n return;\r\n }\r\n this.ensureOverlayCreated();\r\n this.overlayRef.attach(this.templatePortal);\r\n this.dropdownToggle.emit({ mode: 'open' });\r\n }\r\n\r\n private ensureOverlayCreated() {\r\n if (!this.overlayRef) {\r\n const targetEl = document.querySelector<HTMLElement>('#' + this.uid);\r\n const positionStrategy = this.overlay.position()\r\n .flexibleConnectedTo(targetEl)\r\n .withPositions([\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top'\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'bottom'\r\n },\r\n {\r\n originX: 'end',\r\n originY: 'bottom',\r\n overlayX: 'end',\r\n overlayY: 'top'\r\n },\r\n {\r\n originX: 'end',\r\n originY: 'bottom',\r\n overlayX: 'end',\r\n overlayY: 'bottom'\r\n }\r\n ])\r\n .withPush(false);\r\n this.overlayRef = this.overlay.create({\r\n positionStrategy,\r\n //width: this.dropdownEL.nativeElement.clientWidth,\r\n scrollStrategy: this.overlay.scrollStrategies.reposition({\r\n autoClose: true\r\n }),\r\n hasBackdrop: true,\r\n backdropClass: 'cdk-overlay-transparent-backdrop'\r\n });\r\n this.overlayRef.setDirection(this.rtl ? 'rtl' : 'ltr');\r\n this.overlayRef.backdropClick().subscribe(() => this.close());\r\n }\r\n if (!this.templatePortal) {\r\n this.templatePortal = new TemplatePortal(this.baseTemplate, this.viewContainerRef);\r\n }\r\n }\r\n\r\n get isOpen(): boolean {\r\n return this.overlayRef ? this.overlayRef.hasAttached() : false;\r\n }\r\n\r\n\r\n focus() { }\r\n}\r\n","import { Input, ViewChild, Output, EventEmitter, ViewEncapsulation, Component, ElementRef, ContentChild, AfterViewInit, ChangeDetectorRef } from '@angular/core';\r\nimport { AXDropdownComponent } from '../dropdown/dropdown.component';\r\nimport { AXTextBoxComponent } from '../textbox/textbox.component';\r\nimport { AXValidatableComponent, AXBaseSizableComponent, AXElementSize, AXBaseValueComponent } from '../base/element.class';\r\nimport { AXCalendarType, AXDateTime, AXConfig } from '@acorex/core';\r\nimport { AXValueEvent } from '../base/events.class';\r\nimport { AXValidation } from '../validation/validation.component';\r\n\r\n\r\n\r\nexport class AXDataPickerChangeEvent extends AXValueEvent<Date> {\r\n isUserChange: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'ax-date-picker',\r\n templateUrl: './date-picker.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n styleUrls: ['./date-picker.component.scss'],\r\n providers: [{ provide: AXValidatableComponent, useExisting: AXDatePickerComponent }],\r\n host: { style: 'display: contents;' }\r\n})\r\nexport class AXDatePickerComponent extends AXValidatableComponent implements AXBaseSizableComponent {\r\n @ViewChild('dropdown', { static: true })\r\n dropdown: AXDropdownComponent;\r\n\r\n @ViewChild('input', { static: true })\r\n input: AXTextBoxComponent;\r\n\r\n @Input()\r\n dayStyle = []\r\n\r\n // mmddyyyy: any = [/[0-1]/, /[0-9]/, '-', /[0-1]/, /[0-9]/, '-', /[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/];\r\n yyyyMMdd: any = [/[1-2]/, /[0-9]/, /[0-9]/, /[0-9]/, '-', /[0-1]/, /[0-9]/, '-', /[0-3]/, /[0-9]/];\r\n ddMMyyyy: any = [/[0-3]/, /[0-9]/, '-', /[0-1]/, /[0-9]/, '-', /[1-9]/, /[0-9]/, /[0-9]/, /[0-9]/];\r\n yyyyddMM: any = [/[1-9]/, /[0-9]/, /[0-9]/, /[0-9]/, '-', /[0-3]/, /[0-9]/, '-', /[0-1]/, /[0-9]/];\r\n // yyyyMMdd1: any = [/[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/, '/', /[0-1]/, /[0-9]/, '/', /[0-3]/, /[0-9]/];\r\n // ddMMyyyy2: any = [/[0-3]/, /[0-9]/, '/', /[0-1]/, /[0-9]/, '/', /[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/];\r\n // yyyyddMM3: any = [/[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/, '/', /[0-3]/, /[0-9]/, '/', /[0-1]/, /[0-9]/];\r\n\r\n @ContentChild(AXValidation, { static: true })\r\n private _contentValidation: AXValidation;\r\n private _validation: AXValidation;\r\n\r\n @Input()\r\n public get validation(): AXValidation {\r\n return this._validation ? this._validation : this._contentValidation;\r\n }\r\n\r\n public set validation(v: AXValidation) {\r\n this._validation = v;\r\n }\r\n\r\n @Input() placeholder: string = '';\r\n\r\n @Input()\r\n min: Date;\r\n\r\n @Input()\r\n max: Date;\r\n\r\n @Input()\r\n readonly: boolean;\r\n\r\n @Input()\r\n disabled: boolean;\r\n\r\n @Input()\r\n allowClear: boolean = false;\r\n\r\n @Input()\r\n textAlign: 'right' | 'left' | null = null;\r\n\r\n @Input()\r\n showToday: boolean = false;\r\n\r\n @Input()\r\n selectableHoliday: boolean = true;\r\n\r\n @Input()\r\n dateType: any;\r\n\r\n @Input()\r\n showTodayButton: boolean = true;\r\n\r\n @Input()\r\n openByClick:boolean=false;\r\n\r\n cursorPosition: number = 0;\r\n\r\n model: any = null;\r\n text: string;\r\n\r\n _renderPicker: boolean = false;\r\n\r\n constructor(private ref: ElementRef, private cdr: ChangeDetectorRef) {\r\n super();\r\n // set defaults\r\n if (AXConfig.get('dateTime.type')) {\r\n this.type = AXConfig.get('dateTime.type');\r\n }\r\n }\r\n\r\n @Input()\r\n size: AXElementSize = 'md';\r\n\r\n\r\n\r\n\r\n @Output()\r\n typeChange: EventEmitter<AXCalendarType> = new EventEmitter<AXCalendarType>();\r\n\r\n private _type: AXCalendarType = 'gregorian';\r\n\r\n @Input()\r\n public get type(): AXCalendarType {\r\n return this._type;\r\n }\r\n\r\n public set type(v: AXCalendarType) {\r\n if (v != this._type) {\r\n this._type = v;\r\n if (this._value) {\r\n this.value = this._value.date;\r\n }\r\n this._setDateType();\r\n this.typeChange.emit(v);\r\n }\r\n }\r\n\r\n\r\n selectToday() {\r\n this.value = new Date();\r\n }\r\n\r\n focus(): void {\r\n this.dropdown.focus();\r\n }\r\n\r\n convertMaskToDate(text: string) {\r\n\r\n if (this.type == 'jalali') {\r\n var d = new AXDateTime().convertStringToGregorian(text, 'YYYY/M/D');\r\n } else {\r\n }\r\n\r\n return d;\r\n }\r\n\r\n convertMask(date: string) {\r\n let y;\r\n let m;\r\n let d;\r\n switch (this.dateType.mask) {\r\n case this.yyyyMMdd:\r\n y = date.slice(0, 4);\r\n m = date.slice(5, 7);\r\n d = date.slice(8, 10);\r\n break;\r\n case this.ddMMyyyy:\r\n y = date.slice(6, 10);\r\n m = date.slice(3, 5);\r\n d = date.slice(0, 2);\r\n break;\r\n case this.yyyyddMM:\r\n y = date.slice(0, 4);\r\n m = date.slice(8, 10);\r\n d = date.slice(5, 7);\r\n break;\r\n }\r\n\r\n return { year: y, monnth: m, day: d };\r\n }\r\n\r\n textChange(e) {\r\n this.text = e.value;\r\n if (this.text && this.text.indexOf('_') === -1 && this.text.length == 10) {\r\n this.userChange =e.isUserChange;\r\n const date = this.convertMask(this.text);\r\n this.value = this.convertMaskToDate(date.year + '-' + date.monnth + '-' + date.day);\r\n\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this._setDateType();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this.text = this._value?.toString();\r\n if (this.showToday && !this.value) {\r\n this.selectToday();\r\n }\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.initValidation(this.ref, 'value', this.validation);\r\n }\r\n\r\n clear() {\r\n this.userChange =true;\r\n this.value = null;\r\n }\r\n\r\n userChange:boolean = false;\r\n\r\n @Output()\r\n onValueChanged: EventEmitter<AXDataPickerChangeEvent> = new EventEmitter<AXDataPickerChangeEvent>();\r\n\r\n @Output()\r\n valueChange: EventEmitter<Date> = new EventEmitter<Date>();\r\n\r\n private _value: AXDateTime;\r\n @Input()\r\n public get value(): Date {\r\n return this._value?.date;\r\n }\r\n public set value(v: Date) {\r\n\r\nconst oldValue = this._value;\r\n const old = this.value;\r\n\r\n\r\n if (v) {\r\n this._value = new AXDateTime(v, this.type);\r\n } else {\r\n this._value = null;\r\n }\r\n let unValidDate = false;\r\n if (this.max || this.min) {\r\n unValidDate = this.isInMInMaxRange(AXDateTime.convert(v));\r\n }\r\n\r\n if (!unValidDate) {\r\n\r\n if ((!v && oldValue ) || (this._value && !this._value.equal(oldValue,'day')) ){\r\n this.text = this._value?.toString();\r\nsetTimeout(() => {\r\n this.valueChange.emit(v);\r\n this.onValueChanged.emit({\r\n component: this,\r\n oldValue: old,\r\n value: v,\r\n isUserChange: this.userChange\r\n });\r\n\r\n}, 100);\r\n\r\n\r\n }\r\n }\r\n this.userChange =false;\r\n }\r\n\r\n private _setDateType() {\r\n switch (this.dateType) {\r\n case 'yyyyMMdd':\r\n this.dateType = {\r\n guide: true,\r\n showMask: true,\r\n mask: this.yyyyMMdd,\r\n keepCharPositions: true\r\n };\r\n break;\r\n case 'ddMMyyyy':\r\n this.dateType = {\r\n guide: true,\r\n showMask: true,\r\n mask: this.ddMMyyyy,\r\n keepCharPositions: true\r\n };\r\n break;\r\n case 'yyyyddMM':\r\n this.dateType = {\r\n guide: true,\r\n showMask: true,\r\n mask: this.yyyyddMM,\r\n keepCharPositions: true\r\n };\r\n break;\r\n\r\n default:\r\n if (this.type == 'gregorian') {\r\n this.dateType = {\r\n guide: true,\r\n showMask: true,\r\n mask: this.ddMMyyyy,\r\n keepCharPositions: true\r\n };\r\n } else if (this.type == 'jalali') {\r\n this.dateType = {\r\n guide: true,\r\n showMask: true,\r\n mask: this.yyyyMMdd,\r\n keepCharPositions: true\r\n };\r\n }\r\n break;\r\n }\r\n }\r\n\r\n isInMInMaxRange(d) {\r\n let r = false;\r\n if (d !== undefined) {\r\n if (this.min && !this.max) {\r\n r = d.compaireNew(new AXDateTime(this.min, this.type), 'YMD', this.type) === -1;\r\n }\r\n if (this.max && !this.min) {\r\n r = d.compaireNew(new AXDateTime(this.max, this.type), 'YMD', this.type) === 1;\r\n }\r\n if (this.min && this.max) {\r\n r =\r\n d.compaireNew(new AXDateTime(this.min, this.type), 'YMD', this.type) === -1 ||\r\n d.compaireNew(new AXDateTime(this.max, this.type), 'YMD', this.type) === 1;\r\n }\r\n }\r\n return r;\r\n }\r\n\r\n onDateChange(e) {\r\n this.userChange =true;\r\n this.dropdown.close();\r\n }\r\n\r\n onClick(e) {\r\n this.userChange =true;\r\n this.dropdown.close();\r\n }\r\n\r\n onStartfocus() {\r\n if (this.text == undefined || this.text == null || this.text == '') {\r\n this.input.input.nativeElement.style.caretColor = 'transparent';\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.input.nativeElement, 0);\r\n this.cursorPosition = 0;\r\n this.input.input.nativeElement.style.caretColor = 'auto';\r\n }, 0);\r\n }\r\n }\r\n\r\n handleInputFocus() {\r\n if(this.openByClick){\r\n this._renderPicker = true;\r\nthis.dropdown.open();\r\n }else{\r\n this.onStartfocus();\r\n }\r\n\r\n // this.input.input.nativeElement.focus();\r\n }\r\n handleInputBlur() {\r\n if (this.text && this.text.indexOf('_') != -1) {\r\n this.text = '';\r\n this.value = null;\r\n }\r\n }\r\n\r\n handleButtonClick() {\r\n this._renderPicker = true;\r\n setTimeout(() => {\r\n this.dropdown.toggle();\r\n });\r\n }\r\n\r\n handleKeyPress(e: KeyboardEvent) {\r\n if (e.type == 'keydown' || e.type == 'keypress' || e.type == 'keyup') {\r\n if (e.key === 'Delete') {\r\n e.preventDefault();\r\n }\r\n if (e.key === 'Backspace') {\r\n }\r\n if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\r\n if (this.input.input.nativeElement.selectionStart || this.input.input.nativeElement.selectionStart === 0) {\r\n this.cursorPosition = this.input.input.nativeElement.selectionStart;\r\n }\r\n }\r\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n }\r\n\r\n const inputChar = String.fromCharCode(e.charCode);\r\n if (this.text != undefined) {\r\n const ind1 = this.text.charAt(0);\r\n const ind2 = this.text.charAt(1);\r\n const ind3 = this.text.charAt(2);\r\n const ind4 = this.text.charAt(3);\r\n const ind5 = this.text.charAt(4);\r\n const ind6 = this.text.charAt(5);\r\n const ind7 = this.text.charAt(6);\r\n const ind8 = this.text.charAt(7);\r\n const ind9 = this.text.charAt(8);\r\n const ind10 = this.text.charAt(9);\r\n switch (this.dateType.mask) {\r\n case this.yyyyMMdd:\r\n if (e.type == 'keypress') {\r\n this.handleClick();\r\n if (\r\n (ind6 == '1' && ind7 == '_' && inputChar >= '3') ||\r\n (((ind6 == '0' && ind7 == '_') || (ind9 == '0' && ind10 == '_')) && inputChar == '0')\r\n ) {\r\n e.preventDefault();\r\n } else if (ind9 == '3' && ind10 == '_') {\r\n if (ind6 + ind7 <= '06' && inputChar >= '2') {\r\n e.preventDefault();\r\n } else if (ind6 + ind7 > '06' && inputChar >= '1') {\r\n e.preventDefault();\r\n }\r\n }\r\n }\r\n if (this.text.indexOf('_') === -1 && this.text !== '') {\r\n if (e.type === 'keydown') {\r\n if (e.key === 'ArrowUp') {\r\n if (this.cursorPosition <= 4) {\r\n this.text = String(Number(ind1 + ind2 + ind3 + ind4) + 1) + ind5 + ind6 + ind7 + ind8 + ind9 + ind10;\r\n }\r\n if (this.cursorPosition >= 5 && this.cursorPosition <= 7) {\r\n if (Number(ind6 + ind7) < 12) {\r\n if (Number(ind6 + ind7) < 9) {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + '0' + String(Number(ind6 + ind7) + 1) + ind8 + ind9 + ind10;\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + String(Number(ind6 + ind7) + 1) + ind8 + ind9 + ind10;\r\n }\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + '01' + ind8 + ind9 + ind10;\r\n }\r\n }\r\n if (this.cursorPosition >= 8) {\r\n if (Number(ind9 + ind10) < 31) {\r\n if (Number(ind9 + ind10) < 9) {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + '0' + String(Number(ind9 + ind10) + 1);\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + String(Number(ind9 + ind10) + 1);\r\n }\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + '01';\r\n }\r\n }\r\n // this.input.input.nativeElement.style.caretColor = 'transparent';\r\n // setTimeout(() => {\r\n // this.setCaret();\r\n // e.preventDefault();\r\n // this.input.input.nativeElement.style.caretColor = 'auto';\r\n // }, 0);\r\n // e.preventDefault();\r\n } else if (e.key === 'ArrowDown') {\r\n if (this.cursorPosition <= 4) {\r\n this.text = String(Number(ind1 + ind2 + ind3 + ind4) - 1) + ind5 + ind6 + ind7 + ind8 + ind9 + ind10;\r\n } else if (this.cursorPosition > 4 && this.cursorPosition <= 7) {\r\n if (Number(ind6 + ind7) > 1) {\r\n if (Number(ind6 + ind7) < 11) {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + '0' + String(Number(ind6 + ind7) - 1) + ind8 + ind9 + ind10;\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + String(Number(ind6 + ind7) - 1) + ind8 + ind9 + ind10;\r\n }\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + '12' + ind8 + ind9 + ind10;\r\n }\r\n } else if (this.cursorPosition >= 8) {\r\n if (Number(ind9 + ind10) > 1) {\r\n if (Number(ind9 + ind10) < 11) {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + '0' + String(Number(ind9 + ind10) - 1);\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + String(Number(ind9 + ind10) - 1);\r\n }\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + '31';\r\n }\r\n }\r\n // this.input.input.nativeElement.style.caretColor = 'transparent';\r\n\r\n // setTimeout(() => {\r\n // this.setCaret();\r\n // this.input.input.nativeElement.style.caretColor = 'auto';\r\n // }, 0);\r\n }\r\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\r\n this.input.input.nativeElement.style.caretColor = 'transparent';\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return false;\r\n }\r\n }\r\n }\r\n if (e.type === 'keyup') {\r\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\r\n this.setCaret();\r\n this.input.input.nativeElement.style.caretColor = 'auto';\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n }\r\n break;\r\n case this.ddMMyyyy:\r\n if (e.type === 'keypress') {\r\n this.handleClick();\r\n if (\r\n (ind4 == '1' && ind5 == '_' && inputChar >= '3') ||\r\n (((ind1 == '0' && ind2 == '_') || (ind4 == '0' && ind5 == '_')) && inputChar == '0')\r\n ) {\r\n e.preventDefault();\r\n } else {\r\n if (ind1 == '3' && ind2 == '_' && inputChar >= '2') {\r\n e.preventDefault();\r\n }\r\n }\r\n }\r\n if (this.text.indexOf('_') === -1 && this.text !== '') {\r\n if (e.type === 'keydown') {\r\n if (e.key === 'ArrowUp') {\r\n if (this.cursorPosition >= 6) {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + String(Number(ind7 + ind8 + ind9 + ind10) + 1);\r\n }\r\n if (this.cursorPosition > 2 && this.cursorPosition <= 5) {\r\n if (Number(ind4 + ind5) < 12) {\r\n if (Number(ind4 + ind5) < 9) {\r\n this.text = ind1 + ind2 + ind3 + '0' + String(Number(ind4 + ind5) + 1) + ind6 + ind7 + ind8 + ind9 + ind10;\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + String(Number(ind4 + ind5) + 1) + ind6 + ind7 + ind8 + ind9 + ind10;\r\n }\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + '01' + ind6 + ind7 + ind8 + ind9 + ind10;\r\n }\r\n }\r\n if (this.cursorPosition <= 2) {\r\n if (Number(ind1 + ind2) < 31) {\r\n if (Number(ind1 + ind2) < 9) {\r\n this.text = '0' + String(Number(ind1 + ind2) + 1) + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + ind10;\r\n } else {\r\n this.text = String(Number(ind1 + ind2) + 1) + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + ind10;\r\n }\r\n } else {\r\n this.text = '01' + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + ind10;\r\n }\r\n }\r\n // this.input.input.nativeElement.style.caretColor = 'transparent';\r\n // setTimeout(() => {\r\n // this.setCaret();\r\n // this.input.input.nativeElement.style.caretColor = 'auto';\r\n // }, 0);\r\n } else if (e.key === 'ArrowDown') {\r\n if (this.cursorPosition >= 6) {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + String(Number(ind7 + ind8 + ind9 + ind10) - 1);\r\n } else if (this.cursorPosition > 2 && this.cursorPosition <= 5) {\r\n if (Number(ind4 + ind5) > 1) {\r\n if (Number(ind4 + ind5) < 11) {\r\n this.text = ind1 + ind2 + ind3 + '0' + String(Number(ind4 + ind5) - 1) + ind6 + ind7 + ind8 + ind9 + ind10;\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + String(Number(ind4 + ind5) - 1) + ind6 + ind7 + ind8 + ind9 + ind10;\r\n }\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + '12' + ind6 + ind7 + ind8 + ind9 + ind10;\r\n }\r\n } else if (this.cursorPosition <= 2) {\r\n if (Number(ind1 + ind2) > 1) {\r\n if (Number(ind1 + ind2) < 11) {\r\n this.text = '0' + String(Number(ind1 + ind2) - 1) + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + ind10;\r\n } else {\r\n this.text = String(Number(ind1 + ind2) - 1) + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + ind10;\r\n }\r\n } else {\r\n this.text = '31' + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + ind10;\r\n }\r\n }\r\n // this.input.input.nativeElement.style.caretColor = 'transparent';\r\n // setTimeout(() => {\r\n // this.setCaret();\r\n // this.input.input.nativeElement.style.caretColor = 'auto';\r\n // }, 0);\r\n }\r\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\r\n this.input.input.nativeElement.style.caretColor = 'transparent';\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return false;\r\n }\r\n }\r\n }\r\n if (e.type === 'keyup') {\r\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\r\n this.setCaret();\r\n this.input.input.nativeElement.style.caretColor = 'auto';\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n }\r\n break;\r\n\r\n case this.yyyyddMM:\r\n if (e.type === 'keypress') {\r\n if (\r\n (ind9 === '1' && ind10 == '_' && inputChar >= '3') ||\r\n (((ind6 == '0' && ind7 == '_') || (ind9 == '0' && ind10)) && inputChar == '0')\r\n ) {\r\n e.preventDefault();\r\n } else if (ind6 == '3' && ind7 == '_' && inputChar >= '2') {\r\n e.preventDefault();\r\n }\r\n setTimeout(() => {\r\n this.handleClick();\r\n }, 0);\r\n }\r\n if (this.text.indexOf('_') === -1 && this.text !== '') {\r\n if (e.type === 'keydown') {\r\n if (e.key === 'ArrowUp') {\r\n if (this.cursorPosition <= 4) {\r\n this.text = String(Number(ind1 + ind2 + ind3 + ind4) + 1) + ind5 + ind6 + ind7 + ind8 + ind9 + ind10;\r\n }\r\n if (this.cursorPosition > 4 && this.cursorPosition <= 7) {\r\n if (Number(ind6 + ind7) < 31) {\r\n if (Number(ind6 + ind7) < 9) {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + '0' + String(Number(ind6 + ind7) + 1) + ind8 + ind9 + ind10;\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + String(Number(ind6 + ind7) + 1) + ind8 + ind9 + ind10;\r\n }\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + '01' + ind8 + ind9 + ind10;\r\n }\r\n }\r\n if (this.cursorPosition >= 8) {\r\n if (Number(ind9 + ind10) < 12) {\r\n if (Number(ind9 + ind10) < 9) {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + '0' + String(Number(ind9 + ind10) + 1);\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + String(Number(ind9 + ind10) + 1);\r\n }\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + '01';\r\n }\r\n }\r\n // this.input.input.nativeElement.style.caretColor = 'transparent';\r\n // setTimeout(() => {\r\n // this.setCaret();\r\n // this.input.input.nativeElement.style.caretColor = 'auto';\r\n // }, 0);\r\n } else if (e.key === 'ArrowDown') {\r\n if (this.cursorPosition <= 4) {\r\n this.text = String(Number(ind1 + ind2 + ind3 + ind4) - 1) + ind5 + ind6 + ind7 + ind8 + ind9 + ind10;\r\n } else if (this.cursorPosition > 4 && this.cursorPosition <= 7) {\r\n if (Number(ind6 + ind7) > 1) {\r\n if (Number(ind6 + ind7) < 11) {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + '0' + String(Number(ind6 + ind7) - 1) + ind8 + ind9 + ind10;\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + String(Number(ind6 + ind7) - 1) + ind8 + ind9 + ind10;\r\n }\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + '31' + ind8 + ind9 + ind10;\r\n }\r\n } else if (this.cursorPosition >= 8) {\r\n if (Number(ind9 + ind10) > 1) {\r\n if (Number(ind9 + ind10) < 11) {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + '0' + String(Number(ind9 + ind10) - 1);\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + String(Number(ind9 + ind10) - 1);\r\n }\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + '12';\r\n }\r\n }\r\n // this.input.input.nativeElement.style.caretColor = 'transparent';\r\n // setTimeout(() => {\r\n // this.setCaret();\r\n // this.input.input.nativeElement.style.caretColor = 'auto';\r\n // }, 0);\r\n }\r\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\r\n this.input.input.nativeElement.style.caretColor = 'transparent';\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return false;\r\n }\r\n }\r\n }\r\n if (e.type === 'keyup') {\r\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\r\n this.setCaret();\r\n this.input.input.nativeElement.style.caretColor = 'auto';\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n handleClick() {\r\n if (this.input.input.nativeElement.selectionStart || this.input.input.nativeElement.selectionStart === 0) {\r\n this.cursorPosition = this.input.input.nativeElement.selectionStart;\r\n }\r\n }\r\n\r\n setCaretPosition(ctrl, pos) {\r\n if (ctrl.setSelectionRange) {\r\n ctrl.focus();\r\n ctrl.setSelectionRange(pos, pos);\r\n }\r\n }\r\n\r\n setCaret() {\r\n this.setCaretPosition(this.input.input.nativeElement, this.cursorPosition);\r\n }\r\n}\r\n","import {\r\n Component, Input, ChangeDetectorRef, ChangeDetectionStrategy,\r\n ViewEncapsulation, ContentChild, ViewChild, ElementRef\r\n} from '@angular/core';\r\nimport { AXBaseComponent, AXBaseSizableComponent, AXElementSize, AXValidatableComponent } from '../base/element.class';\r\n\r\n@Component({\r\n selector: 'ax-form-group',\r\n templateUrl: './form-group.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { style: 'display: contents;' }\r\n})\r\nexport class AXFormGroupComponent extends AXBaseComponent implements AXBaseSizableComponent {\r\n @Input()\r\n size: AXElementSize = 'md';\r\n\r\n @ViewChild('div')\r\n div: ElementRef\r\n\r\n @ContentChild(AXValidatableComponent)\r\n private component: AXValidatableComponent;\r\n\r\n required: boolean = false;\r\n\r\n constructor(private cdr: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n this.required = this.component?.validation?.rules?.some(c => c.type === 'required');\r\n if (this.required) {\r\n this.div.nativeElement.classList.add('required')\r\n\r\n }\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXFormGroupComponent } from './form-group.component';\r\n\r\nconst COMPONENT = [AXFormGroupComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXFormGroupModule { }","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXTextBoxComponent } from './textbox.component';\r\nimport { AXButtonModule } from '../button/button.module';\r\nimport { TextMaskModule } from 'angular2-text-mask';\r\nimport { FormsModule } from '@angular/forms';\r\nconst COMPONENT = [AXTextBoxComponent];\r\nconst MODULES = [CommonModule, AXButtonModule, TextMaskModule, FormsModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: []\r\n})\r\nexport class AXTextBoxModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXDropdownComponent } from './dropdown.component';\r\nimport { AXFormGroupModule } from '../form-group/form-group.module';\r\nimport { AXTextBoxModule } from '../textbox/textbox.module';\r\nimport { AXButtonModule } from '../button/button.module';\r\nimport { AXPopoverModule } from '../popover/popover.module';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\n\r\nconst COMPONENT = [AXDropdownComponent];\r\nconst MODULES = [CommonModule, AXFormGroupModule, AXTextBoxModule, AXButtonModule, AXPopoverModule, OverlayModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXDropdownModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXDatePickerComponent } from './date-picker.component';\r\nimport { AXDropdownModule } from '../dropdown/dropdown.module';\r\nimport { AXCalendarBoxModule } from '../calendar/calendar-box/calendar-box.module';\r\nimport { AXTextBoxModule } from '../textbox/textbox.module';\r\nimport { AXButtonModule } from '../button/button.module';\r\nimport { TextMaskModule } from 'angular2-text-mask';\r\n\r\n@NgModule({\r\n declarations: [AXDatePickerComponent],\r\n imports: [CommonModule, FormsModule, AXDropdownModule, AXCalendarBoxModule, AXButtonModule, AXTextBoxModule, TextMaskModule, FormsModule],\r\n exports: [AXDatePickerComponent],\r\n providers: []\r\n})\r\nexport class AXDatePickerModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXToastService } from './toast.service';\r\nimport { AXToastWrapperComponent } from './toast-wrapper/toast-wrapper.component';\r\nimport { AXToastMessageComponent } from './toast-message/toast-message.component';\r\n@NgModule({\r\n declarations: [AXToastWrapperComponent, AXToastMessageComponent],\r\n imports: [CommonModule],\r\n exports: [AXToastWrapperComponent],\r\n entryComponents: [AXToastWrapperComponent, AXToastMessageComponent],\r\n providers: [AXToastService]\r\n})\r\nexport class AXToastModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXSelectionListComponent } from './selection-list.component';\r\nimport { AXCheckBoxModule } from '../checkbox/checkbox.module';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n declarations: [AXSelectionListComponent],\r\n imports: [CommonModule, FormsModule, AXCheckBoxModule],\r\n exports: [AXSelectionListComponent],\r\n providers: []\r\n})\r\nexport class AXSelectionListModule { }\r\n","import {\r\n Component,\r\n OnInit,\r\n QueryList,\r\n ContentChildren,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ElementRef,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { AXValidationResult } from './validation.class';\r\nimport { AXValidatableComponent } from '../base/element.class';\r\nimport { AXBaseEvent } from '../base/events.class';\r\n@Component({\r\n selector: 'ax-validation-form',\r\n template: '<ng-content></ng-content>'\r\n})\r\nexport class AXValidationFormComponent {\r\n\r\n constructor(private ref: ElementRef, private cdr: ChangeDetectorRef) { }\r\n\r\n\r\n private widgets: AXValidatableComponent[] = [];\r\n\r\n\r\n @ContentChildren(AXValidatableComponent, { descendants: true })\r\n private widgetsQuery: QueryList<AXValidatableComponent>;\r\n\r\n @Input()\r\n validateOn: 'blur' | 'change' | 'submit' = 'submit';\r\n\r\n @Output()\r\n onInit: EventEmitter<AXBaseEvent> = new EventEmitter<AXBaseEvent>();\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.onInit.emit({\r\n component: this,\r\n htmlElement: this.ref.nativeElement\r\n });\r\n }\r\n\r\n validate(): Promise<AXValidationResult> {\r\n this.widgets.push(...this.widgetsQuery.toArray().filter(c => !this.widgets.includes(c)));\r\n //\r\n this.widgets.forEach(w => {\r\n if (w.validation && w.validation.validateOn == null) {\r\n w.validation.validateOn = this.validateOn;\r\n }\r\n });\r\n\r\n return new Promise<AXValidationResult>(resolve => {\r\n if (!this.widgets || this.widgets.length === 0) {\r\n return Promise.resolve({ result: true });\r\n }\r\n Promise.all(this.widgets.map((c) => c.validate())).then((rules: any) => {\r\n const failed = rules.filter((c: any) => !c.result);\r\n if (failed.length) {\r\n resolve({\r\n result: false,\r\n items: failed\r\n });\r\n }\r\n else {\r\n resolve({ result: true });\r\n }\r\n });\r\n });\r\n }\r\n\r\n\r\n addWidget(widget: AXValidatableComponent) {\r\n this.widgets.push(widget);\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXValidationFormComponent } from './validation-form.component';\r\nimport { AXValidationComponent } from './validation.component';\r\nimport { AXValidationRuleComponent, AXValidationRules } from './validation-rule.widget';\r\nimport { AXTranslator } from '@acorex/core';\r\n\r\n\r\n@NgModule({\r\n declarations: [AXValidationFormComponent, AXValidationComponent, AXValidationRuleComponent],\r\n imports: [CommonModule],\r\n exports: [AXValidationFormComponent, AXValidationComponent, AXValidationRuleComponent],\r\n providers: []\r\n})\r\nexport class AXValidationModule {\r\n constructor() {\r\n AXValidationRules.addRule('email', {\r\n message: AXTranslator.get('validation.messages.email'),\r\n type: 'regex',\r\n value: /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/\r\n })\r\n AXValidationRules.addRule('phone', {\r\n message: AXTranslator.get('validation.messages.phone'),\r\n type: 'regex',\r\n value: /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$/\r\n })\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXFilterPanelComponent } from './filter-panel/filter-panel.component';\r\nimport { AXFilterColumnStringComponent } from './columns/filter-column-string.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXFilterColumnSelectionComponent } from './columns/filter-column-selection.component';\r\nimport { AXFilterColumnDateComponent } from './columns/filter-column-date.component';\r\nimport { AXFilterColumnNumberComponent } from './columns/filter-column-number.component';\r\nimport { AXToolbarFilterViewComponent } from './toolbar/filter-toolbar.component';\r\nimport { AXPanelBoxModule } from '../panel-box/panel-box.module';\r\nimport { AXDatePickerModule } from '../date-picker/date-picker.module';\r\nimport { AXCheckBoxModule } from '../checkbox/checkbox.module';\r\nimport { AXTextBoxModule } from '../textbox/textbox.module';\r\nimport { AXToastModule } from '../toast/toast.module';\r\nimport { AXToolbarModule } from '../toolbar/toolbar.module';\r\nimport { AXMenuModule } from '../menu/menu.module';\r\nimport { AXSelectionListModule } from '../selection-list/selection-list.module';\r\nimport { AXButtonModule } from '../button/button.module';\r\nimport { AXValidationModule } from '../validation/validation.module';\r\n\r\n\r\n\r\n\r\nconst COMPONENTS = [\r\n AXFilterPanelComponent,\r\n AXFilterColumnStringComponent,\r\n AXFilterColumnSelectionComponent,\r\n AXFilterColumnDateComponent,\r\n AXFilterColumnNumberComponent,\r\n AXToolbarFilterViewComponent,\r\n]\r\n\r\n@NgModule({\r\n declarations: [COMPONENTS],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n AXPanelBoxModule,\r\n AXDatePickerModule,\r\n AXCheckBoxModule,\r\n AXTextBoxModule,\r\n AXValidationModule,\r\n AXToastModule,\r\n AXToolbarModule,\r\n AXMenuModule,\r\n AXSelectionListModule,\r\n AXButtonModule\r\n ],\r\n exports: [COMPONENTS],\r\n providers: [],\r\n})\r\nexport class AXFilterModule { }","import { ContentChild, Input, Directive } from '@angular/core';\r\nimport { AXDataSourceComponent } from '../../data-source/datasource.component';\r\nimport { AXDataSourceReadParams } from '../../data-source/read-param';\r\nimport { AXBaseComponent } from '../../base/element.class';\r\n\r\n\r\nexport abstract class AXDataListComponent extends AXBaseComponent {\r\n\r\n\r\n\r\n @Input()\r\n items: any[] = [];\r\n\r\n // @ContentChild(AXDataSourceComponent, { static: true })\r\n // private _contentDataSource: AXDataSourceComponent;\r\n\r\n // private _dataSource: AXDataSourceComponent;\r\n\r\n // @Input()\r\n // public get dataSource(): AXDataSourceComponent {\r\n // return this._dataSource ? this._dataSource : this._contentDataSource;\r\n // }\r\n\r\n // public set dataSource(v: AXDataSourceComponent) {\r\n // this._dataSource = v;\r\n // }\r\n\r\n\r\n abstract dataSource: AXDataSourceComponent;\r\n\r\n\r\n // ngAfterContentInit(): void {\r\n // this.configDataList();\r\n // }\r\n\r\n\r\n protected configDataList() {\r\n if (this.dataSource) {\r\n this.dataSource.onDataReceived.subscribe(c => {\r\n this.dataReceived(c.data.result);\r\n });\r\n }\r\n }\r\n\r\n private dataReceived(data: any) {\r\n this.items = data;\r\n }\r\n\r\n private params: AXDataSourceReadParams = {};\r\n\r\n fetch(params: AXDataSourceReadParams = {}) {\r\n this.params = params;\r\n if (this.dataSource) {\r\n this.dataSource.fetch(params);\r\n }\r\n }\r\n\r\n refresh() {\r\n this.fetch(this.params);\r\n }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { AXToolbarItem } from '../../toolbar/toolbar-item';\r\nimport { AXValueEvent } from '../../base/events.class';\r\n\r\nexport type AXListViewDirection = \"vertical\" | \"vertical-wrap\" | \"horizontal-wrap\" | \"horizontal\";\r\n\r\n@Component({\r\n selector: 'ax-toolbar-list-view',\r\n template: `\r\n <div class=\"btn-group\" role=\"group\">\r\n <button type=\"button\" class=\"btn btn-light btn-sm\" *ngIf=\"vertical\" [class.active]=\"direction=='vertical'\" (click)=\"direction='vertical'\" title=\"vertical\">\r\n <i class=\"far fa-bars\"></i>\r\n </button>\r\n <button type=\"button\" class=\"btn btn-light btn-sm\" *ngIf=\"verticalWrap\" [class.active]=\"direction=='vertical-wrap'\" (click)=\"direction='vertical-wrap'\" title=\"vertical-wrap\">\r\n <i class=\"far fa-grip-horizontal\"></i>\r\n </button>\r\n <button type=\"button\" class=\"btn btn-light btn-sm\" *ngIf=\"horizontalWrap\" [class.active]=\"direction=='horizontal-wrap'\" title=\"horizontal-wrap'\" (click)=\"direction='horizontal-wrap'\" title=\"horizontal-wrap\">\r\n <i class=\"far fa-bars fa-rotate-90\"></i>\r\n </button>\r\n <button type=\"button\" class=\"btn btn-light btn-sm\" *ngIf=\"horizontal\" [class.active]=\"direction=='horizontal'\" (click)=\"direction='horizontal'\" title=\"horizontal\">\r\n <i class=\"far fa-grip-horizontal fa-rotate-90\"></i>\r\n </button>\r\n </div>\r\n `,\r\n providers: [{ provide: AXToolbarItem, useExisting: AXToolbarListViewComponent }]\r\n})\r\nexport class AXToolbarListViewComponent {\r\n constructor() { }\r\n\r\n @Input('vertical')\r\n vertical: boolean = true;\r\n\r\n @Input('vertical-wrap')\r\n verticalWrap: boolean = true;\r\n\r\n @Input('horizontal-wrap')\r\n horizontalWrap: boolean = true;\r\n\r\n @Input('horizontal')\r\n horizontal: boolean = true;\r\n\r\n\r\n @Output()\r\n onDirectionChanged: EventEmitter<AXValueEvent<AXListViewDirection>> = new EventEmitter<AXValueEvent<AXListViewDirection>>();\r\n\r\n private _direction: AXListViewDirection = \"vertical\";\r\n @Input()\r\n public get direction(): AXListViewDirection {\r\n return this._direction;\r\n }\r\n public set direction(v: AXListViewDirection) {\r\n if (v != this._direction) {\r\n const old = this._direction;\r\n this._direction = v;\r\n this.onDirectionChanged.emit({\r\n component: this,\r\n value: v,\r\n oldValue: old\r\n });\r\n }\r\n }\r\n\r\n}\r\n","import {\r\n Component,\r\n ContentChild,\r\n TemplateRef,\r\n Input,\r\n Output,\r\n EventEmitter\r\n} from \"@angular/core\";\r\nimport { AXDataListComponent } from \"../core/data-list.component\";\r\nimport {\r\n AXToolbarListViewComponent,\r\n AXListViewDirection\r\n} from \"./toolbar-list-view.component\";\r\nimport { ViewEncapsulation } from \"@angular/core\";\r\nimport { AXToolbarSearchComponent } from '../../toolbar/search/toolbar-search.component';\r\nimport { AXToolbarComponent } from '../../toolbar/toolbar.component';\r\nimport { AXEvent, AXValueEvent } from '../../base/events.class';\r\nimport { AXDataSourceComponent } from '../../data-source/datasource.component';\r\n\r\n\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: \"ax-list\",\r\n templateUrl: \"./list.component.html\",\r\n styleUrls: [\"./list.component.scss\"],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXListComponent extends AXDataListComponent {\r\n constructor() {\r\n super();\r\n }\r\n @Input() width: string = \"\";\r\n @Input() height: string = \"auto\";\r\n\r\n @Input(\"dropId\") public dropId: string;\r\n @Input(\"connectedList\") public connectedList: string[] = [];\r\n\r\n @Input() public allowMoveItem: boolean = false;\r\n\r\n\r\n @ContentChild(AXDataSourceComponent, { static: true })\r\n private _contentDataSource: AXDataSourceComponent;\r\n\r\n private _dataSource: AXDataSourceComponent;\r\n\r\n @Input()\r\n public get dataSource(): AXDataSourceComponent {\r\n return this._dataSource ? this._dataSource : this._contentDataSource;\r\n }\r\n\r\n public set dataSource(v: AXDataSourceComponent) {\r\n this._dataSource = v;\r\n }\r\n\r\n\r\n @ContentChild('itemTemplate', { static: true })\r\n _contentItemTemplate: TemplateRef<any>;\r\n\r\n\r\n private _itemTemplate: TemplateRef<any>;\r\n @Input()\r\n public get itemTemplate(): TemplateRef<any> {\r\n return this._itemTemplate ? this._itemTemplate : this._contentItemTemplate;\r\n }\r\n public set itemTemplate(v: TemplateRef<any>) {\r\n this._itemTemplate = v;\r\n }\r\n\r\n\r\n\r\n\r\n @ContentChild('emptyTemplate', { static: true })\r\n _contentEmptyTemplate: TemplateRef<any>;\r\n\r\n private _emptyTemplate: TemplateRef<any>;\r\n @Input()\r\n public get emptyTemplate(): TemplateRef<any> {\r\n return this._emptyTemplate ? this._emptyTemplate : this._contentEmptyTemplate;\r\n }\r\n public set emptyTemplate(v: TemplateRef<any>) {\r\n this._emptyTemplate = v;\r\n }\r\n\r\n\r\n @ContentChild(AXToolbarSearchComponent, { static: true })\r\n searchToolbar: AXToolbarSearchComponent;\r\n\r\n @ContentChild(AXToolbarListViewComponent, { static: true })\r\n viewToolbar: AXToolbarListViewComponent;\r\n\r\n @ContentChild(AXToolbarComponent, { static: true })\r\n toolbar: AXToolbarComponent;\r\n\r\n\r\n\r\n @Output()\r\n onDirectionChanged: EventEmitter<AXValueEvent<AXListViewDirection>> = new EventEmitter<AXValueEvent<AXListViewDirection>>();\r\n\r\n private _direction: AXListViewDirection = \"vertical\";\r\n @Input()\r\n public get direction(): AXListViewDirection {\r\n return this._direction;\r\n }\r\n public set direction(v: AXListViewDirection) {\r\n if (this._direction != v) {\r\n const old = this._direction;\r\n this._direction = v;\r\n this.setDirection(v);\r\n this.onDirectionChanged.emit({\r\n component: this,\r\n value: v,\r\n oldValue: old\r\n });\r\n }\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n this.fetch();\r\n if (this.viewToolbar) {\r\n this.viewToolbar.onDirectionChanged.subscribe(c => {\r\n this.direction = c.value;\r\n });\r\n }\r\n }\r\n\r\n private setDirection(e: AXListViewDirection) {\r\n this.direction = e;\r\n }\r\n\r\n\r\n\r\n // dragDrop(event: CdkDragDrop<any[]>) {\r\n // if (event.previousContainer === event.container) {\r\n // moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\r\n // } else {\r\n // transferArrayItem(event.previousContainer.data,\r\n // event.container.data,\r\n // event.previousIndex,\r\n // event.currentIndex);\r\n // }\r\n // }\r\n dragDrop(event: any) {\r\n\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { AXDataSourceComponent } from './datasource.component';\r\nimport { AXHttpModule } from '@acorex/core';\r\n\r\n@NgModule({\r\n declarations: [AXDataSourceComponent],\r\n imports: [],\r\n exports: [AXDataSourceComponent],\r\n providers: [],\r\n})\r\nexport class AXDataSourceModule { }","import { NgModule } from '@angular/core';\r\nimport { AXListComponent } from './list.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXToolbarListViewComponent } from './toolbar-list-view.component';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { AXDataSourceModule } from '../../data-source/datasource.module';\r\n\r\n@NgModule({\r\n declarations: [AXListComponent, AXToolbarListViewComponent],\r\n imports: [CommonModule, AXDataSourceModule, DragDropModule],\r\n exports: [AXListComponent, AXToolbarListViewComponent],\r\n providers: [],\r\n})\r\nexport class AXListModule { }","import { Component, OnInit, Input, ViewEncapsulation } from '@angular/core';\r\nimport { AXButtonItem } from '@acorex/core';\r\nimport { AXMenuItemClickEvent } from '../menu/menu.component';\r\nimport { AXBasePopupPageComponent } from '../base/base-page.class';\r\n\r\n@Component({\r\n selector: 'ax-dialog',\r\n templateUrl: './dialog.component.html',\r\n styleUrls: ['./dialog.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXDialogComponent extends AXBasePopupPageComponent {\r\n message: string;\r\n\r\n buttons: AXButtonItem[] = [];\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n onClick: Function;\r\n\r\n onFooterButtonClick(e: AXMenuItemClickEvent) {\r\n if (this.onClick) {\r\n this.onClick(e.data);\r\n }\r\n }\r\n\r\n getFooterButtons(): AXButtonItem[] {\r\n return this.buttons;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXDialogComponent } from './dialog.component';\r\nimport { AXButtonModule } from '../button/button.module';\r\nimport { AXTranslatorModule } from '@acorex/core';\r\n\r\n@NgModule({\r\n declarations: [AXDialogComponent],\r\n imports: [CommonModule, AXButtonModule,AXTranslatorModule],\r\n exports: [AXDialogComponent],\r\n providers: [],\r\n})\r\nexport class AXDialogModule { }","import {\r\n Component,\r\n Input,\r\n EventEmitter,\r\n ViewChild,\r\n ViewContainerRef,\r\n OnInit,\r\n ComponentFactoryResolver,\r\n ViewEncapsulation,\r\n HostListener,\r\n ElementRef,\r\n ComponentRef,\r\n OnDestroy,\r\n Output,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n SimpleChanges,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport { AXBaseComponent } from '../base/element.class';\r\nimport { AXPageCloseEvent, TAB_META_KEY } from '../base/base-page.class';\r\nimport { AXButtonItem, AXRenderService } from '@acorex/core';\r\nimport { AXLoadingService } from '../loading/loading.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n templateUrl: './popup.component.html',\r\n styleUrls: ['./popup.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXPopupComponent extends AXBaseComponent implements OnDestroy {\r\n\r\n isLoading: boolean = true;\r\n _loadingId: number;\r\n private onFooterButtonsSubscription: Subscription;\r\n\r\n constructor(\r\n private resolver: ComponentFactoryResolver,\r\n private ref: ElementRef<HTMLDivElement>,\r\n private rendererService: AXRenderService,\r\n private loadingService: AXLoadingService,\r\n private cdr: ChangeDetectorRef,\r\n ) {\r\n super();\r\n }\r\n\r\n ngAfterViewInit() {\r\n console.log('popup');\r\n this._loadingId = this.loadingService.show(this.ref.nativeElement.querySelector('.ax-popup-body-container'));\r\n if (typeof this.content === 'string') {\r\n this.rendererService.findLoadedComponentByRoute(this.content, 20).then(route => {\r\n setTimeout(() => {\r\n this.loadComponent(route?.component);\r\n }, 300);\r\n });\r\n }\r\n else if (this.content instanceof TemplateRef) {\r\n const view = this.content.createEmbeddedView({ $implicit: this.data });\r\n this.popupBody.insert(view);\r\n this.isLoading = false;\r\n this.loadingService.hide(this._loadingId);\r\n }\r\n else if (typeof this.content === 'function') {\r\n setTimeout(() => {\r\n this.loadComponent(this.content);\r\n });\r\n }\r\n }\r\n\r\n\r\n private loadComponent(component: any) {\r\n\r\n if (component == null) {\r\n //TODO: 404 page component\r\n console.error(`Invalid page Component! ${this.content}`);\r\n return;\r\n }\r\n ///\r\n try {\r\n const factory = this.resolver.resolveComponentFactory(component);\r\n this.comRef = this.popupBody.createComponent(factory);\r\n const com = this.comRef.instance as any;\r\n if (com.onClosed) {\r\n com.onClosed.subscribe((e: AXPageCloseEvent) => {\r\n this.onClosed.emit(e);\r\n });\r\n }\r\n this[TAB_META_KEY].component = com;\r\n Object.assign(this[TAB_META_KEY].component, this.data);\r\n //\r\n if (com.getFooterButtons) {\r\n this.footerButtons = com.getFooterButtons();\r\n }\r\n if (com.onFooterButtonsChanged) {\r\n this.onFooterButtonsSubscription = (com.onFooterButtonsChanged as EventEmitter<AXButtonItem[]>).subscribe(c => {\r\n this.footerButtons = c;\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n //\r\n this.focus();\r\n this.isLoading = false;\r\n this.loadingService.hide(this._loadingId);\r\n setTimeout(() => {\r\n this.comRef.changeDetectorRef.detectChanges();\r\n }, 100);\r\n this.cdr.detectChanges();\r\n } catch (error) {\r\n //TODO: 404 page component\r\n console.error(error);\r\n }\r\n }\r\n\r\n @ViewChild('popupBody', { read: ViewContainerRef, static: true })\r\n private popupBody: ViewContainerRef;\r\n\r\n @HostListener('keydown.escape', ['$event'])\r\n onKeydownHandler(event: KeyboardEvent) {\r\n if (this.closable) {\r\n this.onCloseClick();\r\n }\r\n }\r\n\r\n private comRef: ComponentRef<any>;\r\n\r\n title: string;\r\n\r\n onClosed: EventEmitter<AXPageCloseEvent> = new EventEmitter<AXPageCloseEvent>();\r\n\r\n size: 'sm' | 'md' | 'lg' | 'full' = 'sm';\r\n modal: boolean = true;\r\n\r\n data: any = {};\r\n\r\n maximizable: boolean = false;\r\n\r\n closable: boolean = true;\r\n\r\n content: any;\r\n\r\n headerButtons: AXButtonItem[] = [];\r\n\r\n footerButtons: AXButtonItem[] = [];\r\n\r\n onCloseClick() {\r\n this.onClosed.emit({\r\n component: this[TAB_META_KEY].component,\r\n htmlElement: this.ref.nativeElement,\r\n });\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.comRef) {\r\n this.comRef.destroy();\r\n }\r\n if (this.onFooterButtonsSubscription) {\r\n this.onFooterButtonsSubscription.unsubscribe();\r\n }\r\n this.cdr.detectChanges();\r\n this.loadingService.hide(this._loadingId);\r\n }\r\n\r\n focus() {\r\n setTimeout(() => this.ref.nativeElement.focus());\r\n }\r\n\r\n onFullScreen() { }\r\n\r\n handleFooterButtonClick(e: AXButtonItem) {\r\n if (e.onClick) {\r\n e.onClick();\r\n }\r\n else if (this[TAB_META_KEY].component.onFooterButtonClick) {\r\n this[TAB_META_KEY].component.onFooterButtonClick({\r\n component: this[TAB_META_KEY].component,\r\n name: e.name,\r\n data: e,\r\n htmlElement: this.ref.nativeElement,\r\n });\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AXPopupComponent } from './popup.component';\r\nimport { AXButtonItem } from '@acorex/core';\r\nimport { TAB_META_KEY, AXPageClosedPromise, AXPageCloseEvent } from '../base/base-page.class';\r\nimport { AXOverlayService, AXOverlayViewRef } from '../popover/overlay.service';\r\nimport { options } from '@amcharts/amcharts4/core';\r\n\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXPopupService {\r\n private stack: Array<AXPopupComponent> = [];\r\n\r\n constructor(private overlayService: AXOverlayService) { }\r\n\r\n\r\n open(content: any, title: string): AXPageClosedPromise;\r\n open(\r\n content: any,\r\n options?: {\r\n title: string;\r\n closable?: boolean;\r\n maximizable?: boolean;\r\n size?: 'sm' | 'md' | 'lg' | 'full';\r\n data?: any;\r\n footerButtons?: AXButtonItem[],\r\n modal?: boolean\r\n }\r\n ): AXPageClosedPromise;\r\n\r\n open(arg1, arg2): AXPageClosedPromise {\r\n const options: any = {\r\n closable: true,\r\n size: 'md',\r\n maximizable: false,\r\n footerButtons: [],\r\n modal: true,\r\n };\r\n\r\n if (typeof arg2 === 'string') {\r\n options.title = arg2;\r\n } else {\r\n Object.assign(options, arg2);\r\n }\r\n const com = this.overlayService.show(AXPopupComponent, options, {\r\n transparentBackdrop: false,\r\n hasBackdrop: options.modal,\r\n closeOnClickOutside: false,\r\n scroll: 'block'\r\n });\r\n const popup = com.instance as AXPopupComponent;\r\n popup.content = arg1;\r\n popup[TAB_META_KEY] = {};\r\n if (options.size) {\r\n popup.size = options.size;\r\n }\r\n if (options.footerButtons) {\r\n popup.footerButtons = options.footerButtons;\r\n }\r\n this.stack.push(popup);\r\n popup.onClosed.subscribe(c => {\r\n this.closePopup(popup, com, c);\r\n });\r\n const promise = new AXPageClosedPromise((resolve) => {\r\n popup[TAB_META_KEY].close = (e) => {\r\n if (resolve) {\r\n resolve(e);\r\n }\r\n };\r\n });\r\n promise['closeMethod'] = () => { popup.onCloseClick(); };\r\n return promise;\r\n }\r\n\r\n\r\n private closePopup(popup: AXPopupComponent, com: AXOverlayViewRef, result: AXPageCloseEvent) {\r\n const closeFunc = (e) => {\r\n com.dispose();\r\n this.stack.pop();\r\n delete e.cancel;\r\n popup[TAB_META_KEY].close(e);\r\n if (this.stack.length) { this.stack.reverse()[0].focus(); }\r\n };\r\n const e = { cancel: false };\r\n const closingFunc = popup[TAB_META_KEY]?.component?.onClosing;\r\n if (closingFunc) {\r\n const res = closingFunc(e);\r\n if (res instanceof Promise) {\r\n res.then(() => {\r\n if (e == null || e.cancel !== true) {\r\n closeFunc(result);\r\n }\r\n });\r\n }\r\n else {\r\n if (e == null || e.cancel !== true) {\r\n closeFunc(result);\r\n }\r\n }\r\n } else {\r\n closeFunc(result);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AXDialogComponent } from './dialog.component';\r\nimport { AXPopupService } from '../popup/popup.service';\r\nimport { AXButtonItem, AXTranslator } from '@acorex/core';\r\n\r\nexport class AXDialogAlertResult {\r\n private _executor: (close: (e?: any) => void) => void;\r\n constructor(\r\n executor: (close: (e?: any) => void) => void\r\n ) {\r\n this._executor = executor;\r\n setTimeout(() => {\r\n this._executor(this.closeAction);\r\n }, 50);\r\n }\r\n\r\n private closeAction: (e?: any) => void;\r\n\r\n close(action: (e?: any) => void): AXDialogAlertResult {\r\n this.closeAction = action;\r\n return this;\r\n }\r\n\r\n}\r\n\r\nexport class AXDialogConfirmResult {\r\n private _executor: (okay: () => void, cancel: () => void, final: () => void) => void;\r\n constructor(\r\n executor: (okay: () => void, cancel: () => void, final: () => void) => void\r\n ) {\r\n this._executor = executor;\r\n setTimeout(() => {\r\n this._executor(this.okayAction, this.cancelAction, this.finalAction);\r\n }, 50);\r\n }\r\n\r\n private okayAction: () => void;\r\n private cancelAction: () => void;\r\n private finalAction: () => void;\r\n\r\n okay(action: () => void): AXDialogConfirmResult {\r\n this.okayAction = action;\r\n return this;\r\n }\r\n cancel(action: () => void): AXDialogConfirmResult {\r\n this.cancelAction = action;\r\n\r\n return this;\r\n }\r\n final(action: () => void) {\r\n this.finalAction = action;\r\n }\r\n}\r\n\r\n\r\nexport class AXDialogResult {\r\n private _executor: (then: (name: string) => void, final: () => void) => void;\r\n constructor(\r\n executor: (then: (name: string) => void, final: () => void) => void\r\n ) {\r\n this._executor = executor;\r\n setTimeout(() => {\r\n this._executor(this.thenAction, this.finalAction);\r\n }, 50);\r\n }\r\n\r\n private thenAction: (name: string) => void;\r\n private finalAction: () => void;\r\n\r\n then(action: (name: string) => void): AXDialogResult {\r\n this.thenAction = action;\r\n return this;\r\n }\r\n\r\n final(action: () => void) {\r\n this.finalAction = action;\r\n }\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXDialogService {\r\n\r\n constructor(private popupService: AXPopupService) {\r\n\r\n }\r\n\r\n alert(title: string, message: string): AXDialogAlertResult {\r\n return new AXDialogAlertResult((close) => {\r\n const popup = this.popupService.open(AXDialogComponent, {\r\n title,\r\n size: 'sm',\r\n closable: false,\r\n\r\n data: {\r\n message,\r\n buttons: [\r\n {\r\n name: 'confirm',\r\n text: AXTranslator.get('common.confirm'),\r\n style: 'success',\r\n submitBehavior: true,\r\n }\r\n ],\r\n onClick: (e) => {\r\n popup.close()\r\n close();\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n confirm(title: string, message: string): AXDialogConfirmResult {\r\n return new AXDialogConfirmResult((okay, cancel, final) => {\r\n const popup = this.popupService.open(AXDialogComponent, {\r\n title,\r\n size: 'sm',\r\n closable: false,\r\n\r\n data: {\r\n buttons: [\r\n {\r\n name: 'confirm',\r\n text: AXTranslator.get('common.confirm'),\r\n style: 'success',\r\n submitBehavior: true,\r\n cancelBehavior: false,\r\n },\r\n {\r\n name: 'cancel',\r\n text: AXTranslator.get('common.cancel'),\r\n style: 'danger blank',\r\n submitBehavior: false,\r\n cancelBehavior: true,\r\n }\r\n ],\r\n message,\r\n onClick: (e) => {\r\n popup.close()\r\n if (e.name === 'confirm' && okay) {\r\n okay();\r\n }\r\n if (e.name === 'cancel' && cancel) {\r\n cancel();\r\n }\r\n if (final) {\r\n final();\r\n }\r\n }\r\n }\r\n })\r\n });\r\n }\r\n\r\n\r\n show(title: string, message: string, closable: boolean = false, ...buttons: AXButtonItem[]): AXDialogResult {\r\n return new AXDialogResult((then, final) => {\r\n const popup = this.popupService.open(AXDialogComponent, {\r\n title,\r\n size: 'sm',\r\n closable,\r\n data: {\r\n message,\r\n buttons,\r\n onClick: (e) => {\r\n popup.close();\r\n if (then) {\r\n then(e.name);\r\n }\r\n if (final) {\r\n final();\r\n }\r\n }\r\n }\r\n });\r\n });\r\n }\r\n}","import { Component, OnInit, Input } from '@angular/core';\r\nimport {\r\n trigger,\r\n state,\r\n style,\r\n transition,\r\n animate,\r\n} from '@angular/animations';\r\n@Component({\r\n selector: 'ax-drawer',\r\n templateUrl: './drawer.component.html',\r\n animations: [\r\n trigger('slideInOut', [\r\n state(\r\n 'in',\r\n style({\r\n transform: 'translate3d(0,0,0)',\r\n })\r\n ),\r\n state(\r\n 'out',\r\n style({\r\n transform: 'translate3d(100%, 0, 0)',\r\n })\r\n ),\r\n transition('in => out', animate('200ms ease-in-out')),\r\n transition('out => in', animate('200ms ease-in-out')),\r\n ]),\r\n ],\r\n})\r\nexport class AXDrawerComponent {\r\n constructor() {}\r\n\r\n @Input()\r\n width: number = 300;\r\n\r\n drawerState: string = 'out';\r\n\r\n ngOnDestroy(): void {\r\n document.querySelector('body').classList.remove('ax-drawer-underlay');\r\n }\r\n toggle() {\r\n const body = document.querySelector('body');\r\n\r\n if (this.drawerState === 'out') {\r\n this.drawerState = 'in';\r\n body.classList.add('ax-drawer-underlay');\r\n } else {\r\n this.drawerState = 'out';\r\n body.classList.remove('ax-drawer-underlay');\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXDrawerComponent } from './drawer.component';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\n@NgModule({\r\n declarations: [AXDrawerComponent],\r\n imports: [CommonModule, BrowserAnimationsModule],\r\n exports: [AXDrawerComponent],\r\n providers: []\r\n})\r\nexport class AXDrawerModule {}\r\n","import { Component, OnInit, ViewEncapsulation, ChangeDetectionStrategy, Input } from '@angular/core';\r\nimport { trigger, state, style, transition, animate } from '@angular/animations';\r\nimport { AXBaseSizableComponent, AXElementSize } from '../base/element.class';\r\n\r\n@Component({\r\n selector: 'ax-fieldset',\r\n templateUrl: './fieldset.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [\r\n trigger('visibilityChanged', [\r\n state(\r\n 'shown',\r\n style({\r\n height: '*',\r\n opacity: 1\r\n })\r\n ),\r\n state(\r\n 'hidden',\r\n style({\r\n height: '0px',\r\n opacity: 0,\r\n padding: 0\r\n })\r\n ),\r\n transition('Void => *', animate('0ms')),\r\n transition('shown => hidden', animate('200ms')),\r\n transition('hidden => shown', animate('200ms'))\r\n ])\r\n ]\r\n})\r\nexport class AXFieldsetComponent implements AXBaseSizableComponent {\r\n @Input()\r\n size: AXElementSize = \"md\";\r\n\r\n @Input()\r\n caption: string = '';\r\n\r\n @Input()\r\n allowCollapse: boolean = false;\r\n\r\n collapsed: boolean = false;\r\n toggle() {\r\n if (this.allowCollapse) {\r\n this.collapsed = !this.collapsed;\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXFieldsetComponent } from './fieldset.component';\r\n\r\n@NgModule({\r\n declarations: [AXFieldsetComponent],\r\n imports: [ CommonModule ],\r\n exports: [AXFieldsetComponent],\r\n providers: [],\r\n})\r\nexport class AXFieldsetModule {}","import { Component, OnInit, ViewEncapsulation, Input } from '@angular/core';\r\nimport { AXBaseComponent, AXBaseSizableComponent, AXElementSize } from '../base/element.class';\r\n\r\n@Component({\r\n selector: 'ax-label',\r\n templateUrl: './label.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXLabelComponent extends AXBaseComponent implements AXBaseSizableComponent {\r\n constructor() {\r\n super();\r\n }\r\n\r\n @Input()\r\n size: AXElementSize = 'md';\r\n\r\n ngOnInit(): void {}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXLabelComponent } from './label.component';\r\n\r\nconst COMPONENT = [AXLabelComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXLabelModule { }","import { Component, OnInit, Input, ElementRef } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-loading-panel',\r\n template: `\r\n <div onclick=\"return false;\" class=\"ax ax-loading-panel ax-overlay-wrapper ax-overlay-modal ax-loading-overlay\" *ngIf=\"visible\" >\r\n <ax-loading-indicator tabindex=\"0\" cdkTrapFocus>\r\n </ax-loading-indicator>\r\n </div>\r\n `\r\n})\r\nexport class AXLoadingPanelComponent implements OnInit {\r\n\r\n constructor(private ref: ElementRef<HTMLDivElement>) {\r\n\r\n }\r\n\r\n @Input()\r\n visible: boolean = false;\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n const host = this.ref.nativeElement.closest('.ax-loading-host');\r\n }\r\n\r\n show() {\r\n this.visible = true;\r\n }\r\n\r\n hide() {\r\n this.visible = false;\r\n }\r\n}\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXLoadingIndicatorComponent } from './loading-indicator.component';\r\nimport { AXLoadingPanelComponent } from './loading-panel.component';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\n\r\n@NgModule({\r\n declarations: [AXLoadingIndicatorComponent, AXLoadingPanelComponent],\r\n imports: [CommonModule, A11yModule],\r\n exports: [AXLoadingIndicatorComponent, AXLoadingPanelComponent],\r\n providers: [],\r\n})\r\nexport class AXLoadingModule { }","import { Component, Input, ElementRef, HostListener, ChangeDetectorRef, ChangeDetectionStrategy, AfterViewInit, OnInit } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\nimport { AXBaseTextComponent, AXValidatableComponent } from '../base/element.class';\r\n@Component({\r\n selector: 'ax-number-box',\r\n templateUrl: './number-box.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { style: 'display: contents;' },\r\n providers: [{ provide: AXValidatableComponent, useExisting: AXNumberBoxComponent }]\r\n})\r\nexport class AXNumberBoxComponent extends AXBaseTextComponent implements OnInit {\r\n @Input() min: number = null;\r\n @Input() max: number = null;\r\n\r\n @Input()\r\n showSeparator: boolean = false;\r\n @Input()\r\n showCurrency: boolean = false;\r\n\r\n @Input()\r\n showCounter: boolean = true;\r\n\r\n @Input()\r\n scrollWeel: boolean = true;\r\n\r\n @Input()\r\n showDoubleCounter: boolean = false;\r\n\r\n userQuestionUpdate = new Subject<string>();\r\n\r\n userEdite: boolean = false;\r\n\r\n tmp: any;\r\n count: number;\r\n findDots: boolean = false;\r\n findMinus: boolean = false;\r\n cursorPosition: number = 0;\r\n dotPosition: number;\r\n textValue: string;\r\n decimalConstant: number = 0.1;\r\n lastStep: number = null;\r\n\r\n @Input() intStep: number = 1;\r\n @Input() decimalNumber: number = null;\r\n @Input() customStep: number = null;\r\n\r\n private _values: string;\r\n public get value(): string {\r\n return this._values;\r\n }\r\n public set value(v: string) {\r\n if (v === '-') {\r\n this.textValue = '-';\r\n this._values = '-';\r\n } else {\r\n if (v === '' || v == null || v === undefined ? true : isNaN(Number(v.toString().replace(/,/g, ''))) === false) {\r\n if (v === '' || v == null || v === undefined) {\r\n this.textValue = '';\r\n const old = this._values;\r\n this._values = null;\r\n\r\n if (this._values !== old) {\r\n this.valueChange.emit(null);\r\n this.onValueChanged.emit({\r\n isUserChange: this.userEdite,\r\n component: this,\r\n value: null,\r\n oldValue:\r\n this.showSeparator && old\r\n ? old === '-'\r\n ? null\r\n : Number(old.replace(/,/g, ''))\r\n : old === null || old === undefined\r\n ? null\r\n : old === '-'\r\n ? null\r\n : Number(old),\r\n htmlElement: this.ref.nativeElement\r\n });\r\n this.userEdite = false;\r\n this.cdr.detectChanges();\r\n this.clearValidationStyle(this.input.nativeElement);\r\n }\r\n } else {\r\n v = v.toString();\r\n\r\n // this.addCommas(v.toString());\r\n this.textValue = this.showSeparator && v ? this.addCommas(v.toString()) : v;\r\n\r\n // if (this.textValue.indexOf('.') !== -1) {\r\n // // const dottt= (this.textValue.length-1) - this.textValue.indexOf('.')\r\n // if (this.textValue.length - 1 - this.textValue.indexOf('.') < this.decimalNumber) {\r\n // const a = this.decimalNumber - (this.textValue.length - 1 - this.textValue.indexOf('.'));\r\n // const z = '0';\r\n // this.textValue = this.textValue + '0';\r\n // }\r\n // }\r\n\r\n if (this._values) {\r\n const old = this._values;\r\n if (old.toString().search(/\\./g) !== v.toString().search(/\\./g)) {\r\n if (this.cursorPosition <= old.search(/\\./g)) {\r\n this.cursorPosition = v.search(/\\./g);\r\n } else {\r\n this.cursorPosition = v.length;\r\n }\r\n }\r\n }\r\n if (v !== this._values) {\r\n const old = this._values;\r\n this._values = v;\r\n this.valueChange.emit(this.showSeparator && v ? Number(v.replace(/,/g, '')) : Number(v));\r\n this.onValueChanged.emit({\r\n isUserChange: this.userEdite,\r\n component: this,\r\n value: this.showSeparator && v ? Number(v.replace(/,/g, '')) : Number(v),\r\n oldValue:\r\n this.showSeparator && old\r\n ? old === '-'\r\n ? null\r\n : Number(old.replace(/,/g, ''))\r\n : old === null || old === undefined\r\n ? null\r\n : old === '-'\r\n ? null\r\n : Number(old),\r\n htmlElement: this.ref.nativeElement\r\n });\r\n this.userEdite = false;\r\n this.cdr.detectChanges();\r\n this.clearValidationStyle(this.input.nativeElement);\r\n }\r\n }\r\n } else {\r\n this.textValue = '';\r\n v = null;\r\n const old = this._values;\r\n this._values = null;\r\n\r\n if (this._values !== old) {\r\n this.valueChange.emit(null);\r\n this.onValueChanged.emit({\r\n isUserChange:this.userEdite,\r\n component: this,\r\n value: null,\r\n oldValue:\r\n this.showSeparator && old\r\n ? old === '-'\r\n ? null\r\n : Number(old.replace(/,/g, ''))\r\n : old === null || old === undefined\r\n ? null\r\n : old === '-'\r\n ? null\r\n : Number(old),\r\n htmlElement: this.ref.nativeElement\r\n });\r\n this.userEdite =false;\r\n this.cdr.detectChanges();\r\n this.clearValidationStyle(this.input.nativeElement);\r\n }\r\n }\r\n }\r\n }\r\n constructor(protected cdr: ChangeDetectorRef, ref: ElementRef) {\r\n super(cdr, ref);\r\n this.textAlign = 'left';\r\n }\r\n\r\n addCommas2(x) {\r\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n }\r\n\r\n addCommas(nStr) {\r\n nStr += '';\r\n const x = nStr.split('.');\r\n let x1 = x[0];\r\n const x2 = x.length > 1 ? '.' + x[1] : '';\r\n const rgx = /(\\d+)(\\d{3})/;\r\n while (rgx.test(x1)) {\r\n x1 = x1.replace(rgx, '$1' + ',' + '$2');\r\n }\r\n return x1 + x2;\r\n }\r\n\r\n ngOnInit() {\r\n if (this.disabled === false) {\r\n if (this.scrollWeel === true) {\r\n setTimeout(() => {\r\n this.input.nativeElement.addEventListener('wheel', (e) => {\r\n this.handleWheel(e);\r\n });\r\n }, 500);\r\n }\r\n }\r\n\r\n // this.value = this.min.toString();\r\n }\r\n\r\n handleWheel(event) {\r\n if ((event as any).wheelDelta > 0) {\r\n this.input.nativeElement.style.caretColor = 'transparent';\r\n\r\n this.upStepHandel();\r\n this.delaySearch();\r\n\r\n setTimeout(() => {\r\n this.setCaret();\r\n this.input.nativeElement.style.caretColor = 'auto';\r\n }, 0);\r\n }\r\n if ((event as any).wheelDelta < 0) {\r\n this.input.nativeElement.style.caretColor = 'transparent';\r\n\r\n this.downStepHandel();\r\n this.delaySearch();\r\n\r\n setTimeout(() => {\r\n this.setCaret();\r\n this.input.nativeElement.style.caretColor = 'auto';\r\n }, 0);\r\n }\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n\r\n handleKeyPress(event: any) {\r\n this.userEdite = true;\r\n const NumberDotpattern = /[0-9\\.]/g;\r\n const NumberMinusPattern = /[0-9\\-]/g;\r\n\r\n const inputChar = String.fromCharCode(event.charCode);\r\n\r\n if (this.value && this.value.toString().match(/\\./g) === null) {\r\n this.findDots = false;\r\n }\r\n if (this.value && this.value.toString().search('-') === null) {\r\n this.findMinus = false;\r\n }\r\n\r\n // get cursur position when key press\r\n if (this.input.nativeElement.selectionStart || this.input.nativeElement.selectionStart === 0) {\r\n this.cursorPosition = this.input.nativeElement.selectionStart;\r\n this.cursorPosition += 1;\r\n }\r\n\r\n // control cursor when in first Index\r\n if (this.cursorPosition <= 1) {\r\n if (!NumberMinusPattern.test(inputChar)) {\r\n event.preventDefault();\r\n }\r\n if (this.value && this.value.match(/\\-/g)) {\r\n event.preventDefault();\r\n }\r\n }\r\n // control cursor when in another index\r\n if (this.cursorPosition !== 1) {\r\n if (event.keyCode !== 8 && !NumberDotpattern.test(inputChar)) {\r\n event.preventDefault();\r\n } else {\r\n // for contor decimal figur = 0 or null\r\n if (this.decimalNumber === null || this.decimalNumber === 0) {\r\n if (inputChar === '.') {\r\n event.preventDefault();\r\n }\r\n }\r\n // control decimal number (figur of decimal)\r\n if (this.value && this.value.toString().match(/\\./g)) {\r\n const figureAfterDot = this.value.length - this.value.indexOf('.');\r\n const dotIndex = this.value.indexOf('.');\r\n if (dotIndex - 1 + dotIndex + figureAfterDot > dotIndex - 1 + dotIndex + this.decimalNumber && this.cursorPosition - 1 > dotIndex) {\r\n event.preventDefault();\r\n }\r\n }\r\n // control '.' input\r\n if (inputChar === '.') {\r\n const lastChar = this.value.toString().charAt(this.value.length - 1);\r\n // control . when last char is -\r\n if (lastChar.toString().match(/\\-/g)) {\r\n event.preventDefault();\r\n }\r\n // control . when find first dot\r\n if (this.findDots) {\r\n event.preventDefault();\r\n }\r\n this.findDots = true;\r\n this.findMinus = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n handleKeyUp(event: KeyboardEvent) {\r\n this.userEdite = true;\r\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\r\n this.input.nativeElement.style.caretColor = 'auto';\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n if (event.key === 'ArrowUp') {\r\n this.setCaret();\r\n }\r\n\r\n if (event.key === 'ArrowDown') {\r\n this.setCaret();\r\n }\r\n\r\n // left & right Button\r\n if (event.key === 'ArrowLeft' || event.key === 'ArrowRight') {\r\n if (this.input.nativeElement.selectionStart || this.input.nativeElement.selectionStart === 0) {\r\n this.cursorPosition = this.input.nativeElement.selectionStart;\r\n }\r\n }\r\n\r\n // home button\r\n if (event.key === 'Home') {\r\n this.cursorPosition = 0;\r\n }\r\n\r\n // end button\r\n if (event.key === 'End') {\r\n this.cursorPosition = this.value.length;\r\n }\r\n\r\n // set delay with rxjs\r\n this.delaySearch();\r\n\r\n // backspace Control\r\n if (event.key === 'Backspace') {\r\n if (this.value === null || this.value.length <= 0) {\r\n this.cursorPosition = 0;\r\n } else {\r\n this.cursorPosition -= 1;\r\n }\r\n }\r\n }\r\n\r\n handleKeyDown(event: KeyboardEvent) {\r\n this.userEdite = true;\r\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n if (this.readonly === false) {\r\n const countAfterDot =\r\n this.value !== null && this.value !== '' && this.value !== undefined\r\n ? this.value.toString().length - 1 - this.value.toString().indexOf('.')\r\n : 0;\r\n const defaultStep: number =\r\n countAfterDot > this.decimalNumber ? Math.pow(this.decimalConstant, this.decimalNumber) : Math.pow(this.decimalConstant, countAfterDot);\r\n // step and +- with up key and down key\r\n if (this.value && this.value.toString().match(/\\./g)) {\r\n this.dotPosition = this.value.indexOf('.');\r\n if (this.dotPosition >= this.cursorPosition) {\r\n if (event.key === 'ArrowDown') {\r\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\r\n this.count = this.tmp - +this.intStep;\r\n if (this.min === null || Number(this.count) >= Number(this.min)) {\r\n // this.value = this.count.toFixed(this.decimalNumber);\r\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);\r\n }\r\n }\r\n\r\n if (event.key === 'ArrowUp') {\r\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\r\n this.count = this.tmp + +this.intStep;\r\n if (this.max === null || Number(this.count) <= Number(this.max)) {\r\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);\r\n }\r\n }\r\n } else {\r\n if (event.key === 'ArrowDown') {\r\n if (this.min === null || Number(this.value) > Number(this.min)) {\r\n if (this.customStep !== null) {\r\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\r\n this.lastStep =\r\n parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) +\r\n parseFloat(this.customStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) -\r\n parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot));\r\n this.count = parseFloat(this.tmp) - this.lastStep;\r\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);\r\n } else {\r\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\r\n this.count = parseFloat(this.tmp) - defaultStep;\r\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);\r\n }\r\n }\r\n }\r\n\r\n if (event.key === 'ArrowUp') {\r\n if (this.max === null || Number(this.value) < Number(this.max)) {\r\n if (this.customStep !== null) {\r\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\r\n this.lastStep =\r\n parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) +\r\n parseFloat(this.customStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) -\r\n parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot));\r\n this.count = parseFloat(this.tmp) + this.lastStep;\r\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);\r\n } else {\r\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\r\n this.count = parseFloat(this.tmp) + defaultStep;\r\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n if (event.key === 'ArrowDown') {\r\n if (this.min != null && this.value == null) {\r\n this.value = this.min.toString();\r\n } else {\r\n if (this.min === null || Number(this.value) > parseInt(this.min.toString())) {\r\n if (this.value == null) {\r\n this.value = '0';\r\n } else {\r\n this.tmp = +this.value.toString().replace(/,/g, '');\r\n this.count = +this.tmp - +this.intStep;\r\n this.value = this.count.toString().replace(/,/g, '');\r\n }\r\n }\r\n }\r\n }\r\n if (event.key === 'ArrowUp') {\r\n if (this.min != null && this.value == null) {\r\n this.value = this.min.toString();\r\n } else {\r\n if (this.max === null || Number(this.value) < parseInt(this.max.toString())) {\r\n if (this.value == null) {\r\n this.value = '0';\r\n } else {\r\n this.tmp = this.value.toString().replace(/,/g, '');\r\n this.count = +this.tmp + +this.intStep;\r\n this.value = this.count.toString().replace(/,/g, '');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n // stop when keydown\r\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\r\n this.input.nativeElement.style.caretColor = 'transparent';\r\n event.preventDefault();\r\n event.stopPropagation();\r\n return false;\r\n }\r\n }\r\n\r\n handleClick() {\r\n if (this.input.nativeElement.selectionStart || this.input.nativeElement.selectionStart === 0) {\r\n this.cursorPosition = this.input.nativeElement.selectionStart;\r\n }\r\n }\r\n\r\n delaySearch() {\r\n Observable.create((observer) => {\r\n this.userQuestionUpdate = observer;\r\n });\r\n this.userQuestionUpdate.pipe(debounceTime(1000), distinctUntilChanged()).subscribe((text: string) => this.checkMinMax(text));\r\n // this.userQuestionUpdate.next((e.target as any).value);\r\n setTimeout(() => {\r\n this.userQuestionUpdate.next(this.input.nativeElement.value);\r\n }, 50);\r\n }\r\n\r\n checkMinMax(text) {\r\n if (this.min !== null) {\r\n if (+text < this.min) {\r\n this.value = '';\r\n }\r\n }\r\n if (this.max !== null) {\r\n if (+text > this.max) {\r\n this.value = '';\r\n }\r\n }\r\n }\r\n\r\n doGetCaretPosition(ctrl) {\r\n let CaretPos = 0;\r\n if (ctrl.selectionStart || ctrl.selectionStart === 0) {\r\n CaretPos = ctrl.selectionStart;\r\n return CaretPos;\r\n }\r\n }\r\n\r\n setCaretPosition(ctrl, pos) {\r\n if (ctrl.setSelectionRange) {\r\n ctrl.focus();\r\n ctrl.setSelectionRange(pos, pos);\r\n } else if (ctrl.createTextRange) {\r\n const range = ctrl.createTextRange();\r\n range.collapse(true);\r\n range.moveEnd('character', pos);\r\n range.moveStart('character', pos);\r\n range.select();\r\n }\r\n }\r\n\r\n setCaret() {\r\n this.setCaretPosition(this.input.nativeElement, this.cursorPosition);\r\n }\r\n\r\n upStepHandel() {\r\n debugger\r\n this.userEdite = true;\r\n if (this.min != null && this.value == null) {\r\n this.value = this.min.toString();\r\n } else {\r\n if (this.readonly === false) {\r\n const countAfterDot =\r\n this.value !== null && this.value !== '' && this.value !== undefined\r\n ? this.value.toString().length - 1 - this.value.toString().indexOf('.')\r\n : 0;\r\n if (this.value == null) {\r\n this.value = '0';\r\n } else {\r\n const defaultStep: number =\r\n countAfterDot > this.decimalNumber ? Math.pow(this.decimalConstant, this.decimalNumber) : Math.pow(this.decimalConstant, countAfterDot);\r\n this.dotPosition = this.value.toString().indexOf('.') + 1;\r\n if (this.value && this.value.toString().match(/\\./g)) {\r\n if (this.dotPosition > this.cursorPosition) {\r\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\r\n this.count = this.tmp + +this.intStep;\r\n if (this.max === null || Number(this.count) <= this.max) {\r\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);\r\n }\r\n } else {\r\n if (this.max === null || Number(this.value) < Number(this.max)) {\r\n if (this.customStep !== null) {\r\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\r\n this.lastStep =\r\n parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) +\r\n parseFloat(this.customStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) -\r\n parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot));\r\n this.count = parseFloat(this.tmp) + this.lastStep;\r\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot).replace(/,/g, '');\r\n } else {\r\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\r\n this.count = parseFloat(this.tmp) + defaultStep;\r\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot).replace(/,/g, '');\r\n }\r\n }\r\n }\r\n } else {\r\n if (this.max === null || Number(this.value) < parseInt(this.max.toString())) {\r\n this.tmp = this.value.toString().replace(/,/g, '');\r\n this.count = +this.tmp + +this.intStep;\r\n\r\n this.value = this.count.toString().replace(/,/g, '');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n downStepHandel() {\r\n this.userEdite = true;\r\n if (this.min != null && this.value == null) {\r\n this.value = this.min.toString();\r\n } else {\r\n if (this.readonly === false) {\r\n const countAfterDot =\r\n this.value !== null && this.value !== '' && this.value !== undefined\r\n ? this.value.toString().length - 1 - this.value.toString().indexOf('.')\r\n : 0;\r\n if (this.value == null) {\r\n this.value = '0';\r\n } else {\r\n const defaultStep: number =\r\n countAfterDot > this.decimalNumber ? Math.pow(this.decimalConstant, this.decimalNumber) : Math.pow(this.decimalConstant, countAfterDot);\r\n this.dotPosition = this.value.toString().indexOf('.') + 1;\r\n if (this.value && this.value.toString().match(/\\./g)) {\r\n if (this.dotPosition > this.cursorPosition) {\r\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\r\n this.count = parseFloat(this.value.replace(/,/g, '')) - +this.intStep;\r\n if (this.min === null || Number(this.count) >= this.min) {\r\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot).replace(/,/g, '');\r\n }\r\n } else {\r\n if (this.min === null || Number(this.value) > Number(this.min)) {\r\n if (this.customStep !== null) {\r\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\r\n this.lastStep =\r\n parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) +\r\n parseFloat(this.customStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) -\r\n parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot));\r\n this.count = parseFloat(this.tmp) - this.lastStep;\r\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);\r\n } else {\r\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\r\n this.count = parseFloat(this.tmp) - defaultStep;\r\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);\r\n }\r\n }\r\n }\r\n } else {\r\n if (this.min === null || Number(this.value) > parseInt(this.min.toString())) {\r\n this.tmp = +this.value.toString().replace(/,/g, '');\r\n this.count = +this.tmp - +this.intStep;\r\n this.value = this.count.toString().replace(/,/g, '');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXNumberBoxComponent } from './number-box.component';\r\nimport { AXButtonModule } from '../button/button.module';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n declarations: [AXNumberBoxComponent],\r\n imports: [CommonModule, AXButtonModule, FormsModule],\r\n exports: [AXNumberBoxComponent],\r\n providers: []\r\n})\r\nexport class AXNumberBoxModule {}\r\n","import { Component, ElementRef } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-page-content',\r\n template: `\r\n <div class='ax-page-content'>\r\n <div class='inner-content'>\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n `,\r\n styles: [\r\n ':host { height:100% }'\r\n ]\r\n})\r\nexport class AXPageContentComponent {\r\n constructor(private el: ElementRef) { }\r\n}\r\n","import {\r\n Component\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-page-footer',\r\n template:\r\n `<div class='ax-page-footer' >\r\n <ng-content></ng-content>\r\n </div>`\r\n})\r\n\r\nexport class AXPageFooterComponent { };","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXPageContentComponent } from './content.component';\r\nimport { AXPageFooterComponent } from './footer.component';\r\nimport { AXPageComponent } from './page.component';\r\nimport { AXLoadingModule } from '../loading/loading.module';\r\n\r\n@NgModule({\r\n declarations: [AXPageContentComponent, AXPageFooterComponent, AXPageComponent],\r\n imports: [CommonModule, AXLoadingModule],\r\n exports: [AXPageContentComponent, AXPageFooterComponent, AXPageComponent],\r\n providers: [],\r\n})\r\nexport class AXPageModule { }","import { Component, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, ViewChild, ElementRef } from '@angular/core';\r\nimport { AXBaseTextComponent, AXValidatableComponent } from '../base/element.class';\r\n\r\n@Component({\r\n selector: 'ax-password-box',\r\n templateUrl: './password-box.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { style: 'display: contents;' },\r\n providers: [{ provide: AXValidatableComponent, useExisting: AXPasswordBoxComponent }]\r\n})\r\nexport class AXPasswordBoxComponent extends AXBaseTextComponent {\r\n constructor(protected cdr: ChangeDetectorRef, ref: ElementRef) {\r\n super(cdr, ref);\r\n }\r\n\r\n type: 'text' | 'password' = 'password';\r\n eyeIcon: string = 'far fa-eye';\r\n\r\n handleShowPassword() {\r\n this.eyeIcon = 'far fa-eye-slash';\r\n if (this.type === 'password') {\r\n this.type = 'text';\r\n this.eyeIcon = 'far fa-eye-slash';\r\n } else {\r\n this.type = 'password';\r\n this.eyeIcon = 'far fa-eye';\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXPasswordBoxComponent } from './password-box.component';\r\nimport { AXButtonModule } from '../button/button.module';\r\nimport { AXFormGroupModule } from '../form-group/form-group.module';\r\n\r\nconst COMPONENT = [AXPasswordBoxComponent];\r\nconst MODULES = [CommonModule, AXButtonModule,AXFormGroupModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: []\r\n})\r\nexport class AXPasswordBoxModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXPopupComponent } from './popup.component';\r\nimport { AXPopupService } from './popup.service';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { AXButtonModule } from '../button/button.module';\r\nimport { AXTranslatorModule } from '@acorex/core';\r\nimport { AXLoadingModule } from '../loading/loading.module';\r\n@NgModule({\r\n declarations: [AXPopupComponent],\r\n imports: [CommonModule, DragDropModule, A11yModule, AXButtonModule, AXTranslatorModule, AXLoadingModule],\r\n exports: [AXPopupComponent],\r\n entryComponents: [AXPopupComponent],\r\n providers: [AXPopupService]\r\n})\r\nexport class AXPopupModule { }\r\n","import { Component, Input } from '@angular/core';\r\nimport { AXBaseComponent } from '../base/element.class';\r\n\r\n@Component({\r\n selector: 'ax-progress-bar',\r\n templateUrl: './progress-bar.component.html'\r\n})\r\nexport class AXProgressBarComponent extends AXBaseComponent {\r\n @Input() progress: number = 0;\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXProgressBarComponent } from './progress-bar.component';\r\n\r\n@NgModule({\r\n declarations: [AXProgressBarComponent],\r\n imports: [CommonModule],\r\n exports: [AXProgressBarComponent],\r\n entryComponents: [AXProgressBarComponent],\r\n providers: []\r\n})\r\nexport class AXProgressBarModule {}\r\n","import { AXDataEvent } from '../base/events.class';\r\nimport { AXTranslator } from '@acorex/core';\r\n\r\nexport type AXQueryBuilderDataType = 'string' | 'number' | 'date' | 'time' | 'datetime' | 'boolean';\r\nexport type AXQueryBuilderGroupItem = AXQueryBuilderGroup | AXQueryBuilderRule;\r\nexport type AXQueryBuilderControlType = 'textBox' | 'selectBox' | 'numberBox' | 'dataPicker' | 'lov' | 'boolean';\r\nexport type AXQueryBuilderStringType = 'simple' | 'sql' | 'sodoco' | 'elastic';\r\n\r\nexport class AXQueryBuilderControl {\r\n type: AXQueryBuilderControlType = 'textBox';\r\n options: any = {};\r\n}\r\n\r\nexport class AXQueryBuilderRule {\r\n dataField: string;\r\n caption: string;\r\n dataType: AXQueryBuilderDataType;\r\n control: AXQueryBuilderControl;\r\n operator: string;\r\n value?: any;\r\n text?: string;\r\n dataFieldItem: any;\r\n valueItem?: any;\r\n onDemandLabel?: string;\r\n}\r\n\r\nexport class AXQueryBuilderGroup {\r\n items: AXQueryBuilderGroupItem[];\r\n condition: string;\r\n queryString: string;\r\n queryStringElastic:string\r\n}\r\nexport class AXQueryBuilderField {\r\n caption: string;\r\n dataField: string;\r\n dataType: AXQueryBuilderDataType;\r\n default?: any;\r\n options?: any;\r\n}\r\n\r\nexport class AXQueryBuilderRuleEvent extends AXDataEvent<AXQueryBuilderRuleEvent> {\r\n items: AXQueryBuilderRule;\r\n}\r\n\r\nexport class AXQueryBuilderGroupEvent extends AXDataEvent<AXQueryBuilderGroupEvent> {\r\n items?: AXQueryBuilderRule;\r\n groups: AXQueryBuilderGroup;\r\n}\r\n\r\nexport class AXQueryBuilderPopup {\r\n name: string;\r\n type: string;\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectorRef, ElementRef, ChangeDetectionStrategy, ViewChild } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\nimport { AXBaseTextComponent } from '../base/element.class';\r\nimport { AXBaseEvent, AXValueEvent } from '../base/events.class';\r\n\r\n\r\n@Component({\r\n selector: 'ax-search-box',\r\n templateUrl: './searchbox.component.html',\r\n host: { style: 'display: contents;' },\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXSearchBoxComponent extends AXBaseTextComponent {\r\n\r\n @Output()\r\n public textChanged: EventEmitter<AXValueEvent<any>> = new EventEmitter<AXValueEvent<any>>();\r\n @Output()\r\n onButtonClick: EventEmitter<AXValueEvent<any>> = new EventEmitter<AXValueEvent<any>>();\r\n\r\n @Input()\r\n placeholder: string = 'جستجو ...';\r\n\r\n constructor(protected cdr: ChangeDetectorRef, ref: ElementRef) {\r\n super(cdr, ref);\r\n }\r\n\r\n private _text: string;\r\n @Input()\r\n public get text(): string {\r\n return this._text;\r\n }\r\n public set text(v: string) {\r\n if (v !== this._text) {\r\n const old = this._text;\r\n this._text = v;\r\n this.textChanged.emit({\r\n component: this,\r\n value: v,\r\n oldValue: old\r\n });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.value = '';\r\n this.text = '';\r\n }\r\n\r\n onSearchChanged(text: string) {\r\n if (!this.searchChangeObserver) {\r\n Observable.create(observer => {\r\n\r\n this.searchChangeObserver = observer;\r\n })\r\n .pipe(debounceTime(this.delay))\r\n .pipe(distinctUntilChanged())\r\n .subscribe(c => {\r\n this.text = c;\r\n this.value = c;\r\n });\r\n }\r\n\r\n this.searchChangeObserver.next(text);\r\n }\r\n\r\n @Input()\r\n delay: number = 500;\r\n\r\n private searchChangeObserver: any;\r\n\r\n handleKeyEvent(e: KeyboardEvent) {\r\n // this.searchChangeObserver.next(this.text);\r\n this.onkey.emit(e);\r\n }\r\n\r\n click(e: MouseEvent) {\r\n this.onButtonClick.emit({\r\n component: this,\r\n htmlElement: this.ref.nativeElement,\r\n value: this.text\r\n });\r\n // this.searchChangeObserver.next(this.text);\r\n }\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n Input,\r\n EventEmitter,\r\n Output,\r\n ViewChild,\r\n ChangeDetectorRef,\r\n ElementRef,\r\n ContentChild,\r\n NgZone,\r\n QueryList,\r\n ContentChildren,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\nimport { AXTextBoxComponent } from '../textbox/textbox.component';\r\nimport { AXDropdownComponent } from '../dropdown/dropdown.component';\r\nimport { AXBaseSizableComponent, AXBaseInputComponent, AXElementSize, AXValidatableComponent } from '../base/element.class';\r\nimport { AXDataSourceComponent } from '../data-source/datasource.component';\r\nimport { AXValidation } from '../validation/validation.component';\r\nimport { AXDataSourceReadParams } from '../data-source/read-param';\r\nimport { AXBaseEvent } from '../base/events.class';\r\nimport { AXSearchBoxComponent } from '../searchbox/searchbox.component';\r\nimport { AXConfig } from '@acorex/core';\r\nimport { differenceBy } from 'lodash';\r\nexport class AXSelectBoxSelectionChangedEvent extends AXBaseEvent {\r\n constructor(component: any, public selectedItems: any[], public selectedValues: any[] | any) {\r\n super();\r\n this.component = component;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'ax-select-box',\r\n templateUrl: './selectbox.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { style: 'display: contents;' },\r\n providers: [{ provide: AXValidatableComponent, useExisting: AXSelectBoxComponent }]\r\n})\r\nexport class AXSelectBoxComponent extends AXValidatableComponent implements AXBaseSizableComponent, AXBaseInputComponent {\r\n @Input() showDropDownButton: boolean = true;\r\n\r\n @ContentChild(TemplateRef, { static: true })\r\n rowTemplate: TemplateRef<any>;\r\n\r\n @Input()\r\n rowInputTemplate: TemplateRef<any>;\r\n @ViewChild(AXTextBoxComponent, { static: true })\r\n span: ElementRef<HTMLElement>;\r\n\r\n @ViewChild(AXTextBoxComponent, { static: true })\r\n textbox: AXTextBoxComponent;\r\n\r\n @ViewChild('listContainer', { static: true })\r\n listContainer: ElementRef<HTMLDivElement>;\r\n\r\n @ViewChild('serchBox', { static: false })\r\n serchBox: AXSearchBoxComponent;\r\n\r\n @ViewChild('textBoxSelectBox', { static: true })\r\n textBoxSelectBox: AXTextBoxComponent;\r\n\r\n @Input() showCheckBox: boolean = true;\r\n\r\n @Input() readonly: boolean = false;\r\n\r\n @Input() rtl: boolean = AXConfig.get('layout.rtl');\r\n\r\n @Input() disabled: boolean;\r\n\r\n @Input() placeholder: string;\r\n\r\n @Input() size: AXElementSize = 'md';\r\n\r\n @Input() allowNull: boolean = true;\r\n\r\n @Input() textAlign: 'right' | 'left' | null = null;\r\n\r\n @Input() bufferSize: number = 100;\r\n\r\n @Input() remoteOperation: boolean = false;\r\n\r\n // this input is Private and only use in LOV\r\n\r\n currentfocusedIndex: number = -1;\r\n showLoading: boolean = false;\r\n\r\n skip: number = -1;\r\n searchText: string = '';\r\n // @Input()\r\n // chipsWidth: string = '';\r\n\r\n text: string = '';\r\n totalCount: number = 0;\r\n\r\n @ContentChild(AXDataSourceComponent, { static: true })\r\n private _contentDataSource: AXDataSourceComponent;\r\n\r\n private _dataSource: AXDataSourceComponent;\r\n\r\n @Input()\r\n public get dataSource(): AXDataSourceComponent {\r\n return this._dataSource ? this._dataSource : this._contentDataSource;\r\n }\r\n\r\n public set dataSource(v: AXDataSourceComponent) {\r\n this._dataSource = v;\r\n }\r\n\r\n @ContentChild(AXValidation, { static: true })\r\n private _contentValidation: AXValidation;\r\n\r\n private _validation: AXValidation;\r\n\r\n @Input()\r\n public get validation(): AXValidation {\r\n return this._validation ? this._validation : this._contentValidation;\r\n }\r\n\r\n public set validation(v: AXValidation) {\r\n this._validation = v;\r\n }\r\n\r\n constructor(private cdr: ChangeDetectorRef, private ref: ElementRef, private zone: NgZone) {\r\n super();\r\n }\r\n\r\n @ViewChild('d', { static: true })\r\n dropdown: AXDropdownComponent;\r\n\r\n @Input() allowSearch: boolean = true;\r\n @Input() textField: string = 'text';\r\n @Input() valueField: string = 'value';\r\n @Input() mode: 'single' | 'multiple' = 'single';\r\n itemRemove: boolean = false;\r\n @Output() itemsChange: EventEmitter<any[]> = new EventEmitter<any[]>();\r\n\r\n @Output() onBlur: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output() onFocus: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n private _items: any[] = [];\r\n @Input()\r\n public get items(): any[] {\r\n return this._items;\r\n }\r\n public set items(v: any[]) {\r\n this._items = v;\r\n if (this.itemsChange) {\r\n this.itemsChange.emit(v);\r\n }\r\n debugger;\r\n if (this.itemsStatusObserver) {\r\n this.itemsStatusObserver.next(this.items.length);\r\n }\r\n }\r\n\r\n hasSelectedValue: boolean = false;\r\n itemsFiltered: any[] = [];\r\n\r\n // #endregion\r\n\r\n dropDownDisabled: boolean = false;\r\n\r\n @Output()\r\n selectionChanged: EventEmitter<AXSelectBoxSelectionChangedEvent> = new EventEmitter<AXSelectBoxSelectionChangedEvent>();\r\n\r\n @Output()\r\n selectedItemsChange: EventEmitter<any[]> = new EventEmitter<any[]>();\r\n\r\n private _selectedItems: any[] = [];\r\n @Input()\r\n public get selectedItems(): any[] {\r\n return this._selectedItems || [];\r\n }\r\n public set selectedItems(v: any[]) {\r\n this.setSelectedItemsChange(v);\r\n // if (!v) {\r\n // v = [];\r\n // }\r\n\r\n // const old = this.selectedItems;\r\n // if (JSON.stringify(old) !== JSON.stringify(v)) {\r\n // this._selectedItems = this.mode == 'single' ? v.slice(0, 1) : [...new Set(v)]; //[...new Set(v[0])] : [...new Set(v)];\r\n // this._selectedItems.forEach((c) => (c.selected = true));\r\n // this.selectedItemsChange.emit(this._selectedItems);\r\n // this.selectedValuesChange.emit(this.selectedValues);\r\n // this.clearValidationStyle(this.ref.nativeElement);\r\n // this.waitForData(() => {\r\n // if (this._selectedItems) {\r\n // this.items.forEach((c) => (c.selected = this._selectedItems.some((i) => i[this.valueField] == c[this.valueField])));\r\n // }\r\n // });\r\n // }\r\n }\r\n\r\n setSelectedItemsChange(v: any[]) {\r\n if (!v) {\r\n v = [];\r\n }\r\n\r\n const old = this.selectedItems;\r\n if (JSON.stringify(old) !== JSON.stringify(v)) {\r\n this._selectedItems = this.mode == 'single' ? v.slice(0, 1) : [...new Set(v)]; //[...new Set(v[0])] : [...new Set(v)];\r\n this._selectedItems.forEach((c) => (c.selected = true));\r\n this.selectedItemsChange.emit(this._selectedItems);\r\n this.selectedValuesChange.emit(this.selectedValues);\r\n this.clearValidationStyle(this.ref.nativeElement);\r\n this.waitForData(() => {\r\n if (this._selectedItems) {\r\n this.items.forEach((c) => (c.selected = this._selectedItems.some((i) => i[this.valueField] == c[this.valueField])));\r\n }\r\n });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n if (this.rowTemplate === undefined && this.rowInputTemplate != undefined) {\r\n this.rowTemplate = this.rowInputTemplate;\r\n }\r\n if (this.rtl == null) {\r\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\r\n }\r\n }\r\n\r\n scrolled(e) {\r\n if (\r\n this.remoteOperation &&\r\n this.totalCount > this.items.length &&\r\n this.listContainer.nativeElement.scrollHeight != 0 &&\r\n this.listContainer.nativeElement.scrollHeight - this.listContainer.nativeElement.scrollTop - 300 < 50\r\n ) {\r\n if (this.skip !== this.items.length) {\r\n this.showLoading = true;\r\n this.skip = this.items.length;\r\n const params: AXDataSourceReadParams = {};\r\n params.skip = this.items.length;\r\n params.take = this.bufferSize; //* (Math.floor(this.items.length / this.bufferSize) + 1);\r\n if (this.textbox) {\r\n params.searchText = this.text;\r\n } else {\r\n params.searchText = null;\r\n }\r\n this.fetch(params);\r\n }\r\n }\r\n }\r\n private setSelectedItems(v: any[], isUserInput: boolean) {\r\n let changed = false;\r\n if (isUserInput) {\r\n changed = JSON.stringify(v) !== JSON.stringify(this.selectedItems);\r\n }\r\n this.selectedItems = v;\r\n this.setSelectedIndex();\r\n if (isUserInput && changed) {\r\n this.emitSelectionChangedEvent();\r\n }\r\n }\r\n\r\n private searchChangeObserver: any;\r\n\r\n delay: number = 500;\r\n\r\n textChanged(e) {\r\n if ((e.value === null || e.value === undefined || e.value === '') && (e.oldValue === null || e.oldValue === undefined || e.oldValue === '')) {\r\n } else {\r\n this.currentfocusedIndex = -1;\r\n if (this.remoteOperation) {\r\n this.searchText = this.text;\r\n // this.searchText = e.value;\r\n // this.text = e.value;\r\n // this.items = [];\r\n let t = this.items.length;\r\n for (let i = 0; i < t; i++) {\r\n this.items.pop();\r\n }\r\n // this.items.forEach((element) => {\r\n // this.items.pop();\r\n // });\r\n const params: AXDataSourceReadParams = {};\r\n params.searchText = this.text;\r\n // params.searchText = e.value;\r\n params.skip = 0;\r\n params.take = this.bufferSize;\r\n this.fetch(params);\r\n }\r\n }\r\n }\r\n\r\n onButtonClick(e) {\r\n console.log('onButtonClick', e);\r\n }\r\n\r\n private setSelectedIndex(sign: -1 | 1 | null = null): void {\r\n if (sign == null) {\r\n if (!this.remoteOperation && this.text && this.text !== '') {\r\n this.currentfocusedIndex = this.items\r\n .filter((c) => (c[this.textField] as string).toLowerCase().includes(this.text.toLowerCase()))\r\n .indexOf(this.selectedItems[this.selectedItems.length - 1]);\r\n } else {\r\n this.currentfocusedIndex = this.items.indexOf(this.selectedItems[this.selectedItems.length - 1]);\r\n }\r\n } else {\r\n sign === -1 ? this.currentfocusedIndex-- : this.currentfocusedIndex++;\r\n }\r\n\r\n if (this.remoteOperation) {\r\n this.itemsFiltered = this.items;\r\n } else {\r\n this.itemsFiltered = this.text\r\n ? this.items.filter((c) => (c[this.textField] as string).toLowerCase().includes(this.text.toLowerCase()))\r\n : this.items;\r\n }\r\n\r\n this.currentfocusedIndex =\r\n this.currentfocusedIndex < 0\r\n ? 0\r\n : this.currentfocusedIndex >= this.itemsFiltered.length\r\n ? this.itemsFiltered.length - 1\r\n : this.currentfocusedIndex;\r\n //\r\n // set scroll\r\n if (this.listContainer) {\r\n this.zone.runOutsideAngular(() => {\r\n const itemDiv = this.listContainer.nativeElement.querySelector(`.list-item:nth-child(${this.currentfocusedIndex})`);\r\n if (itemDiv) {\r\n itemDiv.scrollIntoView({ behavior: 'smooth' });\r\n }\r\n });\r\n }\r\n }\r\n\r\n @Output()\r\n selectedValuesChange: EventEmitter<any[] | any> = new EventEmitter<any[] | any>();\r\n\r\n @Input()\r\n public get selectedValues(): any[] | any {\r\n if (this.mode === 'single') {\r\n return this._selectedItems.map((c) => c[this.valueField])[0];\r\n } else {\r\n return this._selectedItems.map((c) => c[this.valueField]) || [];\r\n }\r\n }\r\n\r\n public set selectedValues(v: any[] | any) {\r\n if (this.compareSelectedValues(v)) {\r\n return;\r\n }\r\n if (v == null) {\r\n this.selectedItems = [];\r\n } else {\r\n if (v !== undefined) {\r\n if (v != [] && v != '' && v != null) {\r\n this.hasSelectedValue = true;\r\n }\r\n\r\n this.waitForData(() => {\r\n if (this.mode === 'single') {\r\n if (this.items.filter((c) => v == c[this.valueField])) {\r\n this.selectedItems = this.items.filter((c) => v == c[this.valueField]);\r\n } else {\r\n this.selectedItems = [];\r\n }\r\n } else {\r\n if (Array.isArray(v)) {\r\n debugger;\r\n if (this.selectedItems.length > v.length) {\r\n this.selectedItems = this.selectedItems.filter((c) => v.includes(c[this.valueField]));\r\n } else {\r\n let addId = [];\r\n v.forEach((vId) => {\r\n addId.push({\r\n [this.valueField]: vId\r\n });\r\n });\r\n\r\n let newId = differenceBy(addId, this.selectedItems, this.valueField);\r\n let vv = [];\r\n newId.forEach((rc) => {\r\n vv.push(rc[this.valueField]);\r\n });\r\n this.items\r\n .filter((c) => vv.includes(c[this.valueField]))\r\n .forEach((res) => {\r\n this.selectedItems.push(res);\r\n });\r\n // this.selectedItems.push(this.items.filter((c) => vv.includes(c[this.valueField])));\r\n this.setSelectedItemsChange(this.selectedItems);\r\n }\r\n\r\n // this.selectedItems = this.items.filter((c) => v.includes(c[this.valueField]));\r\n } else if (v) {\r\n this.selectedItems = this.items.filter((c) => v === c[this.valueField]);\r\n } else {\r\n this.selectedItems = [];\r\n }\r\n }\r\n this.selectedValuesChange.emit(this.selectedValues);\r\n this.cdr.markForCheck();\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n }\r\n }\r\n\r\n private compareSelectedValues(newValue: any[] | any) {\r\n const currentValue = this.selectedValues;\r\n return (currentValue == null && newValue == null) || JSON.stringify(currentValue) === JSON.stringify(newValue);\r\n }\r\n\r\n private setSelectedValues(v: any[] | any, isUserInput: boolean) {\r\n const changed = isUserInput ? !this.compareSelectedValues(v) : false;\r\n this.selectedValues = v;\r\n if (isUserInput && changed) {\r\n this.emitSelectionChangedEvent();\r\n }\r\n }\r\n\r\n private emitSelectionChangedEvent() {\r\n this.selectionChanged.emit(new AXSelectBoxSelectionChangedEvent(this, this.selectedItems, this.selectedValues));\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.bufferSize < 10) {\r\n this.bufferSize = 10;\r\n }\r\n if (this.mode == 'single') {\r\n this.showCheckBox = false;\r\n }\r\n debugger;\r\n if (!this.remoteOperation || (this.remoteOperation && this.hasSelectedValue)) {\r\n this.refresh();\r\n }\r\n }\r\n dropdownToggle(e) {\r\n this.text = '';\r\n if (this.dropdown.isOpen) {\r\n this.refresh();\r\n setTimeout(() => {\r\n if (this.serchBox) {\r\n this.serchBox.focus();\r\n }\r\n }, 1);\r\n } else {\r\n // this.refresh();\r\n }\r\n }\r\n\r\n ngAfterContentInit() {\r\n // if (!this.allowSearch) {\r\n // if (this.readonly == false) {\r\n // this.itemRemove = true;\r\n // this.readonly = true;\r\n // }\r\n // }\r\n this.initValidation(this.ref, 'selectedItems', this.validation);\r\n if (this.dataSource) {\r\n if (this.allowSearch == false) {\r\n this.fetch();\r\n }\r\n this.dataSource.onDataReceived.subscribe((c) => {\r\n this.showLoading = false;\r\n this.dataReceived(c.data.result);\r\n });\r\n }\r\n this.cdr.markForCheck();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private dataReceived(data: any) {\r\n if (this.remoteOperation) {\r\n if (this.searchText && this.searchText != null && this.searchText !== '') {\r\n if (data.totalCount) {\r\n if (this.items.length == 0) {\r\n //this.items = data.items;\r\n data.items.forEach((item) => {\r\n this.items.push(item);\r\n });\r\n } else {\r\n data.items.forEach((item) => {\r\n this.items.push(item);\r\n });\r\n // if (this.itemsStatusObserver) {\r\n // this.itemsStatusObserver.next(this.items.length);\r\n // }\r\n }\r\n\r\n this.totalCount = data.totalCount;\r\n } else {\r\n if (this.items.length == 0) {\r\n this.items = data.items;\r\n } else {\r\n data.items.forEach((item) => {\r\n this.items.push(item);\r\n });\r\n // if (this.itemsStatusObserver) {\r\n // this.itemsStatusObserver.next(this.items.length);\r\n // }\r\n }\r\n this.totalCount = data.items == undefined ? 0 : data.items.length;\r\n }\r\n } else if (data.items && data.items.length === data.totalCount) {\r\n this.items = data.items;\r\n this.totalCount = data.items.length;\r\n } else if (data.totalCount) {\r\n data.items.forEach((elm) => {\r\n this.items.push(elm);\r\n });\r\n // if (this.itemsStatusObserver) {\r\n // this.itemsStatusObserver.next(this.items.length);\r\n // }\r\n this.totalCount = data.totalCount;\r\n } else {\r\n data.forEach((elm) => {\r\n this.items.push(elm);\r\n // if (this.itemsStatusObserver) {\r\n // this.itemsStatusObserver.next(this.items.length);\r\n // }\r\n });\r\n this.totalCount = data.length;\r\n }\r\n } else {\r\n this.items = data;\r\n }\r\n\r\n this.cdr.markForCheck();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n // private params: AXDataSourceReadParams = {};\r\n\r\n fetch(params: AXDataSourceReadParams = {}) {\r\n // this.params = params;\r\n if (this.dataSource) {\r\n this.showLoading = true;\r\n this.dataSource.fetch(params);\r\n }\r\n }\r\n\r\n refresh() {\r\n const params: AXDataSourceReadParams = {};\r\n if (this.remoteOperation) {\r\n params.skip = 0;\r\n this.skip = 0;\r\n params.take = this.bufferSize;\r\n }\r\n if (this.dataSource != undefined) {\r\n // this.items = [];\r\n // this.items.forEach((element) => {\r\n // this.items.pop();\r\n // });\r\n\r\n let t = this.items.length;\r\n for (let i = 0; i < t; i++) {\r\n this.items.pop();\r\n }\r\n this.fetch(params);\r\n }\r\n }\r\n\r\n handleItemRemoveClick(item) {\r\n if (this.mode === 'single') {\r\n // this.selectedItems = null;\r\n this.setSelectedValues(null, true);\r\n // this.selectedItemsChange.emit(this._selectedItems);\r\n // this.clearValidationStyle(this.ref.nativeElement);\r\n } else {\r\n // this.selectedItems = this.selectedItems.filter((c) => c !== item);\r\n this.setSelectedItems(\r\n this.selectedItems.filter((c) => c[this.valueField] !== item[this.valueField]),\r\n true\r\n );\r\n // this._selectedItems = this._selectedItems.filter(c => c !== item);\r\n // this.selectedItemsChange.emit(this._selectedItems);\r\n // this.clearValidationStyle(this.ref.nativeElement);\r\n }\r\n // this.text = '';\r\n this.cdr.markForCheck();\r\n }\r\n\r\n onFocusTextBox(e) {}\r\n onTextBoxClick(e) {\r\n if (this.disabled == false && this.readonly == false) {\r\n this.dropdown.open();\r\n }\r\n }\r\n\r\n handleItemClick(e: MouseEvent, item: any) {\r\n const value = item[this.valueField];\r\n\r\n if (this.mode === 'single') {\r\n // this.selectedValues = value;\r\n this.setSelectedValues(value, true);\r\n } else {\r\n const exists = this.selectedValues.slice(0);\r\n if (exists.includes(value)) {\r\n if (this.allowNull == true || (this.allowNull == false && this.selectedItems.length > 1)) {\r\n this.handleItemRemoveClick(item);\r\n }\r\n } else {\r\n exists.push(value);\r\n // this.selectedValues = exists;\r\n this.setSelectedValues(exists, true);\r\n }\r\n }\r\n\r\n if (this.mode == 'single') {\r\n this.text = '';\r\n this.dropdown.close();\r\n this.cdr.markForCheck();\r\n }\r\n // if (e.stopPropagation() == undefined) {\r\n // e.stopPropagation();\r\n // }\r\n setTimeout(() => {\r\n if (this.serchBox) {\r\n this.serchBox.focus();\r\n }\r\n }, 0);\r\n }\r\n\r\n handleKeyEventSearch(e: KeyboardEvent) {\r\n if (this.disabled || this.readonly) {\r\n this.dropdown.close();\r\n setTimeout(() => {\r\n this.textBoxSelectBox.focus();\r\n }, 0);\r\n return false;\r\n }\r\n if (e.key === 'Escape') {\r\n this.text = null;\r\n setTimeout(() => {\r\n this.textBoxSelectBox.focus();\r\n }, 0);\r\n }\r\n if ((e.key === 'ArrowDown' || e.key === 'ArrowUp') && this.getItems().length > 0 && e.type === 'keydown') {\r\n if (this.mode === 'single') {\r\n this.currentfocusedIndex = this.currentfocusedIndex + (e.key === 'ArrowDown' ? 1 : -1);\r\n this.selectedItemByIndex(this.currentfocusedIndex);\r\n } else {\r\n if (this.dropdown.isOpen) {\r\n this.setSelectedIndex(e.key === 'ArrowDown' ? 1 : -1);\r\n } else {\r\n this.dropdown.open();\r\n setTimeout(() => {\r\n if (this.serchBox) {\r\n this.serchBox.focus();\r\n }\r\n }, 0);\r\n }\r\n }\r\n }\r\n // if (e.key == 'Enter' && this.dropdown.isOpen && this.mode == 'single') {\r\n // this.dropdown.close();\r\n // setTimeout(() => {\r\n // this.dropdown.focus();\r\n // }, 0);\r\n // }\r\n //e.stopPropagation();\r\n //e.preventDefault();\r\n e.stopImmediatePropagation();\r\n if (e.type === 'keydown' && e.key == 'Enter' && this.dropdown.isOpen) {\r\n if (!this.remoteOperation && this.text && this.text !== '') {\r\n this.itemsFiltered = this.items.filter((c) => (c[this.textField] as string).toLowerCase().includes(this.text.toLowerCase()));\r\n if (this.itemsFiltered.length === 1) {\r\n this.currentfocusedIndex = 0;\r\n }\r\n } else {\r\n this.itemsFiltered = this.items;\r\n }\r\n\r\n if (\r\n this.selectedItems.filter((c) => c[this.valueField] === this.itemsFiltered[this.currentfocusedIndex][this.valueField]).length > 0 &&\r\n this.mode == 'multiple'\r\n ) {\r\n if (this.allowNull == true || (this.allowNull == false && this.selectedItems.length > 1)) {\r\n if (!this.remoteOperation && this.text && this.text !== '') {\r\n this.selectedItems = this.selectedItems.filter(\r\n (c) =>\r\n c !==\r\n this.items.filter((c) => (c[this.textField] as string).toLowerCase().includes(this.text.toLowerCase()))[this.currentfocusedIndex]\r\n );\r\n } else {\r\n this.selectedItems = this.selectedItems.filter((c) => c[this.valueField] !== this.items[this.currentfocusedIndex][this.valueField]);\r\n }\r\n this.emitSelectionChangedEvent();\r\n }\r\n } else {\r\n if (this.mode == 'multiple') {\r\n if (this.currentfocusedIndex != -1) {\r\n if (!this.remoteOperation && this.text && this.text !== '') {\r\n if (this.itemsFiltered.length === 1) {\r\n this.selectedItems.push(this.itemsFiltered[0]);\r\n } else {\r\n this.selectedItems.push(this.itemsFiltered[this.currentfocusedIndex]);\r\n }\r\n } else {\r\n this.selectedItems.push(this.items[this.currentfocusedIndex]);\r\n }\r\n this.emitSelectionChangedEvent();\r\n }\r\n } else {\r\n if (this.text && this.itemsFiltered.length === 1) {\r\n this.setSelectedItems(this.itemsFiltered, true);\r\n }\r\n if (this.mode == 'single') {\r\n this.dropdown.close();\r\n setTimeout(() => {\r\n this.textBoxSelectBox.focus();\r\n }, 0);\r\n }\r\n }\r\n }\r\n e.stopPropagation();\r\n e.preventDefault();\r\n e.stopImmediatePropagation();\r\n }\r\n this.cdr.markForCheck();\r\n }\r\n\r\n isChar(str: string) {\r\n if (\r\n str.includes('Shift') ||\r\n str.includes('Tab') ||\r\n str.includes('Control') ||\r\n str.includes('Alt') ||\r\n str.includes('CapsLock') ||\r\n str.includes('Meta') ||\r\n str.includes('ContextMenu') ||\r\n str.includes('Enter') ||\r\n str.includes('Backspace') ||\r\n str.includes('PrintScreen') ||\r\n str.includes('ScrollLock') ||\r\n str.includes('Pause') ||\r\n str.includes('Home') ||\r\n str.includes('End') ||\r\n str.includes('Insert') ||\r\n str.includes('PageUp') ||\r\n str.includes('Delete') ||\r\n str.includes('PageDown') ||\r\n str.includes('NumLock') ||\r\n str.includes('Escape') ||\r\n str.includes('Arrow') ||\r\n str.includes('ّF1') ||\r\n str.includes('F2') ||\r\n str.includes('F3') ||\r\n str.includes('F4') ||\r\n str.includes('F5') ||\r\n str.includes('F6') ||\r\n str.includes('F7') ||\r\n str.includes('F8') ||\r\n str.includes('F9') ||\r\n str.includes('F10') ||\r\n str.includes('F11') ||\r\n str.includes('F12')\r\n ) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n handleKeyEvent(e: any) {\r\n // const NumberMinusPattern = /[a-zA-Z0-9\\-]/g;\r\n // const Farsi = /[پچجحخهعغفقثصضشسیبلاتنمکگوئدذرزطظژؤإأءًٌٍَُِّ\\s]+$/;\r\n // const inputChar = String.fromCharCode(e.charCode);\r\n // const patternEn = /^[a-zA-Z0-9]*$/;\r\n // const pattern = /^[\\u0600-\\u06FF\\s]+$/;\r\n const inputChar = e.key;\r\n if (\r\n (inputChar != 'Backspace' &&\r\n inputChar != 'Backspace' &&\r\n inputChar != 'Tab' &&\r\n inputChar != 'Enter' &&\r\n inputChar != 'Escape' &&\r\n inputChar != 'ArrowDown' &&\r\n inputChar != 'ArrowUp') ||\r\n e.code === 'Space' ||\r\n e.ctrlKey == true\r\n ) {\r\n e.preventDefault();\r\n }\r\n if (\r\n e.key === 'Backspace' &&\r\n e.type === 'keydown' &&\r\n ((this.allowNull === true && this.selectedItems.length > 0) || (this.allowNull === false && this.selectedItems.length > 1))\r\n ) {\r\n this.selectedItems.pop();\r\n this.emitSelectionChangedEvent();\r\n }\r\n if (this.disabled || this.readonly) {\r\n this.dropdown.close();\r\n setTimeout(() => {\r\n this.textBoxSelectBox.focus();\r\n }, 0);\r\n return false;\r\n }\r\n const INPUT = String.fromCharCode(e.keyCode);\r\n if (this.isChar(e.key) && this.allowSearch && e.ctrlKey == false) {\r\n this.dropdown.open();\r\n setTimeout(() => {\r\n if (this.serchBox) {\r\n this.serchBox.focus();\r\n }\r\n }, 0);\r\n this.text = e.key;\r\n }\r\n\r\n if (e.key === 'Escape') {\r\n this.text = null;\r\n this.dropdown.close();\r\n setTimeout(() => {\r\n this.textBoxSelectBox.focus();\r\n }, 0);\r\n }\r\n if ((e.key === 'ArrowDown' || e.key === 'ArrowUp') && this.getItems().length > 0 && e.type === 'keydown') {\r\n if (this.mode === 'single') {\r\n this.selectedItemByIndex(this.currentfocusedIndex + (e.key === 'ArrowDown' ? 1 : -1));\r\n } else {\r\n if (this.dropdown.isOpen) {\r\n // this.setSelectedIndex((e.key === 'ArrowDown' ? 1 : -1));\r\n if (this.allowSearch == false) {\r\n this.setSelectedIndex(e.key === 'ArrowDown' ? 1 : -1);\r\n } else {\r\n setTimeout(() => {\r\n if (this.serchBox) {\r\n this.serchBox.focus();\r\n }\r\n }, 0);\r\n }\r\n } else {\r\n this.dropdown.open();\r\n if (this.allowSearch == true) {\r\n setTimeout(() => {\r\n if (this.serchBox) {\r\n this.serchBox.focus();\r\n }\r\n }, 0);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (this.allowSearch === false) {\r\n if (e.type === 'keydown' && e.key == 'Enter' && this.dropdown.isOpen) {\r\n e.stopImmediatePropagation();\r\n if (\r\n this.selectedItems.filter((c) => c[this.valueField] === this.itemsFiltered[this.currentfocusedIndex][this.valueField]).length > 0 &&\r\n this.mode == 'multiple'\r\n ) {\r\n if (this.allowNull == true || (this.allowNull == false && this.selectedItems.length > 1)) {\r\n if (!this.remoteOperation && this.text && this.text !== '') {\r\n this.selectedItems = this.selectedItems.filter(\r\n (c) =>\r\n c !==\r\n this.items.filter((c) => (c[this.textField] as string).toLowerCase().includes(this.text.toLowerCase()))[this.currentfocusedIndex]\r\n );\r\n } else {\r\n this.selectedItems = this.selectedItems.filter((c) => c[this.valueField] !== this.items[this.currentfocusedIndex][this.valueField]);\r\n }\r\n this.emitSelectionChangedEvent();\r\n }\r\n } else {\r\n if (this.mode == 'multiple') {\r\n if (this.currentfocusedIndex != -1) {\r\n if (!this.remoteOperation && this.text && this.text !== '') {\r\n if (this.itemsFiltered.length === 1) {\r\n this.selectedItems.push(this.itemsFiltered[0]);\r\n } else {\r\n this.selectedItems.push(this.itemsFiltered[this.currentfocusedIndex]);\r\n }\r\n } else {\r\n this.selectedItems.push(this.items[this.currentfocusedIndex]);\r\n }\r\n this.emitSelectionChangedEvent();\r\n }\r\n } else {\r\n if (this.text && this.itemsFiltered.length === 1) {\r\n this.setSelectedItems(this.itemsFiltered, true);\r\n }\r\n if (this.mode == 'single') {\r\n this.dropdown.close();\r\n setTimeout(() => {\r\n this.textBoxSelectBox.focus();\r\n }, 0);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.cdr.markForCheck();\r\n }\r\n\r\n focus(): void {\r\n this.textbox.focus();\r\n }\r\n\r\n selectedItemByIndex(index: number) {\r\n let item = [];\r\n if (!this.remoteOperation && this.text && this.text !== '') {\r\n this.itemsFiltered = this.items.filter((c) => (c[this.textField] as string).toLowerCase().includes(this.text.toLowerCase()));\r\n\r\n item = this.itemsFiltered[index];\r\n } else {\r\n item = this.items[index];\r\n }\r\n //\r\n // const item = this.text ? this.items.filter((c) => (c[this.textField] as string).toLowerCase().includes(this.text.toLowerCase()))[index] : this.items[index];\r\n if (item) {\r\n this.setSelectedItems([item], true);\r\n }\r\n\r\n this.setSelectedIndex();\r\n }\r\n\r\n getItems(): any[] {\r\n if (this.items == null) {\r\n return [];\r\n }\r\n return !this.remoteOperation && this.text && this.text !== ''\r\n ? this.items.filter((c) => (c[this.textField] as string).toLowerCase().includes(this.text.toLowerCase()))\r\n : this.items;\r\n }\r\n\r\n isItemSelected(item: any): boolean {\r\n return this.selectedItems && this.selectedItems.filter((c) => c[this.valueField] === item[this.valueField]).length > 0;\r\n }\r\n\r\n private itemsStatusObserver: any;\r\n private waitForData(callbackfn: () => void) {\r\n if (this.items.length) {\r\n callbackfn();\r\n } else if (!this.itemsStatusObserver) {\r\n Observable.create((observer) => {\r\n this.itemsStatusObserver = observer;\r\n })\r\n .pipe(debounceTime(100))\r\n .pipe(distinctUntilChanged())\r\n .subscribe((c) => {\r\n debugger;\r\n\r\n callbackfn();\r\n });\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, Input, ViewEncapsulation, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { AXQueryBuilderRule, AXQueryBuilderGroup, AXQueryBuilderRuleEvent, AXQueryBuilderControl } from './query-builder.class';\r\nimport { AXTranslator } from '@acorex/core';\r\nimport { AXSelectBoxComponent } from '../selectbox/selectbox.component';\r\nimport { AXTextBoxComponent } from '../textbox/textbox.component';\r\nimport { AXValidationFormComponent } from '../validation/validation-form.component';\r\n\r\n@Component({\r\n selector: 'ax-query-rule',\r\n templateUrl: 'query-builder-rule.component.html',\r\n host: { class: 'ax ax-query-rule' },\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXQueryBuilderRuleComponent implements OnInit {\r\n @ViewChild('selectBox') selectBox: AXSelectBoxComponent;\r\n @ViewChild('selectBoxValue') selectBoxValue: AXSelectBoxComponent;\r\n\r\n @ViewChild('selectBoxBoolean') selectBoxBoolean: AXSelectBoxComponent;\r\n\r\n @ViewChild('textBoxNameValue') textBoxNameValue: AXTextBoxComponent;\r\n @ViewChild(AXValidationFormComponent) form: AXValidationFormComponent;\r\n @Input()\r\n isEditing: boolean = true;\r\n\r\n @Input()\r\n rule: AXQueryBuilderRule;\r\n\r\n @Input()\r\n parent: AXQueryBuilderGroup;\r\n\r\n @Input()\r\n fields: any[] = [];\r\n\r\n @Output()\r\n onRuleDelete: EventEmitter<AXQueryBuilderRuleEvent> = new EventEmitter<AXQueryBuilderRuleEvent>();\r\n\r\n @Output()\r\n ruleChanged: EventEmitter<AXQueryBuilderRuleEvent> = new EventEmitter<AXQueryBuilderRuleEvent>();\r\n\r\n showValue: boolean = false;\r\n\r\n isOnDemandLabel: boolean = false;\r\n constructor() { }\r\n\r\n ngOnInit() { }\r\n\r\n ngAfterViewInit(): void {\r\n //Called after ngAfterContentInit when the component's view has been initialized. Applies to components only.\r\n //Add 'implements AfterViewInit' to the class.\r\n if (this.rule.onDemandLabel) {\r\n this.isOnDemandLabel = true;\r\n }\r\n }\r\n provideDataBoolean = (e) => {\r\n return new Promise((resolve) => {\r\n resolve([\r\n {\r\n value: 'true',\r\n text: AXTranslator.get('queryBuilder.true')\r\n },\r\n {\r\n value: 'false',\r\n text: AXTranslator.get('queryBuilder.false')\r\n }\r\n\r\n ])\r\n })\r\n }\r\n\r\n saveRule() {\r\n this.form.validate().then(c => {\r\n });\r\n }\r\n\r\n\r\n provideDataOperator = (e) => {\r\n\r\n return new Promise((resolve) => {\r\n if (this.rule.dataType === 'string') {\r\n resolve([\r\n {\r\n value: 'equal',\r\n text: AXTranslator.get('queryBuilder.equal')\r\n },\r\n {\r\n value: 'contains',\r\n text: AXTranslator.get('queryBuilder.contains')\r\n },\r\n {\r\n value: 'start-with',\r\n text: AXTranslator.get('queryBuilder.start-with')\r\n },\r\n {\r\n value: 'end-with',\r\n text: AXTranslator.get('queryBuilder.end-with')\r\n },\r\n {\r\n value: 'not-equal',\r\n text: AXTranslator.get('queryBuilder.not-equal')\r\n },\r\n {\r\n value: 'null',\r\n text: AXTranslator.get('queryBuilder.null')\r\n },\r\n {\r\n value: 'not-null',\r\n text: AXTranslator.get('queryBuilder.not-null')\r\n }\r\n ]);\r\n }\r\n if (this.rule.dataType === 'number') {\r\n resolve([\r\n {\r\n value: 'equal',\r\n text: AXTranslator.get('queryBuilder.equal')\r\n },\r\n {\r\n value: 'gt',\r\n text: AXTranslator.get('queryBuilder.greater-than')\r\n },\r\n {\r\n value: 'gte',\r\n text: AXTranslator.get('queryBuilder.greater-than-equal')\r\n },\r\n {\r\n value: 'lt',\r\n text: AXTranslator.get('queryBuilder.less-than')\r\n },\r\n {\r\n value: 'lte',\r\n text: AXTranslator.get('queryBuilder.less-than-equal')\r\n },\r\n {\r\n value: 'not-equal',\r\n text: AXTranslator.get('queryBuilder.not-equal')\r\n },\r\n {\r\n value: 'null',\r\n text: AXTranslator.get('queryBuilder.null')\r\n },\r\n {\r\n value: 'not-null',\r\n text: AXTranslator.get('queryBuilder.not-null')\r\n }\r\n ]);\r\n }\r\n if (this.rule.dataType === 'boolean') {\r\n resolve([\r\n {\r\n value: 'equal',\r\n text: AXTranslator.get('queryBuilder.equal')\r\n },\r\n {\r\n value: 'null',\r\n text: AXTranslator.get('queryBuilder.null')\r\n },\r\n {\r\n value: 'not-null',\r\n text: AXTranslator.get('queryBuilder.not-null')\r\n }\r\n ]);\r\n }\r\n resolve([]);\r\n });\r\n };\r\n\r\n handleEditClick() {\r\n this.isEditing = true;\r\n }\r\n\r\n handleCommitClick() {\r\n this.isEditing = false;\r\n this.ruleChanged.emit({ items: this.rule, component: this });\r\n }\r\n handleRemoveClick() {\r\n this.onRuleDelete.emit({ items: this.rule, component: this });\r\n }\r\n captionChange(e) {\r\n if (e.selectedItems[0]) {\r\n this.rule.caption = e.selectedItems[0].caption;\r\n this.rule.dataField = e.selectedItems[0].dataField;\r\n this.rule.dataType = e.selectedItems[0].dataType;\r\n this.rule.control = e.selectedItems[0].control || new AXQueryBuilderControl();\r\n this.rule.dataFieldItem[0] = e.selectedItems[0];\r\n }\r\n\r\n if (this.selectBox) {\r\n this.selectBox.refresh();\r\n }\r\n\r\n this.rule.value = null;\r\n if (this.rule.control.type === 'selectBox') {\r\n this.selectBoxValue.refresh();\r\n }\r\n if (this.rule.control.type == 'boolean') {\r\n this.selectBoxBoolean.refresh();\r\n }\r\n this.ruleChanged.emit({ component: this, items: this.rule });\r\n }\r\n\r\n operatorChange(e) {\r\n this.rule.operator = e[0].value;\r\n this.ruleChanged.emit({ component: this, items: this.rule });\r\n\r\n\r\n if (e[0].value !== 'null' && e[0].value !== 'not-null') {\r\n this.showValue = true;\r\n\r\n } else {\r\n this.showValue = false;\r\n this.rule.value = '';\r\n this.rule.text = '';\r\n this.rule.valueItem = [];\r\n this.rule.onDemandLabel = '';\r\n\r\n }\r\n }\r\n valueChange(e) {\r\n // this.rule.text = e.value == undefined ? e[0].value : (e.value == null ? '' : e.value);\r\n this.rule.text = e[0] ? (e[0].value == null ? '' : e[0].value) : (e.value == null ? '' : e.value);\r\n this.rule.onDemandLabel = '';\r\n this.ruleChanged.emit({ component: this, items: this.rule });\r\n }\r\n onDemandLabelChange(e) {\r\n // this.rule.onDemandLabel = e.value == undefined ? '????|' + e[0].value : '????|' + e.value;\r\n this.rule.onDemandLabel = e[0] ? '????|' + (e[0].value == null ? '' : e[0].value) : '????|' + (e.value == null ? '' : e.value)\r\n this.rule.value = '';\r\n this.rule.text = '';\r\n this.rule.valueItem = [];\r\n\r\n this.ruleChanged.emit({ component: this, items: this.rule });\r\n }\r\n valueBooleanChange(e) {\r\n // this.rule.text = e.value == undefined ? e[0].value : (e.value == null ? '' : e.value);\r\n this.rule.text = e[0] ? (e[0].value == null ? '' : e[0].value) : (e.value == null ? '' : e.value);\r\n this.rule.value = e.value == undefined ? e[0].value : e.value;\r\n this.rule.onDemandLabel = '';\r\n this.ruleChanged.emit({ component: this, items: this.rule });\r\n }\r\n getOnDemandName(v) {\r\n return v ? v.split('|')[1] : '';\r\n }\r\n selectedItemsChange(e) {\r\n let n = this.getOption('textField');\r\n this.rule.text = e[0][n];\r\n if (this.rule && this.rule.control.options.valueField) {\r\n this.rule.value = e[0][this.rule.control.options.valueField];\r\n } else {\r\n this.rule.value = e[0].value;\r\n }\r\n this.rule.valueItem[0] = e[0];\r\n this.ruleChanged.emit({ component: this, items: this.rule });\r\n this.rule.onDemandLabel = '';\r\n }\r\n onDemandLabel(e) {\r\n // if (e.value && (this.rule.onDemandLabel == '????|' || this.rule.onDemandLabel === undefined || this.rule.onDemandLabel === null || this.rule.onDemandLabel === '')) {\r\n // this.textBoxNameValue.focus();\r\n // }\r\n if (e.value == false) {\r\n this.rule.onDemandLabel = '';\r\n }\r\n this.isOnDemandLabel = e.value;\r\n }\r\n getProvideData = (e) => {\r\n if (this.rule && this.rule.control.options && this.rule.control.options.dataSource) {\r\n return this.rule.control.options.dataSource({ ...e, optionsData: { ...this.rule.control.options } });\r\n }\r\n };\r\n\r\n getOption(name: string) {\r\n return this.rule.control.options ? this.rule.control.options[name] : null;\r\n }\r\n}\r\n","import { AXButtonItem, AXTranslator } from '@acorex/core';\r\nimport { ChangeDetectorRef, Component, ViewChild } from '@angular/core';\r\nimport { AXBasePopupPageComponent } from '../../base/base-page.class';\r\nimport { AXMenuItemClickEvent } from '../../menu/menu.component';\r\nimport { AXQueryBuilderGroup, AXQueryBuilderPopup, AXQueryBuilderRule } from '../query-builder.class';\r\n\r\nimport { AXDataSourceReadParams } from '../../data-source/read-param'\r\nimport { AXToastService } from '../../toast/toast.service';\r\nimport { AXValidationFormComponent } from '../../validation/validation-form.component';\r\n@Component({\r\n templateUrl: './query-builder-popup.component.html'\r\n})\r\n\r\nexport class AXQueryBuilderPopupComponent extends AXBasePopupPageComponent {\r\n @ViewChild(AXValidationFormComponent) form: AXValidationFormComponent;\r\n constructor(private toast: AXToastService) {\r\n super();\r\n }\r\n group: AXQueryBuilderGroup;\r\n items: AXQueryBuilderRule[] = [];\r\n groupCopy: AXQueryBuilderGroup;\r\n complateValue: boolean = true;\r\n provideData: any;\r\n makeJsonString(items: any[]) {\r\n return new Promise((resolve, reject) => {\r\n items.forEach((element, index, array) => {\r\n if (element.items) {\r\n this.makeJsonString(element.items);\r\n } else {\r\n if (element.control && element.control.options && (element.control.options.dataSource === '' || element.control.options.dataSource === undefined)) {\r\n element.control.options.dataSource = this.provideData;\r\n }\r\n }\r\n if (index === array.length - 1) {\r\n resolve(array[0]);\r\n }\r\n });\r\n });\r\n }\r\n ngAfterViewInit() {\r\n var groupString = JSON.stringify(this.group);\r\n this.groupCopy = JSON.parse(groupString);\r\n this.makeJsonString(this.groupCopy.items);\r\n for (let i = 0; i < this.groupCopy.items.length; i++) {\r\n this.getNoValueRule(this.groupCopy.items[i]);\r\n }\r\n if (this.items.length < 1) {\r\n this.close(this.group);\r\n }\r\n\r\n }\r\n getValue(v) {\r\n return v.indexOf('????') == 0 ? v.split('|')[1] : v;\r\n }\r\n getNoValueRule(gr) {\r\n // for (let i = 0; i < gr.items.length; i++) {\r\n if (gr.condition) {\r\n for (let i = 0; i < gr.items.length; i++) {\r\n this.getNoValueRule(gr.items[i]);\r\n }\r\n\r\n } else {\r\n if (gr.onDemandLabel?.indexOf('????') == 0) {\r\n this.items.push(gr);\r\n }\r\n }\r\n\r\n // }\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n\r\n textValueChange(e, rule) {\r\n rule.value = e.value;\r\n rule.text = e.value;\r\n\r\n }\r\n selectedItemsChange(e, rule) {\r\n let n = this.getOption('textField', rule);\r\n rule.text = e[0][n];\r\n if (rule && rule.control.options.valueField) {\r\n rule.value = e[0][rule.control.options.valueField];\r\n } else {\r\n rule.value = e[0].value;\r\n }\r\n rule.valueItem[0] = e[0];\r\n\r\n }\r\n valueChange(e, rule) {\r\n rule.value = e.value;\r\n rule.text = e.value;\r\n\r\n }\r\n valueBooleanChange(e, rule) {\r\n rule.text = e.value == undefined ? e[0].value : e.value;\r\n rule.value = e.value == undefined ? e[0].value : e.value;\r\n\r\n }\r\n getOption(name: string, rule) {\r\n return rule.control.options ? rule.control.options[name] : null;\r\n }\r\n getProvideData = (e: AXDataSourceReadParams) => {\r\n if (e.extra && e.extra.control.options && e.extra.control.options.dataSource) {\r\n return e.extra.control.options.dataSource({ ...e, optionsData: { ...e.extra.control.options } });\r\n }\r\n };\r\n\r\n provideDataBoolean = (e) => {\r\n return new Promise((resolve) => {\r\n resolve([\r\n {\r\n value: 'true',\r\n text: AXTranslator.get('queryBuilder.true')\r\n },\r\n {\r\n value: 'false',\r\n text: AXTranslator.get('queryBuilder.false')\r\n }\r\n\r\n ])\r\n })\r\n }\r\n\r\n findNullValue(gr) {\r\n for (let i = 0; i < gr.length; i++) {\r\n if (gr[i].value === null || gr[i].value === undefined || gr[i].value === '') {\r\n this.complateValue = false;\r\n }\r\n }\r\n\r\n\r\n // if (gr.condition) {\r\n // for (let i = 0; i < gr.items.length; i++) {\r\n // this.findNullValue(gr.items[i]);\r\n // }\r\n\r\n // } else {\r\n // if (gr.onDemandLabel?.indexOf('????') == 0 || gr.value === null || gr.value === undefined || gr.value === '') {\r\n // this.complateValue = false;\r\n // }\r\n // }\r\n\r\n }\r\n\r\n onFooterButtonClick(e: AXMenuItemClickEvent) {\r\n if (e.name === 'confirm') {\r\n this.form.validate().then(c => {\r\n if (c.result === true) {\r\n this.close(this.groupCopy);\r\n }\r\n });\r\n }\r\n if (e.name === 'cancel') {\r\n this.close();\r\n }\r\n\r\n }\r\n\r\n getFooterButtons(): AXButtonItem[] {\r\n return [\r\n {\r\n text: AXTranslator.get('common.confirm'),\r\n name: 'confirm',\r\n style: 'ax primary',\r\n icon: 'far fa-check-circle'\r\n },\r\n {\r\n text: AXTranslator.get('common.cancel'),\r\n name: 'cancel',\r\n style: 'ax light',\r\n icon: 'far fa-times-circle'\r\n }\r\n ]\r\n }\r\n}","import { AXQueryBuilderGroup, AXQueryBuilderStringType } from \"./query-builder.class\";\r\nimport { Injectable } from '@angular/core';\r\nimport { AXPopupService } from '../popup/popup.service';\r\nimport { AXQueryBuilderPopupComponent } from './query-builder-popup/query-builder-popup.component'\r\nimport { AXToastService } from '../toast/toast.service';\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXQueryBuilderService {\r\n constructor(private popup: AXPopupService, private toast: AXToastService) {\r\n\r\n }\r\n canOpen: boolean = false;\r\n canRun: boolean = false;\r\n public runQuery(group: AXQueryBuilderGroup, provideData) {\r\n\r\n return new Promise((resolve) => {\r\n this.canOpen = false;\r\n for (let i = 0; i < group.items.length; i++) {\r\n this.getNoValueRule(group.items[i]);\r\n }\r\n if (this.canOpen) {\r\n this.canRun = true;\r\n for (let i = 0; i < group.items.length; i++) {\r\n if (this.canRun == true) {\r\n this.findNullValue(group.items[i])\r\n }\r\n }\r\n if (this.canRun) {\r\n this.popup.open(AXQueryBuilderPopupComponent, { data: { group: group, provideData: provideData }, title: \"دریافت مقادیر\" }).then(c => {\r\n resolve(c)\r\n })\r\n }\r\n } else {\r\n resolve(group);\r\n }\r\n })\r\n\r\n\r\n\r\n }\r\n\r\n findNullValue(gr) {\r\n if (this.canRun == true) {\r\n if (gr.condition) {\r\n for (let i = 0; i < gr.items.length; i++) {\r\n this.findNullValue(gr.items[i]);\r\n }\r\n\r\n } else {\r\n if (gr.onDemandLabel == '????|') {\r\n this.canRun = false;\r\n this.toast.error('لطفا نام متغیر های مورد نیاز را کامل کنید')\r\n }\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n private getNoValueRule(gr) {\r\n // for (let i = 0; i < gr.items.length; i++) {\r\n if (gr.condition) {\r\n for (let i = 0; i < gr.items.length; i++) {\r\n this.getNoValueRule(gr.items[i]);\r\n }\r\n\r\n } else {\r\n if (gr.onDemandLabel?.indexOf('????') == 0) {\r\n this.canOpen = true;\r\n }\r\n }\r\n\r\n // }\r\n }\r\n\r\n public getQueryString(group: AXQueryBuilderGroup, type: AXQueryBuilderStringType): string {\r\n let query = '';\r\n switch (type) {\r\n case 'simple':\r\n if (group.items.length > 0) {\r\n query = ' ( ';\r\n }\r\n for (let i = 0; i < group.items.length; i++) {\r\n const item = group.items[i];\r\n if (item instanceof AXQueryBuilderGroup) {\r\n \r\n query = query + item.queryString;\r\n \r\n } else {\r\n \r\n query = query + ' ' + item.caption + ' ' + item.operator + ' ' + item.value;\r\n \r\n }\r\n if (i !== group.items.length - 1 && query != ' ( ') {\r\n query = query + ' ' + group.condition;\r\n }\r\n \r\n }\r\n if (group.items.length > 0) {\r\n query = query + ' ) ';\r\n } \r\n break;\r\n \r\n case 'elastic':\r\n if (group.items.length > 0) {\r\n query = ' ( ';\r\n }\r\n for (let i = 0; i < group.items.length; i++) {\r\n const item = group.items[i];\r\n if (item instanceof AXQueryBuilderGroup) {\r\n \r\n query = query + item.queryStringElastic;\r\n \r\n } else {\r\n \r\n query = query + ' ' + item.dataField + ' ' + item.operator + ' ' + item.value;\r\n \r\n }\r\n if (i !== group.items.length - 1 && query != ' ( ') {\r\n query = query + ' ' + group.condition;\r\n }\r\n \r\n }\r\n if (group.items.length > 0) {\r\n query = query + ' ) ';\r\n } \r\n \r\n break;\r\n case 'sql':\r\n \r\n break;\r\n }\r\n \r\n \r\n\r\n\r\n return query;\r\n }\r\n\r\n}","import { Component, OnInit, Input, ViewEncapsulation, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { AXValidationFormComponent } from '../validation/validation-form.component';\r\nimport { AXQueryBuilderRuleComponent } from './query-builder-rule.component';\r\nimport { AXQueryBuilderGroup, AXQueryBuilderGroupEvent, AXQueryBuilderRuleEvent, AXQueryBuilderRule } from './query-builder.class';\r\nimport { AXQueryBuilderService } from './query-builder.service'\r\n@Component({\r\n selector: 'ax-query-group',\r\n templateUrl: 'query-builder-group.component.html',\r\n host: { class: 'ax ax-query-group' },\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXQueryBuilderGroupComponent implements OnInit {\r\n\r\n @ViewChild('queryRule') queryRule: AXQueryBuilderRuleComponent;\r\n @ViewChild(AXValidationFormComponent) form: AXValidationFormComponent;\r\n @Input()\r\n group: AXQueryBuilderGroup;\r\n\r\n collapsed: boolean = false;\r\n\r\n @Input()\r\n parent: AXQueryBuilderGroup;\r\n\r\n @Input()\r\n fields: any[] = [];\r\n\r\n //ruleIsEditing: boolean = true;\r\n\r\n @Output()\r\n groupRuleChanged: EventEmitter<AXQueryBuilderGroupEvent> = new EventEmitter<AXQueryBuilderGroupEvent>();\r\n\r\n showGroupCondition: boolean = false;\r\n\r\n constructor(private qs: AXQueryBuilderService) { }\r\n\r\n ngOnInit() { }\r\n\r\n ruleDelete(e: AXQueryBuilderRuleEvent) {\r\n this.group.items = this.group.items.filter(c => c !== e.items);\r\n this.ruleChanged(null);\r\n }\r\n handleRemoveClick() {\r\n this.parent.items = this.parent.items.filter(c => c !== this.group);\r\n this.groupRuleChanged.emit({ groups: this.group, component: this });\r\n }\r\n saveRule() {\r\n // this.form.validate().then(c => {\r\n // });\r\n // return this.queryRule.saveRule();\r\n }\r\n addRule() {\r\n const item: AXQueryBuilderRule = new AXQueryBuilderRule();\r\n if (this.fields.length > 0) {\r\n // item.caption = this.fields[0].caption;\r\n // item.dataType = this.fields[0].dataType;\r\n // item.dataField = this.fields[0].dataField;\r\n } else {\r\n\r\n }\r\n\r\n item.operator = 'equal';\r\n\r\n if (item.dataType === 'string') {\r\n item.value = '';\r\n }\r\n if (item.dataType === 'number') {\r\n item.value = 0;\r\n }\r\n\r\n if (this.group.items == undefined) {\r\n this.group.items = [];\r\n }\r\n this.group.items.push(item);\r\n this.ruleChanged(null);\r\n }\r\n addGroup() {\r\n this.showGroupCondition = true;\r\n }\r\n addGroupOR() {\r\n this.makeGroup(\"OR\");\r\n }\r\n addGroupAND() {\r\n this.makeGroup(\"AND\");\r\n }\r\n makeGroup(_condition) {\r\n let r: AXQueryBuilderGroup = new AXQueryBuilderGroup();\r\n r.condition = _condition;\r\n r.items = [];\r\n r.queryString = '';\r\n if (this.group.items == undefined) {\r\n this.group.items = [];\r\n }\r\n this.group.items.push(r);\r\n this.showGroupCondition = false;\r\n this.ruleChanged(null);\r\n }\r\n changeDetailMode() {\r\n //if (this.parent) {\r\n this.collapsed = !this.collapsed;\r\n // this.ruleIsEditing = false;\r\n //}\r\n }\r\n\r\n handleChangeClick() {\r\n if (this.group.condition == 'OR') {\r\n this.group.condition = 'AND';\r\n } else {\r\n this.group.condition = 'OR';\r\n }\r\n this.ruleChanged(null);\r\n\r\n }\r\n\r\n ruleChanged(e) {\r\n this.group.queryString = this.qs.getQueryString(this.group, 'simple');\r\n this.group.queryStringElastic = this.qs.getQueryString(this.group,'elastic')\r\n this.groupRuleChanged.emit({ groups: this.group, component: this });\r\n }\r\n\r\n\r\n}","import { AXBaseComponent } from '../base/element.class';\r\nimport { Component, Input, Output, EventEmitter, ElementRef, ViewEncapsulation, ViewChild } from '@angular/core';\r\nimport { AXTranslator, AXHtmlUtil } from '@acorex/core';\r\nimport { AXQueryBuilderGroup, AXQueryBuilderGroupEvent, AXQueryBuilderGroupItem } from './query-builder.class';\r\nimport { AXQueryBuilderGroupComponent } from './query-builder-group.component';\r\nimport { AXToastService } from '../toast/toast.service';\r\n\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: 'ax-query-builder',\r\n templateUrl: './query-builder.component.html',\r\n styleUrls: ['./query-builder.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXQueryBuilderComponent extends AXBaseComponent {\r\n\r\n @ViewChild('queryGroup') queryGroup: AXQueryBuilderGroupComponent;\r\n\r\n @Input()\r\n query: AXQueryBuilderGroup;\r\n\r\n rootGroup: AXQueryBuilderGroup = new AXQueryBuilderGroup();\r\n\r\n\r\n ngOnInit(): void {\r\n\r\n\r\n this.rootGroup.condition = this.query.condition ? this.query.condition : \"AND\";\r\n this.rootGroup.items = this.query.items ? this.query.items : [];\r\n\r\n }\r\n\r\n constructor(private ref: ElementRef, private toast: AXToastService) {\r\n super();\r\n }\r\n\r\n @Input()\r\n fields: any[] = [];\r\n\r\n // @Input()\r\n // mode: 'immediate' | 'click' = 'click';\r\n\r\n @Output()\r\n onRuleChanged: EventEmitter<AXQueryBuilderGroupEvent> = new EventEmitter<AXQueryBuilderGroupEvent>();\r\n\r\n saved: boolean = false;\r\n\r\n\r\n public getQueryBuilder() {\r\n return ({ groups: this.rootGroup });\r\n }\r\n\r\n ruleChanged(e) {\r\n this.onRuleChanged.emit({ component: this, groups: this.rootGroup });\r\n }\r\n\r\n\r\n\r\n public saveRule() {\r\n /// return this.queryGroup.saveRule();\r\n return new Promise((resolve, reject) => {\r\n this.saved = true;\r\n for (let i = 0; i < this.rootGroup.items.length; i++) {\r\n if (this.saved == true) {\r\n this.findNullValue(this.rootGroup.items[i])\r\n }\r\n }\r\n if (this.saved == true) {\r\n resolve(this.rootGroup);\r\n } else {\r\n reject();\r\n }\r\n })\r\n\r\n }\r\n\r\n findNullValue(gr) {\r\n if (this.saved == true) {\r\n if (gr.condition) {\r\n for (let i = 0; i < gr.items.length; i++) {\r\n this.findNullValue(gr.items[i]);\r\n }\r\n\r\n } else {\r\n if (gr.onDemandLabel == '????|') {\r\n this.saved = false;\r\n this.toast.error('لطفا نام متغیر های مورد نیاز را کامل کنید')\r\n }\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n // selectionFieldsChanged(e, rules: AXQueryBuilderRule) {\r\n // \r\n // rules.dataField = e.selectedItems[0].dataField;\r\n // rules.caption = e.selectedItems[0].caption;\r\n // rules.dataType = e.selectedItems[0].dataType;\r\n\r\n // // TO DO chack dataType For Def operator and Value\r\n // if (rules.dataType == 'string') {\r\n // rules.operator = this.operatorStringItem[0].id;\r\n // rules.value = 'null';\r\n // }\r\n // if (rules.dataType == 'number') {\r\n // rules.operator = this.operatorNumberItem[0].id;\r\n // rules.value = '0';\r\n // }\r\n\r\n\r\n // this.onRuleChanged.emit({ groups: this.rootGroup, queryString: this.getQueryDisplay(), component: this, htmlElement: this.ref.nativeElement })\r\n // }\r\n\r\n // selectionOparatorChanged(e, rules: AXQueryBuilderRule) {\r\n // rules.operator = e.selectedItems[0].id;\r\n // }\r\n\r\n // provideDataFields = (e) => {\r\n // return new Promise((resolve) => {\r\n // resolve(this.fields);\r\n // });\r\n // }\r\n\r\n // provideDataOperatorString = (e) => {\r\n // return new Promise((resolve) => {\r\n // resolve(this.operatorStringItem);\r\n // });\r\n // }\r\n // provideDataOperatorNumber = (e) => {\r\n // return new Promise((resolve) => {\r\n // resolve(this.operatorNumberItem);\r\n // });\r\n // }\r\n\r\n // private getQueryDisplay(gr = this.list, _condition = this.list[0].condition) {\r\n // var cap: string = '(';\r\n\r\n // for (let j = 0; j < gr.length; j++) {\r\n // if (j > 0) {\r\n // cap = cap + _condition;\r\n // }\r\n // cap = cap + \" ( \";\r\n // for (let i = 0; i < gr[j].items.length; i++) {\r\n // if (gr[j].items[i].value && gr[j].items[i].operator && gr[j].items[i].caption || ((gr[j].items[i].operator == \"is-empty\" || gr[j].items[i].operator == \"is-not-empty\") && gr[j].items[i].caption)) {\r\n // var opr: string;\r\n // if (gr[j].items[i].dataType == \"number\" || gr[j].items[i].dataType == \"date\" || gr[j].items[i].dataType == \"dateTime\") {\r\n // let d = this.operatorNumberItem.filter(c => c.id == gr[j].items[i].operator);\r\n // opr = d[0].text;\r\n // } else {\r\n // let d = this.operatorStringItem.filter(c => c.id == gr[j].items[i].operator);\r\n // opr = d[0].text;\r\n // }\r\n // if ((gr[j].items[i].operator == \"is-empty\" || gr[j].items[i].operator == \"is-not-empty\")) {\r\n\r\n // if (i === gr[j].items.length - 1) {\r\n // cap = cap + \" \" + \"[\" + gr[j].items[i].caption + \"]\";\r\n // } else {\r\n // cap = cap + \" \" + \"[\" + gr[j].items[i].caption + \"]\" + \" \" + opr + \" \" + gr[j].condition;\r\n // }\r\n // } else {\r\n // var val: string;\r\n\r\n // if (gr[j].items[i].dataType == 'date') {\r\n // // val = moment(item.value).locale('fa').format('YYYY/MM/DD');\r\n // } else if (gr[j].items[i].dataType == 'dateTime') {\r\n // // val = moment(item.value).locale('fa').format('HH:mm YYYY/MM/DD');\r\n // } else {\r\n // val = gr[j].items[i].value;\r\n // }\r\n // if (i === gr[j].items.length - 1) {\r\n // cap = cap + \" \" + \"[\" + gr[j].items[i].caption + \"]\" + \" \" + opr + \" \" + val\r\n // } else {\r\n // cap = cap + \" \" + \"[\" + gr[j].items[i].caption + \"]\" + \" \" + opr + \" \" + val + \" \" + gr[j].condition\r\n // }\r\n\r\n // }\r\n // }\r\n // }\r\n\r\n // if (gr[j].groups && gr[j].groups.length > 0) {\r\n // let c = this.getQueryDisplay(gr[j].groups, gr[j].condition);\r\n // if (c != \"( ) \") {\r\n // if (gr[j].items.length > 0 || j > 0) {\r\n // cap = cap + \" \" + gr[j].condition + \" \" + c + \" \";\r\n // } else {\r\n // cap = cap + \" \" + c + \" \";\r\n // }\r\n\r\n // }\r\n // }\r\n\r\n // cap = cap + \" ) \";\r\n // };\r\n\r\n // cap = cap + \" ) \";\r\n // return cap;\r\n // }\r\n\r\n // deleteGroup(groupOut: AXQueryBuilderGroup, groupIn: AXQueryBuilderGroup) {\r\n // groupOut.items = groupOut.items.filter(c => c.id != groupIn.id);\r\n // }\r\n\r\n // deleteRule1(group: AXQueryBuilderGroup, rule: AXQueryBuilderRule) {\r\n // group.items = group.items.filter(c => c.id != rule.id);\r\n // }\r\n\r\n\r\n // addRule(group: AXQueryBuilderGroup) {\r\n // const item: AXQueryBuilderRule = new AXQueryBuilderRule();\r\n // group.items.push(item);\r\n // }\r\n\r\n // addGroupAND(group: AXQueryBuilderGroup) {\r\n // this.addGroupOnClick(group);\r\n // group.condition = \"AND\";\r\n // }\r\n // addGroupOR(group: AXQueryBuilderGroup) {\r\n // this.addGroupOnClick(group);\r\n // group.condition = \"OR\";\r\n // }\r\n\r\n // addGroupOnClick(groups: AXQueryBuilderGroup) {\r\n // let r: AXQueryBuilderGroup = new AXQueryBuilderGroup();\r\n // r.condition = \"\";\r\n // r.items = [];\r\n // if (groups.items == undefined) {\r\n // groups.items = [];\r\n // }\r\n // groups.items.push(r);\r\n // }\r\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXSearchBoxComponent } from './searchbox.component';\r\nimport { AXTextBoxModule } from '../textbox/textbox.module';\r\nimport { AXButtonModule } from '../button/button.module';\r\nimport { AXFormGroupModule } from '../form-group/form-group.module';\r\nimport { AXTranslatorModule } from '@acorex/core';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n\r\n@NgModule({\r\n declarations: [AXSearchBoxComponent],\r\n imports: [CommonModule, AXTextBoxModule, AXButtonModule, AXFormGroupModule, AXTranslatorModule, FormsModule],\r\n exports: [AXSearchBoxComponent],\r\n providers: []\r\n})\r\nexport class AXSearchBoxModule { }\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n Input,\r\n EventEmitter,\r\n Output,\r\n ViewChild,\r\n ChangeDetectorRef,\r\n ElementRef,\r\n ContentChild,\r\n NgZone,\r\n HostListener\r\n} from '@angular/core';\r\nimport { AXTextBoxComponent } from '../textbox/textbox.component';\r\nimport { AXDropdownComponent } from '../dropdown/dropdown.component';\r\nimport { AXBaseSizableComponent, AXBaseInputComponent, AXElementSize, AXValidatableComponent, AXBaseValueComponent } from '../base/element.class';\r\nimport { AXDataSourceComponent } from '../data-source/datasource.component';\r\nimport { AXValidation } from '../validation/validation.component';\r\nimport { AXDataSourceReadParams } from '../data-source/read-param';\r\nimport { AXSearchBoxComponent } from '../searchbox/searchbox.component';\r\nimport { AXConfig, AXObjectUtil, AXTranslator } from '@acorex/core';\r\nimport { AXValueEvent } from '../base/events.class';\r\n\r\n\r\nexport class AXSelectBoxValueChangedEvent extends AXValueEvent<any | any[]> {\r\n value?: any;\r\n oldValue?: any;\r\n isUserInput: boolean = false;\r\n selectedKeys?: any[];\r\n selectedItems?: any[];\r\n}\r\n\r\n@Component({\r\n selector: 'ax-select-box2',\r\n templateUrl: './selectbox2.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { style: 'display: contents;' },\r\n providers: [{ provide: AXValidatableComponent, useExisting: AXSelectBox2Component }]\r\n})\r\nexport class AXSelectBox2Component extends AXValidatableComponent implements AXBaseSizableComponent, AXBaseInputComponent, AXBaseValueComponent<any>{\r\n\r\n @ViewChild(AXTextBoxComponent, { static: true })\r\n span: ElementRef<HTMLElement>;\r\n\r\n @ViewChild(AXTextBoxComponent, { static: true })\r\n textbox: AXTextBoxComponent;\r\n\r\n @ViewChild('listContainer', { static: true })\r\n listContainer: ElementRef<HTMLDivElement>;\r\n\r\n @ViewChild('searchBox', { static: false })\r\n searchBox: AXSearchBoxComponent;\r\n\r\n @ViewChild('textBoxSelectBox', { static: true })\r\n textBoxSelectBox: AXTextBoxComponent;\r\n\r\n @ContentChild(AXDataSourceComponent, { static: true })\r\n private _contentDataSource: AXDataSourceComponent;\r\n\r\n @ContentChild(AXValidation, { static: true })\r\n private _contentValidation: AXValidation;\r\n\r\n @ViewChild('d', { static: true })\r\n dropdown: AXDropdownComponent;\r\n\r\n\r\n @Input() showDropDownButton: boolean = true;\r\n @Input() readonly: boolean = false;\r\n @Input() rtl: boolean = AXConfig.get('layout.rtl');\r\n @Input() disabled: boolean;\r\n @Input() placeholder: string;\r\n @Input() size: AXElementSize = 'md';\r\n @Input() allowNull: boolean = true;\r\n @Input() textAlign: 'right' | 'left' | null = null;\r\n @Input() bufferSize: number = 10;\r\n @Input() remoteOperation: boolean = false;\r\n @Input() allowSearch: boolean = true;\r\n @Input() textField: string = 'text';\r\n @Input() valueField: string = 'value';\r\n @Input() selectionMode: 'single' | 'multiple' = 'single';\r\n @Input() selectionDataMode: 'value' | 'item' = 'value';\r\n\r\n currentfocusedIndex: number = -1;\r\n showLoading: boolean = false;\r\n skip: number = -1;\r\n searchText: string = '';\r\n text: string = '';\r\n totalCount: number = 0;\r\n itemsFiltered: any[] = [];\r\n\r\n private isUserInput: boolean = false;\r\n\r\n private _dataSource: AXDataSourceComponent;\r\n @Input()\r\n public get dataSource(): AXDataSourceComponent {\r\n return this._dataSource ? this._dataSource : this._contentDataSource;\r\n }\r\n public set dataSource(v: AXDataSourceComponent) {\r\n this._dataSource = v;\r\n }\r\n\r\n private _validation: AXValidation;\r\n @Input()\r\n public get validation(): AXValidation {\r\n return this._validation ? this._validation : this._contentValidation;\r\n }\r\n public set validation(v: AXValidation) {\r\n this._validation = v;\r\n }\r\n\r\n constructor(private cdr: ChangeDetectorRef, private ref: ElementRef, private zone: NgZone) {\r\n super();\r\n }\r\n\r\n\r\n private _value: any | any[];\r\n @Input()\r\n public get value(): any | any[] {\r\n return this._value;\r\n }\r\n public set value(v: any | any[]) {\r\n if (v !== this._value) {\r\n const oldValue = AXObjectUtil.deepJSONClone(this._value);\r\n if (this.selectionMode === 'multiple') {\r\n this._value = Array.isArray(v) ? v : (v ? [v] : []);\r\n } else {\r\n this._value = Array.isArray(v) ? v[0] : v;\r\n }\r\n this.valueChange.emit(this._value);\r\n this.onValueChanged.emit({\r\n component: this,\r\n htmlElement: this.ref.nativeElement,\r\n isUserInput: this.isUserInput,\r\n oldValue,\r\n value: this._value,\r\n selectedKeys: this.selectedItems.map(c => c[this.valueField]),\r\n selectedItems: this.selectedItems.slice()\r\n });\r\n this.isUserInput = false;\r\n this.renderSelection();\r\n }\r\n }\r\n\r\n\r\n private _selectedItems: any[];\r\n public get selectedItems(): any[] {\r\n return this._selectedItems || [];\r\n }\r\n\r\n private _items: any[] = [];\r\n @Input()\r\n public get items(): any[] {\r\n return this._items;\r\n }\r\n public set items(v: any[]) {\r\n this._items = v;\r\n if (this.itemsChange) {\r\n this.itemsChange.emit(v);\r\n }\r\n this.renderSelection();\r\n }\r\n\r\n @Output()\r\n itemsChange: EventEmitter<any[]> = new EventEmitter<any[]>();\r\n\r\n @Output()\r\n onBlur: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onFocus: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n public valueChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n public onValueChanged: EventEmitter<AXSelectBoxValueChangedEvent> = new EventEmitter<AXSelectBoxValueChangedEvent>();\r\n\r\n\r\n\r\n ngOnInit() {\r\n if (this.rtl == null) {\r\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\r\n }\r\n }\r\n\r\n scrolled(e) {\r\n if (this.remoteOperation && this.totalCount > this.items.length && this.listContainer.nativeElement.scrollHeight != 0\r\n && this.listContainer.nativeElement.scrollHeight - this.listContainer.nativeElement.scrollTop - 300 < 50) {\r\n this.showLoading = true;\r\n\r\n if (this.skip !== this.items.length) {\r\n this.skip = this.items.length;\r\n\r\n const params: AXDataSourceReadParams = {};\r\n params.skip = this.items.length;\r\n params.take = this.bufferSize * (Math.floor(this.items.length / this.bufferSize) + 1);\r\n if (this.textbox) {\r\n params.searchText = this.text;\r\n } else {\r\n params.searchText = null;\r\n }\r\n this.fetch(params);\r\n }\r\n }\r\n }\r\n\r\n textChanged(e) {\r\n this.currentfocusedIndex = -1;\r\n if (this.remoteOperation) {\r\n this.searchText = this.text;\r\n this.items = [];\r\n const params: AXDataSourceReadParams = {};\r\n params.searchText = this.text;\r\n params.skip = 0;\r\n params.take = this.bufferSize;\r\n this.fetch(params);\r\n }\r\n }\r\n\r\n private renderSelection() {\r\n const func = () => {\r\n if (!this.value) {\r\n return [];\r\n }\r\n if ((this.items?.length > 0) && this.selectionDataMode == 'value') {\r\n const orgRes = this.items.filter(i => {\r\n if (Array.isArray(this.value)) {\r\n return this.value.some(ii => {\r\n if (typeof ii === 'object') {\r\n return i[this.valueField] === ii[this.valueField];\r\n }\r\n else {\r\n return i[this.valueField] === ii;\r\n }\r\n });\r\n }\r\n else {\r\n if (typeof this.value === 'object') {\r\n return i[this.valueField] === this.value[this.valueField];\r\n }\r\n else {\r\n return i[this.valueField] === this.value;\r\n }\r\n }\r\n });\r\n if (orgRes.length > 0) {\r\n return orgRes;\r\n }\r\n }\r\n if (Array.isArray(this.value)) {\r\n return this.value.map(ii => {\r\n if (typeof ii === 'object' && ii[this.textField]) {\r\n return ii;\r\n }\r\n else {\r\n const fake: any = {};\r\n fake[this.valueField] = this.value;\r\n fake[this.textField] = AXTranslator.get('common.loading');\r\n return fake;\r\n }\r\n });\r\n }\r\n else {\r\n if (typeof this.value === 'object' && this.value[this.textField]) {\r\n return [this.value];\r\n }\r\n else {\r\n const fake: any = {};\r\n fake[this.valueField] = this.value;\r\n fake[this.textField] = AXTranslator.get('common.loading');\r\n return [fake];\r\n }\r\n }\r\n };\r\n this._selectedItems = func();\r\n this.cdr.markForCheck();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.bufferSize < 10) {\r\n this.bufferSize = 10;\r\n }\r\n if (!this.remoteOperation) {\r\n this.refresh();\r\n }\r\n }\r\n\r\n dropdownToggle(e) {\r\n if (this.dropdown.isOpen) {\r\n this.currentfocusedIndex = this.getItems().indexOf(this.selectedItems[this.selectedItems.length - 1]);\r\n this.focusOnSearchBox();\r\n this.focusOnCurrentFocusedIndex();\r\n }\r\n else {\r\n this.focus();\r\n }\r\n }\r\n\r\n ngAfterContentInit() {\r\n this.initValidation(this.ref, 'value', this.validation);\r\n if (this.dataSource) {\r\n if (this.allowSearch === false) {\r\n this.fetch();\r\n }\r\n this.dataSource.onDataReceived.subscribe((c) => {\r\n this.showLoading = false;\r\n this.dataReceived(c.data.result);\r\n });\r\n }\r\n this.cdr.markForCheck();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private dataReceived(data: any) {\r\n if (this.remoteOperation) {\r\n if (this.searchText && this.searchText != null && this.searchText !== '') {\r\n if (data.totalCount) {\r\n this.items = data.items;\r\n this.totalCount = data.totalCount;\r\n } else {\r\n this.items = data.items;\r\n this.totalCount = data.items == undefined ? 0 : data.items.length;\r\n }\r\n\r\n }\r\n else if (data.items && data.items.length === data.totalCount) {\r\n this.items = data.items;\r\n this.totalCount = data.items.length;\r\n }\r\n else if (data.totalCount) {\r\n data.items.forEach(elm => {\r\n this.items.push(elm);\r\n });\r\n this.totalCount = data.totalCount;\r\n } else {\r\n data.forEach(elm => {\r\n this.items.push(elm);\r\n });\r\n this.totalCount = data.length;\r\n }\r\n } else {\r\n this.items = data;\r\n }\r\n this.renderSelection();\r\n this.cdr.markForCheck();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n\r\n fetch(params: AXDataSourceReadParams = {}) {\r\n if (this.dataSource) {\r\n this.showLoading = true;\r\n this.dataSource.fetch(params);\r\n }\r\n }\r\n\r\n refresh() {\r\n const params: AXDataSourceReadParams = {};\r\n if (this.remoteOperation) {\r\n params.skip = 0;\r\n this.skip = 0;\r\n params.take = this.bufferSize;\r\n }\r\n if (this.dataSource !== undefined) {\r\n this.items = [];\r\n this.fetch(params);\r\n }\r\n }\r\n\r\n handleItemRemoveClick(item) {\r\n this.text = '';\r\n this.isUserInput = true;\r\n if (Array.isArray(this.value)) {\r\n this.value = this.value.filter(c => (typeof c === 'object') ? c[this.valueField] !== item[this.valueField] : c !== item[this.valueField]);\r\n }\r\n else {\r\n this.value = null;\r\n }\r\n this.cdr.markForCheck();\r\n }\r\n\r\n\r\n\r\n onTextBoxClick(e) {\r\n if (this.disabled === false && this.readonly === false) {\r\n this.open();\r\n }\r\n }\r\n\r\n handleItemClick(e: MouseEvent, item: any) {\r\n this.isUserInput = true;\r\n if (this.selectionMode === 'single') {\r\n this.selectItems(item);\r\n this.close();\r\n }\r\n else {\r\n if (Array.isArray(this.value) && this.value.length > 0) {\r\n if (this.value.some(c => this.internalGetItemValue(c) === this.internalGetItemValue(item))) {\r\n this.unselectItems(item);\r\n }\r\n else {\r\n this.selectItems(item);\r\n }\r\n }\r\n else {\r\n this.selectItems(item);\r\n }\r\n }\r\n this.cdr.markForCheck();\r\n this.focusOnSearchBox();\r\n }\r\n\r\n private internalGetItemByDataMode(item: any) {\r\n return this.selectionDataMode === 'item' ? item : item[this.valueField];\r\n }\r\n\r\n private internalGetItemValue(item: any) {\r\n return typeof item === 'object' ? item[this.valueField] : item;\r\n }\r\n\r\n @HostListener('document:keydown', ['$event'])\r\n handleKeyDown(e: KeyboardEvent) {\r\n if (e.key === 'Escape' || this.disabled || this.readonly) {\r\n this.close();\r\n e.preventDefault();\r\n return;\r\n }\r\n const isLetter = new RegExp(/[a-zA-Z0-9\\-]/).test(String.fromCharCode(e.keyCode));\r\n if (this.textbox.isFocused()) {\r\n if (e.key === 'Backspace' && e.type === 'keydown' &&\r\n ((this.allowNull === true && this.selectedItems.length > 0) ||\r\n (this.allowNull === false && this.selectedItems.length > 1))) {\r\n this.isUserInput = true;\r\n this.unselectItems(this.selectedItems.pop());\r\n e.preventDefault();\r\n return;\r\n }\r\n else if ((e.key === 'ArrowDown' || e.key === 'ArrowUp') && this.getItems().length > 0 && !this.dropdown.isOpen && e.type === 'keydown') {\r\n if (this.selectionMode === 'single') {\r\n this.isUserInput = true;\r\n this.selectedItemByIndex(this.currentfocusedIndex + (e.key === 'ArrowDown' ? 1 : -1));\r\n if (e.ctrlKey) {\r\n this.open();\r\n }\r\n }\r\n else {\r\n this.open();\r\n }\r\n e.preventDefault();\r\n return;\r\n }\r\n else if (isLetter) {\r\n this.text = e.key;\r\n this.open();\r\n e.preventDefault();\r\n return;\r\n }\r\n }\r\n if (this.dropdown.isOpen) {\r\n if ((e.key === 'ArrowDown' || e.key === 'ArrowUp') && this.getItems().length > 0) {\r\n this.isUserInput = true;\r\n this.selectItemByNav((e.key === 'ArrowDown' ? 1 : -1));\r\n e.preventDefault();\r\n return;\r\n }\r\n if ((e.key === 'Enter' || e.code === 'Space')) {\r\n const focusedItem = this.getItems()[this.currentfocusedIndex];\r\n if (focusedItem) {\r\n\r\n if (this.selectionMode === 'single') {\r\n this.isUserInput = true;\r\n this.selectItems(focusedItem);\r\n this.close();\r\n }\r\n else {\r\n this.isUserInput = true;\r\n this.toggleSelect(focusedItem);\r\n }\r\n }\r\n e.preventDefault();\r\n return;\r\n }\r\n }\r\n }\r\n\r\n unselectItems(...items: any[]) {\r\n if (!items || items.length === 0) {\r\n this.value = null;\r\n }\r\n else if (Array.isArray(this.value)) {\r\n this.value = this.value.filter(c => !items.some(d =>\r\n this.internalGetItemValue(c) === this.internalGetItemValue(d))\r\n );\r\n }\r\n else {\r\n this.value = null;\r\n }\r\n this.cdr.markForCheck();\r\n }\r\n\r\n selectItems(...items: any[]) {\r\n if (items && items.length) {\r\n if (this.selectionMode === 'single') {\r\n this.value = this.internalGetItemByDataMode(items[0]);\r\n }\r\n else {\r\n this.value = (this.value || []).concat(items.map(c => this.internalGetItemByDataMode(c)));\r\n }\r\n }\r\n }\r\n\r\n\r\n toggleSelect(...items: any[]) {\r\n if (items && items.length) {\r\n items.forEach(item => {\r\n this.selectedItems.includes(item) ? this.unselectItems(item) : this.selectItems(item);\r\n });\r\n }\r\n }\r\n\r\n\r\n close() {\r\n this.dropdown.close();\r\n }\r\n\r\n open() {\r\n this.dropdown.open();\r\n }\r\n\r\n focus(): void {\r\n this.text = null;\r\n this.textbox.focus();\r\n }\r\n\r\n private focusOnSearchBox() {\r\n const inputedVal = this.text;\r\n if (this.allowSearch === true) {\r\n setTimeout(() => {\r\n if (this.searchBox) {\r\n this.searchBox.value = inputedVal;\r\n this.searchBox.focus();\r\n }\r\n }, 0);\r\n }\r\n else {\r\n this.textbox.focus();\r\n }\r\n }\r\n\r\n getItems(): any[] {\r\n if (this.items == null) {\r\n return [];\r\n }\r\n return (!this.remoteOperation && this.text && this.text !== '') ? this.items.filter((c) =>\r\n (c[this.textField] as string).toLowerCase().includes(this.text.toLowerCase())) : this.items;\r\n }\r\n\r\n isItemSelected(item: any): boolean {\r\n return this.selectedItems.some(c => c[this.valueField] === item[this.valueField]);\r\n }\r\n\r\n private selectItemByNav(sign: -1 | 1 | null = null): void {\r\n if (sign == null) {\r\n this.currentfocusedIndex = this.getItems().indexOf(this.selectedItems[this.selectedItems.length - 1]);\r\n }\r\n else {\r\n sign === -1 ? this.currentfocusedIndex-- : this.currentfocusedIndex++;\r\n }\r\n if (this.currentfocusedIndex < 0) {\r\n this.currentfocusedIndex = 0;\r\n }\r\n if (this.currentfocusedIndex > this.getItems().length - 1) {\r\n this.currentfocusedIndex = this.getItems().length - 1;\r\n }\r\n\r\n // set scroll\r\n this.focusOnCurrentFocusedIndex();\r\n }\r\n\r\n private focusOnCurrentFocusedIndex() {\r\n if (this.listContainer) {\r\n this.zone.runOutsideAngular(() => {\r\n const itemDiv = this.listContainer.nativeElement.querySelector(`.list-item:nth-child(${this.currentfocusedIndex})`);\r\n if (itemDiv) {\r\n itemDiv.scrollIntoView({ behavior: 'auto' });\r\n }\r\n });\r\n }\r\n }\r\n\r\n selectedItemByIndex(index: number) {\r\n if (index < 0) {\r\n index = 0;\r\n }\r\n if (index > this.getItems().length - 1) {\r\n index = this.getItems().length - 1;\r\n }\r\n this.selectItems(this.getItems()[index]);\r\n this.currentfocusedIndex = index;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXSelectBoxComponent } from './selectbox.component';\r\nimport { AXDropdownModule } from '../dropdown/dropdown.module';\r\nimport { AXTextBoxModule } from '../textbox/textbox.module';\r\nimport { AXTranslatorModule, AXScrollModule } from '@acorex/core';\r\nimport { AXCheckBoxModule } from '../checkbox/checkbox.module';\r\nimport { AXLoadingModule } from '../loading/loading.module';\r\nimport { AXSearchBoxModule } from '../searchbox/searchbox.module';\r\nimport { AXSelectBox2Component } from './selectbox2.component';\r\n\r\n\r\nconst COMPONENT = [AXSelectBoxComponent, AXSelectBox2Component];\r\nconst MODULES = [\r\n CommonModule,\r\n AXDropdownModule,\r\n AXTextBoxModule,\r\n AXTranslatorModule,\r\n AXScrollModule,\r\n AXCheckBoxModule,\r\n AXLoadingModule,\r\n AXSearchBoxModule\r\n];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: []\r\n})\r\nexport class AXSelectBoxModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { AXQueryBuilderComponent } from './query-builder.component';\r\nimport { AXButtonModule } from '../button/button.module';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXPanelBoxModule } from '../panel-box/panel-box.module';\r\nimport { AXSelectBoxModule } from '../selectbox/selectbox.module';\r\nimport { AXTextBoxModule } from '../textbox/textbox.module';\r\nimport { AXQueryBuilderRuleComponent } from './query-builder-rule.component';\r\nimport { AXQueryBuilderGroupComponent } from './query-builder-group.component';\r\nimport { AXTranslatorModule } from '@acorex/core';\r\nimport { AXNumberBoxModule } from '../number-box/number-box.module';\r\nimport { AXDataSourceModule } from '../data-source/datasource.module';\r\nimport { AXFormGroupModule } from '../form-group/form-group.module';\r\nimport { AXQueryBuilderPopupComponent } from './query-builder-popup/query-builder-popup.component';\r\nimport { AXLabelModule } from '../label/label.module';\r\nimport { AXCheckBoxModule } from '../checkbox/checkbox.module';\r\nimport { AXValidationModule } from '../validation/validation.module';\r\nimport { AXQueryBuilderService } from './query-builder.service';\r\n\r\nconst MODUELS = [\r\n CommonModule,\r\n AXButtonModule,\r\n AXPanelBoxModule,\r\n AXSelectBoxModule,\r\n AXDataSourceModule,\r\n AXTextBoxModule,\r\n AXNumberBoxModule,\r\n AXFormGroupModule,\r\n AXTranslatorModule,\r\n AXLabelModule,\r\n AXCheckBoxModule,\r\n AXValidationModule\r\n]\r\n\r\n@NgModule({\r\n declarations: [AXQueryBuilderComponent, AXQueryBuilderGroupComponent, AXQueryBuilderRuleComponent, AXQueryBuilderPopupComponent],\r\n imports: [MODUELS],\r\n exports: [AXQueryBuilderComponent],\r\n providers: [AXQueryBuilderService],\r\n entryComponents: [AXQueryBuilderPopupComponent]\r\n})\r\n\r\nexport class AXQueryBuilderModule { }","import { Component, ChangeDetectorRef, ChangeDetectionStrategy, ViewEncapsulation, Output, Input, EventEmitter } from '@angular/core';\r\nimport { AXBaseComponent, AXBaseSizableComponent, AXBaseValueComponent, AXElementSize } from '../base/element.class';\r\nimport { AXValueEvent } from '../base/events.class';\r\n\r\n@Component({\r\n selector: 'ax-switch',\r\n templateUrl: './switch.component.html',\r\n styleUrls: ['./switch.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AXSwitchComponent extends AXBaseComponent implements AXBaseSizableComponent, AXBaseValueComponent<boolean> {\r\n\r\n\r\n @Output()\r\n onValueChanged: EventEmitter<AXValueEvent<boolean>> = new EventEmitter<AXValueEvent<boolean>>();\r\n\r\n @Output()\r\n valueChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n @Input()\r\n tabIndex: number = 0;\r\n\r\n private _value: boolean;\r\n @Input()\r\n public get value(): boolean {\r\n return this._value;\r\n }\r\n public set value(v: boolean) {\r\n if (this._value !== v) {\r\n const oldValue = this._value;\r\n this._value = v;\r\n this.valueChange.emit(v);\r\n this.onValueChanged.emit({\r\n component: this,\r\n oldValue,\r\n value: v\r\n });\r\n }\r\n }\r\n\r\n\r\n @Input()\r\n readonly: boolean;\r\n\r\n @Input()\r\n disabled: boolean;\r\n\r\n @Input()\r\n size: AXElementSize = 'md';\r\n\r\n constructor(protected cdr: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n focus(): void { }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXSwitchComponent } from './switch.component';\r\n\r\n@NgModule({\r\n declarations: [AXSwitchComponent],\r\n imports: [CommonModule, FormsModule],\r\n exports: [AXSwitchComponent],\r\n entryComponents: [AXSwitchComponent],\r\n providers: [],\r\n})\r\nexport class AXSwitchModule {\r\n\r\n}","import { Injectable, EventEmitter } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { AXHtmlUtil } from '@acorex/core';\r\nimport { AXPageClosing, AXPageResult, TAB_META_KEY, AXPageClosedPromise } from '../base/base-page.class';\r\n\r\nexport interface AXTabPage {\r\n title: string;\r\n content: any;\r\n closable?: boolean;\r\n data?: any;\r\n pinned?: boolean;\r\n}\r\n\r\n\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXTabPageService {\r\n\r\n\r\n\r\n tabs: AXTabPage[] = new Array<AXTabPage>();\r\n opened = new Subject<AXTabPage>();\r\n activated = new Subject<AXTabPage>();\r\n closed = new Subject<AXTabPage>();\r\n changed = new Subject();\r\n\r\n\r\n\r\n constructor() { }\r\n\r\n open(content: any, title: string): AXPageClosedPromise;\r\n open(content: any, title: string, data?: any): AXPageClosedPromise;\r\n open(options: AXTabPage): AXPageClosedPromise;\r\n\r\n open(arg1, arg2?, arg3?) {\r\n let newTab: AXTabPage;\r\n if (typeof arg1 === 'object') {\r\n const options = Object.assign({ closable: true }, arg1);\r\n newTab = {\r\n title: options.title,\r\n closable: options.closable,\r\n content: options.content,\r\n data: options.data,\r\n pinned: options.pinned\r\n };\r\n } else {\r\n newTab = {\r\n title: arg2,\r\n closable: true,\r\n content: arg1,\r\n data: arg3,\r\n };\r\n }\r\n newTab[TAB_META_KEY] = {};\r\n newTab[TAB_META_KEY].uid = AXHtmlUtil.getUID();\r\n //\r\n const existTab = this.tabs.find((c) => newTab[TAB_META_KEY].uid && c[TAB_META_KEY].uid === newTab[TAB_META_KEY].uid) ||\r\n this.findExistTab(newTab.content, newTab.data);\r\n //\r\n if (existTab) {\r\n return Promise.resolve(this.active(existTab));\r\n }\r\n this.tabs.push(newTab);\r\n this.tabs\r\n .filter((c) => c[TAB_META_KEY].uid !== newTab[TAB_META_KEY].uid)\r\n .forEach((t) => {\r\n t[TAB_META_KEY].active = false;\r\n });\r\n this.opened.next(newTab);\r\n this.active(newTab);\r\n const promise = new AXPageClosedPromise((resolve) => {\r\n newTab[TAB_META_KEY].close = (e) => {\r\n if (resolve) {\r\n delete e.cancel;\r\n resolve(e);\r\n }\r\n };\r\n });\r\n promise['closeMethod'] = () => { this.close(newTab); };\r\n return promise;\r\n }\r\n\r\n close(tab: AXTabPage) {\r\n const e = { cancel: false };\r\n const closingFunc = tab[TAB_META_KEY].component?.onClosing;\r\n if (closingFunc) {\r\n const res = closingFunc(e);\r\n if (res instanceof Promise) {\r\n res.then(() => {\r\n if (e == null || e.cancel !== true) {\r\n this.doCloseAction(tab, e);\r\n }\r\n });\r\n }\r\n else {\r\n if (e == null || e.cancel !== true) {\r\n this.doCloseAction(tab, e);\r\n }\r\n }\r\n } else {\r\n this.doCloseAction(tab, e);\r\n }\r\n }\r\n\r\n private doCloseAction(tab: AXTabPage, e: AXPageClosing): void {\r\n const currentTab = this.tabs.find((c) => c[TAB_META_KEY].uid == tab[TAB_META_KEY].uid);\r\n if (!currentTab) {\r\n return;\r\n }\r\n const index = this.tabs.indexOf(currentTab);\r\n this.tabs = this.tabs.filter(c => c != currentTab);\r\n const prev = index > 0 ? this.tabs[index - 1] : this.tabs[0];\r\n if (prev) {\r\n this.active(prev);\r\n }\r\n this.closed.next(currentTab);\r\n this.changed.next();\r\n if (currentTab[TAB_META_KEY].close) {\r\n currentTab[TAB_META_KEY].close(e);\r\n }\r\n }\r\n\r\n active(tab: AXTabPage): AXPageResult;\r\n active(uid: string): AXPageResult;\r\n active(): AXPageResult;\r\n active(arg1?): AXPageResult {\r\n if (!arg1) {\r\n return {\r\n sender: this.tabs.find((c) => c[TAB_META_KEY].active === true)\r\n }\r\n }\r\n if (typeof arg1 === 'object') {\r\n const tab = <AXTabPage>arg1;\r\n tab[TAB_META_KEY].active = true;\r\n this.tabs\r\n .filter((c) => c[TAB_META_KEY].uid !== tab[TAB_META_KEY].uid)\r\n .forEach((t) => {\r\n t[TAB_META_KEY].active = false;\r\n });\r\n this.activated.next(tab);\r\n this.changed.next();\r\n return {\r\n sender: tab\r\n }\r\n } else if (typeof arg1 === 'string') {\r\n const tab = this.tabs.find((c) => c[TAB_META_KEY].uid === arg1);\r\n if (tab) {\r\n return this.active(tab);\r\n }\r\n return null;\r\n }\r\n }\r\n\r\n clear(): void {\r\n this.tabs.forEach((c) => {\r\n this.close(c);\r\n });\r\n this.tabs = [];\r\n }\r\n\r\n private findExistTab(component: any, data: any): AXTabPage {\r\n try {\r\n if (!data) {\r\n data = {};\r\n }\r\n const result = this.tabs.find((c: any) =>\r\n c.content === component &&\r\n ((!c.data) ||\r\n JSON.stringify(data) === JSON.stringify(c.data))\r\n );\r\n return result;\r\n } catch (error) {\r\n return null;\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, ViewContainerRef, ComponentFactoryResolver, ElementRef, ComponentRef, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';\r\nimport { AXTabPage, AXTabPageService } from './tab-page.service';\r\nimport { AXRenderService } from '@acorex/core';\r\nimport { AXBasePageComponent, AXPageCloseEvent, TAB_META_KEY } from '../base/base-page.class';\r\nimport { AXLoadingService } from '../loading/loading.service';\r\n\r\n@Component({\r\n selector: 'ax-tab-page-host',\r\n template: `\r\n <div class='ax-loading-host'>\r\n <div class='ax-tab-page-host' >\r\n <div [hidden]=\"isLoading\" style=\"height:100%\" class='ax-tab-page-host-container'>\r\n <ng-template #container></ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n `\r\n})\r\n\r\nexport class AXTabPageHostComponent implements OnInit {\r\n\r\n tab: AXTabPage;\r\n component: AXBasePageComponent;\r\n private componentRef: ComponentRef<any>;\r\n isLoading: boolean;\r\n _loadingId: number;\r\n\r\n @ViewChild('container', { read: ViewContainerRef, static: true })\r\n private container: ViewContainerRef;\r\n\r\n constructor(\r\n private resolver: ComponentFactoryResolver,\r\n private ref: ElementRef<HTMLDivElement>,\r\n private rendererService: AXRenderService,\r\n private tabService: AXTabPageService,\r\n private loadingService: AXLoadingService,\r\n private cdr: ChangeDetectorRef,\r\n ) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.isLoading = true;\r\n }\r\n\r\n async ngAfterViewInit() {\r\n this._loadingId = this.loadingService.show(this.ref.nativeElement.querySelector('.ax-tab-page-host-container'));\r\n //\r\n let data: any = {};\r\n //\r\n let component: any;\r\n if (typeof this.tab.content === 'string') {\r\n const route = await this.rendererService.findLoadedComponentByRoute(this.tab.content, 20);\r\n component = route?.component;\r\n data = Object.assign(data, route.data);\r\n }\r\n else if (typeof this.tab.content === 'function') {\r\n component = this.tab.content;\r\n }\r\n if (component == null) {\r\n // TODO: 404 page component\r\n this.isLoading = false;\r\n console.error(`Invalid page Component! ${this.tab.content}`);\r\n return;\r\n }\r\n //\r\n data = Object.assign(data, this.tab.data);\r\n //\r\n try {\r\n const factory = this.resolver.resolveComponentFactory(component);\r\n this.componentRef = this.container.createComponent(factory);\r\n if (!this.componentRef.instance.onClosed) {\r\n throw Error('The Component must be inherited from AXBasePageComponent!');\r\n }\r\n this.componentRef.instance.onClosed.subscribe((e: AXPageCloseEvent) => {\r\n this.tabService.close(this.tab);\r\n });\r\n //\r\n const com = this.componentRef.instance as any;\r\n //\r\n Object.assign(com, data);\r\n //\r\n this.tab[TAB_META_KEY].component = com;\r\n this.isLoading = false;\r\n this.loadingService.hide(this._loadingId);\r\n this.componentRef.changeDetectorRef.detectChanges();\r\n } catch (error) {\r\n // TODO: 404 page component\r\n console.error(error);\r\n } finally {\r\n //this.isLoading = false;\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.componentRef) {\r\n this.componentRef.hostView.destroy();\r\n this.componentRef.destroy();\r\n this.container.clear();\r\n }\r\n this.loadingService.hide(this._loadingId);\r\n }\r\n}","import { Component, ViewChild, ViewContainerRef, ComponentFactoryResolver, ComponentRef, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';\r\nimport { AXTabPageService } from './tab-page.service';\r\nimport { TAB_META_KEY } from '../base/base-page.class';\r\nimport { AXTabPageHostComponent } from './tab-page-host.component';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'ax-tab-page-renderer',\r\n template: `<template #container></template>`,\r\n host: { 'class': 'ax tab-page-renderer' }\r\n})\r\nexport class AXTabPageRendererComponent {\r\n\r\n childs: ComponentRef<AXTabPageHostComponent>[] = [];\r\n\r\n @ViewChild('container', { read: ViewContainerRef }) container: ViewContainerRef;\r\n\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(\r\n private resolver: ComponentFactoryResolver,\r\n private tabService: AXTabPageService,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n this.subscriptions.push(tabService.activated.subscribe(tab => {\r\n this.childs.forEach((v: ComponentRef<AXTabPageHostComponent>) => {\r\n v.changeDetectorRef.detach();\r\n v.location.nativeElement.hidden = true;\r\n });\r\n const v = this.childs.find(t => (t as any).uid === tab[TAB_META_KEY].uid) as ComponentRef<AXTabPageHostComponent>;\r\n if (v) {\r\n v.location.nativeElement.hidden = false;\r\n v.changeDetectorRef.reattach();\r\n }\r\n else {\r\n try {\r\n const factory = this.resolver.resolveComponentFactory(AXTabPageHostComponent);\r\n const componentRef = this.container.createComponent(factory);\r\n (componentRef as any).uid = tab[TAB_META_KEY].uid;\r\n const host = componentRef.instance as AXTabPageHostComponent;\r\n host.tab = tab;\r\n this.childs.push(componentRef);\r\n setTimeout(() => {\r\n componentRef.changeDetectorRef.detectChanges();\r\n }, 10);\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n }));\r\n\r\n this.subscriptions.push(tabService.closed.subscribe(tab => {\r\n const hostref = this.childs.find(c => (c as any).uid === tab[TAB_META_KEY].uid);\r\n if (hostref) {\r\n hostref.destroy();\r\n }\r\n this.childs = this.childs.filter(c => (c as any).uid !== tab[TAB_META_KEY].uid);\r\n }));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.tabService.clear();\r\n this.subscriptions.forEach(s => {\r\n s.unsubscribe();\r\n });\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXTabPageRendererComponent } from './tab-page-Renderer.component';\r\nimport { AXTabPageService } from './tab-page.service';\r\nimport { AXLoadingModule } from '../loading/loading.module';\r\nimport { AXTabPageHostComponent } from './tab-page-host.component';\r\n\r\n@NgModule({\r\n declarations: [AXTabPageRendererComponent, AXTabPageHostComponent],\r\n imports: [CommonModule, AXLoadingModule],\r\n exports: [AXTabPageRendererComponent],\r\n entryComponents: [AXTabPageRendererComponent, AXTabPageHostComponent],\r\n providers: [AXTabPageService],\r\n})\r\nexport class AXTabPageModule { }","import { Component, OnInit, Input, Output, EventEmitter, ElementRef } from '@angular/core';\r\nimport { AXBaseEvent } from '../base/events.class';\r\n\r\nexport declare class AXTabStripItem {\r\n id: string;\r\n name?: string;\r\n text?: string;\r\n tooltip?: string;\r\n icon?: string;\r\n visible?: boolean;\r\n disable?: boolean;\r\n data?: any;\r\n style?: string;\r\n active?: boolean;\r\n}\r\n\r\nexport class AXTabStripChangedEvent extends AXBaseEvent {\r\n seledtedTab: AXTabStripItem;\r\n}\r\n\r\n@Component({\r\n selector: 'ax-tab-strip',\r\n templateUrl: './tab-strip.component.html'\r\n})\r\nexport class AXTabStripComponent implements OnInit {\r\n constructor(private ref: ElementRef) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n @Input()\r\n items: AXTabStripItem[] = [];\r\n\r\n @Output()\r\n onTabChanged: EventEmitter<AXTabStripChangedEvent> = new EventEmitter<AXTabStripChangedEvent>();\r\n\r\n handleClick(i: AXTabStripItem) {\r\n this.items.forEach((c) => (c.active = false));\r\n i.active = true;\r\n this.onTabChanged.emit({\r\n component: this,\r\n seledtedTab: i,\r\n htmlElement: this.ref.nativeElement\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXTabStripComponent } from './tab-strip.component';\r\n\r\n@NgModule({\r\n declarations: [AXTabStripComponent],\r\n imports: [CommonModule],\r\n exports: [AXTabStripComponent],\r\n providers: []\r\n})\r\nexport class AXTabStripModule {}\r\n","/**\r\n * This directive is used as an anchor to get access\r\n * to the ViewContainerRef which here is exposed via\r\n * the public member `viewContainer`\r\n *\r\n * Theres an ALTERNATIVE to explicitly using the anchor directive.\r\n * Read in the blog post\r\n */\r\n\r\nimport { Directive, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[dynamic-tabs]'\r\n})\r\nexport class DynamicTabsDirective {\r\n constructor(public viewContainer: ViewContainerRef) {}\r\n}\r\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\r\n@Component({\r\n selector: 'ax-tab',\r\n templateUrl: './tab.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXTabComponent {\r\n @Input() caption: string;\r\n @Input() name: string;\r\n @Input() active = false;\r\n @Input() isCloseable = false;\r\n @Input() template: any;\r\n @Input() dataContext: any;\r\n @Input() icon: string;\r\n}\r\n","/**\r\n * The main component that renders single TabComponent\r\n * instances.\r\n */\r\n\r\nimport {\r\n Component,\r\n ContentChildren,\r\n QueryList,\r\n AfterContentInit,\r\n ViewChild,\r\n ComponentFactoryResolver,\r\n ViewEncapsulation,\r\n Attribute,\r\n Output,\r\n EventEmitter,\r\n ElementRef\r\n} from '@angular/core';\r\n\r\nimport { AXTabComponent } from './tab.component';\r\nimport { DynamicTabsDirective } from './dynamic-tabs.directive';\r\nimport { AXDataEvent } from '../base/events.class';\r\n\r\n@Component({\r\n selector: 'ax-tab-view',\r\n templateUrl: './tab-view.component.html',\r\n styleUrls: ['./tab-view.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXTabViewComponent implements AfterContentInit {\r\n dynamicTabs: AXTabComponent[] = [];\r\n\r\n @ContentChildren(AXTabComponent) tabs: QueryList<AXTabComponent>;\r\n\r\n @ViewChild(DynamicTabsDirective) dynamicTabPlaceholder: DynamicTabsDirective;\r\n\r\n @Output()\r\n onActiveTab: EventEmitter<AXDataEvent<any>> = new EventEmitter<AXDataEvent<any>>();\r\n /*\r\n Alternative approach of using an anchor directive\r\n would be to simply get hold of a template variable\r\n as follows\r\n */\r\n // @ViewChild('container', {read: ViewContainerRef}) dynamicTabPlaceholder;\r\n\r\n constructor(private ref: ElementRef, private _componentFactoryResolver: ComponentFactoryResolver, @Attribute('fullWidth') public fullWidth: boolean = false) { }\r\n\r\n // contentChildren are set\r\n ngAfterContentInit() {\r\n // get all active tabs\r\n const activeTabs = this.tabs.filter((tab) => tab.active);\r\n\r\n // if there is no active tab set, activate the first\r\n if (activeTabs.length === 0) {\r\n this.selectTab(this.tabs.first);\r\n }\r\n }\r\n\r\n openTab(title: string, template, isCloseable = false, icon = null, data = null) {\r\n // get a component factory for our AXTabComponent\r\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(AXTabComponent);\r\n\r\n // fetch the view container reference from our anchor directive\r\n const viewContainerRef = this.dynamicTabPlaceholder.viewContainer;\r\n\r\n // alternatively...\r\n // let viewContainerRef = this.dynamicTabPlaceholder;\r\n\r\n // create a component instance\r\n const componentRef = viewContainerRef.createComponent(componentFactory);\r\n\r\n // set the according properties on our component instance\r\n const instance: AXTabComponent = componentRef.instance as AXTabComponent;\r\n instance.caption = title;\r\n instance.template = template;\r\n instance.dataContext = data;\r\n instance.isCloseable = isCloseable;\r\n instance.icon = icon;\r\n\r\n // remember the dynamic component for rendering the\r\n // tab navigation headers\r\n this.dynamicTabs.push(componentRef.instance as AXTabComponent);\r\n\r\n //componentRef.changeDetectorRef.detectChanges();\r\n\r\n // set it active\r\n this.selectTab(this.dynamicTabs[this.dynamicTabs.length - 1]);\r\n }\r\n\r\n selectTab(tab: AXTabComponent) {\r\n // deactivate all tabs\r\n this.tabs.toArray().forEach((tab) => (tab.active = false));\r\n this.dynamicTabs.forEach((tab) => (tab.active = false));\r\n\r\n // activate the tab the user has clicked on.\r\n tab.active = true;\r\n this.onActiveTab.emit({ component: this, data: tab, htmlElement: this.ref.nativeElement })\r\n\r\n }\r\n\r\n closeTab(tab: AXTabComponent) {\r\n for (let i = 0; i < this.dynamicTabs.length; i++) {\r\n if (this.dynamicTabs[i] === tab) {\r\n // remove the tab from our array\r\n this.dynamicTabs.splice(i, 1);\r\n\r\n // destroy our dynamically created component again\r\n const viewContainerRef = this.dynamicTabPlaceholder.viewContainer;\r\n // let viewContainerRef = this.dynamicTabPlaceholder;\r\n viewContainerRef.remove(i);\r\n\r\n // set tab index to 1st one\r\n this.selectTab(this.tabs.first);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n closeActiveTab() {\r\n const activeTabs = this.dynamicTabs.filter((tab) => tab.active);\r\n if (activeTabs.length > 0) {\r\n // close the 1st active tab (should only be one at a time)\r\n this.closeTab(activeTabs[0]);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXTabComponent } from './tab.component';\r\nimport { AXTabViewComponent } from './tab-view.component';\r\nimport { DynamicTabsDirective } from './dynamic-tabs.directive';\r\n@NgModule({\r\n declarations: [AXTabComponent, AXTabViewComponent, DynamicTabsDirective],\r\n imports: [CommonModule],\r\n exports: [AXTabComponent, AXTabViewComponent, DynamicTabsDirective],\r\n providers: []\r\n})\r\nexport class AXTabViewModule {}\r\n","import { Component, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, ViewChild, ElementRef, Input } from '@angular/core';\r\nimport { AXBaseTextComponent, AXValidatableComponent } from '../base/element.class';\r\n\r\n@Component({\r\n selector: 'ax-text-area',\r\n templateUrl: './textarea.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { style: 'display: contents;' },\r\n providers: [{ provide: AXValidatableComponent, useExisting: AXTextAreaComponent }]\r\n})\r\nexport class AXTextAreaComponent extends AXBaseTextComponent {\r\n constructor(protected cdr: ChangeDetectorRef, ref: ElementRef) {\r\n super(cdr, ref);\r\n }\r\n\r\n @Input()\r\n rows: number = 0;\r\n @Input()\r\n cols: number = 0;\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXTextAreaComponent } from './textarea.component';\r\n\r\nconst COMPONENT = [AXTextAreaComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXTextAreaModule { }","import {\r\n Component,\r\n OnInit,\r\n ChangeDetectorRef,\r\n ElementRef,\r\n Input,\r\n ViewChild,\r\n ChangeDetectionStrategy,\r\n EventEmitter,\r\n Output,\r\n ContentChild\r\n\r\n} from '@angular/core';\r\nimport { AXBaseTextComponent, AXValidatableComponent } from '../base/element.class';\r\nimport { _ } from 'ag-grid-community';\r\nimport { AXValueEvent } from '../base/events.class';\r\nimport { AXTranslator } from '@acorex/core';\r\n\r\nexport class AXTimePickerItemChangedEvent {\r\n minute?: number;\r\n second?: number;\r\n hour?: number;\r\n time: string;\r\n\r\n}\r\nexport class AXTimePickerChangedEvent extends AXValueEvent<AXTimePickerItemChangedEvent> { }\r\n\r\n@Component({\r\n selector: 'ax-time-picker',\r\n templateUrl: './time-picker.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { style: 'display: contents;' },\r\n providers: [{ provide: AXValidatableComponent, useExisting: AXTimePickerComponent }]\r\n})\r\nexport class AXTimePickerComponent extends AXBaseTextComponent implements OnInit {\r\n @Output()\r\n onValueChanged: EventEmitter<AXTimePickerChangedEvent> = new EventEmitter<AXTimePickerChangedEvent>();\r\n\r\n // @ViewChild('input', { static: true })\r\n // @ContentChild('input', { static: true })\r\n // input: ElementRef<HTMLInputElement>;\r\n\r\n @Input()\r\n timeType: any;\r\n\r\n type: string = 'HHmm';\r\n @Input()\r\n showCurentTime: boolean = false;\r\n\r\n clearDisabled: boolean = true;\r\n HHmmss: any = [/[0-2]/, /[0-9]/, ':', /[0-5]/, /[0-9]/, ':', /[0-5]/, /[0-9]/];\r\n HHmm: any = [/[0-2]/, /[0-9]/, ':', /[0-5]/, /[0-9]/];\r\n HH: any = [/[0-2]/, /[0-9]/];\r\n hhmmss: any = [/[0-1]/, /[0-9]/, ':', /[0-5]/, /[0-9]/, ':', /[0-5]/, /[0-9]/];\r\n hhmm: any = [/[0-1]/, /[0-9]/, ':', /[0-5]/, /[0-9]/];\r\n hh: any = [/[0-1]/, /[0-9]/];\r\n // TODO: apply am pm from locale\r\n hhmmssam: any = [/[0-1]/, /[0-9]/, ':', /[0-5]/, /[0-9]/, ':', /[0-5]/, /[0-9]/, ' ', /[a|p|ق|ب]/, AXTranslator.get('dateTime.dayTime.m')];\r\n hhmmam: any = [/[0-1]/, /[0-9]/, ':', /[0-5]/, /[0-9]/, ' ', /[a|p|ق|ب]/, AXTranslator.get('dateTime.dayTime.m')];\r\n hham: any = [/[0-1]/, /[0-9]/, ' ', /[a|p|ق|ب]/, AXTranslator.get('dateTime.dayTime.m')];\r\n textValue: string = '';\r\n\r\n valueHam: string = '-- ' + AXTranslator.get('dateTime.dayTime.am');\r\n valueMam: string = '--:-- ' + AXTranslator.get('dateTime.dayTime.am');\r\n valueSam: string = '--:--:-- ' + AXTranslator.get('dateTime.dayTime.am');\r\n\r\n\r\n private _values: string;\r\n public get value(): string {\r\n return this._values;\r\n }\r\n public set value(v: string) {\r\n if (v === '' || v == null || v === '--:--:--' || v === '--:--' || v === '--' || v === this.valueSam || v === this.valueMam || v === this.valueHam) {\r\n this.clearDisabled = false;\r\n\r\n const old = this._values;\r\n switch (this.type) {\r\n case 'HHmmss':\r\n this.textValue = '--:--:--';\r\n break;\r\n case 'HHmm':\r\n this.textValue = '--:--';\r\n break;\r\n case 'HH':\r\n this.textValue = '--';\r\n break;\r\n case 'hhmmss':\r\n this.textValue = '--:--:--';\r\n break;\r\n case 'hhmm':\r\n this.textValue = '--:--';\r\n break;\r\n case 'hh':\r\n this.textValue = '--';\r\n break;\r\n case 'hhmmssam':\r\n this.textValue = this.valueSam;\r\n break;\r\n case 'hhmmam':\r\n this.textValue = this.valueMam;\r\n break;\r\n case 'hham':\r\n this.textValue = this.valueHam;\r\n break;\r\n }\r\n\r\n this._values = null;\r\n if (v !== old) {\r\n this.valueChange.emit(null);\r\n this.onValueChanged.emit({\r\n component: this,\r\n value: { hour: null, minute: null, second: null, time: null },\r\n oldValue: { time: old },\r\n htmlElement: this.ref.nativeElement\r\n });\r\n }\r\n } else {\r\n this.clearDisabled = true;\r\n if (this._values && v) {\r\n const old = this._values;\r\n const ind1 = v.charAt(0);\r\n const ind2 = v.charAt(1);\r\n const ind3 = v.charAt(2);\r\n const ind4 = v.charAt(3);\r\n const ind5 = v.charAt(4);\r\n const ind6 = v.charAt(5);\r\n const ind7 = v.charAt(6);\r\n const ind8 = v.charAt(7);\r\n const ind9 = v.charAt(8);\r\n const ind10 = v.charAt(9);\r\n\r\n const indOld4 = old.charAt(9);\r\n const indOld7 = old.charAt(9);\r\n const indOld10 = old.charAt(9);\r\n\r\n // handle hhmmssAm\r\n if (ind1 === '-' && ind2 !== '-' && this.timeType.mask === this.hhmmssam) {\r\n this.textValue = '0' + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + ind10 + AXTranslator.get('dateTime.dayTime.m');\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 2);\r\n this.cursorPosition = 2;\r\n }, 0);\r\n }\r\n if (ind4 === '-' && ind5 !== '-' && this.timeType.mask === this.hhmmssam) {\r\n this.textValue = ind1 + ind2 + ind3 + '0' + ind5 + ind6 + ind7 + ind8 + ind9 + ind10 + AXTranslator.get('dateTime.dayTime.m');\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 5);\r\n this.cursorPosition = 5;\r\n }, 0);\r\n }\r\n if (ind7 === '-' && ind8 !== '-' && this.timeType.mask === this.hhmmssam) {\r\n this.textValue = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + '0' + ind8 + ind9 + ind10 + AXTranslator.get('dateTime.dayTime.m');\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 8);\r\n this.cursorPosition = 8;\r\n }, 0);\r\n }\r\n if (indOld10 === '-' && this.timeType.mask === this.hhmmssam) {\r\n this.textValue = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + AXTranslator.get('dateTime.dayTime.am');\r\n }\r\n\r\n //\r\n if (ind1 === '-' && ind2 !== '-' && this.timeType.mask === this.hhmmam) {\r\n this.textValue = '0' + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + AXTranslator.get('dateTime.dayTime.m');\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 2);\r\n this.cursorPosition = 2;\r\n }, 0);\r\n }\r\n if (ind4 === '-' && ind5 !== '-' && this.timeType.mask === this.hhmmam) {\r\n this.textValue = ind1 + ind2 + ind3 + '0' + ind5 + ind6 + ind7 + AXTranslator.get('dateTime.dayTime.m');\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 5);\r\n this.cursorPosition = 5;\r\n }, 0);\r\n }\r\n if (indOld7 === '-' && this.timeType.mask === this.hhmmam) {\r\n this.textValue = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + AXTranslator.get('dateTime.dayTime.am');\r\n }\r\n\r\n //\r\n if (ind1 === '-' && ind2 !== '-' && this.timeType.mask === this.hham) {\r\n this.textValue = '0' + ind2 + ind3 + ind4 + AXTranslator.get('dateTime.dayTime.m');\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 2);\r\n this.cursorPosition = 2;\r\n }, 0);\r\n }\r\n if (indOld4 === '-' && this.timeType.mask === this.hham) {\r\n this.textValue = ind1 + ind2 + ind3 + AXTranslator.get('dateTime.dayTime.am');\r\n }\r\n\r\n //\r\n if (ind1 === '-' && ind2 !== '-' && (this.timeType.mask === this.hhmmss || this.timeType.mask === this.HHmmss)) {\r\n this.textValue = '0' + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8;\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 2);\r\n this.cursorPosition = 2;\r\n }, 0);\r\n }\r\n if (ind4 === '-' && ind5 !== '-' && (this.timeType.mask === this.hhmmss || this.timeType.mask === this.HHmmss)) {\r\n this.textValue = ind1 + ind2 + ind3 + '0' + ind5 + ind6 + ind7 + ind8;\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 6);\r\n this.cursorPosition = 6;\r\n }, 0);\r\n }\r\n if (ind7 === '-' && ind8 !== '-' && (this.timeType.mask === this.hhmmss || this.timeType.mask === this.HHmmss)) {\r\n this.textValue = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + '0' + ind8;\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 9);\r\n this.cursorPosition = 9;\r\n }, 0);\r\n }\r\n\r\n //\r\n if (ind1 === '-' && ind2 !== '-' && (this.timeType.mask === this.hhmm || this.timeType.mask === this.HHmm)) {\r\n this.textValue = '0' + ind2 + ind3 + ind4 + ind5;\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 2);\r\n this.cursorPosition = 2;\r\n }, 0);\r\n }\r\n if (ind4 === '-' && ind5 !== '-' && (this.timeType.mask === this.hhmm || this.timeType.mask === this.HHmm)) {\r\n this.textValue = ind1 + ind2 + ind3 + '0' + ind5;\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 5);\r\n this.cursorPosition = 5;\r\n }, 0);\r\n }\r\n\r\n //\r\n if (ind1 === '-' && ind2 !== '-' && (this.timeType.mask === this.hh || this.timeType.mask === this.HH)) {\r\n this.textValue = '0' + ind2;\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 2);\r\n this.cursorPosition = 2;\r\n }, 0);\r\n }\r\n }\r\n if (v !== this._values) {\r\n const old = this._values;\r\n this.textValue = v;\r\n this._values = (v && v.indexOf('-') === -1) ? v : null;\r\n if (v.indexOf('-') === -1) {\r\n this.valueChange.emit(v);\r\n this.onValueChanged.emit({\r\n component: this,\r\n value: {\r\n time: v,\r\n hour: Number(v[0] + v[1]),\r\n minute: v[3] && v[3] !== AXTranslator.get('dateTime.dayTime.a') && v[3] !== AXTranslator.get('dateTime.dayTime.p') ? Number(v[3] + v[4]) : null,\r\n second: v[6] && v[6] !== AXTranslator.get('dateTime.dayTime.a') && v[6] !== AXTranslator.get('dateTime.dayTime.p') ? Number(v[6] + v[7]) : null\r\n },\r\n oldValue: { time: old },\r\n htmlElement: this.ref.nativeElement\r\n });\r\n this.cdr.detectChanges();\r\n this.clearValidationStyle(this.input.nativeElement);\r\n }\r\n }\r\n }\r\n }\r\n\r\n cursorPosition: number = 0;\r\n\r\n constructor(protected cdr: ChangeDetectorRef, ref: ElementRef) {\r\n super(cdr, ref);\r\n \r\n this.timeType = 'HHmm';\r\n }\r\n clearValue() {\r\n this.clear();\r\n this.handleInputFocus();\r\n }\r\n\r\n ngOnInit(): void {\r\n switch (this.timeType) {\r\n case 'HHmmss':\r\n this.type = 'HHmmss';\r\n this.timeType = {\r\n guide: true,\r\n showMask: true,\r\n mask: this.HHmmss,\r\n keepCharPositions: true,\r\n placeholderChar: '-'\r\n };\r\n this.textValue = this.value ? this.value : '--:--:--';\r\n break;\r\n case 'HHmm':\r\n this.type = 'HHmm';\r\n this.timeType = {\r\n guide: true,\r\n showMask: true,\r\n mask: this.HHmm,\r\n keepCharPositions: true,\r\n placeholderChar: '-'\r\n };\r\n this.textValue = this.value ? this.value : '--:--';\r\n break;\r\n case 'HH':\r\n this.type = 'HH';\r\n this.timeType = {\r\n guide: true,\r\n showMask: true,\r\n mask: this.HH,\r\n keepCharPositions: true,\r\n placeholderChar: '-'\r\n };\r\n this.textValue = this.value ? this.value : '--';\r\n break;\r\n case 'hhmmss':\r\n this.type = 'hhmmss';\r\n this.timeType = {\r\n guide: true,\r\n showMask: true,\r\n mask: this.hhmmss,\r\n keepCharPositions: true,\r\n placeholderChar: '-'\r\n };\r\n this.textValue = this.value ? this.value : '--:--:--';\r\n break;\r\n case 'hhmm':\r\n this.type = 'hhmm';\r\n this.timeType = {\r\n guide: true,\r\n showMask: true,\r\n mask: this.hhmm,\r\n keepCharPositions: true,\r\n placeholderChar: '-'\r\n };\r\n this.textValue = this.value ? this.value : '--:--';\r\n break;\r\n case 'hh':\r\n this.type = 'hh';\r\n\r\n this.timeType = {\r\n guide: true,\r\n showMask: true,\r\n mask: this.hh,\r\n keepCharPositions: true,\r\n placeholderChar: '-'\r\n };\r\n this.textValue = this.value ? this.value : '--';\r\n break;\r\n case 'hhmmssam':\r\n this.type = 'hhmmssam';\r\n\r\n this.timeType = {\r\n guide: true,\r\n showMask: true,\r\n mask: this.hhmmssam,\r\n keepCharPositions: true,\r\n placeholderChar: '-'\r\n };\r\n this.textValue = this.value ? this.value : this.valueSam;\r\n break;\r\n case 'hhmmam':\r\n this.type = 'hhmmam';\r\n\r\n this.timeType = {\r\n guide: true,\r\n showMask: true,\r\n mask: this.hhmmam,\r\n keepCharPositions: true,\r\n placeholderChar: '-'\r\n };\r\n this.textValue = this.value ? this.value : this.valueMam;\r\n\r\n break;\r\n case 'hham':\r\n this.type = 'hham';\r\n\r\n this.timeType = {\r\n guide: true,\r\n showMask: true,\r\n mask: this.hham,\r\n keepCharPositions: true,\r\n placeholderChar: '-'\r\n };\r\n this.textValue = this.value ? this.value : this.valueHam;\r\n break;\r\n default:\r\n this.type = 'HHmm';\r\n this.timeType = {\r\n guide: true,\r\n showMask: true,\r\n mask: this.HHmm,\r\n keepCharPositions: true,\r\n placeholderChar: '-'\r\n };\r\n this.textValue = this.value ? this.value : '--:--';\r\n break;\r\n\r\n }\r\n if (this.showCurentTime === true) {\r\n const hour = new Date().getHours() > 10 ? new Date().getHours() : '0' + new Date().getHours();\r\n let amHour: any;\r\n\r\n if (new Date().getHours() > 10) {\r\n if (new Date().getHours() > 12) {\r\n if (new Date().getHours() - 12 < 10) {\r\n amHour = '0' + (new Date().getHours() - 12);\r\n } else {\r\n amHour = new Date().getHours();\r\n }\r\n } else {\r\n amHour = new Date().getHours();\r\n }\r\n } else {\r\n amHour = '0' + new Date().getHours();\r\n }\r\n\r\n const min = new Date().getMinutes() > 9 ? new Date().getMinutes() : '0' + new Date().getMinutes();\r\n const sec = new Date().getSeconds() > 9 ? new Date().getSeconds() : '0' + new Date().getSeconds();\r\n if (this.type === 'hh' || this.type === 'hhmm' || this.type === 'hhmmss' || this.type === 'hhmmssam') {\r\n if (hour >= 12) {\r\n this.value = amHour + ':' + min + ':' + sec + ' ' + AXTranslator.get('dateTime.dayTime.pm');\r\n } else {\r\n this.value = amHour + ':' + min + ':' + sec + ' ' + AXTranslator.get('dateTime.dayTime.am');\r\n }\r\n } else if (this.type === 'hham') {\r\n if (hour >= 12) {\r\n this.value = amHour + ' ' + AXTranslator.get('dateTime.dayTime.pm');\r\n } else {\r\n this.value = amHour + ' ' + AXTranslator.get('dateTime.dayTime.am');\r\n }\r\n } else if (this.type === 'hhmmam') {\r\n if (hour >= 12) {\r\n this.value = amHour + ':' + min + ' ' + AXTranslator.get('dateTime.dayTime.pm');\r\n } else {\r\n this.value = amHour + ':' + min + ' ' + AXTranslator.get('dateTime.dayTime.am');\r\n }\r\n } else {\r\n this.value = hour + ':' + min + ':' + sec;\r\n }\r\n }\r\n }\r\n\r\n onStartfocus() {\r\n this.input.nativeElement.style.caretColor = 'transparent';\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 0);\r\n this.cursorPosition = 0;\r\n this.input.nativeElement.style.caretColor = 'auto';\r\n }, 0);\r\n }\r\n\r\n handleInputFocus() {\r\n this.onStartfocus();\r\n this.input.nativeElement.focus();\r\n }\r\n handleInputBlur(e) {\r\n if (this.textValue.indexOf('-') !== -1) {\r\n switch (this.type) {\r\n case 'HHmmss':\r\n this.textValue = '--:--:--';\r\n break;\r\n case 'HHmm':\r\n this.textValue = '--:--';\r\n break;\r\n case 'HH':\r\n this.textValue = '--';\r\n break;\r\n case 'hhmmss':\r\n this.textValue = '--:--:--';\r\n break;\r\n case 'hhmm':\r\n this.textValue = '--:--';\r\n break;\r\n case 'hh':\r\n this.textValue = '--';\r\n break;\r\n case 'hhmmssam':\r\n this.textValue = this.valueSam;\r\n break;\r\n case 'hhmmam':\r\n this.textValue = this.valueMam;\r\n break;\r\n case 'hham':\r\n this.textValue = this.valueHam;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n handleKeyPress(event: any) {\r\n const inputChar = String.fromCharCode(event.charCode);\r\n const firstChar = this.textValue.charAt(0);\r\n const secondChar = this.textValue.charAt(1);\r\n\r\n setTimeout(() => {\r\n if (this.input.nativeElement.selectionStart || this.input.nativeElement.selectionStart === 0) {\r\n this.cursorPosition = this.input.nativeElement.selectionStart;\r\n // this.cursorPosition += 1 ;\r\n }\r\n }, 0);\r\n\r\n if (firstChar === '2') {\r\n if (secondChar === '' || this.textValue.charAt(1) >= '4' || this.cursorPosition < 3) {\r\n if (inputChar >= '4') {\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n if (\r\n this.timeType.mask === this.hhmmss ||\r\n this.timeType.mask === this.hhmm ||\r\n this.timeType.mask === this.hh ||\r\n this.timeType.mask === this.hhmmssam ||\r\n this.timeType.mask === this.hhmmam ||\r\n this.timeType.mask === this.hham\r\n ) {\r\n if (firstChar === '1') {\r\n if (secondChar === '' || this.textValue.charAt(1) >= '3' || this.cursorPosition < 3) {\r\n if (inputChar >= '3') {\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n }\r\n if (inputChar === '-') {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n handleKeyUp(event: KeyboardEvent) {\r\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\r\n this.input.nativeElement.style.caretColor = 'auto';\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n // up & down button\r\n if (event.key === 'ArrowUp') {\r\n this.setCaret();\r\n }\r\n if (event.key === 'ArrowDown') {\r\n this.setCaret();\r\n }\r\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\r\n event.preventDefault();\r\n return false;\r\n }\r\n\r\n // left & right Button\r\n if (event.key === 'ArrowLeft' || event.key === 'ArrowRight') {\r\n if (this.input.nativeElement.selectionStart || this.input.nativeElement.selectionStart === 0) {\r\n this.cursorPosition = this.input.nativeElement.selectionStart;\r\n }\r\n }\r\n\r\n // home button\r\n if (event.key === 'Home') {\r\n this.cursorPosition = 0;\r\n }\r\n\r\n // end button\r\n if (event.key === 'End') {\r\n if (this.timeType.mask === this.hhmmssam || this.timeType.mask === this.hhmmam || this.timeType.mask === this.hham) {\r\n if (this.timeType.mask === this.hhmmssam) {\r\n this.cursorPosition = 9;\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, this.cursorPosition);\r\n this.input.nativeElement.style.caretColor = 'auto';\r\n }, 0);\r\n }\r\n if (this.timeType.mask === this.hhmmam) {\r\n this.cursorPosition = 6;\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, this.cursorPosition);\r\n this.input.nativeElement.style.caretColor = 'auto';\r\n }, 0);\r\n }\r\n if (this.timeType.mask === this.hham) {\r\n this.cursorPosition = 3;\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, this.cursorPosition);\r\n this.input.nativeElement.style.caretColor = 'auto';\r\n }, 0);\r\n }\r\n } else {\r\n this.cursorPosition = this.textValue.length;\r\n }\r\n }\r\n\r\n // backspace Control\r\n if (event.key === 'Backspace') {\r\n const ind1 = this.textValue.charAt(0);\r\n const ind2 = this.textValue.charAt(1);\r\n const ind3 = this.textValue.charAt(2);\r\n const ind4 = this.textValue.charAt(3);\r\n const ind5 = this.textValue.charAt(4);\r\n const ind6 = this.textValue.charAt(5);\r\n const ind7 = this.textValue.charAt(6);\r\n const ind8 = this.textValue.charAt(7);\r\n const ind9 = this.textValue.charAt(8);\r\n const ind10 = this.textValue.charAt(9);\r\n if (this.timeType.mask === this.hhmmssam) {\r\n if (ind10 === '-') {\r\n this.textValue = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + AXTranslator.get('dateTime.dayTime.am');\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 0);\r\n this.cursorPosition = 0;\r\n }, 0);\r\n }\r\n }\r\n if (this.timeType.mask === this.hhmmam) {\r\n if (ind7 === '-') {\r\n this.textValue = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + AXTranslator.get('dateTime.dayTime.am');\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 0);\r\n this.cursorPosition = 0;\r\n }, 0);\r\n }\r\n }\r\n if (this.timeType.mask === this.hham) {\r\n if (ind4 === '-') {\r\n this.textValue = ind1 + ind2 + ind3 + AXTranslator.get('dateTime.dayTime.am');\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 0);\r\n this.cursorPosition = 0;\r\n }, 0);\r\n }\r\n }\r\n\r\n if (this.textValue.length <= 0) {\r\n this.cursorPosition = 0;\r\n } else {\r\n this.cursorPosition -= 1;\r\n }\r\n }\r\n }\r\n\r\n handleKeyDown(event: KeyboardEvent) {\r\n if (event.key === 'End') {\r\n if (this.timeType.mask === this.hhmmssam || this.timeType.mask === this.hhmmam || this.timeType.mask === this.hham) {\r\n this.input.nativeElement.style.caretColor = 'transparent';\r\n } else {\r\n this.input.nativeElement.style.caretColor = 'auto';\r\n }\r\n }\r\n\r\n let newValue = this.textValue;\r\n\r\n const ind1 = newValue.charAt(0);\r\n const ind2 = newValue.charAt(1);\r\n const ind3 = this.textValue.charAt(2);\r\n const ind4 = this.textValue.charAt(3);\r\n const ind5 = this.textValue.charAt(4);\r\n const ind6 = this.textValue.charAt(5);\r\n const ind7 = this.textValue.charAt(6);\r\n const ind8 = this.textValue.charAt(7);\r\n const ind9 = this.textValue.charAt(8);\r\n const ind10 = this.textValue.charAt(9);\r\n const ind11 = this.textValue.charAt(10);\r\n\r\n // up key\r\n if (event.key === 'ArrowUp') {\r\n // hour\r\n if (this.cursorPosition <= 2) {\r\n const hourind = ind1 + ind2;\r\n const newHour = +hourind + 1;\r\n newValue = newHour.toString();\r\n if (\r\n this.timeType.mask === this.hhmmss ||\r\n this.timeType.mask === this.hhmm ||\r\n this.timeType.mask === this.hh ||\r\n this.timeType.mask === this.hhmmssam ||\r\n this.timeType.mask === this.hhmmam ||\r\n this.timeType.mask === this.hham\r\n ) {\r\n if (hourind === '--') {\r\n newValue = '0';\r\n }\r\n if (ind1 !== '-' && hourind === ind1 + '-') {\r\n newValue = '0';\r\n }\r\n if (ind2 !== '-' && hourind === '-' + ind2) {\r\n newValue = '0';\r\n }\r\n if (+newValue > 12) {\r\n newValue = '01';\r\n } else if (+newValue < 10) {\r\n newValue = '0' + newValue;\r\n }\r\n } else {\r\n if (hourind === '--') {\r\n newValue = '0';\r\n }\r\n if (ind1 !== '-' && hourind === ind1 + '-') {\r\n newValue = '0';\r\n }\r\n if (ind2 !== '-' && hourind === '-' + ind2) {\r\n newValue = '0';\r\n }\r\n if (+newValue > 23) {\r\n newValue = '00';\r\n } else if (+newValue < 10) {\r\n newValue = '0' + newValue;\r\n }\r\n }\r\n const afterHourind = ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + ind10 + ind11;\r\n const hour = newValue.toString() + afterHourind;\r\n this.textValue = hour;\r\n }\r\n // minute\r\n if (this.cursorPosition >= 3 && this.cursorPosition <= 5) {\r\n const hourind = ind4 + ind5;\r\n const newHour = +hourind + 1;\r\n\r\n newValue = newHour.toString();\r\n if (hourind === '--') {\r\n newValue = '0';\r\n }\r\n if (ind4 !== '-' && hourind === ind4 + '-') {\r\n newValue = '0';\r\n }\r\n if (ind5 !== '-' && hourind === '-' + ind5) {\r\n newValue = '0';\r\n }\r\n if (+newValue > 59) {\r\n newValue = '00';\r\n } else if (+newValue < 10) {\r\n newValue = '0' + newValue;\r\n }\r\n const beforeHourind = ind1 + ind2 + ind3;\r\n const afterHourind = ind6 + ind7 + ind8 + ind9 + ind10 + ind11;\r\n const minute = beforeHourind + newValue.toString() + afterHourind;\r\n this.textValue = minute;\r\n }\r\n\r\n // second\r\n if (this.cursorPosition >= 6 && this.cursorPosition <= 8) {\r\n const secondind = ind7 + ind8;\r\n const newSecond = +secondind + 1;\r\n\r\n newValue = newSecond.toString();\r\n if (secondind === '--') {\r\n newValue = '0';\r\n }\r\n if (ind7 !== '-' && secondind === ind7 + '-') {\r\n newValue = '0';\r\n }\r\n if (ind8 !== '-' && secondind === '-' + ind8) {\r\n newValue = '0';\r\n }\r\n if (+newValue > 59) {\r\n newValue = '00';\r\n } else if (+newValue < 10) {\r\n newValue = '0' + newValue;\r\n }\r\n const beforeHourind = ind1 + ind2 + ind3 + ind4 + ind5 + ind6;\r\n const afterHourind = ind9 + ind10 + ind11;\r\n const second = beforeHourind + newValue.toString() + afterHourind;\r\n this.textValue = second;\r\n }\r\n\r\n // type am/PM\r\n if (this.timeType.mask === this.hhmmssam) {\r\n if (this.cursorPosition > 8) {\r\n let typeind = ind10.toString();\r\n\r\n const beforeHourind = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9;\r\n const afterHourind = ind11;\r\n\r\n if (ind10 === AXTranslator.get('dateTime.dayTime.p')) {\r\n typeind = AXTranslator.get('dateTime.dayTime.a');\r\n } else if (ind10 === AXTranslator.get('dateTime.dayTime.a')) {\r\n typeind = AXTranslator.get('dateTime.dayTime.p');\r\n }\r\n this.textValue = beforeHourind + typeind + afterHourind;\r\n }\r\n }\r\n if (this.timeType.mask === this.hhmmam) {\r\n if (this.cursorPosition >= 6) {\r\n let typeind = ind7.toString();\r\n\r\n const beforeHourind = ind1 + ind2 + ind3 + ind4 + ind5 + ind6;\r\n const afterHourind = ind8;\r\n\r\n if (ind7 === AXTranslator.get('dateTime.dayTime.p')) {\r\n typeind = AXTranslator.get('dateTime.dayTime.a');\r\n } else if (ind7 === AXTranslator.get('dateTime.dayTime.a')) {\r\n typeind = AXTranslator.get('dateTime.dayTime.p');\r\n }\r\n this.textValue = beforeHourind + typeind + afterHourind;\r\n }\r\n }\r\n if (this.timeType.mask === this.hham) {\r\n if (this.cursorPosition >= 3) {\r\n let typeind2 = ind4.toString();\r\n\r\n const beforeHourind = ind1 + ind2 + ind3;\r\n const afterHourind = ind5;\r\n\r\n if (ind4 === AXTranslator.get('dateTime.dayTime.p')) {\r\n typeind2 = AXTranslator.get('dateTime.dayTime.a');\r\n } else if (ind4 === AXTranslator.get('dateTime.dayTime.a')) {\r\n typeind2 = AXTranslator.get('dateTime.dayTime.p');\r\n }\r\n this.textValue = beforeHourind + typeind2 + afterHourind;\r\n }\r\n }\r\n }\r\n\r\n // key down\r\n if (event.key === 'ArrowDown') {\r\n // hour\r\n if (this.cursorPosition <= 2) {\r\n const hourind = ind1 + ind2;\r\n const newHour = +hourind - 1;\r\n\r\n newValue = newHour.toString();\r\n if (\r\n this.timeType.mask === this.hhmmss ||\r\n this.timeType.mask === this.hhmm ||\r\n this.timeType.mask === this.hh ||\r\n this.timeType.mask === this.hhmmssam ||\r\n this.timeType.mask === this.hhmmam ||\r\n this.timeType.mask === this.hham\r\n ) {\r\n if (hourind === '--') {\r\n newValue = '0';\r\n }\r\n if (ind1 !== '-' && hourind === ind1 + '-') {\r\n newValue = '0';\r\n }\r\n if (ind2 !== '-' && hourind === '-' + ind2) {\r\n newValue = '0';\r\n }\r\n if (+newValue < 1) {\r\n newValue = '12';\r\n } else if (+newValue < 10) {\r\n newValue = '0' + newValue;\r\n }\r\n } else {\r\n if (hourind === '--') {\r\n newValue = '0';\r\n }\r\n if (ind1 !== '-' && hourind === ind1 + '-') {\r\n newValue = '0';\r\n }\r\n if (ind2 !== '-' && hourind === '-' + ind2) {\r\n newValue = '0';\r\n }\r\n if (+newValue < 0) {\r\n newValue = '23';\r\n } else if (+newValue < 10) {\r\n newValue = '0' + newValue;\r\n }\r\n }\r\n const afterHourIndex = ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + ind10 + ind11;\r\n const hour = newValue.toString() + afterHourIndex;\r\n this.textValue = hour;\r\n }\r\n // minute\r\n if (this.cursorPosition >= 3 && this.cursorPosition <= 5) {\r\n const minuteind = ind4 + ind5;\r\n const newMinute = +minuteind - 1;\r\n\r\n newValue = newMinute.toString();\r\n if (minuteind === '--') {\r\n newValue = '0';\r\n }\r\n if (ind4 !== '-' && minuteind === ind4 + '-') {\r\n newValue = '0';\r\n }\r\n if (ind5 !== '-' && minuteind === '-' + ind5) {\r\n newValue = '0';\r\n }\r\n if (minuteind === '--') {\r\n newValue = '0';\r\n }\r\n if (+newValue < 0) {\r\n newValue = '59';\r\n } else if (+newValue < 10) {\r\n newValue = '0' + newValue;\r\n }\r\n const beforeMinuteIndex = ind1 + ind2 + ind3;\r\n const afterMinuteIndex = ind6 + ind7 + ind8 + ind9 + ind10 + ind11;\r\n const minute = beforeMinuteIndex + newValue.toString() + afterMinuteIndex;\r\n this.textValue = minute;\r\n }\r\n\r\n // second\r\n if (this.cursorPosition >= 6 && this.cursorPosition <= 8) {\r\n const secondIndex = ind7 + ind8;\r\n const newSecond = +secondIndex - 1;\r\n\r\n newValue = newSecond.toString();\r\n if (secondIndex === '--') {\r\n newValue = '0';\r\n }\r\n if (ind7 !== '-' && secondIndex === ind7 + '-') {\r\n newValue = '0';\r\n }\r\n if (ind8 !== '-' && secondIndex === '-' + ind8) {\r\n newValue = '0';\r\n }\r\n if (secondIndex === '--') {\r\n newValue = '0';\r\n }\r\n if (+newValue < 0) {\r\n newValue = '59';\r\n } else if (+newValue < 10) {\r\n newValue = '0' + newValue;\r\n }\r\n const beforesecondIndex = ind1 + ind2 + ind3 + ind4 + ind5 + ind6;\r\n const aftersecondIndex = ind9 + ind10 + ind11;\r\n const second = beforesecondIndex + newValue.toString() + aftersecondIndex;\r\n this.textValue = second;\r\n }\r\n\r\n // type\r\n if (this.timeType.mask === this.hhmmssam) {\r\n if (this.cursorPosition > 8) {\r\n let typeind = ind10.toString();\r\n\r\n const beforeHourind = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9;\r\n const afterHourind = ind11;\r\n\r\n if (ind10 === AXTranslator.get('dateTime.dayTime.p')) {\r\n typeind = AXTranslator.get('dateTime.dayTime.a');\r\n } else if (ind10 === AXTranslator.get('dateTime.dayTime.a')) {\r\n typeind = AXTranslator.get('dateTime.dayTime.p');\r\n }\r\n this.textValue = beforeHourind + typeind + afterHourind;\r\n }\r\n }\r\n if (this.timeType.mask === this.hhmmam) {\r\n if (this.cursorPosition >= 6) {\r\n let typeind = ind7.toString();\r\n\r\n const beforeHourind = ind1 + ind2 + ind3 + ind4 + ind5 + ind6;\r\n const afterHourind = ind8;\r\n\r\n if (ind7 === AXTranslator.get('dateTime.dayTime.p')) {\r\n typeind = AXTranslator.get('dateTime.dayTime.a');\r\n } else if (ind7 === AXTranslator.get('dateTime.dayTime.a')) {\r\n typeind = AXTranslator.get('dateTime.dayTime.p');\r\n }\r\n this.textValue = beforeHourind + typeind + afterHourind;\r\n }\r\n }\r\n if (this.timeType.mask === this.hham) {\r\n if (this.cursorPosition >= 3) {\r\n let typeind2 = ind4.toString();\r\n\r\n const beforeHourind = ind1 + ind2 + ind3;\r\n const afterHourind = ind5;\r\n //TO DO this is wrong check index\r\n if (ind4 === AXTranslator.get('dateTime.dayTime.p')) {\r\n typeind2 = AXTranslator.get('dateTime.dayTime.a');\r\n } else if (ind4 === AXTranslator.get('dateTime.dayTime.a')) {\r\n typeind2 = AXTranslator.get('dateTime.dayTime.p');\r\n }\r\n this.textValue = beforeHourind + typeind2 + afterHourind;\r\n }\r\n }\r\n }\r\n\r\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\r\n this.input.nativeElement.style.caretColor = 'transparent';\r\n event.preventDefault();\r\n event.stopPropagation();\r\n return false;\r\n }\r\n if (event.key === 'Delete') {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n handleClick(event: KeyboardEvent) {\r\n if (this.input.nativeElement.selectionStart || this.input.nativeElement.selectionStart === 0) {\r\n this.cursorPosition = this.input.nativeElement.selectionStart;\r\n }\r\n }\r\n\r\n doGetCaretPosition(ctrl) {\r\n let CaretPos = 0;\r\n if (ctrl.selectionStart || ctrl.selectionStart === 0) {\r\n CaretPos = ctrl.selectionStart;\r\n return CaretPos;\r\n }\r\n }\r\n\r\n setCaretPosition(ctrl, pos) {\r\n if (ctrl.setSelectionRange) {\r\n ctrl.focus();\r\n ctrl.setSelectionRange(pos, pos);\r\n } else if (ctrl.createTextRange) {\r\n const range = ctrl.createTextRange();\r\n range.collapse(true);\r\n range.moveEnd('character', pos);\r\n range.moveStart('character', pos);\r\n range.select();\r\n }\r\n }\r\n\r\n setCaret() {\r\n this.setCaretPosition(this.input.nativeElement, this.cursorPosition);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXTimePickerComponent } from './time-picker.component';\r\nimport { AXButtonModule } from '../button/button.module';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { TextMaskModule } from 'angular2-text-mask';\r\n\r\n\r\n@NgModule({\r\n declarations: [AXTimePickerComponent],\r\n imports: [ CommonModule, FormsModule, AXButtonModule, TextMaskModule ],\r\n exports: [AXTimePickerComponent],\r\n providers: [],\r\n})\r\nexport class AXTimePickerModule {}","import { Directive, Input, ElementRef, HostListener, Renderer2 } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[axTooltip]'\r\n})\r\nexport class AXTooltipDirective {\r\n @Input('tooltip') tooltipTitle: string;\r\n @Input() placement: string = 'top';\r\n @Input() delay: number = 500;\r\n tooltip: HTMLElement;\r\n offset = 10;\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2) {}\r\n\r\n @HostListener('mouseenter') onMouseEnter() {\r\n if (!this.tooltip) {\r\n this.show();\r\n }\r\n }\r\n\r\n @HostListener('mouseleave') onMouseLeave() {\r\n if (this.tooltip) {\r\n this.hide();\r\n }\r\n }\r\n\r\n show() {\r\n this.create();\r\n this.setPosition();\r\n this.renderer.addClass(this.tooltip, 'ax-tooltip-show');\r\n }\r\n\r\n hide() {\r\n if (this.tooltip) {\r\n try {\r\n this.renderer.removeClass(this.tooltip, 'ax-tooltip-show');\r\n this.renderer.removeChild(document.body, this.tooltip);\r\n this.tooltip = null;\r\n } catch (error) {}\r\n }\r\n }\r\n\r\n create() {\r\n this.tooltip = this.renderer.createElement('span');\r\n\r\n this.renderer.appendChild(\r\n this.tooltip,\r\n this.renderer.createText(this.tooltipTitle) // textNode\r\n );\r\n\r\n this.renderer.appendChild(document.body, this.tooltip);\r\n\r\n this.renderer.addClass(this.tooltip, 'ax-tooltip');\r\n this.renderer.addClass(this.tooltip, `ax-tooltip-${this.placement}`);\r\n this.renderer.setStyle(this.tooltip, '-webkit-transition', `opacity ${this.delay}ms`);\r\n this.renderer.setStyle(this.tooltip, '-moz-transition', `opacity ${this.delay}ms`);\r\n this.renderer.setStyle(this.tooltip, '-o-transition', `opacity ${this.delay}ms`);\r\n this.renderer.setStyle(this.tooltip, 'transition', `opacity ${this.delay}ms`);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.hide();\r\n }\r\n\r\n setPosition() {\r\n const hostPos = this.el.nativeElement.getBoundingClientRect();\r\n\r\n const tooltipPos = this.tooltip.getBoundingClientRect();\r\n\r\n const scrollPos = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\r\n\r\n let top;\r\n let left;\r\n\r\n if (this.placement === 'top') {\r\n top = hostPos.top - tooltipPos.height - this.offset;\r\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\r\n }\r\n\r\n if (this.placement === 'bottom') {\r\n top = hostPos.bottom + this.offset;\r\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\r\n }\r\n\r\n if (this.placement === 'left') {\r\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\r\n left = hostPos.left - tooltipPos.width - this.offset;\r\n }\r\n\r\n if (this.placement === 'right') {\r\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\r\n left = hostPos.right + this.offset;\r\n }\r\n\r\n this.renderer.setStyle(this.tooltip, 'top', `${top + scrollPos}px`);\r\n this.renderer.setStyle(this.tooltip, 'left', `${left}px`);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXTooltipDirective } from './tooltip.directive';\r\n\r\n@NgModule({\r\n declarations: [AXTooltipDirective],\r\n imports: [ CommonModule ],\r\n exports: [AXTooltipDirective],\r\n providers: [],\r\n})\r\nexport class AXTooltipModule {}","import { Component, ViewEncapsulation, Input, ContentChild, Output, EventEmitter, ViewChild, ElementRef, TemplateRef } from '@angular/core';\r\nimport { AXDataSourceComponent } from '../data-source/datasource.component';\r\nimport { AXDataEvent, AXHtmlEvent, AXValueEvent } from '../base/events.class';\r\nimport { AXBaseComponent } from '../base/element.class';\r\nimport { AXContextMenuItemClickEvent, AXContextMenuPromiseFunction, AXContextMenuFunction } from '../context-menu/context-menu.directive';\r\nimport { AXMenuItem } from '@acorex/core';\r\n\r\nexport class AXTreeSideMenuNode {\r\n children: AXTreeSideMenuNode[];\r\n itemData: AXTreeSideMenuItemData = new AXTreeSideMenuItemData();\r\n parent: AXTreeSideMenuNode;\r\n}\r\n\r\nexport class AXTreeSideMenuItemData {\r\n selected: boolean;\r\n key: string;\r\n disabled: boolean;\r\n open: boolean;\r\n hasChild: boolean;\r\n item: any;\r\n}\r\n\r\nexport class AXTreeSideMenuItemMovedEvent {\r\n source: AXTreeSideMenuNode;\r\n target: AXTreeSideMenuNode;\r\n resolve: (value: boolean) => void;\r\n}\r\n\r\nexport class AXTreeSideMenuSelectionChangedEvent extends AXValueEvent<AXTreeSideMenuNode> {\r\n component: AXTreeSideMenuComponent;\r\n}\r\n\r\nexport class AXTreeSideMenuItemClick extends AXHtmlEvent<MouseEvent> {\r\n component: AXTreeSideMenuComponent;\r\n item: any;\r\n flag: boolean;\r\n cancel?: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'ax-tree-side-menu',\r\n templateUrl: './tree-side-menu.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class AXTreeSideMenuComponent extends AXBaseComponent {\r\n @ContentChild(TemplateRef, { static: true })\r\n nodeTemplate: TemplateRef<any>;\r\n\r\n @ContentChild(AXDataSourceComponent, { static: true })\r\n private _contentDataSource: AXDataSourceComponent;\r\n\r\n @Input()\r\n cssClass: 'single' | 'multiple' = 'single';\r\n\r\n @Input()\r\n selectionMode: 'single' | 'multiple' = 'single';\r\n\r\n @Input()\r\n selectionLevel: 'all' | 'nodes' | 'parents' = 'all';\r\n\r\n @Input()\r\n selectedFieldName: string = null;\r\n\r\n @Input()\r\n selectNodesRecursive: boolean = true;\r\n\r\n @Input()\r\n seletedKeyFields: any[] = [];\r\n\r\n @Input()\r\n keyField: string = 'id';\r\n\r\n @Input()\r\n textField: string ='title'\r\n\r\n @Input()\r\n hasChildField: string = 'child';\r\n\r\n @Input()\r\n bordered: boolean = false;\r\n\r\n @Input()\r\n lazyLoading: boolean = true;\r\n\r\n @Input()\r\n allowDrag: boolean = false;\r\n\r\n @Input()\r\n size: 'md' | 'sm' = 'md';\r\n\r\n @Input()\r\n iconStart:boolean= true;\r\n\r\n @Input()\r\n closeIconName:string= 'fal fa-plus'\r\n\r\n @Input()\r\n openIconName:string='fal fa-minus'\r\n\r\n @Output()\r\n selectionChanged: EventEmitter<AXTreeSideMenuSelectionChangedEvent> = new EventEmitter<AXTreeSideMenuSelectionChangedEvent>();\r\n\r\n @Output()\r\n onItemOpening: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onItemClick: EventEmitter<AXTreeSideMenuItemClick> = new EventEmitter<AXTreeSideMenuItemClick>();\r\n\r\n @Output()\r\n onItemClosing: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onItemDrag: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onItemMoved: EventEmitter<AXTreeSideMenuItemMovedEvent> = new EventEmitter<AXTreeSideMenuItemMovedEvent>();\r\n\r\n @Output()\r\n onContextMenuItemClick: EventEmitter<AXContextMenuItemClickEvent> = new EventEmitter<AXContextMenuItemClickEvent>();\r\n\r\n showSelectBox: boolean = false;\r\n loading: boolean = false;\r\n list: any[] = [];\r\n itemRow: any;\r\n selectedItems: any[] = [];\r\n selectedParents: any[] = [];\r\n loadAllChildren: boolean = false;\r\n listLoad: any[] = [];\r\n itemDrop: any;\r\n itemDrag: any;\r\n validDrop: boolean = true;\r\n lockedDrag: boolean = false;\r\n childField: string = 'childeren';\r\n showContextMenu: boolean = false;\r\n @Input()\r\n contextMenuItems: AXMenuItem[] | AXContextMenuPromiseFunction | AXContextMenuFunction;\r\n\r\n\r\n\r\n constructor(private ref: ElementRef) {\r\n super();\r\n }\r\n\r\n handleOnContextMenuItem(e: AXContextMenuItemClickEvent) {\r\n this.onContextMenuItemClick.emit(e);\r\n }\r\n\r\n refresh() {\r\n this.list = [];\r\n this._contentDataSource.fetch(null);\r\n }\r\n\r\n internalSelectItem(item, userChange: boolean = true) {\r\n if (item[this.hasChildField] === false || this.selectionMode === 'single') {\r\n item.select = !item.select;\r\n if (item.parentNode && this.selectionMode !== 'single') {\r\n this.changeParentSelect(item.parentNode);\r\n }\r\n if (item.select === true) {\r\n if (this.selectionMode === 'single') {\r\n this.selectedItems.forEach((e) => {\r\n e.select = false;\r\n });\r\n this.selectedItems = [];\r\n this.selectedItems.push(item);\r\n\r\n } else {\r\n this.selectedItems.push(item);\r\n }\r\n } else {\r\n\r\n this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] !== item[this.keyField]);\r\n }\r\n } else {\r\n item.select = !item.select;\r\n\r\n if (item.parentNode && (this.selectionMode === 'multiple')) {\r\n this.changeParentSelect(item.parentNode);\r\n }\r\n if (this.selectionMode === 'multiple') {\r\n this.changeChildSelect(item, item.select);\r\n }\r\n\r\n if (item.select == true) {\r\n if (this.selectionMode === 'multiple') {\r\n\r\n this.selectedParents.push(item);\r\n } else {\r\n this.selectedParents.forEach(e => {\r\n e.select = false;\r\n });\r\n this.selectedParents = [];\r\n this.selectedParents.push(item);\r\n }\r\n } else {\r\n this.selectedParents = this.selectedParents.filter((c) => c[this.keyField] !== item[this.keyField]);\r\n\r\n }\r\n }\r\n if (userChange) {\r\n this.selectionChanged.emit({\r\n component: this,\r\n value: this.makeNode(item),\r\n htmlElement: this.ref.nativeElement\r\n });\r\n }\r\n }\r\n\r\n private makeNode(item, addChildren: boolean = true) {\r\n const node: AXTreeSideMenuNode = new AXTreeSideMenuNode();\r\n if (addChildren) {\r\n node.children = item[this.childField] === undefined ? [] : item[this.childField]?.map((m) => this.makeNode(m));\r\n }\r\n node.itemData.disabled = item.disabled === true ? item.disabled : false;\r\n node.itemData.open = item.open === true ? item.open : false;\r\n node.itemData.key = item[this.keyField];\r\n\r\n const c = [];\r\n let i = 0;\r\n for (var k in item) {\r\n i = i + 1;\r\n if (\r\n k != 'select' &&\r\n k != 'hasChild' &&\r\n k != 'loading' &&\r\n k != 'requestId' &&\r\n k != 'disabled' &&\r\n k != 'open' &&\r\n k != 'parentNode' &&\r\n k != 'toggle' &&\r\n k != 'loaded' &&\r\n k != 'indeterminate' &&\r\n k != this.childField\r\n ) {\r\n //c.push({ k: item[k] });\r\n c[k] = item[k];\r\n }\r\n }\r\n node.itemData.item = c; //TO DO\r\n node.itemData.selected = item.select === true ? item.select : false;\r\n node.itemData.hasChild = item[this.hasChildField];\r\n node.parent = item.parentNode === undefined ? null : this.makeNode(item.parentNode, false);\r\n return node;\r\n }\r\n\r\n private changeChildSelect(item, s) {\r\n if (this.selectNodesRecursive) {\r\n item.select = s;\r\n if (item[this.hasChildField] === true && item[this.childField] && item[this.childField].length > 0) {\r\n item[this.childField].forEach((elm) => {\r\n if (elm[this.hasChildField] === true) {\r\n elm.select = s;\r\n\r\n\r\n if (s === true && this.selectionMode !== 'single') {\r\n this.selectedParents = this.selectedParents.filter((c) => c[this.keyField] !== elm[this.keyField]);\r\n this.selectedParents.push(elm);\r\n }\r\n if (s === false && this.selectionMode !== 'single') {\r\n this.selectedParents = this.selectedParents.filter((c) => c[this.keyField] !== elm[this.keyField]);\r\n }\r\n\r\n\r\n this.changeChildSelect(elm, s);\r\n } else {\r\n elm.select = s;\r\n if (s === true && this.selectionMode !== 'single') {\r\n this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] !== elm[this.keyField]);\r\n this.selectedItems.push(elm);\r\n }\r\n if (s === false && this.selectionMode !== 'single') {\r\n this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] !== elm[this.keyField]);\r\n }\r\n }\r\n });\r\n } else {\r\n item.select = s;\r\n\r\n }\r\n }\r\n }\r\n\r\n private changeParentSelect(item) {\r\n if (this.selectNodesRecursive) {\r\n let allselect = true;\r\n let alldeselect = true;\r\n let oneselect = false;\r\n let isindeterminate = false;\r\n\r\n if (item[this.childField]) {\r\n for (let index = 0; index < item[this.childField].length; index++) {\r\n if (item[this.childField][index].select === true) {\r\n alldeselect = false;\r\n oneselect = true;\r\n }\r\n if (item[this.childField][index].select === false || item[this.childField][index].select === undefined) {\r\n allselect = false;\r\n }\r\n if (item[this.childField][index].select === null) {\r\n isindeterminate = true;\r\n alldeselect = false;\r\n oneselect = true;\r\n allselect = false;\r\n }\r\n }\r\n }\r\n\r\n if (oneselect || (isindeterminate && !allselect)) {\r\n item.select = null;\r\n }\r\n if (allselect === true) {\r\n item.select = true;\r\n }\r\n if (alldeselect === true) {\r\n item.select = false;\r\n }\r\n if (item.parentNode && item.parentNode[this.childField] && item.parentNode[this.childField].length > 0) {\r\n this.changeParentSelect(item.parentNode);\r\n }\r\n }\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.onItemClick.subscribe((data: AXTreeSideMenuItemClick) => {\r\n if (!data.cancel) {\r\n this.toggleNode(data.item, data.flag);\r\n }\r\n })\r\n }\r\n\r\n itemdbClick(e: MouseEvent, item) {\r\n if (this.selectionMode == 'single') {\r\n this.handleOnNodeClick(e, item, true);\r\n }\r\n }\r\n\r\n\r\n handleOnNodeClick(e: MouseEvent, item, flag = false) {\r\n this.onItemClick.emit({\r\n component: this,\r\n htmlEvent: e,\r\n item,\r\n flag\r\n })\r\n }\r\n\r\n toggleNode(item, flag = false) {\r\n //item[this.hasChildField] === false &&\r\n if (this.selectionMode === 'single' && !flag) {\r\n if (this.selectionLevel == 'nodes' && item.hasChild == true) {\r\n\r\n } else {\r\n this.internalSelectItem(item);\r\n }\r\n\r\n } else {\r\n if(item[this.hasChildField] == true){\r\n item.toggle = !item.toggle;\r\n }\r\n\r\n if (this.selectionMode === 'single') {\r\n if (this.selectionLevel == 'nodes' && item.hasChild == true) {\r\n\r\n } else {\r\n this.internalSelectItem(item);\r\n }\r\n }\r\n\r\n if (item[this.hasChildField] === true && item.loaded !== true && this.lazyLoading) {\r\n this.itemRow = item;\r\n const uid = Math.floor(Math.random() * 100000000);\r\n item.requestId = uid;\r\n this.listLoad.push(item);\r\n this._contentDataSource.fetch(item);\r\n this.showLoading(this.itemRow);\r\n }\r\n if (item.toggle && item[this.hasChildField] === true) {\r\n item.open = true;\r\n this.onItemOpening.emit(this.makeNode(item));\r\n } else if (!item.toggle && item[this.hasChildField] === true) {\r\n item.open = false;\r\n this.onItemClosing.emit(this.makeNode(item));\r\n }\r\n }\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this._contentDataSource.fetch(null);\r\n this._contentDataSource.onDataReceived.subscribe((_data) => {\r\n\r\n if (this.list.length === 0) {\r\n this.hideLoading(null);\r\n this.list = _data.data.result;\r\n\r\n this.list.forEach((el) => {\r\n el.select = false;\r\n\r\n if (this.selectionLevel == 'nodes' && el[this.hasChildField] == true) {\r\n el.disabledCheckBox = true;\r\n }\r\n\r\n if (this.selectionLevel == 'parents' && el[this.hasChildField] == false) {\r\n el.disabledCheckBox = true;\r\n }\r\n\r\n if (this.seletedKeyFields.length > 0) {\r\n this.seletedKeyFields.forEach((n: any) => {\r\n if (n.includes(el[this.keyField])) {\r\n if (el[this.hasChildField] == true) {\r\n // if (this.selectNodesRecursive) {\r\n this.open(el);\r\n // }\r\n\r\n } else {\r\n this.selectItem(el);\r\n }\r\n }\r\n })\r\n } else if (this.selectedFieldName != null) {\r\n if (el[this.hasChildField] == true && el[this.selectedFieldName] == true) {\r\n // if (this.selectNodesRecursive) {\r\n this.open(el);\r\n // }\r\n\r\n } else if (el[this.selectedFieldName] == true) {\r\n this.selectItem(el);\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n\r\n });\r\n } else {\r\n this.itemRow = this.listLoad.filter((c) => c.requestId === _data.data.requestId)[0];\r\n this.listLoad = this.listLoad.filter((c) => c.requestId !== _data.data.requestId);\r\n if (this.itemRow !== undefined) {\r\n this.hideLoading(this.itemRow);\r\n const result = _data.data.result;\r\n\r\n if (this.list.length !== 0) {\r\n\r\n if (this.itemRow[this.childField] && this.itemRow[this.childField].length > 0) {\r\n result.forEach((el) => {\r\n this.itemRow[this.childField][this.itemRow[this.childField].length] = el;\r\n });\r\n } else {\r\n this.itemRow[this.childField] = result;\r\n }\r\n\r\n for (let i = 0; i < result.length; i++) {\r\n if (this.selectionLevel == 'nodes' && result[i][this.hasChildField] == true) {\r\n result[i].disabledCheckBox = true;\r\n }\r\n\r\n if (this.selectionLevel == 'parents' && result[i][this.hasChildField] == false) {\r\n result[i].disabledCheckBox = true;\r\n }\r\n if (this.selectionMode !== 'single' && this.selectNodesRecursive) {\r\n result[i].select = this.itemRow.select === (undefined || null) ? false : this.itemRow.select;\r\n\r\n if (\r\n this.itemRow.select === true &&\r\n (this.selectionMode == 'multiple') &&\r\n result[i][this.hasChildField] === false\r\n ) {\r\n this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] !== result[i][this.keyField]);\r\n this.selectedItems.push(result[i]);\r\n }\r\n } else {\r\n result[i].select = false;\r\n }\r\n result[i].parentNode = this.itemRow;\r\n\r\n\r\n if (this.seletedKeyFields.length > 0) {\r\n this.seletedKeyFields.forEach((n: any) => {\r\n if (n.includes(result[i][this.keyField])) {\r\n if (result[i][this.hasChildField] == true) {\r\n // if (this.selectNodesRecursive) {\r\n this.open(result[i]);\r\n // }\r\n\r\n } else {\r\n this.selectItem(result[i]);\r\n }\r\n }\r\n })\r\n } else if (this.selectedFieldName != null) {\r\n if (result[i][this.hasChildField] == true && result[i][this.selectedFieldName] == true) {\r\n // if (this.selectNodesRecursive) {\r\n this.open(result[i]);\r\n // }\r\n\r\n } else if (result[i][this.selectedFieldName] == true) {\r\n this.selectItem(result[i]);\r\n }\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n this.itemRow.loaded = true;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.selectionMode !== 'single') {\r\n this.showSelectBox = true;\r\n }\r\n this.showContextMenu = true;\r\n }\r\n\r\n // onItemClick(e, v) {\r\n\r\n // }\r\n\r\n onDragStart(e: Event, v) {\r\n if (!this.lockedDrag) {\r\n this.itemDrag = v;\r\n this.onItemDrag.emit(v);\r\n }\r\n e.stopImmediatePropagation();\r\n }\r\n\r\n onDragEnd(e, v) {\r\n if (!this.lockedDrag) {\r\n this.itemDrop = v;\r\n }\r\n e.stopImmediatePropagation();\r\n }\r\n\r\n drop(e) {\r\n // this.onItemDrop.emit(this.itemDrop);\r\n if (!this.lockedDrag) {\r\n this.validDrop = true;\r\n this.sameChilde(this.itemDrag, this.itemDrop);\r\n if (this.validDrop && this.itemDrag[this.keyField] !== this.itemDrop[this.keyField] && this.itemDrag.parentNode !== this.itemDrop) {\r\n const movedEvent: AXTreeSideMenuItemMovedEvent = new AXTreeSideMenuItemMovedEvent();\r\n movedEvent.source = this.makeNode(this.itemDrag);\r\n movedEvent.target = this.makeNode(this.itemDrop);\r\n this.lockedDrag = true;\r\n this.showLoading(this.itemDrag);\r\n this.showLoading(this.itemDrop);\r\n movedEvent.resolve = (value: boolean) => {\r\n this.hideLoading(this.itemDrag);\r\n this.hideLoading(this.itemDrop);\r\n if (value) {\r\n this.dragDropItem(this.itemDrag, this.itemDrop);\r\n } else {\r\n this.lockedDrag = false;\r\n }\r\n };\r\n this.onItemMoved.emit(movedEvent);\r\n }\r\n }\r\n\r\n e.stopImmediatePropagation();\r\n }\r\n\r\n sameChilde(parent, child) {\r\n if (parent[this.childField] && parent[this.childField].length > 0) {\r\n for (let index = 0; index < parent[this.childField].length; index++) {\r\n if (parent[this.childField][index][this.keyField] == child[this.keyField]) {\r\n this.validDrop = false;\r\n }\r\n if (parent[this.childField][index][this.childField] && parent[this.childField][index][this.childField].length > 0) {\r\n this.sameChilde(parent[this.childField][index], child);\r\n }\r\n }\r\n } else if (parent[this.keyField] == child[this.keyField]) {\r\n this.validDrop = false;\r\n }\r\n }\r\n\r\n dragDropItem(itemChild, itemParent) {\r\n if (this.selectionLevel == 'nodes') {\r\n itemParent.disabledCheckBox = true;\r\n }\r\n\r\n if (itemChild.parentNode) {\r\n itemChild.parentNode[this.childField] = itemChild.parentNode[this.childField].filter((c) => c[this.keyField] !== itemChild[this.keyField]);\r\n } else {\r\n this.list = this.list.filter((c) => c[this.keyField] !== itemChild[this.keyField]);\r\n }\r\n itemChild.parentNode = itemParent;\r\n if (itemParent[this.childField] && itemParent[this.childField].length > 0) {\r\n itemParent[this.childField][itemParent[this.childField].length] = itemChild;\r\n } else {\r\n itemParent[this.childField] = [];\r\n itemParent[this.childField][0] = itemChild;\r\n if (itemParent[this.hasChildField] === true) {\r\n this.toggleNode(itemParent);\r\n } else {\r\n itemParent.toggle = !itemParent.toggle;\r\n itemParent.loaded = true;\r\n }\r\n itemParent[this.hasChildField] = true;\r\n }\r\n if (itemChild.parentNode && this.selectionMode !== 'single') {\r\n this.changeParentSelect(itemChild.parentNode);\r\n }\r\n this.lockedDrag = false;\r\n\r\n }\r\n\r\n private listChange(field, value) {\r\n for (let index = 0; index < this.list.length; index++) {\r\n this.changeChiled(this.list[index], field, value);\r\n }\r\n this.loadAllChildren = false;\r\n }\r\n\r\n private changeChiled(item, field, value) {\r\n if (field === 'toggle' && (item.loaded === false || item.loaded === undefined)) {\r\n if (this.loadAllChildren === true) {\r\n this.toggleNode(item);\r\n item[field] = value;\r\n }\r\n } else {\r\n item[field] = value;\r\n if (field === 'select' && item[this.hasChildField] === false && value === true) {\r\n this.selectedItems.push(item);\r\n }\r\n }\r\n if (field === 'select') {\r\n item.indeterminate = false;\r\n }\r\n if (item[this.hasChildField] === true && item[this.childField] && item[this.childField].length > 0) {\r\n item[this.childField].forEach((element) => {\r\n this.changeChiled(element, field, value);\r\n });\r\n }\r\n }\r\n\r\n private showLoading(item): void {\r\n item.loading = true;\r\n }\r\n\r\n private hideLoading(item): void {\r\n if (item != null) {\r\n item.loading = false;\r\n }\r\n }\r\n\r\n public openAll(loadAll: boolean = false) {\r\n // if (loadAll) {\r\n // this.loadAllChildren = true;\r\n // this.listChange('toggle', true);\r\n //} else {\r\n this.listChange('toggle', true);\r\n // }\r\n }\r\n\r\n public selectItem(item) {\r\n if (item['select'] != true) {\r\n this.internalSelectItem(item, false);\r\n }\r\n }\r\n\r\n\r\n public open(item) {\r\n\r\n if (item['toggle'] !== true) {\r\n this.toggleNode(item, true);\r\n\r\n }\r\n\r\n }\r\n\r\n public scrolIntoView(item) {\r\n let element = document.querySelector(`li[data-id='${item[this.keyField]}']`);\r\n element.scrollIntoView();\r\n }\r\n\r\n public closeAll() {\r\n this.listChange('toggle', false);\r\n }\r\n\r\n public selectAll() {\r\n if (this.selectionMode !== 'single') {\r\n this.listChange('select', true);\r\n }\r\n }\r\n\r\n public unSelectAll() {\r\n if (this.selectionMode !== 'single') {\r\n this.listChange('select', false);\r\n }\r\n this.selectedItems = [];\r\n }\r\n\r\n public getSelectedNodes(): AXTreeSideMenuNode[] {\r\n const selectItemsNode = [];\r\n this.selectedItems.forEach((e) => {\r\n selectItemsNode.push(this.makeNode(e));\r\n });\r\n return selectItemsNode;\r\n }\r\n\r\n public getSelectedParents(): AXTreeSideMenuNode[] {\r\n const selectItemsParent = [];\r\n this.selectedParents.forEach((e) => {\r\n selectItemsParent.push(this.makeNode(e));\r\n });\r\n return selectItemsParent;\r\n }\r\n\r\n getParentsId(item) {\r\n let keyFields = []\r\n keyFields.push(item[this.keyField]);\r\n if (item.parentNode) {\r\n keyFields.push(...this.getParentsId(item.parentNode));\r\n\r\n }\r\n return keyFields;\r\n }\r\n\r\n public getSelectedKeyFields() {\r\n let keyFields = [];\r\n this.selectedItems.forEach(elm => {\r\n var Ids = this.getParentsId(elm);\r\n if (Ids) {\r\n keyFields.push(Ids)\r\n }\r\n });\r\n return keyFields;\r\n }\r\n\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { AXTreeSideMenuComponent } from \"./tree-side-menu.component\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { AXDataSourceModule } from \"../data-source/datasource.module\";\r\nimport { AXCheckBoxModule } from \"../checkbox/checkbox.module\";\r\nimport { AXContextMenuModule } from \"../context-menu/context-menu.module\";\r\n\r\n@NgModule({\r\n declarations: [AXTreeSideMenuComponent],\r\n imports: [\r\n AXDataSourceModule,\r\n CommonModule,\r\n AXCheckBoxModule,\r\n AXContextMenuModule,\r\n ],\r\n exports: [AXTreeSideMenuComponent],\r\n providers: [],\r\n})\r\nexport class AXTreeSideMenuModule {}\r\n","import { Component, ViewEncapsulation, Input, ContentChild, Output, EventEmitter, ViewChild, ElementRef, TemplateRef } from '@angular/core';\r\nimport { AXDataSourceComponent } from '../data-source/datasource.component';\r\nimport { AXDataEvent, AXHtmlEvent, AXValueEvent } from '../base/events.class';\r\nimport { AXBaseComponent } from '../base/element.class';\r\nimport { AXContextMenuItemClickEvent, AXContextMenuPromiseFunction, AXContextMenuFunction } from '../context-menu/context-menu.directive';\r\nimport { AXMenuItem } from '@acorex/core';\r\n\r\nexport class AXTreeViewNode {\r\n children: AXTreeViewNode[];\r\n itemData: AXTreeViewItemData = new AXTreeViewItemData();\r\n parent: AXTreeViewNode;\r\n}\r\n\r\nexport class AXTreeViewItemData {\r\n selected: boolean;\r\n key: string;\r\n disabled: boolean;\r\n open: boolean;\r\n hasChild: boolean;\r\n item: any;\r\n}\r\n\r\nexport class AXTreeViewItemMovedEvent {\r\n source: AXTreeViewNode;\r\n target: AXTreeViewNode;\r\n resolve: (value: boolean) => void;\r\n}\r\n\r\nexport class AXTreeViewselectionChangedEvent extends AXValueEvent<AXTreeViewNode> {\r\n component: AXTreeViewComponent;\r\n}\r\n\r\nexport class AXTreeViewItemClick extends AXHtmlEvent<MouseEvent> {\r\n component: AXTreeViewComponent;\r\n item: any;\r\n flag: boolean;\r\n cancel?: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'ax-tree-view',\r\n templateUrl: './tree-view.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class AXTreeViewComponent extends AXBaseComponent {\r\n @ContentChild(TemplateRef, { static: true })\r\n nodeTemplate: TemplateRef<any>;\r\n\r\n @ContentChild(AXDataSourceComponent, { static: true })\r\n private _contentDataSource: AXDataSourceComponent;\r\n\r\n @Input()\r\n selectionMode: 'single' | 'multiple' = 'single';\r\n\r\n @Input()\r\n selectionLevel: 'all' | 'nodes' | 'parents' = 'all';\r\n\r\n // user can set only one of this /selectedFieldName or /seletedKeyFields\r\n //seletedKeyFields set id of nodes and parents\r\n //selectedFieldName set name of fields that set selectes\r\n @Input()\r\n selectedFieldName: string = null;\r\n\r\n @Input()\r\n selectNodesRecursive: boolean = true;\r\n\r\n @Input()\r\n seletedKeyFields: any[] = [];\r\n\r\n @Input()\r\n keyField: string = 'id';\r\n\r\n @Input()\r\n hasChildField: string = 'child';\r\n\r\n @Input()\r\n bordered: boolean = false;\r\n\r\n @Input()\r\n lazyLoading: boolean = true;\r\n\r\n @Input()\r\n allowDrag: boolean = false;\r\n\r\n @Input()\r\n size: 'md' | 'sm' = 'md';\r\n\r\n @Output()\r\n selectionChanged: EventEmitter<AXTreeViewselectionChangedEvent> = new EventEmitter<AXTreeViewselectionChangedEvent>();\r\n\r\n @Output()\r\n onItemOpening: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onItemClick: EventEmitter<AXTreeViewItemClick> = new EventEmitter<AXTreeViewItemClick>();\r\n\r\n @Output()\r\n onItemClosing: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onItemDrag: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onItemMoved: EventEmitter<AXTreeViewItemMovedEvent> = new EventEmitter<AXTreeViewItemMovedEvent>();\r\n\r\n @Output()\r\n onContextMenuItemClick: EventEmitter<AXContextMenuItemClickEvent> = new EventEmitter<AXContextMenuItemClickEvent>();\r\n\r\n showSelectBox: boolean = false;\r\n loading: boolean = false;\r\n list: any[] = [];\r\n itemRow: any;\r\n selectedItems: any[] = [];\r\n selectedParents: any[] = [];\r\n loadAllChildren: boolean = false;\r\n listLoad: any[] = [];\r\n itemDrop: any;\r\n itemDrag: any;\r\n validDrop: boolean = true;\r\n lockedDrag: boolean = false;\r\n childField: string = 'childeren';\r\n showContextMenu: boolean = false;\r\n @Input()\r\n contextMenuItems: AXMenuItem[] | AXContextMenuPromiseFunction | AXContextMenuFunction;\r\n\r\n\r\n\r\n constructor(private ref: ElementRef) {\r\n super();\r\n }\r\n\r\n handleOnContextMenuItem(e: AXContextMenuItemClickEvent) {\r\n this.onContextMenuItemClick.emit(e);\r\n }\r\n\r\n refresh() {\r\n this.list = [];\r\n this._contentDataSource.fetch(null);\r\n }\r\n\r\n internalSelectItem(item, userChange: boolean = true) {\r\n if (item[this.hasChildField] === false || this.selectionMode === 'single') {\r\n item.select = !item.select;\r\n if (item.parentNode && this.selectionMode !== 'single') {\r\n this.changeParentSelect(item.parentNode);\r\n }\r\n if (item.select === true) {\r\n if (this.selectionMode === 'single') {\r\n this.selectedItems.forEach((e) => {\r\n e.select = false;\r\n });\r\n this.selectedItems = [];\r\n this.selectedItems.push(item);\r\n\r\n } else {\r\n this.selectedItems.push(item);\r\n }\r\n } else {\r\n\r\n this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] !== item[this.keyField]);\r\n }\r\n } else {\r\n item.select = !item.select;\r\n\r\n if (item.parentNode && (this.selectionMode === 'multiple')) {\r\n this.changeParentSelect(item.parentNode);\r\n }\r\n if (this.selectionMode === 'multiple') {\r\n this.changeChildSelect(item, item.select);\r\n }\r\n\r\n if (item.select == true) {\r\n if (this.selectionMode === 'multiple') {\r\n\r\n this.selectedParents.push(item);\r\n } else {\r\n this.selectedParents.forEach(e => {\r\n e.select = false;\r\n });\r\n this.selectedParents = [];\r\n this.selectedParents.push(item);\r\n }\r\n } else {\r\n this.selectedParents = this.selectedParents.filter((c) => c[this.keyField] !== item[this.keyField]);\r\n\r\n }\r\n }\r\n if (userChange) {\r\n this.selectionChanged.emit({\r\n component: this,\r\n value: this.makeNode(item),\r\n htmlElement: this.ref.nativeElement\r\n });\r\n }\r\n }\r\n\r\n private makeNode(item, addChildren: boolean = true) {\r\n const node: AXTreeViewNode = new AXTreeViewNode();\r\n if (addChildren) {\r\n node.children = item[this.childField] === undefined ? [] : item[this.childField]?.map((m) => this.makeNode(m));\r\n }\r\n node.itemData.disabled = item.disabled === true ? item.disabled : false;\r\n node.itemData.open = item.open === true ? item.open : false;\r\n node.itemData.key = item[this.keyField];\r\n\r\n const c = [];\r\n let i = 0;\r\n for (var k in item) {\r\n i = i + 1;\r\n if (\r\n k != 'select' &&\r\n k != 'hasChild' &&\r\n k != 'loading' &&\r\n k != 'requestId' &&\r\n k != 'disabled' &&\r\n k != 'open' &&\r\n k != 'parentNode' &&\r\n k != 'toggle' &&\r\n k != 'loaded' &&\r\n k != 'indeterminate' &&\r\n k != this.childField\r\n ) {\r\n //c.push({ k: item[k] });\r\n c[k] = item[k];\r\n }\r\n }\r\n node.itemData.item = c; //TO DO\r\n node.itemData.selected = item.select === true ? item.select : false;\r\n node.itemData.hasChild = item[this.hasChildField];\r\n node.parent = item.parentNode === undefined ? null : this.makeNode(item.parentNode, false);\r\n return node;\r\n }\r\n\r\n private changeChildSelect(item, s) {\r\n if (this.selectNodesRecursive) {\r\n item.select = s;\r\n if (item[this.hasChildField] === true && item[this.childField] && item[this.childField].length > 0) {\r\n item[this.childField].forEach((elm) => {\r\n if (elm[this.hasChildField] === true) {\r\n elm.select = s;\r\n\r\n\r\n if (s === true && this.selectionMode !== 'single') {\r\n this.selectedParents = this.selectedParents.filter((c) => c[this.keyField] !== elm[this.keyField]);\r\n this.selectedParents.push(elm);\r\n }\r\n if (s === false && this.selectionMode !== 'single') {\r\n this.selectedParents = this.selectedParents.filter((c) => c[this.keyField] !== elm[this.keyField]);\r\n }\r\n\r\n\r\n this.changeChildSelect(elm, s);\r\n } else {\r\n elm.select = s;\r\n if (s === true && this.selectionMode !== 'single') {\r\n this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] !== elm[this.keyField]);\r\n this.selectedItems.push(elm);\r\n }\r\n if (s === false && this.selectionMode !== 'single') {\r\n this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] !== elm[this.keyField]);\r\n }\r\n }\r\n });\r\n } else {\r\n item.select = s;\r\n\r\n }\r\n }\r\n }\r\n\r\n private changeParentSelect(item) {\r\n if (this.selectNodesRecursive) {\r\n let allselect = true;\r\n let alldeselect = true;\r\n let oneselect = false;\r\n let isindeterminate = false;\r\n\r\n if (item[this.childField]) {\r\n for (let index = 0; index < item[this.childField].length; index++) {\r\n if (item[this.childField][index].select === true) {\r\n alldeselect = false;\r\n oneselect = true;\r\n }\r\n if (item[this.childField][index].select === false || item[this.childField][index].select === undefined) {\r\n allselect = false;\r\n }\r\n if (item[this.childField][index].select === null) {\r\n isindeterminate = true;\r\n alldeselect = false;\r\n oneselect = true;\r\n allselect = false;\r\n }\r\n }\r\n }\r\n\r\n if (oneselect || (isindeterminate && !allselect)) {\r\n item.select = null;\r\n }\r\n if (allselect === true) {\r\n item.select = true;\r\n }\r\n if (alldeselect === true) {\r\n item.select = false;\r\n }\r\n if (item.parentNode && item.parentNode[this.childField] && item.parentNode[this.childField].length > 0) {\r\n this.changeParentSelect(item.parentNode);\r\n }\r\n }\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.onItemClick.subscribe((data: AXTreeViewItemClick) => {\r\n if (!data.cancel) {\r\n this.toggleNode(data.item, data.flag);\r\n }\r\n })\r\n }\r\n\r\n itemdbClick(e: MouseEvent, item) {\r\n if (this.selectionMode == 'single') {\r\n this.handleOnNodeClick(e, item, true);\r\n }\r\n }\r\n\r\n\r\n handleOnNodeClick(e: MouseEvent, item, flag = false) {\r\n this.onItemClick.emit({\r\n component: this,\r\n htmlEvent: e,\r\n item,\r\n flag\r\n })\r\n }\r\n\r\n toggleNode(item, flag = false) {\r\n //item[this.hasChildField] === false &&\r\n if (this.selectionMode === 'single' && !flag) {\r\n if (this.selectionLevel == 'nodes' && item.hasChild == true) {\r\n\r\n } else {\r\n this.internalSelectItem(item);\r\n }\r\n\r\n } else {\r\n item.toggle = !item.toggle;\r\n if (this.selectionMode === 'single') {\r\n if (this.selectionLevel == 'nodes' && item.hasChild == true) {\r\n\r\n } else {\r\n this.internalSelectItem(item);\r\n }\r\n }\r\n\r\n if (item[this.hasChildField] === true && item.loaded !== true && this.lazyLoading) {\r\n this.itemRow = item;\r\n const uid = Math.floor(Math.random() * 100000000);\r\n item.requestId = uid;\r\n this.listLoad.push(item);\r\n this._contentDataSource.fetch(item);\r\n this.showLoading(this.itemRow);\r\n }\r\n if (item.toggle && item[this.hasChildField] === true) {\r\n item.open = true;\r\n this.onItemOpening.emit(this.makeNode(item));\r\n } else if (!item.toggle && item[this.hasChildField] === true) {\r\n item.open = false;\r\n this.onItemClosing.emit(this.makeNode(item));\r\n }\r\n }\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this._contentDataSource.fetch(null);\r\n this._contentDataSource.onDataReceived.subscribe((_data) => {\r\n\r\n if (this.list.length === 0) {\r\n this.hideLoading(null);\r\n this.list = _data.data.result;\r\n\r\n this.list.forEach((el) => {\r\n el.select = false;\r\n\r\n if (this.selectionLevel == 'nodes' && el[this.hasChildField] == true) {\r\n el.disabledCheckBox = true;\r\n }\r\n\r\n if (this.selectionLevel == 'parents' && el[this.hasChildField] == false) {\r\n el.disabledCheckBox = true;\r\n }\r\n\r\n if (this.seletedKeyFields.length > 0) {\r\n this.seletedKeyFields.forEach((n: any) => {\r\n if (n.includes(el[this.keyField])) {\r\n if (el[this.hasChildField] == true) {\r\n // if (this.selectNodesRecursive) {\r\n this.open(el);\r\n // }\r\n\r\n } else {\r\n this.selectItem(el);\r\n }\r\n }\r\n })\r\n } else if (this.selectedFieldName != null) {\r\n if (el[this.hasChildField] == true && el[this.selectedFieldName] == true) {\r\n // if (this.selectNodesRecursive) {\r\n this.open(el);\r\n // }\r\n\r\n } else if (el[this.selectedFieldName] == true) {\r\n this.selectItem(el);\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n\r\n });\r\n } else {\r\n this.itemRow = this.listLoad.filter((c) => c.requestId === _data.data.requestId)[0];\r\n this.listLoad = this.listLoad.filter((c) => c.requestId !== _data.data.requestId);\r\n if (this.itemRow !== undefined) {\r\n this.hideLoading(this.itemRow);\r\n const result = _data.data.result;\r\n\r\n if (this.list.length !== 0) {\r\n\r\n if (this.itemRow[this.childField] && this.itemRow[this.childField].length > 0) {\r\n result.forEach((el) => {\r\n this.itemRow[this.childField][this.itemRow[this.childField].length] = el;\r\n });\r\n } else {\r\n this.itemRow[this.childField] = result;\r\n }\r\n\r\n for (let i = 0; i < result.length; i++) {\r\n if (this.selectionLevel == 'nodes' && result[i][this.hasChildField] == true) {\r\n result[i].disabledCheckBox = true;\r\n }\r\n\r\n if (this.selectionLevel == 'parents' && result[i][this.hasChildField] == false) {\r\n result[i].disabledCheckBox = true;\r\n }\r\n if (this.selectionMode !== 'single' && this.selectNodesRecursive) {\r\n result[i].select = this.itemRow.select === (undefined || null) ? false : this.itemRow.select;\r\n\r\n if (\r\n this.itemRow.select === true &&\r\n (this.selectionMode == 'multiple') &&\r\n result[i][this.hasChildField] === false\r\n ) {\r\n this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] !== result[i][this.keyField]);\r\n this.selectedItems.push(result[i]);\r\n }\r\n } else {\r\n result[i].select = false;\r\n }\r\n result[i].parentNode = this.itemRow;\r\n\r\n\r\n if (this.seletedKeyFields.length > 0) {\r\n this.seletedKeyFields.forEach((n: any) => {\r\n if (n.includes(result[i][this.keyField])) {\r\n if (result[i][this.hasChildField] == true) {\r\n // if (this.selectNodesRecursive) {\r\n this.open(result[i]);\r\n // }\r\n\r\n } else {\r\n this.selectItem(result[i]);\r\n }\r\n }\r\n })\r\n } else if (this.selectedFieldName != null) {\r\n if (result[i][this.hasChildField] == true && result[i][this.selectedFieldName] == true) {\r\n // if (this.selectNodesRecursive) {\r\n this.open(result[i]);\r\n // }\r\n\r\n } else if (result[i][this.selectedFieldName] == true) {\r\n this.selectItem(result[i]);\r\n }\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n this.itemRow.loaded = true;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.selectionMode !== 'single') {\r\n this.showSelectBox = true;\r\n }\r\n this.showContextMenu = true;\r\n }\r\n\r\n // onItemClick(e, v) {\r\n\r\n // }\r\n\r\n onDragStart(e: Event, v) {\r\n if (!this.lockedDrag) {\r\n this.itemDrag = v;\r\n this.onItemDrag.emit(v);\r\n }\r\n e.stopImmediatePropagation();\r\n }\r\n\r\n onDragEnd(e, v) {\r\n if (!this.lockedDrag) {\r\n this.itemDrop = v;\r\n }\r\n e.stopImmediatePropagation();\r\n }\r\n\r\n drop(e) {\r\n // this.onItemDrop.emit(this.itemDrop);\r\n if (!this.lockedDrag) {\r\n this.validDrop = true;\r\n this.sameChilde(this.itemDrag, this.itemDrop);\r\n if (this.validDrop && this.itemDrag[this.keyField] !== this.itemDrop[this.keyField] && this.itemDrag.parentNode !== this.itemDrop) {\r\n const movedEvent: AXTreeViewItemMovedEvent = new AXTreeViewItemMovedEvent();\r\n movedEvent.source = this.makeNode(this.itemDrag);\r\n movedEvent.target = this.makeNode(this.itemDrop);\r\n this.lockedDrag = true;\r\n this.showLoading(this.itemDrag);\r\n this.showLoading(this.itemDrop);\r\n movedEvent.resolve = (value: boolean) => {\r\n this.hideLoading(this.itemDrag);\r\n this.hideLoading(this.itemDrop);\r\n if (value) {\r\n this.dragDropItem(this.itemDrag, this.itemDrop);\r\n } else {\r\n this.lockedDrag = false;\r\n }\r\n };\r\n this.onItemMoved.emit(movedEvent);\r\n }\r\n }\r\n\r\n e.stopImmediatePropagation();\r\n }\r\n\r\n sameChilde(parent, child) {\r\n if (parent[this.childField] && parent[this.childField].length > 0) {\r\n for (let index = 0; index < parent[this.childField].length; index++) {\r\n if (parent[this.childField][index][this.keyField] == child[this.keyField]) {\r\n this.validDrop = false;\r\n }\r\n if (parent[this.childField][index][this.childField] && parent[this.childField][index][this.childField].length > 0) {\r\n this.sameChilde(parent[this.childField][index], child);\r\n }\r\n }\r\n } else if (parent[this.keyField] == child[this.keyField]) {\r\n this.validDrop = false;\r\n }\r\n }\r\n\r\n dragDropItem(itemChild, itemParent) {\r\n if (this.selectionLevel == 'nodes') {\r\n itemParent.disabledCheckBox = true;\r\n }\r\n\r\n if (itemChild.parentNode) {\r\n itemChild.parentNode[this.childField] = itemChild.parentNode[this.childField].filter((c) => c[this.keyField] !== itemChild[this.keyField]);\r\n } else {\r\n this.list = this.list.filter((c) => c[this.keyField] !== itemChild[this.keyField]);\r\n }\r\n itemChild.parentNode = itemParent;\r\n if (itemParent[this.childField] && itemParent[this.childField].length > 0) {\r\n itemParent[this.childField][itemParent[this.childField].length] = itemChild;\r\n } else {\r\n itemParent[this.childField] = [];\r\n itemParent[this.childField][0] = itemChild;\r\n if (itemParent[this.hasChildField] === true) {\r\n this.toggleNode(itemParent);\r\n } else {\r\n itemParent.toggle = !itemParent.toggle;\r\n itemParent.loaded = true;\r\n }\r\n itemParent[this.hasChildField] = true;\r\n }\r\n if (itemChild.parentNode && this.selectionMode !== 'single') {\r\n this.changeParentSelect(itemChild.parentNode);\r\n }\r\n this.lockedDrag = false;\r\n\r\n }\r\n\r\n private listChange(field, value) {\r\n for (let index = 0; index < this.list.length; index++) {\r\n this.changeChiled(this.list[index], field, value);\r\n }\r\n this.loadAllChildren = false;\r\n }\r\n\r\n private changeChiled(item, field, value) {\r\n if (field === 'toggle' && (item.loaded === false || item.loaded === undefined)) {\r\n if (this.loadAllChildren === true) {\r\n this.toggleNode(item);\r\n item[field] = value;\r\n }\r\n } else {\r\n item[field] = value;\r\n if (field === 'select' && item[this.hasChildField] === false && value === true) {\r\n this.selectedItems.push(item);\r\n }\r\n }\r\n if (field === 'select') {\r\n item.indeterminate = false;\r\n }\r\n if (item[this.hasChildField] === true && item[this.childField] && item[this.childField].length > 0) {\r\n item[this.childField].forEach((element) => {\r\n this.changeChiled(element, field, value);\r\n });\r\n }\r\n }\r\n\r\n private showLoading(item): void {\r\n item.loading = true;\r\n }\r\n\r\n private hideLoading(item): void {\r\n if (item != null) {\r\n item.loading = false;\r\n }\r\n }\r\n\r\n public openAll(loadAll: boolean = false) {\r\n // if (loadAll) {\r\n // this.loadAllChildren = true;\r\n // this.listChange('toggle', true);\r\n //} else {\r\n this.listChange('toggle', true);\r\n // }\r\n }\r\n\r\n public selectItem(item) {\r\n if (item['select'] != true) {\r\n this.internalSelectItem(item, false);\r\n }\r\n }\r\n\r\n\r\n public open(item) {\r\n\r\n if (item['toggle'] !== true) {\r\n this.toggleNode(item, true);\r\n\r\n }\r\n\r\n }\r\n\r\n public scrolIntoView(item) {\r\n let element = document.querySelector(`li[data-id='${item[this.keyField]}']`);\r\n element.scrollIntoView();\r\n }\r\n\r\n public closeAll() {\r\n this.listChange('toggle', false);\r\n }\r\n\r\n public selectAll() {\r\n if (this.selectionMode !== 'single') {\r\n this.listChange('select', true);\r\n }\r\n }\r\n\r\n public unSelectAll() {\r\n if (this.selectionMode !== 'single') {\r\n this.listChange('select', false);\r\n }\r\n this.selectedItems = [];\r\n }\r\n\r\n public getSelectedNodes(): AXTreeViewNode[] {\r\n const selectItemsNode = [];\r\n this.selectedItems.forEach((e) => {\r\n selectItemsNode.push(this.makeNode(e));\r\n });\r\n return selectItemsNode;\r\n }\r\n\r\n public getSelectedParents(): AXTreeViewNode[] {\r\n const selectItemsParent = [];\r\n this.selectedParents.forEach((e) => {\r\n selectItemsParent.push(this.makeNode(e));\r\n });\r\n return selectItemsParent;\r\n }\r\n\r\n getParentsId(item) {\r\n let keyFields = []\r\n keyFields.push(item[this.keyField]);\r\n if (item.parentNode) {\r\n keyFields.push(...this.getParentsId(item.parentNode));\r\n\r\n }\r\n return keyFields;\r\n }\r\n\r\n public getSelectedKeyFields() {\r\n let keyFields = [];\r\n this.selectedItems.forEach(elm => {\r\n var Ids = this.getParentsId(elm);\r\n if (Ids) {\r\n keyFields.push(Ids)\r\n }\r\n });\r\n return keyFields;\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { AXTreeViewComponent } from './tree-view.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXDataSourceModule } from '../data-source/datasource.module';\r\nimport { AXCheckBoxModule } from '../checkbox/checkbox.module';\r\nimport { AXContextMenuModule } from '../context-menu/context-menu.module';\r\n\r\n\r\n@NgModule({\r\n declarations: [AXTreeViewComponent],\r\n imports: [AXDataSourceModule, CommonModule, AXCheckBoxModule, AXContextMenuModule],\r\n exports: [AXTreeViewComponent],\r\n providers: []\r\n})\r\n\r\nexport class AXTreeViewModule { }","import {\r\n Component,\r\n ViewChild,\r\n Input,\r\n ElementRef,\r\n ViewEncapsulation,\r\n TemplateRef,\r\n Renderer2,\r\n EventEmitter,\r\n Output,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { AXUploadFileLoadEvent, AXUploadFileProgressEvent } from './upload-file.events';\r\nimport { AXProgressBarComponent } from '../progress-bar/progress-bar.component';\r\nimport { AXBaseTextComponent, AXElementSize, AXBaseSizableComponent, AXBaseComponent } from '../base/element.class';\r\nimport { AXRenderService } from '@acorex/core';\r\n\r\n@Component({\r\n selector: 'ax-upload-file',\r\n templateUrl: './upload-file.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n host: { style: 'display: block; width:100%; position: relative' }\r\n})\r\nexport class AXUploadFileComponent extends AXBaseComponent implements AXBaseSizableComponent {\r\n private overlayDiv: HTMLElement;\r\n\r\n @Input()\r\n dropRef: HTMLElement;\r\n\r\n @Input()\r\n progressRef: HTMLElement;\r\n\r\n @Input()\r\n label: string;\r\n\r\n @Input()\r\n size: AXElementSize = \"md\";\r\n\r\n @ViewChild('fileInput') fileInput: ElementRef;\r\n\r\n @Input()\r\n type: 'box' | 'inline' | 'hidden' = 'inline';\r\n\r\n @Input()\r\n public template: TemplateRef<any>;\r\n\r\n @Input() disabled: boolean = false;\r\n @Output()\r\n onLoad: EventEmitter<AXUploadFileLoadEvent> = new EventEmitter<AXUploadFileLoadEvent>();\r\n\r\n @Output()\r\n onProgress: EventEmitter<AXUploadFileProgressEvent> = new EventEmitter<AXUploadFileProgressEvent>();\r\n\r\n files: File[] = [];\r\n focus() { }\r\n\r\n fileName: string = '';\r\n constructor(\r\n private el: ElementRef<HTMLElement>,\r\n private injectionService: AXRenderService,\r\n private rendrer: Renderer2,\r\n protected cdr: ChangeDetectorRef\r\n ) {\r\n super();\r\n }\r\n\r\n\r\n onDeleteClick(e) {\r\n e.stopPropagation();\r\n }\r\n\r\n onFileChange(e) {\r\n const files = e.target.files;\r\n this.addFile(files[0]);\r\n (this.fileInput.nativeElement as HTMLInputElement).value = null;\r\n }\r\n\r\n open() {\r\n this.fileInput.nativeElement.click();\r\n }\r\n remove() {\r\n this.files = [];\r\n }\r\n ngAfterViewInit(): void {\r\n if (this.dropRef != null) {\r\n } else {\r\n this.dropRef = this.el.nativeElement;\r\n }\r\n //\r\n if (this.progressRef != null) {\r\n } else {\r\n this.progressRef = this.el.nativeElement;\r\n }\r\n //\r\n if (this.type === 'hidden' || this.type === 'box') {\r\n this.overlayDiv = this.rendrer.createElement('div') as HTMLElement;\r\n this.overlayDiv.classList.add('overlay');\r\n this.overlayDiv.innerHTML = `\r\n <div class=\"icon-wrapper\">\r\n <i class=\"far fa-cloud-upload-alt fa-3x\"></i>\r\n <span>Drop File(s) Here</span>\r\n </div>\r\n `;\r\n this.overlayDiv.addEventListener('drag', this.handleOverlayDragOver);\r\n this.overlayDiv.addEventListener('dragover', this.handleOverlayDragOver);\r\n this.overlayDiv.addEventListener('dragleave', this.handleOverlayDragOver);\r\n this.rendrer.appendChild(this.dropRef, this.overlayDiv);\r\n }\r\n //\r\n this.dropRef.classList.add('ax-upload-drop-over');\r\n this.dropRef.addEventListener('dragover', this.handleDragOver.bind(this));\r\n this.dropRef.addEventListener('dragleave', this.handleDragLeave.bind(this));\r\n this.dropRef.addEventListener('drop', this.handleDrop.bind(this));\r\n }\r\n\r\n private handleOverlayDragOver(e: DragEvent) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return false;\r\n }\r\n\r\n private handleDragOver(e: DragEvent) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.overlayDiv.classList.add('show');\r\n return false;\r\n }\r\n\r\n private handleDragLeave(e: DragEvent) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.overlayDiv.classList.remove('show');\r\n return false;\r\n }\r\n\r\n handleDrop(e: DragEvent) {\r\n this.handleDragLeave(e);\r\n for (let i = 0; i < e.dataTransfer.files.length; i++) {\r\n const file = e.dataTransfer.files[i];\r\n this.addFile(file);\r\n }\r\n }\r\n\r\n private addFile(file: File) {\r\n const progressDiv = this.rendrer.createElement('div') as HTMLElement;\r\n progressDiv.classList.add('ax-upload-progress-panel');\r\n const progressLabel = this.rendrer.createElement('small') as HTMLElement;\r\n progressLabel.innerText = file.name;\r\n this.fileName = file.name;\r\n this.rendrer.appendChild(this.progressRef, progressDiv);\r\n const com = this.injectionService.appendComponent(AXProgressBarComponent, { progress: 0 }, progressDiv).instance as AXProgressBarComponent;\r\n this.rendrer.appendChild(progressDiv, progressLabel);\r\n\r\n const reader = new FileReader();\r\n reader.addEventListener('load', (e) => {\r\n this.onLoad.emit({\r\n file,\r\n data: (e as any).target.result\r\n });\r\n //\r\n // Fake Upload\r\n let pv = 0;\r\n let uploaded = 0;\r\n const intv = setInterval(() => {\r\n uploaded += 1024 * 1000;\r\n if (uploaded > e.total) {\r\n uploaded = e.total;\r\n }\r\n pv = Math.ceil((uploaded / e.total) * 100);\r\n com.progress = pv;\r\n this.onProgress.emit({\r\n file,\r\n total: e.total,\r\n uploaded,\r\n value: pv\r\n });\r\n //\r\n if (com.progress >= 100) {\r\n clearInterval(intv);\r\n setTimeout(() => {\r\n this.rendrer.removeChild(this.progressRef, progressDiv);\r\n }, 1000);\r\n }\r\n }, 100);\r\n });\r\n reader.readAsDataURL(file);\r\n this.files.push(file);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXUploadFileComponent } from './upload-file.component';\r\nimport { AXButtonModule } from '../button/button.module';\r\nimport { AXTextBoxModule } from '../textbox/textbox.module';\r\nimport { AXProgressBarModule } from '../progress-bar/progress-bar.module';\r\nimport { AXLabelModule } from '../label/label.module';\r\nimport { AXFormGroupModule } from '../form-group/form-group.module';\r\n\r\n@NgModule({\r\n declarations: [AXUploadFileComponent],\r\n imports: [CommonModule, AXButtonModule, AXTextBoxModule, AXProgressBarModule, AXLabelModule, AXFormGroupModule],\r\n exports: [AXUploadFileComponent],\r\n providers: []\r\n})\r\nexport class AXUploadFileModule {}\r\n","import { Component, Input, Output, EventEmitter, ContentChild, TemplateRef, ContentChildren, QueryList } from \"@angular/core\";\r\nimport { AXPanelBoxComponent } from \"../panel-box/panel-box.component\";\r\nimport { AXBaseComponent } from '../base/element.class';\r\n\r\n@Component({\r\n selector: \"ax-accordion\",\r\n template: \"<ng-content></ng-content>\",\r\n})\r\nexport class AXAccordionComponent extends AXBaseComponent {\r\n\r\n @ContentChildren(AXPanelBoxComponent)\r\n panels: QueryList<AXPanelBoxComponent>;\r\n\r\n @Input()\r\n multiple: boolean = false;\r\n\r\n constructor() {\r\n super()\r\n }\r\n\r\n ngAfterContentInit() {\r\n this.panels.forEach(p => {\r\n if (this.multiple == false)\r\n p.collapsed = true;\r\n p.collapsedChange.subscribe((v: boolean) => {\r\n this.handleCollapsedChanged(p, v);\r\n });\r\n });\r\n if (this.multiple == false)\r\n this.panels.first.collapsed = false;\r\n }\r\n\r\n private handleCollapsedChanged(panel: AXPanelBoxComponent, value: boolean) {\r\n if (value == false && this.multiple == false) {\r\n this.panels.forEach(p => {\r\n if (p != panel)\r\n p.collapsed = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { AXAccordionComponent } from \"./accordion.component\";\r\nimport { AXPanelBoxModule } from \"../panel-box/panel-box.module\";\r\n@NgModule({\r\n declarations: [AXAccordionComponent],\r\n imports: [CommonModule, AXPanelBoxModule],\r\n exports: [AXAccordionComponent],\r\n providers: []\r\n})\r\nexport class AXAccordionModule { }\r\n","import { Input, Output, EventEmitter, ChangeDetectorRef } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { AXValidatableComponent } from '../base/element.class';\r\n\r\nexport type AXDataType = 'string' | 'number' | 'date' | 'boolean' | 'object';\r\nexport type AXControlType = 'textbox' | 'numberbox' | 'datePicker' | 'switch' | 'custom';\r\n\r\n\r\n\r\nexport interface AXPropertyDef {\r\n name: string;\r\n title: string;\r\n hint?: string;\r\n defaultValue?: any;\r\n editorClass: any;\r\n editorOptions?: any;\r\n visible?: boolean | (() => boolean);\r\n order?: number;\r\n}\r\n\r\nexport interface AXPropertyEditorDef {\r\n title: string;\r\n hint?: string;\r\n defaultValue?: any;\r\n editorClass: any;\r\n editorOptions?: any;\r\n visible?: boolean | (() => boolean);\r\n order?: number;\r\n}\r\n\r\n\r\n\r\n\r\nexport interface AXPropertyConfig {\r\n property: AXPropertyDef;\r\n value: any;\r\n}\r\n\r\n\r\nexport interface AXProperyEditorValueChangeEvent {\r\n property: AXPropertyDef;\r\n value: any;\r\n}\r\n\r\n\r\n\r\nexport abstract class AXProperyEditorComponent<T>{\r\n\r\n\r\n readonly: boolean = false;\r\n initiated: boolean = false;\r\n\r\n\r\n validatableComponentRegistered: Subject<AXValidatableComponent> = new Subject<AXValidatableComponent>();\r\n\r\n\r\n registerForValidationForm(component?: AXValidatableComponent) {\r\n this.validatableComponentRegistered.next(component);\r\n }\r\n\r\n\r\n @Output()\r\n valueChange: EventEmitter<T> = new EventEmitter<T>();\r\n\r\n private _value: T;\r\n @Input()\r\n public get value(): T {\r\n return this._value;\r\n }\r\n\r\n public set value(v: T) {\r\n if (v !== this._value) {\r\n this._value = v;\r\n this.valueChange.emit(v);\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n constructor(protected cdr: ChangeDetectorRef) {\r\n }\r\n\r\n uid: string;\r\n\r\n handleValueChange(v: T) {\r\n this.value = v;\r\n }\r\n\r\n initiat(): void {\r\n\r\n }\r\n\r\n\r\n}\r\n\r\n\r\n\r\nexport class AXPropertyDecorator {\r\n cls: any;\r\n property: string;\r\n options: any;\r\n\r\n constructor(\r\n cls: any,\r\n property: string,\r\n options: any) {\r\n this.cls = cls;\r\n this.property = property;\r\n this.options = options;\r\n }\r\n}\r\n\r\n\r\n// @dynamic\r\nexport class AXPropertyDecorators {\r\n private static REGISTRY = new Array<AXPropertyDecorator>();\r\n\r\n static register(cls: string, property: string, options?: any) {\r\n const item = AXPropertyDecorators.REGISTRY.find(c => c.cls === cls && c.property === property);\r\n if (item) {\r\n item.options = options;\r\n }\r\n else {\r\n AXPropertyDecorators.REGISTRY.push(new AXPropertyDecorator(cls, property, options));\r\n }\r\n }\r\n\r\n\r\n\r\n static has(cls: string, property: string): boolean {\r\n return AXPropertyDecorators.REGISTRY.some(c => c.cls === cls && c.property === property);\r\n }\r\n\r\n static get(cls: string, property: string): AXPropertyDecorator {\r\n return AXPropertyDecorators.REGISTRY.find(c => c.cls === cls && c.property === property);\r\n }\r\n\r\n static isValid(property: string): boolean {\r\n if (property) {\r\n return AXPropertyDecorators.REGISTRY.some(c => c.property === property);\r\n }\r\n return false;\r\n }\r\n\r\n static getProperties(target: any): AXPropertyDecorator[] {\r\n const list: AXPropertyDecorator[] = [];\r\n const p: any[] = Array<any>();\r\n let superClass = Object.getPrototypeOf(target);\r\n while (superClass.constructor.name !== 'Object') {\r\n p.push(superClass.constructor);\r\n superClass = Object.getPrototypeOf(superClass);\r\n }\r\n list.push(...AXPropertyDecorators.REGISTRY.filter(c => p.includes(c.cls.constructor)));\r\n return list;\r\n }\r\n}\r\n\r\n\r\n\r\nexport function propertyEditor(options: AXPropertyEditorDef) {\r\n return (target: any, key: string) => {\r\n (options as any).name = key;\r\n AXPropertyDecorators.register(target, key, options);\r\n };\r\n}\r\n\r\n","import { Directive, ViewContainerRef, ComponentFactoryResolver, Input, Output, EventEmitter } from '@angular/core';\r\nimport { AXProperyEditorComponent, AXProperyEditorValueChangeEvent, AXPropertyConfig } from './property-editor.class';\r\nimport { AXObjectUtil, AXRenderService, getPropByPath } from '@acorex/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { AXValidationFormComponent } from '../validation/validation-form.component';\r\n\r\n@Directive({\r\n selector: '[ax-property-editor-renderer]',\r\n})\r\nexport class AXPropertyEditorRendererDirective {\r\n\r\n private instance: AXProperyEditorComponent<any>;\r\n\r\n\r\n @Input()\r\n property: AXPropertyConfig;\r\n\r\n\r\n @Input()\r\n readonly: boolean = false;\r\n\r\n @Input()\r\n validationForm: AXValidationFormComponent;\r\n\r\n\r\n\r\n private _context: any;\r\n @Input()\r\n public get context(): any {\r\n return this._context;\r\n }\r\n public set context(v: any) {\r\n this._context = v;\r\n if (v && this.instance) {\r\n this.assignProps();\r\n }\r\n }\r\n\r\n @Input()\r\n host: any;\r\n\r\n\r\n @Output()\r\n onValueChange: EventEmitter<AXProperyEditorValueChangeEvent> = new EventEmitter<AXProperyEditorValueChangeEvent>();\r\n\r\n private subscription: Subscription;\r\n\r\n constructor(\r\n private target: ViewContainerRef,\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private renderService: AXRenderService\r\n ) {\r\n\r\n }\r\n\r\n\r\n clear() {\r\n this.instance.value = null;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.createComponent();\r\n }\r\n\r\n\r\n\r\n createComponent() {\r\n this.renderService.findLoadedComponentByRoute(this.property.property.editorClass).then(c => {\r\n if (c) {\r\n const factory = this.componentFactoryResolver.resolveComponentFactory(c.component);\r\n const cmpRef = this.target.createComponent(factory);\r\n this.instance = cmpRef.instance as AXProperyEditorComponent<any>;\r\n this.subscription = this.instance.valueChange.subscribe(value => {\r\n if (this.instance.initiated === true) {\r\n this.property.value = value;\r\n this.onValueChange.emit(this.property);\r\n }\r\n });\r\n // \r\n if (this.validationForm) {\r\n this.instance.validatableComponentRegistered.subscribe(v => {\r\n this.validationForm.addWidget(v);\r\n });\r\n }\r\n //\r\n //setTimeout(() => {\r\n this.instance.readonly = this.readonly;\r\n this.assignProps();\r\n this.instance.value = this.property.value;\r\n this.instance.initiat();\r\n cmpRef.changeDetectorRef.markForCheck();\r\n //});\r\n }\r\n });\r\n }\r\n\r\n\r\n private assignProps() {\r\n const options = this.property.property.editorOptions;\r\n if (!options) {\r\n return;\r\n }\r\n for (const p in options) {\r\n if (options.hasOwnProperty(p)) {\r\n const opt = options[p];\r\n if (typeof opt === 'string' && opt.startsWith('$$')) {\r\n const key = opt.substring(2);\r\n const val = getPropByPath(this.context, key);\r\n if (val) {\r\n this.instance[p] = typeof val === 'function' ? val({ data: this.context, host: this.host }, this.property) : val;\r\n }\r\n }\r\n else {\r\n const res = typeof opt === 'function' ? opt({ data: this.context, host: this.host }, this.property) : opt;\r\n if (res instanceof Promise) {\r\n res.then(v => {\r\n this.instance[p] = v;\r\n });\r\n }\r\n else {\r\n this.instance[p] = res;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n}","import { Component, ChangeDetectorRef, ViewChild } from '@angular/core';\r\nimport { AXTextBoxComponent } from '../../../textbox/textbox.component';\r\nimport { AXValidation } from '../../../validation/validation.component';\r\nimport { AXProperyEditorComponent } from '../../property-editor.class';\r\n\r\n@Component({\r\n templateUrl: './text.editor.html',\r\n})\r\nexport class AXTextPropertyEditorComponent extends AXProperyEditorComponent<string> {\r\n\r\n\r\n @ViewChild(AXTextBoxComponent)\r\n private textBox: AXTextBoxComponent;\r\n\r\n\r\n validation: AXValidation;\r\n clearButton: boolean = false;\r\n\r\n\r\n constructor(protected cdr: ChangeDetectorRef) {\r\n super(cdr);\r\n }\r\n\r\n\r\n handleValueChange(e: any) {\r\n super.handleValueChange(e.value);\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n this.registerForValidationForm(this.textBox);\r\n this.initiated = true;\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXTextPropertyEditorComponent } from './text.editor';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXTextBoxModule } from '../../../textbox/textbox.module';\r\nimport { AXValidationModule } from '../../../validation/validation.module';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [AXTextPropertyEditorComponent],\r\n imports: [CommonModule, FormsModule, AXTextBoxModule, AXValidationModule],\r\n exports: [AXTextPropertyEditorComponent],\r\n entryComponents: [AXTextPropertyEditorComponent],\r\n providers: [],\r\n})\r\nexport class AXTextPropertyEditorModule {\r\n constructor() {\r\n }\r\n}","import { Component, OnInit, ChangeDetectorRef, ViewChild } from '@angular/core';\r\nimport { AXNumberBoxComponent } from '../../../number-box/number-box.component';\r\nimport { AXValidation } from '../../../validation/validation.component';\r\nimport { AXProperyEditorComponent } from '../../property-editor.class';\r\n\r\n@Component({\r\n template: `\r\n <ax-number-box (onValueChanged)=\"handleValueChange($event)\"\r\n [value]=\"value\"\r\n [showSeparator]=\"showSeparator\"\r\n [decimalNumber]=\"decimalNumber\"\r\n [min]=\"minValue\"\r\n [max]=\"maxValue\"\r\n [allowClear]=\"clearButton\"\r\n >\r\n <ax-validation [rules]=\"validation?.rules\">\r\n </ax-validation>\r\n </ax-number-box>\r\n `,\r\n})\r\nexport class AXNumberBoxPropertyEditorComponent extends AXProperyEditorComponent<number> {\r\n\r\n\r\n showSeparator: boolean = true;\r\n decimalNumber: number = 2;\r\n minValue?: number = null;\r\n maxValue?: number = null;\r\n validation: AXValidation;\r\n clearButton: boolean = false;\r\n\r\n @ViewChild(AXNumberBoxComponent)\r\n private textBox: AXNumberBoxComponent;\r\n\r\n constructor(protected cdr: ChangeDetectorRef) {\r\n super(cdr);\r\n }\r\n\r\n handleValueChange(e: any) {\r\n super.handleValueChange(e.value);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.initiated = true;\r\n this.registerForValidationForm(this.textBox);\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 { AXNumberBoxPropertyEditorComponent } from './number.editor';\r\nimport { AXNumberBoxModule } from '../../../number-box/number-box.module';\r\nimport { AXValidationModule } from '../../../validation/validation.module';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [AXNumberBoxPropertyEditorComponent],\r\n imports: [CommonModule, FormsModule, AXNumberBoxModule,AXValidationModule],\r\n exports: [AXNumberBoxPropertyEditorComponent],\r\n entryComponents: [AXNumberBoxPropertyEditorComponent],\r\n providers: [],\r\n})\r\nexport class AXNumberBoxPropertyEditorModule {\r\n constructor() {\r\n }\r\n}","import { Component, OnInit, ChangeDetectorRef, ViewChild } from '@angular/core';\r\nimport { AXProperyEditorComponent } from '../../property-editor.class';\r\nimport { AXValidation } from '../../../validation/validation.component';\r\nimport { AXSelectBox2Component, AXSelectBoxValueChangedEvent } from '../../../selectbox/selectbox2.component';\r\n\r\n@Component({\r\n templateUrl: './selectbox.editor.html',\r\n})\r\nexport class AXSelectBoxPropertyEditorComponent extends AXProperyEditorComponent<any> {\r\n\r\n\r\n valueField: string = 'id';\r\n textField: string = 'text';\r\n selectionMode: string = 'single';\r\n selectionDataMode: string = 'value';\r\n allowSearch: boolean = true;\r\n allowNull: boolean = false;\r\n items: any = [];\r\n remoteOperation = false;\r\n\r\n validation: AXValidation;\r\n\r\n @ViewChild(AXSelectBox2Component, { static: true })\r\n selectBox: AXSelectBox2Component;\r\n\r\n constructor(protected cdr: ChangeDetectorRef) {\r\n super(cdr);\r\n }\r\n\r\n handleValueChange(e: AXSelectBoxValueChangedEvent) {\r\n super.handleValueChange(e.value);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.selectBox.refresh();\r\n this.registerForValidationForm(this.selectBox);\r\n }\r\n\r\n provideData = (e): Promise<any> => {\r\n return new Promise((resolve) => {\r\n const func = () => {\r\n if (Array.isArray(this.items)) {\r\n resolve(this.items);\r\n }\r\n else if (typeof this.items === 'function') {\r\n resolve(this.items(e));\r\n }\r\n else {\r\n resolve([]);\r\n }\r\n };\r\n const intVal = setInterval(() => {\r\n if (this.initiated) {\r\n func();\r\n clearInterval(intVal);\r\n }\r\n },50);\r\n });\r\n }\r\n\r\n initiat() {\r\n this.initiated = true;\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 { AXSelectBoxPropertyEditorComponent } from './selectbox.editor';\r\nimport { AXSelectBoxModule } from '../../../selectbox/selectbox.module';\r\nimport { AXDataSourceModule } from '../../../data-source/datasource.module';\r\nimport { AXValidationModule } from '../../../validation/validation.module';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [AXSelectBoxPropertyEditorComponent],\r\n imports: [CommonModule, FormsModule, AXSelectBoxModule, AXDataSourceModule, AXValidationModule],\r\n exports: [AXSelectBoxPropertyEditorComponent],\r\n entryComponents: [AXSelectBoxPropertyEditorComponent],\r\n providers: [],\r\n})\r\nexport class AXSelectBoxPropertyEditorModule {\r\n constructor() {\r\n }\r\n}","import { Component, ChangeDetectorRef, ViewChild, TemplateRef, ChangeDetectionStrategy, ElementRef } from '@angular/core';\r\nimport { AXTranslator } from '@acorex/core';\r\nimport { AXProperyEditorComponent } from '../../property-editor.class';\r\nimport { AXPopupService } from '../../../popup/popup.service';\r\nimport { AXValidationFormComponent } from '../../../validation/validation-form.component';\r\n\r\n\r\nexport interface AXRangeModel {\r\n title: string;\r\n color?: string;\r\n minValue: number;\r\n maxValue: number;\r\n}\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './range.editor.html',\r\n styleUrls: ['./range.editor.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXRangePropertyEditorComponent extends AXProperyEditorComponent<AXRangeModel[]> {\r\n\r\n\r\n private form: AXValidationFormComponent;\r\n\r\n @ViewChild('tplEdit')\r\n tplEdit: TemplateRef<any>;\r\n\r\n ranges: AXRangeModel[] = [];\r\n\r\n editRow: AXRangeModel;\r\n\r\n showSeparator: boolean = true;\r\n decimalNumber: number = 2;\r\n\r\n constructor(protected cdr: ChangeDetectorRef, private popupService: AXPopupService) {\r\n super(cdr);\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.ranges = this.value ? JSON.parse(JSON.stringify(this.value)) : [];\r\n this.cdr.detectChanges();\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n this.initiated = true;\r\n }\r\n\r\n // getRanges() {\r\n // return this.ranges.sort((a, b) => a.minValue - b.minValue);\r\n // }\r\n\r\n onFormInit(e) {\r\n this.form = e.component;\r\n }\r\n\r\n\r\n handleEditClick(item: AXRangeModel) {\r\n this.editRow = Object.assign({}, item);\r\n const popup = this.popupService.open(this.tplEdit, {\r\n size: 'sm',\r\n footerButtons: [\r\n {\r\n name: 'confirm',\r\n text: AXTranslator.get('common.confirm'),\r\n style: 'success',\r\n submitBehavior: true,\r\n cancelBehavior: false,\r\n onClick: () => {\r\n this.form.validate().then(c => {\r\n if (c.result) {\r\n super.handleValueChange(this.ranges);\r\n Object.assign(item, this.editRow);\r\n popup.close();\r\n this.editRow = null;\r\n this.cdr.detectChanges();\r\n }\r\n });\r\n }\r\n },\r\n {\r\n name: 'cancel',\r\n text: AXTranslator.get('common.cancel'),\r\n style: 'danger blank',\r\n submitBehavior: false,\r\n cancelBehavior: true,\r\n onClick: () => {\r\n popup.close();\r\n this.editRow = null;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n ],\r\n title: AXTranslator.get('common.edit')\r\n });\r\n }\r\n\r\n handleAddClick() {\r\n const min = this.ranges?.length ? Math.max(...this.ranges.map(c => c.maxValue)) : 0;\r\n this.editRow = {\r\n title: '',\r\n minValue: min,\r\n maxValue: min + 1,\r\n color: null\r\n };\r\n const popup = this.popupService.open(this.tplEdit, {\r\n title: AXTranslator.get('common.add-item'),\r\n size: 'sm',\r\n footerButtons: [\r\n {\r\n name: 'confirm',\r\n text: AXTranslator.get('common.confirm'),\r\n style: 'success',\r\n submitBehavior: true,\r\n cancelBehavior: false,\r\n onClick: () => {\r\n this.form.validate().then(c => {\r\n if (c.result) {\r\n super.handleValueChange(this.ranges);\r\n this.ranges.push(this.editRow);\r\n popup.close();\r\n this.editRow = null;\r\n this.cdr.detectChanges();\r\n }\r\n });\r\n }\r\n },\r\n {\r\n name: 'cancel',\r\n text: AXTranslator.get('common.cancel'),\r\n style: 'danger blank',\r\n submitBehavior: false,\r\n cancelBehavior: true,\r\n onClick: () => {\r\n popup.close();\r\n this.editRow = null;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n ],\r\n });\r\n this.cdr.detectChanges();\r\n }\r\n\r\n handleRemoveClick(item: AXRangeModel) {\r\n this.ranges = this.ranges.filter(c => c.minValue !== item.minValue);\r\n super.handleValueChange(this.ranges);\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { AXValidatableComponent } from '../../base/element.class';\r\nimport { AXColorUtil, AXColor } from '@acorex/core';\r\n\r\n@Component({\r\n selector: 'ax-color-box',\r\n templateUrl: './color-box.component.html',\r\n styleUrls: ['./color-box.component.scss'],\r\n providers: [\r\n { provide: AXValidatableComponent, useExisting: AXColorBoxComponent },\r\n ]\r\n})\r\nexport class AXColorBoxComponent extends AXValidatableComponent {\r\n\r\n inputFormat: 'hex' | 'rgb' = 'hex';\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n @Output()\r\n onColorSelect: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @Output()\r\n valueChange: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n private _value: string;\r\n\r\n @Input()\r\n public get value(): string {\r\n return this._value;\r\n }\r\n public set value(v: string) {\r\n if (v != this._value) {\r\n this._value = v;\r\n if (v) {\r\n const selected = this.colors.find(c => c.code === v);\r\n if (selected) {\r\n this.selectColor(selected);\r\n }\r\n else {\r\n this.colors.forEach((i) => {\r\n i.active = false\r\n });\r\n }\r\n const rgb = AXColorUtil.hex2Rgb(v);\r\n\r\n if (rgb) {\r\n this.rColor = rgb.r;\r\n this.gColor = rgb.g;\r\n this.bColor = rgb.b;\r\n }\r\n }\r\n else {\r\n this.rColor = null;\r\n this.gColor = null;\r\n this.bColor = null;\r\n }\r\n this.valueChange.emit(v);\r\n }\r\n }\r\n\r\n rColor: number = 0;\r\n gColor: number = 0;\r\n bColor: number = 0;\r\n\r\n\r\n colors: AXColor[] = [\r\n // Pink ***************************\r\n {\r\n code: '#FFC0CB',\r\n },\r\n {\r\n code: '#FF69B4',\r\n },\r\n {\r\n code: '#DB7093',\r\n },\r\n {\r\n code: '#C71585',\r\n },\r\n // Purple ***************************\r\n {\r\n code: '#E6E6FA',\r\n },\r\n {\r\n code: '#D8BFD8',\r\n },\r\n {\r\n code: '#DDA0DD',\r\n },\r\n {\r\n code: '#DA70D6',\r\n },\r\n {\r\n code: '#FF00FF',\r\n },\r\n {\r\n code: '#BA55D3',\r\n },\r\n {\r\n code: '#9932CC',\r\n },\r\n {\r\n code: '#8A2BE2',\r\n\r\n },\r\n {\r\n code: '#8B008B',\r\n },\r\n {\r\n code: '#9370DB',\r\n },\r\n {\r\n code: '#7B68EE',\r\n },\r\n {\r\n code: '#6A5ACD',\r\n },\r\n {\r\n code: '#483D8B',\r\n },\r\n {\r\n code: '#663399',\r\n },\r\n {\r\n code: '#4B0082',\r\n },\r\n // Red ***************************\r\n {\r\n code: '#FFA07A',\r\n },\r\n {\r\n code: '#FA8072',\r\n },\r\n {\r\n code: '#F08080',\r\n },\r\n {\r\n code: '#CD5C5C',\r\n },\r\n {\r\n code: '#DC143C',\r\n },\r\n {\r\n code: '#FF0000',\r\n },\r\n {\r\n code: '#B22222',\r\n },\r\n {\r\n code: '#8B0000',\r\n },\r\n // Orange ***************************\r\n {\r\n code: '#FFA500',\r\n },\r\n {\r\n code: '#FF8C00',\r\n },\r\n {\r\n code: '#FF7F50',\r\n },\r\n {\r\n code: '#FF6347',\r\n },\r\n {\r\n code: '#FF4500',\r\n },\r\n {\r\n code: '#FFD700',\r\n },\r\n // Yellow ***************************\r\n {\r\n code: '#FFFF00',\r\n },\r\n {\r\n code: '#FFFFE0',\r\n },\r\n {\r\n code: '#FFFACD',\r\n },\r\n {\r\n code: '#FFEFD5',\r\n },\r\n {\r\n code: '#FFE4B5',\r\n },\r\n {\r\n code: '#FFDAB9',\r\n },\r\n {\r\n code: '#EEE8AA',\r\n },\r\n {\r\n code: '#F0E68C',\r\n },\r\n {\r\n code: '#BDB76B',\r\n },\r\n // Brown ***************************\r\n // {\r\n // code: '#FFF8DC'\r\n // },\r\n // {\r\n // code: '#FFEBCD'\r\n // },\r\n // {\r\n // code: '#FFE4C4'\r\n // },\r\n {\r\n code: '#FFDEAD'\r\n },\r\n {\r\n code: '#DEB887'\r\n },\r\n {\r\n code: '#D2B48C'\r\n },\r\n {\r\n code: '#DAA520'\r\n },\r\n {\r\n code: '#B8860B'\r\n },\r\n {\r\n code: '#CD853F'\r\n },\r\n {\r\n code: '#D2691E'\r\n },\r\n {\r\n code: '#8B4513'\r\n },\r\n {\r\n code: '#A0522D'\r\n },\r\n // Green ***************************\r\n {\r\n code: '#ADFF2F',\r\n },\r\n {\r\n code: '#7FFF00',\r\n },\r\n {\r\n code: '#00FF00',\r\n },\r\n {\r\n code: '#32CD32',\r\n },\r\n {\r\n code: '#98FB98',\r\n },\r\n {\r\n code: '#90EE90',\r\n },\r\n {\r\n code: '#00FA9A',\r\n },\r\n {\r\n code: '#00FF7F',\r\n },\r\n {\r\n code: '#3CB371',\r\n },\r\n {\r\n code: '#2E8B57',\r\n },\r\n {\r\n code: '#228B22',\r\n },\r\n {\r\n code: '#008000',\r\n },\r\n {\r\n code: '#006400',\r\n },\r\n {\r\n code: '#9ACD32',\r\n },\r\n {\r\n code: '#6B8E23',\r\n },\r\n {\r\n code: '#556B2F',\r\n },\r\n {\r\n code: '#66CDAA',\r\n },\r\n {\r\n code: '#8FBC8F',\r\n },\r\n {\r\n code: '#20B2AA',\r\n },\r\n {\r\n code: '#008B8B',\r\n },\r\n // Cyan ***************************\r\n\r\n {\r\n code: '#E0FFFF',\r\n },\r\n {\r\n code: '#AFEEEE',\r\n },\r\n {\r\n code: '#7FFFD4',\r\n },\r\n {\r\n code: '#40E0D0',\r\n },\r\n {\r\n code: '#48D1CC',\r\n },\r\n {\r\n code: '#00CED1',\r\n },\r\n // Blue ***************************\r\n {\r\n code: '#5F9EA0'\r\n },\r\n {\r\n code: '#4682B4'\r\n },\r\n {\r\n code: '#B0C4DE'\r\n },\r\n {\r\n code: '#ADD8E6'\r\n },\r\n {\r\n code: '#B0E0E6'\r\n },\r\n {\r\n code: '#87CEFA'\r\n },\r\n {\r\n code: '#87CEEB'\r\n },\r\n {\r\n code: '#6495ED'\r\n },\r\n {\r\n code: '#00BFFF'\r\n },\r\n {\r\n code: '#00FFFF',\r\n },\r\n {\r\n code: '#1E90FF'\r\n },\r\n {\r\n code: '#4169E1'\r\n },\r\n {\r\n code: '#0000FF'\r\n },\r\n {\r\n code: '#0000CD'\r\n },\r\n {\r\n code: '#00008B'\r\n },\r\n {\r\n code: '#191970'\r\n },\r\n // Gray\r\n {\r\n code: '#FFFFFF'\r\n },\r\n {\r\n code: '#DCDCDC'\r\n },\r\n {\r\n code: '#808080'\r\n },\r\n {\r\n code: '#708090'\r\n },\r\n {\r\n code: '#000000'\r\n },\r\n ];\r\n\r\n\r\n // validate(): Promise<IValidationRuleResult> {\r\n\r\n // return new Promise<IValidationRuleResult>(resolve => {\r\n // if (!this.validator) {\r\n // resolve({ result: true });\r\n // } else {\r\n // // this.validator.validate(this.model).then(r => {\r\n // // r.target = this;\r\n // // if (r.result) {\r\n // // this.errorText = null;\r\n // // } else {\r\n // // this.errorText = r.message;\r\n // // }\r\n // // resolve(r);\r\n // // });\r\n\r\n // resolve()\r\n // }\r\n // });\r\n // }\r\n\r\n focus() {\r\n }\r\n\r\n clear(): void {\r\n this.value = null;\r\n }\r\n\r\n onColorClick(item: AXColor) {\r\n this.value = item ? item.code : null;\r\n this.selectColor(item);\r\n this.onColorSelect.emit(this.value);\r\n }\r\n\r\n handleColorChange() {\r\n this.value = AXColorUtil.rgb2Hex(this.rColor, this.gColor, this.bColor);\r\n\r\n }\r\n\r\n private selectColor(item: AXColor) {\r\n this.colors.forEach((i) => {\r\n i.active = false;\r\n });\r\n item.active = true\r\n }\r\n\r\n handleKeyEvent(e: KeyboardEvent) {\r\n if (e.code == 'Enter' || e.code == 'NumpadEnter') {\r\n this.onColorSelect.emit(this.value);\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter, ContentChild, ElementRef } from '@angular/core';\r\nimport { AXValidatableComponent, AXBaseSizableComponent, AXBaseInputComponent, AXElementSize } from '../base/element.class';\r\nimport { AXColorBoxComponent } from './color-box/color-box.component';\r\nimport { AXColorUtil, AXConfig } from '@acorex/core';\r\nimport { AXDropdownComponent } from '../dropdown/dropdown.component';\r\nimport { AXValidation } from '../validation/validation.component';\r\n\r\n\r\n@Component({\r\n selector: 'ax-color-picker',\r\n templateUrl: './color-picker.component.html',\r\n providers: [\r\n { provide: AXValidatableComponent, useExisting: AXColorPickerComponent },\r\n ],\r\n host: { style: 'display: contents;' }\r\n})\r\nexport class AXColorPickerComponent extends AXColorBoxComponent implements AXBaseSizableComponent, AXBaseInputComponent {\r\n\r\n @ViewChild('dropdown', { static: true })\r\n dropdown: AXDropdownComponent;\r\n @Input() placeholder: string = '';\r\n @Input() showClear: boolean = false;\r\n\r\n @Input() label: string;\r\n\r\n _text: string = '';\r\n\r\n constructor(private ref: ElementRef) {\r\n super();\r\n }\r\n\r\n @Input()\r\n readonly: boolean;\r\n @Input()\r\n disabled: boolean;\r\n @Input()\r\n size: AXElementSize = 'md';\r\n\r\n @Input()\r\n rtl: boolean = AXConfig.get('layout.rtl');\r\n\r\n @ContentChild(AXValidation, { static: true })\r\n private _contentValidation: AXValidation;\r\n\r\n private _validation: AXValidation;\r\n\r\n @Input()\r\n public get validation(): AXValidation {\r\n return this._validation ? this._validation : this._contentValidation;\r\n }\r\n\r\n public set validation(v: AXValidation) {\r\n this._validation = v;\r\n }\r\n\r\n\r\n ngOnInit() {\r\n if (this.rtl == null) {\r\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\r\n }\r\n }\r\n\r\n\r\n ngAfterContentInit() {\r\n this.initValidation(this.ref, 'value', this.validation);\r\n }\r\n\r\n focus(): void {\r\n this.dropdown.focus();\r\n }\r\n\r\n // handleValueChange(c: string) {\r\n\r\n // }\r\n\r\n findTextColor(color: string) {\r\n if (!color) {\r\n return '#000';\r\n }\r\n return !(AXColorUtil.contrastToWhite(color) > 2.0) ? '#000' : '#fff';\r\n }\r\n\r\n handleItemClick(e) {\r\n this.dropdown.close();\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXColorPickerComponent } from './color-picker.component';\r\nimport { AXColorBoxComponent } from './color-box/color-box.component';\r\nimport { AXValidationModule } from '../validation/validation.module';\r\nimport { AXDropdownModule } from '../dropdown/dropdown.module';\r\nimport { AXTextBoxModule } from '../textbox/textbox.module';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n declarations: [AXColorPickerComponent, AXColorBoxComponent],\r\n imports: [CommonModule, FormsModule, AXDropdownModule, AXValidationModule, AXTextBoxModule],\r\n exports: [AXColorPickerComponent, AXColorBoxComponent],\r\n providers: []\r\n})\r\nexport class AXColorPickerModule { }","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXRangePropertyEditorComponent } from './range.editor';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXTextBoxModule } from '../../../textbox/textbox.module';\r\nimport { AXNumberBoxModule } from '../../../number-box/number-box.module';\r\nimport { AXColorPickerModule } from '../../../color-picker/color-picker.module';\r\nimport { AXLabelModule } from '../../../label/label.module';\r\nimport { AXPageModule } from '../../../page/page.module';\r\nimport { AXButtonModule } from '../../../button/button.module';\r\nimport { AXTranslatorModule } from '@acorex/core';\r\nimport { AXValidationModule } from '../../../validation/validation.module';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [AXRangePropertyEditorComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n AXTranslatorModule,\r\n AXTextBoxModule,\r\n AXNumberBoxModule,\r\n AXColorPickerModule,\r\n AXLabelModule,\r\n AXPageModule,\r\n AXValidationModule,\r\n AXButtonModule\r\n ],\r\n exports: [AXRangePropertyEditorComponent],\r\n entryComponents: [AXRangePropertyEditorComponent],\r\n providers: [],\r\n})\r\nexport class AXRangePropertyEditorModule {\r\n constructor() {\r\n }\r\n}","import { Component, OnInit, ChangeDetectorRef, ViewChild } from '@angular/core';\r\nimport { AXColorPickerComponent } from '../../../color-picker/color-picker.component';\r\nimport { AXValidation } from '../../../validation/validation.component';\r\nimport { AXProperyEditorComponent } from '../../property-editor.class';\r\n\r\n@Component({\r\n template: `\r\n <ax-color-picker [(value)]=\"value\">\r\n <ax-validation [rules]=\"validation?.rules\">\r\n </ax-validation>\r\n </ax-color-picker>\r\n `,\r\n})\r\nexport class AXColorPropertyEditorComponent extends AXProperyEditorComponent<string> {\r\n\r\n validation: AXValidation;\r\n\r\n @ViewChild(AXColorPickerComponent)\r\n private textBox: AXColorPickerComponent;\r\n\r\n constructor(protected cdr: ChangeDetectorRef) {\r\n super(cdr);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.registerForValidationForm(this.textBox);\r\n this.initiated = true;\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 { AXColorPropertyEditorComponent } from './color.editor';\r\nimport { AXColorPickerModule } from '../../../color-picker/color-picker.module';\r\nimport { AXValidationModule } from '../../../validation/validation.module';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [AXColorPropertyEditorComponent],\r\n imports: [CommonModule, FormsModule, AXColorPickerModule, AXValidationModule],\r\n exports: [AXColorPropertyEditorComponent],\r\n entryComponents: [AXColorPropertyEditorComponent],\r\n providers: [],\r\n})\r\nexport class AXColorPropertyEditorModule {\r\n constructor() {\r\n }\r\n}","import { Component, OnInit, ViewChild, TemplateRef, ChangeDetectorRef } from '@angular/core';\r\nimport { AXTranslator } from '@acorex/core';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { AXProperyEditorComponent } from '../../property-editor.class';\r\nimport { AXPopupService } from '../../../popup/popup.service';\r\nimport { AXDataSourceReadParams } from '../../../data-source/read-param';\r\n\r\n\r\nexport interface AXTableColumnModel {\r\n id: number;\r\n index: number;\r\n fieldName: string;\r\n caption?: string;\r\n fieldType?: string;\r\n displayType?: string;\r\n fillByUser?: boolean;\r\n rowHeader?: boolean;\r\n}\r\n\r\n@Component({\r\n templateUrl: './column.editor.html',\r\n styleUrls: ['./column.editor.scss']\r\n})\r\nexport class ColumnPropertyEditorComponent extends AXProperyEditorComponent<AXTableColumnModel[]> implements OnInit {\r\n @ViewChild('tplEdit')\r\n tplEdit: TemplateRef<any>;\r\n\r\n columns: AXTableColumnModel[] = [];\r\n\r\n index: number = 2;\r\n\r\n constructor(protected cdr: ChangeDetectorRef, private popupService: AXPopupService) {\r\n super(cdr);\r\n }\r\n\r\n columnTypeData: any[] = [\r\n { id: 1, title: 'String' },\r\n { id: 2, title: 'Number' },\r\n { id: 3, title: 'Boolean' },\r\n { id: 4, title: 'Data' },\r\n { id: 5, title: 'Time' }\r\n ];\r\n\r\n ngOnInit(): void {\r\n this.columns = this.value ? JSON.parse(JSON.stringify(this.value)) : [];\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.initiated = true;\r\n }\r\n\r\n drop(event: CdkDragDrop<string[]>) {\r\n moveItemInArray(this.columns, event.previousIndex, event.currentIndex);\r\n }\r\n\r\n handleAddColumn() {\r\n this.columns.push({\r\n id: Math.floor(1000*Math.random()*9000),\r\n index: this.index,\r\n fieldName: 'ستون' + this.index,\r\n caption: 'ستون' + this.index,\r\n fieldType: '',\r\n displayType: '',\r\n fillByUser: false,\r\n rowHeader: false\r\n });\r\n this.index++;\r\n }\r\n\r\n handleAddClick() {\r\n if (this.columns.length === 0) {\r\n this.columns.push({\r\n id: Math.floor(1000*Math.random()*9000),\r\n index: 1,\r\n fieldName: 'ستون 1',\r\n caption: 'ستون 1',\r\n fieldType: '',\r\n displayType: '',\r\n fillByUser: false,\r\n rowHeader: false\r\n });\r\n }\r\n const popup = this.popupService.open(this.tplEdit, {\r\n title: 'ستون',\r\n size: 'lg',\r\n footerButtons: [\r\n {\r\n name: 'confirm',\r\n text: AXTranslator.get('common.confirm'),\r\n style: 'success',\r\n submitBehavior: true,\r\n cancelBehavior: false,\r\n onClick: () => {\r\n super.handleValueChange(this.columns);\r\n this.cdr.detectChanges();\r\n this.index++;\r\n popup.close();\r\n }\r\n },\r\n {\r\n name: 'cancel',\r\n text: AXTranslator.get('common.cancel'),\r\n style: 'danger blank',\r\n submitBehavior: false,\r\n cancelBehavior: true,\r\n onClick: () => {\r\n this.cdr.detectChanges();\r\n popup.close();\r\n }\r\n }\r\n ]\r\n });\r\n }\r\n\r\n handleRemoveClick(item: AXTableColumnModel) {\r\n this.columns = this.columns.filter((c) => c.id !== item.id);\r\n super.handleValueChange(this.columns);\r\n }\r\n\r\n handleDataReceived = (e: AXDataSourceReadParams) => {\r\n return Promise.resolve(this.columnTypeData);\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 { AXTextBoxModule } from '../../../textbox/textbox.module';\r\nimport { AXNumberBoxModule } from '../../../number-box/number-box.module';\r\nimport { AXColorPickerModule } from '../../../color-picker/color-picker.module';\r\nimport { AXLabelModule } from '../../../label/label.module';\r\nimport { AXPageModule } from '../../../page/page.module';\r\nimport { AXButtonModule } from '../../../button/button.module';\r\nimport { AXCheckBoxModule } from './../../../checkbox/checkbox.module';\r\nimport { ColumnPropertyEditorComponent } from './column.editor';\r\nimport { AXSelectBoxModule } from '../../../selectbox/selectbox.module';\r\nimport { AXDataSourceModule } from '../../../data-source/datasource.module';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [ColumnPropertyEditorComponent],\r\n imports: [CommonModule, FormsModule, AXTextBoxModule, AXNumberBoxModule, AXColorPickerModule, AXLabelModule, AXPageModule, AXButtonModule, AXCheckBoxModule, AXSelectBoxModule, AXDataSourceModule, DragDropModule],\r\n exports: [ColumnPropertyEditorComponent],\r\n entryComponents: [ColumnPropertyEditorComponent],\r\n providers: [],\r\n})\r\nexport class AXColumnPropertyEditorModule {\r\n constructor() {\r\n }\r\n}\r\n","import { Component, ChangeDetectorRef, ViewChild, TemplateRef, ChangeDetectionStrategy, Input } from '@angular/core';\r\nimport { AXObjectUtil, AXTranslator } from '@acorex/core';\r\nimport { AXDataType, AXProperyEditorComponent } from '../../property-editor.class';\r\nimport { AXPopupService } from '../../../popup/popup.service';\r\nimport { AXValidationFormComponent } from '../../../validation/validation-form.component';\r\n\r\n\r\n\r\n\r\nexport interface AXConditionalColorModel {\r\n color: string;\r\n operator: string;\r\n value: any;\r\n display?: string;\r\n}\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './conditional-color.editor.html',\r\n styleUrls: ['./conditional-color.editor.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXConditionalColorPropertyEditorComponent extends AXProperyEditorComponent<AXConditionalColorModel[]> {\r\n\r\n\r\n form: AXValidationFormComponent;\r\n\r\n @ViewChild('tplEdit')\r\n tplEdit: TemplateRef<any>;\r\n\r\n @Input()\r\n dataType: AXDataType = 'number';\r\n\r\n // @Input()\r\n // mode: string[] = ['color', 'title'];\r\n\r\n operators: { value: string, text: string, dataTypes?: AXDataType[] }[] = [];\r\n\r\n ranges: AXConditionalColorModel[] = [];\r\n\r\n editRow: AXConditionalColorModel;\r\n\r\n showSeparator: boolean = true;\r\n decimalNumber: number = 2;\r\n\r\n booleanItems = [{ value: true, text: AXTranslator.get('queryBuilder.true') }, { value: false, text: AXTranslator.get('queryBuilder.false') }];\r\n\r\n constructor(protected cdr: ChangeDetectorRef, private popupService: AXPopupService) {\r\n super(cdr);\r\n }\r\n\r\n\r\n onFormInit(e) {\r\n this.form = e.component;\r\n }\r\n\r\n ngOnInit() {\r\n this.ranges = this.value ? AXObjectUtil.deepCopy(this.value) : [];\r\n this.updateOperations();\r\n }\r\n\r\n\r\n\r\n updateOperations() {\r\n this.operators = [\r\n {\r\n value: '<',\r\n text: AXTranslator.get('queryBuilder.lt'),\r\n dataTypes: ['string', 'number', 'date']\r\n },\r\n {\r\n value: '<=',\r\n text: AXTranslator.get('queryBuilder.lte'),\r\n dataTypes: ['string', 'number', 'date']\r\n },\r\n {\r\n value: '>',\r\n text: AXTranslator.get('queryBuilder.gt'),\r\n dataTypes: ['string', 'number', 'date']\r\n },\r\n {\r\n value: '>=',\r\n text: AXTranslator.get('queryBuilder.gte'),\r\n dataTypes: ['string', 'number', 'date']\r\n },\r\n {\r\n value: '==',\r\n text: AXTranslator.get('queryBuilder.equal'),\r\n dataTypes: ['string', 'boolean', 'number', 'date']\r\n },\r\n {\r\n value: '<>',\r\n text: AXTranslator.get('queryBuilder.not-equal'),\r\n dataTypes: ['string', 'boolean', 'number', 'date']\r\n }\r\n ].filter(c => c.dataTypes == null || c.dataTypes.includes(this.dataType)) as any;\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n this.initiated = true;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n handleEditClick(item: AXConditionalColorModel) {\r\n this.updateOperations();\r\n this.editRow = Object.assign({}, item);\r\n const popup = this.popupService.open(this.tplEdit, {\r\n size: 'sm',\r\n footerButtons: [\r\n {\r\n name: 'confirm',\r\n text: AXTranslator.get('common.confirm'),\r\n style: 'success',\r\n submitBehavior: true,\r\n cancelBehavior: false,\r\n onClick: () => {\r\n this.form.validate().then(c => {\r\n if (c.result) {\r\n super.handleValueChange(this.ranges);\r\n Object.assign(item, this.editRow);\r\n popup.close();\r\n this.editRow = null;\r\n this.cdr.detectChanges();\r\n }\r\n });\r\n }\r\n },\r\n {\r\n name: 'cancel',\r\n text: AXTranslator.get('common.cancel'),\r\n style: 'danger blank',\r\n submitBehavior: false,\r\n cancelBehavior: true,\r\n onClick: () => {\r\n popup.close();\r\n this.editRow = null;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n ],\r\n title: AXTranslator.get('common.edit')\r\n });\r\n }\r\n\r\n handleAddClick() {\r\n this.updateOperations();\r\n this.editRow = {\r\n value: this.getDefaultValue(),\r\n color: null,\r\n operator: '=='\r\n };\r\n const popup = this.popupService.open(this.tplEdit, {\r\n title: AXTranslator.get('common.add-item'),\r\n size: 'sm',\r\n footerButtons: [\r\n {\r\n name: 'confirm',\r\n text: AXTranslator.get('common.confirm'),\r\n style: 'success',\r\n submitBehavior: true,\r\n cancelBehavior: false,\r\n onClick: () => {\r\n this.form.validate().then(c => {\r\n if (c.result) {\r\n super.handleValueChange(this.ranges);\r\n this.ranges.push(this.editRow);\r\n popup.close();\r\n this.editRow = null;\r\n this.cdr.detectChanges();\r\n }\r\n });\r\n }\r\n },\r\n {\r\n name: 'cancel',\r\n text: AXTranslator.get('common.cancel'),\r\n style: 'danger blank',\r\n submitBehavior: false,\r\n cancelBehavior: true,\r\n onClick: () => {\r\n popup.close();\r\n this.editRow = null;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n ],\r\n });\r\n }\r\n getDefaultValue(): any {\r\n switch (this.dataType) {\r\n case 'boolean':\r\n return true;\r\n case 'number':\r\n return 0;\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n handleRemoveClick(item: AXConditionalColorModel) {\r\n this.ranges = this.ranges.filter(c => !(c.value === item.value && c.operator === item.operator));\r\n super.handleValueChange(this.ranges);\r\n }\r\n\r\n\r\n getTitle(opr: string) {\r\n const oprItem = this.operators.find(c => c.value === opr);\r\n return oprItem ? AXTranslator.get(oprItem.text) : '';\r\n }\r\n\r\n getIcon(opr: string) {\r\n switch (opr) {\r\n case '==':\r\n return 'fa-equals';\r\n case '<>':\r\n return 'fa-not-equal';\r\n case '<':\r\n return 'fa-less-than';\r\n case '<=':\r\n return 'fa-less-than-equal';\r\n case '>':\r\n return 'fa-greater-than';\r\n case '>=':\r\n return 'fa-greater-than-equal';\r\n default:\r\n return null;\r\n }\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 { AXTextBoxModule } from '../../../textbox/textbox.module';\r\nimport { AXNumberBoxModule } from '../../../number-box/number-box.module';\r\nimport { AXColorPickerModule } from '../../../color-picker/color-picker.module';\r\nimport { AXLabelModule } from '../../../label/label.module';\r\nimport { AXPageModule } from '../../../page/page.module';\r\nimport { AXButtonModule } from '../../../button/button.module';\r\nimport { AXTranslator, AXTranslatorModule } from '@acorex/core';\r\nimport { AXConditionalColorPropertyEditorComponent } from './conditional-color.editor';\r\nimport { AXValidationModule } from '../../../validation/validation.module';\r\nimport { AXSelectBoxModule } from '../../../selectbox/selectbox.module';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [AXConditionalColorPropertyEditorComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n AXTranslatorModule,\r\n AXTextBoxModule,\r\n AXNumberBoxModule,\r\n AXColorPickerModule,\r\n AXLabelModule,\r\n AXPageModule,\r\n AXButtonModule,\r\n AXSelectBoxModule,\r\n AXValidationModule,\r\n ],\r\n exports: [AXConditionalColorPropertyEditorComponent],\r\n entryComponents: [AXConditionalColorPropertyEditorComponent],\r\n providers: [],\r\n})\r\nexport class AXConditionalColorPropertyEditorModule {\r\n constructor() {\r\n AXTranslator.load('en', {\r\n 'conditional-color-property-editor': {\r\n 'replaced-color': 'Replaced Color',\r\n 'replaced-title': 'Replaced Title',\r\n }\r\n });\r\n //\r\n AXTranslator.load('fa', {\r\n 'conditional-color-property-editor': {\r\n 'replaced-color': 'رنگ جایگزین',\r\n 'replaced-title': 'متن جایگزین',\r\n }\r\n });\r\n }\r\n}","import { Component, OnInit, ChangeDetectorRef, ViewChild } from '@angular/core';\r\nimport { AXProperyEditorComponent } from '../../property-editor.class';\r\n\r\n@Component({\r\n template: `\r\n <ax-switch (onValueChanged)=\"handleValueChange($event)\" [value]=\"value\"></ax-switch>\r\n `,\r\n})\r\nexport class AXSwitchPropertyEditorComponent extends AXProperyEditorComponent<boolean> {\r\n\r\n\r\n\r\n constructor(protected cdr: ChangeDetectorRef) {\r\n super(cdr);\r\n }\r\n\r\n\r\n handleValueChange(e: any) {\r\n super.handleValueChange(e.value);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.initiated = true;\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 { AXNumberBoxModule } from '../../../number-box/number-box.module';\r\nimport { AXValidationModule } from '../../../validation/validation.module';\r\nimport { AXSwitchPropertyEditorComponent } from './number.editor';\r\nimport { AXSwitchModule } from '../../../switch/switch.module';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [AXSwitchPropertyEditorComponent],\r\n imports: [CommonModule, FormsModule, AXNumberBoxModule, AXValidationModule, AXSwitchModule],\r\n exports: [AXSwitchPropertyEditorComponent],\r\n entryComponents: [AXSwitchPropertyEditorComponent],\r\n providers: [],\r\n})\r\nexport class AXSwitchPropertyEditorModule {\r\n constructor() {\r\n }\r\n}","import { Component, OnInit, ChangeDetectorRef, ViewChild } from '@angular/core';\r\nimport { AXDatePickerComponent } from '../../../date-picker/date-picker.component';\r\nimport { AXValidation } from '../../../validation/validation.component';\r\nimport { AXProperyEditorComponent } from '../../property-editor.class';\r\nimport { AXCalendarType } from '@acorex/core'\r\n\r\n@Component({\r\n template: `\r\n <ax-date-picker [size]=\"size\" [dateType]=\"dateType\" [showToday]=\"showToday\" [disabled]=\"disabled\" [allowClear]=\"clearButton\" [readonly]=\"readonly\" [max]=\"max\" [min]=\"min\" [placeholder]=\"placeholder\" [showTodayButton]=\"showTodayButton\" [selectableHoliday]=\"selectableHoliday\" (onValueChanged)=\"handleValueChange($event)\"\r\n [type]=\"type\" [textAlign]=\"textAlign\" [(value)]=\"value\">\r\n <ax-validation [rules]=\"validation?.rules\">\r\n </ax-validation>\r\n </ax-date-picker>\r\n `,\r\n})\r\nexport class AXDatePropertyEditorComponent extends AXProperyEditorComponent<Date> {\r\n\r\n showTodayButton: boolean = true;\r\n selectableHoliday: boolean = true;\r\n type: AXCalendarType = 'gregorian';\r\n textAlign: 'right' | 'left' | null = null;\r\n validation: AXValidation;\r\n placeholder: string = ''\r\n min: Date;\r\n max: Date;\r\n readonly: boolean;\r\n disabled: boolean;\r\n clearButton: boolean = false;\r\n showToday: boolean = false;\r\n dateType: any;\r\n size: string = 'md';\r\n\r\n @ViewChild(AXDatePickerComponent)\r\n private date: AXDatePickerComponent;\r\n\r\n constructor(protected cdr: ChangeDetectorRef) {\r\n super(cdr);\r\n }\r\n\r\n handleValueChange(e: any) {\r\n super.handleValueChange(e.value);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.initiated = true;\r\n this.registerForValidationForm(this.date);\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 { AXValidationModule } from '../../../validation/validation.module';\r\nimport { AXDatePickerModule } from '../../../date-picker/date-picker.module';\r\nimport { AXDatePropertyEditorComponent } from './date.editor';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [AXDatePropertyEditorComponent],\r\n imports: [CommonModule, FormsModule, AXDatePickerModule, AXValidationModule],\r\n exports: [AXDatePropertyEditorComponent],\r\n entryComponents: [AXDatePropertyEditorComponent],\r\n providers: [],\r\n})\r\nexport class AXDatePropertyEditorModule {\r\n constructor() {\r\n }\r\n}","import { Component, OnInit, ChangeDetectorRef, ViewChild } from '@angular/core';\r\nimport { AXDatePickerComponent } from '../../../date-picker/date-picker.component';\r\nimport { AXValidation } from '../../../validation/validation.component';\r\nimport { AXProperyEditorComponent } from '../../property-editor.class';\r\n\r\n@Component({\r\n template: `\r\n <ax-time-picker [showCurentTime]=\"showCurentTime\" [timeType]=\"timeType\" [allowClear]=\"clearButton\" (onValueChanged)=\"handleValueChange($event)\">\r\n <ax-validation [rules]=\"validation?.rules\">\r\n </ax-validation>\r\n </ax-time-picker>\r\n `,\r\n})\r\nexport class AXTimePropertyEditorComponent extends AXProperyEditorComponent<String> {\r\n\r\n\r\n timeType: any;\r\n validation: AXValidation;\r\n showCurentTime: boolean = false;\r\n clearButton: boolean = false;\r\n\r\n @ViewChild(AXDatePickerComponent)\r\n private time: AXDatePickerComponent;\r\n\r\n constructor(protected cdr: ChangeDetectorRef) {\r\n super(cdr);\r\n }\r\n\r\n handleValueChange(e: any) {\r\n super.handleValueChange(e.value?.time);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.initiated = true;\r\n this.registerForValidationForm(this.time);\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 { AXValidationModule } from '../../../validation/validation.module';\r\nimport { AXTimePickerModule } from '../../../time-picker/time-picker.module';\r\nimport { AXTimePropertyEditorComponent } from './time.editor';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [AXTimePropertyEditorComponent],\r\n imports: [CommonModule, FormsModule, AXTimePickerModule, AXValidationModule],\r\n exports: [AXTimePropertyEditorComponent],\r\n entryComponents: [AXTimePropertyEditorComponent],\r\n providers: [],\r\n})\r\nexport class AXTimePropertyEditorModule {\r\n constructor() {\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { AXTextPropertyEditorModule } from './editors/text-editor/text.module';\r\nimport { AXPropertyEditorRendererDirective } from './property-editor-renderer.directive';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AXTextPropertyEditorComponent } from './editors/text-editor/text.editor';\r\nimport { AXNumberBoxPropertyEditorComponent } from './editors/number-editor/number.editor';\r\nimport { AXNumberBoxPropertyEditorModule } from './editors/number-editor/number.module';\r\nimport { AXSelectBoxPropertyEditorComponent } from './editors/selectbox-editor/selectbox.editor';\r\nimport { AXSelectBoxPropertyEditorModule } from './editors/selectbox-editor/selectbox.module';\r\nimport { AXRangePropertyEditorModule } from './editors/range-editor/range.module';\r\nimport { AXRangePropertyEditorComponent } from './editors/range-editor/range.editor';\r\nimport { AXColorPropertyEditorComponent } from './editors/color-editor/color.editor';\r\nimport { AXColorPropertyEditorModule } from './editors/color-editor/color.module';\r\nimport { ColumnPropertyEditorComponent } from './editors/column-editor/column.editor';\r\nimport { AXColumnPropertyEditorModule } from './editors/column-editor/column.module';\r\nimport { AXConditionalColorPropertyEditorComponent } from './editors/conditional-color-editor/conditional-color.editor';\r\nimport { AXConditionalColorPropertyEditorModule } from './editors/conditional-color-editor/conditional-color.module';\r\nimport { AXSwitchPropertyEditorModule } from './editors/switch-editor/number.module';\r\nimport { AXSwitchPropertyEditorComponent } from './editors/switch-editor/number.editor';\r\nimport { AXDatePropertyEditorModule } from './editors/date-editor/date.module';\r\nimport { AXDatePropertyEditorComponent } from './editors/date-editor/date.editor';\r\nimport { AXTimePropertyEditorModule } from './editors/time-editor/time.module';\r\nimport { AXTimePropertyEditorComponent } from './editors/time-editor/time.editor';\r\n\r\n\r\nconst WDIGET_MODULES = [\r\n AXNumberBoxPropertyEditorModule,\r\n AXTextPropertyEditorModule,\r\n AXSelectBoxPropertyEditorModule,\r\n AXRangePropertyEditorModule,\r\n AXColorPropertyEditorModule,\r\n AXConditionalColorPropertyEditorModule,\r\n AXColumnPropertyEditorModule,\r\n AXSwitchPropertyEditorModule,\r\n AXDatePropertyEditorModule,\r\n AXTimePropertyEditorModule\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n WDIGET_MODULES,\r\n RouterModule.forChild([\r\n {\r\n component: AXTextPropertyEditorComponent,\r\n path: 'ax/editors/text'\r\n },\r\n {\r\n component: AXSelectBoxPropertyEditorComponent,\r\n path: 'ax/editors/select'\r\n },\r\n {\r\n component: AXNumberBoxPropertyEditorComponent,\r\n path: 'ax/editors/number'\r\n },\r\n {\r\n component: AXRangePropertyEditorComponent,\r\n path: 'ax/editors/range'\r\n },\r\n {\r\n component: AXConditionalColorPropertyEditorComponent,\r\n path: 'ax/editors/conditional-color'\r\n },\r\n {\r\n component: AXColorPropertyEditorComponent,\r\n path: 'ax/editors/color'\r\n },\r\n {\r\n component: AXSwitchPropertyEditorComponent,\r\n path: 'ax/editors/switch'\r\n },\r\n {\r\n component: ColumnPropertyEditorComponent,\r\n path: 'ax/editors/column'\r\n }, {\r\n component: AXDatePropertyEditorComponent,\r\n path: 'ax/editors/date'\r\n },\r\n {\r\n component: AXTimePropertyEditorComponent,\r\n path: 'ax/editors/time'\r\n },\r\n ])\r\n ],\r\n exports: [AXPropertyEditorRendererDirective],\r\n declarations: [AXPropertyEditorRendererDirective],\r\n providers: [],\r\n})\r\nexport class AXProppertyEditorModule { }\r\n","//import { expressionType } from '@angular/compiler/src/output/output_ast';\r\n\r\n//import { from } from 'rxjs';\r\n\r\nexport * from './lib/base/element.class';\r\nexport * from './lib/base/events.class';\r\nexport * from './lib/base/base-page.class';\r\n\r\nexport * from './lib/button/button.component';\r\nexport * from './lib/button/button.module';\r\n\r\nexport * from './lib/calendar/calendar-box/calendar-box.component';\r\nexport * from './lib/calendar/calendar-box/calendar-box.module';\r\n\r\nexport * from './lib/calendar/scheduler/scheduler-views.property';\r\nexport * from './lib/calendar/scheduler/scheduler.class';\r\nexport * from './lib/calendar/scheduler/scheduler.component';\r\nexport * from './lib/calendar/scheduler/scheduler.module';\r\nexport * from './lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator';\r\nexport * from './lib/calendar/scheduler/toolbars/scheduler-toolbar-views';\r\nexport * from './lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component';\r\nexport * from './lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component';\r\nexport * from './lib/calendar/scheduler/views/month/scheduler-month-view.component';\r\nexport * from './lib/calendar/scheduler/views/scheduler-view.component';\r\nexport * from './lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component';\r\n\r\nexport * from './lib/checkbox/checkbox.component';\r\nexport * from './lib/checkbox/checkbox.module';\r\n\r\nexport * from './lib/context-menu/context-menu.component';\r\nexport * from './lib/context-menu/context-menu.directive';\r\nexport * from './lib/context-menu/context-menu.module';\r\n\r\nexport * from './lib/data-filter/columns/filter-column-date.component';\r\nexport * from './lib/data-filter/columns/filter-column-number.component';\r\nexport * from './lib/data-filter/columns/filter-column-selection.component';\r\nexport * from './lib/data-filter/columns/filter-column-string.component';\r\nexport * from './lib/data-filter/filter-panel/filter-panel.component';\r\nexport * from './lib/data-filter/filter.class';\r\nexport * from './lib/data-filter/filter.module';\r\nexport * from './lib/data-filter/toolbar/filter-toolbar.component';\r\nexport * from './lib/data-list/core/data-list.component';\r\nexport * from './lib/data-list/list/list.component';\r\nexport * from './lib/data-list/list/list.module';\r\nexport * from './lib/data-list/list/toolbar-list-view.component';\r\n\r\nexport * from './lib/data-source/datasource.component';\r\nexport * from './lib/data-source/datasource.module';\r\nexport * from './lib/data-source/read-param';\r\n\r\nexport * from './lib/date-picker/date-picker.component';\r\nexport * from './lib/date-picker/date-picker.module';\r\n\r\nexport * from './lib/dialog/dialog.component';\r\nexport * from './lib/dialog/dialog.module';\r\nexport * from './lib/dialog/dialog.service';\r\n\r\nexport * from './lib/drawer/drawer.component';\r\nexport * from './lib/drawer/drawer.module';\r\n\r\nexport * from './lib/dropdown/dropdown.component';\r\nexport * from './lib/dropdown/dropdown.module';\r\n\r\nexport * from './lib/fieldset/fieldset.component';\r\nexport * from './lib/fieldset/fieldset.module';\r\n\r\nexport * from './lib/form-group/form-group.component';\r\nexport * from './lib/form-group/form-group.module';\r\n\r\nexport * from './lib/label/label.component';\r\nexport * from './lib/label/label.module';\r\n\r\nexport * from './lib/loading/loading-indicator.component';\r\nexport * from './lib/loading/loading-panel.component';\r\nexport * from './lib/loading/loading.module';\r\nexport * from './lib/loading/loading.service';\r\n\r\nexport * from './lib/menu/menu.component';\r\nexport * from './lib/menu/menu-item.component';\r\nexport * from './lib/menu/menu2.component';\r\nexport * from './lib/menu/menu.module';\r\n\r\nexport * from './lib/number-box/number-box.component';\r\nexport * from './lib/number-box/number-box.module';\r\n\r\nexport * from './lib/page/content.component';\r\nexport * from './lib/page/footer.component';\r\nexport * from './lib/page/page.component';\r\nexport * from './lib/page/page.module';\r\n\r\nexport * from './lib/panel-box/panel-box.component';\r\nexport * from './lib/panel-box/panel-box.module';\r\n\r\nexport * from './lib/password-box/password-box.component';\r\nexport * from './lib/password-box/password-box.module';\r\n\r\nexport * from './lib/popover/popover.component';\r\nexport * from './lib/popover/popover.module';\r\nexport * from './lib/popover/overlay.service';\r\n\r\n\r\nexport * from './lib/popup/popup.component';\r\nexport * from './lib/popup/popup.module';\r\nexport * from './lib/popup/popup.service';\r\n\r\nexport * from './lib/progress-bar/progress-bar.component';\r\nexport * from './lib/progress-bar/progress-bar.module';\r\n\r\nexport * from './lib/query-builder/query-builder.component';\r\nexport * from './lib/query-builder/query-builder.module';\r\nexport * from './lib/query-builder/query-builder.service';\r\nexport * from './lib/query-builder/query-builder.class';\r\n\r\nexport * from './lib/searchbox/searchbox.component';\r\nexport * from './lib/searchbox/searchbox.module';\r\n\r\n\r\nexport * from './lib/selectbox/selectbox.component';\r\nexport * from './lib/selectbox/selectbox2.component';\r\nexport * from './lib/selectbox/selectbox.module';\r\n\r\n\r\nexport * from './lib/selection-list/selection-list.component';\r\nexport * from './lib/selection-list/selection-list.module';\r\n\r\nexport * from './lib/switch/switch.component';\r\nexport * from './lib/switch/switch.module';\r\n\r\nexport * from './lib/tab-page/tab-page-Renderer.component';\r\nexport * from './lib/tab-page/tab-page-host.component';\r\nexport * from './lib/tab-page/tab-page.module';\r\nexport * from './lib/tab-page/tab-page.service';\r\n\r\nexport * from './lib/tab-strip/tab-strip.component';\r\nexport * from './lib/tab-strip/tab-strip.module';\r\n\r\nexport * from './lib/tab-view/dynamic-tabs.directive';\r\nexport * from './lib/tab-view/tab-view.component';\r\nexport * from './lib/tab-view/tab-view.module';\r\nexport * from './lib/tab-view/tab.component';\r\n\r\nexport * from './lib/textarea/textarea.component';\r\nexport * from './lib/textarea/textarea.module';\r\n\r\nexport * from './lib/textbox/textbox.component';\r\nexport * from './lib/textbox/textbox.module';\r\n\r\nexport * from './lib/time-picker/time-picker.component';\r\nexport * from './lib/time-picker/time-picker.module';\r\n\r\nexport * from './lib/toast/toast-message/toast-message.component';\r\nexport * from './lib/toast/toast-wrapper/toast-wrapper.component';\r\nexport * from './lib/toast/toast.module';\r\nexport * from './lib/toast/toast.service';\r\n\r\nexport * from './lib/toolbar/group-button/toolbar-group-button.component';\r\nexport * from './lib/toolbar/menu/toolbar-menu.component';\r\nexport * from './lib/toolbar/search/toolbar-search.component';\r\nexport * from './lib/toolbar/title/toolbar-title.component';\r\nexport * from './lib/toolbar/toolbar-item';\r\nexport * from './lib/toolbar/toolbar.component';\r\nexport * from './lib/toolbar/toolbar.module';\r\n\r\nexport * from './lib/tooltip/tooltip.directive';\r\nexport * from './lib/tooltip/tooltip.module';\r\n\r\nexport * from './lib/tree-side-menu/tree-side-menu.component'\r\nexport * from './lib/tree-side-menu/tree-side-menu.module'\r\n\r\n\r\nexport * from './lib/tree-view/tree-view.component';\r\nexport * from './lib/tree-view/tree-view.module';\r\n\r\nexport * from './lib/upload-file/upload-file.component';\r\nexport * from './lib/upload-file/upload-file.events';\r\nexport * from './lib/upload-file/upload-file.module';\r\n\r\nexport * from './lib/accordion/accordion.component';\r\nexport * from './lib/accordion/accordion.module';\r\n\r\nexport * from './lib/validation/validation-form.component';\r\nexport * from './lib/validation/validation-rule.widget';\r\nexport * from './lib/validation/validation.class';\r\nexport * from './lib/validation/validation.component';\r\nexport * from './lib/validation/validation.module';\r\n\r\n\r\n\r\n\r\nexport * from './lib/property-editor/property-editor.class';\r\nexport * from './lib/property-editor/property-editor-renderer.directive';\r\nexport * from './lib/property-editor/property-editor.module';\r\nexport * from './lib/property-editor/editors/text-editor/text.editor';\r\nexport * from './lib/property-editor/editors/text-editor/text.module';\r\nexport * from './lib/property-editor/editors/selectbox-editor/selectbox.editor';\r\nexport * from './lib/property-editor/editors/selectbox-editor/selectbox.module';\r\nexport * from './lib/property-editor/editors/range-editor/range.editor';\r\nexport * from './lib/property-editor/editors/range-editor/range.module';\r\nexport * from './lib/property-editor/editors/color-editor/color.editor';\r\nexport * from './lib/property-editor/editors/color-editor/color.module';\r\nexport * from './lib/property-editor/editors/conditional-color-editor/conditional-color.editor';\r\nexport * from './lib/property-editor/editors/conditional-color-editor/conditional-color.module';\r\n\r\n\r\n\r\nexport * from './lib/color-picker/color-box/color-box.component';\r\nexport * from './lib/color-picker/color-picker.component';\r\nexport * from './lib/color-picker/color-picker.module';\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {DynamicOverlay as ɵb,DynamicOverlayContainer as ɵa} from './lib/popover/custom-cdk-overlay.service';\nexport {ColumnPropertyEditorComponent as ɵi} from './lib/property-editor/editors/column-editor/column.editor';\nexport {AXColumnPropertyEditorModule as ɵh} from './lib/property-editor/editors/column-editor/column.module';\nexport {AXDatePropertyEditorComponent as ɵm} from './lib/property-editor/editors/date-editor/date.editor';\nexport {AXDatePropertyEditorModule as ɵl} from './lib/property-editor/editors/date-editor/date.module';\nexport {AXNumberBoxPropertyEditorComponent as ɵg} from './lib/property-editor/editors/number-editor/number.editor';\nexport {AXNumberBoxPropertyEditorModule as ɵf} from './lib/property-editor/editors/number-editor/number.module';\nexport {AXSwitchPropertyEditorComponent as ɵk} from './lib/property-editor/editors/switch-editor/number.editor';\nexport {AXSwitchPropertyEditorModule as ɵj} from './lib/property-editor/editors/switch-editor/number.module';\nexport {AXTimePropertyEditorComponent as ɵo} from './lib/property-editor/editors/time-editor/time.editor';\nexport {AXTimePropertyEditorModule as ɵn} from './lib/property-editor/editors/time-editor/time.module';\nexport {AXQueryBuilderGroupComponent as ɵc} from './lib/query-builder/query-builder-group.component';\nexport {AXQueryBuilderPopupComponent as ɵe} from './lib/query-builder/query-builder-popup/query-builder-popup.component';\nexport {AXQueryBuilderRuleComponent as ɵd} from './lib/query-builder/query-builder-rule.component';"],"names":["COMPONENT","MODULES","COMPONENTS"],"mappings":"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lB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;;YAED;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;;YAED;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;;YAED;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;;;;;;;;;;;YAWD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;;YAED;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;;YAGD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;;YAED;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IA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"}
|
|
1
|
+
{"version":3,"file":"acorex-components.js","sources":["ng://@acorex/components/lib/validation/validation-rule.widget.ts","ng://@acorex/components/lib/validation/validation.component.ts","ng://@acorex/components/lib/base/events.class.ts","ng://@acorex/components/lib/base/element.class.ts","ng://@acorex/components/lib/popover/custom-cdk-overlay.service.ts","ng://@acorex/components/lib/popover/overlay.service.ts","ng://@acorex/components/lib/loading/loading-indicator.component.ts","ng://@acorex/components/lib/loading/loading.service.ts","ng://@acorex/components/lib/page/page.component.ts","ng://@acorex/components/lib/base/base-page.class.ts","ng://@acorex/components/lib/button/button.component.ts","ng://@acorex/components/lib/button/button.module.ts","ng://@acorex/components/lib/calendar/calendar-box/calendar-box.component.ts","ng://@acorex/components/lib/popover/popover.component.ts","ng://@acorex/components/lib/popover/popover.module.ts","ng://@acorex/components/lib/calendar/calendar-box/calendar-box.module.ts","ng://@acorex/components/lib/calendar/scheduler/scheduler-views.property.ts","ng://@acorex/components/lib/calendar/scheduler/scheduler.class.ts","ng://@acorex/components/lib/toolbar/toolbar-item.ts","ng://@acorex/components/lib/menu/menu.component.ts","ng://@acorex/components/lib/toolbar/menu/toolbar-menu.component.ts","ng://@acorex/components/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.ts","ng://@acorex/components/lib/calendar/scheduler/views/scheduler-view.component.ts","ng://@acorex/components/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.ts","ng://@acorex/components/lib/calendar/scheduler/views/month/scheduler-month-view.component.ts","ng://@acorex/components/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.ts","ng://@acorex/components/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.ts","ng://@acorex/components/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.ts","ng://@acorex/components/lib/toolbar/search/toolbar-search.component.ts","ng://@acorex/components/lib/data-source/read-param.ts","ng://@acorex/components/lib/data-source/datasource.component.ts","ng://@acorex/components/lib/calendar/scheduler/scheduler.component.ts","ng://@acorex/components/lib/toolbar/toolbar.component.ts","ng://@acorex/components/lib/toolbar/title/toolbar-title.component.ts","ng://@acorex/components/lib/toolbar/group-button/toolbar-group-button.component.ts","ng://@acorex/components/lib/menu/menu2.component.ts","ng://@acorex/components/lib/menu/menu-item.component.ts","ng://@acorex/components/lib/menu/menu.module.ts","ng://@acorex/components/lib/toolbar/toolbar.module.ts","ng://@acorex/components/lib/calendar/scheduler/scheduler.module.ts","ng://@acorex/components/lib/checkbox/checkbox.component.ts","ng://@acorex/components/lib/checkbox/checkbox.module.ts","ng://@acorex/components/lib/context-menu/context-menu.component.ts","ng://@acorex/components/lib/context-menu/context-menu.directive.ts","ng://@acorex/components/lib/context-menu/context-menu.module.ts","ng://@acorex/components/lib/data-filter/filter.class.ts","ng://@acorex/components/lib/selection-list/selection-list.component.ts","ng://@acorex/components/lib/data-filter/columns/filter-column-date.component.ts","ng://@acorex/components/lib/data-filter/columns/filter-column-number.component.ts","ng://@acorex/components/lib/data-filter/columns/filter-column-selection.component.ts","ng://@acorex/components/lib/data-filter/columns/filter-column-string.component.ts","ng://@acorex/components/lib/textbox/textbox.component.ts","ng://@acorex/components/lib/toast/toast-wrapper/toast-wrapper.component.ts","ng://@acorex/components/lib/toast/toast-message/toast-message.component.ts","ng://@acorex/components/lib/toast/toast.service.ts","ng://@acorex/components/lib/data-filter/filter-panel/filter-panel.component.ts","ng://@acorex/components/lib/data-filter/toolbar/filter-toolbar.component.ts","ng://@acorex/components/lib/panel-box/panel-box.component.ts","ng://@acorex/components/lib/panel-box/panel-box.module.ts","ng://@acorex/components/lib/dropdown/dropdown.component.ts","ng://@acorex/components/lib/date-picker/date-picker.component.ts","ng://@acorex/components/lib/form-group/form-group.component.ts","ng://@acorex/components/lib/form-group/form-group.module.ts","ng://@acorex/components/lib/textbox/textbox.module.ts","ng://@acorex/components/lib/dropdown/dropdown.module.ts","ng://@acorex/components/lib/date-picker/date-picker.module.ts","ng://@acorex/components/lib/toast/toast.module.ts","ng://@acorex/components/lib/selection-list/selection-list.module.ts","ng://@acorex/components/lib/validation/validation-form.component.ts","ng://@acorex/components/lib/validation/validation.module.ts","ng://@acorex/components/lib/data-filter/filter.module.ts","ng://@acorex/components/lib/data-list/core/data-list.component.ts","ng://@acorex/components/lib/data-list/list/toolbar-list-view.component.ts","ng://@acorex/components/lib/data-list/list/list.component.ts","ng://@acorex/components/lib/data-source/datasource.module.ts","ng://@acorex/components/lib/data-list/list/list.module.ts","ng://@acorex/components/lib/dialog/dialog.component.ts","ng://@acorex/components/lib/dialog/dialog.module.ts","ng://@acorex/components/lib/popup/popup.component.ts","ng://@acorex/components/lib/popup/popup.service.ts","ng://@acorex/components/lib/dialog/dialog.service.ts","ng://@acorex/components/lib/drawer/drawer.component.ts","ng://@acorex/components/lib/drawer/drawer.module.ts","ng://@acorex/components/lib/fieldset/fieldset.component.ts","ng://@acorex/components/lib/fieldset/fieldset.module.ts","ng://@acorex/components/lib/label/label.component.ts","ng://@acorex/components/lib/label/label.module.ts","ng://@acorex/components/lib/loading/loading-panel.component.ts","ng://@acorex/components/lib/loading/loading.module.ts","ng://@acorex/components/lib/number-box/number-box.component.ts","ng://@acorex/components/lib/number-box/number-box.module.ts","ng://@acorex/components/lib/page/content.component.ts","ng://@acorex/components/lib/page/footer.component.ts","ng://@acorex/components/lib/page/page.module.ts","ng://@acorex/components/lib/password-box/password-box.component.ts","ng://@acorex/components/lib/password-box/password-box.module.ts","ng://@acorex/components/lib/popup/popup.module.ts","ng://@acorex/components/lib/progress-bar/progress-bar.component.ts","ng://@acorex/components/lib/progress-bar/progress-bar.module.ts","ng://@acorex/components/lib/query-builder/query-builder.class.ts","ng://@acorex/components/lib/searchbox/searchbox.component.ts","ng://@acorex/components/lib/selectbox/selectbox.component.ts","ng://@acorex/components/lib/query-builder/query-builder-rule.component.ts","ng://@acorex/components/lib/query-builder/query-builder-popup/query-builder-popup.component.ts","ng://@acorex/components/lib/query-builder/query-builder.service.ts","ng://@acorex/components/lib/query-builder/query-builder-group.component.ts","ng://@acorex/components/lib/query-builder/query-builder.component.ts","ng://@acorex/components/lib/searchbox/searchbox.module.ts","ng://@acorex/components/lib/selectbox/selectbox2.component.ts","ng://@acorex/components/lib/selectbox/selectbox.module.ts","ng://@acorex/components/lib/query-builder/query-builder.module.ts","ng://@acorex/components/lib/switch/switch.component.ts","ng://@acorex/components/lib/switch/switch.module.ts","ng://@acorex/components/lib/tab-page/tab-page.service.ts","ng://@acorex/components/lib/tab-page/tab-page-host.component.ts","ng://@acorex/components/lib/tab-page/tab-page-Renderer.component.ts","ng://@acorex/components/lib/tab-page/tab-page.module.ts","ng://@acorex/components/lib/tab-strip/tab-strip.component.ts","ng://@acorex/components/lib/tab-strip/tab-strip.module.ts","ng://@acorex/components/lib/tab-view/dynamic-tabs.directive.ts","ng://@acorex/components/lib/tab-view/tab.component.ts","ng://@acorex/components/lib/tab-view/tab-view.component.ts","ng://@acorex/components/lib/tab-view/tab-view.module.ts","ng://@acorex/components/lib/textarea/textarea.component.ts","ng://@acorex/components/lib/textarea/textarea.module.ts","ng://@acorex/components/lib/time-picker/time-picker.component.ts","ng://@acorex/components/lib/time-picker/time-picker.module.ts","ng://@acorex/components/lib/tooltip/tooltip.directive.ts","ng://@acorex/components/lib/tooltip/tooltip.module.ts","ng://@acorex/components/lib/tree-side-menu/tree-side-menu.component.ts","ng://@acorex/components/lib/tree-side-menu/tree-side-menu.module.ts","ng://@acorex/components/lib/tree-view/tree-view.component.ts","ng://@acorex/components/lib/tree-view/tree-view.module.ts","ng://@acorex/components/lib/upload-file/upload-file.component.ts","ng://@acorex/components/lib/upload-file/upload-file.module.ts","ng://@acorex/components/lib/accordion/accordion.component.ts","ng://@acorex/components/lib/accordion/accordion.module.ts","ng://@acorex/components/lib/property-editor/property-editor.class.ts","ng://@acorex/components/lib/property-editor/property-editor-renderer.directive.ts","ng://@acorex/components/lib/property-editor/editors/text-editor/text.editor.ts","ng://@acorex/components/lib/property-editor/editors/text-editor/text.module.ts","ng://@acorex/components/lib/property-editor/editors/number-editor/number.editor.ts","ng://@acorex/components/lib/property-editor/editors/number-editor/number.module.ts","ng://@acorex/components/lib/property-editor/editors/selectbox-editor/selectbox.editor.ts","ng://@acorex/components/lib/property-editor/editors/selectbox-editor/selectbox.module.ts","ng://@acorex/components/lib/property-editor/editors/range-editor/range.editor.ts","ng://@acorex/components/lib/color-picker/color-box/color-box.component.ts","ng://@acorex/components/lib/color-picker/color-picker.component.ts","ng://@acorex/components/lib/color-picker/color-picker.module.ts","ng://@acorex/components/lib/property-editor/editors/range-editor/range.module.ts","ng://@acorex/components/lib/property-editor/editors/color-editor/color.editor.ts","ng://@acorex/components/lib/property-editor/editors/color-editor/color.module.ts","ng://@acorex/components/lib/property-editor/editors/column-editor/column.editor.ts","ng://@acorex/components/lib/property-editor/editors/column-editor/column.module.ts","ng://@acorex/components/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.ts","ng://@acorex/components/lib/property-editor/editors/conditional-color-editor/conditional-color.module.ts","ng://@acorex/components/lib/property-editor/editors/switch-editor/number.editor.ts","ng://@acorex/components/lib/property-editor/editors/switch-editor/number.module.ts","ng://@acorex/components/lib/property-editor/editors/date-editor/date.editor.ts","ng://@acorex/components/lib/property-editor/editors/date-editor/date.module.ts","ng://@acorex/components/lib/property-editor/editors/time-editor/time.editor.ts","ng://@acorex/components/lib/property-editor/editors/time-editor/time.module.ts","ng://@acorex/components/lib/property-editor/property-editor.module.ts","ng://@acorex/components/public-api.ts","ng://@acorex/components/acorex-components.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\r\nimport { AXValidationRuleResult, AXValidationRule, AXValidationRuleTypes } from './validation.class';\r\nimport { AXTranslator } from '@acorex/core';\r\n\r\n\r\n// @dynamic\r\nexport class AXValidationRules {\r\n private static registredRules: { name: string, rule: AXValidationRule }[] = [];\r\n\r\n public static addRule(name: string, rule: AXValidationRule) {\r\n const exists = AXValidationRules.get(name);\r\n if (exists) {\r\n exists.rule = rule;\r\n }\r\n else {\r\n AXValidationRules.registredRules.push({\r\n name,\r\n rule\r\n });\r\n }\r\n }\r\n\r\n public static get(name: string) {\r\n return this.registredRules.find(c => c.name === name);\r\n }\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'ax-validation-rule',\r\n template: ''\r\n})\r\nexport class AXValidationRuleComponent implements AXValidationRule {\r\n @Input()\r\n type: AXValidationRuleTypes = 'required';\r\n @Input()\r\n message: string;\r\n @Input()\r\n value: any;\r\n\r\n @Input()\r\n enabled: boolean = true;\r\n\r\n validate(value: any): Promise<AXValidationRuleResult> {\r\n if (this.enabled === false) {\r\n return Promise.resolve({ result: true });\r\n }\r\n const regRule = AXValidationRules.get(this.type);\r\n if (regRule) {\r\n return this.internalValidate(regRule.rule.type, value, this.message || regRule.rule.message, regRule.rule.value);\r\n }\r\n else {\r\n return this.internalValidate(this.type, value, this.message, this.value);\r\n }\r\n }\r\n\r\n\r\n private internalValidate(type: string, value?: any, message?: string, ruleValue?: any): Promise<AXValidationRuleResult> {\r\n return new Promise<AXValidationRuleResult>(resolve => {\r\n switch (type) {\r\n case 'required':\r\n resolve({\r\n message: message || AXTranslator.get('validation.messages.required'),\r\n result: value != null && value != '' && (!Array.isArray(value) || (Array.isArray(value) && value.length > 0))\r\n });\r\n break;\r\n case 'regex':\r\n const ex = new RegExp(ruleValue);\r\n resolve({\r\n message: message || AXTranslator.get('validation.messages.regex'),\r\n result: ex.test(value)\r\n });\r\n break;\r\n case 'custom':\r\n case 'callback':\r\n if (typeof ruleValue === 'function') {\r\n const res: any = {};\r\n res.message = message;\r\n const val = ruleValue({ value, message });\r\n if (val instanceof Promise) {\r\n val.then(c => {\r\n res.result = c;\r\n }).catch(c => {\r\n res.result = false;\r\n }).finally(() => {\r\n resolve(res);\r\n });\r\n }\r\n else {\r\n res.result = val;\r\n resolve(res);\r\n }\r\n }\r\n else {\r\n resolve({ result: true });\r\n }\r\n break;\r\n default:\r\n resolve({ result: true });\r\n }\r\n });\r\n }\r\n}\r\n","import { Component, ContentChildren, QueryList, Input, Output, EventEmitter } from '@angular/core';\r\nimport { AXValidationRuleComponent } from './validation-rule.widget';\r\nimport { AXValidationRule, AXValidationRuleResult } from './validation.class';\r\n\r\n\r\n\r\nexport class AXValidation {\r\n\r\n rules: AXValidationRule[] = [];\r\n validateOn: 'blur' | 'change' | 'submit' = 'submit';\r\n showMessage: boolean;\r\n\r\n validate(value: any): Promise<AXValidationRuleResult> {\r\n if (!this.rules || this.rules.length === 0) {\r\n return Promise.resolve({ result: true });\r\n }\r\n return new Promise<AXValidationRuleResult>(resolve => {\r\n Promise.all(\r\n this.rules.map(c => {\r\n if (c instanceof AXValidationRuleComponent) {\r\n return c.validate(value);\r\n }\r\n else {\r\n const v = new AXValidationRuleComponent();\r\n Object.assign(v, c);\r\n return v.validate(value);\r\n }\r\n })\r\n ).then(d => {\r\n const error = d.find(c => c.result === false);\r\n if (error) {\r\n resolve(error);\r\n } else {\r\n resolve({ result: true });\r\n }\r\n });\r\n });\r\n }\r\n\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'ax-validation',\r\n template: '<ng-content></ng-content>',\r\n providers: [{ provide: AXValidation, useExisting: AXValidationComponent }]\r\n})\r\nexport class AXValidationComponent extends AXValidation {\r\n\r\n @ContentChildren(AXValidationRuleComponent)\r\n private contentItems: QueryList<AXValidationRuleComponent>;\r\n\r\n\r\n @Output()\r\n rulesChange: EventEmitter<AXValidationRule[]> = new EventEmitter<AXValidationRule[]>();\r\n\r\n @Output()\r\n showMessage: boolean = true;\r\n\r\n private _rules: AXValidationRule[];\r\n\r\n @Input()\r\n public get rules(): AXValidationRule[] {\r\n return this._rules;\r\n }\r\n public set rules(v: AXValidationRule[]) {\r\n this._rules = v;\r\n if (this.rulesChange) {\r\n this.rulesChange.emit(v);\r\n }\r\n }\r\n\r\n @Input()\r\n validateOn: 'blur' | 'change' | 'submit' = null;\r\n\r\n\r\n ngAfterContentInit() {\r\n if (this.rules && this.rules.length === 0) {\r\n this.rules.push(...this.contentItems.toArray());\r\n }\r\n }\r\n}\r\n","export class AXBaseEvent {\r\n component: any;\r\n htmlElement?: HTMLElement;\r\n}\r\n\r\nexport class AXHtmlEvent<E extends Event> extends AXBaseEvent {\r\n\r\n htmlEvent?: E;\r\n}\r\n\r\nexport class AXValueEvent<T> extends AXBaseEvent {\r\n value?: T;\r\n oldValue?: T;\r\n}\r\n\r\nexport class AXDataEvent<T> extends AXBaseEvent {\r\n data?: T;\r\n}\r\n\r\nexport class AXEvent<T, E extends Event>\r\n{\r\n\r\n}\r\nexport interface AXEvent<T, E extends Event> extends AXDataEvent<T>, AXHtmlEvent<E> {\r\n\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Input, Output, EventEmitter, ChangeDetectorRef, ViewChild, ElementRef, ContentChild } from '@angular/core';\r\nimport { AXValidationComponent, AXValidation } from '../validation/validation.component';\r\nimport { AXValidationRuleResult } from '../validation/validation.class';\r\nimport { AXHtmlUtil } from '@acorex/core';\r\nimport { AXEvent, AXHtmlEvent, AXValueEvent } from './events.class';\r\n\r\nexport type AXElementSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\r\n\r\nexport abstract class AXBaseComponent {\r\n uid: string = AXHtmlUtil.getUID();\r\n constructor() {\r\n }\r\n}\r\n\r\n\r\nexport class AXBaseInputChangeEvent extends AXValueEvent<any> {\r\n isUserChange?: boolean;\r\n}\r\n\r\nexport interface AXBaseSizableComponent {\r\n size: AXElementSize;\r\n}\r\n\r\nexport interface AXBaseInteractiveComponent {\r\n disabled: boolean;\r\n tabIndex: number;\r\n}\r\n\r\nexport interface AXBaseInputComponent extends AXBaseInteractiveComponent {\r\n readonly: boolean;\r\n focus(): void;\r\n}\r\n\r\n\r\nexport interface AXBaseValueComponent<T> extends AXBaseInputComponent {\r\n onValueChanged?: EventEmitter<AXValueEvent<T>>;\r\n valueChange?: EventEmitter<T>;\r\n value: T;\r\n}\r\n\r\nexport interface AXBaseClickableComponent extends AXBaseInteractiveComponent {\r\n click: EventEmitter<AXHtmlEvent<MouseEvent>>;\r\n}\r\n\r\nexport abstract class AXValidatableComponent extends AXBaseComponent {\r\n\r\n private __valueField: string = 'value';\r\n private __nativeElement: HTMLElement;\r\n private __validation: AXValidation;\r\n\r\n\r\n @Input()\r\n tabIndex: number = 0;\r\n\r\n protected initValidation(\r\n elementRef: ElementRef,\r\n valueField: string,\r\n validation: AXValidation\r\n ) {\r\n this.__nativeElement = elementRef.nativeElement;\r\n this.__valueField = valueField;\r\n this.__validation = validation;\r\n }\r\n\r\n get validation() {\r\n return this.__validation;\r\n }\r\n\r\n validate(): Promise<AXValidationRuleResult> {\r\n if (this.__validation !== undefined) {\r\n const result = this.__validation.validate(this[this.__valueField]);\r\n result.then(c => {\r\n if (c.result) {\r\n this.clearValidationStyle(this.__nativeElement);\r\n }\r\n else {\r\n this.applyValidationStyle(this.__nativeElement, c);\r\n }\r\n });\r\n return result;\r\n }\r\n else {\r\n return Promise.resolve({ result: true });\r\n }\r\n }\r\n\r\n\r\n protected clearValidationStyle(element: HTMLElement) {\r\n const formGroup = element.closest('.form-group');\r\n const formItem = formGroup?.querySelector('.form-item') || element.closest('.form-item') || element.querySelector('.form-item');;\r\n const label = formGroup?.querySelector('.form-group-label');\r\n const parent = formItem?.parentElement || element.parentElement;\r\n formItem?.classList.remove('error');\r\n label?.classList.remove('error-text');\r\n if (parent.querySelector('span.error-text')) {\r\n parent.removeChild(parent.querySelector('span.error-text'));\r\n }\r\n }\r\n\r\n protected applyValidationStyle(element: HTMLElement, v: AXValidationRuleResult): void {\r\n const formGroup = element.closest('.form-group');\r\n const formItem = formGroup?.querySelector('.form-item') || element.closest('.form-item') || element.querySelector('.form-item');\r\n const label = formGroup?.querySelector('.form-group-label');\r\n const parent = formItem?.parentElement || element.parentElement;\r\n formItem?.classList.add('error');\r\n if (parent.querySelector('span.error-text')) {\r\n parent.removeChild(parent.querySelector('span.error-text'));\r\n }\r\n if (this.__validation.showMessage) {\r\n const span = document.createElement('span');\r\n span.innerText = v.message;\r\n span.classList.add('ax', 'error-text');\r\n parent.appendChild(span);\r\n }\r\n label?.classList.add('error-text');\r\n }\r\n}\r\n\r\n\r\n\r\n\r\nexport abstract class AXBaseTextComponent extends AXValidatableComponent implements AXBaseSizableComponent, AXBaseValueComponent<string> {\r\n\r\n ngAfterViewInit() {\r\n if (this.input) {\r\n this.input.nativeElement.onkeyup = (e) => {\r\n this.userChange=true;\r\n this.value = (e.target as any).value;\r\n this.onkey.emit(e);\r\n };\r\n this.input.nativeElement.onkeydown = (e) => {\r\n this.userChange=true;\r\n\r\n this.value = (e.target as any).value;\r\n this.onkey.emit(e);\r\n };\r\n this.input.nativeElement.onkeypress = (e) => {\r\n this.userChange=true;\r\n\r\n this.value = (e.target as any).value;\r\n this.onkey.emit(e);\r\n };\r\n }\r\n }\r\n\r\n\r\n ngAfterContentInit(): void {\r\n this.initValidation(this.ref, 'value', this.validation);\r\n }\r\n\r\n\r\n @Input()\r\n tabIndex: number = 0;\r\n\r\n @ViewChild('input', { static: true })\r\n @ContentChild('input', { static: true })\r\n input: ElementRef<HTMLInputElement>;\r\n\r\n @ContentChild(AXValidation, { static: true })\r\n private _contentValidation: AXValidation;\r\n\r\n private _validation: AXValidation;\r\n\r\n @Input()\r\n public get validation(): AXValidation {\r\n return this._validation ? this._validation : this._contentValidation;\r\n }\r\n\r\n public set validation(v: AXValidation) {\r\n this._validation = v;\r\n this.initValidation(this.ref, 'value', v);\r\n }\r\n\r\n\r\n @Input()\r\n disabled: boolean = false;\r\n\r\n @Input()\r\n readonly: boolean = false;\r\n\r\n @Input()\r\n textAlign: 'right' | 'left' | null = null;\r\n\r\n @Input()\r\n size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'md';\r\n\r\n @Input()\r\n placeholder: string;\r\n\r\n userChange:boolean =false;\r\n\r\n constructor(protected cdr: ChangeDetectorRef, protected ref: ElementRef) {\r\n super();\r\n }\r\n\r\n @Output()\r\n public onkey: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\r\n\r\n @Output()\r\n public onBlur: EventEmitter<AXHtmlEvent<Event>> = new EventEmitter<AXHtmlEvent<Event>>();\r\n\r\n @Output()\r\n public onFocus: EventEmitter<AXHtmlEvent<Event>> = new EventEmitter<AXHtmlEvent<Event>>();\r\n\r\n @Output()\r\n public onValueChanged: EventEmitter<AXBaseInputChangeEvent> = new EventEmitter<AXBaseInputChangeEvent>();\r\n\r\n @Output()\r\n valueChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n\r\n @Input()\r\n icon: string = '';\r\n\r\n @Input()\r\n allowClear: boolean = false;\r\n\r\n private _value: string;\r\n @Input()\r\n public get value(): string {\r\n return this._value;\r\n }\r\n public set value(v: string) {\r\n if (v !== this._value) {\r\n const old = this._value;\r\n this._value = v;\r\n\r\n this.valueChange.emit(v);\r\n this.onValueChanged.emit({\r\n component: this,\r\n value: v,\r\n oldValue: old,\r\n isUserChange: this.userChange\r\n });\r\n this.userChange=false;\r\n this.clearValidationStyle(this.input.nativeElement);\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n focus() {\r\n this.input.nativeElement.focus();\r\n }\r\n\r\n clear() {\r\n this.userChange=true;\r\n\r\n this.value = null;\r\n this.input.nativeElement.value = null;\r\n }\r\n\r\n isFocused(): boolean {\r\n return this.input.nativeElement === document.activeElement;\r\n }\r\n\r\n setTextAlign() {\r\n if (this.textAlign === 'left') {\r\n return 'text-left';\r\n }\r\n if (this.textAlign === 'right') {\r\n return 'text-right';\r\n }\r\n }\r\n\r\n handleInputBlur(e: Event) {\r\n this.onBlur.emit({\r\n component: this,\r\n htmlElement: this.ref.nativeElement,\r\n htmlEvent: e\r\n });\r\n }\r\n\r\n handleInputFocus(e: Event) {\r\n this.onFocus.emit({\r\n component: this,\r\n htmlElement: this.ref.nativeElement,\r\n htmlEvent: e\r\n });\r\n }\r\n}\r\n\r\nexport abstract class AXBaseButtonComponent extends AXBaseComponent implements AXBaseClickableComponent, AXBaseSizableComponent {\r\n\r\n @Input()\r\n disabled: boolean;\r\n\r\n @Output()\r\n click: EventEmitter<AXHtmlEvent<MouseEvent>> = new EventEmitter<AXHtmlEvent<MouseEvent>>();\r\n\r\n @Input()\r\n size: AXElementSize;\r\n\r\n @Input()\r\n tabIndex: number = 0;\r\n\r\n}\r\n\r\nexport abstract class AXBaseDropdownComponent extends AXBaseComponent implements AXBaseInteractiveComponent, AXBaseSizableComponent {\r\n\r\n @Input()\r\n disabled: boolean;\r\n\r\n @Input()\r\n size: AXElementSize;\r\n\r\n @Input()\r\n fitParent: boolean = true;\r\n\r\n @Input()\r\n tabIndex: number = 0;\r\n\r\n @Input()\r\n showDropDownButton: boolean = true;\r\n\r\n abstract close();\r\n abstract open();\r\n}\r\n","import {\r\n Overlay,\r\n OverlayKeyboardDispatcher,\r\n OverlayPositionBuilder,\r\n ScrollStrategyOptions,\r\n OverlayContainer,\r\n OverlayRef,\r\n OverlayConfig\r\n} from '@angular/cdk/overlay';\r\nimport {\r\n ComponentFactoryResolver,\r\n Inject,\r\n Injector,\r\n NgZone,\r\n Renderer2,\r\n RendererFactory2,\r\n Injectable\r\n} from '@angular/core';\r\nimport { Directionality } from '@angular/cdk/bidi';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DynamicOverlayContainer extends OverlayContainer {\r\n public setContainerElement(containerElement: HTMLElement): void {\r\n this._containerElement = containerElement;\r\n }\r\n}\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DynamicOverlay extends Overlay {\r\n private readonly _dynamicOverlayContainer: DynamicOverlayContainer;\r\n private renderer: Renderer2;\r\n\r\n constructor(\r\n scrollStrategies: ScrollStrategyOptions,\r\n _overlayContainer: DynamicOverlayContainer,\r\n _componentFactoryResolver: ComponentFactoryResolver,\r\n _positionBuilder: OverlayPositionBuilder,\r\n _keyboardDispatcher: OverlayKeyboardDispatcher,\r\n _injector: Injector,\r\n _ngZone: NgZone,\r\n @Inject(DOCUMENT) _document: any,\r\n _directionality: Directionality,\r\n rendererFactory: RendererFactory2\r\n ) {\r\n super(\r\n scrollStrategies,\r\n _overlayContainer,\r\n _componentFactoryResolver,\r\n _positionBuilder,\r\n _keyboardDispatcher,\r\n _injector,\r\n _ngZone,\r\n _document,\r\n _directionality\r\n );\r\n this.renderer = rendererFactory.createRenderer(null, null);\r\n\r\n this._dynamicOverlayContainer = _overlayContainer;\r\n }\r\n\r\n private setContainerElement(containerElement: HTMLElement): void {\r\n this.renderer.setStyle(containerElement, 'transform', 'translateZ(0)');\r\n this._dynamicOverlayContainer.setContainerElement(containerElement);\r\n }\r\n\r\n public createOn(containerElement: HTMLElement, config?: OverlayConfig): OverlayRef {\r\n this.setContainerElement(containerElement);\r\n return super.create(config);\r\n }\r\n}","import { Injectable, ApplicationRef, ViewContainerRef, TemplateRef, EventEmitter } from '@angular/core';\r\nimport { Overlay, PositionStrategy, ScrollStrategy } from '@angular/cdk/overlay';\r\nimport { TemplatePortal, Portal, ComponentPortal } from '@angular/cdk/portal';\r\nimport { AXConnectedPosition } from '@acorex/core';\r\nimport { merge } from 'rxjs';\r\nimport { DynamicOverlay } from './custom-cdk-overlay.service';\r\n\r\nexport interface AXOverlayViewRef {\r\n instance: any;\r\n dispose: () => void;\r\n}\r\n\r\nexport interface AXOverlayConfigs {\r\n position?: AXConnectedPosition | AXConnectedPosition[];\r\n hasBackdrop?: boolean;\r\n transparentBackdrop?: boolean;\r\n closeOnClickOutside?: boolean;\r\n targetElement?: HTMLElement;\r\n containerElement?: HTMLElement;\r\n onBackdropClick?: () => void;\r\n panelClass?: string[] | string;\r\n backdropClass?: string[] | string;\r\n scroll?: 'auto' | 'block';\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXOverlayService {\r\n constructor(\r\n private overlayService: DynamicOverlay,\r\n private overlayService2: Overlay,\r\n private appRef: ApplicationRef) {\r\n\r\n }\r\n\r\n show(content: any, context?: any, configs?: AXOverlayConfigs): AXOverlayViewRef {\r\n configs = Object.assign({\r\n hasBackdrop: true,\r\n transparentBackdrop: true,\r\n closeOnClickOutside: true\r\n }, configs || {});\r\n // get root viewref\r\n const viewRef: ViewContainerRef = this.appRef.components[0].instance.viewRef;\r\n\r\n let portal: Portal<any>;\r\n // get component by route\r\n if (typeof content === 'string') {\r\n // TODO\r\n }\r\n // create portal from component\r\n else if (content instanceof TemplateRef) {\r\n portal = new TemplatePortal(content, viewRef, context);\r\n }\r\n else if (typeof content === 'function') {\r\n portal = new ComponentPortal(content, viewRef);\r\n }\r\n let positionStrategy: PositionStrategy;\r\n if (configs.position && configs.targetElement) {\r\n positionStrategy = this.overlayService.position()\r\n .flexibleConnectedTo(configs.targetElement)\r\n .withPositions(\r\n Array.isArray(configs.position) ? configs.position : [configs.position]\r\n )\r\n .withPush(true);\r\n }\r\n else {\r\n positionStrategy = this.overlayService.position().global().centerHorizontally().centerVertically();\r\n }\r\n let scrollStrategy: ScrollStrategy = this.overlayService.scrollStrategies.reposition({ autoClose: true });\r\n if (configs.scroll === 'block') {\r\n scrollStrategy = this.overlayService.scrollStrategies.block();\r\n }\r\n\r\n const config = {\r\n positionStrategy,\r\n scrollStrategy,\r\n hasBackdrop: configs.hasBackdrop,\r\n disposeOnNavigation: true,\r\n backdropClass: configs.backdropClass ? configs.backdropClass : (configs.transparentBackdrop ? 'cdk-overlay-transparent-backdrop' : undefined),\r\n panelClass: configs.panelClass ? configs.panelClass : ['animate__animated', 'animate__fadeIn']\r\n };\r\n // joon nanat dorost sho\r\n let overlayRef = configs.containerElement ? this.overlayService.createOn(configs.containerElement, config) : this.overlayService2.create(config);\r\n\r\n const host = overlayRef.attach(portal);\r\n if (host.instance) {\r\n Object.assign(host.instance, context);\r\n setTimeout(() => {\r\n host.changeDetectorRef.detectChanges();\r\n }, 0);\r\n }\r\n if (configs.closeOnClickOutside) {\r\n merge(\r\n overlayRef.backdropClick(),\r\n overlayRef.detachments(),\r\n ).subscribe(() => {\r\n overlayRef.dispose();\r\n overlayRef = undefined;\r\n if (configs.onBackdropClick) {\r\n configs.onBackdropClick();\r\n }\r\n });\r\n\r\n }\r\n return {\r\n instance: host.instance,\r\n dispose: overlayRef.dispose.bind(overlayRef)\r\n };\r\n }\r\n\r\n}","import { Component, OnInit, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-loading-indicator',\r\n templateUrl: './loading-indicator.component.html'\r\n})\r\nexport class AXLoadingIndicatorComponent implements OnInit {\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.size = 80;\r\n }\r\n\r\n @Input()\r\n size: number;\r\n}\r\n","import { Injectable, ComponentRef, EventEmitter } from '@angular/core';\r\nimport { AXRenderService } from '@acorex/core';\r\nimport { AXLoadingPanelComponent } from './loading-panel.component';\r\nimport { AXOverlayService, AXOverlayViewRef } from '../popover/overlay.service';\r\nimport { AXLoadingIndicatorComponent } from './loading-indicator.component';\r\n\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXLoadingService {\r\n\r\n private _stack: { id: number, component: AXOverlayViewRef }[] = [];\r\n\r\n\r\n constructor(private injection: AXRenderService, private overlayService: AXOverlayService) {\r\n\r\n }\r\n\r\n show(location?: Element): number {\r\n let host: Element;\r\n if (location) {\r\n host = location.closest('.ax-loading-host');\r\n }\r\n const containerElement = (host || location) as HTMLDivElement;\r\n const com = this.overlayService.show(AXLoadingIndicatorComponent, {},\r\n {\r\n closeOnClickOutside: false,\r\n containerElement,\r\n hasBackdrop: true,\r\n backdropClass: ['ax-loading-overlay'],\r\n scroll: 'block'\r\n });\r\n const id = new Date().getTime();\r\n this._stack.push({ id, component: com });\r\n return id;\r\n }\r\n\r\n hide(id): void {\r\n const f = this._stack.find(c => c.id === id);\r\n if (f) {\r\n f.component.dispose();\r\n this._stack = this._stack.filter(c => c.id !== id);\r\n }\r\n }\r\n}","import { Component, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { AXLoadingService } from '../loading/loading.service';\r\n\r\n@Component({\r\n selector: 'ax-page',\r\n template: `\r\n <div class=\"page-content-wrap\">\r\n <div class=\"ax-page-toolbar\">\r\n <ng-content select=\"ax-toolbar\"></ng-content>\r\n </div>\r\n <ng-content select=\"ax-page-content\"></ng-content>\r\n <ng-content select=\"ax-page-footer\"></ng-content>\r\n </div>\r\n`\r\n})\r\nexport class AXPageComponent {\r\n constructor(\r\n private el: ElementRef<HTMLElement>,\r\n private loadingService: AXLoadingService,\r\n private cdr: ChangeDetectorRef,\r\n ) { }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n }\r\n\r\n private _loadingId: number;\r\n\r\n private _isLoading: boolean = false;\r\n public get isLoading(): boolean {\r\n return this._isLoading;\r\n }\r\n public set isLoading(v: boolean) {\r\n this._isLoading = v;\r\n if (this._loadingId && !v) {\r\n this.loadingService.hide(this._loadingId);\r\n this._loadingId = null;\r\n }\r\n if (v) {\r\n this._loadingId = this.loadingService.show(this.el.nativeElement);\r\n }\r\n }\r\n}\r\n","import { EventEmitter, ViewChild } from '@angular/core';\r\nimport { AXDataEvent } from './events.class';\r\nimport { AXMenuItemClickEvent } from '../menu/menu.component';\r\nimport { AXButtonItem } from '@acorex/core';\r\nimport { AXPageComponent } from '../page/page.component';\r\nimport { Subject } from 'rxjs';\r\n\r\nexport const TAB_META_KEY = '__meta__';\r\n\r\nexport class AXPageCloseEvent extends AXDataEvent<any> {\r\n}\r\nexport class AXPageClosing {\r\n cancel: boolean = false;\r\n data?: any;\r\n}\r\n\r\nexport class AXPageResult {\r\n sender: any;\r\n data?: any;\r\n}\r\n\r\nexport class AXPageClosedPromise extends Promise<AXPageResult> {\r\n\r\n private closeMethod: () => void;\r\n constructor(\r\n executor: (resolve: (value?: AXPageResult | PromiseLike<AXPageResult>) => void,\r\n reject: (reason?: any) => void) => void\r\n ) {\r\n super(executor);\r\n }\r\n\r\n public close() {\r\n if (this.closeMethod) {\r\n this.closeMethod();\r\n }\r\n }\r\n}\r\n\r\nexport abstract class AXBasePageComponent {\r\n\r\n @ViewChild(AXPageComponent, { static: true })\r\n private pageContainer: AXPageComponent;\r\n\r\n private _isLoading: boolean = false;\r\n public get isLoading(): boolean {\r\n return this._isLoading;\r\n }\r\n public set isLoading(v: boolean) {\r\n this._isLoading = v;\r\n if (this.pageContainer) {\r\n this.pageContainer.isLoading = this.isLoading;\r\n }\r\n }\r\n\r\n\r\n onClosed: EventEmitter<AXPageCloseEvent> = new EventEmitter<AXPageCloseEvent>();\r\n\r\n close(data?: any) {\r\n this.onClosed.emit({\r\n component: this,\r\n data: data\r\n });\r\n }\r\n\r\n onClosing(e: AXPageClosing): void | Promise<void> {\r\n }\r\n\r\n ngOnDestroy() {\r\n this.onClosed.unsubscribe();\r\n }\r\n}\r\n\r\nexport abstract class AXBasePopupPageComponent extends AXBasePageComponent {\r\n\r\n\r\n\r\n\r\n\r\n\r\n constructor() {\r\n super();\r\n setTimeout(() => {\r\n this.configFooterButtons(this.getFooterButtons());\r\n });\r\n }\r\n\r\n\r\n private _footerButtons: AXButtonItem[] = [];\r\n onFooterButtonsChanged = new Subject<AXButtonItem[]>();\r\n\r\n protected get footerButtons(): AXButtonItem[] {\r\n return this._footerButtons || [];\r\n }\r\n\r\n protected configFooterButtons(buttons?: AXButtonItem[]) {\r\n if (buttons) {\r\n this._footerButtons = buttons;\r\n this.onFooterButtonsChanged.next(buttons);\r\n }\r\n else {\r\n this.onFooterButtonsChanged.next(this.footerButtons);\r\n }\r\n }\r\n\r\n onFooterButtonClick(e: AXMenuItemClickEvent) {\r\n }\r\n\r\n getFooterButtons(): AXButtonItem[] {\r\n return [];\r\n }\r\n}\r\n\r\n\r\n","import { Component, Input, ViewEncapsulation, ElementRef, ViewChild, HostListener } from '@angular/core';\r\nimport { AXBaseButtonComponent } from '../base/element.class';\r\n\r\n@Component({\r\n selector: 'ax-button',\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: './button.component.html'\r\n})\r\nexport class AXButtonComponent extends AXBaseButtonComponent {\r\n\r\n constructor(private el: ElementRef) {\r\n super();\r\n }\r\n\r\n @ViewChild('container', { static: true }) container: ElementRef<HTMLButtonElement>;\r\n\r\n @Input()\r\n type: string = 'primary';\r\n\r\n @Input()\r\n icon: string;\r\n\r\n @Input()\r\n submitBehavior: boolean = false;\r\n\r\n @Input()\r\n cancelBehavior: boolean = false;\r\n\r\n @Input()\r\n block: boolean = false;\r\n\r\n @Input()\r\n loading: boolean = false;\r\n\r\n @Input()\r\n selected: boolean = false;\r\n\r\n ngAfterViewInit(): void {\r\n if (this.submitBehavior) {\r\n setTimeout(() => {\r\n this.focusButton();\r\n }, 10);\r\n }\r\n }\r\n\r\n\r\n\r\n handleClick(e: MouseEvent) {\r\n if (this.disabled === true) {\r\n this.click.emit({\r\n component: this,\r\n htmlElement: this.el.nativeElement,\r\n htmlEvent: e,\r\n });\r\n e.stopPropagation();\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event'])\r\n onKeydownHandler(e: KeyboardEvent) {\r\n if (this.cancelBehavior) {\r\n this.handleClick(null);\r\n e.stopPropagation();\r\n e.preventDefault();\r\n return false;\r\n }\r\n }\r\n\r\n focusButton() {\r\n this.container.nativeElement.focus();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXButtonComponent } from './button.component';\r\n\r\nconst COMPONENT = [AXButtonComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXButtonModule { }\r\n","import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef, ViewEncapsulation, ElementRef } from '@angular/core';\r\nimport { AXDateTime, AXDateTimeRange, AXCalendarType, AXTranslator, } from '@acorex/core';\r\nimport { AXBaseSizableComponent, AXElementSize } from '../../base/element.class';\r\nimport { AXValueEvent } from '../../base/events.class';\r\nimport { AXConfig } from '@acorex/core';\r\n\r\nexport type AXCalendarViewType = 'year' | 'month' | 'day';\r\n\r\nexport type AXCalendarHolidays = AXCalendarHoliday[];\r\nexport type AXCalendarHolidaysFunc = (start: Date, end: Date, type: AXCalendarType) => AXCalendarHoliday[];\r\nexport interface AXCalendarHoliday {\r\n date: Date;\r\n title: string;\r\n description?: string;\r\n\r\n}\r\n\r\nexport type AXCalendarWeekends = AXCalendarWeekend[];\r\nexport type AXCalendarWeekendsFunc = (start: Date, end: Date, type: AXCalendarType) => AXCalendarWeekend[];\r\n\r\nexport interface AXCalendarWeekend {\r\n indexDay: number;\r\n}\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: 'ax-calendar-box',\r\n templateUrl: './calendar-box.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXCalendarBoxComponent implements AXBaseSizableComponent {\r\n weekdays: string[] = [];\r\n\r\n private d = {\r\n jalali: {\r\n locale: AXConfig.get('dateTime.jalali.locale') || 'fa',\r\n dir: 'rtl',\r\n number: 1\r\n },\r\n gregorian: {\r\n locale: AXConfig.get('dateTime.gregorian.locale') || 'en',\r\n dir: 'ltr',\r\n number: 0\r\n }\r\n }\r\n\r\n numRotate: number;\r\n\r\n @Input()\r\n size: AXElementSize = 'md';\r\n\r\n @Input()\r\n type: AXCalendarType;\r\n\r\n @Input()\r\n locale: string;\r\n\r\n @Input()\r\n dir: string;\r\n\r\n @Input()\r\n min: Date;\r\n\r\n @Input()\r\n max: Date;\r\n\r\n @Input()\r\n selectableHoliday: boolean = true;\r\n\r\n @Input()\r\n dayStyle = []\r\n\r\n\r\n\r\n\r\n private getHoliday: AXCalendarHolidays | AXCalendarHolidaysFunc;\r\n\r\n private getWeekend: AXCalendarWeekends | AXCalendarWeekendsFunc;\r\n\r\n @Input('showTodayButton')\r\n public showTodayButton: boolean = false;\r\n\r\n matrix: any[] = [];\r\n rotated: boolean = false;\r\n private _view: AXCalendarViewType = 'day';\r\n @Input()\r\n public get view(): AXCalendarViewType {\r\n return this._view;\r\n }\r\n public set view(v: AXCalendarViewType) {\r\n this._view = v;\r\n this.navigate(0);\r\n }\r\n\r\n private _depth: AXCalendarViewType = 'day';\r\n\r\n @Input()\r\n public get depth(): AXCalendarViewType {\r\n return this._depth;\r\n }\r\n public set depth(v: AXCalendarViewType) {\r\n this._depth = v;\r\n this.view = v;\r\n }\r\n\r\n viewRange: AXDateTimeRange;\r\n private holidays: AXCalendarHoliday[] = [];\r\n private weekends: AXCalendarWeekend[] = [];\r\n\r\n @Output()\r\n onValueChanged: EventEmitter<AXValueEvent<Date>> = new EventEmitter<AXValueEvent<Date>>();\r\n\r\n @Output()\r\n onClick: EventEmitter<AXValueEvent<Date>> = new EventEmitter<AXValueEvent<Date>>();\r\n\r\n @Output()\r\n valueChange: EventEmitter<Date> = new EventEmitter<Date>();\r\n\r\n private _value: AXDateTime;\r\n @Input()\r\n public get value(): Date {\r\n return this._value?.date;\r\n }\r\n public set value(v: Date) {\r\n let vv: AXDateTime;\r\n if (v) {\r\n vv = AXDateTime.convert(v);\r\n }\r\n let unValidDate = false;\r\n if (this.max || this.min) {\r\n unValidDate = this.isInMInMaxRange(vv);\r\n }\r\n if (!unValidDate) {\r\n if (vv && !vv.equal(this._value)) {\r\n this._value = vv;\r\n this._value.type = this.type;\r\n this.setFocus(this._value.clone());\r\n this.valueChange.emit(vv.date)\r\n this.onValueChanged.emit({\r\n component: this,\r\n value: this._value?.date,\r\n htmlElement: this.ref.nativeElement\r\n });\r\n }\r\n if(v == undefined){\r\n\r\n this._value = null;\r\n this.focusedValue = this.today;\r\n this.navigate(0);\r\n }\r\n this.onClick.emit({\r\n component: this,\r\n value: this._value?.date,\r\n htmlElement: this.ref.nativeElement\r\n });\r\n }\r\n }\r\n\r\n focusedValue: AXDateTime;\r\n today: AXDateTime;\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private ref: ElementRef) {\r\n\r\n // set defaults\r\n this.getHoliday = AXConfig.get('dateTime.holidays');\r\n this.getWeekend = AXConfig.get('dateTime.weekends');\r\n }\r\n findDay(date: AXDateTime) {\r\n if (this.dayStyle.find(c => c.date == date.toISOString().split('T')[0])) {\r\n return true\r\n } else {\r\n return false\r\n }\r\n }\r\n getStyle(date: AXDateTime) {\r\n if (this.dayStyle.find(c => c.date == date.toISOString().split('T')[0])) {\r\n return this.dayStyle.find(c => c.date == date.toISOString().split('T')[0]).style\r\n\r\n } else {\r\n return ''\r\n }\r\n }\r\n\r\n getTitle(date: AXDateTime) {\r\n if (this.dayStyle.find(c => c.date == date.toISOString().split('T')[0])) {\r\n return this.dayStyle.find(c => c.date == date.toISOString().split('T')[0]).text\r\n\r\n } else {\r\n return ''\r\n }\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.today = this.focusedValue = new AXDateTime(new Date(), this.type);\r\n //\r\n this.initLayout();\r\n //\r\n this.viewRange = this.today.month.range;\r\n this.setFocus(this.today);\r\n this.view = 'day';\r\n }\r\n\r\n getViewCompaire(view: AXCalendarViewType) {\r\n switch (view) {\r\n case 'day':\r\n return 'YMD';\r\n case 'month':\r\n return 'YM';\r\n case 'year':\r\n return 'Y';\r\n }\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n this.navigate(0);\r\n }\r\n\r\n private initLayout() {\r\n\r\n if (!this.type) {\r\n this.type = AXConfig.get('dateTime.type') || 'gregorian';\r\n }\r\n if (!this.locale) {\r\n this.locale = this.d[this.type]?.locale || this.locale;\r\n }\r\n if (!this.dir) {\r\n this.dir = this.d[this.type]?.dir || 'ltr';\r\n }\r\n this.numRotate = this.d[this.type]?.number || 0;\r\n const path = 'dateTime.weekdaysShort';\r\n this.weekdays = [\r\n AXTranslator.get(`${path}.sun`, this.locale),\r\n AXTranslator.get(`${path}.mon`, this.locale),\r\n AXTranslator.get(`${path}.tue`, this.locale),\r\n AXTranslator.get(`${path}.wed`, this.locale),\r\n AXTranslator.get(`${path}.thu`, this.locale),\r\n AXTranslator.get(`${path}.fri`, this.locale),\r\n AXTranslator.get(`${path}.sat`, this.locale)\r\n ]\r\n }\r\n\r\n getTodayName() {\r\n return AXTranslator.get('dateTime.today', this.locale);\r\n }\r\n\r\n prev() {\r\n this.navigate(-1);\r\n }\r\n\r\n next() {\r\n this.navigate(1);\r\n }\r\n\r\n rotate(array, n) {\r\n const len = array.length;\r\n return !(n % len) ? array\r\n : n > 0 ? array.map((e, i, a) => a[(i + n) % len])\r\n : array.map((e, i, a) => a[(len - (len - i - n) % len) % len]);\r\n }\r\n\r\n navigate(value: number | AXDateTime) {\r\n\r\n let start: AXDateTime;\r\n let end: AXDateTime;\r\n if (this.view === 'day') {\r\n let fd: AXDateTime;\r\n if (value instanceof AXDateTime) {\r\n fd = value.startOf('month');\r\n } else {\r\n fd = this.viewRange.startTime\r\n .add('day', 15)\r\n .add('month', value)\r\n .startOf('month');\r\n }\r\n\r\n start = fd.firstDayOfWeek;\r\n end = fd.endOf('month').endDayOfWeek;\r\n\r\n start = start.add('day', -this.numRotate);\r\n end = end.add('day', 7).add('day', -this.numRotate);\r\n\r\n // TODO: apply start of week\r\n if (!this.rotated && this.weekdays.length > 0) {\r\n if (this.type === 'jalali') {\r\n this.weekdays = this.rotate(this.weekdays, -this.numRotate);\r\n } else {\r\n this.weekdays = this.rotate(this.weekdays, this.numRotate);\r\n }\r\n\r\n this.rotated = true;\r\n\r\n }\r\n\r\n\r\n } else if (this.view === 'month') {\r\n let fd: AXDateTime;\r\n if (value instanceof AXDateTime) {\r\n fd = value.startOf('year');\r\n } else {\r\n fd = this.viewRange.startTime\r\n .add('day', 15)\r\n .add('year', value)\r\n .startOf('year');\r\n }\r\n start = fd;\r\n end = fd.endOf('year');\r\n } else if (this.view === 'year') {\r\n let fd: AXDateTime;\r\n if (value instanceof AXDateTime) {\r\n fd = value.startOf('year');\r\n } else {\r\n fd = this.viewRange.startTime\r\n .add('day', 15)\r\n .add('year', value * 10)\r\n .startOf('year');\r\n }\r\n start = fd.add('year', -4);\r\n end = start.add('year', 8).endOf('year');\r\n }\r\n this.viewRange = new AXDateTimeRange(start, end);\r\n //\r\n if (this.getHoliday && typeof (this.getHoliday) === 'function') {\r\n this.holidays = this.getHoliday(start.date, end.date, this.type);\r\n }\r\n\r\n if (this.getWeekend && typeof (this.getWeekend) === 'function') {\r\n this.weekends = this.getWeekend(start.date, end.date, this.type);\r\n }\r\n\r\n //\r\n if (this.view === 'day') {\r\n\r\n this.matrix = this.matrixify(this.applyStyle(this.viewRange.enumurate('day', this.type)), 7);\r\n if (this.matrix.length > 0 && this.matrix[0].find(c => c.nextMonth === false) === undefined) {\r\n this.matrix.splice(0, 1);\r\n }\r\n if (this.matrix[this.matrix.length - 1].find(c => c.nextMonth === false) === undefined) {\r\n this.matrix.splice(this.matrix.length - 1, 1);\r\n }\r\n\r\n } else if (this.view === 'month') {\r\n this.matrix = this.matrixify(this.applyStyle(this.viewRange.enumurate('month', this.type)), 3);\r\n } else if (this.view === 'year') {\r\n this.matrix = this.matrixify(this.applyStyle(this.viewRange.enumurate('year', this.type)), 3);\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private applyStyle(dates: AXDateTime[]): any[] {\r\n const items: any[] = [];\r\n dates.forEach((d, i, j) => {\r\n const item: any = {};\r\n item.date = d;\r\n\r\n item.selected = d.compaireNew(new AXDateTime(this.value, this.type), this.getViewCompaire(this.view), this.type) === 0;\r\n item.focused = d.compaireNew(this.focusedValue, this.getViewCompaire(this.view), this.type) === 0;\r\n item.today = this.today && d.compaireNew(this.today, this.getViewCompaire(this.view), this.type) === 0;\r\n if (this.view === 'day') {\r\n // item.nextMonth = d.compaireNew(this.viewRange.startTime.add('day', 10), 'YM') !== 0;\r\n item.nextMonth = d.compaireNew(this.viewRange.startTime.add('day', 10), 'YM', this.type) !== 0;\r\n\r\n item.unselect = this.isInMInMaxRange(d);\r\n this.holidays.forEach(h => {\r\n const comp = d.compaireNew(new AXDateTime(h.date, this.type), 'YMD', this.type);\r\n if (comp === 0) {\r\n item.holiday = true;\r\n if (this.selectableHoliday === false) {\r\n item.unselect = true;\r\n }\r\n }\r\n });\r\n\r\n const indexDay = i - Math.floor(i / 7) * 7;\r\n this.weekends.forEach(cc => {\r\n if (Number(cc) === indexDay) {\r\n item.holiday = true;\r\n if (this.selectableHoliday === false) {\r\n item.unselect = true;\r\n }\r\n }\r\n });\r\n }\r\n items.push(item);\r\n });\r\n return items;\r\n }\r\n\r\n changeView() {\r\n if (this.view === 'day') {\r\n this.view = 'month';\r\n } else if (this.view === 'month') {\r\n this.view = 'year';\r\n }\r\n }\r\n\r\n matrixify(arr: any[], cols) {\r\n\r\n const rows = Math.ceil(arr.length / cols);\r\n const matrix = [];\r\n if (rows * cols === arr.length) {\r\n for (let i = 0; i < arr.length; i += cols) {\r\n matrix.push(arr.slice(i, cols + i));\r\n }\r\n }\r\n return matrix;\r\n }\r\n\r\n setDayClick(event: MouseEvent, item) {\r\n if (item.unselect !== true) {\r\n this.value = item.date.date;\r\n }\r\n\r\n event.stopPropagation();\r\n }\r\n\r\n isInMInMaxRange(d) {\r\n let r = false;\r\n if (d !== undefined) {\r\n if (this.min && !this.max) {\r\n r = d.compaireNew(new AXDateTime(this.min, this.type), this.getViewCompaire(this.view), this.type) === -1;\r\n }\r\n if (this.max && !this.min) {\r\n r = d.compaireNew(new AXDateTime(this.max, this.type), this.getViewCompaire(this.view), this.type) === 1;\r\n }\r\n if (this.min && this.max) {\r\n r = (d.compaireNew(new AXDateTime(this.min, this.type), this.getViewCompaire(this.view), this.type) === -1 ||\r\n d.compaireNew(new AXDateTime(this.max, this.type), this.getViewCompaire(this.view), this.type) === 1);\r\n }\r\n }\r\n return r;\r\n }\r\n\r\n setMonthClick(event: MouseEvent, date: AXDateTime) {\r\n if (this.depth === 'month') {\r\n this.value = date.date;\r\n } else {\r\n this.view = 'day';\r\n this.setFocus(new AXDateTime(this.value, this.type).set('year', date.year).set('month', date.monthOfYear));\r\n }\r\n event.stopPropagation();\r\n }\r\n\r\n setYearClick(event: MouseEvent, date: AXDateTime) {\r\n if (this.depth === 'year') {\r\n this.value = date.date;\r\n } else {\r\n this.view = 'month';\r\n this.setFocus(new AXDateTime(this.value, this.type).set('year', date.year));\r\n }\r\n event.stopPropagation();\r\n }\r\n\r\n setFocus(date: AXDateTime) {\r\n this.focusedValue = date;\r\n this.navigate(this.focusedValue);\r\n }\r\n\r\n setToday() {\r\n this.value = this.today.date;\r\n this.view = 'day'\r\n }\r\n\r\n trackByFn(index, item: any) {\r\n return item.date.date.getTime();\r\n }\r\n}\r\n","import { Component, Input, NgZone, ChangeDetectorRef, ChangeDetectionStrategy, ViewEncapsulation, ViewChild, TemplateRef } from '@angular/core';\r\nimport { ElementRef } from '@angular/core';\r\nimport { AXOverlayService, AXOverlayViewRef } from './overlay.service';\r\nimport { AXConnectedPosition } from '@acorex/core';\r\n\r\n\r\n@Component({\r\n selector: 'ax-popover',\r\n templateUrl: './popover.component.html',\r\n styleUrls: ['./popover.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AXPopoverComponent {\r\n constructor(\r\n private overlayService: AXOverlayService,\r\n private zone: NgZone,\r\n private cdr: ChangeDetectorRef) {\r\n\r\n }\r\n //\r\n private targetEl: HTMLElement;\r\n private overlay: AXOverlayViewRef;\r\n @ViewChild('tpl')\r\n private template: TemplateRef<any>;\r\n //\r\n @Input('target') target: string | HTMLElement;\r\n //\r\n @Input('position') position: AXConnectedPosition;\r\n //\r\n @Input('openMode') openMode: 'manual' | 'click' | 'hover' = 'manual';\r\n //\r\n @Input('closeMode') closeMode: 'manual' | 'clickout' | 'mouseout' = 'clickout';\r\n //\r\n private _visible: boolean = false;\r\n @Input()\r\n public get visible(): boolean {\r\n return this._visible;\r\n }\r\n public set visible(v: boolean) {\r\n if (v !== this._visible) {\r\n if (v) {\r\n this.internalShow();\r\n } else {\r\n this.internalHide();\r\n }\r\n this._visible = v;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n //\r\n toggle() {\r\n this.visible = !this.visible;\r\n }\r\n\r\n close() {\r\n this.zone.run(() => {\r\n this.visible = false;\r\n });\r\n }\r\n\r\n open() {\r\n this.zone.run(() => {\r\n this.visible = true;\r\n });\r\n }\r\n\r\n private internalShow() {\r\n if (this.isOpen) {\r\n return;\r\n }\r\n this.overlay = this.overlayService.show(this.template, {}, {\r\n closeOnClickOutside: this.closeMode === 'clickout',\r\n targetElement: this.targetEl,\r\n hasBackdrop: this.closeMode === 'clickout',\r\n position: this.position,\r\n onBackdropClick: () => {\r\n this._visible = false;\r\n }\r\n });\r\n }\r\n\r\n private internalHide() {\r\n if (this.overlay) {\r\n this.overlay.dispose();\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this.targetEl = typeof this.target === 'string' ? document.querySelector<HTMLElement>(this.target) : this.target;\r\n //\r\n if (this.closeMode === 'mouseout') {\r\n this.targetEl.addEventListener('mouseout', this.close.bind(this));\r\n }\r\n if (this.openMode === 'hover' && this.targetEl) {\r\n this.targetEl.addEventListener('mouseover', this.open.bind(this));\r\n }\r\n //\r\n if (this.openMode === 'click' && this.targetEl) {\r\n this.targetEl.addEventListener('click', this.open.bind(this));\r\n }\r\n }, 100);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.openMode === 'click' && this.targetEl) {\r\n this.targetEl.removeEventListener('mouseover', this.open.bind(this));\r\n this.targetEl.removeEventListener('click', this.open.bind(this));\r\n this.targetEl.removeEventListener('mouseout', this.open.bind(this));\r\n }\r\n }\r\n\r\n get isOpen(): boolean {\r\n return this.visible;\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { AXPopoverComponent } from \"./popover.component\";\r\n\r\n@NgModule({\r\n declarations: [AXPopoverComponent],\r\n imports: [CommonModule],\r\n exports: [AXPopoverComponent],\r\n providers: []\r\n})\r\nexport class AXPopoverModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXCalendarBoxComponent } from './calendar-box.component';\r\nimport { AXCoreModule } from '@acorex/core';\r\nimport { AXPopoverModule } from '../../popover/popover.module';\r\nimport { AXButtonModule } from '../../button/button.module';\r\n\r\n\r\n@NgModule({\r\n declarations: [AXCalendarBoxComponent],\r\n imports: [CommonModule, AXButtonModule, AXPopoverModule, AXCoreModule],\r\n exports: [AXCalendarBoxComponent],\r\n providers: []\r\n})\r\nexport class AXCalendarBoxModule {\r\n}\r\n","import { Component, ContentChildren, QueryList, Input, Attribute } from '@angular/core';\r\nimport { AXSchedulerViewType } from './scheduler.class';\r\n\r\n@Component({\r\n selector: 'ax-scheduler-view',\r\n template: ``\r\n})\r\nexport class AXSchedulerViewProperty {\r\n\r\n constructor(\r\n @Attribute('type') public type: AXSchedulerViewType,\r\n @Attribute('caption') public caption: string,\r\n @Attribute('name') public name: string,\r\n ) {\r\n\r\n }\r\n\r\n @Input()\r\n public interval: number;\r\n\r\n\r\n ngOnInit(): void {\r\n if (!this.interval) {\r\n this.interval = 1;\r\n }\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'ax-scheduler-views',\r\n template: `\r\n <ng-content>\r\n </ng-content>`,\r\n})\r\nexport class AXSchedulerViewsProperty {\r\n @ContentChildren(AXSchedulerViewProperty) views: QueryList<AXSchedulerViewProperty>;\r\n constructor() { }\r\n}\r\n","import { AXDateTime, AXDateTimeRange } from '@acorex/core';\r\nimport { EventEmitter } from '@angular/core';\r\n\r\n\r\n\r\n\r\nexport type AXSchedulerViewType = 'day' | 'week' | 'month' | 'timeline' | 'agenda';\r\n\r\nexport interface AXSchedulerRequestDataArge {\r\n startTime: AXDateTime;\r\n endTime: AXDateTime;\r\n events: AXSchedulerEvent[];\r\n}\r\n\r\nexport abstract class AXAsyncEventArgs {\r\n onComplete: EventEmitter<any> = new EventEmitter<any>(true);\r\n complete(): void {\r\n if (this.onComplete) {\r\n this.onComplete.emit(this);\r\n }\r\n }\r\n}\r\n\r\nexport class AXSchedulerEventChangeArgs extends AXAsyncEventArgs {\r\n canceled: boolean = false;\r\n event: AXSchedulerEvent;\r\n oldSlot: AXSchedulerSlot;\r\n newSlot: AXSchedulerSlot;\r\n}\r\n\r\nexport interface AXSchedulerSlot {\r\n range: AXDateTimeRange;\r\n events?: AXSchedulerEvent[];\r\n uid?: string;\r\n}\r\n\r\nexport interface AXSchedulerEvent {\r\n range: AXDateTimeRange;\r\n title: string;\r\n description?: string;\r\n uid: string;\r\n color: string;\r\n}\r\n\r\nexport interface AXSchedulerOccasion {\r\n range: AXDateTimeRange;\r\n title: string;\r\n description?: string;\r\n blocked?: boolean;\r\n}\r\n","export abstract class AXToolbarItem\r\n{\r\n alignment:\"start\"|\"end\"|\"center\"=\"center\";\r\n}","import {\r\n Component,\r\n Input,\r\n EventEmitter,\r\n Output,\r\n ElementRef,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n NgZone,\r\n ChangeDetectorRef,\r\n TemplateRef,\r\n ContentChild\r\n} from '@angular/core';\r\nimport { AXPlacement, AXMenuItem } from '@acorex/core';\r\nimport { AXBaseSizableComponent, AXElementSize } from '../base/element.class';\r\nimport { AXEvent } from '../base/events.class';\r\n\r\nexport class AXMenuItemClickEvent extends AXEvent<AXMenuItem, MouseEvent> {\r\n name: string;\r\n}\r\n\r\n@Component({\r\n selector: 'ax-menu',\r\n templateUrl: './menu.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXMenuComponent implements AXBaseSizableComponent {\r\n\r\n constructor(private ref: ElementRef, private cdr: ChangeDetectorRef) {\r\n }\r\n\r\n @ContentChild(TemplateRef, { static: true })\r\n _contentMenuTemplate: TemplateRef<any>;\r\n\r\n private _menuTemplate: TemplateRef<any>;\r\n @Input()\r\n public get menuTemplate(): TemplateRef<any> {\r\n return this._menuTemplate ? this._menuTemplate : this._contentMenuTemplate;\r\n }\r\n public set menuTemplate(v: TemplateRef<any>) {\r\n this._menuTemplate = v;\r\n }\r\n\r\n resizeChangeObserver: any;\r\n\r\n @Input()\r\n rtl: boolean;\r\n\r\n @Output()\r\n onItemClick: EventEmitter<AXMenuItemClickEvent> = new EventEmitter<AXMenuItemClickEvent>();\r\n\r\n @Input()\r\n size: AXElementSize = 'md';\r\n\r\n @Input()\r\n public selection: 'none' | 'single' | 'multiple' = 'none';\r\n\r\n @Input()\r\n public mode: 'click' | 'context' | 'visible' | 'manual' = 'visible';\r\n\r\n @Input()\r\n public target: string;\r\n\r\n @Input()\r\n public floatAlignment: AXPlacement;\r\n\r\n @Input()\r\n public floatPlacemnet: AXPlacement;\r\n\r\n public currentTarget: HTMLElement;\r\n\r\n @Input()\r\n public direction: 'vertical' | 'horizontal' = 'horizontal';\r\n\r\n private _items: AXMenuItem[];\r\n @Input()\r\n public get items(): AXMenuItem[] {\r\n return this._items;\r\n }\r\n public set items(v: AXMenuItem[]) {\r\n this._items = v;\r\n }\r\n\r\n ngOnInit() {\r\n if (this.rtl == null) {\r\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\r\n }\r\n }\r\n\r\n\r\n handleItemClick(e: MouseEvent, item?: AXMenuItem) {\r\n e.stopPropagation();\r\n if (item && (!item.items || !item.items.filter((c) => c.visible !== false).length) && !item.disable) {\r\n const m = {\r\n component: this,\r\n htmlElement: this.ref.nativeElement,\r\n htmlEvent: e,\r\n data: item,\r\n name: item?.name\r\n };\r\n if (item.onClick) {\r\n item.onClick();\r\n }\r\n else {\r\n this.onItemClick.emit(m);\r\n }\r\n\r\n return;\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n EventEmitter,\r\n Output,\r\n ElementRef,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n NgZone,\r\n ViewChild,\r\n ChangeDetectorRef,\r\n ContentChild,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport { AXToolbarItem } from '../toolbar-item';\r\nimport { AXMenuComponent, AXMenuItemClickEvent } from '../../menu/menu.component';\r\nimport { AXMenuItem } from '@acorex/core';\r\n\r\n@Component({\r\n selector: 'ax-toolbar-menu',\r\n templateUrl: './toolbar-menu.component.html',\r\n providers: [{ provide: AXToolbarItem, useExisting: AXToolbarMenuComponent }],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXToolbarMenuComponent extends AXToolbarItem {\r\n \r\n constructor(\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n super();\r\n }\r\n\r\n @ViewChild('menu', { static: true }) menu: AXMenuComponent\r\n\r\n @Output()\r\n onItemClick: EventEmitter<AXMenuItemClickEvent> = new EventEmitter<AXMenuItemClickEvent>();\r\n\r\n @ContentChild(TemplateRef, { static: true })\r\n _contentMenuTemplate: TemplateRef<any>;\r\n\r\n\r\n private _menuTemplate: TemplateRef<any>;\r\n @Input()\r\n public get menuTemplate(): TemplateRef<any> {\r\n return this._menuTemplate ? this._menuTemplate : this._contentMenuTemplate;\r\n }\r\n public set menuTemplate(v: TemplateRef<any>) {\r\n this._menuTemplate = v;\r\n }\r\n\r\n\r\n @Input()\r\n public selection: 'none' | 'single' | 'multiple' = 'none';\r\n\r\n private _items: AXMenuItem[];\r\n @Input()\r\n public get items(): AXMenuItem[] {\r\n return this._items;\r\n }\r\n public set items(v: AXMenuItem[]) {\r\n this._items = v;\r\n this.update();\r\n }\r\n\r\n\r\n handleItemClick(item?: AXMenuItemClickEvent) {\r\n this.onItemClick.emit(item);\r\n }\r\n\r\n\r\n public close(): void {\r\n // this.menu.close();\r\n }\r\n\r\n update() {\r\n //this.menu.update();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n\r\n}\r\n","import { Component, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { AXMenuItem } from '@acorex/core';\r\nimport { AXToolbarItem } from '../../../toolbar/toolbar-item';\r\nimport { AXToolbarMenuComponent } from '../../../toolbar/menu/toolbar-menu.component';\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: 'ax-toolbar-scheduler-view',\r\n template: `\r\n <ax-toolbar-menu [items]=\"items\" selection=\"single\" (onItemClick)=\"onItemClick($event)\"></ax-toolbar-menu>\r\n `,\r\n providers: [{ provide: AXToolbarItem, useExisting: AXToolbarSchedulerViewsComponent }]\r\n})\r\nexport class AXToolbarSchedulerViewsComponent {\r\n constructor() { }\r\n\r\n @ViewChild(AXToolbarMenuComponent, { static: true }) menu: AXToolbarMenuComponent;\r\n items: AXMenuItem[] = [];\r\n\r\n update(): void {\r\n this.menu.update();\r\n }\r\n\r\n @Output()\r\n onViewChanged: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n onItemClick(e: AXMenuItem) {\r\n this.onViewChanged.emit(e.name);\r\n }\r\n\r\n}\r\n","import { Input, EventEmitter, OnDestroy } from '@angular/core';\r\nimport { AXDateTime, AXDateTimeRange, TimeUnit } from '@acorex/core';\r\nimport { Output, Directive } from '@angular/core';\r\nimport { AXSchedulerSlot, AXSchedulerEventChangeArgs, AXSchedulerEvent, AXSchedulerViewType } from '../scheduler.class';\r\n\r\n\r\n\r\n\r\n\r\n@Directive()\r\nexport abstract class AXSchedulerBaseViewComponent implements OnDestroy {\r\n\r\n type: AXSchedulerViewType;\r\n timeSlot: number = 1;\r\n\r\n interval: number = 1;\r\n\r\n abstract updateSize(): void;\r\n\r\n abstract next(): void;\r\n\r\n abstract prev(): void;\r\n\r\n abstract navigate(date: AXDateTime): void;\r\n\r\n get dateRange(): AXDateTimeRange {\r\n if (this.slots && this.slots.length) {\r\n return new AXDateTimeRange(this.slots[0].range.startTime, this.slots[this.slots.length - 1].range.startTime);\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n\r\n today: AXDateTime = new AXDateTime();\r\n\r\n\r\n\r\n @Output()\r\n onNavigatorDateChanged: EventEmitter<AXDateTime> = new EventEmitter<AXDateTime>();\r\n\r\n private _navigatorDate: AXDateTime;\r\n public get navigatorDate(): AXDateTime {\r\n return this._navigatorDate;\r\n }\r\n public set navigatorDate(v: AXDateTime) {\r\n this._navigatorDate = v;\r\n this.onNavigatorDateChanged.emit(v);\r\n }\r\n\r\n events: AXSchedulerEvent[] = [];\r\n\r\n slots: AXSchedulerSlot[] = [];\r\n\r\n getEvents(range: AXDateTimeRange, unit: TimeUnit) {\r\n return this.events.filter(c => c.range.startTime.equal(range.startTime, unit))\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n this.updateSize();\r\n }\r\n\r\n @Output()\r\n onEventChanged: EventEmitter<AXSchedulerEventChangeArgs> = new EventEmitter<AXSchedulerEventChangeArgs>(true);\r\n\r\n\r\n ngOnDestroy(): void {\r\n if (this.onEventChanged) {\r\n this.onEventChanged.unsubscribe();\r\n }\r\n if (this.onNavigatorDateChanged) {\r\n this.onEventChanged.unsubscribe();\r\n }\r\n if (this.slots) {\r\n this.slots = null;\r\n }\r\n if (this.events) {\r\n this.events = null;\r\n }\r\n }\r\n\r\n\r\n onDragDropOnDay(e, time?: number) {\r\n const el = e.item.element.nativeElement as HTMLElement;\r\n if (e.previousContainer !== e.container) {\r\n el.style.opacity = '0';\r\n const r: AXSchedulerEventChangeArgs = new AXSchedulerEventChangeArgs();\r\n r.event = e.item.data;\r\n r.oldSlot = e.previousContainer.data;\r\n r.newSlot = e.container.data;\r\n //\r\n r.onComplete.subscribe((er: AXSchedulerEventChangeArgs) => {\r\n el.style.opacity = '1';\r\n if (!er.canceled) {\r\n const slotTime = er.newSlot.range.startTime.startOf();\r\n const z = er.event.range.startTime.clone();\r\n const durDay = slotTime.duration(z.startOf(), 'days');\r\n const durTime = slotTime.duration(z, 'hours');\r\n const eventRange = er.event.range;\r\n //\r\n // if (time && slotTime.add('hour', time).hour + eventRange.duration('hours') > 24) {\r\n // return;\r\n // }\r\n if (time) {\r\n return;\r\n }\r\n er.event.range.startTime = er.event.range.startTime.add('day', durDay);\r\n er.event.range.endTime = er.event.range.endTime.add('day', durDay);\r\n er.oldSlot.events = er.oldSlot.events.filter(c => c.uid !== er.event.uid);\r\n if (time) {\r\n er.event.range.startTime = er.event.range.startTime.set('hour', time);\r\n let durTime = er.event.range.startTime.duration(z, 'hours') % 24;\r\n er.event.range.endTime = er.event.range.endTime.add('hour', durTime);\r\n }\r\n er.newSlot.events.push(er.event);\r\n\r\n }\r\n });\r\n this.onEventChanged.emit(r);\r\n }\r\n }\r\n\r\n}","import { Component, ElementRef, ChangeDetectorRef, ViewEncapsulation } from '@angular/core';\r\nimport { AXSchedulerBaseViewComponent } from '../scheduler-view.component';\r\nimport { AXSchedulerSlot, AXSchedulerEvent } from '../../scheduler.class';\r\nimport { AXDateTime, AXDateTimeRange } from '@acorex/core';\r\n\r\n@Component({\r\n templateUrl: './scheduler-daytime-view.component.html',\r\n styleUrls: ['./scheduler-daytime-view.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerDayTimeViewComponent }]\r\n})\r\nexport class AXSchedulerDayTimeViewComponent extends AXSchedulerBaseViewComponent {\r\n constructor(private elm: ElementRef<HTMLDivElement>, private cdr: ChangeDetectorRef) { super(); }\r\n times: any[] = [];\r\n private vScroll: HTMLElement;\r\n private container: HTMLElement;\r\n private view: HTMLElement;\r\n private header: HTMLElement;\r\n private body: HTMLElement;\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.vScroll = this.elm.nativeElement.querySelector<HTMLElement>('.v-scroll');\r\n this.header = this.elm.nativeElement.querySelector<HTMLElement>('.header');\r\n this.body = this.elm.nativeElement.querySelector<HTMLElement>('.body');\r\n this.view = this.elm.nativeElement.querySelector<HTMLElement>('.view');\r\n this.container = this.elm.nativeElement.closest('.view-container') as HTMLElement;\r\n }\r\n\r\n updateSize(): void {\r\n const firstTr = this.body.querySelector('tr');\r\n if (firstTr) {\r\n let index = 0;\r\n this.header.querySelectorAll('th').forEach(c => {\r\n const td = firstTr.children.item(index++) as HTMLElement;\r\n td.style.width = `${c.offsetWidth}px`;\r\n });\r\n this.vScroll.style.height = `calc(100% - ${this.header.clientHeight}px)`;\r\n if (this.container) {\r\n this.view.style.height = `${this.container.clientHeight}px`;\r\n }\r\n }\r\n this.arrangeEvents();\r\n }\r\n\r\n navigate(date: AXDateTime = new AXDateTime()) {\r\n this.times = [];\r\n this.slots = [];\r\n for (let i = 0; i < this.interval; i++) {\r\n const d = date.addDay(i);\r\n const range = new AXDateTimeRange(d, d);\r\n const slot: AXSchedulerSlot = {\r\n range,\r\n events: this.getEvents(range, 'day')\r\n };\r\n this.slots.push(slot);\r\n }\r\n for (let i = 0; i < 24; i++) {\r\n this.times.push({\r\n display: ('0' + i).slice(-2) + ':00',\r\n value: i\r\n });\r\n }\r\n this.navigatorDate = date;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n next(): void {\r\n this.navigate(this.navigatorDate.addDay(this.interval));\r\n }\r\n prev(): void {\r\n this.navigate(this.navigatorDate.addDay(-this.interval));\r\n }\r\n\r\n arrangeEvents() {\r\n const events = this.elm.nativeElement.querySelectorAll<HTMLElement>('.event');\r\n if (events.length) {\r\n const height = events[0].closest('td').offsetHeight;\r\n events.forEach(e => {\r\n const uid = e.attributes.getNamedItem('data-uid').value;\r\n const event = this.events.find(c => c.uid === uid);\r\n const dur = Math.ceil(Math.abs(event.range.duration('hours')));\r\n let total = dur + 1;\r\n if (event.range.startTime.hour + total > 23) {\r\n total = 24 - event.range.startTime.hour;\r\n }\r\n e.style.height = (total * height) + 'px';\r\n });\r\n }\r\n }\r\n\r\n findEventIndex(event: AXSchedulerEvent): number {\r\n const a = this.events.filter(c =>\r\n c.range.startTime.equal(event.range.startTime, 'day')\r\n ).sort((d1, d2) => {\r\n return d1.range.startTime.compaireNew(d2.range.startTime);\r\n });\r\n\r\n return a.indexOf(event);\r\n }\r\n}\r\n","import { Component, ElementRef, ChangeDetectorRef, ViewEncapsulation, HostListener, NgZone } from '@angular/core';\r\nimport { AXSchedulerBaseViewComponent } from '../scheduler-view.component';\r\nimport { AXSchedulerEvent, AXSchedulerEventChangeArgs } from '../../scheduler.class';\r\nimport { AXDateTime, AXDateTimeRange } from '@acorex/core';\r\n\r\n@Component({\r\n templateUrl: './scheduler-month-view.component.html',\r\n styleUrls: ['./scheduler-month-view.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerMonthViewComponent }]\r\n})\r\nexport class AXSchedulerMonthViewComponent extends AXSchedulerBaseViewComponent {\r\n\r\n\r\n constructor(\r\n private elm: ElementRef<HTMLDivElement>,\r\n private zone: NgZone,\r\n private cdr: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n @HostListener('wheel', ['$event'])\r\n onKeydownHandler(e: MouseWheelEvent) {\r\n if (e.deltaY > 0) {\r\n this.navigate(this.navigatorDate.addMonth(1))\r\n }\r\n else if (e.deltaY < 0) {\r\n this.navigate(this.navigatorDate.addMonth(-1))\r\n }\r\n }\r\n\r\n weekDays: any[] = [\r\n {\r\n index: 0, title: 'Sunday'\r\n },\r\n {\r\n index: 1, title: 'Moday'\r\n },\r\n {\r\n index: 2, title: 'Tuesday'\r\n },\r\n {\r\n index: 3, title: 'Wednesday'\r\n },\r\n {\r\n index: 4, title: 'Thursday'\r\n },\r\n {\r\n index: 5, title: 'Friday'\r\n },\r\n {\r\n index: 6, title: 'Saturday'\r\n }];\r\n startDayOfWeek = 'Moday';\r\n\r\n\r\n\r\n private container: HTMLElement;\r\n private view: HTMLElement;\r\n private header: HTMLElement;\r\n private body: HTMLElement;\r\n\r\n\r\n\r\n\r\n ngAfterViewInit(): void {\r\n this.header = this.elm.nativeElement.querySelector<HTMLElement>('.header');\r\n this.body = this.elm.nativeElement.querySelector<HTMLElement>('.body');\r\n this.view = this.elm.nativeElement.querySelector<HTMLElement>('.view');\r\n this.container = this.elm.nativeElement.closest('.view-container') as HTMLElement;\r\n\r\n }\r\n\r\n\r\n updateSize(): void {\r\n const firstTr = this.body.querySelector('tr');\r\n if (firstTr) {\r\n let index = 0;\r\n this.header.querySelectorAll('th').forEach(c => {\r\n const td = firstTr.children.item(index++) as HTMLElement;\r\n td.style.width = `${c.offsetWidth}px`;\r\n });\r\n this.body.style.height = `calc(100% - ${this.header.clientHeight}px)`;\r\n if (this.container) {\r\n this.view.style.height = `${this.container.clientHeight}px`;\r\n }\r\n }\r\n this.arrangeEvents();\r\n }\r\n\r\n matrixify(arr, rows, cols) {\r\n const matrix = [];\r\n if (rows * cols === arr.length) {\r\n for (let i = 0; i < arr.length; i += cols) {\r\n matrix.push(arr.slice(i, cols + i));\r\n }\r\n }\r\n return matrix;\r\n }\r\n\r\n matrixSlots: any;\r\n\r\n navigate(date: AXDateTime = new AXDateTime()) {\r\n\r\n const start = date.month.range.startTime.firstDayOfWeek;\r\n const end = date.month.range.startTime.endDayOfWeek;\r\n const dur = end.duration(start);\r\n this.slots = [];\r\n for (let i = 0; i < dur; i++) {\r\n const d = start.addDay(i);\r\n const range: AXDateTimeRange = new AXDateTimeRange(d, d);\r\n this.slots.push({\r\n range,\r\n events: this.getEvents(range, 'day'),\r\n uid: range.startTime.date.getTime().toString()\r\n });\r\n }\r\n const dayInWeek = 7;\r\n const rows = Math.floor(dur / dayInWeek);\r\n this.matrixSlots = this.matrixify(this.slots, rows, dayInWeek);\r\n this.navigatorDate = date;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n\r\n next(): void {\r\n this.navigate(this.navigatorDate.addMonth(this.interval));\r\n }\r\n prev(): void {\r\n this.navigate(this.navigatorDate.addMonth(-this.interval));\r\n }\r\n\r\n arrangeEvents() {\r\n this.slots.forEach(slot => {\r\n const slotTd = this.elm.nativeElement.querySelector<HTMLElement>(`[data-uid='` + slot.uid + `']`);\r\n const viewMoreDiv = slotTd.querySelector<HTMLElement>('.view-more');\r\n let viewMore = 0;\r\n viewMoreDiv.style.display = 'none';\r\n const width = slotTd.offsetWidth;\r\n slot.events.forEach(event => {\r\n const e = slotTd.querySelector<HTMLElement>(`[data-uid='` + event.uid + `']`);\r\n if (e) {\r\n const dur = Math.ceil(Math.abs(event.range.duration()));\r\n e.style.visibility = 'unset';\r\n e.style.width = (dur * width) + 'px';\r\n e.style.top = ((this.findEventIndex(event)) * 25) + 'px';\r\n if (e.getBoundingClientRect().bottom >= slotTd.getBoundingClientRect().bottom) {\r\n viewMore++;\r\n e.style.visibility = 'hidden';\r\n viewMoreDiv.style.display = 'unset';\r\n viewMoreDiv.innerHTML = `+${viewMore} more`;\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n findEventIndex(event: AXSchedulerEvent): number {\r\n const a = this.events.filter(c =>\r\n c.range.startTime.equal(event.range.startTime, 'days')\r\n ).sort((d1, d2) => {\r\n const v = d1.range.startTime.compaireNew(d2.range.startTime, 'YMDhm');\r\n return v;\r\n });\r\n return a.indexOf(event);\r\n }\r\n\r\n private dragEnterSlot: HTMLElement;\r\n private dragPreview: HTMLElement;\r\n private dragHour: number = null;\r\n onDragStarted(event) {\r\n this.zone.runOutsideAngular(() => {\r\n this.dragEnterSlot = event.source.dropContainer.element.nativeElement;\r\n this.elm.nativeElement.addEventListener('mousemove', this.drageMouseMove.bind(this));\r\n });\r\n }\r\n onDragEntered(event) {\r\n this.dragPreview = document.querySelector<HTMLElement>('.cdk-drag-preview');\r\n this.dragEnterSlot = event.container.element.nativeElement;\r\n }\r\n onDragEnded(event) {\r\n this.dragEnterSlot = null;\r\n this.dragPreview = null;\r\n this.zone.runOutsideAngular(() => {\r\n this.elm.nativeElement.removeEventListener('mousemove', this.drageMouseMove.bind(this));\r\n });\r\n }\r\n\r\n private drageMouseMove(e: MouseEvent) {\r\n this.zone.runOutsideAngular(() => {\r\n if (!this.dragPreview) {\r\n this.dragPreview = document.querySelector<HTMLElement>('.cdk-drag-preview');\r\n }\r\n if (this.dragEnterSlot && this.dragPreview) {\r\n const diff = this.dragPreview.getBoundingClientRect().top - this.dragEnterSlot.getBoundingClientRect().top;\r\n const hour = Math.round((diff / this.dragEnterSlot.getBoundingClientRect().height) * 24);\r\n this.dragPreview.querySelector('.ax-sch-str').innerHTML = `${hour > 0 ? hour : 0}:00`;\r\n this.dragHour = hour;\r\n }\r\n });\r\n }\r\n\r\n onDragDropOnDay(e) {\r\n const el = e.item.element.nativeElement as HTMLElement;\r\n if (e.previousContainer !== e.container) {\r\n el.style.opacity = '0';\r\n const r: AXSchedulerEventChangeArgs = new AXSchedulerEventChangeArgs();\r\n r.event = e.item.data;\r\n r.oldSlot = e.previousContainer.data;\r\n r.newSlot = e.container.data;\r\n //\r\n r.onComplete.subscribe((er: AXSchedulerEventChangeArgs) => {\r\n el.style.opacity = '1';\r\n if (!er.canceled) {\r\n const slotTime = er.newSlot.range.startTime.startOf();\r\n const z = er.event.range.startTime.clone();\r\n const durDay = slotTime.duration(z.startOf(), 'days');\r\n er.event.range.startTime = er.event.range.startTime.add('day', durDay);\r\n if (this.dragHour != null) {\r\n er.event.range.startTime = er.event.range.startTime.set('hour', this.dragHour);\r\n er.event.range.startTime = er.event.range.startTime.set('minute', 0);\r\n }\r\n er.event.range.endTime = er.event.range.endTime.add('day', durDay);\r\n er.oldSlot.events = er.oldSlot.events.filter(c => c.uid !== er.event.uid);\r\n er.newSlot.events.push(er.event);\r\n }\r\n });\r\n this.onEventChanged.emit(r);\r\n }\r\n\r\n }\r\n\r\n}\r\n","\r\nimport { Component, OnInit, Input, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild } from '@angular/core';\r\n\r\nimport { AXSchedulerViewType } from '../scheduler.class';\r\nimport { AXCalendarBoxComponent } from '../../calendar-box/calendar-box.component';\r\n\r\nimport { AXMenuItem, AXDateTime, AXDateTimeRange } from '@acorex/core';\r\nimport { AXToolbarItem } from '../../../toolbar/toolbar-item';\r\nimport { AXToolbarMenuComponent } from '../../../toolbar/menu/toolbar-menu.component';\r\nimport { AXPopoverComponent } from '../../../popover/popover.component';\r\nimport { AXValueEvent } from '../../../base/events.class';\r\n\r\n\r\n@Component({\r\n selector: 'ax-toolbar-scheduler-navigator',\r\n template: `\r\n <div id=\"nav\">\r\n <ax-toolbar-menu [items]=\"items\" (onItemClick)=\"onItemClick($event)\"></ax-toolbar-menu>\r\n <ax-popover target=\"#nav\" placement=\"bottom-end\" alignment=\"top-end\" #pop>\r\n <ax-calendar-box (onValueChanged)=\"onDateChange($event)\" [depth]=\"viewDepth\" #cal></ax-calendar-box>\r\n </ax-popover>\r\n</div>`,\r\n providers: [{ provide: AXToolbarItem, useExisting: AXToolbarSchedulerNavigatorComponent }],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXToolbarSchedulerNavigatorComponent {\r\n constructor(private cdr: ChangeDetectorRef) { }\r\n\r\n @ViewChild(AXToolbarMenuComponent, { static: true })\r\n toolbar: AXToolbarMenuComponent;\r\n\r\n @ViewChild('pop', { static: true })\r\n pop: AXPopoverComponent;\r\n\r\n @ViewChild('cal', { static: true })\r\n cal: AXCalendarBoxComponent;\r\n\r\n viewDepth: string = 'day';\r\n\r\n\r\n items: AXMenuItem[] = [];\r\n\r\n ngAfterViewInit(): void {\r\n this.items = [\r\n {\r\n name: 'prev',\r\n startIcon: 'fas fa-angle-left',\r\n tooltip: 'Prev'\r\n },\r\n {\r\n name: 'today',\r\n text: 'Today',\r\n tooltip: 'Today'\r\n },\r\n {\r\n name: 'next',\r\n startIcon: 'fas fa-angle-right',\r\n tooltip: 'Next'\r\n },\r\n {\r\n name: 'current',\r\n\r\n }];\r\n }\r\n\r\n\r\n @Output()\r\n onNavigate: EventEmitter<'next' | 'back' | AXDateTime> = new EventEmitter<'next' | 'back' | AXDateTime>();\r\n\r\n onItemClick(e: AXMenuItem) {\r\n if (e.name === 'current') {\r\n this.pop.toggle();\r\n }\r\n else if (e.name === 'today') {\r\n this.goto(new AXDateTime());\r\n }\r\n else {\r\n this.onNavigate.emit(e.name as any);\r\n this.pop.close();\r\n }\r\n }\r\n\r\n\r\n onDateChange(e: AXValueEvent<AXDateTime>) {\r\n this.goto(e.value);\r\n }\r\n\r\n goto(date: AXDateTime) {\r\n this.onNavigate.emit(date);\r\n this.pop.close();\r\n }\r\n\r\n\r\n set(range: AXDateTimeRange, type: AXSchedulerViewType) {\r\n if (range) {\r\n let text: string = '';\r\n const calDate: AXDateTime = range.startTime;\r\n const sameDay = range.startTime.compaireNew(range.endTime, 'YMD') === 0;\r\n const sameMonth = range.startTime.compaireNew(range.endTime, 'YM') === 0;\r\n const sameYear = range.startTime.compaireNew(range.endTime, 'Y') === 0;\r\n if (type !== 'month' && sameDay) {\r\n text = range.startTime.format('MMMM DD, YYYY');\r\n }\r\n //\r\n else if (type !== 'month' && sameMonth && sameYear) {\r\n text = `${range.startTime.format('MMMM DD')} - ${range.endTime.format('DD, YYYY')}`;\r\n }\r\n else if (type !== 'month' && sameYear) {\r\n text = `${range.startTime.format('MMM DD')} - ${range.endTime.format('MMM DD, YYYY')}`;\r\n }\r\n else if (type !== 'month') {\r\n text = `${range.startTime.format('MMM DD, YYYY')} - ${range.endTime.format('MMM DD, YYYY')}`;\r\n }\r\n else if (type === 'month') {\r\n text = range.startTime.add('day', 15).format('MMMM YYYY');\r\n }\r\n this.items[3].text = text;\r\n if (type === 'month') {\r\n this.viewDepth = 'month';\r\n }\r\n else {\r\n this.viewDepth = 'day';\r\n }\r\n //\r\n this.cal.focusedValue = calDate;\r\n this.cal.navigate(calDate);\r\n this.pop.close();\r\n //\r\n this.toolbar.update();\r\n }\r\n }\r\n\r\n}\r\n","import { Component, ElementRef, ChangeDetectorRef, ViewEncapsulation } from '@angular/core';\r\nimport { AXSchedulerBaseViewComponent } from '../scheduler-view.component';\r\nimport { AXSchedulerSlot } from '../../scheduler.class';\r\nimport { AXDateTime, AXDateTimeRange } from '@acorex/core';\r\n\r\n@Component({\r\n templateUrl: './scheduler-agenda-view.component.html',\r\n styleUrls: ['./scheduler-agenda-view.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerAgendaViewComponent }]\r\n})\r\nexport class AXSchedulerAgendaViewComponent extends AXSchedulerBaseViewComponent {\r\n constructor(\r\n private elm: ElementRef<HTMLDivElement>,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n super();\r\n }\r\n\r\n hideEmptyDays: boolean = true;\r\n\r\n updateSize() {\r\n }\r\n\r\n\r\n navigate(date: AXDateTime = new AXDateTime()) {\r\n this.slots = [];\r\n for (let i = 0; i < this.interval; i++) {\r\n let d = date.addDay(i);\r\n const range = new AXDateTimeRange(d, d);\r\n const slot: AXSchedulerSlot = {\r\n range,\r\n events: this.getEvents(range, 'day')\r\n }\r\n if (this.hideEmptyDays && slot.events.length === 0) {\r\n continue;\r\n }\r\n this.slots.push(slot);\r\n }\r\n this.navigatorDate = date;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n next(): void {\r\n this.navigate(this.navigatorDate.addDay(this.interval));\r\n }\r\n prev(): void {\r\n this.navigate(this.navigatorDate.addDay(-this.interval));\r\n }\r\n}\r\n","import { Component, OnInit, Input, ElementRef, ChangeDetectorRef, ViewEncapsulation } from '@angular/core';\r\nimport { AXSchedulerBaseViewComponent } from '../scheduler-view.component';\r\nimport { AXDateTime, AXDateTimeRange } from '@acorex/core';\r\nimport { AXSchedulerSlot } from '../../scheduler.class';\r\n\r\n@Component({\r\n templateUrl: './scheduler-timeline-view.component.html',\r\n styleUrls:['./scheduler-timeline-view.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerTimelineViewComponent }]\r\n})\r\nexport class AXSchedulerTimelineViewComponent extends AXSchedulerBaseViewComponent {\r\n constructor(private elm: ElementRef<HTMLDivElement>, private cdr: ChangeDetectorRef) { super(); }\r\n\r\n\r\n\r\n\r\n times: any[] = []\r\n\r\n //private hScroll: HTMLElement;\r\n private vScroll: HTMLElement;\r\n private container: HTMLElement;\r\n private view: HTMLElement;\r\n private header: HTMLElement;\r\n private body: HTMLElement;\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.vScroll = this.elm.nativeElement.querySelector<HTMLElement>(\".v-scroll\");\r\n //this.hScroll = this.elm.nativeElement.querySelector<HTMLElement>(\".h-scroll\");\r\n this.header = this.elm.nativeElement.querySelector<HTMLElement>(\".header\");\r\n this.body = this.elm.nativeElement.querySelector<HTMLElement>(\".body\");\r\n this.view = this.elm.nativeElement.querySelector<HTMLElement>(\".view\");\r\n\r\n this.container = this.elm.nativeElement.closest(\".view-container\") as HTMLElement;\r\n // this.hScroll.addEventListener(\"scroll\", () => {\r\n // this.updateSize();\r\n // });\r\n }\r\n\r\n\r\n updateSize(): void {\r\n // let firstTr = this.body.querySelector('tr');\r\n // if (firstTr) {\r\n // let index = 0;\r\n // this.header.querySelectorAll('th').forEach(c => {\r\n // let td = firstTr.children.item(index++) as HTMLElement;\r\n // td.style.width = `${c.offsetWidth}px`;\r\n // })\r\n // this.vScroll.style.height = `calc(100% - ${this.header.clientHeight}px)`;\r\n // //this.vScroll.style.width = `${this.hScroll.clientWidth + this.hScroll.scrollLeft}px`;\r\n // if (this.container)\r\n // this.view.style.height = `${this.container.clientHeight}px`;\r\n // }\r\n }\r\n\r\n navigate(date: AXDateTime = new AXDateTime()) {\r\n this.navigatorDate = date;\r\n this.times=[];\r\n this.slots = [];\r\n for (let i = 0; i < this.interval; i++) {\r\n let d = date.addDay(i);\r\n let range = new AXDateTimeRange(d, d);\r\n let slot: AXSchedulerSlot = {\r\n range: range,\r\n events: this.getEvents(range, \"day\")\r\n }\r\n this.slots.push(slot);\r\n }\r\n for (let i = 0; i < 24; i++) {\r\n this.times.push({\r\n display:('0' + i).slice(-2) + \":00\",\r\n value:i\r\n });\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n next(): void {\r\n this.navigate(this.navigatorDate.addDay(this.interval));\r\n }\r\n prev(): void {\r\n this.navigate(this.navigatorDate.addDay(-this.interval));\r\n }\r\n\r\n arrangeEvents()\r\n {\r\n \r\n }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectorRef, ElementRef, ViewChild } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\nimport { AXToolbarItem } from '../toolbar-item';\r\nimport { AXValueEvent } from '../../base/events.class';\r\nimport { AXBaseInputComponent } from '../../base/element.class';\r\n\r\n\r\n@Component({\r\n selector: 'ax-toolbar-search',\r\n templateUrl: './toolbar-search.component.html',\r\n styleUrls: ['./toolbar-search.component.scss'],\r\n providers: [{ provide: AXToolbarItem, useExisting: AXToolbarSearchComponent }]\r\n})\r\n\r\nexport class AXToolbarSearchComponent {\r\n constructor() { }\r\n\r\n private searchChangeObserver: any;\r\n\r\n @ViewChild('input', { static: true }) inputSearch: ElementRef;\r\n\r\n @Output()\r\n onValueChanged: EventEmitter<AXValueEvent<string>> = new EventEmitter<AXValueEvent<string>>();\r\n\r\n private _text: string;\r\n @Input()\r\n public get text(): string {\r\n return this._text;\r\n }\r\n public set text(v: string) {\r\n if (v !== this._text) {\r\n const old = this._text;\r\n this._text = v;\r\n this.onValueChanged.emit({\r\n component: this,\r\n value: v,\r\n oldValue: old\r\n });\r\n }\r\n }\r\n\r\n public focus() {\r\n this.inputSearch.nativeElement.focus();\r\n }\r\n\r\n onSearchChanged(text: string) {\r\n if (!this.searchChangeObserver) {\r\n Observable.create(observer => {\r\n\r\n this.searchChangeObserver = observer;\r\n })\r\n .pipe(debounceTime(500))\r\n .pipe(distinctUntilChanged())\r\n .subscribe(c => {\r\n this.text = c;\r\n });\r\n }\r\n this.searchChangeObserver.next(text);\r\n }\r\n}\r\n","import { EventEmitter } from '@angular/core';\r\n\r\n\r\n\r\nexport interface AXSortParams {\r\n field?: string;\r\n sort?: 'asc' | 'desc';\r\n}\r\nexport interface AXGroups {\r\n field?: string;\r\n}\r\n\r\nexport interface AXFilterParams {\r\n field?: string;\r\n filters?: AXFilterConditionParams[];\r\n}\r\n\r\nexport interface AXFilterConditionParams {\r\n dataType?: 'text' | 'number' | 'date';\r\n type?: 'contains' | 'equal' | 'notEqual';\r\n value?: any;\r\n}\r\n\r\nexport interface AXDataSourceReadParams {\r\n skip?: number;\r\n take?: number;\r\n sort?: AXSortParams;\r\n filter?: AXFilterParams[];\r\n searchText?: string;\r\n group?: AXDataSourceGroupParams;\r\n requestId?: any;\r\n extra?: any;\r\n}\r\n\r\nexport class AXDataSourceReceivedResult {\r\n result?: any;\r\n requestId?: any;\r\n}\r\n\r\nexport interface AXDataSourceGroupParams {\r\n parentData: any;\r\n keys: string[];\r\n fields: string[];\r\n}\r\n\r\n\r\nexport abstract class AXDataSourceRead {\r\n abstract fetch(params: AXDataSourceReadParams): void;\r\n abstract dataReceived: EventEmitter<any>;\r\n}","import { Component, ContentChild, EventEmitter, Input } from \"@angular/core\";\r\nimport { AXDataSourceReadParams, AXDataSourceRead, AXDataSourceReceivedResult } from './read-param';\r\nimport { AXBaseEvent, AXValueEvent } from '../base/events.class';\r\nimport { AXDataEvent } from '../base/events.class';\r\n\r\n\r\nexport class AXDataSourceReceivedEvent extends AXDataEvent<AXDataSourceReceivedResult>\r\n{\r\n\r\n}\r\n\r\n\r\n@Component({\r\n selector: \"ax-data-source\",\r\n template: \"<ng-content></ng-content>\"\r\n})\r\nexport class AXDataSourceComponent {\r\n\r\n onDataReceived: EventEmitter<AXDataSourceReceivedEvent> = new EventEmitter<AXDataSourceReceivedEvent>();\r\n onFetchStart: EventEmitter<AXBaseEvent> = new EventEmitter<AXBaseEvent>();\r\n\r\n @Input()\r\n provideData: (params: AXDataSourceReadParams) => Promise<any>;\r\n\r\n @Input()\r\n params: any;\r\n\r\n fetch(params: AXDataSourceReadParams) {\r\n this.onFetchStart.emit({ component: this });\r\n if (this.provideData) {\r\n if (params === null) {\r\n params = this.params === undefined ? null : this.params;\r\n } else {\r\n params.extra = this.params;\r\n }\r\n\r\n //\r\n this.provideData(params).then(_data => {\r\n const data: AXDataSourceReceivedResult = new AXDataSourceReceivedResult();\r\n data.result = _data;\r\n data.requestId = params == null ? null : params.requestId;\r\n this.onDataReceived.emit({\r\n component: this,\r\n data: data\r\n });\r\n });\r\n }\r\n }\r\n\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n ContentChild,\r\n Input,\r\n ViewEncapsulation,\r\n ElementRef,\r\n ViewChild,\r\n ComponentRef,\r\n Output,\r\n EventEmitter,\r\n ChangeDetectorRef,\r\n NgZone,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { AXSchedulerViewsProperty, AXSchedulerViewProperty } from './scheduler-views.property';\r\nimport { AXToolbarSchedulerViewsComponent } from './toolbars/scheduler-toolbar-views';\r\nimport { AXSchedulerDayTimeViewComponent } from './views/daytime/scheduler-daytime-view.component';\r\nimport { ComponentPortal, CdkPortalOutlet } from '@angular/cdk/portal';\r\nimport { AXSchedulerBaseViewComponent } from './views/scheduler-view.component';\r\nimport { AXSchedulerMonthViewComponent } from './views/month/scheduler-month-view.component';\r\nimport { AXToolbarSchedulerNavigatorComponent } from './toolbars/scheduler-toolbar-navigator';\r\nimport { AXSchedulerAgendaViewComponent } from './views/agenda/scheduler-agenda-view.component';\r\nimport { AXSchedulerTimelineViewComponent } from './views/timeline/scheduler-timeline-view.component';\r\nimport { AXSchedulerEventChangeArgs, AXSchedulerEvent } from './scheduler.class';\r\nimport { AXMenuItem, AXDateTime } from '@acorex/core';\r\nimport { AXToolbarSearchComponent } from '../../toolbar/search/toolbar-search.component';\r\nimport { AXDataSourceComponent } from '../../data-source/datasource.component';\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: 'ax-scheduler',\r\n templateUrl: './scheduler.component.html',\r\n styleUrls: ['./scheduler.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXSchedulerComponent {\r\n constructor(\r\n private elm: ElementRef<HTMLDivElement>,\r\n private zone: NgZone,\r\n private cdr: ChangeDetectorRef\r\n ) { }\r\n\r\n @ViewChild(CdkPortalOutlet, { static: true })\r\n private portalOutlet: CdkPortalOutlet\r\n\r\n\r\n @ViewChild('container', { static: true })\r\n private container: ElementRef<HTMLElement>;\r\n\r\n @ContentChild(AXSchedulerViewsProperty, { static: true })\r\n private viewManager: AXSchedulerViewsProperty;\r\n\r\n @ContentChild(AXToolbarSchedulerViewsComponent, { static: true })\r\n private toolbarView: AXToolbarSchedulerViewsComponent;\r\n @ContentChild(AXToolbarSchedulerNavigatorComponent, { static: true })\r\n private toolbarNavigator: AXToolbarSchedulerNavigatorComponent;\r\n\r\n @ContentChild(AXToolbarSearchComponent, { static: true })\r\n searchInput: AXToolbarSearchComponent;\r\n\r\n @ContentChild(AXDataSourceComponent, { static: true })\r\n private dataSource: AXDataSourceComponent;\r\n\r\n view: AXSchedulerBaseViewComponent;\r\n\r\n\r\n private _currentView: string;\r\n @Input()\r\n public get currentView(): string {\r\n return this._currentView;\r\n }\r\n public set currentView(v: string) {\r\n this.setView(v);\r\n }\r\n\r\n private viewItems: AXMenuItem[] = [];\r\n private today = new AXDateTime();\r\n private navigatorDate = new AXDateTime();\r\n searchText: string;\r\n\r\n @Input()\r\n events: AXSchedulerEvent[] = [];\r\n\r\n @Output()\r\n onEventChanged: EventEmitter<AXSchedulerEventChangeArgs> = new EventEmitter<AXSchedulerEventChangeArgs>();\r\n\r\n setView(name: string) {\r\n this._currentView = name;\r\n if (this.viewManager.views) {\r\n this.viewItems.forEach(c => {\r\n c.selected = false;\r\n });\r\n this.viewItems.find(c => c.name == name).selected = true;\r\n const selected = this.viewManager.views.find(c => c.name == name);\r\n this.createView(selected);\r\n }\r\n }\r\n\r\n\r\n private createView(selected: AXSchedulerViewProperty) {\r\n this.startAnim();\r\n if (this.view) {\r\n this.view.ngOnDestroy();\r\n }\r\n let portal: ComponentPortal<AXSchedulerBaseViewComponent>;\r\n this.portalOutlet.detach();\r\n let interval = selected.interval;\r\n if (selected.type === 'day') {\r\n portal = new ComponentPortal<AXSchedulerBaseViewComponent>(AXSchedulerDayTimeViewComponent);\r\n }\r\n if (selected.type === 'week') {\r\n portal = new ComponentPortal<AXSchedulerBaseViewComponent>(AXSchedulerDayTimeViewComponent);\r\n interval = selected.interval * 7;\r\n }\r\n if (selected.type === 'month') {\r\n portal = new ComponentPortal<AXSchedulerBaseViewComponent>(AXSchedulerMonthViewComponent);\r\n }\r\n if (selected.type === 'agenda') {\r\n portal = new ComponentPortal<AXSchedulerBaseViewComponent>(AXSchedulerAgendaViewComponent);\r\n }\r\n if (selected.type === 'timeline') {\r\n portal = new ComponentPortal<AXSchedulerBaseViewComponent>(AXSchedulerTimelineViewComponent);\r\n }\r\n const compRef: ComponentRef<AXSchedulerBaseViewComponent> = this.portalOutlet.attach(portal);\r\n this.view = compRef.instance;\r\n this.view.type = selected.type;\r\n this.view.interval = interval;\r\n //\r\n this.view.onEventChanged.subscribe(e => {\r\n this.onEventChanged.emit(e);\r\n });\r\n this.view.onNavigatorDateChanged.subscribe((e) => {\r\n this.navigatorDate = e;\r\n this.setNavigatorText();\r\n this.startAnim();\r\n });\r\n this.refresh();\r\n }\r\n\r\n private setNavigatorText() {\r\n if (this.toolbarNavigator) {\r\n this.toolbarNavigator.set(this.view.dateRange, this.view.type);\r\n }\r\n }\r\n\r\n private startAnim() {\r\n this.container.nativeElement.classList.remove('ax-anim-fade-in-fwd');\r\n this.container.nativeElement.style.opacity = '0';\r\n setTimeout(() => {\r\n this.container.nativeElement.classList.add('ax-anim-fade-in-fwd');\r\n }, 250);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(_ => {\r\n this.viewManager.views.forEach(v => {\r\n this.viewItems.push({\r\n groupName: 'view',\r\n name: v.name,\r\n text: v.caption\r\n });\r\n });\r\n //\r\n this.dataSource.onDataReceived.subscribe(e => {\r\n this.events = e;\r\n this.view.events = this.events;\r\n if (this.searchText && this.view.events && this.view.events.length) {\r\n this.navigatorDate = this.view.events[0].range.startTime;\r\n }\r\n if (this.navigatorDate) {\r\n this.view.navigate(this.navigatorDate);\r\n }\r\n else {\r\n this.view.navigate(this.today);\r\n }\r\n });\r\n //\r\n if (this.toolbarView) {\r\n this.toolbarView.onViewChanged.subscribe(c => {\r\n this.currentView = c;\r\n });\r\n this.toolbarView.items = this.viewItems;\r\n }\r\n //\r\n if (this.toolbarNavigator) {\r\n this.toolbarNavigator.onNavigate.subscribe(c => {\r\n if (c === 'next') {\r\n this.view.next();\r\n }\r\n else if (c === 'prev') {\r\n this.view.prev();\r\n }\r\n else {\r\n this.view.navigate(c);\r\n }\r\n });\r\n }\r\n if (this.searchInput) {\r\n this.searchInput.onValueChanged.subscribe(c => {\r\n this.searchText = c;\r\n if (c) {\r\n this.viewItems.forEach(c => { c.visible = false; });\r\n const x: AXSchedulerViewProperty = new AXSchedulerViewProperty('agenda', 'Search', 'VIEW_SEARCH');\r\n x.interval = 100;\r\n this.createView(x);\r\n this.refresh();\r\n }\r\n else {\r\n this.viewItems.forEach(c => { c.visible = true; });\r\n this.setView(this._currentView);\r\n }\r\n this.toolbarView.update();\r\n });\r\n }\r\n //\r\n this.setView(this.currentView);\r\n this.refresh();\r\n });\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n this.updateSize();\r\n }\r\n\r\n private updateSize() {\r\n this.zone.runOutsideAngular(() => {\r\n const toolbar = this.elm.nativeElement.querySelector<HTMLElement>(\r\n '.ax-scheduler-toolbar'\r\n );\r\n if (toolbar) {\r\n this.container.nativeElement.style.height = `calc(100% - ${toolbar.clientHeight}px)`;\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.portalOutlet.detach();\r\n }\r\n\r\n refresh() {\r\n this.dataSource.fetch({\r\n searchText: this.searchText,\r\n });\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'ax-toolbar',\r\n templateUrl: './toolbar.component.html',\r\n styleUrls: ['./toolbar.component.scss'],\r\n encapsulation:ViewEncapsulation.None\r\n})\r\nexport class AXToolbarComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void { }\r\n \r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { AXToolbarItem } from '../toolbar-item';\r\n\r\n@Component({\r\n selector: 'ax-toolbar-title',\r\n template: `\r\n <ng-container *ngIf=\"text; else elseTemplate\">\r\n <div class=\"title\">{{text}}</div>\r\n </ng-container>\r\n <ng-template #elseTemplate>\r\n <ng-content></ng-content>\r\n </ng-template>`,\r\n styles: [`\r\n .title{\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n }\r\n `],\r\n providers: [{ provide: AXToolbarItem, useExisting: AXToolbarTitleComponent }]\r\n})\r\nexport class AXToolbarTitleComponent {\r\n constructor() { }\r\n\r\n private _text: string;\r\n @Input()\r\n public get text(): string {\r\n return this._text;\r\n }\r\n public set text(v: string) {\r\n if (v !== this._text) {\r\n this._text = v;\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\r\nimport { AXToolbarItem } from \"../toolbar-item\";\r\nimport { AXBaseMenuItem } from '@acorex/core';\r\n\r\n@Component({\r\n selector: \"ax-toolbar-group-button\",\r\n template: `\r\n <div class=\"btn-group\" role=\"group\">\r\n <button\r\n type=\"button\"\r\n *ngFor=\"let item of items\"\r\n class=\"btn btn-sm {{ item.style }}\"\r\n [class.active]=\"item.selected\"\r\n (click)=\"onClick(item)\"\r\n [title]=\"item.tooltip\"\r\n >\r\n <i class=\"{{ item.icon }}\"></i>\r\n {{ item.text }}\r\n </button>\r\n </div>\r\n `,\r\n providers: [\r\n { provide: AXToolbarItem, useExisting: AXToolbarButtonGroupComponent }\r\n ]\r\n})\r\nexport class AXToolbarButtonGroupComponent {\r\n constructor() { }\r\n\r\n @Input()\r\n items: AXBaseMenuItem[] = [];\r\n\r\n @Output()\r\n itemClick: EventEmitter<AXBaseMenuItem> = new EventEmitter<AXBaseMenuItem>();\r\n\r\n @Input()\r\n mode: \"single\" | \"multiple\" = \"single\";\r\n\r\n onClick(item: AXBaseMenuItem) {\r\n if (this.mode == \"single\") {\r\n this.items.forEach(c => {\r\n c.selected = false;\r\n });\r\n item.selected = true;\r\n this.itemClick.emit(item);\r\n } else {\r\n if (item.selected) {\r\n item.selected = false;\r\n } else {\r\n item.selected = true;\r\n this.itemClick.emit(item);\r\n }\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n TemplateRef,\r\n ViewChild,\r\n ViewContainerRef,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { SubItemsEvent } from './menu-item.component';\r\nimport { Overlay, OverlayRef, ConnectedPosition } from '@angular/cdk/overlay';\r\nimport { TemplatePortal, ComponentPortal } from '@angular/cdk/portal';\r\nimport { AXMenuItem } from '@acorex/core';\r\n\r\n@Component({\r\n selector: 'ax-menu2',\r\n template: `\r\n <div class=\"ax ax-menu ax-menu-vertical\" [attr.data-level]=\"level\">\r\n <ax-menu-item\r\n *ngFor=\"let item of items\"\r\n [level]=\"level\"\r\n [item]=\"item\"\r\n (showSubMenu)=\"showSubmenu($event)\">\r\n </ax-menu-item>\r\n </div>\r\n `,\r\n styleUrls: ['./menu2.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXMenu2Component implements OnDestroy {\r\n subItemsOverlays = new Array<OverlayRef>();\r\n level: number = 0;\r\n\r\n @Input() items: AXMenuItem[];\r\n @Output() selected = new EventEmitter<AXMenuItem>();\r\n //@ViewChild(TemplateRef) template;\r\n\r\n constructor(\r\n private overlay: Overlay,\r\n private viewContainerRef: ViewContainerRef,\r\n private elementRef: ElementRef\r\n ) { }\r\n\r\n showSubmenu(event: SubItemsEvent) {\r\n const position: ConnectedPosition[] = [];\r\n if (event.level === 0) {\r\n position.push({\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n });\r\n } else {\r\n position.push({\r\n originX: 'end',\r\n originY: 'top',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n });\r\n }\r\n\r\n const positionStrategy = this.overlay\r\n .position()\r\n .flexibleConnectedTo(event.element)\r\n .withPositions(position);\r\n const overlayRef = this.overlay.create({\r\n positionStrategy,\r\n hasBackdrop: false,\r\n backdropClass: 'cdk-overlay-transparent-backdrop'\r\n });\r\n this.subItemsOverlays.push(overlayRef);\r\n const portal = new ComponentPortal(AXMenu2Component, this.viewContainerRef);\r\n\r\n const com = overlayRef.attach(portal);\r\n com.instance.level = event.level + 1;\r\n com.instance.items = event.item.items;\r\n }\r\n\r\n @HostListener('document:click', ['$event.target'])\r\n public onDocumentClick(target) {\r\n const clickedInside = this.elementRef.nativeElement.contains(target);\r\n if (!clickedInside) {\r\n this.hideOverlays();\r\n }\r\n }\r\n\r\n hideOverlays() {\r\n this.subItemsOverlays.forEach((o) => o.dispose());\r\n this.subItemsOverlays.length = 0;\r\n }\r\n ngOnDestroy() {\r\n this.hideOverlays();\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { AXMenuItem } from '@acorex/core';\r\n\r\n@Component({\r\n selector: 'ax-menu-item',\r\n template: `\r\n <div class=\"ax-menu-item {{item.style}}\" [attr.data-level]=\"level\" (click)=\"showSubItems($event)\" [ngClass]=\"{'disabled': item.disable}\" >\r\n <i *ngIf=\"item.startIcon\" class=\"icon {{item.startIcon}}\"></i>\r\n <span class=\"text\">{{ item.text }}</span>\r\n <i *ngIf=\"item.endIcon\" class=\"icon {{item.endIcon}}\"></i>\r\n <i class=\"far fa-angle-down icon drop-icon\" *ngIf=\"item?.items?.length && item.text\"></i>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXMenuItemComponent {\r\n @Input() item: AXMenuItem;\r\n @Input() level: number;\r\n @Output() showSubMenu = new EventEmitter<SubItemsEvent>();\r\n\r\n constructor(private element: ElementRef) { }\r\n\r\n showSubItems(event: Event) {\r\n event.stopPropagation();\r\n if (this.item?.items?.length) {\r\n this.showSubMenu.emit({ item: this.item, element: this.element, level: this.level });\r\n }\r\n }\r\n}\r\nexport interface SubItemsEvent {\r\n element: ElementRef;\r\n item: AXMenuItem;\r\n level: number;\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXMenuComponent } from './menu.component';\r\nimport { AXMenu2Component } from './menu2.component';\r\nimport { AXMenuItemComponent } from './menu-item.component';\r\n@NgModule({\r\n declarations: [AXMenuComponent, AXMenu2Component, AXMenuItemComponent],\r\n imports: [CommonModule],\r\n exports: [AXMenuComponent, AXMenu2Component, AXMenuItemComponent],\r\n providers: []\r\n})\r\nexport class AXMenuModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXToolbarComponent } from './toolbar.component';\r\nimport { AXToolbarMenuComponent } from './menu/toolbar-menu.component';\r\nimport { AXToolbarSearchComponent } from './search/toolbar-search.component';\r\nimport { AXToolbarTitleComponent } from './title/toolbar-title.component';\r\nimport { AXToolbarButtonGroupComponent } from './group-button/toolbar-group-button.component';\r\nimport { AXPopoverModule } from '../popover/popover.module';\r\nimport { AXMenuModule } from '../menu/menu.module';\r\n\r\nconst COMPONENTS = [\r\n AXToolbarComponent,\r\n AXToolbarMenuComponent,\r\n AXToolbarSearchComponent,\r\n AXToolbarTitleComponent,\r\n AXToolbarButtonGroupComponent\r\n]\r\n\r\n@NgModule({\r\n declarations: [COMPONENTS],\r\n imports: [CommonModule, AXPopoverModule, AXMenuModule],\r\n exports: [COMPONENTS],\r\n providers: [],\r\n})\r\nexport class AXToolbarModule { }","import { NgModule } from '@angular/core';\r\nimport { AXSchedulerComponent } from './scheduler.component';\r\nimport { AXSchedulerViewsProperty, AXSchedulerViewProperty } from './scheduler-views.property';\r\nimport { AXSchedulerDayTimeViewComponent } from './views/daytime/scheduler-daytime-view.component';\r\nimport { AXToolbarSchedulerViewsComponent } from './toolbars/scheduler-toolbar-views';\r\nimport { AXCoreModule } from '@acorex/core';\r\nimport { AXSchedulerMonthViewComponent } from './views/month/scheduler-month-view.component';\r\nimport { PortalModule } from '@angular/cdk/portal';\r\nimport { AXToolbarSchedulerNavigatorComponent } from './toolbars/scheduler-toolbar-navigator';\r\nimport { AXSchedulerAgendaViewComponent } from './views/agenda/scheduler-agenda-view.component';\r\nimport { AXSchedulerTimelineViewComponent } from './views/timeline/scheduler-timeline-view.component';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { AXCalendarBoxModule } from '../calendar-box/calendar-box.module';\r\n\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXToolbarModule } from '../../toolbar/toolbar.module';\r\nimport { AXPopoverModule } from '../../popover/popover.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n AXSchedulerComponent,\r\n AXSchedulerViewsProperty,\r\n AXSchedulerViewProperty,\r\n AXSchedulerDayTimeViewComponent,\r\n AXSchedulerMonthViewComponent,\r\n AXSchedulerAgendaViewComponent,\r\n AXSchedulerTimelineViewComponent,\r\n AXToolbarSchedulerViewsComponent,\r\n AXToolbarSchedulerNavigatorComponent\r\n ],\r\n imports: [CommonModule,AXCoreModule, AXCalendarBoxModule, AXToolbarModule, AXPopoverModule, PortalModule, DragDropModule],\r\n exports: [\r\n AXSchedulerComponent,\r\n AXSchedulerViewsProperty,\r\n AXSchedulerViewProperty,\r\n AXSchedulerDayTimeViewComponent,\r\n AXSchedulerMonthViewComponent,\r\n AXSchedulerAgendaViewComponent,\r\n AXSchedulerTimelineViewComponent,\r\n AXToolbarSchedulerViewsComponent,\r\n AXToolbarSchedulerNavigatorComponent\r\n ],\r\n entryComponents: [\r\n AXSchedulerMonthViewComponent,\r\n AXSchedulerDayTimeViewComponent,\r\n AXSchedulerAgendaViewComponent,\r\n AXSchedulerTimelineViewComponent\r\n ],\r\n providers: [],\r\n})\r\nexport class AXSchedulerModule { }","import {\r\n Component,\r\n ViewEncapsulation,\r\n Output,\r\n EventEmitter,\r\n Input,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n ViewChild,\r\n ElementRef\r\n} from '@angular/core';\r\nimport { AXBaseComponent, AXBaseSizableComponent, AXBaseValueComponent, AXElementSize } from '../base/element.class';\r\nimport { AXValueEvent, AXHtmlEvent } from '../base/events.class';\r\n\r\nexport class AXCheckBoxItemClick extends AXHtmlEvent<MouseEvent>\r\n{\r\n value?: boolean;\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'ax-check-box',\r\n templateUrl: './checkbox.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXCheckBoxComponent extends AXBaseComponent implements AXBaseSizableComponent, AXBaseValueComponent<boolean> {\r\n @ViewChild('input', { static: true }) input: ElementRef<HTMLInputElement>;\r\n\r\n @Input()\r\n readonly: boolean = false;\r\n\r\n @Input()\r\n disabled: boolean = false;\r\n\r\n @Input()\r\n size: AXElementSize = 'md';\r\n\r\n @Input()\r\n label: string = '';\r\n\r\n @Input()\r\n tabIndex: number = 0;\r\n\r\n @Input()\r\n indeterminate: boolean = false;\r\n\r\n focus(): void { }\r\n constructor(protected cdr: ChangeDetectorRef, private ref: ElementRef) {\r\n super();\r\n }\r\n // Value\r\n @Output()\r\n onValueChanged: EventEmitter<AXValueEvent<boolean>> = new EventEmitter<AXValueEvent<boolean>>();\r\n @Output()\r\n valueChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n //\r\n @Output()\r\n onClick: EventEmitter<AXCheckBoxItemClick> = new EventEmitter<AXCheckBoxItemClick>();\r\n\r\n private _value?: boolean = false;\r\n public get value(): boolean {\r\n return this._value;\r\n }\r\n\r\n @Input()\r\n public set value(v: boolean) {\r\n if (v != this._value) {\r\n const old = this._value;\r\n this._value = v;\r\n this.valueChange.emit(v);\r\n this.onValueChanged.emit({\r\n component: this,\r\n value: v,\r\n oldValue: old,\r\n htmlElement: this.ref.nativeElement\r\n });\r\n }\r\n }\r\n\r\n\r\n // handelChange(e) {\r\n // const val = e.target.checked;\r\n // this.value = val;\r\n // }\r\n\r\n ngOnInit(): void {\r\n if (!this.indeterminate && this.value == null) {\r\n this.value = false;\r\n }\r\n }\r\n\r\n handleClick(e: MouseEvent) {\r\n if (!this.disabled && !this.readonly) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n //TODO: check intermddiate;\r\n this.value = !this.value;\r\n this.onClick.emit({\r\n component: this,\r\n htmlElement: this.ref.nativeElement,\r\n htmlEvent: e,\r\n value: this.value\r\n });\r\n }\r\n\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 { AXCheckBoxComponent } from './checkbox.component';\r\n@NgModule({\r\n declarations: [AXCheckBoxComponent],\r\n imports: [CommonModule, FormsModule],\r\n exports: [AXCheckBoxComponent],\r\n providers: []\r\n})\r\nexport class AXCheckBoxModule { }\r\n","import { Component, Input, ElementRef, HostListener, ViewChild, Output, EventEmitter } from '@angular/core';\r\nimport { AXMenuItem } from '@acorex/core';\r\nimport { AXElementSize } from '../base/element.class';\r\nimport { AXBaseEvent } from '../base/events.class';\r\n\r\n@Component({\r\n selector: 'ax-context-menu',\r\n templateUrl: './context-menu.component.html',\r\n host: { class: 'ax context-menu-container' }\r\n})\r\nexport class AXContextMenuComponent {\r\n @Input()\r\n size: AXElementSize = 'md';\r\n\r\n @Input()\r\n width: number;\r\n\r\n @Input()\r\n items: AXMenuItem[] = [];\r\n\r\n @Output()\r\n onItemClick: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onClosed: EventEmitter<AXBaseEvent> = new EventEmitter<AXBaseEvent>();\r\n\r\n @ViewChild('contex')\r\n contex: ElementRef<HTMLUListElement>;\r\n\r\n\r\n\r\n show: boolean = false;\r\n\r\n constructor(private container: ElementRef) {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n }\r\n\r\n close() {\r\n this.show = false;\r\n this.onClosed.emit({\r\n component: this\r\n });\r\n }\r\n\r\n\r\n\r\n open(_left, _top, _rtl = false) {\r\n this.show = true;\r\n setTimeout(() => {\r\n const containRec = this.container.nativeElement.getBoundingClientRect();\r\n let left = _rtl === false ? _left : _left - containRec.width;\r\n let top = _top;\r\n if (_rtl === false && _left + containRec.width > window.innerWidth) {\r\n left = window.innerWidth - containRec.width;\r\n } else if (_rtl === true && _left - containRec.width < 0) {\r\n left = 0;\r\n }\r\n if (top + containRec.height > window.innerHeight) {\r\n top = _top - containRec.height;\r\n }\r\n this.container.nativeElement.style.left = left + 'px';\r\n this.container.nativeElement.style.top = top + 'px';\r\n\r\n }, 5);\r\n\r\n\r\n }\r\n\r\n\r\n\r\n handleClickItem(item: AXMenuItem) {\r\n if (!item.disable || item.disable === undefined) {\r\n this.onItemClick.emit(item);\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, Input, Output, EventEmitter, ComponentFactoryResolver, Injector, ViewContainerRef } from '@angular/core';\r\nimport { AXMenuItem } from '@acorex/core';\r\nimport { AXBaseEvent } from '../base/events.class';\r\nimport { AXContextMenuComponent } from './context-menu.component';\r\nimport { Subscription } from 'rxjs';\r\n\r\nexport type AXContextMenuPromiseFunction = (item: any) => Promise<AXMenuItem[]>;\r\nexport type AXContextMenuFunction = (item: any) => AXMenuItem[];\r\nexport class AXContextMenuItemClickEvent extends AXBaseEvent {\r\n dataItem?: any;\r\n menuItem: AXMenuItem;\r\n}\r\n\r\n@Directive({\r\n selector: '[axContextMenu]'\r\n})\r\nexport class AXContextMenuDirective {\r\n @Input()\r\n contextMenu: AXContextMenuComponent;\r\n\r\n @Input()\r\n contextDataItem: any;\r\n\r\n @Input()\r\n contextMenuItems: AXMenuItem[] | AXContextMenuPromiseFunction | AXContextMenuFunction;\r\n\r\n @Output()\r\n onContextMenuItemClick: EventEmitter<AXContextMenuItemClickEvent> = new EventEmitter<AXContextMenuItemClickEvent>();\r\n\r\n @Input()\r\n rtl: boolean = false;\r\n\r\n internalItems: AXMenuItem[] = [];\r\n\r\n private clickSubscribe: Subscription;\r\n private closeSubscribe: Subscription;\r\n\r\n @HostListener('contextmenu', ['$event'])\r\n onContextMenu(e: MouseEvent) {\r\n this.getMenuItems().then(items => {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n this.createContextMenu();\r\n this.contextMenu.items = items;\r\n\r\n\r\n this.contextMenu.open(e.x, e.y, this.rtl);\r\n\r\n\r\n });\r\n }\r\n\r\n\r\n\r\n constructor(\r\n private ref: ElementRef,\r\n private factoryResolver: ComponentFactoryResolver,\r\n private viewContainerRef: ViewContainerRef,\r\n private injector: Injector\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.rtl == null) {\r\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\r\n }\r\n }\r\n\r\n createContextMenu(): void {\r\n const wrapper = document.createElement('div');\r\n wrapper.classList.add('ax-overlay-wrapper');\r\n wrapper.addEventListener('click', this.wrapperClick.bind(this));\r\n wrapper.addEventListener('contextmenu', this.wrapperRClick.bind(this));\r\n //\r\n document.body.appendChild(wrapper);\r\n const factory = this.factoryResolver.resolveComponentFactory(AXContextMenuComponent);\r\n const componentRef = this.viewContainerRef.createComponent(factory);\r\n this.contextMenu = componentRef.instance;\r\n wrapper.appendChild(componentRef.location.nativeElement);\r\n //\r\n this.clearComponentSubscriptions();\r\n this.createComponentSubscriptions();\r\n }\r\n\r\n wrapperClick(e: MouseEvent) {\r\n this.remove();\r\n }\r\n\r\n wrapperRClick(e: MouseEvent) {\r\n if (document.elementsFromPoint(e.clientX, e.clientY).includes(this.ref.nativeElement)) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n this.contextMenu.open(e.x, e.y, this.rtl);\r\n }\r\n else {\r\n e.preventDefault();\r\n this.remove();\r\n }\r\n }\r\n\r\n\r\n\r\n private clearComponentSubscriptions() {\r\n if (this.clickSubscribe) {\r\n this.clickSubscribe.unsubscribe();\r\n this.clickSubscribe = undefined;\r\n }\r\n if (this.closeSubscribe) {\r\n this.closeSubscribe.unsubscribe();\r\n this.closeSubscribe = undefined;\r\n }\r\n }\r\n\r\n private createComponentSubscriptions() {\r\n this.clickSubscribe = this.contextMenu.onItemClick.subscribe(c => {\r\n this.remove();\r\n this.onContextMenuItemClick.emit({\r\n component: this,\r\n dataItem: this.contextDataItem,\r\n htmlElement: this.ref.nativeElement,\r\n menuItem: c\r\n });\r\n });\r\n this.closeSubscribe = this.contextMenu.onClosed.subscribe(c => {\r\n this.clearComponentSubscriptions();\r\n });\r\n }\r\n\r\n private remove() {\r\n this.viewContainerRef.clear();\r\n this.clearComponentSubscriptions();\r\n document.querySelector('.ax-overlay-wrapper')?.remove();\r\n }\r\n\r\n private getMenuItems(): Promise<AXMenuItem[]> {\r\n return new Promise<AXMenuItem[]>((resolve, reject) => {\r\n if (typeof (this.contextMenuItems) === 'function') {\r\n const val = this.contextMenuItems(this.contextDataItem);\r\n if (val instanceof Promise) {\r\n val.then(_data => {\r\n resolve(_data);\r\n });\r\n } else {\r\n resolve(val);\r\n }\r\n } else if (Array.isArray(this.contextMenuItems)) {\r\n resolve(this.contextMenuItems);\r\n }\r\n else {\r\n resolve([]);\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.clearComponentSubscriptions();\r\n }\r\n}\r\n","import { NgModule, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXContextMenuComponent } from './context-menu.component';\r\nimport { AXContextMenuDirective } from './context-menu.directive';\r\n\r\n\r\n@NgModule({\r\n declarations: [AXContextMenuComponent, AXContextMenuDirective],\r\n imports: [CommonModule],\r\n exports: [AXContextMenuComponent, AXContextMenuDirective],\r\n providers: [],\r\n})\r\nexport class AXContextMenuModule {\r\n\r\n}","import { Input, ChangeDetectorRef, EventEmitter, Output, Directive } from '@angular/core';\r\n\r\nexport interface AXFilterColumn {\r\n field: string;\r\n caption: string;\r\n type?: 'text' | 'selection' | 'date' | 'number';\r\n options?: any;\r\n}\r\n\r\nexport interface AXFilterColumnGroup {\r\n caption?: string;\r\n columns: AXFilterColumn[];\r\n}\r\n\r\nexport interface AXFilterCondition {\r\n field: string;\r\n condition: string;\r\n dataType: 'string' | 'date' | 'datetime' | 'time' | 'number';\r\n value: any;\r\n}\r\n\r\nexport interface AXFilterPredefined {\r\n name: string;\r\n title: string;\r\n value: AXFilterCondition[];\r\n}\r\n\r\n@Directive()\r\nexport abstract class AXFilterColumnComponent {\r\n\r\n constructor(protected cdr: ChangeDetectorRef) {\r\n\r\n }\r\n operator: string = 'equal';\r\n value: any = null;\r\n @Input()\r\n field: string = null;\r\n\r\n @Output()\r\n valueChange: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n\r\n @Output()\r\n activeChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n private _active: boolean;\r\n @Input()\r\n public get active(): boolean {\r\n return this._active;\r\n }\r\n public set active(v: boolean) {\r\n this._active = v;\r\n this.activeChange.emit(v);\r\n }\r\n\r\n\r\n abstract get condition(): AXFilterCondition;\r\n\r\n clear() {\r\n this.active = false;\r\n this.value = null;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setFilter(value: any, operator: string) {\r\n this.active = true;\r\n this.operator = operator;\r\n this.value = value;\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n\r\n\r\n","import { Component, Input, ChangeDetectionStrategy, ChangeDetectorRef, ViewEncapsulation, EventEmitter } from '@angular/core';\r\nimport { Output } from '@angular/core';\r\nimport { AXSelectionList } from '@acorex/core';\r\nimport { AXBaseComponent, AXBaseSizableComponent, AXBaseValueComponent, AXElementSize } from '../base/element.class';\r\n\r\n@Component({\r\n selector: 'ax-selection-list',\r\n templateUrl: './selection-list.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXSelectionListComponent extends AXBaseComponent\r\n implements AXBaseSizableComponent {\r\n private _selectedItems: any[] = [];\r\n\r\n @Input()\r\n readonly: boolean;\r\n\r\n @Input()\r\n value: boolean;\r\n\r\n @Input()\r\n disabled: boolean;\r\n\r\n @Input()\r\n size: AXElementSize = 'md';\r\n\r\n @Input()\r\n direction: string = 'horizontal';\r\n\r\n @Input()\r\n items: Array<AXSelectionList> = [];\r\n\r\n @Input()\r\n mode: string = 'single';\r\n\r\n @Input()\r\n textField: string = 'text';\r\n\r\n @Input()\r\n valueField: string = 'value';\r\n\r\n @Output()\r\n selectedItemsChange: EventEmitter<any[]> = new EventEmitter<any[]>();\r\n\r\n @Input()\r\n public get selectedItems(): any[] {\r\n return this._selectedItems || [];\r\n }\r\n public set selectedItems(v: any[]) {\r\n this._selectedItems = v;\r\n this.selectedItemsChange.emit(this.selectedItems);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n @Output()\r\n selectedValuesChange: EventEmitter<any[]> = new EventEmitter<any[]>();\r\n\r\n @Input()\r\n public get selectedValues(): any[] {\r\n return this._selectedItems.map(c => c[this.valueField]) || [];\r\n }\r\n public set selectedValues(v: any[]) {\r\n const old = this.selectedValues;\r\n if (v == null) {\r\n v = [];\r\n }\r\n if (JSON.stringify(old) != JSON.stringify(v)) {\r\n this.selectedItems = this.items.filter(c => v.includes(c[this.valueField]));\r\n this.selectedValuesChange.emit(this.selectedValues);\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n constructor(private cdr: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n onCheckValueChange(value: any, checked: boolean) {\r\n if(!this.disabled){\r\n if (this.mode === 'single') {\r\n this.selectedValues = [value];\r\n } else {\r\n if (checked) {\r\n if (!this.selectedValues.includes(value)) {\r\n this.selectedValues = [...this.selectedValues, ...[value]];\r\n }\r\n } else {\r\n this.selectedValues = this.selectedValues.filter(c => c !== value);\r\n }\r\n }\r\n }\r\n \r\n }\r\n focus(): void {\r\n }\r\n\r\n onvalueChanged(e) {\r\n if(!this.disabled){\r\n this.selectedItemsChange.emit([e]);\r\n\r\n }\r\n }\r\n}\r\n","import { Component, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild, EventEmitter, Output } from '@angular/core';\r\nimport { AXFilterCondition, AXFilterColumnComponent } from '../filter.class';\r\nimport { AXDateTime } from '@acorex/core';\r\nimport { AXSelectionListComponent } from '../../selection-list/selection-list.component';\r\n\r\n@Component({\r\n selector: 'ax-filter-column-date',\r\n template: `\r\n <div class=\"ax-filter-section\">\r\n <ax-selection-list [items]=\"items\" mode=\"single\" direction=\"vertical\" (selectedItemsChange)=\"onSelectedChanged($event)\">\r\n </ax-selection-list>\r\n </div>\r\n <div class=\"ax-filter-section-value\" [hidden]=\"!showCustom\">\r\n <ax-date-picker label=\"From\" [(value)]=\"fromDate\" (onValueChanged)=\"dateChange($event)\"></ax-date-picker>\r\n <ax-date-picker label=\"To\" [(value)]=\"toDate\" (onValueChanged)=\"dateChange($event)\"></ax-date-picker>\r\n </div>\r\n <div class=\"ax-filter-section-value\" [hidden]=\"!showSpecific\">\r\n <ax-date-picker label=\"Date\" [(value)]=\"fromDate\" (onValueChanged)=\"dateChange($event)\"></ax-date-picker> \r\n </div>\r\n `,\r\n providers: [\r\n { provide: AXFilterColumnComponent, useExisting: AXFilterColumnDateComponent }\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXFilterColumnDateComponent extends AXFilterColumnComponent {\r\n @ViewChild(AXSelectionListComponent, { static: true }) selection: AXSelectionListComponent;\r\n\r\n items: any = [\r\n {\r\n text: 'Today',\r\n value: 'today'\r\n },\r\n {\r\n text: 'This Week',\r\n value: 'this-week'\r\n },\r\n {\r\n text: 'This Month',\r\n value: 'this-month'\r\n },\r\n {\r\n text: 'This Year',\r\n value: 'this-year'\r\n },\r\n {\r\n text: 'Specific',\r\n value: 'specific'\r\n },\r\n {\r\n text: 'Range',\r\n value: 'range'\r\n }\r\n ];\r\n\r\n fromDate: AXDateTime = new AXDateTime();\r\n toDate: AXDateTime = new AXDateTime();\r\n\r\n selectedItem: any = null;\r\n\r\n showCustom: boolean = false;\r\n showSpecific: boolean = false;\r\n\r\n constructor(protected cdr: ChangeDetectorRef) {\r\n super(cdr);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.selection.selectedItems = [this.items[0]];\r\n }\r\n dateChange(e) {\r\n this.valueChange.emit();\r\n }\r\n onSelectedChanged(items: any[]) {\r\n\r\n this.selectedItem = items[0];\r\n this.showCustom = this.selectedItem && this.selectedItem.value == 'range';\r\n this.showSpecific = this.selectedItem && this.selectedItem.value == 'specific';\r\n this.cdr.detectChanges();\r\n this.valueChange.emit();\r\n }\r\n\r\n get condition(): AXFilterCondition {\r\n let today = new AXDateTime();\r\n switch (this.selectedItem.value) {\r\n case 'today':\r\n this.fromDate = this.toDate = today;\r\n\r\n return {\r\n condition: 'equal',\r\n field: this.field,\r\n dataType: 'date',\r\n value: this.fromDate.toISOString()\r\n }\r\n case 'specific':\r\n return {\r\n condition: 'equal',\r\n field: this.field,\r\n dataType: 'date',\r\n value: this.fromDate.toISOString()\r\n }\r\n case 'this-week':\r\n this.toDate = today.endOf('week');\r\n this.fromDate = today.startOf('week');\r\n break;\r\n case 'this-month':\r\n this.toDate = today.endOf('month')\r\n this.fromDate = today.startOf('month');\r\n break;\r\n case 'this-year':\r\n this.toDate = today.endOf('year')\r\n this.fromDate = today.startOf('year');\r\n break;\r\n }\r\n\r\n return {\r\n condition: 'between',\r\n field: this.field,\r\n dataType: 'date',\r\n value: [this.fromDate.toISOString(), this.toDate.toISOString()]\r\n }\r\n }\r\n}\r\n","import { Component, ChangeDetectorRef } from '@angular/core';\r\nimport { AXFilterCondition, AXFilterColumnComponent } from '../filter.class';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\n\r\nimport { Observable } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'ax-filter-column-number',\r\n template: `\r\n <div class=\"ax-filter-section\">\r\n <div>\r\n <select (ngModelChange)=\"onOperatorChange($event)\" class=\"form-control form-control-sm\" [(ngModel)]=\"operator\">\r\n <option *ngFor=\"let o of operators\" value=\"{{o.value}}\">\r\n {{o.title}}\r\n </option>\r\n </select>\r\n </div>\r\n <div>\r\n <ax-text-box placeholder=\"Type here\" (textChange)=\"onTextChange($event)\" [(value)]=\"value\" *ngIf=\"operator!='is-not-empty' && operator!='is-empty'\">\r\n </ax-text-box>\r\n </div>\r\n</div>\r\n `,\r\n providers: [\r\n { provide: AXFilterColumnComponent, useExisting: AXFilterColumnNumberComponent }\r\n ]\r\n})\r\nexport class AXFilterColumnNumberComponent extends AXFilterColumnComponent {\r\n\r\n operator: string = 'equal';\r\n\r\n operators: any[] = [\r\n {\r\n title: 'is',\r\n value: 'equal'\r\n },\r\n {\r\n title: `isn't`,\r\n value: 'not-equal'\r\n },\r\n {\r\n title: 'less than',\r\n value: 'less-than'\r\n },\r\n {\r\n title: 'less than or equal',\r\n value: 'less-than-equal'\r\n },\r\n {\r\n title: 'greater than',\r\n value: 'greater-than'\r\n },\r\n {\r\n title: 'greater than or equal',\r\n value: 'greater-than-equal'\r\n },\r\n {\r\n title: 'is empty',\r\n value: 'is-empty'\r\n },\r\n {\r\n title: `isn't empty`,\r\n value: 'is-not-empty'\r\n }\r\n ];\r\n constructor(protected cdr: ChangeDetectorRef) {\r\n super(cdr);\r\n }\r\n private searchChangeObserver: any;\r\n onOperatorChange(e) {\r\n\r\n this.valueChange.emit();\r\n\r\n }\r\n onTextChange(e) {\r\n // TODO: Check this method work correctly\r\n if (!this.searchChangeObserver) {\r\n return new Observable(observer => {\r\n this.searchChangeObserver = observer;\r\n })\r\n .pipe(debounceTime(500))\r\n .pipe(distinctUntilChanged())\r\n .subscribe(c => {\r\n this.valueChange.emit();\r\n });\r\n }\r\n this.searchChangeObserver.next(e);\r\n }\r\n\r\n get condition(): AXFilterCondition {\r\n return {\r\n condition: this.operator,\r\n field: this.field,\r\n dataType: 'number',\r\n value: this.value\r\n };\r\n }\r\n\r\n}\r\n","import { Component, Input, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';\r\nimport { AXFilterCondition, AXFilterColumnComponent } from '../filter.class';\r\nimport { AXCheckItem } from '@acorex/core';\r\n\r\n@Component({\r\n selector: 'ax-filter-column-selection',\r\n template: `\r\n <div class=\"ax-filter-section\">\r\n <ax-selection-list [items]=\"items\" (selectedItemsChange)=\"onSelectChange($event)\" [mode]=\"mode\" direction=\"vertical\" [(selectedItems)]=\"selectedItems\">\r\n </ax-selection-list>\r\n </div>\r\n `,\r\n providers: [\r\n { provide: AXFilterColumnComponent, useExisting: AXFilterColumnSelectionComponent }\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXFilterColumnSelectionComponent extends AXFilterColumnComponent {\r\n\r\n\r\n selectedItems: any[] = [];\r\n\r\n @Input()\r\n items: AXCheckItem[] = [];\r\n\r\n @Input()\r\n mode = 'single';\r\n\r\n @Input()\r\n dataType: any = 'number';\r\n\r\n\r\n\r\n constructor(protected cdr: ChangeDetectorRef) {\r\n super(cdr);\r\n }\r\n\r\n get condition(): AXFilterCondition {\r\n const values = this.selectedItems.map(c => c.value);\r\n if (values.length === 0) {\r\n return null;\r\n\r\n }\r\n return {\r\n condition: this.mode === 'single' ? 'equal' : 'contains',\r\n field: this.field,\r\n dataType: this.dataType,\r\n value: this.mode === 'single' ? values[0] : values\r\n }\r\n }\r\n clear() {\r\n this.selectedItems = [];\r\n super.clear();\r\n }\r\n onSelectChange(e) {\r\n this.valueChange.emit();\r\n\r\n }\r\n\r\n setFilter(value: any, operator: string) {\r\n if (value instanceof Array) {\r\n this.selectedItems = this.items.filter(c => value.some(z => z === c.value));\r\n }\r\n else {\r\n this.selectedItems = [this.items.find(c => c.value === value)];\r\n }\r\n super.setFilter(value, operator);\r\n }\r\n}\r\n","import { Component,ChangeDetectorRef } from '@angular/core';\r\nimport { AXFilterCondition, AXFilterColumnComponent } from '../filter.class';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\nimport { Observable } from 'rxjs';\r\n@Component({\r\n selector: 'ax-filter-column-string',\r\n template: `\r\n <div class=\"ax-filter-section\">\r\n <div>\r\n <select (ngModelChange)=\"onOperatorChange($event)\" class=\"form-control form-control-sm\" [(ngModel)]=\"operator\">\r\n <option *ngFor=\"let o of operators\" value=\"{{o.value}}\">\r\n {{o.title}}\r\n </option>\r\n </select>\r\n </div>\r\n <div>\r\n <ax-text-box placeholder=\"Type here\" (textChange)=\"onTextChange($event)\" [(value)]=\"value\" *ngIf=\"operator!='is-not-empty' && operator!='is-empty'\">\r\n </ax-text-box>\r\n </div>\r\n</div>\r\n `,\r\n providers: [\r\n { provide: AXFilterColumnComponent, useExisting: AXFilterColumnStringComponent }\r\n ]\r\n})\r\nexport class AXFilterColumnStringComponent extends AXFilterColumnComponent {\r\n\r\n\r\n operator: string = 'contains';\r\n operators: any[] = [\r\n {\r\n title: 'is',\r\n value: 'equal'\r\n },\r\n {\r\n title: `isn't`,\r\n value: 'not-equal'\r\n },\r\n {\r\n title: 'contains',\r\n value: 'contains'\r\n },\r\n {\r\n title: 'not contains',\r\n value: 'not-contains'\r\n },\r\n {\r\n title: 'start with',\r\n value: 'start-with'\r\n },\r\n {\r\n title: 'end with',\r\n value: 'end-with'\r\n },\r\n {\r\n title: 'is empty',\r\n value: 'is-empty'\r\n },\r\n {\r\n title: `isn't empty`,\r\n value: 'is-not-empty'\r\n }\r\n ];\r\n\r\n constructor(protected cdr: ChangeDetectorRef) {\r\n super(cdr);\r\n }\r\n\r\n private searchChangeObserver: any;\r\n\r\n onOperatorChange(e) {\r\n\r\n this.valueChange.emit();\r\n\r\n }\r\n\r\n // TODO: Check this method work correctly\r\n onTextChange(e) {\r\n if (!this.searchChangeObserver) {\r\n return new Observable(observer => {\r\n this.searchChangeObserver = observer;\r\n })\r\n .pipe(debounceTime(500))\r\n .pipe(distinctUntilChanged())\r\n .subscribe(c => {\r\n this.valueChange.emit();\r\n });\r\n }\r\n this.searchChangeObserver.next(e);\r\n }\r\n\r\n get condition(): AXFilterCondition {\r\n return {\r\n condition: this.operator,\r\n field: this.field,\r\n dataType: 'string',\r\n value: this.value\r\n }\r\n }\r\n}\r\n","import { Component, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, ViewChild, ElementRef, Input } from '@angular/core';\r\nimport { AXBaseTextComponent, AXValidatableComponent } from '../base/element.class';\r\n\r\n@Component({\r\n selector: 'ax-text-box',\r\n templateUrl: './textbox.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { style: 'display: contents;' },\r\n providers: [{ provide: AXValidatableComponent, useExisting: AXTextBoxComponent }]\r\n})\r\nexport class AXTextBoxComponent extends AXBaseTextComponent {\r\n\r\n @Input()\r\n mask: any;\r\n\r\n @Input()\r\n type: 'text' | 'number' | 'tel' | 'url' | 'password' | 'search' = 'text';\r\n\r\n @Input()\r\n showMask: boolean = true;\r\n\r\n @Input()\r\n maxLength: number;\r\n\r\n @Input()\r\n maskGuid: boolean = false;\r\n\r\n @Input()\r\n maskPlaceholder: string = '_';\r\n\r\n @Input()\r\n maskKeepCharPositions: boolean = false;\r\n\r\n constructor(protected cdr: ChangeDetectorRef, ref: ElementRef) {\r\n super(cdr, ref);\r\n }\r\n}\r\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-toast-wrapper',\r\n template: '',\r\n styleUrls: ['./toast-wrapper.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXToastWrapperComponent implements OnInit {\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","import { Component, OnInit, Input, ElementRef, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n templateUrl: './toast-message.component.html',\r\n styleUrls: ['./toast-message.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXToastMessageComponent implements OnInit {\r\n constructor(private elRef: ElementRef) { }\r\n\r\n @Input() title: string = '';\r\n @Input() message: string;\r\n @Input() timeOut: number = 6000;\r\n @Input() closeable: boolean = false;\r\n\r\n @Input() type: 'info' | 'success' | 'warning' | 'error' = 'info';\r\n\r\n style: string = 'info';\r\n icon: string = '';\r\n toastWidth: number = 100;\r\n\r\n ngOnInit(): void {\r\n if (this.timeOut) {\r\n const interval = setInterval(() => {\r\n --this.toastWidth;\r\n if (this.toastWidth === 0) {\r\n clearInterval(interval);\r\n this.close();\r\n }\r\n }, this.timeOut / 100);\r\n }\r\n switch (this.type) {\r\n case 'success':\r\n this.style = 'success';\r\n break;\r\n case 'warning':\r\n this.style = 'warning';\r\n break;\r\n case 'error':\r\n this.style = 'error';\r\n break;\r\n default:\r\n this.style = 'info';\r\n break;\r\n }\r\n switch (this.type) {\r\n case 'success':\r\n this.icon = 'fas fa-check-circle';\r\n break;\r\n case 'warning':\r\n this.icon = 'fas fa-exclamation-triangle';\r\n break;\r\n case 'error':\r\n this.icon = 'fas fa-exclamation-circle';\r\n break;\r\n default:\r\n this.icon = 'fas fa-info-circle';\r\n break;\r\n }\r\n }\r\n close() {\r\n this.elRef.nativeElement.parentElement.removeChild(this.elRef.nativeElement);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AXRenderService } from '@acorex/core';\r\nimport { AXToastWrapperComponent } from './toast-wrapper/toast-wrapper.component';\r\nimport { AXToastMessageComponent } from './toast-message/toast-message.component';\r\n\r\nexport interface IToastOptions {\r\n timeOut?: number;\r\n title?: string;\r\n closeable?: boolean;\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXToastService {\r\n\r\n constructor(private injectionService: AXRenderService) { }\r\n\r\n info(message: string, options?: IToastOptions) {\r\n this.show(message, 'info', options);\r\n }\r\n\r\n success(message: string, options?: IToastOptions) {\r\n this.show(message, 'success', options);\r\n }\r\n\r\n warning(message: string, options?: IToastOptions) {\r\n this.show(message, 'warning', options);\r\n }\r\n\r\n error(message: string, options?: IToastOptions) {\r\n this.show(message, 'error', options);\r\n }\r\n\r\n private show(\r\n message: string,\r\n type: 'success' | 'info' | 'error' | 'warning',\r\n options?: IToastOptions\r\n ) {\r\n const opt = Object.assign(\r\n {\r\n message,\r\n type\r\n },\r\n options\r\n );\r\n\r\n const wrapper = document.querySelector('ax-toast-wrapper');\r\n if (!wrapper) {\r\n const toastWrapper = this.injectionService.appendComponent(\r\n AXToastWrapperComponent\r\n );\r\n this.injectionService.appendComponent(\r\n AXToastMessageComponent,\r\n opt,\r\n toastWrapper.location.nativeElement\r\n );\r\n } else {\r\n this.injectionService.appendComponent(\r\n AXToastMessageComponent,\r\n opt,\r\n wrapper\r\n );\r\n }\r\n }\r\n}\r\n","import { Component, Input, ViewChild, ViewChildren, QueryList, ViewEncapsulation, ChangeDetectionStrategy, Output, EventEmitter, ChangeDetectorRef, ElementRef, ViewContainerRef } from '@angular/core';\r\nimport { AXFilterColumnGroup, AXFilterColumnComponent, AXFilterCondition, AXFilterPredefined } from '../filter.class';\r\nimport { AXMenuItem, AXHtmlUtil, AXKeyboardEvent } from '@acorex/core';\r\nimport { AXMenuComponent } from '../../menu/menu.component';\r\nimport { AXTextBoxComponent } from '../../textbox/textbox.component';\r\nimport { AXToastService } from '../../toast/toast.service';\r\nimport { AXValueEvent } from '../../base/events.class';\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: 'ax-filter-panel',\r\n templateUrl: './filter-panel.component.html',\r\n styleUrls: ['./filter-panel.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXFilterPanelComponent {\r\n\r\n @ViewChild('panel', { static: true }) panel: ElementRef<HTMLDivElement>;\r\n @ViewChild('footer', { static: true }) footer: ElementRef<HTMLDivElement>;\r\n @ViewChild('savedList', { static: true }) savedList: ElementRef<HTMLDivElement>;\r\n @ViewChild('body', { static: true }) body: ElementRef<HTMLDivElement>;\r\n @ViewChild('menu', { static: false }) menu: AXMenuComponent;\r\n @ViewChild('tbxName', { static: true }) tbxName: AXTextBoxComponent;\r\n\r\n @ViewChildren(AXFilterColumnComponent) filters: QueryList<AXFilterColumnComponent>;\r\n\r\n @Input()\r\n groups: AXFilterColumnGroup[] = [];\r\n\r\n @Input()\r\n predefinedFilters: AXFilterPredefined[] = [];\r\n\r\n @Input()\r\n mode: 'click' | 'immediate' = 'click';\r\n\r\n saveItems: AXMenuItem[] = [\r\n {\r\n name: 'saveAs',\r\n text: 'Save',\r\n startIcon: 'fas fa-save',\r\n items: [\r\n {\r\n name: 'save',\r\n text: 'Save current'\r\n },\r\n {\r\n name: 'saveAs',\r\n text: 'Save as New'\r\n }\r\n ]\r\n },\r\n\r\n ];\r\n\r\n @Output()\r\n filterChange: EventEmitter<AXFilterCondition[]> = new EventEmitter<AXFilterCondition[]>();\r\n\r\n constructor(private cdr: ChangeDetectorRef, private toast: AXToastService) { }\r\n\r\n apply() {\r\n this.filterChange.emit(this.value);\r\n this.updateMenu();\r\n }\r\n\r\n public clear() {\r\n this.filters.forEach(e => {\r\n e.clear();\r\n });\r\n this.predefinedFilters.forEach(c => {\r\n (c as any).selected = false;\r\n });\r\n this.filterChange.emit(this.value);\r\n this.updateMenu();\r\n }\r\n\r\n onValueChange(e) {\r\n if (this.mode === 'immediate') {\r\n setTimeout(() => {\r\n this.filterChange.emit(this.value);\r\n this.updateMenu();\r\n }, 50);\r\n\r\n }\r\n }\r\n\r\n onCheckValueChange(v, e: AXValueEvent<boolean>) {\r\n\r\n\r\n if (!e.value && this.mode === 'immediate') {\r\n this.filters.forEach(c => {\r\n if (c.field === v.field) {\r\n c.clear();\r\n }\r\n })\r\n setTimeout(() => {\r\n this.filterChange.emit(this.value.filter(c => c.field !== v.field));\r\n this.updateMenu();\r\n }, 50);\r\n\r\n }\r\n }\r\n\r\n get value(): AXFilterCondition[] {\r\n const con: AXFilterCondition[] = [];\r\n if (this.filters) {\r\n this.filters.forEach(e => {\r\n\r\n if (e.active && e.condition && ((e.condition.value != null) || (e.condition.value == null && (e.condition.condition === 'is-empty' || e.condition.condition === 'is-not-empty')))) {\r\n con.push(e.condition);\r\n }\r\n });\r\n }\r\n return con;\r\n }\r\n\r\n\r\n\r\n public load(filters: AXFilterCondition[]): void {\r\n this.filters.forEach(e => {\r\n e.clear();\r\n });\r\n this.cancelSaveFilter();\r\n filters.forEach(f => {\r\n const col = this.filters.find(c => c.field === f.field);\r\n if (col) {\r\n col.setFilter(f.value, f.condition);\r\n }\r\n\r\n });\r\n this.filterChange.emit(this.value);\r\n this.updateMenu();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const footer = this.panel.nativeElement.querySelector('.footer');\r\n if (!footer) {\r\n this.body.nativeElement.style.height = 'calc(100% - 110px)';\r\n }\r\n setTimeout(() => {\r\n if (this.predefinedFilters) {\r\n this.setFilterByIndex(0);\r\n }\r\n else {\r\n this.clear();\r\n }\r\n }, 100);\r\n this.applySize();\r\n }\r\n\r\n setFilterByIndex(index: number) {\r\n const f = this.predefinedFilters[index];\r\n if (f) {\r\n this.setFilterByName(f.name);\r\n }\r\n }\r\n\r\n setFilterByName(name: string) {\r\n const f = this.predefinedFilters.find(c => c.name === name);\r\n if (f) {\r\n this.load(f.value);\r\n this.predefinedFilters.forEach(c => {\r\n (c as any).selected = false;\r\n });\r\n (f as any).selected = true;\r\n }\r\n }\r\n\r\n\r\n\r\n removeFilter(f: AXFilterPredefined) {\r\n this.predefinedFilters = this.predefinedFilters.filter(c => c.name != f.name);\r\n this.updateMenu();\r\n }\r\n\r\n private get\r\n currentFilter(): AXFilterPredefined {\r\n return this.predefinedFilters.find(c => (c as any).selected);\r\n }\r\n\r\n\r\n private applySize() {\r\n let h = 0;\r\n h += this.footer.nativeElement.getBoundingClientRect().height;\r\n h += this.savedList.nativeElement.getBoundingClientRect().height;\r\n h += 10;\r\n this.body.nativeElement.style.height = `calc(100% - ${h}px)`;\r\n }\r\n\r\n // SAVE FILTERS\r\n\r\n private updateMenu(): void {\r\n setTimeout(() => {\r\n this.saveItems[0].items[0].visible = this.currentFilter != null;\r\n this.saveItems[0].items[1].visible = this.currentFilter != null;\r\n // this.menu.update();\r\n }, 100);\r\n }\r\n\r\n applySaveFilter() {\r\n const f = this.currentFilter;\r\n if (f) {\r\n // TODO\r\n // this.tbxName.validate().then(c => {\r\n // if (c.result) {\r\n // f.value = this.value;\r\n // (f as any).isInEdit = false;\r\n // (f as any).isNew = false;\r\n // f.title = this.tbxName.value;\r\n // this.toast.success('Filter saved successfully.');\r\n // this.updateMenu();\r\n // }\r\n // });\r\n }\r\n }\r\n\r\n cancelSaveFilter() {\r\n const f = this.currentFilter;\r\n if (f) {\r\n if ((f as any).isNew) {\r\n this.removeFilter(f);\r\n }\r\n else {\r\n (f as any).isInEdit = false;\r\n }\r\n }\r\n this.updateMenu();\r\n }\r\n\r\n onMenuItemClick(e: AXMenuItem) {\r\n if (e.name === 'save') {\r\n this.applySaveFilter();\r\n }\r\n if (e.name === 'saveAs') {\r\n const f = {\r\n name: AXHtmlUtil.getUID(),\r\n title: '',\r\n value: this.value\r\n };\r\n this.predefinedFilters.push(f);\r\n (f as any).isNew = true;\r\n this.setFilterByName(f.name);\r\n this.handleRenameClick(f)\r\n }\r\n }\r\n\r\n tbxNameOnKey(e: AXKeyboardEvent) {\r\n if (e.type === 'keyup' && e.key === 'Enter') {\r\n this.applySaveFilter();\r\n }\r\n if (e.type === 'keyup' && e.key === 'Escape') {\r\n this.cancelSaveFilter();\r\n }\r\n }\r\n\r\n handleRenameClick(f: AXFilterPredefined) {\r\n (f as any).isInEdit = true;\r\n this.cdr.detectChanges();\r\n setTimeout(() => {\r\n this.tbxName.value = f.title;\r\n this.tbxName.focus();\r\n }, 50);\r\n }\r\n}\r\n","import { Component, Input, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { AXHtmlUtil, AXMenuItem } from '@acorex/core';\r\nimport { AXFilterPanelComponent } from '../filter-panel/filter-panel.component';\r\nimport { AXToolbarItem } from '../../toolbar/toolbar-item';\r\nimport { AXToolbarMenuComponent } from '../../toolbar/menu/toolbar-menu.component';\r\nimport { AXMenuComponent } from '../../menu/menu.component';\r\n\r\n\r\n@Component({\r\n selector: 'ax-toolbar-filter-view',\r\n templateUrl: './filter-toolbar.component.html',\r\n styleUrls: ['./filter-toolbar.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [{ provide: AXToolbarItem, useExisting: AXToolbarFilterViewComponent }]\r\n})\r\nexport class AXToolbarFilterViewComponent {\r\n constructor() { }\r\n _uid: string = AXHtmlUtil.getUID();\r\n\r\n @ViewChild('menu', { static: true }) menu: AXToolbarMenuComponent;\r\n @ViewChild('contextMenu', { static: true }) contextMenu: AXMenuComponent;\r\n\r\n @Input()\r\n filterPanel: AXFilterPanelComponent;\r\n\r\n contextMenuItems: AXMenuItem[] = [\r\n // {\r\n // name: 'addFolder',\r\n // startIcon: 'fas fa-folder',\r\n // text: 'New Folder',\r\n // },\r\n {\r\n name: 'remove',\r\n startIcon: 'fas fa-trash',\r\n text: 'Delete',\r\n },\r\n ];\r\n\r\n\r\n\r\n menuItems: AXMenuItem[] = [\r\n {\r\n name: 'root',\r\n startIcon: 'fas fa-filter',\r\n text: 'Select All',\r\n items: [\r\n {\r\n name: 'selectAll',\r\n style: 'f',\r\n text: 'Select All',\r\n },\r\n // {\r\n // split: true,\r\n // name: 'addFolder',\r\n // startIcon: 'fas fa-folder',\r\n // text: 'New Folder',\r\n // },\r\n {\r\n divider: true,\r\n name: 'save',\r\n startIcon: 'fas fa-save',\r\n text: 'Save'\r\n },\r\n {\r\n divider: true,\r\n name: 'saveAs',\r\n startIcon: 'fas fa-save',\r\n text: 'Save As...'\r\n }\r\n ]\r\n }\r\n\r\n ];\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this.selectAll();\r\n this.addPredefinedList();\r\n }, 100);\r\n }\r\n\r\n addPredefinedList() {\r\n this.filterPanel.predefinedFilters.forEach(c => {\r\n const item = {\r\n name: c.name,\r\n text: c.title,\r\n type: 'f',\r\n startIcon: 'fas',\r\n data: c.value,\r\n style: this._uid,\r\n uid: AXHtmlUtil.getUID()\r\n };\r\n this.root.items.splice(1, 0, item);\r\n });\r\n this.update();\r\n }\r\n\r\n public selectAll(): void {\r\n this.setCurrent(this.root.items[0]);\r\n this.filterPanel.clear();\r\n this.update();\r\n this.menu.close();\r\n // this.contextMenu.close();\r\n }\r\n\r\n itemClick(e: AXMenuItem) {\r\n\r\n if (e.style === 'f') {\r\n if (e.name === 'selectAll') {\r\n this.selectAll();\r\n }\r\n else {\r\n this.setCurrent(e);\r\n this.filterPanel.load(e.data);\r\n }\r\n }\r\n else {\r\n if (e.name === 'saveAs') {\r\n const name = prompt('Please enter the name;');\r\n if (name) {\r\n const item = {\r\n text: name,\r\n type: 'f',\r\n style: this._uid,\r\n startIcon: 'fas',\r\n data: this.filterPanel.value,\r\n uid: AXHtmlUtil.getUID()\r\n };\r\n this.root.items.splice(1, 0, item);\r\n this.setCurrent(item);\r\n }\r\n\r\n }\r\n if (e.name === 'save') {\r\n const selected = this.findSelected();\r\n if (selected) {\r\n selected.data = this.filterPanel.value;\r\n }\r\n }\r\n }\r\n this.update();\r\n }\r\n\r\n private findSelected(): AXMenuItem {\r\n return this.root.items.find(c => c.selected);\r\n }\r\n\r\n private get root(): AXMenuItem {\r\n return this.menuItems[0];\r\n }\r\n\r\n public update(): void {\r\n this.menu.update();\r\n setTimeout(() => {\r\n // this.contextMenu.update();\r\n }, 100);\r\n\r\n }\r\n\r\n private setCurrent(e: AXMenuItem) {\r\n this.root.text = e.text;\r\n this.root.items.filter(c => c.style === 'f').forEach(c => {\r\n c.selected = false;\r\n c.startIcon = 'fas';\r\n });\r\n e.selected = true;\r\n e.startIcon = 'fas fa-check';\r\n this.root.items.find(c => c.name === 'save').visible = e.name !== 'selectAll';\r\n }\r\n\r\n onCtxClick(e: AXMenuItem) {\r\n const target = this.contextMenu.currentTarget as HTMLElement;\r\n const menuId = target.getAttribute('data-uid');\r\n if (e.name === 'remove' && menuId) {\r\n this.root.items = this.root.items.filter(c => c.uid !== menuId);\r\n this.selectAll();\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ContentChild,\r\n TemplateRef,\r\n} from \"@angular/core\";\r\nimport {\r\n trigger,\r\n state,\r\n style,\r\n animate,\r\n transition,\r\n} from \"@angular/animations\";\r\nimport { AXBaseSizableComponent, AXElementSize } from \"../base/element.class\";\r\n\r\n@Component({\r\n selector: \"ax-panel-box\",\r\n templateUrl: \"./panel-box.component.html\",\r\n styleUrls: [\"./panel-box.component.scss\"],\r\n animations: [\r\n trigger(\"visibilityChanged\", [\r\n state(\r\n \"shown\",\r\n style({\r\n height: \"*\",\r\n opacity: 1,\r\n })\r\n ),\r\n state(\r\n \"hidden\",\r\n style({\r\n height: \"0px\",\r\n opacity: 0,\r\n padding: 0,\r\n })\r\n ),\r\n transition(\"Void => *\", animate(\"0ms\")),\r\n transition(\"shown => hidden\", animate(\"200ms\")),\r\n transition(\"hidden => shown\", animate(\"200ms\")),\r\n ]),\r\n ],\r\n})\r\nexport class AXPanelBoxComponent implements AXBaseSizableComponent {\r\n @ContentChild(\"header\", { static: true })\r\n headerTemplate: TemplateRef<any>;\r\n\r\n @Input() size: AXElementSize = \"md\";\r\n\r\n @Input() type: string = \"\";\r\n\r\n // @Input()\r\n // caption: string = 'Caption';\r\n\r\n private _caption: string = \"caption\";\r\n @Input()\r\n get caption(): string {\r\n return this._caption;\r\n }\r\n set caption(val: string) {\r\n this._caption = val === \"\" ? \"caption\" : val;\r\n }\r\n\r\n @Output()\r\n collapsedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n private _collapsed: boolean = false;\r\n\r\n @Input()\r\n get collapsed(): boolean {\r\n return this._collapsed;\r\n }\r\n set collapsed(val: boolean) {\r\n if (val !== this._collapsed) {\r\n this._collapsed = val;\r\n this.collapsedChange.emit(this._collapsed);\r\n }\r\n }\r\n\r\n @Input() allowCollapse: boolean = true;\r\n\r\n toggle() {\r\n if (this.allowCollapse) {\r\n this.collapsed = !this.collapsed;\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXPanelBoxComponent } from './panel-box.component';\r\n@NgModule({\r\n declarations: [AXPanelBoxComponent],\r\n imports: [CommonModule],\r\n exports: [AXPanelBoxComponent],\r\n providers: []\r\n})\r\nexport class AXPanelBoxModule {}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ViewChild,\r\n Input,\r\n ElementRef,\r\n AfterViewInit,\r\n HostListener,\r\n Output,\r\n EventEmitter,\r\n ChangeDetectorRef, ViewContainerRef, TemplateRef, OnDestroy, DebugElement\r\n} from '@angular/core';\r\nimport { AXBaseDropdownComponent } from '../base/element.class';\r\nimport { AXHtmlEvent } from '../base/events.class';\r\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\r\nimport { TemplatePortal } from '@angular/cdk/portal';\r\nimport { AXConfig } from '@acorex/core';\r\n\r\n@Component({\r\n selector: 'ax-drop-down',\r\n templateUrl: './dropdown.component.html',\r\n styleUrls: ['./dropdown.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { style: 'display:contents;' }\r\n})\r\nexport class AXDropdownComponent extends AXBaseDropdownComponent implements AfterViewInit, OnDestroy {\r\n @ViewChild('baseTemplate') baseTemplate: TemplateRef<any>;\r\n @ViewChild('content', { static: false }) content: ElementRef<HTMLDivElement>;\r\n @ViewChild('endButtons', { static: false }) endButtons: ElementRef<HTMLDivElement>;\r\n @ViewChild('el', { static: true }) dropdownEL: ElementRef<HTMLDivElement>;\r\n\r\n @Input()\r\n rtl: boolean = AXConfig.get('layout.rtl');\r\n\r\n @Input()\r\n readonly: boolean = false;\r\n\r\n @Input()\r\n loading: boolean = false;\r\n\r\n @Output()\r\n dropdownToggle: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onButtonClick: EventEmitter<AXHtmlEvent<MouseEvent>> = new EventEmitter<AXHtmlEvent<MouseEvent>>();\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeydownHandler(e: KeyboardEvent) {\r\n if (!this.disabled && e.key === 'Enter' && e.type === 'keydown') {\r\n if (!this.readonly) {\r\n this.toggle();\r\n // this.dropdownToggle.emit({ mode: 'enter' });\r\n }\r\n }\r\n if (e.key === 'Escape') {\r\n if (this.isOpen) {\r\n this.close();\r\n e.stopPropagation();\r\n }\r\n }\r\n }\r\n\r\n\r\n dropdownWidth: number;\r\n\r\n private overlayRef: OverlayRef;\r\n private templatePortal: TemplatePortal;\r\n\r\n constructor(private cdr: ChangeDetectorRef,\r\n private ref: ElementRef<HTMLDivElement>,\r\n private overlay: Overlay,\r\n private viewContainerRef: ViewContainerRef\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.rtl == null) {\r\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\r\n }\r\n setTimeout(() => {\r\n this.ref.nativeElement.classList.add(this.rtl ? 'rtl' : 'ltr');\r\n this.dropdownEL.nativeElement.classList.add(this.rtl ? 'rtl' : 'ltr')\r\n }, 5);\r\n\r\n\r\n }\r\n ngAfterViewInit(): void {\r\n\r\n if (this.fitParent === true) {\r\n this.dropdownWidth = this.dropdownEL.nativeElement.offsetWidth;\r\n } else {\r\n this.dropdownWidth = null;\r\n }\r\n\r\n setTimeout(() => {\r\n if (this.endButtons && this.endButtons.nativeElement.childNodes.length !== 0) {\r\n this.content.nativeElement.style.paddingInlineEnd = this.endButtons.nativeElement.clientWidth + 'px';\r\n }\r\n }, 5);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.overlayRef?.detach();\r\n this.overlayRef?.dispose();\r\n }\r\n\r\n handleArrowClick(e: AXHtmlEvent<MouseEvent>) {\r\n setTimeout(() => {\r\n this.toggle();\r\n }, 0);\r\n }\r\n\r\n toggle() {\r\n if (this.disabled !== true) {\r\n this.isOpen ? this.close() : this.open();\r\n }\r\n }\r\n\r\n close() {\r\n if (!this.isOpen) {\r\n return;\r\n }\r\n this.overlayRef?.detach();\r\n this.dropdownToggle.emit({ mode: 'close' });\r\n }\r\n\r\n open() {\r\n if (this.isOpen) {\r\n return;\r\n }\r\n this.ensureOverlayCreated();\r\n this.overlayRef.attach(this.templatePortal);\r\n this.dropdownToggle.emit({ mode: 'open' });\r\n }\r\n\r\n private ensureOverlayCreated() {\r\n if (!this.overlayRef) {\r\n const targetEl = document.querySelector<HTMLElement>('#' + this.uid);\r\n const positionStrategy = this.overlay.position()\r\n .flexibleConnectedTo(targetEl)\r\n .withPositions([\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top'\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'bottom'\r\n },\r\n {\r\n originX: 'end',\r\n originY: 'bottom',\r\n overlayX: 'end',\r\n overlayY: 'top'\r\n },\r\n {\r\n originX: 'end',\r\n originY: 'bottom',\r\n overlayX: 'end',\r\n overlayY: 'bottom'\r\n }\r\n ])\r\n .withPush(false);\r\n this.overlayRef = this.overlay.create({\r\n positionStrategy,\r\n //width: this.dropdownEL.nativeElement.clientWidth,\r\n scrollStrategy: this.overlay.scrollStrategies.reposition({\r\n autoClose: true\r\n }),\r\n hasBackdrop: true,\r\n backdropClass: 'cdk-overlay-transparent-backdrop'\r\n });\r\n this.overlayRef.setDirection(this.rtl ? 'rtl' : 'ltr');\r\n this.overlayRef.backdropClick().subscribe(() => this.close());\r\n }\r\n if (!this.templatePortal) {\r\n this.templatePortal = new TemplatePortal(this.baseTemplate, this.viewContainerRef);\r\n }\r\n }\r\n\r\n get isOpen(): boolean {\r\n return this.overlayRef ? this.overlayRef.hasAttached() : false;\r\n }\r\n\r\n\r\n focus() { }\r\n}\r\n","import { Input, ViewChild, Output, EventEmitter, ViewEncapsulation, Component, ElementRef, ContentChild, AfterViewInit, ChangeDetectorRef } from '@angular/core';\r\nimport { AXDropdownComponent } from '../dropdown/dropdown.component';\r\nimport { AXTextBoxComponent } from '../textbox/textbox.component';\r\nimport { AXValidatableComponent, AXBaseSizableComponent, AXElementSize, AXBaseValueComponent } from '../base/element.class';\r\nimport { AXCalendarType, AXDateTime, AXConfig } from '@acorex/core';\r\nimport { AXValueEvent } from '../base/events.class';\r\nimport { AXValidation } from '../validation/validation.component';\r\n\r\n\r\n\r\nexport class AXDataPickerChangeEvent extends AXValueEvent<Date> {\r\n isUserChange: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'ax-date-picker',\r\n templateUrl: './date-picker.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n styleUrls: ['./date-picker.component.scss'],\r\n providers: [{ provide: AXValidatableComponent, useExisting: AXDatePickerComponent }],\r\n host: { style: 'display: contents;' }\r\n})\r\nexport class AXDatePickerComponent extends AXValidatableComponent implements AXBaseSizableComponent {\r\n @ViewChild('dropdown', { static: true })\r\n dropdown: AXDropdownComponent;\r\n\r\n @ViewChild('input', { static: true })\r\n input: AXTextBoxComponent;\r\n\r\n @Input()\r\n dayStyle = []\r\n\r\n // mmddyyyy: any = [/[0-1]/, /[0-9]/, '-', /[0-1]/, /[0-9]/, '-', /[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/];\r\n yyyyMMdd: any = [/[1-2]/, /[0-9]/, /[0-9]/, /[0-9]/, '-', /[0-1]/, /[0-9]/, '-', /[0-3]/, /[0-9]/];\r\n ddMMyyyy: any = [/[0-3]/, /[0-9]/, '-', /[0-1]/, /[0-9]/, '-', /[1-9]/, /[0-9]/, /[0-9]/, /[0-9]/];\r\n yyyyddMM: any = [/[1-9]/, /[0-9]/, /[0-9]/, /[0-9]/, '-', /[0-3]/, /[0-9]/, '-', /[0-1]/, /[0-9]/];\r\n // yyyyMMdd1: any = [/[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/, '/', /[0-1]/, /[0-9]/, '/', /[0-3]/, /[0-9]/];\r\n // ddMMyyyy2: any = [/[0-3]/, /[0-9]/, '/', /[0-1]/, /[0-9]/, '/', /[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/];\r\n // yyyyddMM3: any = [/[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/, '/', /[0-3]/, /[0-9]/, '/', /[0-1]/, /[0-9]/];\r\n\r\n @ContentChild(AXValidation, { static: true })\r\n private _contentValidation: AXValidation;\r\n private _validation: AXValidation;\r\n\r\n @Input()\r\n public get validation(): AXValidation {\r\n return this._validation ? this._validation : this._contentValidation;\r\n }\r\n\r\n public set validation(v: AXValidation) {\r\n this._validation = v;\r\n }\r\n\r\n @Input() placeholder: string = '';\r\n\r\n @Input()\r\n min: Date;\r\n\r\n @Input()\r\n max: Date;\r\n\r\n @Input()\r\n readonly: boolean;\r\n\r\n @Input()\r\n disabled: boolean;\r\n\r\n @Input()\r\n allowClear: boolean = false;\r\n\r\n @Input()\r\n textAlign: 'right' | 'left' | null = null;\r\n\r\n @Input()\r\n showToday: boolean = false;\r\n\r\n @Input()\r\n selectableHoliday: boolean = true;\r\n\r\n @Input()\r\n dateType: any;\r\n\r\n @Input()\r\n showTodayButton: boolean = true;\r\n\r\n @Input()\r\n openByClick:boolean=false;\r\n\r\n cursorPosition: number = 0;\r\n\r\n model: any = null;\r\n text: string;\r\n\r\n _renderPicker: boolean = false;\r\n\r\n constructor(private ref: ElementRef, private cdr: ChangeDetectorRef) {\r\n super();\r\n // set defaults\r\n if (AXConfig.get('dateTime.type')) {\r\n this.type = AXConfig.get('dateTime.type');\r\n }\r\n }\r\n\r\n @Input()\r\n size: AXElementSize = 'md';\r\n\r\n\r\n\r\n\r\n @Output()\r\n typeChange: EventEmitter<AXCalendarType> = new EventEmitter<AXCalendarType>();\r\n\r\n private _type: AXCalendarType = 'gregorian';\r\n\r\n @Input()\r\n public get type(): AXCalendarType {\r\n return this._type;\r\n }\r\n\r\n public set type(v: AXCalendarType) {\r\n if (v != this._type) {\r\n this._type = v;\r\n if (this._value) {\r\n this.value = this._value.date;\r\n }\r\n this._setDateType();\r\n this.typeChange.emit(v);\r\n }\r\n }\r\n\r\n\r\n selectToday() {\r\n this.value = new Date();\r\n }\r\n\r\n focus(): void {\r\n this.dropdown.focus();\r\n }\r\n\r\n convertMaskToDate(text: string) {\r\n\r\n if (this.type == 'jalali') {\r\n var d = new AXDateTime().convertStringToGregorian(text, 'YYYY/M/D');\r\n } else {\r\n }\r\n\r\n return d;\r\n }\r\n\r\n convertMask(date: string) {\r\n let y;\r\n let m;\r\n let d;\r\n switch (this.dateType.mask) {\r\n case this.yyyyMMdd:\r\n y = date.slice(0, 4);\r\n m = date.slice(5, 7);\r\n d = date.slice(8, 10);\r\n break;\r\n case this.ddMMyyyy:\r\n y = date.slice(6, 10);\r\n m = date.slice(3, 5);\r\n d = date.slice(0, 2);\r\n break;\r\n case this.yyyyddMM:\r\n y = date.slice(0, 4);\r\n m = date.slice(8, 10);\r\n d = date.slice(5, 7);\r\n break;\r\n }\r\n\r\n return { year: y, monnth: m, day: d };\r\n }\r\n\r\n textChange(e) {\r\n this.text = e.value;\r\n if (this.text && this.text.indexOf('_') === -1 && this.text.length == 10) {\r\n this.userChange =e.isUserChange;\r\n const date = this.convertMask(this.text);\r\n this.value = this.convertMaskToDate(date.year + '-' + date.monnth + '-' + date.day);\r\n\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this._setDateType();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this.text = this._value?.toString();\r\n if (this.showToday && !this.value) {\r\n this.selectToday();\r\n }\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.initValidation(this.ref, 'value', this.validation);\r\n }\r\n\r\n clear() {\r\n this.userChange =true;\r\n this.value = null;\r\n }\r\n\r\n userChange:boolean = false;\r\n\r\n @Output()\r\n onValueChanged: EventEmitter<AXDataPickerChangeEvent> = new EventEmitter<AXDataPickerChangeEvent>();\r\n\r\n @Output()\r\n valueChange: EventEmitter<Date> = new EventEmitter<Date>();\r\n\r\n private _value: AXDateTime;\r\n @Input()\r\n public get value(): Date {\r\n return this._value?.date;\r\n }\r\n public set value(v: Date) {\r\n\r\nconst oldValue = this._value;\r\n const old = this.value;\r\n\r\n\r\n if (v) {\r\n this._value = new AXDateTime(v, this.type);\r\n } else {\r\n this._value = null;\r\n }\r\n let unValidDate = false;\r\n if (this.max || this.min) {\r\n unValidDate = this.isInMInMaxRange(AXDateTime.convert(v));\r\n }\r\n\r\n if (!unValidDate) {\r\n\r\n if ((!v && oldValue ) || (this._value && !this._value.equal(oldValue,'day')) ){\r\n this.text = this._value?.toString();\r\nsetTimeout(() => {\r\n this.valueChange.emit(v);\r\n this.onValueChanged.emit({\r\n component: this,\r\n oldValue: old,\r\n value: v,\r\n isUserChange: this.userChange\r\n });\r\n\r\n}, 100);\r\n\r\n\r\n }\r\n }\r\n this.userChange =false;\r\n }\r\n\r\n private _setDateType() {\r\n switch (this.dateType) {\r\n case 'yyyyMMdd':\r\n this.dateType = {\r\n guide: true,\r\n showMask: true,\r\n mask: this.yyyyMMdd,\r\n keepCharPositions: true\r\n };\r\n break;\r\n case 'ddMMyyyy':\r\n this.dateType = {\r\n guide: true,\r\n showMask: true,\r\n mask: this.ddMMyyyy,\r\n keepCharPositions: true\r\n };\r\n break;\r\n case 'yyyyddMM':\r\n this.dateType = {\r\n guide: true,\r\n showMask: true,\r\n mask: this.yyyyddMM,\r\n keepCharPositions: true\r\n };\r\n break;\r\n\r\n default:\r\n if (this.type == 'gregorian') {\r\n this.dateType = {\r\n guide: true,\r\n showMask: true,\r\n mask: this.ddMMyyyy,\r\n keepCharPositions: true\r\n };\r\n } else if (this.type == 'jalali') {\r\n this.dateType = {\r\n guide: true,\r\n showMask: true,\r\n mask: this.yyyyMMdd,\r\n keepCharPositions: true\r\n };\r\n }\r\n break;\r\n }\r\n }\r\n\r\n isInMInMaxRange(d) {\r\n let r = false;\r\n if (d !== undefined) {\r\n if (this.min && !this.max) {\r\n r = d.compaireNew(new AXDateTime(this.min, this.type), 'YMD', this.type) === -1;\r\n }\r\n if (this.max && !this.min) {\r\n r = d.compaireNew(new AXDateTime(this.max, this.type), 'YMD', this.type) === 1;\r\n }\r\n if (this.min && this.max) {\r\n r =\r\n d.compaireNew(new AXDateTime(this.min, this.type), 'YMD', this.type) === -1 ||\r\n d.compaireNew(new AXDateTime(this.max, this.type), 'YMD', this.type) === 1;\r\n }\r\n }\r\n return r;\r\n }\r\n\r\n onDateChange(e) {\r\n this.userChange =true;\r\n this.dropdown.close();\r\n }\r\n\r\n onClick(e) {\r\n this.userChange =true;\r\n this.dropdown.close();\r\n }\r\n\r\n onStartfocus() {\r\n if (this.text == undefined || this.text == null || this.text == '') {\r\n this.input.input.nativeElement.style.caretColor = 'transparent';\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.input.nativeElement, 0);\r\n this.cursorPosition = 0;\r\n this.input.input.nativeElement.style.caretColor = 'auto';\r\n }, 0);\r\n }\r\n }\r\n\r\n handleInputFocus() {\r\n if(this.openByClick){\r\n this._renderPicker = true;\r\nthis.dropdown.open();\r\n }else{\r\n this.onStartfocus();\r\n }\r\n\r\n // this.input.input.nativeElement.focus();\r\n }\r\n handleInputBlur() {\r\n if (this.text && this.text.indexOf('_') != -1) {\r\n this.text = '';\r\n this.value = null;\r\n }\r\n }\r\n\r\n handleButtonClick() {\r\n this._renderPicker = true;\r\n setTimeout(() => {\r\n this.dropdown.toggle();\r\n });\r\n }\r\n\r\n handleKeyPress(e: KeyboardEvent) {\r\n if (e.type == 'keydown' || e.type == 'keypress' || e.type == 'keyup') {\r\n if (e.key === 'Delete') {\r\n e.preventDefault();\r\n }\r\n if (e.key === 'Backspace') {\r\n }\r\n if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\r\n if (this.input.input.nativeElement.selectionStart || this.input.input.nativeElement.selectionStart === 0) {\r\n this.cursorPosition = this.input.input.nativeElement.selectionStart;\r\n }\r\n }\r\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n }\r\n\r\n const inputChar = String.fromCharCode(e.charCode);\r\n if (this.text != undefined) {\r\n const ind1 = this.text.charAt(0);\r\n const ind2 = this.text.charAt(1);\r\n const ind3 = this.text.charAt(2);\r\n const ind4 = this.text.charAt(3);\r\n const ind5 = this.text.charAt(4);\r\n const ind6 = this.text.charAt(5);\r\n const ind7 = this.text.charAt(6);\r\n const ind8 = this.text.charAt(7);\r\n const ind9 = this.text.charAt(8);\r\n const ind10 = this.text.charAt(9);\r\n switch (this.dateType.mask) {\r\n case this.yyyyMMdd:\r\n if (e.type == 'keypress') {\r\n this.handleClick();\r\n if (\r\n (ind6 == '1' && ind7 == '_' && inputChar >= '3') ||\r\n (((ind6 == '0' && ind7 == '_') || (ind9 == '0' && ind10 == '_')) && inputChar == '0')\r\n ) {\r\n e.preventDefault();\r\n } else if (ind9 == '3' && ind10 == '_') {\r\n if (ind6 + ind7 <= '06' && inputChar >= '2') {\r\n e.preventDefault();\r\n } else if (ind6 + ind7 > '06' && inputChar >= '1') {\r\n e.preventDefault();\r\n }\r\n }\r\n }\r\n if (this.text.indexOf('_') === -1 && this.text !== '') {\r\n if (e.type === 'keydown') {\r\n if (e.key === 'ArrowUp') {\r\n if (this.cursorPosition <= 4) {\r\n this.text = String(Number(ind1 + ind2 + ind3 + ind4) + 1) + ind5 + ind6 + ind7 + ind8 + ind9 + ind10;\r\n }\r\n if (this.cursorPosition >= 5 && this.cursorPosition <= 7) {\r\n if (Number(ind6 + ind7) < 12) {\r\n if (Number(ind6 + ind7) < 9) {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + '0' + String(Number(ind6 + ind7) + 1) + ind8 + ind9 + ind10;\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + String(Number(ind6 + ind7) + 1) + ind8 + ind9 + ind10;\r\n }\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + '01' + ind8 + ind9 + ind10;\r\n }\r\n }\r\n if (this.cursorPosition >= 8) {\r\n if (Number(ind9 + ind10) < 31) {\r\n if (Number(ind9 + ind10) < 9) {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + '0' + String(Number(ind9 + ind10) + 1);\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + String(Number(ind9 + ind10) + 1);\r\n }\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + '01';\r\n }\r\n }\r\n // this.input.input.nativeElement.style.caretColor = 'transparent';\r\n // setTimeout(() => {\r\n // this.setCaret();\r\n // e.preventDefault();\r\n // this.input.input.nativeElement.style.caretColor = 'auto';\r\n // }, 0);\r\n // e.preventDefault();\r\n } else if (e.key === 'ArrowDown') {\r\n if (this.cursorPosition <= 4) {\r\n this.text = String(Number(ind1 + ind2 + ind3 + ind4) - 1) + ind5 + ind6 + ind7 + ind8 + ind9 + ind10;\r\n } else if (this.cursorPosition > 4 && this.cursorPosition <= 7) {\r\n if (Number(ind6 + ind7) > 1) {\r\n if (Number(ind6 + ind7) < 11) {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + '0' + String(Number(ind6 + ind7) - 1) + ind8 + ind9 + ind10;\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + String(Number(ind6 + ind7) - 1) + ind8 + ind9 + ind10;\r\n }\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + '12' + ind8 + ind9 + ind10;\r\n }\r\n } else if (this.cursorPosition >= 8) {\r\n if (Number(ind9 + ind10) > 1) {\r\n if (Number(ind9 + ind10) < 11) {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + '0' + String(Number(ind9 + ind10) - 1);\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + String(Number(ind9 + ind10) - 1);\r\n }\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + '31';\r\n }\r\n }\r\n // this.input.input.nativeElement.style.caretColor = 'transparent';\r\n\r\n // setTimeout(() => {\r\n // this.setCaret();\r\n // this.input.input.nativeElement.style.caretColor = 'auto';\r\n // }, 0);\r\n }\r\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\r\n this.input.input.nativeElement.style.caretColor = 'transparent';\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return false;\r\n }\r\n }\r\n }\r\n if (e.type === 'keyup') {\r\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\r\n this.setCaret();\r\n this.input.input.nativeElement.style.caretColor = 'auto';\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n }\r\n break;\r\n case this.ddMMyyyy:\r\n if (e.type === 'keypress') {\r\n this.handleClick();\r\n if (\r\n (ind4 == '1' && ind5 == '_' && inputChar >= '3') ||\r\n (((ind1 == '0' && ind2 == '_') || (ind4 == '0' && ind5 == '_')) && inputChar == '0')\r\n ) {\r\n e.preventDefault();\r\n } else {\r\n if (ind1 == '3' && ind2 == '_' && inputChar >= '2') {\r\n e.preventDefault();\r\n }\r\n }\r\n }\r\n if (this.text.indexOf('_') === -1 && this.text !== '') {\r\n if (e.type === 'keydown') {\r\n if (e.key === 'ArrowUp') {\r\n if (this.cursorPosition >= 6) {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + String(Number(ind7 + ind8 + ind9 + ind10) + 1);\r\n }\r\n if (this.cursorPosition > 2 && this.cursorPosition <= 5) {\r\n if (Number(ind4 + ind5) < 12) {\r\n if (Number(ind4 + ind5) < 9) {\r\n this.text = ind1 + ind2 + ind3 + '0' + String(Number(ind4 + ind5) + 1) + ind6 + ind7 + ind8 + ind9 + ind10;\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + String(Number(ind4 + ind5) + 1) + ind6 + ind7 + ind8 + ind9 + ind10;\r\n }\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + '01' + ind6 + ind7 + ind8 + ind9 + ind10;\r\n }\r\n }\r\n if (this.cursorPosition <= 2) {\r\n if (Number(ind1 + ind2) < 31) {\r\n if (Number(ind1 + ind2) < 9) {\r\n this.text = '0' + String(Number(ind1 + ind2) + 1) + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + ind10;\r\n } else {\r\n this.text = String(Number(ind1 + ind2) + 1) + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + ind10;\r\n }\r\n } else {\r\n this.text = '01' + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + ind10;\r\n }\r\n }\r\n // this.input.input.nativeElement.style.caretColor = 'transparent';\r\n // setTimeout(() => {\r\n // this.setCaret();\r\n // this.input.input.nativeElement.style.caretColor = 'auto';\r\n // }, 0);\r\n } else if (e.key === 'ArrowDown') {\r\n if (this.cursorPosition >= 6) {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + String(Number(ind7 + ind8 + ind9 + ind10) - 1);\r\n } else if (this.cursorPosition > 2 && this.cursorPosition <= 5) {\r\n if (Number(ind4 + ind5) > 1) {\r\n if (Number(ind4 + ind5) < 11) {\r\n this.text = ind1 + ind2 + ind3 + '0' + String(Number(ind4 + ind5) - 1) + ind6 + ind7 + ind8 + ind9 + ind10;\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + String(Number(ind4 + ind5) - 1) + ind6 + ind7 + ind8 + ind9 + ind10;\r\n }\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + '12' + ind6 + ind7 + ind8 + ind9 + ind10;\r\n }\r\n } else if (this.cursorPosition <= 2) {\r\n if (Number(ind1 + ind2) > 1) {\r\n if (Number(ind1 + ind2) < 11) {\r\n this.text = '0' + String(Number(ind1 + ind2) - 1) + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + ind10;\r\n } else {\r\n this.text = String(Number(ind1 + ind2) - 1) + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + ind10;\r\n }\r\n } else {\r\n this.text = '31' + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + ind10;\r\n }\r\n }\r\n // this.input.input.nativeElement.style.caretColor = 'transparent';\r\n // setTimeout(() => {\r\n // this.setCaret();\r\n // this.input.input.nativeElement.style.caretColor = 'auto';\r\n // }, 0);\r\n }\r\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\r\n this.input.input.nativeElement.style.caretColor = 'transparent';\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return false;\r\n }\r\n }\r\n }\r\n if (e.type === 'keyup') {\r\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\r\n this.setCaret();\r\n this.input.input.nativeElement.style.caretColor = 'auto';\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n }\r\n break;\r\n\r\n case this.yyyyddMM:\r\n if (e.type === 'keypress') {\r\n if (\r\n (ind9 === '1' && ind10 == '_' && inputChar >= '3') ||\r\n (((ind6 == '0' && ind7 == '_') || (ind9 == '0' && ind10)) && inputChar == '0')\r\n ) {\r\n e.preventDefault();\r\n } else if (ind6 == '3' && ind7 == '_' && inputChar >= '2') {\r\n e.preventDefault();\r\n }\r\n setTimeout(() => {\r\n this.handleClick();\r\n }, 0);\r\n }\r\n if (this.text.indexOf('_') === -1 && this.text !== '') {\r\n if (e.type === 'keydown') {\r\n if (e.key === 'ArrowUp') {\r\n if (this.cursorPosition <= 4) {\r\n this.text = String(Number(ind1 + ind2 + ind3 + ind4) + 1) + ind5 + ind6 + ind7 + ind8 + ind9 + ind10;\r\n }\r\n if (this.cursorPosition > 4 && this.cursorPosition <= 7) {\r\n if (Number(ind6 + ind7) < 31) {\r\n if (Number(ind6 + ind7) < 9) {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + '0' + String(Number(ind6 + ind7) + 1) + ind8 + ind9 + ind10;\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + String(Number(ind6 + ind7) + 1) + ind8 + ind9 + ind10;\r\n }\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + '01' + ind8 + ind9 + ind10;\r\n }\r\n }\r\n if (this.cursorPosition >= 8) {\r\n if (Number(ind9 + ind10) < 12) {\r\n if (Number(ind9 + ind10) < 9) {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + '0' + String(Number(ind9 + ind10) + 1);\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + String(Number(ind9 + ind10) + 1);\r\n }\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + '01';\r\n }\r\n }\r\n // this.input.input.nativeElement.style.caretColor = 'transparent';\r\n // setTimeout(() => {\r\n // this.setCaret();\r\n // this.input.input.nativeElement.style.caretColor = 'auto';\r\n // }, 0);\r\n } else if (e.key === 'ArrowDown') {\r\n if (this.cursorPosition <= 4) {\r\n this.text = String(Number(ind1 + ind2 + ind3 + ind4) - 1) + ind5 + ind6 + ind7 + ind8 + ind9 + ind10;\r\n } else if (this.cursorPosition > 4 && this.cursorPosition <= 7) {\r\n if (Number(ind6 + ind7) > 1) {\r\n if (Number(ind6 + ind7) < 11) {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + '0' + String(Number(ind6 + ind7) - 1) + ind8 + ind9 + ind10;\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + String(Number(ind6 + ind7) - 1) + ind8 + ind9 + ind10;\r\n }\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + '31' + ind8 + ind9 + ind10;\r\n }\r\n } else if (this.cursorPosition >= 8) {\r\n if (Number(ind9 + ind10) > 1) {\r\n if (Number(ind9 + ind10) < 11) {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + '0' + String(Number(ind9 + ind10) - 1);\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + String(Number(ind9 + ind10) - 1);\r\n }\r\n } else {\r\n this.text = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + '12';\r\n }\r\n }\r\n // this.input.input.nativeElement.style.caretColor = 'transparent';\r\n // setTimeout(() => {\r\n // this.setCaret();\r\n // this.input.input.nativeElement.style.caretColor = 'auto';\r\n // }, 0);\r\n }\r\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\r\n this.input.input.nativeElement.style.caretColor = 'transparent';\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return false;\r\n }\r\n }\r\n }\r\n if (e.type === 'keyup') {\r\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\r\n this.setCaret();\r\n this.input.input.nativeElement.style.caretColor = 'auto';\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n handleClick() {\r\n if (this.input.input.nativeElement.selectionStart || this.input.input.nativeElement.selectionStart === 0) {\r\n this.cursorPosition = this.input.input.nativeElement.selectionStart;\r\n }\r\n }\r\n\r\n setCaretPosition(ctrl, pos) {\r\n if (ctrl.setSelectionRange) {\r\n ctrl.focus();\r\n ctrl.setSelectionRange(pos, pos);\r\n }\r\n }\r\n\r\n setCaret() {\r\n this.setCaretPosition(this.input.input.nativeElement, this.cursorPosition);\r\n }\r\n}\r\n","import {\r\n Component, Input, ChangeDetectorRef, ChangeDetectionStrategy,\r\n ViewEncapsulation, ContentChild, ViewChild, ElementRef\r\n} from '@angular/core';\r\nimport { AXBaseComponent, AXBaseSizableComponent, AXElementSize, AXValidatableComponent } from '../base/element.class';\r\n\r\n@Component({\r\n selector: 'ax-form-group',\r\n templateUrl: './form-group.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { style: 'display: contents;' }\r\n})\r\nexport class AXFormGroupComponent extends AXBaseComponent implements AXBaseSizableComponent {\r\n @Input()\r\n size: AXElementSize = 'md';\r\n\r\n @ViewChild('div')\r\n div: ElementRef\r\n\r\n @ContentChild(AXValidatableComponent)\r\n private component: AXValidatableComponent;\r\n\r\n required: boolean = false;\r\n\r\n constructor(private cdr: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n this.required = this.component?.validation?.rules?.some(c => c.type === 'required');\r\n if (this.required) {\r\n this.div.nativeElement.classList.add('required')\r\n\r\n }\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXFormGroupComponent } from './form-group.component';\r\n\r\nconst COMPONENT = [AXFormGroupComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXFormGroupModule { }","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXTextBoxComponent } from './textbox.component';\r\nimport { AXButtonModule } from '../button/button.module';\r\nimport { TextMaskModule } from 'angular2-text-mask';\r\nimport { FormsModule } from '@angular/forms';\r\nconst COMPONENT = [AXTextBoxComponent];\r\nconst MODULES = [CommonModule, AXButtonModule, TextMaskModule, FormsModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: []\r\n})\r\nexport class AXTextBoxModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXDropdownComponent } from './dropdown.component';\r\nimport { AXFormGroupModule } from '../form-group/form-group.module';\r\nimport { AXTextBoxModule } from '../textbox/textbox.module';\r\nimport { AXButtonModule } from '../button/button.module';\r\nimport { AXPopoverModule } from '../popover/popover.module';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\n\r\nconst COMPONENT = [AXDropdownComponent];\r\nconst MODULES = [CommonModule, AXFormGroupModule, AXTextBoxModule, AXButtonModule, AXPopoverModule, OverlayModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXDropdownModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXDatePickerComponent } from './date-picker.component';\r\nimport { AXDropdownModule } from '../dropdown/dropdown.module';\r\nimport { AXCalendarBoxModule } from '../calendar/calendar-box/calendar-box.module';\r\nimport { AXTextBoxModule } from '../textbox/textbox.module';\r\nimport { AXButtonModule } from '../button/button.module';\r\nimport { TextMaskModule } from 'angular2-text-mask';\r\n\r\n@NgModule({\r\n declarations: [AXDatePickerComponent],\r\n imports: [CommonModule, FormsModule, AXDropdownModule, AXCalendarBoxModule, AXButtonModule, AXTextBoxModule, TextMaskModule, FormsModule],\r\n exports: [AXDatePickerComponent],\r\n providers: []\r\n})\r\nexport class AXDatePickerModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXToastService } from './toast.service';\r\nimport { AXToastWrapperComponent } from './toast-wrapper/toast-wrapper.component';\r\nimport { AXToastMessageComponent } from './toast-message/toast-message.component';\r\n@NgModule({\r\n declarations: [AXToastWrapperComponent, AXToastMessageComponent],\r\n imports: [CommonModule],\r\n exports: [AXToastWrapperComponent],\r\n entryComponents: [AXToastWrapperComponent, AXToastMessageComponent],\r\n providers: [AXToastService]\r\n})\r\nexport class AXToastModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXSelectionListComponent } from './selection-list.component';\r\nimport { AXCheckBoxModule } from '../checkbox/checkbox.module';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n declarations: [AXSelectionListComponent],\r\n imports: [CommonModule, FormsModule, AXCheckBoxModule],\r\n exports: [AXSelectionListComponent],\r\n providers: []\r\n})\r\nexport class AXSelectionListModule { }\r\n","import {\r\n Component,\r\n OnInit,\r\n QueryList,\r\n ContentChildren,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ElementRef,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { AXValidationResult } from './validation.class';\r\nimport { AXValidatableComponent } from '../base/element.class';\r\nimport { AXBaseEvent } from '../base/events.class';\r\n@Component({\r\n selector: 'ax-validation-form',\r\n template: '<ng-content></ng-content>'\r\n})\r\nexport class AXValidationFormComponent {\r\n\r\n constructor(private ref: ElementRef, private cdr: ChangeDetectorRef) { }\r\n\r\n\r\n private widgets: AXValidatableComponent[] = [];\r\n\r\n\r\n @ContentChildren(AXValidatableComponent, { descendants: true })\r\n private widgetsQuery: QueryList<AXValidatableComponent>;\r\n\r\n @Input()\r\n validateOn: 'blur' | 'change' | 'submit' = 'submit';\r\n\r\n @Output()\r\n onInit: EventEmitter<AXBaseEvent> = new EventEmitter<AXBaseEvent>();\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.onInit.emit({\r\n component: this,\r\n htmlElement: this.ref.nativeElement\r\n });\r\n }\r\n\r\n validate(): Promise<AXValidationResult> {\r\n this.widgets.push(...this.widgetsQuery.toArray().filter(c => !this.widgets.includes(c)));\r\n //\r\n this.widgets.forEach(w => {\r\n if (w.validation && w.validation.validateOn == null) {\r\n w.validation.validateOn = this.validateOn;\r\n }\r\n });\r\n\r\n return new Promise<AXValidationResult>(resolve => {\r\n if (!this.widgets || this.widgets.length === 0) {\r\n return Promise.resolve({ result: true });\r\n }\r\n Promise.all(this.widgets.map((c) => c.validate())).then((rules: any) => {\r\n const failed = rules.filter((c: any) => !c.result);\r\n if (failed.length) {\r\n resolve({\r\n result: false,\r\n items: failed\r\n });\r\n }\r\n else {\r\n resolve({ result: true });\r\n }\r\n });\r\n });\r\n }\r\n\r\n\r\n addWidget(widget: AXValidatableComponent) {\r\n this.widgets.push(widget);\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXValidationFormComponent } from './validation-form.component';\r\nimport { AXValidationComponent } from './validation.component';\r\nimport { AXValidationRuleComponent, AXValidationRules } from './validation-rule.widget';\r\nimport { AXTranslator } from '@acorex/core';\r\n\r\n\r\n@NgModule({\r\n declarations: [AXValidationFormComponent, AXValidationComponent, AXValidationRuleComponent],\r\n imports: [CommonModule],\r\n exports: [AXValidationFormComponent, AXValidationComponent, AXValidationRuleComponent],\r\n providers: []\r\n})\r\nexport class AXValidationModule {\r\n constructor() {\r\n AXValidationRules.addRule('email', {\r\n message: AXTranslator.get('validation.messages.email'),\r\n type: 'regex',\r\n value: /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/\r\n })\r\n AXValidationRules.addRule('phone', {\r\n message: AXTranslator.get('validation.messages.phone'),\r\n type: 'regex',\r\n value: /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$/\r\n })\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXFilterPanelComponent } from './filter-panel/filter-panel.component';\r\nimport { AXFilterColumnStringComponent } from './columns/filter-column-string.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXFilterColumnSelectionComponent } from './columns/filter-column-selection.component';\r\nimport { AXFilterColumnDateComponent } from './columns/filter-column-date.component';\r\nimport { AXFilterColumnNumberComponent } from './columns/filter-column-number.component';\r\nimport { AXToolbarFilterViewComponent } from './toolbar/filter-toolbar.component';\r\nimport { AXPanelBoxModule } from '../panel-box/panel-box.module';\r\nimport { AXDatePickerModule } from '../date-picker/date-picker.module';\r\nimport { AXCheckBoxModule } from '../checkbox/checkbox.module';\r\nimport { AXTextBoxModule } from '../textbox/textbox.module';\r\nimport { AXToastModule } from '../toast/toast.module';\r\nimport { AXToolbarModule } from '../toolbar/toolbar.module';\r\nimport { AXMenuModule } from '../menu/menu.module';\r\nimport { AXSelectionListModule } from '../selection-list/selection-list.module';\r\nimport { AXButtonModule } from '../button/button.module';\r\nimport { AXValidationModule } from '../validation/validation.module';\r\n\r\n\r\n\r\n\r\nconst COMPONENTS = [\r\n AXFilterPanelComponent,\r\n AXFilterColumnStringComponent,\r\n AXFilterColumnSelectionComponent,\r\n AXFilterColumnDateComponent,\r\n AXFilterColumnNumberComponent,\r\n AXToolbarFilterViewComponent,\r\n]\r\n\r\n@NgModule({\r\n declarations: [COMPONENTS],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n AXPanelBoxModule,\r\n AXDatePickerModule,\r\n AXCheckBoxModule,\r\n AXTextBoxModule,\r\n AXValidationModule,\r\n AXToastModule,\r\n AXToolbarModule,\r\n AXMenuModule,\r\n AXSelectionListModule,\r\n AXButtonModule\r\n ],\r\n exports: [COMPONENTS],\r\n providers: [],\r\n})\r\nexport class AXFilterModule { }","import { ContentChild, Input, Directive } from '@angular/core';\r\nimport { AXDataSourceComponent } from '../../data-source/datasource.component';\r\nimport { AXDataSourceReadParams } from '../../data-source/read-param';\r\nimport { AXBaseComponent } from '../../base/element.class';\r\n\r\n\r\nexport abstract class AXDataListComponent extends AXBaseComponent {\r\n\r\n\r\n\r\n @Input()\r\n items: any[] = [];\r\n\r\n // @ContentChild(AXDataSourceComponent, { static: true })\r\n // private _contentDataSource: AXDataSourceComponent;\r\n\r\n // private _dataSource: AXDataSourceComponent;\r\n\r\n // @Input()\r\n // public get dataSource(): AXDataSourceComponent {\r\n // return this._dataSource ? this._dataSource : this._contentDataSource;\r\n // }\r\n\r\n // public set dataSource(v: AXDataSourceComponent) {\r\n // this._dataSource = v;\r\n // }\r\n\r\n\r\n abstract dataSource: AXDataSourceComponent;\r\n\r\n\r\n // ngAfterContentInit(): void {\r\n // this.configDataList();\r\n // }\r\n\r\n\r\n protected configDataList() {\r\n if (this.dataSource) {\r\n this.dataSource.onDataReceived.subscribe(c => {\r\n this.dataReceived(c.data.result);\r\n });\r\n }\r\n }\r\n\r\n private dataReceived(data: any) {\r\n this.items = data;\r\n }\r\n\r\n private params: AXDataSourceReadParams = {};\r\n\r\n fetch(params: AXDataSourceReadParams = {}) {\r\n this.params = params;\r\n if (this.dataSource) {\r\n this.dataSource.fetch(params);\r\n }\r\n }\r\n\r\n refresh() {\r\n this.fetch(this.params);\r\n }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { AXToolbarItem } from '../../toolbar/toolbar-item';\r\nimport { AXValueEvent } from '../../base/events.class';\r\n\r\nexport type AXListViewDirection = \"vertical\" | \"vertical-wrap\" | \"horizontal-wrap\" | \"horizontal\";\r\n\r\n@Component({\r\n selector: 'ax-toolbar-list-view',\r\n template: `\r\n <div class=\"btn-group\" role=\"group\">\r\n <button type=\"button\" class=\"btn btn-light btn-sm\" *ngIf=\"vertical\" [class.active]=\"direction=='vertical'\" (click)=\"direction='vertical'\" title=\"vertical\">\r\n <i class=\"far fa-bars\"></i>\r\n </button>\r\n <button type=\"button\" class=\"btn btn-light btn-sm\" *ngIf=\"verticalWrap\" [class.active]=\"direction=='vertical-wrap'\" (click)=\"direction='vertical-wrap'\" title=\"vertical-wrap\">\r\n <i class=\"far fa-grip-horizontal\"></i>\r\n </button>\r\n <button type=\"button\" class=\"btn btn-light btn-sm\" *ngIf=\"horizontalWrap\" [class.active]=\"direction=='horizontal-wrap'\" title=\"horizontal-wrap'\" (click)=\"direction='horizontal-wrap'\" title=\"horizontal-wrap\">\r\n <i class=\"far fa-bars fa-rotate-90\"></i>\r\n </button>\r\n <button type=\"button\" class=\"btn btn-light btn-sm\" *ngIf=\"horizontal\" [class.active]=\"direction=='horizontal'\" (click)=\"direction='horizontal'\" title=\"horizontal\">\r\n <i class=\"far fa-grip-horizontal fa-rotate-90\"></i>\r\n </button>\r\n </div>\r\n `,\r\n providers: [{ provide: AXToolbarItem, useExisting: AXToolbarListViewComponent }]\r\n})\r\nexport class AXToolbarListViewComponent {\r\n constructor() { }\r\n\r\n @Input('vertical')\r\n vertical: boolean = true;\r\n\r\n @Input('vertical-wrap')\r\n verticalWrap: boolean = true;\r\n\r\n @Input('horizontal-wrap')\r\n horizontalWrap: boolean = true;\r\n\r\n @Input('horizontal')\r\n horizontal: boolean = true;\r\n\r\n\r\n @Output()\r\n onDirectionChanged: EventEmitter<AXValueEvent<AXListViewDirection>> = new EventEmitter<AXValueEvent<AXListViewDirection>>();\r\n\r\n private _direction: AXListViewDirection = \"vertical\";\r\n @Input()\r\n public get direction(): AXListViewDirection {\r\n return this._direction;\r\n }\r\n public set direction(v: AXListViewDirection) {\r\n if (v != this._direction) {\r\n const old = this._direction;\r\n this._direction = v;\r\n this.onDirectionChanged.emit({\r\n component: this,\r\n value: v,\r\n oldValue: old\r\n });\r\n }\r\n }\r\n\r\n}\r\n","import {\r\n Component,\r\n ContentChild,\r\n TemplateRef,\r\n Input,\r\n Output,\r\n EventEmitter\r\n} from \"@angular/core\";\r\nimport { AXDataListComponent } from \"../core/data-list.component\";\r\nimport {\r\n AXToolbarListViewComponent,\r\n AXListViewDirection\r\n} from \"./toolbar-list-view.component\";\r\nimport { ViewEncapsulation } from \"@angular/core\";\r\nimport { AXToolbarSearchComponent } from '../../toolbar/search/toolbar-search.component';\r\nimport { AXToolbarComponent } from '../../toolbar/toolbar.component';\r\nimport { AXEvent, AXValueEvent } from '../../base/events.class';\r\nimport { AXDataSourceComponent } from '../../data-source/datasource.component';\r\n\r\n\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: \"ax-list\",\r\n templateUrl: \"./list.component.html\",\r\n styleUrls: [\"./list.component.scss\"],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXListComponent extends AXDataListComponent {\r\n constructor() {\r\n super();\r\n }\r\n @Input() width: string = \"\";\r\n @Input() height: string = \"auto\";\r\n\r\n @Input(\"dropId\") public dropId: string;\r\n @Input(\"connectedList\") public connectedList: string[] = [];\r\n\r\n @Input() public allowMoveItem: boolean = false;\r\n\r\n\r\n @ContentChild(AXDataSourceComponent, { static: true })\r\n private _contentDataSource: AXDataSourceComponent;\r\n\r\n private _dataSource: AXDataSourceComponent;\r\n\r\n @Input()\r\n public get dataSource(): AXDataSourceComponent {\r\n return this._dataSource ? this._dataSource : this._contentDataSource;\r\n }\r\n\r\n public set dataSource(v: AXDataSourceComponent) {\r\n this._dataSource = v;\r\n }\r\n\r\n\r\n @ContentChild('itemTemplate', { static: true })\r\n _contentItemTemplate: TemplateRef<any>;\r\n\r\n\r\n private _itemTemplate: TemplateRef<any>;\r\n @Input()\r\n public get itemTemplate(): TemplateRef<any> {\r\n return this._itemTemplate ? this._itemTemplate : this._contentItemTemplate;\r\n }\r\n public set itemTemplate(v: TemplateRef<any>) {\r\n this._itemTemplate = v;\r\n }\r\n\r\n\r\n\r\n\r\n @ContentChild('emptyTemplate', { static: true })\r\n _contentEmptyTemplate: TemplateRef<any>;\r\n\r\n private _emptyTemplate: TemplateRef<any>;\r\n @Input()\r\n public get emptyTemplate(): TemplateRef<any> {\r\n return this._emptyTemplate ? this._emptyTemplate : this._contentEmptyTemplate;\r\n }\r\n public set emptyTemplate(v: TemplateRef<any>) {\r\n this._emptyTemplate = v;\r\n }\r\n\r\n\r\n @ContentChild(AXToolbarSearchComponent, { static: true })\r\n searchToolbar: AXToolbarSearchComponent;\r\n\r\n @ContentChild(AXToolbarListViewComponent, { static: true })\r\n viewToolbar: AXToolbarListViewComponent;\r\n\r\n @ContentChild(AXToolbarComponent, { static: true })\r\n toolbar: AXToolbarComponent;\r\n\r\n\r\n\r\n @Output()\r\n onDirectionChanged: EventEmitter<AXValueEvent<AXListViewDirection>> = new EventEmitter<AXValueEvent<AXListViewDirection>>();\r\n\r\n private _direction: AXListViewDirection = \"vertical\";\r\n @Input()\r\n public get direction(): AXListViewDirection {\r\n return this._direction;\r\n }\r\n public set direction(v: AXListViewDirection) {\r\n if (this._direction != v) {\r\n const old = this._direction;\r\n this._direction = v;\r\n this.setDirection(v);\r\n this.onDirectionChanged.emit({\r\n component: this,\r\n value: v,\r\n oldValue: old\r\n });\r\n }\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n this.fetch();\r\n if (this.viewToolbar) {\r\n this.viewToolbar.onDirectionChanged.subscribe(c => {\r\n this.direction = c.value;\r\n });\r\n }\r\n }\r\n\r\n private setDirection(e: AXListViewDirection) {\r\n this.direction = e;\r\n }\r\n\r\n\r\n\r\n // dragDrop(event: CdkDragDrop<any[]>) {\r\n // if (event.previousContainer === event.container) {\r\n // moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\r\n // } else {\r\n // transferArrayItem(event.previousContainer.data,\r\n // event.container.data,\r\n // event.previousIndex,\r\n // event.currentIndex);\r\n // }\r\n // }\r\n dragDrop(event: any) {\r\n\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { AXDataSourceComponent } from './datasource.component';\r\nimport { AXHttpModule } from '@acorex/core';\r\n\r\n@NgModule({\r\n declarations: [AXDataSourceComponent],\r\n imports: [],\r\n exports: [AXDataSourceComponent],\r\n providers: [],\r\n})\r\nexport class AXDataSourceModule { }","import { NgModule } from '@angular/core';\r\nimport { AXListComponent } from './list.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXToolbarListViewComponent } from './toolbar-list-view.component';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { AXDataSourceModule } from '../../data-source/datasource.module';\r\n\r\n@NgModule({\r\n declarations: [AXListComponent, AXToolbarListViewComponent],\r\n imports: [CommonModule, AXDataSourceModule, DragDropModule],\r\n exports: [AXListComponent, AXToolbarListViewComponent],\r\n providers: [],\r\n})\r\nexport class AXListModule { }","import { Component, OnInit, Input, ViewEncapsulation } from '@angular/core';\r\nimport { AXButtonItem } from '@acorex/core';\r\nimport { AXMenuItemClickEvent } from '../menu/menu.component';\r\nimport { AXBasePopupPageComponent } from '../base/base-page.class';\r\n\r\n@Component({\r\n selector: 'ax-dialog',\r\n templateUrl: './dialog.component.html',\r\n styleUrls: ['./dialog.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXDialogComponent extends AXBasePopupPageComponent {\r\n message: string;\r\n\r\n buttons: AXButtonItem[] = [];\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n onClick: Function;\r\n\r\n onFooterButtonClick(e: AXMenuItemClickEvent) {\r\n if (this.onClick) {\r\n this.onClick(e.data);\r\n }\r\n }\r\n\r\n getFooterButtons(): AXButtonItem[] {\r\n return this.buttons;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXDialogComponent } from './dialog.component';\r\nimport { AXButtonModule } from '../button/button.module';\r\nimport { AXTranslatorModule } from '@acorex/core';\r\n\r\n@NgModule({\r\n declarations: [AXDialogComponent],\r\n imports: [CommonModule, AXButtonModule,AXTranslatorModule],\r\n exports: [AXDialogComponent],\r\n providers: [],\r\n})\r\nexport class AXDialogModule { }","import {\r\n Component,\r\n Input,\r\n EventEmitter,\r\n ViewChild,\r\n ViewContainerRef,\r\n OnInit,\r\n ComponentFactoryResolver,\r\n ViewEncapsulation,\r\n HostListener,\r\n ElementRef,\r\n ComponentRef,\r\n OnDestroy,\r\n Output,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n SimpleChanges,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport { AXBaseComponent } from '../base/element.class';\r\nimport { AXPageCloseEvent, TAB_META_KEY } from '../base/base-page.class';\r\nimport { AXButtonItem, AXRenderService } from '@acorex/core';\r\nimport { AXLoadingService } from '../loading/loading.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n templateUrl: './popup.component.html',\r\n styleUrls: ['./popup.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXPopupComponent extends AXBaseComponent implements OnDestroy {\r\n\r\n isLoading: boolean = true;\r\n _loadingId: number;\r\n private onFooterButtonsSubscription: Subscription;\r\n\r\n constructor(\r\n private resolver: ComponentFactoryResolver,\r\n private ref: ElementRef<HTMLDivElement>,\r\n private rendererService: AXRenderService,\r\n private loadingService: AXLoadingService,\r\n private cdr: ChangeDetectorRef,\r\n ) {\r\n super();\r\n }\r\n\r\n ngAfterViewInit() {\r\n console.log('popup');\r\n this._loadingId = this.loadingService.show(this.ref.nativeElement.querySelector('.ax-popup-body-container'));\r\n if (typeof this.content === 'string') {\r\n this.rendererService.findLoadedComponentByRoute(this.content, 20).then(route => {\r\n setTimeout(() => {\r\n this.loadComponent(route?.component);\r\n }, 300);\r\n });\r\n }\r\n else if (this.content instanceof TemplateRef) {\r\n const view = this.content.createEmbeddedView({ $implicit: this.data });\r\n this.popupBody.insert(view);\r\n this.isLoading = false;\r\n this.loadingService.hide(this._loadingId);\r\n }\r\n else if (typeof this.content === 'function') {\r\n setTimeout(() => {\r\n this.loadComponent(this.content);\r\n });\r\n }\r\n }\r\n\r\n\r\n private loadComponent(component: any) {\r\n\r\n if (component == null) {\r\n //TODO: 404 page component\r\n console.error(`Invalid page Component! ${this.content}`);\r\n return;\r\n }\r\n ///\r\n try {\r\n const factory = this.resolver.resolveComponentFactory(component);\r\n this.comRef = this.popupBody.createComponent(factory);\r\n const com = this.comRef.instance as any;\r\n if (com.onClosed) {\r\n com.onClosed.subscribe((e: AXPageCloseEvent) => {\r\n this.onClosed.emit(e);\r\n });\r\n }\r\n this[TAB_META_KEY].component = com;\r\n Object.assign(this[TAB_META_KEY].component, this.data);\r\n //\r\n if (com.getFooterButtons) {\r\n this.footerButtons = com.getFooterButtons();\r\n }\r\n if (com.onFooterButtonsChanged) {\r\n this.onFooterButtonsSubscription = (com.onFooterButtonsChanged as EventEmitter<AXButtonItem[]>).subscribe(c => {\r\n this.footerButtons = c;\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n //\r\n this.focus();\r\n this.isLoading = false;\r\n this.loadingService.hide(this._loadingId);\r\n setTimeout(() => {\r\n this.comRef.changeDetectorRef.detectChanges();\r\n }, 100);\r\n this.cdr.detectChanges();\r\n } catch (error) {\r\n //TODO: 404 page component\r\n console.error(error);\r\n }\r\n }\r\n\r\n @ViewChild('popupBody', { read: ViewContainerRef, static: true })\r\n private popupBody: ViewContainerRef;\r\n\r\n @HostListener('keydown.escape', ['$event'])\r\n onKeydownHandler(event: KeyboardEvent) {\r\n if (this.closable) {\r\n this.onCloseClick();\r\n }\r\n }\r\n\r\n private comRef: ComponentRef<any>;\r\n\r\n title: string;\r\n\r\n onClosed: EventEmitter<AXPageCloseEvent> = new EventEmitter<AXPageCloseEvent>();\r\n\r\n size: 'sm' | 'md' | 'lg' | 'full' = 'sm';\r\n modal: boolean = true;\r\n\r\n data: any = {};\r\n\r\n maximizable: boolean = false;\r\n\r\n closable: boolean = true;\r\n\r\n content: any;\r\n\r\n headerButtons: AXButtonItem[] = [];\r\n\r\n footerButtons: AXButtonItem[] = [];\r\n\r\n onCloseClick() {\r\n this.onClosed.emit({\r\n component: this[TAB_META_KEY].component,\r\n htmlElement: this.ref.nativeElement,\r\n });\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.comRef) {\r\n this.comRef.destroy();\r\n }\r\n if (this.onFooterButtonsSubscription) {\r\n this.onFooterButtonsSubscription.unsubscribe();\r\n }\r\n this.cdr.detectChanges();\r\n this.loadingService.hide(this._loadingId);\r\n }\r\n\r\n focus() {\r\n setTimeout(() => this.ref.nativeElement.focus());\r\n }\r\n\r\n onFullScreen() { }\r\n\r\n handleFooterButtonClick(e: AXButtonItem) {\r\n if (e.onClick) {\r\n e.onClick();\r\n }\r\n else if (this[TAB_META_KEY].component.onFooterButtonClick) {\r\n this[TAB_META_KEY].component.onFooterButtonClick({\r\n component: this[TAB_META_KEY].component,\r\n name: e.name,\r\n data: e,\r\n htmlElement: this.ref.nativeElement,\r\n });\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AXPopupComponent } from './popup.component';\r\nimport { AXButtonItem } from '@acorex/core';\r\nimport { TAB_META_KEY, AXPageClosedPromise, AXPageCloseEvent } from '../base/base-page.class';\r\nimport { AXOverlayService, AXOverlayViewRef } from '../popover/overlay.service';\r\nimport { options } from '@amcharts/amcharts4/core';\r\n\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXPopupService {\r\n private stack: Array<AXPopupComponent> = [];\r\n\r\n constructor(private overlayService: AXOverlayService) { }\r\n\r\n\r\n open(content: any, title: string): AXPageClosedPromise;\r\n open(\r\n content: any,\r\n options?: {\r\n title: string;\r\n closable?: boolean;\r\n maximizable?: boolean;\r\n size?: 'sm' | 'md' | 'lg' | 'full';\r\n data?: any;\r\n footerButtons?: AXButtonItem[],\r\n modal?: boolean\r\n }\r\n ): AXPageClosedPromise;\r\n\r\n open(arg1, arg2): AXPageClosedPromise {\r\n const options: any = {\r\n closable: true,\r\n size: 'md',\r\n maximizable: false,\r\n footerButtons: [],\r\n modal: true,\r\n };\r\n\r\n if (typeof arg2 === 'string') {\r\n options.title = arg2;\r\n } else {\r\n Object.assign(options, arg2);\r\n }\r\n const com = this.overlayService.show(AXPopupComponent, options, {\r\n transparentBackdrop: false,\r\n hasBackdrop: options.modal,\r\n closeOnClickOutside: false,\r\n scroll: 'block'\r\n });\r\n const popup = com.instance as AXPopupComponent;\r\n popup.content = arg1;\r\n popup[TAB_META_KEY] = {};\r\n if (options.size) {\r\n popup.size = options.size;\r\n }\r\n if (options.footerButtons) {\r\n popup.footerButtons = options.footerButtons;\r\n }\r\n this.stack.push(popup);\r\n popup.onClosed.subscribe(c => {\r\n this.closePopup(popup, com, c);\r\n });\r\n const promise = new AXPageClosedPromise((resolve) => {\r\n popup[TAB_META_KEY].close = (e) => {\r\n if (resolve) {\r\n resolve(e);\r\n }\r\n };\r\n });\r\n promise['closeMethod'] = () => { popup.onCloseClick(); };\r\n return promise;\r\n }\r\n\r\n\r\n private closePopup(popup: AXPopupComponent, com: AXOverlayViewRef, result: AXPageCloseEvent) {\r\n const closeFunc = (e) => {\r\n com.dispose();\r\n this.stack.pop();\r\n delete e.cancel;\r\n popup[TAB_META_KEY].close(e);\r\n if (this.stack.length) { this.stack.reverse()[0].focus(); }\r\n };\r\n const e = { cancel: false };\r\n const closingFunc = popup[TAB_META_KEY]?.component?.onClosing;\r\n if (closingFunc) {\r\n const res = closingFunc(e);\r\n if (res instanceof Promise) {\r\n res.then(() => {\r\n if (e == null || e.cancel !== true) {\r\n closeFunc(result);\r\n }\r\n });\r\n }\r\n else {\r\n if (e == null || e.cancel !== true) {\r\n closeFunc(result);\r\n }\r\n }\r\n } else {\r\n closeFunc(result);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AXDialogComponent } from './dialog.component';\r\nimport { AXPopupService } from '../popup/popup.service';\r\nimport { AXButtonItem, AXTranslator } from '@acorex/core';\r\n\r\nexport class AXDialogAlertResult {\r\n private _executor: (close: (e?: any) => void) => void;\r\n constructor(\r\n executor: (close: (e?: any) => void) => void\r\n ) {\r\n this._executor = executor;\r\n setTimeout(() => {\r\n this._executor(this.closeAction);\r\n }, 50);\r\n }\r\n\r\n private closeAction: (e?: any) => void;\r\n\r\n close(action: (e?: any) => void): AXDialogAlertResult {\r\n this.closeAction = action;\r\n return this;\r\n }\r\n\r\n}\r\n\r\nexport class AXDialogConfirmResult {\r\n private _executor: (okay: () => void, cancel: () => void, final: () => void) => void;\r\n constructor(\r\n executor: (okay: () => void, cancel: () => void, final: () => void) => void\r\n ) {\r\n this._executor = executor;\r\n setTimeout(() => {\r\n this._executor(this.okayAction, this.cancelAction, this.finalAction);\r\n }, 50);\r\n }\r\n\r\n private okayAction: () => void;\r\n private cancelAction: () => void;\r\n private finalAction: () => void;\r\n\r\n okay(action: () => void): AXDialogConfirmResult {\r\n this.okayAction = action;\r\n return this;\r\n }\r\n cancel(action: () => void): AXDialogConfirmResult {\r\n this.cancelAction = action;\r\n\r\n return this;\r\n }\r\n final(action: () => void) {\r\n this.finalAction = action;\r\n }\r\n}\r\n\r\n\r\nexport class AXDialogResult {\r\n private _executor: (then: (name: string) => void, final: () => void) => void;\r\n constructor(\r\n executor: (then: (name: string) => void, final: () => void) => void\r\n ) {\r\n this._executor = executor;\r\n setTimeout(() => {\r\n this._executor(this.thenAction, this.finalAction);\r\n }, 50);\r\n }\r\n\r\n private thenAction: (name: string) => void;\r\n private finalAction: () => void;\r\n\r\n then(action: (name: string) => void): AXDialogResult {\r\n this.thenAction = action;\r\n return this;\r\n }\r\n\r\n final(action: () => void) {\r\n this.finalAction = action;\r\n }\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXDialogService {\r\n\r\n constructor(private popupService: AXPopupService) {\r\n\r\n }\r\n\r\n alert(title: string, message: string): AXDialogAlertResult {\r\n return new AXDialogAlertResult((close) => {\r\n const popup = this.popupService.open(AXDialogComponent, {\r\n title,\r\n size: 'sm',\r\n closable: false,\r\n\r\n data: {\r\n message,\r\n buttons: [\r\n {\r\n name: 'confirm',\r\n text: AXTranslator.get('common.confirm'),\r\n style: 'success',\r\n submitBehavior: true,\r\n }\r\n ],\r\n onClick: (e) => {\r\n popup.close()\r\n close();\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n confirm(title: string, message: string): AXDialogConfirmResult {\r\n return new AXDialogConfirmResult((okay, cancel, final) => {\r\n const popup = this.popupService.open(AXDialogComponent, {\r\n title,\r\n size: 'sm',\r\n closable: false,\r\n\r\n data: {\r\n buttons: [\r\n {\r\n name: 'confirm',\r\n text: AXTranslator.get('common.confirm'),\r\n style: 'success',\r\n submitBehavior: true,\r\n cancelBehavior: false,\r\n },\r\n {\r\n name: 'cancel',\r\n text: AXTranslator.get('common.cancel'),\r\n style: 'danger blank',\r\n submitBehavior: false,\r\n cancelBehavior: true,\r\n }\r\n ],\r\n message,\r\n onClick: (e) => {\r\n popup.close()\r\n if (e.name === 'confirm' && okay) {\r\n okay();\r\n }\r\n if (e.name === 'cancel' && cancel) {\r\n cancel();\r\n }\r\n if (final) {\r\n final();\r\n }\r\n }\r\n }\r\n })\r\n });\r\n }\r\n\r\n\r\n show(title: string, message: string, closable: boolean = false, ...buttons: AXButtonItem[]): AXDialogResult {\r\n return new AXDialogResult((then, final) => {\r\n const popup = this.popupService.open(AXDialogComponent, {\r\n title,\r\n size: 'sm',\r\n closable,\r\n data: {\r\n message,\r\n buttons,\r\n onClick: (e) => {\r\n popup.close();\r\n if (then) {\r\n then(e.name);\r\n }\r\n if (final) {\r\n final();\r\n }\r\n }\r\n }\r\n });\r\n });\r\n }\r\n}","import { Component, OnInit, Input } from '@angular/core';\r\nimport {\r\n trigger,\r\n state,\r\n style,\r\n transition,\r\n animate,\r\n} from '@angular/animations';\r\n@Component({\r\n selector: 'ax-drawer',\r\n templateUrl: './drawer.component.html',\r\n animations: [\r\n trigger('slideInOut', [\r\n state(\r\n 'in',\r\n style({\r\n transform: 'translate3d(0,0,0)',\r\n })\r\n ),\r\n state(\r\n 'out',\r\n style({\r\n transform: 'translate3d(100%, 0, 0)',\r\n })\r\n ),\r\n transition('in => out', animate('200ms ease-in-out')),\r\n transition('out => in', animate('200ms ease-in-out')),\r\n ]),\r\n ],\r\n})\r\nexport class AXDrawerComponent {\r\n constructor() {}\r\n\r\n @Input()\r\n width: number = 300;\r\n\r\n drawerState: string = 'out';\r\n\r\n ngOnDestroy(): void {\r\n document.querySelector('body').classList.remove('ax-drawer-underlay');\r\n }\r\n toggle() {\r\n const body = document.querySelector('body');\r\n\r\n if (this.drawerState === 'out') {\r\n this.drawerState = 'in';\r\n body.classList.add('ax-drawer-underlay');\r\n } else {\r\n this.drawerState = 'out';\r\n body.classList.remove('ax-drawer-underlay');\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXDrawerComponent } from './drawer.component';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\n@NgModule({\r\n declarations: [AXDrawerComponent],\r\n imports: [CommonModule, BrowserAnimationsModule],\r\n exports: [AXDrawerComponent],\r\n providers: []\r\n})\r\nexport class AXDrawerModule {}\r\n","import { Component, OnInit, ViewEncapsulation, ChangeDetectionStrategy, Input } from '@angular/core';\r\nimport { trigger, state, style, transition, animate } from '@angular/animations';\r\nimport { AXBaseSizableComponent, AXElementSize } from '../base/element.class';\r\n\r\n@Component({\r\n selector: 'ax-fieldset',\r\n templateUrl: './fieldset.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [\r\n trigger('visibilityChanged', [\r\n state(\r\n 'shown',\r\n style({\r\n height: '*',\r\n opacity: 1\r\n })\r\n ),\r\n state(\r\n 'hidden',\r\n style({\r\n height: '0px',\r\n opacity: 0,\r\n padding: 0\r\n })\r\n ),\r\n transition('Void => *', animate('0ms')),\r\n transition('shown => hidden', animate('200ms')),\r\n transition('hidden => shown', animate('200ms'))\r\n ])\r\n ]\r\n})\r\nexport class AXFieldsetComponent implements AXBaseSizableComponent {\r\n @Input()\r\n size: AXElementSize = \"md\";\r\n\r\n @Input()\r\n caption: string = '';\r\n\r\n @Input()\r\n allowCollapse: boolean = false;\r\n\r\n collapsed: boolean = false;\r\n toggle() {\r\n if (this.allowCollapse) {\r\n this.collapsed = !this.collapsed;\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXFieldsetComponent } from './fieldset.component';\r\n\r\n@NgModule({\r\n declarations: [AXFieldsetComponent],\r\n imports: [ CommonModule ],\r\n exports: [AXFieldsetComponent],\r\n providers: [],\r\n})\r\nexport class AXFieldsetModule {}","import { Component, OnInit, ViewEncapsulation, Input } from '@angular/core';\r\nimport { AXBaseComponent, AXBaseSizableComponent, AXElementSize } from '../base/element.class';\r\n\r\n@Component({\r\n selector: 'ax-label',\r\n templateUrl: './label.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXLabelComponent extends AXBaseComponent implements AXBaseSizableComponent {\r\n constructor() {\r\n super();\r\n }\r\n\r\n @Input()\r\n size: AXElementSize = 'md';\r\n\r\n ngOnInit(): void {}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXLabelComponent } from './label.component';\r\n\r\nconst COMPONENT = [AXLabelComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXLabelModule { }","import { Component, OnInit, Input, ElementRef } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-loading-panel',\r\n template: `\r\n <div onclick=\"return false;\" class=\"ax ax-loading-panel ax-overlay-wrapper ax-overlay-modal ax-loading-overlay\" *ngIf=\"visible\" >\r\n <ax-loading-indicator tabindex=\"0\" cdkTrapFocus>\r\n </ax-loading-indicator>\r\n </div>\r\n `\r\n})\r\nexport class AXLoadingPanelComponent implements OnInit {\r\n\r\n constructor(private ref: ElementRef<HTMLDivElement>) {\r\n\r\n }\r\n\r\n @Input()\r\n visible: boolean = false;\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n const host = this.ref.nativeElement.closest('.ax-loading-host');\r\n }\r\n\r\n show() {\r\n this.visible = true;\r\n }\r\n\r\n hide() {\r\n this.visible = false;\r\n }\r\n}\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXLoadingIndicatorComponent } from './loading-indicator.component';\r\nimport { AXLoadingPanelComponent } from './loading-panel.component';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\n\r\n@NgModule({\r\n declarations: [AXLoadingIndicatorComponent, AXLoadingPanelComponent],\r\n imports: [CommonModule, A11yModule],\r\n exports: [AXLoadingIndicatorComponent, AXLoadingPanelComponent],\r\n providers: [],\r\n})\r\nexport class AXLoadingModule { }","import { Component, Input, ElementRef, HostListener, ChangeDetectorRef, ChangeDetectionStrategy, AfterViewInit, OnInit } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\nimport { AXBaseTextComponent, AXValidatableComponent } from '../base/element.class';\r\n@Component({\r\n selector: 'ax-number-box',\r\n templateUrl: './number-box.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { style: 'display: contents;' },\r\n providers: [{ provide: AXValidatableComponent, useExisting: AXNumberBoxComponent }]\r\n})\r\nexport class AXNumberBoxComponent extends AXBaseTextComponent implements OnInit {\r\n @Input() min: number = null;\r\n @Input() max: number = null;\r\n\r\n @Input()\r\n showSeparator: boolean = false;\r\n @Input()\r\n showCurrency: boolean = false;\r\n\r\n @Input()\r\n showCounter: boolean = true;\r\n\r\n @Input()\r\n scrollWeel: boolean = true;\r\n\r\n @Input()\r\n showDoubleCounter: boolean = false;\r\n\r\n userQuestionUpdate = new Subject<string>();\r\n\r\n userEdite: boolean = false;\r\n\r\n tmp: any;\r\n count: number;\r\n findDots: boolean = false;\r\n findMinus: boolean = false;\r\n cursorPosition: number = 0;\r\n dotPosition: number;\r\n textValue: string;\r\n decimalConstant: number = 0.1;\r\n lastStep: number = null;\r\n\r\n @Input() intStep: number = 1;\r\n @Input() decimalNumber: number = null;\r\n @Input() customStep: number = null;\r\n\r\n private _values: string;\r\n public get value(): string {\r\n return this._values;\r\n }\r\n public set value(v: string) {\r\n if (v === '-') {\r\n this.textValue = '-';\r\n this._values = '-';\r\n } else {\r\n if (v === '' || v == null || v === undefined ? true : isNaN(Number(v.toString().replace(/,/g, ''))) === false) {\r\n if (v === '' || v == null || v === undefined) {\r\n this.textValue = '';\r\n const old = this._values;\r\n this._values = null;\r\n\r\n if (this._values !== old) {\r\n this.valueChange.emit(null);\r\n this.onValueChanged.emit({\r\n isUserChange: this.userEdite,\r\n component: this,\r\n value: null,\r\n oldValue:\r\n this.showSeparator && old\r\n ? old === '-'\r\n ? null\r\n : Number(old.replace(/,/g, ''))\r\n : old === null || old === undefined\r\n ? null\r\n : old === '-'\r\n ? null\r\n : Number(old),\r\n htmlElement: this.ref.nativeElement\r\n });\r\n this.userEdite = false;\r\n this.cdr.detectChanges();\r\n this.clearValidationStyle(this.input.nativeElement);\r\n }\r\n } else {\r\n v = v.toString();\r\n\r\n // this.addCommas(v.toString());\r\n this.textValue = this.showSeparator && v ? this.addCommas(v.toString()) : v;\r\n\r\n // if (this.textValue.indexOf('.') !== -1) {\r\n // // const dottt= (this.textValue.length-1) - this.textValue.indexOf('.')\r\n // if (this.textValue.length - 1 - this.textValue.indexOf('.') < this.decimalNumber) {\r\n // const a = this.decimalNumber - (this.textValue.length - 1 - this.textValue.indexOf('.'));\r\n // const z = '0';\r\n // this.textValue = this.textValue + '0';\r\n // }\r\n // }\r\n\r\n if (this._values) {\r\n const old = this._values;\r\n if (old.toString().search(/\\./g) !== v.toString().search(/\\./g)) {\r\n if (this.cursorPosition <= old.search(/\\./g)) {\r\n this.cursorPosition = v.search(/\\./g);\r\n } else {\r\n this.cursorPosition = v.length;\r\n }\r\n }\r\n }\r\n if (v !== this._values) {\r\n const old = this._values;\r\n this._values = v;\r\n this.valueChange.emit(this.showSeparator && v ? Number(v.replace(/,/g, '')) : Number(v));\r\n this.onValueChanged.emit({\r\n isUserChange: this.userEdite,\r\n component: this,\r\n value: this.showSeparator && v ? Number(v.replace(/,/g, '')) : Number(v),\r\n oldValue:\r\n this.showSeparator && old\r\n ? old === '-'\r\n ? null\r\n : Number(old.replace(/,/g, ''))\r\n : old === null || old === undefined\r\n ? null\r\n : old === '-'\r\n ? null\r\n : Number(old),\r\n htmlElement: this.ref.nativeElement\r\n });\r\n this.userEdite = false;\r\n this.cdr.detectChanges();\r\n this.clearValidationStyle(this.input.nativeElement);\r\n }\r\n }\r\n } else {\r\n this.textValue = '';\r\n v = null;\r\n const old = this._values;\r\n this._values = null;\r\n\r\n if (this._values !== old) {\r\n this.valueChange.emit(null);\r\n this.onValueChanged.emit({\r\n isUserChange:this.userEdite,\r\n component: this,\r\n value: null,\r\n oldValue:\r\n this.showSeparator && old\r\n ? old === '-'\r\n ? null\r\n : Number(old.replace(/,/g, ''))\r\n : old === null || old === undefined\r\n ? null\r\n : old === '-'\r\n ? null\r\n : Number(old),\r\n htmlElement: this.ref.nativeElement\r\n });\r\n this.userEdite =false;\r\n this.cdr.detectChanges();\r\n this.clearValidationStyle(this.input.nativeElement);\r\n }\r\n }\r\n }\r\n }\r\n constructor(protected cdr: ChangeDetectorRef, ref: ElementRef) {\r\n super(cdr, ref);\r\n this.textAlign = 'left';\r\n }\r\n\r\n addCommas2(x) {\r\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n }\r\n\r\n addCommas(nStr) {\r\n nStr += '';\r\n const x = nStr.split('.');\r\n let x1 = x[0];\r\n const x2 = x.length > 1 ? '.' + x[1] : '';\r\n const rgx = /(\\d+)(\\d{3})/;\r\n while (rgx.test(x1)) {\r\n x1 = x1.replace(rgx, '$1' + ',' + '$2');\r\n }\r\n return x1 + x2;\r\n }\r\n\r\n ngOnInit() {\r\n if (this.disabled === false) {\r\n if (this.scrollWeel === true) {\r\n setTimeout(() => {\r\n this.input.nativeElement.addEventListener('wheel', (e) => {\r\n this.handleWheel(e);\r\n });\r\n }, 500);\r\n }\r\n }\r\n\r\n // this.value = this.min.toString();\r\n }\r\n\r\n handleWheel(event) {\r\n if ((event as any).wheelDelta > 0) {\r\n this.input.nativeElement.style.caretColor = 'transparent';\r\n\r\n this.upStepHandel();\r\n this.delaySearch();\r\n\r\n setTimeout(() => {\r\n this.setCaret();\r\n this.input.nativeElement.style.caretColor = 'auto';\r\n }, 0);\r\n }\r\n if ((event as any).wheelDelta < 0) {\r\n this.input.nativeElement.style.caretColor = 'transparent';\r\n\r\n this.downStepHandel();\r\n this.delaySearch();\r\n\r\n setTimeout(() => {\r\n this.setCaret();\r\n this.input.nativeElement.style.caretColor = 'auto';\r\n }, 0);\r\n }\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n\r\n handleKeyPress(event: any) {\r\n this.userEdite = true;\r\n const NumberDotpattern = /[0-9\\.]/g;\r\n const NumberMinusPattern = /[0-9\\-]/g;\r\n\r\n const inputChar = String.fromCharCode(event.charCode);\r\n\r\n if (this.value && this.value.toString().match(/\\./g) === null) {\r\n this.findDots = false;\r\n }\r\n if (this.value && this.value.toString().search('-') === null) {\r\n this.findMinus = false;\r\n }\r\n\r\n // get cursur position when key press\r\n if (this.input.nativeElement.selectionStart || this.input.nativeElement.selectionStart === 0) {\r\n this.cursorPosition = this.input.nativeElement.selectionStart;\r\n this.cursorPosition += 1;\r\n }\r\n\r\n // control cursor when in first Index\r\n if (this.cursorPosition <= 1) {\r\n if (!NumberMinusPattern.test(inputChar)) {\r\n event.preventDefault();\r\n }\r\n if (this.value && this.value.match(/\\-/g)) {\r\n event.preventDefault();\r\n }\r\n }\r\n // control cursor when in another index\r\n if (this.cursorPosition !== 1) {\r\n if (event.keyCode !== 8 && !NumberDotpattern.test(inputChar)) {\r\n event.preventDefault();\r\n } else {\r\n // for contor decimal figur = 0 or null\r\n if (this.decimalNumber === null || this.decimalNumber === 0) {\r\n if (inputChar === '.') {\r\n event.preventDefault();\r\n }\r\n }\r\n // control decimal number (figur of decimal)\r\n if (this.value && this.value.toString().match(/\\./g)) {\r\n const figureAfterDot = this.value.length - this.value.indexOf('.');\r\n const dotIndex = this.value.indexOf('.');\r\n if (dotIndex - 1 + dotIndex + figureAfterDot > dotIndex - 1 + dotIndex + this.decimalNumber && this.cursorPosition - 1 > dotIndex) {\r\n event.preventDefault();\r\n }\r\n }\r\n // control '.' input\r\n if (inputChar === '.') {\r\n const lastChar = this.value.toString().charAt(this.value.length - 1);\r\n // control . when last char is -\r\n if (lastChar.toString().match(/\\-/g)) {\r\n event.preventDefault();\r\n }\r\n // control . when find first dot\r\n if (this.findDots) {\r\n event.preventDefault();\r\n }\r\n this.findDots = true;\r\n this.findMinus = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n handleKeyUp(event: KeyboardEvent) {\r\n this.userEdite = true;\r\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\r\n this.input.nativeElement.style.caretColor = 'auto';\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n if (event.key === 'ArrowUp') {\r\n this.setCaret();\r\n }\r\n\r\n if (event.key === 'ArrowDown') {\r\n this.setCaret();\r\n }\r\n\r\n // left & right Button\r\n if (event.key === 'ArrowLeft' || event.key === 'ArrowRight') {\r\n if (this.input.nativeElement.selectionStart || this.input.nativeElement.selectionStart === 0) {\r\n this.cursorPosition = this.input.nativeElement.selectionStart;\r\n }\r\n }\r\n\r\n // home button\r\n if (event.key === 'Home') {\r\n this.cursorPosition = 0;\r\n }\r\n\r\n // end button\r\n if (event.key === 'End') {\r\n this.cursorPosition = this.value.length;\r\n }\r\n\r\n // set delay with rxjs\r\n this.delaySearch();\r\n\r\n // backspace Control\r\n if (event.key === 'Backspace') {\r\n if (this.value === null || this.value.length <= 0) {\r\n this.cursorPosition = 0;\r\n } else {\r\n this.cursorPosition -= 1;\r\n }\r\n }\r\n }\r\n\r\n handleKeyDown(event: KeyboardEvent) {\r\n this.userEdite = true;\r\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n if (this.readonly === false) {\r\n const countAfterDot =\r\n this.value !== null && this.value !== '' && this.value !== undefined\r\n ? this.value.toString().length - 1 - this.value.toString().indexOf('.')\r\n : 0;\r\n const defaultStep: number =\r\n countAfterDot > this.decimalNumber ? Math.pow(this.decimalConstant, this.decimalNumber) : Math.pow(this.decimalConstant, countAfterDot);\r\n // step and +- with up key and down key\r\n if (this.value && this.value.toString().match(/\\./g)) {\r\n this.dotPosition = this.value.indexOf('.');\r\n if (this.dotPosition >= this.cursorPosition) {\r\n if (event.key === 'ArrowDown') {\r\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\r\n this.count = this.tmp - +this.intStep;\r\n if (this.min === null || Number(this.count) >= Number(this.min)) {\r\n // this.value = this.count.toFixed(this.decimalNumber);\r\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);\r\n }\r\n }\r\n\r\n if (event.key === 'ArrowUp') {\r\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\r\n this.count = this.tmp + +this.intStep;\r\n if (this.max === null || Number(this.count) <= Number(this.max)) {\r\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);\r\n }\r\n }\r\n } else {\r\n if (event.key === 'ArrowDown') {\r\n if (this.min === null || Number(this.value) > Number(this.min)) {\r\n if (this.customStep !== null) {\r\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\r\n this.lastStep =\r\n parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) +\r\n parseFloat(this.customStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) -\r\n parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot));\r\n this.count = parseFloat(this.tmp) - this.lastStep;\r\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);\r\n } else {\r\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\r\n this.count = parseFloat(this.tmp) - defaultStep;\r\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);\r\n }\r\n }\r\n }\r\n\r\n if (event.key === 'ArrowUp') {\r\n if (this.max === null || Number(this.value) < Number(this.max)) {\r\n if (this.customStep !== null) {\r\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\r\n this.lastStep =\r\n parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) +\r\n parseFloat(this.customStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) -\r\n parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot));\r\n this.count = parseFloat(this.tmp) + this.lastStep;\r\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);\r\n } else {\r\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\r\n this.count = parseFloat(this.tmp) + defaultStep;\r\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n if (event.key === 'ArrowDown') {\r\n if (this.min != null && this.value == null) {\r\n this.value = this.min.toString();\r\n } else {\r\n if (this.min === null || Number(this.value) > parseInt(this.min.toString())) {\r\n if (this.value == null) {\r\n this.value = '0';\r\n } else {\r\n this.tmp = +this.value.toString().replace(/,/g, '');\r\n this.count = +this.tmp - +this.intStep;\r\n this.value = this.count.toString().replace(/,/g, '');\r\n }\r\n }\r\n }\r\n }\r\n if (event.key === 'ArrowUp') {\r\n if (this.min != null && this.value == null) {\r\n this.value = this.min.toString();\r\n } else {\r\n if (this.max === null || Number(this.value) < parseInt(this.max.toString())) {\r\n if (this.value == null) {\r\n this.value = '0';\r\n } else {\r\n this.tmp = this.value.toString().replace(/,/g, '');\r\n this.count = +this.tmp + +this.intStep;\r\n this.value = this.count.toString().replace(/,/g, '');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n // stop when keydown\r\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\r\n this.input.nativeElement.style.caretColor = 'transparent';\r\n event.preventDefault();\r\n event.stopPropagation();\r\n return false;\r\n }\r\n }\r\n\r\n handleClick() {\r\n if (this.input.nativeElement.selectionStart || this.input.nativeElement.selectionStart === 0) {\r\n this.cursorPosition = this.input.nativeElement.selectionStart;\r\n }\r\n }\r\n\r\n delaySearch() {\r\n Observable.create((observer) => {\r\n this.userQuestionUpdate = observer;\r\n });\r\n this.userQuestionUpdate.pipe(debounceTime(1000), distinctUntilChanged()).subscribe((text: string) => this.checkMinMax(text));\r\n // this.userQuestionUpdate.next((e.target as any).value);\r\n setTimeout(() => {\r\n this.userQuestionUpdate.next(this.input.nativeElement.value);\r\n }, 50);\r\n }\r\n\r\n checkMinMax(text) {\r\n if (this.min !== null) {\r\n if (+text < this.min) {\r\n this.value = '';\r\n }\r\n }\r\n if (this.max !== null) {\r\n if (+text > this.max) {\r\n this.value = '';\r\n }\r\n }\r\n }\r\n\r\n doGetCaretPosition(ctrl) {\r\n let CaretPos = 0;\r\n if (ctrl.selectionStart || ctrl.selectionStart === 0) {\r\n CaretPos = ctrl.selectionStart;\r\n return CaretPos;\r\n }\r\n }\r\n\r\n setCaretPosition(ctrl, pos) {\r\n if (ctrl.setSelectionRange) {\r\n ctrl.focus();\r\n ctrl.setSelectionRange(pos, pos);\r\n } else if (ctrl.createTextRange) {\r\n const range = ctrl.createTextRange();\r\n range.collapse(true);\r\n range.moveEnd('character', pos);\r\n range.moveStart('character', pos);\r\n range.select();\r\n }\r\n }\r\n\r\n setCaret() {\r\n this.setCaretPosition(this.input.nativeElement, this.cursorPosition);\r\n }\r\n\r\n upStepHandel() {\r\n debugger\r\n this.userEdite = true;\r\n if (this.min != null && this.value == null) {\r\n this.value = this.min.toString();\r\n } else {\r\n if (this.readonly === false) {\r\n const countAfterDot =\r\n this.value !== null && this.value !== '' && this.value !== undefined\r\n ? this.value.toString().length - 1 - this.value.toString().indexOf('.')\r\n : 0;\r\n if (this.value == null) {\r\n this.value = '0';\r\n } else {\r\n const defaultStep: number =\r\n countAfterDot > this.decimalNumber ? Math.pow(this.decimalConstant, this.decimalNumber) : Math.pow(this.decimalConstant, countAfterDot);\r\n this.dotPosition = this.value.toString().indexOf('.') + 1;\r\n if (this.value && this.value.toString().match(/\\./g)) {\r\n if (this.dotPosition > this.cursorPosition) {\r\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\r\n this.count = this.tmp + +this.intStep;\r\n if (this.max === null || Number(this.count) <= this.max) {\r\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);\r\n }\r\n } else {\r\n if (this.max === null || Number(this.value) < Number(this.max)) {\r\n if (this.customStep !== null) {\r\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\r\n this.lastStep =\r\n parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) +\r\n parseFloat(this.customStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) -\r\n parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot));\r\n this.count = parseFloat(this.tmp) + this.lastStep;\r\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot).replace(/,/g, '');\r\n } else {\r\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\r\n this.count = parseFloat(this.tmp) + defaultStep;\r\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot).replace(/,/g, '');\r\n }\r\n }\r\n }\r\n } else {\r\n if (this.max === null || Number(this.value) < parseInt(this.max.toString())) {\r\n this.tmp = this.value.toString().replace(/,/g, '');\r\n this.count = +this.tmp + +this.intStep;\r\n\r\n this.value = this.count.toString().replace(/,/g, '');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n downStepHandel() {\r\n this.userEdite = true;\r\n if (this.min != null && this.value == null) {\r\n this.value = this.min.toString();\r\n } else {\r\n if (this.readonly === false) {\r\n const countAfterDot =\r\n this.value !== null && this.value !== '' && this.value !== undefined\r\n ? this.value.toString().length - 1 - this.value.toString().indexOf('.')\r\n : 0;\r\n if (this.value == null) {\r\n this.value = '0';\r\n } else {\r\n const defaultStep: number =\r\n countAfterDot > this.decimalNumber ? Math.pow(this.decimalConstant, this.decimalNumber) : Math.pow(this.decimalConstant, countAfterDot);\r\n this.dotPosition = this.value.toString().indexOf('.') + 1;\r\n if (this.value && this.value.toString().match(/\\./g)) {\r\n if (this.dotPosition > this.cursorPosition) {\r\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\r\n this.count = parseFloat(this.value.replace(/,/g, '')) - +this.intStep;\r\n if (this.min === null || Number(this.count) >= this.min) {\r\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot).replace(/,/g, '');\r\n }\r\n } else {\r\n if (this.min === null || Number(this.value) > Number(this.min)) {\r\n if (this.customStep !== null) {\r\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\r\n this.lastStep =\r\n parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) +\r\n parseFloat(this.customStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) -\r\n parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot));\r\n this.count = parseFloat(this.tmp) - this.lastStep;\r\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);\r\n } else {\r\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\r\n this.count = parseFloat(this.tmp) - defaultStep;\r\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);\r\n }\r\n }\r\n }\r\n } else {\r\n if (this.min === null || Number(this.value) > parseInt(this.min.toString())) {\r\n this.tmp = +this.value.toString().replace(/,/g, '');\r\n this.count = +this.tmp - +this.intStep;\r\n this.value = this.count.toString().replace(/,/g, '');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXNumberBoxComponent } from './number-box.component';\r\nimport { AXButtonModule } from '../button/button.module';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n declarations: [AXNumberBoxComponent],\r\n imports: [CommonModule, AXButtonModule, FormsModule],\r\n exports: [AXNumberBoxComponent],\r\n providers: []\r\n})\r\nexport class AXNumberBoxModule {}\r\n","import { Component, ElementRef } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-page-content',\r\n template: `\r\n <div class='ax-page-content'>\r\n <div class='inner-content'>\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n `,\r\n styles: [\r\n ':host { height:100% }'\r\n ]\r\n})\r\nexport class AXPageContentComponent {\r\n constructor(private el: ElementRef) { }\r\n}\r\n","import {\r\n Component\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-page-footer',\r\n template:\r\n `<div class='ax-page-footer' >\r\n <ng-content></ng-content>\r\n </div>`\r\n})\r\n\r\nexport class AXPageFooterComponent { };","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXPageContentComponent } from './content.component';\r\nimport { AXPageFooterComponent } from './footer.component';\r\nimport { AXPageComponent } from './page.component';\r\nimport { AXLoadingModule } from '../loading/loading.module';\r\n\r\n@NgModule({\r\n declarations: [AXPageContentComponent, AXPageFooterComponent, AXPageComponent],\r\n imports: [CommonModule, AXLoadingModule],\r\n exports: [AXPageContentComponent, AXPageFooterComponent, AXPageComponent],\r\n providers: [],\r\n})\r\nexport class AXPageModule { }","import { Component, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, ViewChild, ElementRef } from '@angular/core';\r\nimport { AXBaseTextComponent, AXValidatableComponent } from '../base/element.class';\r\n\r\n@Component({\r\n selector: 'ax-password-box',\r\n templateUrl: './password-box.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { style: 'display: contents;' },\r\n providers: [{ provide: AXValidatableComponent, useExisting: AXPasswordBoxComponent }]\r\n})\r\nexport class AXPasswordBoxComponent extends AXBaseTextComponent {\r\n constructor(protected cdr: ChangeDetectorRef, ref: ElementRef) {\r\n super(cdr, ref);\r\n }\r\n\r\n type: 'text' | 'password' = 'password';\r\n eyeIcon: string = 'far fa-eye';\r\n\r\n handleShowPassword() {\r\n this.eyeIcon = 'far fa-eye-slash';\r\n if (this.type === 'password') {\r\n this.type = 'text';\r\n this.eyeIcon = 'far fa-eye-slash';\r\n } else {\r\n this.type = 'password';\r\n this.eyeIcon = 'far fa-eye';\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXPasswordBoxComponent } from './password-box.component';\r\nimport { AXButtonModule } from '../button/button.module';\r\nimport { AXFormGroupModule } from '../form-group/form-group.module';\r\n\r\nconst COMPONENT = [AXPasswordBoxComponent];\r\nconst MODULES = [CommonModule, AXButtonModule,AXFormGroupModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: []\r\n})\r\nexport class AXPasswordBoxModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXPopupComponent } from './popup.component';\r\nimport { AXPopupService } from './popup.service';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { AXButtonModule } from '../button/button.module';\r\nimport { AXTranslatorModule } from '@acorex/core';\r\nimport { AXLoadingModule } from '../loading/loading.module';\r\n@NgModule({\r\n declarations: [AXPopupComponent],\r\n imports: [CommonModule, DragDropModule, A11yModule, AXButtonModule, AXTranslatorModule, AXLoadingModule],\r\n exports: [AXPopupComponent],\r\n entryComponents: [AXPopupComponent],\r\n providers: [AXPopupService]\r\n})\r\nexport class AXPopupModule { }\r\n","import { Component, Input } from '@angular/core';\r\nimport { AXBaseComponent } from '../base/element.class';\r\n\r\n@Component({\r\n selector: 'ax-progress-bar',\r\n templateUrl: './progress-bar.component.html'\r\n})\r\nexport class AXProgressBarComponent extends AXBaseComponent {\r\n @Input() progress: number = 0;\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXProgressBarComponent } from './progress-bar.component';\r\n\r\n@NgModule({\r\n declarations: [AXProgressBarComponent],\r\n imports: [CommonModule],\r\n exports: [AXProgressBarComponent],\r\n entryComponents: [AXProgressBarComponent],\r\n providers: []\r\n})\r\nexport class AXProgressBarModule {}\r\n","import { AXDataEvent } from '../base/events.class';\r\nimport { AXTranslator } from '@acorex/core';\r\n\r\nexport type AXQueryBuilderDataType = 'string' | 'number' | 'date' | 'time' | 'datetime' | 'boolean';\r\nexport type AXQueryBuilderGroupItem = AXQueryBuilderGroup | AXQueryBuilderRule;\r\nexport type AXQueryBuilderControlType = 'textBox' | 'selectBox' | 'numberBox' | 'dataPicker' | 'lov' | 'boolean';\r\nexport type AXQueryBuilderStringType = 'simple' | 'sql' | 'sodoco' | 'elastic';\r\n\r\nexport class AXQueryBuilderControl {\r\n type: AXQueryBuilderControlType = 'textBox';\r\n options: any = {};\r\n}\r\n\r\nexport class AXQueryBuilderRule {\r\n dataField: string;\r\n caption: string;\r\n dataType: AXQueryBuilderDataType;\r\n control: AXQueryBuilderControl;\r\n operator: string;\r\n value?: any;\r\n text?: string;\r\n dataFieldItem: any;\r\n valueItem?: any;\r\n onDemandLabel?: string;\r\n}\r\n\r\nexport class AXQueryBuilderGroup {\r\n items: AXQueryBuilderGroupItem[];\r\n condition: string;\r\n queryString: string;\r\n queryStringElastic:string\r\n}\r\nexport class AXQueryBuilderField {\r\n caption: string;\r\n dataField: string;\r\n dataType: AXQueryBuilderDataType;\r\n default?: any;\r\n options?: any;\r\n}\r\n\r\nexport class AXQueryBuilderRuleEvent extends AXDataEvent<AXQueryBuilderRuleEvent> {\r\n items: AXQueryBuilderRule;\r\n}\r\n\r\nexport class AXQueryBuilderGroupEvent extends AXDataEvent<AXQueryBuilderGroupEvent> {\r\n items?: AXQueryBuilderRule;\r\n groups: AXQueryBuilderGroup;\r\n}\r\n\r\nexport class AXQueryBuilderPopup {\r\n name: string;\r\n type: string;\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectorRef, ElementRef, ChangeDetectionStrategy, ViewChild } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\nimport { AXBaseTextComponent } from '../base/element.class';\r\nimport { AXBaseEvent, AXValueEvent } from '../base/events.class';\r\n\r\n\r\n@Component({\r\n selector: 'ax-search-box',\r\n templateUrl: './searchbox.component.html',\r\n host: { style: 'display: contents;' },\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXSearchBoxComponent extends AXBaseTextComponent {\r\n\r\n @Output()\r\n public textChanged: EventEmitter<AXValueEvent<any>> = new EventEmitter<AXValueEvent<any>>();\r\n @Output()\r\n onButtonClick: EventEmitter<AXValueEvent<any>> = new EventEmitter<AXValueEvent<any>>();\r\n\r\n @Input()\r\n placeholder: string = 'جستجو ...';\r\n\r\n constructor(protected cdr: ChangeDetectorRef, ref: ElementRef) {\r\n super(cdr, ref);\r\n }\r\n\r\n private _text: string;\r\n @Input()\r\n public get text(): string {\r\n return this._text;\r\n }\r\n public set text(v: string) {\r\n if (v !== this._text) {\r\n const old = this._text;\r\n this._text = v;\r\n this.textChanged.emit({\r\n component: this,\r\n value: v,\r\n oldValue: old\r\n });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.value = '';\r\n this.text = '';\r\n }\r\n\r\n onSearchChanged(text: string) {\r\n if (!this.searchChangeObserver) {\r\n Observable.create(observer => {\r\n\r\n this.searchChangeObserver = observer;\r\n })\r\n .pipe(debounceTime(this.delay))\r\n .pipe(distinctUntilChanged())\r\n .subscribe(c => {\r\n this.text = c;\r\n this.value = c;\r\n });\r\n }\r\n\r\n this.searchChangeObserver.next(text);\r\n }\r\n\r\n @Input()\r\n delay: number = 500;\r\n\r\n private searchChangeObserver: any;\r\n\r\n handleKeyEvent(e: KeyboardEvent) {\r\n // this.searchChangeObserver.next(this.text);\r\n this.onkey.emit(e);\r\n }\r\n\r\n click(e: MouseEvent) {\r\n this.onButtonClick.emit({\r\n component: this,\r\n htmlElement: this.ref.nativeElement,\r\n value: this.text\r\n });\r\n // this.searchChangeObserver.next(this.text);\r\n }\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n Input,\r\n EventEmitter,\r\n Output,\r\n ViewChild,\r\n ChangeDetectorRef,\r\n ElementRef,\r\n ContentChild,\r\n NgZone,\r\n QueryList,\r\n ContentChildren,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\nimport { AXTextBoxComponent } from '../textbox/textbox.component';\r\nimport { AXDropdownComponent } from '../dropdown/dropdown.component';\r\nimport { AXBaseSizableComponent, AXBaseInputComponent, AXElementSize, AXValidatableComponent } from '../base/element.class';\r\nimport { AXDataSourceComponent } from '../data-source/datasource.component';\r\nimport { AXValidation } from '../validation/validation.component';\r\nimport { AXDataSourceReadParams } from '../data-source/read-param';\r\nimport { AXBaseEvent } from '../base/events.class';\r\nimport { AXSearchBoxComponent } from '../searchbox/searchbox.component';\r\nimport { AXConfig } from '@acorex/core';\r\nimport { differenceBy } from 'lodash';\r\nexport class AXSelectBoxSelectionChangedEvent extends AXBaseEvent {\r\n constructor(component: any, public selectedItems: any[], public selectedValues: any[] | any) {\r\n super();\r\n this.component = component;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'ax-select-box',\r\n templateUrl: './selectbox.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { style: 'display: contents;' },\r\n providers: [{ provide: AXValidatableComponent, useExisting: AXSelectBoxComponent }]\r\n})\r\nexport class AXSelectBoxComponent extends AXValidatableComponent implements AXBaseSizableComponent, AXBaseInputComponent {\r\n @Input() showDropDownButton: boolean = true;\r\n\r\n @ContentChild(TemplateRef, { static: true })\r\n rowTemplate: TemplateRef<any>;\r\n\r\n @Input()\r\n rowInputTemplate: TemplateRef<any>;\r\n @ViewChild(AXTextBoxComponent, { static: true })\r\n span: ElementRef<HTMLElement>;\r\n\r\n @ViewChild(AXTextBoxComponent, { static: true })\r\n textbox: AXTextBoxComponent;\r\n\r\n @ViewChild('listContainer', { static: true })\r\n listContainer: ElementRef<HTMLDivElement>;\r\n\r\n @ViewChild('serchBox', { static: false })\r\n serchBox: AXSearchBoxComponent;\r\n\r\n @ViewChild('textBoxSelectBox', { static: true })\r\n textBoxSelectBox: AXTextBoxComponent;\r\n\r\n @Input() showCheckBox: boolean = true;\r\n\r\n @Input() readonly: boolean = false;\r\n\r\n @Input() rtl: boolean = AXConfig.get('layout.rtl');\r\n\r\n @Input() disabled: boolean;\r\n\r\n @Input() placeholder: string;\r\n\r\n @Input() size: AXElementSize = 'md';\r\n\r\n @Input() allowNull: boolean = true;\r\n\r\n @Input() textAlign: 'right' | 'left' | null = null;\r\n\r\n @Input() bufferSize: number = 100;\r\n\r\n @Input() remoteOperation: boolean = false;\r\n\r\n // this input is Private and only use in LOV\r\n\r\n currentfocusedIndex: number = -1;\r\n showLoading: boolean = false;\r\n\r\n skip: number = -1;\r\n searchText: string = '';\r\n // @Input()\r\n // chipsWidth: string = '';\r\n\r\n text: string = '';\r\n totalCount: number = 0;\r\n\r\n @ContentChild(AXDataSourceComponent, { static: true })\r\n private _contentDataSource: AXDataSourceComponent;\r\n\r\n private _dataSource: AXDataSourceComponent;\r\n\r\n @Input()\r\n public get dataSource(): AXDataSourceComponent {\r\n return this._dataSource ? this._dataSource : this._contentDataSource;\r\n }\r\n\r\n public set dataSource(v: AXDataSourceComponent) {\r\n this._dataSource = v;\r\n }\r\n\r\n @ContentChild(AXValidation, { static: true })\r\n private _contentValidation: AXValidation;\r\n\r\n private _validation: AXValidation;\r\n\r\n @Input()\r\n public get validation(): AXValidation {\r\n return this._validation ? this._validation : this._contentValidation;\r\n }\r\n\r\n public set validation(v: AXValidation) {\r\n this._validation = v;\r\n }\r\n\r\n constructor(private cdr: ChangeDetectorRef, private ref: ElementRef, private zone: NgZone) {\r\n super();\r\n }\r\n\r\n @ViewChild('d', { static: true })\r\n dropdown: AXDropdownComponent;\r\n\r\n @Input() allowSearch: boolean = true;\r\n @Input() textField: string = 'text';\r\n @Input() valueField: string = 'value';\r\n @Input() mode: 'single' | 'multiple' = 'single';\r\n itemRemove: boolean = false;\r\n @Output() itemsChange: EventEmitter<any[]> = new EventEmitter<any[]>();\r\n\r\n @Output() onBlur: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output() onFocus: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n private _items: any[] = [];\r\n @Input()\r\n public get items(): any[] {\r\n return this._items;\r\n }\r\n public set items(v: any[]) {\r\n this._items = v;\r\n if (this.itemsChange) {\r\n this.itemsChange.emit(v);\r\n }\r\n if (this.itemsStatusObserver) {\r\n this.itemsStatusObserver.next(this.items.length);\r\n }\r\n }\r\n\r\n hasSelectedValue: boolean = false;\r\n itemsFiltered: any[] = [];\r\n\r\n // #endregion\r\n\r\n dropDownDisabled: boolean = false;\r\n\r\n @Output()\r\n selectionChanged: EventEmitter<AXSelectBoxSelectionChangedEvent> = new EventEmitter<AXSelectBoxSelectionChangedEvent>();\r\n\r\n @Output()\r\n selectedItemsChange: EventEmitter<any[]> = new EventEmitter<any[]>();\r\n\r\n private _selectedItems: any[] = [];\r\n @Input()\r\n public get selectedItems(): any[] {\r\n return this._selectedItems || [];\r\n }\r\n public set selectedItems(v: any[]) {\r\n this.setSelectedItemsChange(v);\r\n // if (!v) {\r\n // v = [];\r\n // }\r\n\r\n // const old = this.selectedItems;\r\n // if (JSON.stringify(old) !== JSON.stringify(v)) {\r\n // this._selectedItems = this.mode == 'single' ? v.slice(0, 1) : [...new Set(v)]; //[...new Set(v[0])] : [...new Set(v)];\r\n // this._selectedItems.forEach((c) => (c.selected = true));\r\n // this.selectedItemsChange.emit(this._selectedItems);\r\n // this.selectedValuesChange.emit(this.selectedValues);\r\n // this.clearValidationStyle(this.ref.nativeElement);\r\n // this.waitForData(() => {\r\n // if (this._selectedItems) {\r\n // this.items.forEach((c) => (c.selected = this._selectedItems.some((i) => i[this.valueField] == c[this.valueField])));\r\n // }\r\n // });\r\n // }\r\n }\r\n\r\n setSelectedItemsChange(v: any[]) {\r\n if (!v) {\r\n v = [];\r\n }\r\n\r\n const old = this.selectedItems;\r\n if (JSON.stringify(old) !== JSON.stringify(v)) {\r\n this._selectedItems = this.mode == 'single' ? v.slice(0, 1) : [...new Set(v)]; //[...new Set(v[0])] : [...new Set(v)];\r\n this._selectedItems.forEach((c) => (c.selected = true));\r\n this.selectedItemsChange.emit(this._selectedItems);\r\n this.selectedValuesChange.emit(this.selectedValues);\r\n this.clearValidationStyle(this.ref.nativeElement);\r\n this.waitForData(() => {\r\n if (this._selectedItems) {\r\n this.items.forEach((c) => (c.selected = this._selectedItems.some((i) => i[this.valueField] == c[this.valueField])));\r\n }\r\n });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n if (this.rowTemplate === undefined && this.rowInputTemplate != undefined) {\r\n this.rowTemplate = this.rowInputTemplate;\r\n }\r\n if (this.rtl == null) {\r\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\r\n }\r\n }\r\n\r\n scrolled(e) {\r\n if (\r\n this.remoteOperation &&\r\n this.totalCount > this.items.length &&\r\n this.listContainer.nativeElement.scrollHeight != 0 &&\r\n this.listContainer.nativeElement.scrollHeight - this.listContainer.nativeElement.scrollTop - 300 < 50\r\n ) {\r\n if (this.skip !== this.items.length) {\r\n this.showLoading = true;\r\n this.skip = this.items.length;\r\n const params: AXDataSourceReadParams = {};\r\n params.skip = this.items.length;\r\n params.take = this.bufferSize; //* (Math.floor(this.items.length / this.bufferSize) + 1);\r\n if (this.textbox) {\r\n params.searchText = this.text;\r\n } else {\r\n params.searchText = null;\r\n }\r\n this.fetch(params);\r\n }\r\n }\r\n }\r\n private setSelectedItems(v: any[], isUserInput: boolean) {\r\n let changed = false;\r\n if (isUserInput) {\r\n changed = JSON.stringify(v) !== JSON.stringify(this.selectedItems);\r\n }\r\n this.selectedItems = v;\r\n this.setSelectedIndex();\r\n if (isUserInput && changed) {\r\n this.emitSelectionChangedEvent();\r\n }\r\n }\r\n\r\n private searchChangeObserver: any;\r\n\r\n delay: number = 500;\r\n\r\n textChanged(e) {\r\n if ((e.value === null || e.value === undefined || e.value === '') && (e.oldValue === null || e.oldValue === undefined || e.oldValue === '')) {\r\n } else {\r\n this.currentfocusedIndex = -1;\r\n if (this.remoteOperation) {\r\n this.searchText = this.text;\r\n // this.searchText = e.value;\r\n // this.text = e.value;\r\n // this.items = [];\r\n let t = this.items.length;\r\n for (let i = 0; i < t; i++) {\r\n this.items.pop();\r\n }\r\n // this.items.forEach((element) => {\r\n // this.items.pop();\r\n // });\r\n const params: AXDataSourceReadParams = {};\r\n params.searchText = this.text;\r\n // params.searchText = e.value;\r\n params.skip = 0;\r\n params.take = this.bufferSize;\r\n this.fetch(params);\r\n }\r\n }\r\n }\r\n\r\n onButtonClick(e) {\r\n console.log('onButtonClick', e);\r\n }\r\n\r\n private setSelectedIndex(sign: -1 | 1 | null = null): void {\r\n if (sign == null) {\r\n if (!this.remoteOperation && this.text && this.text !== '') {\r\n this.currentfocusedIndex = this.items\r\n .filter((c) => (c[this.textField] as string).toLowerCase().includes(this.text.toLowerCase()))\r\n .indexOf(this.selectedItems[this.selectedItems.length - 1]);\r\n } else {\r\n this.currentfocusedIndex = this.items.indexOf(this.selectedItems[this.selectedItems.length - 1]);\r\n }\r\n } else {\r\n sign === -1 ? this.currentfocusedIndex-- : this.currentfocusedIndex++;\r\n }\r\n\r\n if (this.remoteOperation) {\r\n this.itemsFiltered = this.items;\r\n } else {\r\n this.itemsFiltered = this.text\r\n ? this.items.filter((c) => (c[this.textField] as string).toLowerCase().includes(this.text.toLowerCase()))\r\n : this.items;\r\n }\r\n\r\n this.currentfocusedIndex =\r\n this.currentfocusedIndex < 0\r\n ? 0\r\n : this.currentfocusedIndex >= this.itemsFiltered.length\r\n ? this.itemsFiltered.length - 1\r\n : this.currentfocusedIndex;\r\n //\r\n // set scroll\r\n if (this.listContainer) {\r\n this.zone.runOutsideAngular(() => {\r\n const itemDiv = this.listContainer.nativeElement.querySelector(`.list-item:nth-child(${this.currentfocusedIndex})`);\r\n if (itemDiv) {\r\n itemDiv.scrollIntoView({ behavior: 'smooth' });\r\n }\r\n });\r\n }\r\n }\r\n\r\n @Output()\r\n selectedValuesChange: EventEmitter<any[] | any> = new EventEmitter<any[] | any>();\r\n\r\n @Input()\r\n public get selectedValues(): any[] | any {\r\n if (this.mode === 'single') {\r\n return this._selectedItems.map((c) => c[this.valueField])[0];\r\n } else {\r\n return this._selectedItems.map((c) => c[this.valueField]) || [];\r\n }\r\n }\r\n\r\n public set selectedValues(v: any[] | any) {\r\n if (this.compareSelectedValues(v)) {\r\n return;\r\n }\r\n if (v == null) {\r\n this.selectedItems = [];\r\n } else {\r\n if (v !== undefined) {\r\n if (v != [] && v != '' && v != null) {\r\n this.hasSelectedValue = true;\r\n }\r\n\r\n this.waitForData(() => {\r\n if (this.mode === 'single') {\r\n if (this.items.filter((c) => v == c[this.valueField])) {\r\n this.selectedItems = this.items.filter((c) => v == c[this.valueField]);\r\n } else {\r\n this.selectedItems = [];\r\n }\r\n } else {\r\n if (Array.isArray(v)) {\r\n if (this.selectedItems.length > v.length) {\r\n this.selectedItems = this.selectedItems.filter((c) => v.includes(c[this.valueField]));\r\n } else {\r\n let addId = [];\r\n v.forEach((vId) => {\r\n addId.push({\r\n [this.valueField]: vId\r\n });\r\n });\r\n\r\n let newId = differenceBy(addId, this.selectedItems, this.valueField);\r\n let vv = [];\r\n newId.forEach((rc) => {\r\n vv.push(rc[this.valueField]);\r\n });\r\n this.items\r\n .filter((c) => vv.includes(c[this.valueField]))\r\n .forEach((res) => {\r\n this.selectedItems.push(res);\r\n });\r\n // this.selectedItems.push(this.items.filter((c) => vv.includes(c[this.valueField])));\r\n this.setSelectedItemsChange(this.selectedItems);\r\n }\r\n\r\n // this.selectedItems = this.items.filter((c) => v.includes(c[this.valueField]));\r\n } else if (v) {\r\n this.selectedItems = this.items.filter((c) => v === c[this.valueField]);\r\n } else {\r\n this.selectedItems = [];\r\n }\r\n }\r\n this.selectedValuesChange.emit(this.selectedValues);\r\n this.cdr.markForCheck();\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n }\r\n }\r\n\r\n private compareSelectedValues(newValue: any[] | any) {\r\n const currentValue = this.selectedValues;\r\n return (currentValue == null && newValue == null) || JSON.stringify(currentValue) === JSON.stringify(newValue);\r\n }\r\n\r\n private setSelectedValues(v: any[] | any, isUserInput: boolean) {\r\n const changed = isUserInput ? !this.compareSelectedValues(v) : false;\r\n this.selectedValues = v;\r\n if (isUserInput && changed) {\r\n this.emitSelectionChangedEvent();\r\n }\r\n }\r\n\r\n private emitSelectionChangedEvent() {\r\n this.selectionChanged.emit(new AXSelectBoxSelectionChangedEvent(this, this.selectedItems, this.selectedValues));\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.bufferSize < 10) {\r\n this.bufferSize = 10;\r\n }\r\n if (this.mode == 'single') {\r\n this.showCheckBox = false;\r\n }\r\n if (!this.remoteOperation || (this.remoteOperation && this.hasSelectedValue)) {\r\n this.refresh();\r\n }\r\n }\r\n dropdownToggle(e) {\r\n this.text = '';\r\n if (this.dropdown.isOpen) {\r\n this.refresh();\r\n setTimeout(() => {\r\n if (this.serchBox) {\r\n this.serchBox.focus();\r\n }\r\n }, 1);\r\n } else {\r\n // this.refresh();\r\n }\r\n }\r\n\r\n ngAfterContentInit() {\r\n // if (!this.allowSearch) {\r\n // if (this.readonly == false) {\r\n // this.itemRemove = true;\r\n // this.readonly = true;\r\n // }\r\n // }\r\n this.initValidation(this.ref, 'selectedItems', this.validation);\r\n if (this.dataSource) {\r\n if (this.allowSearch == false) {\r\n this.fetch();\r\n }\r\n this.dataSource.onDataReceived.subscribe((c) => {\r\n this.showLoading = false;\r\n this.dataReceived(c.data.result);\r\n });\r\n }\r\n this.cdr.markForCheck();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private dataReceived(data: any) {\r\n if (this.remoteOperation) {\r\n if (this.searchText && this.searchText != null && this.searchText !== '') {\r\n if (data.totalCount) {\r\n if (this.items.length == 0) {\r\n //this.items = data.items;\r\n data.items.forEach((item) => {\r\n this.items.push(item);\r\n });\r\n } else {\r\n data.items.forEach((item) => {\r\n this.items.push(item);\r\n });\r\n // if (this.itemsStatusObserver) {\r\n // this.itemsStatusObserver.next(this.items.length);\r\n // }\r\n }\r\n\r\n this.totalCount = data.totalCount;\r\n } else {\r\n if (this.items.length == 0) {\r\n this.items = data.items;\r\n } else {\r\n data.items.forEach((item) => {\r\n this.items.push(item);\r\n });\r\n // if (this.itemsStatusObserver) {\r\n // this.itemsStatusObserver.next(this.items.length);\r\n // }\r\n }\r\n this.totalCount = data.items == undefined ? 0 : data.items.length;\r\n }\r\n } else if (data.items && data.items.length === data.totalCount) {\r\n this.items = data.items;\r\n this.totalCount = data.items.length;\r\n } else if (data.totalCount) {\r\n data.items.forEach((elm) => {\r\n this.items.push(elm);\r\n });\r\n // if (this.itemsStatusObserver) {\r\n // this.itemsStatusObserver.next(this.items.length);\r\n // }\r\n this.totalCount = data.totalCount;\r\n } else {\r\n data.forEach((elm) => {\r\n this.items.push(elm);\r\n // if (this.itemsStatusObserver) {\r\n // this.itemsStatusObserver.next(this.items.length);\r\n // }\r\n });\r\n this.totalCount = data.length;\r\n }\r\n } else {\r\n this.items = data;\r\n }\r\n\r\n this.cdr.markForCheck();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n // private params: AXDataSourceReadParams = {};\r\n\r\n fetch(params: AXDataSourceReadParams = {}) {\r\n // this.params = params;\r\n if (this.dataSource) {\r\n this.showLoading = true;\r\n this.dataSource.fetch(params);\r\n }\r\n }\r\n\r\n refresh() {\r\n const params: AXDataSourceReadParams = {};\r\n if (this.remoteOperation) {\r\n params.skip = 0;\r\n this.skip = 0;\r\n params.take = this.bufferSize;\r\n }\r\n if (this.dataSource != undefined) {\r\n // this.items = [];\r\n // this.items.forEach((element) => {\r\n // this.items.pop();\r\n // });\r\n\r\n let t = this.items.length;\r\n for (let i = 0; i < t; i++) {\r\n this.items.pop();\r\n }\r\n this.fetch(params);\r\n }\r\n }\r\n\r\n handleItemRemoveClick(item) {\r\n if (this.mode === 'single') {\r\n // this.selectedItems = null;\r\n this.setSelectedValues(null, true);\r\n // this.selectedItemsChange.emit(this._selectedItems);\r\n // this.clearValidationStyle(this.ref.nativeElement);\r\n } else {\r\n // this.selectedItems = this.selectedItems.filter((c) => c !== item);\r\n this.setSelectedItems(\r\n this.selectedItems.filter((c) => c[this.valueField] !== item[this.valueField]),\r\n true\r\n );\r\n // this._selectedItems = this._selectedItems.filter(c => c !== item);\r\n // this.selectedItemsChange.emit(this._selectedItems);\r\n // this.clearValidationStyle(this.ref.nativeElement);\r\n }\r\n // this.text = '';\r\n this.cdr.markForCheck();\r\n }\r\n\r\n onFocusTextBox(e) {}\r\n onTextBoxClick(e) {\r\n if (this.disabled == false && this.readonly == false) {\r\n this.dropdown.open();\r\n }\r\n }\r\n\r\n handleItemClick(e: MouseEvent, item: any) {\r\n const value = item[this.valueField];\r\n\r\n if (this.mode === 'single') {\r\n // this.selectedValues = value;\r\n this.setSelectedValues(value, true);\r\n } else {\r\n const exists = this.selectedValues.slice(0);\r\n if (exists.includes(value)) {\r\n if (this.allowNull == true || (this.allowNull == false && this.selectedItems.length > 1)) {\r\n this.handleItemRemoveClick(item);\r\n }\r\n } else {\r\n exists.push(value);\r\n // this.selectedValues = exists;\r\n this.setSelectedValues(exists, true);\r\n }\r\n }\r\n\r\n if (this.mode == 'single') {\r\n this.text = '';\r\n this.dropdown.close();\r\n this.cdr.markForCheck();\r\n }\r\n // if (e.stopPropagation() == undefined) {\r\n // e.stopPropagation();\r\n // }\r\n setTimeout(() => {\r\n if (this.serchBox) {\r\n this.serchBox.focus();\r\n }\r\n }, 0);\r\n }\r\n\r\n handleKeyEventSearch(e: KeyboardEvent) {\r\n if (this.disabled || this.readonly) {\r\n this.dropdown.close();\r\n setTimeout(() => {\r\n this.textBoxSelectBox.focus();\r\n }, 0);\r\n return false;\r\n }\r\n if (e.key === 'Escape') {\r\n this.text = null;\r\n setTimeout(() => {\r\n this.textBoxSelectBox.focus();\r\n }, 0);\r\n }\r\n if ((e.key === 'ArrowDown' || e.key === 'ArrowUp') && this.getItems().length > 0 && e.type === 'keydown') {\r\n if (this.mode === 'single') {\r\n this.currentfocusedIndex = this.currentfocusedIndex + (e.key === 'ArrowDown' ? 1 : -1);\r\n this.selectedItemByIndex(this.currentfocusedIndex);\r\n } else {\r\n if (this.dropdown.isOpen) {\r\n this.setSelectedIndex(e.key === 'ArrowDown' ? 1 : -1);\r\n } else {\r\n this.dropdown.open();\r\n setTimeout(() => {\r\n if (this.serchBox) {\r\n this.serchBox.focus();\r\n }\r\n }, 0);\r\n }\r\n }\r\n }\r\n // if (e.key == 'Enter' && this.dropdown.isOpen && this.mode == 'single') {\r\n // this.dropdown.close();\r\n // setTimeout(() => {\r\n // this.dropdown.focus();\r\n // }, 0);\r\n // }\r\n //e.stopPropagation();\r\n //e.preventDefault();\r\n e.stopImmediatePropagation();\r\n if (e.type === 'keydown' && e.key == 'Enter' && this.dropdown.isOpen) {\r\n if (!this.remoteOperation && this.text && this.text !== '') {\r\n this.itemsFiltered = this.items.filter((c) => (c[this.textField] as string).toLowerCase().includes(this.text.toLowerCase()));\r\n if (this.itemsFiltered.length === 1) {\r\n this.currentfocusedIndex = 0;\r\n }\r\n } else {\r\n this.itemsFiltered = this.items;\r\n }\r\n\r\n if (\r\n this.selectedItems.filter((c) => c[this.valueField] === this.itemsFiltered[this.currentfocusedIndex][this.valueField]).length > 0 &&\r\n this.mode == 'multiple'\r\n ) {\r\n if (this.allowNull == true || (this.allowNull == false && this.selectedItems.length > 1)) {\r\n if (!this.remoteOperation && this.text && this.text !== '') {\r\n this.selectedItems = this.selectedItems.filter(\r\n (c) =>\r\n c !==\r\n this.items.filter((c) => (c[this.textField] as string).toLowerCase().includes(this.text.toLowerCase()))[this.currentfocusedIndex]\r\n );\r\n } else {\r\n this.selectedItems = this.selectedItems.filter((c) => c[this.valueField] !== this.items[this.currentfocusedIndex][this.valueField]);\r\n }\r\n this.emitSelectionChangedEvent();\r\n }\r\n } else {\r\n if (this.mode == 'multiple') {\r\n if (this.currentfocusedIndex != -1) {\r\n if (!this.remoteOperation && this.text && this.text !== '') {\r\n if (this.itemsFiltered.length === 1) {\r\n this.selectedItems.push(this.itemsFiltered[0]);\r\n } else {\r\n this.selectedItems.push(this.itemsFiltered[this.currentfocusedIndex]);\r\n }\r\n } else {\r\n this.selectedItems.push(this.items[this.currentfocusedIndex]);\r\n }\r\n this.emitSelectionChangedEvent();\r\n }\r\n } else {\r\n if (this.text && this.itemsFiltered.length === 1) {\r\n this.setSelectedItems(this.itemsFiltered, true);\r\n }\r\n if (this.mode == 'single') {\r\n this.dropdown.close();\r\n setTimeout(() => {\r\n this.textBoxSelectBox.focus();\r\n }, 0);\r\n }\r\n }\r\n }\r\n e.stopPropagation();\r\n e.preventDefault();\r\n e.stopImmediatePropagation();\r\n }\r\n this.cdr.markForCheck();\r\n }\r\n\r\n isChar(str: string) {\r\n if (\r\n str.includes('Shift') ||\r\n str.includes('Tab') ||\r\n str.includes('Control') ||\r\n str.includes('Alt') ||\r\n str.includes('CapsLock') ||\r\n str.includes('Meta') ||\r\n str.includes('ContextMenu') ||\r\n str.includes('Enter') ||\r\n str.includes('Backspace') ||\r\n str.includes('PrintScreen') ||\r\n str.includes('ScrollLock') ||\r\n str.includes('Pause') ||\r\n str.includes('Home') ||\r\n str.includes('End') ||\r\n str.includes('Insert') ||\r\n str.includes('PageUp') ||\r\n str.includes('Delete') ||\r\n str.includes('PageDown') ||\r\n str.includes('NumLock') ||\r\n str.includes('Escape') ||\r\n str.includes('Arrow') ||\r\n str.includes('ّF1') ||\r\n str.includes('F2') ||\r\n str.includes('F3') ||\r\n str.includes('F4') ||\r\n str.includes('F5') ||\r\n str.includes('F6') ||\r\n str.includes('F7') ||\r\n str.includes('F8') ||\r\n str.includes('F9') ||\r\n str.includes('F10') ||\r\n str.includes('F11') ||\r\n str.includes('F12')\r\n ) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n handleKeyEvent(e: any) {\r\n // const NumberMinusPattern = /[a-zA-Z0-9\\-]/g;\r\n // const Farsi = /[پچجحخهعغفقثصضشسیبلاتنمکگوئدذرزطظژؤإأءًٌٍَُِّ\\s]+$/;\r\n // const inputChar = String.fromCharCode(e.charCode);\r\n // const patternEn = /^[a-zA-Z0-9]*$/;\r\n // const pattern = /^[\\u0600-\\u06FF\\s]+$/;\r\n const inputChar = e.key;\r\n if (\r\n (inputChar != 'Backspace' &&\r\n inputChar != 'Backspace' &&\r\n inputChar != 'Tab' &&\r\n inputChar != 'Enter' &&\r\n inputChar != 'Escape' &&\r\n inputChar != 'ArrowDown' &&\r\n inputChar != 'ArrowUp') ||\r\n e.code === 'Space' ||\r\n e.ctrlKey == true\r\n ) {\r\n e.preventDefault();\r\n }\r\n if (\r\n e.key === 'Backspace' &&\r\n e.type === 'keydown' &&\r\n ((this.allowNull === true && this.selectedItems.length > 0) || (this.allowNull === false && this.selectedItems.length > 1))\r\n ) {\r\n this.selectedItems.pop();\r\n this.emitSelectionChangedEvent();\r\n }\r\n if (this.disabled || this.readonly) {\r\n this.dropdown.close();\r\n setTimeout(() => {\r\n this.textBoxSelectBox.focus();\r\n }, 0);\r\n return false;\r\n }\r\n const INPUT = String.fromCharCode(e.keyCode);\r\n if (this.isChar(e.key) && this.allowSearch && e.ctrlKey == false) {\r\n this.dropdown.open();\r\n setTimeout(() => {\r\n if (this.serchBox) {\r\n this.serchBox.focus();\r\n }\r\n }, 0);\r\n this.text = e.key;\r\n }\r\n\r\n if (e.key === 'Escape') {\r\n this.text = null;\r\n this.dropdown.close();\r\n setTimeout(() => {\r\n this.textBoxSelectBox.focus();\r\n }, 0);\r\n }\r\n if ((e.key === 'ArrowDown' || e.key === 'ArrowUp') && this.getItems().length > 0 && e.type === 'keydown') {\r\n if (this.mode === 'single') {\r\n this.selectedItemByIndex(this.currentfocusedIndex + (e.key === 'ArrowDown' ? 1 : -1));\r\n } else {\r\n if (this.dropdown.isOpen) {\r\n // this.setSelectedIndex((e.key === 'ArrowDown' ? 1 : -1));\r\n if (this.allowSearch == false) {\r\n this.setSelectedIndex(e.key === 'ArrowDown' ? 1 : -1);\r\n } else {\r\n setTimeout(() => {\r\n if (this.serchBox) {\r\n this.serchBox.focus();\r\n }\r\n }, 0);\r\n }\r\n } else {\r\n this.dropdown.open();\r\n if (this.allowSearch == true) {\r\n setTimeout(() => {\r\n if (this.serchBox) {\r\n this.serchBox.focus();\r\n }\r\n }, 0);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (this.allowSearch === false) {\r\n if (e.type === 'keydown' && e.key == 'Enter' && this.dropdown.isOpen) {\r\n e.stopImmediatePropagation();\r\n if (\r\n this.selectedItems.filter((c) => c[this.valueField] === this.itemsFiltered[this.currentfocusedIndex][this.valueField]).length > 0 &&\r\n this.mode == 'multiple'\r\n ) {\r\n if (this.allowNull == true || (this.allowNull == false && this.selectedItems.length > 1)) {\r\n if (!this.remoteOperation && this.text && this.text !== '') {\r\n this.selectedItems = this.selectedItems.filter(\r\n (c) =>\r\n c !==\r\n this.items.filter((c) => (c[this.textField] as string).toLowerCase().includes(this.text.toLowerCase()))[this.currentfocusedIndex]\r\n );\r\n } else {\r\n this.selectedItems = this.selectedItems.filter((c) => c[this.valueField] !== this.items[this.currentfocusedIndex][this.valueField]);\r\n }\r\n this.emitSelectionChangedEvent();\r\n }\r\n } else {\r\n if (this.mode == 'multiple') {\r\n if (this.currentfocusedIndex != -1) {\r\n if (!this.remoteOperation && this.text && this.text !== '') {\r\n if (this.itemsFiltered.length === 1) {\r\n this.selectedItems.push(this.itemsFiltered[0]);\r\n } else {\r\n this.selectedItems.push(this.itemsFiltered[this.currentfocusedIndex]);\r\n }\r\n } else {\r\n this.selectedItems.push(this.items[this.currentfocusedIndex]);\r\n }\r\n this.emitSelectionChangedEvent();\r\n }\r\n } else {\r\n if (this.text && this.itemsFiltered.length === 1) {\r\n this.setSelectedItems(this.itemsFiltered, true);\r\n }\r\n if (this.mode == 'single') {\r\n this.dropdown.close();\r\n setTimeout(() => {\r\n this.textBoxSelectBox.focus();\r\n }, 0);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.cdr.markForCheck();\r\n }\r\n\r\n focus(): void {\r\n this.textbox.focus();\r\n }\r\n\r\n selectedItemByIndex(index: number) {\r\n let item = [];\r\n if (!this.remoteOperation && this.text && this.text !== '') {\r\n this.itemsFiltered = this.items.filter((c) => (c[this.textField] as string).toLowerCase().includes(this.text.toLowerCase()));\r\n\r\n item = this.itemsFiltered[index];\r\n } else {\r\n item = this.items[index];\r\n }\r\n //\r\n // const item = this.text ? this.items.filter((c) => (c[this.textField] as string).toLowerCase().includes(this.text.toLowerCase()))[index] : this.items[index];\r\n if (item) {\r\n this.setSelectedItems([item], true);\r\n }\r\n\r\n this.setSelectedIndex();\r\n }\r\n\r\n getItems(): any[] {\r\n if (this.items == null) {\r\n return [];\r\n }\r\n return !this.remoteOperation && this.text && this.text !== ''\r\n ? this.items.filter((c) => (c[this.textField] as string).toLowerCase().includes(this.text.toLowerCase()))\r\n : this.items;\r\n }\r\n\r\n isItemSelected(item: any): boolean {\r\n return this.selectedItems && this.selectedItems.filter((c) => c[this.valueField] === item[this.valueField]).length > 0;\r\n }\r\n\r\n private itemsStatusObserver: any;\r\n private waitForData(callbackfn: () => void) {\r\n if (this.items.length) {\r\n callbackfn();\r\n } else if (!this.itemsStatusObserver) {\r\n Observable.create((observer) => {\r\n this.itemsStatusObserver = observer;\r\n })\r\n .pipe(debounceTime(100))\r\n .pipe(distinctUntilChanged())\r\n .subscribe((c) => {\r\n callbackfn();\r\n });\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, Input, ViewEncapsulation, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { AXQueryBuilderRule, AXQueryBuilderGroup, AXQueryBuilderRuleEvent, AXQueryBuilderControl } from './query-builder.class';\r\nimport { AXTranslator } from '@acorex/core';\r\nimport { AXSelectBoxComponent } from '../selectbox/selectbox.component';\r\nimport { AXTextBoxComponent } from '../textbox/textbox.component';\r\nimport { AXValidationFormComponent } from '../validation/validation-form.component';\r\n\r\n@Component({\r\n selector: 'ax-query-rule',\r\n templateUrl: 'query-builder-rule.component.html',\r\n host: { class: 'ax ax-query-rule' },\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXQueryBuilderRuleComponent implements OnInit {\r\n @ViewChild('selectBox') selectBox: AXSelectBoxComponent;\r\n @ViewChild('selectBoxValue') selectBoxValue: AXSelectBoxComponent;\r\n\r\n @ViewChild('selectBoxBoolean') selectBoxBoolean: AXSelectBoxComponent;\r\n\r\n @ViewChild('textBoxNameValue') textBoxNameValue: AXTextBoxComponent;\r\n @ViewChild(AXValidationFormComponent) form: AXValidationFormComponent;\r\n @Input()\r\n isEditing: boolean = true;\r\n\r\n @Input()\r\n rule: AXQueryBuilderRule;\r\n\r\n @Input()\r\n parent: AXQueryBuilderGroup;\r\n\r\n @Input()\r\n fields: any[] = [];\r\n\r\n @Output()\r\n onRuleDelete: EventEmitter<AXQueryBuilderRuleEvent> = new EventEmitter<AXQueryBuilderRuleEvent>();\r\n\r\n @Output()\r\n ruleChanged: EventEmitter<AXQueryBuilderRuleEvent> = new EventEmitter<AXQueryBuilderRuleEvent>();\r\n\r\n showValue: boolean = false;\r\n\r\n isOnDemandLabel: boolean = false;\r\n constructor() { }\r\n\r\n ngOnInit() { }\r\n\r\n ngAfterViewInit(): void {\r\n //Called after ngAfterContentInit when the component's view has been initialized. Applies to components only.\r\n //Add 'implements AfterViewInit' to the class.\r\n if (this.rule.onDemandLabel) {\r\n this.isOnDemandLabel = true;\r\n }\r\n }\r\n provideDataBoolean = (e) => {\r\n return new Promise((resolve) => {\r\n resolve([\r\n {\r\n value: 'true',\r\n text: AXTranslator.get('queryBuilder.true')\r\n },\r\n {\r\n value: 'false',\r\n text: AXTranslator.get('queryBuilder.false')\r\n }\r\n\r\n ])\r\n })\r\n }\r\n\r\n saveRule() {\r\n this.form.validate().then(c => {\r\n });\r\n }\r\n\r\n\r\n provideDataOperator = (e) => {\r\n\r\n return new Promise((resolve) => {\r\n if (this.rule.dataType === 'string') {\r\n resolve([\r\n {\r\n value: 'equal',\r\n text: AXTranslator.get('queryBuilder.equal')\r\n },\r\n {\r\n value: 'contains',\r\n text: AXTranslator.get('queryBuilder.contains')\r\n },\r\n {\r\n value: 'start-with',\r\n text: AXTranslator.get('queryBuilder.start-with')\r\n },\r\n {\r\n value: 'end-with',\r\n text: AXTranslator.get('queryBuilder.end-with')\r\n },\r\n {\r\n value: 'not-equal',\r\n text: AXTranslator.get('queryBuilder.not-equal')\r\n },\r\n {\r\n value: 'null',\r\n text: AXTranslator.get('queryBuilder.null')\r\n },\r\n {\r\n value: 'not-null',\r\n text: AXTranslator.get('queryBuilder.not-null')\r\n }\r\n ]);\r\n }\r\n if (this.rule.dataType === 'number') {\r\n resolve([\r\n {\r\n value: 'equal',\r\n text: AXTranslator.get('queryBuilder.equal')\r\n },\r\n {\r\n value: 'gt',\r\n text: AXTranslator.get('queryBuilder.greater-than')\r\n },\r\n {\r\n value: 'gte',\r\n text: AXTranslator.get('queryBuilder.greater-than-equal')\r\n },\r\n {\r\n value: 'lt',\r\n text: AXTranslator.get('queryBuilder.less-than')\r\n },\r\n {\r\n value: 'lte',\r\n text: AXTranslator.get('queryBuilder.less-than-equal')\r\n },\r\n {\r\n value: 'not-equal',\r\n text: AXTranslator.get('queryBuilder.not-equal')\r\n },\r\n {\r\n value: 'null',\r\n text: AXTranslator.get('queryBuilder.null')\r\n },\r\n {\r\n value: 'not-null',\r\n text: AXTranslator.get('queryBuilder.not-null')\r\n }\r\n ]);\r\n }\r\n if (this.rule.dataType === 'boolean') {\r\n resolve([\r\n {\r\n value: 'equal',\r\n text: AXTranslator.get('queryBuilder.equal')\r\n },\r\n {\r\n value: 'null',\r\n text: AXTranslator.get('queryBuilder.null')\r\n },\r\n {\r\n value: 'not-null',\r\n text: AXTranslator.get('queryBuilder.not-null')\r\n }\r\n ]);\r\n }\r\n resolve([]);\r\n });\r\n };\r\n\r\n handleEditClick() {\r\n this.isEditing = true;\r\n }\r\n\r\n handleCommitClick() {\r\n this.isEditing = false;\r\n this.ruleChanged.emit({ items: this.rule, component: this });\r\n }\r\n handleRemoveClick() {\r\n this.onRuleDelete.emit({ items: this.rule, component: this });\r\n }\r\n captionChange(e) {\r\n if (e.selectedItems[0]) {\r\n this.rule.caption = e.selectedItems[0].caption;\r\n this.rule.dataField = e.selectedItems[0].dataField;\r\n this.rule.dataType = e.selectedItems[0].dataType;\r\n this.rule.control = e.selectedItems[0].control || new AXQueryBuilderControl();\r\n this.rule.dataFieldItem[0] = e.selectedItems[0];\r\n }\r\n\r\n if (this.selectBox) {\r\n this.selectBox.refresh();\r\n }\r\n\r\n this.rule.value = null;\r\n if (this.rule.control.type === 'selectBox') {\r\n this.selectBoxValue.refresh();\r\n }\r\n if (this.rule.control.type == 'boolean') {\r\n this.selectBoxBoolean.refresh();\r\n }\r\n this.ruleChanged.emit({ component: this, items: this.rule });\r\n }\r\n\r\n operatorChange(e) {\r\n this.rule.operator = e[0].value;\r\n this.ruleChanged.emit({ component: this, items: this.rule });\r\n\r\n\r\n if (e[0].value !== 'null' && e[0].value !== 'not-null') {\r\n this.showValue = true;\r\n\r\n } else {\r\n this.showValue = false;\r\n this.rule.value = '';\r\n this.rule.text = '';\r\n this.rule.valueItem = [];\r\n this.rule.onDemandLabel = '';\r\n\r\n }\r\n }\r\n valueChange(e) {\r\n // this.rule.text = e.value == undefined ? e[0].value : (e.value == null ? '' : e.value);\r\n this.rule.text = e[0] ? (e[0].value == null ? '' : e[0].value) : (e.value == null ? '' : e.value);\r\n this.rule.onDemandLabel = '';\r\n this.ruleChanged.emit({ component: this, items: this.rule });\r\n }\r\n onDemandLabelChange(e) {\r\n // this.rule.onDemandLabel = e.value == undefined ? '????|' + e[0].value : '????|' + e.value;\r\n this.rule.onDemandLabel = e[0] ? '????|' + (e[0].value == null ? '' : e[0].value) : '????|' + (e.value == null ? '' : e.value)\r\n this.rule.value = '';\r\n this.rule.text = '';\r\n this.rule.valueItem = [];\r\n\r\n this.ruleChanged.emit({ component: this, items: this.rule });\r\n }\r\n valueBooleanChange(e) {\r\n // this.rule.text = e.value == undefined ? e[0].value : (e.value == null ? '' : e.value);\r\n this.rule.text = e[0] ? (e[0].value == null ? '' : e[0].value) : (e.value == null ? '' : e.value);\r\n this.rule.value = e.value == undefined ? e[0].value : e.value;\r\n this.rule.onDemandLabel = '';\r\n this.ruleChanged.emit({ component: this, items: this.rule });\r\n }\r\n getOnDemandName(v) {\r\n return v ? v.split('|')[1] : '';\r\n }\r\n selectedItemsChange(e) {\r\n let n = this.getOption('textField');\r\n this.rule.text = e[0][n];\r\n if (this.rule && this.rule.control.options.valueField) {\r\n this.rule.value = e[0][this.rule.control.options.valueField];\r\n } else {\r\n this.rule.value = e[0].value;\r\n }\r\n this.rule.valueItem[0] = e[0];\r\n this.ruleChanged.emit({ component: this, items: this.rule });\r\n this.rule.onDemandLabel = '';\r\n }\r\n onDemandLabel(e) {\r\n // if (e.value && (this.rule.onDemandLabel == '????|' || this.rule.onDemandLabel === undefined || this.rule.onDemandLabel === null || this.rule.onDemandLabel === '')) {\r\n // this.textBoxNameValue.focus();\r\n // }\r\n if (e.value == false) {\r\n this.rule.onDemandLabel = '';\r\n }\r\n this.isOnDemandLabel = e.value;\r\n }\r\n getProvideData = (e) => {\r\n if (this.rule && this.rule.control.options && this.rule.control.options.dataSource) {\r\n return this.rule.control.options.dataSource({ ...e, optionsData: { ...this.rule.control.options } });\r\n }\r\n };\r\n\r\n getOption(name: string) {\r\n return this.rule.control.options ? this.rule.control.options[name] : null;\r\n }\r\n}\r\n","import { AXButtonItem, AXTranslator } from '@acorex/core';\r\nimport { ChangeDetectorRef, Component, ViewChild } from '@angular/core';\r\nimport { AXBasePopupPageComponent } from '../../base/base-page.class';\r\nimport { AXMenuItemClickEvent } from '../../menu/menu.component';\r\nimport { AXQueryBuilderGroup, AXQueryBuilderPopup, AXQueryBuilderRule } from '../query-builder.class';\r\n\r\nimport { AXDataSourceReadParams } from '../../data-source/read-param'\r\nimport { AXToastService } from '../../toast/toast.service';\r\nimport { AXValidationFormComponent } from '../../validation/validation-form.component';\r\n@Component({\r\n templateUrl: './query-builder-popup.component.html'\r\n})\r\n\r\nexport class AXQueryBuilderPopupComponent extends AXBasePopupPageComponent {\r\n @ViewChild(AXValidationFormComponent) form: AXValidationFormComponent;\r\n constructor(private toast: AXToastService) {\r\n super();\r\n }\r\n group: AXQueryBuilderGroup;\r\n items: AXQueryBuilderRule[] = [];\r\n groupCopy: AXQueryBuilderGroup;\r\n complateValue: boolean = true;\r\n provideData: any;\r\n makeJsonString(items: any[]) {\r\n return new Promise((resolve, reject) => {\r\n items.forEach((element, index, array) => {\r\n if (element.items) {\r\n this.makeJsonString(element.items);\r\n } else {\r\n if (element.control && element.control.options && (element.control.options.dataSource === '' || element.control.options.dataSource === undefined)) {\r\n element.control.options.dataSource = this.provideData;\r\n }\r\n }\r\n if (index === array.length - 1) {\r\n resolve(array[0]);\r\n }\r\n });\r\n });\r\n }\r\n ngAfterViewInit() {\r\n var groupString = JSON.stringify(this.group);\r\n this.groupCopy = JSON.parse(groupString);\r\n this.makeJsonString(this.groupCopy.items);\r\n for (let i = 0; i < this.groupCopy.items.length; i++) {\r\n this.getNoValueRule(this.groupCopy.items[i]);\r\n }\r\n if (this.items.length < 1) {\r\n this.close(this.group);\r\n }\r\n\r\n }\r\n getValue(v) {\r\n return v.indexOf('????') == 0 ? v.split('|')[1] : v;\r\n }\r\n getNoValueRule(gr) {\r\n // for (let i = 0; i < gr.items.length; i++) {\r\n if (gr.condition) {\r\n for (let i = 0; i < gr.items.length; i++) {\r\n this.getNoValueRule(gr.items[i]);\r\n }\r\n\r\n } else {\r\n if (gr.onDemandLabel?.indexOf('????') == 0) {\r\n this.items.push(gr);\r\n }\r\n }\r\n\r\n // }\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n\r\n textValueChange(e, rule) {\r\n rule.value = e.value;\r\n rule.text = e.value;\r\n\r\n }\r\n selectedItemsChange(e, rule) {\r\n let n = this.getOption('textField', rule);\r\n rule.text = e[0][n];\r\n if (rule && rule.control.options.valueField) {\r\n rule.value = e[0][rule.control.options.valueField];\r\n } else {\r\n rule.value = e[0].value;\r\n }\r\n rule.valueItem[0] = e[0];\r\n\r\n }\r\n valueChange(e, rule) {\r\n rule.value = e.value;\r\n rule.text = e.value;\r\n\r\n }\r\n valueBooleanChange(e, rule) {\r\n rule.text = e.value == undefined ? e[0].value : e.value;\r\n rule.value = e.value == undefined ? e[0].value : e.value;\r\n\r\n }\r\n getOption(name: string, rule) {\r\n return rule.control.options ? rule.control.options[name] : null;\r\n }\r\n getProvideData = (e: AXDataSourceReadParams) => {\r\n if (e.extra && e.extra.control.options && e.extra.control.options.dataSource) {\r\n return e.extra.control.options.dataSource({ ...e, optionsData: { ...e.extra.control.options } });\r\n }\r\n };\r\n\r\n provideDataBoolean = (e) => {\r\n return new Promise((resolve) => {\r\n resolve([\r\n {\r\n value: 'true',\r\n text: AXTranslator.get('queryBuilder.true')\r\n },\r\n {\r\n value: 'false',\r\n text: AXTranslator.get('queryBuilder.false')\r\n }\r\n\r\n ])\r\n })\r\n }\r\n\r\n findNullValue(gr) {\r\n for (let i = 0; i < gr.length; i++) {\r\n if (gr[i].value === null || gr[i].value === undefined || gr[i].value === '') {\r\n this.complateValue = false;\r\n }\r\n }\r\n\r\n\r\n // if (gr.condition) {\r\n // for (let i = 0; i < gr.items.length; i++) {\r\n // this.findNullValue(gr.items[i]);\r\n // }\r\n\r\n // } else {\r\n // if (gr.onDemandLabel?.indexOf('????') == 0 || gr.value === null || gr.value === undefined || gr.value === '') {\r\n // this.complateValue = false;\r\n // }\r\n // }\r\n\r\n }\r\n\r\n onFooterButtonClick(e: AXMenuItemClickEvent) {\r\n if (e.name === 'confirm') {\r\n this.form.validate().then(c => {\r\n if (c.result === true) {\r\n this.close(this.groupCopy);\r\n }\r\n });\r\n }\r\n if (e.name === 'cancel') {\r\n this.close();\r\n }\r\n\r\n }\r\n\r\n getFooterButtons(): AXButtonItem[] {\r\n return [\r\n {\r\n text: AXTranslator.get('common.confirm'),\r\n name: 'confirm',\r\n style: 'ax primary',\r\n icon: 'far fa-check-circle'\r\n },\r\n {\r\n text: AXTranslator.get('common.cancel'),\r\n name: 'cancel',\r\n style: 'ax light',\r\n icon: 'far fa-times-circle'\r\n }\r\n ]\r\n }\r\n}","import { AXQueryBuilderGroup, AXQueryBuilderStringType } from \"./query-builder.class\";\r\nimport { Injectable } from '@angular/core';\r\nimport { AXPopupService } from '../popup/popup.service';\r\nimport { AXQueryBuilderPopupComponent } from './query-builder-popup/query-builder-popup.component'\r\nimport { AXToastService } from '../toast/toast.service';\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXQueryBuilderService {\r\n constructor(private popup: AXPopupService, private toast: AXToastService) {\r\n\r\n }\r\n canOpen: boolean = false;\r\n canRun: boolean = false;\r\n public runQuery(group: AXQueryBuilderGroup, provideData) {\r\n\r\n return new Promise((resolve) => {\r\n this.canOpen = false;\r\n for (let i = 0; i < group.items.length; i++) {\r\n this.getNoValueRule(group.items[i]);\r\n }\r\n if (this.canOpen) {\r\n this.canRun = true;\r\n for (let i = 0; i < group.items.length; i++) {\r\n if (this.canRun == true) {\r\n this.findNullValue(group.items[i])\r\n }\r\n }\r\n if (this.canRun) {\r\n this.popup.open(AXQueryBuilderPopupComponent, { data: { group: group, provideData: provideData }, title: \"دریافت مقادیر\" }).then(c => {\r\n resolve(c)\r\n })\r\n }\r\n } else {\r\n resolve(group);\r\n }\r\n })\r\n\r\n\r\n\r\n }\r\n\r\n findNullValue(gr) {\r\n if (this.canRun == true) {\r\n if (gr.condition) {\r\n for (let i = 0; i < gr.items.length; i++) {\r\n this.findNullValue(gr.items[i]);\r\n }\r\n\r\n } else {\r\n if (gr.onDemandLabel == '????|') {\r\n this.canRun = false;\r\n this.toast.error('لطفا نام متغیر های مورد نیاز را کامل کنید')\r\n }\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n private getNoValueRule(gr) {\r\n // for (let i = 0; i < gr.items.length; i++) {\r\n if (gr.condition) {\r\n for (let i = 0; i < gr.items.length; i++) {\r\n this.getNoValueRule(gr.items[i]);\r\n }\r\n\r\n } else {\r\n if (gr.onDemandLabel?.indexOf('????') == 0) {\r\n this.canOpen = true;\r\n }\r\n }\r\n\r\n // }\r\n }\r\n\r\n public getQueryString(group: AXQueryBuilderGroup, type: AXQueryBuilderStringType): string {\r\n let query = '';\r\n switch (type) {\r\n case 'simple':\r\n if (group.items.length > 0) {\r\n query = ' ( ';\r\n }\r\n for (let i = 0; i < group.items.length; i++) {\r\n const item = group.items[i];\r\n if (item instanceof AXQueryBuilderGroup) {\r\n \r\n query = query + item.queryString;\r\n \r\n } else {\r\n \r\n query = query + ' ' + item.caption + ' ' + item.operator + ' ' + item.value;\r\n \r\n }\r\n if (i !== group.items.length - 1 && query != ' ( ') {\r\n query = query + ' ' + group.condition;\r\n }\r\n \r\n }\r\n if (group.items.length > 0) {\r\n query = query + ' ) ';\r\n } \r\n break;\r\n \r\n case 'elastic':\r\n if (group.items.length > 0) {\r\n query = ' ( ';\r\n }\r\n for (let i = 0; i < group.items.length; i++) {\r\n const item = group.items[i];\r\n if (item instanceof AXQueryBuilderGroup) {\r\n \r\n query = query + item.queryStringElastic;\r\n \r\n } else {\r\n \r\n query = query + ' ' + item.dataField + ' ' + item.operator + ' ' + item.value;\r\n \r\n }\r\n if (i !== group.items.length - 1 && query != ' ( ') {\r\n query = query + ' ' + group.condition;\r\n }\r\n \r\n }\r\n if (group.items.length > 0) {\r\n query = query + ' ) ';\r\n } \r\n \r\n break;\r\n case 'sql':\r\n \r\n break;\r\n }\r\n \r\n \r\n\r\n\r\n return query;\r\n }\r\n\r\n}","import { Component, OnInit, Input, ViewEncapsulation, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { AXValidationFormComponent } from '../validation/validation-form.component';\r\nimport { AXQueryBuilderRuleComponent } from './query-builder-rule.component';\r\nimport { AXQueryBuilderGroup, AXQueryBuilderGroupEvent, AXQueryBuilderRuleEvent, AXQueryBuilderRule } from './query-builder.class';\r\nimport { AXQueryBuilderService } from './query-builder.service'\r\n@Component({\r\n selector: 'ax-query-group',\r\n templateUrl: 'query-builder-group.component.html',\r\n host: { class: 'ax ax-query-group' },\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXQueryBuilderGroupComponent implements OnInit {\r\n\r\n @ViewChild('queryRule') queryRule: AXQueryBuilderRuleComponent;\r\n @ViewChild(AXValidationFormComponent) form: AXValidationFormComponent;\r\n @Input()\r\n group: AXQueryBuilderGroup;\r\n\r\n collapsed: boolean = false;\r\n\r\n @Input()\r\n parent: AXQueryBuilderGroup;\r\n\r\n @Input()\r\n fields: any[] = [];\r\n\r\n //ruleIsEditing: boolean = true;\r\n\r\n @Output()\r\n groupRuleChanged: EventEmitter<AXQueryBuilderGroupEvent> = new EventEmitter<AXQueryBuilderGroupEvent>();\r\n\r\n showGroupCondition: boolean = false;\r\n\r\n constructor(private qs: AXQueryBuilderService) { }\r\n\r\n ngOnInit() { }\r\n\r\n ruleDelete(e: AXQueryBuilderRuleEvent) {\r\n this.group.items = this.group.items.filter(c => c !== e.items);\r\n this.ruleChanged(null);\r\n }\r\n handleRemoveClick() {\r\n this.parent.items = this.parent.items.filter(c => c !== this.group);\r\n this.groupRuleChanged.emit({ groups: this.group, component: this });\r\n }\r\n saveRule() {\r\n // this.form.validate().then(c => {\r\n // });\r\n // return this.queryRule.saveRule();\r\n }\r\n addRule() {\r\n const item: AXQueryBuilderRule = new AXQueryBuilderRule();\r\n if (this.fields.length > 0) {\r\n // item.caption = this.fields[0].caption;\r\n // item.dataType = this.fields[0].dataType;\r\n // item.dataField = this.fields[0].dataField;\r\n } else {\r\n\r\n }\r\n\r\n item.operator = 'equal';\r\n\r\n if (item.dataType === 'string') {\r\n item.value = '';\r\n }\r\n if (item.dataType === 'number') {\r\n item.value = 0;\r\n }\r\n\r\n if (this.group.items == undefined) {\r\n this.group.items = [];\r\n }\r\n this.group.items.push(item);\r\n this.ruleChanged(null);\r\n }\r\n addGroup() {\r\n this.showGroupCondition = true;\r\n }\r\n addGroupOR() {\r\n this.makeGroup(\"OR\");\r\n }\r\n addGroupAND() {\r\n this.makeGroup(\"AND\");\r\n }\r\n makeGroup(_condition) {\r\n let r: AXQueryBuilderGroup = new AXQueryBuilderGroup();\r\n r.condition = _condition;\r\n r.items = [];\r\n r.queryString = '';\r\n if (this.group.items == undefined) {\r\n this.group.items = [];\r\n }\r\n this.group.items.push(r);\r\n this.showGroupCondition = false;\r\n this.ruleChanged(null);\r\n }\r\n changeDetailMode() {\r\n //if (this.parent) {\r\n this.collapsed = !this.collapsed;\r\n // this.ruleIsEditing = false;\r\n //}\r\n }\r\n\r\n handleChangeClick() {\r\n if (this.group.condition == 'OR') {\r\n this.group.condition = 'AND';\r\n } else {\r\n this.group.condition = 'OR';\r\n }\r\n this.ruleChanged(null);\r\n\r\n }\r\n\r\n ruleChanged(e) {\r\n this.group.queryString = this.qs.getQueryString(this.group, 'simple');\r\n this.group.queryStringElastic = this.qs.getQueryString(this.group,'elastic')\r\n this.groupRuleChanged.emit({ groups: this.group, component: this });\r\n }\r\n\r\n\r\n}","import { AXBaseComponent } from '../base/element.class';\r\nimport { Component, Input, Output, EventEmitter, ElementRef, ViewEncapsulation, ViewChild } from '@angular/core';\r\nimport { AXTranslator, AXHtmlUtil } from '@acorex/core';\r\nimport { AXQueryBuilderGroup, AXQueryBuilderGroupEvent, AXQueryBuilderGroupItem } from './query-builder.class';\r\nimport { AXQueryBuilderGroupComponent } from './query-builder-group.component';\r\nimport { AXToastService } from '../toast/toast.service';\r\n\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: 'ax-query-builder',\r\n templateUrl: './query-builder.component.html',\r\n styleUrls: ['./query-builder.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXQueryBuilderComponent extends AXBaseComponent {\r\n\r\n @ViewChild('queryGroup') queryGroup: AXQueryBuilderGroupComponent;\r\n\r\n @Input()\r\n query: AXQueryBuilderGroup;\r\n\r\n rootGroup: AXQueryBuilderGroup = new AXQueryBuilderGroup();\r\n\r\n\r\n ngOnInit(): void {\r\n\r\n\r\n this.rootGroup.condition = this.query.condition ? this.query.condition : \"AND\";\r\n this.rootGroup.items = this.query.items ? this.query.items : [];\r\n\r\n }\r\n\r\n constructor(private ref: ElementRef, private toast: AXToastService) {\r\n super();\r\n }\r\n\r\n @Input()\r\n fields: any[] = [];\r\n\r\n // @Input()\r\n // mode: 'immediate' | 'click' = 'click';\r\n\r\n @Output()\r\n onRuleChanged: EventEmitter<AXQueryBuilderGroupEvent> = new EventEmitter<AXQueryBuilderGroupEvent>();\r\n\r\n saved: boolean = false;\r\n\r\n\r\n public getQueryBuilder() {\r\n return ({ groups: this.rootGroup });\r\n }\r\n\r\n ruleChanged(e) {\r\n this.onRuleChanged.emit({ component: this, groups: this.rootGroup });\r\n }\r\n\r\n\r\n\r\n public saveRule() {\r\n /// return this.queryGroup.saveRule();\r\n return new Promise((resolve, reject) => {\r\n this.saved = true;\r\n for (let i = 0; i < this.rootGroup.items.length; i++) {\r\n if (this.saved == true) {\r\n this.findNullValue(this.rootGroup.items[i])\r\n }\r\n }\r\n if (this.saved == true) {\r\n resolve(this.rootGroup);\r\n } else {\r\n reject();\r\n }\r\n })\r\n\r\n }\r\n\r\n findNullValue(gr) {\r\n if (this.saved == true) {\r\n if (gr.condition) {\r\n for (let i = 0; i < gr.items.length; i++) {\r\n this.findNullValue(gr.items[i]);\r\n }\r\n\r\n } else {\r\n if (gr.onDemandLabel == '????|') {\r\n this.saved = false;\r\n this.toast.error('لطفا نام متغیر های مورد نیاز را کامل کنید')\r\n }\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n // selectionFieldsChanged(e, rules: AXQueryBuilderRule) {\r\n // \r\n // rules.dataField = e.selectedItems[0].dataField;\r\n // rules.caption = e.selectedItems[0].caption;\r\n // rules.dataType = e.selectedItems[0].dataType;\r\n\r\n // // TO DO chack dataType For Def operator and Value\r\n // if (rules.dataType == 'string') {\r\n // rules.operator = this.operatorStringItem[0].id;\r\n // rules.value = 'null';\r\n // }\r\n // if (rules.dataType == 'number') {\r\n // rules.operator = this.operatorNumberItem[0].id;\r\n // rules.value = '0';\r\n // }\r\n\r\n\r\n // this.onRuleChanged.emit({ groups: this.rootGroup, queryString: this.getQueryDisplay(), component: this, htmlElement: this.ref.nativeElement })\r\n // }\r\n\r\n // selectionOparatorChanged(e, rules: AXQueryBuilderRule) {\r\n // rules.operator = e.selectedItems[0].id;\r\n // }\r\n\r\n // provideDataFields = (e) => {\r\n // return new Promise((resolve) => {\r\n // resolve(this.fields);\r\n // });\r\n // }\r\n\r\n // provideDataOperatorString = (e) => {\r\n // return new Promise((resolve) => {\r\n // resolve(this.operatorStringItem);\r\n // });\r\n // }\r\n // provideDataOperatorNumber = (e) => {\r\n // return new Promise((resolve) => {\r\n // resolve(this.operatorNumberItem);\r\n // });\r\n // }\r\n\r\n // private getQueryDisplay(gr = this.list, _condition = this.list[0].condition) {\r\n // var cap: string = '(';\r\n\r\n // for (let j = 0; j < gr.length; j++) {\r\n // if (j > 0) {\r\n // cap = cap + _condition;\r\n // }\r\n // cap = cap + \" ( \";\r\n // for (let i = 0; i < gr[j].items.length; i++) {\r\n // if (gr[j].items[i].value && gr[j].items[i].operator && gr[j].items[i].caption || ((gr[j].items[i].operator == \"is-empty\" || gr[j].items[i].operator == \"is-not-empty\") && gr[j].items[i].caption)) {\r\n // var opr: string;\r\n // if (gr[j].items[i].dataType == \"number\" || gr[j].items[i].dataType == \"date\" || gr[j].items[i].dataType == \"dateTime\") {\r\n // let d = this.operatorNumberItem.filter(c => c.id == gr[j].items[i].operator);\r\n // opr = d[0].text;\r\n // } else {\r\n // let d = this.operatorStringItem.filter(c => c.id == gr[j].items[i].operator);\r\n // opr = d[0].text;\r\n // }\r\n // if ((gr[j].items[i].operator == \"is-empty\" || gr[j].items[i].operator == \"is-not-empty\")) {\r\n\r\n // if (i === gr[j].items.length - 1) {\r\n // cap = cap + \" \" + \"[\" + gr[j].items[i].caption + \"]\";\r\n // } else {\r\n // cap = cap + \" \" + \"[\" + gr[j].items[i].caption + \"]\" + \" \" + opr + \" \" + gr[j].condition;\r\n // }\r\n // } else {\r\n // var val: string;\r\n\r\n // if (gr[j].items[i].dataType == 'date') {\r\n // // val = moment(item.value).locale('fa').format('YYYY/MM/DD');\r\n // } else if (gr[j].items[i].dataType == 'dateTime') {\r\n // // val = moment(item.value).locale('fa').format('HH:mm YYYY/MM/DD');\r\n // } else {\r\n // val = gr[j].items[i].value;\r\n // }\r\n // if (i === gr[j].items.length - 1) {\r\n // cap = cap + \" \" + \"[\" + gr[j].items[i].caption + \"]\" + \" \" + opr + \" \" + val\r\n // } else {\r\n // cap = cap + \" \" + \"[\" + gr[j].items[i].caption + \"]\" + \" \" + opr + \" \" + val + \" \" + gr[j].condition\r\n // }\r\n\r\n // }\r\n // }\r\n // }\r\n\r\n // if (gr[j].groups && gr[j].groups.length > 0) {\r\n // let c = this.getQueryDisplay(gr[j].groups, gr[j].condition);\r\n // if (c != \"( ) \") {\r\n // if (gr[j].items.length > 0 || j > 0) {\r\n // cap = cap + \" \" + gr[j].condition + \" \" + c + \" \";\r\n // } else {\r\n // cap = cap + \" \" + c + \" \";\r\n // }\r\n\r\n // }\r\n // }\r\n\r\n // cap = cap + \" ) \";\r\n // };\r\n\r\n // cap = cap + \" ) \";\r\n // return cap;\r\n // }\r\n\r\n // deleteGroup(groupOut: AXQueryBuilderGroup, groupIn: AXQueryBuilderGroup) {\r\n // groupOut.items = groupOut.items.filter(c => c.id != groupIn.id);\r\n // }\r\n\r\n // deleteRule1(group: AXQueryBuilderGroup, rule: AXQueryBuilderRule) {\r\n // group.items = group.items.filter(c => c.id != rule.id);\r\n // }\r\n\r\n\r\n // addRule(group: AXQueryBuilderGroup) {\r\n // const item: AXQueryBuilderRule = new AXQueryBuilderRule();\r\n // group.items.push(item);\r\n // }\r\n\r\n // addGroupAND(group: AXQueryBuilderGroup) {\r\n // this.addGroupOnClick(group);\r\n // group.condition = \"AND\";\r\n // }\r\n // addGroupOR(group: AXQueryBuilderGroup) {\r\n // this.addGroupOnClick(group);\r\n // group.condition = \"OR\";\r\n // }\r\n\r\n // addGroupOnClick(groups: AXQueryBuilderGroup) {\r\n // let r: AXQueryBuilderGroup = new AXQueryBuilderGroup();\r\n // r.condition = \"\";\r\n // r.items = [];\r\n // if (groups.items == undefined) {\r\n // groups.items = [];\r\n // }\r\n // groups.items.push(r);\r\n // }\r\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXSearchBoxComponent } from './searchbox.component';\r\nimport { AXTextBoxModule } from '../textbox/textbox.module';\r\nimport { AXButtonModule } from '../button/button.module';\r\nimport { AXFormGroupModule } from '../form-group/form-group.module';\r\nimport { AXTranslatorModule } from '@acorex/core';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n\r\n@NgModule({\r\n declarations: [AXSearchBoxComponent],\r\n imports: [CommonModule, AXTextBoxModule, AXButtonModule, AXFormGroupModule, AXTranslatorModule, FormsModule],\r\n exports: [AXSearchBoxComponent],\r\n providers: []\r\n})\r\nexport class AXSearchBoxModule { }\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n Input,\r\n EventEmitter,\r\n Output,\r\n ViewChild,\r\n ChangeDetectorRef,\r\n ElementRef,\r\n ContentChild,\r\n NgZone,\r\n HostListener\r\n} from '@angular/core';\r\nimport { AXTextBoxComponent } from '../textbox/textbox.component';\r\nimport { AXDropdownComponent } from '../dropdown/dropdown.component';\r\nimport { AXBaseSizableComponent, AXBaseInputComponent, AXElementSize, AXValidatableComponent, AXBaseValueComponent } from '../base/element.class';\r\nimport { AXDataSourceComponent } from '../data-source/datasource.component';\r\nimport { AXValidation } from '../validation/validation.component';\r\nimport { AXDataSourceReadParams } from '../data-source/read-param';\r\nimport { AXSearchBoxComponent } from '../searchbox/searchbox.component';\r\nimport { AXConfig, AXObjectUtil, AXTranslator } from '@acorex/core';\r\nimport { AXValueEvent } from '../base/events.class';\r\n\r\n\r\nexport class AXSelectBoxValueChangedEvent extends AXValueEvent<any | any[]> {\r\n value?: any;\r\n oldValue?: any;\r\n isUserInput: boolean = false;\r\n selectedKeys?: any[];\r\n selectedItems?: any[];\r\n}\r\n\r\n@Component({\r\n selector: 'ax-select-box2',\r\n templateUrl: './selectbox2.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { style: 'display: contents;' },\r\n providers: [{ provide: AXValidatableComponent, useExisting: AXSelectBox2Component }]\r\n})\r\nexport class AXSelectBox2Component extends AXValidatableComponent implements AXBaseSizableComponent, AXBaseInputComponent, AXBaseValueComponent<any>{\r\n\r\n @ViewChild(AXTextBoxComponent, { static: true })\r\n span: ElementRef<HTMLElement>;\r\n\r\n @ViewChild(AXTextBoxComponent, { static: true })\r\n textbox: AXTextBoxComponent;\r\n\r\n @ViewChild('listContainer', { static: true })\r\n listContainer: ElementRef<HTMLDivElement>;\r\n\r\n @ViewChild('searchBox', { static: false })\r\n searchBox: AXSearchBoxComponent;\r\n\r\n @ViewChild('textBoxSelectBox', { static: true })\r\n textBoxSelectBox: AXTextBoxComponent;\r\n\r\n @ContentChild(AXDataSourceComponent, { static: true })\r\n private _contentDataSource: AXDataSourceComponent;\r\n\r\n @ContentChild(AXValidation, { static: true })\r\n private _contentValidation: AXValidation;\r\n\r\n @ViewChild('d', { static: true })\r\n dropdown: AXDropdownComponent;\r\n\r\n\r\n @Input() showDropDownButton: boolean = true;\r\n @Input() readonly: boolean = false;\r\n @Input() rtl: boolean = AXConfig.get('layout.rtl');\r\n @Input() disabled: boolean;\r\n @Input() placeholder: string;\r\n @Input() size: AXElementSize = 'md';\r\n @Input() allowNull: boolean = true;\r\n @Input() textAlign: 'right' | 'left' | null = null;\r\n @Input() bufferSize: number = 10;\r\n @Input() remoteOperation: boolean = false;\r\n @Input() allowSearch: boolean = true;\r\n @Input() textField: string = 'text';\r\n @Input() valueField: string = 'value';\r\n @Input() selectionMode: 'single' | 'multiple' = 'single';\r\n @Input() selectionDataMode: 'value' | 'item' = 'value';\r\n\r\n currentfocusedIndex: number = -1;\r\n showLoading: boolean = false;\r\n skip: number = -1;\r\n searchText: string = '';\r\n text: string = '';\r\n totalCount: number = 0;\r\n itemsFiltered: any[] = [];\r\n\r\n private isUserInput: boolean = false;\r\n\r\n private _dataSource: AXDataSourceComponent;\r\n @Input()\r\n public get dataSource(): AXDataSourceComponent {\r\n return this._dataSource ? this._dataSource : this._contentDataSource;\r\n }\r\n public set dataSource(v: AXDataSourceComponent) {\r\n this._dataSource = v;\r\n }\r\n\r\n private _validation: AXValidation;\r\n @Input()\r\n public get validation(): AXValidation {\r\n return this._validation ? this._validation : this._contentValidation;\r\n }\r\n public set validation(v: AXValidation) {\r\n this._validation = v;\r\n }\r\n\r\n constructor(private cdr: ChangeDetectorRef, private ref: ElementRef, private zone: NgZone) {\r\n super();\r\n }\r\n\r\n\r\n private _value: any | any[];\r\n @Input()\r\n public get value(): any | any[] {\r\n return this._value;\r\n }\r\n public set value(v: any | any[]) {\r\n if (v !== this._value) {\r\n const oldValue = AXObjectUtil.deepJSONClone(this._value);\r\n if (this.selectionMode === 'multiple') {\r\n this._value = Array.isArray(v) ? v : (v ? [v] : []);\r\n } else {\r\n this._value = Array.isArray(v) ? v[0] : v;\r\n }\r\n this.valueChange.emit(this._value);\r\n this.onValueChanged.emit({\r\n component: this,\r\n htmlElement: this.ref.nativeElement,\r\n isUserInput: this.isUserInput,\r\n oldValue,\r\n value: this._value,\r\n selectedKeys: this.selectedItems.map(c => c[this.valueField]),\r\n selectedItems: this.selectedItems.slice()\r\n });\r\n this.isUserInput = false;\r\n this.renderSelection();\r\n }\r\n }\r\n\r\n\r\n private _selectedItems: any[];\r\n public get selectedItems(): any[] {\r\n return this._selectedItems || [];\r\n }\r\n\r\n private _items: any[] = [];\r\n @Input()\r\n public get items(): any[] {\r\n return this._items;\r\n }\r\n public set items(v: any[]) {\r\n this._items = v;\r\n if (this.itemsChange) {\r\n this.itemsChange.emit(v);\r\n }\r\n this.renderSelection();\r\n }\r\n\r\n @Output()\r\n itemsChange: EventEmitter<any[]> = new EventEmitter<any[]>();\r\n\r\n @Output()\r\n onBlur: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onFocus: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n public valueChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n public onValueChanged: EventEmitter<AXSelectBoxValueChangedEvent> = new EventEmitter<AXSelectBoxValueChangedEvent>();\r\n\r\n\r\n\r\n ngOnInit() {\r\n if (this.rtl == null) {\r\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\r\n }\r\n }\r\n\r\n scrolled(e) {\r\n if (this.remoteOperation && this.totalCount > this.items.length && this.listContainer.nativeElement.scrollHeight != 0\r\n && this.listContainer.nativeElement.scrollHeight - this.listContainer.nativeElement.scrollTop - 300 < 50) {\r\n this.showLoading = true;\r\n\r\n if (this.skip !== this.items.length) {\r\n this.skip = this.items.length;\r\n\r\n const params: AXDataSourceReadParams = {};\r\n params.skip = this.items.length;\r\n params.take = this.bufferSize * (Math.floor(this.items.length / this.bufferSize) + 1);\r\n if (this.textbox) {\r\n params.searchText = this.text;\r\n } else {\r\n params.searchText = null;\r\n }\r\n this.fetch(params);\r\n }\r\n }\r\n }\r\n\r\n textChanged(e) {\r\n this.currentfocusedIndex = -1;\r\n if (this.remoteOperation) {\r\n this.searchText = this.text;\r\n this.items = [];\r\n const params: AXDataSourceReadParams = {};\r\n params.searchText = this.text;\r\n params.skip = 0;\r\n params.take = this.bufferSize;\r\n this.fetch(params);\r\n }\r\n }\r\n\r\n private renderSelection() {\r\n const func = () => {\r\n if (!this.value) {\r\n return [];\r\n }\r\n if ((this.items?.length > 0) && this.selectionDataMode == 'value') {\r\n const orgRes = this.items.filter(i => {\r\n if (Array.isArray(this.value)) {\r\n return this.value.some(ii => {\r\n if (typeof ii === 'object') {\r\n return i[this.valueField] === ii[this.valueField];\r\n }\r\n else {\r\n return i[this.valueField] === ii;\r\n }\r\n });\r\n }\r\n else {\r\n if (typeof this.value === 'object') {\r\n return i[this.valueField] === this.value[this.valueField];\r\n }\r\n else {\r\n return i[this.valueField] === this.value;\r\n }\r\n }\r\n });\r\n if (orgRes.length > 0) {\r\n return orgRes;\r\n }\r\n }\r\n if (Array.isArray(this.value)) {\r\n return this.value.map(ii => {\r\n if (typeof ii === 'object' && ii[this.textField]) {\r\n return ii;\r\n }\r\n else {\r\n const fake: any = {};\r\n fake[this.valueField] = this.value;\r\n fake[this.textField] = AXTranslator.get('common.loading');\r\n return fake;\r\n }\r\n });\r\n }\r\n else {\r\n if (typeof this.value === 'object' && this.value[this.textField]) {\r\n return [this.value];\r\n }\r\n else {\r\n const fake: any = {};\r\n fake[this.valueField] = this.value;\r\n fake[this.textField] = AXTranslator.get('common.loading');\r\n return [fake];\r\n }\r\n }\r\n };\r\n this._selectedItems = func();\r\n this.cdr.markForCheck();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.bufferSize < 10) {\r\n this.bufferSize = 10;\r\n }\r\n if (!this.remoteOperation) {\r\n this.refresh();\r\n }\r\n }\r\n\r\n dropdownToggle(e) {\r\n if (this.dropdown.isOpen) {\r\n this.currentfocusedIndex = this.getItems().indexOf(this.selectedItems[this.selectedItems.length - 1]);\r\n this.focusOnSearchBox();\r\n this.focusOnCurrentFocusedIndex();\r\n }\r\n else {\r\n this.focus();\r\n }\r\n }\r\n\r\n ngAfterContentInit() {\r\n this.initValidation(this.ref, 'value', this.validation);\r\n if (this.dataSource) {\r\n if (this.allowSearch === false) {\r\n this.fetch();\r\n }\r\n this.dataSource.onDataReceived.subscribe((c) => {\r\n this.showLoading = false;\r\n this.dataReceived(c.data.result);\r\n });\r\n }\r\n this.cdr.markForCheck();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private dataReceived(data: any) {\r\n if (this.remoteOperation) {\r\n if (this.searchText && this.searchText != null && this.searchText !== '') {\r\n if (data.totalCount) {\r\n this.items = data.items;\r\n this.totalCount = data.totalCount;\r\n } else {\r\n this.items = data.items;\r\n this.totalCount = data.items == undefined ? 0 : data.items.length;\r\n }\r\n\r\n }\r\n else if (data.items && data.items.length === data.totalCount) {\r\n this.items = data.items;\r\n this.totalCount = data.items.length;\r\n }\r\n else if (data.totalCount) {\r\n data.items.forEach(elm => {\r\n this.items.push(elm);\r\n });\r\n this.totalCount = data.totalCount;\r\n } else {\r\n data.forEach(elm => {\r\n this.items.push(elm);\r\n });\r\n this.totalCount = data.length;\r\n }\r\n } else {\r\n this.items = data;\r\n }\r\n this.renderSelection();\r\n this.cdr.markForCheck();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n\r\n fetch(params: AXDataSourceReadParams = {}) {\r\n if (this.dataSource) {\r\n this.showLoading = true;\r\n this.dataSource.fetch(params);\r\n }\r\n }\r\n\r\n refresh() {\r\n const params: AXDataSourceReadParams = {};\r\n if (this.remoteOperation) {\r\n params.skip = 0;\r\n this.skip = 0;\r\n params.take = this.bufferSize;\r\n }\r\n if (this.dataSource !== undefined) {\r\n this.items = [];\r\n this.fetch(params);\r\n }\r\n }\r\n\r\n handleItemRemoveClick(item) {\r\n this.text = '';\r\n this.isUserInput = true;\r\n if (Array.isArray(this.value)) {\r\n this.value = this.value.filter(c => (typeof c === 'object') ? c[this.valueField] !== item[this.valueField] : c !== item[this.valueField]);\r\n }\r\n else {\r\n this.value = null;\r\n }\r\n this.cdr.markForCheck();\r\n }\r\n\r\n\r\n\r\n onTextBoxClick(e) {\r\n if (this.disabled === false && this.readonly === false) {\r\n this.open();\r\n }\r\n }\r\n\r\n handleItemClick(e: MouseEvent, item: any) {\r\n this.isUserInput = true;\r\n if (this.selectionMode === 'single') {\r\n this.selectItems(item);\r\n this.close();\r\n }\r\n else {\r\n if (Array.isArray(this.value) && this.value.length > 0) {\r\n if (this.value.some(c => this.internalGetItemValue(c) === this.internalGetItemValue(item))) {\r\n this.unselectItems(item);\r\n }\r\n else {\r\n this.selectItems(item);\r\n }\r\n }\r\n else {\r\n this.selectItems(item);\r\n }\r\n }\r\n this.cdr.markForCheck();\r\n this.focusOnSearchBox();\r\n }\r\n\r\n private internalGetItemByDataMode(item: any) {\r\n return this.selectionDataMode === 'item' ? item : item[this.valueField];\r\n }\r\n\r\n private internalGetItemValue(item: any) {\r\n return typeof item === 'object' ? item[this.valueField] : item;\r\n }\r\n\r\n @HostListener('document:keydown', ['$event'])\r\n handleKeyDown(e: KeyboardEvent) {\r\n if (e.key === 'Escape' || this.disabled || this.readonly) {\r\n this.close();\r\n e.preventDefault();\r\n return;\r\n }\r\n const isLetter = new RegExp(/[a-zA-Z0-9\\-]/).test(String.fromCharCode(e.keyCode));\r\n if (this.textbox.isFocused()) {\r\n if (e.key === 'Backspace' && e.type === 'keydown' &&\r\n ((this.allowNull === true && this.selectedItems.length > 0) ||\r\n (this.allowNull === false && this.selectedItems.length > 1))) {\r\n this.isUserInput = true;\r\n this.unselectItems(this.selectedItems.pop());\r\n e.preventDefault();\r\n return;\r\n }\r\n else if ((e.key === 'ArrowDown' || e.key === 'ArrowUp') && this.getItems().length > 0 && !this.dropdown.isOpen && e.type === 'keydown') {\r\n if (this.selectionMode === 'single') {\r\n this.isUserInput = true;\r\n this.selectedItemByIndex(this.currentfocusedIndex + (e.key === 'ArrowDown' ? 1 : -1));\r\n if (e.ctrlKey) {\r\n this.open();\r\n }\r\n }\r\n else {\r\n this.open();\r\n }\r\n e.preventDefault();\r\n return;\r\n }\r\n else if (isLetter) {\r\n this.text = e.key;\r\n this.open();\r\n e.preventDefault();\r\n return;\r\n }\r\n }\r\n if (this.dropdown.isOpen) {\r\n if ((e.key === 'ArrowDown' || e.key === 'ArrowUp') && this.getItems().length > 0) {\r\n this.isUserInput = true;\r\n this.selectItemByNav((e.key === 'ArrowDown' ? 1 : -1));\r\n e.preventDefault();\r\n return;\r\n }\r\n if ((e.key === 'Enter' || e.code === 'Space')) {\r\n const focusedItem = this.getItems()[this.currentfocusedIndex];\r\n if (focusedItem) {\r\n\r\n if (this.selectionMode === 'single') {\r\n this.isUserInput = true;\r\n this.selectItems(focusedItem);\r\n this.close();\r\n }\r\n else {\r\n this.isUserInput = true;\r\n this.toggleSelect(focusedItem);\r\n }\r\n }\r\n e.preventDefault();\r\n return;\r\n }\r\n }\r\n }\r\n\r\n unselectItems(...items: any[]) {\r\n if (!items || items.length === 0) {\r\n this.value = null;\r\n }\r\n else if (Array.isArray(this.value)) {\r\n this.value = this.value.filter(c => !items.some(d =>\r\n this.internalGetItemValue(c) === this.internalGetItemValue(d))\r\n );\r\n }\r\n else {\r\n this.value = null;\r\n }\r\n this.cdr.markForCheck();\r\n }\r\n\r\n selectItems(...items: any[]) {\r\n if (items && items.length) {\r\n if (this.selectionMode === 'single') {\r\n this.value = this.internalGetItemByDataMode(items[0]);\r\n }\r\n else {\r\n this.value = (this.value || []).concat(items.map(c => this.internalGetItemByDataMode(c)));\r\n }\r\n }\r\n }\r\n\r\n\r\n toggleSelect(...items: any[]) {\r\n if (items && items.length) {\r\n items.forEach(item => {\r\n this.selectedItems.includes(item) ? this.unselectItems(item) : this.selectItems(item);\r\n });\r\n }\r\n }\r\n\r\n\r\n close() {\r\n this.dropdown.close();\r\n }\r\n\r\n open() {\r\n this.dropdown.open();\r\n }\r\n\r\n focus(): void {\r\n this.text = null;\r\n this.textbox.focus();\r\n }\r\n\r\n private focusOnSearchBox() {\r\n const inputedVal = this.text;\r\n if (this.allowSearch === true) {\r\n setTimeout(() => {\r\n if (this.searchBox) {\r\n this.searchBox.value = inputedVal;\r\n this.searchBox.focus();\r\n }\r\n }, 0);\r\n }\r\n else {\r\n this.textbox.focus();\r\n }\r\n }\r\n\r\n getItems(): any[] {\r\n if (this.items == null) {\r\n return [];\r\n }\r\n return (!this.remoteOperation && this.text && this.text !== '') ? this.items.filter((c) =>\r\n (c[this.textField] as string).toLowerCase().includes(this.text.toLowerCase())) : this.items;\r\n }\r\n\r\n isItemSelected(item: any): boolean {\r\n return this.selectedItems.some(c => c[this.valueField] === item[this.valueField]);\r\n }\r\n\r\n private selectItemByNav(sign: -1 | 1 | null = null): void {\r\n if (sign == null) {\r\n this.currentfocusedIndex = this.getItems().indexOf(this.selectedItems[this.selectedItems.length - 1]);\r\n }\r\n else {\r\n sign === -1 ? this.currentfocusedIndex-- : this.currentfocusedIndex++;\r\n }\r\n if (this.currentfocusedIndex < 0) {\r\n this.currentfocusedIndex = 0;\r\n }\r\n if (this.currentfocusedIndex > this.getItems().length - 1) {\r\n this.currentfocusedIndex = this.getItems().length - 1;\r\n }\r\n\r\n // set scroll\r\n this.focusOnCurrentFocusedIndex();\r\n }\r\n\r\n private focusOnCurrentFocusedIndex() {\r\n if (this.listContainer) {\r\n this.zone.runOutsideAngular(() => {\r\n const itemDiv = this.listContainer.nativeElement.querySelector(`.list-item:nth-child(${this.currentfocusedIndex})`);\r\n if (itemDiv) {\r\n itemDiv.scrollIntoView({ behavior: 'auto' });\r\n }\r\n });\r\n }\r\n }\r\n\r\n selectedItemByIndex(index: number) {\r\n if (index < 0) {\r\n index = 0;\r\n }\r\n if (index > this.getItems().length - 1) {\r\n index = this.getItems().length - 1;\r\n }\r\n this.selectItems(this.getItems()[index]);\r\n this.currentfocusedIndex = index;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXSelectBoxComponent } from './selectbox.component';\r\nimport { AXDropdownModule } from '../dropdown/dropdown.module';\r\nimport { AXTextBoxModule } from '../textbox/textbox.module';\r\nimport { AXTranslatorModule, AXScrollModule } from '@acorex/core';\r\nimport { AXCheckBoxModule } from '../checkbox/checkbox.module';\r\nimport { AXLoadingModule } from '../loading/loading.module';\r\nimport { AXSearchBoxModule } from '../searchbox/searchbox.module';\r\nimport { AXSelectBox2Component } from './selectbox2.component';\r\n\r\n\r\nconst COMPONENT = [AXSelectBoxComponent, AXSelectBox2Component];\r\nconst MODULES = [\r\n CommonModule,\r\n AXDropdownModule,\r\n AXTextBoxModule,\r\n AXTranslatorModule,\r\n AXScrollModule,\r\n AXCheckBoxModule,\r\n AXLoadingModule,\r\n AXSearchBoxModule\r\n];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: []\r\n})\r\nexport class AXSelectBoxModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { AXQueryBuilderComponent } from './query-builder.component';\r\nimport { AXButtonModule } from '../button/button.module';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXPanelBoxModule } from '../panel-box/panel-box.module';\r\nimport { AXSelectBoxModule } from '../selectbox/selectbox.module';\r\nimport { AXTextBoxModule } from '../textbox/textbox.module';\r\nimport { AXQueryBuilderRuleComponent } from './query-builder-rule.component';\r\nimport { AXQueryBuilderGroupComponent } from './query-builder-group.component';\r\nimport { AXTranslatorModule } from '@acorex/core';\r\nimport { AXNumberBoxModule } from '../number-box/number-box.module';\r\nimport { AXDataSourceModule } from '../data-source/datasource.module';\r\nimport { AXFormGroupModule } from '../form-group/form-group.module';\r\nimport { AXQueryBuilderPopupComponent } from './query-builder-popup/query-builder-popup.component';\r\nimport { AXLabelModule } from '../label/label.module';\r\nimport { AXCheckBoxModule } from '../checkbox/checkbox.module';\r\nimport { AXValidationModule } from '../validation/validation.module';\r\nimport { AXQueryBuilderService } from './query-builder.service';\r\n\r\nconst MODUELS = [\r\n CommonModule,\r\n AXButtonModule,\r\n AXPanelBoxModule,\r\n AXSelectBoxModule,\r\n AXDataSourceModule,\r\n AXTextBoxModule,\r\n AXNumberBoxModule,\r\n AXFormGroupModule,\r\n AXTranslatorModule,\r\n AXLabelModule,\r\n AXCheckBoxModule,\r\n AXValidationModule\r\n]\r\n\r\n@NgModule({\r\n declarations: [AXQueryBuilderComponent, AXQueryBuilderGroupComponent, AXQueryBuilderRuleComponent, AXQueryBuilderPopupComponent],\r\n imports: [MODUELS],\r\n exports: [AXQueryBuilderComponent],\r\n providers: [AXQueryBuilderService],\r\n entryComponents: [AXQueryBuilderPopupComponent]\r\n})\r\n\r\nexport class AXQueryBuilderModule { }","import { Component, ChangeDetectorRef, ChangeDetectionStrategy, ViewEncapsulation, Output, Input, EventEmitter } from '@angular/core';\r\nimport { AXBaseComponent, AXBaseSizableComponent, AXBaseValueComponent, AXElementSize } from '../base/element.class';\r\nimport { AXValueEvent } from '../base/events.class';\r\n\r\n@Component({\r\n selector: 'ax-switch',\r\n templateUrl: './switch.component.html',\r\n styleUrls: ['./switch.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AXSwitchComponent extends AXBaseComponent implements AXBaseSizableComponent, AXBaseValueComponent<boolean> {\r\n\r\n\r\n @Output()\r\n onValueChanged: EventEmitter<AXValueEvent<boolean>> = new EventEmitter<AXValueEvent<boolean>>();\r\n\r\n @Output()\r\n valueChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n @Input()\r\n tabIndex: number = 0;\r\n\r\n private _value: boolean;\r\n @Input()\r\n public get value(): boolean {\r\n return this._value;\r\n }\r\n public set value(v: boolean) {\r\n if (this._value !== v) {\r\n const oldValue = this._value;\r\n this._value = v;\r\n this.valueChange.emit(v);\r\n this.onValueChanged.emit({\r\n component: this,\r\n oldValue,\r\n value: v\r\n });\r\n }\r\n }\r\n\r\n\r\n @Input()\r\n readonly: boolean;\r\n\r\n @Input()\r\n disabled: boolean;\r\n\r\n @Input()\r\n size: AXElementSize = 'md';\r\n\r\n constructor(protected cdr: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n focus(): void { }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXSwitchComponent } from './switch.component';\r\n\r\n@NgModule({\r\n declarations: [AXSwitchComponent],\r\n imports: [CommonModule, FormsModule],\r\n exports: [AXSwitchComponent],\r\n entryComponents: [AXSwitchComponent],\r\n providers: [],\r\n})\r\nexport class AXSwitchModule {\r\n\r\n}","import { Injectable, EventEmitter } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { AXHtmlUtil } from '@acorex/core';\r\nimport { AXPageClosing, AXPageResult, TAB_META_KEY, AXPageClosedPromise } from '../base/base-page.class';\r\n\r\nexport interface AXTabPage {\r\n title: string;\r\n content: any;\r\n closable?: boolean;\r\n data?: any;\r\n pinned?: boolean;\r\n}\r\n\r\n\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXTabPageService {\r\n\r\n\r\n\r\n tabs: AXTabPage[] = new Array<AXTabPage>();\r\n opened = new Subject<AXTabPage>();\r\n activated = new Subject<AXTabPage>();\r\n closed = new Subject<AXTabPage>();\r\n changed = new Subject();\r\n\r\n\r\n\r\n constructor() { }\r\n\r\n open(content: any, title: string): AXPageClosedPromise;\r\n open(content: any, title: string, data?: any): AXPageClosedPromise;\r\n open(options: AXTabPage): AXPageClosedPromise;\r\n\r\n open(arg1, arg2?, arg3?) {\r\n let newTab: AXTabPage;\r\n if (typeof arg1 === 'object') {\r\n const options = Object.assign({ closable: true }, arg1);\r\n newTab = {\r\n title: options.title,\r\n closable: options.closable,\r\n content: options.content,\r\n data: options.data,\r\n pinned: options.pinned\r\n };\r\n } else {\r\n newTab = {\r\n title: arg2,\r\n closable: true,\r\n content: arg1,\r\n data: arg3,\r\n };\r\n }\r\n newTab[TAB_META_KEY] = {};\r\n newTab[TAB_META_KEY].uid = AXHtmlUtil.getUID();\r\n //\r\n const existTab = this.tabs.find((c) => newTab[TAB_META_KEY].uid && c[TAB_META_KEY].uid === newTab[TAB_META_KEY].uid) ||\r\n this.findExistTab(newTab.content, newTab.data);\r\n //\r\n if (existTab) {\r\n return Promise.resolve(this.active(existTab));\r\n }\r\n this.tabs.push(newTab);\r\n this.tabs\r\n .filter((c) => c[TAB_META_KEY].uid !== newTab[TAB_META_KEY].uid)\r\n .forEach((t) => {\r\n t[TAB_META_KEY].active = false;\r\n });\r\n this.opened.next(newTab);\r\n this.active(newTab);\r\n const promise = new AXPageClosedPromise((resolve) => {\r\n newTab[TAB_META_KEY].close = (e) => {\r\n if (resolve) {\r\n delete e.cancel;\r\n resolve(e);\r\n }\r\n };\r\n });\r\n promise['closeMethod'] = () => { this.close(newTab); };\r\n return promise;\r\n }\r\n\r\n close(tab: AXTabPage) {\r\n const e = { cancel: false };\r\n const closingFunc = tab[TAB_META_KEY].component?.onClosing;\r\n if (closingFunc) {\r\n const res = closingFunc(e);\r\n if (res instanceof Promise) {\r\n res.then(() => {\r\n if (e == null || e.cancel !== true) {\r\n this.doCloseAction(tab, e);\r\n }\r\n });\r\n }\r\n else {\r\n if (e == null || e.cancel !== true) {\r\n this.doCloseAction(tab, e);\r\n }\r\n }\r\n } else {\r\n this.doCloseAction(tab, e);\r\n }\r\n }\r\n\r\n private doCloseAction(tab: AXTabPage, e: AXPageClosing): void {\r\n const currentTab = this.tabs.find((c) => c[TAB_META_KEY].uid == tab[TAB_META_KEY].uid);\r\n if (!currentTab) {\r\n return;\r\n }\r\n const index = this.tabs.indexOf(currentTab);\r\n this.tabs = this.tabs.filter(c => c != currentTab);\r\n const prev = index > 0 ? this.tabs[index - 1] : this.tabs[0];\r\n if (prev) {\r\n this.active(prev);\r\n }\r\n this.closed.next(currentTab);\r\n this.changed.next();\r\n if (currentTab[TAB_META_KEY].close) {\r\n currentTab[TAB_META_KEY].close(e);\r\n }\r\n }\r\n\r\n active(tab: AXTabPage): AXPageResult;\r\n active(uid: string): AXPageResult;\r\n active(): AXPageResult;\r\n active(arg1?): AXPageResult {\r\n if (!arg1) {\r\n return {\r\n sender: this.tabs.find((c) => c[TAB_META_KEY].active === true)\r\n }\r\n }\r\n if (typeof arg1 === 'object') {\r\n const tab = <AXTabPage>arg1;\r\n tab[TAB_META_KEY].active = true;\r\n this.tabs\r\n .filter((c) => c[TAB_META_KEY].uid !== tab[TAB_META_KEY].uid)\r\n .forEach((t) => {\r\n t[TAB_META_KEY].active = false;\r\n });\r\n this.activated.next(tab);\r\n this.changed.next();\r\n return {\r\n sender: tab\r\n }\r\n } else if (typeof arg1 === 'string') {\r\n const tab = this.tabs.find((c) => c[TAB_META_KEY].uid === arg1);\r\n if (tab) {\r\n return this.active(tab);\r\n }\r\n return null;\r\n }\r\n }\r\n\r\n clear(): void {\r\n this.tabs.forEach((c) => {\r\n this.close(c);\r\n });\r\n this.tabs = [];\r\n }\r\n\r\n private findExistTab(component: any, data: any): AXTabPage {\r\n try {\r\n if (!data) {\r\n data = {};\r\n }\r\n const result = this.tabs.find((c: any) =>\r\n c.content === component &&\r\n ((!c.data) ||\r\n JSON.stringify(data) === JSON.stringify(c.data))\r\n );\r\n return result;\r\n } catch (error) {\r\n return null;\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, ViewContainerRef, ComponentFactoryResolver, ElementRef, ComponentRef, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';\r\nimport { AXTabPage, AXTabPageService } from './tab-page.service';\r\nimport { AXRenderService } from '@acorex/core';\r\nimport { AXBasePageComponent, AXPageCloseEvent, TAB_META_KEY } from '../base/base-page.class';\r\nimport { AXLoadingService } from '../loading/loading.service';\r\n\r\n@Component({\r\n selector: 'ax-tab-page-host',\r\n template: `\r\n <div class='ax-loading-host'>\r\n <div class='ax-tab-page-host' >\r\n <div [hidden]=\"isLoading\" style=\"height:100%\" class='ax-tab-page-host-container'>\r\n <ng-template #container></ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n `\r\n})\r\n\r\nexport class AXTabPageHostComponent implements OnInit {\r\n\r\n tab: AXTabPage;\r\n component: AXBasePageComponent;\r\n private componentRef: ComponentRef<any>;\r\n isLoading: boolean;\r\n _loadingId: number;\r\n\r\n @ViewChild('container', { read: ViewContainerRef, static: true })\r\n private container: ViewContainerRef;\r\n\r\n constructor(\r\n private resolver: ComponentFactoryResolver,\r\n private ref: ElementRef<HTMLDivElement>,\r\n private rendererService: AXRenderService,\r\n private tabService: AXTabPageService,\r\n private loadingService: AXLoadingService,\r\n private cdr: ChangeDetectorRef,\r\n ) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.isLoading = true;\r\n }\r\n\r\n async ngAfterViewInit() {\r\n this._loadingId = this.loadingService.show(this.ref.nativeElement.querySelector('.ax-tab-page-host-container'));\r\n //\r\n let data: any = {};\r\n //\r\n let component: any;\r\n if (typeof this.tab.content === 'string') {\r\n const route = await this.rendererService.findLoadedComponentByRoute(this.tab.content, 20);\r\n component = route?.component;\r\n data = Object.assign(data, route.data);\r\n }\r\n else if (typeof this.tab.content === 'function') {\r\n component = this.tab.content;\r\n }\r\n if (component == null) {\r\n // TODO: 404 page component\r\n this.isLoading = false;\r\n console.error(`Invalid page Component! ${this.tab.content}`);\r\n return;\r\n }\r\n //\r\n data = Object.assign(data, this.tab.data);\r\n //\r\n try {\r\n const factory = this.resolver.resolveComponentFactory(component);\r\n this.componentRef = this.container.createComponent(factory);\r\n if (!this.componentRef.instance.onClosed) {\r\n throw Error('The Component must be inherited from AXBasePageComponent!');\r\n }\r\n this.componentRef.instance.onClosed.subscribe((e: AXPageCloseEvent) => {\r\n this.tabService.close(this.tab);\r\n });\r\n //\r\n const com = this.componentRef.instance as any;\r\n //\r\n Object.assign(com, data);\r\n //\r\n this.tab[TAB_META_KEY].component = com;\r\n this.isLoading = false;\r\n this.loadingService.hide(this._loadingId);\r\n this.componentRef.changeDetectorRef.detectChanges();\r\n } catch (error) {\r\n // TODO: 404 page component\r\n console.error(error);\r\n } finally {\r\n //this.isLoading = false;\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.componentRef) {\r\n this.componentRef.hostView.destroy();\r\n this.componentRef.destroy();\r\n this.container.clear();\r\n }\r\n this.loadingService.hide(this._loadingId);\r\n }\r\n}","import { Component, ViewChild, ViewContainerRef, ComponentFactoryResolver, ComponentRef, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';\r\nimport { AXTabPageService } from './tab-page.service';\r\nimport { TAB_META_KEY } from '../base/base-page.class';\r\nimport { AXTabPageHostComponent } from './tab-page-host.component';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'ax-tab-page-renderer',\r\n template: `<template #container></template>`,\r\n host: { 'class': 'ax tab-page-renderer' }\r\n})\r\nexport class AXTabPageRendererComponent {\r\n\r\n childs: ComponentRef<AXTabPageHostComponent>[] = [];\r\n\r\n @ViewChild('container', { read: ViewContainerRef }) container: ViewContainerRef;\r\n\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(\r\n private resolver: ComponentFactoryResolver,\r\n private tabService: AXTabPageService,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n this.subscriptions.push(tabService.activated.subscribe(tab => {\r\n this.childs.forEach((v: ComponentRef<AXTabPageHostComponent>) => {\r\n v.changeDetectorRef.detach();\r\n v.location.nativeElement.hidden = true;\r\n });\r\n const v = this.childs.find(t => (t as any).uid === tab[TAB_META_KEY].uid) as ComponentRef<AXTabPageHostComponent>;\r\n if (v) {\r\n v.location.nativeElement.hidden = false;\r\n v.changeDetectorRef.reattach();\r\n }\r\n else {\r\n try {\r\n const factory = this.resolver.resolveComponentFactory(AXTabPageHostComponent);\r\n const componentRef = this.container.createComponent(factory);\r\n (componentRef as any).uid = tab[TAB_META_KEY].uid;\r\n const host = componentRef.instance as AXTabPageHostComponent;\r\n host.tab = tab;\r\n this.childs.push(componentRef);\r\n setTimeout(() => {\r\n componentRef.changeDetectorRef.detectChanges();\r\n }, 10);\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n }));\r\n\r\n this.subscriptions.push(tabService.closed.subscribe(tab => {\r\n const hostref = this.childs.find(c => (c as any).uid === tab[TAB_META_KEY].uid);\r\n if (hostref) {\r\n hostref.destroy();\r\n }\r\n this.childs = this.childs.filter(c => (c as any).uid !== tab[TAB_META_KEY].uid);\r\n }));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.tabService.clear();\r\n this.subscriptions.forEach(s => {\r\n s.unsubscribe();\r\n });\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXTabPageRendererComponent } from './tab-page-Renderer.component';\r\nimport { AXTabPageService } from './tab-page.service';\r\nimport { AXLoadingModule } from '../loading/loading.module';\r\nimport { AXTabPageHostComponent } from './tab-page-host.component';\r\n\r\n@NgModule({\r\n declarations: [AXTabPageRendererComponent, AXTabPageHostComponent],\r\n imports: [CommonModule, AXLoadingModule],\r\n exports: [AXTabPageRendererComponent],\r\n entryComponents: [AXTabPageRendererComponent, AXTabPageHostComponent],\r\n providers: [AXTabPageService],\r\n})\r\nexport class AXTabPageModule { }","import { Component, OnInit, Input, Output, EventEmitter, ElementRef } from '@angular/core';\r\nimport { AXBaseEvent } from '../base/events.class';\r\n\r\nexport declare class AXTabStripItem {\r\n id: string;\r\n name?: string;\r\n text?: string;\r\n tooltip?: string;\r\n icon?: string;\r\n visible?: boolean;\r\n disable?: boolean;\r\n data?: any;\r\n style?: string;\r\n active?: boolean;\r\n}\r\n\r\nexport class AXTabStripChangedEvent extends AXBaseEvent {\r\n seledtedTab: AXTabStripItem;\r\n}\r\n\r\n@Component({\r\n selector: 'ax-tab-strip',\r\n templateUrl: './tab-strip.component.html'\r\n})\r\nexport class AXTabStripComponent implements OnInit {\r\n constructor(private ref: ElementRef) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n @Input()\r\n items: AXTabStripItem[] = [];\r\n\r\n @Output()\r\n onTabChanged: EventEmitter<AXTabStripChangedEvent> = new EventEmitter<AXTabStripChangedEvent>();\r\n\r\n handleClick(i: AXTabStripItem) {\r\n this.items.forEach((c) => (c.active = false));\r\n i.active = true;\r\n this.onTabChanged.emit({\r\n component: this,\r\n seledtedTab: i,\r\n htmlElement: this.ref.nativeElement\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXTabStripComponent } from './tab-strip.component';\r\n\r\n@NgModule({\r\n declarations: [AXTabStripComponent],\r\n imports: [CommonModule],\r\n exports: [AXTabStripComponent],\r\n providers: []\r\n})\r\nexport class AXTabStripModule {}\r\n","/**\r\n * This directive is used as an anchor to get access\r\n * to the ViewContainerRef which here is exposed via\r\n * the public member `viewContainer`\r\n *\r\n * Theres an ALTERNATIVE to explicitly using the anchor directive.\r\n * Read in the blog post\r\n */\r\n\r\nimport { Directive, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[dynamic-tabs]'\r\n})\r\nexport class DynamicTabsDirective {\r\n constructor(public viewContainer: ViewContainerRef) {}\r\n}\r\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\r\n@Component({\r\n selector: 'ax-tab',\r\n templateUrl: './tab.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXTabComponent {\r\n @Input() caption: string;\r\n @Input() name: string;\r\n @Input() active = false;\r\n @Input() isCloseable = false;\r\n @Input() template: any;\r\n @Input() dataContext: any;\r\n @Input() icon: string;\r\n}\r\n","/**\r\n * The main component that renders single TabComponent\r\n * instances.\r\n */\r\n\r\nimport {\r\n Component,\r\n ContentChildren,\r\n QueryList,\r\n AfterContentInit,\r\n ViewChild,\r\n ComponentFactoryResolver,\r\n ViewEncapsulation,\r\n Attribute,\r\n Output,\r\n EventEmitter,\r\n ElementRef\r\n} from '@angular/core';\r\n\r\nimport { AXTabComponent } from './tab.component';\r\nimport { DynamicTabsDirective } from './dynamic-tabs.directive';\r\nimport { AXDataEvent } from '../base/events.class';\r\n\r\n@Component({\r\n selector: 'ax-tab-view',\r\n templateUrl: './tab-view.component.html',\r\n styleUrls: ['./tab-view.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXTabViewComponent implements AfterContentInit {\r\n dynamicTabs: AXTabComponent[] = [];\r\n\r\n @ContentChildren(AXTabComponent) tabs: QueryList<AXTabComponent>;\r\n\r\n @ViewChild(DynamicTabsDirective) dynamicTabPlaceholder: DynamicTabsDirective;\r\n\r\n @Output()\r\n onActiveTab: EventEmitter<AXDataEvent<any>> = new EventEmitter<AXDataEvent<any>>();\r\n /*\r\n Alternative approach of using an anchor directive\r\n would be to simply get hold of a template variable\r\n as follows\r\n */\r\n // @ViewChild('container', {read: ViewContainerRef}) dynamicTabPlaceholder;\r\n\r\n constructor(private ref: ElementRef, private _componentFactoryResolver: ComponentFactoryResolver, @Attribute('fullWidth') public fullWidth: boolean = false) { }\r\n\r\n // contentChildren are set\r\n ngAfterContentInit() {\r\n // get all active tabs\r\n const activeTabs = this.tabs.filter((tab) => tab.active);\r\n\r\n // if there is no active tab set, activate the first\r\n if (activeTabs.length === 0) {\r\n this.selectTab(this.tabs.first);\r\n }\r\n }\r\n\r\n openTab(title: string, template, isCloseable = false, icon = null, data = null) {\r\n // get a component factory for our AXTabComponent\r\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(AXTabComponent);\r\n\r\n // fetch the view container reference from our anchor directive\r\n const viewContainerRef = this.dynamicTabPlaceholder.viewContainer;\r\n\r\n // alternatively...\r\n // let viewContainerRef = this.dynamicTabPlaceholder;\r\n\r\n // create a component instance\r\n const componentRef = viewContainerRef.createComponent(componentFactory);\r\n\r\n // set the according properties on our component instance\r\n const instance: AXTabComponent = componentRef.instance as AXTabComponent;\r\n instance.caption = title;\r\n instance.template = template;\r\n instance.dataContext = data;\r\n instance.isCloseable = isCloseable;\r\n instance.icon = icon;\r\n\r\n // remember the dynamic component for rendering the\r\n // tab navigation headers\r\n this.dynamicTabs.push(componentRef.instance as AXTabComponent);\r\n\r\n //componentRef.changeDetectorRef.detectChanges();\r\n\r\n // set it active\r\n this.selectTab(this.dynamicTabs[this.dynamicTabs.length - 1]);\r\n }\r\n\r\n selectTab(tab: AXTabComponent) {\r\n // deactivate all tabs\r\n this.tabs.toArray().forEach((tab) => (tab.active = false));\r\n this.dynamicTabs.forEach((tab) => (tab.active = false));\r\n\r\n // activate the tab the user has clicked on.\r\n tab.active = true;\r\n this.onActiveTab.emit({ component: this, data: tab, htmlElement: this.ref.nativeElement })\r\n\r\n }\r\n\r\n closeTab(tab: AXTabComponent) {\r\n for (let i = 0; i < this.dynamicTabs.length; i++) {\r\n if (this.dynamicTabs[i] === tab) {\r\n // remove the tab from our array\r\n this.dynamicTabs.splice(i, 1);\r\n\r\n // destroy our dynamically created component again\r\n const viewContainerRef = this.dynamicTabPlaceholder.viewContainer;\r\n // let viewContainerRef = this.dynamicTabPlaceholder;\r\n viewContainerRef.remove(i);\r\n\r\n // set tab index to 1st one\r\n this.selectTab(this.tabs.first);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n closeActiveTab() {\r\n const activeTabs = this.dynamicTabs.filter((tab) => tab.active);\r\n if (activeTabs.length > 0) {\r\n // close the 1st active tab (should only be one at a time)\r\n this.closeTab(activeTabs[0]);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXTabComponent } from './tab.component';\r\nimport { AXTabViewComponent } from './tab-view.component';\r\nimport { DynamicTabsDirective } from './dynamic-tabs.directive';\r\n@NgModule({\r\n declarations: [AXTabComponent, AXTabViewComponent, DynamicTabsDirective],\r\n imports: [CommonModule],\r\n exports: [AXTabComponent, AXTabViewComponent, DynamicTabsDirective],\r\n providers: []\r\n})\r\nexport class AXTabViewModule {}\r\n","import { Component, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, ViewChild, ElementRef, Input } from '@angular/core';\r\nimport { AXBaseTextComponent, AXValidatableComponent } from '../base/element.class';\r\n\r\n@Component({\r\n selector: 'ax-text-area',\r\n templateUrl: './textarea.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { style: 'display: contents;' },\r\n providers: [{ provide: AXValidatableComponent, useExisting: AXTextAreaComponent }]\r\n})\r\nexport class AXTextAreaComponent extends AXBaseTextComponent {\r\n constructor(protected cdr: ChangeDetectorRef, ref: ElementRef) {\r\n super(cdr, ref);\r\n }\r\n\r\n @Input()\r\n rows: number = 0;\r\n @Input()\r\n cols: number = 0;\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXTextAreaComponent } from './textarea.component';\r\n\r\nconst COMPONENT = [AXTextAreaComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXTextAreaModule { }","import {\r\n Component,\r\n OnInit,\r\n ChangeDetectorRef,\r\n ElementRef,\r\n Input,\r\n ViewChild,\r\n ChangeDetectionStrategy,\r\n EventEmitter,\r\n Output,\r\n ContentChild\r\n\r\n} from '@angular/core';\r\nimport { AXBaseTextComponent, AXValidatableComponent } from '../base/element.class';\r\nimport { _ } from 'ag-grid-community';\r\nimport { AXValueEvent } from '../base/events.class';\r\nimport { AXTranslator } from '@acorex/core';\r\n\r\nexport class AXTimePickerItemChangedEvent {\r\n minute?: number;\r\n second?: number;\r\n hour?: number;\r\n time: string;\r\n\r\n}\r\nexport class AXTimePickerChangedEvent extends AXValueEvent<AXTimePickerItemChangedEvent> { }\r\n\r\n@Component({\r\n selector: 'ax-time-picker',\r\n templateUrl: './time-picker.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { style: 'display: contents;' },\r\n providers: [{ provide: AXValidatableComponent, useExisting: AXTimePickerComponent }]\r\n})\r\nexport class AXTimePickerComponent extends AXBaseTextComponent implements OnInit {\r\n @Output()\r\n onValueChanged: EventEmitter<AXTimePickerChangedEvent> = new EventEmitter<AXTimePickerChangedEvent>();\r\n\r\n // @ViewChild('input', { static: true })\r\n // @ContentChild('input', { static: true })\r\n // input: ElementRef<HTMLInputElement>;\r\n\r\n @Input()\r\n timeType: any;\r\n\r\n type: string = 'HHmm';\r\n @Input()\r\n showCurentTime: boolean = false;\r\n\r\n clearDisabled: boolean = true;\r\n HHmmss: any = [/[0-2]/, /[0-9]/, ':', /[0-5]/, /[0-9]/, ':', /[0-5]/, /[0-9]/];\r\n HHmm: any = [/[0-2]/, /[0-9]/, ':', /[0-5]/, /[0-9]/];\r\n HH: any = [/[0-2]/, /[0-9]/];\r\n hhmmss: any = [/[0-1]/, /[0-9]/, ':', /[0-5]/, /[0-9]/, ':', /[0-5]/, /[0-9]/];\r\n hhmm: any = [/[0-1]/, /[0-9]/, ':', /[0-5]/, /[0-9]/];\r\n hh: any = [/[0-1]/, /[0-9]/];\r\n // TODO: apply am pm from locale\r\n hhmmssam: any = [/[0-1]/, /[0-9]/, ':', /[0-5]/, /[0-9]/, ':', /[0-5]/, /[0-9]/, ' ', /[a|p|ق|ب]/, AXTranslator.get('dateTime.dayTime.m')];\r\n hhmmam: any = [/[0-1]/, /[0-9]/, ':', /[0-5]/, /[0-9]/, ' ', /[a|p|ق|ب]/, AXTranslator.get('dateTime.dayTime.m')];\r\n hham: any = [/[0-1]/, /[0-9]/, ' ', /[a|p|ق|ب]/, AXTranslator.get('dateTime.dayTime.m')];\r\n textValue: string = '';\r\n\r\n valueHam: string = '-- ' + AXTranslator.get('dateTime.dayTime.am');\r\n valueMam: string = '--:-- ' + AXTranslator.get('dateTime.dayTime.am');\r\n valueSam: string = '--:--:-- ' + AXTranslator.get('dateTime.dayTime.am');\r\n\r\n\r\n private _values: string;\r\n public get value(): string {\r\n return this._values;\r\n }\r\n public set value(v: string) {\r\n if (v === '' || v == null || v === '--:--:--' || v === '--:--' || v === '--' || v === this.valueSam || v === this.valueMam || v === this.valueHam) {\r\n this.clearDisabled = false;\r\n\r\n const old = this._values;\r\n switch (this.type) {\r\n case 'HHmmss':\r\n this.textValue = '--:--:--';\r\n break;\r\n case 'HHmm':\r\n this.textValue = '--:--';\r\n break;\r\n case 'HH':\r\n this.textValue = '--';\r\n break;\r\n case 'hhmmss':\r\n this.textValue = '--:--:--';\r\n break;\r\n case 'hhmm':\r\n this.textValue = '--:--';\r\n break;\r\n case 'hh':\r\n this.textValue = '--';\r\n break;\r\n case 'hhmmssam':\r\n this.textValue = this.valueSam;\r\n break;\r\n case 'hhmmam':\r\n this.textValue = this.valueMam;\r\n break;\r\n case 'hham':\r\n this.textValue = this.valueHam;\r\n break;\r\n }\r\n\r\n this._values = null;\r\n if (v !== old) {\r\n this.valueChange.emit(null);\r\n this.onValueChanged.emit({\r\n component: this,\r\n value: { hour: null, minute: null, second: null, time: null },\r\n oldValue: { time: old },\r\n htmlElement: this.ref.nativeElement\r\n });\r\n }\r\n } else {\r\n this.clearDisabled = true;\r\n if (this._values && v) {\r\n const old = this._values;\r\n const ind1 = v.charAt(0);\r\n const ind2 = v.charAt(1);\r\n const ind3 = v.charAt(2);\r\n const ind4 = v.charAt(3);\r\n const ind5 = v.charAt(4);\r\n const ind6 = v.charAt(5);\r\n const ind7 = v.charAt(6);\r\n const ind8 = v.charAt(7);\r\n const ind9 = v.charAt(8);\r\n const ind10 = v.charAt(9);\r\n\r\n const indOld4 = old.charAt(9);\r\n const indOld7 = old.charAt(9);\r\n const indOld10 = old.charAt(9);\r\n\r\n // handle hhmmssAm\r\n if (ind1 === '-' && ind2 !== '-' && this.timeType.mask === this.hhmmssam) {\r\n this.textValue = '0' + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + ind10 + AXTranslator.get('dateTime.dayTime.m');\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 2);\r\n this.cursorPosition = 2;\r\n }, 0);\r\n }\r\n if (ind4 === '-' && ind5 !== '-' && this.timeType.mask === this.hhmmssam) {\r\n this.textValue = ind1 + ind2 + ind3 + '0' + ind5 + ind6 + ind7 + ind8 + ind9 + ind10 + AXTranslator.get('dateTime.dayTime.m');\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 5);\r\n this.cursorPosition = 5;\r\n }, 0);\r\n }\r\n if (ind7 === '-' && ind8 !== '-' && this.timeType.mask === this.hhmmssam) {\r\n this.textValue = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + '0' + ind8 + ind9 + ind10 + AXTranslator.get('dateTime.dayTime.m');\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 8);\r\n this.cursorPosition = 8;\r\n }, 0);\r\n }\r\n if (indOld10 === '-' && this.timeType.mask === this.hhmmssam) {\r\n this.textValue = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + AXTranslator.get('dateTime.dayTime.am');\r\n }\r\n\r\n //\r\n if (ind1 === '-' && ind2 !== '-' && this.timeType.mask === this.hhmmam) {\r\n this.textValue = '0' + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + AXTranslator.get('dateTime.dayTime.m');\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 2);\r\n this.cursorPosition = 2;\r\n }, 0);\r\n }\r\n if (ind4 === '-' && ind5 !== '-' && this.timeType.mask === this.hhmmam) {\r\n this.textValue = ind1 + ind2 + ind3 + '0' + ind5 + ind6 + ind7 + AXTranslator.get('dateTime.dayTime.m');\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 5);\r\n this.cursorPosition = 5;\r\n }, 0);\r\n }\r\n if (indOld7 === '-' && this.timeType.mask === this.hhmmam) {\r\n this.textValue = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + AXTranslator.get('dateTime.dayTime.am');\r\n }\r\n\r\n //\r\n if (ind1 === '-' && ind2 !== '-' && this.timeType.mask === this.hham) {\r\n this.textValue = '0' + ind2 + ind3 + ind4 + AXTranslator.get('dateTime.dayTime.m');\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 2);\r\n this.cursorPosition = 2;\r\n }, 0);\r\n }\r\n if (indOld4 === '-' && this.timeType.mask === this.hham) {\r\n this.textValue = ind1 + ind2 + ind3 + AXTranslator.get('dateTime.dayTime.am');\r\n }\r\n\r\n //\r\n if (ind1 === '-' && ind2 !== '-' && (this.timeType.mask === this.hhmmss || this.timeType.mask === this.HHmmss)) {\r\n this.textValue = '0' + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8;\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 2);\r\n this.cursorPosition = 2;\r\n }, 0);\r\n }\r\n if (ind4 === '-' && ind5 !== '-' && (this.timeType.mask === this.hhmmss || this.timeType.mask === this.HHmmss)) {\r\n this.textValue = ind1 + ind2 + ind3 + '0' + ind5 + ind6 + ind7 + ind8;\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 6);\r\n this.cursorPosition = 6;\r\n }, 0);\r\n }\r\n if (ind7 === '-' && ind8 !== '-' && (this.timeType.mask === this.hhmmss || this.timeType.mask === this.HHmmss)) {\r\n this.textValue = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + '0' + ind8;\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 9);\r\n this.cursorPosition = 9;\r\n }, 0);\r\n }\r\n\r\n //\r\n if (ind1 === '-' && ind2 !== '-' && (this.timeType.mask === this.hhmm || this.timeType.mask === this.HHmm)) {\r\n this.textValue = '0' + ind2 + ind3 + ind4 + ind5;\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 2);\r\n this.cursorPosition = 2;\r\n }, 0);\r\n }\r\n if (ind4 === '-' && ind5 !== '-' && (this.timeType.mask === this.hhmm || this.timeType.mask === this.HHmm)) {\r\n this.textValue = ind1 + ind2 + ind3 + '0' + ind5;\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 5);\r\n this.cursorPosition = 5;\r\n }, 0);\r\n }\r\n\r\n //\r\n if (ind1 === '-' && ind2 !== '-' && (this.timeType.mask === this.hh || this.timeType.mask === this.HH)) {\r\n this.textValue = '0' + ind2;\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 2);\r\n this.cursorPosition = 2;\r\n }, 0);\r\n }\r\n }\r\n if (v !== this._values) {\r\n const old = this._values;\r\n this.textValue = v;\r\n this._values = (v && v.indexOf('-') === -1) ? v : null;\r\n if (v.indexOf('-') === -1) {\r\n this.valueChange.emit(v);\r\n this.onValueChanged.emit({\r\n component: this,\r\n value: {\r\n time: v,\r\n hour: Number(v[0] + v[1]),\r\n minute: v[3] && v[3] !== AXTranslator.get('dateTime.dayTime.a') && v[3] !== AXTranslator.get('dateTime.dayTime.p') ? Number(v[3] + v[4]) : null,\r\n second: v[6] && v[6] !== AXTranslator.get('dateTime.dayTime.a') && v[6] !== AXTranslator.get('dateTime.dayTime.p') ? Number(v[6] + v[7]) : null\r\n },\r\n oldValue: { time: old },\r\n htmlElement: this.ref.nativeElement\r\n });\r\n this.cdr.detectChanges();\r\n this.clearValidationStyle(this.input.nativeElement);\r\n }\r\n }\r\n }\r\n }\r\n\r\n cursorPosition: number = 0;\r\n\r\n constructor(protected cdr: ChangeDetectorRef, ref: ElementRef) {\r\n super(cdr, ref);\r\n \r\n this.timeType = 'HHmm';\r\n }\r\n clearValue() {\r\n this.clear();\r\n this.handleInputFocus();\r\n }\r\n\r\n ngOnInit(): void {\r\n switch (this.timeType) {\r\n case 'HHmmss':\r\n this.type = 'HHmmss';\r\n this.timeType = {\r\n guide: true,\r\n showMask: true,\r\n mask: this.HHmmss,\r\n keepCharPositions: true,\r\n placeholderChar: '-'\r\n };\r\n this.textValue = this.value ? this.value : '--:--:--';\r\n break;\r\n case 'HHmm':\r\n this.type = 'HHmm';\r\n this.timeType = {\r\n guide: true,\r\n showMask: true,\r\n mask: this.HHmm,\r\n keepCharPositions: true,\r\n placeholderChar: '-'\r\n };\r\n this.textValue = this.value ? this.value : '--:--';\r\n break;\r\n case 'HH':\r\n this.type = 'HH';\r\n this.timeType = {\r\n guide: true,\r\n showMask: true,\r\n mask: this.HH,\r\n keepCharPositions: true,\r\n placeholderChar: '-'\r\n };\r\n this.textValue = this.value ? this.value : '--';\r\n break;\r\n case 'hhmmss':\r\n this.type = 'hhmmss';\r\n this.timeType = {\r\n guide: true,\r\n showMask: true,\r\n mask: this.hhmmss,\r\n keepCharPositions: true,\r\n placeholderChar: '-'\r\n };\r\n this.textValue = this.value ? this.value : '--:--:--';\r\n break;\r\n case 'hhmm':\r\n this.type = 'hhmm';\r\n this.timeType = {\r\n guide: true,\r\n showMask: true,\r\n mask: this.hhmm,\r\n keepCharPositions: true,\r\n placeholderChar: '-'\r\n };\r\n this.textValue = this.value ? this.value : '--:--';\r\n break;\r\n case 'hh':\r\n this.type = 'hh';\r\n\r\n this.timeType = {\r\n guide: true,\r\n showMask: true,\r\n mask: this.hh,\r\n keepCharPositions: true,\r\n placeholderChar: '-'\r\n };\r\n this.textValue = this.value ? this.value : '--';\r\n break;\r\n case 'hhmmssam':\r\n this.type = 'hhmmssam';\r\n\r\n this.timeType = {\r\n guide: true,\r\n showMask: true,\r\n mask: this.hhmmssam,\r\n keepCharPositions: true,\r\n placeholderChar: '-'\r\n };\r\n this.textValue = this.value ? this.value : this.valueSam;\r\n break;\r\n case 'hhmmam':\r\n this.type = 'hhmmam';\r\n\r\n this.timeType = {\r\n guide: true,\r\n showMask: true,\r\n mask: this.hhmmam,\r\n keepCharPositions: true,\r\n placeholderChar: '-'\r\n };\r\n this.textValue = this.value ? this.value : this.valueMam;\r\n\r\n break;\r\n case 'hham':\r\n this.type = 'hham';\r\n\r\n this.timeType = {\r\n guide: true,\r\n showMask: true,\r\n mask: this.hham,\r\n keepCharPositions: true,\r\n placeholderChar: '-'\r\n };\r\n this.textValue = this.value ? this.value : this.valueHam;\r\n break;\r\n default:\r\n this.type = 'HHmm';\r\n this.timeType = {\r\n guide: true,\r\n showMask: true,\r\n mask: this.HHmm,\r\n keepCharPositions: true,\r\n placeholderChar: '-'\r\n };\r\n this.textValue = this.value ? this.value : '--:--';\r\n break;\r\n\r\n }\r\n if (this.showCurentTime === true) {\r\n const hour = new Date().getHours() > 10 ? new Date().getHours() : '0' + new Date().getHours();\r\n let amHour: any;\r\n\r\n if (new Date().getHours() > 10) {\r\n if (new Date().getHours() > 12) {\r\n if (new Date().getHours() - 12 < 10) {\r\n amHour = '0' + (new Date().getHours() - 12);\r\n } else {\r\n amHour = new Date().getHours();\r\n }\r\n } else {\r\n amHour = new Date().getHours();\r\n }\r\n } else {\r\n amHour = '0' + new Date().getHours();\r\n }\r\n\r\n const min = new Date().getMinutes() > 9 ? new Date().getMinutes() : '0' + new Date().getMinutes();\r\n const sec = new Date().getSeconds() > 9 ? new Date().getSeconds() : '0' + new Date().getSeconds();\r\n if (this.type === 'hh' || this.type === 'hhmm' || this.type === 'hhmmss' || this.type === 'hhmmssam') {\r\n if (hour >= 12) {\r\n this.value = amHour + ':' + min + ':' + sec + ' ' + AXTranslator.get('dateTime.dayTime.pm');\r\n } else {\r\n this.value = amHour + ':' + min + ':' + sec + ' ' + AXTranslator.get('dateTime.dayTime.am');\r\n }\r\n } else if (this.type === 'hham') {\r\n if (hour >= 12) {\r\n this.value = amHour + ' ' + AXTranslator.get('dateTime.dayTime.pm');\r\n } else {\r\n this.value = amHour + ' ' + AXTranslator.get('dateTime.dayTime.am');\r\n }\r\n } else if (this.type === 'hhmmam') {\r\n if (hour >= 12) {\r\n this.value = amHour + ':' + min + ' ' + AXTranslator.get('dateTime.dayTime.pm');\r\n } else {\r\n this.value = amHour + ':' + min + ' ' + AXTranslator.get('dateTime.dayTime.am');\r\n }\r\n } else {\r\n this.value = hour + ':' + min + ':' + sec;\r\n }\r\n }\r\n }\r\n\r\n onStartfocus() {\r\n this.input.nativeElement.style.caretColor = 'transparent';\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 0);\r\n this.cursorPosition = 0;\r\n this.input.nativeElement.style.caretColor = 'auto';\r\n }, 0);\r\n }\r\n\r\n handleInputFocus() {\r\n this.onStartfocus();\r\n this.input.nativeElement.focus();\r\n }\r\n handleInputBlur(e) {\r\n if (this.textValue.indexOf('-') !== -1) {\r\n switch (this.type) {\r\n case 'HHmmss':\r\n this.textValue = '--:--:--';\r\n break;\r\n case 'HHmm':\r\n this.textValue = '--:--';\r\n break;\r\n case 'HH':\r\n this.textValue = '--';\r\n break;\r\n case 'hhmmss':\r\n this.textValue = '--:--:--';\r\n break;\r\n case 'hhmm':\r\n this.textValue = '--:--';\r\n break;\r\n case 'hh':\r\n this.textValue = '--';\r\n break;\r\n case 'hhmmssam':\r\n this.textValue = this.valueSam;\r\n break;\r\n case 'hhmmam':\r\n this.textValue = this.valueMam;\r\n break;\r\n case 'hham':\r\n this.textValue = this.valueHam;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n handleKeyPress(event: any) {\r\n const inputChar = String.fromCharCode(event.charCode);\r\n const firstChar = this.textValue.charAt(0);\r\n const secondChar = this.textValue.charAt(1);\r\n\r\n setTimeout(() => {\r\n if (this.input.nativeElement.selectionStart || this.input.nativeElement.selectionStart === 0) {\r\n this.cursorPosition = this.input.nativeElement.selectionStart;\r\n // this.cursorPosition += 1 ;\r\n }\r\n }, 0);\r\n\r\n if (firstChar === '2') {\r\n if (secondChar === '' || this.textValue.charAt(1) >= '4' || this.cursorPosition < 3) {\r\n if (inputChar >= '4') {\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n if (\r\n this.timeType.mask === this.hhmmss ||\r\n this.timeType.mask === this.hhmm ||\r\n this.timeType.mask === this.hh ||\r\n this.timeType.mask === this.hhmmssam ||\r\n this.timeType.mask === this.hhmmam ||\r\n this.timeType.mask === this.hham\r\n ) {\r\n if (firstChar === '1') {\r\n if (secondChar === '' || this.textValue.charAt(1) >= '3' || this.cursorPosition < 3) {\r\n if (inputChar >= '3') {\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n }\r\n if (inputChar === '-') {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n handleKeyUp(event: KeyboardEvent) {\r\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\r\n this.input.nativeElement.style.caretColor = 'auto';\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n // up & down button\r\n if (event.key === 'ArrowUp') {\r\n this.setCaret();\r\n }\r\n if (event.key === 'ArrowDown') {\r\n this.setCaret();\r\n }\r\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\r\n event.preventDefault();\r\n return false;\r\n }\r\n\r\n // left & right Button\r\n if (event.key === 'ArrowLeft' || event.key === 'ArrowRight') {\r\n if (this.input.nativeElement.selectionStart || this.input.nativeElement.selectionStart === 0) {\r\n this.cursorPosition = this.input.nativeElement.selectionStart;\r\n }\r\n }\r\n\r\n // home button\r\n if (event.key === 'Home') {\r\n this.cursorPosition = 0;\r\n }\r\n\r\n // end button\r\n if (event.key === 'End') {\r\n if (this.timeType.mask === this.hhmmssam || this.timeType.mask === this.hhmmam || this.timeType.mask === this.hham) {\r\n if (this.timeType.mask === this.hhmmssam) {\r\n this.cursorPosition = 9;\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, this.cursorPosition);\r\n this.input.nativeElement.style.caretColor = 'auto';\r\n }, 0);\r\n }\r\n if (this.timeType.mask === this.hhmmam) {\r\n this.cursorPosition = 6;\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, this.cursorPosition);\r\n this.input.nativeElement.style.caretColor = 'auto';\r\n }, 0);\r\n }\r\n if (this.timeType.mask === this.hham) {\r\n this.cursorPosition = 3;\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, this.cursorPosition);\r\n this.input.nativeElement.style.caretColor = 'auto';\r\n }, 0);\r\n }\r\n } else {\r\n this.cursorPosition = this.textValue.length;\r\n }\r\n }\r\n\r\n // backspace Control\r\n if (event.key === 'Backspace') {\r\n const ind1 = this.textValue.charAt(0);\r\n const ind2 = this.textValue.charAt(1);\r\n const ind3 = this.textValue.charAt(2);\r\n const ind4 = this.textValue.charAt(3);\r\n const ind5 = this.textValue.charAt(4);\r\n const ind6 = this.textValue.charAt(5);\r\n const ind7 = this.textValue.charAt(6);\r\n const ind8 = this.textValue.charAt(7);\r\n const ind9 = this.textValue.charAt(8);\r\n const ind10 = this.textValue.charAt(9);\r\n if (this.timeType.mask === this.hhmmssam) {\r\n if (ind10 === '-') {\r\n this.textValue = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + AXTranslator.get('dateTime.dayTime.am');\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 0);\r\n this.cursorPosition = 0;\r\n }, 0);\r\n }\r\n }\r\n if (this.timeType.mask === this.hhmmam) {\r\n if (ind7 === '-') {\r\n this.textValue = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + AXTranslator.get('dateTime.dayTime.am');\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 0);\r\n this.cursorPosition = 0;\r\n }, 0);\r\n }\r\n }\r\n if (this.timeType.mask === this.hham) {\r\n if (ind4 === '-') {\r\n this.textValue = ind1 + ind2 + ind3 + AXTranslator.get('dateTime.dayTime.am');\r\n setTimeout(() => {\r\n this.setCaretPosition(this.input.nativeElement, 0);\r\n this.cursorPosition = 0;\r\n }, 0);\r\n }\r\n }\r\n\r\n if (this.textValue.length <= 0) {\r\n this.cursorPosition = 0;\r\n } else {\r\n this.cursorPosition -= 1;\r\n }\r\n }\r\n }\r\n\r\n handleKeyDown(event: KeyboardEvent) {\r\n if (event.key === 'End') {\r\n if (this.timeType.mask === this.hhmmssam || this.timeType.mask === this.hhmmam || this.timeType.mask === this.hham) {\r\n this.input.nativeElement.style.caretColor = 'transparent';\r\n } else {\r\n this.input.nativeElement.style.caretColor = 'auto';\r\n }\r\n }\r\n\r\n let newValue = this.textValue;\r\n\r\n const ind1 = newValue.charAt(0);\r\n const ind2 = newValue.charAt(1);\r\n const ind3 = this.textValue.charAt(2);\r\n const ind4 = this.textValue.charAt(3);\r\n const ind5 = this.textValue.charAt(4);\r\n const ind6 = this.textValue.charAt(5);\r\n const ind7 = this.textValue.charAt(6);\r\n const ind8 = this.textValue.charAt(7);\r\n const ind9 = this.textValue.charAt(8);\r\n const ind10 = this.textValue.charAt(9);\r\n const ind11 = this.textValue.charAt(10);\r\n\r\n // up key\r\n if (event.key === 'ArrowUp') {\r\n // hour\r\n if (this.cursorPosition <= 2) {\r\n const hourind = ind1 + ind2;\r\n const newHour = +hourind + 1;\r\n newValue = newHour.toString();\r\n if (\r\n this.timeType.mask === this.hhmmss ||\r\n this.timeType.mask === this.hhmm ||\r\n this.timeType.mask === this.hh ||\r\n this.timeType.mask === this.hhmmssam ||\r\n this.timeType.mask === this.hhmmam ||\r\n this.timeType.mask === this.hham\r\n ) {\r\n if (hourind === '--') {\r\n newValue = '0';\r\n }\r\n if (ind1 !== '-' && hourind === ind1 + '-') {\r\n newValue = '0';\r\n }\r\n if (ind2 !== '-' && hourind === '-' + ind2) {\r\n newValue = '0';\r\n }\r\n if (+newValue > 12) {\r\n newValue = '01';\r\n } else if (+newValue < 10) {\r\n newValue = '0' + newValue;\r\n }\r\n } else {\r\n if (hourind === '--') {\r\n newValue = '0';\r\n }\r\n if (ind1 !== '-' && hourind === ind1 + '-') {\r\n newValue = '0';\r\n }\r\n if (ind2 !== '-' && hourind === '-' + ind2) {\r\n newValue = '0';\r\n }\r\n if (+newValue > 23) {\r\n newValue = '00';\r\n } else if (+newValue < 10) {\r\n newValue = '0' + newValue;\r\n }\r\n }\r\n const afterHourind = ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + ind10 + ind11;\r\n const hour = newValue.toString() + afterHourind;\r\n this.textValue = hour;\r\n }\r\n // minute\r\n if (this.cursorPosition >= 3 && this.cursorPosition <= 5) {\r\n const hourind = ind4 + ind5;\r\n const newHour = +hourind + 1;\r\n\r\n newValue = newHour.toString();\r\n if (hourind === '--') {\r\n newValue = '0';\r\n }\r\n if (ind4 !== '-' && hourind === ind4 + '-') {\r\n newValue = '0';\r\n }\r\n if (ind5 !== '-' && hourind === '-' + ind5) {\r\n newValue = '0';\r\n }\r\n if (+newValue > 59) {\r\n newValue = '00';\r\n } else if (+newValue < 10) {\r\n newValue = '0' + newValue;\r\n }\r\n const beforeHourind = ind1 + ind2 + ind3;\r\n const afterHourind = ind6 + ind7 + ind8 + ind9 + ind10 + ind11;\r\n const minute = beforeHourind + newValue.toString() + afterHourind;\r\n this.textValue = minute;\r\n }\r\n\r\n // second\r\n if (this.cursorPosition >= 6 && this.cursorPosition <= 8) {\r\n const secondind = ind7 + ind8;\r\n const newSecond = +secondind + 1;\r\n\r\n newValue = newSecond.toString();\r\n if (secondind === '--') {\r\n newValue = '0';\r\n }\r\n if (ind7 !== '-' && secondind === ind7 + '-') {\r\n newValue = '0';\r\n }\r\n if (ind8 !== '-' && secondind === '-' + ind8) {\r\n newValue = '0';\r\n }\r\n if (+newValue > 59) {\r\n newValue = '00';\r\n } else if (+newValue < 10) {\r\n newValue = '0' + newValue;\r\n }\r\n const beforeHourind = ind1 + ind2 + ind3 + ind4 + ind5 + ind6;\r\n const afterHourind = ind9 + ind10 + ind11;\r\n const second = beforeHourind + newValue.toString() + afterHourind;\r\n this.textValue = second;\r\n }\r\n\r\n // type am/PM\r\n if (this.timeType.mask === this.hhmmssam) {\r\n if (this.cursorPosition > 8) {\r\n let typeind = ind10.toString();\r\n\r\n const beforeHourind = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9;\r\n const afterHourind = ind11;\r\n\r\n if (ind10 === AXTranslator.get('dateTime.dayTime.p')) {\r\n typeind = AXTranslator.get('dateTime.dayTime.a');\r\n } else if (ind10 === AXTranslator.get('dateTime.dayTime.a')) {\r\n typeind = AXTranslator.get('dateTime.dayTime.p');\r\n }\r\n this.textValue = beforeHourind + typeind + afterHourind;\r\n }\r\n }\r\n if (this.timeType.mask === this.hhmmam) {\r\n if (this.cursorPosition >= 6) {\r\n let typeind = ind7.toString();\r\n\r\n const beforeHourind = ind1 + ind2 + ind3 + ind4 + ind5 + ind6;\r\n const afterHourind = ind8;\r\n\r\n if (ind7 === AXTranslator.get('dateTime.dayTime.p')) {\r\n typeind = AXTranslator.get('dateTime.dayTime.a');\r\n } else if (ind7 === AXTranslator.get('dateTime.dayTime.a')) {\r\n typeind = AXTranslator.get('dateTime.dayTime.p');\r\n }\r\n this.textValue = beforeHourind + typeind + afterHourind;\r\n }\r\n }\r\n if (this.timeType.mask === this.hham) {\r\n if (this.cursorPosition >= 3) {\r\n let typeind2 = ind4.toString();\r\n\r\n const beforeHourind = ind1 + ind2 + ind3;\r\n const afterHourind = ind5;\r\n\r\n if (ind4 === AXTranslator.get('dateTime.dayTime.p')) {\r\n typeind2 = AXTranslator.get('dateTime.dayTime.a');\r\n } else if (ind4 === AXTranslator.get('dateTime.dayTime.a')) {\r\n typeind2 = AXTranslator.get('dateTime.dayTime.p');\r\n }\r\n this.textValue = beforeHourind + typeind2 + afterHourind;\r\n }\r\n }\r\n }\r\n\r\n // key down\r\n if (event.key === 'ArrowDown') {\r\n // hour\r\n if (this.cursorPosition <= 2) {\r\n const hourind = ind1 + ind2;\r\n const newHour = +hourind - 1;\r\n\r\n newValue = newHour.toString();\r\n if (\r\n this.timeType.mask === this.hhmmss ||\r\n this.timeType.mask === this.hhmm ||\r\n this.timeType.mask === this.hh ||\r\n this.timeType.mask === this.hhmmssam ||\r\n this.timeType.mask === this.hhmmam ||\r\n this.timeType.mask === this.hham\r\n ) {\r\n if (hourind === '--') {\r\n newValue = '0';\r\n }\r\n if (ind1 !== '-' && hourind === ind1 + '-') {\r\n newValue = '0';\r\n }\r\n if (ind2 !== '-' && hourind === '-' + ind2) {\r\n newValue = '0';\r\n }\r\n if (+newValue < 1) {\r\n newValue = '12';\r\n } else if (+newValue < 10) {\r\n newValue = '0' + newValue;\r\n }\r\n } else {\r\n if (hourind === '--') {\r\n newValue = '0';\r\n }\r\n if (ind1 !== '-' && hourind === ind1 + '-') {\r\n newValue = '0';\r\n }\r\n if (ind2 !== '-' && hourind === '-' + ind2) {\r\n newValue = '0';\r\n }\r\n if (+newValue < 0) {\r\n newValue = '23';\r\n } else if (+newValue < 10) {\r\n newValue = '0' + newValue;\r\n }\r\n }\r\n const afterHourIndex = ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + ind10 + ind11;\r\n const hour = newValue.toString() + afterHourIndex;\r\n this.textValue = hour;\r\n }\r\n // minute\r\n if (this.cursorPosition >= 3 && this.cursorPosition <= 5) {\r\n const minuteind = ind4 + ind5;\r\n const newMinute = +minuteind - 1;\r\n\r\n newValue = newMinute.toString();\r\n if (minuteind === '--') {\r\n newValue = '0';\r\n }\r\n if (ind4 !== '-' && minuteind === ind4 + '-') {\r\n newValue = '0';\r\n }\r\n if (ind5 !== '-' && minuteind === '-' + ind5) {\r\n newValue = '0';\r\n }\r\n if (minuteind === '--') {\r\n newValue = '0';\r\n }\r\n if (+newValue < 0) {\r\n newValue = '59';\r\n } else if (+newValue < 10) {\r\n newValue = '0' + newValue;\r\n }\r\n const beforeMinuteIndex = ind1 + ind2 + ind3;\r\n const afterMinuteIndex = ind6 + ind7 + ind8 + ind9 + ind10 + ind11;\r\n const minute = beforeMinuteIndex + newValue.toString() + afterMinuteIndex;\r\n this.textValue = minute;\r\n }\r\n\r\n // second\r\n if (this.cursorPosition >= 6 && this.cursorPosition <= 8) {\r\n const secondIndex = ind7 + ind8;\r\n const newSecond = +secondIndex - 1;\r\n\r\n newValue = newSecond.toString();\r\n if (secondIndex === '--') {\r\n newValue = '0';\r\n }\r\n if (ind7 !== '-' && secondIndex === ind7 + '-') {\r\n newValue = '0';\r\n }\r\n if (ind8 !== '-' && secondIndex === '-' + ind8) {\r\n newValue = '0';\r\n }\r\n if (secondIndex === '--') {\r\n newValue = '0';\r\n }\r\n if (+newValue < 0) {\r\n newValue = '59';\r\n } else if (+newValue < 10) {\r\n newValue = '0' + newValue;\r\n }\r\n const beforesecondIndex = ind1 + ind2 + ind3 + ind4 + ind5 + ind6;\r\n const aftersecondIndex = ind9 + ind10 + ind11;\r\n const second = beforesecondIndex + newValue.toString() + aftersecondIndex;\r\n this.textValue = second;\r\n }\r\n\r\n // type\r\n if (this.timeType.mask === this.hhmmssam) {\r\n if (this.cursorPosition > 8) {\r\n let typeind = ind10.toString();\r\n\r\n const beforeHourind = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9;\r\n const afterHourind = ind11;\r\n\r\n if (ind10 === AXTranslator.get('dateTime.dayTime.p')) {\r\n typeind = AXTranslator.get('dateTime.dayTime.a');\r\n } else if (ind10 === AXTranslator.get('dateTime.dayTime.a')) {\r\n typeind = AXTranslator.get('dateTime.dayTime.p');\r\n }\r\n this.textValue = beforeHourind + typeind + afterHourind;\r\n }\r\n }\r\n if (this.timeType.mask === this.hhmmam) {\r\n if (this.cursorPosition >= 6) {\r\n let typeind = ind7.toString();\r\n\r\n const beforeHourind = ind1 + ind2 + ind3 + ind4 + ind5 + ind6;\r\n const afterHourind = ind8;\r\n\r\n if (ind7 === AXTranslator.get('dateTime.dayTime.p')) {\r\n typeind = AXTranslator.get('dateTime.dayTime.a');\r\n } else if (ind7 === AXTranslator.get('dateTime.dayTime.a')) {\r\n typeind = AXTranslator.get('dateTime.dayTime.p');\r\n }\r\n this.textValue = beforeHourind + typeind + afterHourind;\r\n }\r\n }\r\n if (this.timeType.mask === this.hham) {\r\n if (this.cursorPosition >= 3) {\r\n let typeind2 = ind4.toString();\r\n\r\n const beforeHourind = ind1 + ind2 + ind3;\r\n const afterHourind = ind5;\r\n //TO DO this is wrong check index\r\n if (ind4 === AXTranslator.get('dateTime.dayTime.p')) {\r\n typeind2 = AXTranslator.get('dateTime.dayTime.a');\r\n } else if (ind4 === AXTranslator.get('dateTime.dayTime.a')) {\r\n typeind2 = AXTranslator.get('dateTime.dayTime.p');\r\n }\r\n this.textValue = beforeHourind + typeind2 + afterHourind;\r\n }\r\n }\r\n }\r\n\r\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\r\n this.input.nativeElement.style.caretColor = 'transparent';\r\n event.preventDefault();\r\n event.stopPropagation();\r\n return false;\r\n }\r\n if (event.key === 'Delete') {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n handleClick(event: KeyboardEvent) {\r\n if (this.input.nativeElement.selectionStart || this.input.nativeElement.selectionStart === 0) {\r\n this.cursorPosition = this.input.nativeElement.selectionStart;\r\n }\r\n }\r\n\r\n doGetCaretPosition(ctrl) {\r\n let CaretPos = 0;\r\n if (ctrl.selectionStart || ctrl.selectionStart === 0) {\r\n CaretPos = ctrl.selectionStart;\r\n return CaretPos;\r\n }\r\n }\r\n\r\n setCaretPosition(ctrl, pos) {\r\n if (ctrl.setSelectionRange) {\r\n ctrl.focus();\r\n ctrl.setSelectionRange(pos, pos);\r\n } else if (ctrl.createTextRange) {\r\n const range = ctrl.createTextRange();\r\n range.collapse(true);\r\n range.moveEnd('character', pos);\r\n range.moveStart('character', pos);\r\n range.select();\r\n }\r\n }\r\n\r\n setCaret() {\r\n this.setCaretPosition(this.input.nativeElement, this.cursorPosition);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXTimePickerComponent } from './time-picker.component';\r\nimport { AXButtonModule } from '../button/button.module';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { TextMaskModule } from 'angular2-text-mask';\r\n\r\n\r\n@NgModule({\r\n declarations: [AXTimePickerComponent],\r\n imports: [ CommonModule, FormsModule, AXButtonModule, TextMaskModule ],\r\n exports: [AXTimePickerComponent],\r\n providers: [],\r\n})\r\nexport class AXTimePickerModule {}","import { Directive, Input, ElementRef, HostListener, Renderer2 } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[axTooltip]'\r\n})\r\nexport class AXTooltipDirective {\r\n @Input('tooltip') tooltipTitle: string;\r\n @Input() placement: string = 'top';\r\n @Input() delay: number = 500;\r\n tooltip: HTMLElement;\r\n offset = 10;\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2) {}\r\n\r\n @HostListener('mouseenter') onMouseEnter() {\r\n if (!this.tooltip) {\r\n this.show();\r\n }\r\n }\r\n\r\n @HostListener('mouseleave') onMouseLeave() {\r\n if (this.tooltip) {\r\n this.hide();\r\n }\r\n }\r\n\r\n show() {\r\n this.create();\r\n this.setPosition();\r\n this.renderer.addClass(this.tooltip, 'ax-tooltip-show');\r\n }\r\n\r\n hide() {\r\n if (this.tooltip) {\r\n try {\r\n this.renderer.removeClass(this.tooltip, 'ax-tooltip-show');\r\n this.renderer.removeChild(document.body, this.tooltip);\r\n this.tooltip = null;\r\n } catch (error) {}\r\n }\r\n }\r\n\r\n create() {\r\n this.tooltip = this.renderer.createElement('span');\r\n\r\n this.renderer.appendChild(\r\n this.tooltip,\r\n this.renderer.createText(this.tooltipTitle) // textNode\r\n );\r\n\r\n this.renderer.appendChild(document.body, this.tooltip);\r\n\r\n this.renderer.addClass(this.tooltip, 'ax-tooltip');\r\n this.renderer.addClass(this.tooltip, `ax-tooltip-${this.placement}`);\r\n this.renderer.setStyle(this.tooltip, '-webkit-transition', `opacity ${this.delay}ms`);\r\n this.renderer.setStyle(this.tooltip, '-moz-transition', `opacity ${this.delay}ms`);\r\n this.renderer.setStyle(this.tooltip, '-o-transition', `opacity ${this.delay}ms`);\r\n this.renderer.setStyle(this.tooltip, 'transition', `opacity ${this.delay}ms`);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.hide();\r\n }\r\n\r\n setPosition() {\r\n const hostPos = this.el.nativeElement.getBoundingClientRect();\r\n\r\n const tooltipPos = this.tooltip.getBoundingClientRect();\r\n\r\n const scrollPos = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\r\n\r\n let top;\r\n let left;\r\n\r\n if (this.placement === 'top') {\r\n top = hostPos.top - tooltipPos.height - this.offset;\r\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\r\n }\r\n\r\n if (this.placement === 'bottom') {\r\n top = hostPos.bottom + this.offset;\r\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\r\n }\r\n\r\n if (this.placement === 'left') {\r\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\r\n left = hostPos.left - tooltipPos.width - this.offset;\r\n }\r\n\r\n if (this.placement === 'right') {\r\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\r\n left = hostPos.right + this.offset;\r\n }\r\n\r\n this.renderer.setStyle(this.tooltip, 'top', `${top + scrollPos}px`);\r\n this.renderer.setStyle(this.tooltip, 'left', `${left}px`);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXTooltipDirective } from './tooltip.directive';\r\n\r\n@NgModule({\r\n declarations: [AXTooltipDirective],\r\n imports: [ CommonModule ],\r\n exports: [AXTooltipDirective],\r\n providers: [],\r\n})\r\nexport class AXTooltipModule {}","import { Component, ViewEncapsulation, Input, ContentChild, Output, EventEmitter, ViewChild, ElementRef, TemplateRef } from '@angular/core';\r\nimport { AXDataSourceComponent } from '../data-source/datasource.component';\r\nimport { AXDataEvent, AXHtmlEvent, AXValueEvent } from '../base/events.class';\r\nimport { AXBaseComponent } from '../base/element.class';\r\nimport { AXContextMenuItemClickEvent, AXContextMenuPromiseFunction, AXContextMenuFunction } from '../context-menu/context-menu.directive';\r\nimport { AXMenuItem } from '@acorex/core';\r\n\r\nexport class AXTreeSideMenuNode {\r\n children: AXTreeSideMenuNode[];\r\n itemData: AXTreeSideMenuItemData = new AXTreeSideMenuItemData();\r\n parent: AXTreeSideMenuNode;\r\n}\r\n\r\nexport class AXTreeSideMenuItemData {\r\n selected: boolean;\r\n key: string;\r\n disabled: boolean;\r\n open: boolean;\r\n hasChild: boolean;\r\n item: any;\r\n}\r\n\r\nexport class AXTreeSideMenuItemMovedEvent {\r\n source: AXTreeSideMenuNode;\r\n target: AXTreeSideMenuNode;\r\n resolve: (value: boolean) => void;\r\n}\r\n\r\nexport class AXTreeSideMenuSelectionChangedEvent extends AXValueEvent<AXTreeSideMenuNode> {\r\n component: AXTreeSideMenuComponent;\r\n}\r\n\r\nexport class AXTreeSideMenuItemClick extends AXHtmlEvent<MouseEvent> {\r\n component: AXTreeSideMenuComponent;\r\n item: any;\r\n flag: boolean;\r\n cancel?: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'ax-tree-side-menu',\r\n templateUrl: './tree-side-menu.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class AXTreeSideMenuComponent extends AXBaseComponent {\r\n @ContentChild(TemplateRef, { static: true })\r\n nodeTemplate: TemplateRef<any>;\r\n\r\n @ContentChild(AXDataSourceComponent, { static: true })\r\n private _contentDataSource: AXDataSourceComponent;\r\n\r\n @Input()\r\n cssClass: 'single' | 'multiple' = 'single';\r\n\r\n @Input()\r\n selectionMode: 'single' | 'multiple' = 'single';\r\n\r\n @Input()\r\n selectionLevel: 'all' | 'nodes' | 'parents' = 'all';\r\n\r\n @Input()\r\n selectedFieldName: string = null;\r\n\r\n @Input()\r\n selectNodesRecursive: boolean = true;\r\n\r\n @Input()\r\n seletedKeyFields: any[] = [];\r\n\r\n @Input()\r\n keyField: string = 'id';\r\n\r\n @Input()\r\n textField: string ='title'\r\n\r\n @Input()\r\n hasChildField: string = 'child';\r\n\r\n @Input()\r\n bordered: boolean = false;\r\n\r\n @Input()\r\n lazyLoading: boolean = true;\r\n\r\n @Input()\r\n allowDrag: boolean = false;\r\n\r\n @Input()\r\n size: 'md' | 'sm' = 'md';\r\n\r\n @Input()\r\n iconStart:boolean= true;\r\n\r\n @Input()\r\n closeIconName:string= 'fal fa-plus'\r\n\r\n @Input()\r\n openIconName:string='fal fa-minus'\r\n\r\n @Output()\r\n selectionChanged: EventEmitter<AXTreeSideMenuSelectionChangedEvent> = new EventEmitter<AXTreeSideMenuSelectionChangedEvent>();\r\n\r\n @Output()\r\n onItemOpening: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onItemClick: EventEmitter<AXTreeSideMenuItemClick> = new EventEmitter<AXTreeSideMenuItemClick>();\r\n\r\n @Output()\r\n onItemClosing: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onItemDrag: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onItemMoved: EventEmitter<AXTreeSideMenuItemMovedEvent> = new EventEmitter<AXTreeSideMenuItemMovedEvent>();\r\n\r\n @Output()\r\n onContextMenuItemClick: EventEmitter<AXContextMenuItemClickEvent> = new EventEmitter<AXContextMenuItemClickEvent>();\r\n\r\n showSelectBox: boolean = false;\r\n loading: boolean = false;\r\n list: any[] = [];\r\n itemRow: any;\r\n selectedItems: any[] = [];\r\n selectedParents: any[] = [];\r\n loadAllChildren: boolean = false;\r\n listLoad: any[] = [];\r\n itemDrop: any;\r\n itemDrag: any;\r\n validDrop: boolean = true;\r\n lockedDrag: boolean = false;\r\n childField: string = 'childeren';\r\n showContextMenu: boolean = false;\r\n @Input()\r\n contextMenuItems: AXMenuItem[] | AXContextMenuPromiseFunction | AXContextMenuFunction;\r\n\r\n\r\n\r\n constructor(private ref: ElementRef) {\r\n super();\r\n }\r\n\r\n handleOnContextMenuItem(e: AXContextMenuItemClickEvent) {\r\n this.onContextMenuItemClick.emit(e);\r\n }\r\n\r\n refresh() {\r\n this.list = [];\r\n this._contentDataSource.fetch(null);\r\n }\r\n\r\n internalSelectItem(item, userChange: boolean = true) {\r\n if (item[this.hasChildField] === false || this.selectionMode === 'single') {\r\n item.select = !item.select;\r\n if (item.parentNode && this.selectionMode !== 'single') {\r\n this.changeParentSelect(item.parentNode);\r\n }\r\n if (item.select === true) {\r\n if (this.selectionMode === 'single') {\r\n this.selectedItems.forEach((e) => {\r\n e.select = false;\r\n });\r\n this.selectedItems = [];\r\n this.selectedItems.push(item);\r\n\r\n } else {\r\n this.selectedItems.push(item);\r\n }\r\n } else {\r\n\r\n this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] !== item[this.keyField]);\r\n }\r\n } else {\r\n item.select = !item.select;\r\n\r\n if (item.parentNode && (this.selectionMode === 'multiple')) {\r\n this.changeParentSelect(item.parentNode);\r\n }\r\n if (this.selectionMode === 'multiple') {\r\n this.changeChildSelect(item, item.select);\r\n }\r\n\r\n if (item.select == true) {\r\n if (this.selectionMode === 'multiple') {\r\n\r\n this.selectedParents.push(item);\r\n } else {\r\n this.selectedParents.forEach(e => {\r\n e.select = false;\r\n });\r\n this.selectedParents = [];\r\n this.selectedParents.push(item);\r\n }\r\n } else {\r\n this.selectedParents = this.selectedParents.filter((c) => c[this.keyField] !== item[this.keyField]);\r\n\r\n }\r\n }\r\n if (userChange) {\r\n this.selectionChanged.emit({\r\n component: this,\r\n value: this.makeNode(item),\r\n htmlElement: this.ref.nativeElement\r\n });\r\n }\r\n }\r\n\r\n private makeNode(item, addChildren: boolean = true) {\r\n const node: AXTreeSideMenuNode = new AXTreeSideMenuNode();\r\n if (addChildren) {\r\n node.children = item[this.childField] === undefined ? [] : item[this.childField]?.map((m) => this.makeNode(m));\r\n }\r\n node.itemData.disabled = item.disabled === true ? item.disabled : false;\r\n node.itemData.open = item.open === true ? item.open : false;\r\n node.itemData.key = item[this.keyField];\r\n\r\n const c = [];\r\n let i = 0;\r\n for (var k in item) {\r\n i = i + 1;\r\n if (\r\n k != 'select' &&\r\n k != 'hasChild' &&\r\n k != 'loading' &&\r\n k != 'requestId' &&\r\n k != 'disabled' &&\r\n k != 'open' &&\r\n k != 'parentNode' &&\r\n k != 'toggle' &&\r\n k != 'loaded' &&\r\n k != 'indeterminate' &&\r\n k != this.childField\r\n ) {\r\n //c.push({ k: item[k] });\r\n c[k] = item[k];\r\n }\r\n }\r\n node.itemData.item = c; //TO DO\r\n node.itemData.selected = item.select === true ? item.select : false;\r\n node.itemData.hasChild = item[this.hasChildField];\r\n node.parent = item.parentNode === undefined ? null : this.makeNode(item.parentNode, false);\r\n return node;\r\n }\r\n\r\n private changeChildSelect(item, s) {\r\n if (this.selectNodesRecursive) {\r\n item.select = s;\r\n if (item[this.hasChildField] === true && item[this.childField] && item[this.childField].length > 0) {\r\n item[this.childField].forEach((elm) => {\r\n if (elm[this.hasChildField] === true) {\r\n elm.select = s;\r\n\r\n\r\n if (s === true && this.selectionMode !== 'single') {\r\n this.selectedParents = this.selectedParents.filter((c) => c[this.keyField] !== elm[this.keyField]);\r\n this.selectedParents.push(elm);\r\n }\r\n if (s === false && this.selectionMode !== 'single') {\r\n this.selectedParents = this.selectedParents.filter((c) => c[this.keyField] !== elm[this.keyField]);\r\n }\r\n\r\n\r\n this.changeChildSelect(elm, s);\r\n } else {\r\n elm.select = s;\r\n if (s === true && this.selectionMode !== 'single') {\r\n this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] !== elm[this.keyField]);\r\n this.selectedItems.push(elm);\r\n }\r\n if (s === false && this.selectionMode !== 'single') {\r\n this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] !== elm[this.keyField]);\r\n }\r\n }\r\n });\r\n } else {\r\n item.select = s;\r\n\r\n }\r\n }\r\n }\r\n\r\n private changeParentSelect(item) {\r\n if (this.selectNodesRecursive) {\r\n let allselect = true;\r\n let alldeselect = true;\r\n let oneselect = false;\r\n let isindeterminate = false;\r\n\r\n if (item[this.childField]) {\r\n for (let index = 0; index < item[this.childField].length; index++) {\r\n if (item[this.childField][index].select === true) {\r\n alldeselect = false;\r\n oneselect = true;\r\n }\r\n if (item[this.childField][index].select === false || item[this.childField][index].select === undefined) {\r\n allselect = false;\r\n }\r\n if (item[this.childField][index].select === null) {\r\n isindeterminate = true;\r\n alldeselect = false;\r\n oneselect = true;\r\n allselect = false;\r\n }\r\n }\r\n }\r\n\r\n if (oneselect || (isindeterminate && !allselect)) {\r\n item.select = null;\r\n }\r\n if (allselect === true) {\r\n item.select = true;\r\n }\r\n if (alldeselect === true) {\r\n item.select = false;\r\n }\r\n if (item.parentNode && item.parentNode[this.childField] && item.parentNode[this.childField].length > 0) {\r\n this.changeParentSelect(item.parentNode);\r\n }\r\n }\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.onItemClick.subscribe((data: AXTreeSideMenuItemClick) => {\r\n if (!data.cancel) {\r\n this.toggleNode(data.item, data.flag);\r\n }\r\n })\r\n }\r\n\r\n itemdbClick(e: MouseEvent, item) {\r\n if (this.selectionMode == 'single') {\r\n this.handleOnNodeClick(e, item, true);\r\n }\r\n }\r\n\r\n\r\n handleOnNodeClick(e: MouseEvent, item, flag = false) {\r\n this.onItemClick.emit({\r\n component: this,\r\n htmlEvent: e,\r\n item,\r\n flag\r\n })\r\n }\r\n\r\n toggleNode(item, flag = false) {\r\n //item[this.hasChildField] === false &&\r\n if (this.selectionMode === 'single' && !flag) {\r\n if (this.selectionLevel == 'nodes' && item.hasChild == true) {\r\n\r\n } else {\r\n this.internalSelectItem(item);\r\n }\r\n\r\n } else {\r\n if(item[this.hasChildField] == true){\r\n item.toggle = !item.toggle;\r\n }\r\n\r\n if (this.selectionMode === 'single') {\r\n if (this.selectionLevel == 'nodes' && item.hasChild == true) {\r\n\r\n } else {\r\n this.internalSelectItem(item);\r\n }\r\n }\r\n\r\n if (item[this.hasChildField] === true && item.loaded !== true && this.lazyLoading) {\r\n this.itemRow = item;\r\n const uid = Math.floor(Math.random() * 100000000);\r\n item.requestId = uid;\r\n this.listLoad.push(item);\r\n this._contentDataSource.fetch(item);\r\n this.showLoading(this.itemRow);\r\n }\r\n if (item.toggle && item[this.hasChildField] === true) {\r\n item.open = true;\r\n this.onItemOpening.emit(this.makeNode(item));\r\n } else if (!item.toggle && item[this.hasChildField] === true) {\r\n item.open = false;\r\n this.onItemClosing.emit(this.makeNode(item));\r\n }\r\n }\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this._contentDataSource.fetch(null);\r\n this._contentDataSource.onDataReceived.subscribe((_data) => {\r\n\r\n if (this.list.length === 0) {\r\n this.hideLoading(null);\r\n this.list = _data.data.result;\r\n\r\n this.list.forEach((el) => {\r\n el.select = false;\r\n\r\n if (this.selectionLevel == 'nodes' && el[this.hasChildField] == true) {\r\n el.disabledCheckBox = true;\r\n }\r\n\r\n if (this.selectionLevel == 'parents' && el[this.hasChildField] == false) {\r\n el.disabledCheckBox = true;\r\n }\r\n\r\n if (this.seletedKeyFields.length > 0) {\r\n this.seletedKeyFields.forEach((n: any) => {\r\n if (n.includes(el[this.keyField])) {\r\n if (el[this.hasChildField] == true) {\r\n // if (this.selectNodesRecursive) {\r\n this.open(el);\r\n // }\r\n\r\n } else {\r\n this.selectItem(el);\r\n }\r\n }\r\n })\r\n } else if (this.selectedFieldName != null) {\r\n if (el[this.hasChildField] == true && el[this.selectedFieldName] == true) {\r\n // if (this.selectNodesRecursive) {\r\n this.open(el);\r\n // }\r\n\r\n } else if (el[this.selectedFieldName] == true) {\r\n this.selectItem(el);\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n\r\n });\r\n } else {\r\n this.itemRow = this.listLoad.filter((c) => c.requestId === _data.data.requestId)[0];\r\n this.listLoad = this.listLoad.filter((c) => c.requestId !== _data.data.requestId);\r\n if (this.itemRow !== undefined) {\r\n this.hideLoading(this.itemRow);\r\n const result = _data.data.result;\r\n\r\n if (this.list.length !== 0) {\r\n\r\n if (this.itemRow[this.childField] && this.itemRow[this.childField].length > 0) {\r\n result.forEach((el) => {\r\n this.itemRow[this.childField][this.itemRow[this.childField].length] = el;\r\n });\r\n } else {\r\n this.itemRow[this.childField] = result;\r\n }\r\n\r\n for (let i = 0; i < result.length; i++) {\r\n if (this.selectionLevel == 'nodes' && result[i][this.hasChildField] == true) {\r\n result[i].disabledCheckBox = true;\r\n }\r\n\r\n if (this.selectionLevel == 'parents' && result[i][this.hasChildField] == false) {\r\n result[i].disabledCheckBox = true;\r\n }\r\n if (this.selectionMode !== 'single' && this.selectNodesRecursive) {\r\n result[i].select = this.itemRow.select === (undefined || null) ? false : this.itemRow.select;\r\n\r\n if (\r\n this.itemRow.select === true &&\r\n (this.selectionMode == 'multiple') &&\r\n result[i][this.hasChildField] === false\r\n ) {\r\n this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] !== result[i][this.keyField]);\r\n this.selectedItems.push(result[i]);\r\n }\r\n } else {\r\n result[i].select = false;\r\n }\r\n result[i].parentNode = this.itemRow;\r\n\r\n\r\n if (this.seletedKeyFields.length > 0) {\r\n this.seletedKeyFields.forEach((n: any) => {\r\n if (n.includes(result[i][this.keyField])) {\r\n if (result[i][this.hasChildField] == true) {\r\n // if (this.selectNodesRecursive) {\r\n this.open(result[i]);\r\n // }\r\n\r\n } else {\r\n this.selectItem(result[i]);\r\n }\r\n }\r\n })\r\n } else if (this.selectedFieldName != null) {\r\n if (result[i][this.hasChildField] == true && result[i][this.selectedFieldName] == true) {\r\n // if (this.selectNodesRecursive) {\r\n this.open(result[i]);\r\n // }\r\n\r\n } else if (result[i][this.selectedFieldName] == true) {\r\n this.selectItem(result[i]);\r\n }\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n this.itemRow.loaded = true;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.selectionMode !== 'single') {\r\n this.showSelectBox = true;\r\n }\r\n this.showContextMenu = true;\r\n }\r\n\r\n // onItemClick(e, v) {\r\n\r\n // }\r\n\r\n onDragStart(e: Event, v) {\r\n if (!this.lockedDrag) {\r\n this.itemDrag = v;\r\n this.onItemDrag.emit(v);\r\n }\r\n e.stopImmediatePropagation();\r\n }\r\n\r\n onDragEnd(e, v) {\r\n if (!this.lockedDrag) {\r\n this.itemDrop = v;\r\n }\r\n e.stopImmediatePropagation();\r\n }\r\n\r\n drop(e) {\r\n // this.onItemDrop.emit(this.itemDrop);\r\n if (!this.lockedDrag) {\r\n this.validDrop = true;\r\n this.sameChilde(this.itemDrag, this.itemDrop);\r\n if (this.validDrop && this.itemDrag[this.keyField] !== this.itemDrop[this.keyField] && this.itemDrag.parentNode !== this.itemDrop) {\r\n const movedEvent: AXTreeSideMenuItemMovedEvent = new AXTreeSideMenuItemMovedEvent();\r\n movedEvent.source = this.makeNode(this.itemDrag);\r\n movedEvent.target = this.makeNode(this.itemDrop);\r\n this.lockedDrag = true;\r\n this.showLoading(this.itemDrag);\r\n this.showLoading(this.itemDrop);\r\n movedEvent.resolve = (value: boolean) => {\r\n this.hideLoading(this.itemDrag);\r\n this.hideLoading(this.itemDrop);\r\n if (value) {\r\n this.dragDropItem(this.itemDrag, this.itemDrop);\r\n } else {\r\n this.lockedDrag = false;\r\n }\r\n };\r\n this.onItemMoved.emit(movedEvent);\r\n }\r\n }\r\n\r\n e.stopImmediatePropagation();\r\n }\r\n\r\n sameChilde(parent, child) {\r\n if (parent[this.childField] && parent[this.childField].length > 0) {\r\n for (let index = 0; index < parent[this.childField].length; index++) {\r\n if (parent[this.childField][index][this.keyField] == child[this.keyField]) {\r\n this.validDrop = false;\r\n }\r\n if (parent[this.childField][index][this.childField] && parent[this.childField][index][this.childField].length > 0) {\r\n this.sameChilde(parent[this.childField][index], child);\r\n }\r\n }\r\n } else if (parent[this.keyField] == child[this.keyField]) {\r\n this.validDrop = false;\r\n }\r\n }\r\n\r\n dragDropItem(itemChild, itemParent) {\r\n if (this.selectionLevel == 'nodes') {\r\n itemParent.disabledCheckBox = true;\r\n }\r\n\r\n if (itemChild.parentNode) {\r\n itemChild.parentNode[this.childField] = itemChild.parentNode[this.childField].filter((c) => c[this.keyField] !== itemChild[this.keyField]);\r\n } else {\r\n this.list = this.list.filter((c) => c[this.keyField] !== itemChild[this.keyField]);\r\n }\r\n itemChild.parentNode = itemParent;\r\n if (itemParent[this.childField] && itemParent[this.childField].length > 0) {\r\n itemParent[this.childField][itemParent[this.childField].length] = itemChild;\r\n } else {\r\n itemParent[this.childField] = [];\r\n itemParent[this.childField][0] = itemChild;\r\n if (itemParent[this.hasChildField] === true) {\r\n this.toggleNode(itemParent);\r\n } else {\r\n itemParent.toggle = !itemParent.toggle;\r\n itemParent.loaded = true;\r\n }\r\n itemParent[this.hasChildField] = true;\r\n }\r\n if (itemChild.parentNode && this.selectionMode !== 'single') {\r\n this.changeParentSelect(itemChild.parentNode);\r\n }\r\n this.lockedDrag = false;\r\n\r\n }\r\n\r\n private listChange(field, value) {\r\n for (let index = 0; index < this.list.length; index++) {\r\n this.changeChiled(this.list[index], field, value);\r\n }\r\n this.loadAllChildren = false;\r\n }\r\n\r\n private changeChiled(item, field, value) {\r\n if (field === 'toggle' && (item.loaded === false || item.loaded === undefined)) {\r\n if (this.loadAllChildren === true) {\r\n this.toggleNode(item);\r\n item[field] = value;\r\n }\r\n } else {\r\n item[field] = value;\r\n if (field === 'select' && item[this.hasChildField] === false && value === true) {\r\n this.selectedItems.push(item);\r\n }\r\n }\r\n if (field === 'select') {\r\n item.indeterminate = false;\r\n }\r\n if (item[this.hasChildField] === true && item[this.childField] && item[this.childField].length > 0) {\r\n item[this.childField].forEach((element) => {\r\n this.changeChiled(element, field, value);\r\n });\r\n }\r\n }\r\n\r\n private showLoading(item): void {\r\n item.loading = true;\r\n }\r\n\r\n private hideLoading(item): void {\r\n if (item != null) {\r\n item.loading = false;\r\n }\r\n }\r\n\r\n public openAll(loadAll: boolean = false) {\r\n // if (loadAll) {\r\n // this.loadAllChildren = true;\r\n // this.listChange('toggle', true);\r\n //} else {\r\n this.listChange('toggle', true);\r\n // }\r\n }\r\n\r\n public selectItem(item) {\r\n if (item['select'] != true) {\r\n this.internalSelectItem(item, false);\r\n }\r\n }\r\n\r\n\r\n public open(item) {\r\n\r\n if (item['toggle'] !== true) {\r\n this.toggleNode(item, true);\r\n\r\n }\r\n\r\n }\r\n\r\n public scrolIntoView(item) {\r\n let element = document.querySelector(`li[data-id='${item[this.keyField]}']`);\r\n element.scrollIntoView();\r\n }\r\n\r\n public closeAll() {\r\n this.listChange('toggle', false);\r\n }\r\n\r\n public selectAll() {\r\n if (this.selectionMode !== 'single') {\r\n this.listChange('select', true);\r\n }\r\n }\r\n\r\n public unSelectAll() {\r\n if (this.selectionMode !== 'single') {\r\n this.listChange('select', false);\r\n }\r\n this.selectedItems = [];\r\n }\r\n\r\n public getSelectedNodes(): AXTreeSideMenuNode[] {\r\n const selectItemsNode = [];\r\n this.selectedItems.forEach((e) => {\r\n selectItemsNode.push(this.makeNode(e));\r\n });\r\n return selectItemsNode;\r\n }\r\n\r\n public getSelectedParents(): AXTreeSideMenuNode[] {\r\n const selectItemsParent = [];\r\n this.selectedParents.forEach((e) => {\r\n selectItemsParent.push(this.makeNode(e));\r\n });\r\n return selectItemsParent;\r\n }\r\n\r\n getParentsId(item) {\r\n let keyFields = []\r\n keyFields.push(item[this.keyField]);\r\n if (item.parentNode) {\r\n keyFields.push(...this.getParentsId(item.parentNode));\r\n\r\n }\r\n return keyFields;\r\n }\r\n\r\n public getSelectedKeyFields() {\r\n let keyFields = [];\r\n this.selectedItems.forEach(elm => {\r\n var Ids = this.getParentsId(elm);\r\n if (Ids) {\r\n keyFields.push(Ids)\r\n }\r\n });\r\n return keyFields;\r\n }\r\n\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { AXTreeSideMenuComponent } from \"./tree-side-menu.component\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { AXDataSourceModule } from \"../data-source/datasource.module\";\r\nimport { AXCheckBoxModule } from \"../checkbox/checkbox.module\";\r\nimport { AXContextMenuModule } from \"../context-menu/context-menu.module\";\r\n\r\n@NgModule({\r\n declarations: [AXTreeSideMenuComponent],\r\n imports: [\r\n AXDataSourceModule,\r\n CommonModule,\r\n AXCheckBoxModule,\r\n AXContextMenuModule,\r\n ],\r\n exports: [AXTreeSideMenuComponent],\r\n providers: [],\r\n})\r\nexport class AXTreeSideMenuModule {}\r\n","import { Component, ViewEncapsulation, Input, ContentChild, Output, EventEmitter, ViewChild, ElementRef, TemplateRef } from '@angular/core';\r\nimport { AXDataSourceComponent } from '../data-source/datasource.component';\r\nimport { AXDataEvent, AXHtmlEvent, AXValueEvent } from '../base/events.class';\r\nimport { AXBaseComponent } from '../base/element.class';\r\nimport { AXContextMenuItemClickEvent, AXContextMenuPromiseFunction, AXContextMenuFunction } from '../context-menu/context-menu.directive';\r\nimport { AXMenuItem } from '@acorex/core';\r\n\r\nexport class AXTreeViewNode {\r\n children: AXTreeViewNode[];\r\n itemData: AXTreeViewItemData = new AXTreeViewItemData();\r\n parent: AXTreeViewNode;\r\n}\r\n\r\nexport class AXTreeViewItemData {\r\n selected: boolean;\r\n key: string;\r\n disabled: boolean;\r\n open: boolean;\r\n hasChild: boolean;\r\n item: any;\r\n}\r\n\r\nexport class AXTreeViewItemMovedEvent {\r\n source: AXTreeViewNode;\r\n target: AXTreeViewNode;\r\n resolve: (value: boolean) => void;\r\n}\r\n\r\nexport class AXTreeViewselectionChangedEvent extends AXValueEvent<AXTreeViewNode> {\r\n component: AXTreeViewComponent;\r\n}\r\n\r\nexport class AXTreeViewItemClick extends AXHtmlEvent<MouseEvent> {\r\n component: AXTreeViewComponent;\r\n item: any;\r\n flag: boolean;\r\n cancel?: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'ax-tree-view',\r\n templateUrl: './tree-view.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class AXTreeViewComponent extends AXBaseComponent {\r\n @ContentChild(TemplateRef, { static: true })\r\n nodeTemplate: TemplateRef<any>;\r\n\r\n @ContentChild(AXDataSourceComponent, { static: true })\r\n private _contentDataSource: AXDataSourceComponent;\r\n\r\n @Input()\r\n selectionMode: 'single' | 'multiple' = 'single';\r\n\r\n @Input()\r\n selectionLevel: 'all' | 'nodes' | 'parents' = 'all';\r\n\r\n // user can set only one of this /selectedFieldName or /seletedKeyFields\r\n //seletedKeyFields set id of nodes and parents\r\n //selectedFieldName set name of fields that set selectes\r\n @Input()\r\n selectedFieldName: string = null;\r\n\r\n @Input()\r\n selectNodesRecursive: boolean = true;\r\n\r\n @Input()\r\n seletedKeyFields: any[] = [];\r\n\r\n @Input()\r\n keyField: string = 'id';\r\n\r\n @Input()\r\n hasChildField: string = 'child';\r\n\r\n @Input()\r\n bordered: boolean = false;\r\n\r\n @Input()\r\n lazyLoading: boolean = true;\r\n\r\n @Input()\r\n allowDrag: boolean = false;\r\n\r\n @Input()\r\n size: 'md' | 'sm' = 'md';\r\n\r\n @Output()\r\n selectionChanged: EventEmitter<AXTreeViewselectionChangedEvent> = new EventEmitter<AXTreeViewselectionChangedEvent>();\r\n\r\n @Output()\r\n onItemOpening: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onItemClick: EventEmitter<AXTreeViewItemClick> = new EventEmitter<AXTreeViewItemClick>();\r\n\r\n @Output()\r\n onItemClosing: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onItemDrag: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onItemMoved: EventEmitter<AXTreeViewItemMovedEvent> = new EventEmitter<AXTreeViewItemMovedEvent>();\r\n\r\n @Output()\r\n onContextMenuItemClick: EventEmitter<AXContextMenuItemClickEvent> = new EventEmitter<AXContextMenuItemClickEvent>();\r\n\r\n showSelectBox: boolean = false;\r\n loading: boolean = false;\r\n list: any[] = [];\r\n itemRow: any;\r\n selectedItems: any[] = [];\r\n selectedParents: any[] = [];\r\n loadAllChildren: boolean = false;\r\n listLoad: any[] = [];\r\n itemDrop: any;\r\n itemDrag: any;\r\n validDrop: boolean = true;\r\n lockedDrag: boolean = false;\r\n childField: string = 'childeren';\r\n showContextMenu: boolean = false;\r\n @Input()\r\n contextMenuItems: AXMenuItem[] | AXContextMenuPromiseFunction | AXContextMenuFunction;\r\n\r\n\r\n\r\n constructor(private ref: ElementRef) {\r\n super();\r\n }\r\n\r\n handleOnContextMenuItem(e: AXContextMenuItemClickEvent) {\r\n this.onContextMenuItemClick.emit(e);\r\n }\r\n\r\n refresh() {\r\n this.list = [];\r\n this._contentDataSource.fetch(null);\r\n }\r\n\r\n internalSelectItem(item, userChange: boolean = true) {\r\n if (item[this.hasChildField] === false || this.selectionMode === 'single') {\r\n item.select = !item.select;\r\n if (item.parentNode && this.selectionMode !== 'single') {\r\n this.changeParentSelect(item.parentNode);\r\n }\r\n if (item.select === true) {\r\n if (this.selectionMode === 'single') {\r\n this.selectedItems.forEach((e) => {\r\n e.select = false;\r\n });\r\n this.selectedItems = [];\r\n this.selectedItems.push(item);\r\n\r\n } else {\r\n this.selectedItems.push(item);\r\n }\r\n } else {\r\n\r\n this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] !== item[this.keyField]);\r\n }\r\n } else {\r\n item.select = !item.select;\r\n\r\n if (item.parentNode && (this.selectionMode === 'multiple')) {\r\n this.changeParentSelect(item.parentNode);\r\n }\r\n if (this.selectionMode === 'multiple') {\r\n this.changeChildSelect(item, item.select);\r\n }\r\n\r\n if (item.select == true) {\r\n if (this.selectionMode === 'multiple') {\r\n\r\n this.selectedParents.push(item);\r\n } else {\r\n this.selectedParents.forEach(e => {\r\n e.select = false;\r\n });\r\n this.selectedParents = [];\r\n this.selectedParents.push(item);\r\n }\r\n } else {\r\n this.selectedParents = this.selectedParents.filter((c) => c[this.keyField] !== item[this.keyField]);\r\n\r\n }\r\n }\r\n if (userChange) {\r\n this.selectionChanged.emit({\r\n component: this,\r\n value: this.makeNode(item),\r\n htmlElement: this.ref.nativeElement\r\n });\r\n }\r\n }\r\n\r\n private makeNode(item, addChildren: boolean = true) {\r\n const node: AXTreeViewNode = new AXTreeViewNode();\r\n if (addChildren) {\r\n node.children = item[this.childField] === undefined ? [] : item[this.childField]?.map((m) => this.makeNode(m));\r\n }\r\n node.itemData.disabled = item.disabled === true ? item.disabled : false;\r\n node.itemData.open = item.open === true ? item.open : false;\r\n node.itemData.key = item[this.keyField];\r\n\r\n const c = [];\r\n let i = 0;\r\n for (var k in item) {\r\n i = i + 1;\r\n if (\r\n k != 'select' &&\r\n k != 'hasChild' &&\r\n k != 'loading' &&\r\n k != 'requestId' &&\r\n k != 'disabled' &&\r\n k != 'open' &&\r\n k != 'parentNode' &&\r\n k != 'toggle' &&\r\n k != 'loaded' &&\r\n k != 'indeterminate' &&\r\n k != this.childField\r\n ) {\r\n //c.push({ k: item[k] });\r\n c[k] = item[k];\r\n }\r\n }\r\n node.itemData.item = c; //TO DO\r\n node.itemData.selected = item.select === true ? item.select : false;\r\n node.itemData.hasChild = item[this.hasChildField];\r\n node.parent = item.parentNode === undefined ? null : this.makeNode(item.parentNode, false);\r\n return node;\r\n }\r\n\r\n private changeChildSelect(item, s) {\r\n if (this.selectNodesRecursive) {\r\n item.select = s;\r\n if (item[this.hasChildField] === true && item[this.childField] && item[this.childField].length > 0) {\r\n item[this.childField].forEach((elm) => {\r\n if (elm[this.hasChildField] === true) {\r\n elm.select = s;\r\n\r\n\r\n if (s === true && this.selectionMode !== 'single') {\r\n this.selectedParents = this.selectedParents.filter((c) => c[this.keyField] !== elm[this.keyField]);\r\n this.selectedParents.push(elm);\r\n }\r\n if (s === false && this.selectionMode !== 'single') {\r\n this.selectedParents = this.selectedParents.filter((c) => c[this.keyField] !== elm[this.keyField]);\r\n }\r\n\r\n\r\n this.changeChildSelect(elm, s);\r\n } else {\r\n elm.select = s;\r\n if (s === true && this.selectionMode !== 'single') {\r\n this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] !== elm[this.keyField]);\r\n this.selectedItems.push(elm);\r\n }\r\n if (s === false && this.selectionMode !== 'single') {\r\n this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] !== elm[this.keyField]);\r\n }\r\n }\r\n });\r\n } else {\r\n item.select = s;\r\n\r\n }\r\n }\r\n }\r\n\r\n private changeParentSelect(item) {\r\n if (this.selectNodesRecursive) {\r\n let allselect = true;\r\n let alldeselect = true;\r\n let oneselect = false;\r\n let isindeterminate = false;\r\n\r\n if (item[this.childField]) {\r\n for (let index = 0; index < item[this.childField].length; index++) {\r\n if (item[this.childField][index].select === true) {\r\n alldeselect = false;\r\n oneselect = true;\r\n }\r\n if (item[this.childField][index].select === false || item[this.childField][index].select === undefined) {\r\n allselect = false;\r\n }\r\n if (item[this.childField][index].select === null) {\r\n isindeterminate = true;\r\n alldeselect = false;\r\n oneselect = true;\r\n allselect = false;\r\n }\r\n }\r\n }\r\n\r\n if (oneselect || (isindeterminate && !allselect)) {\r\n item.select = null;\r\n }\r\n if (allselect === true) {\r\n item.select = true;\r\n }\r\n if (alldeselect === true) {\r\n item.select = false;\r\n }\r\n if (item.parentNode && item.parentNode[this.childField] && item.parentNode[this.childField].length > 0) {\r\n this.changeParentSelect(item.parentNode);\r\n }\r\n }\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.onItemClick.subscribe((data: AXTreeViewItemClick) => {\r\n if (!data.cancel) {\r\n this.toggleNode(data.item, data.flag);\r\n }\r\n })\r\n }\r\n\r\n itemdbClick(e: MouseEvent, item) {\r\n if (this.selectionMode == 'single') {\r\n this.handleOnNodeClick(e, item, true);\r\n }\r\n }\r\n\r\n\r\n handleOnNodeClick(e: MouseEvent, item, flag = false) {\r\n this.onItemClick.emit({\r\n component: this,\r\n htmlEvent: e,\r\n item,\r\n flag\r\n })\r\n }\r\n\r\n toggleNode(item, flag = false) {\r\n //item[this.hasChildField] === false &&\r\n if (this.selectionMode === 'single' && !flag) {\r\n if (this.selectionLevel == 'nodes' && item.hasChild == true) {\r\n\r\n } else {\r\n this.internalSelectItem(item);\r\n }\r\n\r\n } else {\r\n item.toggle = !item.toggle;\r\n if (this.selectionMode === 'single') {\r\n if (this.selectionLevel == 'nodes' && item.hasChild == true) {\r\n\r\n } else {\r\n this.internalSelectItem(item);\r\n }\r\n }\r\n\r\n if (item[this.hasChildField] === true && item.loaded !== true && this.lazyLoading) {\r\n this.itemRow = item;\r\n const uid = Math.floor(Math.random() * 100000000);\r\n item.requestId = uid;\r\n this.listLoad.push(item);\r\n this._contentDataSource.fetch(item);\r\n this.showLoading(this.itemRow);\r\n }\r\n if (item.toggle && item[this.hasChildField] === true) {\r\n item.open = true;\r\n this.onItemOpening.emit(this.makeNode(item));\r\n } else if (!item.toggle && item[this.hasChildField] === true) {\r\n item.open = false;\r\n this.onItemClosing.emit(this.makeNode(item));\r\n }\r\n }\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this._contentDataSource.fetch(null);\r\n this._contentDataSource.onDataReceived.subscribe((_data) => {\r\n\r\n if (this.list.length === 0) {\r\n this.hideLoading(null);\r\n this.list = _data.data.result;\r\n\r\n this.list.forEach((el) => {\r\n el.select = false;\r\n\r\n if (this.selectionLevel == 'nodes' && el[this.hasChildField] == true) {\r\n el.disabledCheckBox = true;\r\n }\r\n\r\n if (this.selectionLevel == 'parents' && el[this.hasChildField] == false) {\r\n el.disabledCheckBox = true;\r\n }\r\n\r\n if (this.seletedKeyFields.length > 0) {\r\n this.seletedKeyFields.forEach((n: any) => {\r\n if (n.includes(el[this.keyField])) {\r\n if (el[this.hasChildField] == true) {\r\n // if (this.selectNodesRecursive) {\r\n this.open(el);\r\n // }\r\n\r\n } else {\r\n this.selectItem(el);\r\n }\r\n }\r\n })\r\n } else if (this.selectedFieldName != null) {\r\n if (el[this.hasChildField] == true && el[this.selectedFieldName] == true) {\r\n // if (this.selectNodesRecursive) {\r\n this.open(el);\r\n // }\r\n\r\n } else if (el[this.selectedFieldName] == true) {\r\n this.selectItem(el);\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n\r\n });\r\n } else {\r\n this.itemRow = this.listLoad.filter((c) => c.requestId === _data.data.requestId)[0];\r\n this.listLoad = this.listLoad.filter((c) => c.requestId !== _data.data.requestId);\r\n if (this.itemRow !== undefined) {\r\n this.hideLoading(this.itemRow);\r\n const result = _data.data.result;\r\n\r\n if (this.list.length !== 0) {\r\n\r\n if (this.itemRow[this.childField] && this.itemRow[this.childField].length > 0) {\r\n result.forEach((el) => {\r\n this.itemRow[this.childField][this.itemRow[this.childField].length] = el;\r\n });\r\n } else {\r\n this.itemRow[this.childField] = result;\r\n }\r\n\r\n for (let i = 0; i < result.length; i++) {\r\n if (this.selectionLevel == 'nodes' && result[i][this.hasChildField] == true) {\r\n result[i].disabledCheckBox = true;\r\n }\r\n\r\n if (this.selectionLevel == 'parents' && result[i][this.hasChildField] == false) {\r\n result[i].disabledCheckBox = true;\r\n }\r\n if (this.selectionMode !== 'single' && this.selectNodesRecursive) {\r\n result[i].select = this.itemRow.select === (undefined || null) ? false : this.itemRow.select;\r\n\r\n if (\r\n this.itemRow.select === true &&\r\n (this.selectionMode == 'multiple') &&\r\n result[i][this.hasChildField] === false\r\n ) {\r\n this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] !== result[i][this.keyField]);\r\n this.selectedItems.push(result[i]);\r\n }\r\n } else {\r\n result[i].select = false;\r\n }\r\n result[i].parentNode = this.itemRow;\r\n\r\n\r\n if (this.seletedKeyFields.length > 0) {\r\n this.seletedKeyFields.forEach((n: any) => {\r\n if (n.includes(result[i][this.keyField])) {\r\n if (result[i][this.hasChildField] == true) {\r\n // if (this.selectNodesRecursive) {\r\n this.open(result[i]);\r\n // }\r\n\r\n } else {\r\n this.selectItem(result[i]);\r\n }\r\n }\r\n })\r\n } else if (this.selectedFieldName != null) {\r\n if (result[i][this.hasChildField] == true && result[i][this.selectedFieldName] == true) {\r\n // if (this.selectNodesRecursive) {\r\n this.open(result[i]);\r\n // }\r\n\r\n } else if (result[i][this.selectedFieldName] == true) {\r\n this.selectItem(result[i]);\r\n }\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n this.itemRow.loaded = true;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.selectionMode !== 'single') {\r\n this.showSelectBox = true;\r\n }\r\n this.showContextMenu = true;\r\n }\r\n\r\n // onItemClick(e, v) {\r\n\r\n // }\r\n\r\n onDragStart(e: Event, v) {\r\n if (!this.lockedDrag) {\r\n this.itemDrag = v;\r\n this.onItemDrag.emit(v);\r\n }\r\n e.stopImmediatePropagation();\r\n }\r\n\r\n onDragEnd(e, v) {\r\n if (!this.lockedDrag) {\r\n this.itemDrop = v;\r\n }\r\n e.stopImmediatePropagation();\r\n }\r\n\r\n drop(e) {\r\n // this.onItemDrop.emit(this.itemDrop);\r\n if (!this.lockedDrag) {\r\n this.validDrop = true;\r\n this.sameChilde(this.itemDrag, this.itemDrop);\r\n if (this.validDrop && this.itemDrag[this.keyField] !== this.itemDrop[this.keyField] && this.itemDrag.parentNode !== this.itemDrop) {\r\n const movedEvent: AXTreeViewItemMovedEvent = new AXTreeViewItemMovedEvent();\r\n movedEvent.source = this.makeNode(this.itemDrag);\r\n movedEvent.target = this.makeNode(this.itemDrop);\r\n this.lockedDrag = true;\r\n this.showLoading(this.itemDrag);\r\n this.showLoading(this.itemDrop);\r\n movedEvent.resolve = (value: boolean) => {\r\n this.hideLoading(this.itemDrag);\r\n this.hideLoading(this.itemDrop);\r\n if (value) {\r\n this.dragDropItem(this.itemDrag, this.itemDrop);\r\n } else {\r\n this.lockedDrag = false;\r\n }\r\n };\r\n this.onItemMoved.emit(movedEvent);\r\n }\r\n }\r\n\r\n e.stopImmediatePropagation();\r\n }\r\n\r\n sameChilde(parent, child) {\r\n if (parent[this.childField] && parent[this.childField].length > 0) {\r\n for (let index = 0; index < parent[this.childField].length; index++) {\r\n if (parent[this.childField][index][this.keyField] == child[this.keyField]) {\r\n this.validDrop = false;\r\n }\r\n if (parent[this.childField][index][this.childField] && parent[this.childField][index][this.childField].length > 0) {\r\n this.sameChilde(parent[this.childField][index], child);\r\n }\r\n }\r\n } else if (parent[this.keyField] == child[this.keyField]) {\r\n this.validDrop = false;\r\n }\r\n }\r\n\r\n dragDropItem(itemChild, itemParent) {\r\n if (this.selectionLevel == 'nodes') {\r\n itemParent.disabledCheckBox = true;\r\n }\r\n\r\n if (itemChild.parentNode) {\r\n itemChild.parentNode[this.childField] = itemChild.parentNode[this.childField].filter((c) => c[this.keyField] !== itemChild[this.keyField]);\r\n } else {\r\n this.list = this.list.filter((c) => c[this.keyField] !== itemChild[this.keyField]);\r\n }\r\n itemChild.parentNode = itemParent;\r\n if (itemParent[this.childField] && itemParent[this.childField].length > 0) {\r\n itemParent[this.childField][itemParent[this.childField].length] = itemChild;\r\n } else {\r\n itemParent[this.childField] = [];\r\n itemParent[this.childField][0] = itemChild;\r\n if (itemParent[this.hasChildField] === true) {\r\n this.toggleNode(itemParent);\r\n } else {\r\n itemParent.toggle = !itemParent.toggle;\r\n itemParent.loaded = true;\r\n }\r\n itemParent[this.hasChildField] = true;\r\n }\r\n if (itemChild.parentNode && this.selectionMode !== 'single') {\r\n this.changeParentSelect(itemChild.parentNode);\r\n }\r\n this.lockedDrag = false;\r\n\r\n }\r\n\r\n private listChange(field, value) {\r\n for (let index = 0; index < this.list.length; index++) {\r\n this.changeChiled(this.list[index], field, value);\r\n }\r\n this.loadAllChildren = false;\r\n }\r\n\r\n private changeChiled(item, field, value) {\r\n if (field === 'toggle' && (item.loaded === false || item.loaded === undefined)) {\r\n if (this.loadAllChildren === true) {\r\n this.toggleNode(item);\r\n item[field] = value;\r\n }\r\n } else {\r\n item[field] = value;\r\n if (field === 'select' && item[this.hasChildField] === false && value === true) {\r\n this.selectedItems.push(item);\r\n }\r\n }\r\n if (field === 'select') {\r\n item.indeterminate = false;\r\n }\r\n if (item[this.hasChildField] === true && item[this.childField] && item[this.childField].length > 0) {\r\n item[this.childField].forEach((element) => {\r\n this.changeChiled(element, field, value);\r\n });\r\n }\r\n }\r\n\r\n private showLoading(item): void {\r\n item.loading = true;\r\n }\r\n\r\n private hideLoading(item): void {\r\n if (item != null) {\r\n item.loading = false;\r\n }\r\n }\r\n\r\n public openAll(loadAll: boolean = false) {\r\n // if (loadAll) {\r\n // this.loadAllChildren = true;\r\n // this.listChange('toggle', true);\r\n //} else {\r\n this.listChange('toggle', true);\r\n // }\r\n }\r\n\r\n public selectItem(item) {\r\n if (item['select'] != true) {\r\n this.internalSelectItem(item, false);\r\n }\r\n }\r\n\r\n\r\n public open(item) {\r\n\r\n if (item['toggle'] !== true) {\r\n this.toggleNode(item, true);\r\n\r\n }\r\n\r\n }\r\n\r\n public scrolIntoView(item) {\r\n let element = document.querySelector(`li[data-id='${item[this.keyField]}']`);\r\n element.scrollIntoView();\r\n }\r\n\r\n public closeAll() {\r\n this.listChange('toggle', false);\r\n }\r\n\r\n public selectAll() {\r\n if (this.selectionMode !== 'single') {\r\n this.listChange('select', true);\r\n }\r\n }\r\n\r\n public unSelectAll() {\r\n if (this.selectionMode !== 'single') {\r\n this.listChange('select', false);\r\n }\r\n this.selectedItems = [];\r\n }\r\n\r\n public getSelectedNodes(): AXTreeViewNode[] {\r\n const selectItemsNode = [];\r\n this.selectedItems.forEach((e) => {\r\n selectItemsNode.push(this.makeNode(e));\r\n });\r\n return selectItemsNode;\r\n }\r\n\r\n public getSelectedParents(): AXTreeViewNode[] {\r\n const selectItemsParent = [];\r\n this.selectedParents.forEach((e) => {\r\n selectItemsParent.push(this.makeNode(e));\r\n });\r\n return selectItemsParent;\r\n }\r\n\r\n getParentsId(item) {\r\n let keyFields = []\r\n keyFields.push(item[this.keyField]);\r\n if (item.parentNode) {\r\n keyFields.push(...this.getParentsId(item.parentNode));\r\n\r\n }\r\n return keyFields;\r\n }\r\n\r\n public getSelectedKeyFields() {\r\n let keyFields = [];\r\n this.selectedItems.forEach(elm => {\r\n var Ids = this.getParentsId(elm);\r\n if (Ids) {\r\n keyFields.push(Ids)\r\n }\r\n });\r\n return keyFields;\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { AXTreeViewComponent } from './tree-view.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXDataSourceModule } from '../data-source/datasource.module';\r\nimport { AXCheckBoxModule } from '../checkbox/checkbox.module';\r\nimport { AXContextMenuModule } from '../context-menu/context-menu.module';\r\n\r\n\r\n@NgModule({\r\n declarations: [AXTreeViewComponent],\r\n imports: [AXDataSourceModule, CommonModule, AXCheckBoxModule, AXContextMenuModule],\r\n exports: [AXTreeViewComponent],\r\n providers: []\r\n})\r\n\r\nexport class AXTreeViewModule { }","import {\r\n Component,\r\n ViewChild,\r\n Input,\r\n ElementRef,\r\n ViewEncapsulation,\r\n TemplateRef,\r\n Renderer2,\r\n EventEmitter,\r\n Output,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { AXUploadFileLoadEvent, AXUploadFileProgressEvent } from './upload-file.events';\r\nimport { AXProgressBarComponent } from '../progress-bar/progress-bar.component';\r\nimport { AXBaseTextComponent, AXElementSize, AXBaseSizableComponent, AXBaseComponent } from '../base/element.class';\r\nimport { AXRenderService } from '@acorex/core';\r\n\r\n@Component({\r\n selector: 'ax-upload-file',\r\n templateUrl: './upload-file.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n host: { style: 'display: block; width:100%; position: relative' }\r\n})\r\nexport class AXUploadFileComponent extends AXBaseComponent implements AXBaseSizableComponent {\r\n private overlayDiv: HTMLElement;\r\n\r\n @Input()\r\n dropRef: HTMLElement;\r\n\r\n @Input()\r\n progressRef: HTMLElement;\r\n\r\n @Input()\r\n label: string;\r\n\r\n @Input()\r\n size: AXElementSize = \"md\";\r\n\r\n @ViewChild('fileInput') fileInput: ElementRef;\r\n\r\n @Input()\r\n type: 'box' | 'inline' | 'hidden' = 'inline';\r\n\r\n @Input()\r\n public template: TemplateRef<any>;\r\n\r\n @Input() disabled: boolean = false;\r\n @Output()\r\n onLoad: EventEmitter<AXUploadFileLoadEvent> = new EventEmitter<AXUploadFileLoadEvent>();\r\n\r\n @Output()\r\n onProgress: EventEmitter<AXUploadFileProgressEvent> = new EventEmitter<AXUploadFileProgressEvent>();\r\n\r\n files: File[] = [];\r\n focus() { }\r\n\r\n fileName: string = '';\r\n constructor(\r\n private el: ElementRef<HTMLElement>,\r\n private injectionService: AXRenderService,\r\n private rendrer: Renderer2,\r\n protected cdr: ChangeDetectorRef\r\n ) {\r\n super();\r\n }\r\n\r\n\r\n onDeleteClick(e) {\r\n e.stopPropagation();\r\n }\r\n\r\n onFileChange(e) {\r\n const files = e.target.files;\r\n this.addFile(files[0]);\r\n (this.fileInput.nativeElement as HTMLInputElement).value = null;\r\n }\r\n\r\n open() {\r\n this.fileInput.nativeElement.click();\r\n }\r\n remove() {\r\n this.files = [];\r\n }\r\n ngAfterViewInit(): void {\r\n if (this.dropRef != null) {\r\n } else {\r\n this.dropRef = this.el.nativeElement;\r\n }\r\n //\r\n if (this.progressRef != null) {\r\n } else {\r\n this.progressRef = this.el.nativeElement;\r\n }\r\n //\r\n if (this.type === 'hidden' || this.type === 'box') {\r\n this.overlayDiv = this.rendrer.createElement('div') as HTMLElement;\r\n this.overlayDiv.classList.add('overlay');\r\n this.overlayDiv.innerHTML = `\r\n <div class=\"icon-wrapper\">\r\n <i class=\"far fa-cloud-upload-alt fa-3x\"></i>\r\n <span>Drop File(s) Here</span>\r\n </div>\r\n `;\r\n this.overlayDiv.addEventListener('drag', this.handleOverlayDragOver);\r\n this.overlayDiv.addEventListener('dragover', this.handleOverlayDragOver);\r\n this.overlayDiv.addEventListener('dragleave', this.handleOverlayDragOver);\r\n this.rendrer.appendChild(this.dropRef, this.overlayDiv);\r\n }\r\n //\r\n this.dropRef.classList.add('ax-upload-drop-over');\r\n this.dropRef.addEventListener('dragover', this.handleDragOver.bind(this));\r\n this.dropRef.addEventListener('dragleave', this.handleDragLeave.bind(this));\r\n this.dropRef.addEventListener('drop', this.handleDrop.bind(this));\r\n }\r\n\r\n private handleOverlayDragOver(e: DragEvent) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return false;\r\n }\r\n\r\n private handleDragOver(e: DragEvent) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.overlayDiv.classList.add('show');\r\n return false;\r\n }\r\n\r\n private handleDragLeave(e: DragEvent) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.overlayDiv.classList.remove('show');\r\n return false;\r\n }\r\n\r\n handleDrop(e: DragEvent) {\r\n this.handleDragLeave(e);\r\n for (let i = 0; i < e.dataTransfer.files.length; i++) {\r\n const file = e.dataTransfer.files[i];\r\n this.addFile(file);\r\n }\r\n }\r\n\r\n private addFile(file: File) {\r\n const progressDiv = this.rendrer.createElement('div') as HTMLElement;\r\n progressDiv.classList.add('ax-upload-progress-panel');\r\n const progressLabel = this.rendrer.createElement('small') as HTMLElement;\r\n progressLabel.innerText = file.name;\r\n this.fileName = file.name;\r\n this.rendrer.appendChild(this.progressRef, progressDiv);\r\n const com = this.injectionService.appendComponent(AXProgressBarComponent, { progress: 0 }, progressDiv).instance as AXProgressBarComponent;\r\n this.rendrer.appendChild(progressDiv, progressLabel);\r\n\r\n const reader = new FileReader();\r\n reader.addEventListener('load', (e) => {\r\n this.onLoad.emit({\r\n file,\r\n data: (e as any).target.result\r\n });\r\n //\r\n // Fake Upload\r\n let pv = 0;\r\n let uploaded = 0;\r\n const intv = setInterval(() => {\r\n uploaded += 1024 * 1000;\r\n if (uploaded > e.total) {\r\n uploaded = e.total;\r\n }\r\n pv = Math.ceil((uploaded / e.total) * 100);\r\n com.progress = pv;\r\n this.onProgress.emit({\r\n file,\r\n total: e.total,\r\n uploaded,\r\n value: pv\r\n });\r\n //\r\n if (com.progress >= 100) {\r\n clearInterval(intv);\r\n setTimeout(() => {\r\n this.rendrer.removeChild(this.progressRef, progressDiv);\r\n }, 1000);\r\n }\r\n }, 100);\r\n });\r\n reader.readAsDataURL(file);\r\n this.files.push(file);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXUploadFileComponent } from './upload-file.component';\r\nimport { AXButtonModule } from '../button/button.module';\r\nimport { AXTextBoxModule } from '../textbox/textbox.module';\r\nimport { AXProgressBarModule } from '../progress-bar/progress-bar.module';\r\nimport { AXLabelModule } from '../label/label.module';\r\nimport { AXFormGroupModule } from '../form-group/form-group.module';\r\n\r\n@NgModule({\r\n declarations: [AXUploadFileComponent],\r\n imports: [CommonModule, AXButtonModule, AXTextBoxModule, AXProgressBarModule, AXLabelModule, AXFormGroupModule],\r\n exports: [AXUploadFileComponent],\r\n providers: []\r\n})\r\nexport class AXUploadFileModule {}\r\n","import { Component, Input, Output, EventEmitter, ContentChild, TemplateRef, ContentChildren, QueryList } from \"@angular/core\";\r\nimport { AXPanelBoxComponent } from \"../panel-box/panel-box.component\";\r\nimport { AXBaseComponent } from '../base/element.class';\r\n\r\n@Component({\r\n selector: \"ax-accordion\",\r\n template: \"<ng-content></ng-content>\",\r\n})\r\nexport class AXAccordionComponent extends AXBaseComponent {\r\n\r\n @ContentChildren(AXPanelBoxComponent)\r\n panels: QueryList<AXPanelBoxComponent>;\r\n\r\n @Input()\r\n multiple: boolean = false;\r\n\r\n constructor() {\r\n super()\r\n }\r\n\r\n ngAfterContentInit() {\r\n this.panels.forEach(p => {\r\n if (this.multiple == false)\r\n p.collapsed = true;\r\n p.collapsedChange.subscribe((v: boolean) => {\r\n this.handleCollapsedChanged(p, v);\r\n });\r\n });\r\n if (this.multiple == false)\r\n this.panels.first.collapsed = false;\r\n }\r\n\r\n private handleCollapsedChanged(panel: AXPanelBoxComponent, value: boolean) {\r\n if (value == false && this.multiple == false) {\r\n this.panels.forEach(p => {\r\n if (p != panel)\r\n p.collapsed = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { AXAccordionComponent } from \"./accordion.component\";\r\nimport { AXPanelBoxModule } from \"../panel-box/panel-box.module\";\r\n@NgModule({\r\n declarations: [AXAccordionComponent],\r\n imports: [CommonModule, AXPanelBoxModule],\r\n exports: [AXAccordionComponent],\r\n providers: []\r\n})\r\nexport class AXAccordionModule { }\r\n","import { Input, Output, EventEmitter, ChangeDetectorRef } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { AXValidatableComponent } from '../base/element.class';\r\n\r\nexport type AXDataType = 'string' | 'number' | 'date' | 'boolean' | 'object';\r\nexport type AXControlType = 'textbox' | 'numberbox' | 'datePicker' | 'switch' | 'custom';\r\n\r\n\r\n\r\nexport interface AXPropertyDef {\r\n name: string;\r\n title: string;\r\n hint?: string;\r\n defaultValue?: any;\r\n editorClass: any;\r\n editorOptions?: any;\r\n visible?: boolean | (() => boolean);\r\n order?: number;\r\n}\r\n\r\nexport interface AXPropertyEditorDef {\r\n title: string;\r\n hint?: string;\r\n defaultValue?: any;\r\n editorClass: any;\r\n editorOptions?: any;\r\n visible?: boolean | (() => boolean);\r\n order?: number;\r\n}\r\n\r\n\r\n\r\n\r\nexport interface AXPropertyConfig {\r\n property: AXPropertyDef;\r\n value: any;\r\n}\r\n\r\n\r\nexport interface AXProperyEditorValueChangeEvent {\r\n property: AXPropertyDef;\r\n value: any;\r\n}\r\n\r\n\r\n\r\nexport abstract class AXProperyEditorComponent<T>{\r\n\r\n\r\n readonly: boolean = false;\r\n initiated: boolean = false;\r\n\r\n\r\n validatableComponentRegistered: Subject<AXValidatableComponent> = new Subject<AXValidatableComponent>();\r\n\r\n\r\n registerForValidationForm(component?: AXValidatableComponent) {\r\n this.validatableComponentRegistered.next(component);\r\n }\r\n\r\n\r\n @Output()\r\n valueChange: EventEmitter<T> = new EventEmitter<T>();\r\n\r\n private _value: T;\r\n @Input()\r\n public get value(): T {\r\n return this._value;\r\n }\r\n\r\n public set value(v: T) {\r\n if (v !== this._value) {\r\n this._value = v;\r\n this.valueChange.emit(v);\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n constructor(protected cdr: ChangeDetectorRef) {\r\n }\r\n\r\n uid: string;\r\n\r\n handleValueChange(v: T) {\r\n this.value = v;\r\n }\r\n\r\n initiat(): void {\r\n\r\n }\r\n\r\n\r\n}\r\n\r\n\r\n\r\nexport class AXPropertyDecorator {\r\n cls: any;\r\n property: string;\r\n options: any;\r\n\r\n constructor(\r\n cls: any,\r\n property: string,\r\n options: any) {\r\n this.cls = cls;\r\n this.property = property;\r\n this.options = options;\r\n }\r\n}\r\n\r\n\r\n// @dynamic\r\nexport class AXPropertyDecorators {\r\n private static REGISTRY = new Array<AXPropertyDecorator>();\r\n\r\n static register(cls: string, property: string, options?: any) {\r\n const item = AXPropertyDecorators.REGISTRY.find(c => c.cls === cls && c.property === property);\r\n if (item) {\r\n item.options = options;\r\n }\r\n else {\r\n AXPropertyDecorators.REGISTRY.push(new AXPropertyDecorator(cls, property, options));\r\n }\r\n }\r\n\r\n\r\n\r\n static has(cls: string, property: string): boolean {\r\n return AXPropertyDecorators.REGISTRY.some(c => c.cls === cls && c.property === property);\r\n }\r\n\r\n static get(cls: string, property: string): AXPropertyDecorator {\r\n return AXPropertyDecorators.REGISTRY.find(c => c.cls === cls && c.property === property);\r\n }\r\n\r\n static isValid(property: string): boolean {\r\n if (property) {\r\n return AXPropertyDecorators.REGISTRY.some(c => c.property === property);\r\n }\r\n return false;\r\n }\r\n\r\n static getProperties(target: any): AXPropertyDecorator[] {\r\n const list: AXPropertyDecorator[] = [];\r\n const p: any[] = Array<any>();\r\n let superClass = Object.getPrototypeOf(target);\r\n while (superClass.constructor.name !== 'Object') {\r\n p.push(superClass.constructor);\r\n superClass = Object.getPrototypeOf(superClass);\r\n }\r\n list.push(...AXPropertyDecorators.REGISTRY.filter(c => p.includes(c.cls.constructor)));\r\n return list;\r\n }\r\n}\r\n\r\n\r\n\r\nexport function propertyEditor(options: AXPropertyEditorDef) {\r\n return (target: any, key: string) => {\r\n (options as any).name = key;\r\n AXPropertyDecorators.register(target, key, options);\r\n };\r\n}\r\n\r\n","import { Directive, ViewContainerRef, ComponentFactoryResolver, Input, Output, EventEmitter } from '@angular/core';\r\nimport { AXProperyEditorComponent, AXProperyEditorValueChangeEvent, AXPropertyConfig } from './property-editor.class';\r\nimport { AXObjectUtil, AXRenderService, getPropByPath } from '@acorex/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { AXValidationFormComponent } from '../validation/validation-form.component';\r\n\r\n@Directive({\r\n selector: '[ax-property-editor-renderer]',\r\n})\r\nexport class AXPropertyEditorRendererDirective {\r\n\r\n private instance: AXProperyEditorComponent<any>;\r\n\r\n\r\n @Input()\r\n property: AXPropertyConfig;\r\n\r\n\r\n @Input()\r\n readonly: boolean = false;\r\n\r\n @Input()\r\n validationForm: AXValidationFormComponent;\r\n\r\n\r\n\r\n private _context: any;\r\n @Input()\r\n public get context(): any {\r\n return this._context;\r\n }\r\n public set context(v: any) {\r\n this._context = v;\r\n if (v && this.instance) {\r\n this.assignProps();\r\n }\r\n }\r\n\r\n @Input()\r\n host: any;\r\n\r\n\r\n @Output()\r\n onValueChange: EventEmitter<AXProperyEditorValueChangeEvent> = new EventEmitter<AXProperyEditorValueChangeEvent>();\r\n\r\n private subscription: Subscription;\r\n\r\n constructor(\r\n private target: ViewContainerRef,\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private renderService: AXRenderService\r\n ) {\r\n\r\n }\r\n\r\n\r\n clear() {\r\n this.instance.value = null;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.createComponent();\r\n }\r\n\r\n\r\n\r\n createComponent() {\r\n this.renderService.findLoadedComponentByRoute(this.property.property.editorClass).then(c => {\r\n if (c) {\r\n const factory = this.componentFactoryResolver.resolveComponentFactory(c.component);\r\n const cmpRef = this.target.createComponent(factory);\r\n this.instance = cmpRef.instance as AXProperyEditorComponent<any>;\r\n this.subscription = this.instance.valueChange.subscribe(value => {\r\n if (this.instance.initiated === true) {\r\n this.property.value = value;\r\n this.onValueChange.emit(this.property);\r\n }\r\n });\r\n // \r\n if (this.validationForm) {\r\n this.instance.validatableComponentRegistered.subscribe(v => {\r\n this.validationForm.addWidget(v);\r\n });\r\n }\r\n //\r\n //setTimeout(() => {\r\n this.instance.readonly = this.readonly;\r\n this.assignProps();\r\n this.instance.value = this.property.value;\r\n this.instance.initiat();\r\n cmpRef.changeDetectorRef.markForCheck();\r\n //});\r\n }\r\n });\r\n }\r\n\r\n\r\n private assignProps() {\r\n const options = this.property.property.editorOptions;\r\n if (!options) {\r\n return;\r\n }\r\n for (const p in options) {\r\n if (options.hasOwnProperty(p)) {\r\n const opt = options[p];\r\n if (typeof opt === 'string' && opt.startsWith('$$')) {\r\n const key = opt.substring(2);\r\n const val = getPropByPath(this.context, key);\r\n if (val) {\r\n this.instance[p] = typeof val === 'function' ? val({ data: this.context, host: this.host }, this.property) : val;\r\n }\r\n }\r\n else {\r\n const res = typeof opt === 'function' ? opt({ data: this.context, host: this.host }, this.property) : opt;\r\n if (res instanceof Promise) {\r\n res.then(v => {\r\n this.instance[p] = v;\r\n });\r\n }\r\n else {\r\n this.instance[p] = res;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n}","import { Component, ChangeDetectorRef, ViewChild } from '@angular/core';\r\nimport { AXTextBoxComponent } from '../../../textbox/textbox.component';\r\nimport { AXValidation } from '../../../validation/validation.component';\r\nimport { AXProperyEditorComponent } from '../../property-editor.class';\r\n\r\n@Component({\r\n templateUrl: './text.editor.html',\r\n})\r\nexport class AXTextPropertyEditorComponent extends AXProperyEditorComponent<string> {\r\n\r\n\r\n @ViewChild(AXTextBoxComponent)\r\n private textBox: AXTextBoxComponent;\r\n\r\n\r\n validation: AXValidation;\r\n clearButton: boolean = false;\r\n\r\n\r\n constructor(protected cdr: ChangeDetectorRef) {\r\n super(cdr);\r\n }\r\n\r\n\r\n handleValueChange(e: any) {\r\n super.handleValueChange(e.value);\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n this.registerForValidationForm(this.textBox);\r\n this.initiated = true;\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXTextPropertyEditorComponent } from './text.editor';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXTextBoxModule } from '../../../textbox/textbox.module';\r\nimport { AXValidationModule } from '../../../validation/validation.module';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [AXTextPropertyEditorComponent],\r\n imports: [CommonModule, FormsModule, AXTextBoxModule, AXValidationModule],\r\n exports: [AXTextPropertyEditorComponent],\r\n entryComponents: [AXTextPropertyEditorComponent],\r\n providers: [],\r\n})\r\nexport class AXTextPropertyEditorModule {\r\n constructor() {\r\n }\r\n}","import { Component, OnInit, ChangeDetectorRef, ViewChild } from '@angular/core';\r\nimport { AXNumberBoxComponent } from '../../../number-box/number-box.component';\r\nimport { AXValidation } from '../../../validation/validation.component';\r\nimport { AXProperyEditorComponent } from '../../property-editor.class';\r\n\r\n@Component({\r\n template: `\r\n <ax-number-box (onValueChanged)=\"handleValueChange($event)\"\r\n [value]=\"value\"\r\n [showSeparator]=\"showSeparator\"\r\n [decimalNumber]=\"decimalNumber\"\r\n [min]=\"minValue\"\r\n [max]=\"maxValue\"\r\n [allowClear]=\"clearButton\"\r\n >\r\n <ax-validation [rules]=\"validation?.rules\">\r\n </ax-validation>\r\n </ax-number-box>\r\n `,\r\n})\r\nexport class AXNumberBoxPropertyEditorComponent extends AXProperyEditorComponent<number> {\r\n\r\n\r\n showSeparator: boolean = true;\r\n decimalNumber: number = 2;\r\n minValue?: number = null;\r\n maxValue?: number = null;\r\n validation: AXValidation;\r\n clearButton: boolean = false;\r\n\r\n @ViewChild(AXNumberBoxComponent)\r\n private textBox: AXNumberBoxComponent;\r\n\r\n constructor(protected cdr: ChangeDetectorRef) {\r\n super(cdr);\r\n }\r\n\r\n handleValueChange(e: any) {\r\n super.handleValueChange(e.value);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.initiated = true;\r\n this.registerForValidationForm(this.textBox);\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 { AXNumberBoxPropertyEditorComponent } from './number.editor';\r\nimport { AXNumberBoxModule } from '../../../number-box/number-box.module';\r\nimport { AXValidationModule } from '../../../validation/validation.module';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [AXNumberBoxPropertyEditorComponent],\r\n imports: [CommonModule, FormsModule, AXNumberBoxModule,AXValidationModule],\r\n exports: [AXNumberBoxPropertyEditorComponent],\r\n entryComponents: [AXNumberBoxPropertyEditorComponent],\r\n providers: [],\r\n})\r\nexport class AXNumberBoxPropertyEditorModule {\r\n constructor() {\r\n }\r\n}","import { Component, OnInit, ChangeDetectorRef, ViewChild } from '@angular/core';\r\nimport { AXProperyEditorComponent } from '../../property-editor.class';\r\nimport { AXValidation } from '../../../validation/validation.component';\r\nimport { AXSelectBox2Component, AXSelectBoxValueChangedEvent } from '../../../selectbox/selectbox2.component';\r\n\r\n@Component({\r\n templateUrl: './selectbox.editor.html',\r\n})\r\nexport class AXSelectBoxPropertyEditorComponent extends AXProperyEditorComponent<any> {\r\n\r\n\r\n valueField: string = 'id';\r\n textField: string = 'text';\r\n selectionMode: string = 'single';\r\n selectionDataMode: string = 'value';\r\n allowSearch: boolean = true;\r\n allowNull: boolean = false;\r\n items: any = [];\r\n remoteOperation = false;\r\n\r\n validation: AXValidation;\r\n\r\n @ViewChild(AXSelectBox2Component, { static: true })\r\n selectBox: AXSelectBox2Component;\r\n\r\n constructor(protected cdr: ChangeDetectorRef) {\r\n super(cdr);\r\n }\r\n\r\n handleValueChange(e: AXSelectBoxValueChangedEvent) {\r\n super.handleValueChange(e.value);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.selectBox.refresh();\r\n this.registerForValidationForm(this.selectBox);\r\n }\r\n\r\n provideData = (e): Promise<any> => {\r\n return new Promise((resolve) => {\r\n const func = () => {\r\n if (Array.isArray(this.items)) {\r\n resolve(this.items);\r\n }\r\n else if (typeof this.items === 'function') {\r\n resolve(this.items(e));\r\n }\r\n else {\r\n resolve([]);\r\n }\r\n };\r\n const intVal = setInterval(() => {\r\n if (this.initiated) {\r\n func();\r\n clearInterval(intVal);\r\n }\r\n },50);\r\n });\r\n }\r\n\r\n initiat() {\r\n this.initiated = true;\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 { AXSelectBoxPropertyEditorComponent } from './selectbox.editor';\r\nimport { AXSelectBoxModule } from '../../../selectbox/selectbox.module';\r\nimport { AXDataSourceModule } from '../../../data-source/datasource.module';\r\nimport { AXValidationModule } from '../../../validation/validation.module';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [AXSelectBoxPropertyEditorComponent],\r\n imports: [CommonModule, FormsModule, AXSelectBoxModule, AXDataSourceModule, AXValidationModule],\r\n exports: [AXSelectBoxPropertyEditorComponent],\r\n entryComponents: [AXSelectBoxPropertyEditorComponent],\r\n providers: [],\r\n})\r\nexport class AXSelectBoxPropertyEditorModule {\r\n constructor() {\r\n }\r\n}","import { Component, ChangeDetectorRef, ViewChild, TemplateRef, ChangeDetectionStrategy, ElementRef } from '@angular/core';\r\nimport { AXTranslator } from '@acorex/core';\r\nimport { AXProperyEditorComponent } from '../../property-editor.class';\r\nimport { AXPopupService } from '../../../popup/popup.service';\r\nimport { AXValidationFormComponent } from '../../../validation/validation-form.component';\r\n\r\n\r\nexport interface AXRangeModel {\r\n title: string;\r\n color?: string;\r\n minValue: number;\r\n maxValue: number;\r\n}\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './range.editor.html',\r\n styleUrls: ['./range.editor.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXRangePropertyEditorComponent extends AXProperyEditorComponent<AXRangeModel[]> {\r\n\r\n\r\n private form: AXValidationFormComponent;\r\n\r\n @ViewChild('tplEdit')\r\n tplEdit: TemplateRef<any>;\r\n\r\n ranges: AXRangeModel[] = [];\r\n\r\n editRow: AXRangeModel;\r\n\r\n showSeparator: boolean = true;\r\n decimalNumber: number = 2;\r\n\r\n constructor(protected cdr: ChangeDetectorRef, private popupService: AXPopupService) {\r\n super(cdr);\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.ranges = this.value ? JSON.parse(JSON.stringify(this.value)) : [];\r\n this.cdr.detectChanges();\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n this.initiated = true;\r\n }\r\n\r\n // getRanges() {\r\n // return this.ranges.sort((a, b) => a.minValue - b.minValue);\r\n // }\r\n\r\n onFormInit(e) {\r\n this.form = e.component;\r\n }\r\n\r\n\r\n handleEditClick(item: AXRangeModel) {\r\n this.editRow = Object.assign({}, item);\r\n const popup = this.popupService.open(this.tplEdit, {\r\n size: 'sm',\r\n footerButtons: [\r\n {\r\n name: 'confirm',\r\n text: AXTranslator.get('common.confirm'),\r\n style: 'success',\r\n submitBehavior: true,\r\n cancelBehavior: false,\r\n onClick: () => {\r\n this.form.validate().then(c => {\r\n if (c.result) {\r\n super.handleValueChange(this.ranges);\r\n Object.assign(item, this.editRow);\r\n popup.close();\r\n this.editRow = null;\r\n this.cdr.detectChanges();\r\n }\r\n });\r\n }\r\n },\r\n {\r\n name: 'cancel',\r\n text: AXTranslator.get('common.cancel'),\r\n style: 'danger blank',\r\n submitBehavior: false,\r\n cancelBehavior: true,\r\n onClick: () => {\r\n popup.close();\r\n this.editRow = null;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n ],\r\n title: AXTranslator.get('common.edit')\r\n });\r\n }\r\n\r\n handleAddClick() {\r\n const min = this.ranges?.length ? Math.max(...this.ranges.map(c => c.maxValue)) : 0;\r\n this.editRow = {\r\n title: '',\r\n minValue: min,\r\n maxValue: min + 1,\r\n color: null\r\n };\r\n const popup = this.popupService.open(this.tplEdit, {\r\n title: AXTranslator.get('common.add-item'),\r\n size: 'sm',\r\n footerButtons: [\r\n {\r\n name: 'confirm',\r\n text: AXTranslator.get('common.confirm'),\r\n style: 'success',\r\n submitBehavior: true,\r\n cancelBehavior: false,\r\n onClick: () => {\r\n this.form.validate().then(c => {\r\n if (c.result) {\r\n super.handleValueChange(this.ranges);\r\n this.ranges.push(this.editRow);\r\n popup.close();\r\n this.editRow = null;\r\n this.cdr.detectChanges();\r\n }\r\n });\r\n }\r\n },\r\n {\r\n name: 'cancel',\r\n text: AXTranslator.get('common.cancel'),\r\n style: 'danger blank',\r\n submitBehavior: false,\r\n cancelBehavior: true,\r\n onClick: () => {\r\n popup.close();\r\n this.editRow = null;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n ],\r\n });\r\n this.cdr.detectChanges();\r\n }\r\n\r\n handleRemoveClick(item: AXRangeModel) {\r\n this.ranges = this.ranges.filter(c => c.minValue !== item.minValue);\r\n super.handleValueChange(this.ranges);\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { AXValidatableComponent } from '../../base/element.class';\r\nimport { AXColorUtil, AXColor } from '@acorex/core';\r\n\r\n@Component({\r\n selector: 'ax-color-box',\r\n templateUrl: './color-box.component.html',\r\n styleUrls: ['./color-box.component.scss'],\r\n providers: [\r\n { provide: AXValidatableComponent, useExisting: AXColorBoxComponent },\r\n ]\r\n})\r\nexport class AXColorBoxComponent extends AXValidatableComponent {\r\n\r\n inputFormat: 'hex' | 'rgb' = 'hex';\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n @Output()\r\n onColorSelect: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @Output()\r\n valueChange: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n private _value: string;\r\n\r\n @Input()\r\n public get value(): string {\r\n return this._value;\r\n }\r\n public set value(v: string) {\r\n if (v != this._value) {\r\n this._value = v;\r\n if (v) {\r\n const selected = this.colors.find(c => c.code === v);\r\n if (selected) {\r\n this.selectColor(selected);\r\n }\r\n else {\r\n this.colors.forEach((i) => {\r\n i.active = false\r\n });\r\n }\r\n const rgb = AXColorUtil.hex2Rgb(v);\r\n\r\n if (rgb) {\r\n this.rColor = rgb.r;\r\n this.gColor = rgb.g;\r\n this.bColor = rgb.b;\r\n }\r\n }\r\n else {\r\n this.rColor = null;\r\n this.gColor = null;\r\n this.bColor = null;\r\n }\r\n this.valueChange.emit(v);\r\n }\r\n }\r\n\r\n rColor: number = 0;\r\n gColor: number = 0;\r\n bColor: number = 0;\r\n\r\n\r\n colors: AXColor[] = [\r\n // Pink ***************************\r\n {\r\n code: '#FFC0CB',\r\n },\r\n {\r\n code: '#FF69B4',\r\n },\r\n {\r\n code: '#DB7093',\r\n },\r\n {\r\n code: '#C71585',\r\n },\r\n // Purple ***************************\r\n {\r\n code: '#E6E6FA',\r\n },\r\n {\r\n code: '#D8BFD8',\r\n },\r\n {\r\n code: '#DDA0DD',\r\n },\r\n {\r\n code: '#DA70D6',\r\n },\r\n {\r\n code: '#FF00FF',\r\n },\r\n {\r\n code: '#BA55D3',\r\n },\r\n {\r\n code: '#9932CC',\r\n },\r\n {\r\n code: '#8A2BE2',\r\n\r\n },\r\n {\r\n code: '#8B008B',\r\n },\r\n {\r\n code: '#9370DB',\r\n },\r\n {\r\n code: '#7B68EE',\r\n },\r\n {\r\n code: '#6A5ACD',\r\n },\r\n {\r\n code: '#483D8B',\r\n },\r\n {\r\n code: '#663399',\r\n },\r\n {\r\n code: '#4B0082',\r\n },\r\n // Red ***************************\r\n {\r\n code: '#FFA07A',\r\n },\r\n {\r\n code: '#FA8072',\r\n },\r\n {\r\n code: '#F08080',\r\n },\r\n {\r\n code: '#CD5C5C',\r\n },\r\n {\r\n code: '#DC143C',\r\n },\r\n {\r\n code: '#FF0000',\r\n },\r\n {\r\n code: '#B22222',\r\n },\r\n {\r\n code: '#8B0000',\r\n },\r\n // Orange ***************************\r\n {\r\n code: '#FFA500',\r\n },\r\n {\r\n code: '#FF8C00',\r\n },\r\n {\r\n code: '#FF7F50',\r\n },\r\n {\r\n code: '#FF6347',\r\n },\r\n {\r\n code: '#FF4500',\r\n },\r\n {\r\n code: '#FFD700',\r\n },\r\n // Yellow ***************************\r\n {\r\n code: '#FFFF00',\r\n },\r\n {\r\n code: '#FFFFE0',\r\n },\r\n {\r\n code: '#FFFACD',\r\n },\r\n {\r\n code: '#FFEFD5',\r\n },\r\n {\r\n code: '#FFE4B5',\r\n },\r\n {\r\n code: '#FFDAB9',\r\n },\r\n {\r\n code: '#EEE8AA',\r\n },\r\n {\r\n code: '#F0E68C',\r\n },\r\n {\r\n code: '#BDB76B',\r\n },\r\n // Brown ***************************\r\n // {\r\n // code: '#FFF8DC'\r\n // },\r\n // {\r\n // code: '#FFEBCD'\r\n // },\r\n // {\r\n // code: '#FFE4C4'\r\n // },\r\n {\r\n code: '#FFDEAD'\r\n },\r\n {\r\n code: '#DEB887'\r\n },\r\n {\r\n code: '#D2B48C'\r\n },\r\n {\r\n code: '#DAA520'\r\n },\r\n {\r\n code: '#B8860B'\r\n },\r\n {\r\n code: '#CD853F'\r\n },\r\n {\r\n code: '#D2691E'\r\n },\r\n {\r\n code: '#8B4513'\r\n },\r\n {\r\n code: '#A0522D'\r\n },\r\n // Green ***************************\r\n {\r\n code: '#ADFF2F',\r\n },\r\n {\r\n code: '#7FFF00',\r\n },\r\n {\r\n code: '#00FF00',\r\n },\r\n {\r\n code: '#32CD32',\r\n },\r\n {\r\n code: '#98FB98',\r\n },\r\n {\r\n code: '#90EE90',\r\n },\r\n {\r\n code: '#00FA9A',\r\n },\r\n {\r\n code: '#00FF7F',\r\n },\r\n {\r\n code: '#3CB371',\r\n },\r\n {\r\n code: '#2E8B57',\r\n },\r\n {\r\n code: '#228B22',\r\n },\r\n {\r\n code: '#008000',\r\n },\r\n {\r\n code: '#006400',\r\n },\r\n {\r\n code: '#9ACD32',\r\n },\r\n {\r\n code: '#6B8E23',\r\n },\r\n {\r\n code: '#556B2F',\r\n },\r\n {\r\n code: '#66CDAA',\r\n },\r\n {\r\n code: '#8FBC8F',\r\n },\r\n {\r\n code: '#20B2AA',\r\n },\r\n {\r\n code: '#008B8B',\r\n },\r\n // Cyan ***************************\r\n\r\n {\r\n code: '#E0FFFF',\r\n },\r\n {\r\n code: '#AFEEEE',\r\n },\r\n {\r\n code: '#7FFFD4',\r\n },\r\n {\r\n code: '#40E0D0',\r\n },\r\n {\r\n code: '#48D1CC',\r\n },\r\n {\r\n code: '#00CED1',\r\n },\r\n // Blue ***************************\r\n {\r\n code: '#5F9EA0'\r\n },\r\n {\r\n code: '#4682B4'\r\n },\r\n {\r\n code: '#B0C4DE'\r\n },\r\n {\r\n code: '#ADD8E6'\r\n },\r\n {\r\n code: '#B0E0E6'\r\n },\r\n {\r\n code: '#87CEFA'\r\n },\r\n {\r\n code: '#87CEEB'\r\n },\r\n {\r\n code: '#6495ED'\r\n },\r\n {\r\n code: '#00BFFF'\r\n },\r\n {\r\n code: '#00FFFF',\r\n },\r\n {\r\n code: '#1E90FF'\r\n },\r\n {\r\n code: '#4169E1'\r\n },\r\n {\r\n code: '#0000FF'\r\n },\r\n {\r\n code: '#0000CD'\r\n },\r\n {\r\n code: '#00008B'\r\n },\r\n {\r\n code: '#191970'\r\n },\r\n // Gray\r\n {\r\n code: '#FFFFFF'\r\n },\r\n {\r\n code: '#DCDCDC'\r\n },\r\n {\r\n code: '#808080'\r\n },\r\n {\r\n code: '#708090'\r\n },\r\n {\r\n code: '#000000'\r\n },\r\n ];\r\n\r\n\r\n // validate(): Promise<IValidationRuleResult> {\r\n\r\n // return new Promise<IValidationRuleResult>(resolve => {\r\n // if (!this.validator) {\r\n // resolve({ result: true });\r\n // } else {\r\n // // this.validator.validate(this.model).then(r => {\r\n // // r.target = this;\r\n // // if (r.result) {\r\n // // this.errorText = null;\r\n // // } else {\r\n // // this.errorText = r.message;\r\n // // }\r\n // // resolve(r);\r\n // // });\r\n\r\n // resolve()\r\n // }\r\n // });\r\n // }\r\n\r\n focus() {\r\n }\r\n\r\n clear(): void {\r\n this.value = null;\r\n }\r\n\r\n onColorClick(item: AXColor) {\r\n this.value = item ? item.code : null;\r\n this.selectColor(item);\r\n this.onColorSelect.emit(this.value);\r\n }\r\n\r\n handleColorChange() {\r\n this.value = AXColorUtil.rgb2Hex(this.rColor, this.gColor, this.bColor);\r\n\r\n }\r\n\r\n private selectColor(item: AXColor) {\r\n this.colors.forEach((i) => {\r\n i.active = false;\r\n });\r\n item.active = true\r\n }\r\n\r\n handleKeyEvent(e: KeyboardEvent) {\r\n if (e.code == 'Enter' || e.code == 'NumpadEnter') {\r\n this.onColorSelect.emit(this.value);\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter, ContentChild, ElementRef } from '@angular/core';\r\nimport { AXValidatableComponent, AXBaseSizableComponent, AXBaseInputComponent, AXElementSize } from '../base/element.class';\r\nimport { AXColorBoxComponent } from './color-box/color-box.component';\r\nimport { AXColorUtil, AXConfig } from '@acorex/core';\r\nimport { AXDropdownComponent } from '../dropdown/dropdown.component';\r\nimport { AXValidation } from '../validation/validation.component';\r\n\r\n\r\n@Component({\r\n selector: 'ax-color-picker',\r\n templateUrl: './color-picker.component.html',\r\n providers: [\r\n { provide: AXValidatableComponent, useExisting: AXColorPickerComponent },\r\n ],\r\n host: { style: 'display: contents;' }\r\n})\r\nexport class AXColorPickerComponent extends AXColorBoxComponent implements AXBaseSizableComponent, AXBaseInputComponent {\r\n\r\n @ViewChild('dropdown', { static: true })\r\n dropdown: AXDropdownComponent;\r\n @Input() placeholder: string = '';\r\n @Input() showClear: boolean = false;\r\n\r\n @Input() label: string;\r\n\r\n _text: string = '';\r\n\r\n constructor(private ref: ElementRef) {\r\n super();\r\n }\r\n\r\n @Input()\r\n readonly: boolean;\r\n @Input()\r\n disabled: boolean;\r\n @Input()\r\n size: AXElementSize = 'md';\r\n\r\n @Input()\r\n rtl: boolean = AXConfig.get('layout.rtl');\r\n\r\n @ContentChild(AXValidation, { static: true })\r\n private _contentValidation: AXValidation;\r\n\r\n private _validation: AXValidation;\r\n\r\n @Input()\r\n public get validation(): AXValidation {\r\n return this._validation ? this._validation : this._contentValidation;\r\n }\r\n\r\n public set validation(v: AXValidation) {\r\n this._validation = v;\r\n }\r\n\r\n\r\n ngOnInit() {\r\n if (this.rtl == null) {\r\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\r\n }\r\n }\r\n\r\n\r\n ngAfterContentInit() {\r\n this.initValidation(this.ref, 'value', this.validation);\r\n }\r\n\r\n focus(): void {\r\n this.dropdown.focus();\r\n }\r\n\r\n // handleValueChange(c: string) {\r\n\r\n // }\r\n\r\n findTextColor(color: string) {\r\n if (!color) {\r\n return '#000';\r\n }\r\n return !(AXColorUtil.contrastToWhite(color) > 2.0) ? '#000' : '#fff';\r\n }\r\n\r\n handleItemClick(e) {\r\n this.dropdown.close();\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXColorPickerComponent } from './color-picker.component';\r\nimport { AXColorBoxComponent } from './color-box/color-box.component';\r\nimport { AXValidationModule } from '../validation/validation.module';\r\nimport { AXDropdownModule } from '../dropdown/dropdown.module';\r\nimport { AXTextBoxModule } from '../textbox/textbox.module';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n declarations: [AXColorPickerComponent, AXColorBoxComponent],\r\n imports: [CommonModule, FormsModule, AXDropdownModule, AXValidationModule, AXTextBoxModule],\r\n exports: [AXColorPickerComponent, AXColorBoxComponent],\r\n providers: []\r\n})\r\nexport class AXColorPickerModule { }","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXRangePropertyEditorComponent } from './range.editor';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXTextBoxModule } from '../../../textbox/textbox.module';\r\nimport { AXNumberBoxModule } from '../../../number-box/number-box.module';\r\nimport { AXColorPickerModule } from '../../../color-picker/color-picker.module';\r\nimport { AXLabelModule } from '../../../label/label.module';\r\nimport { AXPageModule } from '../../../page/page.module';\r\nimport { AXButtonModule } from '../../../button/button.module';\r\nimport { AXTranslatorModule } from '@acorex/core';\r\nimport { AXValidationModule } from '../../../validation/validation.module';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [AXRangePropertyEditorComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n AXTranslatorModule,\r\n AXTextBoxModule,\r\n AXNumberBoxModule,\r\n AXColorPickerModule,\r\n AXLabelModule,\r\n AXPageModule,\r\n AXValidationModule,\r\n AXButtonModule\r\n ],\r\n exports: [AXRangePropertyEditorComponent],\r\n entryComponents: [AXRangePropertyEditorComponent],\r\n providers: [],\r\n})\r\nexport class AXRangePropertyEditorModule {\r\n constructor() {\r\n }\r\n}","import { Component, OnInit, ChangeDetectorRef, ViewChild } from '@angular/core';\r\nimport { AXColorPickerComponent } from '../../../color-picker/color-picker.component';\r\nimport { AXValidation } from '../../../validation/validation.component';\r\nimport { AXProperyEditorComponent } from '../../property-editor.class';\r\n\r\n@Component({\r\n template: `\r\n <ax-color-picker [(value)]=\"value\">\r\n <ax-validation [rules]=\"validation?.rules\">\r\n </ax-validation>\r\n </ax-color-picker>\r\n `,\r\n})\r\nexport class AXColorPropertyEditorComponent extends AXProperyEditorComponent<string> {\r\n\r\n validation: AXValidation;\r\n\r\n @ViewChild(AXColorPickerComponent)\r\n private textBox: AXColorPickerComponent;\r\n\r\n constructor(protected cdr: ChangeDetectorRef) {\r\n super(cdr);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.registerForValidationForm(this.textBox);\r\n this.initiated = true;\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 { AXColorPropertyEditorComponent } from './color.editor';\r\nimport { AXColorPickerModule } from '../../../color-picker/color-picker.module';\r\nimport { AXValidationModule } from '../../../validation/validation.module';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [AXColorPropertyEditorComponent],\r\n imports: [CommonModule, FormsModule, AXColorPickerModule, AXValidationModule],\r\n exports: [AXColorPropertyEditorComponent],\r\n entryComponents: [AXColorPropertyEditorComponent],\r\n providers: [],\r\n})\r\nexport class AXColorPropertyEditorModule {\r\n constructor() {\r\n }\r\n}","import { Component, OnInit, ViewChild, TemplateRef, ChangeDetectorRef } from '@angular/core';\r\nimport { AXTranslator } from '@acorex/core';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { AXProperyEditorComponent } from '../../property-editor.class';\r\nimport { AXPopupService } from '../../../popup/popup.service';\r\nimport { AXDataSourceReadParams } from '../../../data-source/read-param';\r\n\r\n\r\nexport interface AXTableColumnModel {\r\n id: number;\r\n index: number;\r\n fieldName: string;\r\n caption?: string;\r\n fieldType?: string;\r\n displayType?: string;\r\n fillByUser?: boolean;\r\n rowHeader?: boolean;\r\n}\r\n\r\n@Component({\r\n templateUrl: './column.editor.html',\r\n styleUrls: ['./column.editor.scss']\r\n})\r\nexport class ColumnPropertyEditorComponent extends AXProperyEditorComponent<AXTableColumnModel[]> implements OnInit {\r\n @ViewChild('tplEdit')\r\n tplEdit: TemplateRef<any>;\r\n\r\n columns: AXTableColumnModel[] = [];\r\n\r\n index: number = 2;\r\n\r\n constructor(protected cdr: ChangeDetectorRef, private popupService: AXPopupService) {\r\n super(cdr);\r\n }\r\n\r\n columnTypeData: any[] = [\r\n { id: 1, title: 'String' },\r\n { id: 2, title: 'Number' },\r\n { id: 3, title: 'Boolean' },\r\n { id: 4, title: 'Data' },\r\n { id: 5, title: 'Time' }\r\n ];\r\n\r\n ngOnInit(): void {\r\n this.columns = this.value ? JSON.parse(JSON.stringify(this.value)) : [];\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.initiated = true;\r\n }\r\n\r\n drop(event: CdkDragDrop<string[]>) {\r\n moveItemInArray(this.columns, event.previousIndex, event.currentIndex);\r\n }\r\n\r\n handleAddColumn() {\r\n this.columns.push({\r\n id: Math.floor(1000*Math.random()*9000),\r\n index: this.index,\r\n fieldName: 'ستون' + this.index,\r\n caption: 'ستون' + this.index,\r\n fieldType: '',\r\n displayType: '',\r\n fillByUser: false,\r\n rowHeader: false\r\n });\r\n this.index++;\r\n }\r\n\r\n handleAddClick() {\r\n if (this.columns.length === 0) {\r\n this.columns.push({\r\n id: Math.floor(1000*Math.random()*9000),\r\n index: 1,\r\n fieldName: 'ستون 1',\r\n caption: 'ستون 1',\r\n fieldType: '',\r\n displayType: '',\r\n fillByUser: false,\r\n rowHeader: false\r\n });\r\n }\r\n const popup = this.popupService.open(this.tplEdit, {\r\n title: 'ستون',\r\n size: 'lg',\r\n footerButtons: [\r\n {\r\n name: 'confirm',\r\n text: AXTranslator.get('common.confirm'),\r\n style: 'success',\r\n submitBehavior: true,\r\n cancelBehavior: false,\r\n onClick: () => {\r\n super.handleValueChange(this.columns);\r\n this.cdr.detectChanges();\r\n this.index++;\r\n popup.close();\r\n }\r\n },\r\n {\r\n name: 'cancel',\r\n text: AXTranslator.get('common.cancel'),\r\n style: 'danger blank',\r\n submitBehavior: false,\r\n cancelBehavior: true,\r\n onClick: () => {\r\n this.cdr.detectChanges();\r\n popup.close();\r\n }\r\n }\r\n ]\r\n });\r\n }\r\n\r\n handleRemoveClick(item: AXTableColumnModel) {\r\n this.columns = this.columns.filter((c) => c.id !== item.id);\r\n super.handleValueChange(this.columns);\r\n }\r\n\r\n handleDataReceived = (e: AXDataSourceReadParams) => {\r\n return Promise.resolve(this.columnTypeData);\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 { AXTextBoxModule } from '../../../textbox/textbox.module';\r\nimport { AXNumberBoxModule } from '../../../number-box/number-box.module';\r\nimport { AXColorPickerModule } from '../../../color-picker/color-picker.module';\r\nimport { AXLabelModule } from '../../../label/label.module';\r\nimport { AXPageModule } from '../../../page/page.module';\r\nimport { AXButtonModule } from '../../../button/button.module';\r\nimport { AXCheckBoxModule } from './../../../checkbox/checkbox.module';\r\nimport { ColumnPropertyEditorComponent } from './column.editor';\r\nimport { AXSelectBoxModule } from '../../../selectbox/selectbox.module';\r\nimport { AXDataSourceModule } from '../../../data-source/datasource.module';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [ColumnPropertyEditorComponent],\r\n imports: [CommonModule, FormsModule, AXTextBoxModule, AXNumberBoxModule, AXColorPickerModule, AXLabelModule, AXPageModule, AXButtonModule, AXCheckBoxModule, AXSelectBoxModule, AXDataSourceModule, DragDropModule],\r\n exports: [ColumnPropertyEditorComponent],\r\n entryComponents: [ColumnPropertyEditorComponent],\r\n providers: [],\r\n})\r\nexport class AXColumnPropertyEditorModule {\r\n constructor() {\r\n }\r\n}\r\n","import { Component, ChangeDetectorRef, ViewChild, TemplateRef, ChangeDetectionStrategy, Input } from '@angular/core';\r\nimport { AXObjectUtil, AXTranslator } from '@acorex/core';\r\nimport { AXDataType, AXProperyEditorComponent } from '../../property-editor.class';\r\nimport { AXPopupService } from '../../../popup/popup.service';\r\nimport { AXValidationFormComponent } from '../../../validation/validation-form.component';\r\n\r\n\r\n\r\n\r\nexport interface AXConditionalColorModel {\r\n color: string;\r\n operator: string;\r\n value: any;\r\n display?: string;\r\n}\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './conditional-color.editor.html',\r\n styleUrls: ['./conditional-color.editor.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXConditionalColorPropertyEditorComponent extends AXProperyEditorComponent<AXConditionalColorModel[]> {\r\n\r\n\r\n form: AXValidationFormComponent;\r\n\r\n @ViewChild('tplEdit')\r\n tplEdit: TemplateRef<any>;\r\n\r\n @Input()\r\n dataType: AXDataType = 'number';\r\n\r\n // @Input()\r\n // mode: string[] = ['color', 'title'];\r\n\r\n operators: { value: string, text: string, dataTypes?: AXDataType[] }[] = [];\r\n\r\n ranges: AXConditionalColorModel[] = [];\r\n\r\n editRow: AXConditionalColorModel;\r\n\r\n showSeparator: boolean = true;\r\n decimalNumber: number = 2;\r\n\r\n booleanItems = [{ value: true, text: AXTranslator.get('queryBuilder.true') }, { value: false, text: AXTranslator.get('queryBuilder.false') }];\r\n\r\n constructor(protected cdr: ChangeDetectorRef, private popupService: AXPopupService) {\r\n super(cdr);\r\n }\r\n\r\n\r\n onFormInit(e) {\r\n this.form = e.component;\r\n }\r\n\r\n ngOnInit() {\r\n this.ranges = this.value ? AXObjectUtil.deepCopy(this.value) : [];\r\n this.updateOperations();\r\n }\r\n\r\n\r\n\r\n updateOperations() {\r\n this.operators = [\r\n {\r\n value: '<',\r\n text: AXTranslator.get('queryBuilder.lt'),\r\n dataTypes: ['string', 'number', 'date']\r\n },\r\n {\r\n value: '<=',\r\n text: AXTranslator.get('queryBuilder.lte'),\r\n dataTypes: ['string', 'number', 'date']\r\n },\r\n {\r\n value: '>',\r\n text: AXTranslator.get('queryBuilder.gt'),\r\n dataTypes: ['string', 'number', 'date']\r\n },\r\n {\r\n value: '>=',\r\n text: AXTranslator.get('queryBuilder.gte'),\r\n dataTypes: ['string', 'number', 'date']\r\n },\r\n {\r\n value: '==',\r\n text: AXTranslator.get('queryBuilder.equal'),\r\n dataTypes: ['string', 'boolean', 'number', 'date']\r\n },\r\n {\r\n value: '<>',\r\n text: AXTranslator.get('queryBuilder.not-equal'),\r\n dataTypes: ['string', 'boolean', 'number', 'date']\r\n }\r\n ].filter(c => c.dataTypes == null || c.dataTypes.includes(this.dataType)) as any;\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n this.initiated = true;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n handleEditClick(item: AXConditionalColorModel) {\r\n this.updateOperations();\r\n this.editRow = Object.assign({}, item);\r\n const popup = this.popupService.open(this.tplEdit, {\r\n size: 'sm',\r\n footerButtons: [\r\n {\r\n name: 'confirm',\r\n text: AXTranslator.get('common.confirm'),\r\n style: 'success',\r\n submitBehavior: true,\r\n cancelBehavior: false,\r\n onClick: () => {\r\n this.form.validate().then(c => {\r\n if (c.result) {\r\n super.handleValueChange(this.ranges);\r\n Object.assign(item, this.editRow);\r\n popup.close();\r\n this.editRow = null;\r\n this.cdr.detectChanges();\r\n }\r\n });\r\n }\r\n },\r\n {\r\n name: 'cancel',\r\n text: AXTranslator.get('common.cancel'),\r\n style: 'danger blank',\r\n submitBehavior: false,\r\n cancelBehavior: true,\r\n onClick: () => {\r\n popup.close();\r\n this.editRow = null;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n ],\r\n title: AXTranslator.get('common.edit')\r\n });\r\n }\r\n\r\n handleAddClick() {\r\n this.updateOperations();\r\n this.editRow = {\r\n value: this.getDefaultValue(),\r\n color: null,\r\n operator: '=='\r\n };\r\n const popup = this.popupService.open(this.tplEdit, {\r\n title: AXTranslator.get('common.add-item'),\r\n size: 'sm',\r\n footerButtons: [\r\n {\r\n name: 'confirm',\r\n text: AXTranslator.get('common.confirm'),\r\n style: 'success',\r\n submitBehavior: true,\r\n cancelBehavior: false,\r\n onClick: () => {\r\n this.form.validate().then(c => {\r\n if (c.result) {\r\n super.handleValueChange(this.ranges);\r\n this.ranges.push(this.editRow);\r\n popup.close();\r\n this.editRow = null;\r\n this.cdr.detectChanges();\r\n }\r\n });\r\n }\r\n },\r\n {\r\n name: 'cancel',\r\n text: AXTranslator.get('common.cancel'),\r\n style: 'danger blank',\r\n submitBehavior: false,\r\n cancelBehavior: true,\r\n onClick: () => {\r\n popup.close();\r\n this.editRow = null;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n ],\r\n });\r\n }\r\n getDefaultValue(): any {\r\n switch (this.dataType) {\r\n case 'boolean':\r\n return true;\r\n case 'number':\r\n return 0;\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n handleRemoveClick(item: AXConditionalColorModel) {\r\n this.ranges = this.ranges.filter(c => !(c.value === item.value && c.operator === item.operator));\r\n super.handleValueChange(this.ranges);\r\n }\r\n\r\n\r\n getTitle(opr: string) {\r\n const oprItem = this.operators.find(c => c.value === opr);\r\n return oprItem ? AXTranslator.get(oprItem.text) : '';\r\n }\r\n\r\n getIcon(opr: string) {\r\n switch (opr) {\r\n case '==':\r\n return 'fa-equals';\r\n case '<>':\r\n return 'fa-not-equal';\r\n case '<':\r\n return 'fa-less-than';\r\n case '<=':\r\n return 'fa-less-than-equal';\r\n case '>':\r\n return 'fa-greater-than';\r\n case '>=':\r\n return 'fa-greater-than-equal';\r\n default:\r\n return null;\r\n }\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 { AXTextBoxModule } from '../../../textbox/textbox.module';\r\nimport { AXNumberBoxModule } from '../../../number-box/number-box.module';\r\nimport { AXColorPickerModule } from '../../../color-picker/color-picker.module';\r\nimport { AXLabelModule } from '../../../label/label.module';\r\nimport { AXPageModule } from '../../../page/page.module';\r\nimport { AXButtonModule } from '../../../button/button.module';\r\nimport { AXTranslator, AXTranslatorModule } from '@acorex/core';\r\nimport { AXConditionalColorPropertyEditorComponent } from './conditional-color.editor';\r\nimport { AXValidationModule } from '../../../validation/validation.module';\r\nimport { AXSelectBoxModule } from '../../../selectbox/selectbox.module';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [AXConditionalColorPropertyEditorComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n AXTranslatorModule,\r\n AXTextBoxModule,\r\n AXNumberBoxModule,\r\n AXColorPickerModule,\r\n AXLabelModule,\r\n AXPageModule,\r\n AXButtonModule,\r\n AXSelectBoxModule,\r\n AXValidationModule,\r\n ],\r\n exports: [AXConditionalColorPropertyEditorComponent],\r\n entryComponents: [AXConditionalColorPropertyEditorComponent],\r\n providers: [],\r\n})\r\nexport class AXConditionalColorPropertyEditorModule {\r\n constructor() {\r\n AXTranslator.load('en', {\r\n 'conditional-color-property-editor': {\r\n 'replaced-color': 'Replaced Color',\r\n 'replaced-title': 'Replaced Title',\r\n }\r\n });\r\n //\r\n AXTranslator.load('fa', {\r\n 'conditional-color-property-editor': {\r\n 'replaced-color': 'رنگ جایگزین',\r\n 'replaced-title': 'متن جایگزین',\r\n }\r\n });\r\n }\r\n}","import { Component, OnInit, ChangeDetectorRef, ViewChild } from '@angular/core';\r\nimport { AXProperyEditorComponent } from '../../property-editor.class';\r\n\r\n@Component({\r\n template: `\r\n <ax-switch (onValueChanged)=\"handleValueChange($event)\" [value]=\"value\"></ax-switch>\r\n `,\r\n})\r\nexport class AXSwitchPropertyEditorComponent extends AXProperyEditorComponent<boolean> {\r\n\r\n\r\n\r\n constructor(protected cdr: ChangeDetectorRef) {\r\n super(cdr);\r\n }\r\n\r\n\r\n handleValueChange(e: any) {\r\n super.handleValueChange(e.value);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.initiated = true;\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 { AXNumberBoxModule } from '../../../number-box/number-box.module';\r\nimport { AXValidationModule } from '../../../validation/validation.module';\r\nimport { AXSwitchPropertyEditorComponent } from './number.editor';\r\nimport { AXSwitchModule } from '../../../switch/switch.module';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [AXSwitchPropertyEditorComponent],\r\n imports: [CommonModule, FormsModule, AXNumberBoxModule, AXValidationModule, AXSwitchModule],\r\n exports: [AXSwitchPropertyEditorComponent],\r\n entryComponents: [AXSwitchPropertyEditorComponent],\r\n providers: [],\r\n})\r\nexport class AXSwitchPropertyEditorModule {\r\n constructor() {\r\n }\r\n}","import { Component, OnInit, ChangeDetectorRef, ViewChild } from '@angular/core';\r\nimport { AXDatePickerComponent } from '../../../date-picker/date-picker.component';\r\nimport { AXValidation } from '../../../validation/validation.component';\r\nimport { AXProperyEditorComponent } from '../../property-editor.class';\r\nimport { AXCalendarType } from '@acorex/core'\r\n\r\n@Component({\r\n template: `\r\n <ax-date-picker [size]=\"size\" [dateType]=\"dateType\" [showToday]=\"showToday\" [disabled]=\"disabled\" [allowClear]=\"clearButton\" [readonly]=\"readonly\" [max]=\"max\" [min]=\"min\" [placeholder]=\"placeholder\" [showTodayButton]=\"showTodayButton\" [selectableHoliday]=\"selectableHoliday\" (onValueChanged)=\"handleValueChange($event)\"\r\n [type]=\"type\" [textAlign]=\"textAlign\" [(value)]=\"value\">\r\n <ax-validation [rules]=\"validation?.rules\">\r\n </ax-validation>\r\n </ax-date-picker>\r\n `,\r\n})\r\nexport class AXDatePropertyEditorComponent extends AXProperyEditorComponent<Date> {\r\n\r\n showTodayButton: boolean = true;\r\n selectableHoliday: boolean = true;\r\n type: AXCalendarType = 'gregorian';\r\n textAlign: 'right' | 'left' | null = null;\r\n validation: AXValidation;\r\n placeholder: string = ''\r\n min: Date;\r\n max: Date;\r\n readonly: boolean;\r\n disabled: boolean;\r\n clearButton: boolean = false;\r\n showToday: boolean = false;\r\n dateType: any;\r\n size: string = 'md';\r\n\r\n @ViewChild(AXDatePickerComponent)\r\n private date: AXDatePickerComponent;\r\n\r\n constructor(protected cdr: ChangeDetectorRef) {\r\n super(cdr);\r\n }\r\n\r\n handleValueChange(e: any) {\r\n super.handleValueChange(e.value);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.initiated = true;\r\n this.registerForValidationForm(this.date);\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 { AXValidationModule } from '../../../validation/validation.module';\r\nimport { AXDatePickerModule } from '../../../date-picker/date-picker.module';\r\nimport { AXDatePropertyEditorComponent } from './date.editor';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [AXDatePropertyEditorComponent],\r\n imports: [CommonModule, FormsModule, AXDatePickerModule, AXValidationModule],\r\n exports: [AXDatePropertyEditorComponent],\r\n entryComponents: [AXDatePropertyEditorComponent],\r\n providers: [],\r\n})\r\nexport class AXDatePropertyEditorModule {\r\n constructor() {\r\n }\r\n}","import { Component, OnInit, ChangeDetectorRef, ViewChild } from '@angular/core';\r\nimport { AXDatePickerComponent } from '../../../date-picker/date-picker.component';\r\nimport { AXValidation } from '../../../validation/validation.component';\r\nimport { AXProperyEditorComponent } from '../../property-editor.class';\r\n\r\n@Component({\r\n template: `\r\n <ax-time-picker [showCurentTime]=\"showCurentTime\" [timeType]=\"timeType\" [allowClear]=\"clearButton\" (onValueChanged)=\"handleValueChange($event)\">\r\n <ax-validation [rules]=\"validation?.rules\">\r\n </ax-validation>\r\n </ax-time-picker>\r\n `,\r\n})\r\nexport class AXTimePropertyEditorComponent extends AXProperyEditorComponent<String> {\r\n\r\n\r\n timeType: any;\r\n validation: AXValidation;\r\n showCurentTime: boolean = false;\r\n clearButton: boolean = false;\r\n\r\n @ViewChild(AXDatePickerComponent)\r\n private time: AXDatePickerComponent;\r\n\r\n constructor(protected cdr: ChangeDetectorRef) {\r\n super(cdr);\r\n }\r\n\r\n handleValueChange(e: any) {\r\n super.handleValueChange(e.value?.time);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.initiated = true;\r\n this.registerForValidationForm(this.time);\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 { AXValidationModule } from '../../../validation/validation.module';\r\nimport { AXTimePickerModule } from '../../../time-picker/time-picker.module';\r\nimport { AXTimePropertyEditorComponent } from './time.editor';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [AXTimePropertyEditorComponent],\r\n imports: [CommonModule, FormsModule, AXTimePickerModule, AXValidationModule],\r\n exports: [AXTimePropertyEditorComponent],\r\n entryComponents: [AXTimePropertyEditorComponent],\r\n providers: [],\r\n})\r\nexport class AXTimePropertyEditorModule {\r\n constructor() {\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { AXTextPropertyEditorModule } from './editors/text-editor/text.module';\r\nimport { AXPropertyEditorRendererDirective } from './property-editor-renderer.directive';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AXTextPropertyEditorComponent } from './editors/text-editor/text.editor';\r\nimport { AXNumberBoxPropertyEditorComponent } from './editors/number-editor/number.editor';\r\nimport { AXNumberBoxPropertyEditorModule } from './editors/number-editor/number.module';\r\nimport { AXSelectBoxPropertyEditorComponent } from './editors/selectbox-editor/selectbox.editor';\r\nimport { AXSelectBoxPropertyEditorModule } from './editors/selectbox-editor/selectbox.module';\r\nimport { AXRangePropertyEditorModule } from './editors/range-editor/range.module';\r\nimport { AXRangePropertyEditorComponent } from './editors/range-editor/range.editor';\r\nimport { AXColorPropertyEditorComponent } from './editors/color-editor/color.editor';\r\nimport { AXColorPropertyEditorModule } from './editors/color-editor/color.module';\r\nimport { ColumnPropertyEditorComponent } from './editors/column-editor/column.editor';\r\nimport { AXColumnPropertyEditorModule } from './editors/column-editor/column.module';\r\nimport { AXConditionalColorPropertyEditorComponent } from './editors/conditional-color-editor/conditional-color.editor';\r\nimport { AXConditionalColorPropertyEditorModule } from './editors/conditional-color-editor/conditional-color.module';\r\nimport { AXSwitchPropertyEditorModule } from './editors/switch-editor/number.module';\r\nimport { AXSwitchPropertyEditorComponent } from './editors/switch-editor/number.editor';\r\nimport { AXDatePropertyEditorModule } from './editors/date-editor/date.module';\r\nimport { AXDatePropertyEditorComponent } from './editors/date-editor/date.editor';\r\nimport { AXTimePropertyEditorModule } from './editors/time-editor/time.module';\r\nimport { AXTimePropertyEditorComponent } from './editors/time-editor/time.editor';\r\n\r\n\r\nconst WDIGET_MODULES = [\r\n AXNumberBoxPropertyEditorModule,\r\n AXTextPropertyEditorModule,\r\n AXSelectBoxPropertyEditorModule,\r\n AXRangePropertyEditorModule,\r\n AXColorPropertyEditorModule,\r\n AXConditionalColorPropertyEditorModule,\r\n AXColumnPropertyEditorModule,\r\n AXSwitchPropertyEditorModule,\r\n AXDatePropertyEditorModule,\r\n AXTimePropertyEditorModule\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n WDIGET_MODULES,\r\n RouterModule.forChild([\r\n {\r\n component: AXTextPropertyEditorComponent,\r\n path: 'ax/editors/text'\r\n },\r\n {\r\n component: AXSelectBoxPropertyEditorComponent,\r\n path: 'ax/editors/select'\r\n },\r\n {\r\n component: AXNumberBoxPropertyEditorComponent,\r\n path: 'ax/editors/number'\r\n },\r\n {\r\n component: AXRangePropertyEditorComponent,\r\n path: 'ax/editors/range'\r\n },\r\n {\r\n component: AXConditionalColorPropertyEditorComponent,\r\n path: 'ax/editors/conditional-color'\r\n },\r\n {\r\n component: AXColorPropertyEditorComponent,\r\n path: 'ax/editors/color'\r\n },\r\n {\r\n component: AXSwitchPropertyEditorComponent,\r\n path: 'ax/editors/switch'\r\n },\r\n {\r\n component: ColumnPropertyEditorComponent,\r\n path: 'ax/editors/column'\r\n }, {\r\n component: AXDatePropertyEditorComponent,\r\n path: 'ax/editors/date'\r\n },\r\n {\r\n component: AXTimePropertyEditorComponent,\r\n path: 'ax/editors/time'\r\n },\r\n ])\r\n ],\r\n exports: [AXPropertyEditorRendererDirective],\r\n declarations: [AXPropertyEditorRendererDirective],\r\n providers: [],\r\n})\r\nexport class AXProppertyEditorModule { }\r\n","//import { expressionType } from '@angular/compiler/src/output/output_ast';\r\n\r\n//import { from } from 'rxjs';\r\n\r\nexport * from './lib/base/element.class';\r\nexport * from './lib/base/events.class';\r\nexport * from './lib/base/base-page.class';\r\n\r\nexport * from './lib/button/button.component';\r\nexport * from './lib/button/button.module';\r\n\r\nexport * from './lib/calendar/calendar-box/calendar-box.component';\r\nexport * from './lib/calendar/calendar-box/calendar-box.module';\r\n\r\nexport * from './lib/calendar/scheduler/scheduler-views.property';\r\nexport * from './lib/calendar/scheduler/scheduler.class';\r\nexport * from './lib/calendar/scheduler/scheduler.component';\r\nexport * from './lib/calendar/scheduler/scheduler.module';\r\nexport * from './lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator';\r\nexport * from './lib/calendar/scheduler/toolbars/scheduler-toolbar-views';\r\nexport * from './lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component';\r\nexport * from './lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component';\r\nexport * from './lib/calendar/scheduler/views/month/scheduler-month-view.component';\r\nexport * from './lib/calendar/scheduler/views/scheduler-view.component';\r\nexport * from './lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component';\r\n\r\nexport * from './lib/checkbox/checkbox.component';\r\nexport * from './lib/checkbox/checkbox.module';\r\n\r\nexport * from './lib/context-menu/context-menu.component';\r\nexport * from './lib/context-menu/context-menu.directive';\r\nexport * from './lib/context-menu/context-menu.module';\r\n\r\nexport * from './lib/data-filter/columns/filter-column-date.component';\r\nexport * from './lib/data-filter/columns/filter-column-number.component';\r\nexport * from './lib/data-filter/columns/filter-column-selection.component';\r\nexport * from './lib/data-filter/columns/filter-column-string.component';\r\nexport * from './lib/data-filter/filter-panel/filter-panel.component';\r\nexport * from './lib/data-filter/filter.class';\r\nexport * from './lib/data-filter/filter.module';\r\nexport * from './lib/data-filter/toolbar/filter-toolbar.component';\r\nexport * from './lib/data-list/core/data-list.component';\r\nexport * from './lib/data-list/list/list.component';\r\nexport * from './lib/data-list/list/list.module';\r\nexport * from './lib/data-list/list/toolbar-list-view.component';\r\n\r\nexport * from './lib/data-source/datasource.component';\r\nexport * from './lib/data-source/datasource.module';\r\nexport * from './lib/data-source/read-param';\r\n\r\nexport * from './lib/date-picker/date-picker.component';\r\nexport * from './lib/date-picker/date-picker.module';\r\n\r\nexport * from './lib/dialog/dialog.component';\r\nexport * from './lib/dialog/dialog.module';\r\nexport * from './lib/dialog/dialog.service';\r\n\r\nexport * from './lib/drawer/drawer.component';\r\nexport * from './lib/drawer/drawer.module';\r\n\r\nexport * from './lib/dropdown/dropdown.component';\r\nexport * from './lib/dropdown/dropdown.module';\r\n\r\nexport * from './lib/fieldset/fieldset.component';\r\nexport * from './lib/fieldset/fieldset.module';\r\n\r\nexport * from './lib/form-group/form-group.component';\r\nexport * from './lib/form-group/form-group.module';\r\n\r\nexport * from './lib/label/label.component';\r\nexport * from './lib/label/label.module';\r\n\r\nexport * from './lib/loading/loading-indicator.component';\r\nexport * from './lib/loading/loading-panel.component';\r\nexport * from './lib/loading/loading.module';\r\nexport * from './lib/loading/loading.service';\r\n\r\nexport * from './lib/menu/menu.component';\r\nexport * from './lib/menu/menu-item.component';\r\nexport * from './lib/menu/menu2.component';\r\nexport * from './lib/menu/menu.module';\r\n\r\nexport * from './lib/number-box/number-box.component';\r\nexport * from './lib/number-box/number-box.module';\r\n\r\nexport * from './lib/page/content.component';\r\nexport * from './lib/page/footer.component';\r\nexport * from './lib/page/page.component';\r\nexport * from './lib/page/page.module';\r\n\r\nexport * from './lib/panel-box/panel-box.component';\r\nexport * from './lib/panel-box/panel-box.module';\r\n\r\nexport * from './lib/password-box/password-box.component';\r\nexport * from './lib/password-box/password-box.module';\r\n\r\nexport * from './lib/popover/popover.component';\r\nexport * from './lib/popover/popover.module';\r\nexport * from './lib/popover/overlay.service';\r\n\r\n\r\nexport * from './lib/popup/popup.component';\r\nexport * from './lib/popup/popup.module';\r\nexport * from './lib/popup/popup.service';\r\n\r\nexport * from './lib/progress-bar/progress-bar.component';\r\nexport * from './lib/progress-bar/progress-bar.module';\r\n\r\nexport * from './lib/query-builder/query-builder.component';\r\nexport * from './lib/query-builder/query-builder.module';\r\nexport * from './lib/query-builder/query-builder.service';\r\nexport * from './lib/query-builder/query-builder.class';\r\n\r\nexport * from './lib/searchbox/searchbox.component';\r\nexport * from './lib/searchbox/searchbox.module';\r\n\r\n\r\nexport * from './lib/selectbox/selectbox.component';\r\nexport * from './lib/selectbox/selectbox2.component';\r\nexport * from './lib/selectbox/selectbox.module';\r\n\r\n\r\nexport * from './lib/selection-list/selection-list.component';\r\nexport * from './lib/selection-list/selection-list.module';\r\n\r\nexport * from './lib/switch/switch.component';\r\nexport * from './lib/switch/switch.module';\r\n\r\nexport * from './lib/tab-page/tab-page-Renderer.component';\r\nexport * from './lib/tab-page/tab-page-host.component';\r\nexport * from './lib/tab-page/tab-page.module';\r\nexport * from './lib/tab-page/tab-page.service';\r\n\r\nexport * from './lib/tab-strip/tab-strip.component';\r\nexport * from './lib/tab-strip/tab-strip.module';\r\n\r\nexport * from './lib/tab-view/dynamic-tabs.directive';\r\nexport * from './lib/tab-view/tab-view.component';\r\nexport * from './lib/tab-view/tab-view.module';\r\nexport * from './lib/tab-view/tab.component';\r\n\r\nexport * from './lib/textarea/textarea.component';\r\nexport * from './lib/textarea/textarea.module';\r\n\r\nexport * from './lib/textbox/textbox.component';\r\nexport * from './lib/textbox/textbox.module';\r\n\r\nexport * from './lib/time-picker/time-picker.component';\r\nexport * from './lib/time-picker/time-picker.module';\r\n\r\nexport * from './lib/toast/toast-message/toast-message.component';\r\nexport * from './lib/toast/toast-wrapper/toast-wrapper.component';\r\nexport * from './lib/toast/toast.module';\r\nexport * from './lib/toast/toast.service';\r\n\r\nexport * from './lib/toolbar/group-button/toolbar-group-button.component';\r\nexport * from './lib/toolbar/menu/toolbar-menu.component';\r\nexport * from './lib/toolbar/search/toolbar-search.component';\r\nexport * from './lib/toolbar/title/toolbar-title.component';\r\nexport * from './lib/toolbar/toolbar-item';\r\nexport * from './lib/toolbar/toolbar.component';\r\nexport * from './lib/toolbar/toolbar.module';\r\n\r\nexport * from './lib/tooltip/tooltip.directive';\r\nexport * from './lib/tooltip/tooltip.module';\r\n\r\nexport * from './lib/tree-side-menu/tree-side-menu.component'\r\nexport * from './lib/tree-side-menu/tree-side-menu.module'\r\n\r\n\r\nexport * from './lib/tree-view/tree-view.component';\r\nexport * from './lib/tree-view/tree-view.module';\r\n\r\nexport * from './lib/upload-file/upload-file.component';\r\nexport * from './lib/upload-file/upload-file.events';\r\nexport * from './lib/upload-file/upload-file.module';\r\n\r\nexport * from './lib/accordion/accordion.component';\r\nexport * from './lib/accordion/accordion.module';\r\n\r\nexport * from './lib/validation/validation-form.component';\r\nexport * from './lib/validation/validation-rule.widget';\r\nexport * from './lib/validation/validation.class';\r\nexport * from './lib/validation/validation.component';\r\nexport * from './lib/validation/validation.module';\r\n\r\n\r\n\r\n\r\nexport * from './lib/property-editor/property-editor.class';\r\nexport * from './lib/property-editor/property-editor-renderer.directive';\r\nexport * from './lib/property-editor/property-editor.module';\r\nexport * from './lib/property-editor/editors/text-editor/text.editor';\r\nexport * from './lib/property-editor/editors/text-editor/text.module';\r\nexport * from './lib/property-editor/editors/selectbox-editor/selectbox.editor';\r\nexport * from './lib/property-editor/editors/selectbox-editor/selectbox.module';\r\nexport * from './lib/property-editor/editors/range-editor/range.editor';\r\nexport * from './lib/property-editor/editors/range-editor/range.module';\r\nexport * from './lib/property-editor/editors/color-editor/color.editor';\r\nexport * from './lib/property-editor/editors/color-editor/color.module';\r\nexport * from './lib/property-editor/editors/conditional-color-editor/conditional-color.editor';\r\nexport * from './lib/property-editor/editors/conditional-color-editor/conditional-color.module';\r\n\r\n\r\n\r\nexport * from './lib/color-picker/color-box/color-box.component';\r\nexport * from './lib/color-picker/color-picker.component';\r\nexport * from './lib/color-picker/color-picker.module';\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {DynamicOverlay as ɵb,DynamicOverlayContainer as ɵa} from './lib/popover/custom-cdk-overlay.service';\nexport {ColumnPropertyEditorComponent as ɵi} from './lib/property-editor/editors/column-editor/column.editor';\nexport {AXColumnPropertyEditorModule as ɵh} from './lib/property-editor/editors/column-editor/column.module';\nexport {AXDatePropertyEditorComponent as ɵm} from './lib/property-editor/editors/date-editor/date.editor';\nexport {AXDatePropertyEditorModule as ɵl} from './lib/property-editor/editors/date-editor/date.module';\nexport {AXNumberBoxPropertyEditorComponent as ɵg} from './lib/property-editor/editors/number-editor/number.editor';\nexport {AXNumberBoxPropertyEditorModule as ɵf} from './lib/property-editor/editors/number-editor/number.module';\nexport {AXSwitchPropertyEditorComponent as ɵk} from './lib/property-editor/editors/switch-editor/number.editor';\nexport {AXSwitchPropertyEditorModule as ɵj} from './lib/property-editor/editors/switch-editor/number.module';\nexport {AXTimePropertyEditorComponent as ɵo} from './lib/property-editor/editors/time-editor/time.editor';\nexport {AXTimePropertyEditorModule as ɵn} from './lib/property-editor/editors/time-editor/time.module';\nexport {AXQueryBuilderGroupComponent as ɵc} from './lib/query-builder/query-builder-group.component';\nexport {AXQueryBuilderPopupComponent as ɵe} from './lib/query-builder/query-builder-popup/query-builder-popup.component';\nexport {AXQueryBuilderRuleComponent as ɵd} from './lib/query-builder/query-builder-rule.component';"],"names":["COMPONENT","MODULES","COMPONENTS"],"mappings":"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CI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;;YAED;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;;YAED;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;;YAED;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;;;;;;;;;;;YAWD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;;YAED;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;;YAGD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;;YAED;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,SAA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"}
|