@acorex/components 21.0.0-next.11 → 21.0.0-next.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/autocomplete/index.d.ts +13 -9
 - package/fesm2022/acorex-components-autocomplete.mjs +13 -6
 - package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
 - package/fesm2022/acorex-components-color-palette.mjs +1 -1
 - package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
 - package/fesm2022/acorex-components-cron-job.mjs +6 -6
 - package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
 - package/fesm2022/acorex-components-kanban.mjs +1 -1
 - package/fesm2022/acorex-components-kanban.mjs.map +1 -1
 - package/fesm2022/acorex-components-media-viewer.mjs +2 -2
 - package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
 - package/fesm2022/{acorex-components-modal-acorex-components-modal-ClSGRCam.mjs → acorex-components-modal-acorex-components-modal-BLjJGxLT.mjs} +2 -2
 - package/fesm2022/{acorex-components-modal-acorex-components-modal-ClSGRCam.mjs.map → acorex-components-modal-acorex-components-modal-BLjJGxLT.mjs.map} +1 -1
 - package/fesm2022/{acorex-components-modal-modal-content.component-BC-z7O0z.mjs → acorex-components-modal-modal-content.component-CC_L42pt.mjs} +4 -4
 - package/fesm2022/acorex-components-modal-modal-content.component-CC_L42pt.mjs.map +1 -0
 - package/fesm2022/acorex-components-modal.mjs +1 -1
 - package/fesm2022/acorex-components-phone-box.mjs +1 -1
 - package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
 - package/fesm2022/acorex-components-query-builder.mjs +1 -1
 - package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
 - package/fesm2022/acorex-components-rest-api-generator.mjs +1 -1
 - package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
 - package/fesm2022/acorex-components-rrule.mjs +1 -1
 - package/fesm2022/acorex-components-rrule.mjs.map +1 -1
 - package/fesm2022/acorex-components-scheduler.mjs +8 -8
 - package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
 - package/fesm2022/acorex-components-select-box.mjs +18 -8
 - package/fesm2022/acorex-components-select-box.mjs.map +1 -1
 - package/fesm2022/acorex-components-tag-box.mjs +45 -15
 - package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
 - package/fesm2022/acorex-components-tag.mjs +39 -3
 - package/fesm2022/acorex-components-tag.mjs.map +1 -1
 - package/fesm2022/acorex-components-tree2.mjs +596 -0
 - package/fesm2022/acorex-components-tree2.mjs.map +1 -0
 - package/package.json +15 -11
 - package/select-box/index.d.ts +14 -10
 - package/tag/index.d.ts +8 -2
 - package/tag-box/index.d.ts +12 -3
 - package/tree2/README.md +3 -0
 - package/tree2/index.d.ts +267 -0
 - package/fesm2022/acorex-components-modal-modal-content.component-BC-z7O0z.mjs.map +0 -1
 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"acorex-components-rrule.mjs","sources":["../tmp-esm2022/rrule/lib/rrule.service.js","../tmp-esm2022/rrule/lib/rrule-preview.js","../tmp-esm2022/rrule/lib/rrule.const.js","../tmp-esm2022/rrule/lib/rrule.type.js","../tmp-esm2022/rrule/lib/rrule.component.js","../tmp-esm2022/rrule/acorex-components-rrule.js"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Service for working with RRule recurrence patterns.\n * Provides methods to create RRule instances from options or strings,\n * convert between formats, and query occurrences.\n */\nexport class AXRruleService {\n    /**\n     * Creates an RRule instance from options object.\n     * @param options Partial RRule options to create the rule from\n     * @returns Promise resolving to the RRule instance\n     */\n    async rruleFromOptions(options) {\n        // eslint-disable-next-line @nx/enforce-module-boundaries\n        const { RRule } = await import('rrule');\n        return new RRule(options);\n    }\n    /**\n     * Creates an RRule instance from a RRULE string.\n     * @param ruleString Valid RRULE string (e.g., \"RRULE:FREQ=WEEKLY;COUNT=5\")\n     * @returns Promise resolving to the RRule instance\n     */\n    async rruleFromString(ruleString) {\n        // eslint-disable-next-line @nx/enforce-module-boundaries\n        const { RRule } = await import('rrule');\n        return RRule.fromString(ruleString);\n    }\n    /**\n     * Creates an RRule instance from human-readable text.\n     * @param ruleText Human-readable text describing the recurrence (e.g., \"every Monday for 5 weeks\")\n     * @returns Promise resolving to the RRule instance\n     */\n    async rruleFromText(ruleText) {\n        // eslint-disable-next-line @nx/enforce-module-boundaries\n        const { RRule } = await import('rrule');\n        return RRule.fromText(ruleText);\n    }\n    /**\n     * Extracts options from an RRule instance.\n     * @param rule RRule instance to extract options from\n     * @returns Parsed options with all required fields\n     */\n    rruleToOptions(rule) {\n        return rule.options;\n    }\n    /**\n     * Converts an RRule instance to RRULE string format.\n     * @param rule RRule instance to convert\n     * @returns RRULE string representation\n     */\n    rruleToString(rule) {\n        return rule.toString();\n    }\n    /**\n     * Converts an RRule instance to human-readable text.\n     * @param rule RRule instance to convert\n     * @returns Human-readable text description\n     */\n    rruleToText(rule) {\n        return rule.toText();\n    }\n    /**\n     * Gets all occurrences of the rule up to a limit.\n     * @param rule RRule instance to query\n     * @param limit Maximum number of occurrences to return (default: 500)\n     * @returns Array of occurrence dates\n     */\n    rruleGetAll(rule, limit = 500) {\n        return rule.all((d, l) => l < limit);\n    }\n    /**\n     * Gets occurrences between two dates.\n     * @param rule RRule instance to query\n     * @param after Start date (exclusive by default)\n     * @param before End date (exclusive by default)\n     * @param inclusive Whether to include the boundary dates\n     * @returns Array of occurrence dates between the specified dates\n     */\n    rruleGetBetween(rule, after, before, inclusive = false) {\n        return rule.between(after, before, inclusive);\n    }\n    /**\n     * Gets the last occurrence before the specified date.\n     * @param rule RRule instance to query\n     * @param date Date to search before\n     * @param inclusive Whether to include the specified date\n     * @returns Last occurrence before the date, or null if none found\n     */\n    rruleGetBefore(rule, date, inclusive = false) {\n        return rule.before(date, inclusive);\n    }\n    /**\n     * Gets the first occurrence after the specified date.\n     * @param rule RRule instance to query\n     * @param date Date to search after\n     * @param inclusive Whether to include the specified date\n     * @returns First occurrence after the date, or null if none found\n     */\n    rruleGetAfter(rule, date, inclusive = false) {\n        return rule.after(date, inclusive);\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXRruleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXRruleService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXRruleService, decorators: [{\n            type: Injectable,\n            args: [{\n                    providedIn: 'root',\n                }]\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnJ1bGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvcnJ1bGUvc3JjL2xpYi9ycnVsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDOzs7O0dBSUc7QUFJSCxNQUFNLE9BQU8sY0FBYztJQUN6Qjs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE9BQWdDO1FBQ3JELHlEQUF5RDtRQUN6RCxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEMsT0FBTyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxlQUFlLENBQUMsVUFBa0I7UUFDdEMseURBQXlEO1FBQ3pELE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QyxPQUFPLEtBQUssQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsYUFBYSxDQUFDLFFBQWdCO1FBQ2xDLHlEQUF5RDtRQUN6RCxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEMsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsY0FBYyxDQUFDLElBQWlCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxJQUFpQjtRQUM3QixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxJQUFpQjtRQUMzQixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLENBQUMsSUFBaUIsRUFBRSxLQUFLLEdBQUcsR0FBRztRQUN4QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxlQUFlLENBQUMsSUFBaUIsRUFBRSxLQUFXLEVBQUUsTUFBWSxFQUFFLFNBQVMsR0FBRyxLQUFLO1FBQzdFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxjQUFjLENBQUMsSUFBaUIsRUFBRSxJQUFVLEVBQUUsU0FBUyxHQUFHLEtBQUs7UUFDN0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsYUFBYSxDQUFDLElBQWlCLEVBQUUsSUFBVSxFQUFFLFNBQVMsR0FBRyxLQUFLO1FBQzVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDckMsQ0FBQzs4R0F2R1UsY0FBYztrSEFBZCxjQUFjLGNBRmIsTUFBTTs7MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBhcnNlZE9wdGlvbnNUeXBlLCBBWFJPcHRpb25zVHlwZSwgQVhSUnVsZVR5cGUgfSBmcm9tICcuL3JydWxlLnR5cGUnO1xuXG4vKipcbiAqIFNlcnZpY2UgZm9yIHdvcmtpbmcgd2l0aCBSUnVsZSByZWN1cnJlbmNlIHBhdHRlcm5zLlxuICogUHJvdmlkZXMgbWV0aG9kcyB0byBjcmVhdGUgUlJ1bGUgaW5zdGFuY2VzIGZyb20gb3B0aW9ucyBvciBzdHJpbmdzLFxuICogY29udmVydCBiZXR3ZWVuIGZvcm1hdHMsIGFuZCBxdWVyeSBvY2N1cnJlbmNlcy5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFYUnJ1bGVTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gUlJ1bGUgaW5zdGFuY2UgZnJvbSBvcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIG9wdGlvbnMgUGFydGlhbCBSUnVsZSBvcHRpb25zIHRvIGNyZWF0ZSB0aGUgcnVsZSBmcm9tXG4gICAqIEByZXR1cm5zIFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBSUnVsZSBpbnN0YW5jZVxuICAgKi9cbiAgYXN5bmMgcnJ1bGVGcm9tT3B0aW9ucyhvcHRpb25zOiBQYXJ0aWFsPEFYUk9wdGlvbnNUeXBlPik6IFByb21pc2U8QVhSUnVsZVR5cGU+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQG54L2VuZm9yY2UtbW9kdWxlLWJvdW5kYXJpZXNcbiAgICBjb25zdCB7IFJSdWxlIH0gPSBhd2FpdCBpbXBvcnQoJ3JydWxlJyk7XG4gICAgcmV0dXJuIG5ldyBSUnVsZShvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIFJSdWxlIGluc3RhbmNlIGZyb20gYSBSUlVMRSBzdHJpbmcuXG4gICAqIEBwYXJhbSBydWxlU3RyaW5nIFZhbGlkIFJSVUxFIHN0cmluZyAoZS5nLiwgXCJSUlVMRTpGUkVRPVdFRUtMWTtDT1VOVD01XCIpXG4gICAqIEByZXR1cm5zIFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBSUnVsZSBpbnN0YW5jZVxuICAgKi9cbiAgYXN5bmMgcnJ1bGVGcm9tU3RyaW5nKHJ1bGVTdHJpbmc6IHN0cmluZyk6IFByb21pc2U8QVhSUnVsZVR5cGU+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQG54L2VuZm9yY2UtbW9kdWxlLWJvdW5kYXJpZXNcbiAgICBjb25zdCB7IFJSdWxlIH0gPSBhd2FpdCBpbXBvcnQoJ3JydWxlJyk7XG4gICAgcmV0dXJuIFJSdWxlLmZyb21TdHJpbmcocnVsZVN0cmluZyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBSUnVsZSBpbnN0YW5jZSBmcm9tIGh1bWFuLXJlYWRhYmxlIHRleHQuXG4gICAqIEBwYXJhbSBydWxlVGV4dCBIdW1hbi1yZWFkYWJsZSB0ZXh0IGRlc2NyaWJpbmcgdGhlIHJlY3VycmVuY2UgKGUuZy4sIFwiZXZlcnkgTW9uZGF5IGZvciA1IHdlZWtzXCIpXG4gICAqIEByZXR1cm5zIFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBSUnVsZSBpbnN0YW5jZVxuICAgKi9cbiAgYXN5bmMgcnJ1bGVGcm9tVGV4dChydWxlVGV4dDogc3RyaW5nKTogUHJvbWlzZTxBWFJSdWxlVHlwZT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAbngvZW5mb3JjZS1tb2R1bGUtYm91bmRhcmllc1xuICAgIGNvbnN0IHsgUlJ1bGUgfSA9IGF3YWl0IGltcG9ydCgncnJ1bGUnKTtcbiAgICByZXR1cm4gUlJ1bGUuZnJvbVRleHQocnVsZVRleHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3RzIG9wdGlvbnMgZnJvbSBhbiBSUnVsZSBpbnN0YW5jZS5cbiAgICogQHBhcmFtIHJ1bGUgUlJ1bGUgaW5zdGFuY2UgdG8gZXh0cmFjdCBvcHRpb25zIGZyb21cbiAgICogQHJldHVybnMgUGFyc2VkIG9wdGlvbnMgd2l0aCBhbGwgcmVxdWlyZWQgZmllbGRzXG4gICAqL1xuICBycnVsZVRvT3B0aW9ucyhydWxlOiBBWFJSdWxlVHlwZSk6IEFYUGFyc2VkT3B0aW9uc1R5cGUge1xuICAgIHJldHVybiBydWxlLm9wdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYW4gUlJ1bGUgaW5zdGFuY2UgdG8gUlJVTEUgc3RyaW5nIGZvcm1hdC5cbiAgICogQHBhcmFtIHJ1bGUgUlJ1bGUgaW5zdGFuY2UgdG8gY29udmVydFxuICAgKiBAcmV0dXJucyBSUlVMRSBzdHJpbmcgcmVwcmVzZW50YXRpb25cbiAgICovXG4gIHJydWxlVG9TdHJpbmcocnVsZTogQVhSUnVsZVR5cGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBydWxlLnRvU3RyaW5nKCk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYW4gUlJ1bGUgaW5zdGFuY2UgdG8gaHVtYW4tcmVhZGFibGUgdGV4dC5cbiAgICogQHBhcmFtIHJ1bGUgUlJ1bGUgaW5zdGFuY2UgdG8gY29udmVydFxuICAgKiBAcmV0dXJucyBIdW1hbi1yZWFkYWJsZSB0ZXh0IGRlc2NyaXB0aW9uXG4gICAqL1xuICBycnVsZVRvVGV4dChydWxlOiBBWFJSdWxlVHlwZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJ1bGUudG9UZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhbGwgb2NjdXJyZW5jZXMgb2YgdGhlIHJ1bGUgdXAgdG8gYSBsaW1pdC5cbiAgICogQHBhcmFtIHJ1bGUgUlJ1bGUgaW5zdGFuY2UgdG8gcXVlcnlcbiAgICogQHBhcmFtIGxpbWl0IE1heGltdW0gbnVtYmVyIG9mIG9jY3VycmVuY2VzIHRvIHJldHVybiAoZGVmYXVsdDogNTAwKVxuICAgKiBAcmV0dXJucyBBcnJheSBvZiBvY2N1cnJlbmNlIGRhdGVzXG4gICAqL1xuICBycnVsZUdldEFsbChydWxlOiBBWFJSdWxlVHlwZSwgbGltaXQgPSA1MDApOiBEYXRlW10ge1xuICAgIHJldHVybiBydWxlLmFsbCgoZCwgbCkgPT4gbCA8IGxpbWl0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIG9jY3VycmVuY2VzIGJldHdlZW4gdHdvIGRhdGVzLlxuICAgKiBAcGFyYW0gcnVsZSBSUnVsZSBpbnN0YW5jZSB0byBxdWVyeVxuICAgKiBAcGFyYW0gYWZ0ZXIgU3RhcnQgZGF0ZSAoZXhjbHVzaXZlIGJ5IGRlZmF1bHQpXG4gICAqIEBwYXJhbSBiZWZvcmUgRW5kIGRhdGUgKGV4Y2x1c2l2ZSBieSBkZWZhdWx0KVxuICAgKiBAcGFyYW0gaW5jbHVzaXZlIFdoZXRoZXIgdG8gaW5jbHVkZSB0aGUgYm91bmRhcnkgZGF0ZXNcbiAgICogQHJldHVybnMgQXJyYXkgb2Ygb2NjdXJyZW5jZSBkYXRlcyBiZXR3ZWVuIHRoZSBzcGVjaWZpZWQgZGF0ZXNcbiAgICovXG4gIHJydWxlR2V0QmV0d2VlbihydWxlOiBBWFJSdWxlVHlwZSwgYWZ0ZXI6IERhdGUsIGJlZm9yZTogRGF0ZSwgaW5jbHVzaXZlID0gZmFsc2UpOiBEYXRlW10ge1xuICAgIHJldHVybiBydWxlLmJldHdlZW4oYWZ0ZXIsIGJlZm9yZSwgaW5jbHVzaXZlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBsYXN0IG9jY3VycmVuY2UgYmVmb3JlIHRoZSBzcGVjaWZpZWQgZGF0ZS5cbiAgICogQHBhcmFtIHJ1bGUgUlJ1bGUgaW5zdGFuY2UgdG8gcXVlcnlcbiAgICogQHBhcmFtIGRhdGUgRGF0ZSB0byBzZWFyY2ggYmVmb3JlXG4gICAqIEBwYXJhbSBpbmNsdXNpdmUgV2hldGhlciB0byBpbmNsdWRlIHRoZSBzcGVjaWZpZWQgZGF0ZVxuICAgKiBAcmV0dXJucyBMYXN0IG9jY3VycmVuY2UgYmVmb3JlIHRoZSBkYXRlLCBvciBudWxsIGlmIG5vbmUgZm91bmRcbiAgICovXG4gIHJydWxlR2V0QmVmb3JlKHJ1bGU6IEFYUlJ1bGVUeXBlLCBkYXRlOiBEYXRlLCBpbmNsdXNpdmUgPSBmYWxzZSk6IERhdGUgfCBudWxsIHtcbiAgICByZXR1cm4gcnVsZS5iZWZvcmUoZGF0ZSwgaW5jbHVzaXZlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBmaXJzdCBvY2N1cnJlbmNlIGFmdGVyIHRoZSBzcGVjaWZpZWQgZGF0ZS5cbiAgICogQHBhcmFtIHJ1bGUgUlJ1bGUgaW5zdGFuY2UgdG8gcXVlcnlcbiAgICogQHBhcmFtIGRhdGUgRGF0ZSB0byBzZWFyY2ggYWZ0ZXJcbiAgICogQHBhcmFtIGluY2x1c2l2ZSBXaGV0aGVyIHRvIGluY2x1ZGUgdGhlIHNwZWNpZmllZCBkYXRlXG4gICAqIEByZXR1cm5zIEZpcnN0IG9jY3VycmVuY2UgYWZ0ZXIgdGhlIGRhdGUsIG9yIG51bGwgaWYgbm9uZSBmb3VuZFxuICAgKi9cbiAgcnJ1bGVHZXRBZnRlcihydWxlOiBBWFJSdWxlVHlwZSwgZGF0ZTogRGF0ZSwgaW5jbHVzaXZlID0gZmFsc2UpOiBEYXRlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHJ1bGUuYWZ0ZXIoZGF0ZSwgaW5jbHVzaXZlKTtcbiAgfVxufVxuIl19","import { AXLabelModule } from '@acorex/components/label';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AsyncPipe, DatePipe } from '@angular/common';\nimport { Component, computed, effect, inject, input, signal } from '@angular/core';\nimport { AXRruleService } from './rrule.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/label\";\nimport * as i2 from \"@acorex/core/translation\";\nexport class AXRrulePreviewComponent {\n    constructor() {\n        this.value = input(...(ngDevMode ? [undefined, { debugName: \"value\" }] : []));\n        this.repeat = input(100, ...(ngDevMode ? [{ debugName: \"repeat\" }] : []));\n        this.format = input('yyyy-MM-dd HH:mm:ss', ...(ngDevMode ? [{ debugName: \"format\" }] : []));\n        this.rruleService = inject(AXRruleService);\n        this.rrule = signal(null, ...(ngDevMode ? [{ debugName: \"rrule\" }] : []));\n        this.timeZone = signal(null, ...(ngDevMode ? [{ debugName: \"timeZone\" }] : []));\n        this.text = computed(() => (this.rrule() ? this.rruleService.rruleToText(this.rrule()) : ''), ...(ngDevMode ? [{ debugName: \"text\" }] : []));\n        this.string = computed(() => (this.rrule() ? this.rruleService.rruleToString(this.rrule()) : ''), ...(ngDevMode ? [{ debugName: \"string\" }] : []));\n        this.dates = computed(() => (this.rrule() ? this.rruleService.rruleGetAll(this.rrule(), this.repeat()) : []), ...(ngDevMode ? [{ debugName: \"dates\" }] : []));\n        this.options = computed(() => (this.rrule() ? this.rruleService.rruleToOptions(this.rrule()) : {}), ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n        this.eff = effect(async () => {\n            if (this.value()) {\n                this.rrule.set(await this.rruleService.rruleFromString(this.value()));\n            }\n        }, ...(ngDevMode ? [{ debugName: \"eff\" }] : []));\n    }\n    ngOnInit() {\n        this.timeZone.set(Intl.DateTimeFormat().resolvedOptions().timeZone);\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXRrulePreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.6\", type: AXRrulePreviewComponent, isStandalone: true, selector: \"ax-rrule-preview\", inputs: { value: { classPropertyName: \"value\", publicName: \"value\", isSignal: true, isRequired: false, transformFunction: null }, repeat: { classPropertyName: \"repeat\", publicName: \"repeat\", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: \"format\", publicName: \"format\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n    <div class=\"ax-flex ax-flex-col ax-gap-4 ax-text-pretty ax-rounded-md ax-border ax-p-4\">\n      <div>\n        <ax-label>{{ 'rrule.text' | translate: { scope: 'common' } | async }}</ax-label>\n        <code class=\"ax-mt-2 ax-block ax-rounded ax-bg-surface ax-p-2\">\n          {{ text() }}\n        </code>\n      </div>\n      <div>\n        <ax-label>{{ 'rrule.string' | translate: { scope: 'common' } | async }}</ax-label>\n        <code class=\"ax-mt-2 ax-block ax-text-pretty ax-break-all ax-rounded ax-bg-surface ax-p-2\">\n          {{ string() }}\n        </code>\n      </div>\n      <div>\n        <ax-label>{{\n          'rrule.occurrences' | translate: { scope: 'common', params: { repeat: repeat() } } | async\n        }}</ax-label>\n        <div class=\"ax-mt-2 ax-max-h-64 ax-overflow-y-auto\">\n          @for (date of dates(); track $index) {\n            <code class=\"ax-block ax-bg-surface ax-p-1 even:ax-bg-lighter\">\n              {{ date | date: format() : timeZone() }}\n            </code>\n          }\n        </div>\n      </div>\n    </div>\n  `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXLabelModule }, { kind: \"component\", type: i1.AXLabelComponent, selector: \"ax-label\", inputs: [\"required\", \"for\"], outputs: [\"requiredChange\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"pipe\", type: DatePipe, name: \"date\" }, { kind: \"pipe\", type: i2.AXTranslatorPipe, name: \"translate\" }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXRrulePreviewComponent, decorators: [{\n            type: Component,\n            args: [{\n                    selector: 'ax-rrule-preview',\n                    template: `\n    <div class=\"ax-flex ax-flex-col ax-gap-4 ax-text-pretty ax-rounded-md ax-border ax-p-4\">\n      <div>\n        <ax-label>{{ 'rrule.text' | translate: { scope: 'common' } | async }}</ax-label>\n        <code class=\"ax-mt-2 ax-block ax-rounded ax-bg-surface ax-p-2\">\n          {{ text() }}\n        </code>\n      </div>\n      <div>\n        <ax-label>{{ 'rrule.string' | translate: { scope: 'common' } | async }}</ax-label>\n        <code class=\"ax-mt-2 ax-block ax-text-pretty ax-break-all ax-rounded ax-bg-surface ax-p-2\">\n          {{ string() }}\n        </code>\n      </div>\n      <div>\n        <ax-label>{{\n          'rrule.occurrences' | translate: { scope: 'common', params: { repeat: repeat() } } | async\n        }}</ax-label>\n        <div class=\"ax-mt-2 ax-max-h-64 ax-overflow-y-auto\">\n          @for (date of dates(); track $index) {\n            <code class=\"ax-block ax-bg-surface ax-p-1 even:ax-bg-lighter\">\n              {{ date | date: format() : timeZone() }}\n            </code>\n          }\n        </div>\n      </div>\n    </div>\n  `,\n                    imports: [AXLabelModule, DatePipe, AXTranslationModule, AsyncPipe],\n                }]\n        }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: \"value\", required: false }] }], repeat: [{ type: i0.Input, args: [{ isSignal: true, alias: \"repeat\", required: false }] }], format: [{ type: i0.Input, args: [{ isSignal: true, alias: \"format\", required: false }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnJ1bGUtcHJldmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvcnJ1bGUvc3JjL2xpYi9ycnVsZS1wcmV2aWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFtQ2pELE1BQU0sT0FBTyx1QkFBdUI7SUFoQ3BDO1FBaUNFLFVBQUssR0FBRyxLQUFLLDJEQUFpQixDQUFDO1FBQy9CLFdBQU0sR0FBRyxLQUFLLENBQVMsR0FBRyxrREFBQyxDQUFDO1FBQzVCLFdBQU0sR0FBRyxLQUFLLENBQVMscUJBQXFCLGtEQUFDLENBQUM7UUFFcEMsaUJBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFdEMsVUFBSyxHQUFHLE1BQU0sQ0FBcUIsSUFBSSxpREFBQyxDQUFDO1FBQ3pDLGFBQVEsR0FBRyxNQUFNLENBQWdCLElBQUksb0RBQUMsQ0FBQztRQUV2QyxTQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGdEQUFDLENBQUM7UUFDekYsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxrREFBQyxDQUFDO1FBQzdGLFVBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGlEQUFDLENBQUM7UUFDekcsWUFBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxtREFBQyxDQUFDO1FBRXpHLFFBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDdEIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3hFLENBQUM7UUFDSCxDQUFDLCtDQUFDLENBQUM7S0FZSjtJQVZDLFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEUsQ0FBQzs4R0F2QlUsdUJBQXVCO2tHQUF2Qix1QkFBdUIsc2NBOUJ4Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJULDJEQUNTLGFBQWEsZ0tBQVksbUJBQW1CLDBCQUE3QixRQUFRLHdHQUF1QixTQUFTOzsyRkFFdEQsdUJBQXVCO2tCQWhDbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFLFNBQVMsQ0FBQztpQkFDbkUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWExhYmVsTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xhYmVsJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIE9uSW5pdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFJydWxlU2VydmljZSB9IGZyb20gJy4vcnJ1bGUuc2VydmljZSc7XG5pbXBvcnQgeyBBWFJSdWxlVHlwZSB9IGZyb20gJy4vcnJ1bGUudHlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXJydWxlLXByZXZpZXcnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC00IGF4LXRleHQtcHJldHR5IGF4LXJvdW5kZWQtbWQgYXgtYm9yZGVyIGF4LXAtNFwiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGF4LWxhYmVsPnt7ICdycnVsZS50ZXh0JyB8IHRyYW5zbGF0ZTogeyBzY29wZTogJ2NvbW1vbicgfSB8IGFzeW5jIH19PC9heC1sYWJlbD5cbiAgICAgICAgPGNvZGUgY2xhc3M9XCJheC1tdC0yIGF4LWJsb2NrIGF4LXJvdW5kZWQgYXgtYmctc3VyZmFjZSBheC1wLTJcIj5cbiAgICAgICAgICB7eyB0ZXh0KCkgfX1cbiAgICAgICAgPC9jb2RlPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8YXgtbGFiZWw+e3sgJ3JydWxlLnN0cmluZycgfCB0cmFuc2xhdGU6IHsgc2NvcGU6ICdjb21tb24nIH0gfCBhc3luYyB9fTwvYXgtbGFiZWw+XG4gICAgICAgIDxjb2RlIGNsYXNzPVwiYXgtbXQtMiBheC1ibG9jayBheC10ZXh0LXByZXR0eSBheC1icmVhay1hbGwgYXgtcm91bmRlZCBheC1iZy1zdXJmYWNlIGF4LXAtMlwiPlxuICAgICAgICAgIHt7IHN0cmluZygpIH19XG4gICAgICAgIDwvY29kZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgPGF4LWxhYmVsPnt7XG4gICAgICAgICAgJ3JydWxlLm9jY3VycmVuY2VzJyB8IHRyYW5zbGF0ZTogeyBzY29wZTogJ2NvbW1vbicsIHBhcmFtczogeyByZXBlYXQ6IHJlcGVhdCgpIH0gfSB8IGFzeW5jXG4gICAgICAgIH19PC9heC1sYWJlbD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LW10LTIgYXgtbWF4LWgtNjQgYXgtb3ZlcmZsb3cteS1hdXRvXCI+XG4gICAgICAgICAgQGZvciAoZGF0ZSBvZiBkYXRlcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgIDxjb2RlIGNsYXNzPVwiYXgtYmxvY2sgYXgtYmctc3VyZmFjZSBheC1wLTEgZXZlbjpheC1iZy1saWdodGVyXCI+XG4gICAgICAgICAgICAgIHt7IGRhdGUgfCBkYXRlOiBmb3JtYXQoKSA6IHRpbWVab25lKCkgfX1cbiAgICAgICAgICAgIDwvY29kZT5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIGltcG9ydHM6IFtBWExhYmVsTW9kdWxlLCBEYXRlUGlwZSwgQVhUcmFuc2xhdGlvbk1vZHVsZSwgQXN5bmNQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhScnVsZVByZXZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICB2YWx1ZSA9IGlucHV0PHN0cmluZyB8IG51bGw+KCk7XG4gIHJlcGVhdCA9IGlucHV0PG51bWJlcj4oMTAwKTtcbiAgZm9ybWF0ID0gaW5wdXQ8c3RyaW5nPigneXl5eS1NTS1kZCBISDptbTpzcycpO1xuXG4gIHByb3RlY3RlZCBycnVsZVNlcnZpY2UgPSBpbmplY3QoQVhScnVsZVNlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCBycnVsZSA9IHNpZ25hbDxBWFJSdWxlVHlwZSB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgdGltZVpvbmUgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgcHJvdGVjdGVkIHRleHQgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5ycnVsZSgpID8gdGhpcy5ycnVsZVNlcnZpY2UucnJ1bGVUb1RleHQodGhpcy5ycnVsZSgpKSA6ICcnKSk7XG4gIHByb3RlY3RlZCBzdHJpbmcgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5ycnVsZSgpID8gdGhpcy5ycnVsZVNlcnZpY2UucnJ1bGVUb1N0cmluZyh0aGlzLnJydWxlKCkpIDogJycpKTtcbiAgcHJvdGVjdGVkIGRhdGVzID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMucnJ1bGUoKSA/IHRoaXMucnJ1bGVTZXJ2aWNlLnJydWxlR2V0QWxsKHRoaXMucnJ1bGUoKSwgdGhpcy5yZXBlYXQoKSkgOiBbXSkpO1xuICBwcm90ZWN0ZWQgb3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLnJydWxlKCkgPyB0aGlzLnJydWxlU2VydmljZS5ycnVsZVRvT3B0aW9ucyh0aGlzLnJydWxlKCkpIDoge30pKTtcblxuICBlZmYgPSBlZmZlY3QoYXN5bmMgKCkgPT4ge1xuICAgIGlmICh0aGlzLnZhbHVlKCkpIHtcbiAgICAgIHRoaXMucnJ1bGUuc2V0KGF3YWl0IHRoaXMucnJ1bGVTZXJ2aWNlLnJydWxlRnJvbVN0cmluZyh0aGlzLnZhbHVlKCkpKTtcbiAgICB9XG4gIH0pO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudGltZVpvbmUuc2V0KEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZSk7XG4gIH1cblxuICAvLyB2YWx1ZSA9IGlucHV0PEFYUlJ1bGVUeXBlIHwgbnVsbD4oKTtcbiAgLy8gcHJvdGVjdGVkIHJydWxlU2VydmljZSA9IGluamVjdChBWFJydWxlU2VydmljZSk7XG4gIC8vIHByb3RlY3RlZCB0ZXh0ID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMudmFsdWUoKSA/IHRoaXMucnJ1bGVTZXJ2aWNlLnJydWxlVG9UZXh0KHRoaXMudmFsdWUoKSkgOiAnJykpO1xuICAvLyBwcm90ZWN0ZWQgc3RyaW5nID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMudmFsdWUoKSA/IHRoaXMucnJ1bGVTZXJ2aWNlLnJydWxlVG9TdHJpbmcodGhpcy52YWx1ZSgpKSA6ICcnKSk7XG4gIC8vIHByb3RlY3RlZCBkYXRlcyA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLnZhbHVlKCkgPyB0aGlzLnJydWxlU2VydmljZS5ycnVsZUdldEFsbCh0aGlzLnZhbHVlKCkpIDogW10pKTtcbiAgLy8gcHJvdGVjdGVkIG9wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiAodGhpcy52YWx1ZSgpID8gdGhpcy5ycnVsZVNlcnZpY2UucnJ1bGVUb09wdGlvbnModGhpcy52YWx1ZSgpKSA6IHt9KSk7XG59XG4iXX0=","export const freqs = [\n    { text: 'Yearly', value: 0 },\n    { text: 'Monthly', value: 1 },\n    { text: 'Weekly', value: 2 },\n    { text: 'Daily', value: 3 },\n    { text: 'Hourly', value: 4 },\n    { text: 'Minutely', value: 5 },\n    { text: 'Secondly', value: 6 },\n];\nexport const weekdays = [\n    { text: 'Sunday', value: 6 },\n    { text: 'Monday', value: 0 },\n    { text: 'Tuesday', value: 1 },\n    { text: 'Wednesday', value: 2 },\n    { text: 'Thursday', value: 3 },\n    { text: 'Friday', value: 4 },\n    { text: 'Saturday', value: 5 },\n];\nexport const months = [\n    { text: 'January', value: 1 },\n    { text: 'February', value: 2 },\n    { text: 'March', value: 3 },\n    { text: 'April', value: 4 },\n    { text: 'May', value: 5 },\n    { text: 'June', value: 6 },\n    { text: 'July', value: 7 },\n    { text: 'August', value: 8 },\n    { text: 'September', value: 9 },\n    { text: 'October', value: 10 },\n    { text: 'November', value: 11 },\n    { text: 'December', value: 12 },\n];\nexport const timezones = Intl.supportedValuesOf('timeZone');\nexport const hours = Array.from({ length: 24 }, (_, i) => i);\nexport const minutes = Array.from({ length: 60 }, (_, i) => i);\nexport const seconds = Array.from({ length: 60 }, (_, i) => i);\nexport const monthdays = Array.from({ length: 31 }, (_, i) => i + 1);\nexport const nmonthdays = [\n    ...Array.from({ length: 31 }, (_, i) => -1 * (i + 1)).reverse(),\n    ...Array.from({ length: 31 }, (_, i) => i + 1),\n];\nexport const yeardays = Array.from({ length: 366 }, (_, i) => i + 1);\nexport const weeknos = Array.from({ length: 53 }, (_, i) => i + 1);\nexport const setpos = [\n    ...Array.from({ length: 366 }, (_, i) => -1 * (i + 1)).reverse(),\n    ...Array.from({ length: 366 }, (_, i) => i + 1),\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnJ1bGUuY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3JydWxlL3NyYy9saWIvcnJ1bGUuY29uc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHO0lBQ25CLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO0lBQzVCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO0lBQzdCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO0lBQzVCLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO0lBQzNCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO0lBQzVCLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO0lBQzlCLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO0NBQy9CLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUc7SUFDdEIsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7SUFDNUIsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7SUFDNUIsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7SUFDN0IsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7SUFDL0IsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7SUFDOUIsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7SUFDNUIsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7Q0FDL0IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRztJQUNwQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtJQUM3QixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtJQUM5QixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtJQUMzQixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtJQUMzQixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtJQUN6QixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtJQUMxQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtJQUMxQixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtJQUM1QixFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtJQUMvQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtJQUM5QixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtJQUMvQixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtDQUNoQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUU1RCxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdELE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDL0QsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvRCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNyRSxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDeEIsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDL0QsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUMvQyxDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDckUsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDbkUsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHO0lBQ3BCLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFO0lBQ2hFLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7Q0FDaEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBmcmVxcyA9IFtcbiAgeyB0ZXh0OiAnWWVhcmx5JywgdmFsdWU6IDAgfSxcbiAgeyB0ZXh0OiAnTW9udGhseScsIHZhbHVlOiAxIH0sXG4gIHsgdGV4dDogJ1dlZWtseScsIHZhbHVlOiAyIH0sXG4gIHsgdGV4dDogJ0RhaWx5JywgdmFsdWU6IDMgfSxcbiAgeyB0ZXh0OiAnSG91cmx5JywgdmFsdWU6IDQgfSxcbiAgeyB0ZXh0OiAnTWludXRlbHknLCB2YWx1ZTogNSB9LFxuICB7IHRleHQ6ICdTZWNvbmRseScsIHZhbHVlOiA2IH0sXG5dO1xuXG5leHBvcnQgY29uc3Qgd2Vla2RheXMgPSBbXG4gIHsgdGV4dDogJ1N1bmRheScsIHZhbHVlOiA2IH0sXG4gIHsgdGV4dDogJ01vbmRheScsIHZhbHVlOiAwIH0sXG4gIHsgdGV4dDogJ1R1ZXNkYXknLCB2YWx1ZTogMSB9LFxuICB7IHRleHQ6ICdXZWRuZXNkYXknLCB2YWx1ZTogMiB9LFxuICB7IHRleHQ6ICdUaHVyc2RheScsIHZhbHVlOiAzIH0sXG4gIHsgdGV4dDogJ0ZyaWRheScsIHZhbHVlOiA0IH0sXG4gIHsgdGV4dDogJ1NhdHVyZGF5JywgdmFsdWU6IDUgfSxcbl07XG5cbmV4cG9ydCBjb25zdCBtb250aHMgPSBbXG4gIHsgdGV4dDogJ0phbnVhcnknLCB2YWx1ZTogMSB9LFxuICB7IHRleHQ6ICdGZWJydWFyeScsIHZhbHVlOiAyIH0sXG4gIHsgdGV4dDogJ01hcmNoJywgdmFsdWU6IDMgfSxcbiAgeyB0ZXh0OiAnQXByaWwnLCB2YWx1ZTogNCB9LFxuICB7IHRleHQ6ICdNYXknLCB2YWx1ZTogNSB9LFxuICB7IHRleHQ6ICdKdW5lJywgdmFsdWU6IDYgfSxcbiAgeyB0ZXh0OiAnSnVseScsIHZhbHVlOiA3IH0sXG4gIHsgdGV4dDogJ0F1Z3VzdCcsIHZhbHVlOiA4IH0sXG4gIHsgdGV4dDogJ1NlcHRlbWJlcicsIHZhbHVlOiA5IH0sXG4gIHsgdGV4dDogJ09jdG9iZXInLCB2YWx1ZTogMTAgfSxcbiAgeyB0ZXh0OiAnTm92ZW1iZXInLCB2YWx1ZTogMTEgfSxcbiAgeyB0ZXh0OiAnRGVjZW1iZXInLCB2YWx1ZTogMTIgfSxcbl07XG5cbmV4cG9ydCBjb25zdCB0aW1lem9uZXMgPSBJbnRsLnN1cHBvcnRlZFZhbHVlc09mKCd0aW1lWm9uZScpO1xuXG5leHBvcnQgY29uc3QgaG91cnMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiAyNCB9LCAoXywgaSkgPT4gaSk7XG5leHBvcnQgY29uc3QgbWludXRlcyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDYwIH0sIChfLCBpKSA9PiBpKTtcbmV4cG9ydCBjb25zdCBzZWNvbmRzID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogNjAgfSwgKF8sIGkpID0+IGkpO1xuZXhwb3J0IGNvbnN0IG1vbnRoZGF5cyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDMxIH0sIChfLCBpKSA9PiBpICsgMSk7XG5leHBvcnQgY29uc3Qgbm1vbnRoZGF5cyA9IFtcbiAgLi4uQXJyYXkuZnJvbSh7IGxlbmd0aDogMzEgfSwgKF8sIGkpID0+IC0xICogKGkgKyAxKSkucmV2ZXJzZSgpLFxuICAuLi5BcnJheS5mcm9tKHsgbGVuZ3RoOiAzMSB9LCAoXywgaSkgPT4gaSArIDEpLFxuXTtcbmV4cG9ydCBjb25zdCB5ZWFyZGF5cyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDM2NiB9LCAoXywgaSkgPT4gaSArIDEpO1xuZXhwb3J0IGNvbnN0IHdlZWtub3MgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiA1MyB9LCAoXywgaSkgPT4gaSArIDEpO1xuZXhwb3J0IGNvbnN0IHNldHBvcyA9IFtcbiAgLi4uQXJyYXkuZnJvbSh7IGxlbmd0aDogMzY2IH0sIChfLCBpKSA9PiAtMSAqIChpICsgMSkpLnJldmVyc2UoKSxcbiAgLi4uQXJyYXkuZnJvbSh7IGxlbmd0aDogMzY2IH0sIChfLCBpKSA9PiBpICsgMSksXG5dO1xuIl19","export const defaultOptions = {\n    freq: 2,\n    dtstart: null,\n    interval: 1,\n    wkst: null,\n    count: 5,\n    until: null,\n    tzid: null,\n    bysetpos: [],\n    bymonth: [],\n    bymonthday: [],\n    byyearday: [],\n    byweekno: [],\n    byweekday: [],\n    byhour: [],\n    byminute: [],\n    bysecond: [],\n    byeaster: null,\n    bynmonthday: [],\n    bynweekday: [],\n};\nexport const defaultRrule = 'RRULE:FREQ=WEEKLY;INTERVAL=1;WKST=MO;COUNT=5';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnJ1bGUudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvcnJ1bGUvc3JjL2xpYi9ycnVsZS50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCQSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQW1CO0lBQzVDLElBQUksRUFBRSxDQUFDO0lBQ1AsT0FBTyxFQUFFLElBQUk7SUFDYixRQUFRLEVBQUUsQ0FBQztJQUNYLElBQUksRUFBRSxJQUFJO0lBQ1YsS0FBSyxFQUFFLENBQUM7SUFDUixLQUFLLEVBQUUsSUFBSTtJQUNYLElBQUksRUFBRSxJQUFJO0lBQ1YsUUFBUSxFQUFFLEVBQUU7SUFDWixPQUFPLEVBQUUsRUFBRTtJQUNYLFVBQVUsRUFBRSxFQUFFO0lBQ2QsU0FBUyxFQUFFLEVBQUU7SUFDYixRQUFRLEVBQUUsRUFBRTtJQUNaLFNBQVMsRUFBRSxFQUFFO0lBQ2IsTUFBTSxFQUFFLEVBQUU7SUFDVixRQUFRLEVBQUUsRUFBRTtJQUNaLFFBQVEsRUFBRSxFQUFFO0lBQ1osUUFBUSxFQUFFLElBQUk7SUFDZCxXQUFXLEVBQUUsRUFBRTtJQUNmLFVBQVUsRUFBRSxFQUFFO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyw4Q0FBOEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEFYUk9wdGlvbnNUeXBlID0gaW1wb3J0KCdycnVsZScpLk9wdGlvbnM7XG5leHBvcnQgaW50ZXJmYWNlIEFYUGFyc2VkT3B0aW9uc1R5cGUgZXh0ZW5kcyBBWFJPcHRpb25zVHlwZSB7XG4gIGR0c3RhcnQ6IERhdGU7XG4gIHdrc3Q6IG51bWJlcjtcbiAgYnlzZXRwb3M6IG51bWJlcltdO1xuICBieW1vbnRoOiBudW1iZXJbXTtcbiAgYnltb250aGRheTogbnVtYmVyW107XG4gIGJ5bm1vbnRoZGF5OiBudW1iZXJbXTtcbiAgYnl5ZWFyZGF5OiBudW1iZXJbXTtcbiAgYnl3ZWVrbm86IG51bWJlcltdO1xuICBieXdlZWtkYXk6IG51bWJlcltdO1xuICBieWhvdXI6IG51bWJlcltdO1xuICBieW1pbnV0ZTogbnVtYmVyW107XG4gIGJ5c2Vjb25kOiBudW1iZXJbXTtcbn1cbmV4cG9ydCB0eXBlIEFYUlJ1bGVUeXBlID0gaW1wb3J0KCdycnVsZScpLlJSdWxlO1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdE9wdGlvbnM6IEFYUk9wdGlvbnNUeXBlID0ge1xuICBmcmVxOiAyLFxuICBkdHN0YXJ0OiBudWxsLFxuICBpbnRlcnZhbDogMSxcbiAgd2tzdDogbnVsbCxcbiAgY291bnQ6IDUsXG4gIHVudGlsOiBudWxsLFxuICB0emlkOiBudWxsLFxuICBieXNldHBvczogW10sXG4gIGJ5bW9udGg6IFtdLFxuICBieW1vbnRoZGF5OiBbXSxcbiAgYnl5ZWFyZGF5OiBbXSxcbiAgYnl3ZWVrbm86IFtdLFxuICBieXdlZWtkYXk6IFtdLFxuICBieWhvdXI6IFtdLFxuICBieW1pbnV0ZTogW10sXG4gIGJ5c2Vjb25kOiBbXSxcbiAgYnllYXN0ZXI6IG51bGwsXG4gIGJ5bm1vbnRoZGF5OiBbXSxcbiAgYnlud2Vla2RheTogW10sXG59O1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdFJydWxlID0gJ1JSVUxFOkZSRVE9V0VFS0xZO0lOVEVSVkFMPTE7V0tTVD1NTztDT1VOVD01JztcbiJdfQ==","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDateTimeBoxModule } from '@acorex/components/datetime-box';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXNumberBoxModule } from '@acorex/components/number-box';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXSelectionListModule } from '@acorex/components/selection-list';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { Component, computed, effect, inject, model, output, signal, untracked } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { freqs, hours, minutes, monthdays, months, nmonthdays, seconds, setpos, timezones, weekdays, weeknos, yeardays, } from './rrule.const';\nimport { AXRruleService } from './rrule.service';\nimport { defaultOptions, defaultRrule } from './rrule.type';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@acorex/components/datetime-box\";\nimport * as i3 from \"@acorex/components/selection-list\";\nimport * as i4 from \"@acorex/components/number-box\";\nimport * as i5 from \"@acorex/components/select-box\";\nimport * as i6 from \"@acorex/components/label\";\nimport * as i7 from \"@acorex/components/search-box\";\nimport * as i8 from \"@acorex/components/button\";\nimport * as i9 from \"@angular/common\";\nimport * as i10 from \"@acorex/core/translation\";\n/**\n * RRule component provides a user-friendly interface for creating and managing recurrence rules.\n * Supports various frequencies, intervals, and date constraints with real-time preview and validation.\n */\nexport class AXRruleComponent {\n    constructor() {\n        /**\n         * Current recurrence rule model value (options object or RRULE string).\n         * @default null\n         */\n        this.value = model(null, ...(ngDevMode ? [{ debugName: \"value\" }] : []));\n        /**\n         * Emitted when the model value changes.\n         */\n        this.valueChange = output();\n        /**\n         * Emitted with the computed RRule instance when updated.\n         */\n        this.rruleChange = output();\n        /**\n         * Emitted with the normalized options whenever they change.\n         */\n        this.optionsChange = output();\n        /**\n         * Emitted with the RRULE string representation.\n         */\n        this.stringChange = output();\n        /**\n         * Emitted with the human-readable text of the rule.\n         */\n        this.textChange = output();\n        this.freqs = freqs;\n        this.weekdays = weekdays;\n        this.months = months;\n        this.timezones = timezones;\n        this.hours = hours;\n        this.minutes = minutes;\n        this.seconds = seconds;\n        this.monthdays = monthdays;\n        this.nmonthdays = nmonthdays;\n        this.yeardays = yeardays;\n        this.weeknos = weeknos;\n        this.setpos = setpos;\n        this.options = signal({ ...defaultOptions }, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n        this.rrule = signal(null, ...(ngDevMode ? [{ debugName: \"rrule\" }] : []));\n        this.string = computed(() => this.rrule()?.toString() ?? null, ...(ngDevMode ? [{ debugName: \"string\" }] : []));\n        this.text = computed(() => this.rrule()?.toText() ?? null, ...(ngDevMode ? [{ debugName: \"text\" }] : []));\n        // public all = computed(() => this.rruleService.rruleGetAll(this.rrule()));\n        this.rruleService = inject(AXRruleService);\n        this._isUpdating = false;\n        this._applyToken = 0;\n        this.#valueEffect = effect(() => {\n            const incoming = this.value();\n            if (this._isUpdating) {\n                this._isUpdating = false;\n                return;\n            }\n            this._scheduleApplyIncoming(incoming);\n        }, ...(ngDevMode ? [{ debugName: \"#valueEffect\" }] : []));\n    }\n    #valueEffect;\n    _scheduleApplyIncoming(incoming) {\n        const token = ++this._applyToken;\n        // Defer to microtask to avoid doing async work directly inside effect\n        Promise.resolve().then(() => this._applyIncomingAsync(incoming, token));\n    }\n    async _applyIncomingAsync(incoming, token) {\n        try {\n            let rrule;\n            let newOptions;\n            if (incoming) {\n                if (typeof incoming === 'string') {\n                    rrule = await this.rruleService.rruleFromString(incoming);\n                    newOptions = this._clearOptions({ ...rrule.options }, incoming);\n                }\n                else {\n                    rrule = await this.rruleService.rruleFromOptions(incoming);\n                    newOptions = { ...rrule.options };\n                }\n            }\n            else {\n                rrule = await this.rruleService.rruleFromString(defaultRrule);\n                newOptions = this._clearOptions({ ...rrule.options }, defaultRrule);\n            }\n            // Only apply the latest scheduled update\n            if (token !== this._applyToken)\n                return;\n            untracked(() => {\n                this.rrule.set(rrule);\n                this.options.set(newOptions);\n                this._emitAll();\n            });\n        }\n        catch {\n            // Swallow errors to avoid breaking the reactive graph; consider surfacing via output events if needed\n        }\n    }\n    _emitAll() {\n        this.rruleChange.emit(this.rrule());\n        this.optionsChange.emit(this.options());\n        this.stringChange.emit(this.string());\n        this.textChange.emit(this.text());\n    }\n    _areOptionValuesEqual(a, b) {\n        if (a === b)\n            return true;\n        if (a == null || b == null)\n            return a === b;\n        // Compare Date\n        if (a instanceof Date && b instanceof Date)\n            return a.getTime() === b.getTime();\n        // Compare arrays of primitives\n        if (Array.isArray(a) && Array.isArray(b)) {\n            if (a.length !== b.length)\n                return false;\n            for (let i = 0; i < a.length; i++) {\n                if (a[i] !== b[i])\n                    return false;\n            }\n            return true;\n        }\n        return false;\n    }\n    _clearOptions(options, rule) {\n        const upperCaseRule = rule.toUpperCase();\n        if (!upperCaseRule.includes('DTSTART')) {\n            options.dtstart = this.options().dtstart ?? new Date();\n        }\n        if (!upperCaseRule.includes('BYHOUR')) {\n            options.byhour = [];\n        }\n        if (!upperCaseRule.includes('BYMINUTE')) {\n            options.byminute = [];\n        }\n        if (!upperCaseRule.includes('BYSECOND')) {\n            options.bysecond = [];\n        }\n        if (!upperCaseRule.includes('BYMONTH')) {\n            options.bymonth = [];\n        }\n        if (!upperCaseRule.includes('BYMONTHDAY')) {\n            options.bymonthday = [];\n        }\n        if (!upperCaseRule.includes('BYWEEKDAY')) {\n            options.byweekday = [];\n        }\n        if (!upperCaseRule.includes('TZID')) {\n            const currentTz = this.options().tzid;\n            const userTimeZone = Intl?.DateTimeFormat?.().resolvedOptions?.().timeZone;\n            options.tzid = currentTz ?? userTimeZone ?? null;\n        }\n        return options;\n    }\n    /**\n     * Updates a single option and recomputes the rule.\n     * @param key The option key to update\n     * @param value The new value for the option\n     */\n    async updateOption(key, value) {\n        const current = this.options()[key];\n        if (this._areOptionValuesEqual(current, value))\n            return;\n        this.options.update((opts) => ({ ...opts, [key]: value }));\n        const newRrule = await this.rruleService.rruleFromOptions(this.options());\n        this.rrule.set(newRrule);\n        this._isUpdating = true;\n        if (typeof this.value() === 'string') {\n            this.value.set(newRrule.toString());\n        }\n        else {\n            this.value.set(this.options());\n        }\n        this._emitAll();\n    }\n    /**\n     * Resets options to defaults and recomputes the rule.\n     */\n    async resetOptions() {\n        this.options.set({ ...defaultOptions });\n        const newRrule = await this.rruleService.rruleFromOptions(this.options());\n        this.rrule.set(newRrule);\n        this._isUpdating = true;\n        if (typeof this.value() === 'string') {\n            this.value.set(newRrule.toString());\n        }\n        else {\n            this.value.set(this.options());\n        }\n        this._emitAll();\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXRruleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.6\", type: AXRruleComponent, isStandalone: true, selector: \"ax-rrule\", inputs: { value: { classPropertyName: \"value\", publicName: \"value\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: \"valueChange\", valueChange: \"valueChange\", rruleChange: \"rruleChange\", optionsChange: \"optionsChange\", stringChange: \"stringChange\", textChange: \"textChange\" }, ngImport: i0, template: \"<div class=\\\"ax-rrule-container ax-grid ax-grid-cols-1 ax-gap-4 md:ax-grid-cols-2 lg:ax-grid-cols-3\\\">\\n  <!-- General -->\\n  <div class=\\\"ax-flex ax-flex-col ax-gap-4 ax-rounded-md ax-border ax-p-4\\\">\\n    <div class=\\\"ax-text-lg ax-font-semibold\\\">{{ 'rrule.general' | translate: { scope: 'common' } | async }}</div>\\n\\n    <div>\\n      <ax-label>{{ 'rrule.freq' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-selection-list\\n        valueField=\\\"value\\\"\\n        textField=\\\"text\\\"\\n        name=\\\"freq\\\"\\n        [items]=\\\"freqs\\\"\\n        [ngModel]=\\\"options().freq\\\"\\n        (ngModelChange)=\\\"updateOption('freq', $event)\\\"\\n      ></ax-selection-list>\\n    </div>\\n\\n    <div>\\n      <ax-label>{{ 'rrule.dtstart' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-datetime-box\\n        name=\\\"dtstart\\\"\\n        [ngModel]=\\\"options().dtstart\\\"\\n        (ngModelChange)=\\\"updateOption('dtstart', $event)\\\"\\n      ></ax-datetime-box>\\n    </div>\\n\\n    <div>\\n      <ax-label>{{ 'rrule.until' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-datetime-box\\n        name=\\\"until\\\"\\n        [ngModel]=\\\"options().until\\\"\\n        (ngModelChange)=\\\"updateOption('until', $event)\\\"\\n      ></ax-datetime-box>\\n    </div>\\n\\n    <div>\\n      <ax-label>{{ 'rrule.count' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-number-box\\n        name=\\\"count\\\"\\n        [ngModel]=\\\"options().count\\\"\\n        (ngModelChange)=\\\"updateOption('count', $event)\\\"\\n        [minValue]=\\\"1\\\"\\n      ></ax-number-box>\\n    </div>\\n\\n    <div>\\n      <ax-label>{{ 'rrule.interval' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-number-box\\n        name=\\\"interval\\\"\\n        [ngModel]=\\\"options().interval\\\"\\n        (ngModelChange)=\\\"updateOption('interval', $event)\\\"\\n        [minValue]=\\\"1\\\"\\n      ></ax-number-box>\\n    </div>\\n\\n    <div>\\n      <ax-label>{{ 'rrule.tzid' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"tzid\\\"\\n        [dataSource]=\\\"timezones\\\"\\n        [ngModel]=\\\"options().tzid\\\"\\n        (ngModelChange)=\\\"updateOption('tzid', $event)\\\"\\n      >\\n        <ax-search-box></ax-search-box>\\n      </ax-select-box>\\n    </div>\\n  </div>\\n\\n  <!-- By Weekday -->\\n  <div class=\\\"ax-flex ax-flex-col ax-gap-4 ax-rounded-md ax-border ax-p-4\\\">\\n    <div class=\\\"ax-text-lg ax-font-semibold\\\">{{ 'rrule.by-weekday' | translate: { scope: 'common' } | async }}</div>\\n    <div>\\n      <ax-label>{{ 'rrule.wkst' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-selection-list\\n        valueField=\\\"value\\\"\\n        textField=\\\"text\\\"\\n        name=\\\"wkst\\\"\\n        [items]=\\\"weekdays\\\"\\n        [ngModel]=\\\"options().wkst\\\"\\n        (ngModelChange)=\\\"updateOption('wkst', $event)\\\"\\n      ></ax-selection-list>\\n    </div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-weekday-rule' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-selection-list\\n        valueField=\\\"value\\\"\\n        textField=\\\"text\\\"\\n        name=\\\"byweekday\\\"\\n        [items]=\\\"weekdays\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().byweekday\\\"\\n        (ngModelChange)=\\\"updateOption('byweekday', $event)\\\"\\n      ></ax-selection-list>\\n    </div>\\n  </div>\\n\\n  <!-- By Month -->\\n  <div class=\\\"ax-flex ax-flex-col ax-gap-4 ax-rounded-md ax-border ax-p-4\\\">\\n    <div class=\\\"ax-text-lg ax-font-semibold\\\">{{ 'rrule.by-month' | translate: { scope: 'common' } | async }}</div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-month-rule' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-selection-list\\n        valueField=\\\"value\\\"\\n        textField=\\\"text\\\"\\n        name=\\\"bymonth\\\"\\n        [items]=\\\"months\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().bymonth\\\"\\n        (ngModelChange)=\\\"updateOption('bymonth', $event)\\\"\\n      ></ax-selection-list>\\n    </div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-month-day' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"bymonthday\\\"\\n        [dataSource]=\\\"monthdays\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().bymonthday\\\"\\n        (ngModelChange)=\\\"updateOption('bymonthday', $event)\\\"\\n      >\\n      </ax-select-box>\\n    </div>\\n    <!-- <div>\\n      <ax-label>By Negative Month Day (BYNMONTHDAY)</ax-label>\\n      <ax-select-box\\n        name=\\\"bynmonthday\\\"\\n        [dataSource]=\\\"nmonthdays\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().bynmonthday\\\"\\n        (ngModelChange)=\\\"updateOption('bynmonthday', $event)\\\"\\n      >\\n      </ax-select-box>\\n    </div> -->\\n  </div>\\n\\n  <!-- By Year -->\\n  <div class=\\\"ax-flex ax-flex-col ax-gap-4 ax-rounded-md ax-border ax-p-4\\\">\\n    <div class=\\\"ax-text-lg ax-font-semibold\\\">{{ 'rrule.by-year' | translate: { scope: 'common' } | async }}</div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-year-day' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"byyearday\\\"\\n        [dataSource]=\\\"yeardays\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().byyearday\\\"\\n        (ngModelChange)=\\\"updateOption('byyearday', $event)\\\"\\n      >\\n      </ax-select-box>\\n    </div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-week-no' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"byweekno\\\"\\n        [dataSource]=\\\"weeknos\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().byweekno\\\"\\n        (ngModelChange)=\\\"updateOption('byweekno', $event)\\\"\\n      >\\n      </ax-select-box>\\n    </div>\\n  </div>\\n\\n  <!-- By Time -->\\n  <div class=\\\"ax-flex ax-flex-col ax-gap-4 ax-rounded-md ax-border ax-p-4\\\">\\n    <div class=\\\"ax-text-lg ax-font-semibold\\\">{{ 'rrule.by-time' | translate: { scope: 'common' } | async }}</div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-hour' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"byhour\\\"\\n        [dataSource]=\\\"hours\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().byhour\\\"\\n        (ngModelChange)=\\\"updateOption('byhour', $event)\\\"\\n      >\\n      </ax-select-box>\\n    </div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-minute' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"byminute\\\"\\n        [dataSource]=\\\"minutes\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().byminute\\\"\\n        (ngModelChange)=\\\"updateOption('byminute', $event)\\\"\\n      >\\n      </ax-select-box>\\n    </div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-second' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"bysecond\\\"\\n        [dataSource]=\\\"seconds\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().bysecond\\\"\\n        (ngModelChange)=\\\"updateOption('bysecond', $event)\\\"\\n      >\\n      </ax-select-box>\\n    </div>\\n  </div>\\n\\n  <!-- Advanced -->\\n  <div class=\\\"ax-flex ax-flex-col ax-gap-4 ax-rounded-md ax-border ax-p-4\\\">\\n    <div class=\\\"ax-text-lg ax-font-semibold\\\">{{ 'rrule.advanced' | translate: { scope: 'common' } | async }}</div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-set-pos' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"bysetpos\\\"\\n        [dataSource]=\\\"setpos\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().bysetpos\\\"\\n        (ngModelChange)=\\\"updateOption('bysetpos', $event)\\\"\\n        [disabled]=\\\"true\\\"\\n      >\\n      </ax-select-box>\\n    </div>\\n  </div>\\n</div>\\n\\n<div class=\\\"ax-flex ax-justify-end ax-py-4\\\">\\n  <ax-button [text]=\\\"'rrule.reset' | translate: { scope: 'common' } | async\\\" (click)=\\\"resetOptions()\\\"></ax-button>\\n</div>\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: AXDateTimeBoxModule }, { kind: \"component\", type: i2.AXDateTimeBoxComponent, selector: \"ax-datetime-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"minValue\", \"maxValue\", \"value\", \"state\", \"name\", \"depth\", \"id\", \"type\", \"look\", \"holidayDates\", \"allowTyping\", \"picker\", \"calendar\", \"weekend\", \"weekdays\", \"format\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"onOpened\", \"onClosed\", \"readonlyChange\", \"disabledChange\", \"formatChange\"] }, { kind: \"ngmodule\", type: AXSelectionListModule }, { kind: \"component\", type: i3.AXSelectionListComponent, selector: \"ax-selection-list\", inputs: [\"id\", \"name\", \"disabled\", \"readonly\", \"tabIndex\", \"size\", \"value\", \"valueField\", \"textField\", \"disabledField\", \"readonlyField\", \"multiple\", \"direction\", \"customTemplate\", \"showControl\", \"items\", \"look\"], outputs: [\"onValueChanged\", \"onBlur\", \"onFocus\"] }, { kind: \"ngmodule\", type: AXNumberBoxModule }, { kind: \"component\", type: i4.AXNumberBoxComponent, selector: \"ax-number-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"minValue\", \"maxValue\", \"showSpinButtons\", \"thousandsSeparator\", \"decimals\", \"changeOnScroll\", \"step\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\", \"thousandsSeparatorChange\"] }, { kind: \"ngmodule\", type: AXFormModule }, { kind: \"ngmodule\", type: AXSelectBoxModule }, { kind: \"component\", type: i5.AXSelectBoxComponent, selector: \"ax-select-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"minValue\", \"maxValue\", \"value\", \"state\", \"name\", \"id\", \"type\", \"look\", \"multiple\", \"valueField\", \"textField\", \"disabledField\", \"textTemplate\", \"selectedItems\", \"isItemTruncated\", \"showItemTooltip\", \"dataSource\", \"minRecordsForSearch\", \"caption\", \"itemTemplate\", \"selectedTemplate\", \"emptyTemplate\", \"loadingTemplate\", \"dropdownWidth\", \"searchBoxAutoFocus\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onOpened\", \"onClosed\", \"onItemSelected\", \"onItemClick\"] }, { kind: \"ngmodule\", type: AXLabelModule }, { kind: \"component\", type: i6.AXLabelComponent, selector: \"ax-label\", inputs: [\"required\", \"for\"], outputs: [\"requiredChange\"] }, { kind: \"ngmodule\", type: AXSearchBoxModule }, { kind: \"component\", type: i7.AXSearchBoxComponent, selector: \"ax-search-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"class\", \"delayTime\", \"type\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i8.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"pipe\", type: i9.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i10.AXTranslatorPipe, name: \"translate\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXRruleComponent, decorators: [{\n            type: Component,\n            args: [{ standalone: true, selector: 'ax-rrule', imports: [\n                        CommonModule,\n                        FormsModule,\n                        AXDateTimeBoxModule,\n                        AXSelectionListModule,\n                        AXNumberBoxModule,\n                        AXFormModule,\n                        AXSelectBoxModule,\n                        AXLabelModule,\n                        AXSearchBoxModule,\n                        AXButtonModule,\n                        AXTranslationModule,\n                    ], template: \"<div class=\\\"ax-rrule-container ax-grid ax-grid-cols-1 ax-gap-4 md:ax-grid-cols-2 lg:ax-grid-cols-3\\\">\\n  <!-- General -->\\n  <div class=\\\"ax-flex ax-flex-col ax-gap-4 ax-rounded-md ax-border ax-p-4\\\">\\n    <div class=\\\"ax-text-lg ax-font-semibold\\\">{{ 'rrule.general' | translate: { scope: 'common' } | async }}</div>\\n\\n    <div>\\n      <ax-label>{{ 'rrule.freq' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-selection-list\\n        valueField=\\\"value\\\"\\n        textField=\\\"text\\\"\\n        name=\\\"freq\\\"\\n        [items]=\\\"freqs\\\"\\n        [ngModel]=\\\"options().freq\\\"\\n        (ngModelChange)=\\\"updateOption('freq', $event)\\\"\\n      ></ax-selection-list>\\n    </div>\\n\\n    <div>\\n      <ax-label>{{ 'rrule.dtstart' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-datetime-box\\n        name=\\\"dtstart\\\"\\n        [ngModel]=\\\"options().dtstart\\\"\\n        (ngModelChange)=\\\"updateOption('dtstart', $event)\\\"\\n      ></ax-datetime-box>\\n    </div>\\n\\n    <div>\\n      <ax-label>{{ 'rrule.until' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-datetime-box\\n        name=\\\"until\\\"\\n        [ngModel]=\\\"options().until\\\"\\n        (ngModelChange)=\\\"updateOption('until', $event)\\\"\\n      ></ax-datetime-box>\\n    </div>\\n\\n    <div>\\n      <ax-label>{{ 'rrule.count' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-number-box\\n        name=\\\"count\\\"\\n        [ngModel]=\\\"options().count\\\"\\n        (ngModelChange)=\\\"updateOption('count', $event)\\\"\\n        [minValue]=\\\"1\\\"\\n      ></ax-number-box>\\n    </div>\\n\\n    <div>\\n      <ax-label>{{ 'rrule.interval' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-number-box\\n        name=\\\"interval\\\"\\n        [ngModel]=\\\"options().interval\\\"\\n        (ngModelChange)=\\\"updateOption('interval', $event)\\\"\\n        [minValue]=\\\"1\\\"\\n      ></ax-number-box>\\n    </div>\\n\\n    <div>\\n      <ax-label>{{ 'rrule.tzid' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"tzid\\\"\\n        [dataSource]=\\\"timezones\\\"\\n        [ngModel]=\\\"options().tzid\\\"\\n        (ngModelChange)=\\\"updateOption('tzid', $event)\\\"\\n      >\\n        <ax-search-box></ax-search-box>\\n      </ax-select-box>\\n    </div>\\n  </div>\\n\\n  <!-- By Weekday -->\\n  <div class=\\\"ax-flex ax-flex-col ax-gap-4 ax-rounded-md ax-border ax-p-4\\\">\\n    <div class=\\\"ax-text-lg ax-font-semibold\\\">{{ 'rrule.by-weekday' | translate: { scope: 'common' } | async }}</div>\\n    <div>\\n      <ax-label>{{ 'rrule.wkst' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-selection-list\\n        valueField=\\\"value\\\"\\n        textField=\\\"text\\\"\\n        name=\\\"wkst\\\"\\n        [items]=\\\"weekdays\\\"\\n        [ngModel]=\\\"options().wkst\\\"\\n        (ngModelChange)=\\\"updateOption('wkst', $event)\\\"\\n      ></ax-selection-list>\\n    </div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-weekday-rule' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-selection-list\\n        valueField=\\\"value\\\"\\n        textField=\\\"text\\\"\\n        name=\\\"byweekday\\\"\\n        [items]=\\\"weekdays\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().byweekday\\\"\\n        (ngModelChange)=\\\"updateOption('byweekday', $event)\\\"\\n      ></ax-selection-list>\\n    </div>\\n  </div>\\n\\n  <!-- By Month -->\\n  <div class=\\\"ax-flex ax-flex-col ax-gap-4 ax-rounded-md ax-border ax-p-4\\\">\\n    <div class=\\\"ax-text-lg ax-font-semibold\\\">{{ 'rrule.by-month' | translate: { scope: 'common' } | async }}</div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-month-rule' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-selection-list\\n        valueField=\\\"value\\\"\\n        textField=\\\"text\\\"\\n        name=\\\"bymonth\\\"\\n        [items]=\\\"months\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().bymonth\\\"\\n        (ngModelChange)=\\\"updateOption('bymonth', $event)\\\"\\n      ></ax-selection-list>\\n    </div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-month-day' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"bymonthday\\\"\\n        [dataSource]=\\\"monthdays\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().bymonthday\\\"\\n        (ngModelChange)=\\\"updateOption('bymonthday', $event)\\\"\\n      >\\n      </ax-select-box>\\n    </div>\\n    <!-- <div>\\n      <ax-label>By Negative Month Day (BYNMONTHDAY)</ax-label>\\n      <ax-select-box\\n        name=\\\"bynmonthday\\\"\\n        [dataSource]=\\\"nmonthdays\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().bynmonthday\\\"\\n        (ngModelChange)=\\\"updateOption('bynmonthday', $event)\\\"\\n      >\\n      </ax-select-box>\\n    </div> -->\\n  </div>\\n\\n  <!-- By Year -->\\n  <div class=\\\"ax-flex ax-flex-col ax-gap-4 ax-rounded-md ax-border ax-p-4\\\">\\n    <div class=\\\"ax-text-lg ax-font-semibold\\\">{{ 'rrule.by-year' | translate: { scope: 'common' } | async }}</div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-year-day' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"byyearday\\\"\\n        [dataSource]=\\\"yeardays\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().byyearday\\\"\\n        (ngModelChange)=\\\"updateOption('byyearday', $event)\\\"\\n      >\\n      </ax-select-box>\\n    </div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-week-no' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"byweekno\\\"\\n        [dataSource]=\\\"weeknos\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().byweekno\\\"\\n        (ngModelChange)=\\\"updateOption('byweekno', $event)\\\"\\n      >\\n      </ax-select-box>\\n    </div>\\n  </div>\\n\\n  <!-- By Time -->\\n  <div class=\\\"ax-flex ax-flex-col ax-gap-4 ax-rounded-md ax-border ax-p-4\\\">\\n    <div class=\\\"ax-text-lg ax-font-semibold\\\">{{ 'rrule.by-time' | translate: { scope: 'common' } | async }}</div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-hour' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"byhour\\\"\\n        [dataSource]=\\\"hours\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().byhour\\\"\\n        (ngModelChange)=\\\"updateOption('byhour', $event)\\\"\\n      >\\n      </ax-select-box>\\n    </div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-minute' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"byminute\\\"\\n        [dataSource]=\\\"minutes\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().byminute\\\"\\n        (ngModelChange)=\\\"updateOption('byminute', $event)\\\"\\n      >\\n      </ax-select-box>\\n    </div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-second' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"bysecond\\\"\\n        [dataSource]=\\\"seconds\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().bysecond\\\"\\n        (ngModelChange)=\\\"updateOption('bysecond', $event)\\\"\\n      >\\n      </ax-select-box>\\n    </div>\\n  </div>\\n\\n  <!-- Advanced -->\\n  <div class=\\\"ax-flex ax-flex-col ax-gap-4 ax-rounded-md ax-border ax-p-4\\\">\\n    <div class=\\\"ax-text-lg ax-font-semibold\\\">{{ 'rrule.advanced' | translate: { scope: 'common' } | async }}</div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-set-pos' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"bysetpos\\\"\\n        [dataSource]=\\\"setpos\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().bysetpos\\\"\\n        (ngModelChange)=\\\"updateOption('bysetpos', $event)\\\"\\n        [disabled]=\\\"true\\\"\\n      >\\n      </ax-select-box>\\n    </div>\\n  </div>\\n</div>\\n\\n<div class=\\\"ax-flex ax-justify-end ax-py-4\\\">\\n  <ax-button [text]=\\\"'rrule.reset' | translate: { scope: 'common' } | async\\\" (click)=\\\"resetOptions()\\\"></ax-button>\\n</div>\\n\" }]\n        }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: \"value\", required: false }] }, { type: i0.Output, args: [\"valueChange\"] }], valueChange: [{ type: i0.Output, args: [\"valueChange\"] }], rruleChange: [{ type: i0.Output, args: [\"rruleChange\"] }], optionsChange: [{ type: i0.Output, args: [\"optionsChange\"] }], stringChange: [{ type: i0.Output, args: [\"stringChange\"] }], textChange: [{ type: i0.Output, args: [\"textChange\"] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnJ1bGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9ycnVsZS9zcmMvbGliL3JydWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvcnJ1bGUvc3JjL2xpYi9ycnVsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFDTCxLQUFLLEVBQ0wsS0FBSyxFQUNMLE9BQU8sRUFDUCxTQUFTLEVBQ1QsTUFBTSxFQUNO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O3dCQUNyQixpQkFBaUI7d0JBQ2pCLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxtQkFBbUI7cUJBQ3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRGF0ZVRpbWVCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGF0ZXRpbWUtYm94JztcbmltcG9ydCB7IEFYRm9ybU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9mb3JtJztcbmltcG9ydCB7IEFYTGFiZWxNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbGFiZWwnO1xuaW1wb3J0IHsgQVhOdW1iZXJCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbnVtYmVyLWJveCc7XG5pbXBvcnQgeyBBWFNlYXJjaEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWFyY2gtYm94JztcbmltcG9ydCB7IEFYU2VsZWN0Qm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlbGVjdC1ib3gnO1xuaW1wb3J0IHsgQVhTZWxlY3Rpb25MaXN0TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlbGVjdGlvbi1saXN0JztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBtb2RlbCwgb3V0cHV0LCBzaWduYWwsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBmcmVxcyxcbiAgaG91cnMsXG4gIG1pbnV0ZXMsXG4gIG1vbnRoZGF5cyxcbiAgbW9udGhzLFxuICBubW9udGhkYXlzLFxuICBzZWNvbmRzLFxuICBzZXRwb3MsXG4gIHRpbWV6b25lcyxcbiAgd2Vla2RheXMsXG4gIHdlZWtub3MsXG4gIHllYXJkYXlzLFxufSBmcm9tICcuL3JydWxlLmNvbnN0JztcbmltcG9ydCB7IEFYUnJ1bGVTZXJ2aWNlIH0gZnJvbSAnLi9ycnVsZS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUk9wdGlvbnNUeXBlLCBBWFJSdWxlVHlwZSwgZGVmYXVsdE9wdGlvbnMsIGRlZmF1bHRScnVsZSB9IGZyb20gJy4vcnJ1bGUudHlwZSc7XG5cbi8qKlxuICogUlJ1bGUgY29tcG9uZW50IHByb3ZpZGVzIGEgdXNlci1mcmllbmRseSBpbnRlcmZhY2UgZm9yIGNyZWF0aW5nIGFuZCBtYW5hZ2luZyByZWN1cnJlbmNlIHJ1bGVzLlxuICogU3VwcG9ydHMgdmFyaW91cyBmcmVxdWVuY2llcywgaW50ZXJ2YWxzLCBhbmQgZGF0ZSBjb25zdHJhaW50cyB3aXRoIHJlYWwtdGltZSBwcmV2aWV3IGFuZCB2YWxpZGF0aW9uLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdheC1ycnVsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9ycnVsZS5jb21wb25lbnQuaHRtbCcsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQVhEYXRlVGltZUJveE1vZHVsZSxcbiAgICBBWFNlbGVjdGlvbkxpc3RNb2R1bGUsXG4gICAgQVhOdW1iZXJCb3hNb2R1bGUsXG4gICAgQVhGb3JtTW9kdWxlLFxuICAgIEFYU2VsZWN0Qm94TW9kdWxlLFxuICAgIEFYTGFiZWxNb2R1bGUsXG4gICAgQVhTZWFyY2hCb3hNb2R1bGUsXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhScnVsZUNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBDdXJyZW50IHJlY3VycmVuY2UgcnVsZSBtb2RlbCB2YWx1ZSAob3B0aW9ucyBvYmplY3Qgb3IgUlJVTEUgc3RyaW5nKS5cbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgcHVibGljIHZhbHVlID0gbW9kZWw8QVhST3B0aW9uc1R5cGUgfCBzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBtb2RlbCB2YWx1ZSBjaGFuZ2VzLlxuICAgKi9cbiAgcHVibGljIHZhbHVlQ2hhbmdlID0gb3V0cHV0PEFYUk9wdGlvbnNUeXBlIHwgc3RyaW5nIHwgbnVsbD4oKTtcblxuICAvKipcbiAgICogRW1pdHRlZCB3aXRoIHRoZSBjb21wdXRlZCBSUnVsZSBpbnN0YW5jZSB3aGVuIHVwZGF0ZWQuXG4gICAqL1xuICBwdWJsaWMgcnJ1bGVDaGFuZ2UgPSBvdXRwdXQ8QVhSUnVsZVR5cGUgfCBudWxsPigpO1xuXG4gIC8qKlxuICAgKiBFbWl0dGVkIHdpdGggdGhlIG5vcm1hbGl6ZWQgb3B0aW9ucyB3aGVuZXZlciB0aGV5IGNoYW5nZS5cbiAgICovXG4gIHB1YmxpYyBvcHRpb25zQ2hhbmdlID0gb3V0cHV0PEFYUk9wdGlvbnNUeXBlPigpO1xuXG4gIC8qKlxuICAgKiBFbWl0dGVkIHdpdGggdGhlIFJSVUxFIHN0cmluZyByZXByZXNlbnRhdGlvbi5cbiAgICovXG4gIHB1YmxpYyBzdHJpbmdDaGFuZ2UgPSBvdXRwdXQ8c3RyaW5nIHwgbnVsbD4oKTtcblxuICAvKipcbiAgICogRW1pdHRlZCB3aXRoIHRoZSBodW1hbi1yZWFkYWJsZSB0ZXh0IG9mIHRoZSBydWxlLlxuICAgKi9cbiAgcHVibGljIHRleHRDaGFuZ2UgPSBvdXRwdXQ8c3RyaW5nIHwgbnVsbD4oKTtcblxuICBwcm90ZWN0ZWQgZnJlcXMgPSBmcmVxcztcbiAgcHJvdGVjdGVkIHdlZWtkYXlzID0gd2Vla2RheXM7XG4gIHByb3RlY3RlZCBtb250aHMgPSBtb250aHM7XG4gIHByb3RlY3RlZCB0aW1lem9uZXMgPSB0aW1lem9uZXM7XG4gIHByb3RlY3RlZCBob3VycyA9IGhvdXJzO1xuICBwcm90ZWN0ZWQgbWludXRlcyA9IG1pbnV0ZXM7XG4gIHByb3RlY3RlZCBzZWNvbmRzID0gc2Vjb25kcztcbiAgcHJvdGVjdGVkIG1vbnRoZGF5cyA9IG1vbnRoZGF5cztcbiAgcHJvdGVjdGVkIG5tb250aGRheXMgPSBubW9udGhkYXlzO1xuICBwcm90ZWN0ZWQgeWVhcmRheXMgPSB5ZWFyZGF5cztcbiAgcHJvdGVjdGVkIHdlZWtub3MgPSB3ZWVrbm9zO1xuICBwcm90ZWN0ZWQgc2V0cG9zID0gc2V0cG9zO1xuXG4gIHByb3RlY3RlZCBvcHRpb25zID0gc2lnbmFsPEFYUk9wdGlvbnNUeXBlPih7IC4uLmRlZmF1bHRPcHRpb25zIH0pO1xuICBwcm90ZWN0ZWQgcnJ1bGUgPSBzaWduYWw8QVhSUnVsZVR5cGUgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHN0cmluZyA9IGNvbXB1dGVkKCgpID0+IHRoaXMucnJ1bGUoKT8udG9TdHJpbmcoKSA/PyBudWxsKTtcbiAgcHJvdGVjdGVkIHRleHQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJydWxlKCk/LnRvVGV4dCgpID8/IG51bGwpO1xuICAvLyBwdWJsaWMgYWxsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5ycnVsZVNlcnZpY2UucnJ1bGVHZXRBbGwodGhpcy5ycnVsZSgpKSk7XG5cbiAgcHJpdmF0ZSBycnVsZVNlcnZpY2UgPSBpbmplY3QoQVhScnVsZVNlcnZpY2UpO1xuICBwcml2YXRlIF9pc1VwZGF0aW5nID0gZmFsc2U7XG4gIHByaXZhdGUgX2FwcGx5VG9rZW4gPSAwO1xuXG4gICN2YWx1ZUVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaW5jb21pbmcgPSB0aGlzLnZhbHVlKCk7XG4gICAgaWYgKHRoaXMuX2lzVXBkYXRpbmcpIHtcbiAgICAgIHRoaXMuX2lzVXBkYXRpbmcgPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fc2NoZWR1bGVBcHBseUluY29taW5nKGluY29taW5nKTtcbiAgfSk7XG5cbiAgcHJpdmF0ZSBfc2NoZWR1bGVBcHBseUluY29taW5nKGluY29taW5nOiBBWFJPcHRpb25zVHlwZSB8IHN0cmluZyB8IG51bGwpIHtcbiAgICBjb25zdCB0b2tlbiA9ICsrdGhpcy5fYXBwbHlUb2tlbjtcbiAgICAvLyBEZWZlciB0byBtaWNyb3Rhc2sgdG8gYXZvaWQgZG9pbmcgYXN5bmMgd29yayBkaXJlY3RseSBpbnNpZGUgZWZmZWN0XG4gICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB0aGlzLl9hcHBseUluY29taW5nQXN5bmMoaW5jb21pbmcsIHRva2VuKSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9hcHBseUluY29taW5nQXN5bmMoaW5jb21pbmc6IEFYUk9wdGlvbnNUeXBlIHwgc3RyaW5nIHwgbnVsbCwgdG9rZW46IG51bWJlcikge1xuICAgIHRyeSB7XG4gICAgICBsZXQgcnJ1bGU6IEFYUlJ1bGVUeXBlO1xuICAgICAgbGV0IG5ld09wdGlvbnM6IEFYUk9wdGlvbnNUeXBlO1xuXG4gICAgICBpZiAoaW5jb21pbmcpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBpbmNvbWluZyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBycnVsZSA9IGF3YWl0IHRoaXMucnJ1bGVTZXJ2aWNlLnJydWxlRnJvbVN0cmluZyhpbmNvbWluZyk7XG4gICAgICAgICAgbmV3T3B0aW9ucyA9IHRoaXMuX2NsZWFyT3B0aW9ucyh7IC4uLnJydWxlLm9wdGlvbnMgfSwgaW5jb21pbmcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJydWxlID0gYXdhaXQgdGhpcy5ycnVsZVNlcnZpY2UucnJ1bGVGcm9tT3B0aW9ucyhpbmNvbWluZyk7XG4gICAgICAgICAgbmV3T3B0aW9ucyA9IHsgLi4ucnJ1bGUub3B0aW9ucyB9IGFzIEFYUk9wdGlvbnNUeXBlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBycnVsZSA9IGF3YWl0IHRoaXMucnJ1bGVTZXJ2aWNlLnJydWxlRnJvbVN0cmluZyhkZWZhdWx0UnJ1bGUpO1xuICAgICAgICBuZXdPcHRpb25zID0gdGhpcy5fY2xlYXJPcHRpb25zKHsgLi4ucnJ1bGUub3B0aW9ucyB9LCBkZWZhdWx0UnJ1bGUpO1xuICAgICAgfVxuXG4gICAgICAvLyBPbmx5IGFwcGx5IHRoZSBsYXRlc3Qgc2NoZWR1bGVkIHVwZGF0ZVxuICAgICAgaWYgKHRva2VuICE9PSB0aGlzLl9hcHBseVRva2VuKSByZXR1cm47XG5cbiAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgIHRoaXMucnJ1bGUuc2V0KHJydWxlKTtcbiAgICAgICAgdGhpcy5vcHRpb25zLnNldChuZXdPcHRpb25zKTtcbiAgICAgICAgdGhpcy5fZW1pdEFsbCgpO1xuICAgICAgfSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBTd2FsbG93IGVycm9ycyB0byBhdm9pZCBicmVha2luZyB0aGUgcmVhY3RpdmUgZ3JhcGg7IGNvbnNpZGVyIHN1cmZhY2luZyB2aWEgb3V0cHV0IGV2ZW50cyBpZiBuZWVkZWRcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9lbWl0QWxsKCkge1xuICAgIHRoaXMucnJ1bGVDaGFuZ2UuZW1pdCh0aGlzLnJydWxlKCkpO1xuICAgIHRoaXMub3B0aW9uc0NoYW5nZS5lbWl0KHRoaXMub3B0aW9ucygpKTtcbiAgICB0aGlzLnN0cmluZ0NoYW5nZS5lbWl0KHRoaXMuc3RyaW5nKCkpO1xuICAgIHRoaXMudGV4dENoYW5nZS5lbWl0KHRoaXMudGV4dCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2FyZU9wdGlvblZhbHVlc0VxdWFsPFQ+KGE6IFQsIGI6IFQpOiBib29sZWFuIHtcbiAgICBpZiAoYSA9PT0gYikgcmV0dXJuIHRydWU7XG4gICAgaWYgKGEgPT0gbnVsbCB8fCBiID09IG51bGwpIHJldHVybiBhID09PSBiO1xuICAgIC8vIENvbXBhcmUgRGF0ZVxuICAgIGlmIChhIGluc3RhbmNlb2YgRGF0ZSAmJiBiIGluc3RhbmNlb2YgRGF0ZSkgcmV0dXJuIGEuZ2V0VGltZSgpID09PSBiLmdldFRpbWUoKTtcbiAgICAvLyBDb21wYXJlIGFycmF5cyBvZiBwcmltaXRpdmVzXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoYSkgJiYgQXJyYXkuaXNBcnJheShiKSkge1xuICAgICAgaWYgKGEubGVuZ3RoICE9PSBiLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChhW2ldICE9PSBiW2ldKSByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xlYXJPcHRpb25zKG9wdGlvbnM6IEFYUk9wdGlvbnNUeXBlLCBydWxlOiBzdHJpbmcpOiBBWFJPcHRpb25zVHlwZSB7XG4gICAgY29uc3QgdXBwZXJDYXNlUnVsZSA9IHJ1bGUudG9VcHBlckNhc2UoKTtcbiAgICBpZiAoIXVwcGVyQ2FzZVJ1bGUuaW5jbHVkZXMoJ0RUU1RBUlQnKSkge1xuICAgICAgb3B0aW9ucy5kdHN0YXJ0ID0gKHRoaXMub3B0aW9ucygpLmR0c3RhcnQgYXMgRGF0ZSB8IG51bGwpID8/IG5ldyBEYXRlKCk7XG4gICAgfVxuICAgIGlmICghdXBwZXJDYXNlUnVsZS5pbmNsdWRlcygnQllIT1VSJykpIHtcbiAgICAgIG9wdGlvbnMuYnlob3VyID0gW107XG4gICAgfVxuICAgIGlmICghdXBwZXJDYXNlUnVsZS5pbmNsdWRlcygnQllNSU5VVEUnKSkge1xuICAgICAgb3B0aW9ucy5ieW1pbnV0ZSA9IFtdO1xuICAgIH1cbiAgICBpZiAoIXVwcGVyQ2FzZVJ1bGUuaW5jbHVkZXMoJ0JZU0VDT05EJykpIHtcbiAgICAgIG9wdGlvbnMuYnlzZWNvbmQgPSBbXTtcbiAgICB9XG4gICAgaWYgKCF1cHBlckNhc2VSdWxlLmluY2x1ZGVzKCdCWU1PTlRIJykpIHtcbiAgICAgIG9wdGlvbnMuYnltb250aCA9IFtdO1xuICAgIH1cbiAgICBpZiAoIXVwcGVyQ2FzZVJ1bGUuaW5jbHVkZXMoJ0JZTU9OVEhEQVknKSkge1xuICAgICAgb3B0aW9ucy5ieW1vbnRoZGF5ID0gW107XG4gICAgfVxuICAgIGlmICghdXBwZXJDYXNlUnVsZS5pbmNsdWRlcygnQllXRUVLREFZJykpIHtcbiAgICAgIG9wdGlvbnMuYnl3ZWVrZGF5ID0gW107XG4gICAgfVxuICAgIGlmICghdXBwZXJDYXNlUnVsZS5pbmNsdWRlcygnVFpJRCcpKSB7XG4gICAgICBjb25zdCBjdXJyZW50VHogPSB0aGlzLm9wdGlvbnMoKS50emlkIGFzIHN0cmluZyB8IG51bGw7XG4gICAgICBjb25zdCB1c2VyVGltZVpvbmUgPSBJbnRsPy5EYXRlVGltZUZvcm1hdD8uKCkucmVzb2x2ZWRPcHRpb25zPy4oKS50aW1lWm9uZTtcbiAgICAgIG9wdGlvbnMudHppZCA9IGN1cnJlbnRUeiA/PyB1c2VyVGltZVpvbmUgPz8gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyBhIHNpbmdsZSBvcHRpb24gYW5kIHJlY29tcHV0ZXMgdGhlIHJ1bGUuXG4gICAqIEBwYXJhbSBrZXkgVGhlIG9wdGlvbiBrZXkgdG8gdXBkYXRlXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgbmV3IHZhbHVlIGZvciB0aGUgb3B0aW9uXG4gICAqL1xuICBhc3luYyB1cGRhdGVPcHRpb248SyBleHRlbmRzIGtleW9mIEFYUk9wdGlvbnNUeXBlPihrZXk6IEssIHZhbHVlOiBBWFJPcHRpb25zVHlwZVtLXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLm9wdGlvbnMoKVtrZXldIGFzIEFYUk9wdGlvbnNUeXBlW0tdO1xuICAgIGlmICh0aGlzLl9hcmVPcHRpb25WYWx1ZXNFcXVhbChjdXJyZW50IGFzIHVua25vd24gYXMgYW55LCB2YWx1ZSBhcyB1bmtub3duIGFzIGFueSkpIHJldHVybjtcbiAgICB0aGlzLm9wdGlvbnMudXBkYXRlKChvcHRzKSA9PiAoeyAuLi5vcHRzLCBba2V5XTogdmFsdWUgfSkpO1xuICAgIGNvbnN0IG5ld1JydWxlID0gYXdhaXQgdGhpcy5ycnVsZVNlcnZpY2UucnJ1bGVGcm9tT3B0aW9ucyh0aGlzLm9wdGlvbnMoKSk7XG4gICAgdGhpcy5ycnVsZS5zZXQobmV3UnJ1bGUpO1xuXG4gICAgdGhpcy5faXNVcGRhdGluZyA9IHRydWU7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnZhbHVlKCkgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLnZhbHVlLnNldChuZXdScnVsZS50b1N0cmluZygpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZS5zZXQodGhpcy5vcHRpb25zKCkpO1xuICAgIH1cbiAgICB0aGlzLl9lbWl0QWxsKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXRzIG9wdGlvbnMgdG8gZGVmYXVsdHMgYW5kIHJlY29tcHV0ZXMgdGhlIHJ1bGUuXG4gICAqL1xuICBhc3luYyByZXNldE9wdGlvbnMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5vcHRpb25zLnNldCh7IC4uLmRlZmF1bHRPcHRpb25zIH0pO1xuICAgIGNvbnN0IG5ld1JydWxlID0gYXdhaXQgdGhpcy5ycnVsZVNlcnZpY2UucnJ1bGVGcm9tT3B0aW9ucyh0aGlzLm9wdGlvbnMoKSk7XG4gICAgdGhpcy5ycnVsZS5zZXQobmV3UnJ1bGUpO1xuXG4gICAgdGhpcy5faXNVcGRhdGluZyA9IHRydWU7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnZhbHVlKCkgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLnZhbHVlLnNldChuZXdScnVsZS50b1N0cmluZygpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZS5zZXQodGhpcy5vcHRpb25zKCkpO1xuICAgIH1cbiAgICB0aGlzLl9lbWl0QWxsKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1ycnVsZS1jb250YWluZXIgYXgtZ3JpZCBheC1ncmlkLWNvbHMtMSBheC1nYXAtNCBtZDpheC1ncmlkLWNvbHMtMiBsZzpheC1ncmlkLWNvbHMtM1wiPlxuICA8IS0tIEdlbmVyYWwgLS0+XG4gIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC00IGF4LXJvdW5kZWQtbWQgYXgtYm9yZGVyIGF4LXAtNFwiPlxuICAgIDxkaXYgY2xhc3M9XCJheC10ZXh0LWxnIGF4LWZvbnQtc2VtaWJvbGRcIj57eyAncnJ1bGUuZ2VuZXJhbCcgfCB0cmFuc2xhdGU6IHsgc2NvcGU6ICdjb21tb24nIH0gfCBhc3luYyB9fTwvZGl2PlxuXG4gICAgPGRpdj5cbiAgICAgIDxheC1sYWJlbD57eyAncnJ1bGUuZnJlcScgfCB0cmFuc2xhdGU6IHsgc2NvcGU6ICdjb21tb24nIH0gfCBhc3luYyB9fTwvYXgtbGFiZWw+XG4gICAgICA8YXgtc2VsZWN0aW9uLWxpc3RcbiAgICAgICAgdmFsdWVGaWVsZD1cInZhbHVlXCJcbiAgICAgICAgdGV4dEZpZWxkPVwidGV4dFwiXG4gICAgICAgIG5hbWU9XCJmcmVxXCJcbiAgICAgICAgW2l0ZW1zXT1cImZyZXFzXCJcbiAgICAgICAgW25nTW9kZWxdPVwib3B0aW9ucygpLmZyZXFcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVPcHRpb24oJ2ZyZXEnLCAkZXZlbnQpXCJcbiAgICAgID48L2F4LXNlbGVjdGlvbi1saXN0PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdj5cbiAgICAgIDxheC1sYWJlbD57eyAncnJ1bGUuZHRzdGFydCcgfCB0cmFuc2xhdGU6IHsgc2NvcGU6ICdjb21tb24nIH0gfCBhc3luYyB9fTwvYXgtbGFiZWw+XG4gICAgICA8YXgtZGF0ZXRpbWUtYm94XG4gICAgICAgIG5hbWU9XCJkdHN0YXJ0XCJcbiAgICAgICAgW25nTW9kZWxdPVwib3B0aW9ucygpLmR0c3RhcnRcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVPcHRpb24oJ2R0c3RhcnQnLCAkZXZlbnQpXCJcbiAgICAgID48L2F4LWRhdGV0aW1lLWJveD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXY+XG4gICAgICA8YXgtbGFiZWw+e3sgJ3JydWxlLnVudGlsJyB8IHRyYW5zbGF0ZTogeyBzY29wZTogJ2NvbW1vbicgfSB8IGFzeW5jIH19PC9heC1sYWJlbD5cbiAgICAgIDxheC1kYXRldGltZS1ib3hcbiAgICAgICAgbmFtZT1cInVudGlsXCJcbiAgICAgICAgW25nTW9kZWxdPVwib3B0aW9ucygpLnVudGlsXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlT3B0aW9uKCd1bnRpbCcsICRldmVudClcIlxuICAgICAgPjwvYXgtZGF0ZXRpbWUtYm94PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdj5cbiAgICAgIDxheC1sYWJlbD57eyAncnJ1bGUuY291bnQnIHwgdHJhbnNsYXRlOiB7IHNjb3BlOiAnY29tbW9uJyB9IHwgYXN5bmMgfX08L2F4LWxhYmVsPlxuICAgICAgPGF4LW51bWJlci1ib3hcbiAgICAgICAgbmFtZT1cImNvdW50XCJcbiAgICAgICAgW25nTW9kZWxdPVwib3B0aW9ucygpLmNvdW50XCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlT3B0aW9uKCdjb3VudCcsICRldmVudClcIlxuICAgICAgICBbbWluVmFsdWVdPVwiMVwiXG4gICAgICA+PC9heC1udW1iZXItYm94PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdj5cbiAgICAgIDxheC1sYWJlbD57eyAncnJ1bGUuaW50ZXJ2YWwnIHwgdHJhbnNsYXRlOiB7IHNjb3BlOiAnY29tbW9uJyB9IHwgYXN5bmMgfX08L2F4LWxhYmVsPlxuICAgICAgPGF4LW51bWJlci1ib3hcbiAgICAgICAgbmFtZT1cImludGVydmFsXCJcbiAgICAgICAgW25nTW9kZWxdPVwib3B0aW9ucygpLmludGVydmFsXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlT3B0aW9uKCdpbnRlcnZhbCcsICRldmVudClcIlxuICAgICAgICBbbWluVmFsdWVdPVwiMVwiXG4gICAgICA+PC9heC1udW1iZXItYm94PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdj5cbiAgICAgIDxheC1sYWJlbD57eyAncnJ1bGUudHppZCcgfCB0cmFuc2xhdGU6IHsgc2NvcGU6ICdjb21tb24nIH0gfCBhc3luYyB9fTwvYXgtbGFiZWw+XG4gICAgICA8YXgtc2VsZWN0LWJveFxuICAgICAgICBuYW1lPVwidHppZFwiXG4gICAgICAgIFtkYXRhU291cmNlXT1cInRpbWV6b25lc1wiXG4gICAgICAgIFtuZ01vZGVsXT1cIm9wdGlvbnMoKS50emlkXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlT3B0aW9uKCd0emlkJywgJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxheC1zZWFyY2gtYm94PjwvYXgtc2VhcmNoLWJveD5cbiAgICAgIDwvYXgtc2VsZWN0LWJveD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBCeSBXZWVrZGF5IC0tPlxuICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtNCBheC1yb3VuZGVkLW1kIGF4LWJvcmRlciBheC1wLTRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtdGV4dC1sZyBheC1mb250LXNlbWlib2xkXCI+e3sgJ3JydWxlLmJ5LXdlZWtkYXknIHwgdHJhbnNsYXRlOiB7IHNjb3BlOiAnY29tbW9uJyB9IHwgYXN5bmMgfX08L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGF4LWxhYmVsPnt7ICdycnVsZS53a3N0JyB8IHRyYW5zbGF0ZTogeyBzY29wZTogJ2NvbW1vbicgfSB8IGFzeW5jIH19PC9heC1sYWJlbD5cbiAgICAgIDxheC1zZWxlY3Rpb24tbGlzdFxuICAgICAgICB2YWx1ZUZpZWxkPVwidmFsdWVcIlxuICAgICAgICB0ZXh0RmllbGQ9XCJ0ZXh0XCJcbiAgICAgICAgbmFtZT1cIndrc3RcIlxuICAgICAgICBbaXRlbXNdPVwid2Vla2RheXNcIlxuICAgICAgICBbbmdNb2RlbF09XCJvcHRpb25zKCkud2tzdFwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZU9wdGlvbignd2tzdCcsICRldmVudClcIlxuICAgICAgPjwvYXgtc2VsZWN0aW9uLWxpc3Q+XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgIDxheC1sYWJlbD57eyAncnJ1bGUuYnktd2Vla2RheS1ydWxlJyB8IHRyYW5zbGF0ZTogeyBzY29wZTogJ2NvbW1vbicgfSB8IGFzeW5jIH19PC9heC1sYWJlbD5cbiAgICAgIDxheC1zZWxlY3Rpb24tbGlzdFxuICAgICAgICB2YWx1ZUZpZWxkPVwidmFsdWVcIlxuICAgICAgICB0ZXh0RmllbGQ9XCJ0ZXh0XCJcbiAgICAgICAgbmFtZT1cImJ5d2Vla2RheVwiXG4gICAgICAgIFtpdGVtc109XCJ3ZWVrZGF5c1wiXG4gICAgICAgIG11bHRpcGxlPVwidHJ1ZVwiXG4gICAgICAgIFtuZ01vZGVsXT1cIm9wdGlvbnMoKS5ieXdlZWtkYXlcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVPcHRpb24oJ2J5d2Vla2RheScsICRldmVudClcIlxuICAgICAgPjwvYXgtc2VsZWN0aW9uLWxpc3Q+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gQnkgTW9udGggLS0+XG4gIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC00IGF4LXJvdW5kZWQtbWQgYXgtYm9yZGVyIGF4LXAtNFwiPlxuICAgIDxkaXYgY2xhc3M9XCJheC10ZXh0LWxnIGF4LWZvbnQtc2VtaWJvbGRcIj57eyAncnJ1bGUuYnktbW9udGgnIHwgdHJhbnNsYXRlOiB7IHNjb3BlOiAnY29tbW9uJyB9IHwgYXN5bmMgfX08L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGF4LWxhYmVsPnt7ICdycnVsZS5ieS1tb250aC1ydWxlJyB8IHRyYW5zbGF0ZTogeyBzY29wZTogJ2NvbW1vbicgfSB8IGFzeW5jIH19PC9heC1sYWJlbD5cbiAgICAgIDxheC1zZWxlY3Rpb24tbGlzdFxuICAgICAgICB2YWx1ZUZpZWxkPVwidmFsdWVcIlxuICAgICAgICB0ZXh0RmllbGQ9XCJ0ZXh0XCJcbiAgICAgICAgbmFtZT1cImJ5bW9udGhcIlxuICAgICAgICBbaXRlbXNdPVwibW9udGhzXCJcbiAgICAgICAgbXVsdGlwbGU9XCJ0cnVlXCJcbiAgICAgICAgW25nTW9kZWxdPVwib3B0aW9ucygpLmJ5bW9udGhcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVPcHRpb24oJ2J5bW9udGgnLCAkZXZlbnQpXCJcbiAgICAgID48L2F4LXNlbGVjdGlvbi1saXN0PlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8YXgtbGFiZWw+e3sgJ3JydWxlLmJ5LW1vbnRoLWRheScgfCB0cmFuc2xhdGU6IHsgc2NvcGU6ICdjb21tb24nIH0gfCBhc3luYyB9fTwvYXgtbGFiZWw+XG4gICAgICA8YXgtc2VsZWN0LWJveFxuICAgICAgICBuYW1lPVwiYnltb250aGRheVwiXG4gICAgICAgIFtkYXRhU291cmNlXT1cIm1vbnRoZGF5c1wiXG4gICAgICAgIG11bHRpcGxlPVwidHJ1ZVwiXG4gICAgICAgIFtuZ01vZGVsXT1cIm9wdGlvbnMoKS5ieW1vbnRoZGF5XCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlT3B0aW9uKCdieW1vbnRoZGF5JywgJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICA8L2F4LXNlbGVjdC1ib3g+XG4gICAgPC9kaXY+XG4gICAgPCEtLSA8ZGl2PlxuICAgICAgPGF4LWxhYmVsPkJ5IE5lZ2F0aXZlIE1vbnRoIERheSAoQllOTU9OVEhEQVkpPC9heC1sYWJlbD5cbiAgICAgIDxheC1zZWxlY3QtYm94XG4gICAgICAgIG5hbWU9XCJieW5tb250aGRheVwiXG4gICAgICAgIFtkYXRhU291cmNlXT1cIm5tb250aGRheXNcIlxuICAgICAgICBtdWx0aXBsZT1cInRydWVcIlxuICAgICAgICBbbmdNb2RlbF09XCJvcHRpb25zKCkuYnlubW9udGhkYXlcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVPcHRpb24oJ2J5bm1vbnRoZGF5JywgJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICA8L2F4LXNlbGVjdC1ib3g+XG4gICAgPC9kaXY+IC0tPlxuICA8L2Rpdj5cblxuICA8IS0tIEJ5IFllYXIgLS0+XG4gIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC00IGF4LXJvdW5kZWQtbWQgYXgtYm9yZGVyIGF4LXAtNFwiPlxuICAgIDxkaXYgY2xhc3M9XCJheC10ZXh0LWxnIGF4LWZvbnQtc2VtaWJvbGRcIj57eyAncnJ1bGUuYnkteWVhcicgfCB0cmFuc2xhdGU6IHsgc2NvcGU6ICdjb21tb24nIH0gfCBhc3luYyB9fTwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8YXgtbGFiZWw+e3sgJ3JydWxlLmJ5LXllYXItZGF5JyB8IHRyYW5zbGF0ZTogeyBzY29wZTogJ2NvbW1vbicgfSB8IGFzeW5jIH19PC9heC1sYWJlbD5cbiAgICAgIDxheC1zZWxlY3QtYm94XG4gICAgICAgIG5hbWU9XCJieXllYXJkYXlcIlxuICAgICAgICBbZGF0YVNvdXJjZV09XCJ5ZWFyZGF5c1wiXG4gICAgICAgIG11bHRpcGxlPVwidHJ1ZVwiXG4gICAgICAgIFtuZ01vZGVsXT1cIm9wdGlvbnMoKS5ieXllYXJkYXlcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVPcHRpb24oJ2J5eWVhcmRheScsICRldmVudClcIlxuICAgICAgPlxuICAgICAgPC9heC1zZWxlY3QtYm94PlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8YXgtbGFiZWw+e3sgJ3JydWxlLmJ5LXdlZWstbm8nIHwgdHJhbnNsYXRlOiB7IHNjb3BlOiAnY29tbW9uJyB9IHwgYXN5bmMgfX08L2F4LWxhYmVsPlxuICAgICAgPGF4LXNlbGVjdC1ib3hcbiAgICAgICAgbmFtZT1cImJ5d2Vla25vXCJcbiAgICAgICAgW2RhdGFTb3VyY2VdPVwid2Vla25vc1wiXG4gICAgICAgIG11bHRpcGxlPVwidHJ1ZVwiXG4gICAgICAgIFtuZ01vZGVsXT1cIm9wdGlvbnMoKS5ieXdlZWtub1wiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZU9wdGlvbignYnl3ZWVrbm8nLCAkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgIDwvYXgtc2VsZWN0LWJveD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBCeSBUaW1lIC0tPlxuICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtNCBheC1yb3VuZGVkLW1kIGF4LWJvcmRlciBheC1wLTRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtdGV4dC1sZyBheC1mb250LXNlbWlib2xkXCI+e3sgJ3JydWxlLmJ5LXRpbWUnIHwgdHJhbnNsYXRlOiB7IHNjb3BlOiAnY29tbW9uJyB9IHwgYXN5bmMgfX08L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGF4LWxhYmVsPnt7ICdycnVsZS5ieS1ob3VyJyB8IHRyYW5zbGF0ZTogeyBzY29wZTogJ2NvbW1vbicgfSB8IGFzeW5jIH19PC9heC1sYWJlbD5cbiAgICAgIDxheC1zZWxlY3QtYm94XG4gICAgICAgIG5hbWU9XCJieWhvdXJcIlxuICAgICAgICBbZGF0YVNvdXJjZV09XCJob3Vyc1wiXG4gICAgICAgIG11bHRpcGxlPVwidHJ1ZVwiXG4gICAgICAgIFtuZ01vZGVsXT1cIm9wdGlvbnMoKS5ieWhvdXJcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVPcHRpb24oJ2J5aG91cicsICRldmVudClcIlxuICAgICAgPlxuICAgICAgPC9heC1zZWxlY3QtYm94PlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8YXgtbGFiZWw+e3sgJ3JydWxlLmJ5LW1pbnV0ZScgfCB0cmFuc2xhdGU6IHsgc2NvcGU6ICdjb21tb24nIH0gfCBhc3luYyB9fTwvYXgtbGFiZWw+XG4gICAgICA8YXgtc2VsZWN0LWJveFxuICAgICAgICBuYW1lPVwiYnltaW51dGVcIlxuICAgICAgICBbZGF0YVNvdXJjZV09XCJtaW51dGVzXCJcbiAgICAgICAgbXVsdGlwbGU9XCJ0cnVlXCJcbiAgICAgICAgW25nTW9kZWxdPVwib3B0aW9ucygpLmJ5bWludXRlXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlT3B0aW9uKCdieW1pbnV0ZScsICRldmVudClcIlxuICAgICAgPlxuICAgICAgPC9heC1zZWxlY3QtYm94PlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8YXgtbGFiZWw+e3sgJ3JydWxlLmJ5LXNlY29uZCcgfCB0cmFuc2xhdGU6IHsgc2NvcGU6ICdjb21tb24nIH0gfCBhc3luYyB9fTwvYXgtbGFiZWw+XG4gICAgICA8YXgtc2VsZWN0LWJveFxuICAgICAgICBuYW1lPVwiYnlzZWNvbmRcIlxuICAgICAgICBbZGF0YVNvdXJjZV09XCJzZWNvbmRzXCJcbiAgICAgICAgbXVsdGlwbGU9XCJ0cnVlXCJcbiAgICAgICAgW25nTW9kZWxdPVwib3B0aW9ucygpLmJ5c2Vjb25kXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlT3B0aW9uKCdieXNlY29uZCcsICRldmVudClcIlxuICAgICAgPlxuICAgICAgPC9heC1zZWxlY3QtYm94PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIEFkdmFuY2VkIC0tPlxuICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtNCBheC1yb3VuZGVkLW1kIGF4LWJvcmRlciBheC1wLTRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtdGV4dC1sZyBheC1mb250LXNlbWlib2xkXCI+e3sgJ3JydWxlLmFkdmFuY2VkJyB8IHRyYW5zbGF0ZTogeyBzY29wZTogJ2NvbW1vbicgfSB8IGFzeW5jIH19PC9kaXY+XG4gICAgPGRpdj5cbiAgICAgIDxheC1sYWJlbD57eyAncnJ1bGUuYnktc2V0LXBvcycgfCB0cmFuc2xhdGU6IHsgc2NvcGU6ICdjb21tb24nIH0gfCBhc3luYyB9fTwvYXgtbGFiZWw+XG4gICAgICA8YXgtc2VsZWN0LWJveFxuICAgICAgICBuYW1lPVwiYnlzZXRwb3NcIlxuICAgICAgICBbZGF0YVNvdXJjZV09XCJzZXRwb3NcIlxuICAgICAgICBtdWx0aXBsZT1cInRydWVcIlxuICAgICAgICBbbmdNb2RlbF09XCJvcHRpb25zKCkuYnlzZXRwb3NcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVPcHRpb24oJ2J5c2V0cG9zJywgJGV2ZW50KVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCJcbiAgICAgID5cbiAgICAgIDwvYXgtc2VsZWN0LWJveD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtanVzdGlmeS1lbmQgYXgtcHktNFwiPlxuICA8YXgtYnV0dG9uIFt0ZXh0XT1cIidycnVsZS5yZXNldCcgfCB0cmFuc2xhdGU6IHsgc2NvcGU6ICdjb21tb24nIH0gfCBhc3luY1wiIChjbGljayk9XCJyZXNldE9wdGlvbnMoKVwiPjwvYXgtYnV0dG9uPlxuPC9kaXY+XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtcnJ1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3JydWxlL3NyYy9hY29yZXgtY29tcG9uZW50cy1ycnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":["i1","i2","i6","i10"],"mappings":"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"}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"acorex-components-rrule.mjs","sources":["../tmp-esm2022/rrule/lib/rrule.service.js","../tmp-esm2022/rrule/lib/rrule-preview.js","../tmp-esm2022/rrule/lib/rrule.const.js","../tmp-esm2022/rrule/lib/rrule.type.js","../tmp-esm2022/rrule/lib/rrule.component.js","../tmp-esm2022/rrule/acorex-components-rrule.js"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Service for working with RRule recurrence patterns.\n * Provides methods to create RRule instances from options or strings,\n * convert between formats, and query occurrences.\n */\nexport class AXRruleService {\n    /**\n     * Creates an RRule instance from options object.\n     * @param options Partial RRule options to create the rule from\n     * @returns Promise resolving to the RRule instance\n     */\n    async rruleFromOptions(options) {\n        // eslint-disable-next-line @nx/enforce-module-boundaries\n        const { RRule } = await import('rrule');\n        return new RRule(options);\n    }\n    /**\n     * Creates an RRule instance from a RRULE string.\n     * @param ruleString Valid RRULE string (e.g., \"RRULE:FREQ=WEEKLY;COUNT=5\")\n     * @returns Promise resolving to the RRule instance\n     */\n    async rruleFromString(ruleString) {\n        // eslint-disable-next-line @nx/enforce-module-boundaries\n        const { RRule } = await import('rrule');\n        return RRule.fromString(ruleString);\n    }\n    /**\n     * Creates an RRule instance from human-readable text.\n     * @param ruleText Human-readable text describing the recurrence (e.g., \"every Monday for 5 weeks\")\n     * @returns Promise resolving to the RRule instance\n     */\n    async rruleFromText(ruleText) {\n        // eslint-disable-next-line @nx/enforce-module-boundaries\n        const { RRule } = await import('rrule');\n        return RRule.fromText(ruleText);\n    }\n    /**\n     * Extracts options from an RRule instance.\n     * @param rule RRule instance to extract options from\n     * @returns Parsed options with all required fields\n     */\n    rruleToOptions(rule) {\n        return rule.options;\n    }\n    /**\n     * Converts an RRule instance to RRULE string format.\n     * @param rule RRule instance to convert\n     * @returns RRULE string representation\n     */\n    rruleToString(rule) {\n        return rule.toString();\n    }\n    /**\n     * Converts an RRule instance to human-readable text.\n     * @param rule RRule instance to convert\n     * @returns Human-readable text description\n     */\n    rruleToText(rule) {\n        return rule.toText();\n    }\n    /**\n     * Gets all occurrences of the rule up to a limit.\n     * @param rule RRule instance to query\n     * @param limit Maximum number of occurrences to return (default: 500)\n     * @returns Array of occurrence dates\n     */\n    rruleGetAll(rule, limit = 500) {\n        return rule.all((d, l) => l < limit);\n    }\n    /**\n     * Gets occurrences between two dates.\n     * @param rule RRule instance to query\n     * @param after Start date (exclusive by default)\n     * @param before End date (exclusive by default)\n     * @param inclusive Whether to include the boundary dates\n     * @returns Array of occurrence dates between the specified dates\n     */\n    rruleGetBetween(rule, after, before, inclusive = false) {\n        return rule.between(after, before, inclusive);\n    }\n    /**\n     * Gets the last occurrence before the specified date.\n     * @param rule RRule instance to query\n     * @param date Date to search before\n     * @param inclusive Whether to include the specified date\n     * @returns Last occurrence before the date, or null if none found\n     */\n    rruleGetBefore(rule, date, inclusive = false) {\n        return rule.before(date, inclusive);\n    }\n    /**\n     * Gets the first occurrence after the specified date.\n     * @param rule RRule instance to query\n     * @param date Date to search after\n     * @param inclusive Whether to include the specified date\n     * @returns First occurrence after the date, or null if none found\n     */\n    rruleGetAfter(rule, date, inclusive = false) {\n        return rule.after(date, inclusive);\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXRruleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXRruleService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXRruleService, decorators: [{\n            type: Injectable,\n            args: [{\n                    providedIn: 'root',\n                }]\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnJ1bGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvcnJ1bGUvc3JjL2xpYi9ycnVsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDOzs7O0dBSUc7QUFJSCxNQUFNLE9BQU8sY0FBYztJQUN6Qjs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE9BQWdDO1FBQ3JELHlEQUF5RDtRQUN6RCxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEMsT0FBTyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxlQUFlLENBQUMsVUFBa0I7UUFDdEMseURBQXlEO1FBQ3pELE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QyxPQUFPLEtBQUssQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsYUFBYSxDQUFDLFFBQWdCO1FBQ2xDLHlEQUF5RDtRQUN6RCxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEMsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsY0FBYyxDQUFDLElBQWlCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxJQUFpQjtRQUM3QixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxJQUFpQjtRQUMzQixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLENBQUMsSUFBaUIsRUFBRSxLQUFLLEdBQUcsR0FBRztRQUN4QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxlQUFlLENBQUMsSUFBaUIsRUFBRSxLQUFXLEVBQUUsTUFBWSxFQUFFLFNBQVMsR0FBRyxLQUFLO1FBQzdFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxjQUFjLENBQUMsSUFBaUIsRUFBRSxJQUFVLEVBQUUsU0FBUyxHQUFHLEtBQUs7UUFDN0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsYUFBYSxDQUFDLElBQWlCLEVBQUUsSUFBVSxFQUFFLFNBQVMsR0FBRyxLQUFLO1FBQzVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDckMsQ0FBQzs4R0F2R1UsY0FBYztrSEFBZCxjQUFjLGNBRmIsTUFBTTs7MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBhcnNlZE9wdGlvbnNUeXBlLCBBWFJPcHRpb25zVHlwZSwgQVhSUnVsZVR5cGUgfSBmcm9tICcuL3JydWxlLnR5cGUnO1xuXG4vKipcbiAqIFNlcnZpY2UgZm9yIHdvcmtpbmcgd2l0aCBSUnVsZSByZWN1cnJlbmNlIHBhdHRlcm5zLlxuICogUHJvdmlkZXMgbWV0aG9kcyB0byBjcmVhdGUgUlJ1bGUgaW5zdGFuY2VzIGZyb20gb3B0aW9ucyBvciBzdHJpbmdzLFxuICogY29udmVydCBiZXR3ZWVuIGZvcm1hdHMsIGFuZCBxdWVyeSBvY2N1cnJlbmNlcy5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFYUnJ1bGVTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gUlJ1bGUgaW5zdGFuY2UgZnJvbSBvcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIG9wdGlvbnMgUGFydGlhbCBSUnVsZSBvcHRpb25zIHRvIGNyZWF0ZSB0aGUgcnVsZSBmcm9tXG4gICAqIEByZXR1cm5zIFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBSUnVsZSBpbnN0YW5jZVxuICAgKi9cbiAgYXN5bmMgcnJ1bGVGcm9tT3B0aW9ucyhvcHRpb25zOiBQYXJ0aWFsPEFYUk9wdGlvbnNUeXBlPik6IFByb21pc2U8QVhSUnVsZVR5cGU+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQG54L2VuZm9yY2UtbW9kdWxlLWJvdW5kYXJpZXNcbiAgICBjb25zdCB7IFJSdWxlIH0gPSBhd2FpdCBpbXBvcnQoJ3JydWxlJyk7XG4gICAgcmV0dXJuIG5ldyBSUnVsZShvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIFJSdWxlIGluc3RhbmNlIGZyb20gYSBSUlVMRSBzdHJpbmcuXG4gICAqIEBwYXJhbSBydWxlU3RyaW5nIFZhbGlkIFJSVUxFIHN0cmluZyAoZS5nLiwgXCJSUlVMRTpGUkVRPVdFRUtMWTtDT1VOVD01XCIpXG4gICAqIEByZXR1cm5zIFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBSUnVsZSBpbnN0YW5jZVxuICAgKi9cbiAgYXN5bmMgcnJ1bGVGcm9tU3RyaW5nKHJ1bGVTdHJpbmc6IHN0cmluZyk6IFByb21pc2U8QVhSUnVsZVR5cGU+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQG54L2VuZm9yY2UtbW9kdWxlLWJvdW5kYXJpZXNcbiAgICBjb25zdCB7IFJSdWxlIH0gPSBhd2FpdCBpbXBvcnQoJ3JydWxlJyk7XG4gICAgcmV0dXJuIFJSdWxlLmZyb21TdHJpbmcocnVsZVN0cmluZyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBSUnVsZSBpbnN0YW5jZSBmcm9tIGh1bWFuLXJlYWRhYmxlIHRleHQuXG4gICAqIEBwYXJhbSBydWxlVGV4dCBIdW1hbi1yZWFkYWJsZSB0ZXh0IGRlc2NyaWJpbmcgdGhlIHJlY3VycmVuY2UgKGUuZy4sIFwiZXZlcnkgTW9uZGF5IGZvciA1IHdlZWtzXCIpXG4gICAqIEByZXR1cm5zIFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBSUnVsZSBpbnN0YW5jZVxuICAgKi9cbiAgYXN5bmMgcnJ1bGVGcm9tVGV4dChydWxlVGV4dDogc3RyaW5nKTogUHJvbWlzZTxBWFJSdWxlVHlwZT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAbngvZW5mb3JjZS1tb2R1bGUtYm91bmRhcmllc1xuICAgIGNvbnN0IHsgUlJ1bGUgfSA9IGF3YWl0IGltcG9ydCgncnJ1bGUnKTtcbiAgICByZXR1cm4gUlJ1bGUuZnJvbVRleHQocnVsZVRleHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3RzIG9wdGlvbnMgZnJvbSBhbiBSUnVsZSBpbnN0YW5jZS5cbiAgICogQHBhcmFtIHJ1bGUgUlJ1bGUgaW5zdGFuY2UgdG8gZXh0cmFjdCBvcHRpb25zIGZyb21cbiAgICogQHJldHVybnMgUGFyc2VkIG9wdGlvbnMgd2l0aCBhbGwgcmVxdWlyZWQgZmllbGRzXG4gICAqL1xuICBycnVsZVRvT3B0aW9ucyhydWxlOiBBWFJSdWxlVHlwZSk6IEFYUGFyc2VkT3B0aW9uc1R5cGUge1xuICAgIHJldHVybiBydWxlLm9wdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYW4gUlJ1bGUgaW5zdGFuY2UgdG8gUlJVTEUgc3RyaW5nIGZvcm1hdC5cbiAgICogQHBhcmFtIHJ1bGUgUlJ1bGUgaW5zdGFuY2UgdG8gY29udmVydFxuICAgKiBAcmV0dXJucyBSUlVMRSBzdHJpbmcgcmVwcmVzZW50YXRpb25cbiAgICovXG4gIHJydWxlVG9TdHJpbmcocnVsZTogQVhSUnVsZVR5cGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBydWxlLnRvU3RyaW5nKCk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYW4gUlJ1bGUgaW5zdGFuY2UgdG8gaHVtYW4tcmVhZGFibGUgdGV4dC5cbiAgICogQHBhcmFtIHJ1bGUgUlJ1bGUgaW5zdGFuY2UgdG8gY29udmVydFxuICAgKiBAcmV0dXJucyBIdW1hbi1yZWFkYWJsZSB0ZXh0IGRlc2NyaXB0aW9uXG4gICAqL1xuICBycnVsZVRvVGV4dChydWxlOiBBWFJSdWxlVHlwZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJ1bGUudG9UZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhbGwgb2NjdXJyZW5jZXMgb2YgdGhlIHJ1bGUgdXAgdG8gYSBsaW1pdC5cbiAgICogQHBhcmFtIHJ1bGUgUlJ1bGUgaW5zdGFuY2UgdG8gcXVlcnlcbiAgICogQHBhcmFtIGxpbWl0IE1heGltdW0gbnVtYmVyIG9mIG9jY3VycmVuY2VzIHRvIHJldHVybiAoZGVmYXVsdDogNTAwKVxuICAgKiBAcmV0dXJucyBBcnJheSBvZiBvY2N1cnJlbmNlIGRhdGVzXG4gICAqL1xuICBycnVsZUdldEFsbChydWxlOiBBWFJSdWxlVHlwZSwgbGltaXQgPSA1MDApOiBEYXRlW10ge1xuICAgIHJldHVybiBydWxlLmFsbCgoZCwgbCkgPT4gbCA8IGxpbWl0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIG9jY3VycmVuY2VzIGJldHdlZW4gdHdvIGRhdGVzLlxuICAgKiBAcGFyYW0gcnVsZSBSUnVsZSBpbnN0YW5jZSB0byBxdWVyeVxuICAgKiBAcGFyYW0gYWZ0ZXIgU3RhcnQgZGF0ZSAoZXhjbHVzaXZlIGJ5IGRlZmF1bHQpXG4gICAqIEBwYXJhbSBiZWZvcmUgRW5kIGRhdGUgKGV4Y2x1c2l2ZSBieSBkZWZhdWx0KVxuICAgKiBAcGFyYW0gaW5jbHVzaXZlIFdoZXRoZXIgdG8gaW5jbHVkZSB0aGUgYm91bmRhcnkgZGF0ZXNcbiAgICogQHJldHVybnMgQXJyYXkgb2Ygb2NjdXJyZW5jZSBkYXRlcyBiZXR3ZWVuIHRoZSBzcGVjaWZpZWQgZGF0ZXNcbiAgICovXG4gIHJydWxlR2V0QmV0d2VlbihydWxlOiBBWFJSdWxlVHlwZSwgYWZ0ZXI6IERhdGUsIGJlZm9yZTogRGF0ZSwgaW5jbHVzaXZlID0gZmFsc2UpOiBEYXRlW10ge1xuICAgIHJldHVybiBydWxlLmJldHdlZW4oYWZ0ZXIsIGJlZm9yZSwgaW5jbHVzaXZlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBsYXN0IG9jY3VycmVuY2UgYmVmb3JlIHRoZSBzcGVjaWZpZWQgZGF0ZS5cbiAgICogQHBhcmFtIHJ1bGUgUlJ1bGUgaW5zdGFuY2UgdG8gcXVlcnlcbiAgICogQHBhcmFtIGRhdGUgRGF0ZSB0byBzZWFyY2ggYmVmb3JlXG4gICAqIEBwYXJhbSBpbmNsdXNpdmUgV2hldGhlciB0byBpbmNsdWRlIHRoZSBzcGVjaWZpZWQgZGF0ZVxuICAgKiBAcmV0dXJucyBMYXN0IG9jY3VycmVuY2UgYmVmb3JlIHRoZSBkYXRlLCBvciBudWxsIGlmIG5vbmUgZm91bmRcbiAgICovXG4gIHJydWxlR2V0QmVmb3JlKHJ1bGU6IEFYUlJ1bGVUeXBlLCBkYXRlOiBEYXRlLCBpbmNsdXNpdmUgPSBmYWxzZSk6IERhdGUgfCBudWxsIHtcbiAgICByZXR1cm4gcnVsZS5iZWZvcmUoZGF0ZSwgaW5jbHVzaXZlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBmaXJzdCBvY2N1cnJlbmNlIGFmdGVyIHRoZSBzcGVjaWZpZWQgZGF0ZS5cbiAgICogQHBhcmFtIHJ1bGUgUlJ1bGUgaW5zdGFuY2UgdG8gcXVlcnlcbiAgICogQHBhcmFtIGRhdGUgRGF0ZSB0byBzZWFyY2ggYWZ0ZXJcbiAgICogQHBhcmFtIGluY2x1c2l2ZSBXaGV0aGVyIHRvIGluY2x1ZGUgdGhlIHNwZWNpZmllZCBkYXRlXG4gICAqIEByZXR1cm5zIEZpcnN0IG9jY3VycmVuY2UgYWZ0ZXIgdGhlIGRhdGUsIG9yIG51bGwgaWYgbm9uZSBmb3VuZFxuICAgKi9cbiAgcnJ1bGVHZXRBZnRlcihydWxlOiBBWFJSdWxlVHlwZSwgZGF0ZTogRGF0ZSwgaW5jbHVzaXZlID0gZmFsc2UpOiBEYXRlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHJ1bGUuYWZ0ZXIoZGF0ZSwgaW5jbHVzaXZlKTtcbiAgfVxufVxuIl19","import { AXLabelModule } from '@acorex/components/label';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AsyncPipe, DatePipe } from '@angular/common';\nimport { Component, computed, effect, inject, input, signal } from '@angular/core';\nimport { AXRruleService } from './rrule.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/label\";\nimport * as i2 from \"@acorex/core/translation\";\nexport class AXRrulePreviewComponent {\n    constructor() {\n        this.value = input(...(ngDevMode ? [undefined, { debugName: \"value\" }] : []));\n        this.repeat = input(100, ...(ngDevMode ? [{ debugName: \"repeat\" }] : []));\n        this.format = input('yyyy-MM-dd HH:mm:ss', ...(ngDevMode ? [{ debugName: \"format\" }] : []));\n        this.rruleService = inject(AXRruleService);\n        this.rrule = signal(null, ...(ngDevMode ? [{ debugName: \"rrule\" }] : []));\n        this.timeZone = signal(null, ...(ngDevMode ? [{ debugName: \"timeZone\" }] : []));\n        this.text = computed(() => (this.rrule() ? this.rruleService.rruleToText(this.rrule()) : ''), ...(ngDevMode ? [{ debugName: \"text\" }] : []));\n        this.string = computed(() => (this.rrule() ? this.rruleService.rruleToString(this.rrule()) : ''), ...(ngDevMode ? [{ debugName: \"string\" }] : []));\n        this.dates = computed(() => (this.rrule() ? this.rruleService.rruleGetAll(this.rrule(), this.repeat()) : []), ...(ngDevMode ? [{ debugName: \"dates\" }] : []));\n        this.options = computed(() => (this.rrule() ? this.rruleService.rruleToOptions(this.rrule()) : {}), ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n        this.eff = effect(async () => {\n            if (this.value()) {\n                this.rrule.set(await this.rruleService.rruleFromString(this.value()));\n            }\n        }, ...(ngDevMode ? [{ debugName: \"eff\" }] : []));\n    }\n    ngOnInit() {\n        this.timeZone.set(Intl.DateTimeFormat().resolvedOptions().timeZone);\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXRrulePreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.6\", type: AXRrulePreviewComponent, isStandalone: true, selector: \"ax-rrule-preview\", inputs: { value: { classPropertyName: \"value\", publicName: \"value\", isSignal: true, isRequired: false, transformFunction: null }, repeat: { classPropertyName: \"repeat\", publicName: \"repeat\", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: \"format\", publicName: \"format\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n    <div class=\"ax-flex ax-flex-col ax-gap-4 ax-text-pretty ax-rounded-md ax-border ax-p-4\">\n      <div>\n        <ax-label>{{ 'rrule.text' | translate: { scope: 'common' } | async }}</ax-label>\n        <code class=\"ax-mt-2 ax-block ax-rounded ax-bg-surface ax-p-2\">\n          {{ text() }}\n        </code>\n      </div>\n      <div>\n        <ax-label>{{ 'rrule.string' | translate: { scope: 'common' } | async }}</ax-label>\n        <code class=\"ax-mt-2 ax-block ax-text-pretty ax-break-all ax-rounded ax-bg-surface ax-p-2\">\n          {{ string() }}\n        </code>\n      </div>\n      <div>\n        <ax-label>{{\n          'rrule.occurrences' | translate: { scope: 'common', params: { repeat: repeat() } } | async\n        }}</ax-label>\n        <div class=\"ax-mt-2 ax-max-h-64 ax-overflow-y-auto\">\n          @for (date of dates(); track $index) {\n            <code class=\"ax-block ax-bg-surface ax-p-1 even:ax-bg-lighter\">\n              {{ date | date: format() : timeZone() }}\n            </code>\n          }\n        </div>\n      </div>\n    </div>\n  `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXLabelModule }, { kind: \"component\", type: i1.AXLabelComponent, selector: \"ax-label\", inputs: [\"required\", \"for\"], outputs: [\"requiredChange\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"pipe\", type: DatePipe, name: \"date\" }, { kind: \"pipe\", type: i2.AXTranslatorPipe, name: \"translate\" }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXRrulePreviewComponent, decorators: [{\n            type: Component,\n            args: [{\n                    selector: 'ax-rrule-preview',\n                    template: `\n    <div class=\"ax-flex ax-flex-col ax-gap-4 ax-text-pretty ax-rounded-md ax-border ax-p-4\">\n      <div>\n        <ax-label>{{ 'rrule.text' | translate: { scope: 'common' } | async }}</ax-label>\n        <code class=\"ax-mt-2 ax-block ax-rounded ax-bg-surface ax-p-2\">\n          {{ text() }}\n        </code>\n      </div>\n      <div>\n        <ax-label>{{ 'rrule.string' | translate: { scope: 'common' } | async }}</ax-label>\n        <code class=\"ax-mt-2 ax-block ax-text-pretty ax-break-all ax-rounded ax-bg-surface ax-p-2\">\n          {{ string() }}\n        </code>\n      </div>\n      <div>\n        <ax-label>{{\n          'rrule.occurrences' | translate: { scope: 'common', params: { repeat: repeat() } } | async\n        }}</ax-label>\n        <div class=\"ax-mt-2 ax-max-h-64 ax-overflow-y-auto\">\n          @for (date of dates(); track $index) {\n            <code class=\"ax-block ax-bg-surface ax-p-1 even:ax-bg-lighter\">\n              {{ date | date: format() : timeZone() }}\n            </code>\n          }\n        </div>\n      </div>\n    </div>\n  `,\n                    imports: [AXLabelModule, DatePipe, AXTranslationModule, AsyncPipe],\n                }]\n        }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: \"value\", required: false }] }], repeat: [{ type: i0.Input, args: [{ isSignal: true, alias: \"repeat\", required: false }] }], format: [{ type: i0.Input, args: [{ isSignal: true, alias: \"format\", required: false }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnJ1bGUtcHJldmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvcnJ1bGUvc3JjL2xpYi9ycnVsZS1wcmV2aWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFtQ2pELE1BQU0sT0FBTyx1QkFBdUI7SUFoQ3BDO1FBaUNFLFVBQUssR0FBRyxLQUFLLDJEQUFpQixDQUFDO1FBQy9CLFdBQU0sR0FBRyxLQUFLLENBQVMsR0FBRyxrREFBQyxDQUFDO1FBQzVCLFdBQU0sR0FBRyxLQUFLLENBQVMscUJBQXFCLGtEQUFDLENBQUM7UUFFcEMsaUJBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFdEMsVUFBSyxHQUFHLE1BQU0sQ0FBcUIsSUFBSSxpREFBQyxDQUFDO1FBQ3pDLGFBQVEsR0FBRyxNQUFNLENBQWdCLElBQUksb0RBQUMsQ0FBQztRQUV2QyxTQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGdEQUFDLENBQUM7UUFDekYsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxrREFBQyxDQUFDO1FBQzdGLFVBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGlEQUFDLENBQUM7UUFDekcsWUFBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxtREFBQyxDQUFDO1FBRXpHLFFBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDdEIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3hFLENBQUM7UUFDSCxDQUFDLCtDQUFDLENBQUM7S0FZSjtJQVZDLFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEUsQ0FBQzs4R0F2QlUsdUJBQXVCO2tHQUF2Qix1QkFBdUIsc2NBOUJ4Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJULDJEQUNTLGFBQWEsZ0tBQVksbUJBQW1CLDBCQUE3QixRQUFRLHdHQUF1QixTQUFTOzsyRkFFdEQsdUJBQXVCO2tCQWhDbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFLFNBQVMsQ0FBQztpQkFDbkUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWExhYmVsTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xhYmVsJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIE9uSW5pdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFJydWxlU2VydmljZSB9IGZyb20gJy4vcnJ1bGUuc2VydmljZSc7XG5pbXBvcnQgeyBBWFJSdWxlVHlwZSB9IGZyb20gJy4vcnJ1bGUudHlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXJydWxlLXByZXZpZXcnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC00IGF4LXRleHQtcHJldHR5IGF4LXJvdW5kZWQtbWQgYXgtYm9yZGVyIGF4LXAtNFwiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGF4LWxhYmVsPnt7ICdycnVsZS50ZXh0JyB8IHRyYW5zbGF0ZTogeyBzY29wZTogJ2NvbW1vbicgfSB8IGFzeW5jIH19PC9heC1sYWJlbD5cbiAgICAgICAgPGNvZGUgY2xhc3M9XCJheC1tdC0yIGF4LWJsb2NrIGF4LXJvdW5kZWQgYXgtYmctc3VyZmFjZSBheC1wLTJcIj5cbiAgICAgICAgICB7eyB0ZXh0KCkgfX1cbiAgICAgICAgPC9jb2RlPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8YXgtbGFiZWw+e3sgJ3JydWxlLnN0cmluZycgfCB0cmFuc2xhdGU6IHsgc2NvcGU6ICdjb21tb24nIH0gfCBhc3luYyB9fTwvYXgtbGFiZWw+XG4gICAgICAgIDxjb2RlIGNsYXNzPVwiYXgtbXQtMiBheC1ibG9jayBheC10ZXh0LXByZXR0eSBheC1icmVhay1hbGwgYXgtcm91bmRlZCBheC1iZy1zdXJmYWNlIGF4LXAtMlwiPlxuICAgICAgICAgIHt7IHN0cmluZygpIH19XG4gICAgICAgIDwvY29kZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgPGF4LWxhYmVsPnt7XG4gICAgICAgICAgJ3JydWxlLm9jY3VycmVuY2VzJyB8IHRyYW5zbGF0ZTogeyBzY29wZTogJ2NvbW1vbicsIHBhcmFtczogeyByZXBlYXQ6IHJlcGVhdCgpIH0gfSB8IGFzeW5jXG4gICAgICAgIH19PC9heC1sYWJlbD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LW10LTIgYXgtbWF4LWgtNjQgYXgtb3ZlcmZsb3cteS1hdXRvXCI+XG4gICAgICAgICAgQGZvciAoZGF0ZSBvZiBkYXRlcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgIDxjb2RlIGNsYXNzPVwiYXgtYmxvY2sgYXgtYmctc3VyZmFjZSBheC1wLTEgZXZlbjpheC1iZy1saWdodGVyXCI+XG4gICAgICAgICAgICAgIHt7IGRhdGUgfCBkYXRlOiBmb3JtYXQoKSA6IHRpbWVab25lKCkgfX1cbiAgICAgICAgICAgIDwvY29kZT5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIGltcG9ydHM6IFtBWExhYmVsTW9kdWxlLCBEYXRlUGlwZSwgQVhUcmFuc2xhdGlvbk1vZHVsZSwgQXN5bmNQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhScnVsZVByZXZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICB2YWx1ZSA9IGlucHV0PHN0cmluZyB8IG51bGw+KCk7XG4gIHJlcGVhdCA9IGlucHV0PG51bWJlcj4oMTAwKTtcbiAgZm9ybWF0ID0gaW5wdXQ8c3RyaW5nPigneXl5eS1NTS1kZCBISDptbTpzcycpO1xuXG4gIHByb3RlY3RlZCBycnVsZVNlcnZpY2UgPSBpbmplY3QoQVhScnVsZVNlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCBycnVsZSA9IHNpZ25hbDxBWFJSdWxlVHlwZSB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgdGltZVpvbmUgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgcHJvdGVjdGVkIHRleHQgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5ycnVsZSgpID8gdGhpcy5ycnVsZVNlcnZpY2UucnJ1bGVUb1RleHQodGhpcy5ycnVsZSgpKSA6ICcnKSk7XG4gIHByb3RlY3RlZCBzdHJpbmcgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5ycnVsZSgpID8gdGhpcy5ycnVsZVNlcnZpY2UucnJ1bGVUb1N0cmluZyh0aGlzLnJydWxlKCkpIDogJycpKTtcbiAgcHJvdGVjdGVkIGRhdGVzID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMucnJ1bGUoKSA/IHRoaXMucnJ1bGVTZXJ2aWNlLnJydWxlR2V0QWxsKHRoaXMucnJ1bGUoKSwgdGhpcy5yZXBlYXQoKSkgOiBbXSkpO1xuICBwcm90ZWN0ZWQgb3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLnJydWxlKCkgPyB0aGlzLnJydWxlU2VydmljZS5ycnVsZVRvT3B0aW9ucyh0aGlzLnJydWxlKCkpIDoge30pKTtcblxuICBlZmYgPSBlZmZlY3QoYXN5bmMgKCkgPT4ge1xuICAgIGlmICh0aGlzLnZhbHVlKCkpIHtcbiAgICAgIHRoaXMucnJ1bGUuc2V0KGF3YWl0IHRoaXMucnJ1bGVTZXJ2aWNlLnJydWxlRnJvbVN0cmluZyh0aGlzLnZhbHVlKCkpKTtcbiAgICB9XG4gIH0pO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudGltZVpvbmUuc2V0KEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZSk7XG4gIH1cblxuICAvLyB2YWx1ZSA9IGlucHV0PEFYUlJ1bGVUeXBlIHwgbnVsbD4oKTtcbiAgLy8gcHJvdGVjdGVkIHJydWxlU2VydmljZSA9IGluamVjdChBWFJydWxlU2VydmljZSk7XG4gIC8vIHByb3RlY3RlZCB0ZXh0ID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMudmFsdWUoKSA/IHRoaXMucnJ1bGVTZXJ2aWNlLnJydWxlVG9UZXh0KHRoaXMudmFsdWUoKSkgOiAnJykpO1xuICAvLyBwcm90ZWN0ZWQgc3RyaW5nID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMudmFsdWUoKSA/IHRoaXMucnJ1bGVTZXJ2aWNlLnJydWxlVG9TdHJpbmcodGhpcy52YWx1ZSgpKSA6ICcnKSk7XG4gIC8vIHByb3RlY3RlZCBkYXRlcyA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLnZhbHVlKCkgPyB0aGlzLnJydWxlU2VydmljZS5ycnVsZUdldEFsbCh0aGlzLnZhbHVlKCkpIDogW10pKTtcbiAgLy8gcHJvdGVjdGVkIG9wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiAodGhpcy52YWx1ZSgpID8gdGhpcy5ycnVsZVNlcnZpY2UucnJ1bGVUb09wdGlvbnModGhpcy52YWx1ZSgpKSA6IHt9KSk7XG59XG4iXX0=","export const freqs = [\n    { text: 'Yearly', value: 0 },\n    { text: 'Monthly', value: 1 },\n    { text: 'Weekly', value: 2 },\n    { text: 'Daily', value: 3 },\n    { text: 'Hourly', value: 4 },\n    { text: 'Minutely', value: 5 },\n    { text: 'Secondly', value: 6 },\n];\nexport const weekdays = [\n    { text: 'Sunday', value: 6 },\n    { text: 'Monday', value: 0 },\n    { text: 'Tuesday', value: 1 },\n    { text: 'Wednesday', value: 2 },\n    { text: 'Thursday', value: 3 },\n    { text: 'Friday', value: 4 },\n    { text: 'Saturday', value: 5 },\n];\nexport const months = [\n    { text: 'January', value: 1 },\n    { text: 'February', value: 2 },\n    { text: 'March', value: 3 },\n    { text: 'April', value: 4 },\n    { text: 'May', value: 5 },\n    { text: 'June', value: 6 },\n    { text: 'July', value: 7 },\n    { text: 'August', value: 8 },\n    { text: 'September', value: 9 },\n    { text: 'October', value: 10 },\n    { text: 'November', value: 11 },\n    { text: 'December', value: 12 },\n];\nexport const timezones = Intl.supportedValuesOf('timeZone');\nexport const hours = Array.from({ length: 24 }, (_, i) => i);\nexport const minutes = Array.from({ length: 60 }, (_, i) => i);\nexport const seconds = Array.from({ length: 60 }, (_, i) => i);\nexport const monthdays = Array.from({ length: 31 }, (_, i) => i + 1);\nexport const nmonthdays = [\n    ...Array.from({ length: 31 }, (_, i) => -1 * (i + 1)).reverse(),\n    ...Array.from({ length: 31 }, (_, i) => i + 1),\n];\nexport const yeardays = Array.from({ length: 366 }, (_, i) => i + 1);\nexport const weeknos = Array.from({ length: 53 }, (_, i) => i + 1);\nexport const setpos = [\n    ...Array.from({ length: 366 }, (_, i) => -1 * (i + 1)).reverse(),\n    ...Array.from({ length: 366 }, (_, i) => i + 1),\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnJ1bGUuY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3JydWxlL3NyYy9saWIvcnJ1bGUuY29uc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHO0lBQ25CLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO0lBQzVCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO0lBQzdCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO0lBQzVCLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO0lBQzNCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO0lBQzVCLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO0lBQzlCLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO0NBQy9CLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUc7SUFDdEIsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7SUFDNUIsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7SUFDNUIsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7SUFDN0IsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7SUFDL0IsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7SUFDOUIsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7SUFDNUIsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7Q0FDL0IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRztJQUNwQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtJQUM3QixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtJQUM5QixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtJQUMzQixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtJQUMzQixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtJQUN6QixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtJQUMxQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtJQUMxQixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtJQUM1QixFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtJQUMvQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtJQUM5QixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtJQUMvQixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtDQUNoQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUU1RCxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdELE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDL0QsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvRCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNyRSxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDeEIsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDL0QsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUMvQyxDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDckUsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDbkUsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHO0lBQ3BCLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFO0lBQ2hFLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7Q0FDaEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBmcmVxcyA9IFtcbiAgeyB0ZXh0OiAnWWVhcmx5JywgdmFsdWU6IDAgfSxcbiAgeyB0ZXh0OiAnTW9udGhseScsIHZhbHVlOiAxIH0sXG4gIHsgdGV4dDogJ1dlZWtseScsIHZhbHVlOiAyIH0sXG4gIHsgdGV4dDogJ0RhaWx5JywgdmFsdWU6IDMgfSxcbiAgeyB0ZXh0OiAnSG91cmx5JywgdmFsdWU6IDQgfSxcbiAgeyB0ZXh0OiAnTWludXRlbHknLCB2YWx1ZTogNSB9LFxuICB7IHRleHQ6ICdTZWNvbmRseScsIHZhbHVlOiA2IH0sXG5dO1xuXG5leHBvcnQgY29uc3Qgd2Vla2RheXMgPSBbXG4gIHsgdGV4dDogJ1N1bmRheScsIHZhbHVlOiA2IH0sXG4gIHsgdGV4dDogJ01vbmRheScsIHZhbHVlOiAwIH0sXG4gIHsgdGV4dDogJ1R1ZXNkYXknLCB2YWx1ZTogMSB9LFxuICB7IHRleHQ6ICdXZWRuZXNkYXknLCB2YWx1ZTogMiB9LFxuICB7IHRleHQ6ICdUaHVyc2RheScsIHZhbHVlOiAzIH0sXG4gIHsgdGV4dDogJ0ZyaWRheScsIHZhbHVlOiA0IH0sXG4gIHsgdGV4dDogJ1NhdHVyZGF5JywgdmFsdWU6IDUgfSxcbl07XG5cbmV4cG9ydCBjb25zdCBtb250aHMgPSBbXG4gIHsgdGV4dDogJ0phbnVhcnknLCB2YWx1ZTogMSB9LFxuICB7IHRleHQ6ICdGZWJydWFyeScsIHZhbHVlOiAyIH0sXG4gIHsgdGV4dDogJ01hcmNoJywgdmFsdWU6IDMgfSxcbiAgeyB0ZXh0OiAnQXByaWwnLCB2YWx1ZTogNCB9LFxuICB7IHRleHQ6ICdNYXknLCB2YWx1ZTogNSB9LFxuICB7IHRleHQ6ICdKdW5lJywgdmFsdWU6IDYgfSxcbiAgeyB0ZXh0OiAnSnVseScsIHZhbHVlOiA3IH0sXG4gIHsgdGV4dDogJ0F1Z3VzdCcsIHZhbHVlOiA4IH0sXG4gIHsgdGV4dDogJ1NlcHRlbWJlcicsIHZhbHVlOiA5IH0sXG4gIHsgdGV4dDogJ09jdG9iZXInLCB2YWx1ZTogMTAgfSxcbiAgeyB0ZXh0OiAnTm92ZW1iZXInLCB2YWx1ZTogMTEgfSxcbiAgeyB0ZXh0OiAnRGVjZW1iZXInLCB2YWx1ZTogMTIgfSxcbl07XG5cbmV4cG9ydCBjb25zdCB0aW1lem9uZXMgPSBJbnRsLnN1cHBvcnRlZFZhbHVlc09mKCd0aW1lWm9uZScpO1xuXG5leHBvcnQgY29uc3QgaG91cnMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiAyNCB9LCAoXywgaSkgPT4gaSk7XG5leHBvcnQgY29uc3QgbWludXRlcyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDYwIH0sIChfLCBpKSA9PiBpKTtcbmV4cG9ydCBjb25zdCBzZWNvbmRzID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogNjAgfSwgKF8sIGkpID0+IGkpO1xuZXhwb3J0IGNvbnN0IG1vbnRoZGF5cyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDMxIH0sIChfLCBpKSA9PiBpICsgMSk7XG5leHBvcnQgY29uc3Qgbm1vbnRoZGF5cyA9IFtcbiAgLi4uQXJyYXkuZnJvbSh7IGxlbmd0aDogMzEgfSwgKF8sIGkpID0+IC0xICogKGkgKyAxKSkucmV2ZXJzZSgpLFxuICAuLi5BcnJheS5mcm9tKHsgbGVuZ3RoOiAzMSB9LCAoXywgaSkgPT4gaSArIDEpLFxuXTtcbmV4cG9ydCBjb25zdCB5ZWFyZGF5cyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDM2NiB9LCAoXywgaSkgPT4gaSArIDEpO1xuZXhwb3J0IGNvbnN0IHdlZWtub3MgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiA1MyB9LCAoXywgaSkgPT4gaSArIDEpO1xuZXhwb3J0IGNvbnN0IHNldHBvcyA9IFtcbiAgLi4uQXJyYXkuZnJvbSh7IGxlbmd0aDogMzY2IH0sIChfLCBpKSA9PiAtMSAqIChpICsgMSkpLnJldmVyc2UoKSxcbiAgLi4uQXJyYXkuZnJvbSh7IGxlbmd0aDogMzY2IH0sIChfLCBpKSA9PiBpICsgMSksXG5dO1xuIl19","export const defaultOptions = {\n    freq: 2,\n    dtstart: null,\n    interval: 1,\n    wkst: null,\n    count: 5,\n    until: null,\n    tzid: null,\n    bysetpos: [],\n    bymonth: [],\n    bymonthday: [],\n    byyearday: [],\n    byweekno: [],\n    byweekday: [],\n    byhour: [],\n    byminute: [],\n    bysecond: [],\n    byeaster: null,\n    bynmonthday: [],\n    bynweekday: [],\n};\nexport const defaultRrule = 'RRULE:FREQ=WEEKLY;INTERVAL=1;WKST=MO;COUNT=5';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnJ1bGUudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvcnJ1bGUvc3JjL2xpYi9ycnVsZS50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCQSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQW1CO0lBQzVDLElBQUksRUFBRSxDQUFDO0lBQ1AsT0FBTyxFQUFFLElBQUk7SUFDYixRQUFRLEVBQUUsQ0FBQztJQUNYLElBQUksRUFBRSxJQUFJO0lBQ1YsS0FBSyxFQUFFLENBQUM7SUFDUixLQUFLLEVBQUUsSUFBSTtJQUNYLElBQUksRUFBRSxJQUFJO0lBQ1YsUUFBUSxFQUFFLEVBQUU7SUFDWixPQUFPLEVBQUUsRUFBRTtJQUNYLFVBQVUsRUFBRSxFQUFFO0lBQ2QsU0FBUyxFQUFFLEVBQUU7SUFDYixRQUFRLEVBQUUsRUFBRTtJQUNaLFNBQVMsRUFBRSxFQUFFO0lBQ2IsTUFBTSxFQUFFLEVBQUU7SUFDVixRQUFRLEVBQUUsRUFBRTtJQUNaLFFBQVEsRUFBRSxFQUFFO0lBQ1osUUFBUSxFQUFFLElBQUk7SUFDZCxXQUFXLEVBQUUsRUFBRTtJQUNmLFVBQVUsRUFBRSxFQUFFO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyw4Q0FBOEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEFYUk9wdGlvbnNUeXBlID0gaW1wb3J0KCdycnVsZScpLk9wdGlvbnM7XG5leHBvcnQgaW50ZXJmYWNlIEFYUGFyc2VkT3B0aW9uc1R5cGUgZXh0ZW5kcyBBWFJPcHRpb25zVHlwZSB7XG4gIGR0c3RhcnQ6IERhdGU7XG4gIHdrc3Q6IG51bWJlcjtcbiAgYnlzZXRwb3M6IG51bWJlcltdO1xuICBieW1vbnRoOiBudW1iZXJbXTtcbiAgYnltb250aGRheTogbnVtYmVyW107XG4gIGJ5bm1vbnRoZGF5OiBudW1iZXJbXTtcbiAgYnl5ZWFyZGF5OiBudW1iZXJbXTtcbiAgYnl3ZWVrbm86IG51bWJlcltdO1xuICBieXdlZWtkYXk6IG51bWJlcltdO1xuICBieWhvdXI6IG51bWJlcltdO1xuICBieW1pbnV0ZTogbnVtYmVyW107XG4gIGJ5c2Vjb25kOiBudW1iZXJbXTtcbn1cbmV4cG9ydCB0eXBlIEFYUlJ1bGVUeXBlID0gaW1wb3J0KCdycnVsZScpLlJSdWxlO1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdE9wdGlvbnM6IEFYUk9wdGlvbnNUeXBlID0ge1xuICBmcmVxOiAyLFxuICBkdHN0YXJ0OiBudWxsLFxuICBpbnRlcnZhbDogMSxcbiAgd2tzdDogbnVsbCxcbiAgY291bnQ6IDUsXG4gIHVudGlsOiBudWxsLFxuICB0emlkOiBudWxsLFxuICBieXNldHBvczogW10sXG4gIGJ5bW9udGg6IFtdLFxuICBieW1vbnRoZGF5OiBbXSxcbiAgYnl5ZWFyZGF5OiBbXSxcbiAgYnl3ZWVrbm86IFtdLFxuICBieXdlZWtkYXk6IFtdLFxuICBieWhvdXI6IFtdLFxuICBieW1pbnV0ZTogW10sXG4gIGJ5c2Vjb25kOiBbXSxcbiAgYnllYXN0ZXI6IG51bGwsXG4gIGJ5bm1vbnRoZGF5OiBbXSxcbiAgYnlud2Vla2RheTogW10sXG59O1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdFJydWxlID0gJ1JSVUxFOkZSRVE9V0VFS0xZO0lOVEVSVkFMPTE7V0tTVD1NTztDT1VOVD01JztcbiJdfQ==","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDateTimeBoxModule } from '@acorex/components/datetime-box';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXNumberBoxModule } from '@acorex/components/number-box';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXSelectionListModule } from '@acorex/components/selection-list';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { Component, computed, effect, inject, model, output, signal, untracked } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { freqs, hours, minutes, monthdays, months, nmonthdays, seconds, setpos, timezones, weekdays, weeknos, yeardays, } from './rrule.const';\nimport { AXRruleService } from './rrule.service';\nimport { defaultOptions, defaultRrule } from './rrule.type';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@acorex/components/datetime-box\";\nimport * as i3 from \"@acorex/components/selection-list\";\nimport * as i4 from \"@acorex/components/number-box\";\nimport * as i5 from \"@acorex/components/select-box\";\nimport * as i6 from \"@acorex/components/label\";\nimport * as i7 from \"@acorex/components/search-box\";\nimport * as i8 from \"@acorex/components/button\";\nimport * as i9 from \"@angular/common\";\nimport * as i10 from \"@acorex/core/translation\";\n/**\n * RRule component provides a user-friendly interface for creating and managing recurrence rules.\n * Supports various frequencies, intervals, and date constraints with real-time preview and validation.\n */\nexport class AXRruleComponent {\n    constructor() {\n        /**\n         * Current recurrence rule model value (options object or RRULE string).\n         * @default null\n         */\n        this.value = model(null, ...(ngDevMode ? [{ debugName: \"value\" }] : []));\n        /**\n         * Emitted when the model value changes.\n         */\n        this.valueChange = output();\n        /**\n         * Emitted with the computed RRule instance when updated.\n         */\n        this.rruleChange = output();\n        /**\n         * Emitted with the normalized options whenever they change.\n         */\n        this.optionsChange = output();\n        /**\n         * Emitted with the RRULE string representation.\n         */\n        this.stringChange = output();\n        /**\n         * Emitted with the human-readable text of the rule.\n         */\n        this.textChange = output();\n        this.freqs = freqs;\n        this.weekdays = weekdays;\n        this.months = months;\n        this.timezones = timezones;\n        this.hours = hours;\n        this.minutes = minutes;\n        this.seconds = seconds;\n        this.monthdays = monthdays;\n        this.nmonthdays = nmonthdays;\n        this.yeardays = yeardays;\n        this.weeknos = weeknos;\n        this.setpos = setpos;\n        this.options = signal({ ...defaultOptions }, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n        this.rrule = signal(null, ...(ngDevMode ? [{ debugName: \"rrule\" }] : []));\n        this.string = computed(() => this.rrule()?.toString() ?? null, ...(ngDevMode ? [{ debugName: \"string\" }] : []));\n        this.text = computed(() => this.rrule()?.toText() ?? null, ...(ngDevMode ? [{ debugName: \"text\" }] : []));\n        // public all = computed(() => this.rruleService.rruleGetAll(this.rrule()));\n        this.rruleService = inject(AXRruleService);\n        this._isUpdating = false;\n        this._applyToken = 0;\n        this.#valueEffect = effect(() => {\n            const incoming = this.value();\n            if (this._isUpdating) {\n                this._isUpdating = false;\n                return;\n            }\n            this._scheduleApplyIncoming(incoming);\n        }, ...(ngDevMode ? [{ debugName: \"#valueEffect\" }] : []));\n    }\n    #valueEffect;\n    _scheduleApplyIncoming(incoming) {\n        const token = ++this._applyToken;\n        // Defer to microtask to avoid doing async work directly inside effect\n        Promise.resolve().then(() => this._applyIncomingAsync(incoming, token));\n    }\n    async _applyIncomingAsync(incoming, token) {\n        try {\n            let rrule;\n            let newOptions;\n            if (incoming) {\n                if (typeof incoming === 'string') {\n                    rrule = await this.rruleService.rruleFromString(incoming);\n                    newOptions = this._clearOptions({ ...rrule.options }, incoming);\n                }\n                else {\n                    rrule = await this.rruleService.rruleFromOptions(incoming);\n                    newOptions = { ...rrule.options };\n                }\n            }\n            else {\n                rrule = await this.rruleService.rruleFromString(defaultRrule);\n                newOptions = this._clearOptions({ ...rrule.options }, defaultRrule);\n            }\n            // Only apply the latest scheduled update\n            if (token !== this._applyToken)\n                return;\n            untracked(() => {\n                this.rrule.set(rrule);\n                this.options.set(newOptions);\n                this._emitAll();\n            });\n        }\n        catch {\n            // Swallow errors to avoid breaking the reactive graph; consider surfacing via output events if needed\n        }\n    }\n    _emitAll() {\n        this.rruleChange.emit(this.rrule());\n        this.optionsChange.emit(this.options());\n        this.stringChange.emit(this.string());\n        this.textChange.emit(this.text());\n    }\n    _areOptionValuesEqual(a, b) {\n        if (a === b)\n            return true;\n        if (a == null || b == null)\n            return a === b;\n        // Compare Date\n        if (a instanceof Date && b instanceof Date)\n            return a.getTime() === b.getTime();\n        // Compare arrays of primitives\n        if (Array.isArray(a) && Array.isArray(b)) {\n            if (a.length !== b.length)\n                return false;\n            for (let i = 0; i < a.length; i++) {\n                if (a[i] !== b[i])\n                    return false;\n            }\n            return true;\n        }\n        return false;\n    }\n    _clearOptions(options, rule) {\n        const upperCaseRule = rule.toUpperCase();\n        if (!upperCaseRule.includes('DTSTART')) {\n            options.dtstart = this.options().dtstart ?? new Date();\n        }\n        if (!upperCaseRule.includes('BYHOUR')) {\n            options.byhour = [];\n        }\n        if (!upperCaseRule.includes('BYMINUTE')) {\n            options.byminute = [];\n        }\n        if (!upperCaseRule.includes('BYSECOND')) {\n            options.bysecond = [];\n        }\n        if (!upperCaseRule.includes('BYMONTH')) {\n            options.bymonth = [];\n        }\n        if (!upperCaseRule.includes('BYMONTHDAY')) {\n            options.bymonthday = [];\n        }\n        if (!upperCaseRule.includes('BYWEEKDAY')) {\n            options.byweekday = [];\n        }\n        if (!upperCaseRule.includes('TZID')) {\n            const currentTz = this.options().tzid;\n            const userTimeZone = Intl?.DateTimeFormat?.().resolvedOptions?.().timeZone;\n            options.tzid = currentTz ?? userTimeZone ?? null;\n        }\n        return options;\n    }\n    /**\n     * Updates a single option and recomputes the rule.\n     * @param key The option key to update\n     * @param value The new value for the option\n     */\n    async updateOption(key, value) {\n        const current = this.options()[key];\n        if (this._areOptionValuesEqual(current, value))\n            return;\n        this.options.update((opts) => ({ ...opts, [key]: value }));\n        const newRrule = await this.rruleService.rruleFromOptions(this.options());\n        this.rrule.set(newRrule);\n        this._isUpdating = true;\n        if (typeof this.value() === 'string') {\n            this.value.set(newRrule.toString());\n        }\n        else {\n            this.value.set(this.options());\n        }\n        this._emitAll();\n    }\n    /**\n     * Resets options to defaults and recomputes the rule.\n     */\n    async resetOptions() {\n        this.options.set({ ...defaultOptions });\n        const newRrule = await this.rruleService.rruleFromOptions(this.options());\n        this.rrule.set(newRrule);\n        this._isUpdating = true;\n        if (typeof this.value() === 'string') {\n            this.value.set(newRrule.toString());\n        }\n        else {\n            this.value.set(this.options());\n        }\n        this._emitAll();\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXRruleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.6\", type: AXRruleComponent, isStandalone: true, selector: \"ax-rrule\", inputs: { value: { classPropertyName: \"value\", publicName: \"value\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: \"valueChange\", valueChange: \"valueChange\", rruleChange: \"rruleChange\", optionsChange: \"optionsChange\", stringChange: \"stringChange\", textChange: \"textChange\" }, ngImport: i0, template: \"<div class=\\\"ax-rrule-container ax-grid ax-grid-cols-1 ax-gap-4 md:ax-grid-cols-2 lg:ax-grid-cols-3\\\">\\n  <!-- General -->\\n  <div class=\\\"ax-flex ax-flex-col ax-gap-4 ax-rounded-md ax-border ax-p-4\\\">\\n    <div class=\\\"ax-text-lg ax-font-semibold\\\">{{ 'rrule.general' | translate: { scope: 'common' } | async }}</div>\\n\\n    <div>\\n      <ax-label>{{ 'rrule.freq' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-selection-list\\n        valueField=\\\"value\\\"\\n        textField=\\\"text\\\"\\n        name=\\\"freq\\\"\\n        [items]=\\\"freqs\\\"\\n        [ngModel]=\\\"options().freq\\\"\\n        (ngModelChange)=\\\"updateOption('freq', $event)\\\"\\n      ></ax-selection-list>\\n    </div>\\n\\n    <div>\\n      <ax-label>{{ 'rrule.dtstart' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-datetime-box\\n        name=\\\"dtstart\\\"\\n        [ngModel]=\\\"options().dtstart\\\"\\n        (ngModelChange)=\\\"updateOption('dtstart', $event)\\\"\\n      ></ax-datetime-box>\\n    </div>\\n\\n    <div>\\n      <ax-label>{{ 'rrule.until' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-datetime-box\\n        name=\\\"until\\\"\\n        [ngModel]=\\\"options().until\\\"\\n        (ngModelChange)=\\\"updateOption('until', $event)\\\"\\n      ></ax-datetime-box>\\n    </div>\\n\\n    <div>\\n      <ax-label>{{ 'rrule.count' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-number-box\\n        name=\\\"count\\\"\\n        [ngModel]=\\\"options().count\\\"\\n        (ngModelChange)=\\\"updateOption('count', $event)\\\"\\n        [minValue]=\\\"1\\\"\\n      ></ax-number-box>\\n    </div>\\n\\n    <div>\\n      <ax-label>{{ 'rrule.interval' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-number-box\\n        name=\\\"interval\\\"\\n        [ngModel]=\\\"options().interval\\\"\\n        (ngModelChange)=\\\"updateOption('interval', $event)\\\"\\n        [minValue]=\\\"1\\\"\\n      ></ax-number-box>\\n    </div>\\n\\n    <div>\\n      <ax-label>{{ 'rrule.tzid' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"tzid\\\"\\n        [dataSource]=\\\"timezones\\\"\\n        [ngModel]=\\\"options().tzid\\\"\\n        (ngModelChange)=\\\"updateOption('tzid', $event)\\\"\\n      >\\n        <ax-search-box></ax-search-box>\\n      </ax-select-box>\\n    </div>\\n  </div>\\n\\n  <!-- By Weekday -->\\n  <div class=\\\"ax-flex ax-flex-col ax-gap-4 ax-rounded-md ax-border ax-p-4\\\">\\n    <div class=\\\"ax-text-lg ax-font-semibold\\\">{{ 'rrule.by-weekday' | translate: { scope: 'common' } | async }}</div>\\n    <div>\\n      <ax-label>{{ 'rrule.wkst' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-selection-list\\n        valueField=\\\"value\\\"\\n        textField=\\\"text\\\"\\n        name=\\\"wkst\\\"\\n        [items]=\\\"weekdays\\\"\\n        [ngModel]=\\\"options().wkst\\\"\\n        (ngModelChange)=\\\"updateOption('wkst', $event)\\\"\\n      ></ax-selection-list>\\n    </div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-weekday-rule' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-selection-list\\n        valueField=\\\"value\\\"\\n        textField=\\\"text\\\"\\n        name=\\\"byweekday\\\"\\n        [items]=\\\"weekdays\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().byweekday\\\"\\n        (ngModelChange)=\\\"updateOption('byweekday', $event)\\\"\\n      ></ax-selection-list>\\n    </div>\\n  </div>\\n\\n  <!-- By Month -->\\n  <div class=\\\"ax-flex ax-flex-col ax-gap-4 ax-rounded-md ax-border ax-p-4\\\">\\n    <div class=\\\"ax-text-lg ax-font-semibold\\\">{{ 'rrule.by-month' | translate: { scope: 'common' } | async }}</div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-month-rule' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-selection-list\\n        valueField=\\\"value\\\"\\n        textField=\\\"text\\\"\\n        name=\\\"bymonth\\\"\\n        [items]=\\\"months\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().bymonth\\\"\\n        (ngModelChange)=\\\"updateOption('bymonth', $event)\\\"\\n      ></ax-selection-list>\\n    </div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-month-day' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"bymonthday\\\"\\n        [dataSource]=\\\"monthdays\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().bymonthday\\\"\\n        (ngModelChange)=\\\"updateOption('bymonthday', $event)\\\"\\n      >\\n      </ax-select-box>\\n    </div>\\n    <!-- <div>\\n      <ax-label>By Negative Month Day (BYNMONTHDAY)</ax-label>\\n      <ax-select-box\\n        name=\\\"bynmonthday\\\"\\n        [dataSource]=\\\"nmonthdays\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().bynmonthday\\\"\\n        (ngModelChange)=\\\"updateOption('bynmonthday', $event)\\\"\\n      >\\n      </ax-select-box>\\n    </div> -->\\n  </div>\\n\\n  <!-- By Year -->\\n  <div class=\\\"ax-flex ax-flex-col ax-gap-4 ax-rounded-md ax-border ax-p-4\\\">\\n    <div class=\\\"ax-text-lg ax-font-semibold\\\">{{ 'rrule.by-year' | translate: { scope: 'common' } | async }}</div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-year-day' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"byyearday\\\"\\n        [dataSource]=\\\"yeardays\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().byyearday\\\"\\n        (ngModelChange)=\\\"updateOption('byyearday', $event)\\\"\\n      >\\n      </ax-select-box>\\n    </div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-week-no' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"byweekno\\\"\\n        [dataSource]=\\\"weeknos\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().byweekno\\\"\\n        (ngModelChange)=\\\"updateOption('byweekno', $event)\\\"\\n      >\\n      </ax-select-box>\\n    </div>\\n  </div>\\n\\n  <!-- By Time -->\\n  <div class=\\\"ax-flex ax-flex-col ax-gap-4 ax-rounded-md ax-border ax-p-4\\\">\\n    <div class=\\\"ax-text-lg ax-font-semibold\\\">{{ 'rrule.by-time' | translate: { scope: 'common' } | async }}</div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-hour' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"byhour\\\"\\n        [dataSource]=\\\"hours\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().byhour\\\"\\n        (ngModelChange)=\\\"updateOption('byhour', $event)\\\"\\n      >\\n      </ax-select-box>\\n    </div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-minute' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"byminute\\\"\\n        [dataSource]=\\\"minutes\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().byminute\\\"\\n        (ngModelChange)=\\\"updateOption('byminute', $event)\\\"\\n      >\\n      </ax-select-box>\\n    </div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-second' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"bysecond\\\"\\n        [dataSource]=\\\"seconds\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().bysecond\\\"\\n        (ngModelChange)=\\\"updateOption('bysecond', $event)\\\"\\n      >\\n      </ax-select-box>\\n    </div>\\n  </div>\\n\\n  <!-- Advanced -->\\n  <div class=\\\"ax-flex ax-flex-col ax-gap-4 ax-rounded-md ax-border ax-p-4\\\">\\n    <div class=\\\"ax-text-lg ax-font-semibold\\\">{{ 'rrule.advanced' | translate: { scope: 'common' } | async }}</div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-set-pos' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"bysetpos\\\"\\n        [dataSource]=\\\"setpos\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().bysetpos\\\"\\n        (ngModelChange)=\\\"updateOption('bysetpos', $event)\\\"\\n        [disabled]=\\\"true\\\"\\n      >\\n      </ax-select-box>\\n    </div>\\n  </div>\\n</div>\\n\\n<div class=\\\"ax-flex ax-justify-end ax-py-4\\\">\\n  <ax-button [text]=\\\"'rrule.reset' | translate: { scope: 'common' } | async\\\" (click)=\\\"resetOptions()\\\"></ax-button>\\n</div>\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: AXDateTimeBoxModule }, { kind: \"component\", type: i2.AXDateTimeBoxComponent, selector: \"ax-datetime-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"minValue\", \"maxValue\", \"value\", \"state\", \"name\", \"depth\", \"id\", \"type\", \"look\", \"holidayDates\", \"allowTyping\", \"picker\", \"calendar\", \"weekend\", \"weekdays\", \"format\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"onOpened\", \"onClosed\", \"readonlyChange\", \"disabledChange\", \"formatChange\"] }, { kind: \"ngmodule\", type: AXSelectionListModule }, { kind: \"component\", type: i3.AXSelectionListComponent, selector: \"ax-selection-list\", inputs: [\"id\", \"name\", \"disabled\", \"readonly\", \"tabIndex\", \"size\", \"value\", \"valueField\", \"textField\", \"disabledField\", \"readonlyField\", \"multiple\", \"direction\", \"customTemplate\", \"showControl\", \"items\", \"look\"], outputs: [\"onValueChanged\", \"onBlur\", \"onFocus\"] }, { kind: \"ngmodule\", type: AXNumberBoxModule }, { kind: \"component\", type: i4.AXNumberBoxComponent, selector: \"ax-number-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"minValue\", \"maxValue\", \"showSpinButtons\", \"thousandsSeparator\", \"decimals\", \"changeOnScroll\", \"step\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\", \"thousandsSeparatorChange\"] }, { kind: \"ngmodule\", type: AXFormModule }, { kind: \"ngmodule\", type: AXSelectBoxModule }, { kind: \"component\", type: i5.AXSelectBoxComponent, selector: \"ax-select-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"minValue\", \"maxValue\", \"value\", \"state\", \"name\", \"id\", \"type\", \"look\", \"multiple\", \"valueField\", \"textField\", \"disabledField\", \"textTemplate\", \"selectedItems\", \"isItemTruncated\", \"showItemTooltip\", \"itemHeight\", \"maxVisibleItems\", \"dataSource\", \"minRecordsForSearch\", \"caption\", \"itemTemplate\", \"selectedTemplate\", \"emptyTemplate\", \"loadingTemplate\", \"dropdownWidth\", \"searchBoxAutoFocus\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onOpened\", \"onClosed\", \"onItemSelected\", \"onItemClick\"] }, { kind: \"ngmodule\", type: AXLabelModule }, { kind: \"component\", type: i6.AXLabelComponent, selector: \"ax-label\", inputs: [\"required\", \"for\"], outputs: [\"requiredChange\"] }, { kind: \"ngmodule\", type: AXSearchBoxModule }, { kind: \"component\", type: i7.AXSearchBoxComponent, selector: \"ax-search-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"class\", \"delayTime\", \"type\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i8.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"pipe\", type: i9.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i10.AXTranslatorPipe, name: \"translate\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXRruleComponent, decorators: [{\n            type: Component,\n            args: [{ standalone: true, selector: 'ax-rrule', imports: [\n                        CommonModule,\n                        FormsModule,\n                        AXDateTimeBoxModule,\n                        AXSelectionListModule,\n                        AXNumberBoxModule,\n                        AXFormModule,\n                        AXSelectBoxModule,\n                        AXLabelModule,\n                        AXSearchBoxModule,\n                        AXButtonModule,\n                        AXTranslationModule,\n                    ], template: \"<div class=\\\"ax-rrule-container ax-grid ax-grid-cols-1 ax-gap-4 md:ax-grid-cols-2 lg:ax-grid-cols-3\\\">\\n  <!-- General -->\\n  <div class=\\\"ax-flex ax-flex-col ax-gap-4 ax-rounded-md ax-border ax-p-4\\\">\\n    <div class=\\\"ax-text-lg ax-font-semibold\\\">{{ 'rrule.general' | translate: { scope: 'common' } | async }}</div>\\n\\n    <div>\\n      <ax-label>{{ 'rrule.freq' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-selection-list\\n        valueField=\\\"value\\\"\\n        textField=\\\"text\\\"\\n        name=\\\"freq\\\"\\n        [items]=\\\"freqs\\\"\\n        [ngModel]=\\\"options().freq\\\"\\n        (ngModelChange)=\\\"updateOption('freq', $event)\\\"\\n      ></ax-selection-list>\\n    </div>\\n\\n    <div>\\n      <ax-label>{{ 'rrule.dtstart' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-datetime-box\\n        name=\\\"dtstart\\\"\\n        [ngModel]=\\\"options().dtstart\\\"\\n        (ngModelChange)=\\\"updateOption('dtstart', $event)\\\"\\n      ></ax-datetime-box>\\n    </div>\\n\\n    <div>\\n      <ax-label>{{ 'rrule.until' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-datetime-box\\n        name=\\\"until\\\"\\n        [ngModel]=\\\"options().until\\\"\\n        (ngModelChange)=\\\"updateOption('until', $event)\\\"\\n      ></ax-datetime-box>\\n    </div>\\n\\n    <div>\\n      <ax-label>{{ 'rrule.count' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-number-box\\n        name=\\\"count\\\"\\n        [ngModel]=\\\"options().count\\\"\\n        (ngModelChange)=\\\"updateOption('count', $event)\\\"\\n        [minValue]=\\\"1\\\"\\n      ></ax-number-box>\\n    </div>\\n\\n    <div>\\n      <ax-label>{{ 'rrule.interval' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-number-box\\n        name=\\\"interval\\\"\\n        [ngModel]=\\\"options().interval\\\"\\n        (ngModelChange)=\\\"updateOption('interval', $event)\\\"\\n        [minValue]=\\\"1\\\"\\n      ></ax-number-box>\\n    </div>\\n\\n    <div>\\n      <ax-label>{{ 'rrule.tzid' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"tzid\\\"\\n        [dataSource]=\\\"timezones\\\"\\n        [ngModel]=\\\"options().tzid\\\"\\n        (ngModelChange)=\\\"updateOption('tzid', $event)\\\"\\n      >\\n        <ax-search-box></ax-search-box>\\n      </ax-select-box>\\n    </div>\\n  </div>\\n\\n  <!-- By Weekday -->\\n  <div class=\\\"ax-flex ax-flex-col ax-gap-4 ax-rounded-md ax-border ax-p-4\\\">\\n    <div class=\\\"ax-text-lg ax-font-semibold\\\">{{ 'rrule.by-weekday' | translate: { scope: 'common' } | async }}</div>\\n    <div>\\n      <ax-label>{{ 'rrule.wkst' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-selection-list\\n        valueField=\\\"value\\\"\\n        textField=\\\"text\\\"\\n        name=\\\"wkst\\\"\\n        [items]=\\\"weekdays\\\"\\n        [ngModel]=\\\"options().wkst\\\"\\n        (ngModelChange)=\\\"updateOption('wkst', $event)\\\"\\n      ></ax-selection-list>\\n    </div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-weekday-rule' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-selection-list\\n        valueField=\\\"value\\\"\\n        textField=\\\"text\\\"\\n        name=\\\"byweekday\\\"\\n        [items]=\\\"weekdays\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().byweekday\\\"\\n        (ngModelChange)=\\\"updateOption('byweekday', $event)\\\"\\n      ></ax-selection-list>\\n    </div>\\n  </div>\\n\\n  <!-- By Month -->\\n  <div class=\\\"ax-flex ax-flex-col ax-gap-4 ax-rounded-md ax-border ax-p-4\\\">\\n    <div class=\\\"ax-text-lg ax-font-semibold\\\">{{ 'rrule.by-month' | translate: { scope: 'common' } | async }}</div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-month-rule' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-selection-list\\n        valueField=\\\"value\\\"\\n        textField=\\\"text\\\"\\n        name=\\\"bymonth\\\"\\n        [items]=\\\"months\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().bymonth\\\"\\n        (ngModelChange)=\\\"updateOption('bymonth', $event)\\\"\\n      ></ax-selection-list>\\n    </div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-month-day' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"bymonthday\\\"\\n        [dataSource]=\\\"monthdays\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().bymonthday\\\"\\n        (ngModelChange)=\\\"updateOption('bymonthday', $event)\\\"\\n      >\\n      </ax-select-box>\\n    </div>\\n    <!-- <div>\\n      <ax-label>By Negative Month Day (BYNMONTHDAY)</ax-label>\\n      <ax-select-box\\n        name=\\\"bynmonthday\\\"\\n        [dataSource]=\\\"nmonthdays\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().bynmonthday\\\"\\n        (ngModelChange)=\\\"updateOption('bynmonthday', $event)\\\"\\n      >\\n      </ax-select-box>\\n    </div> -->\\n  </div>\\n\\n  <!-- By Year -->\\n  <div class=\\\"ax-flex ax-flex-col ax-gap-4 ax-rounded-md ax-border ax-p-4\\\">\\n    <div class=\\\"ax-text-lg ax-font-semibold\\\">{{ 'rrule.by-year' | translate: { scope: 'common' } | async }}</div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-year-day' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"byyearday\\\"\\n        [dataSource]=\\\"yeardays\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().byyearday\\\"\\n        (ngModelChange)=\\\"updateOption('byyearday', $event)\\\"\\n      >\\n      </ax-select-box>\\n    </div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-week-no' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"byweekno\\\"\\n        [dataSource]=\\\"weeknos\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().byweekno\\\"\\n        (ngModelChange)=\\\"updateOption('byweekno', $event)\\\"\\n      >\\n      </ax-select-box>\\n    </div>\\n  </div>\\n\\n  <!-- By Time -->\\n  <div class=\\\"ax-flex ax-flex-col ax-gap-4 ax-rounded-md ax-border ax-p-4\\\">\\n    <div class=\\\"ax-text-lg ax-font-semibold\\\">{{ 'rrule.by-time' | translate: { scope: 'common' } | async }}</div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-hour' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"byhour\\\"\\n        [dataSource]=\\\"hours\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().byhour\\\"\\n        (ngModelChange)=\\\"updateOption('byhour', $event)\\\"\\n      >\\n      </ax-select-box>\\n    </div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-minute' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"byminute\\\"\\n        [dataSource]=\\\"minutes\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().byminute\\\"\\n        (ngModelChange)=\\\"updateOption('byminute', $event)\\\"\\n      >\\n      </ax-select-box>\\n    </div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-second' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"bysecond\\\"\\n        [dataSource]=\\\"seconds\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().bysecond\\\"\\n        (ngModelChange)=\\\"updateOption('bysecond', $event)\\\"\\n      >\\n      </ax-select-box>\\n    </div>\\n  </div>\\n\\n  <!-- Advanced -->\\n  <div class=\\\"ax-flex ax-flex-col ax-gap-4 ax-rounded-md ax-border ax-p-4\\\">\\n    <div class=\\\"ax-text-lg ax-font-semibold\\\">{{ 'rrule.advanced' | translate: { scope: 'common' } | async }}</div>\\n    <div>\\n      <ax-label>{{ 'rrule.by-set-pos' | translate: { scope: 'common' } | async }}</ax-label>\\n      <ax-select-box\\n        name=\\\"bysetpos\\\"\\n        [dataSource]=\\\"setpos\\\"\\n        multiple=\\\"true\\\"\\n        [ngModel]=\\\"options().bysetpos\\\"\\n        (ngModelChange)=\\\"updateOption('bysetpos', $event)\\\"\\n        [disabled]=\\\"true\\\"\\n      >\\n      </ax-select-box>\\n    </div>\\n  </div>\\n</div>\\n\\n<div class=\\\"ax-flex ax-justify-end ax-py-4\\\">\\n  <ax-button [text]=\\\"'rrule.reset' | translate: { scope: 'common' } | async\\\" (click)=\\\"resetOptions()\\\"></ax-button>\\n</div>\\n\" }]\n        }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: \"value\", required: false }] }, { type: i0.Output, args: [\"valueChange\"] }], valueChange: [{ type: i0.Output, args: [\"valueChange\"] }], rruleChange: [{ type: i0.Output, args: [\"rruleChange\"] }], optionsChange: [{ type: i0.Output, args: [\"optionsChange\"] }], stringChange: [{ type: i0.Output, args: [\"stringChange\"] }], textChange: [{ type: i0.Output, args: [\"textChange\"] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnJ1bGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9ycnVsZS9zcmMvbGliL3JydWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvcnJ1bGUvc3JjL2xpYi9ycnVsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFDTCxLQUFLLEVBQ0wsS0FBSyxFQUNMLE9BQU8sRUFDUCxTQUFTLEVBQ1QsTUFBTSxFQUNO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O3dCQUNyQixpQkFBaUI7d0JBQ2pCLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxtQkFBbUI7cUJBQ3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRGF0ZVRpbWVCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGF0ZXRpbWUtYm94JztcbmltcG9ydCB7IEFYRm9ybU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9mb3JtJztcbmltcG9ydCB7IEFYTGFiZWxNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbGFiZWwnO1xuaW1wb3J0IHsgQVhOdW1iZXJCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbnVtYmVyLWJveCc7XG5pbXBvcnQgeyBBWFNlYXJjaEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWFyY2gtYm94JztcbmltcG9ydCB7IEFYU2VsZWN0Qm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlbGVjdC1ib3gnO1xuaW1wb3J0IHsgQVhTZWxlY3Rpb25MaXN0TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlbGVjdGlvbi1saXN0JztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBtb2RlbCwgb3V0cHV0LCBzaWduYWwsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBmcmVxcyxcbiAgaG91cnMsXG4gIG1pbnV0ZXMsXG4gIG1vbnRoZGF5cyxcbiAgbW9udGhzLFxuICBubW9udGhkYXlzLFxuICBzZWNvbmRzLFxuICBzZXRwb3MsXG4gIHRpbWV6b25lcyxcbiAgd2Vla2RheXMsXG4gIHdlZWtub3MsXG4gIHllYXJkYXlzLFxufSBmcm9tICcuL3JydWxlLmNvbnN0JztcbmltcG9ydCB7IEFYUnJ1bGVTZXJ2aWNlIH0gZnJvbSAnLi9ycnVsZS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUk9wdGlvbnNUeXBlLCBBWFJSdWxlVHlwZSwgZGVmYXVsdE9wdGlvbnMsIGRlZmF1bHRScnVsZSB9IGZyb20gJy4vcnJ1bGUudHlwZSc7XG5cbi8qKlxuICogUlJ1bGUgY29tcG9uZW50IHByb3ZpZGVzIGEgdXNlci1mcmllbmRseSBpbnRlcmZhY2UgZm9yIGNyZWF0aW5nIGFuZCBtYW5hZ2luZyByZWN1cnJlbmNlIHJ1bGVzLlxuICogU3VwcG9ydHMgdmFyaW91cyBmcmVxdWVuY2llcywgaW50ZXJ2YWxzLCBhbmQgZGF0ZSBjb25zdHJhaW50cyB3aXRoIHJlYWwtdGltZSBwcmV2aWV3IGFuZCB2YWxpZGF0aW9uLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdheC1ycnVsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9ycnVsZS5jb21wb25lbnQuaHRtbCcsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQVhEYXRlVGltZUJveE1vZHVsZSxcbiAgICBBWFNlbGVjdGlvbkxpc3RNb2R1bGUsXG4gICAgQVhOdW1iZXJCb3hNb2R1bGUsXG4gICAgQVhGb3JtTW9kdWxlLFxuICAgIEFYU2VsZWN0Qm94TW9kdWxlLFxuICAgIEFYTGFiZWxNb2R1bGUsXG4gICAgQVhTZWFyY2hCb3hNb2R1bGUsXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhScnVsZUNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBDdXJyZW50IHJlY3VycmVuY2UgcnVsZSBtb2RlbCB2YWx1ZSAob3B0aW9ucyBvYmplY3Qgb3IgUlJVTEUgc3RyaW5nKS5cbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgcHVibGljIHZhbHVlID0gbW9kZWw8QVhST3B0aW9uc1R5cGUgfCBzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBtb2RlbCB2YWx1ZSBjaGFuZ2VzLlxuICAgKi9cbiAgcHVibGljIHZhbHVlQ2hhbmdlID0gb3V0cHV0PEFYUk9wdGlvbnNUeXBlIHwgc3RyaW5nIHwgbnVsbD4oKTtcblxuICAvKipcbiAgICogRW1pdHRlZCB3aXRoIHRoZSBjb21wdXRlZCBSUnVsZSBpbnN0YW5jZSB3aGVuIHVwZGF0ZWQuXG4gICAqL1xuICBwdWJsaWMgcnJ1bGVDaGFuZ2UgPSBvdXRwdXQ8QVhSUnVsZVR5cGUgfCBudWxsPigpO1xuXG4gIC8qKlxuICAgKiBFbWl0dGVkIHdpdGggdGhlIG5vcm1hbGl6ZWQgb3B0aW9ucyB3aGVuZXZlciB0aGV5IGNoYW5nZS5cbiAgICovXG4gIHB1YmxpYyBvcHRpb25zQ2hhbmdlID0gb3V0cHV0PEFYUk9wdGlvbnNUeXBlPigpO1xuXG4gIC8qKlxuICAgKiBFbWl0dGVkIHdpdGggdGhlIFJSVUxFIHN0cmluZyByZXByZXNlbnRhdGlvbi5cbiAgICovXG4gIHB1YmxpYyBzdHJpbmdDaGFuZ2UgPSBvdXRwdXQ8c3RyaW5nIHwgbnVsbD4oKTtcblxuICAvKipcbiAgICogRW1pdHRlZCB3aXRoIHRoZSBodW1hbi1yZWFkYWJsZSB0ZXh0IG9mIHRoZSBydWxlLlxuICAgKi9cbiAgcHVibGljIHRleHRDaGFuZ2UgPSBvdXRwdXQ8c3RyaW5nIHwgbnVsbD4oKTtcblxuICBwcm90ZWN0ZWQgZnJlcXMgPSBmcmVxcztcbiAgcHJvdGVjdGVkIHdlZWtkYXlzID0gd2Vla2RheXM7XG4gIHByb3RlY3RlZCBtb250aHMgPSBtb250aHM7XG4gIHByb3RlY3RlZCB0aW1lem9uZXMgPSB0aW1lem9uZXM7XG4gIHByb3RlY3RlZCBob3VycyA9IGhvdXJzO1xuICBwcm90ZWN0ZWQgbWludXRlcyA9IG1pbnV0ZXM7XG4gIHByb3RlY3RlZCBzZWNvbmRzID0gc2Vjb25kcztcbiAgcHJvdGVjdGVkIG1vbnRoZGF5cyA9IG1vbnRoZGF5cztcbiAgcHJvdGVjdGVkIG5tb250aGRheXMgPSBubW9udGhkYXlzO1xuICBwcm90ZWN0ZWQgeWVhcmRheXMgPSB5ZWFyZGF5cztcbiAgcHJvdGVjdGVkIHdlZWtub3MgPSB3ZWVrbm9zO1xuICBwcm90ZWN0ZWQgc2V0cG9zID0gc2V0cG9zO1xuXG4gIHByb3RlY3RlZCBvcHRpb25zID0gc2lnbmFsPEFYUk9wdGlvbnNUeXBlPih7IC4uLmRlZmF1bHRPcHRpb25zIH0pO1xuICBwcm90ZWN0ZWQgcnJ1bGUgPSBzaWduYWw8QVhSUnVsZVR5cGUgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHN0cmluZyA9IGNvbXB1dGVkKCgpID0+IHRoaXMucnJ1bGUoKT8udG9TdHJpbmcoKSA/PyBudWxsKTtcbiAgcHJvdGVjdGVkIHRleHQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJydWxlKCk/LnRvVGV4dCgpID8/IG51bGwpO1xuICAvLyBwdWJsaWMgYWxsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5ycnVsZVNlcnZpY2UucnJ1bGVHZXRBbGwodGhpcy5ycnVsZSgpKSk7XG5cbiAgcHJpdmF0ZSBycnVsZVNlcnZpY2UgPSBpbmplY3QoQVhScnVsZVNlcnZpY2UpO1xuICBwcml2YXRlIF9pc1VwZGF0aW5nID0gZmFsc2U7XG4gIHByaXZhdGUgX2FwcGx5VG9rZW4gPSAwO1xuXG4gICN2YWx1ZUVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaW5jb21pbmcgPSB0aGlzLnZhbHVlKCk7XG4gICAgaWYgKHRoaXMuX2lzVXBkYXRpbmcpIHtcbiAgICAgIHRoaXMuX2lzVXBkYXRpbmcgPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fc2NoZWR1bGVBcHBseUluY29taW5nKGluY29taW5nKTtcbiAgfSk7XG5cbiAgcHJpdmF0ZSBfc2NoZWR1bGVBcHBseUluY29taW5nKGluY29taW5nOiBBWFJPcHRpb25zVHlwZSB8IHN0cmluZyB8IG51bGwpIHtcbiAgICBjb25zdCB0b2tlbiA9ICsrdGhpcy5fYXBwbHlUb2tlbjtcbiAgICAvLyBEZWZlciB0byBtaWNyb3Rhc2sgdG8gYXZvaWQgZG9pbmcgYXN5bmMgd29yayBkaXJlY3RseSBpbnNpZGUgZWZmZWN0XG4gICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB0aGlzLl9hcHBseUluY29taW5nQXN5bmMoaW5jb21pbmcsIHRva2VuKSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9hcHBseUluY29taW5nQXN5bmMoaW5jb21pbmc6IEFYUk9wdGlvbnNUeXBlIHwgc3RyaW5nIHwgbnVsbCwgdG9rZW46IG51bWJlcikge1xuICAgIHRyeSB7XG4gICAgICBsZXQgcnJ1bGU6IEFYUlJ1bGVUeXBlO1xuICAgICAgbGV0IG5ld09wdGlvbnM6IEFYUk9wdGlvbnNUeXBlO1xuXG4gICAgICBpZiAoaW5jb21pbmcpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBpbmNvbWluZyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBycnVsZSA9IGF3YWl0IHRoaXMucnJ1bGVTZXJ2aWNlLnJydWxlRnJvbVN0cmluZyhpbmNvbWluZyk7XG4gICAgICAgICAgbmV3T3B0aW9ucyA9IHRoaXMuX2NsZWFyT3B0aW9ucyh7IC4uLnJydWxlLm9wdGlvbnMgfSwgaW5jb21pbmcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJydWxlID0gYXdhaXQgdGhpcy5ycnVsZVNlcnZpY2UucnJ1bGVGcm9tT3B0aW9ucyhpbmNvbWluZyk7XG4gICAgICAgICAgbmV3T3B0aW9ucyA9IHsgLi4ucnJ1bGUub3B0aW9ucyB9IGFzIEFYUk9wdGlvbnNUeXBlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBycnVsZSA9IGF3YWl0IHRoaXMucnJ1bGVTZXJ2aWNlLnJydWxlRnJvbVN0cmluZyhkZWZhdWx0UnJ1bGUpO1xuICAgICAgICBuZXdPcHRpb25zID0gdGhpcy5fY2xlYXJPcHRpb25zKHsgLi4ucnJ1bGUub3B0aW9ucyB9LCBkZWZhdWx0UnJ1bGUpO1xuICAgICAgfVxuXG4gICAgICAvLyBPbmx5IGFwcGx5IHRoZSBsYXRlc3Qgc2NoZWR1bGVkIHVwZGF0ZVxuICAgICAgaWYgKHRva2VuICE9PSB0aGlzLl9hcHBseVRva2VuKSByZXR1cm47XG5cbiAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgIHRoaXMucnJ1bGUuc2V0KHJydWxlKTtcbiAgICAgICAgdGhpcy5vcHRpb25zLnNldChuZXdPcHRpb25zKTtcbiAgICAgICAgdGhpcy5fZW1pdEFsbCgpO1xuICAgICAgfSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBTd2FsbG93IGVycm9ycyB0byBhdm9pZCBicmVha2luZyB0aGUgcmVhY3RpdmUgZ3JhcGg7IGNvbnNpZGVyIHN1cmZhY2luZyB2aWEgb3V0cHV0IGV2ZW50cyBpZiBuZWVkZWRcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9lbWl0QWxsKCkge1xuICAgIHRoaXMucnJ1bGVDaGFuZ2UuZW1pdCh0aGlzLnJydWxlKCkpO1xuICAgIHRoaXMub3B0aW9uc0NoYW5nZS5lbWl0KHRoaXMub3B0aW9ucygpKTtcbiAgICB0aGlzLnN0cmluZ0NoYW5nZS5lbWl0KHRoaXMuc3RyaW5nKCkpO1xuICAgIHRoaXMudGV4dENoYW5nZS5lbWl0KHRoaXMudGV4dCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2FyZU9wdGlvblZhbHVlc0VxdWFsPFQ+KGE6IFQsIGI6IFQpOiBib29sZWFuIHtcbiAgICBpZiAoYSA9PT0gYikgcmV0dXJuIHRydWU7XG4gICAgaWYgKGEgPT0gbnVsbCB8fCBiID09IG51bGwpIHJldHVybiBhID09PSBiO1xuICAgIC8vIENvbXBhcmUgRGF0ZVxuICAgIGlmIChhIGluc3RhbmNlb2YgRGF0ZSAmJiBiIGluc3RhbmNlb2YgRGF0ZSkgcmV0dXJuIGEuZ2V0VGltZSgpID09PSBiLmdldFRpbWUoKTtcbiAgICAvLyBDb21wYXJlIGFycmF5cyBvZiBwcmltaXRpdmVzXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoYSkgJiYgQXJyYXkuaXNBcnJheShiKSkge1xuICAgICAgaWYgKGEubGVuZ3RoICE9PSBiLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChhW2ldICE9PSBiW2ldKSByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xlYXJPcHRpb25zKG9wdGlvbnM6IEFYUk9wdGlvbnNUeXBlLCBydWxlOiBzdHJpbmcpOiBBWFJPcHRpb25zVHlwZSB7XG4gICAgY29uc3QgdXBwZXJDYXNlUnVsZSA9IHJ1bGUudG9VcHBlckNhc2UoKTtcbiAgICBpZiAoIXVwcGVyQ2FzZVJ1bGUuaW5jbHVkZXMoJ0RUU1RBUlQnKSkge1xuICAgICAgb3B0aW9ucy5kdHN0YXJ0ID0gKHRoaXMub3B0aW9ucygpLmR0c3RhcnQgYXMgRGF0ZSB8IG51bGwpID8/IG5ldyBEYXRlKCk7XG4gICAgfVxuICAgIGlmICghdXBwZXJDYXNlUnVsZS5pbmNsdWRlcygnQllIT1VSJykpIHtcbiAgICAgIG9wdGlvbnMuYnlob3VyID0gW107XG4gICAgfVxuICAgIGlmICghdXBwZXJDYXNlUnVsZS5pbmNsdWRlcygnQllNSU5VVEUnKSkge1xuICAgICAgb3B0aW9ucy5ieW1pbnV0ZSA9IFtdO1xuICAgIH1cbiAgICBpZiAoIXVwcGVyQ2FzZVJ1bGUuaW5jbHVkZXMoJ0JZU0VDT05EJykpIHtcbiAgICAgIG9wdGlvbnMuYnlzZWNvbmQgPSBbXTtcbiAgICB9XG4gICAgaWYgKCF1cHBlckNhc2VSdWxlLmluY2x1ZGVzKCdCWU1PTlRIJykpIHtcbiAgICAgIG9wdGlvbnMuYnltb250aCA9IFtdO1xuICAgIH1cbiAgICBpZiAoIXVwcGVyQ2FzZVJ1bGUuaW5jbHVkZXMoJ0JZTU9OVEhEQVknKSkge1xuICAgICAgb3B0aW9ucy5ieW1vbnRoZGF5ID0gW107XG4gICAgfVxuICAgIGlmICghdXBwZXJDYXNlUnVsZS5pbmNsdWRlcygnQllXRUVLREFZJykpIHtcbiAgICAgIG9wdGlvbnMuYnl3ZWVrZGF5ID0gW107XG4gICAgfVxuICAgIGlmICghdXBwZXJDYXNlUnVsZS5pbmNsdWRlcygnVFpJRCcpKSB7XG4gICAgICBjb25zdCBjdXJyZW50VHogPSB0aGlzLm9wdGlvbnMoKS50emlkIGFzIHN0cmluZyB8IG51bGw7XG4gICAgICBjb25zdCB1c2VyVGltZVpvbmUgPSBJbnRsPy5EYXRlVGltZUZvcm1hdD8uKCkucmVzb2x2ZWRPcHRpb25zPy4oKS50aW1lWm9uZTtcbiAgICAgIG9wdGlvbnMudHppZCA9IGN1cnJlbnRUeiA/PyB1c2VyVGltZVpvbmUgPz8gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyBhIHNpbmdsZSBvcHRpb24gYW5kIHJlY29tcHV0ZXMgdGhlIHJ1bGUuXG4gICAqIEBwYXJhbSBrZXkgVGhlIG9wdGlvbiBrZXkgdG8gdXBkYXRlXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgbmV3IHZhbHVlIGZvciB0aGUgb3B0aW9uXG4gICAqL1xuICBhc3luYyB1cGRhdGVPcHRpb248SyBleHRlbmRzIGtleW9mIEFYUk9wdGlvbnNUeXBlPihrZXk6IEssIHZhbHVlOiBBWFJPcHRpb25zVHlwZVtLXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLm9wdGlvbnMoKVtrZXldIGFzIEFYUk9wdGlvbnNUeXBlW0tdO1xuICAgIGlmICh0aGlzLl9hcmVPcHRpb25WYWx1ZXNFcXVhbChjdXJyZW50IGFzIHVua25vd24gYXMgYW55LCB2YWx1ZSBhcyB1bmtub3duIGFzIGFueSkpIHJldHVybjtcbiAgICB0aGlzLm9wdGlvbnMudXBkYXRlKChvcHRzKSA9PiAoeyAuLi5vcHRzLCBba2V5XTogdmFsdWUgfSkpO1xuICAgIGNvbnN0IG5ld1JydWxlID0gYXdhaXQgdGhpcy5ycnVsZVNlcnZpY2UucnJ1bGVGcm9tT3B0aW9ucyh0aGlzLm9wdGlvbnMoKSk7XG4gICAgdGhpcy5ycnVsZS5zZXQobmV3UnJ1bGUpO1xuXG4gICAgdGhpcy5faXNVcGRhdGluZyA9IHRydWU7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnZhbHVlKCkgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLnZhbHVlLnNldChuZXdScnVsZS50b1N0cmluZygpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZS5zZXQodGhpcy5vcHRpb25zKCkpO1xuICAgIH1cbiAgICB0aGlzLl9lbWl0QWxsKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXRzIG9wdGlvbnMgdG8gZGVmYXVsdHMgYW5kIHJlY29tcHV0ZXMgdGhlIHJ1bGUuXG4gICAqL1xuICBhc3luYyByZXNldE9wdGlvbnMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5vcHRpb25zLnNldCh7IC4uLmRlZmF1bHRPcHRpb25zIH0pO1xuICAgIGNvbnN0IG5ld1JydWxlID0gYXdhaXQgdGhpcy5ycnVsZVNlcnZpY2UucnJ1bGVGcm9tT3B0aW9ucyh0aGlzLm9wdGlvbnMoKSk7XG4gICAgdGhpcy5ycnVsZS5zZXQobmV3UnJ1bGUpO1xuXG4gICAgdGhpcy5faXNVcGRhdGluZyA9IHRydWU7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnZhbHVlKCkgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLnZhbHVlLnNldChuZXdScnVsZS50b1N0cmluZygpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZS5zZXQodGhpcy5vcHRpb25zKCkpO1xuICAgIH1cbiAgICB0aGlzLl9lbWl0QWxsKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1ycnVsZS1jb250YWluZXIgYXgtZ3JpZCBheC1ncmlkLWNvbHMtMSBheC1nYXAtNCBtZDpheC1ncmlkLWNvbHMtMiBsZzpheC1ncmlkLWNvbHMtM1wiPlxuICA8IS0tIEdlbmVyYWwgLS0+XG4gIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC00IGF4LXJvdW5kZWQtbWQgYXgtYm9yZGVyIGF4LXAtNFwiPlxuICAgIDxkaXYgY2xhc3M9XCJheC10ZXh0LWxnIGF4LWZvbnQtc2VtaWJvbGRcIj57eyAncnJ1bGUuZ2VuZXJhbCcgfCB0cmFuc2xhdGU6IHsgc2NvcGU6ICdjb21tb24nIH0gfCBhc3luYyB9fTwvZGl2PlxuXG4gICAgPGRpdj5cbiAgICAgIDxheC1sYWJlbD57eyAncnJ1bGUuZnJlcScgfCB0cmFuc2xhdGU6IHsgc2NvcGU6ICdjb21tb24nIH0gfCBhc3luYyB9fTwvYXgtbGFiZWw+XG4gICAgICA8YXgtc2VsZWN0aW9uLWxpc3RcbiAgICAgICAgdmFsdWVGaWVsZD1cInZhbHVlXCJcbiAgICAgICAgdGV4dEZpZWxkPVwidGV4dFwiXG4gICAgICAgIG5hbWU9XCJmcmVxXCJcbiAgICAgICAgW2l0ZW1zXT1cImZyZXFzXCJcbiAgICAgICAgW25nTW9kZWxdPVwib3B0aW9ucygpLmZyZXFcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVPcHRpb24oJ2ZyZXEnLCAkZXZlbnQpXCJcbiAgICAgID48L2F4LXNlbGVjdGlvbi1saXN0PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdj5cbiAgICAgIDxheC1sYWJlbD57eyAncnJ1bGUuZHRzdGFydCcgfCB0cmFuc2xhdGU6IHsgc2NvcGU6ICdjb21tb24nIH0gfCBhc3luYyB9fTwvYXgtbGFiZWw+XG4gICAgICA8YXgtZGF0ZXRpbWUtYm94XG4gICAgICAgIG5hbWU9XCJkdHN0YXJ0XCJcbiAgICAgICAgW25nTW9kZWxdPVwib3B0aW9ucygpLmR0c3RhcnRcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVPcHRpb24oJ2R0c3RhcnQnLCAkZXZlbnQpXCJcbiAgICAgID48L2F4LWRhdGV0aW1lLWJveD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXY+XG4gICAgICA8YXgtbGFiZWw+e3sgJ3JydWxlLnVudGlsJyB8IHRyYW5zbGF0ZTogeyBzY29wZTogJ2NvbW1vbicgfSB8IGFzeW5jIH19PC9heC1sYWJlbD5cbiAgICAgIDxheC1kYXRldGltZS1ib3hcbiAgICAgICAgbmFtZT1cInVudGlsXCJcbiAgICAgICAgW25nTW9kZWxdPVwib3B0aW9ucygpLnVudGlsXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlT3B0aW9uKCd1bnRpbCcsICRldmVudClcIlxuICAgICAgPjwvYXgtZGF0ZXRpbWUtYm94PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdj5cbiAgICAgIDxheC1sYWJlbD57eyAncnJ1bGUuY291bnQnIHwgdHJhbnNsYXRlOiB7IHNjb3BlOiAnY29tbW9uJyB9IHwgYXN5bmMgfX08L2F4LWxhYmVsPlxuICAgICAgPGF4LW51bWJlci1ib3hcbiAgICAgICAgbmFtZT1cImNvdW50XCJcbiAgICAgICAgW25nTW9kZWxdPVwib3B0aW9ucygpLmNvdW50XCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlT3B0aW9uKCdjb3VudCcsICRldmVudClcIlxuICAgICAgICBbbWluVmFsdWVdPVwiMVwiXG4gICAgICA+PC9heC1udW1iZXItYm94PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdj5cbiAgICAgIDxheC1sYWJlbD57eyAncnJ1bGUuaW50ZXJ2YWwnIHwgdHJhbnNsYXRlOiB7IHNjb3BlOiAnY29tbW9uJyB9IHwgYXN5bmMgfX08L2F4LWxhYmVsPlxuICAgICAgPGF4LW51bWJlci1ib3hcbiAgICAgICAgbmFtZT1cImludGVydmFsXCJcbiAgICAgICAgW25nTW9kZWxdPVwib3B0aW9ucygpLmludGVydmFsXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlT3B0aW9uKCdpbnRlcnZhbCcsICRldmVudClcIlxuICAgICAgICBbbWluVmFsdWVdPVwiMVwiXG4gICAgICA+PC9heC1udW1iZXItYm94PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdj5cbiAgICAgIDxheC1sYWJlbD57eyAncnJ1bGUudHppZCcgfCB0cmFuc2xhdGU6IHsgc2NvcGU6ICdjb21tb24nIH0gfCBhc3luYyB9fTwvYXgtbGFiZWw+XG4gICAgICA8YXgtc2VsZWN0LWJveFxuICAgICAgICBuYW1lPVwidHppZFwiXG4gICAgICAgIFtkYXRhU291cmNlXT1cInRpbWV6b25lc1wiXG4gICAgICAgIFtuZ01vZGVsXT1cIm9wdGlvbnMoKS50emlkXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlT3B0aW9uKCd0emlkJywgJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxheC1zZWFyY2gtYm94PjwvYXgtc2VhcmNoLWJveD5cbiAgICAgIDwvYXgtc2VsZWN0LWJveD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBCeSBXZWVrZGF5IC0tPlxuICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtNCBheC1yb3VuZGVkLW1kIGF4LWJvcmRlciBheC1wLTRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtdGV4dC1sZyBheC1mb250LXNlbWlib2xkXCI+e3sgJ3JydWxlLmJ5LXdlZWtkYXknIHwgdHJhbnNsYXRlOiB7IHNjb3BlOiAnY29tbW9uJyB9IHwgYXN5bmMgfX08L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGF4LWxhYmVsPnt7ICdycnVsZS53a3N0JyB8IHRyYW5zbGF0ZTogeyBzY29wZTogJ2NvbW1vbicgfSB8IGFzeW5jIH19PC9heC1sYWJlbD5cbiAgICAgIDxheC1zZWxlY3Rpb24tbGlzdFxuICAgICAgICB2YWx1ZUZpZWxkPVwidmFsdWVcIlxuICAgICAgICB0ZXh0RmllbGQ9XCJ0ZXh0XCJcbiAgICAgICAgbmFtZT1cIndrc3RcIlxuICAgICAgICBbaXRlbXNdPVwid2Vla2RheXNcIlxuICAgICAgICBbbmdNb2RlbF09XCJvcHRpb25zKCkud2tzdFwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZU9wdGlvbignd2tzdCcsICRldmVudClcIlxuICAgICAgPjwvYXgtc2VsZWN0aW9uLWxpc3Q+XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgIDxheC1sYWJlbD57eyAncnJ1bGUuYnktd2Vla2RheS1ydWxlJyB8IHRyYW5zbGF0ZTogeyBzY29wZTogJ2NvbW1vbicgfSB8IGFzeW5jIH19PC9heC1sYWJlbD5cbiAgICAgIDxheC1zZWxlY3Rpb24tbGlzdFxuICAgICAgICB2YWx1ZUZpZWxkPVwidmFsdWVcIlxuICAgICAgICB0ZXh0RmllbGQ9XCJ0ZXh0XCJcbiAgICAgICAgbmFtZT1cImJ5d2Vla2RheVwiXG4gICAgICAgIFtpdGVtc109XCJ3ZWVrZGF5c1wiXG4gICAgICAgIG11bHRpcGxlPVwidHJ1ZVwiXG4gICAgICAgIFtuZ01vZGVsXT1cIm9wdGlvbnMoKS5ieXdlZWtkYXlcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVPcHRpb24oJ2J5d2Vla2RheScsICRldmVudClcIlxuICAgICAgPjwvYXgtc2VsZWN0aW9uLWxpc3Q+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gQnkgTW9udGggLS0+XG4gIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC00IGF4LXJvdW5kZWQtbWQgYXgtYm9yZGVyIGF4LXAtNFwiPlxuICAgIDxkaXYgY2xhc3M9XCJheC10ZXh0LWxnIGF4LWZvbnQtc2VtaWJvbGRcIj57eyAncnJ1bGUuYnktbW9udGgnIHwgdHJhbnNsYXRlOiB7IHNjb3BlOiAnY29tbW9uJyB9IHwgYXN5bmMgfX08L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGF4LWxhYmVsPnt7ICdycnVsZS5ieS1tb250aC1ydWxlJyB8IHRyYW5zbGF0ZTogeyBzY29wZTogJ2NvbW1vbicgfSB8IGFzeW5jIH19PC9heC1sYWJlbD5cbiAgICAgIDxheC1zZWxlY3Rpb24tbGlzdFxuICAgICAgICB2YWx1ZUZpZWxkPVwidmFsdWVcIlxuICAgICAgICB0ZXh0RmllbGQ9XCJ0ZXh0XCJcbiAgICAgICAgbmFtZT1cImJ5bW9udGhcIlxuICAgICAgICBbaXRlbXNdPVwibW9udGhzXCJcbiAgICAgICAgbXVsdGlwbGU9XCJ0cnVlXCJcbiAgICAgICAgW25nTW9kZWxdPVwib3B0aW9ucygpLmJ5bW9udGhcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVPcHRpb24oJ2J5bW9udGgnLCAkZXZlbnQpXCJcbiAgICAgID48L2F4LXNlbGVjdGlvbi1saXN0PlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8YXgtbGFiZWw+e3sgJ3JydWxlLmJ5LW1vbnRoLWRheScgfCB0cmFuc2xhdGU6IHsgc2NvcGU6ICdjb21tb24nIH0gfCBhc3luYyB9fTwvYXgtbGFiZWw+XG4gICAgICA8YXgtc2VsZWN0LWJveFxuICAgICAgICBuYW1lPVwiYnltb250aGRheVwiXG4gICAgICAgIFtkYXRhU291cmNlXT1cIm1vbnRoZGF5c1wiXG4gICAgICAgIG11bHRpcGxlPVwidHJ1ZVwiXG4gICAgICAgIFtuZ01vZGVsXT1cIm9wdGlvbnMoKS5ieW1vbnRoZGF5XCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlT3B0aW9uKCdieW1vbnRoZGF5JywgJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICA8L2F4LXNlbGVjdC1ib3g+XG4gICAgPC9kaXY+XG4gICAgPCEtLSA8ZGl2PlxuICAgICAgPGF4LWxhYmVsPkJ5IE5lZ2F0aXZlIE1vbnRoIERheSAoQllOTU9OVEhEQVkpPC9heC1sYWJlbD5cbiAgICAgIDxheC1zZWxlY3QtYm94XG4gICAgICAgIG5hbWU9XCJieW5tb250aGRheVwiXG4gICAgICAgIFtkYXRhU291cmNlXT1cIm5tb250aGRheXNcIlxuICAgICAgICBtdWx0aXBsZT1cInRydWVcIlxuICAgICAgICBbbmdNb2RlbF09XCJvcHRpb25zKCkuYnlubW9udGhkYXlcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVPcHRpb24oJ2J5bm1vbnRoZGF5JywgJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICA8L2F4LXNlbGVjdC1ib3g+XG4gICAgPC9kaXY+IC0tPlxuICA8L2Rpdj5cblxuICA8IS0tIEJ5IFllYXIgLS0+XG4gIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC00IGF4LXJvdW5kZWQtbWQgYXgtYm9yZGVyIGF4LXAtNFwiPlxuICAgIDxkaXYgY2xhc3M9XCJheC10ZXh0LWxnIGF4LWZvbnQtc2VtaWJvbGRcIj57eyAncnJ1bGUuYnkteWVhcicgfCB0cmFuc2xhdGU6IHsgc2NvcGU6ICdjb21tb24nIH0gfCBhc3luYyB9fTwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8YXgtbGFiZWw+e3sgJ3JydWxlLmJ5LXllYXItZGF5JyB8IHRyYW5zbGF0ZTogeyBzY29wZTogJ2NvbW1vbicgfSB8IGFzeW5jIH19PC9heC1sYWJlbD5cbiAgICAgIDxheC1zZWxlY3QtYm94XG4gICAgICAgIG5hbWU9XCJieXllYXJkYXlcIlxuICAgICAgICBbZGF0YVNvdXJjZV09XCJ5ZWFyZGF5c1wiXG4gICAgICAgIG11bHRpcGxlPVwidHJ1ZVwiXG4gICAgICAgIFtuZ01vZGVsXT1cIm9wdGlvbnMoKS5ieXllYXJkYXlcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVPcHRpb24oJ2J5eWVhcmRheScsICRldmVudClcIlxuICAgICAgPlxuICAgICAgPC9heC1zZWxlY3QtYm94PlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8YXgtbGFiZWw+e3sgJ3JydWxlLmJ5LXdlZWstbm8nIHwgdHJhbnNsYXRlOiB7IHNjb3BlOiAnY29tbW9uJyB9IHwgYXN5bmMgfX08L2F4LWxhYmVsPlxuICAgICAgPGF4LXNlbGVjdC1ib3hcbiAgICAgICAgbmFtZT1cImJ5d2Vla25vXCJcbiAgICAgICAgW2RhdGFTb3VyY2VdPVwid2Vla25vc1wiXG4gICAgICAgIG11bHRpcGxlPVwidHJ1ZVwiXG4gICAgICAgIFtuZ01vZGVsXT1cIm9wdGlvbnMoKS5ieXdlZWtub1wiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZU9wdGlvbignYnl3ZWVrbm8nLCAkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgIDwvYXgtc2VsZWN0LWJveD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBCeSBUaW1lIC0tPlxuICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtNCBheC1yb3VuZGVkLW1kIGF4LWJvcmRlciBheC1wLTRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtdGV4dC1sZyBheC1mb250LXNlbWlib2xkXCI+e3sgJ3JydWxlLmJ5LXRpbWUnIHwgdHJhbnNsYXRlOiB7IHNjb3BlOiAnY29tbW9uJyB9IHwgYXN5bmMgfX08L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGF4LWxhYmVsPnt7ICdycnVsZS5ieS1ob3VyJyB8IHRyYW5zbGF0ZTogeyBzY29wZTogJ2NvbW1vbicgfSB8IGFzeW5jIH19PC9heC1sYWJlbD5cbiAgICAgIDxheC1zZWxlY3QtYm94XG4gICAgICAgIG5hbWU9XCJieWhvdXJcIlxuICAgICAgICBbZGF0YVNvdXJjZV09XCJob3Vyc1wiXG4gICAgICAgIG11bHRpcGxlPVwidHJ1ZVwiXG4gICAgICAgIFtuZ01vZGVsXT1cIm9wdGlvbnMoKS5ieWhvdXJcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVPcHRpb24oJ2J5aG91cicsICRldmVudClcIlxuICAgICAgPlxuICAgICAgPC9heC1zZWxlY3QtYm94PlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8YXgtbGFiZWw+e3sgJ3JydWxlLmJ5LW1pbnV0ZScgfCB0cmFuc2xhdGU6IHsgc2NvcGU6ICdjb21tb24nIH0gfCBhc3luYyB9fTwvYXgtbGFiZWw+XG4gICAgICA8YXgtc2VsZWN0LWJveFxuICAgICAgICBuYW1lPVwiYnltaW51dGVcIlxuICAgICAgICBbZGF0YVNvdXJjZV09XCJtaW51dGVzXCJcbiAgICAgICAgbXVsdGlwbGU9XCJ0cnVlXCJcbiAgICAgICAgW25nTW9kZWxdPVwib3B0aW9ucygpLmJ5bWludXRlXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlT3B0aW9uKCdieW1pbnV0ZScsICRldmVudClcIlxuICAgICAgPlxuICAgICAgPC9heC1zZWxlY3QtYm94PlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8YXgtbGFiZWw+e3sgJ3JydWxlLmJ5LXNlY29uZCcgfCB0cmFuc2xhdGU6IHsgc2NvcGU6ICdjb21tb24nIH0gfCBhc3luYyB9fTwvYXgtbGFiZWw+XG4gICAgICA8YXgtc2VsZWN0LWJveFxuICAgICAgICBuYW1lPVwiYnlzZWNvbmRcIlxuICAgICAgICBbZGF0YVNvdXJjZV09XCJzZWNvbmRzXCJcbiAgICAgICAgbXVsdGlwbGU9XCJ0cnVlXCJcbiAgICAgICAgW25nTW9kZWxdPVwib3B0aW9ucygpLmJ5c2Vjb25kXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlT3B0aW9uKCdieXNlY29uZCcsICRldmVudClcIlxuICAgICAgPlxuICAgICAgPC9heC1zZWxlY3QtYm94PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIEFkdmFuY2VkIC0tPlxuICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtNCBheC1yb3VuZGVkLW1kIGF4LWJvcmRlciBheC1wLTRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtdGV4dC1sZyBheC1mb250LXNlbWlib2xkXCI+e3sgJ3JydWxlLmFkdmFuY2VkJyB8IHRyYW5zbGF0ZTogeyBzY29wZTogJ2NvbW1vbicgfSB8IGFzeW5jIH19PC9kaXY+XG4gICAgPGRpdj5cbiAgICAgIDxheC1sYWJlbD57eyAncnJ1bGUuYnktc2V0LXBvcycgfCB0cmFuc2xhdGU6IHsgc2NvcGU6ICdjb21tb24nIH0gfCBhc3luYyB9fTwvYXgtbGFiZWw+XG4gICAgICA8YXgtc2VsZWN0LWJveFxuICAgICAgICBuYW1lPVwiYnlzZXRwb3NcIlxuICAgICAgICBbZGF0YVNvdXJjZV09XCJzZXRwb3NcIlxuICAgICAgICBtdWx0aXBsZT1cInRydWVcIlxuICAgICAgICBbbmdNb2RlbF09XCJvcHRpb25zKCkuYnlzZXRwb3NcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVPcHRpb24oJ2J5c2V0cG9zJywgJGV2ZW50KVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCJcbiAgICAgID5cbiAgICAgIDwvYXgtc2VsZWN0LWJveD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtanVzdGlmeS1lbmQgYXgtcHktNFwiPlxuICA8YXgtYnV0dG9uIFt0ZXh0XT1cIidycnVsZS5yZXNldCcgfCB0cmFuc2xhdGU6IHsgc2NvcGU6ICdjb21tb24nIH0gfCBhc3luY1wiIChjbGljayk9XCJyZXNldE9wdGlvbnMoKVwiPjwvYXgtYnV0dG9uPlxuPC9kaXY+XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtcnJ1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3JydWxlL3NyYy9hY29yZXgtY29tcG9uZW50cy1ycnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":["i1","i2","i6","i10"],"mappings":"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"}
         
     |