@libs-ui/components-inputs-emoji 0.2.221 → 0.2.223

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.
@@ -82,7 +82,7 @@ export class LibsUiComponentsEmojiComponent {
82
82
  this.dataEmojiView.update(item => ({ ...item, allData: emojiMatch, dataView: page ? [...item.dataView, ...dataInPage] : dataInPage }));
83
83
  }
84
84
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsEmojiComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
85
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsEmojiComponent, isStandalone: true, selector: "libs_ui-components-emoji", inputs: { configPopover: { classPropertyName: "configPopover", publicName: "configPopover", isSignal: true, isRequired: false, transformFunction: null }, isNgContent: { classPropertyName: "isNgContent", publicName: "isNgContent", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, modePopoverPosition: { classPropertyName: "modePopoverPosition", publicName: "modePopoverPosition", isSignal: true, isRequired: false, transformFunction: null }, classPopup: { classPropertyName: "classPopup", publicName: "classPopup", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, classIconInclude: { classPropertyName: "classIconInclude", publicName: "classIconInclude", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outEventEmoji: "outEventEmoji", moFunctionsControl: "moFunctionsControl" }, viewQueries: [{ propertyName: "emojiRef", first: true, predicate: ["emojiRef"], descendants: true, isSignal: true }, { propertyName: "elementViewEmoji", first: true, predicate: ["elementViewEmoji"], descendants: true, isSignal: true }], ngImport: i0, template: "<libs_ui-components-popover [classInclude]=\"classInclude()\"\n [config]=\"{\n content: 'i18n_text_emoji',\n zIndex:(zIndex() || 1200) + 4\n }\"\n (outFunctionsControl)=\"handlerFunctionsControl($event)\">\n <libs_ui-components-popover type='other'\n mode='click-toggle'\n [ignoreHiddenPopoverContentWhenMouseLeave]=\"true\"\n [config]=\"configPopover()\"\n [debugId]=\"'debug icon emoij'\"\n (outFunctionsControl)=\"handlerFunctionsControl($event)\">\n @if (!isNgContent()) {\n <i class='libs-ui-icon-add before:!text-[16px] {{ classIconInclude() }}'>\n </i>\n } @else {\n <ng-content></ng-content>\n }\n </libs_ui-components-popover>\n</libs_ui-components-popover>\n<ng-template #emojiRef>\n <div class=\"py-[10px] flex flex-col {{ classPopup() }}\">\n <div class=\"mx-[10px] mb-[12px]\">\n <div class=\"flex overflow-x-auto\">\n @for (category of emojisCategories(); track category;) {\n <div class=\"grow p-[4px] rounded-[4px] bg-[#ffffff] libs-ui-bg-list-hover\"\n (click)=\"handlerChooseCategory($event, category)\">\n <div class=\"mt-[1px] cursor-pointer text-[18px]\">\n {{ category.iconGroup }}\n </div>\n </div>\n }\n </div>\n </div>\n <div class=\"mx-[10px] mb-[12px]\">\n <libs_ui-components-inputs-search [searchConfig]=\"{\n placeholder: 'i18n_search',\n }\"\n [debounceTime]=\"0\"\n (outSearch)=\"handlerSearchEmoji($event)\" />\n </div>\n <div class=\"h-full w-full relative\">\n <div #elementViewEmoji\n class=\"w-full h-full px-[10px] absolute\"\n LibsUiComponentsScrollOverlayDirective\n (outScrollBottom)=\"handlerScrollBottom()\">\n @if (dataEmojiView().dataView.length) {\n @for (item of dataEmojiView().dataView; track $index) {\n <!-- n\u1EBFu sau c\u00F3 y\u00EAu c\u00E2u hover hi\u1EC3n th\u1ECB tooltio th\u00EC b\u1ECF [ignoreShowPopover]=\"true\" -->\n <span LibsUiComponentsPopoverDirective\n [ignoreShowPopover]=\"true\"\n [config]=\"{content:item.description,zIndex:(zIndex()|| 1200)+5}\"\n class=\"cursor-pointer flex shrink-0 h-fit m-[2px] float-left\"\n (click)=\"handlerAddEmoji(item)\">\n {{ item.emoji }}\n </span>\n }\n } @else {\n <div class=\"libs-ui-font-h5r text-[#9ca2ad] h-full w-full items-center justify-center\">\n {{ ( 'i18n_no_result') | translate }}\n </div>\n\n }\n </div>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: LibsUiComponentsInputsSearchComponent, selector: "libs_ui-components-inputs-search", inputs: ["disable", "readonly", "searchConfig", "ignoreAutoComplete", "debounceTime", "ignoreStopPropagationEvent", "focusTimeOut", "blurTimeOut"], outputs: ["outSearch", "outValueChange", "outIconLeft", "outIconRight", "outFocusAndBlur", "outFunctionsControl"] }, { kind: "component", type: LibsUiComponentsPopoverComponent, selector: "libs_ui-components-popover,[LibsUiComponentsPopoverDirective]", inputs: ["debugId", "flagMouse", "type", "mode", "config", "ignoreShowPopover", "elementRefCustom", "classInclude", "ignoreHiddenPopoverContentWhenMouseLeave", "ignoreStopPropagationEvent", "ignoreCursorPointerModeLikeClick", "isAddContentToParentDocument", "ignoreClickOutside"], outputs: ["outEvent", "outChangStageFlagMouse", "outEventPopoverContent", "outFunctionsControl"] }, { kind: "directive", type: LibsUiComponentsScrollOverlayDirective, selector: "[LibsUiComponentsScrollOverlayDirective]", inputs: ["debugMode", "ignoreInit", "classContainer", "options", "elementCheckScrollX", "elementCheckScrollY", "elementScroll"], outputs: ["outScroll", "outScrollX", "outScrollY", "outScrollTop", "outScrollBottom"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
85
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsEmojiComponent, isStandalone: true, selector: "libs_ui-components-emoji", inputs: { configPopover: { classPropertyName: "configPopover", publicName: "configPopover", isSignal: true, isRequired: false, transformFunction: null }, isNgContent: { classPropertyName: "isNgContent", publicName: "isNgContent", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, modePopoverPosition: { classPropertyName: "modePopoverPosition", publicName: "modePopoverPosition", isSignal: true, isRequired: false, transformFunction: null }, classPopup: { classPropertyName: "classPopup", publicName: "classPopup", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, classIconInclude: { classPropertyName: "classIconInclude", publicName: "classIconInclude", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outEventEmoji: "outEventEmoji", moFunctionsControl: "moFunctionsControl" }, viewQueries: [{ propertyName: "emojiRef", first: true, predicate: ["emojiRef"], descendants: true, isSignal: true }, { propertyName: "elementViewEmoji", first: true, predicate: ["elementViewEmoji"], descendants: true, isSignal: true }], ngImport: i0, template: "<libs_ui-components-popover [classInclude]=\"classInclude()\"\n [config]=\"{\n content: 'i18n_text_emoji',\n zIndex:(zIndex() || 1200) + 4\n }\"\n (outFunctionsControl)=\"handlerFunctionsControl($event)\">\n <libs_ui-components-popover type='other'\n mode='click-toggle'\n [ignoreHiddenPopoverContentWhenMouseLeave]=\"true\"\n [config]=\"configPopover()\"\n [debugId]=\"'debug icon emoij'\"\n (outFunctionsControl)=\"handlerFunctionsControl($event)\">\n @if (!isNgContent()) {\n <i class='libs-ui-icon-add before:!text-[16px] {{ classIconInclude() }}'>\n </i>\n } @else {\n <ng-content></ng-content>\n }\n </libs_ui-components-popover>\n</libs_ui-components-popover>\n<ng-template #emojiRef>\n <div class=\"py-[10px] flex flex-col {{ classPopup() }}\">\n <div class=\"mx-[10px] mb-[12px]\">\n <div class=\"flex overflow-x-auto\">\n @for (category of emojisCategories(); track category;) {\n <div class=\"grow p-[4px] rounded-[4px] bg-[#ffffff] libs-ui-bg-list-hover\"\n (click)=\"handlerChooseCategory($event, category)\">\n <div class=\"mt-[1px] cursor-pointer text-[18px]\">\n {{ category.iconGroup }}\n </div>\n </div>\n }\n </div>\n </div>\n <div class=\"mx-[10px] mb-[12px]\">\n <libs_ui-components-inputs-search [searchConfig]=\"{\n placeholder: 'i18n_search',\n }\"\n [debounceTime]=\"0\"\n (outSearch)=\"handlerSearchEmoji($event)\" />\n </div>\n <div class=\"h-full w-full relative\">\n <div #elementViewEmoji\n class=\"w-full h-full px-[10px] absolute\"\n LibsUiComponentsScrollOverlayDirective\n (outScrollBottom)=\"handlerScrollBottom()\">\n @if (dataEmojiView().dataView.length) {\n @for (item of dataEmojiView().dataView; track $index) {\n <!-- n\u1EBFu sau c\u00F3 y\u00EAu c\u00E2u hover hi\u1EC3n th\u1ECB tooltio th\u00EC b\u1ECF [ignoreShowPopover]=\"true\" -->\n <span LibsUiComponentsPopoverDirective\n [ignoreShowPopover]=\"true\"\n [config]=\"{content:item.description,zIndex:(zIndex()|| 1200)+5}\"\n class=\"cursor-pointer flex shrink-0 h-fit m-[2px] float-left\"\n (click)=\"handlerAddEmoji(item)\">\n {{ item.emoji }}\n </span>\n }\n } @else {\n <div class=\"libs-ui-font-h5r text-[#9ca2ad] h-full w-full items-center justify-center\">\n {{ ( 'i18n_no_result') | translate }}\n </div>\n\n }\n </div>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: LibsUiComponentsInputsSearchComponent, selector: "libs_ui-components-inputs-search", inputs: ["disable", "readonly", "searchConfig", "ignoreAutoComplete", "debounceTime", "ignoreStopPropagationEvent", "focusTimeOut", "blurTimeOut"], outputs: ["outSearch", "outValueChange", "outIconLeft", "outIconRight", "outFocusAndBlur", "outFunctionsControl"] }, { kind: "component", type: LibsUiComponentsPopoverComponent, selector: "libs_ui-components-popover,[LibsUiComponentsPopoverDirective]", inputs: ["debugId", "flagMouse", "type", "mode", "config", "ignoreShowPopover", "elementRefCustom", "initEventInElementRefCustom", "classInclude", "ignoreHiddenPopoverContentWhenMouseLeave", "ignoreStopPropagationEvent", "ignoreCursorPointerModeLikeClick", "isAddContentToParentDocument", "ignoreClickOutside"], outputs: ["outEvent", "outChangStageFlagMouse", "outEventPopoverContent", "outFunctionsControl"] }, { kind: "directive", type: LibsUiComponentsScrollOverlayDirective, selector: "[LibsUiComponentsScrollOverlayDirective]", inputs: ["debugMode", "ignoreInit", "classContainer", "options", "elementCheckScrollX", "elementCheckScrollY", "elementScroll"], outputs: ["outScroll", "outScrollX", "outScrollY", "outScrollTop", "outScrollBottom"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
86
86
  }
87
87
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsEmojiComponent, decorators: [{
88
88
  type: Component,
@@ -93,4 +93,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
93
93
  LibsUiComponentsScrollOverlayDirective
94
94
  ], template: "<libs_ui-components-popover [classInclude]=\"classInclude()\"\n [config]=\"{\n content: 'i18n_text_emoji',\n zIndex:(zIndex() || 1200) + 4\n }\"\n (outFunctionsControl)=\"handlerFunctionsControl($event)\">\n <libs_ui-components-popover type='other'\n mode='click-toggle'\n [ignoreHiddenPopoverContentWhenMouseLeave]=\"true\"\n [config]=\"configPopover()\"\n [debugId]=\"'debug icon emoij'\"\n (outFunctionsControl)=\"handlerFunctionsControl($event)\">\n @if (!isNgContent()) {\n <i class='libs-ui-icon-add before:!text-[16px] {{ classIconInclude() }}'>\n </i>\n } @else {\n <ng-content></ng-content>\n }\n </libs_ui-components-popover>\n</libs_ui-components-popover>\n<ng-template #emojiRef>\n <div class=\"py-[10px] flex flex-col {{ classPopup() }}\">\n <div class=\"mx-[10px] mb-[12px]\">\n <div class=\"flex overflow-x-auto\">\n @for (category of emojisCategories(); track category;) {\n <div class=\"grow p-[4px] rounded-[4px] bg-[#ffffff] libs-ui-bg-list-hover\"\n (click)=\"handlerChooseCategory($event, category)\">\n <div class=\"mt-[1px] cursor-pointer text-[18px]\">\n {{ category.iconGroup }}\n </div>\n </div>\n }\n </div>\n </div>\n <div class=\"mx-[10px] mb-[12px]\">\n <libs_ui-components-inputs-search [searchConfig]=\"{\n placeholder: 'i18n_search',\n }\"\n [debounceTime]=\"0\"\n (outSearch)=\"handlerSearchEmoji($event)\" />\n </div>\n <div class=\"h-full w-full relative\">\n <div #elementViewEmoji\n class=\"w-full h-full px-[10px] absolute\"\n LibsUiComponentsScrollOverlayDirective\n (outScrollBottom)=\"handlerScrollBottom()\">\n @if (dataEmojiView().dataView.length) {\n @for (item of dataEmojiView().dataView; track $index) {\n <!-- n\u1EBFu sau c\u00F3 y\u00EAu c\u00E2u hover hi\u1EC3n th\u1ECB tooltio th\u00EC b\u1ECF [ignoreShowPopover]=\"true\" -->\n <span LibsUiComponentsPopoverDirective\n [ignoreShowPopover]=\"true\"\n [config]=\"{content:item.description,zIndex:(zIndex()|| 1200)+5}\"\n class=\"cursor-pointer flex shrink-0 h-fit m-[2px] float-left\"\n (click)=\"handlerAddEmoji(item)\">\n {{ item.emoji }}\n </span>\n }\n } @else {\n <div class=\"libs-ui-font-h5r text-[#9ca2ad] h-full w-full items-center justify-center\">\n {{ ( 'i18n_no_result') | translate }}\n </div>\n\n }\n </div>\n </div>\n </div>\n</ng-template>\n" }]
95
95
  }], ctorParameters: () => [] });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1vamkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2lucHV0cy9lbW9qaS9zcmMvZW1vamkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2lucHV0cy9lbW9qaS9zcmMvZW1vamkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFjLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFlLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEssT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUYsT0FBTyxFQUFpRCxnQ0FBZ0MsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlILE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRTVGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFldEUsTUFBTSxPQUFPLDhCQUE4QjtJQUN6QyxtQkFBbUI7SUFDVCxnQkFBZ0IsR0FBRyxNQUFNLENBQXFCLElBQUksS0FBSyxFQUFlLENBQUMsQ0FBQztJQUN4RSxNQUFNLEdBQUcsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUM5RixhQUFhLEdBQUcsTUFBTSxDQUFzRCxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUs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RSwwQkFBMEIsY0FFeEIsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLGVBQWU7d0JBQ2YscUNBQXFDO3dCQUNyQyxnQ0FBZ0M7d0JBQ2hDLHNDQUFzQztxQkFDdkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBlZmZlY3QsIEVsZW1lbnRSZWYsIGlucHV0LCBvdXRwdXQsIHNpZ25hbCwgVGVtcGxhdGVSZWYsIHVudHJhY2tlZCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzSW5wdXRzU2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1pbnB1dHMtc2VhcmNoJztcbmltcG9ydCB7IElQb3BvdmVyRnVuY3Rpb25Db250cm9sRXZlbnQsIElQb3BvdmVyT3ZlcmxheSwgTGlic1VpQ29tcG9uZW50c1BvcG92ZXJDb21wb25lbnQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLXBvcG92ZXInO1xuaW1wb3J0IHsgTGlic1VpQ29tcG9uZW50c1Njcm9sbE92ZXJsYXlEaXJlY3RpdmUgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLXNjcm9sbC1vdmVybGF5JztcbmltcG9ydCB7IFRZUEVfVEVNUExBVEVfUkVGIH0gZnJvbSAnQGxpYnMtdWkvaW50ZXJmYWNlcy10eXBlcyc7XG5pbXBvcnQgeyBkZWxldGVVbmljb2RlIH0gZnJvbSAnQGxpYnMtdWkvdXRpbHMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBkZWZhdWx0Q29uZmlnUG9wb3ZlciwgZW1vamlzIH0gZnJvbSAnLi9kZWZpbmVzL2Vtb2ppLmRlZmluZSc7XG5pbXBvcnQgeyBJRW1vamksIElHcm91cEVtb2ppIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2Vtb2ppLmludGVyZmFjZSc7XG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdsaWJzX3VpLWNvbXBvbmVudHMtZW1vamknLFxuICB0ZW1wbGF0ZVVybDogJy4vZW1vamkuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBMaWJzVWlDb21wb25lbnRzSW5wdXRzU2VhcmNoQ29tcG9uZW50LFxuICAgIExpYnNVaUNvbXBvbmVudHNQb3BvdmVyQ29tcG9uZW50LFxuICAgIExpYnNVaUNvbXBvbmVudHNTY3JvbGxPdmVybGF5RGlyZWN0aXZlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpQ29tcG9uZW50c0Vtb2ppQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8vICNyZWdpb24gUFJPUEVSVFlcbiAgcHJvdGVjdGVkIGVtb2ppc0NhdGVnb3JpZXMgPSBzaWduYWw8QXJyYXk8SUdyb3VwRW1vamk+PihuZXcgQXJyYXk8SUdyb3VwRW1vamk+KCkpO1xuICBwcm90ZWN0ZWQgZmlsdGVyID0gc2lnbmFsKHsgcGFnZTogMCwga2V5U2VhcmNoOiAnJywgZ3JvdXBTZWxlY3RlZDogJ1NtaWxleXMgJiBFbW90aW9uJywgcGVyUGFnZTogMTcwIH0pO1xuICBwcm90ZWN0ZWQgZGF0YUVtb2ppVmlldyA9IHNpZ25hbDx7IGRhdGFWaWV3OiBBcnJheTxJRW1vamk+LCBhbGxEYXRhOiBBcnJheTxJRW1vamk+IH0+KHsgZGF0YVZpZXc6IFtdLCBhbGxEYXRhOiBbXSB9KTtcblxuICAvLyAjcmVnaW9uIElOUFVUXG4gIHJlYWRvbmx5IGNvbmZpZ1BvcG92ZXIgPSBpbnB1dDxJUG9wb3Zlck92ZXJsYXksIElQb3BvdmVyT3ZlcmxheSB8IHVuZGVmaW5lZD4oZGVmYXVsdENvbmZpZ1BvcG92ZXIsIHsgdHJhbnNmb3JtOiB2YWx1ZSA9PiB2YWx1ZSA/IHZhbHVlIDogZGVmYXVsdENvbmZpZ1BvcG92ZXIgfSk7XG4gIHJlYWRvbmx5IGlzTmdDb250ZW50ID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgekluZGV4ID0gaW5wdXQ8bnVtYmVyLCBudW1iZXIgfCB1bmRlZmluZWQ+KDAsIHsgdHJhbnNmb3JtOiB2YWx1ZSA9PiB2YWx1ZSA/PyAwIH0pO1xuICByZWFkb25seSBtb2RlUG9wb3ZlclBvc2l0aW9uID0gaW5wdXQ8J3N0YXJ0JyB8ICdjZW50ZXInIHwgJ2VuZCcgfCB1bmRlZmluZWQ+KCk7XG4gIHJlYWRvbmx5IGNsYXNzUG9wdXAgPSBpbnB1dDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4oJ3ctWzI5MHB4XSBoLVsyNDVweF0nLCB7IHRyYW5zZm9ybTogdmFsID0+IHZhbCA/PyAndy1bMjkwcHhdIGgtWzI0NXB4XScgfSk7XG4gIHJlYWRvbmx5IGNsYXNzSW5jbHVkZSA9IGlucHV0PHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPignJywgeyB0cmFuc2Zvcm06IHZhbCA9PiB2YWwgPz8gJycgfSk7XG4gIHJlYWRvbmx5IGNsYXNzSWNvbkluY2x1ZGUgPSBpbnB1dDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4oJycsIHsgdHJhbnNmb3JtOiB2YWwgPT4gdmFsID8/ICcnIH0pO1xuXG4gIC8vICNyZWdpb24gT1VUUFVUXG4gIHJlYWRvbmx5IG91dEV2ZW50RW1vamkgPSBvdXRwdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBtb0Z1bmN0aW9uc0NvbnRyb2wgPSBvdXRwdXQ8SVBvcG92ZXJGdW5jdGlvbkNvbnRyb2xFdmVudD4oKTtcblxuICAvKiBWSUVXIENISUxEICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZW1vamlSZWYgPSB2aWV3Q2hpbGQ8VGVtcGxhdGVSZWY8VFlQRV9URU1QTEFURV9SRUY+PignZW1vamlSZWYnKTtcbiAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50Vmlld0Vtb2ppID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8VFlQRV9URU1QTEFURV9SRUY+PignZWxlbWVudFZpZXdFbW9qaScpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICApIHtcbiAgICB0aGlzLmVtb2ppc0NhdGVnb3JpZXMuc2V0KGVtb2ppcy5tYXAoaXRlbSA9PiAoe1xuICAgICAgLi4uaXRlbSxcbiAgICAgIGljb25Hcm91cDogaXRlbS5lbW9qaXNbMF0uZW1vamksXG4gICAgICBlbW9qaXM6IG5ldyBBcnJheTxJRW1vamk+KClcbiAgICB9KSkpO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLnpJbmRleCgpKSB7XG4gICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jb25maWdQb3BvdmVyKCkuekluZGV4ID0gdGhpcy56SW5kZXgoKSArIDU7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5tb2RlUG9wb3ZlclBvc2l0aW9uKCkgJiYgdGhpcy5jb25maWdQb3BvdmVyKCkucG9zaXRpb24pIHtcbiAgICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICAgICh0aGlzLmNvbmZpZ1BvcG92ZXIoKSBhcyBhbnkpLnBvc2l0aW9uLm1vZGUgPSB0aGlzLm1vZGVQb3BvdmVyUG9zaXRpb24oKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmNvbmZpZ1BvcG92ZXIoKSkge1xuICAgICAgICB0aGlzLmNvbmZpZ1BvcG92ZXIoKS50ZW1wbGF0ZSA9IHRoaXMuZW1vamlSZWYoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmdldERhdGFWaWV3KCk7XG4gIH1cblxuICAvKiBGVU5DVElPTlMgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZXJBZGRFbW9qaShkYXRhOiBJRW1vamkpIHtcbiAgICB0aGlzLm91dEV2ZW50RW1vamkuZW1pdChkYXRhLmVtb2ppKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVyRnVuY3Rpb25zQ29udHJvbChldmVudDogSVBvcG92ZXJGdW5jdGlvbkNvbnRyb2xFdmVudCkge1xuICAgIHRoaXMubW9GdW5jdGlvbnNDb250cm9sLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZXJDaG9vc2VDYXRlZ29yeShldmVudDogRXZlbnQsIGNhdGVnb3J5OiBJR3JvdXBFbW9qaSkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuZmlsdGVyLnVwZGF0ZShkYXRhID0+ICh7IC4uLmRhdGEsIHBhZ2U6IDAsIGdyb3VwU2VsZWN0ZWQ6IGNhdGVnb3J5Lmdyb3VwX25hbWUgfSkpO1xuICAgIHRoaXMuZ2V0RGF0YVZpZXcoKTtcbiAgICB0aGlzLmVsZW1lbnRWaWV3RW1vamkoKT8ubmF0aXZlRWxlbWVudC5zY3JvbGwoeyB0b3A6IDAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlclNlYXJjaEVtb2ppKGtleVNlYXJjaDogc3RyaW5nKSB7XG4gICAgdGhpcy5maWx0ZXIudXBkYXRlKGRhdGEgPT4gKHsgLi4uZGF0YSwgcGFnZTogMCwga2V5U2VhcmNoOiBrZXlTZWFyY2gudHJpbSgpIH0pKTtcbiAgICB0aGlzLmdldERhdGFWaWV3KCk7XG4gICAgdGhpcy5lbGVtZW50Vmlld0Vtb2ppKCk/Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsKHsgdG9wOiAwIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJTY3JvbGxCb3R0b20oKSB7XG4gICAgdGhpcy5maWx0ZXIudXBkYXRlKGRhdGEgPT4gKHsgLi4uZGF0YSwgcGFnZTogZGF0YS5wYWdlICsgMSwgfSkpO1xuICAgIHRoaXMuZ2V0RGF0YVZpZXcoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGF0YVZpZXcoKSB7XG4gICAgY29uc3QgZW1vamlCeUdyb3VwID0gZW1vamlzLmZpbmQoaXRlbSA9PiBpdGVtLmdyb3VwX25hbWUgPT09IHRoaXMuZmlsdGVyKCkuZ3JvdXBTZWxlY3RlZCkgYXMgSUdyb3VwRW1vamk7XG4gICAgY29uc3QgZW1vamlNYXRjaCA9IGVtb2ppQnlHcm91cC5lbW9qaXMuZmlsdGVyKGl0ZW0gPT4gZGVsZXRlVW5pY29kZShpdGVtLmRlc2NyaXB0aW9uKS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKGRlbGV0ZVVuaWNvZGUodGhpcy5maWx0ZXIoKS5rZXlTZWFyY2gudG9Mb2NhbGVMb3dlckNhc2UoKSkpKTtcblxuICAgIGNvbnN0IHsgcGFnZSwgcGVyUGFnZSB9ID0gdGhpcy5maWx0ZXIoKTtcbiAgICBjb25zdCBkYXRhSW5QYWdlID0gZW1vamlNYXRjaC5zbGljZShwYWdlICogcGVyUGFnZSwgcGFnZSAqIHBlclBhZ2UgKyBwZXJQYWdlKTtcblxuICAgIHRoaXMuZGF0YUVtb2ppVmlldy51cGRhdGUoaXRlbSA9PiAoeyAuLi5pdGVtLCBhbGxEYXRhOiBlbW9qaU1hdGNoLCBkYXRhVmlldzogcGFnZSA/IFsuLi5pdGVtLmRhdGFWaWV3LCAuLi5kYXRhSW5QYWdlXSA6IGRhdGFJblBhZ2UgfSkpO1xuICB9XG5cbn1cbiIsIjxsaWJzX3VpLWNvbXBvbmVudHMtcG9wb3ZlciBbY2xhc3NJbmNsdWRlXT1cImNsYXNzSW5jbHVkZSgpXCJcbiAgW2NvbmZpZ109XCJ7XG4gICAgY29udGVudDogJ2kxOG5fdGV4dF9lbW9qaScsXG4gICAgekluZGV4Oih6SW5kZXgoKSB8fCAxMjAwKSArIDRcbiAgfVwiXG4gIChvdXRGdW5jdGlvbnNDb250cm9sKT1cImhhbmRsZXJGdW5jdGlvbnNDb250cm9sKCRldmVudClcIj5cbiAgPGxpYnNfdWktY29tcG9uZW50cy1wb3BvdmVyIHR5cGU9J290aGVyJ1xuICAgIG1vZGU9J2NsaWNrLXRvZ2dsZSdcbiAgICBbaWdub3JlSGlkZGVuUG9wb3ZlckNvbnRlbnRXaGVuTW91c2VMZWF2ZV09XCJ0cnVlXCJcbiAgICBbY29uZmlnXT1cImNvbmZpZ1BvcG92ZXIoKVwiXG4gICAgW2RlYnVnSWRdPVwiJ2RlYnVnIGljb24gZW1vaWonXCJcbiAgICAob3V0RnVuY3Rpb25zQ29udHJvbCk9XCJoYW5kbGVyRnVuY3Rpb25zQ29udHJvbCgkZXZlbnQpXCI+XG4gICAgQGlmICghaXNOZ0NvbnRlbnQoKSkge1xuICAgICAgPGkgY2xhc3M9J2xpYnMtdWktaWNvbi1hZGQgYmVmb3JlOiF0ZXh0LVsxNnB4XSB7eyBjbGFzc0ljb25JbmNsdWRlKCkgfX0nPlxuICAgICAgPC9pPlxuICAgIH0gQGVsc2Uge1xuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIH1cbiAgPC9saWJzX3VpLWNvbXBvbmVudHMtcG9wb3Zlcj5cbjwvbGlic191aS1jb21wb25lbnRzLXBvcG92ZXI+XG48bmctdGVtcGxhdGUgI2Vtb2ppUmVmPlxuICA8ZGl2IGNsYXNzPVwicHktWzEwcHhdIGZsZXggZmxleC1jb2wge3sgY2xhc3NQb3B1cCgpIH19XCI+XG4gICAgPGRpdiBjbGFzcz1cIm14LVsxMHB4XSBtYi1bMTJweF1cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IG92ZXJmbG93LXgtYXV0b1wiPlxuICAgICAgICBAZm9yIChjYXRlZ29yeSBvZiBlbW9qaXNDYXRlZ29yaWVzKCk7IHRyYWNrIGNhdGVnb3J5Oykge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncm93IHAtWzRweF0gcm91bmRlZC1bNHB4XSBiZy1bI2ZmZmZmZl0gbGlicy11aS1iZy1saXN0LWhvdmVyXCJcbiAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVyQ2hvb3NlQ2F0ZWdvcnkoJGV2ZW50LCBjYXRlZ29yeSlcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC1bMXB4XSBjdXJzb3ItcG9pbnRlciB0ZXh0LVsxOHB4XVwiPlxuICAgICAgICAgICAgICB7eyBjYXRlZ29yeS5pY29uR3JvdXAgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibXgtWzEwcHhdIG1iLVsxMnB4XVwiPlxuICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1pbnB1dHMtc2VhcmNoIFtzZWFyY2hDb25maWddPVwie1xuICAgICAgICAgIHBsYWNlaG9sZGVyOiAnaTE4bl9zZWFyY2gnLFxuICAgICAgICB9XCJcbiAgICAgICAgW2RlYm91bmNlVGltZV09XCIwXCJcbiAgICAgICAgKG91dFNlYXJjaCk9XCJoYW5kbGVyU2VhcmNoRW1vamkoJGV2ZW50KVwiIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImgtZnVsbCB3LWZ1bGwgcmVsYXRpdmVcIj5cbiAgICAgIDxkaXYgI2VsZW1lbnRWaWV3RW1vamlcbiAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgaC1mdWxsICBweC1bMTBweF0gYWJzb2x1dGVcIlxuICAgICAgICBMaWJzVWlDb21wb25lbnRzU2Nyb2xsT3ZlcmxheURpcmVjdGl2ZVxuICAgICAgICAob3V0U2Nyb2xsQm90dG9tKT1cImhhbmRsZXJTY3JvbGxCb3R0b20oKVwiPlxuICAgICAgICBAaWYgKGRhdGFFbW9qaVZpZXcoKS5kYXRhVmlldy5sZW5ndGgpIHtcbiAgICAgICAgICBAZm9yIChpdGVtIG9mIGRhdGFFbW9qaVZpZXcoKS5kYXRhVmlldzsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8IS0tIG7hur91IHNhdSBjw7MgecOqdSBjw6J1IGhvdmVyIGhp4buDbiB0aOG7iyB0b29sdGlvIHRow6wgYuG7jyBbaWdub3JlU2hvd1BvcG92ZXJdPVwidHJ1ZVwiIC0tPlxuICAgICAgICAgICAgPHNwYW4gTGlic1VpQ29tcG9uZW50c1BvcG92ZXJEaXJlY3RpdmVcbiAgICAgICAgICAgICAgW2lnbm9yZVNob3dQb3BvdmVyXT1cInRydWVcIlxuICAgICAgICAgICAgICBbY29uZmlnXT1cIntjb250ZW50Oml0ZW0uZGVzY3JpcHRpb24sekluZGV4Oih6SW5kZXgoKXx8IDEyMDApKzV9XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBmbGV4IHNocmluay0wIGgtZml0IG0tWzJweF0gZmxvYXQtbGVmdFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVyQWRkRW1vamkoaXRlbSlcIj5cbiAgICAgICAgICAgICAge3sgaXRlbS5lbW9qaSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktZm9udC1oNXIgdGV4dC1bIzljYTJhZF0gaC1mdWxsIHctZnVsbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgIHt7ICggJ2kxOG5fbm9fcmVzdWx0JykgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1vamkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2lucHV0cy9lbW9qaS9zcmMvZW1vamkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2lucHV0cy9lbW9qaS9zcmMvZW1vamkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFjLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFlLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEssT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUYsT0FBTyxFQUFpRCxnQ0FBZ0MsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlILE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRTVGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFldEUsTUFBTSxPQUFPLDhCQUE4QjtJQUN6QyxtQkFBbUI7SUFDVCxnQkFBZ0IsR0FBRyxNQUFNLENBQXFCLElBQUksS0FBSyxFQUFlLENBQUMsQ0FBQztJQUN4RSxNQUFNLEdBQUcsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUM5RixhQUFhLEdBQUcsTUFBTSxDQUFzRCxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUs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RUUsMEJBQTBCLGNBRXhCLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCxlQUFlO3dCQUNmLHFDQUFxQzt3QkFDckMsZ0NBQWdDO3dCQUNoQyxzQ0FBc0M7cUJBQ3ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgZWZmZWN0LCBFbGVtZW50UmVmLCBpbnB1dCwgb3V0cHV0LCBzaWduYWwsIFRlbXBsYXRlUmVmLCB1bnRyYWNrZWQsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGlic1VpQ29tcG9uZW50c0lucHV0c1NlYXJjaENvbXBvbmVudCB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtaW5wdXRzLXNlYXJjaCc7XG5pbXBvcnQgeyBJUG9wb3ZlckZ1bmN0aW9uQ29udHJvbEV2ZW50LCBJUG9wb3Zlck92ZXJsYXksIExpYnNVaUNvbXBvbmVudHNQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1wb3BvdmVyJztcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNTY3JvbGxPdmVybGF5RGlyZWN0aXZlIH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1zY3JvbGwtb3ZlcmxheSc7XG5pbXBvcnQgeyBUWVBFX1RFTVBMQVRFX1JFRiB9IGZyb20gJ0BsaWJzLXVpL2ludGVyZmFjZXMtdHlwZXMnO1xuaW1wb3J0IHsgZGVsZXRlVW5pY29kZSB9IGZyb20gJ0BsaWJzLXVpL3V0aWxzJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgZGVmYXVsdENvbmZpZ1BvcG92ZXIsIGVtb2ppcyB9IGZyb20gJy4vZGVmaW5lcy9lbW9qaS5kZWZpbmUnO1xuaW1wb3J0IHsgSUVtb2ppLCBJR3JvdXBFbW9qaSB9IGZyb20gJy4vaW50ZXJmYWNlcy9lbW9qaS5pbnRlcmZhY2UnO1xuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbGlic191aS1jb21wb25lbnRzLWVtb2ppJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Vtb2ppLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgTGlic1VpQ29tcG9uZW50c0lucHV0c1NlYXJjaENvbXBvbmVudCxcbiAgICBMaWJzVWlDb21wb25lbnRzUG9wb3ZlckNvbXBvbmVudCxcbiAgICBMaWJzVWlDb21wb25lbnRzU2Nyb2xsT3ZlcmxheURpcmVjdGl2ZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIExpYnNVaUNvbXBvbmVudHNFbW9qaUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAvLyAjcmVnaW9uIFBST1BFUlRZXG4gIHByb3RlY3RlZCBlbW9qaXNDYXRlZ29yaWVzID0gc2lnbmFsPEFycmF5PElHcm91cEVtb2ppPj4obmV3IEFycmF5PElHcm91cEVtb2ppPigpKTtcbiAgcHJvdGVjdGVkIGZpbHRlciA9IHNpZ25hbCh7IHBhZ2U6IDAsIGtleVNlYXJjaDogJycsIGdyb3VwU2VsZWN0ZWQ6ICdTbWlsZXlzICYgRW1vdGlvbicsIHBlclBhZ2U6IDE3MCB9KTtcbiAgcHJvdGVjdGVkIGRhdGFFbW9qaVZpZXcgPSBzaWduYWw8eyBkYXRhVmlldzogQXJyYXk8SUVtb2ppPiwgYWxsRGF0YTogQXJyYXk8SUVtb2ppPiB9Pih7IGRhdGFWaWV3OiBbXSwgYWxsRGF0YTogW10gfSk7XG5cbiAgLy8gI3JlZ2lvbiBJTlBVVFxuICByZWFkb25seSBjb25maWdQb3BvdmVyID0gaW5wdXQ8SVBvcG92ZXJPdmVybGF5LCBJUG9wb3Zlck92ZXJsYXkgfCB1bmRlZmluZWQ+KGRlZmF1bHRDb25maWdQb3BvdmVyLCB7IHRyYW5zZm9ybTogdmFsdWUgPT4gdmFsdWUgPyB2YWx1ZSA6IGRlZmF1bHRDb25maWdQb3BvdmVyIH0pO1xuICByZWFkb25seSBpc05nQ29udGVudCA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHpJbmRleCA9IGlucHV0PG51bWJlciwgbnVtYmVyIHwgdW5kZWZpbmVkPigwLCB7IHRyYW5zZm9ybTogdmFsdWUgPT4gdmFsdWUgPz8gMCB9KTtcbiAgcmVhZG9ubHkgbW9kZVBvcG92ZXJQb3NpdGlvbiA9IGlucHV0PCdzdGFydCcgfCAnY2VudGVyJyB8ICdlbmQnIHwgdW5kZWZpbmVkPigpO1xuICByZWFkb25seSBjbGFzc1BvcHVwID0gaW5wdXQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+KCd3LVsyOTBweF0gaC1bMjQ1cHhdJywgeyB0cmFuc2Zvcm06IHZhbCA9PiB2YWwgPz8gJ3ctWzI5MHB4XSBoLVsyNDVweF0nIH0pO1xuICByZWFkb25seSBjbGFzc0luY2x1ZGUgPSBpbnB1dDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4oJycsIHsgdHJhbnNmb3JtOiB2YWwgPT4gdmFsID8/ICcnIH0pO1xuICByZWFkb25seSBjbGFzc0ljb25JbmNsdWRlID0gaW5wdXQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+KCcnLCB7IHRyYW5zZm9ybTogdmFsID0+IHZhbCA/PyAnJyB9KTtcblxuICAvLyAjcmVnaW9uIE9VVFBVVFxuICByZWFkb25seSBvdXRFdmVudEVtb2ppID0gb3V0cHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgbW9GdW5jdGlvbnNDb250cm9sID0gb3V0cHV0PElQb3BvdmVyRnVuY3Rpb25Db250cm9sRXZlbnQ+KCk7XG5cbiAgLyogVklFVyBDSElMRCAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGVtb2ppUmVmID0gdmlld0NoaWxkPFRlbXBsYXRlUmVmPFRZUEVfVEVNUExBVEVfUkVGPj4oJ2Vtb2ppUmVmJyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFZpZXdFbW9qaSA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPFRZUEVfVEVNUExBVEVfUkVGPj4oJ2VsZW1lbnRWaWV3RW1vamknKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgKSB7XG4gICAgdGhpcy5lbW9qaXNDYXRlZ29yaWVzLnNldChlbW9qaXMubWFwKGl0ZW0gPT4gKHtcbiAgICAgIC4uLml0ZW0sXG4gICAgICBpY29uR3JvdXA6IGl0ZW0uZW1vamlzWzBdLmVtb2ppLFxuICAgICAgZW1vamlzOiBuZXcgQXJyYXk8SUVtb2ppPigpXG4gICAgfSkpKTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy56SW5kZXgoKSkge1xuICAgICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY29uZmlnUG9wb3ZlcigpLnpJbmRleCA9IHRoaXMuekluZGV4KCkgKyA1O1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMubW9kZVBvcG92ZXJQb3NpdGlvbigpICYmIHRoaXMuY29uZmlnUG9wb3ZlcigpLnBvc2l0aW9uKSB7XG4gICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgICAodGhpcy5jb25maWdQb3BvdmVyKCkgYXMgYW55KS5wb3NpdGlvbi5tb2RlID0gdGhpcy5tb2RlUG9wb3ZlclBvc2l0aW9uKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5jb25maWdQb3BvdmVyKCkpIHtcbiAgICAgICAgdGhpcy5jb25maWdQb3BvdmVyKCkudGVtcGxhdGUgPSB0aGlzLmVtb2ppUmVmKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5nZXREYXRhVmlldygpO1xuICB9XG5cbiAgLyogRlVOQ1RJT05TICovXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVyQWRkRW1vamkoZGF0YTogSUVtb2ppKSB7XG4gICAgdGhpcy5vdXRFdmVudEVtb2ppLmVtaXQoZGF0YS5lbW9qaSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlckZ1bmN0aW9uc0NvbnRyb2woZXZlbnQ6IElQb3BvdmVyRnVuY3Rpb25Db250cm9sRXZlbnQpIHtcbiAgICB0aGlzLm1vRnVuY3Rpb25zQ29udHJvbC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVyQ2hvb3NlQ2F0ZWdvcnkoZXZlbnQ6IEV2ZW50LCBjYXRlZ29yeTogSUdyb3VwRW1vamkpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmZpbHRlci51cGRhdGUoZGF0YSA9PiAoeyAuLi5kYXRhLCBwYWdlOiAwLCBncm91cFNlbGVjdGVkOiBjYXRlZ29yeS5ncm91cF9uYW1lIH0pKTtcbiAgICB0aGlzLmdldERhdGFWaWV3KCk7XG4gICAgdGhpcy5lbGVtZW50Vmlld0Vtb2ppKCk/Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsKHsgdG9wOiAwIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZXJTZWFyY2hFbW9qaShrZXlTZWFyY2g6IHN0cmluZykge1xuICAgIHRoaXMuZmlsdGVyLnVwZGF0ZShkYXRhID0+ICh7IC4uLmRhdGEsIHBhZ2U6IDAsIGtleVNlYXJjaDoga2V5U2VhcmNoLnRyaW0oKSB9KSk7XG4gICAgdGhpcy5nZXREYXRhVmlldygpO1xuICAgIHRoaXMuZWxlbWVudFZpZXdFbW9qaSgpPy5uYXRpdmVFbGVtZW50LnNjcm9sbCh7IHRvcDogMCB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyU2Nyb2xsQm90dG9tKCkge1xuICAgIHRoaXMuZmlsdGVyLnVwZGF0ZShkYXRhID0+ICh7IC4uLmRhdGEsIHBhZ2U6IGRhdGEucGFnZSArIDEsIH0pKTtcbiAgICB0aGlzLmdldERhdGFWaWV3KCk7XG4gIH1cblxuICBwcml2YXRlIGdldERhdGFWaWV3KCkge1xuICAgIGNvbnN0IGVtb2ppQnlHcm91cCA9IGVtb2ppcy5maW5kKGl0ZW0gPT4gaXRlbS5ncm91cF9uYW1lID09PSB0aGlzLmZpbHRlcigpLmdyb3VwU2VsZWN0ZWQpIGFzIElHcm91cEVtb2ppO1xuICAgIGNvbnN0IGVtb2ppTWF0Y2ggPSBlbW9qaUJ5R3JvdXAuZW1vamlzLmZpbHRlcihpdGVtID0+IGRlbGV0ZVVuaWNvZGUoaXRlbS5kZXNjcmlwdGlvbikudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcyhkZWxldGVVbmljb2RlKHRoaXMuZmlsdGVyKCkua2V5U2VhcmNoLnRvTG9jYWxlTG93ZXJDYXNlKCkpKSk7XG5cbiAgICBjb25zdCB7IHBhZ2UsIHBlclBhZ2UgfSA9IHRoaXMuZmlsdGVyKCk7XG4gICAgY29uc3QgZGF0YUluUGFnZSA9IGVtb2ppTWF0Y2guc2xpY2UocGFnZSAqIHBlclBhZ2UsIHBhZ2UgKiBwZXJQYWdlICsgcGVyUGFnZSk7XG5cbiAgICB0aGlzLmRhdGFFbW9qaVZpZXcudXBkYXRlKGl0ZW0gPT4gKHsgLi4uaXRlbSwgYWxsRGF0YTogZW1vamlNYXRjaCwgZGF0YVZpZXc6IHBhZ2UgPyBbLi4uaXRlbS5kYXRhVmlldywgLi4uZGF0YUluUGFnZV0gOiBkYXRhSW5QYWdlIH0pKTtcbiAgfVxuXG59XG4iLCI8bGlic191aS1jb21wb25lbnRzLXBvcG92ZXIgW2NsYXNzSW5jbHVkZV09XCJjbGFzc0luY2x1ZGUoKVwiXG4gIFtjb25maWddPVwie1xuICAgIGNvbnRlbnQ6ICdpMThuX3RleHRfZW1vamknLFxuICAgIHpJbmRleDooekluZGV4KCkgfHwgMTIwMCkgKyA0XG4gIH1cIlxuICAob3V0RnVuY3Rpb25zQ29udHJvbCk9XCJoYW5kbGVyRnVuY3Rpb25zQ29udHJvbCgkZXZlbnQpXCI+XG4gIDxsaWJzX3VpLWNvbXBvbmVudHMtcG9wb3ZlciB0eXBlPSdvdGhlcidcbiAgICBtb2RlPSdjbGljay10b2dnbGUnXG4gICAgW2lnbm9yZUhpZGRlblBvcG92ZXJDb250ZW50V2hlbk1vdXNlTGVhdmVdPVwidHJ1ZVwiXG4gICAgW2NvbmZpZ109XCJjb25maWdQb3BvdmVyKClcIlxuICAgIFtkZWJ1Z0lkXT1cIidkZWJ1ZyBpY29uIGVtb2lqJ1wiXG4gICAgKG91dEZ1bmN0aW9uc0NvbnRyb2wpPVwiaGFuZGxlckZ1bmN0aW9uc0NvbnRyb2woJGV2ZW50KVwiPlxuICAgIEBpZiAoIWlzTmdDb250ZW50KCkpIHtcbiAgICAgIDxpIGNsYXNzPSdsaWJzLXVpLWljb24tYWRkIGJlZm9yZTohdGV4dC1bMTZweF0ge3sgY2xhc3NJY29uSW5jbHVkZSgpIH19Jz5cbiAgICAgIDwvaT5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICB9XG4gIDwvbGlic191aS1jb21wb25lbnRzLXBvcG92ZXI+XG48L2xpYnNfdWktY29tcG9uZW50cy1wb3BvdmVyPlxuPG5nLXRlbXBsYXRlICNlbW9qaVJlZj5cbiAgPGRpdiBjbGFzcz1cInB5LVsxMHB4XSBmbGV4IGZsZXgtY29sIHt7IGNsYXNzUG9wdXAoKSB9fVwiPlxuICAgIDxkaXYgY2xhc3M9XCJteC1bMTBweF0gbWItWzEycHhdXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBvdmVyZmxvdy14LWF1dG9cIj5cbiAgICAgICAgQGZvciAoY2F0ZWdvcnkgb2YgZW1vamlzQ2F0ZWdvcmllcygpOyB0cmFjayBjYXRlZ29yeTspIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdyBwLVs0cHhdIHJvdW5kZWQtWzRweF0gYmctWyNmZmZmZmZdIGxpYnMtdWktYmctbGlzdC1ob3ZlclwiXG4gICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlckNob29zZUNhdGVnb3J5KCRldmVudCwgY2F0ZWdvcnkpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtWzFweF0gY3Vyc29yLXBvaW50ZXIgdGV4dC1bMThweF1cIj5cbiAgICAgICAgICAgICAge3sgY2F0ZWdvcnkuaWNvbkdyb3VwIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm14LVsxMHB4XSBtYi1bMTJweF1cIj5cbiAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtaW5wdXRzLXNlYXJjaCBbc2VhcmNoQ29uZmlnXT1cIntcbiAgICAgICAgICBwbGFjZWhvbGRlcjogJ2kxOG5fc2VhcmNoJyxcbiAgICAgICAgfVwiXG4gICAgICAgIFtkZWJvdW5jZVRpbWVdPVwiMFwiXG4gICAgICAgIChvdXRTZWFyY2gpPVwiaGFuZGxlclNlYXJjaEVtb2ppKCRldmVudClcIiAvPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJoLWZ1bGwgdy1mdWxsIHJlbGF0aXZlXCI+XG4gICAgICA8ZGl2ICNlbGVtZW50Vmlld0Vtb2ppXG4gICAgICAgIGNsYXNzPVwidy1mdWxsIGgtZnVsbCAgcHgtWzEwcHhdIGFic29sdXRlXCJcbiAgICAgICAgTGlic1VpQ29tcG9uZW50c1Njcm9sbE92ZXJsYXlEaXJlY3RpdmVcbiAgICAgICAgKG91dFNjcm9sbEJvdHRvbSk9XCJoYW5kbGVyU2Nyb2xsQm90dG9tKClcIj5cbiAgICAgICAgQGlmIChkYXRhRW1vamlWaWV3KCkuZGF0YVZpZXcubGVuZ3RoKSB7XG4gICAgICAgICAgQGZvciAoaXRlbSBvZiBkYXRhRW1vamlWaWV3KCkuZGF0YVZpZXc7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPCEtLSBu4bq/dSBzYXUgY8OzIHnDqnUgY8OidSBob3ZlciBoaeG7g24gdGjhu4sgdG9vbHRpbyB0aMOsIGLhu48gW2lnbm9yZVNob3dQb3BvdmVyXT1cInRydWVcIiAtLT5cbiAgICAgICAgICAgIDxzcGFuIExpYnNVaUNvbXBvbmVudHNQb3BvdmVyRGlyZWN0aXZlXG4gICAgICAgICAgICAgIFtpZ25vcmVTaG93UG9wb3Zlcl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW2NvbmZpZ109XCJ7Y29udGVudDppdGVtLmRlc2NyaXB0aW9uLHpJbmRleDooekluZGV4KCl8fCAxMjAwKSs1fVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgZmxleCBzaHJpbmstMCBoLWZpdCBtLVsycHhdIGZsb2F0LWxlZnRcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlckFkZEVtb2ppKGl0ZW0pXCI+XG4gICAgICAgICAgICAgIHt7IGl0ZW0uZW1vamkgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaWJzLXVpLWZvbnQtaDVyIHRleHQtWyM5Y2EyYWRdIGgtZnVsbCB3LWZ1bGwgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgICB7eyAoICdpMThuX25vX3Jlc3VsdCcpIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1872,7 +1872,7 @@ class LibsUiComponentsEmojiComponent {
1872
1872
  this.dataEmojiView.update(item => ({ ...item, allData: emojiMatch, dataView: page ? [...item.dataView, ...dataInPage] : dataInPage }));
1873
1873
  }
