@acorex/components 7.1.50 → 7.1.52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/breadcrumbs/src/breadcrumbs-item.component.d.ts +6 -6
  2. package/button/src/button-group.component.d.ts +6 -6
  3. package/button/src/button-item.component.d.ts +6 -6
  4. package/chips/src/chips.component.d.ts +6 -6
  5. package/color-picker/src/color-picker.component.d.ts +16 -16
  6. package/common/src/components/base-component.class.d.ts +1 -0
  7. package/date-picker/src/datepicker.component.d.ts +1 -1
  8. package/esm2022/button/src/button.component.mjs +2 -2
  9. package/esm2022/calendar/src/calendar.component.mjs +3 -3
  10. package/esm2022/collapse/src/collapse.component.mjs +2 -2
  11. package/esm2022/color-palette/src/color-palette-input.component.mjs +3 -3
  12. package/esm2022/color-picker/src/color-picker.component.mjs +3 -3
  13. package/esm2022/common/src/components/base-component.class.mjs +5 -1
  14. package/esm2022/common/src/components/value-component.class.mjs +3 -1
  15. package/esm2022/date-picker/src/datepicker.component.mjs +5 -32
  16. package/esm2022/form/src/form.component.mjs +6 -2
  17. package/esm2022/popup/src/popup.component.mjs +4 -3
  18. package/esm2022/search-box/src/search-box.component.mjs +15 -7
  19. package/esm2022/select-box/src/selectbox.component.mjs +6 -7
  20. package/esm2022/select-box/src/selectbox.module.mjs +4 -7
  21. package/esm2022/tabs/src/tabs.component.mjs +2 -2
  22. package/fesm2022/acorex-components-button.mjs +2 -2
  23. package/fesm2022/acorex-components-button.mjs.map +1 -1
  24. package/fesm2022/acorex-components-calendar.mjs +2 -2
  25. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  26. package/fesm2022/acorex-components-collapse.mjs +2 -2
  27. package/fesm2022/acorex-components-collapse.mjs.map +1 -1
  28. package/fesm2022/acorex-components-color-palette.mjs +2 -2
  29. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  30. package/fesm2022/acorex-components-color-picker.mjs +2 -2
  31. package/fesm2022/acorex-components-color-picker.mjs.map +1 -1
  32. package/fesm2022/acorex-components-common.mjs +6 -0
  33. package/fesm2022/acorex-components-common.mjs.map +1 -1
  34. package/fesm2022/acorex-components-date-picker.mjs +3 -30
  35. package/fesm2022/acorex-components-date-picker.mjs.map +1 -1
  36. package/fesm2022/acorex-components-form.mjs +5 -1
  37. package/fesm2022/acorex-components-form.mjs.map +1 -1
  38. package/fesm2022/acorex-components-popup.mjs +4 -3
  39. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  40. package/fesm2022/acorex-components-search-box.mjs +12 -4
  41. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  42. package/fesm2022/acorex-components-select-box.mjs +8 -12
  43. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  44. package/fesm2022/acorex-components-tabs.mjs +2 -2
  45. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  46. package/mixin/src/base-components.class.d.ts +2 -2
  47. package/mixin/src/base-menu-mixin.class.d.ts +5 -5
  48. package/mixin/src/button-mixin.class.d.ts +2 -2
  49. package/mixin/src/clickable-mixin.class.d.ts +2 -2
  50. package/mixin/src/color-look-mixing.class.d.ts +2 -2
  51. package/mixin/src/datalist-component.class.d.ts +10 -10
  52. package/mixin/src/dropdown-mixin.class.d.ts +2 -2
  53. package/mixin/src/interactive-mixin.class.d.ts +4 -4
  54. package/mixin/src/loading-mixin.class.d.ts +2 -2
  55. package/mixin/src/mixin.class.d.ts +61 -61
  56. package/mixin/src/page-component.class.d.ts +2 -2
  57. package/mixin/src/selection-component.class.d.ts +2 -2
  58. package/mixin/src/sizable-mixin.class.d.ts +2 -2
  59. package/mixin/src/textbox-mixin.class.d.ts +2 -2
  60. package/mixin/src/value-mixin.class.d.ts +8 -8
  61. package/package.json +7 -7
  62. package/search-box/src/search-box.component.d.ts +2 -0
  63. package/select-box/src/selectbox.module.d.ts +4 -5
  64. package/tabs/src/tab-item.component.d.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-form.mjs","sources":["../../../../projects/acorex/components/form/src/form-field.component.ts","../../../../projects/acorex/components/form/src/form.component.ts","../../../../projects/acorex/components/form/src/validation-rule.widget.ts","../../../../projects/acorex/components/form/src/validation-summary.component.ts","../../../../projects/acorex/components/form/src/form.module.ts","../../../../projects/acorex/components/form/acorex-components-form.ts"],"sourcesContent":["import { AXValuableComponent } from '@acorex/components/common';\nimport { AXBaseComponentMixin } from '@acorex/components/mixin';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'ax-form-field',\n template: `<ng-content></ng-content>`,\n styleUrls: ['./form-field.component.scss'],\n host: { class: 'ax-form-field' },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXFormFieldComponent extends AXBaseComponentMixin {\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\n super(elementRef, cdr);\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { AXEvent } from '@acorex/components/common';\nimport { AXFormValidationResult } from './validation.class';\nimport { AXBaseComponentMixin } from '@acorex/components/mixin';\nimport { Subscription } from 'rxjs';\n\n/**\n * Contains native event\n * @category Events\n */\nexport class AXFormValidationEvent extends AXEvent {\n result: AXFormValidationResult;\n}\n\n/**\n * Contains native event\n * @category Events\n */\nexport type AXFormUpdateOn = 'change' | 'blur' | 'manual';\n\n/**\n * The Button is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-form',\n template: '<form (submit)=\"_handleSubmit($event)\" (reset)=\"_handleReset($event)\" class=\"ax-{{validationMessageMode}}-error\"><ng-content></ng-content></form>',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXFormComponent extends AXBaseComponentMixin {\n @Input() validationMessageMode: 'normal' | 'tooltip' = 'normal';\n\n @Output()\n onValidate: EventEmitter<AXFormValidationEvent> = new EventEmitter<AXFormValidationEvent>();\n\n @Output()\n updateOnChange: EventEmitter<AXFormUpdateOn> = new EventEmitter<AXFormUpdateOn>();\n\n private _updateOn: AXFormUpdateOn = 'blur';\n @Input()\n public get updateOn(): AXFormUpdateOn {\n return this._updateOn;\n }\n public set updateOn(v: AXFormUpdateOn) {\n this._setOption({\n name: 'updateOn',\n value: v,\n afterCallback: (oldValue?, newValue?) => {\n this._bindEvents();\n },\n });\n }\n\n @Input()\n validateInitValues: boolean = false;\n\n private _observer: MutationObserver;\n private _subs: Subscription[] = [];\n\n /**\n * @ignore\n */\n constructor(elementRef: ElementRef, private cdr: ChangeDetectorRef) {\n super(elementRef, cdr);\n }\n\n _handleSubmit(e: SubmitEvent) {\n e.preventDefault();\n this.validate();\n }\n\n _handleReset(e: Event) {\n this.clear();\n }\n\n private _getComponenets() {\n return Array.from(this._getHostElement().querySelectorAll('[ax-form-input=\"true\"]')).map(c => (c as any).__axContext__);\n }\n\n onViewInit(): void {\n if (this.validateInitValues) {\n this._validateInitValues();\n }\n this._bindEvents();\n\n const config = { attributes: false, childList: true, subtree: true };\n const callback = (mutationList, observer) => {\n this._bindEvents();\n };\n\n // Create an observer instance linked to the callback function\n if (typeof MutationObserver !== 'undefined') {\n this._observer = new MutationObserver(callback);\n }\n\n this._observer.observe(this._getHostElement(), config);\n }\n\n private _bindEvents() {\n this._clearSubs();\n const widgets = this._getComponenets();\n //\n widgets.forEach(w => {\n if (this.updateOn == 'change') {\n this._subs.push(\n w.onValueChanged?.subscribe(v => {\n w.validate();\n })\n );\n } else if (this.updateOn == 'blur') {\n this._subs.push(\n w.onBlur?.subscribe(v => {\n w.validate();\n })\n );\n }\n });\n }\n\n private _clearSubs() {\n this._subs.forEach(c => c.unsubscribe());\n this._subs = [];\n }\n\n private _validateInitValues() {\n this._getComponenets()\n .filter(c => c['value'])\n .forEach(c => c.validate());\n }\n\n validate(...args: string[]): Promise<AXFormValidationResult> {\n const widgets = this._getComponenets();\n if (widgets.length === 0) {\n this._emitOnValidateEvent({ result: true });\n return Promise.resolve({ result: true });\n }\n //\n return new Promise<AXFormValidationResult>((resolve, reject) => {\n Promise.all(widgets.filter(c => args == null || args.length == 0 || args.includes(c.name)).map(c => c.validate())).then((rules: any) => {\n const failed = rules.filter((c: any) => !c.result);\n if (failed.length) {\n this._emitOnValidateEvent({\n result: false,\n items: failed,\n });\n resolve({\n result: false,\n items: failed,\n });\n } else {\n this._emitOnValidateEvent({ result: true });\n resolve({ result: true });\n }\n });\n });\n }\n\n private _emitOnValidateEvent(e: AXFormValidationResult) {\n this.onValidate.emit({\n component: this,\n result: e,\n htmlElement: this._getHostElement(),\n });\n }\n\n clear() {\n const widgets = this._getComponenets();\n widgets.forEach(w => {\n w.clear();\n });\n }\n\n onDestroy(): void {\n this._observer?.disconnect();\n this._observer = null;\n this._clearSubs();\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, ViewEncapsulation } from '@angular/core';\nimport { AXValidationRuleResult, AXValidationRule, AXValidationRuleTypes } from './validation.class';\nimport { AXConfig } from '@acorex/core/config';\nimport { AXTranslator } from '@acorex/core/translation';\nimport { AXBaseComponentMixin } from '@acorex/components/mixin';\n\n@Component({\n selector: 'ax-validation-rule',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXValidationRuleComponent extends AXBaseComponentMixin implements AXValidationRule {\n @Input()\n rule: AXValidationRuleTypes = 'required';\n\n @Input()\n message: string;\n\n @Input()\n showMessage: boolean = true;\n\n @Input()\n value: any;\n\n @Input()\n enabled: boolean = true;\n\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\n super(elementRef, cdr);\n }\n\n onInit() {\n (this._getHostElement() as any).validate = this.validate.bind(this);\n }\n\n validate(value: any): Promise<AXValidationRuleResult> {\n if (this.enabled === false) {\n return Promise.resolve({ result: true });\n }\n if (this.rule == 'custom') {\n const regRule = AXConfig.get(`form.validation.rules.${this.value}`);\n if (regRule) {\n return this._internalValidate(regRule.rule, value, this.message || regRule.message, regRule.value);\n }\n }\n return this._internalValidate(this.rule, value, this.message, this.value);\n }\n\n private _internalValidate(type: string, value?: any, message?: string, ruleValue?: any): Promise<AXValidationRuleResult> {\n return new Promise<AXValidationRuleResult>(resolve => {\n switch (type) {\n case 'required':\n resolve({\n message: this.showMessage ? message || AXTranslator.get('validation.messages.required') : '',\n result: !this._isNullOrEmpty(value),\n });\n break;\n case 'regex':\n const ex = new RegExp(ruleValue);\n resolve({\n message: this.showMessage ? message || AXTranslator.get('validation.messages.regex') : '',\n result: ex.test(value),\n });\n break;\n case 'callback':\n if (typeof ruleValue === 'function') {\n const res: any = {};\n res.message = this.showMessage ? message : null;\n const val = ruleValue({ value, message });\n if (val instanceof Promise) {\n val\n .then(c => {\n res.result = c;\n })\n .catch(c => {\n res.result = false;\n })\n .finally(() => {\n resolve(res);\n });\n } else {\n res.result = val;\n resolve(res);\n }\n } else {\n resolve({\n message: AXTranslator.get('validation.messages.invalid-rull-fn'),\n result: false,\n });\n }\n break;\n default:\n resolve({\n message: AXTranslator.get('validation.messages.invalid-rull-name'),\n result: false,\n });\n }\n });\n }\n\n private _isNullOrEmpty(value: any): boolean {\n return (\n value === undefined ||\n value === null ||\n Number.isNaN(value) ||\n //(typeof value === 'object' && Object.keys(value).length === 0) ||\n (Array.isArray(value) && value.length == 0) ||\n (typeof value === 'string' && value.trim().length === 0)\n );\n }\n}\n","import { AXTranslator } from \"@acorex/core/translation\";\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Inject, Input, Optional, ViewEncapsulation } from \"@angular/core\";\nimport { AXEvent } from \"@acorex/components/common\";\nimport { AXToastService } from \"@acorex/components/toast\";\nimport { AXFormComponent } from \"./form.component\";\nimport { AXBaseComponentMixin } from \"@acorex/components/mixin\";\n\n\nexport type AXValidationSummaryDisplayMode = 'toast' | 'alert'\n\n@Component({\n selector: 'ax-validation-summary',\n template: `\n <ax-alert color=\"danger\" *ngIf=\"displayMode=='alert' && _content\" [timeOut]=\"_timeOut\" #a (onClosed)=\"_handleOnDismissed($event)\">\n <ax-icon></ax-icon>\n <ax-title>{{title}}</ax-title>\n <ax-content>\n <div [innerHTML]=\"_content\">\n </div>\n </ax-content>\n <ax-footer>\n <ax-suffix>\n <ax-button text=\"Dismiss\" (onClick)=\"a.close()\"></ax-button>\n </ax-suffix>\n </ax-footer>\n </ax-alert>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class AXValidationSummaryComponent extends AXBaseComponentMixin {\n\n _content?: string = '';\n\n private _title: string = AXTranslator.get('validation.messages.title');\n\n @Input()\n public get title(): string {\n return this._title;\n }\n public set title(v: string) {\n this._title = v;\n }\n\n\n @Input()\n displayMode: AXValidationSummaryDisplayMode = 'toast';\n\n @Input()\n timeOut?: number;\n\n @Input()\n autoHide: boolean = false;\n\n _timeOut: number;\n\n constructor(\n _elementRef: ElementRef,\n _cdr: ChangeDetectorRef,\n private _tosatService: AXToastService,\n @Optional()\n @Inject(AXFormComponent)\n private _parent: AXFormComponent\n ) {\n super(_elementRef, _cdr);\n //\n _parent.onValidate.subscribe((c: any) => {\n if (!c.result.result) {\n this._content = `<ul>${c.result.items.map(c => `<li>${c.message}</li>`).join('')}</ul>`;\n this._timeOut = this.autoHide ? (this.timeOut ?? Math.max(c.result.items.length * 1500, 2000)) : 0;\n //\n if (this.displayMode == 'toast') {\n this._tosatService.show({\n color: 'danger',\n closeable: true,\n timeOut: this._timeOut,\n content: this._content,\n title: this.title\n });\n }\n }\n else {\n this._content = '';\n }\n _cdr.markForCheck();\n });\n }\n\n _handleOnDismissed(e: AXEvent) {\n this._content = '';\n }\n}","import { AXAlertModule } from '@acorex/components/alert';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXConfig } from '@acorex/core/config';\nimport { AXTranslator } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { AXFormFieldComponent } from './form-field.component';\nimport { AXFormComponent } from './form.component';\nimport { AXValidationRuleComponent } from './validation-rule.widget';\nimport { AXValidationSummaryComponent } from './validation-summary.component';\n\n@NgModule({\n declarations: [\n AXFormFieldComponent,\n AXFormComponent,\n AXValidationRuleComponent,\n AXValidationSummaryComponent,\n ],\n imports: [CommonModule, AXDecoratorModule, AXAlertModule, AXButtonModule],\n exports: [\n AXFormFieldComponent,\n AXFormComponent,\n AXValidationRuleComponent,\n AXValidationSummaryComponent,\n ],\n providers: [],\n})\nexport class AXFormModule {\n constructor() {\n AXConfig.set({\n form: {\n validation: {\n rules: {\n email: {\n rule: 'regex',\n value:\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\n message: AXTranslator.get('validation.messages.email'),\n },\n phone: {\n rule: 'regex',\n value: /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$/,\n message: AXTranslator.get('validation.messages.phone'),\n },\n },\n },\n },\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-form.mjs","sources":["../../../../projects/acorex/components/form/src/form-field.component.ts","../../../../projects/acorex/components/form/src/form.component.ts","../../../../projects/acorex/components/form/src/validation-rule.widget.ts","../../../../projects/acorex/components/form/src/validation-summary.component.ts","../../../../projects/acorex/components/form/src/form.module.ts","../../../../projects/acorex/components/form/acorex-components-form.ts"],"sourcesContent":["import { AXValuableComponent } from '@acorex/components/common';\nimport { AXBaseComponentMixin } from '@acorex/components/mixin';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'ax-form-field',\n template: `<ng-content></ng-content>`,\n styleUrls: ['./form-field.component.scss'],\n host: { class: 'ax-form-field' },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXFormFieldComponent extends AXBaseComponentMixin {\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\n super(elementRef, cdr);\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { AXEvent } from '@acorex/components/common';\nimport { AXFormValidationResult } from './validation.class';\nimport { AXBaseComponentMixin } from '@acorex/components/mixin';\nimport { Subscription } from 'rxjs';\n\n/**\n * Contains native event\n * @category Events\n */\nexport class AXFormValidationEvent extends AXEvent {\n result: AXFormValidationResult;\n}\n\n/**\n * Contains native event\n * @category Events\n */\nexport type AXFormUpdateOn = 'change' | 'blur' | 'manual';\n\n/**\n * The Button is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-form',\n template: '<form (submit)=\"_handleSubmit($event)\" (reset)=\"_handleReset($event)\" class=\"ax-{{validationMessageMode}}-error\"><ng-content></ng-content></form>',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXFormComponent extends AXBaseComponentMixin {\n @Input() validationMessageMode: 'normal' | 'tooltip' = 'normal';\n\n @Output()\n onValidate: EventEmitter<AXFormValidationEvent> = new EventEmitter<AXFormValidationEvent>();\n\n @Output()\n updateOnChange: EventEmitter<AXFormUpdateOn> = new EventEmitter<AXFormUpdateOn>();\n\n private _updateOn: AXFormUpdateOn = 'blur';\n @Input()\n public get updateOn(): AXFormUpdateOn {\n return this._updateOn;\n }\n public set updateOn(v: AXFormUpdateOn) {\n this._setOption({\n name: 'updateOn',\n value: v,\n afterCallback: (oldValue?, newValue?) => {\n this._bindEvents();\n },\n });\n }\n\n @Input()\n validateInitValues: boolean = false;\n\n private _observer: MutationObserver;\n private _subs: Subscription[] = [];\n\n /**\n * @ignore\n */\n constructor(elementRef: ElementRef, private cdr: ChangeDetectorRef) {\n super(elementRef, cdr);\n }\n\n _handleSubmit(e: SubmitEvent) {\n e.preventDefault();\n this.validate();\n }\n\n _handleReset(e: Event) {\n this.clear();\n }\n\n private _getComponenets() {\n return Array.from(this._getHostElement().querySelectorAll('[ax-form-input=\"true\"]'))\n .map(c => (c as any).__axContext__)\n .filter(c => c != null);\n }\n\n onViewInit(): void {\n if (this.validateInitValues) {\n this._validateInitValues();\n }\n this._bindEvents();\n\n const config = { attributes: false, childList: true, subtree: true };\n const callback = (mutationList, observer) => {\n this._bindEvents();\n };\n\n // Create an observer instance linked to the callback function\n if (typeof MutationObserver !== 'undefined') {\n this._observer = new MutationObserver(callback);\n }\n\n this._observer.observe(this._getHostElement(), config);\n }\n\n private _bindEvents() {\n this._clearSubs();\n const widgets = this._getComponenets();\n //\n widgets.forEach(w => {\n if (this.updateOn == 'change') {\n this._subs.push(\n w.onValueChanged?.subscribe(v => {\n w.validate();\n })\n );\n } else if (this.updateOn == 'blur') {\n this._subs.push(\n w.onBlur?.subscribe(v => {\n w.validate();\n })\n );\n }\n });\n }\n\n private _clearSubs() {\n this._subs.forEach(c => c.unsubscribe());\n this._subs = [];\n }\n\n private _validateInitValues() {\n this._getComponenets()\n .filter(c => c['value'])\n .forEach(c => c.validate());\n }\n\n validate(...args: string[]): Promise<AXFormValidationResult> {\n debugger;\n const widgets = this._getComponenets();\n if (widgets.length === 0) {\n this._emitOnValidateEvent({ result: true });\n return Promise.resolve({ result: true });\n }\n //\n return new Promise<AXFormValidationResult>((resolve, reject) => {\n debugger;\n Promise.all(widgets.filter(c => args == null || args.length == 0 || args.includes(c.name)).map(c => c.validate())).then((rules: any) => {\n const failed = rules.filter((c: any) => !c.result);\n if (failed.length) {\n this._emitOnValidateEvent({\n result: false,\n items: failed,\n });\n resolve({\n result: false,\n items: failed,\n });\n } else {\n this._emitOnValidateEvent({ result: true });\n resolve({ result: true });\n }\n });\n });\n }\n\n private _emitOnValidateEvent(e: AXFormValidationResult) {\n this.onValidate.emit({\n component: this,\n result: e,\n htmlElement: this._getHostElement(),\n });\n }\n\n clear() {\n const widgets = this._getComponenets();\n widgets.forEach(w => {\n w.clear();\n });\n }\n\n onDestroy(): void {\n this._observer?.disconnect();\n this._observer = null;\n this._clearSubs();\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, ViewEncapsulation } from '@angular/core';\nimport { AXValidationRuleResult, AXValidationRule, AXValidationRuleTypes } from './validation.class';\nimport { AXConfig } from '@acorex/core/config';\nimport { AXTranslator } from '@acorex/core/translation';\nimport { AXBaseComponentMixin } from '@acorex/components/mixin';\n\n@Component({\n selector: 'ax-validation-rule',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXValidationRuleComponent extends AXBaseComponentMixin implements AXValidationRule {\n @Input()\n rule: AXValidationRuleTypes = 'required';\n\n @Input()\n message: string;\n\n @Input()\n showMessage: boolean = true;\n\n @Input()\n value: any;\n\n @Input()\n enabled: boolean = true;\n\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\n super(elementRef, cdr);\n }\n\n onInit() {\n (this._getHostElement() as any).validate = this.validate.bind(this);\n }\n\n validate(value: any): Promise<AXValidationRuleResult> {\n if (this.enabled === false) {\n return Promise.resolve({ result: true });\n }\n if (this.rule == 'custom') {\n const regRule = AXConfig.get(`form.validation.rules.${this.value}`);\n if (regRule) {\n return this._internalValidate(regRule.rule, value, this.message || regRule.message, regRule.value);\n }\n }\n return this._internalValidate(this.rule, value, this.message, this.value);\n }\n\n private _internalValidate(type: string, value?: any, message?: string, ruleValue?: any): Promise<AXValidationRuleResult> {\n return new Promise<AXValidationRuleResult>(resolve => {\n switch (type) {\n case 'required':\n resolve({\n message: this.showMessage ? message || AXTranslator.get('validation.messages.required') : '',\n result: !this._isNullOrEmpty(value),\n });\n break;\n case 'regex':\n const ex = new RegExp(ruleValue);\n resolve({\n message: this.showMessage ? message || AXTranslator.get('validation.messages.regex') : '',\n result: ex.test(value),\n });\n break;\n case 'callback':\n if (typeof ruleValue === 'function') {\n const res: any = {};\n res.message = this.showMessage ? message : null;\n const val = ruleValue({ value, message });\n if (val instanceof Promise) {\n val\n .then(c => {\n res.result = c;\n })\n .catch(c => {\n res.result = false;\n })\n .finally(() => {\n resolve(res);\n });\n } else {\n res.result = val;\n resolve(res);\n }\n } else {\n resolve({\n message: AXTranslator.get('validation.messages.invalid-rull-fn'),\n result: false,\n });\n }\n break;\n default:\n resolve({\n message: AXTranslator.get('validation.messages.invalid-rull-name'),\n result: false,\n });\n }\n });\n }\n\n private _isNullOrEmpty(value: any): boolean {\n return (\n value === undefined ||\n value === null ||\n Number.isNaN(value) ||\n //(typeof value === 'object' && Object.keys(value).length === 0) ||\n (Array.isArray(value) && value.length == 0) ||\n (typeof value === 'string' && value.trim().length === 0)\n );\n }\n}\n","import { AXTranslator } from \"@acorex/core/translation\";\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Inject, Input, Optional, ViewEncapsulation } from \"@angular/core\";\nimport { AXEvent } from \"@acorex/components/common\";\nimport { AXToastService } from \"@acorex/components/toast\";\nimport { AXFormComponent } from \"./form.component\";\nimport { AXBaseComponentMixin } from \"@acorex/components/mixin\";\n\n\nexport type AXValidationSummaryDisplayMode = 'toast' | 'alert'\n\n@Component({\n selector: 'ax-validation-summary',\n template: `\n <ax-alert color=\"danger\" *ngIf=\"displayMode=='alert' && _content\" [timeOut]=\"_timeOut\" #a (onClosed)=\"_handleOnDismissed($event)\">\n <ax-icon></ax-icon>\n <ax-title>{{title}}</ax-title>\n <ax-content>\n <div [innerHTML]=\"_content\">\n </div>\n </ax-content>\n <ax-footer>\n <ax-suffix>\n <ax-button text=\"Dismiss\" (onClick)=\"a.close()\"></ax-button>\n </ax-suffix>\n </ax-footer>\n </ax-alert>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class AXValidationSummaryComponent extends AXBaseComponentMixin {\n\n _content?: string = '';\n\n private _title: string = AXTranslator.get('validation.messages.title');\n\n @Input()\n public get title(): string {\n return this._title;\n }\n public set title(v: string) {\n this._title = v;\n }\n\n\n @Input()\n displayMode: AXValidationSummaryDisplayMode = 'toast';\n\n @Input()\n timeOut?: number;\n\n @Input()\n autoHide: boolean = false;\n\n _timeOut: number;\n\n constructor(\n _elementRef: ElementRef,\n _cdr: ChangeDetectorRef,\n private _tosatService: AXToastService,\n @Optional()\n @Inject(AXFormComponent)\n private _parent: AXFormComponent\n ) {\n super(_elementRef, _cdr);\n //\n _parent.onValidate.subscribe((c: any) => {\n if (!c.result.result) {\n this._content = `<ul>${c.result.items.map(c => `<li>${c.message}</li>`).join('')}</ul>`;\n this._timeOut = this.autoHide ? (this.timeOut ?? Math.max(c.result.items.length * 1500, 2000)) : 0;\n //\n if (this.displayMode == 'toast') {\n this._tosatService.show({\n color: 'danger',\n closeable: true,\n timeOut: this._timeOut,\n content: this._content,\n title: this.title\n });\n }\n }\n else {\n this._content = '';\n }\n _cdr.markForCheck();\n });\n }\n\n _handleOnDismissed(e: AXEvent) {\n this._content = '';\n }\n}","import { AXAlertModule } from '@acorex/components/alert';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXConfig } from '@acorex/core/config';\nimport { AXTranslator } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { AXFormFieldComponent } from './form-field.component';\nimport { AXFormComponent } from './form.component';\nimport { AXValidationRuleComponent } from './validation-rule.widget';\nimport { AXValidationSummaryComponent } from './validation-summary.component';\n\n@NgModule({\n declarations: [\n AXFormFieldComponent,\n AXFormComponent,\n AXValidationRuleComponent,\n AXValidationSummaryComponent,\n ],\n imports: [CommonModule, AXDecoratorModule, AXAlertModule, AXButtonModule],\n exports: [\n AXFormFieldComponent,\n AXFormComponent,\n AXValidationRuleComponent,\n AXValidationSummaryComponent,\n ],\n providers: [],\n})\nexport class AXFormModule {\n constructor() {\n AXConfig.set({\n form: {\n validation: {\n rules: {\n email: {\n rule: 'regex',\n value:\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\n message: AXTranslator.get('validation.messages.email'),\n },\n phone: {\n rule: 'regex',\n value: /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$/,\n message: AXTranslator.get('validation.messages.phone'),\n },\n },\n },\n },\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -13,8 +13,9 @@ import * as i4 from '@angular/cdk/drag-drop';
13
13
  import { DragDropModule } from '@angular/cdk/drag-drop';
14
14
  import * as i5 from '@angular/cdk/a11y';
15
15
  import { A11yModule } from '@angular/cdk/a11y';
16
- import { AXButtonModule } from '@acorex/components/button';
16
+ import * as i7 from '@acorex/components/decorators';
17
17
  import { AXDecoratorModule } from '@acorex/components/decorators';
18
+ import { AXButtonModule } from '@acorex/components/button';
18
19
 
19
20
  /**
20
21
  * The Button is a component which detects user interaction and triggers a corresponding event
@@ -140,11 +141,11 @@ class AXPopupComponent extends AXBaseComponentMixin {
140
141
  }
141
142
  onFullScreen() { }
142
143
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: AXPopupComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.ViewContainerRef }, { token: i1.AXLoadingService }, { token: i2.AXPlatform }], target: i0.ɵɵFactoryTarget.Component });
143
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: AXPopupComponent, selector: "ax-popup", host: { listeners: { "keydown.escape": "onKeydownHandler($event)" } }, providers: [{ provide: AXClosbaleComponent, useExisting: AXPopupComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-popup-wrapper\" aria-modal=\"true\" [cdkTrapFocus]=\"true\">\n <div class=\"ax-popup ax-popup-{{size}}\" tabindex=\"0\" cdkDrag [cdkDragDisabled]=\"!draggable\">\n <div cdkDragHandle class=\"ax-popup-header-container\">\n <div class=\"ax-popup-header\" *ngIf=\"showHeader\">\n <span class=\"ax-popup-title\">{{title}}</span>\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleCloseClick()\" tabindex=\"1\"></span>\n </div>\n </div>\n <div class=\"ax-popup-main-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"_handleAttched($event)\"></ng-template>\n </div>\n <div class=\"ax-popup-footer-container\"></div>\n </div>\n</div>", styles: [".ax-popup{display:flex;flex-direction:column;background-color:rgba(var(--ax-color-surface));box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;border-radius:var(--ax-rounded-border-default);outline:unset;padding:0;width:50%;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));min-height:-moz-fit-content;min-height:fit-content;margin:0 auto;width:auto;overflow:hidden}.ax-popup .ax-popup-header{padding:1rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid;border-color:rgba(var(--ax-color-border-default))}.ax-popup .ax-popup-header .ax-popup-title{font-size:1.125rem;font-weight:500}@media (max-width: 599px){.ax-popup .ax-popup-header .ax-popup-title{font-size:1rem}}.ax-popup .ax-popup-header .ax-icon-close{font-size:1.25rem;cursor:pointer}.ax-popup .ax-popup-header .ax-icon-close:hover{opacity:.5}.ax-popup ax-footer{padding:.75rem;display:flex;align-items:center;justify-content:space-between;background-color:rgba(var(--ax-color-on-surface))}.ax-popup:focus{outline-color:transparent}.ax-popup:focus-visible{border-color:rgba(var(--ax-color-primary-500))}.ax-popup .ax-popup-main-container{overflow:auto;flex:1 1 0%}.ax-popup.ax-popup-full{width:100vw;max-height:calc(100 * var(--ax-vh));height:calc(100 * var(--ax-vh));border-radius:0!important}.ax-popup.ax-fit{width:-moz-fit-content;width:fit-content}@media (max-width: 599px){.ax-popup.ax-popup-sm,.ax-popup.ax-popup-md,.ax-popup.ax-popup-lg{width:93vw!important;height:calc(var(--ax-overlay-full-width) * var(--ax-vh))!important}.ax-popup.ax-popup-sm .ax-popup-main-container>ng-component>div,.ax-popup.ax-popup-md .ax-popup-main-container>ng-component>div,.ax-popup.ax-popup-lg .ax-popup-main-container>ng-component>div{width:100%}}@media (min-width: 600px){.ax-popup.ax-popup-sm{min-width:60vw!important;max-width:85vw!important}.ax-popup.ax-popup-md{min-width:70vw!important;max-width:85vw!important}.ax-popup.ax-popup-lg{min-width:85vw!important;max-width:90vw!important}}@media (min-width: 1200px){.ax-popup.ax-popup-sm{min-width:25vw!important;max-width:35vw!important}.ax-popup.ax-popup-md{min-width:45vw!important;max-width:55vw!important}.ax-popup.ax-popup-lg{min-width:75vw!important;max-width:95vw!important}}@media (min-width: 1800px){.ax-popup.ax-popup-sm{min-width:15vw!important;max-width:25vw!important}.ax-popup.ax-popup-md{min-width:30vw!important;max-width:50vw!important}.ax-popup.ax-popup-lg{min-width:45vw!important;max-width:85vw!important}}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i4.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i5.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i6.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
144
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: AXPopupComponent, selector: "ax-popup", host: { listeners: { "keydown.escape": "onKeydownHandler($event)" } }, providers: [{ provide: AXClosbaleComponent, useExisting: AXPopupComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-popup-wrapper\" aria-modal=\"true\" [cdkTrapFocus]=\"true\">\n <div class=\"ax-popup ax-popup-{{ size }}\" tabindex=\"0\" cdkDrag [cdkDragDisabled]=\"!draggable\">\n <div cdkDragHandle class=\"ax-popup-header-container\">\n <div class=\"ax-popup-header\" *ngIf=\"showHeader\">\n <span class=\"ax-popup-title\">{{ title }}</span>\n <!-- <span class=\"ax-icon ax-icon-close\" (click)=\"_handleCloseClick()\" tabindex=\"1\"></span> -->\n <ax-close-button (click)=\"_handleCloseClick()\" tabindex=\"1\"></ax-close-button>\n </div>\n </div>\n <div class=\"ax-popup-main-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"_handleAttched($event)\"></ng-template>\n </div>\n <div class=\"ax-popup-footer-container\"></div>\n </div>\n</div>\n", styles: [".ax-popup{display:flex;flex-direction:column;background-color:rgba(var(--ax-color-surface));box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;border-radius:var(--ax-rounded-border-default);outline:unset;padding:0;width:50%;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));min-height:-moz-fit-content;min-height:fit-content;margin:0 auto;width:auto;overflow:hidden}.ax-popup .ax-popup-header{padding:1rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid;border-color:rgba(var(--ax-color-border-default))}.ax-popup .ax-popup-header .ax-popup-title{font-size:1.125rem;font-weight:500}@media (max-width: 599px){.ax-popup .ax-popup-header .ax-popup-title{font-size:1rem}}.ax-popup .ax-popup-header .ax-icon-close{font-size:1.25rem;cursor:pointer}.ax-popup .ax-popup-header .ax-icon-close:hover{opacity:.5}.ax-popup ax-footer{padding:.75rem;display:flex;align-items:center;justify-content:space-between;background-color:rgba(var(--ax-color-on-surface))}.ax-popup:focus{outline-color:transparent}.ax-popup:focus-visible{border-color:rgba(var(--ax-color-primary-500))}.ax-popup .ax-popup-main-container{overflow:auto;flex:1 1 0%}.ax-popup.ax-popup-full{width:100vw;max-height:calc(100 * var(--ax-vh));height:calc(100 * var(--ax-vh));border-radius:0!important}.ax-popup.ax-fit{width:-moz-fit-content;width:fit-content}@media (max-width: 599px){.ax-popup.ax-popup-sm,.ax-popup.ax-popup-md,.ax-popup.ax-popup-lg{width:93vw!important;height:calc(var(--ax-overlay-full-width) * var(--ax-vh))!important}.ax-popup.ax-popup-sm .ax-popup-main-container>ng-component>div,.ax-popup.ax-popup-md .ax-popup-main-container>ng-component>div,.ax-popup.ax-popup-lg .ax-popup-main-container>ng-component>div{width:100%}}@media (min-width: 600px){.ax-popup.ax-popup-sm{min-width:60vw!important;max-width:85vw!important}.ax-popup.ax-popup-md{min-width:70vw!important;max-width:85vw!important}.ax-popup.ax-popup-lg{min-width:85vw!important;max-width:90vw!important}}@media (min-width: 1200px){.ax-popup.ax-popup-sm{min-width:25vw!important;max-width:35vw!important}.ax-popup.ax-popup-md{min-width:45vw!important;max-width:55vw!important}.ax-popup.ax-popup-lg{min-width:75vw!important;max-width:95vw!important}}@media (min-width: 1800px){.ax-popup.ax-popup-sm{min-width:15vw!important;max-width:25vw!important}.ax-popup.ax-popup-md{min-width:30vw!important;max-width:50vw!important}.ax-popup.ax-popup-lg{min-width:45vw!important;max-width:85vw!important}}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i4.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i5.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i6.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i7.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
144
145
  }
145
146
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: AXPopupComponent, decorators: [{
146
147
  type: Component,
147
- args: [{ selector: 'ax-popup', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [{ provide: AXClosbaleComponent, useExisting: AXPopupComponent }], template: "<div class=\"ax-popup-wrapper\" aria-modal=\"true\" [cdkTrapFocus]=\"true\">\n <div class=\"ax-popup ax-popup-{{size}}\" tabindex=\"0\" cdkDrag [cdkDragDisabled]=\"!draggable\">\n <div cdkDragHandle class=\"ax-popup-header-container\">\n <div class=\"ax-popup-header\" *ngIf=\"showHeader\">\n <span class=\"ax-popup-title\">{{title}}</span>\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleCloseClick()\" tabindex=\"1\"></span>\n </div>\n </div>\n <div class=\"ax-popup-main-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"_handleAttched($event)\"></ng-template>\n </div>\n <div class=\"ax-popup-footer-container\"></div>\n </div>\n</div>", styles: [".ax-popup{display:flex;flex-direction:column;background-color:rgba(var(--ax-color-surface));box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;border-radius:var(--ax-rounded-border-default);outline:unset;padding:0;width:50%;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));min-height:-moz-fit-content;min-height:fit-content;margin:0 auto;width:auto;overflow:hidden}.ax-popup .ax-popup-header{padding:1rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid;border-color:rgba(var(--ax-color-border-default))}.ax-popup .ax-popup-header .ax-popup-title{font-size:1.125rem;font-weight:500}@media (max-width: 599px){.ax-popup .ax-popup-header .ax-popup-title{font-size:1rem}}.ax-popup .ax-popup-header .ax-icon-close{font-size:1.25rem;cursor:pointer}.ax-popup .ax-popup-header .ax-icon-close:hover{opacity:.5}.ax-popup ax-footer{padding:.75rem;display:flex;align-items:center;justify-content:space-between;background-color:rgba(var(--ax-color-on-surface))}.ax-popup:focus{outline-color:transparent}.ax-popup:focus-visible{border-color:rgba(var(--ax-color-primary-500))}.ax-popup .ax-popup-main-container{overflow:auto;flex:1 1 0%}.ax-popup.ax-popup-full{width:100vw;max-height:calc(100 * var(--ax-vh));height:calc(100 * var(--ax-vh));border-radius:0!important}.ax-popup.ax-fit{width:-moz-fit-content;width:fit-content}@media (max-width: 599px){.ax-popup.ax-popup-sm,.ax-popup.ax-popup-md,.ax-popup.ax-popup-lg{width:93vw!important;height:calc(var(--ax-overlay-full-width) * var(--ax-vh))!important}.ax-popup.ax-popup-sm .ax-popup-main-container>ng-component>div,.ax-popup.ax-popup-md .ax-popup-main-container>ng-component>div,.ax-popup.ax-popup-lg .ax-popup-main-container>ng-component>div{width:100%}}@media (min-width: 600px){.ax-popup.ax-popup-sm{min-width:60vw!important;max-width:85vw!important}.ax-popup.ax-popup-md{min-width:70vw!important;max-width:85vw!important}.ax-popup.ax-popup-lg{min-width:85vw!important;max-width:90vw!important}}@media (min-width: 1200px){.ax-popup.ax-popup-sm{min-width:25vw!important;max-width:35vw!important}.ax-popup.ax-popup-md{min-width:45vw!important;max-width:55vw!important}.ax-popup.ax-popup-lg{min-width:75vw!important;max-width:95vw!important}}@media (min-width: 1800px){.ax-popup.ax-popup-sm{min-width:15vw!important;max-width:25vw!important}.ax-popup.ax-popup-md{min-width:30vw!important;max-width:50vw!important}.ax-popup.ax-popup-lg{min-width:45vw!important;max-width:85vw!important}}\n"] }]
148
+ args: [{ selector: 'ax-popup', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [{ provide: AXClosbaleComponent, useExisting: AXPopupComponent }], template: "<div class=\"ax-popup-wrapper\" aria-modal=\"true\" [cdkTrapFocus]=\"true\">\n <div class=\"ax-popup ax-popup-{{ size }}\" tabindex=\"0\" cdkDrag [cdkDragDisabled]=\"!draggable\">\n <div cdkDragHandle class=\"ax-popup-header-container\">\n <div class=\"ax-popup-header\" *ngIf=\"showHeader\">\n <span class=\"ax-popup-title\">{{ title }}</span>\n <!-- <span class=\"ax-icon ax-icon-close\" (click)=\"_handleCloseClick()\" tabindex=\"1\"></span> -->\n <ax-close-button (click)=\"_handleCloseClick()\" tabindex=\"1\"></ax-close-button>\n </div>\n </div>\n <div class=\"ax-popup-main-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"_handleAttched($event)\"></ng-template>\n </div>\n <div class=\"ax-popup-footer-container\"></div>\n </div>\n</div>\n", styles: [".ax-popup{display:flex;flex-direction:column;background-color:rgba(var(--ax-color-surface));box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;border-radius:var(--ax-rounded-border-default);outline:unset;padding:0;width:50%;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));min-height:-moz-fit-content;min-height:fit-content;margin:0 auto;width:auto;overflow:hidden}.ax-popup .ax-popup-header{padding:1rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid;border-color:rgba(var(--ax-color-border-default))}.ax-popup .ax-popup-header .ax-popup-title{font-size:1.125rem;font-weight:500}@media (max-width: 599px){.ax-popup .ax-popup-header .ax-popup-title{font-size:1rem}}.ax-popup .ax-popup-header .ax-icon-close{font-size:1.25rem;cursor:pointer}.ax-popup .ax-popup-header .ax-icon-close:hover{opacity:.5}.ax-popup ax-footer{padding:.75rem;display:flex;align-items:center;justify-content:space-between;background-color:rgba(var(--ax-color-on-surface))}.ax-popup:focus{outline-color:transparent}.ax-popup:focus-visible{border-color:rgba(var(--ax-color-primary-500))}.ax-popup .ax-popup-main-container{overflow:auto;flex:1 1 0%}.ax-popup.ax-popup-full{width:100vw;max-height:calc(100 * var(--ax-vh));height:calc(100 * var(--ax-vh));border-radius:0!important}.ax-popup.ax-fit{width:-moz-fit-content;width:fit-content}@media (max-width: 599px){.ax-popup.ax-popup-sm,.ax-popup.ax-popup-md,.ax-popup.ax-popup-lg{width:93vw!important;height:calc(var(--ax-overlay-full-width) * var(--ax-vh))!important}.ax-popup.ax-popup-sm .ax-popup-main-container>ng-component>div,.ax-popup.ax-popup-md .ax-popup-main-container>ng-component>div,.ax-popup.ax-popup-lg .ax-popup-main-container>ng-component>div{width:100%}}@media (min-width: 600px){.ax-popup.ax-popup-sm{min-width:60vw!important;max-width:85vw!important}.ax-popup.ax-popup-md{min-width:70vw!important;max-width:85vw!important}.ax-popup.ax-popup-lg{min-width:85vw!important;max-width:90vw!important}}@media (min-width: 1200px){.ax-popup.ax-popup-sm{min-width:25vw!important;max-width:35vw!important}.ax-popup.ax-popup-md{min-width:45vw!important;max-width:55vw!important}.ax-popup.ax-popup-lg{min-width:75vw!important;max-width:95vw!important}}@media (min-width: 1800px){.ax-popup.ax-popup-sm{min-width:15vw!important;max-width:25vw!important}.ax-popup.ax-popup-md{min-width:30vw!important;max-width:50vw!important}.ax-popup.ax-popup-lg{min-width:45vw!important;max-width:85vw!important}}\n"] }]
148
149
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i0.ViewContainerRef }, { type: i1.AXLoadingService }, { type: i2.AXPlatform }]; }, propDecorators: { onKeydownHandler: [{
149
150
  type: HostListener,
150
151
  args: ['keydown.escape', ['$event']]
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-popup.mjs","sources":["../../../../projects/acorex/components/popup/src/popup.component.ts","../../../../projects/acorex/components/popup/src/popup.component.html","../../../../projects/acorex/components/popup/src/popup.service.ts","../../../../projects/acorex/components/popup/src/popup.module.ts","../../../../projects/acorex/components/popup/acorex-components-popup.ts"],"sourcesContent":["import {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ElementRef,\n ChangeDetectorRef,\n ViewContainerRef,\n HostListener,\n ComponentRef,\n EventEmitter,\n TemplateRef,\n NgZone,\n} from '@angular/core';\nimport {\n CdkPortalOutletAttachedRef,\n ComponentPortal,\n Portal,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport { AXPlatform } from '@acorex/core/platform';\n\nimport {\n AXClosbaleComponent,\n AXComponentCloseEvent,\n TAB_META_KEY,\n} from '@acorex/components/common';\nimport { AXLoadingService } from '@acorex/components/loading';\nimport { AXBaseComponentMixin } from '@acorex/components/mixin';\n\n/**\n * The Button is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-popup',\n templateUrl: './popup.component.html',\n styleUrls: ['./popup.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXClosbaleComponent, useExisting: AXPopupComponent }],\n})\nexport class AXPopupComponent extends AXBaseComponentMixin {\n isLoading: boolean = true;\n private _loadingId: number;\n\n title: string;\n\n onClosed: EventEmitter<AXComponentCloseEvent> =\n new EventEmitter<AXComponentCloseEvent>();\n\n size: 'sm' | 'md' | 'lg' | 'full' = 'sm';\n draggable: boolean = true;\n\n data: any = {};\n\n showCloseButton: boolean = true;\n showHeader: boolean = true;\n\n content: any;\n\n _selectedPortal: Portal<any>;\n _footerPortal: Portal<any>;\n _headerPortal: Portal<any>;\n\n /**\n * @ignore\n */\n constructor(\n elementRef: ElementRef,\n cdr: ChangeDetectorRef,\n private _zone: NgZone,\n private _viewContainerRef: ViewContainerRef,\n private loadingService: AXLoadingService,\n private _platform: AXPlatform\n ) {\n super(elementRef, cdr);\n }\n\n onInit() {\n super.onInit();\n if (this._platform.is('Mobile')) {\n this.draggable = false;\n }\n\n this._loadingId = this.loadingService.show(\n //TODO: check ts error\n //@ts-ignore\n this._getHostElement().querySelector('.ax-popup-body-container')\n );\n //\n if (typeof this.content === 'string') {\n // this.rendererService.findLoadedComponentByRoute(this.content, 20).then(route => {\n // setTimeout(() => {\n // this.loadComponent(route.component);\n // }, 300);\n // });\n } else if (this.content instanceof TemplateRef) {\n this._selectedPortal = new TemplatePortal(\n this.content,\n this._viewContainerRef,\n { $implicit: this.data, ref: this }\n );\n this._cdr.markForCheck();\n } else if (typeof this.content === 'function') {\n this._selectedPortal = new ComponentPortal(this.content);\n this._cdr.markForCheck();\n }\n //\n // this._platform.keydown.subscribe((e) => {\n // this.close();\n // e.nativeEvent.stopPropagation();\n // });\n }\n\n _handleAttched(ref: CdkPortalOutletAttachedRef) {\n ref = ref as ComponentRef<any>;\n if (ref.instance) {\n this[TAB_META_KEY].component = ref.instance;\n Object.assign(this[TAB_META_KEY].component, this.data);\n Object.assign(this[TAB_META_KEY].component, { _isPopup: true });\n if (ref.instance.onClosed) {\n ref.instance.onClosed.subscribe((e: AXComponentCloseEvent) => {\n this.onClosed.emit(e);\n });\n }\n }\n this._zone.runOutsideAngular(() => {\n setTimeout(() => {\n const main = this._getHostElement().querySelector<HTMLDivElement>(\n '.ax-popup-main-container'\n );\n const popHeader = this._getHostElement().querySelector<HTMLDivElement>(\n '.ax-popup-header-container'\n );\n const popFooter = this._getHostElement().querySelector<HTMLDivElement>(\n '.ax-popup-footer-container'\n );\n const footer = main!.querySelector<HTMLDivElement>('ax-footer');\n const header = main!.querySelector<HTMLDivElement>('ax-header');\n if (footer) {\n popFooter!.append(footer);\n }\n if (header) {\n //TODO: check ts error\n //@ts-ignore\n popHeader.innerHTML = '';\n popHeader!.append(header);\n }\n this.focus();\n });\n });\n this.loadingService.hide(this._loadingId);\n this._cdr.markForCheck();\n }\n\n @HostListener('keydown.escape', ['$event'])\n onKeydownHandler(event: KeyboardEvent) {\n let focusedOrHasFocused = this._getHostElement().matches(':focus-within');\n if (this.showCloseButton && focusedOrHasFocused) {\n this.close();\n }\n }\n\n _handleCloseClick() {\n this.close();\n }\n\n ngOnDestroy() {\n this.loadingService.hide(this._loadingId);\n }\n\n focus() {\n setTimeout(() =>\n this._getHostElement().querySelector<HTMLDivElement>('.ax-popup')?.focus()\n );\n }\n\n close() {\n this.onClosed.emit({\n //TODO: check ts error\n //@ts-ignore\n component: this[TAB_META_KEY].component,\n htmlElement: this._getHostElement(),\n });\n this._cdr.detectChanges();\n }\n\n onFullScreen() {}\n}\n","<div class=\"ax-popup-wrapper\" aria-modal=\"true\" [cdkTrapFocus]=\"true\">\n <div class=\"ax-popup ax-popup-{{size}}\" tabindex=\"0\" cdkDrag [cdkDragDisabled]=\"!draggable\">\n <div cdkDragHandle class=\"ax-popup-header-container\">\n <div class=\"ax-popup-header\" *ngIf=\"showHeader\">\n <span class=\"ax-popup-title\">{{title}}</span>\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleCloseClick()\" tabindex=\"1\"></span>\n </div>\n </div>\n <div class=\"ax-popup-main-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"_handleAttched($event)\"></ng-template>\n </div>\n <div class=\"ax-popup-footer-container\"></div>\n </div>\n</div>","import { Injectable, TemplateRef } from '@angular/core';\nimport {\n AXOverlayService,\n AXOverlayViewRef,\n AXComponentClosedPromise,\n AXComponentCloseEvent,\n TAB_META_KEY,\n} from '@acorex/components/common';\nimport { AXPopupComponent } from './popup.component';\n\nexport type AXPopupContentType = string | TemplateRef<any> | Function;\nexport type AXPopupSizeType = 'sm' | 'md' | 'lg' | 'full' | 'fit';\nexport interface AXPopupOption {\n title?: string;\n showCloseButton?: boolean;\n showHeader?: boolean;\n maximizable?: boolean;\n size?: AXPopupSizeType;\n data?: any;\n draggable?: boolean;\n transparentBackdrop?: boolean;\n closeOnClickOutside?: boolean;\n}\n/**\n * This is a service which you can create popup with it\n *\n * @category Components\n */\n\n@Injectable({ providedIn: 'root' })\nexport class AXPopupService {\n private stack: Array<AXPopupComponent> = [];\n protected options: AXPopupOption;\n /**\n * @ignore\n */\n constructor(private overlayService: AXOverlayService) {}\n\n /**\n * Open popup 1\n */\n open(content: AXPopupContentType, title: string): AXComponentClosedPromise;\n /**\n * Open popup 2\n * @ignore\n */\n open(\n content: AXPopupContentType,\n options?: AXPopupOption\n ): AXComponentClosedPromise;\n\n /**\n * @ignore\n */\n open(arg1, arg2): AXComponentClosedPromise {\n const options: AXPopupOption = {\n showCloseButton: true,\n showHeader: true,\n size: 'md',\n maximizable: false,\n draggable: true,\n transparentBackdrop: false,\n closeOnClickOutside: false,\n };\n if (typeof arg2 === 'string') {\n options.title = arg2;\n } else {\n Object.assign(options, arg2);\n }\n const lastActiveElement = document.activeElement as HTMLElement;\n const com = this.overlayService.show(AXPopupComponent, options, {\n transparentBackdrop: options.transparentBackdrop,\n\n scroll: 'block',\n onBackdropClick: () => {\n if (options.closeOnClickOutside) {\n popup.close();\n }\n },\n // onBackdropClick: () => {\n // console.log('back');\n // },\n });\n const popup = com.instance as AXPopupComponent;\n popup.content = arg1;\n popup[TAB_META_KEY] = {};\n if (options.size) {\n (popup.size as AXPopupSizeType) = options.size;\n }\n this.stack.push(popup);\n popup.onClosed.subscribe(c => {\n this.closePopup(popup, com, c, lastActiveElement);\n });\n const promise = new AXComponentClosedPromise(resolve => {\n popup[TAB_META_KEY].close = e => {\n if (resolve) {\n resolve(e);\n }\n };\n });\n promise['closeMethod'] = () => {\n popup.close();\n };\n return promise;\n }\n\n private closePopup(\n popup: AXPopupComponent,\n com: AXOverlayViewRef,\n result: AXComponentCloseEvent,\n lastActiveElement?: HTMLElement\n ) {\n const closeFunc = e => {\n com.dispose();\n this.stack.pop();\n delete e.cancel;\n popup[TAB_META_KEY].close(e);\n if (lastActiveElement?.focus) {\n lastActiveElement.focus();\n } else if (this.stack.length) {\n this.stack.reverse()[0].focus();\n }\n };\n const e = { cancel: false };\n const closingFunc = popup[TAB_META_KEY].component.onClosing;\n if (closingFunc) {\n const res = closingFunc(e);\n if (res instanceof Promise) {\n res.then(() => {\n if (e == null || e.cancel !== true) {\n closeFunc(result);\n }\n });\n } else {\n if (e == null || e.cancel !== true) {\n closeFunc(result);\n }\n }\n } else {\n closeFunc(result);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { AXPopupComponent } from './popup.component';\nimport { AXButtonModule } from '@acorex/components/button';\n\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXCommonModule } from '@acorex/components/common';\n\nconst COMPONENT = [AXPopupComponent];\nconst MODULES = [CommonModule,AXCommonModule, DragDropModule, A11yModule, AXButtonModule, PortalModule, AXDecoratorModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXPopupModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-popup.mjs","sources":["../../../../projects/acorex/components/popup/src/popup.component.ts","../../../../projects/acorex/components/popup/src/popup.component.html","../../../../projects/acorex/components/popup/src/popup.service.ts","../../../../projects/acorex/components/popup/src/popup.module.ts","../../../../projects/acorex/components/popup/acorex-components-popup.ts"],"sourcesContent":["import {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ElementRef,\n ChangeDetectorRef,\n ViewContainerRef,\n HostListener,\n ComponentRef,\n EventEmitter,\n TemplateRef,\n NgZone,\n} from '@angular/core';\nimport {\n CdkPortalOutletAttachedRef,\n ComponentPortal,\n Portal,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport { AXPlatform } from '@acorex/core/platform';\n\nimport {\n AXClosbaleComponent,\n AXComponentCloseEvent,\n TAB_META_KEY,\n} from '@acorex/components/common';\nimport { AXLoadingService } from '@acorex/components/loading';\nimport { AXBaseComponentMixin } from '@acorex/components/mixin';\n\n/**\n * The Button is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-popup',\n templateUrl: './popup.component.html',\n styleUrls: ['./popup.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXClosbaleComponent, useExisting: AXPopupComponent }],\n})\nexport class AXPopupComponent extends AXBaseComponentMixin {\n isLoading: boolean = true;\n private _loadingId: number;\n\n title: string;\n\n onClosed: EventEmitter<AXComponentCloseEvent> =\n new EventEmitter<AXComponentCloseEvent>();\n\n size: 'sm' | 'md' | 'lg' | 'full' = 'sm';\n draggable: boolean = true;\n\n data: any = {};\n\n showCloseButton: boolean = true;\n showHeader: boolean = true;\n\n content: any;\n\n _selectedPortal: Portal<any>;\n _footerPortal: Portal<any>;\n _headerPortal: Portal<any>;\n\n /**\n * @ignore\n */\n constructor(\n elementRef: ElementRef,\n cdr: ChangeDetectorRef,\n private _zone: NgZone,\n private _viewContainerRef: ViewContainerRef,\n private loadingService: AXLoadingService,\n private _platform: AXPlatform\n ) {\n super(elementRef, cdr);\n }\n\n onInit() {\n super.onInit();\n if (this._platform.is('Mobile')) {\n this.draggable = false;\n }\n\n this._loadingId = this.loadingService.show(\n //TODO: check ts error\n //@ts-ignore\n this._getHostElement().querySelector('.ax-popup-body-container')\n );\n //\n if (typeof this.content === 'string') {\n // this.rendererService.findLoadedComponentByRoute(this.content, 20).then(route => {\n // setTimeout(() => {\n // this.loadComponent(route.component);\n // }, 300);\n // });\n } else if (this.content instanceof TemplateRef) {\n this._selectedPortal = new TemplatePortal(\n this.content,\n this._viewContainerRef,\n { $implicit: this.data, ref: this }\n );\n this._cdr.markForCheck();\n } else if (typeof this.content === 'function') {\n this._selectedPortal = new ComponentPortal(this.content);\n this._cdr.markForCheck();\n }\n //\n // this._platform.keydown.subscribe((e) => {\n // this.close();\n // e.nativeEvent.stopPropagation();\n // });\n }\n\n _handleAttched(ref: CdkPortalOutletAttachedRef) {\n ref = ref as ComponentRef<any>;\n if (ref.instance) {\n this[TAB_META_KEY].component = ref.instance;\n Object.assign(this[TAB_META_KEY].component, this.data);\n Object.assign(this[TAB_META_KEY].component, { _isPopup: true });\n if (ref.instance.onClosed) {\n ref.instance.onClosed.subscribe((e: AXComponentCloseEvent) => {\n this.onClosed.emit(e);\n });\n }\n }\n this._zone.runOutsideAngular(() => {\n setTimeout(() => {\n const main = this._getHostElement().querySelector<HTMLDivElement>(\n '.ax-popup-main-container'\n );\n const popHeader = this._getHostElement().querySelector<HTMLDivElement>(\n '.ax-popup-header-container'\n );\n const popFooter = this._getHostElement().querySelector<HTMLDivElement>(\n '.ax-popup-footer-container'\n );\n const footer = main!.querySelector<HTMLDivElement>('ax-footer');\n const header = main!.querySelector<HTMLDivElement>('ax-header');\n if (footer) {\n popFooter!.append(footer);\n }\n if (header) {\n //TODO: check ts error\n //@ts-ignore\n popHeader.innerHTML = '';\n popHeader!.append(header);\n }\n this.focus();\n });\n });\n this.loadingService.hide(this._loadingId);\n this._cdr.markForCheck();\n }\n\n @HostListener('keydown.escape', ['$event'])\n onKeydownHandler(event: KeyboardEvent) {\n let focusedOrHasFocused = this._getHostElement().matches(':focus-within');\n if (this.showCloseButton && focusedOrHasFocused) {\n this.close();\n }\n }\n\n _handleCloseClick() {\n this.close();\n }\n\n ngOnDestroy() {\n this.loadingService.hide(this._loadingId);\n }\n\n focus() {\n setTimeout(() =>\n this._getHostElement().querySelector<HTMLDivElement>('.ax-popup')?.focus()\n );\n }\n\n close() {\n this.onClosed.emit({\n //TODO: check ts error\n //@ts-ignore\n component: this[TAB_META_KEY].component,\n htmlElement: this._getHostElement(),\n });\n this._cdr.detectChanges();\n }\n\n onFullScreen() {}\n}\n","<div class=\"ax-popup-wrapper\" aria-modal=\"true\" [cdkTrapFocus]=\"true\">\n <div class=\"ax-popup ax-popup-{{ size }}\" tabindex=\"0\" cdkDrag [cdkDragDisabled]=\"!draggable\">\n <div cdkDragHandle class=\"ax-popup-header-container\">\n <div class=\"ax-popup-header\" *ngIf=\"showHeader\">\n <span class=\"ax-popup-title\">{{ title }}</span>\n <!-- <span class=\"ax-icon ax-icon-close\" (click)=\"_handleCloseClick()\" tabindex=\"1\"></span> -->\n <ax-close-button (click)=\"_handleCloseClick()\" tabindex=\"1\"></ax-close-button>\n </div>\n </div>\n <div class=\"ax-popup-main-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"_handleAttched($event)\"></ng-template>\n </div>\n <div class=\"ax-popup-footer-container\"></div>\n </div>\n</div>\n","import { Injectable, TemplateRef } from '@angular/core';\nimport {\n AXOverlayService,\n AXOverlayViewRef,\n AXComponentClosedPromise,\n AXComponentCloseEvent,\n TAB_META_KEY,\n} from '@acorex/components/common';\nimport { AXPopupComponent } from './popup.component';\n\nexport type AXPopupContentType = string | TemplateRef<any> | Function;\nexport type AXPopupSizeType = 'sm' | 'md' | 'lg' | 'full' | 'fit';\nexport interface AXPopupOption {\n title?: string;\n showCloseButton?: boolean;\n showHeader?: boolean;\n maximizable?: boolean;\n size?: AXPopupSizeType;\n data?: any;\n draggable?: boolean;\n transparentBackdrop?: boolean;\n closeOnClickOutside?: boolean;\n}\n/**\n * This is a service which you can create popup with it\n *\n * @category Components\n */\n\n@Injectable({ providedIn: 'root' })\nexport class AXPopupService {\n private stack: Array<AXPopupComponent> = [];\n protected options: AXPopupOption;\n /**\n * @ignore\n */\n constructor(private overlayService: AXOverlayService) {}\n\n /**\n * Open popup 1\n */\n open(content: AXPopupContentType, title: string): AXComponentClosedPromise;\n /**\n * Open popup 2\n * @ignore\n */\n open(\n content: AXPopupContentType,\n options?: AXPopupOption\n ): AXComponentClosedPromise;\n\n /**\n * @ignore\n */\n open(arg1, arg2): AXComponentClosedPromise {\n const options: AXPopupOption = {\n showCloseButton: true,\n showHeader: true,\n size: 'md',\n maximizable: false,\n draggable: true,\n transparentBackdrop: false,\n closeOnClickOutside: false,\n };\n if (typeof arg2 === 'string') {\n options.title = arg2;\n } else {\n Object.assign(options, arg2);\n }\n const lastActiveElement = document.activeElement as HTMLElement;\n const com = this.overlayService.show(AXPopupComponent, options, {\n transparentBackdrop: options.transparentBackdrop,\n\n scroll: 'block',\n onBackdropClick: () => {\n if (options.closeOnClickOutside) {\n popup.close();\n }\n },\n // onBackdropClick: () => {\n // console.log('back');\n // },\n });\n const popup = com.instance as AXPopupComponent;\n popup.content = arg1;\n popup[TAB_META_KEY] = {};\n if (options.size) {\n (popup.size as AXPopupSizeType) = options.size;\n }\n this.stack.push(popup);\n popup.onClosed.subscribe(c => {\n this.closePopup(popup, com, c, lastActiveElement);\n });\n const promise = new AXComponentClosedPromise(resolve => {\n popup[TAB_META_KEY].close = e => {\n if (resolve) {\n resolve(e);\n }\n };\n });\n promise['closeMethod'] = () => {\n popup.close();\n };\n return promise;\n }\n\n private closePopup(\n popup: AXPopupComponent,\n com: AXOverlayViewRef,\n result: AXComponentCloseEvent,\n lastActiveElement?: HTMLElement\n ) {\n const closeFunc = e => {\n com.dispose();\n this.stack.pop();\n delete e.cancel;\n popup[TAB_META_KEY].close(e);\n if (lastActiveElement?.focus) {\n lastActiveElement.focus();\n } else if (this.stack.length) {\n this.stack.reverse()[0].focus();\n }\n };\n const e = { cancel: false };\n const closingFunc = popup[TAB_META_KEY].component.onClosing;\n if (closingFunc) {\n const res = closingFunc(e);\n if (res instanceof Promise) {\n res.then(() => {\n if (e == null || e.cancel !== true) {\n closeFunc(result);\n }\n });\n } else {\n if (e == null || e.cancel !== true) {\n closeFunc(result);\n }\n }\n } else {\n closeFunc(result);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { AXPopupComponent } from './popup.component';\nimport { AXButtonModule } from '@acorex/components/button';\n\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXCommonModule } from '@acorex/components/common';\n\nconst COMPONENT = [AXPopupComponent];\nconst MODULES = [CommonModule,AXCommonModule, DragDropModule, A11yModule, AXButtonModule, PortalModule, AXDecoratorModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXPopupModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
@@ -5,6 +5,7 @@ import { AXSearchableComponent } from '@acorex/components/common';
5
5
  import * as i3 from '@acorex/components/textbox';
6
6
  import { AXTextBoxComponent, AXTextBoxModule } from '@acorex/components/textbox';
7
7
  import { AXBaseComponentMixin } from '@acorex/components/mixin';
8
+ import { Subject, filter, debounceTime, distinctUntilChanged, tap } from 'rxjs';
8
9
  import * as i1 from '@angular/common';
9
10
  import { CommonModule } from '@angular/common';
10
11
  import * as i2 from '@acorex/components/decorators';
@@ -23,11 +24,18 @@ class AXSearchBoxComponent extends AXBaseComponentMixin {
23
24
  placeholder = 'common.search';
24
25
  debounceTime = 500;
25
26
  searchExp = '';
27
+ subject = new Subject();
28
+ ngOnInit() {
29
+ this.subject
30
+ .pipe(filter(Boolean), debounceTime(this.debounceTime), distinctUntilChanged(), tap(text => {
31
+ if (this._parent && this._parent.search) {
32
+ this._parent.search(text);
33
+ }
34
+ }))
35
+ .subscribe();
36
+ }
26
37
  _onSearchExprChanged(e) {
27
- //TODO: debounceTime
28
- if (this._parent && this._parent.search) {
29
- this._parent.search(e.value);
30
- }
38
+ this.subject.next(e.value);
31
39
  }
32
40
  focus() {
33
41
  this._textbox?.focus();
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-search-box.mjs","sources":["../../../../projects/acorex/components/search-box/src/search-box.component.ts","../../../../projects/acorex/components/search-box/src/search-box.component.html","../../../../projects/acorex/components/search-box/src/search-box.module.ts","../../../../projects/acorex/components/search-box/acorex-components-search-box.ts"],"sourcesContent":["import {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ElementRef,\n ChangeDetectorRef,\n Optional,\n Inject,\n Input,\n ViewChild,\n} from '@angular/core';\nimport {\n AXSearchableComponent,\n AXValueChangedEvent,\n} from '@acorex/components/common';\nimport { AXTextBoxComponent } from '@acorex/components/textbox';\nimport { AXBaseComponentMixin } from '@acorex/components/mixin';\n\n@Component({\n selector: 'ax-search-box',\n templateUrl: './search-box.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXSearchBoxComponent extends AXBaseComponentMixin {\n @ViewChild(AXTextBoxComponent)\n _textbox: AXTextBoxComponent;\n\n constructor(\n _elementRef: ElementRef,\n _cdr: ChangeDetectorRef,\n @Optional()\n @Inject(AXSearchableComponent)\n private _parent: AXSearchableComponent\n ) {\n super(_elementRef, _cdr);\n }\n\n @Input()\n placeholder: string = 'common.search';\n\n @Input()\n debounceTime: number = 500;\n\n @Input()\n searchExp: string = '';\n\n _onSearchExprChanged(e: AXValueChangedEvent<string>) {\n //TODO: debounceTime\n if (this._parent && this._parent.search) {\n this._parent.search(e.value as any);\n }\n }\n\n focus() {\n this._textbox?.focus();\n }\n\n clear() {\n this._textbox.value = '';\n }\n}\n","<ax-text-box placeholder=\"{{ placeholder | trans }}\" [(value)]=\"searchExp\"\n (onValueChanged)=\"_onSearchExprChanged($event)\">\n <ax-prefix>\n <span class=\"ax-icon ax-icon-search ax-editor-control\"></span>\n </ax-prefix>\n <ax-suffix>\n <button *ngIf=\"searchExp\" class=\"ax-general-button ax-button-icon\" (click)=\"clear()\">\n <span class=\"ax-icon ax-icon-close\"></span>\n </button>\n </ax-suffix>\n</ax-text-box>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXSearchBoxComponent } from './search-box.component';\nimport { AXTextBoxModule } from '@acorex/components/textbox';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXButtonModule } from '@acorex/components/button';\n\nconst COMPONENT = [AXSearchBoxComponent];\nconst MODULES = [CommonModule, AXTranslationModule, AXDecoratorModule, AXTextBoxModule, AXButtonModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXSearchBoxModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-search-box.mjs","sources":["../../../../projects/acorex/components/search-box/src/search-box.component.ts","../../../../projects/acorex/components/search-box/src/search-box.component.html","../../../../projects/acorex/components/search-box/src/search-box.module.ts","../../../../projects/acorex/components/search-box/acorex-components-search-box.ts"],"sourcesContent":["import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, Optional, Inject, Input, ViewChild } from '@angular/core';\nimport { AXSearchableComponent, AXValueChangedEvent } from '@acorex/components/common';\nimport { AXTextBoxComponent } from '@acorex/components/textbox';\nimport { AXBaseComponentMixin } from '@acorex/components/mixin';\nimport { Subject, debounceTime, distinctUntilChanged, filter, tap } from 'rxjs';\n\n@Component({\n selector: 'ax-search-box',\n templateUrl: './search-box.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXSearchBoxComponent extends AXBaseComponentMixin {\n @ViewChild(AXTextBoxComponent)\n _textbox: AXTextBoxComponent;\n\n constructor(\n _elementRef: ElementRef,\n _cdr: ChangeDetectorRef,\n @Optional()\n @Inject(AXSearchableComponent)\n private _parent: AXSearchableComponent\n ) {\n super(_elementRef, _cdr);\n }\n\n @Input()\n placeholder: string = 'common.search';\n\n @Input()\n debounceTime: number = 500;\n\n @Input()\n searchExp: string = '';\n\n private subject: Subject<string> = new Subject();\n\n ngOnInit(): void {\n this.subject\n .pipe(\n filter(Boolean),\n debounceTime(this.debounceTime),\n distinctUntilChanged(),\n tap(text => {\n if (this._parent && this._parent.search) {\n this._parent.search(text);\n }\n })\n )\n .subscribe();\n }\n\n _onSearchExprChanged(e: AXValueChangedEvent<string>) {\n this.subject.next(e.value);\n }\n\n focus() {\n this._textbox?.focus();\n }\n\n clear() {\n this._textbox.value = '';\n }\n}\n","<ax-text-box placeholder=\"{{ placeholder | trans }}\" [(value)]=\"searchExp\"\n (onValueChanged)=\"_onSearchExprChanged($event)\">\n <ax-prefix>\n <span class=\"ax-icon ax-icon-search ax-editor-control\"></span>\n </ax-prefix>\n <ax-suffix>\n <button *ngIf=\"searchExp\" class=\"ax-general-button ax-button-icon\" (click)=\"clear()\">\n <span class=\"ax-icon ax-icon-close\"></span>\n </button>\n </ax-suffix>\n</ax-text-box>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXSearchBoxComponent } from './search-box.component';\nimport { AXTextBoxModule } from '@acorex/components/textbox';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXButtonModule } from '@acorex/components/button';\n\nconst COMPONENT = [AXSearchBoxComponent];\nconst MODULES = [CommonModule, AXTranslationModule, AXDecoratorModule, AXTextBoxModule, AXButtonModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXSearchBoxModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import * as i8 from '@acorex/core/translation';
1
+ import * as i7 from '@acorex/core/translation';
2
2
  import { AXTranslator, AXTranslationModule } from '@acorex/core/translation';
3
3
  import * as i0 from '@angular/core';
4
4
  import { Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, ContentChild, Input, HostListener, NgModule } from '@angular/core';
@@ -13,11 +13,9 @@ import * as i2 from '@angular/common';
13
13
  import { CommonModule } from '@angular/common';
14
14
  import * as i3 from '@acorex/components/decorators';
15
15
  import { AXDecoratorModule } from '@acorex/components/decorators';
16
- import * as i5 from '@acorex/components/button';
17
- import { AXButtonModule } from '@acorex/components/button';
18
- import * as i6 from '@acorex/components/loading';
16
+ import * as i5 from '@acorex/components/loading';
19
17
  import { AXLoadingModule } from '@acorex/components/loading';
20
- import * as i7 from '@angular/cdk/a11y';
18
+ import * as i6 from '@angular/cdk/a11y';
21
19
  import { A11yModule } from '@angular/cdk/a11y';
22
20
  import { FormsModule } from '@angular/forms';
23
21
  import { AXBadgeModule } from '@acorex/components/badge';
@@ -322,7 +320,7 @@ class AXSelectBoxComponent extends AXBaseSelectionDropdownMixin {
322
320
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: AXSelectBoxComponent, selector: "ax-select-box", inputs: { isOpen: "isOpen", fitParent: "fitParent", dropdownWidth: "dropdownWidth", position: "position", disabled: "disabled", tabIndex: "tabIndex", allowNull: "allowNull", value: "value", name: "name", checked: "checked", placeholder: "placeholder", maxLength: "maxLength", type: "type", autoComplete: "autoComplete", readonly: "readonly", pageSize: "pageSize", items: "items", valueField: "valueField", textField: "textField", disabledField: "disabledField", disabledCallback: "disabledCallback", multiple: "multiple", selectionMode: "selectionMode", clearButton: "clearButton", checkbox: "checkbox" }, outputs: { onOpened: "onOpened", onClosed: "onClosed", onBlur: "onBlur", onFocus: "onFocus", valueChange: "valueChange", onValueChanged: "onValueChanged" }, host: { listeners: { "keydown": "_handleKeydown($event)" }, classAttribute: "ax-editor-container ax-drop-down" }, providers: [
323
321
  { provide: AXClosbaleComponent, useExisting: AXSelectBoxComponent },
324
322
  { provide: AXSearchableComponent, useExisting: AXSelectBoxComponent },
325
- ], queries: [{ propertyName: "_searchBox", first: true, predicate: AXSearchBoxComponent, descendants: true, static: true }, { propertyName: "_contentEmptyTemplate", first: true, predicate: ["emptyTemplate"], descendants: true }], viewQueries: [{ propertyName: "popover", first: true, predicate: AXPopoverComponent, descendants: true, static: true }, { propertyName: "listContainer", first: true, predicate: ["listContainer"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\"> </ng-content>\n<div class=\"ax-dropdown-content\" [class.ax-state-disabled]=\"disabled\" (click)=\"_handleInputClickEvent($event)\">\n <div class=\"ax-select-box-selection\" [tabindex]=\"tabIndex\" (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnBlurEvent($event)\">\n <ng-container *ngIf=\"selectedItems && selectedItems.length; else showPlaceholder\">\n <ng-container *ngIf=\"!multiple; then singleSelectedTemplate; else multipleSelectedTemplate\"></ng-container>\n <ng-template #singleSelectedTemplate>\n <ng-container *ngFor=\"let item of selectedItems\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n </ng-container>\n </ng-template>\n <ng-template #multipleSelectedTemplate>\n <div class=\"ax-select-box-multi-selection\">\n <ng-container *ngFor=\"let item of selectedItems\">\n <div class=\"ax-select-multi-item\">\n {{ _getItemDisplayTextTemplte(item) }}\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\"> </span>\n </div>\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n <ng-template #showPlaceholder>\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\n {{ placeholder }}\n </div>\n </ng-template>\n </div>\n</div>\n<ax-button color=\"light\" look=\"blank\" (onClick)=\"clear()\" [tabIndex]=\"-1\" *ngIf=\"value && clearButton && !(disabled || readonly)\">\n <ax-icon icon=\"ax-icon ax-icon-close\"></ax-icon>\n</ax-button>\n<button [disabled]=\"disabled\" [tabIndex]=\"-1\" class=\"ax-editor-control\" (click)=\"_handleArrowClickEvent($event)\">\n <ng-container *ngIf=\"isLoading && !this.popover.isOpen; else iconTemplate\">\n <ax-loading type=\"spinner\"></ax-loading>\n </ng-container>\n <ng-template #iconTemplate>\n <span\n class=\"ax-icon ax-icon-chevron-left ax-transition-all\"\n [ngClass]=\"{\n '-ax-rotation-90': !isOpen,\n 'ax-rotation-90': isOpen\n }\"></span>\n </ng-template>\n</button>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n<ng-content select=\"ax-suffix\"> </ng-content>\n<ax-popover [target]=\"_target\" [position]=\"position\" [openTrigger]=\"'manual'\" [closeTrigger]=\"'clickout'\" [adaptivityEnabled]=\"true\" (onOpened)=\"_handlePopupOnOpened($event)\" (onClosed)=\"_handlePopupOnClosed($event)\">\n <div\n class=\"ax-overlay-pane\"\n (keydown)=\"_handlePopoverKeydown($event)\"\n tabindex=\"0\"\n aria-modal=\"true\"\n cdkTrapFocus\n [class.ax-overlay-actionsheet]=\"_isActionSheet\"\n [class.ax-full]=\"_searchBox || isLazy\"\n [style.min-width.px]=\"_popoverWidth\">\n <div class=\"ax-list\">\n <ax-header *ngIf=\"_isActionSheet\">\n <ax-title>{{ _popoverTitle }}</ax-title>\n <ax-close-button class=\"ax-icon\" [icon]=\"multiple ? 'ax-icon-done !ax-text-primary-500' : 'ax-icon-close'\"></ax-close-button>\n </ax-header>\n <div class=\"ax-search-box-container\" [class.ax-state-hidden]=\"!_searchBox\" [cdkTrapFocus]=\"_searchBox != null\">\n <ng-content select=\"ax-search-box\"></ng-content>\n </div>\n <div class=\"ax-content ax-list-items-container ax-default\" (scroll)=\"_handleListScroll($event)\" #listContainer>\n <ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul>\n <ng-container *ngTemplateOutlet=\"tmpTree; context: { list: displayItems }\"> </ng-container>\n <ng-template #tmpTree let-list=\"list\">\n <ng-container *ngFor=\"let item of list; let i = index; trackBy: _trackByFunction\">\n <ng-container *ngIf=\"itemTemplate; else defualtTemplate\">\n <li class=\"ax-list-item\" (click)=\"_handleOnItemClick($event, item)\" [attr.data-id]=\"item[this.valueField]\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, direction: direction }\"> </ng-container>\n </li>\n </ng-container>\n <ng-template #defualtTemplate>\n <ng-container *ngIf=\"item.children?.length > 0; else tmpItem\">\n <li class=\"ax-list-item-group\" [attr.data-id]=\"item[this.valueField]\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n <ul *ngIf=\"item.children?.length > 0\">\n <ng-container *ngTemplateOutlet=\"tmpTree; context: { list: item.children }\"> </ng-container>\n </ul>\n </li>\n </ng-container>\n <ng-template #tmpItem>\n <ng-container *ngIf=\"!multiple; else multipleTemplate\">\n <li\n class=\"ax-list-item\"\n [class.ax-state-selected]=\"isItemSelected(item)\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\n [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"item[this.valueField]\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n <span class=\"ax-icon ax-icon-done ax-selected-icon\" *ngIf=\"isItemSelected(item)\"></span>\n </li>\n </ng-container>\n <ng-template #multipleTemplate>\n <li\n class=\"ax-list-item\"\n [class.ax-state-selected]=\"isItemSelected(item)\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\n [class.ax-state-checkbox]=\"checkbox\"\n [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"item[this.valueField]\">\n <span>\n <input class=\"ax-checkbox\" type=\"checkbox\" [class.ax-state-disabled]=\"isItemDisabled(item)\" *ngIf=\"checkbox\" [checked]=\"isItemSelected(item)\" [disabled]=\"isItemDisabled(item)\" />\n <span class=\"ax-checkbox-label\">{{ _getItemDisplayTextTemplte(item) }}</span>\n </span>\n <span class=\"ax-icon ax-icon-done ax-selected-icon\" *ngIf=\"isItemSelected(item) && !checkbox\"></span>\n </li>\n </ng-template>\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-template>\n </ul>\n </ng-container>\n <ng-container *ngIf=\"isLoading\">\n <ng-container *ngIf=\"loadingTemplate; else elseLoadingTemplate\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseLoadingTemplate>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading [options]=\"_loadingOptions\"></ax-loading>\n </div>\n </ng-template>\n </ng-container>\n <ng-template #tmpEmpty>\n <ng-container *ngIf=\"!isLoading\">\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseEmptyTemplate>\n <div\n class=\"ax-flex ax-items-center ax-justify-center ax-p-4\"\n [innerHTML]=\"\n 'common.no-result-for'\n | trans\n : {\n exp: this._searchBox ? this._searchBox.searchExp : ''\n }\n \"></div>\n </ng-template>\n </ng-container>\n </ng-template>\n </div>\n <!-- <div class=\"ax-list-items-container ax-vertical ax-default\" [class.ax-full]=\"_isMobile\"\n >\n \n </div> -->\n <!-- <div class=\"ax-footer\">footer</div> -->\n </div>\n </div>\n</ax-popover>\n", styles: ["ax-select-box .ax-select-multi-item{display:flex;align-items:center;padding:.25rem .5rem;background-color:rgba(var(--ax-color-default));color:rgba(var(--ax-color-default-fore));border-radius:var(--ax-rounded-border-default);margin-inline-end:.5rem}ax-select-box .ax-select-multi-item .ax-icon-close{cursor:pointer;margin-inline-start:.5rem}ax-select-box .ax-select-box-selection{display:flex;justify-content:center;align-items:center;outline-color:transparent;outline:transparent;-webkit-user-select:none;user-select:none}ax-select-box .ax-select-box-selection>span{padding-inline-start:1rem;padding-inline-end:.75rem;white-space:nowrap}ax-select-box .ax-select-box-selection .ax-selectbox-input{opacity:0;width:0}ax-select-box .ax-select-box-multi-selection{padding:0 .5rem;display:flex;justify-content:center;align-items:center}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.AXDecoratorHeaderComponent, selector: "ax-header" }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorTitleComponent, selector: "ax-title" }, { kind: "component", type: i3.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }, { kind: "component", type: i4.AXPopoverComponent, selector: "ax-popover", inputs: ["target", "position", "openTrigger", "closeTrigger", "hasBackdrop", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i5.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange"] }, { kind: "component", type: i6.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "options"], outputs: ["visibleChange"] }, { kind: "directive", type: i7.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: i8.AXTranslatorPipe, name: "trans" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
323
+ ], queries: [{ propertyName: "_searchBox", first: true, predicate: AXSearchBoxComponent, descendants: true, static: true }, { propertyName: "_contentEmptyTemplate", first: true, predicate: ["emptyTemplate"], descendants: true }], viewQueries: [{ propertyName: "popover", first: true, predicate: AXPopoverComponent, descendants: true, static: true }, { propertyName: "listContainer", first: true, predicate: ["listContainer"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\"> </ng-content>\n<div class=\"ax-dropdown-content\" [class.ax-state-disabled]=\"disabled\" (click)=\"_handleInputClickEvent($event)\">\n <div\n class=\"ax-select-box-selection\"\n [tabindex]=\"tabIndex\"\n (focus)=\"_emitOnFocusEvent($event)\"\n (blur)=\"_emitOnBlurEvent($event)\">\n <ng-container *ngIf=\"selectedItems && selectedItems.length; else showPlaceholder\">\n <ng-container *ngIf=\"!multiple; then singleSelectedTemplate; else multipleSelectedTemplate\"></ng-container>\n <ng-template #singleSelectedTemplate>\n <ng-container *ngFor=\"let item of selectedItems\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n </ng-container>\n </ng-template>\n <ng-template #multipleSelectedTemplate>\n <div class=\"ax-select-box-multi-selection\">\n <ng-container *ngFor=\"let item of selectedItems\">\n <div class=\"ax-select-multi-item\">\n {{ _getItemDisplayTextTemplte(item) }}\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\"> </span>\n </div>\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n <ng-template #showPlaceholder>\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\n {{ placeholder }}\n </div>\n </ng-template>\n </div>\n</div>\n<button\n class=\"ax-general-button ax-button-icon\"\n (click)=\"clear()\"\n [tabIndex]=\"-1\"\n *ngIf=\"value && clearButton && !(disabled || readonly)\">\n <span class=\"ax-icon ax-icon-close\"></span>\n</button>\n<button\n [disabled]=\"disabled\"\n [tabIndex]=\"-1\"\n class=\"ax-general-button ax-button-icon\"\n (click)=\"_handleArrowClickEvent($event)\">\n <ng-container *ngIf=\"isLoading && !this.popover.isOpen; else iconTemplate\">\n <ax-loading type=\"spinner\"></ax-loading>\n </ng-container>\n <ng-template #iconTemplate>\n <span\n class=\"ax-icon ax-icon-chevron-left ax-transition-all\"\n [ngClass]=\"{\n '-ax-rotation-90': !isOpen,\n 'ax-rotation-90': isOpen\n }\"></span>\n </ng-template>\n</button>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n<ng-content select=\"ax-suffix\"> </ng-content>\n<ax-popover\n [target]=\"_target\"\n [position]=\"position\"\n [openTrigger]=\"'manual'\"\n [closeTrigger]=\"'clickout'\"\n [adaptivityEnabled]=\"true\"\n (onOpened)=\"_handlePopupOnOpened($event)\"\n (onClosed)=\"_handlePopupOnClosed($event)\">\n <div\n class=\"ax-overlay-pane\"\n (keydown)=\"_handlePopoverKeydown($event)\"\n tabindex=\"0\"\n aria-modal=\"true\"\n cdkTrapFocus\n [class.ax-overlay-actionsheet]=\"_isActionSheet\"\n [class.ax-full]=\"_searchBox || isLazy\"\n [style.min-width.px]=\"_popoverWidth\">\n <div class=\"ax-list\">\n <ax-header *ngIf=\"_isActionSheet\">\n <ax-title>{{ _popoverTitle }}</ax-title>\n <ax-close-button\n class=\"ax-icon\"\n [icon]=\"multiple ? 'ax-icon-done !ax-text-primary-500' : 'ax-icon-close'\"></ax-close-button>\n </ax-header>\n <div class=\"ax-search-box-container\" [class.ax-state-hidden]=\"!_searchBox\" [cdkTrapFocus]=\"_searchBox != null\">\n <ng-content select=\"ax-search-box\"></ng-content>\n </div>\n <div class=\"ax-content ax-list-items-container ax-default\" (scroll)=\"_handleListScroll($event)\" #listContainer>\n <ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul>\n <ng-container *ngTemplateOutlet=\"tmpTree; context: { list: displayItems }\"> </ng-container>\n <ng-template #tmpTree let-list=\"list\">\n <ng-container *ngFor=\"let item of list; let i = index; trackBy: _trackByFunction\">\n <ng-container *ngIf=\"itemTemplate; else defualtTemplate\">\n <li\n class=\"ax-list-item\"\n (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"item[this.valueField]\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, direction: direction }\">\n </ng-container>\n </li>\n </ng-container>\n <ng-template #defualtTemplate>\n <ng-container *ngIf=\"item.children?.length > 0; else tmpItem\">\n <li class=\"ax-list-item-group\" [attr.data-id]=\"item[this.valueField]\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n <ul *ngIf=\"item.children?.length > 0\">\n <ng-container *ngTemplateOutlet=\"tmpTree; context: { list: item.children }\"> </ng-container>\n </ul>\n </li>\n </ng-container>\n <ng-template #tmpItem>\n <ng-container *ngIf=\"!multiple; else multipleTemplate\">\n <li\n class=\"ax-list-item\"\n [class.ax-state-selected]=\"isItemSelected(item)\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\n [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"item[this.valueField]\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n <span class=\"ax-icon ax-icon-done ax-selected-icon\" *ngIf=\"isItemSelected(item)\"></span>\n </li>\n </ng-container>\n <ng-template #multipleTemplate>\n <li\n class=\"ax-list-item\"\n [class.ax-state-selected]=\"isItemSelected(item)\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\n [class.ax-state-checkbox]=\"checkbox\"\n [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"item[this.valueField]\">\n <span>\n <input\n class=\"ax-checkbox\"\n type=\"checkbox\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\n *ngIf=\"checkbox\"\n [checked]=\"isItemSelected(item)\"\n [disabled]=\"isItemDisabled(item)\" />\n <span class=\"ax-checkbox-label\">{{ _getItemDisplayTextTemplte(item) }}</span>\n </span>\n <span\n class=\"ax-icon ax-icon-done ax-selected-icon\"\n *ngIf=\"isItemSelected(item) && !checkbox\"></span>\n </li>\n </ng-template>\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-template>\n </ul>\n </ng-container>\n <ng-container *ngIf=\"isLoading\">\n <ng-container *ngIf=\"loadingTemplate; else elseLoadingTemplate\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseLoadingTemplate>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading [options]=\"_loadingOptions\"></ax-loading>\n </div>\n </ng-template>\n </ng-container>\n <ng-template #tmpEmpty>\n <ng-container *ngIf=\"!isLoading\">\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseEmptyTemplate>\n <div\n class=\"ax-flex ax-items-center ax-justify-center ax-p-4\"\n [innerHTML]=\"\n 'common.no-result-for'\n | trans\n : {\n exp: this._searchBox ? this._searchBox.searchExp : ''\n }\n \"></div>\n </ng-template>\n </ng-container>\n </ng-template>\n </div>\n <!-- <div class=\"ax-list-items-container ax-vertical ax-default\" [class.ax-full]=\"_isMobile\"\n >\n \n </div> -->\n <!-- <div class=\"ax-footer\">footer</div> -->\n </div>\n </div>\n</ax-popover>\n", styles: ["ax-select-box .ax-select-multi-item{display:flex;align-items:center;padding:.25rem .5rem;background-color:rgba(var(--ax-color-default));color:rgba(var(--ax-color-default-fore));border-radius:var(--ax-rounded-border-default);margin-inline-end:.5rem}ax-select-box .ax-select-multi-item .ax-icon-close{cursor:pointer;margin-inline-start:.5rem}ax-select-box .ax-select-box-selection{display:flex;justify-content:center;align-items:center;outline-color:transparent;outline:transparent;-webkit-user-select:none;user-select:none}ax-select-box .ax-select-box-selection>span{padding-inline-start:1rem;padding-inline-end:.75rem;white-space:nowrap}ax-select-box .ax-select-box-selection .ax-selectbox-input{opacity:0;width:0}ax-select-box .ax-select-box-multi-selection{padding:0 .5rem;display:flex;justify-content:center;align-items:center}ax-select-box .ax-placeholder{padding-inline-start:1rem;padding-inline-end:.75rem}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.AXDecoratorHeaderComponent, selector: "ax-header" }, { kind: "component", type: i3.AXDecoratorTitleComponent, selector: "ax-title" }, { kind: "component", type: i3.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }, { kind: "component", type: i4.AXPopoverComponent, selector: "ax-popover", inputs: ["target", "position", "openTrigger", "closeTrigger", "hasBackdrop", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i5.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "options"], outputs: ["visibleChange"] }, { kind: "directive", type: i6.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: i7.AXTranslatorPipe, name: "trans" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
326
324
  }
327
325
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: AXSelectBoxComponent, decorators: [{
328
326
  type: Component,
@@ -353,7 +351,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImpor
353
351
  ], outputs: ['onOpened', 'onClosed', 'onBlur', 'onFocus', 'valueChange', 'onValueChanged'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
354
352
  { provide: AXClosbaleComponent, useExisting: AXSelectBoxComponent },
355
353
  { provide: AXSearchableComponent, useExisting: AXSelectBoxComponent },
356
- ], host: { class: 'ax-editor-container ax-drop-down' }, template: "<ng-content select=\"ax-prefix\"> </ng-content>\n<div class=\"ax-dropdown-content\" [class.ax-state-disabled]=\"disabled\" (click)=\"_handleInputClickEvent($event)\">\n <div class=\"ax-select-box-selection\" [tabindex]=\"tabIndex\" (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnBlurEvent($event)\">\n <ng-container *ngIf=\"selectedItems && selectedItems.length; else showPlaceholder\">\n <ng-container *ngIf=\"!multiple; then singleSelectedTemplate; else multipleSelectedTemplate\"></ng-container>\n <ng-template #singleSelectedTemplate>\n <ng-container *ngFor=\"let item of selectedItems\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n </ng-container>\n </ng-template>\n <ng-template #multipleSelectedTemplate>\n <div class=\"ax-select-box-multi-selection\">\n <ng-container *ngFor=\"let item of selectedItems\">\n <div class=\"ax-select-multi-item\">\n {{ _getItemDisplayTextTemplte(item) }}\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\"> </span>\n </div>\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n <ng-template #showPlaceholder>\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\n {{ placeholder }}\n </div>\n </ng-template>\n </div>\n</div>\n<ax-button color=\"light\" look=\"blank\" (onClick)=\"clear()\" [tabIndex]=\"-1\" *ngIf=\"value && clearButton && !(disabled || readonly)\">\n <ax-icon icon=\"ax-icon ax-icon-close\"></ax-icon>\n</ax-button>\n<button [disabled]=\"disabled\" [tabIndex]=\"-1\" class=\"ax-editor-control\" (click)=\"_handleArrowClickEvent($event)\">\n <ng-container *ngIf=\"isLoading && !this.popover.isOpen; else iconTemplate\">\n <ax-loading type=\"spinner\"></ax-loading>\n </ng-container>\n <ng-template #iconTemplate>\n <span\n class=\"ax-icon ax-icon-chevron-left ax-transition-all\"\n [ngClass]=\"{\n '-ax-rotation-90': !isOpen,\n 'ax-rotation-90': isOpen\n }\"></span>\n </ng-template>\n</button>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n<ng-content select=\"ax-suffix\"> </ng-content>\n<ax-popover [target]=\"_target\" [position]=\"position\" [openTrigger]=\"'manual'\" [closeTrigger]=\"'clickout'\" [adaptivityEnabled]=\"true\" (onOpened)=\"_handlePopupOnOpened($event)\" (onClosed)=\"_handlePopupOnClosed($event)\">\n <div\n class=\"ax-overlay-pane\"\n (keydown)=\"_handlePopoverKeydown($event)\"\n tabindex=\"0\"\n aria-modal=\"true\"\n cdkTrapFocus\n [class.ax-overlay-actionsheet]=\"_isActionSheet\"\n [class.ax-full]=\"_searchBox || isLazy\"\n [style.min-width.px]=\"_popoverWidth\">\n <div class=\"ax-list\">\n <ax-header *ngIf=\"_isActionSheet\">\n <ax-title>{{ _popoverTitle }}</ax-title>\n <ax-close-button class=\"ax-icon\" [icon]=\"multiple ? 'ax-icon-done !ax-text-primary-500' : 'ax-icon-close'\"></ax-close-button>\n </ax-header>\n <div class=\"ax-search-box-container\" [class.ax-state-hidden]=\"!_searchBox\" [cdkTrapFocus]=\"_searchBox != null\">\n <ng-content select=\"ax-search-box\"></ng-content>\n </div>\n <div class=\"ax-content ax-list-items-container ax-default\" (scroll)=\"_handleListScroll($event)\" #listContainer>\n <ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul>\n <ng-container *ngTemplateOutlet=\"tmpTree; context: { list: displayItems }\"> </ng-container>\n <ng-template #tmpTree let-list=\"list\">\n <ng-container *ngFor=\"let item of list; let i = index; trackBy: _trackByFunction\">\n <ng-container *ngIf=\"itemTemplate; else defualtTemplate\">\n <li class=\"ax-list-item\" (click)=\"_handleOnItemClick($event, item)\" [attr.data-id]=\"item[this.valueField]\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, direction: direction }\"> </ng-container>\n </li>\n </ng-container>\n <ng-template #defualtTemplate>\n <ng-container *ngIf=\"item.children?.length > 0; else tmpItem\">\n <li class=\"ax-list-item-group\" [attr.data-id]=\"item[this.valueField]\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n <ul *ngIf=\"item.children?.length > 0\">\n <ng-container *ngTemplateOutlet=\"tmpTree; context: { list: item.children }\"> </ng-container>\n </ul>\n </li>\n </ng-container>\n <ng-template #tmpItem>\n <ng-container *ngIf=\"!multiple; else multipleTemplate\">\n <li\n class=\"ax-list-item\"\n [class.ax-state-selected]=\"isItemSelected(item)\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\n [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"item[this.valueField]\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n <span class=\"ax-icon ax-icon-done ax-selected-icon\" *ngIf=\"isItemSelected(item)\"></span>\n </li>\n </ng-container>\n <ng-template #multipleTemplate>\n <li\n class=\"ax-list-item\"\n [class.ax-state-selected]=\"isItemSelected(item)\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\n [class.ax-state-checkbox]=\"checkbox\"\n [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"item[this.valueField]\">\n <span>\n <input class=\"ax-checkbox\" type=\"checkbox\" [class.ax-state-disabled]=\"isItemDisabled(item)\" *ngIf=\"checkbox\" [checked]=\"isItemSelected(item)\" [disabled]=\"isItemDisabled(item)\" />\n <span class=\"ax-checkbox-label\">{{ _getItemDisplayTextTemplte(item) }}</span>\n </span>\n <span class=\"ax-icon ax-icon-done ax-selected-icon\" *ngIf=\"isItemSelected(item) && !checkbox\"></span>\n </li>\n </ng-template>\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-template>\n </ul>\n </ng-container>\n <ng-container *ngIf=\"isLoading\">\n <ng-container *ngIf=\"loadingTemplate; else elseLoadingTemplate\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseLoadingTemplate>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading [options]=\"_loadingOptions\"></ax-loading>\n </div>\n </ng-template>\n </ng-container>\n <ng-template #tmpEmpty>\n <ng-container *ngIf=\"!isLoading\">\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseEmptyTemplate>\n <div\n class=\"ax-flex ax-items-center ax-justify-center ax-p-4\"\n [innerHTML]=\"\n 'common.no-result-for'\n | trans\n : {\n exp: this._searchBox ? this._searchBox.searchExp : ''\n }\n \"></div>\n </ng-template>\n </ng-container>\n </ng-template>\n </div>\n <!-- <div class=\"ax-list-items-container ax-vertical ax-default\" [class.ax-full]=\"_isMobile\"\n >\n \n </div> -->\n <!-- <div class=\"ax-footer\">footer</div> -->\n </div>\n </div>\n</ax-popover>\n", styles: ["ax-select-box .ax-select-multi-item{display:flex;align-items:center;padding:.25rem .5rem;background-color:rgba(var(--ax-color-default));color:rgba(var(--ax-color-default-fore));border-radius:var(--ax-rounded-border-default);margin-inline-end:.5rem}ax-select-box .ax-select-multi-item .ax-icon-close{cursor:pointer;margin-inline-start:.5rem}ax-select-box .ax-select-box-selection{display:flex;justify-content:center;align-items:center;outline-color:transparent;outline:transparent;-webkit-user-select:none;user-select:none}ax-select-box .ax-select-box-selection>span{padding-inline-start:1rem;padding-inline-end:.75rem;white-space:nowrap}ax-select-box .ax-select-box-selection .ax-selectbox-input{opacity:0;width:0}ax-select-box .ax-select-box-multi-selection{padding:0 .5rem;display:flex;justify-content:center;align-items:center}\n"] }]
354
+ ], host: { class: 'ax-editor-container ax-drop-down' }, template: "<ng-content select=\"ax-prefix\"> </ng-content>\n<div class=\"ax-dropdown-content\" [class.ax-state-disabled]=\"disabled\" (click)=\"_handleInputClickEvent($event)\">\n <div\n class=\"ax-select-box-selection\"\n [tabindex]=\"tabIndex\"\n (focus)=\"_emitOnFocusEvent($event)\"\n (blur)=\"_emitOnBlurEvent($event)\">\n <ng-container *ngIf=\"selectedItems && selectedItems.length; else showPlaceholder\">\n <ng-container *ngIf=\"!multiple; then singleSelectedTemplate; else multipleSelectedTemplate\"></ng-container>\n <ng-template #singleSelectedTemplate>\n <ng-container *ngFor=\"let item of selectedItems\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n </ng-container>\n </ng-template>\n <ng-template #multipleSelectedTemplate>\n <div class=\"ax-select-box-multi-selection\">\n <ng-container *ngFor=\"let item of selectedItems\">\n <div class=\"ax-select-multi-item\">\n {{ _getItemDisplayTextTemplte(item) }}\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\"> </span>\n </div>\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n <ng-template #showPlaceholder>\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\n {{ placeholder }}\n </div>\n </ng-template>\n </div>\n</div>\n<button\n class=\"ax-general-button ax-button-icon\"\n (click)=\"clear()\"\n [tabIndex]=\"-1\"\n *ngIf=\"value && clearButton && !(disabled || readonly)\">\n <span class=\"ax-icon ax-icon-close\"></span>\n</button>\n<button\n [disabled]=\"disabled\"\n [tabIndex]=\"-1\"\n class=\"ax-general-button ax-button-icon\"\n (click)=\"_handleArrowClickEvent($event)\">\n <ng-container *ngIf=\"isLoading && !this.popover.isOpen; else iconTemplate\">\n <ax-loading type=\"spinner\"></ax-loading>\n </ng-container>\n <ng-template #iconTemplate>\n <span\n class=\"ax-icon ax-icon-chevron-left ax-transition-all\"\n [ngClass]=\"{\n '-ax-rotation-90': !isOpen,\n 'ax-rotation-90': isOpen\n }\"></span>\n </ng-template>\n</button>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n<ng-content select=\"ax-suffix\"> </ng-content>\n<ax-popover\n [target]=\"_target\"\n [position]=\"position\"\n [openTrigger]=\"'manual'\"\n [closeTrigger]=\"'clickout'\"\n [adaptivityEnabled]=\"true\"\n (onOpened)=\"_handlePopupOnOpened($event)\"\n (onClosed)=\"_handlePopupOnClosed($event)\">\n <div\n class=\"ax-overlay-pane\"\n (keydown)=\"_handlePopoverKeydown($event)\"\n tabindex=\"0\"\n aria-modal=\"true\"\n cdkTrapFocus\n [class.ax-overlay-actionsheet]=\"_isActionSheet\"\n [class.ax-full]=\"_searchBox || isLazy\"\n [style.min-width.px]=\"_popoverWidth\">\n <div class=\"ax-list\">\n <ax-header *ngIf=\"_isActionSheet\">\n <ax-title>{{ _popoverTitle }}</ax-title>\n <ax-close-button\n class=\"ax-icon\"\n [icon]=\"multiple ? 'ax-icon-done !ax-text-primary-500' : 'ax-icon-close'\"></ax-close-button>\n </ax-header>\n <div class=\"ax-search-box-container\" [class.ax-state-hidden]=\"!_searchBox\" [cdkTrapFocus]=\"_searchBox != null\">\n <ng-content select=\"ax-search-box\"></ng-content>\n </div>\n <div class=\"ax-content ax-list-items-container ax-default\" (scroll)=\"_handleListScroll($event)\" #listContainer>\n <ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul>\n <ng-container *ngTemplateOutlet=\"tmpTree; context: { list: displayItems }\"> </ng-container>\n <ng-template #tmpTree let-list=\"list\">\n <ng-container *ngFor=\"let item of list; let i = index; trackBy: _trackByFunction\">\n <ng-container *ngIf=\"itemTemplate; else defualtTemplate\">\n <li\n class=\"ax-list-item\"\n (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"item[this.valueField]\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, direction: direction }\">\n </ng-container>\n </li>\n </ng-container>\n <ng-template #defualtTemplate>\n <ng-container *ngIf=\"item.children?.length > 0; else tmpItem\">\n <li class=\"ax-list-item-group\" [attr.data-id]=\"item[this.valueField]\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n <ul *ngIf=\"item.children?.length > 0\">\n <ng-container *ngTemplateOutlet=\"tmpTree; context: { list: item.children }\"> </ng-container>\n </ul>\n </li>\n </ng-container>\n <ng-template #tmpItem>\n <ng-container *ngIf=\"!multiple; else multipleTemplate\">\n <li\n class=\"ax-list-item\"\n [class.ax-state-selected]=\"isItemSelected(item)\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\n [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"item[this.valueField]\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n <span class=\"ax-icon ax-icon-done ax-selected-icon\" *ngIf=\"isItemSelected(item)\"></span>\n </li>\n </ng-container>\n <ng-template #multipleTemplate>\n <li\n class=\"ax-list-item\"\n [class.ax-state-selected]=\"isItemSelected(item)\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\n [class.ax-state-checkbox]=\"checkbox\"\n [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"item[this.valueField]\">\n <span>\n <input\n class=\"ax-checkbox\"\n type=\"checkbox\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\n *ngIf=\"checkbox\"\n [checked]=\"isItemSelected(item)\"\n [disabled]=\"isItemDisabled(item)\" />\n <span class=\"ax-checkbox-label\">{{ _getItemDisplayTextTemplte(item) }}</span>\n </span>\n <span\n class=\"ax-icon ax-icon-done ax-selected-icon\"\n *ngIf=\"isItemSelected(item) && !checkbox\"></span>\n </li>\n </ng-template>\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-template>\n </ul>\n </ng-container>\n <ng-container *ngIf=\"isLoading\">\n <ng-container *ngIf=\"loadingTemplate; else elseLoadingTemplate\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseLoadingTemplate>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading [options]=\"_loadingOptions\"></ax-loading>\n </div>\n </ng-template>\n </ng-container>\n <ng-template #tmpEmpty>\n <ng-container *ngIf=\"!isLoading\">\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseEmptyTemplate>\n <div\n class=\"ax-flex ax-items-center ax-justify-center ax-p-4\"\n [innerHTML]=\"\n 'common.no-result-for'\n | trans\n : {\n exp: this._searchBox ? this._searchBox.searchExp : ''\n }\n \"></div>\n </ng-template>\n </ng-container>\n </ng-template>\n </div>\n <!-- <div class=\"ax-list-items-container ax-vertical ax-default\" [class.ax-full]=\"_isMobile\"\n >\n \n </div> -->\n <!-- <div class=\"ax-footer\">footer</div> -->\n </div>\n </div>\n</ax-popover>\n", styles: ["ax-select-box .ax-select-multi-item{display:flex;align-items:center;padding:.25rem .5rem;background-color:rgba(var(--ax-color-default));color:rgba(var(--ax-color-default-fore));border-radius:var(--ax-rounded-border-default);margin-inline-end:.5rem}ax-select-box .ax-select-multi-item .ax-icon-close{cursor:pointer;margin-inline-start:.5rem}ax-select-box .ax-select-box-selection{display:flex;justify-content:center;align-items:center;outline-color:transparent;outline:transparent;-webkit-user-select:none;user-select:none}ax-select-box .ax-select-box-selection>span{padding-inline-start:1rem;padding-inline-end:.75rem;white-space:nowrap}ax-select-box .ax-select-box-selection .ax-selectbox-input{opacity:0;width:0}ax-select-box .ax-select-box-multi-selection{padding:0 .5rem;display:flex;justify-content:center;align-items:center}ax-select-box .ax-placeholder{padding-inline-start:1rem;padding-inline-end:.75rem}\n"] }]
357
355
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i1.AXPlatform }]; }, propDecorators: { popover: [{
358
356
  type: ViewChild,
359
357
  args: [AXPopoverComponent, { static: true }]
@@ -385,7 +383,6 @@ class AXSelectBoxModule {
385
383
  AXDecoratorModule,
386
384
  AXTranslationModule,
387
385
  AXPopoverModule,
388
- AXButtonModule,
389
386
  AXLoadingModule,
390
387
  A11yModule,
391
388
  AXTextBoxModule], exports: [AXSelectBoxComponent] });
@@ -397,7 +394,6 @@ class AXSelectBoxModule {
397
394
  AXDecoratorModule,
398
395
  AXTranslationModule,
399
396
  AXPopoverModule,
400
- AXButtonModule,
401
397
  AXLoadingModule,
402
398
  A11yModule,
403
399
  AXTextBoxModule] });
@@ -405,7 +401,8 @@ class AXSelectBoxModule {
405
401
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: AXSelectBoxModule, decorators: [{
406
402
  type: NgModule,
407
403
  args: [{
408
- imports: [CommonModule,
404
+ imports: [
405
+ CommonModule,
409
406
  AXCommonModule,
410
407
  FormsModule,
411
408
  AXCheckBoxModule,
@@ -413,10 +410,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImpor
413
410
  AXDecoratorModule,
414
411
  AXTranslationModule,
415
412
  AXPopoverModule,
416
- AXButtonModule,
417
413
  AXLoadingModule,
418
414
  A11yModule,
419
- AXTextBoxModule
415
+ AXTextBoxModule,
420
416
  ],
421
417
  exports: [AXSelectBoxComponent],
422
418
  declarations: [AXSelectBoxComponent],