1874
1874
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsEmojiComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1875
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsEmojiComponent, isStandalone: true, selector: "libs_ui-components-emoji", inputs: { configPopover: { classPropertyName: "configPopover", publicName: "configPopover", isSignal: true, isRequired: false, transformFunction: null }, isNgContent: { classPropertyName: "isNgContent", publicName: "isNgContent", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, modePopoverPosition: { classPropertyName: "modePopoverPosition", publicName: "modePopoverPosition", isSignal: true, isRequired: false, transformFunction: null }, classPopup: { classPropertyName: "classPopup", publicName: "classPopup", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, classIconInclude: { classPropertyName: "classIconInclude", publicName: "classIconInclude", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outEventEmoji: "outEventEmoji", moFunctionsControl: "moFunctionsControl" }, viewQueries: [{ propertyName: "emojiRef", first: true, predicate: ["emojiRef"], descendants: true, isSignal: true }, { propertyName: "elementViewEmoji", first: true, predicate: ["elementViewEmoji"], descendants: true, isSignal: true }], ngImport: i0, template: "<libs_ui-components-popover [classInclude]=\"classInclude()\"\n [config]=\"{\n content: 'i18n_text_emoji',\n zIndex:(zIndex() || 1200) + 4\n }\"\n (outFunctionsControl)=\"handlerFunctionsControl($event)\">\n <libs_ui-components-popover type='other'\n mode='click-toggle'\n [ignoreHiddenPopoverContentWhenMouseLeave]=\"true\"\n [config]=\"configPopover()\"\n [debugId]=\"'debug icon emoij'\"\n (outFunctionsControl)=\"handlerFunctionsControl($event)\">\n @if (!isNgContent()) {\n <i class='libs-ui-icon-add before:!text-[16px] {{ classIconInclude() }}'>\n </i>\n } @else {\n <ng-content></ng-content>\n }\n </libs_ui-components-popover>\n</libs_ui-components-popover>\n<ng-template #emojiRef>\n <div class=\"py-[10px] flex flex-col {{ classPopup() }}\">\n <div class=\"mx-[10px] mb-[12px]\">\n <div class=\"flex overflow-x-auto\">\n @for (category of emojisCategories(); track category;) {\n <div class=\"grow p-[4px] rounded-[4px] bg-[#ffffff] libs-ui-bg-list-hover\"\n (click)=\"handlerChooseCategory($event, category)\">\n <div class=\"mt-[1px] cursor-pointer text-[18px]\">\n {{ category.iconGroup }}\n </div>\n </div>\n }\n </div>\n </div>\n <div class=\"mx-[10px] mb-[12px]\">\n <libs_ui-components-inputs-search [searchConfig]=\"{\n placeholder: 'i18n_search',\n }\"\n [debounceTime]=\"0\"\n (outSearch)=\"handlerSearchEmoji($event)\" />\n </div>\n <div class=\"h-full w-full relative\">\n <div #elementViewEmoji\n class=\"w-full h-full px-[10px] absolute\"\n LibsUiComponentsScrollOverlayDirective\n (outScrollBottom)=\"handlerScrollBottom()\">\n @if (dataEmojiView().dataView.length) {\n @for (item of dataEmojiView().dataView; track $index) {\n <!-- n\u1EBFu sau c\u00F3 y\u00EAu c\u00E2u hover hi\u1EC3n th\u1ECB tooltio th\u00EC b\u1ECF [ignoreShowPopover]=\"true\" -->\n <span LibsUiComponentsPopoverDirective\n [ignoreShowPopover]=\"true\"\n [config]=\"{content:item.description,zIndex:(zIndex()|| 1200)+5}\"\n class=\"cursor-pointer flex shrink-0 h-fit m-[2px] float-left\"\n (click)=\"handlerAddEmoji(item)\">\n {{ item.emoji }}\n </span>\n }\n } @else {\n <div class=\"libs-ui-font-h5r text-[#9ca2ad] h-full w-full items-center justify-center\">\n {{ ( 'i18n_no_result') | translate }}\n </div>\n\n }\n </div>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: LibsUiComponentsInputsSearchComponent, selector: "libs_ui-components-inputs-search", inputs: ["disable", "readonly", "searchConfig", "ignoreAutoComplete", "debounceTime", "ignoreStopPropagationEvent", "focusTimeOut", "blurTimeOut"], outputs: ["outSearch", "outValueChange", "outIconLeft", "outIconRight", "outFocusAndBlur", "outFunctionsControl"] }, { kind: "component", type: LibsUiComponentsPopoverComponent, selector: "libs_ui-components-popover,[LibsUiComponentsPopoverDirective]", inputs: ["debugId", "flagMouse", "type", "mode", "config", "ignoreShowPopover", "elementRefCustom", "classInclude", "ignoreHiddenPopoverContentWhenMouseLeave", "ignoreStopPropagationEvent", "ignoreCursorPointerModeLikeClick", "isAddContentToParentDocument", "ignoreClickOutside"], outputs: ["outEvent", "outChangStageFlagMouse", "outEventPopoverContent", "outFunctionsControl"] }, { kind: "directive", type: LibsUiComponentsScrollOverlayDirective, selector: "[LibsUiComponentsScrollOverlayDirective]", inputs: ["debugMode", "ignoreInit", "classContainer", "options", "elementCheckScrollX", "elementCheckScrollY", "elementScroll"], outputs: ["outScroll", "outScrollX", "outScrollY", "outScrollTop", "outScrollBottom"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1875
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsEmojiComponent, isStandalone: true, selector: "libs_ui-components-emoji", inputs: { configPopover: { classPropertyName: "configPopover", publicName: "configPopover", isSignal: true, isRequired: false, transformFunction: null }, isNgContent: { classPropertyName: "isNgContent", publicName: "isNgContent", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, modePopoverPosition: { classPropertyName: "modePopoverPosition", publicName: "modePopoverPosition", isSignal: true, isRequired: false, transformFunction: null }, classPopup: { classPropertyName: "classPopup", publicName: "classPopup", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, classIconInclude: { classPropertyName: "classIconInclude", publicName: "classIconInclude", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outEventEmoji: "outEventEmoji", moFunctionsControl: "moFunctionsControl" }, viewQueries: [{ propertyName: "emojiRef", first: true, predicate: ["emojiRef"], descendants: true, isSignal: true }, { propertyName: "elementViewEmoji", first: true, predicate: ["elementViewEmoji"], descendants: true, isSignal: true }], ngImport: i0, template: "<libs_ui-components-popover [classInclude]=\"classInclude()\"\n [config]=\"{\n content: 'i18n_text_emoji',\n zIndex:(zIndex() || 1200) + 4\n }\"\n (outFunctionsControl)=\"handlerFunctionsControl($event)\">\n <libs_ui-components-popover type='other'\n mode='click-toggle'\n [ignoreHiddenPopoverContentWhenMouseLeave]=\"true\"\n [config]=\"configPopover()\"\n [debugId]=\"'debug icon emoij'\"\n (outFunctionsControl)=\"handlerFunctionsControl($event)\">\n @if (!isNgContent()) {\n <i class='libs-ui-icon-add before:!text-[16px] {{ classIconInclude() }}'>\n </i>\n } @else {\n <ng-content></ng-content>\n }\n </libs_ui-components-popover>\n</libs_ui-components-popover>\n<ng-template #emojiRef>\n <div class=\"py-[10px] flex flex-col {{ classPopup() }}\">\n <div class=\"mx-[10px] mb-[12px]\">\n <div class=\"flex overflow-x-auto\">\n @for (category of emojisCategories(); track category;) {\n <div class=\"grow p-[4px] rounded-[4px] bg-[#ffffff] libs-ui-bg-list-hover\"\n (click)=\"handlerChooseCategory($event, category)\">\n <div class=\"mt-[1px] cursor-pointer text-[18px]\">\n {{ category.iconGroup }}\n </div>\n </div>\n }\n </div>\n </div>\n <div class=\"mx-[10px] mb-[12px]\">\n <libs_ui-components-inputs-search [searchConfig]=\"{\n placeholder: 'i18n_search',\n }\"\n [debounceTime]=\"0\"\n (outSearch)=\"handlerSearchEmoji($event)\" />\n </div>\n <div class=\"h-full w-full relative\">\n <div #elementViewEmoji\n class=\"w-full h-full px-[10px] absolute\"\n LibsUiComponentsScrollOverlayDirective\n (outScrollBottom)=\"handlerScrollBottom()\">\n @if (dataEmojiView().dataView.length) {\n @for (item of dataEmojiView().dataView; track $index) {\n <!-- n\u1EBFu sau c\u00F3 y\u00EAu c\u00E2u hover hi\u1EC3n th\u1ECB tooltio th\u00EC b\u1ECF [ignoreShowPopover]=\"true\" -->\n <span LibsUiComponentsPopoverDirective\n [ignoreShowPopover]=\"true\"\n [config]=\"{content:item.description,zIndex:(zIndex()|| 1200)+5}\"\n class=\"cursor-pointer flex shrink-0 h-fit m-[2px] float-left\"\n (click)=\"handlerAddEmoji(item)\">\n {{ item.emoji }}\n </span>\n }\n } @else {\n <div class=\"libs-ui-font-h5r text-[#9ca2ad] h-full w-full items-center justify-center\">\n {{ ( 'i18n_no_result') | translate }}\n </div>\n\n }\n </div>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: LibsUiComponentsInputsSearchComponent, selector: "libs_ui-components-inputs-search", inputs: ["disable", "readonly", "searchConfig", "ignoreAutoComplete", "debounceTime", "ignoreStopPropagationEvent", "focusTimeOut", "blurTimeOut"], outputs: ["outSearch", "outValueChange", "outIconLeft", "outIconRight", "outFocusAndBlur", "outFunctionsControl"] }, { kind: "component", type: LibsUiComponentsPopoverComponent, selector: "libs_ui-components-popover,[LibsUiComponentsPopoverDirective]", inputs: ["debugId", "flagMouse", "type", "mode", "config", "ignoreShowPopover", "elementRefCustom", "initEventInElementRefCustom", "classInclude", "ignoreHiddenPopoverContentWhenMouseLeave", "ignoreStopPropagationEvent", "ignoreCursorPointerModeLikeClick", "isAddContentToParentDocument", "ignoreClickOutside"], outputs: ["outEvent", "outChangStageFlagMouse", "outEventPopoverContent", "outFunctionsControl"] }, { kind: "directive", type: LibsUiComponentsScrollOverlayDirective, selector: "[LibsUiComponentsScrollOverlayDirective]", inputs: ["debugMode", "ignoreInit", "classContainer", "options", "elementCheckScrollX", "elementCheckScrollY", "elementScroll"], outputs: ["outScroll", "outScrollX", "outScrollY", "outScrollTop", "outScrollBottom"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1876
1876
  }
1877
1877
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsEmojiComponent, decorators: [{
1878
1878
  type: Component,